Linux应急响应基础

常用命令

处置进程\文件

netstat -anplt 查看网络连接状态
-a或–all 显示所有连线中的Socket
-n或–numeric 直接使用IP地址,而不通过域名服务器
-p或–programs 显示正在使用Socket的程序识别码和程序名称
-l或–listening 显示监控中的服务器的Socket
-t或–tcp 显示TCP传输协议的连线状况
-u或–udp 显示UDP传输协议的连线状况

top 查看进程的资源占用率
lsof -p PID 查看与某进程相关的文件
cd /proc/PID 查看与某进程相关的文件
stat 查看文件信息
kill -9 PID PID 结束进程(一个或多个)
kill -9 ~ & crontab -r 同时删除相互守护的进程和计划任务
./busybox cat /etc/ld.so.preload 利用busybox查看动态链接库

持久项排查

crontab -l 列出计划任务,-r 删除,-e 编辑
/etc/rc.d 文件夹,rc.local文件
/var/spool/cron 文件夹及其中内容
/etc/profile 及其内容指向的文件/文件夹(profile.d内脚本等)
~/.bashrc 及其内容指向(/etc/bashrc等)

溯源工作

last 查看历史登录记录
lastb 历史登录失败记录
cat /var/log/secure 查看安全日志
cat ~/.ssh/authorized_keys 查看免密认证证书
docker ps 查看docker信息
docker logs ID 查看docker日志
journalctl -u docker.service 查看docker服务日志
cat /PATH/logs/catalina.out  查看tomcat调试日志
cat /PATH/logs/localhost.DATE.log 查看tomcat登录日志

其他位置

一、Web服务

查找webshell:linux查找webshell_weixin_33709609的博客-CSDN博客

  • D盾等工具
  • 命令查找:
查找24小时内被修改的JSP文件:find ./ -mtime 0 -name "*.jsp"
与测试环境目录做对比:diff -r {生产dir} {测试dir}

find /www/ -name "*.php" |xargs egrep 'assert|phpspy|c99sh|milw0rm|eval|\\(gunerpress|\\(base64_decoolcode|spider_bc|shell_exec|passthru|\\(\\$\\_\\POST\\[|eval \\(str_rot13|\\.chr\\(|\\$\\{\\"\\_P|eval\\(\\$\\_R|file_put_contents\\(\\.\\*\\$\\_|base64_decode'

只查小马的可以
1.grep -r --include=*.php  '[^a-z]eval($_POST' . > post.txt
2.grep -r --include=*.php  '[^a-z]eval($_REQUEST' . > REQUEST.txt

Audit审计

创建Audit审计规则(Audit另学):vim /etc/audit/audit.rules
-a exclude,always -F msgtype=CONFIG_CHANGE
-a exit,always -F arch=b64 -F uid=48 -S execve -k webshell

Access Log

扫描特征:egrep '(select|script|acunetix|sqlmap)' /var/log/httpd/access_log
访问频次,重点关注POST请求:grep 'POST' /var/log/httpd/access_log | awk '{print $1}' | sort | uniq -c | sort -nr
过滤Content-Length大于5M的日志:awk '{if($10>5000000){print $0}}' /var/log/httpd/access_log

# 如果发现文件,不要直接用vim查看编辑文件内容,以防更改文件的mtime

二、ssh服务

登录信息

成功:

grep 'Accepted' /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr
或last命令,它会读取/var/log/wtmp,并显示该文件记录的登录系统的用户名单

失败

grep 'Failed' /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr
或lastb命令,它会读取/var/log/btmp,并显示该文件记录的登入系统失败的用户名单

检测ssh后门

1. 比对ssh的版本:ssh -V
2. 查看ssh配置文件和/usr/sbin/sshd的时间:stat /usr/sbin/sshd
3. 有些sshd后门会通过邮件发送登录信息,通过:strings /usr/sbin/sshd 查看是否有邮箱信息
4. 一般的sshd后门都会将账户密码记录到文件,可通过strace监控sshd进程读写文件的操作:
  ps axu | grep sshd | grep -v grep
  root 65530 0.0 0.1 48428 1260 ? Ss 13:43 0:00 /usr/sbin/sshd
  strace -o aa -ff -p 65530
  grep open aa* | grep -v -e No -e null -e denied| grep WR
  aa.102586:open("/tmp/ilog", O_WRONLY|O_CREAT|O_APPEND, 0666) = 4

三、进程

**注:**如果攻击者获取到了Root权限,被植入内核或者系统层Rootkit的话,进程也会隐藏。

检查项

1)资源占用:Top然后找到CPU和MEM排序

2)启动时间:可疑与前面找到的Webshell时间点比对。

3)启动权限:这点很重要,发现木马进程以mysql权限执行,则排查mysql

4)父进程,如反弹shell父进程为apache,则可判断为web入侵

命令举例

ps -ef | grep '/dev/tcp' | grep -v grep 查看反弹shell进程
ps -ef | grep 1014 查看进程1014(若上条命令发现父进程为1014)
lsof -p PID 查看相关文件和路径(如可能发现可执行文件)
file .zl 获取文件类型
strings .zl 读取二进制文件中可读字符
例:strings /usr/bin/.sshd | egrep '[1-9]{1,3}\\.[1-9]{1,3}\\.' ,命令替换应急可查询大量ip地址

四、网络连接

netstat -antlp (| grep ESTABLISHED)  获取(已建立)连接
netstat -antlp | grep EST | grep bash 检查已建立反弹bash
netstat -antlp | grep LISTEN | grep 1080 检查可以监听端口
(例如攻击者在本地开启sock5代理,然后使用SSH反弹sock5)

五、敏感目录

/tmp, /var/tmp, /dev/shm,所有用户都可读,可写,可执行

ls -ald /PATH/ 查看目录内容

六、history查看历史命令

history 仅记录执行的命令

七、开机启动

CentOS 5

1)/etc/inittab
2)/etc/rc.d/rc.sysinit
3)/etc/rc.d/init.d
4)/etc/rc.d/rc.local

CentOS 6

1)/etc/init/*.conf
2)/etc/rc.d/rc.sysinit
3)/etc/rc.d/init.d
4)/etc/rc.d/rc.local

八、定时任务

1)/etc/crontab
2)/etc/cron.d
3)/var/spool/cron/{user}
4)/etc/anacrontab
5)/etc/cron.hourly,daily,weekly,monthly

九、Rootkit

1)检查命令替换:rpm -qaV(显示所有一以RPM安装的软件的完整性)
2)比对命令的大小(比对ps和netstat):ll /bin/ps & ll /bin/netstat
3)查看命令的修改时间,按修改时间排序:ls -alt /bin/ | head -n 5
4)利用busybox查看动态链接库:./busybox cat /etc/ld.so.preload
5)使用工具chkrootkit,rkhunter查看

十、病毒检测

十一、文件权限

本文由本人总结优化,参考原文:

Linux应急响应姿势浅谈 - 先知社区

linux常见backdoor及排查技术 - 先知社区

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值