Linux应急响应
slug
series-status
status
summary
date
series
type
password
icon
tags
category
Linux应急响应
挖矿
病毒识别
常见病毒家族
老一辈:BillGates
新生代:DDG、SystemMiner、StartMiner、WatchDogMiner、XorDDos、lcnanker
IoT:Mirai、Gafgyt
BillGates
病毒特点:
- 在
/tmp
目录下有gates.lod
、moni.lod
文件
- 访问域名:
www.id666.pw
- 将系统文件(
ss
、netstat
、ps
)替换为病毒伪装文件
DDG
病毒特点:
/tmp
目录下有ddgs.[版本号]
的ELF文件
- 存在下载
i.sh
的定时任务
SystemMiner
病毒特点:
- 访问带有
tor2web
、onion
字符串的域名
- 在
/tmp
目录下有systemd*
的文件(后期版本为随机名)
- 存在运行
systemd-login
的定时文件(后期版本为随机名)
StartMiner
病毒特点:
- 定时任务里包含
2start.jpg
的字符串
/tmp
目录下存在名为x86_*
的病毒文件
- 有多个病毒伪装定时任务文件:
apache
、nginx
、root
WatchdogsMiner
病毒特点:
- 存在执行
pastebin.com
(正常脚本文件存放网站)上恶意代码的定时任务
/tmp
目录下存在一个名为watchdogs
的病毒文件
XorDDos
病毒特点:
- 存在病毒文件
/lib/libudev.so
- 在
/usr/bin
,/bin
,/lib
,/tmp
目录下有随机名病毒文件
- 存在执行
gcc.sh
的定时任务
Mirai(IoT)
病毒特点:
- 多平台攻击,病毒文件中带有架构名
- 由于代码开源,Mirai每天都在变种
搜索引擎
搜索主机的主要异常特征:
- 挖矿进程名
- 网关报警域名/IP
- netstat 建立连接的ip
- 定时任务
- 可疑文件路径
清除病毒
定位挖矿进程
top
根据进程信息定位文件
ls /proc/[pid]/exe
删除文件/整个文件夹
定时任务
crontab -l
ll /etc/cron.d
清空定时任务:
crontab -r
删除指定定时任务:
grep -r "curl" /varrr/spool/cron
删除定时任务文件:
rm /etc/cron.d/[file]
顽固病毒
文件/定时任务删除失败
提示
Operation not permitted
使用
lsattr
查看文件属性通过
chatter
清除对应的保护属性后即可删除文件/定时任务删除又出现
系统文件替换(BillGates)
ss
、netstat
、ps
、lsof
等命令被替换为病毒文件,需要将源文件删除再放纯净的文件进去,或直接使用busybox操作下载进程残留(SystemdMiner)
存在例如
curl
、wget
之类的下载进程,虽然cpu占用率不高,但是会导致反复下载文件定时任务反复创建 -> 恶意进程守护
先杀掉可疑的守护进程后再删定时任务
病毒进程删除完又被拉起
找到父进程,结束整个进程树
关联关键字:
sh
、wget
、curl
、xmr
、mine
、ssh
查找父进程命令:
ps -ef | grep [pid]
查看进程树:
ps -ef --forest
主机卡顿但是找不到挖矿进程
CPU占用率高但是没有挖矿进程
使用
busybox
的top
命令查看系统信息主机杀干净后过一段时间又出现
检查ssh弱口令
检查ssh密钥
检查相关web漏洞例如Redis未授权
账号安全
常识
用户信息文件是哪个
- /etc/passwd
影子文件
- /etc/shadow
查看当前登录的账户
- WHO
查看系统信息,想知道某一刻用户的行为
- W
查看登录了多久、多少用户、负载
- uptime
入侵排查(重点)
查看特权用户
- 看/etc/passwd 的gid和uid为0的
- awk -F: '$3==0{print $1}' /etc/passwd
- 或者grep 0:0
查询可以远程登录的账号信息
- 看 /etc/shadow 中有密码的账户
- 搜索$1-$6开头的
- 用awk或者grep搜索
查询其他账号是否具有sudo权限
- 查 /etc/sudoers 中的"ALL=ALL"
- grep
- more
禁用或删除多余的账号
创建用户名
- useradd -d /home/lala -m 用户名
- password 增加密码
禁用账号
- usermod -L username
删除user用户
- userdel username
删除user用户并删除用户目录
- userdel -r username
查看可以登录的用户
- grep bash$ /etc/passwd
- 或者zsh
查看当前远程PTS登录的用户
- last -i | grep -v 0.0.0.0
- w
异常端口
入侵排查
分析可疑端口、IP、PID
- 优先观察建立链接的端口和IP
- netstat -antlp | more | grep "ESTABLISHED"
定位可疑的进程路径
- ls -al /proc/$PID/exe
- file /proc/$PID/exe
- ps aux | grep $PID
结束所有的进程
- killall
异常进程
常识
定位异常/可疑进程
- ls -al /proc/$PID/exe
- file /proc/$PID/exe
- ps aux | grep $PID
查看进程树
- ps -ef --forest
入侵排查
观察进程、性能消耗
- top
断网
微隔离
- /etc/host.allow
- /etc/host.deny
降权
- chmod 000
加锁
- chattr +i 程序名
- 上锁
- chattr -i
- 解锁
- lsattr
- 查看有无锁
工具:
- processhacker
历史命令
常识
历史命令
- history
历史命令配置
- /etc/profile
删除历史命令
- history -c
入侵排查
- cat .bash_history >> history.txt
检查开机启动项
常识
查看开机运行脚本
- /etc/rc.local
查看系统运行级别
- runlevel
修改系统运行级别
- init 3
入侵排查
检查可以开机启动项
- /etc/rc[0-6].d
取消开机启动项
- update-rc.d apache2 disable
开启开机启动项
- update-rc.d apache2 enable
查看开机启动项状态
- /etc/init.d/apache2 status
定时任务
- crontab
恢复日志
- lsof
排查可疑文件
- find ./ -mtime 0 -name "*"
- ctime
- perem
工具
Rootkit查杀
- rkhunter
病毒查杀
- clamav
webshell查杀
- 河马
- 深信服
日志
中间件的/var/log/apache/access.log或者error.log
/var/log/boot.log:录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息
/var/log/lastlog :记录最后一次用户成功登陆的时间、登陆IP等信息
/var/log/messages :记录Linux操作系统常见的系统和服务错误信息
/var/log/secure :Linux系统安全日志,记录用户和工作组变坏情况、用户登陆认证情况
/var/log/btmp :记录Linux登陆失败的用户、时间以及远程IP地址(lastb)
/var/log/syslog:只记录警告信息,常常是系统出问题的信息,使用lastlog查看
/var/log/wtmp:该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件,使用last命令查看
/var/run/utmp:该日志文件记录有关当前登录的每个用户的信息。如 who、w、users、finger等就需要访问这个文件
Linux系统⽇志的三种类型
- 第⼀种:内核及系统⽇志 这种⽇志数据由系统服务rsyslog统⼀管理,根据其主配置⽂件/etc/rsyslog.conf中的设置决定将内核消息及各种系统程序消息记录到什么 位置。系统中有相当⼀部分程序会把⽇志⽂件交由rsyslog管理,因⽽这些程序使⽤的⽇志记录也具有相似的格式。
- 第⼆种:⽤户⽇志 这种⽇志数据⽤于记录Linux操作系统⽤户登录以及退出系统的相关信息,包括⽤户名、登录的终端、登录时间、来源主机、正在使⽤的进程 操作等。
- 第三种:程序⽇志 有些应⽤程序会选择由⾃⼰独⽴管理⼀份⽇志⽂件,⽤于记录本程序运⾏过程中的各种事件信息,⽽不是交给rsyslog服务管理。由于这些程 序只负责管理⾃⼰的⽇志⽂件,因此不同程序所使⽤的⽇志记录格式可能会存在较⼤的差异。
系统日志(默认)/var/log/messages cron日志(默认)/var/log/cron 安全日志(默认)/var/log/secure(查ssh爆破可以看)
Loading...