读《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 [email protected]:/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

善后处理

猜你喜欢

转载自blog.csdn.net/qq_43710889/article/details/121745777