随着木马,后门的不停发展,防火墙本身也在不断地发展,这是一个矛和盾和关系,知道如何逃过防火墙对于控制一台系统是有很重大的意义的。
由于防火墙的发展,时至今天,很多防火墙都是以驱动形式加载的,核心部分是在驱动那里,保留一个界面给用户去设置,这个界面程序同时充当了桥梁作用,传统的杀防火墙进程以达到能控制到系统的方法已经是失效的了,而且这也不是一个好的方法(想想管理员发现防火墙的图标不见了会有什么反应).以下是谈谈以种方法。
前提条件:
1.你在远程系统有足够权限
2.你已从ipc或mssql或其它得到系统的权限,但因为无论用ipc还是用mssql的操作,都并不如直接得到一个cmd的Shell操作来得快和方便
方法1:不让防火墙加载自己
使用各类工具,pslist,sc.exe,reg.exe等去查找防火墙在哪里加载的,如果是在run中那加载的话,用reg.exe将其删除;如果是服务启动,用sc.exe 将服务改为手动或禁止,然后重启那系统,这样系统重启后防火墙就无法加载自己了。这种方法不让防火墙运行,比较容易被管理员发现。
方法2:强行绑入防火墙允许的端口
一台系统,如果有一些服务,如pcanywhere,sev-u,iis,mssql,mysql等的话,防火墙总要允许这些应用程序打开的端口被外界所连接的,而这些应用程序打开的端口是可以被后门或木马程序自身打开的端口重新强行绑入的。例如pcnayhwere打开端口或serv-u打开的端口都可以被重新绑入,iis和mssql等就有时可以,但有时会失败,原因不明。 由于那些应用程序是得到防火墙的授权并信任的,所以后门或木马将绑口强行绑入后,是可以避开防火墙的,但这种方法对于那些比较高级的防火墙,如Zonealarm等,还是不行的,因为Zonealarm不只是监视端口,而且监视是什么程序尝试去绑入某个端口的,如果后门没得到Zonealarm授权的话,一样是无法绑入那个端口的。
方法3:icmp协议或自定义协议的后门或木马
对于一些防火墙是有效果的,但是如果防火墙是检测有网络连接的程序是不是防火墙信任的,那么这个方法就会失效,因为这类防火墙允不允许程序连接网络是根据用户是否让那程序连接的,而并不是单单看协议或端口。
方法4:将后门或木马插到其它进程中运行
系统中某些程序,99.9999%的用户都会允许的,象IE,如果有用户不允许IE连接网络的话,那是很稀见的。因为IE一般都是防火墙信任的应用程序,所以只要将后门程序插入到IE中运行,那么防火墙一般是不会拦的。只要防火墙允许IE连接网络,那么插入到IE中运行的后门就可以接受外界的连接了。这类后门一般是以Dl加载进去IE运行的,直接一个可执行程序将一个线程注入IE运行也可以,但远没有将DLL注入那么稳定。这种方法可以避开大部份的防火墙,但对于一些不但会检查out bound,而且会检查in bound连接的防火墙会有时失效。但总的来说,这算是一种很好和方便的方法(已经过测试).
方法5:将后门插入到IE中运行,并且使用反向连接
上面方法4已说明了IE一般是防火墙信任的应用程序,所以将后门插入到IE中运行已是一个好方法了,由于某些防火墙还会检查in bound连接(从外界连入系统的连接),是会导致方法4失效的,因为防火墙是可能通知用户是否允许这个连接的,只要用户拒绝,那么方法4就失效了。
但如果将后门插到IE中运行,并且让后门自动向外界一个指定的IP中连接(反向连接),这样的话,几乎99%是会成功的,因为防火墙是已允许IE向外连接的了,所以一旦后门连接上那个指定的IP,攻击者就可以得到一个cmd下的Shell.
上面所说的几种方法中,方法1,2,3应用面是很窄的,而且并不能算是一种好的方法;方法4,5是比较高级的方法,而且管理员一般很难发现(一般不会有人会怀疑自己的IE被人插入后门在运行的,相信大部份上网用户不会知道有这些方法的),而且这些方法比较难检测出来。