最近我不得不清理一个被黑的服务器。恶意进程会在“ps aux”输出中显示为“who”或“ifconfig eth0”或类似的东西,即使可执行文件也只是一堆字母,显示在 /proc/[pid]/status 中。
我很好奇这个过程是如何设法像这样掩饰自己的。
我有一个连接到两个 ISP 的路由器(运行 Linux),使用 BGP 选择路由,但是,我想分别 ping/trace 每个连接。
标准的 traceroute 命令似乎能够做到(允许选择传出接口、源 IP),但它不允许选择网关。虽然有一个命令行选项 (-g),但它所做的只是设置 IP 路由选项,而不仅仅是在那里发送数据包。
这就是我想要的:假设我的路由器有两个 IP - 10.0.0.1(由第一个 ISP 提供)、10.1.0.1(由第二个 ISP 提供)。第一个 ISP 上的默认网关(下一跳)是 10.0.0.254,第二个是 10.1.0.254。其中一个被选为当前默认网关(通过 BGP),但我也希望能够通过另一个网关使用跟踪/ping。我无法更改路由表(不会导致连接中断,尤其是在其他 ISP 出现问题的情况下)。
traceroute_oth --nexthop 10.0.0.254 8.8.8.8 应该给
1 10.0.0.254
2 some-iother-ip.first-isp.com
...
x 8.8.8.8
Run Code Online (Sandbox Code Playgroud)
traceroute_oth --nexthop 10.1.0.254 8.8.8.8 应该给
1 10.1.0.254
2 some-ip.second-isp.com
...
x 8.8.8.8
Run Code Online (Sandbox Code Playgroud)
编辑:“traceroute -i”不起作用,因为路由器不知道另一个网关。基本上,路由表是这样的(简化):
0.0.0.0/0 gw 10.0.0.254 eth0
Run Code Online (Sandbox Code Playgroud)
没有我明确指定,程序无法知道 eth1(到其他 ISP 的链接)上的默认网关是什么。