///download.php下载nc源码然后在本地linux shell机器上编譯成可执行程序后,再将编译文件上传到远程主机上如果本地编译的程序在远程主机上无法使用,可以直接把源码传上去后在目标机器上直接编译。
如果需要在目标机器上编译NC的话需要注意一些问题,因为在得到Shell命令行窗口前只能在WebShell里执行命令,一般每次只能执行┅条然后等待执行后的结果回显。
另外在编译时需要注意程序执行路径的问题。由于linux shell下权限设置非常严格即使攻击者获得了WebShell,也可能无法直接在WEB网页目录下写入文件只能在/tmp之类的文件夹中上传写入NC源文件(图406)。
例如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的操作过程及命令如下:
配置完毕后,再执行如下命令进行编译:
由于使用了分号可同时执行两条命令,将make跟在目录切换命令后面在编译的时候就不会报错了(圖408)。
即可向主机反弹回一个Shell命令行窗口了需要注意的是,反弹的linux shell Shell是没有$提示符的执行一句返回一句(图410)。另外这里反弹Shell时候运荇的是/bin/sh,也可以反弹运行/bin/bash但/bin/sh的权限比/bin/bash要设置松一些,因此成功率更高一些