读《Linux应急响应》笔记(未完待续)
Posted 南岸青栀*
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了读《Linux应急响应》笔记(未完待续)相关的知识,希望对你有一定的参考价值。
今天就想听着音乐,看看书。找到压箱底的《linux应急响应》看一看。还是蛮新的,是2021.7.1的新版。
思维导图
挖矿事件
恶意域名
从内⽹dns服务器、 dns防⽕墙、流量审计设备等设备获取
根据域名确定⽊⻢类型
- Virustotal
- 深信服威胁情报中⼼
- 微步在线
- venuseye
- 安恒威胁情报中⼼
- 360威胁情报中⼼
- 绿盟威胁情报中⼼
- AlienVault
- RedQueen安全智能服务平台
- IBM X-Force Exchange
- ThreatMiner
获取异常进程PID
- CPU占用层面
top -c -o %CPU
ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%cpu | head -n 5
- cpu占⽤前5的进程信息
效果图:
参数解读:
top:
-c :Command-line/Program-name toggle (toggle 切换)
-o :Override-sort-field as: -o fieldname
%CPU -- CPU Usage
ps:
-e Select all processes. Identical to -A
-o User-defined format(output)
-
内存占用
top -c -o %MEM
ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%mem | head -n 5
-
⽹络占⽤
- nethogs
寻找恶意⽂件样本
上面步骤我们已经获取恶意pid或恶意进程相关的命令行命令
根据进程名字或部分字符串获取pid
pidof "name"
ps -aux | grep "name"
ps -ef | grep httpd | awk 'print $2'
pgrep -f "name"
未知解读:
pidof:find the process ID of a running program.
ps:process
-a Select all processes except both session leaders and processes not associated with a terminal
-u userlist Select by effective user ID (EUID) or name
-f ASCII art process hierarchy (forest)
grep:
-v, --invert-match Invert the sense of matching, to select non-matching lines.
awk 'print $2' : 只输出第二行
pgrep:look up or signal processes based on name and other attributes
根据pid获取程序的详细信息
lsof -p pid
pwdx pid
获取该pid的进程启动的时候的⽬录,并不⼀定是恶意⽂件所在的路径,只是启动恶意⽂件的路径systemctl status pid
获取这个进程的status信息cat /proc/pid/maps
ls -al /proc/pid/exe
未知解释:
lsof - list open files
-p 根据PID查
pwdx - report current working directory of a process
/proc/pid/maps
/proc/pid/exe
/proc/pid/exe 链接到进程的执行命令文件
/proc/pid/maps 与进程相关的内存映射信息
/proc/pid/cmdline 进程启动命令
/proc/pid/cwd 链接到进程当前工作目录
/proc/pid/environ 进程环境变量列表
/proc/pid/exe 链接到进程的执行命令文件
/proc/pid/fd 包含进程相关的所有的文件描述符
/proc/pid/maps 与进程相关的内存映射信息
/proc/pid/mem 指代进程持有的内存,不可读
/proc/pid/root 链接到进程的根目录
/proc/pid/stat 进程的状态
/proc/pid/statm 进程使用的内存的状态
/proc/pid/status 进程状态信息,比stat/statm更具可读性
/proc/self 链接到当前正在运行的进程
有些时候⽆法通过ps, top等命令根据pid进⾏查询,可能是因为攻击者将/proc/pid/ 进⾏了隐藏,可以通过
以下⽅式进⾏隐藏(ubuntu测试成功, centos测试失败)
mkdir .hidden
mount -o bind .hidden /proc/PID
这种情况可以使⽤ cat /proc/$$/mountinfo 来查看挂载信息
根据PID查看由进程起的线程
ps H -T -p pid
ps -Lf pid
其中SPID就是线程ID,而CMD栏则显示了线程名称
`top -H -p pid -H` 选项可以显示线程
htop (默认未安装)
,可以较为全⾯的展示线程
pstree -acU 推荐
,⾮常全⾯展示进程与线程间的关系
未知解读:
ps
H 将线程当作进程来显示。Show threads as if they were processes.
-T Show threads, possibly with SPID column.
-L Show threads, possibly with LWP and NLWP columns.
处理异常进程
scp
scp -P 4588 remote@www.target.com:/usr/local/aaa /home/admin
- -P 指定SSH端⼝
- 从远程服务器将aaa下载到本地的 /home/admin
finalshell、 xshell等集成⼯具
nc
病毒在线分析
- PCHunter
- Virustotal
- 哈勃
- jotti
- scanvir
- 魔盾
- 微步云沙箱
- HYBRID
- 奇安信沙箱
- ⼤圣云沙箱检测系统
寻找病毒分析报告
- 深信服安全应急响应以及EDR知识赋能平台
- 深信服EDR团队安全情报分析
- 深信服安全中⼼
- ⽕绒安全最新资讯
- 安全客
- Freebuf
- …
进程查杀
守护进程(daemon)
线程查杀
很多⽊⻢病毒将恶意代码执⾏做到了线程级别,也就是说附到了现有正常业务的进程中,做⼀个线程,⽬前查杀⼀
个进程中的线程⻛险⽐较⼤,极可能会把进程搞崩掉,需要与客户确认好再进⾏,杀死线程的⽅法和杀死进程⼀
样,因为在Linux中线程的概念就是轻量级进程
删除恶意文件
通过进程pid以及/proc/ ,我们已经定位到了⽂件的具体位置,接下来就是删除恶意⽂件
查看⽂件占⽤
lsof eval.sh
如果存在进程占⽤,那么占⽤进程也可能是恶意进程,需要按照之前的步骤进⾏查看
a 和 i 属性导致⽂件不可删除
- a属性 ⽂件只能增加内容,不能修改之前的⽂件,不能删除⽂件
- i属性 内容不能改变,⽂件不能删除
- 可以使⽤ chattr -a 和 chattr -i
奇怪⽂件名导致⽂件不可删除
从windows向linux传输的⽂件或者攻击者恶意制造的⽂件,很多会有⽂件名乱码,⽆法直接通过乱码的⽂件名进⾏删除,可以使⽤inode来确定⽂件名,之后删除使⽤ inode 进⾏删除
- 查看inode ls -li eval.sh
- 删除⽂件
find ./* -inum 12327526 -delete
find ./ -inum 12327526 -exec rm \\;
find ./* -inum 12327526 -exec rm -i \\;
(会有⼀步确认是否删除)find ./* -inum 12327526 -exec rm -f \\;
(不进⾏确认直接强制删除)
find ./* -inum 12327526 |xargs rm -f
rm find ./* -inum 12327526
善后处理
以上是关于读《Linux应急响应》笔记(未完待续)的主要内容,如果未能解决你的问题,请参考以下文章