如何轻松获取应用程序外部连接的所有HTTPS地址?

如何轻松获取应用程序外部连接的所有HTTPS地址?

对于那些拥有高度限制输出的防火墙的人来说,他们只需要为每个应用程序发布所谓可靠的地址,所以我想知道是否有任何软件或命令行可以轻松监控并找出应用程序连接的 URL(HTTPS)?

现在,我想知道 WordPress 及其插件的所有地址,以及它们需要连接哪些地址来更新它们。

答案1

这里有几个命令行选项。

watch与使用lsof

这个答案监控正在发生的传出网络请求,您可以使用lsofwatch

完整引用答案:

您可以使用lsofwatch来执行此操作,如下所示:

$ watch -n1 lsof -i TCP:80,443 

示例输出

dropbox    3280 saml   23u  IPv4 56015285      0t0  TCP greeneggs.qmetricstech.local:56003->snt-re3-6c.sjc.dropbox.com:http (ESTABLISHED) 
thunderbi  3306 saml   60u  IPv4 56093767      0t0  TCP greeneggs.qmetricstech.local:34788->ord08s09-in-f20.1e100.net:https (ESTABLISHED) 
mono       3322 saml   15u  IPv4 56012349      0t0  TCP greeneggs.qmetricstech.local:54018->204-62-14-135.static.6sync.net:https (ESTABLISHED) 
chrome    11068 saml  175u  IPv4 56021419      0t0  TCP greeneggs.qmetricstech.local:42182->stackoverflow.com:http (ESTABLISHED) 

我刚刚尝试过,它非常有用。如果你使用,你可以将重复时间减少到 0.1 秒-n0


只是lsof

使用 lsof 持续监控文件,您可以省去watchlsof结合使用重复 ( -r) 选项。以下内容每两秒重复一次

$ lsof -i TCP:80,443 -r 2

但输出并不那么漂亮,尽管过去的连接保留得更好:

=======
COMMAND  PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
firefox 9542 user   27u  IPv4 1068219      0t0  TCP user-300V3Z-300V4Z-300V5Z:37360->192.0.78.23:https (ESTABLISHED)
firefox 9542 user   48u  IPv4 1053405      0t0  TCP user-300V3Z-300V4Z-300V5Z:45948->ec2-54-213-37-69.us-west-2.compute.amazonaws.com:https (ESTABLISHED)
=======
COMMAND  PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
firefox 9542 user   27u  IPv4 1068219      0t0  TCP user-300V3Z-300V4Z-300V5Z:37360->192.0.78.23:https (ESTABLISHED)
firefox 9542 user   48u  IPv4 1053405      0t0  TCP user-300V3Z-300V4Z-300V5Z:45948->ec2-54-213-37-69.us-west-2.compute.amazonaws.com:https (ESTABLISHED)
firefox 9542 user   52u  IPv4 1138942      0t0  TCP user-300V3Z-300V4Z-300V5Z:57602->kul08s01-in-f10.1e100.net:https (SYN_SENT)
firefox 9542 user  102u  IPv4 1139934      0t0  TCP user-300V3Z-300V4Z-300V5Z:49102->kul09s13-in-f14.1e100.net:https (ESTABLISHED)
firefox 9542 user  110u  IPv4 1138950      0t0  TCP user-300V3Z-300V4Z-300V5Z:49104->kul09s13-in-f14.1e100.net:https (SYN_SENT)
=======
...
=======
COMMAND  PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
firefox 9542 user   27u  IPv4 1068219      0t0  TCP user-300V3Z-300V4Z-300V5Z:37360->192.0.78.23:https (ESTABLISHED)
firefox 9542 user   48u  IPv4 1053405      0t0  TCP user-300V3Z-300V4Z-300V5Z:45948->ec2-54-213-37-69.us-west-2.compute.amazonaws.com:https (ESTABLISHED)
firefox 9542 user   51u  IPv4 1140129      0t0  TCP user-300V3Z-300V4Z-300V5Z:52284->kul09s13-in-f10.1e100.net:https (ESTABLISHED)
firefox 9542 user  108u  IPv4 1137384      0t0  TCP user-300V3Z-300V4Z-300V5Z:55886->103.229.10.236:https (ESTABLISHED)
firefox 9542 user  122u  IPv4 1137399      0t0  TCP user-300V3Z-300V4Z-300V5Z:55870->kul08s12-in-f1.1e100.net:https (ESTABLISHED)
firefox 9542 user  126u  IPv4 1137402      0t0  TCP user-300V3Z-300V4Z-300V5Z:47370->stackoverflow.com:https (SYN_SENT)

笔记:每两秒间隔=======


也可以看看如何查找进程访问的 URL尽管标题很有希望,但遗憾的是这两个答案并没有似乎根据每个应用程序或每个进程提供过滤器。

其他有用的技巧lsof如下所述,15 个 Linux lsof 命令示例(识别打开的文件),这将允许您过滤更多结果lsof,以便您可以自定义上述命令以更符合您的口味。

答案2

您可能需要一种名为“代理”的工具,我在 snapcraft 中搜索“代理”时看到了“Zap”,这是 Ubuntu 存储库提供的一款好工具。这个“代理”可能非常技术性,但它正是您要问的技术,Ubuntu(或任何操作系统)没有特定的东西可以解决您的问题,但代理可以帮助您。

看:https://snapcraft.io/install/zaproxy/ubuntu

按照以下说明运行:https://www.zaproxy.org/docs/desktop/cmdline/例如对于 Ubuntu:java -jar zap.jar。然后您可以配置系统代理(通常为export https_proxy='http://localhost:8080'

如果您在 PC 上运行此程序,而不是在与 Wordpress 相同的服务器上,那么您可能需要配置一个 Wordpress 插件,例如:https://wordpress.org/plugins/wp-proxy/

Zap 还需要进行专门配置以拦截 HTTP 流量,具体说明如下:https://www.zaproxy.org/docs/desktop/ui/dialogs/options/dynsslcert/

一旦运行,您将在 Zap 图形界面中看到所有 HTTPS 流量。

对于可以列入白名单的生产部署,这里有一个很好的答案:Squid3:仅允许某些用户访问某些网站

祝你好运!调查网络流量可能很有趣,即使一开始并不令人生畏

相关内容