【杜鹃沙盒】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注入;

最后附上 成功运行结果  希望对学习 这款恶意分析系统的人有所帮助

原文地址:https://www.cnblogs.com/arsense/p/6504769.html