当前位置:   article > 正文

Linux应急响应基础_linux 命令替换 应急

linux 命令替换 应急

常用命令

处置进程\文件

  1. netstat -anplt 查看网络连接状态
  2. -a或–all 显示所有连线中的Socket
  3. -n或–numeric 直接使用IP地址,而不通过域名服务器
  4. -p或–programs 显示正在使用Socket的程序识别码和程序名称
  5. -l或–listening 显示监控中的服务器的Socket
  6. -t或–tcp 显示TCP传输协议的连线状况
  7. -u或–udp 显示UDP传输协议的连线状况
  8. top 查看进程的资源占用率
  9. lsof -p PID 查看与某进程相关的文件
  10. cd /proc/PID 查看与某进程相关的文件
  11. stat 查看文件信息
  12. kill -9 PID PID 结束进程(一个或多个)
  13. kill -9 ~ & crontab -r 同时删除相互守护的进程和计划任务
  14. ./busybox cat /etc/ld.so.preload 利用busybox查看动态链接库

持久项排查

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

溯源工作

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

其他位置

一、Web服务

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

  • D盾等工具
  • 命令查找:
  1. 查找24小时内被修改的JSP文件:find ./ -mtime 0 -name "*.jsp"
  2. 与测试环境目录做对比:diff -r {生产dir} {测试dir}
  3. 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'
  4. 只查小马的可以
  5. 1.grep -r --include=*.php '[^a-z]eval($_POST' . > post.txt
  6. 2.grep -r --include=*.php '[^a-z]eval($_REQUEST' . > REQUEST.txt

Audit审计

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

Access Log

  1. 扫描特征:egrep '(select|script|acunetix|sqlmap)' /var/log/httpd/access_log
  2. 访问频次,重点关注POST请求:grep 'POST' /var/log/httpd/access_log | awk '{print $1}' | sort | uniq -c | sort -nr
  3. 过滤Content-Length大于5M的日志:awk '{if($10>5000000){print $0}}' /var/log/httpd/access_log
  4. # 如果发现文件,不要直接用vim查看编辑文件内容,以防更改文件的mtime

二、ssh服务

登录信息

成功:

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

失败

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

检测ssh后门

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

命令举例

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

四、网络连接

  1. netstat -antlp (| grep ESTABLISHED) 获取(已建立)连接
  2. netstat -antlp | grep EST | grep bash 检查已建立反弹bash
  3. netstat -antlp | grep LISTEN | grep 1080 检查可以监听端口
  4. (例如攻击者在本地开启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. 1)检查命令替换:rpm -qaV(显示所有一以RPM安装的软件的完整性)
  2. 2)比对命令的大小(比对ps和netstat):ll /bin/ps & ll /bin/netstat
  3. 3)查看命令的修改时间,按修改时间排序:ls -alt /bin/ | head -n 5
  4. 4)利用busybox查看动态链接库:./busybox cat /etc/ld.so.preload
  5. 5)使用工具chkrootkit,rkhunter查看

十、病毒检测

十一、文件权限

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

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

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

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号