首页
社区
课程
招聘
[原创]Linux入侵排查
发表于: 2025-5-11 12:13 1798

[原创]Linux入侵排查

2025-5-11 12:13
1798
前言

结合常见攻击事件及实际应急响应案例,系统整理了Linux服务器入侵后的排查与处置方法,形成了一套清晰的排查思路,既适用于实战中的安全事件响应,也可用于CTF 决赛中的 Linux 系统信息收集与分析。

账号安全
用户信息文件/etc/passwd
1
2
3
用户名:密码:用户ID:组ID:用户说明:家目录:登陆之后shell
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
影子文件/etc/shadow
1
2
用户名:加密密码:密码最后一次修改日期:两次密码的修改时间间隔:密码有效期:密码修改到期到的警告天数:密码过期之后的宽限天数:账号失效时间:保留
root:$6$ezldJFu3$sIpyVyoliD/k1Qlk8rMrWaMnyOGT0hqqYnninWjW85kwodPVUPGCWsdVSGD35p7fvhjRXOAcPdJe/uZ9KW/QL0:20186:0:99999:7:::
who、w、uptime
1
2
3
who     查看当前登录用户(tty本地登陆  pts远程登录)
w       查看系统信息,想知道某一时刻用户的行为
uptime  查看登陆多久、多少用户,负载

入侵排查
特权用户查询
1
awk -F: '$3==0{print $1}' /etc/passwd
远程登录的帐号信息
1
awk '/\$1|\$6/{print $1}' /etc/shadow
sudo权限查询
1
more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"
历史命令
历史命令查询
  1. history命令查询

  1. .bash_history文件查询
1
cat .bash_history >> history.txt
增强命令功能
异常信息查询
异常端口
1
netstat -antlp|more

查看pid所对应的进程文件路径

1
2
3
# $PID 为对应的pid 号
ls -l /proc/$PID/exe
file /proc/$PID/exe
异常进程
1
ps aux | grep pid
异常文件
  1. 查看敏感目录,如/tmp目录下的文件,同时注意隐藏文件夹,以“..”为名的文件夹具有隐藏属性
  2. 得到发现WEBSHELL、远控木马的创建时间,如何找出同一时间范围内创建的文件?

可以使用find命令来查找,如 find /opt -iname "*" -atime 1 -type f 找出 /opt 下一天前访问过的文件

  1. 针对可疑文件可以使用stat进行创建修改时间。
系统日志
日志信息
1
2
3
4
# 查看默认日志
cat /var/log/
# 查看日志配置
more /etc/rsyslog.conf
日志文件 说明
/var/log/cron 记录了系统定时任务相关的日志
/var/log/cups 记录打印信息的日志
/var/log/dmesg 记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息
/var/log/mailog 记录邮件信息
/var/log/message 记录系统重要信息的日志。这个日志文件中会记录Linux系统的绝大多数重要信息,如果系统出现问题时,首先要检查的就应该是这个日志文件
/var/log/btmp 记录错误登录日志,这个文件是二进制文件,不能直接vi查看,而要使用lastb命令查看
/var/log/lastlog 记录系统中所有用户最后一次登录时间的日志,这个文件是二进制文件,不能直接vi,而要使用lastlog命令查看
/var/log/wtmp 永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。同样这个文件也是一个二进制文件,不能直接vi,而需要使用last命令来查看
/var/log/utmp 记录当前已经登录的用户信息,这个文件会随着用户的登录和注销不断变化,只记录当前登录用户的信息。同样这个文件不能直接vi,而要使用w,who,users等命令来查询
/var/log/secure 记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如SSH登录,su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中
SSH 爆破排查

定位爆破 root 账户的 IP 地址

1
grep "Failed password for root" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr | more

定位所有进行爆破的 IP

1
grep "Failed password" /var/log/auth.log | grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" | uniq -c

被爆破的用户名统计

1
grep "Failed password" /var/log/auth.log | perl -e 'while($_=<>){ /for (.*?) from/; print "$1\n"; }' | uniq -c | sort -nr
登录成功日志排查

登录成功的 IP 地址统计

1
grep "Accepted " /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr | more

登录成功的详细信息(时间、用户名、IP)

1
grep "Accepted " /var/log/auth.log | awk '{print $1, $2, $3, $9, $11}'
用户操作审计

增加用户 kali 的日志记录

1
grep "useradd" /var/log/auth.log

删除用户 kali 的日志记录

1
grep "userdel" /var/log/auth.log

sudo 授权执行命令日志

1
sudo -l
定时任务

如果攻击者执行了反弹shell命令,可以通过这种方式找出来。

1
cat /etc/crontab

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回