如何在使用 VPN 时通过 Windows 命令行确定我的实际外部 IP 地址

如何在使用 VPN 时通过 Windows 命令行确定我的实际外部 IP 地址

这个问题很棘手,但这是我在模拟渗透测试中试图解决的问题。也许我的方法不对,也许我应该在另一个论坛上发布这个问题,但考虑到我实际上要问的问题,我觉得在这里发布是合适的。

我可以远程连接到另一台计算机并访问 Windows 命令提示符。另一台计算机位于 VPN 后面。仅使用我手头的工具(即反向连接的 meterpreter),我如何才能找出远程计算机的真正外部 IP 地址?

我想我需要通过命令行访问一个外部网站(比如 ipchicken.com)或者只是拉下一个外部网页(因为我有该服务器的服务器日志),同时强制它不通过 VPN。

任何帮助,将不胜感激!

答案1

首先,检查本地 IP 地址!确保设备未分配公共地址。

如果确实存在 NAT,您需要首先查看您的路由表。

$ netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
0.0.0.0         192.168.0.1     0.0.0.0         UG        0 0          0 eth0

使用它你应该可以看到该计算机上有哪些路由。最有可能的是一条通过 VPN(你的)的路由,然后是其他路由。你要找的是默认路由,确保它存在,然后通过它发送流量;如果默认路由是你的 VPN,那么尝试找到一条更具体的路由,让你离开网络。

如果您有默认路由,但不是您的 VPN,请转到任何可以跟踪连接到它的 IP 地址的服务器。这可以是您尝试 ping 的服务器,也可以是尝试访问服务器上的网页的服务器。

编辑:

在 Windows 中添加路线:

route ADD *prefix* MASK *subnet* *gateway* METRIC *metric* IF *interface number*
route ADD 157.0.0.0 MASK 255.0.0.0  157.55.80.1 METRIC 30

虽然你可以使用 meterpreter 更改路线:

route add *prefix* *subnet* *gateway*
route add 157.0.0.0 255.0.0.0 157.55.80.1

来源:

http://www.offensive-security.com/metasploit-unleashed/Msfconsole_Commands#route

路线 /?

答案2

我通常使用 checkip.dyndns.org (216.146.39.70) 来识别我的外部 IP,通过命令

curl -s checkip.dyndns.org

就你的情况而言,你只需在路由表中添加一条绕过 VPN 的特定规则即可。假设你的本地网关是 10.1.1.254,你只需说

ip route add  216.146.39.70/32 via 10.1.1.254 dev eth0

现在,当您的请求“curl -s chekip.dyndns.org”离开您的电脑时,它将通过本地网关而不是 VPN 进行路由,并且答复将显示您的真实外部 IP。

相关内容