应急响应之Windows/Linux(入侵排查篇)
0x01 应急响应介绍
当企业发生入侵事件、系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,进一步查找入侵来源,还原入侵事故过程,同时给出解决方案与防范措施,为企业挽回或减少经济损失。
0x02 安全事件分级
I 级事件-特别重大突发事件
-> 网络大面积中断
-> 主要业务大规模瘫痪
-> 大规模用户/业务数据泄漏
II 级事件-重大突发事件
-> 大规模主机入侵
-> 大规模业务数据损坏
-> 小规模数据泄漏
-> 政治敏感事件(网站挂黑页)
III 级事件-较大突发事件
-> 部分业务系统遭受入侵
-> 主要业务遭受DDOS、CC攻击
IV 级事件-一般突发事件
-> 部分业务系统宕机
-> 部分业务系统异常/无法访问
通过对安全事件的定级,确认属于什么级别的事故,采取相应的应急预案和紧急程度的确认。
0x03 应急响应执行流程
-> 事件发生:(运维监控人员、客服审核人员等),发现存在问题、及时通报
-> 事件确认:判断事件的严重性,评估出问题的严重等级,是否向上进行汇报等
-> 事件响应:各部门通力合作,处理安全问题,具体解决阶段
-> 事件关闭:处理完事件之后,需要关闭事件,并写出安全应急处理分析报告,完成整个应急响应过程
0x04 常见的异常特征
-> 主机安全:CPU满负载,服务器莫名重启等
-> 网站安全:出现WebShell,被植入暗链,网页被篡改等
-> 流量安全:网络堵塞,网络异常等
-> 数据安全:数据泄漏,数据被篡改等
-> 文件安全:文件丢失,文件异常等
-> 设备告警:防火墙,杀软,检测平台IDS,态势感知平台等
以上属于常规出现的异常情况,关于这些问题,也分为几个方面,一部分基于数据流量问题,另一方面基于主机层面的问题,每一个问题就是对应的一个安全事件,出现安全事件要及时进行排查,防止造成更多安全隐患!
0x05 安全事件分类
-> web入侵:网站挂马、页面篡改、植入WebShell
-> 系统入侵:系统异常、RDP爆破、SSH爆破、主机漏洞
-> 病毒木马:远控、后门、蠕虫病毒、勒索软件
-> 信息泄露:脱库、数据库登录(弱口令)
-> 网络流量:频繁发包、批量请求、DDOS攻击、CC攻击
0x06 入侵主机排查过程
-> 定位被入侵主机并且立即对该主机进行断网隔离
-> 确定攻击类型
-> 确定被入侵的时间范围
-> 定位恶意文件和入侵痕迹
-> 溯源入侵来源
-> 清理恶意文件/修复漏洞
-> 事件复盘
0x07 基于Windows入侵排查流程
1.自动化查杀
安装杀毒软件 如:360全家桶、火绒安全、电脑管家等 及时更新病毒库,进行安全扫描查杀
2.使用WebShell查杀工具对后门文件进行木马查杀(D盾、河马)
3.网站用户及系统用户安全
(1).网站服务器或主机是否存在弱口令,是否对外开放危险端口(例如:135、136、137、445、3306、3389等)
向网站管理人员了解情况,如果存在弱口令,以及对外开放端口没有及时打补丁,要及时修复!
(2)主机是否存在新增、隐藏、克隆用户
可使用D盾进行检测是否存在其他账户
打开 cmd 窗口输入 lusrmgr.msc 命令,可查看是否存在新增账号,或者 administator 组里
(3)通过日志,查看所有用户登录是否存在异常(4624:登录成功 4625:登陆失败)**
cmd中输入 eventvwr.msc 弹出事件查看器,采取人工进行分析
也可使用工具 LogParser 查看有无异常事件,命令如下
LogParser.exe -i:EVT "SELECT TimeGenerated as LoginTime,EXTRACT_TOKEN(Strings,5,'|') as username FROM d:\log\test.evtx where EventID=4624"
4.开放端口,运行进程
查看异常端口
cmd中输入 netstat 命令查看网络连接,已建立连接**(ESTABLISHED)**
netstat 查出来的可疑连接 PID ,通过 tasklist 命令进行进程定位,可以看到文件名称
查看Windows服务所对应的端口,路径在 C:\Windows\System32\drivers\etc
检查异常进程
cmd 输入msinfo32 弹出系统信息,也会显示详细进程
图形化展示 ->任务管理器
也可使用D盾查看是否存在可疑进程,这里需要详细查看
查看可疑进程时候应该特别关注如:
5.启动项、计划任务、服务
(1)检查主机是否存在异常启动项
cmd -> msconfig
win+r,输入 regedit,打开注册表,查看开机启动项是否正常,注意如下三个注册表项:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce
利用杀毒软件查看启动项、开机时间管理等
运行 gpedit.msc打开组策略,查看是否有可疑脚本,有则删除
(2)检查计划任务
控制面板中打开任务计划,查看计划任务属性,查看是否存在可疑程序
cmd中输入 schtasks.exe ,查看计算机与网络上的其它计算机之间的会话或计划任务是否可疑
(3)服务自启动
cmd 中输入 services.msc ,查看是否存在异常服务
6.系统相关信息
(1)查看主机系统相关信息
cmd 中输入 systeminfo ,查看系统信息
(2)查找可疑目录及文件
默认用户目录,新用户会在这个目录生成一个用户目录,如果是可疑目录检查后可删除,路径如下:
Window 2003版本 C:\Documents and Settings
Window 2008R2及以后版本 C:\Users\
分析最近打开的可疑文件 ,WIN+R ,输入如下命令进行查看
%UserProfile%\Recent
可根据 修改日期 查看是否有新增可疑文件
查看浏览器中历史记录是否有可疑文件
查找某文件修改时间在创建时间之前的为可疑文件
属性里–>常规处有创建文件日期,与修改日期进行对比,如下图所示
使用主机自带的搜索或者使用 everything 工具进行搜索敏感文件(如:木马、webshell、恶意脚本)
Web日志
将web的访问日志进行打包下载,使用日志分析工具进行分析异常
Windows日志分析工具: EmEdito
Linux 日志分析工具: Shell 命令组合查询分析
0x08 基于Linux入侵排查流程
1.用户安全
查看用户信息文件,是否存在新增用户
cat /etc/passwd
查看 /home目录是否有新目录(如果存在可疑目录,可能被入侵)
查看是否还有其他特权用户(默认只有一个特权用户 root 即uid=0)
awk -F: '$3==0{print $1}' /etc/passwd
查看当前登录用户
who # tty:本地登录 pts:远程登录
查看系统信息
w #可以知道某一时刻用户的行为
查看的用户的多少,用户上线了多久,以及负载
uptime
删除用户密码
passwd -d username
查看用户上一次密码修改时间
stat /etc/passwd #如果近期修改过,可能存在问题
查看不可登录之外的用户
cat /etc/passwd | grep -v nologin #有无新增用户,有则可能存在问题
查看具有root权限的用户
cat /etc/passwd | grep x:0 # 有新增的就可能存在问题
查看使用shell的用户
cat /etc/passwd | grep /bin/bash
查看可以远程登录的用户
awk '/\$1|\$6/{print $1}' /etc/shadow
查看具有sudo权限的用户
more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"
查看登录失败的次数
grep -o "Failed password" /var/log/secure|uniq -c
查看登录失败的用户
lastb
查看登录使用的用户名 (可以看到出现的次数)
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr
查看成功登录的ip
grep "Accepted" /var/log/secure | awk '{print $11}' | sort | uniq -c |sort -nr | more
查看登录成功的用户名、日期以及ip
如果出现可疑用户可进行如下操作
禁用账号
usermod -L user #/etc/shadow 第二栏开头为!则表示以禁用
删除用户
userdel xp #删除xp用户
userdel -r xp #删除用户 ,并将/home目录下的user目录一并删除
2.历史命令
用户执行操作的历史记录存放在文件.bash_history,登录root可查看其他用户的历史记录信息。
cat /home/XXX/.bash_history #XXX是要查看的用户
查看当前用户操作命令历史
history
保存历史记录到指定文件
cat /home/xxx/.bash_history >>history.txt #保存xxx用户的历史记录到当前目录的history.txt文件中
3.检查异常端口
netstat –antp #显示直接ip所有建立相关链接程序名的tcp的端口情况
-a:显示所有选项
-t:仅显示tcp相关选项 -u:仅显示udp相关选项
-n:直接使用ip地址,而不通过域名服务器
-l:仅列出有在 Listen (监听) 的服務状态
-p:显示建立相关链接的程序名
-r:显示路由信息,路由表
-e:显示扩展信息,例如uid等
-s:显示网络工作信息统计表(按各个协议进行统计)
-c:每隔一个固定时间,执行该netstat命令
查看对应链接的文件路径
ls -l /proc/XXX/XXXX
通过ip地址获取程序pid
netstat -antlp | grep 127.0.0.1 | awk '{print $7}' | cut -f1 -d"/"
4.检查进程
ps -aux
-a - 列出所有运行中/激活进程
-ef |grep - 列出需要进程
-aux - 显示进程信息,包括无终端的(x)和针对用户(u)的进程:如USER, PID, %CPU, %MEM等
查看pid对应的程序
ps –aux | grep pid
监控网路客户连接数
netstat -n | grep tcp | grep 监听端口 | wc -l
查看cpu占有率前十的进程
ps aux --sort=pcpu | head -10
5.开机启动项
启动项文件如下
more /etc/rc.local
/etc/rc.d/rc[0~6].d
ls -l /etc/rc.d/rc3.d/
查看是否有异常脚本在开机时启动
6.定时任务
crontab -l #如果有不是管理员设置的定时任务很可能是黑客留下的
编辑定时任务
crontab -e
查看root定时任务计划
crontab -u root -l
查看有哪些用户有定时任务
ls /var/spool/cron
删除定时任务并控制计划任务不能写东西
sed '/gcc.sh/d' /etc/crontab && chmod 0000 /etc/crontab && chattr +i /etc/crontab
常见的定时任务文件如下
/var/spool/cron/* #centos的
/var/spool/cron/crontabs/* #ubuntu的
/var/spool/anacron/*
/etc/crontab
/etc/anacrontab #异步定时
/etc/cron.hourly/*
/etc/cron.daily/*
/etc/cron.weekly/
/etc/cron.monthly/*
7.服务
查看开机启动项目
chkconfig
查看服务自启状态
chkconfig --list
8.文件查找
查找指定的文件(find)
查找最近一天修改的文件
find / -mtime -1 > /XXX.txt #将修改过的文件保存到根目录下的XXX.txt中
查找大文件
find / -size +10000k -print #查找大于10000k的文件
查看文件的md5值
md5sum -b filename #filename文件名
9.top命令
top命令类似于Windows的任务管理器,能够实时显示系统中各个进程的资源占用状况默认top是根据cpu的占用情况进行排序的
可通过b键进行切换,可切换到按照内存使用情况进行排序
监听指定进程
top -p pid 监控指定进程
free #查看当前系统内存使用情况
10.hosts文件
有些挖矿的会修改hosts文件
cat /etc/hosts
11.日志分析
默认日志位置
var/log
定位有多少IP在爆破主机的root帐号
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
查看日志配置情况
more /etc/rsyslog.conf
可使用命令 last 进行查看最近登录的信息
查看/var/log/wtmp文件查看可疑IP登陆
last -f /var/log/wtmp
12.文件清除
遇到无法常看文件权限或是病毒在一直向某个文件写入程序,可尝试如下命令
lsattr 恶意文件 #查看文件属性
e:该文件使用extends来映射磁盘块
i:文件不能被删除
解除文件锁定
chattr -i 恶意文件
chattr +i #不让lib文件被写入删除
结束某进程
Kill -9 pid
附上常用应急命令
windows&Linux
更多推荐
所有评论(0)