总体思路

确认问题与系统现象 → 取证清除与影响评估 → 系统加固 → 复盘整改

常见入侵

① 挖矿:

表象:CPU增高、可疑定时任务、外联矿池IP。

告警:威胁情报(主要)、Hids、蜜罐(挖矿扩散时触发)

动作:通过CPU确认异常情况→ 确认可疑进程 → 检查定时任务、主机服务、守护进程→结束病毒进程,删除病毒文件->加固。

②Webshell:

表象:业务侧应用逻辑漏洞(允许上传脚本等造成命令执行)或者开源软件低版本造成(fastjson等)导致,通常为反弹shell、高危命令执行,同时存在内网入侵、恶意程序传播、数据盗取等行为。

告警:Hids(主要)、流量监控设备

动作:确认Webshell文件内容与可用性→ 酌情断网,摘掉公网出口IP→ 通过日志等确认Webshell文件访问记录→ 确定Webshell入侵来源,是业务逻辑漏洞导致、开源组件漏洞还是弱口令与未授权等情况导致 →排查应用其他机器情况,全盘扫描Webshell文件→ 缩容机器,修复相关问题重新恢复应用开放。

③内网入侵:

表象:以入侵的跳板机为源头进行端口扫描、SSH爆破、内网渗透操作、域控攻击等。

告警:Hids(主要)、蜜罐、域控监控(ATA等)

动作:确定入侵边界再进行处理,通常蜜罐等存在批量扫描爆破记录,需登录前序遭入侵机器确认情况,方便后续批量处理,这个情况较为复杂后期单独写一篇文章。

进程相关

1.查询可疑端口、进程、ip:netstat -antlp | more 或者 netstat -anltp | grep $pid,若存在可疑进程可通过 ls -l /proc/$PID 查看PID对应的进程文件路径。

2.针对挖矿等大量消耗系统资源的恶意程序可以通过 top(执行top命令后通过大写字母P按CPU排序,通过大写字母M按内存排序)、ps -elf 可疑$PID 、ps -aux 命令检查排名靠前的或者不断变化的程序。同时使用 kill - 9 进程名 结束进程。

3.查询通过TCP、UDP连接服务器的IP地址列表:netstat -ntu ,查询可疑连接:netstat -antlp

4.查询守护进程:lsof -p $pid

5.查询进程命令行:ps -aux ,#注意查看命令行,如:带有URL等可疑字符串、wget等命令字符串可能为病毒下载地址

6.跟踪可疑进程运行情况:strace -tt -T -e trace=all -p $pid

系统相关

1.检查账户安全:

① 检查近期登陆的账户记录:使用 last 命令,禁用可疑用户:usermod -L 用户名,删除用户:userdel -r 用户名

② 查询特权用户:awk -F ":" '$3==0{print $1}' /etc/passwd

③ 查询可远程登录用户:awk '/\$1|\$6/{print $1}' /etc/shadow

④ 查询sudo权限账户:cat /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"

⑤ 与业务确认管理员帐户、数据库帐户、MySQL 帐户、tomcat 帐户、网站后台管理员帐户等密码设置是否存在弱口令情况。

2.检查启动项与定时任务:

① cron目录(/var/spool/cron,查询目录下所有文件通过ls -al)下检查非法定时任务脚本:查看/etc/crontab,/etc/cron.d,/etc/cron.daily,cron.hourly/,cron.monthly,cron.weekly/是否存在可疑脚本或程序,进行注释或者删除。

② 编辑定时任务:crontab -e,查看定时任务:crontab -l,查看anacron异步定时任务:cat /etc/anacrontab,删除定时任务:crontab -r

3.查询主机历史命令: history

4.查询主机所有服务:service --status-all

5.开机启动项:ls -alt /etc/init.d/ cat /etc/rc.local

文件相关

1.关于敏感目录:

① 查看tmp目录相关文件:ls -alt /tmp/

② 指定目录下文件按时间排序:ls -alt |head -n 10

③ 查看可疑文件详细修改时间: stat 目录或者文件

2.关于文件篡改:

① 查找24小时内被修改的特定文件:find ./ -mtime 0 -name "*.jsp"

② 查找72小时内新增的文件:find / -ctime -2

③ 查询一定时间内敏感目录下被修改的系统文件: find /etc/ /usr/bin/ /usr/sbin/ /bin/ /usr/local/bin/ /var/spool/cron/ -type f -mtime -3 | xargs ls -l

3.删除恶意文件:

ls -al /proc/[pid]/,ls -al /proc/[pid]/exe

rm -f [exe_path]

查询文件md5: md5sum 文件名

查询SSH登录日志: vim /var/log/secure #所有ssh登录打包日志均在该文件夹,可直接vim,快速判断爆破痕迹(Accepted password:密码正确、Failed password:密码错误)

其他

关于取证备份:

系统服务备份 chkconfig --list > services.log

进程备份 ps -ef > ps.log

监听端口备份 netstat -utnpl > port-listen.log

系统所有端口情况 netstat -ano > port-all.log

查看是否有账号异常登录情况:

a.查看当前登录用户和其行为:w

b.查看所有用户最后一次登录的时间:lastlog

c.查看所有用户的登录注销信息及系统的启动、重启及关机事件:last

d.查看登录成功的日期、用户名及ip:grep "Accepted " /var/log/secure* | awk '{print $1,$2,$3,$9,$11}'

e.查看试图爆破主机的ip:grep refused /var/log/secure* | awk {'print $9'} | sort | uniq -c |sort -nr | more 、 grep "Failed password" /var/log/secure* | grep -E -o "(([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3}))" | uniq -c

f.查看有哪些ip在爆破主机的root账号:grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort

g.查看爆破用户名字典:grep "Failed password" /var/log/secure | awk {'print $9'} | sort | uniq -c | sort -nr

cron文件检查恶意脚本位置:

/var/spool/cron/*
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/*
/etc/cron.hourly/*
/etc/cron.monthly/*
/etc/cron.weekly/
/etc/anacrontab
/var/spool/anacron/*

检查近期被替换命令:

ls -alt /usr/bin /usr/sbin /bin /usr/local/bin

服务器入侵应急响应排查(Linux篇)的更多相关文章

  1. 记一次linux服务器入侵应急响应

    近日接到客户求助,他们收到托管电信机房的信息,通知检测到他们的一台服务器有对外发送攻击流量的行为.希望我们能协助排查问题. 一.确认安全事件 情况紧急,首先要确认安全事件的真实性.经过和服务器运维人员 ...

  2. Linux安全事件应急响应排查方法总结

    Linux安全事件应急响应排查方法总结 Linux是服务器操作系统中最常用的操作系统,因为其拥有高性能.高扩展性.高安全性,受到了越来越多的运维人员追捧.但是针对Linux服务器操作系统的安全事件也非 ...

  3. 一些关于Linux入侵应急响应的碎碎念

    近半年做了很多应急响应项目,针对黑客入侵.但疲于没有时间来总结一些常用的东西,寄希望用这篇博文分享一些安全工程师在处理应急响应时常见的套路,因为方面众多可能有些杂碎. 个人认为入侵响应的核心无外乎四个 ...

  4. 6.【应急响应】Linux入侵排查思路

    0x01 入侵排查思路 一.账号安全 基本使用: 1.用户信息文件/etc/passwd root:x:0:0:root:/root:/bin/bash account:password:UID:GI ...

  5. 【应急响应】Linux安全加固

    一.补丁管理 1.查看系统信息 uname -a 2.配置yun源 CentosOS 可以直接升级 RHEL系列可以配置使用CentosOS源 3.升级软件包 yum –y update 二.安全工具 ...

  6. Linux应急响应思路详谈

    一.主机篇: 1.自动化初筛,建议使用RootkitHunter (1)安装 $sudo wget https://jaist.dl.sourceforge.net/project/rkhunter/ ...

  7. Android 学习笔记之Volley(六)实现获取服务器的字符串响应...

    学习内容: 1.使用StringRequest实现获取服务器的字符串响应...   前几篇一直都在对服务——响应过程的源码进行分析,解析了整个过程,那么Volley中到底实现了哪些请求才是我们在开发中 ...

  8. Linux应急响应入侵排查思路

    0x00 前言 ​ 当企业发生黑客入侵.系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,进一步查找入侵来源,还原入侵事故过程,同时给出解 ...

  9. windows应急响应入侵排查思路

    0x00 前言 ​ 当企业发生黑客入侵.系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,进一步查找入侵来源,还原入侵事故过程,同时给出解 ...

随机推荐

  1. vim 常用指令-持续更新

    1. 查询文件夹file1内文件数量:ls file1 | wc -l 2. 生成文件夹file1内的文件列表:find file1 -type f > list.txt 3. git管理文件, ...

  2. JavaScript基础对象创建模式之单体/单例模式(Singleton)

    首先,单例模式是对象的创建模式之一,此外还包括工厂模式.单例模式的三个特点: 1,该类只有一个实例 2,该类自行创建该实例(在该类内部创建自身的实例对象) 3,向整个系统公开这个实例接口 Java中大 ...

  3. Java工具类——数学相关的类

    Java工具类--数学相关的类 在上一篇文章中,我们系统学习了 Java 里面的包装类,那么这篇文章,我们就来学习一下Java提供好的类--数学相关的类. 一.数学类介绍 在最早期学习 Java 基础 ...

  4. IntelliJ IDEA快速实现Docker镜像部署

    一.Docker开启远程访问 [root@izwz9eftauv7x69f5jvi96z docker]# vim /usr/lib/systemd/system/docker.service #修改 ...

  5. visual studio 项目中使用EF创建的数据库,后续更新数据库操作(生产已经部署,不能删除数据库重新创建)

    情景:SharePoint项目(其他类型的项目道理也一样),数据库是用EF(版本:6.0.0.0)创建的,生产环境已经使用,所以后续修改数据库,只能通过更新来实现. 下面是具体的操作方式: 1.vis ...

  6. POJ1328贪心

    题意:如今我们位于沿海地区,需要安装大炮,使得火力可以覆盖整个区域.海岸线可以视为是无限长的直线.陆地位于海岸线的一侧,海洋位于另一侧.海洋里有若干个岛屿,每个小岛可以视为海洋中的一个点.我们需要在海 ...

  7. day58 作业

    目录 一.做一个图书管理系统页面 二.做一个主页模版 三.点赞 一.做一个图书管理系统页面 <!DOCTYPE html> <html lang="en"> ...

  8. 三种存储方式DAS、NAS、SAN

    ------------恢复内容开始------------ 一.DAS.NAS.SAN在存储领域的位置 随着主机.磁盘.网络等技术的发展,数据存储的方式和架构也在一直不停改变,本文主要介绍目前主流的 ...

  9. 输入Javac提示不是内部或外部命令怎么办

    首先,我们在电脑上面找到此电脑, 然后右键点击,选择属性.   在属性中,我们找到高级系统设置,点击打开,如图示.   然后在系统设置中,我们可以找到启动和鼓掌恢复,然后点击环境变量,点击打开.   ...

  10. 机器学习实战基础(二十六):sklearn中的降维算法PCA和SVD(七) 附录