【原创】基于QT编写的支持IPv4/IPv6双协议栈,TCP/UDP双模式,DLL内存加载的模块化远控木马
本人已经本科毕业一年有余,在平常实习过程中,发现大佬都对我的本科毕设--双协议栈远控木马感兴趣。
据我所知,目前流行的C2远控软件
中,MSF支持IPv4和IPv6,但是MSF生成的单个木马只是支持其中的一种协议,而不是双协议栈。Cobalt Strike目前尚无IPv6的使用案例。其他支持双协议栈的C2软件大多是C#等编程语言,与本人的毕业设计--IOCP相比 性能上有较大差距。
除此之外,本人的毕设采用了TCP/UDP双模式,可以较快的传输桌面截图信息,实现较低延迟的屏幕共享。在编撰之初,参考了大灰狼、Ghost等优秀远控,考虑到现有的远控程序小马都是集所有功能于一体,不便于免杀,想把部分的被控功能模块化,并通过网络传输后内存加载。当时并不知道有winos早已经实现了我的想法。不过我的思路依然对我有所启发,并最终独立完成付诸实践,编写出模块化远控木马。
在完成毕设的过程中,我除了学到了IOCP这一最复杂的Windows API,同事独立解决了许多历史遗留疑难问题。如“IOCP网络模型设置AcceptEx超时”等,许多难题都是全网零资料。
接下来我逐步揭开我本科毕设的设计过程,向大家介绍
1)使用QT框架编写UI、子线程、网络访问
2)主控端核心高性能服务器是IOCP模型,支持IPv4/IPv6双协议栈,TCP/UDP双模式
3)被控程序的功能(桌面共享、文件下载、命令执行)模块化,并通过DLL侧加载技术(MemoryModule,Joachim Bauch)实现文件不落地。