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

Dun*_*une 8 security networking software-recommendation pentesting 16.04

有人告诉我,我的工作 PC 正在大量扫描其他人 PC 的端口,这不是我想要的。我怎样才能找出哪个程序正在这样做?


按照 ByteCommander 的评论的建议,我曾经nethogs列出我的网络流量。我还没有发现以这种方式在我的计算机上运行的可疑程序(这并不一定意味着没有这样的程序 - 我只是无法监督整个输出),但是表单中有一些奇怪的行

my_ip_address:port-other_ip_address:port
Run Code Online (Sandbox Code Playgroud)

其中右侧的 IP 地址是例如 123.24.163.24、58.221.44.109 或 88.248.51.254。通过谷歌搜索,你会看到它们都出现在一些黑名单上。这是否意味着有一些可疑的事情正在进行?这可能与我原来的问题有关吗?

Kaz*_*lfe 7

监控系统的一个绝对简单的方法是运行一个命令,比如netstat一天左右,看看有什么出站。例如,像这样将显示所有发出的(调查)连接:

netstat -nputwc | tee ~/network.log
Run Code Online (Sandbox Code Playgroud)

从那里,您可以检查network.log您的主文件夹以查看是否有任何奇怪/异常的连接。最好在您不打算过多使用互联网的那一天运行它,这样您就只能获得后台和非活动连接。Netstat 将使您能够查看哪个进程也在调用连接,如果有任何扫描器正在运行,这可能值得查找和销毁。

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

从这些中的任何一个中,您都可以获得流程(通过netstat)或重要的事情,例如事情发生的时间和地点。实际上,您可以同时运行两者以查找导致扫描的任何触发器或类似事件。您甚至可以使用tcpdump来查找扫描发生的时间,然后交叉引用它netstat以查找正在执行的操作。

如果您注意到这些扫描定期发生,您应该寻找可以(相对)轻松删​​除的 cronjobs 或类似内容。

否则,您可以使用一般安全提示,例如运行rkhunterclamav等。您也可以随时从已知良好的备份重新安装系统,然后立即结束它。


只是为了一些僵尸网络的背景知识,主要是为了让你感到厌烦。

通常,僵尸网络在您的系统上处于空闲状态,直到被某些命令触发。这可以是您的系统从远程服务器接收消息,也可以是您的机器轮询服务器以获取其新“订单”。无论哪种方式,您都可以使用这些相同的工具来查找这些僵尸网络命令,以及它们的去向。

一旦您可以捕获您的机器成为僵尸网络的一部分(如果它是),您就可以找到僵尸网络软件的位置和位置,并使用您想要的任何方法将其删除。

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


Ser*_*nyy 6

你可以做的事情:

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

  • 检查 nmap。Nmap 是用于扫描网络的最常用工具之一。对系统管理员来说是好工具,但也可以被坏人利用。不要apt-cache policy nmap看,如果有人安装到你的机器。

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

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

  • 如果没有其他工作,请将其从轨道中删除:换句话说,备份您的数据,然后重新安装您的 Ubuntu。一旦系统受到损害,就很难信任它。相当常见的技术是用假程序替换合法程序。计算机上有数以千计的二进制文件,如果您不是计算机取证专家或安全研究人员,很难判断是什么导致了混乱。制作一个 Ubuntu live USB(最好在另一台受信任的计算机上)并重新安装您的系统。考虑摆脱您的路由器并购买新的路由器。在路由器中安装恶意软件并不像您想象的那么罕见。如果您不想这样做,请考虑在路由器上安装开源软件,例如 DD-WRT 或 Open-WRT,这些软件支持您的路由器制造商和版本。

  • 考虑向专业人士寻求帮助:这可能会让您花费最多,但如果您想深入了解并了解实际情况,请考虑聘请以调查计算机网络安全为生的人。潜在的好处是他们可以告诉您谁以及如何破坏您的网络并将其用于恶意 juju。


Sta*_*hai 3

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

  1. 请勿使用 IPTABLES 阻止任何内容!
  2. 停止任何可以与受害者通信的应用程序或进程(例如连接到受害者 IP 地址的浏览器)。
  3. 使用以下命令找出您的 PC 和受害者的 PC 之间的流量

    tcpdump -nn host your_victim_ip
    
    Run Code Online (Sandbox Code Playgroud)

    您的输出应该与此类似

    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
    
    Run Code Online (Sandbox Code Playgroud)

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

  4. 找出什么正在使用该端口lsof

    lsof -i:80
    
    Run Code Online (Sandbox Code Playgroud)

    将“: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)
    
    Run Code Online (Sandbox Code Playgroud)

    正如您在我的示例中看到的,命令firefox在与 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
    
    Run Code Online (Sandbox Code Playgroud)
  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再次使用看看问题是否消失。