我是一个木马程序
我是一个木马程序,被捆绑在了一个浏览器安装包中,随着浏览器的安装,我就这么轻易的闯进这台电脑里了。
我躲在了 temp 目录下,这里文件众多,来来往往人多眼杂反而不容易被发现。
没多会儿,我才发现,好家伙,这台电脑里可不止我一个木马,我算是来的晚的了,这电脑主人真是个菜鸟,一点安全意识都没有!
“喂,新来的,你闯入这里是干嘛的?”,一位个子不大的程序发现了我,我瞅了一眼,差不多20KB上下。
“你是谁,我的任务可不能告诉你”,我回答到。
“别紧张,我也是木马程序,看你这样子不说我也猜得到,八成是准备来偷数据的吧?不过我看你是要白跑一趟了,这里除了几十个G的视频文件,有价值的啥也没有”,那小子不屑的说着。
我没有搭理他,独自找了个安静的地方,观察观察,见机行事。
端口反弹
时间很快到了晚上,电脑里的程序们一个个的都休息了,CPU总算是空闲起来,我准备好数据和代码,打算大干一场。
我正忙得满头大汗,白天那小子不知啥时候又出现了。
“好家伙,没看出来啊,你竟然是个挖矿木马!”,那小子坏笑道。
“嘘!小声点”,我赶紧堵上了他的嘴。
这小子力气还挺大,奋力挣开,“怕啥,这里没有杀毒软件,咱们可以随便玩!”
“难怪我进来的如此容易,连杀毒软件都没有,这电脑主人心也是够大的!”
说完,我准备监听一个端口,等待外边的同伙连进来,保持联络。
“你在干嘛?”,小个子问到。
“监听端口啊,等我的同伙连上来,这样我们就能搭上线了”
“你这样不行的,这里虽然没有杀毒软件,但还是有防火墙的,外边轻易是连不进来的。”,小个子说到。
“那咋办?”
“外面不让连进来,你可以主动连出去啊!你可以伪装成浏览器,连接你外边兄弟的80端口,防火墙看到是80,会当做普通的上网请求,一般都会放行的,这种控制端和服务端反向连接的操作,叫做端口反弹,你出来混都没人教你吗,就这水平还来当木马?”
这家伙说的我都有些不好意思了,按照他的建议,我成功连接到了我的控制服务器,随时等待他给我下发指令。
就这样保持了几天,每到晚上空闲时候,我就开始工作,一直非常顺利,直到···
DNS隐蔽通信
那天,小个子气喘吁吁的跑来,告诉了我一个坏消息:“不好了,就在刚刚,电脑主人安装了杀毒软件,最近都低调一些,咱们都保持静默吧!”
我赶紧掐断了通信连接,不敢轻举妄动。
一连过了好几天,我有点着急了,老这么潜伏着也不是办法,得跟外面取得联系啊!外面的兄弟肯定急坏了!
小个子看出了我的焦虑,给我出了个点子:“可以试试用DNS协议把数据偷偷传出去”
“DNS?这怎么传数据?”
“你可以把数据用base64编码以后,作为域名字段,通过发送DNS解析请求的方式把数据发出去啊!就像这样:”,小个子给我画了个示意图。
“这一个域名才能传输多少数据,你这不行!”,我表示了质疑。
“你笨啊,一个请求不够,你就多发几个嘛!”
说的也是,我打算试一下,看看靠不靠谱。
你还别说,我居然成功的把数据传了出去,不过在杀毒软件眼皮子底下顶风作案,心里还是挺忐忑的。
ICMP隐蔽通信
这一招用了没几天就不好使了,数据老发送失败,八成是被盯上了,我又找到了那个小个子木马。
“看来用DNS域名太高调了一点,别着急,还可以用ICMP协议来传输。”,这小子又给我出了一招。
“这是啥协议?”
“ICMP(Internet Control Message Protocol)就是Internet控制报文协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。 你看这是它的数据格式:”
“我知道了,可以在报文的数据部分传输我要发送的内容”
“不错!ICMP这玩意不是传输层的协议,不会打开和使用端口,没那么容易引起关注,连ping程序都是使用它来工作的,你可以冒充成他来偷偷跟外面通信”,小个子木马非常自信的说到。
这家伙懂的还挺多,按照他教我的,我又用ICMP协议偷偷跟外面联系上了,希望这一次别再被发现了。
HTTP隐蔽通信
可惜,天不遂人愿啊,这一次比之前管用的时间更短,才第三天就失效了!
“好家伙,这安全软件可以啊,看来逼我放大招了,咱们这次换成HTTP来传输”,小个子木马说到。
“啥?用HTTP?那不是更容易暴露吗?”,我问到。
“你不知道,最危险的地方反而是最危险的地方。HTTP流量上网那么大,混在里面不容易引起察觉!况且,我还有绝招呢···”,这家伙故作神秘,话说了一半又咽了回去。
“你快说,可急死我了”,我催促到。
“为了不引起注意,传输的数据得做一下编码处理。HTTP不是基于文本的传输协议嘛,咱们可以用tab表示1,空格表示0,这样就算被抓到了也是一片空白,看不出个啥,怎么样?”
好家伙,这一招确实很妙啊!
我赶紧把数据重新进行了编码,封装在一个又一个的HTTP数据包中,挨个发了出去。
一连过了几天都没有被发现,看来这一招还挺好使。
就在我洋洋得意之际,小个子木马又传来了一个坏消息:“赶紧找地方躲起来吧,那安全软件在全盘扫描了···”
我赶紧断开了所有的通信连接,关闭了所有活动的进程,不知道能不能躲过这一劫~
隐藏是一个木马最最最重要的能力,没法隐藏那就是出师未捷身先死。
而隐藏主要包括三个方面:
- 文件隐藏
- 进程隐藏
- 通信隐藏
这篇文章用故事的方式介绍了一些木马常用的隐藏通信的方式,文章比较简单,但实际情况远比这复杂。
在真实应用中,隐藏通信最核心的就是把信息数据隐藏在正常的通信流量中传递出去而不被发现,这涉及到网络协议、加解密技术甚至信息论与编码知识的综合运用。
面对文中出现的几种方式,如果你要来做安全检测,你打算怎么判定是可疑流量还是正常的通信呢?
本文转载自微信公众号「编程技术宇宙」,可以通过以下二维码关注。转载本文请联系编程技术宇宙公众号。