首页 新闻 会员 周边 捐助

linux应急响应

0
[已解决问题] 解决于 2023-09-23 16:59

甲方客户通报某台服务器访问某个恶意域名,怎么在服务器上排查是哪个程序进程引起的,或者能否写个东西在这个服务器下次访问是抓到这个访问记录,哪个进程哪个时间访问的该域名。

任尔东西南北风的主页 任尔东西南北风 | 菜鸟二级 | 园豆:206
提问于:2023-08-01 09:09
< >
分享
最佳答案
-1

在 Linux 环境下进行应急响应,排查恶意域名访问的问题,你可以采取以下步骤:

查看网络连接:使用netstat或ss命令查看当前服务器的网络连接状态,以及和恶意域名的连接情况。使用以下命令:

bash
Copy code
netstat -tuln # 查看当前所有的TCP/UDP监听端口
ss -tuln # 也可以使用 ss 命令来查看监听端口和连接情况
检查是否有异常的网络连接和未知的端口。

查看进程列表:使用ps命令查看当前正在运行的进程列表,并查找是否有异常或不认识的进程。使用以下命令:

bash
Copy code
ps aux # 查看所有正在运行的进程信息
可以检查是否有异常进程或可疑的程序运行。

审查系统日志:检查系统日志文件,特别是 /var/log 目录下的日志文件,如/var/log/syslog、/var/log/messages 等,查找是否有异常的记录,特别是和恶意域名相关的访问记录。

抓包分析:使用网络抓包工具,如tcpdump或Wireshark,在服务器上抓取和恶意域名相关的网络数据包。可以使用以下命令:

bash
Copy code
tcpdump -i eth0 host 恶意域名
或者使用 Wireshark 图形界面来抓包并分析数据包内容。

使用 lsof 查看进程打开的文件:使用lsof命令查看某个进程是否打开了和恶意域名相关的文件或套接字连接。使用以下命令:

bash
Copy code
lsof -i :80 # 查看打开了本地 80 端口的进程
lsof -i tcp:80 # 查看打开了 TCP 80 端口的进程
添加访问记录:你也可以编写一个脚本或程序,在服务器上监控恶意域名的访问,并将访问记录写入到日志文件中。例如,使用 Python 编写一个简单的脚本:

python
Copy code
import time

记录访问日志

def log_access(domain, process, timestamp):
with open('/var/log/malicious_access.log', 'a') as f:
f.write(f"{timestamp} - {domain} accessed by process {process}\n")

监控恶意域名访问

def monitor_malicious_domain(domain):
while True:
# TODO: 判断是否有进程访问该恶意域名,如果有则记录访问日志
process = "unknown_process" # 替换为实际进程名
timestamp = time.strftime('%Y-%m-%d %H:%M:%S')
log_access(domain, process, timestamp)
time.sleep(1)

if name == "main":
malicious_domain = "恶意域名" # 替换为实际恶意域名
monitor_malicious_domain(malicious_domain)
这样,你可以将脚本放在服务器上运行,实时监控恶意域名的访问情况,并将访问记录写入到日志文件中,以便后续分析。

注意:以上步骤只是应急响应的初步措施,具体排查方法和步骤可能因实际情况而异。如果你不确定如何处理,建议寻求专业的网络安全专家或团队的帮助。同时,对于发现的恶意行为,请及时报告给相关安全机构,以便采取进一步的应对措施。

奖励园豆:5
Technologyforgood | 大侠五级 |园豆:7541 | 2023-08-01 20:01

谢谢大哥的回答很棒。
刚看了几篇文章,这种是短连接问题,可以写个脚本监控一下,输出访问过这个地址的进程信息等等:

!/bin/bash

while true
do
sleep 0.1
pids=$(netstat -pantu | grep 1.1.1.1 | awk -F "/" '{print $1}' | awk -F " " '{print $NF}' | sort | uniq)
for one_pid in $pids
do
if [ $one_pid == "-" ]; then
continue
fi
echo "" >> $(pwd)/Audit_results.txt
echo "[ lsof -p $one_pid ]" >> $(pwd)/Audit_results.txt
lsof -p $one_pid >> $(pwd)/Audit_results.txt
echo "" >> $(pwd)/Audit_results.txt
echo "[ cat /proc/$one_pid/maps ]" >> $(pwd)/Audit_results.txt
cat /proc/$one_pid/maps >> $(pwd)/Audit_results.txt
echo "" >> $(pwd)/Audit_results.txt
echo "[ ls -al /proc/$one_pid/exe ]" >> $(pwd)/Audit_results.txt
ls -al /proc/$one_pid/exe >> $(pwd)/Audit_results.txt
done
if [ -f "$(pwd)/Audit_results.txt" ]; then
echo "Found it !"
exit
fi
done

任尔东西南北风 | 园豆:206 (菜鸟二级) | 2023-09-23 17:00
其他回答(1)
0

在 Linux 服务器上排查是哪个程序进程引起的某个访问行为,可以使用以下方法:

  1. 查看网络连接:使用 netstatss 命令查看当前服务器的网络连接情况,可以查看到与恶意域名相关的连接。例如,使用以下命令查看所有的网络连接:

    netstat -tunap
    

    或者

    ss -tunap
    

    查找与恶意域名相关的连接,可以根据远程 IP 地址或端口号进行过滤。

  2. 查看进程信息:根据找到的网络连接,查看对应的进程信息。可以使用 ps 命令或 lsof 命令来查看进程信息。

    ps -ef | grep <进程ID>
    

    或者

    lsof -p <进程ID>
    
  3. 查看日志文件:查看服务器的系统日志文件,例如 /var/log/messages/var/log/syslog,以及应用程序的日志文件,查找与恶意域名相关的记录。可以使用 grep 命令来过滤日志文件。

    grep "恶意域名" /var/log/messages
    

如果想在服务器下次访问恶意域名时抓取访问记录,可以考虑使用以下方法:

  1. 使用 tcpdump:使用 tcpdump 命令来抓取网络数据包,可以根据目标 IP 地址或端口号进行过滤。例如,使用以下命令来抓取与恶意域名相关的数据包:

    tcpdump -i eth0 host <恶意域名>
    

    抓取到的数据包可以保存到文件中,以便后续分析。

  2. 使用 iptables:使用 iptables 配置防火墙规则,将与恶意域名相关的流量重定向到特定的端口,然后使用 tcpdump 或其他抓包工具来捕获流量。例如,使用以下命令将与恶意域名相关的流量重定向到端口 12345:

    iptables -A OUTPUT -p tcp -d <恶意域名> -j REDIRECT --to-port 12345
    

    然后使用 tcpdump 命令来抓取端口 12345 的数据包。

以上方法可以帮助您在 Linux 服务器上排查是哪个程序进程引起的某个访问行为,并且可以抓取下次访问恶意域名的记录。

lanedm | 园豆:2396 (老鸟四级) | 2023-08-01 14:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册