永恒之蓝漏洞复现记录

news2024/9/20 11:32:02

准备工作

实验环境搭建
  • 下载并安装VMware Workstation软件
  • 查看VMware的虚拟网卡和虚拟网络设置
  • 安装Windows虚拟机镜像和Kali linux虚拟机镜像
实验目的
  • 掌握Windows网络服务远程渗透攻击基本理论知识。
  • 掌握Windows漏洞及漏洞利用方法原理。
  • 掌握Windows网络服务远程渗透攻击防范措施。
  • 了解渗透测试软件Metasploit并掌握操作使用Metasploit进行Windows远程渗透攻击的方法。

知识点整理

漏洞与漏洞利用

漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或者破坏系统。

漏洞利用是指用户从目标系统中找到容易攻击的漏洞,然后利用漏洞获得权限。

WannaCry勒索病毒

病毒指编织者在计算机程序中插入的破坏计算机功能或者破坏数据、影响计算机使用并且能够自我复制的一组计算机指令或者程序编码。

2017年5月爆发的WannaCry病毒,是一种蠕虫式勒索病毒。

不法分子利用危险漏洞MS17-010“永恒之蓝”(Windows操作系统445端口存在过的漏洞)进行网络端口扫描攻击,目标机器被成功攻陷后会从攻击机下载WannaCry病毒进行感染,并作为攻击机再次扫描互联网或局域网其他机器,形成蠕虫感染大范围超快速扩散。

Metasploit

Metasploit渗透测试软件是附带数百个已知软件漏洞的专业级漏洞检测和攻击工具,通过它可以很容易的获取、开发并对计算机软件漏洞实施攻击,也可以帮助专业安全人士识别安全性问题、验证漏洞缓解措施。

Metasploit软件采用开发框架和模块组件的可扩展模型,模块组件是真正实施渗透攻击的代码,比如利用安全漏洞的Exploits模块、进行扫描和查看等其他辅助任务的Auxiliary模块等。

Metasploit软件提供四种不同的用户交互接口,其中MSF交互终端(MSFCONSOLE)比较常用。MSFCONSOLE可获得用户连接到主机的信息,从而利用漏洞,使得用户能启动渗透攻击目标系统。

MSFCONSLOE常用命令

search:搜索一个特定模块

use:选择使用特定的模块

run:启动一个非渗透测试模块

exploit:实施渗透攻击

set:配置各种类型模块中的详细参数

quit/exit:退出终端

show:查看每种类型模块的详细配置参数

实验过程

1)对Windows靶机上的MS17-010漏洞进行远程渗透攻击,获得目标主机的访问权

第一步:设置环境:

  • 确保Kali linux和Windows靶机都在同一个网络中。
  • 检查Windows靶机的IP地址。

查询Kali的IP地址:

image-20240826201310195

查询Windows7的IP地址:

image-20240826201444011

容易发现IP地址均为192.168.175.xxx ,判断两个计算机都处于同一个网络中。

使用Kali攻击机ping Windows靶机:

image-20240826203546904

使用Windows靶机ping Kali攻击机:

image-20240826202647377

证明两台计算机可以互相通信。

在Kali中启用Metasploit:

image-20240826203747781

搜索MS17-010漏洞的相关模块:

image-20240826212552503

选择合适的expolit模块:(这里选择的是ms17_010_eternalbue)

image-20240826212805242

设定RHOSTS和其他必要参数:

设定靶机的IP地址:

image-20240826213012056

设置payload(指的是在攻击过程中实际执行的代码或命令,这些代码或命令是嵌入在攻击载荷中的。当一个漏洞被成功利用时,payload 就会被执行,从而实现攻击者的目的。):

image-20240826214712328

windows:表明这个 payload 适用于 Windows 操作系统。

x64:表示这个 payload 是为 64 位的 Windows 操作系统设计的。如果目标是 32 位系统,你会使用类似 windows/meterpreter/reverse_tcp(去掉 x64)。

meterpreter:Meterpreter 是一个功能强大的 payload,它提供了一个高级命令行接口,供攻击者使用。它可以执行文件、截取屏幕截图、记录键盘输入、上传/下载文件等等。

reverse_tcp:这是一个通信方式。它表示 Meterpreter 会启动一个反向连接(reverse shell),也就是说,当漏洞被利用成功后,目标机器会尝试连接回攻击者的机器。这种反向连接方式通常用于绕过防火墙和 NAT(网络地址转换)。

设置攻击机的IP:

image-20240826214919503

执行攻击命令:

image-20240826215040333

可以看到我们最后获得了meterpreter会话,代表着攻击命令执行成功了。

2)了解计算机编码方式,操作修改靶机的编码方式

查看目标系统的编码设置:

image-20240826215233620

我们可以观察到目标系统为一个64位的Windows 7系统,使用简体中文,当前有两个用户登录。

接下来开始操作修改靶机控制台的编码方式:

我们可以先在原本的靶机上查看一下活动代码页:image-20240826220059404

936,发现是GBK编码的简体中文

当然,也可以在攻击机上查看:

execute -f cmd.exe -c -H -i

关于这行代码:

execute 用于在目标系统上启动一个进程

-f cmd.exe -f用于指定可执行文件,这里的含义是启动目标系统的命令行

-c 这个指令表示通道化,会将新启动的进程与Meterpreter会话连接起来

-H 用于隐藏新启动的进程窗口,使得程序在后台运行而不会在用户的屏幕上弹出命令行窗口

-i 用于将新启动的进程设置为交互模式,使得可以在攻击机上通过Meterpreter会话与进程交互而不是仅仅启动

image-20240826221102749

接下来将代码页更改为UTF-8(65001):

image-20240826221211940

3)操作实现对靶机进行屏幕监控、键盘监控、新增用户、重启。

屏幕监控:
  • 可以通过 screenshot 命令抓取目标机器当前屏幕的快照:

image-20240826222834809

​ 我们可以在提示路径下找到快照:

image-20240826222933521

  • 使用screenshare实时共享屏幕

    在meterpreter环境中执行screenshare命令,可以在浏览器中实时分享目标机器屏幕

    image-20240827171606883

    image-20240827171554866

键盘监控

发现同样存在system权限无法进行键盘监控的问题,首先将meterpreter会话迁移到一个低权限的进程上:

image-20240827225800594

然后启动键盘监控:

image-20240827225812852

靶机输入文本:

image-20240827225834342

攻击机查看:

image-20240827225855456

关闭键盘监控:

image-20240827225923695

新增用户

首先进入Meterpreter状态后,输入shell进入靶机命令行环境:
image-20240827134238671

在靶机命令行环境下创建新用户:
image-20240827134418817

将新用户提升为管理员权限:

image-20240827134623612

检测一下,成功:

image-20240827135559035

在靶机上查看:

image-20240827135909192

重启

首先尝试直接在Meterpreter状态下直接使用reboot命令:

image-20240827140153646

失败。原因:权限不足

尝试提升权限:

已经是system权限,依然提示权限不足:

image-20240827140417167

尝试在命令行环境下手动重启:

image-20240827160609616

访问被拒绝。

查看当前命令行用户权限:

image-20240827161440983

发现已经是管理员权限

进入命令行打开powershell:

image-20240827173317196

检查发现是因为system权限会拒绝重启操作,尝试将meterpreter迁移到一个低权限的进程当中:

image-20240827224915911

重新进行重启操作:

image-20240827225022584

image-20240827225052421

4)编写脚本实现ssh爆破。可使用paramiko、pexpect、pxssh等Python模块进行编写。但在ssh服务端将配置加密方式为非常用加密方式3des-cbc,端口为9981端口。

先尝试了攻击原本的Windows7靶机,Windows7没有发现自带的ssh服务受限于Win7贫弱的网络服务,忙了好久还是失败了,总是发生10054报错。

实验过程中遇到的问题与解决办法

1) 问题:在使用kali去ping windows7靶机时,出现了无法ping成功的现象

​ 关闭windows7的防火墙或者在防火墙高级设置中启用ICMP响应,实验过程中采用的是关闭了windows防火墙。

2)问题:在meterperter界面下运行run vnc时,成功建立了反向的TCP会话,但是VNC客户端连接失败。

image-20240826223117035

解决方法1:手动尝试重新连接——失败

image-20240826224107953

排查步骤:使用ps命令检查是否有VNC代理程序执行(在meterpeter界面下ps命令用于列出靶机上的所有正在运行的进程)

image-20240826224459884

发现了VNC的代理程序。

检查靶机端口:4545

netstat -an | findstr :4545

netstat 是一个用于显示网络连接、路由表、网络接口状态等信息的命令,适用于各种操作系统。

-a显示素有活动的TCP和UDP连接,以及计算机正在监听的端口。

-n以数字的形式显示地址和端口号,正常情况下会尝试解析并显示对应的主机名和服务名称,这样设置是为了加快命令执行速度,避免因为DNS解析失败导致的信息缺失。

|是管道操作符,用于将前一个命令的输出作为下一个命令的输入

findstr:4545findstr 是 Windows 下的一个命令行工具,用于在文本中搜索特定的字符串,在 Unix/Linux 系统中则为grep命令。这里实现了一个过滤器的作用。

image-20240826230043092

发现没有进程使用4545端口,代表了代理程序没有正确地通过4545端口进行会话。

有可能是VNC代理程序没有被正确启动,或者4545端口被占用或冲突,或者被防火墙阻止了

我们首先重新启动VNC代理程序:

image-20240826230557061

依然失败。

我们更换一个端口:

先执行background回到Metaspolit控制台,

运行set LPORT 5555将端口更换为5555:

image-20240826231746656

发现Metasploit都无法建立连接了

重新ping一下,发现不能够ping通,检查IP地址发现靶机在局域网下的IP地址发生了变化,是否会变化取决于局域网路由器的IPv4地址分配策略,靶机可能会有一段时间从网络中断开了连接。

重新使用nmap扫描靶机的开放端口:

image-20240826232511672

重新设定RHOSTS和端口:

image-20240826232751951

vnc代理成功运行并监听4545端口,准备接受连接:

image-20240826233052048

在准备连接时又发生了程序连接断开:
检查VNC代理日志:

通过shell进入目标系统命令行,并检查日志:
使用ls命令出现乱码:image-20240827122506588

使用Windows系统原生的dir命令:

image-20240827122651936

image-20240827123047035

日志显示 Windows Defender 多次尝试通过 Windows Update 来更新病毒定义,但均失败,并且返回错误代码 0x80072ee2

尝试失败,安心使用screenshare

补充:发现原因,未在VMWare中打开VNC设置,时间不充裕,故没有图像补充。

问题:VMware本地模式仅主机模式连接失败,桥接模式显示没有可用网卡

image-20240828030753817

检查设备管理器发现VMware相关网络适配器都为黄色感叹号,错误码为56

image-20240828030630856

查找资料后发现是因为之前删除过VMware,没卸载干净,有注册表残留。

本地win+R进入注册表:

image-20240828031250446

ctrl + f,输入 3d09c1ca-2bcc-40b7-b9bb-3f3ec143a87b,查找并删除,恢复正常:

image-20240828031704510

进入vmware虚拟网络编辑器:

image-20240828031826373

还原默认设置:

image-20240828031856399

问题解决。

SSH爆破中目标拒绝:

image-20240828032355961

发现是虚拟机未安装SSH服务:

image-20240828032614941

安装并启动 SSH 服务:

因为在虚拟机中下载过慢,在主机中下载并共享给虚拟机。

尝试使用RDP共享剪切板:使用 mstsc 命令打开远程桌面连接。

输入虚拟机的 IP 地址,连接到虚拟机。

image-20240828041001039

输入账户与密码后,连接成功:image-20240828041752546

通过剪切板复制:image-20240828042336298

安装SSH image-20240828043850554

思考:关于为什么使用管理员权限可以进行重启和键盘监控操作,但换成system权限却会被拒绝访问?

这个问题反映了现代操作系统严格的安全沙箱机制,隔离了不同权限的操作,使得即使是System账户,也会在某些情况下受限。

SYSTEM 账户是操作系统内部使用的一个特殊账户,通常用于运行操作系统级别的服务和进程。它拥有对系统资源的全面访问权限,但是通常不会在用户会话的上下文中运行,相比之下,管理员账户是在用户会话中运行的,更加适合执行涉及用户界面的操作。

Windows操作系统将操作分为用户模式和内核模式。SYSTEM 权限通常用于内核模式的操作,而涉及用户输入、输出的操作则在用户模式下进行。而重启和键盘监控操作的操作通常被视为用户模式操作,因此需要在特定的权限下执行。

总结来说dministrator是系统内置的管理员用户,一般用户会用到的相关都是以这个权限身份运行的,而System权限是系统本身的权限,只用一些系统进程会具有该权限,正常用户平时并不会接触到。

ystem权限却会被拒绝访问?

这个问题反映了现代操作系统严格的安全沙箱机制,隔离了不同权限的操作,使得即使是System账户,也会在某些情况下受限。

SYSTEM 账户是操作系统内部使用的一个特殊账户,通常用于运行操作系统级别的服务和进程。它拥有对系统资源的全面访问权限,但是通常不会在用户会话的上下文中运行,相比之下,管理员账户是在用户会话中运行的,更加适合执行涉及用户界面的操作。

Windows操作系统将操作分为用户模式和内核模式。SYSTEM 权限通常用于内核模式的操作,而涉及用户输入、输出的操作则在用户模式下进行。而重启和键盘监控操作的操作通常被视为用户模式操作,因此需要在特定的权限下执行。

总结来说dministrator是系统内置的管理员用户,一般用户会用到的相关都是以这个权限身份运行的,而System权限是系统本身的权限,只用一些系统进程会具有该权限,正常用户平时并不会接触到。

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

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

相关文章

Spring02——bean基础配置、bean实例化——构造方法/静态工厂/实例工厂与FactoryBean、bean的生命周期

IOC相关内容 通过前面两个案例,我们已经学习了bean如何定义配置,DI如何定义配置以及容器对象如何获取的内容,接下来主要是把这三块内容展开进行详细的讲解。 bean基础配置bean实例化——构造方法bean实例化——静态工厂bean实例化-实例工厂…

笔记整理—内核!启动!—uboot部分(3)uboot启动内核传参

uboot会以tag的方式给内核传递参数,tag是一个数据结构,在uboot中与linux_kernel中都有相同的结构。 kernel接收到的传参由若干个tag构成,从tag_start到tag_end之间的数据构成,读到start时开始传参,end结束传参。 CON…

算法专利复现_基于ngboost和SHAP值可解释预测方法

大家好,我是重庆未来之智的Toby老师,最近看到一篇专利,名称是《基于NGBoost和SHAP值的可解释地震动参数概率密度分布预测方法》。该专利申请工日是2021年3月2日。 专利复现 我看了这专利申请文案后,文章整体布局和文字内容结构不错…

算法基础-区间合并

1、按照区间的左端点排序 2、 左端点小于等于ed,只需要更新ed和右端点的最大值 左端点大于ed,存入res中,并更新st和ed,最后一组数据手动插入res public class Main {public static void main(String[] args) {Scanner in new S…

Pinterest账号被封?试试这几种解封方法

Pinterest作为一个充满创意与灵感的视觉社交平台,吸引着大量用户和企业前来展示、收藏和分享他们的作品。然而,如同其他社交媒体平台一样,Pinterest也设立了一套严格的使用规则和监测机制,以保障平台内容的质量和用户的良好体验。…

景联文科技提供运动数据采集服务

运动数据的重要性 运动数据的收集与分析对于提升个人健康管理和运动表现具有重要意义。 通过收集心率、步态、速度等生理和运动参数,不仅可以为运动员提供个性化的训练方案,帮助其优化表现,还能早期发现并预防伤病。对于普通健身者而言&…

MVC架构模式

MVC(ModelView Controller)是软件工程中的一种软件架构模式 ,它把软件系统分为模型、 视图和 控制器 三个基本部分。用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时…

华为OD机试真题 - 字符成环找偶数O - 滑动窗口(Python/JS/C/C++ 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、…

KTV结算源码--SAAS本地化及未来之窗行业应用跨平台架构

一、代码 function 未来之窗_人工智能_KTV结账(title,桌台id,类型id,类型名称){if(room_status0){alert("空房不可操作");return "空房";}if(room_status1){alert("空房不可操作");}else if(room_status2){//alert("结账");var 未来之…

图像识别智能垃圾桶项目开发

一、项目思维导图 二、语音模块配置信息 三、项目程序 main.c garbage.c garbage.h uartTool.c //串口发送数据 uartTool.h

4款pdf在线编辑工具,带你搞定PDF

作为一个在办公室里日夜奋斗的文案策划人员,我深知在工作中,效率和工具的重要性。PDF文件的编辑是我们工作中不可或缺的一部分,而选择一款合适的PDF编辑器,就像是找到了一把打开效率之门的钥匙。今天,我就来和大家分享…

深度学习-HW3(CNN)卷积神经网络-图像分类-【Datawhale X 李宏毅苹果书 AI夏令营】

分类实际上是一个回归问题。 登录阿里云的账号,才发现有3个账号,要认证学生身份,试遍了3个账号后才试出学生认证号。打开看了一下,居然还有高校教师优惠申请,努力搞一个(最近是想薅一把教师资格证的福利&a…

中仕公考怎么样?省考笔试成绩什么时候出?

根据往年的经验,省考笔试的成绩通常在考试后的大约一个月左右公布,但具体日期会根据各省份的公告而有所差异,不同省份具体时间不同,以2024年的为例: 广东省预计于笔试后约30天发布、山东省预计于笔试后约35天发布、浙…

操心没小课堂第一节 协同过滤算法

协同过滤算法 协同过滤算法(Collaborative Filtering)是推荐系统中一种广泛应用的技术,它主要依赖于用户的行为数据来预测用户可能感兴趣的内容。协同过滤算法可以分为两大类:基于用户的协同过滤(User-Based Collabor…

【论文阅读】LJP法律判决预测论文笔记

[大模型 | 类案检索] Precedent-Enhanced Legal Judgment Prediction with LLM and Domain-Model Collaboration key point 会议:EMNLP2023 贡献:提出了一个结合领域模型和大模型的先例增强的LJP框架,其实主要是用到的大模型,比…

Python画笔案例-024 绘制八圆围正方

1、绘制八圆围正方 通过 python 的turtle 库绘制八圆围正方的图案,如下图: 2、实现代码 绘制一个八圆围正方,以下为实现代码: """八圆围正方.py """ from turtle import Turtle # 从海龟模块导入…

阶段二 - 小程序反编译及调试

在打开小程序后,小程序的apkg会放在以下目录中: 使用解包工具对小程序进行解包: 解包工具:链接: https://pan.baidu.com/s/1KLDbivGPCPhqt1nbLVbhXA?pwdkckq 提取码: kckq 解包后会生成一个这样的文件: 在这里输…

【Netty】FastThreadLocal比ThreadLocal快之源码解析

ThreadLocal 【并发设计模式】聊聊线程本地存储模式如何实现的线程安全 【Java并发】从simpleDateFormart聊聊threadlocal原理机制 前两篇中已经从源码角度进行剖析,本篇主要从设计角度剖析。 在并发中为了保证数据安全,可以采用数据隔离的方式 也就是…

微信视频号 点赞+关注+喜欢+发布评论

微信视频号 点赞关注喜欢发布评论 微信视频号 点赞关注喜欢发布评论

3127. 构造相同颜色的正方形(24.8.31)

题目 给你一个二维 3x3 的矩阵 grid,每个格子都是一个字符,要么是 B ,要么是 W。字符 W 表示白色,字符 B 表示黑色。 你的任务是改变至多一个格子的颜色,使得矩阵中存在一个 2x2 颜色完全相同的正方形。 如果可以得到…