检测自己的计算机执行的端口扫描

检测自己的计算机执行的端口扫描

有人告诉我,我的工作电脑正在大量扫描他人电脑的端口,而这并不是我故意为之。我如何才能找出是哪个程序在做这件事?


根据 ByteCommander 评论的建议,我曾经nethogs列出我的网络流量。我没有发现我的电脑上有可疑的程序在运行(这并不一定意味着没有这样的程序——我只是无法监督整个输出),但有一些奇怪的行,形式如下

my_ip_address:port-other_ip_address:port

右侧的 IP 地址例如为 123.24.163.24、58.221.44.109 或 88.248.51.254。通过谷歌搜索,你会发现它们都出现在一些黑名单上。这是否意味着有可疑的事情正在发生?这和我原来的问题有什么关系吗?

答案1

监控系统的一个简单方法是运行类似这样的命令netstat一天左右,看看发生了什么。例如,将显示所有传出(轮询)连接:

netstat -nputwc | tee ~/network.log

从那里,您可以检查network.log主文件夹以查看是否有任何奇怪/异常的连接。最好在您不经常使用互联网的日子运行此程序,这样您只能获得后台和非活动连接。Netstat 将使您能够查看哪些进程也在调用连接,如果有任何扫描仪正在运行,则可能值得找到并销毁这些连接。

此外,您可以使用 获得更详细/详细的日志tcpdump,您可以使用它来获取更高级的输出,并获取更多信息。man tcpdump有关更多信息,请参阅。但是,请特别查看表达式src以仅获取传出连接。另外,请务必使用-w选项写入文件以便于搜索。您可以阅读更多关于tcpdump 这里如果你愿意的话。至少,这会告诉你你的电脑是否真的在扫描东西。

通过上述两种方式,你既可以获取流程(通过netstat),也可以获取重要信息,例如事情发生的时间和地点。实际上,你可以运行两个都同时查找任何触发扫描的触发器或类似物。您甚至可以使用它tcpdump来查找扫描发生的时间,然后交叉引用它以netstat查找正在执行操作的进程。

如果您注意到这些扫描在固定的时间发生,您应该寻找 cronjobs 或类似程序,它们可以(相对)容易地被删除。

否则,您可以使用常规安全提示,例如运行rkhunterclamav等。您也可以始终从已知良好的备份重新安装系统,以立即结束它。


这里仅介绍一下僵尸网络的背景,主要是为了让您感到无聊。

通常情况下,僵尸网络会一直处于闲置状态,直到收到某个命令。这可能是您的系统从远程服务器收到消息,也可能是您的机器轮询服务器以获取新的“命令”。无论哪种方式,您都可以使用这些相同的工具来查找这些僵尸网络命令以及它们的去向。

一旦您可以捕获到您的机器是僵尸网络的一部分(如果是的话),您就可以找到僵尸网络软件是什么以及在哪里,并使用您想要的任何方法将其删除。

还要注意的是,您的计算机可能不是网络上的受感染设备。上游路由器、WAP、网络摄像头或任何其他类型的物联网设备(甚至是打印机!)也可能是僵尸网络的成员。如果它们与您的机器使用相同的连接/IP(尤其是在家中或类似情况下),您可能会错误地将责任归咎于您的计算机,而不是您的智能烤面包机或其他设备。

答案2

您可以做的事情:

  • 更改密码:如果人类攻击者使用您的设备作为掩码,则显然您的身份验证以某种方式受到损害。这包括您的计算机,也包括路由器、调制解调器、家庭网络上的智能设备。大多数用户只在 wifi 上设置密码,但没有设置路由器管理员帐户的密码,这很糟糕。正如 Kaz 指出的那样,智能设备也是容易攻击的目标。在检查路由器时,还要检查是否有人在路由器上启用了端口转发,以确切了解正在访问哪个设备。

  • 检查 nmap。Nmap 是用于扫描网络的最常用工具之一。它可以用于善事,是系统管理员的好工具,但也可以被坏人利用。看看apt-cache policy nmap是否有人将它安装到您的机器上。

  • 分析您的网络连接和流量。诸如此类的工具netstat会告诉您哪些程序正在使用哪些网络端口。特别有趣的是sudo netstat -tulpan命令。另一个已经提到的工具是Wireshark。您可能需要花时间学习如何使用它。我建议您在关闭所有依赖网络的浏览器和应用程序的情况下运行所有​​这些测试。

  • 考虑删除浏览器插件:Chrome 扩展程序和 Firefox 插件很棒,但它们并不是无辜的小猫。您可能正在运行浏览器,而这些扩展程序会在后台执行所有恶意​​活动。考虑删除它们,或者直接删除~/.mozilla~/.config/google-chrome/

  • 如果其他方法都不管用,就从轨道上用核武器轰炸它:换句话说,备份您的数据,然后重新安装您的 Ubuntu。一旦系统受到威胁,就很难再信任它。一种很常见的技术是用假程序替换合法程序。如果您不是计算机取证专家或安全研究人员,那么由于计算机上有成千上万个二进制文件,很难判断是什么导致了混乱。制作一个 Ubuntu 实时 USB(最好在另一台受信任的计算机上)并重新安装您的系统。考虑扔掉您的路由器并换一个新的。在路由器中安装恶意软件并不像您想象的那么罕见。如果您不想这样做,请考虑在路由器上安装开源软件,例如 DD-WRT 或 Open-WRT,它们支持您的路由器制造商和版本。

  • 考虑向专业人士寻求帮助:这个可能花费最多,但如果你想弄清楚到底发生了什么,考虑聘请一个以调查计算机网络安全为生的人。潜在的好处是,他们可以告诉你是谁以及如何破坏了你的网络并将其用于恶意目的。

答案3

我对你有另一种方法,因为我过去也遇到过同样的情况。

  1. 暂时不要用 IPTABLES 阻止任何东西!
  2. 停止任何可以与受害者通信的应用程序或进程(例如连接到受害者 IP 地址的浏览器)。
  3. 使用以下方法了解你的电脑和受害者的电脑之间的流量

    tcpdump -nn host your_victim_ip
    

    您的输出应该类似于此

    08:36:19.738610 IP 192.168.89.xxx.46582 > 89.35.224.xxx.80: Flags [.], ack 18825, win 523, options [nop,nop,TS val 15987331 ecr 427321428], length 0
    08:36:19.738625 IP 89.35.224.xxx.80 > 192.168.89.xxx.46582: Flags [.], seq 18825:20273, ack 492, win 243, options [nop,nop,TS val 427321428 ecr 15987307], length 1448: HTTP
    08:36:19.738635 IP 192.168.89.xxx.46582 > 89.35.224.xxx.80: Flags [.], ack 20273, win 545, options [nop,nop,TS val 15987331 ecr 427321428], length 0
    08:36:19.738643 IP 89.35.224.xxx.80 > 192.168.89.xxx.46582: Flags [FP.], seq 20273:21546, ack 492, win 243, options [nop,nop,TS val 427321428 ecr 15987307], length 1273: HTTP
    

    从上面的输出来看,端口是更粗的 192.168.89.xxx。46582>89.35.224.xxx。80

  4. 找出正在使用该端口的内容lsof

    lsof -i:80
    

    使用输出中找到的端口更改“:80” tcpdump;-n 用于抑制将 IP 解析为名称,-P 用于抑制将端口转换为名称;它应该向您显示哪些进程使用端口 80。

    COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    firefox 30989 mihai   61u  IPv4 496649      0t0  TCP 192.168.89.xxx:40890->89.35.224.xxx:80 (ESTABLISHED)
    

    正如你在我的示例中看到的,COMMANDfirefox在与 IP 89.35.224.xxx 建立的通信中使用端口 80

  5. 如果命令看起来很奇怪,请验证运行的位置,其中ls -l /proc/$PID/exe$PID 是先前使用 lsof 命令找到的进程 ID。应该有类似的输出,如下所示:

    lrwxrwxrwx 1 mihai mihai 0 Jan 16 22:37 /proc/30989/exe -> /usr/lib/firefox/firefox
    
  6. lsof -i:port另外,您可以使用以下命令检查上面列出的命令的更多详细信息lsof -c command_name

    这是挖掘部分,所以请记住几乎所有内容都与它将显示的“运行命令”相关,例如它使用的文件、其他连接等。

  7. 使用以下命令终止进程sudo kill -9 $PID

  8. 如果它不是像 Firefox 这样的常见进程名称,那么将文件备份到其他地方并删除它可能是一个好主意,但如果它是一个常见的应用程序,您可能会考虑重新安装该应用程序。

另一种方法是在步骤 4 中更改命令的使用。lsof -i@*victim_ip_address*查看与受害者 IP 地址有活动连接的所有进程和命令

重要的:以 root 身份或使用 运行所有命令sudo

如果你没有tcpdump安装,lsof那么你可以通过以下方式安装它们:sudo apt install lsof tcpdump

此时我认为您已经掌握了使用 IPTABLES 和阻止传出流量(如果仍然需要)所需的所有信息。

不要忘记tcpdump再次使用以查看问题是否消失。

答案4

EtherApe 网络监视器是监控网络数据流量的中端选项。作为开源网络监控器,EtherApe 以彩色编码协议显示图形显示网络活动。主机和链接的大小随流量而变化。它支持以太网、WLAN、FDDI、令牌环、ISDN、PPP 和 SLIP 设备。它可以过滤要显示的流量,并且可以从文件和网络实时读取流量。如需下载和了解更多信息,访问 EtherApe 主页

截屏

阻止攻击性地址非常简单,只需将可疑地址添加到输入 IP 表链中即可,如下所示

iptables –A INPUT –m tcp –s OFFENDING_IP_ADDRESS –d WEB_SERVER_ADDRESS –dport 80 –j DENY (where OFFENDING_IP_ADDRESS is the suspect address and WEB_SERVER_ADDRESS is the web server being hit)

Linux 还有其他非常好的开源软件 (OSS),您可以将其安装在您的 Ubuntu 中以获得更高的安全性并评估您的系统可能出现的故障。

莱尼斯

Lynis 是一款开源安全审计工具。系统管理员、安全专家和审计员使用它来评估其 Linux 和 UNIX 系统的安全防御能力。它在主机本身上运行,因此它比漏洞扫描程序执行更广泛的安全扫描。

虽然它有很多分析选项(甚至可以通过插件补充),但基本操作是分析系统的一系列方面并检查配置是否正确。

最后,根据获得的结果,您将获得 100 分的指导分数,他们称之为强化指数,以及建议您应用的所有警告和纠正措施的良好记录。

Lynis 几乎可以在所有基于 UNIX 的系统和版本上运行。

Lynis 轻量且易于使用,可用于多种不同用途。

您可以在 Lynis 的官方网站上了解有关其的更多信息关联

安装指南

Lynis 的典型用例包括:

Security auditing
Compliance testing (e.g. PCI, HIPAA, SOx)
Vulnerability detection and scanning
System hardening

OpenVAS / Nessus

这些产品主要专注于漏洞扫描。它们通过网络轮询服务进行扫描。它们也可以选择登录系统并收集数据。

RootKit 检查器:亨特&chkroot工具

rkhunter 软件包位于存储库中,因此

sudo apt-get install rkhunter

chkrootkit 也是如此

sudo apt-get install chkrootkit

相关内容