TuxResponse:一款针对Linux平台的事件响应工具
2020-02-01 16:00:03 Author: www.freebuf.com(查看原文) 阅读量:284 收藏

TuxResponse

TuxResponse是一款采用Bash语言开发编写的专门针对Linux系统平台的事件响应脚本。它可以在Linux系统上以自动化的形式执行各种事件响应任务,以帮助安全分析人员快速对系统中的安全应急事件进行分类,同时不会影响最终的处理结果。当然了,通常情况下公司或企业的系统中都会部署一些安全监视和控制软件,但由于存在各种非标准镜像以及其他网络组件,因此TuxResponse便应运而生。在TuxResponse的帮助下,研究人员只需按一下按钮,就可以完成10个命令的输入和测试。

当前版本的TuxResponse已在Ubuntu 14+和CentOS 7+上进行了测试。

功能特性

1、利用了Linux的内置工具以及各种功能,其中包括但不限于dd、awk、grep、cat和netstat等。

2、减少了事件响应工具所需的命令数量。

3、自动化任务实现。

除了Linux内置工具即功能组件之外,TuxResponse还引入了下列外部工具包:

-LiME

-Exif

-Chckrootkit

-Yara + Linux扫描规则

工具下载

广大用户可以直接使用下列命令将项目代码克隆至本地:

git clone https://github.com/la3ar0v/TuxResponse.git

工具使用样例

INSTALL LiME

function init_lime(){

  if [ -f /usr/bin/yum ]; then

    yum -y install make kernel-headers kernel-devel gcc

  elif [ -f /usr/bin/apt-get ]; then

    apt-add-repository universe

    apt-get -y install make linux-headers-$(uname -r) gcc

  fi

  rm -f /tmp/v1.8.1.zip

  wget -P/tmp https://github.com/504ensicsLabs/LiME/archive/v1.8.1.zip

  unzip /tmp/v1.8.1.zip

  rm -f /tmp/v1.8.1.zip

  pushd LiME-1.8.1/src

    make

    mv lime-*.ko /tmp/lime.ko

  popd

  rm -rf LiME-1.8.1

}

在对某个安全事件进行应急响应处理时,如果你还要手动输入所有命令来安装LiME的话,肯定会花费你大量的时间,这样一来效率就非常低了。

功能介绍

一、实时响应

(1)足迹系统

System info, IP, Date, Time, local TZ, last boot - 'hostnamectl; who -b; uname -a; uptime; ifconfig; date; last reboot'

(2)文件系统工具

'df -h':检查已加载的文件系统 -

'find /usr/bin -type f -exec file "{}" \; | grep -i "elf" | cut -f1 -d: | xargs -I "{}" -n 1 md5sum {}':可执行文件哈希 (MD5)  

'modified_files_period_select' (调用tuxresponse.sh中的函数):修改文件

'find / -type d -name "\.*"':枚举所有的隐藏目录

'find / \( -nouser -o -nogroup \) -exec ls -l {} \; 2>/dev/null':枚举无用户/组名的文件/目录

'packaged_files_changed' (calling a function in tuxresponse.sh):修改包内文件

(3)YARA, CHKROOTKIT, EXIFTool

'chkrootkit':检查rootkits 

'yara_select':Yara扫描

'exiftool_select':EXIFTool

(4)处理分析工具

'ps -axu':枚举运行进程

'ls -alR /proc/*/exe 2> /dev/null | grep deleted':删除仍在运行的代码

'ss -tunap | sed "s/[ \t]\+/|/g"':活动网络连接-TCP或UDP

'dump_process_select':根据PID导出进程信息

'ls -alR /proc/*/cwd 2> /dev/null | grep -E "tmp|dev"':从/tmp或/dev运行进程

(5)网络连接分析

'netstat -nalp; netstat -plant':枚举所有活动的网络连接/元套接字

(6)用户

‘w’ :枚举当前接入的用户

‘getent passwd’:使用密码获取用户信息

(7)Bash

'cat ~/.bash_history | nl':检查Bash历史文件

(8)持久化痕迹

'list_all_crontab':枚举所有的Cron任务

'list_all_onstartup':枚举所有的自启动程序

(9)导出所有日志(/var/log)

'cat_all_bash_history':导出用户的.bash_history

'grep [[:cntrl:]] /var/log/*.log':查找日志

二、建立连接,使用SSH传输脚本并分析远程系统

该选项允许您连接到远程系统,复制所有脚本和工具并分析系统。

三、导出内存(LKM LiME)

该选项可以让我们从源代码处编译LiME,并将RAM内存转储到系统之外,这是最简单的方法。因为另一种方法是从源代码编译所有主要内核版本,并插入LKM。

四、获取磁盘镜像(DD)

该选项可以帮助我们使用著名的工具-dd来获取目标系统的完整磁盘映像。该函数将源地址和目的地址作为参数,并将它们插入以下命令之中:

'dd if=${image_in}pv | dd of='${image_OUT}'bs=4K conv=noerror,sync'

如果您正在调查和分析一个远程系统,那么脚本首先会在远程系统中进行自我复制。如果你设置了参数${TARGET_HOST},那么脚本将使用以下命令将镜像下载到分析系统中

>>“ssh-p${TARGET_PORT}${TARGET_USER}@${TARGET_HOST}”dd if=${image_IN}bs=4K conv=noerror,sync'{pv|dd of='${image_OUT}'

注意:pv的使用可以帮助我们跟踪进度。

五、生成HTML报告

我们所有的操作记录以及分析结果都将存储在一个文本文件中,因此我们可以轻松返回并查看输出。这样做的好处是,我们可以将它上传到任何一个日志分析工具中,并在后期加以解析。除此之外,我们还可以使用该函数来生成HTML格式的分析报告,并以可读性更高的形式查看工具生成的事件响应结果。

项目地址

TuxResponse:【GitHub传送门

* 参考来源:la3ar0v,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM


文章来源: https://www.freebuf.com/articles/system/225114.html
如有侵权请联系:admin#unsafe.sh