1.应急响应基本思路流程
收集信息:收集客户信息和中毒主机信息,包括样本
判断类型:判断是否是安全事件,何种安全事件,勒索、挖矿、断网、DoS 等等
抑制范围:隔离使受害⾯不继续扩⼤
深入分析:日志分析、进程分析、启动项分析、样本分析方便后期溯源
清理处置:杀掉进程,删除文件,打补丁,删除异常系统服务,清除后门账号防止事件扩大,处理完毕后恢复生产
产出报告:整理并输出完整的安全事件报告
常见的应急响应事件分类:
web入侵:网页挂马、主页篡改、Webshell
系统入侵:病毒木马、勒索软件、远控后门
网络攻击:DDOS攻击、DNS劫持、ARP欺骗
1.window入侵排查
1.1 检查系统账号安全
4步:
1、查看服务器是否有弱口令,远程管理端口是否对公网开放。检查方法:据实际情况咨询相关服务器管理员。
2、查看服务器是否存在可疑账号、新增账号。
检查方法:打开 cmd 窗口,输入lusrmgr.msc 命令,查看是否有新增/可疑的账号,如有管理员群组的
(Administrators)里的新增账户,如有,请立即禁用或删除掉。
3、查看服务器是否存在隐藏账号、克隆账号。检查方法:
a、打开注册表 ,查看管理员对应键值。
b、使用D盾_web查杀工具,集成了对克隆账号检测的功能。
在cmd中输入:net user 看看有没有陌生用户
在cmd中输入:regedit 找到注册表分支 “HKEY_LOCAL_MACHINE/SAM/SAM/Domains/Account/Users/Names/”看看有没有克隆用户
4、结合日志,查看管理员登录时间、用户名是否存在异常。检查方法:
a、Win+R打开运行,输入“eventvwr.msc”,回车运行,打开“事件查看器”。
b、导出Windows日志--安全,利用Log Parser进行分析。
1.2 检查异常端口、进程
2步:
1、检查端口连接情况,是否有远程连接、可疑连接。检查方法:
a、netstat -ano 查看目前的网络连接,定位可疑的ESTABLISHED
b、根据netstat 定位出的pid,再通过tasklist命令进行进程定位 tasklist | findstr “PID”
2、进程
检查方法:
a、开始--运行--输入msinfo32,依次点击“软件环境→正在运行任务”就可以查看到进程的详细信息,比如进程路径、进程ID、文件创建日期、启动时间等。
b、打开D盾_web查杀工具,进程查看,关注没有签名信息的进程。
c、通过微软官方提供的 Process Explorer 等工具进行排查 。
d、查看可疑的进程及其子进程。
1.3检查启动项、计划任务、服务
1、检查服务器是否有异常的启动项。检查方法:ctrl x t 或者msconfig——>启动
有异常,结束他们并可用everying查找删除相关文件,并检查注册表,有问题可以用uninstall tool工具删除。
2、检查计划任务
检查方法:
a、单击【开始】>【设置】>【控制面板】>【任务计划】,查看计划任务属性,便可以发现木马文件的路径。
b、单击【开始】>【运行】;输入 cmd,然后输入at,检查计算机与网络上的其它计算机之间的会话或计划任务,如有,则确认是否为正常连接。
3、服务自启动
检查方法:单击【开始】>【运行】,输入services.msc,注意服务状态和启动类型,检查是否有异常服务。
1.4 检查系统相关信息
3步
1、查看系统版本以及补丁信息
检查方法:单击【开始】>【运行】,输入systeminfo,查看系统信息
2、查找可疑目录及文件检查方法:
a、 查看用户目录,新建账号会在这个目录生成一个用户目录,查看是否有新建用户目录。
Window 2003 C:\Documents and Settings
Window 2008R2 C:\Users\
b、单击【开始】>【运行】,输入%UserProfile%\Recent,(win10不行)分析最近打开分析可疑文件。
c、在服务器各个目录,可根据文件夹内文件列表时间进行排序,查找可疑文件。
d、回收站、浏览器下载目录、浏览器历史记录
e、修改时间在创建时间之前的为可疑文件
3、得到发现WEBSHELL、远控木马的创建时间,如何找出同一时间范围内创建的文件?
a、利用 Registry Workshop 注册表编辑器的搜索功能,可以找到最后写入时间区间的文件。
b、利用计算机自带文件搜索功能,指定修改时间进行搜索。
1.5 自动化查杀
病毒查杀
检查方法:下载安全软件,更新最新病毒库,进行全盘扫描。
webshell查杀
检查方法:选择具体站点路径进行webshell查杀,建议使用两款webshell查杀工具同时查杀,可相互补充规则库的不足。
1.6 日志分析
系统日志用Log Parser
web日志
分析方法:
a、找到中间件的web日志,打包到本地方便进行分析。
b、推荐工具:Window下,推荐用 EmEditor 进行日志分析,支持大文本,搜索效率还不错。
Linux下,使用Shell命令组合查询分析
2.Linux入侵排查
账号安全
基本使用
1 、 用 户 信 息 文 件 /etc/passwd
2 、 影 子 文 件 /etc/shadow
who查看当前登录用户(tty本地登陆pts远程登录)
w查看系统信息,想知道某一时刻用户的行为uptime查看登陆多久、多少用户,负载
入侵排查:
1、查询特权用户特权用户(uid 为0)
[root@localhost ~]# awk -F: '$3==0{print $1}' /etc/passwd
2、查询可以远程登录的帐号信息
[root@localhost ~]# awk '/\$1|\$6/{print $1}' /etc/shadow
3、除root帐号外,其他帐号是否存在sudo权限。如非管理需要,普通帐号应删除sudo权限[root@localhost ~]# more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"
4、禁用或删除多余及可疑的帐号
usermod -L user 禁用帐号,帐号无法登录,/etc/shadow第二栏为!开头
userdel user 删除user用户
userdel -r user 将删除user用户,并且将/home目录下的user目录一并删除
历史命令基本使用
history
history -c
检查异常端口
netstat -antlp|more
查看下pid所对应的进程文件路径,
运行ls -l /proc/$PID/exe或file /proc/$PID/exe($PID 为对应的pid 号)
检查异常进程
使用ps命令,分析进程
ps aux | grep pid
检查开机启动项
当我们需要开机启动自己的脚本时,只需要将可执行脚本丢在/etc/init.d目录下,然后在/etc/rc.d/rc*.d中建立软链 接即可
入侵排查:
启动项文件: more /etc/rc.local /etc/rc.d/rc[0~6].d ls -l /etc/rc.d/rc3.d/
检查定时任务
基本使用
1、利用crontab创建计划任务基本命令
crontab -l 列出某个用户cron服务的详细内容
Tips:默认编写的crontab文件会保存在 (/var/spool/cron/用户名 例如: /var/spool/cron/root crontab -r 删除每个用户cront任务(谨慎:删除所有的计划任务)
crontab -e 使用编辑器编辑当前的crontab文件
如:*/1 * * * * echo "hello world" >> /tmp/test.txt 每分钟写入文件
2、利用anacron实现异步定时任务调度使用案例
每天运行 /home/backup.sh脚本: vi /etc/anacrontab @daily 10 example.daily /bin/bash /home/backup.sh 当机器在 backup.sh 期望被运行时是关机的,anacron会在机器开机十分钟之后运行它,而不用再等待 7天。
入侵排查
重点关注以下目录中是否存在恶意脚本
/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/*上面目录都是与 Linux 系统中的定时任务(cron)相关的目录 。定时任务是一种在指定时间或周期执行某些命令或脚本的功能。每个目录的作用如下:
• /var/spool/cron/* :存放每个用户(包括 root)的 crontab 文件,每个文件以用户名命名,用于定义用户自己的定时任务 。
• /etc/crontab :系统级别的 crontab 文件,由 root 用户管理,用于定义系统级别的定时任务 。
• /etc/cron.d/* :存放一些特殊格式的 crontab 文件,可以被 /etc/crontab 文件引用,也可以单独运行
• /etc/cron.daily/* ,/etc/cron.hourly/* ,/etc/cron.monthly/* ,/etc/cron.weekly/ :存放按照日、小时、月、周周期执行的脚本文件 。
• /etc/anacrontab :anacron 是 cron 的一个补充工具,用于在系统没有运行或关机时执行错过的定时任务 。这个文件用于定义 anacron 的配置和任务
• /var/spool/anacron/* :存放 anacron 的时间戳文件,记录上次执行任务的时间
检查服务
服务自启动
第一种修改方法:
chkconfig [--level 运行级别] [独立服务名] [on|off]
chkconfig –level 2345 httpd on
开启自启动chkconfig httpd on (默认level是2345)
入侵排查
1、查询已安装的服务:
RPM包安装的服务
chkconfig --list 查看服务自启动状态,可以看到所有的RPM包安装的服务
ps aux | grep crond 查看当前服务
检查异常文件
1、查看敏感目录,如/tmp目录下的文件,同时注意隐藏文件夹,以“..”为名的文件夹具有隐藏属性
2、得到发现WEBSHELL、远控木马的创建时间,如何找出同一时间范围内创建的文件?
可以使用find命令来查找,如 find /opt -iname "*" -atime 1 -type f 找出 /opt 下一天前访问过的文件
3、针对可疑文件可以使用stat进行创建修改时间。
检查系统日志
日志默认存放位置:/var/log/
查看日志配置情况:more /etc/rsyslog.conf
0x02 工具篇
2.1 Rootkit查杀
chkrootkit
rkhunter
http://rkhunter.sourceforge.net
2.12病毒查杀
Clamav
ClamAV的官方下载地址为:http://www.clamav.net/download.html
2.3 webshell查杀
linux版:
河马webshell查杀:http://www.shellpub.com
深信服Webshell网站后门检测工具:http://edr.sangfor.com.cn/backdoor_detection.html
2.4 RPMcheck检查
系统完整性可以通过rpm自带的-Va来校验检查所有的rpm软件包,查看哪些命令是否被替换了:
./rpm -Va > rpm.log
2.5linux安全检查脚本
3.常见的Webshell查杀工具
1、D盾_Web查杀
2、百度WEBDIR+
在线查杀地址:https://scanner.baidu.com/
3、河马
兼容性:支持Windows、linux,支持在线查杀。官方网站:https://www.shellpub.com/
4、Web Shell Detector
Webshell Detector具有“ Webshell”签名数据库,可帮助识别高达99%的“ Webshell”。兼容性:提供php/python脚本,可跨平台,在线检测。
官方网站:http://www.shelldetector.com/
5、在线webshell查杀工具
在线查杀地址:http://tools.bugscaner.com/killwebshell/
4:如何在百万行代码里发现隐藏的后门
文件完整性验证
1、文件MD5校验
粗略:windows命令界面中CertUtil -hashfile 文件路径 +算法(
支持的算法有:MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512
)
详细:
2、diff命令
在linux中,我们经常使用diff来比较两个文本文件的差异。同样,我们可以通过一行命令快速找出两个项目文件的差异。
diff -c -a -r cms1 cms2
(备注:如果只是想查看两个文件是否不同又不想显示差异之处的话,可以加上-q选项。)
3、版本控制工具
版本控制工具,比如说git,重新上传代码到git,add+commit+push,然后打开项目,点击commits,在历史提交版本 里面,查看文件更改内容,很容易就可以发现代码被篡改的地方了。
另外,也可以通过git diff 用来比较文件之间的不同。