当前位置: 首页 > news >正文

Wannacrypt蠕虫老树开花?又见Wannacrypt

Wannacrypt蠕虫是一个在2017年就出现的远古毒株,其利用永恒之蓝漏洞降维打击用户服务器,而后进行扩散+勒索,曾经一度风靡全球,可谓是闻者伤心,听着落泪,因为这玩意解密是不可能 解密的。

而2023年的今天,该病毒居然死灰复燃了?

2023年3月5日,某厂区客户现场反馈大量内网服务器出现蓝屏情况,现场工程师安装360安全卫士后,提示为Wannacry蠕虫病毒

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
从描述中可以猜测是永恒之蓝把服务器打蓝屏了,而后现场通过与现场工程师协同了解到,当时蓝屏的服务器是一台实时数据库服务器,操作系统版本为windows server pack 2 。由于厂区服务器特殊,是不能经常升级的,所以可以理解。。。
在这里插入图片描述
通过上述的图片,我推断感染为WannaCrypt蠕虫病毒,该病毒实际爆发事件为2017年,通过永恒之蓝漏洞攻击目标机器,而后通过访问“开关”来判定出网情况,之后释放tasksche.exe文件,而后对系统进行加密,达到勒索的效果。

同时会对内网、外网进行横向攻击,利用永恒之蓝漏洞、SMB、RDP协议爆破来获取更多的权限,幸运的是,此次勒索病毒并没有达到勒索的状态。

这是一款老病毒了,在得知他不能起到勒索的作用后,其实就基本可以判断这就是一次非针对性的流窜,被乱打正着了,清理起来也很容易,结束掉mssecsvc.exe进程,看一下c:/windows目录下有没有tasksche.exe文件,看到直接删除而后打补丁,更改密码即可

但是由于该蠕虫病毒传播性较强,于是乎笔者像前场人员要来了这台服务器的登录日志,可能是沟通有问题,他只给了我登录成功和登录失败的日志

由于永恒之蓝漏洞一大特性是会重启,那么其实可以根据以下进行判断

事件ID 4625(登录失败):如果攻击者尝试通过SMB服务进行远程执行代码攻击,那么会在目标机器的安全事件日志中产生大量登录失败的事件记录。可以筛选该事件ID,以找到与攻击相关的记录。

事件ID 5140(共享对象被其他进程访问):攻击者可能会试图利用漏洞访问共享文件夹或文件,如果成功,系统将记录此事件。

事件ID 7034(服务崩溃):攻击者可能会试图通过攻击SMB服务或相关的Windows服务来执行代码,导致服务崩溃,这会在系统事件日志中记录。

事件ID 7045(服务安装):攻击者可能会通过安装恶意服务的方式利用漏洞。此时,系统将记录新服务的安装记录。

但是他只给了我登录成功和登录失败的日志,那么我们应该如何去用这个日志去获取我们想要的信息呢?

在这里插入图片描述
上面也提到过,Wannacay蠕虫病毒在内网会利用MS17010漏洞以及SMB协议漏洞进行攻击,似乎并没有提到会利用到445端口、3389等端口的弱口令暴力破解攻击,但是实际上根据笔者对日志的审计,发现的确会留下很多ntlmssp登录失败日志
在这里插入图片描述
其实可以看到,该服务器实际上2021年就已经被打了,但是直到今天其他服务器蓝屏了才发现设备被入侵了,这也是目前国很常见的一个现象,只要没有造成直接的财产损失,他就不是病毒。​

那么回到正题,该样本实际上已经没有分析的必要了,因为这是一个老病毒了,我们只需要按部就班的清除就行,索性勒索病毒似乎并没有起,所以我们只需要排查哪些机器已经被污染了,就一起断网清除就可以了

在这里插入图片描述
至于为什么一插网线就又有“弹窗”,那是因为内网里其他的机器没有清理病毒,只要网络环境一恢复,那么要不了两分钟立马就给你重新感染,我们通过3.5日的日志也可以看出来,正如我们猜想的那样
在这里插入图片描述
笔者简单的看了一下爆破的记录,发现每次爆破都不会很多,少则二三十、多则一两百,没有出现上一次紫狐Rootkit爆破次数达到上万的情况,那么也从侧面说明了,该服务器很有可能是存在弱口令或者是口令共用的情况
在这里插入图片描述
而后果然证实了,218确实存在mssecmvc.exe文件,但是依然没有发现本应该存在的tasksche.exe文件以及另一个,这又让我怀疑,这到底是不是wannacay蠕虫病毒
但是当样本给了我之后,我又很确定,这就是mssecmvc2.0蠕虫病毒
在这里插入图片描述
而后在本地断网运行后,也的确是在C:/windows目录下生成了tasksche.exe文件

在这里插入图片描述
在这里插入图片描述
查看一下运行的参数
wmic process get caption,commandline /value
在这里插入图片描述
使用IDA看了一下,特征也挺符合的
打开第一眼看到的其实就是访问http://www.iuqerfsodp9ifjaposdfjhgosuri地址,这个地址其实什么也不是,可以理解为是一个开关
0040814A mov esi, offset aHttpWww_iuqerf ; “http://www.iuqerfsodp9ifjaposdfjhgosuri”…

在这里插入图片描述
此时按F5进入伪代码,查看一下函数逻辑
在这里插入图片描述

其实看起来不是很好看,但是大致就是将http://www.iuqerfsodp9ifjaposdfjhgosuri传入szUrl中,而后访问成功的话就返回0,程序继续往下走,否则就会进入到408090地址
我们先跟踪一下aHttpWww_iuqerf
在这里插入图片描述

并没有什么卵用,我们回到刚刚的伪代码,双击408090

我们进入到此函数后,发现该函数首先判断程序是不是双击运行的,双机运行的话是就进入到407F20函数,否则就会打开服务主函数,启动服务管理器(28行)
在这里插入图片描述

在这里插入图片描述

我们首先进入到407F20函数
在这里插入图片描述

第一步,进入407C40函数,带参数执行mssecmvc恶意程序,而后打开服务器创建服务进程,更改成微软的服务名称用来躲避杀软
在这里插入图片描述

在这里插入图片描述

我们再进入407CE0,该函数的目的其实是为了将tasksche.exe藏起来,这样如果只是把明面上的删除了,过一段时间依然会返回来(我猜的)
在这里插入图片描述

最后,如程序是正常执行的,那么此时程序会进入到408000服务主函数内
在这里插入图片描述

如注释所看,该函数目的是注册一个服务,服务名为mssecsvc2.0,若是服务注册成功则会进入407BD0主函数内
在这里插入图片描述

我们进入到407BD0函数地址
在这里插入图片描述

我们首先进入407B90函数地址,如下图所示,此函数主要功能其实就是初始化网络环境,准备加载两个PE文件
在这里插入图片描述

我们再进入407A20内容,其实就是申请两个内存空间(到底是堆栈还是内存?)用来存放即将要用到的payload,不管你是x86还是x64架构,直接塞两次进去,而后保存文件,存在的话就打开
在这里插入图片描述

我们再来看一下 407720函数,此函数用来进行内网SMB协议漏洞攻击
在这里插入图片描述

我们先来查看409160获取网卡信息函数
在这里插入图片描述

在这里插入图片描述

4076B0 局域网内传播函数,利用SMB协议漏洞或者是SMB协议爆破连接目标机器
在这里插入图片描述

由此,我们得出如下结论
在这里插入图片描述
到此暂时告一段落,其余的笔者能力有限(菜逼),接下来就要从日志入手,快速知道局域网都哪些人中招了

废话不多说,我们直接从登录失败日志即可得到我们想要的答案;因为该蠕虫会通过445端口进行爆破,那么我们只需要检索服务器4625登录失败日志,找到机器行为的,那么就可以知道谁攻击我,谁攻击我,谁就是有问题的机器
在这里插入图片描述
又拐回来了,日志虽然只有5000+条,但是时间线太长,如果一条一条筛不太现实,这个时候我们直接上工具
Log Parser Studio ,这是一款图形化日志分析工具,我们只需要用到几条简单的SQL语句即可快速筛选我们想要的内容
首先我们先将系统日志导入到工具内
在这里插入图片描述
而后我们新建一个窗口,修改日志类型,输入sql语句

SELECT TimeGenerated AS [时间],EXTRACT_TOKEN(Strings,5,'|') AS [登录用户名],EXTRACT_TOKEN(Strings,6,'|') AS [登录域],EXTRACT_TOKEN(Strings,19,'|') AS [源IP地址],EXTRACT_TOKEN(Strings,10,'|') AS [登录类型],EXTRACT_TOKEN(Strings,11,'|') AS [登录进程]
FROM C:\Users\Administrator\Desktop\LPSV2.D1\157-4625.evtx 
WHERE 
EventID=4625

此SQL语句可以获取所有的4624登录失败日志,筛选出爆破的时间、爆破的用户名、登录域、源IP地址、登录类型、登录进程信息;我们着重关注登录类型为3,登录进程为Ntlmssp的,这个进程其实就是445/3389爆破的记录
在这里插入图片描述
我们可以点击红色感叹号执行,而后将结果导出到表格里,这样更方便我们观察
在这里插入图片描述
导出结果如下图所示
在这里插入图片描述
我们以此类推,导出4624结果

SELECT TimeGenerated AS [时间],EXTRACT_TOKEN(Strings,5,'|') AS [登录用户名],EXTRACT_TOKEN(Strings,6,'|') AS [登录域],EXTRACT_TOKEN(Strings,18,'|') AS [源IP地址],EXTRACT_TOKEN(Strings,8,'|') AS [登录类型],EXTRACT_TOKEN(Strings,9,'|') AS [登录进程]
FROM C:\Users\Administrator\Desktop\LPSV2.D1\157-4625.evtx 
WHERE EventID=4624

在这里插入图片描述
我们看一下导出结果
在这里插入图片描述
这两个并没有卵用,我们只需要知道谁爆破我们了就可以了,那么我们可以这样做

SELECT DISTINCT to_date(TimeGenerated) AS [时间],EXTRACT_TOKEN(Strings,19,'|') AS [源IP地址],EXTRACT_TOKEN(Strings,10,'|') AS [登录类型],EXTRACT_TOKEN(Strings,11,'|') AS [登录进程],EXTRACT_TOKEN(Strings,5,'|') AS [登录用户名],COUNT(*) AS [总数]
FROM C:\Users\Administrator\Desktop\LPSV2.D1\157-4625.evtx  
WHERE EventID = 4625 
GROUP BY to_date(TimeGenerated),  EXTRACT_TOKEN(Strings,19,'|') ,EXTRACT_TOKEN(Strings,10,'|') , EXTRACT_TOKEN(Strings,11,'|'), EXTRACT_TOKEN(Strings,5,'|')
HAVING COUNT(*) > 5 
ORDER BY to_date(TimeGenerated), COUNT(*) DESC

在这里插入图片描述
我们直接将每天的IP去重复,然后按照日期排序,将每天对我们爆破过的IP进行单独计数,我们直接就知道了都有谁爆破我们了,大大的爽
在这里插入图片描述
只筛选4625的源IP地址

SELECT DISTINCT EventID, EXTRACT_TOKEN(Strings,19,'|') AS IPAddress 
FROM C:\Users\Administrator\Desktop\LPSV2.D1\157-4625.evtx 
WHERE EventID = 4625 

在这里插入图片描述
至此告一段落,清除也简单,结束掉进程,删除就行了

相关文章:

Wannacrypt蠕虫老树开花?又见Wannacrypt

Wannacrypt蠕虫是一个在2017年就出现的远古毒株,其利用永恒之蓝漏洞降维打击用户服务器,而后进行扩散勒索,曾经一度风靡全球,可谓是闻者伤心,听着落泪,因为这玩意解密是不可能 解密的。 而2023年的今天&am…...

结合基于规则和机器学习的方法构建强大的混合系统

经过这些年的发展,我们都确信ML即使不能表现得更好,至少也可以在几乎所有地方与前ML时代的解决方案相匹配。比如说一些规则约束,我们都会想到能否把它们替换为基于树的ml模型。但是世界并不总是黑白分明的,虽然机器学习在解决问题…...

Spring Security OAuth2实现多用户类型认证、刷新Token

原本的OAuth2登录支持用户名密码登录,现在还想支持另外用id号码和密码登录。但是OAuth2默认提供的UserDetailsService只允许传入一个参数:想要实现多种用户登录,是不是可以考虑loadUserByUsername方法携带多个参数呢?接下来记录一…...

云计算介绍,让你更了解云计算

同学们好! 第一次接触IT行业吗?没关系,看完这篇文章肯定会让你不再陌生。给自己几分钟时间,认真看完哦! 1、不知道什么是云计算? 网络计算云计算 官方定义是:通过网络提供可伸缩的分布式计算…...

阿里大佬翻遍全网Java面试文章,总结出这份1658页文档,GitHub收获25K+点赞

就目前大环境来看,跳槽成功的难度比往年高很多。一个明显的感受:今年的面试,无论一面还是二面,都很考验Java程序员的技术功底。这不又到了面试跳槽的黄金段,成功升职加薪,不成功饱受打击。当然也要注意&…...

【JDK1.8 新特性】Lambda表达式

1. 什么是Lambda表达式? Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。使用它可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达…...

【Vue.js】Vuex核心概念

文章目录全局状态管理模式Vuexvuex是什么?什么是“状态管理模式”?vuex的应用场景Vuex安装开始核心概念一、State1、单一状态树2、在 Vue 组件中获得 Vuex 状态3、mapState辅助函数二、Getter三、Mutation1、提交载荷(Payload)2、…...

react router零基础使用教程

安装既然学习 react router 就免不了运行 react安装 reactnpx create-react-app my-appcd my-appnpm start安装 react routernpm install react-router-dom如果一切正常,就让我们打开 index.js 文件。配置路由引入 react-router-dom 的 RouterProviderimport {Route…...

IOC三种依赖注入的方式,以及区别

目录构造方法注入(constructor injection)setter 方法注入(setter injection)接口注入(interface injection)三种方式比较构造方法注入(constructor injection) 构造方法中声明依赖…...

Ubuntu18安装新版本PCL-1.13,并和ROS自带PCL-1.8共存

文章目录1.安装新版本PCL-1.132.在工程中使用新版本的PCL-1.133.pcl-1.13误装到/usr/local/下如何卸载1.安装新版本PCL-1.13 下载PCL-1.13代码: 修改CMakeLists.txt文件,不编译vtk相关的代码:vtk的问题比较难解决,但是一般我们安…...

计算机图形学08:中点BH算法绘制抛物线(100x = y^2)

作者:非妃是公主 专栏:《计算机图形学》 博客地址:https://blog.csdn.net/myf_666 个性签:顺境不惰,逆境不馁,以心制境,万事可成。——曾国藩 文章目录专栏推荐专栏系列文章序一、算法原理二、…...

基于java的高校辅导员工作管理系统

摘 要网络技术的快速发展给各行各业带来了很大的突破,也给各行各业提供了一种新的管理模块,对于高校辅导员工作管理将是又一个传统管理到智能化信息管理的改革,设计高校辅导员工作管理系统的目的就是借助计算机让复杂的班级信息、学籍信息等管…...

字节3次都没裁掉的7年老测试。掌握设计业务与技术方案,打开上升通道!

前言职场中的那些魔幻操作,研发最烦的是哪个?“面对业务需求的时候,可能都听过这样一句话:这个很简单,直接开发,三天内上线;”朋友说:“产品听了流泪,测试见了崩溃&#…...

详细介绍关于链表【数据结构】

文章目录链表单链表尾插头插尾删第一种方式删除第二种头删查找pos之前插入pos位置删除pos后面插入pos位置后面删除链表 顺序表缺点: 空间不够了 需要扩容,但是扩容是有消耗的头部或中间位置需要插入或删除,需要挪动 ,但是挪动是…...

2.3 二分搜索技术

二分搜索算法是运用分治策略的典型例子。给定己排好府的 n个元素a10:n-1],现要在这n个元素中找出一特定元素3。首先较容易想到的是用顺序搜索方法,逐个比较a10:1-1]中元素,直至找出元素,或搜索遍整个数组后确定,不在其…...

RWEQ模型的土壤风蚀模数估算、其变化归因分析

土壤风蚀是一个全球性的环境问题。中国是世界上受土壤风蚀危害最严重的国家之一,土壤风蚀是中国干旱、半干旱及部分湿润地区土地荒漠化的首要过程。中国风蚀荒漠化面积达160.74104km2,占国土总面积的16.7%,严重影响这些地区的资源开发和社会经…...

学习streamlit-1

Streamlit A faster way to build and share data apps streamlit在几分钟内就可以将数据脚本转换为可共享的web应用程序,并且是纯python编程,无需前端经验。 快速开始 streamlit非常容易上手,运行demo只需2行代码: pip install…...

GPS定位知识介绍

GPS定位和网络定位 GPS定位需要卫星参与,设备借助搜到的卫星讯号,计算出设备的位置。网络定位是指利用基站、WIFI MAC,获取一个粗略的位置。3D定位和2D 定位 3D一般是指使用至少4颗以上卫星完成的定位。2D一般使用3颗卫星完成的定位过程。...

【Linux】理解Linux环境变量

🍎作者:阿润菜菜 📖专栏:Linux系统编程 初识环境变量 什么是环境变量 我们平常所用的Linux指令其实也是可执行程序,和我们自己写的二进制程序没什么两样,那么为什么我们在执行自己的程序的时候需要加上 ./…...

ISCSI块存储-集群

ISCSI块存储-集群 1、ISCSI概述 ISCSI与SCSI原理对比 底层都是硬盘 ISCSI第二层就是通过gateway/网络获取–>SCSI:是直连获取 常见的用于ISCSI服务的网络拓扑类型 SAN:Storage Area Network:存储区域网络; 多采用告诉光纤…...

css实现圆环展示百分比,根据值动态展示所占比例

代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

FFmpeg 低延迟同屏方案

引言 在实时互动需求激增的当下&#xff0c;无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作&#xff0c;还是游戏直播的画面实时传输&#xff0c;低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架&#xff0c;凭借其灵活的编解码、数据…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

云原生安全实战:API网关Kong的鉴权与限流详解

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关&#xff08;API Gateway&#xff09; API网关是微服务架构中的核心组件&#xff0c;负责统一管理所有API的流量入口。它像一座…...

Redis:现代应用开发的高效内存数据存储利器

一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发&#xff0c;其初衷是为了满足他自己的一个项目需求&#xff0c;即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源&#xff0c;Redis凭借其简单易用、…...

通过MicroSip配置自己的freeswitch服务器进行调试记录

之前用docker安装的freeswitch的&#xff0c;启动是正常的&#xff0c; 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...