转载于:
https://blog.youkuaiyun.com/weixin_44335190/article/details/91353637
检查Linux系统被入侵
1. 检查帐户
1 less /etc/passwd
2 grep :0: /etc/passwd (检查是否产生了新用户,和UID、GID是0的用户)
3 ls -l /etc/passwd (查看文件修改日期)
4 awk -F: ‘$3= =0 {print $1}’ /etc/passwd (查看是否存在特权用户)
5 awk -F: ‘length($2)= =0 {print $1}’ /etc/shadow(查看是否存在空口令帐户)
2. 检查日志
1 journalctl 显示所有日志
2 journalctl -n 10 查看最后10条日志
3 journalctl -f 跟踪日志,让日志动态输出
4 journalctl -p err..alert 只显示冲突、告警和错误
5 journalctl -u nginx.service 显示某个单元日志 可同时显示多个添加多个 -u nginx.service -u php-fom.service)
6 journalctl --since "20 min ago" 查找20分钟前的日志
7 journalctl --since today 查找今天的日志
8 journalctl --until 2019-4-24 查找2018-10-23日期的日志
9 journalctl --until 2019-4-30 | nl > 1.txt 查找2019-4-30之前的所有日志并导出到指定文件
10 journalctl -k 查看内核日志
11 journalctl _UID=1000 查找指定用户(UID)日志
12 systemctl list-unit-files 查看系统所有服务
13 netstat -tlunp 查看所有开启的端口
14 last(查看正常情况下登录到本机的所有用户的历史记录)
15 注意”entered promiscuous mode”
16 注意错误信息
17 注意Remote Procedure Call (rpc) programs with a log entry that includes a large number (20) strange characters(-^PM-^PM-^PM-^PM-^PM-^PM-^PM-^PM)
3. 检查进程
1 ps -aux (注意UID是0的)
2 lsof -p pid (察看该进程所打开端口和文件)
3 cat /etc/inetd.conf | grep -v “^#” (检查守护进程)
4
5 检查隐藏进程
6 ps -ef|awk ‘{print }’|sort -n|uniq 1
7 ls /porc |sort -n|uniq 2
8 diff 1 2
4. 检查文件
1 find / -uid 0 –perm -4000 –print
2 find / -size +10000k –print
3 find / -name “…” –print
4 find / -name “.. ” –print
5 find / -name “. ” –print
6 find / -name ” ” –print
7
8 注意SUID文件,可疑大于10M和空格文件
9 find / -name core -exec ls -l {} ; (检查系统中的core文件)
10
11 检查系统文件完整性
12 rpm –qf /bin/ls
13 rpm -qf /bin/login
14 md5sum –b 文件名
15 md5sum –t 文件名
5. 检查RPM
1 rpm -Va
输出格式:
2 S – File size differs
3 M – Mode differs (permissions)
4 5 – MD5 sum differs
5 D – Device number mismatch
6 L – readLink path mismatch
7 U – user ownership differs
8 G – group ownership differs
9 T – modification time differs
10 注意相关的 /sbin, /bin, /usr/sbin, and /usr/bin
6. 检查网络
1 ip link | grep PROMISC (正常网卡不该在promisc模式,可能存在sniffer)
2 lsof –i
3 netstat –nap (察看不正常打开的TCP/UDP端口)
4 arp –a
7. 检查计划任务 注意root和UID是0的schedule
1 crontab –u root –l
2 cat /etc/crontab
3 ls /etc/cron.*
8. 检查后门
1 cat /etc/crontab
2 ls /var/spool/cron/
3 cat /etc/rc.d/rc.local
4 ls /etc/rc.d
5 ls /etc/rc3.d
6 find / -type f -perm 4000
9.检查系统服务列表,防止一些程序加入到开机自启动中
1 systemctl list-unit-files
10.账号文件
1 /etc/passwd ##用户信息
2 /etc/shadow ##用户密码信息
3 /etc/profile ##系统配置文件,环境变量等信息
4 /home/用户/.bash_profile ##用户独有环境配置文件
5 /etc/rc.local ##用户自定义开机执行操作文件
11.历史命令记录在/.bash_history文件中
1 History ##查看历史命令
2 History –w ##将历史命令写入到文件中
3 History –c ##清除内存中历史命令
4 HISTSIZE=100 ##定义记录历史命令的条数,默认1000
5 HISTTIMEFORMAT=”%F-%T” ##记录历史命令时间
6 HISTFTILE=”文件” ##第一历史命令存放文件,注意必须有写入权限

706

被折叠的 条评论
为什么被折叠?



