Linux溯源小结
intro
原文链接 freebuf服务器入侵溯源小技巧整理
分析网站源码可以帮助获取网站被入侵时间,入侵痕迹、IP等信息, 对之后的日志分析很有帮助。通常情况下如何通过查杀后门、查看源文件修改时间去定位是否包含webshell.
使用 ls 查看指定目录下文件时间的排序
ls -alt | head -n 20
ls -alt a显示隐藏文件、l显示更多文件信息 t按照时间生成顺序排序
head -n x 显示每个文件的前x行内容
使用 find 指令查找限定时间范围的文件
sudo find ./ -cmin -10 -name "*.php"
使用 stat 查看文件详细信息
stat test.php
日志分析
分析nginx日志、access.log和error.log
根据时间筛选
sudo cat access.log| grep '27/Jun/2018'
根据特殊文件名筛选
sudo cat access.log| grep '文件名'
根据 ip 筛选
sudo cat access.log| grep 'ip'
对访问服务器的 IP 进行统计排序
sudo cat /var/log/apache2/access.log | cut -f1 -d ' '| sort | uniq -c
web-log 分析工具
系统日志分析
/var/log/wtmp 登录进入,退出,数据交换、关机和重启纪录
/var/run/utmp 有关当前登录用户的信息记录
/var/log/lastlog 文件记录用户最后登录的信息,可用 lastlog 命令来查看。
/var/log/secure 记录登入系统存取数据的文件,例如 pop3/ssh/telnet/ftp 等都会被记录。
/var/log/cron 与定时任务相关的日志信息
/var/log/message 系统启动后的信息和错误日志
/var/log/wtmp 和/var/run/utmp 两个文件无法直接使用 cat 命令输出,
但是可以使用一些命令来查看,比如 w/who/finger/id/last/ac/uptime
w
w 命令
该命令查询 /var/log/wtmp 文件并显示 当前 系统中每个用户和它所运行的进程信息:
last
该命令往回搜索 /var/log/wtmp 文件来显示自从该文件第一次创建以来所有登录过的用户:
如果指明了用户,则该命令只显示该用户的近期活动
lastlog
/var/log/lastlog 文件在每次有用户登录时被查询。可以使用 lastlog 命令来检查某特定用户上次登录的时间,
并格式化输出上次登录日志 /var/log/lastlog 的内容。它根据 UID 排序显示登录名、端口号(tty)
和上次登录时间。如果一个用户从未登录过,lastlog 显示 Never logged(从未登录过)。
注意需要以 root 运行该命令
系统信息分析
history
/etc/passwd
ls -alt /etc/init.d
查看用户登录信息 (lastlog,lastb,last)
查看是否有 ssh 可疑公钥
history
可使用该指令查看服务器上使用过的历史指令。通过 history 信息可能获得以下敏感信息
- wget (远程某主机的远控文件)
- ssh 尝试连接内网的某些机器
- tar zip 可以知道攻击者打包了哪些敏感数据
- 可知道攻击者对服务器做了哪些配置上的修改 (添加用户,留后门等)
/etc/passwd
可通过该文件分析可疑账号
分析服务器的开机自启程序,分析是否存在后门木马程序
1. ls -alt /etc/init.d
2. /etc/init.d/rc.local /etc/rc.local
3. chkconfig
查看登录信息
lastlog(查看系统中所有用户最近一次的登录信息)
lastb (查看用户的错误登录信息)
last(显示用户最近登录信息)
查看ssh相关目录
redis未授权访问漏洞可直接向服务器写入公钥,从而实现无密码登录服务器。
所以要查看/etc/.ssh ~/.ssh目录下有无可疑公钥
分析进程(端口)
查看端口占用情况
netstat -apn|more
查看可疑端口的pid分析进程
ps aux | grep 'pid'
结束进程
kill PID
killall <进程名>