Linux 内存取证 之进程空间取证(Volatility取证)

  1. 进程分析目标:
    1. 识别出进程和他们的父进程或者子进程(恶意进程的启动进程和别的不一样)pstree
    2. 区分内核中的进程(恶意进程通常作为内核进程来运行) grep UID /etc/{passwd,group}
    3. 将进程和用户或者组联系起来
  2. 进程地址空间分析目标:
    1. 学会怎样从一个内存dump中提取出进程的堆,栈,可执行代码的区域
      1. Cat /proc//maps 可以看到对应的存储区域,结构为: start -end,flags(permissions),pgoff,Major:Minor,Inode,Path
      2. 上述结果和Volatility Linux_proc_maps 结果对比分析,看结果是否相同。
      3. 提取相应区域映射内容利用Volatility Linux_dump_map 工具,-p 指定 -s 指定 特定区域起始地址 –D 指定 提取文件类型 Dump ,举例:

python vol.py --profile=LinuxDebian-3_2x64 -f debian.lime linux_dump_map       -p 1 -s 0x400000 -D dump

    1. 知道从哪里查看调用进程的command line
      1. 利用Volatility Linux_psaux工具
    2. 找出一个进程的变量存储区域和验证环境变量是否修改
      1. Volatility Linux_psenv工具
      2. 内核线程没有环境变量,如果恶意进程伪装成内核进程则是有环境变量的
      3. 工作目录,如果修改工作目录,则会有OLDPWD参数指向该路径。
      4. 如果有SSH_CONNECTION 则证明是ssh连接催生启动的
    3. 分析到共享库的全路径帮助检测一些代码的注入攻击。
      1. 通过a)中操作,查看全路径,发现有没有是引入类似/tmp 这种共享库的路径,存在的话,则很可能发生注入攻击。
  1. 文件句柄分析目标:
    1. 发现进程通过文件描述符读写了哪些文件
      1. Volatility Linux_lsof
    2. 理解公用文件描述符:stdin,stdout,stderr
    3. 找出关键的日志
  2. 进程上下文数据分析:
    1. Volatility linux_threads  :识别出线程
    2. Volatility linux_info_regs : 进程上下文交换时保存的数据
    3. Volatility linux_process_syscall:进程交换时的系统调用
    4. Volatility linux_process_stack::进程的栈中数据,包括返回地址,局部变量,参数

你可能感兴趣的:(linux,volatility,q,linux,恶意代码取证)