-
-
恶意代码分析利器 – scdbg
-
发表于: 2013-11-10 11:03 1264
-
原文地址:890K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3k6J5k6h3g2T1N6h3k6Q4x3X3g2U0L8$3#2Q4x3V1k6@1L8$3!0D9M7#2)9J5c8U0p5$3x3K6t1H3i4K6u0W2K9s2c8E0L8l9`.`.
什么是scdbg
scdbg是一款多平台开源的Shellcode模拟运行、分析工具。其基于libemulibrary搭建的虚拟环境,通过模拟32位处理器、内存和基本Windows API运行环境来虚拟执行Shellcode以分析其行为。有了虚拟执行妈妈再也不用担心我的电脑中病毒了。
基本原理
众所周知,shellcode为了实现特定的功能必须通过调用系统API来完成-不论先前怎怎么变形怎么加密最后都会调用系统API。scdbg就是通过模拟执行以及hook多达200多个API来探测shellcode的行为。当然比如创建文件和访问网络这些危险的API并没有真正的在本机执行,而是通过传回虚假的返回值来欺骗shellcode让其平稳运行。
示例
直接命令行输入scdbg.exe example.sc 来看看输出:
其中example.sc文件就是以二进制形式保存的Shellcode,我们可以看到这段shellcode调用了两次较关键的函数-CreateProcessA,第一次调用tftp.exe程序下载winapi32.exe,第二次准备执行之。很典型的下载并执行行为。有了scdbg我们就不必花很多时间在搭建测试环境、解码shellcode、调试理解各种分枝跳转、担心机器是否中招。。。。。。简单明了。
scdbg和通常的命令行工具一样,有着众多参数选项,这里只做最基本的演示,就不一一列举。想必大家都有在命令行下痛苦的经历,命令行的历史就是我等小菜的血泪史,还好scdbg有GUI图形界面版
指定偏移,自定参数一目了然。
亮点
A. 跨平台开源
同时支持unix和windows系统。对有系统洁癖的同学来说可以放心在unix下搭建环境“调戏”shellcode了。
B.文档类格式漏洞
scdbg能很容易通过交互方式分析诸如pdf,excel,word等文档类漏洞释放出来的shellcode。这类漏洞的相同点就是首先肯定会通过调用GetFileSize找到宿主文
件句柄然后进行下一步操作(是这样的吧:)。感觉这项功能还是有很多应用场景的,命令行如下:
$ ./scdbg -f test.sc -fopen bad.pdf -i
fopen(bad.pdf) = 4d565c
Loaded 312 bytes from file test.sc
Initialization Complete..
Interactive Hooks enabled
401083 GetFileSize(4) = 2031b
401112 GlobalAlloc(sz=2031b) = 60000
401118 SetFilePointer(hFile=4, dist=0, FILE_BEGIN)
401132 ReadFile(hFile=4, buf=60000, numBytes=2031b)
401147 CreateFile(x.exe)
Interactive mode local file: /tmp/WHhUmhtM
401158 WriteFile()
401176 WinExec(x.exe)
其他重要功能
内存监视-简单调试Shell-ROPshellcode分析-内存dump。。。。。。
资源下载
WIN32
可执行程序: ebdK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4y4S2L8X3c8K6M7s2u0A6N6r3g2Q4x3X3g2U0L8$3#2Q4x3V1k6o6L8$3c8W2f1%4c8#2k6X3k6Q4x3V1k6K6j5$3c8T1k6#2)9J5k6i4A6A6M7l9`.`.
源代码:72dK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6V1P5Y4A6A6k6g2)9J5c8W2k6e0i4K6g2X3e0p5W2n7c8f1#2g2
git clone git://github.com/dzzie/VS_LIBEMU.git
*nix/Cygwin Source
源代码 : 260K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6V1P5Y4A6A6k6g2)9J5c8W2y4o6c8p5u0s2
git clone git://github.com/dzzie/SCDBG.git
什么是scdbg
scdbg是一款多平台开源的Shellcode模拟运行、分析工具。其基于libemulibrary搭建的虚拟环境,通过模拟32位处理器、内存和基本Windows API运行环境来虚拟执行Shellcode以分析其行为。有了虚拟执行妈妈再也不用担心我的电脑中病毒了。
基本原理
众所周知,shellcode为了实现特定的功能必须通过调用系统API来完成-不论先前怎怎么变形怎么加密最后都会调用系统API。scdbg就是通过模拟执行以及hook多达200多个API来探测shellcode的行为。当然比如创建文件和访问网络这些危险的API并没有真正的在本机执行,而是通过传回虚假的返回值来欺骗shellcode让其平稳运行。
示例
直接命令行输入scdbg.exe example.sc 来看看输出:
其中example.sc文件就是以二进制形式保存的Shellcode,我们可以看到这段shellcode调用了两次较关键的函数-CreateProcessA,第一次调用tftp.exe程序下载winapi32.exe,第二次准备执行之。很典型的下载并执行行为。有了scdbg我们就不必花很多时间在搭建测试环境、解码shellcode、调试理解各种分枝跳转、担心机器是否中招。。。。。。简单明了。
scdbg和通常的命令行工具一样,有着众多参数选项,这里只做最基本的演示,就不一一列举。想必大家都有在命令行下痛苦的经历,命令行的历史就是我等小菜的血泪史,还好scdbg有GUI图形界面版
指定偏移,自定参数一目了然。
亮点
A. 跨平台开源
同时支持unix和windows系统。对有系统洁癖的同学来说可以放心在unix下搭建环境“调戏”shellcode了。
B.文档类格式漏洞
scdbg能很容易通过交互方式分析诸如pdf,excel,word等文档类漏洞释放出来的shellcode。这类漏洞的相同点就是首先肯定会通过调用GetFileSize找到宿主文
件句柄然后进行下一步操作(是这样的吧:)。感觉这项功能还是有很多应用场景的,命令行如下:
$ ./scdbg -f test.sc -fopen bad.pdf -i
fopen(bad.pdf) = 4d565c
Loaded 312 bytes from file test.sc
Initialization Complete..
Interactive Hooks enabled
401083 GetFileSize(4) = 2031b
401112 GlobalAlloc(sz=2031b) = 60000
401118 SetFilePointer(hFile=4, dist=0, FILE_BEGIN)
401132 ReadFile(hFile=4, buf=60000, numBytes=2031b)
401147 CreateFile(x.exe)
Interactive mode local file: /tmp/WHhUmhtM
401158 WriteFile()
401176 WinExec(x.exe)
其他重要功能
内存监视-简单调试Shell-ROPshellcode分析-内存dump。。。。。。
资源下载
WIN32
可执行程序: ebdK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4y4S2L8X3c8K6M7s2u0A6N6r3g2Q4x3X3g2U0L8$3#2Q4x3V1k6o6L8$3c8W2f1%4c8#2k6X3k6Q4x3V1k6K6j5$3c8T1k6#2)9J5k6i4A6A6M7l9`.`.
源代码:72dK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6V1P5Y4A6A6k6g2)9J5c8W2k6e0i4K6g2X3e0p5W2n7c8f1#2g2
git clone git://github.com/dzzie/VS_LIBEMU.git
*nix/Cygwin Source
源代码 : 260K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6V1P5Y4A6A6k6g2)9J5c8W2y4o6c8p5u0s2
git clone git://github.com/dzzie/SCDBG.git
赞赏
赞赏
雪币:
留言: