编译后发现爆出了一个警告没有Main方法,查看代码发现Main函数因为C#的写法在转换后被包进了Program类中,而在Boo语法中类就是类,入口函数是单独的,所以我们需要将Main函数回退一格缩进
选中Main函数后按住Shift+Tab直接会回退一格缩进
再将调用的静态方法Minidump加上类名,保存后进行编译
这时可以看到已经编译成功,同时编译出了一个dll,我们使用高权限运行CMD后运行SharpDump.exe看看是否有问题
可以看到已经成功导出了lsass.exe的Dump,改名解压后即可使用mimikatz查看口令。
没有问题之后咱们就可以将boo脚本放入我们的工程里面了
新建文件SharpDump.boo,选择生成操作为嵌入式资源
直接将转换后的代码Copy过来即可
修改执行的Boo脚本,右键项目重新编译成exe文件。
运行后发现出现了NullReferenceException错误,在反射调用的地方发现传入了null
而在sharpdump.boo的main函数实现中必须得传入一个字符串数组
所以我们传入一个空字符串数组,或者传入-1即可
保存编译后发现成功执行了boo脚本但是dump失败,最后发现是版本问题,将编译版本改为4.5即可
很奇怪的是改为4.5之后再改为4.8又能成功dump了。
结尾今天这一将基本上就算把借鉴SILENTTRINITY的东西讲完了,咱们的C2代码执行这一块儿就基于Boolang来做,这个模块就是核心的执行模块。然后下一步就是从其它的开源C2里面借鉴一些设计比较好的功能,比如说协议、数据包设计等等。第一期的主要任务就是把目前市面上能看到的开源C2的优点都提取出来跟咱们整体的C2设计结合。
个人总结