注意在整个过程中不要被客户或现场的运维人员误导。操作前需先征得客户许可。因实际的应急情况会比较复杂,因此需根据实际情况进行灵活处置。
发生时间:询问客户发现异常事件的具体时间,后续的操作要基于此时间点进行追踪分析。
受影响系统类型:询问具体的操作系统类型及相关情况,以便后续的应急处置。
windows/linux
财务系统/OA系统/官网,系统重要性,是否可关停
是否有弱口令,远程管理端口是否开放
都开放了什么端口,有什么服务,服务是否存在风险性
必要的话现场检测,不要完全相信听来的东西
异常情况:
文件被加密
设备无法正常启动
勒索信息展示
CPU利用率过高
网页挂马/黑链
对外发送异常请求
对外发送垃圾短信
等非正常的情况
已有的处置措施:
之前是否存在此类问题
是否在出现问题后配置了新的策略
是否已有第三方已进行了应急处理,处理结果是什么
是否有其他处置措施
系统架构/网络拓扑:是否能提供网络拓扑图
能否提供以下日志
服务器日志
应用日志,重点web日志
数据库日志
已有的安全设备
终端杀软
防火墙
WAF
流量分析设备
基本的应急处置方案
临时处置方案
勒索病毒处置方案
挖矿程序处置预案
网页挂马处置预案
DDOS处置预案
内部数据泄露处置预案
其他处置预案
应急报表:
包含下述应急方法
端口开放情况,及各个端口应用分析,处置建议
禁止被感染主机使用U盘,移动硬盘。如必须使用做好备份
禁用所有无线/有线网卡或直接拔网线
关闭相关端口
划分隔离网络区域
封存主机,相关数据备份
被感染主机应用服务下线
被感染主机部分功能暂停
被感染主机相关账号降权,更改密码
勒索病毒处置 - 核心是止损,这点非常重要
通过各类检查设备和资产发现,确定感染面;
通过网络访问控制设备或断网隔离感染区域,避免病毒扩散;
迅速启动杀毒或备份恢复措施,恢复受感染主机的业务,恢复生产。(这点最重要,因为是保障业务的关键动作)
启动或部署监测设备,针对病毒感染进行全面监测,避免死灰复燃。
在生产得到恢复并无蔓延之后,收集所有相关的样本、日志等,开展技术分析,并寻找感染源头,并制定整改计划。
systeminfo
arp -a
find / -name ".asp"
netstat -ano
netstat -ano | findstr ESTABLISH
参数说明:
-a 显示所有网络连接、路由表和网络接口信息
-n 以数字形式显示地址和端口号
-o 显示与每个连接相关的所属进程 ID
-r 显示路由表
-s 显示按协议统计信息、默认地、显示 IP
LISTENING 侦听状态
ESTABLISHED 建立连接
CLOSE_WAIT 对方主动关闭连接或网络异常导致连接中断
netstat -ano | findstr "port"
3)netstat -nb
显示在创建每个连接或侦听端口时涉及的可执行程序,需要管理员权限,这条指令对于查找可疑程序非常有帮助。lsof -i
lsof -i|grep -E "LISTEN|ESTABLISHED"
netstat -antlp
netstat -an
说明
-a 显示所有连线中的 Socket。
-n 直接使用 IP 地址,而不通过域名服务器。
-t 显示 TCP 传输协议的连线状况。
-u 显示 UDP 传输协议的连线状况。
-v 显示指令执行过程。
-p 显示正在使用 Socket 的程序识别码和程序名称。
-s 显示网络工作信息统计表
任务管理器
tasklist | findstr 11223
根据netstat定位出的异常进程的pid,再通过tasklist命令进行进程定位
wmic process | findstr "xx.exe"
"开始->运行->msinfo32->软件环境 -> 正在运行任务"
wmic process where processid="2345" delete
netstat -antlp 先找出可疑进程的端口
lsof -i:port 定位可疑进程pid
linux每个进程都有一个对应的目录
cd /proc/pid号 即可进入到该进程目录中
ls -ail 结果中exe对应的就是该pid程序的目录
ls -ail |grep exe
top
ps
ps -ef | grep apache
kill -9 pid
kill -9 4394
pstree -p
查找异常进程是否有父进程find / -name 'xxx'
lusrmgr.msc
net user
net user Guest
net localgroup administrators
query user
踢出该用户 `logoff ID` ID是上面查询出来的。也可能是用户名
w
last | more
cat /etc/passwd
查找/etc/passwd 文件, /etc/passwd 这个文件是保存着这个 linux 系统所有 用户的信息,通过查看这个文件,我们就可以尝试查找有没有攻击者所创建的用 户,或者存在异常的用户。我们主要关注的是第 3、4 列的用户标识号和组标识 号,和倒数一二列的用户主目录和命令解析程序。一般来说最后一列命令解析程 序如果是设置为 nologin 的话,那么表示这个用户是不能登录的,所以可以结合 我们上面所说的 bash_history 文件的排查方法。首先在/etc/passwd 中查找命令 解释程序不是 nologin 的用户,然后再到这些用户的用户主目录里,找到 bash_history,去查看这个用户有没执行过恶意命令。
/etc/passwd中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段, 其格式和具体含义如下:
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录 Shell
注意:无密码只允许本机登陆,远程不允许登陆,某个版本之后好像因为安全问题,passwd文件不再有密码了
cat /etc/shadow
root:$6$oGs1PqhL2p3ZetrE$X7o7bzoouHQVSEmSgsYN5UD4.kMHx6qgbTqwNVC5oOAouXvcjQSt.Ft7ql1WpkopY0UV9ajBwUt1DpYxTCVvI/:16809:0:99999:7::: 用户名:加密密码:密码最后一次修改日期:两次密码的修改时间间隔:密码有效期:密码修改到期到的警告天数:密码过期之后的宽限天数:账号失效时间:保留 这里查账号感觉好一点,一般系统的账号都是没有密码的,所以找最长的那几个,那就是有密码的账户,很可能就是被黑客添加的后门账户
/home
lastlog
lastb
检查暴力破解last
数据源为
/var/log/wtmp
/var/log/wtmp.1
/var/log/btmp
/var/log/btmp.1
who
(tty本地登陆 pts远程登录)w
uptime
usermod -L user
userdel -r user
useradd admin #创建一个用户,在home目录下不创建文件夹
passwd admin #修改之前创建的账号的密码
adduser admin2 #是一个比较完善的创建用户的命令,会在home目录下生成一个admin2的文件夹
userdel admin2 #这样删除的话不完全,home目录下的admin2目录不会删除
userdel -rf admin #-r 完全删除一个账户 -f强制删除
如果遇到账户删除显示已经删除,但创建同名的用户提示用户已存在的情况,尝试以下方法进行删除。
手动删除passwd、shadow、group里面用户相关字段,以及用户相关的log和mail,并强制删除home目录下用户的文件夹。
/home
/etc/passwd
/etc/group
/var/spool/mail
右键查看文件属性,查看文件时间
%UserProfile%\Recent
stat xx.asp
find ./ -mtime 0
返回的是前48~24小时修改过的文件 find ./ -mtime 1
返回10天内修改过的文件,可以把最近几天的数据一天天的加起来 find ./ -mtime 0 -o -mtime 1 -o -mtime 2
查找 24 小时内被修改的 php 文件 find ./ -mtime 0 -name "*.php"
ls –alt /tmp/ | head -n 10
这样是按时间顺序查出来的结果find / *.jsp -perm 777
find / -perm 777 |more
find / *.sh -perm 777|grep .sh
ls -ar |grep "^\."
chattr +I filename 给文件添加不可修改权限
chattr -I filename 将文件的不可修改权限去掉
lsattr filename 查看文件是否设置了相关权限
如果设置了该参数,则无论任何人想要删除改文件均需要将此权限去掉
chattr +a filename 给文件添加只追加权限
chattr -a filename 将文件的只追加权限去掉
lsattr filename 查看文件的相关权限设置
这个权限让目标只能追加,不能删除,而且不能通过编辑器追加
msconfig
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
快捷查找方法,找一个安装好的程序的快捷方式,右键打开文件位置,再进入该目录下的启动目录即可。StartUp
C:\Users\rpkr\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
查找方式,开始>所有程序>启动 ,03查找同此方法
开始->运行->regedit,打开注册表,查看开机启动项是否正常,特别注意如下三个注册表项:
HKEY_CURRENT_USER\software\micorsoft\windows\currentversion\run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce
检查右侧是否有启动异常的项目,如有请删除,并建议安装杀毒软件进行病毒查杀,清除残留病毒或木马
ls -alt /etc/init.d/
/etc/init.d 是 /etc/rc.d/init.d 的软连接
more /etc/rc.local
/etc/rc.d/rc[0~6].d
ls -l /etc/rc.d/rc3.d/
ll /etc |grep rc
1.利用crontab创建计划任务
crontab -l 列出某个用户 cron 服务的详细内容
2.删除每个用户cront任务(慎重:删除所有的计划任务)
crontab -r
3.使用编辑器编辑当前的crontab文件
crontab -e
如:*/1 * * * * echo ""hello word"" >> /tmp/test.txt 每分钟写入文件
4.利用anacron实现异步定时任务调度
每天运行 /home/bacup.sh 脚本
vi /etc/anacrontab
#daily 10 example.daily /bin/bash /home/backup.sh
当机器在backup.sh期望被运行时是关机的,anacron会在机器开机十分钟后运行它,而不用再等待7天
ls -al /var/spool/cron/ 查看隐藏的计划任务
Tips:默认编写的crontab文件会保存在(/var/spool/cron/用户名 例如:/var/loop/cron/root)
5.查看分析任务计划
crontab -u <-l, -r, -e>
-u 指定一个用户
-l 列出某个用户的任务计划
-r 删除某个用户的任务
-e 编辑某个用户的任务(编辑的是/var/spool/cron下对应用户的cron文
件,也可以直接修改/etc/crontab文件)
taskschd.msc
或者 【程序】➜【附件】➜【系统工具】➜【任务计划程序】
crontab -l
是否有后门木马程序启动相关信息crontab -u <-l, -r, -e>
解释
-u 指定一个用户
-l 列出某个用户的任务计划
-r 删除某个用户的任务
-e 编辑某个用户的任务(编辑的是/var/spool/cron 下对应用户的 cron 文件,也可以直接修改
/etc/crontab 文件)
ls -al /etc/cron*
cat /etc/crontab
.
开头的文件为隐藏文件,要使用ls -al
来查看eventvwr.msc
cat /root/.bash_history |more
,每个账户对应的文件夹下都有这样一个日志文件,但感觉记录的不是特别全。可以直接在root下搜索 .bash_history 这个文件。/var/log/secure
日志,可观察其进行暴力破解溯源lastb
和last
进行暴力破解溯源/var/log/message 系统启动后的信息和错误日志,
/var/log/secure 与安全相关的日志信息
/var/log/maillog 与邮件相关的日志信息
/var/log/cron 与定时任务相关的日志信息
/var/log/spooler UUCP和news设备相关日志信息
/var/log/boot.log 进程启动和停止相关的日志消息
应通过httpd.conf配置来判断。
在httpd.conf中搜索未被注释的、以指令字CustomLog为起始的行,该行即指定了日志的存储位置。
搜索可使用文本搜索,也可使用grep进行:grep -i CustomLog httpd.conf | grep -v ^#
搜索结束后会获得类似如下的搜索结果:
CustomLog /var/mylogs/access.log common
其中 /var/mylogs/access.log即为客户日志的路径。
若此处未指明日志的完整路径而只是列举日志的文件名(如:access.log),
则意指该文件存储与默认的日志存储目录下(即,/var/log/httpd 或 /var/httpd 目录)。
IIS日志默认存储于 %systemroot%\system32\LogFiles\W3SVC目录中,日志命名方式为exYYMMDD.log(YYMMDD指:年 月 日)。但IIS日志路径也可通过用户配置来指定,通过WEB站点配置可确认其位置:WEB站点 — 属性 — 网站 — W3C扩展日志文件格式 — 属性 — 日志文件目录
热文推荐