RAT结构演变史
转载保留版权
[email protected]
http://www.famdiy.com/
想了解更深层的RAT架构的不妨进来看看.高手飘过…
稍微详细的讲述一下Bifrost,Flux,PoisonIvy的结构
只说RAT结构演变…其他技术不讨论…
自从Bo出世后.大量的RAT相继出现…
国内熟悉的,冰河,黑洞,PcShare,灰鸽子等…
国外熟悉的.Bifrost,Flux,Assasin,Beast,Bandook,Institution,PoisonIvy等…
相继有自己的特色…包括程序结构…出现了许多令人惊叹的东西…
[1]结构简介:
第一代:-EXE独立结构
相对应的…C/S架构…
EXE—->EXE
都是EXE的…比如说冰河,黑洞…几乎第一,二代RAT都是
第二代:DLL分体结构
这代的DLL纯粹是为了穿墙而设计…
利用Inject Code —->LoadLibrarA
完成DLL载入.
或者注册表,消息钩子等等…
2.5:Plugin型架构
插件结构的RAT大部分功能…
说道插件型RAT.国内只有灰鸽子之流做出这样的东西.
而且纯粹是摆设…
当然还有FWB++
DLL映射注入…相信大家知道FilePacker,Alloy,MoleBox,PEBundle
将DLL映射到EXE空间里,然后修改导入表跳转地址…
这样做到了无需加载DLL(其实DLL是映射到EXE空间了)
FWB++就是这么玩~…乎乎~
Tequila Bandita就是采用DLL Stream Inject的~国内使用的比较少…
关于插件的RAT.做的最绝的要属Spirit系列
那几乎完美的体积,强悍的代码注入方式.包括代码优化整合,PE结构的使用
早就了Spirit4b1那 1.37k的体积…(API Hash搜索(写的太Cool了),LZO压缩引擎,RT32注入引擎.)
他主要是采用代码注入方式…然后再传输DLL 插件
第三代:代码注入类型…
这个技术类似病毒技术…将病毒体代码
写入host文件…
再进程注入方面.既然可以写LoadLibraryA函数
为什么就不能写入所有代码呢…
技术难点:代码,数据重定位问题…
还有数据的地址获取等等…一些这样那样的问题…
当然在乎编程者…其实这些都很容易解决…
3.5:
NT核心下可以让你使用ProcessHack技术了…
替换代码,傀儡进程等等都是类似技术
综上所述…现在的RAT无外乎这几种形态….
那我说了半天究竟要说什么??我说的是木马的框架结构…
下面小议一下木马存在形态…
//————————————————–
冰河:
单纯的EXE,WIn9x下将自己注册成系统服务隐藏进程…
黑洞,Nuclear Rat,灰鸽子,Spook,风雨江湖.小熊那东东…
都是采用第二代形式…
EXE+DLL…
这代体积都比较庞大…
不管是什么,消息钩子
下面主要说说,Bifrost,Flux,Poison Ivy吧…国内的没啥意思,请原谅我的无理…
本文说的是框架.聊的是~自己敢兴趣的东西…
相信也有的朋友对Bifrost,Flux,Poison Ivy能这么小的体积感兴趣.
Flux,Bifrost,Poison Ivy其实都是采用FWB+技术…
但是他们都有一个共通点…
这里算上,C-One V1.0(Caecigenus)
Caecigenus好牛的.别的不知道,至少他,法文,English,中文都会说…
x140d4n说他是中国人?还是华人???
C-One和Flux类似.但是编码技术不如Gargamel来的Cool…
Flux,Bifrost,Poison Ivy,C-One都是前EES.现在的ChaseNET的作品
[1]C-One比较简单.先说一下吧
1.安装自己
2.注入到默认浏览器
浏览器路径由HKEY_CLASSES_ROOT\HTTP\shell\open\command获取
由于他没有使用RT32或者EliRT组件库
所以这个RAT不支持Win9x
注入方式也很简单.
VirtualAllocEx
VirtualProtectEx
WriteProcessMemory
CreateRemoteThread
WaitForSingleObject
协议包也很简单(简单的令人发狂…速度慢得要死…还弄了一个既算加密又不算加密的加密算法)
[2]Flux,Bifrost
采用的是原始结构.佩服Gargamel,ksv的毅力
居然可以把这么多代码直接用VC写出来…完全代码注入…
和上面的C-One一样…注入方式不过二者都使用了EliRT 1.01
不过为了防止被跟踪他们都是先将代码注入
explorer.exe或者msgsrv32.exe
然后再次跳转…当然你熟练操作你的Debuger Tools的话很容易就可以注入你想注入的进程
然后去分析他的结构..OD足矣…
特殊的地方,发送指令,执行指令,都是采用同一个Socket,可以多线程操作…
相互之间不会冲突.你可以一边查看桌面,WebCam,还有传输文件..同时还可以干点别的
可见作者功力之高…国内没有任何一款RAT可以做到如此功能…
PcShare也是使用了HTTP隧道双工…一个功能一个线程~两个Socket
八大功能的意思就是说…有2*8=16个Socket连接隧道…(应该不会这么恐怖吧)
代码注入没啥好说的就是经验了…自己跟踪一下就明白了
Bifrost的功能比Flux多一点…他是如何做到的??
插件!Plugin!~~当然他使用的不是LoadLibraryA来载入DLL的不然你就可以发现了…
用Bo2k的Plugin引入代码…将DLL映射到EXE进程中然后再加载调用…
很有意思吧…(新版本的Poison Ivy据说也采用这个功能…)
Flux的Socket生存能力比Bifrost强一点,体积小一点,但是估计上线的数量不是很多
居然一个I/O输入输出模型都没有使用…汗!
[3]Poison Ivy…恐怖的家伙
以前就对Poison Ivy的结构感觉很神奇…体积这么小巧.
功能还可以这么完善.有点违反"能量守恒定律"难道shapeless技术高到如此境界?
IDA+OD拆了他…
由于几乎所有的API都是自己内存搜索的–不是使用GetProcAddress函数…
自己写的一个Hash函数..Crc32b Hash算法…
OD简单的跟踪了一下.发现Poison Ivy代码有些地方写的并不高明
代码优化做的完全没有Spirit那么精致.(太精致了~)
代码一点都不优美.但是很容易OD跟踪分析…没有使用代码的编码优化技巧
为什么说他恐怖…一开始认为和Bifrost一样…
传输Plugin插件过去然后再控制…
经过OD三级跳分析后(先注入Explorer.exe…小心使用OD跟踪下~程序很容易死循环
主要原因在于.获取Explorer.exe进程始终返回0!…但是他会一直再那里等…直到有
Explorer.exe的存在.你可以自己手工跳转+填写Explorer.exe进程PID—设置为自己的
记事本或者计算器..这样容易跟踪一些..)
抓包分析…+冰刃观察…发现Poison Ivy
居然不是传输…Plugin做到的…自己观察下发现…
他第一次是直接传输~功能代码过去.
(
数据包是压缩的.没有加密..NTDLL.RtlGetCompressionWorkSpaceSize,
RtlCompressBuffer,RtlDecompressBuffer
)压缩数据了…你可以自己Dump出数据包.然后自己解压缩.然后试试看是不是
都是明文了..效果不错.学习数据包结构了…呼呼~我喜欢他们的风格
由于直接传输功能代码(第二次就不传输了…)
实在是太恐怖了…由于可记录.而且第二次就不需要再传输..所有功能都是本地实现
…想想会如何??哈哈~是不是感觉很有意思…
和小弟以前做的一个主动功能型RAT一样(反向连接.加文件管理,进程管理功能后只有945字节,nasm写的)
主动功能型?再TT里面第一次看到drocon弄出来的…感觉这小胖子(x140d4n那里的来的消息他胖!)
很厉害呀~drocon现在主要做一些asm代码优化的工作.很不错的一些工作..比较喜欢他的编码风格
特别是代码优化方面做的真的很不错…PS:x140d4n啥时带我去见他呀…
接着说:Poison Ivy和Flux,Bifrost有一些不同
支持文件多线程多文件同时传输,为了保证Socket的稳定性,他在文件传输时使用了多个Socket
进行传输…其他的还是保留独立Socket
同样采用多线程操作…但是似乎主控段的上线率不是很高.而且没有使用Thread Pool
所以线程切换浪费了太多的时间…你可以观察一下..
用冰刃打开注入进程,你每次刷新一下目录或者操作一次,是不是程序就多出一个.线程???
哈哈~而且Poison Ivy还有许多地方不太完善,但是现在变成VIP版本了…没有多少机会分析了
唉~谁让人家老外福利好呢.在家没事写东西卖钱.谁给我钱我也天天在家写…乎乎~~
综上的结构看来…是不是感觉Poison Ivy代码是如何实现的还是一头雾水?
1.被控端连接主控段
2.主控段发送主动功能代码给被控端…
3.被控端新建一块内存保存主动功能代码(这里有个BUG.当主控段重复发送功能代码的时候.
他会不去释放直接申请内存保留主动功能代码…)居然都不释放…呼呼~
4.然后当主控段再次发送控制指令的时候…被控端.开始调用一开始接受的主动功能性代码…
(新建线程执行的.所以造成了大量的空余线程…似乎都没有使用CloseHandle关闭???)
5.还有什么好说的?自己Dump~然后看数据包吧…
转载保留版权
[email protected]
http://www.famdiy.com/
好了马上手术了上传一篇以前写的烂文.有啥好的想法不妨跟贴…