Linux 应急响应的详细笔记

  0x00 前言

最近发现Linux出现问题的频率越来越大,相比于前些年来说,Windows服务器出现的问题已经很少见了,一个原因是现在大多数企业意识到Linux相对于Windows来说更加安全、更加流畅,另一方面随着Linux服务器的增加导致了安全配置较低的Linux服务器出现问题的概率越来越大。

0x01 Linux 系统安全排查

1.1 查询特权账号

查询系统中所有的特权账户( uid 为 0 ),下图中便查到一个可疑的sqli特权账户。

cat /etc/passwd | awk -F: '$3==0{print $1}'

查询系统中可以远程登录的账号:

awk '/$1|$6/{print $1}' /etc/shadow
《Linux 应急响应的详细笔记》

查询系统中所有账户:

cat /etc/passwd | awk -F: '{print $1}'
《Linux 应急响应的详细笔记》

1.2 查Linux历史命令

1.查询历史命令:

history
《Linux 应急响应的详细笔记》

2.添加历史命令审计

(1)在/etc/profile的文件尾部添加如下行数配置信息:

USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`if [ "$USER_IP" = "" ]thenUSER_IP=`hostname`fiexport HISTTIMEFORMAT="%F %T $USER_IP `whoami` "shopt -s histappendexport PROMPT_COMMAND="history -a"

(2)生效配置:

source /etc/profile

(3)设置保存一万条历史命令:

sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile

(4)审计效果如下:

《Linux 应急响应的详细笔记》

(5)导出历史记录:

history >history_1.txt
《Linux 应急响应的详细笔记》

1.3 排查可疑端口与服务进程

1.查看端口开放状态,检查系统是否存在代理、SSH软连接后门等可疑端口。

netstat -anulpt
《Linux 应急响应的详细笔记》

2.监控指定ip的通信进程。

while true; do netstat -antp | grep 10.10.10.1; done

《Linux 应急响应的详细笔记》

此处发现异常的C2通信。

3.清除可疑进程与文件。

(1)清除进程:

ps -aux
ps -elf | grep 66579   
kill -9 66579

《Linux 应急响应的详细笔记》

(2)清除文件:

ps -aux
ls -al /proc/67730/exe
rm -f /home/c2test
《Linux 应急响应的详细笔记》

4.排查可疑服务。

service --status-all
《Linux 应急响应的详细笔记》

5.检查CPU占用率:

top
《Linux 应急响应的详细笔记》

1.4 排查恶意模块

列出所有已载入系统的模块:

lsmod
《Linux 应急响应的详细笔记》

1.5 Webshell查杀

河马Webshell查杀:https://www.shellpub.com

1.下载安装:

wget -O /opt/hm-linux.tgz http://dl.shellpub.com/hm/latest/hm-linux-amd64.tgz?version=1.7.0
cd /opttar xvf hm-linux.tgz
./hm -h
《Linux 应急响应的详细笔记》

2.扫描你的web目录:

./hm scan /home           ---扫描完成之后结果会保存为result.csv文件,使用记事本或者excel打开查看
./hm deepscan /home       ---扫描时开启深度解码
《Linux 应急响应的详细笔记》

此处发现一个冰蝎马。

1.6 检查定时任务

1.列出用户自启动任务( /var/spool/cron )。

crontab -l

2.编辑定时任务。

crontab -e

3.删除所有定时任务。

crontab -r

1.7 系统日志检查

1.系统定时任务相关的日志。

/var/log/cron

2.记录了邮件信息。

/var/log/mailog

3.记录Linux系统的绝大多数重要信息。

/var/log/message

4.错误登录日志,使用lastb命令查看。

/var/log/btmp

5.系统中所有用户最后一次登录的日志,使用lastlog命令查看。

/var/log/lastlog

6.永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件,使用last命令查看。

/var/log/wtmp

7.记录当前登录的用户信息,使用w/who/users等命令查看。

/var/log/utmp

8.涉及账号和密码的程序都会记录,例如SSHsu切换用户、sudo授权、添加用户和修改用户密码。

/var/log/secure

0x02 总结

Linux系统的应急响应相对多数人来说没有Windows那么熟悉,相关操作流程与进程检测方法更是少了很多;近些年越来越多的Linux服务器开始出现问题,且占比越来越大,整理一些平常经常用到的应急方法才能在碰到问题时不会一头雾水。

转载自pbfochk 宸极实验室:https://mp.weixin.qq.com/s/iQSEvvLtpW_39UoymliYPA

点此亲启

ABOUT US

宸极实验室隶属山东九州信泰信息科技股份有限公司,致力于网络安全对抗技术研究,是山东省发改委认定的“网络安全对抗关键技术山东省工程实验室”。团队成员专注于 Web 安全、移动安全、红蓝对抗等领域,善于利用黑客视角发现和解决网络安全问题。

团队自成立以来,圆满完成了多次国家级、省部级重要网络安全保障和攻防演习活动,并积极参加各类网络安全竞赛,屡获殊荣。

对信息安全感兴趣的小伙伴欢迎加入宸极实验室,关注公众号,回复『招聘』,获取联系方式。

点赞