前言
首先声明下,本人既不是杀毒软件厂商技术人员,也不是黑产从业人员。写这篇文章只是记录自己对木马技术研究的一些分析,也并不代表这些技术是当前木马技术领域的主流技术。只是用来分享和交流之用。
进入正题,反木马技术我个人认为比较常见的分为两种,一种是对木马网络特征行为进行分析,如用wireshark 等抓包工具分析网络特征(对单独一台主机分析时较常见),还可以用硬件防火墙分析网络协议数据包(分析整个内网数据流量时较常见);另一种是对木马的文件特征行为进行分析,如用process monitor 分析某个可疑进程对系统的修改,还有杀毒软件厂商用的比较多的方法是对木马pe 文件进行逆向分析。
本文重点对木马网络特征行为进行研究,提高木马反跟踪能力。
我这里给出木马的设计思路草图, 如下:
源代码将在逆向分析中给出。
下面我想从木马抓包分析和使用IDA PRO 逆向分析给出木马的网络特征行为。
为了同步演示木马行为, 木马被控端也将同时运行,并输出调试信息。
如下图:
下面是wireshark 抓包截图:
这是建立TCP 反弹连接时抓取到的数据包。
这是建立UDP 反弹连接时抓取到的数据包。
下面是用 IDA PRO 6.6 对 被控端shell.exe 进行分析。
这里查看到的IP地址 和使用wireshark 抓包获取的IP 地址是一样的,都是23.218.27.34
这个IP地址 只是起到干扰和伪装的作用,可以是任意国家的IP地址。
而UDP 上线IP 或者域名在 源代码中是加密赋值的,用IDA PRO 分析结果如下图:
对应的C++ 源码部分如下图:
当然,这个加密的上线IP 在上面的UDP 抓包和被控端运行调试信息中已经给出。
通过wireshark 和IDA 对木马分析得出上线IP 很可能就是23.218.27.34,而真正的上线IP 和端口 很有可能被忽略掉了。因为大多数的木马程序都采用TCP 反弹连接, 在分析木马的时候UDP 特征并不容易引起注意。
作者亲倾赠送
作为观看这篇文章的奖励, 我有一个小礼物送给大家
网络连接查看器(ver 0.5)
主要功能:查看当前网络TCP和UDP 连接
使用方法:
在>=Win7 系统上鼠标右键已管理员身份运行; <Win7 系统下直接双击运行。
效果图如下:
下载链接: http://pan.baidu.com/s/1pJvHs6Z 密码: rgir
* 作者/南拳daddy,属FreeBuf原创奖励计划文章,未经许可禁止转载
- 上一篇:格式化字符串的漏洞利用(Part 1)
- 下一篇:安全科普:局域网攻击的常见方法
-
十三少爷(1级)学习的小白回复天呐,最近这些文章质量……FB你们换小编了?还是突然有钱,一定要奖励了?连续看了好几篇现金奖励……算了不吐槽了)10(亮了
-
Hacksign(1级)回复从逆向角度来看,我只关心所有网络收发函数的调用路径,所以监控工具钩住所有的网络收发函数,然后到IDA中应该可以找到对应的代码.而对于加密的代码,反而是欲盖弥彰.
从网络数据包请求来看,其实我不需要关心你连接的是什么地址,用的是什么协议.只需要将这个进程的所有网络请求地址(domain,ip等)通通记录下来,然后结合域名或ip的其他信息(例如domain的alex排名/解析量等)来判断是否为一条可疑连接.
在上了规模的网络中,可以交叉比较每一条domain/ip的主机请求数量/频率等,等等信息来判断一个链接是否为可疑链接.如果你的这个链接只有一个节点在请求,而且还是每1分钟左右请求一次,那就很可疑了.
当然,上了规模的网络中,会有很多噪点,比如某狗输入法......恶心的不行~)10(亮了 -
nickchang(4级)回复@ nickchang 不好意思,刚才没看清楚:) 不过可不可以不把目标地址硬设为100.100.100.100,而用DNS 递归查询的特性来连接C2服务器? 这样看起来真实一点。而且在代码里面也不需要设置ip地址)8(亮了
-
南拳daddy(4级)家里蹲大学,信息安全学院, 博士后在读...回复@ cnbug vb6.0 虽然很老了 ,但并不过时。终结者5 里面,施瓦辛格也说他自己 "虽然老了,但我还不过时"。)8(亮了
-
金木的小右回复想要图一的壁纸)7(亮了
0daybank
已有 19 条评论
好久不见了。
还在用vb写东西呀。
@ cnbug vb6.0 虽然很老了 ,但并不过时。终结者5 里面,施瓦辛格也说他自己 "虽然老了,但我还不过时"。
@ 南拳daddy vb6还是调用底层的api函数,逼.net的vb好啊,好多年不用vb了。楼主方法不错
你这是明修栈道,暗渡陈仓阿,可是你这陈仓渡的还是太明显了。这个UDP包的应用层协议wireshark都认不出来,别人没有理由不分析下吧?还不如把藏在DNS包里面,咋一看就是个合法的DNS query。
@ nickchang 不好意思,刚才没看清楚:) 不过可不可以不把目标地址硬设为100.100.100.100,而用DNS 递归查询的特性来连接C2服务器? 这样看起来真实一点。而且在代码里面也不需要设置ip地址
@ nickchang 我这里 演示用的是固定IP地址, 反弹端口号是53 ,所以wireshark 会认为是DNS 协议 ,
IP地址也可以改成域名 ,到时候 wireshark 里面既能看到DNS 解析数据包 ,也能看到假的DNS 数据包。
从逆向角度来看,我只关心所有网络收发函数的调用路径,所以监控工具钩住所有的网络收发函数,然后到IDA中应该可以找到对应的代码.而对于加密的代码,反而是欲盖弥彰.
从网络数据包请求来看,其实我不需要关心你连接的是什么地址,用的是什么协议.只需要将这个进程的所有网络请求地址(domain,ip等)通通记录下来,然后结合域名或ip的其他信息(例如domain的alex排名/解析量等)来判断是否为一条可疑连接.
在上了规模的网络中,可以交叉比较每一条domain/ip的主机请求数量/频率等,等等信息来判断一个链接是否为可疑链接.如果你的这个链接只有一个节点在请求,而且还是每1分钟左右请求一次,那就很可疑了.
当然,上了规模的网络中,会有很多噪点,比如某狗输入法……恶心的不行~
想要图一的壁纸
我记得有篇文章介绍nsa的做法是在网络节点装后门,转发流量。真真的高科技啊
这个工具跟TCPViewer有什么区别?
@ langyajiekou 没有多大区别 , 只是多了过 获取远程IP 地理位置的功能。
1. 这里查看到的IP地址 和使用wireshark 抓包获取的IP 地址是一样的,都是23.218.27.34, 这个IP地址 只是起到干扰和伪装的作用,可以是任意国家的IP地址。
2. 通过wireshark 和IDA 对木马分析得出上线IP 很可能就是23.218.27.34
这里写错了吧?怎么是一样的?应该是100.100.100.100吧。
@ langyajiekou 你这样 理解也没错 , 100.100.100.100 这个IP 确实是用来上线的 , 只是更多的人
在分析木马特征的时候 , 会误认为23.218.27.34 这个IP 是上线IP ,我只是 站在他们的角度来说。
针对僵尸木马蠕虫的流量检测来说,要分析地方很多,涉及各种协议及其负载,协议字段,端口等,关键是怎么能够从流量中分析出病毒传输的控制命令,或者特殊心跳,或者传输的特殊指纹字符,甚至是报文的长度,整体的变化,DNSquery的内容,频次等等等,搞不好逆一把也避免不了~
只要带点图的文章好像都能发表。。。。。
天呐,最近这些文章质量……FB你们换小编了?还是突然有钱,一定要奖励了?连续看了好几篇现金奖励……算了不吐槽了
我不想吐槽了,要抓肯定是都抓把,没理由只抓TCP不抓UDP。只要UDP一样在抓,你的UDP连接一样也会被抓到。
当然一定要说的话有肯定是有一点迷惑作用,对方要是抓到一个IP对方就收拾准备完工了的那种管理员。
下载链接: http://pan.baidu.com/s/1pJvHs6Z 密码: rgir –小编你的奖励和小礼物就是木马病毒吗。。我艹 。
感觉我要上线了