【杜鹃沙盒】Cuckoo SandBox学习笔记
这是个github上开源前十的项目之一,笔者只完成学习了部分功能,前来分享点经验
整个工程 连接地址 :https://github.com/cuckoosandbox/cuckoo
0x01调试运行 学习代码很关键的就是调试了 所以首先奉上点调试小技巧
一个编译器最基本的就是调试了,所以先介绍下基本的调试啊
F9:调试运行,调试运行的过程中按F9,会直接走到下一个断点。
F8:单步运行,相当于VS的F10
F7:也是单步运行,不过近函数,相当于VS的F11
Ctrl+Alt+B:进函数 查看函数的具体内荣,相当实用,必备
Ctrl+F:搜索关键的变量函数,查看函数或者变量之间拖拽到watches里面进去就行了
0x02 函数讲解篇
首先是读配置文件的信息
第一箭头,合成的绝对路径
读的过程很明细了 调试结合配置文件信息
Section = config(文件名),Key = hello_world此类的 keyvalue=on
这样变历就可以把配置文件关键信息一一读取出来
然后设置Server的信息 定了个类,配置Server类的相关信息,端口,IP,注入文件的路径,分析包的类型什么的
然后判断是否PE文件 exe.sys.dll中一个,这是属于分析PE文件那一块儿的
接下就是同样相似的步骤配置我们的虚拟机的相关信息,过程差不多,这里就不贴代码讲解了
然后是利用TCP 绑定端口,开启线程监听
对端口进行监听,然后就可以开启我们的XML-RPC构建主机方面的连接了 url = http://192.168.1.10:8000
既然你要连接人家,构建好了好之后当然要进行连接,下面是等待虚拟机的连接
用了个延迟等待的函数,然后判断GetSatutau()得到链接状态,一旦连接上 退出等待 开始分析
然后构建需要传输文件的路径,遍历,压缩 ,使用xmlrpclib.Binary(zip_Data.getvalue())
传送压缩包.os_walk遍历路径,压缩传送分析目录的所有文件
虚拟机进行解压
虚拟机接受到相应需要分析的文件后就可以开始注入分析了
接下来就可以构建分析线程文件的路径,subprocess.Popen.开启线程,启动分析
而客户端主要是这几句,使用SimpleXMLRPCServer,构建RPC连接 函数的调用都在服务端
Analyzer.py分析过程不是很难,提权,创建管道,进程间通信,然后调用写好的,LoadExe.exe,Target.exe,Dll,进行注入就OK了 ,大部分注入的功能都实现在C++里面,主要有远程注入和APC注入;
最后附上 成功运行结果 希望对学习 这款恶意分析系统的人有所帮助