简介
大家好,我们是 NOP Team
这段时间,我们相继推出了 OpenForensicRules、NOPTrace-Configurator、NOPTrace-Collector
简单介绍一下它们的作用
OpenForensicRules 是一套标准化的数字取证与应急响应信息采集规则格式规范。 NOPTrace-Configurator 是 OpenForensicRules 的图形化配置工具,同时可以检查用户配置是否规范 NOPTrace-Collector 是基于 OpenForensicRules 的采集器,用户可以使用它进行定制化信息采集
今天给大家带来的是 NOPTrace-Configs 项目,该项目是符合 OpenForensicRules 规范的电子取证与应急响应配置集合
该项目的目的是当出现应急响应事件时,受害方能够第一时间采集重要信息,即使后续恢复系统或者排查破坏了痕迹,也能够留一份证据,供后续应急响应人员以及相关人员分析回溯
OpenForensicRules 项目中也会同步该项目的配置文件
配置文件说明
在发布 NOPTrace-Collector 时,我们曾发出提醒,大家一定要了解程序要加载的配置文件,因为采集器是可以执行系统命令的,所以下面展示并简述每一个配置文件的内容,其中 SensitiveDirs.yaml
、 Log.yaml
、Integrity.yaml
要着重考虑是否加载
NOPTrace-Configs 项目 Linux 版已覆盖绝对多数 《Linux 应急响应手册》 中的常规安全检查部分内容
Account.yaml
name:'LinuxAccounts'doc:'Linux 平台用户相关内容,其中 /etc/passwd 文件可能包含恶意用户或额外配置了密码,用于权限维持'version:'0.0.1'sources:-type:'FILE'supported_os:'Linux'attributes:paths:-'/etc/passwd'author:'NOPTeam'
采集 Linux 账户相关信息,用于发现异常账户
Alias.yaml
name:LinuxAliasdoc:|- Linux 平台上 alias 信息收集。 alias 是用于设置别名的命令,可被利用来进行权限维持。author:NOPTeamversion:0.0.1sources:-type:COMMANDsupported_os:Linuxattributes:cmd:aliasargs:[]urls:-https://mp.weixin.qq.com/s/yXY8opNctHK5d9tXhQj35w
采集 Linux 平台上用户的 alias 设置,主要是排查 alias 后门。
ASLR.yaml
name:'LinuxASLR'doc:"Linux 平台上ASLR 是一项 Linux 系统的保护措施,将某些地址空间进行随机化,减缓一些溢出攻击。nn此处文件内容含义如下:n0 - 表示关闭进程地址空间随机化。n1 - 表示将mmap的基址,stack和vdso页面随机化n2 - 表示在1的基础上增加堆(heap)的随机化"version:'0.0.1'sources:-type:'FILE'supported_os:'Linux'attributes:paths:-'/proc/sys/kernel/randomize_va_space'-'/etc/sysctl.conf'author:'NOPTeam'
采集 Linux 平台上 ASLR 配置。
Bash.yaml
name:'LinuxBashBuiltIn'doc:'Linux 平台上 Bash 内置的函数以及命令信息'version:'0.0.1'sources:-type:'COMMAND'supported_os:'Linux'attributes:cmd:'compgen'args:-'-b'urls:-'https://www.cnblogs.com/zhiminyu/p/14388997.html'author:'NOPTeam'
采集 Linux 平台上 Bash 相关信息,目前只采集内置命令。
Capabilities.yaml
name:'LinuxCapabilities'doc:'Linux 平台上 capabilities 是一种对 Linux 权限更严格划分和管控的规范,设置得当可以有效防止过度授权造成提权操作'version:'0.0.1'sources:-type:'COMMAND'supported_os:'Linux'attributes:cmd:'getcap'args:-'-r'-'/'-'2>/dev/null'author:'NOPTeam'
采集 Linux 平台上 capabilities 权限信息。
CrontabFile.yaml
name:'LinuxCrontab'doc:'Linux 计划任务程序,包括所有可能的文件'version:'0.0.1'sources:-type:'FILE'supported_os:'Linux'attributes:paths:-'/etc/crontab'-'/etc/anacrontab'-type:'PATH'supported_os:'Linux'attributes:paths:-'/etc/cron.d/'-'/var/spool/cron/'-type:'FILE'supported_os:'Linux'attributes:paths:-'/var/log/cron'-type:'COMMAND'supported_os:'Linux'attributes:cmd:'journalctl'args:-'-u'-'crond'urls:-'https://mp.weixin.qq.com/s/snJ80-Aiy9-XfFvJw380vg'author:'NOPTeam'---name:'LinuxAt'doc:'Linux 平台中 at 用于安排只执行一次的定时任务(在指定的将来某个时间点执行)。'version:'0.0.1'sources:-type:'PATH'supported_os:'Linux'attributes:paths:-'/var/spool/at/'-'/var/spool/atjobs/'-'/var/spool/cron/atjobs/'-'/usr/spool/at/'-type:'FILE'supported_os:'Linux'attributes:paths:-'/etc/at.allow'-'/etc/at.deny'-type:'PATH'supported_os:'Linux'attributes:paths:-'/etc/at.d/'-'/etc/init.d/atd'-type:'FILE'supported_os:'Linux'attributes:paths:-'/lib/systemd/system/atd.service'-type:'FILE'supported_os:'Linux'attributes:paths:-'/var/log/atd'urls:-'https://mp.weixin.qq.com/s/snJ80-Aiy9-XfFvJw380vg'author:'NOPTeam'
采集 Linux 平台上计划任务相关的内容,包括 crontab 和 at 内容。
Dns.yaml
name:'LinuxDnsConfig'doc:'Linux 平台上DNS配置收集,用于判断是否存在 DNS 劫持等。'version:'0.0.1'sources:-type:'FILE'supported_os:'Linux'attributes:paths:-'/etc/resolv.conf'author:'NOPTeam'
采集 Linux 平台上 DNS 配置相关信息,用于判断是否存在 DNS 劫持等内容。
GPG.yaml
name:'LinuxGPG'doc:'Linux 平台上软件源会将 GPG 公钥存储在系统中,用于验证软件源中的内容是否被篡改。该 Artifact 用于收集公钥。'version:'0.0.1'sources:-type:'PATH'supported_os:'Linux'attributes:paths:-'/etc/apt/trusted.gpg.d/'-'/etc/pki/rpm-gpg/'author:'NOPTeam'
采集 Linux 平台上的 GPG 公钥,用于后续判断是否存在恶意公钥,确保完整性校验有效。
HistoryFile.yaml
name:'LinuxHistoryFile'doc:'所有用户的 .history 文件'version:'0.0.1'sources:-type:'FILE'supported_os:'Linux'attributes:paths:-'%%users_homedir%%/.bash_history'-'%%users_homedir%%/.zsh_history'-'%%users_homedir%%/.sh_history'-'%%users_homedir%%/.ksh_history'-'%%users_homedir%%/.history'-'%%users_homedir%%/.csh_history'-'%%users_homedir%%/.tcsh_history'-'%%users_homedir%%/.local/share/fish/fish_history'-type:'FILE'supported_os:'Linux'attributes:paths:-'/etc/shells'-type:'COMMAND'supported_os:'Linux'attributes:cmd:'echo'args:-'$SHELL'author:'NOPTeam'
采集 Linux 平台上所有用户的命令执行历史信息,包括各种 shell 。
HomeTemplate.yaml
name:'LinuxHomeTemplate'doc:'Linux 平台上在新建用户需要创建家目录时,会从模板处复制一份给新用户,如果攻击者在此处投毒,新创建用户可能都会受影响。'version:'0.0.1'sources:-type:'PATH'supported_os:'Linux'attributes:paths:-'/etc/skel/'author:'NOPTeam'
采集 Linux 家目录模板目录,用于发现攻击者可能潜藏的后门。
Integrity.yaml
name:LinuxAliasdoc:|- Linux 平台上 alias 信息收集。 alias 是用于设置别名的命令,可被利用来进行权限维持。author:NOPTeamversion:0.0.1sources:-type:COMMANDsupported_os:Linuxattributes:cmd:aliasargs:[]urls:-https://mp.weixin.qq.com/s/yXY8opNctHK5d9tXhQj35w
0
Linux 平台上软件程序以及配置文件的完整性检查。
需要注意: 默认 Debian
系的系统可能默认没有安装 debsums
程序,只有安装后配置才有效;redhat
系一般会带有 rpm
,但还是建议先检查一下
Iptables.yaml
name:LinuxAliasdoc:|- Linux 平台上 alias 信息收集。 alias 是用于设置别名的命令,可被利用来进行权限维持。author:NOPTeamversion:0.0.1sources:-type:COMMANDsupported_os:Linuxattributes:cmd:aliasargs:[]urls:-https://mp.weixin.qq.com/s/yXY8opNctHK5d9tXhQj35w
1
采集 Linux 平台上 Iptables 规则信息,主要用于检查是否存在恶意的端口复用情况。
KernalModule.yaml
name:LinuxAliasdoc:|- Linux 平台上 alias 信息收集。 alias 是用于设置别名的命令,可被利用来进行权限维持。author:NOPTeamversion:0.0.1sources:-type:COMMANDsupported_os:Linuxattributes:cmd:aliasargs:[]urls:-https://mp.weixin.qq.com/s/yXY8opNctHK5d9tXhQj35w
2
采集 Linux 平台上关于内核模块相关的信息,检查内核模块加载规则配置以及相关日志。
Log.yaml
name:LinuxAliasdoc:|- Linux 平台上 alias 信息收集。 alias 是用于设置别名的命令,可被利用来进行权限维持。author:NOPTeamversion:0.0.1sources:-type:COMMANDsupported_os:Linuxattributes:cmd:aliasargs:[]urls:-https://mp.weixin.qq.com/s/yXY8opNctHK5d9tXhQj35w
3
采集 Linux 平台上的日志信息。
需要注意: Linux 平台上的日志信息可能很大,可以使用 sudo du -sh /var/log
等方法先判断一下大小,之后选择是否加载该配置文件。
Login.yaml
name:LinuxAliasdoc:|- Linux 平台上 alias 信息收集。 alias 是用于设置别名的命令,可被利用来进行权限维持。author:NOPTeamversion:0.0.1sources:-type:COMMANDsupported_os:Linuxattributes:cmd:aliasargs:[]urls:-https://mp.weixin.qq.com/s/yXY8opNctHK5d9tXhQj35w
4
采集 Linux 平台登录相关信息。
Motd.yaml
name:LinuxAliasdoc:|- Linux 平台上 alias 信息收集。 alias 是用于设置别名的命令,可被利用来进行权限维持。author:NOPTeamversion:0.0.1sources:-type:COMMANDsupported_os:Linuxattributes:cmd:aliasargs:[]urls:-https://mp.weixin.qq.com/s/yXY8opNctHK5d9tXhQj35w
5
采集 Linux 平台上的 motd 信息,排查是否存在后门。
PAM.yaml
name:LinuxAliasdoc:|- Linux 平台上 alias 信息收集。 alias 是用于设置别名的命令,可被利用来进行权限维持。author:NOPTeamversion:0.0.1sources:-type:COMMANDsupported_os:Linuxattributes:cmd:aliasargs:[]urls:-https://mp.weixin.qq.com/s/yXY8opNctHK5d9tXhQj35w
6
采集 Linux 平台上 PAM 相关信息,用于判断是否存在被用于权限维持的情况。
Preload.yaml
name:LinuxAliasdoc:|- Linux 平台上 alias 信息收集。 alias 是用于设置别名的命令,可被利用来进行权限维持。author:NOPTeamversion:0.0.1sources:-type:COMMANDsupported_os:Linuxattributes:cmd:aliasargs:[]urls:-https://mp.weixin.qq.com/s/yXY8opNctHK5d9tXhQj35w
7
采集 Linux 平台上 preload 相关信息,用于判断是否存在这种类型的动态链接库劫持。
Proc.yaml
name:LinuxAliasdoc:|- Linux 平台上 alias 信息收集。 alias 是用于设置别名的命令,可被利用来进行权限维持。author:NOPTeamversion:0.0.1sources:-type:COMMANDsupported_os:Linuxattributes:cmd:aliasargs:[]urls:-https://mp.weixin.qq.com/s/yXY8opNctHK5d9tXhQj35w
8
采集对比 Linux 平台上 ps -aux
和 /proc/
目录下目录的差异,寻找是否存在隐藏进程。
ProcessFileDeleted.yaml
name:LinuxAliasdoc:|- Linux 平台上 alias 信息收集。 alias 是用于设置别名的命令,可被利用来进行权限维持。author:NOPTeamversion:0.0.1sources:-type:COMMANDsupported_os:Linuxattributes:cmd:aliasargs:[]urls:-https://mp.weixin.qq.com/s/yXY8opNctHK5d9tXhQj35w
9
发现 Linux 平台上是否存在进程启动文件被删除的情况,有些恶意程序为防止本身被分析会采取这样的操作。
PtraceScope.yaml
name:'LinuxASLR'doc:"Linux 平台上ASLR 是一项 Linux 系统的保护措施,将某些地址空间进行随机化,减缓一些溢出攻击。nn此处文件内容含义如下:n0 - 表示关闭进程地址空间随机化。n1 - 表示将mmap的基址,stack和vdso页面随机化n2 - 表示在1的基础上增加堆(heap)的随机化"version:'0.0.1'sources:-type:'FILE'supported_os:'Linux'attributes:paths:-'/proc/sys/kernel/randomize_va_space'-'/etc/sysctl.conf'author:'NOPTeam'
0
采集 Linux 平台上 ptrace 相关配置,部分恶意程序可能会对此进行配置。
Python.pth.yaml
name:'LinuxASLR'doc:"Linux 平台上ASLR 是一项 Linux 系统的保护措施,将某些地址空间进行随机化,减缓一些溢出攻击。nn此处文件内容含义如下:n0 - 表示关闭进程地址空间随机化。n1 - 表示将mmap的基址,stack和vdso页面随机化n2 - 表示在1的基础上增加堆(heap)的随机化"version:'0.0.1'sources:-type:'FILE'supported_os:'Linux'attributes:paths:-'/proc/sys/kernel/randomize_va_space'-'/etc/sysctl.conf'author:'NOPTeam'
1
排查 Linux 平台上 .pth 后门的情况需要注意: 需要系统上的 locate
配合,一般系统没有默认安装,安装后执行 updatedb
可以为其生成数据库,之后就可以像 Windows
上的 everything
一样快速搜索了。
SensitiveDirs.yaml
name:'LinuxASLR'doc:"Linux 平台上ASLR 是一项 Linux 系统的保护措施,将某些地址空间进行随机化,减缓一些溢出攻击。nn此处文件内容含义如下:n0 - 表示关闭进程地址空间随机化。n1 - 表示将mmap的基址,stack和vdso页面随机化n2 - 表示在1的基础上增加堆(heap)的随机化"version:'0.0.1'sources:-type:'FILE'supported_os:'Linux'attributes:paths:-'/proc/sys/kernel/randomize_va_space'-'/etc/sysctl.conf'author:'NOPTeam'
2
采集 Linux 平台上一些敏感目录。需要注意: 这些目录中可能存在较多文件,还是建议先使用 sudo du -sh /tmp/
来查看每个目录的大小后决定是否采集。
Services.yaml
name:'LinuxASLR'doc:"Linux 平台上ASLR 是一项 Linux 系统的保护措施,将某些地址空间进行随机化,减缓一些溢出攻击。nn此处文件内容含义如下:n0 - 表示关闭进程地址空间随机化。n1 - 表示将mmap的基址,stack和vdso页面随机化n2 - 表示在1的基础上增加堆(heap)的随机化"version:'0.0.1'sources:-type:'FILE'supported_os:'Linux'attributes:paths:-'/proc/sys/kernel/randomize_va_space'-'/etc/sysctl.conf'author:'NOPTeam'
3
采集 Linux 平台上服务相关的内容,目前仅收集正在运行的服务。
SpecialPermissionFile.yaml
name:'LinuxASLR'doc:"Linux 平台上ASLR 是一项 Linux 系统的保护措施,将某些地址空间进行随机化,减缓一些溢出攻击。nn此处文件内容含义如下:n0 - 表示关闭进程地址空间随机化。n1 - 表示将mmap的基址,stack和vdso页面随机化n2 - 表示在1的基础上增加堆(heap)的随机化"version:'0.0.1'sources:-type:'FILE'supported_os:'Linux'attributes:paths:-'/proc/sys/kernel/randomize_va_space'-'/etc/sysctl.conf'author:'NOPTeam'
4
采集 Linux 平台上具有特殊权限的文件信息,例如 SUID 。
该配置文件采集过程中可能会耗费一段时间。
SSH.yaml
name:'LinuxASLR'doc:"Linux 平台上ASLR 是一项 Linux 系统的保护措施,将某些地址空间进行随机化,减缓一些溢出攻击。nn此处文件内容含义如下:n0 - 表示关闭进程地址空间随机化。n1 - 表示将mmap的基址,stack和vdso页面随机化n2 - 表示在1的基础上增加堆(heap)的随机化"version:'0.0.1'sources:-type:'FILE'supported_os:'Linux'attributes:paths:-'/proc/sys/kernel/randomize_va_space'-'/etc/sysctl.conf'author:'NOPTeam'
5
采集 Linux 平台上 SSH 相关信息,包括保存的公钥、连接过的 SSH 服务器、SSH 客户端配置信息等。
Startup.yaml
name:'LinuxASLR'doc:"Linux 平台上ASLR 是一项 Linux 系统的保护措施,将某些地址空间进行随机化,减缓一些溢出攻击。nn此处文件内容含义如下:n0 - 表示关闭进程地址空间随机化。n1 - 表示将mmap的基址,stack和vdso页面随机化n2 - 表示在1的基础上增加堆(heap)的随机化"version:'0.0.1'sources:-type:'FILE'supported_os:'Linux'attributes:paths:-'/proc/sys/kernel/randomize_va_space'-'/etc/sysctl.conf'author:'NOPTeam'
6
采集 Linux 平台上启动项相关信息,包括各种配置文件以及服务。
Sudo.yaml
name:'LinuxASLR'doc:"Linux 平台上ASLR 是一项 Linux 系统的保护措施,将某些地址空间进行随机化,减缓一些溢出攻击。nn此处文件内容含义如下:n0 - 表示关闭进程地址空间随机化。n1 - 表示将mmap的基址,stack和vdso页面随机化n2 - 表示在1的基础上增加堆(heap)的随机化"version:'0.0.1'sources:-type:'FILE'supported_os:'Linux'attributes:paths:-'/proc/sys/kernel/randomize_va_space'-'/etc/sysctl.conf'author:'NOPTeam'
7
采集 Linux 平台上 sudo
相关的配置信息。
TCPWrappers.yaml
name:'LinuxASLR'doc:"Linux 平台上ASLR 是一项 Linux 系统的保护措施,将某些地址空间进行随机化,减缓一些溢出攻击。nn此处文件内容含义如下:n0 - 表示关闭进程地址空间随机化。n1 - 表示将mmap的基址,stack和vdso页面随机化n2 - 表示在1的基础上增加堆(heap)的随机化"version:'0.0.1'sources:-type:'FILE'supported_os:'Linux'attributes:paths:-'/proc/sys/kernel/randomize_va_space'-'/etc/sysctl.conf'author:'NOPTeam'
8
采集 Linux 平台上 TcpWrappers
相关信息。
Trap.yaml
name:'LinuxASLR'doc:"Linux 平台上ASLR 是一项 Linux 系统的保护措施,将某些地址空间进行随机化,减缓一些溢出攻击。nn此处文件内容含义如下:n0 - 表示关闭进程地址空间随机化。n1 - 表示将mmap的基址,stack和vdso页面随机化n2 - 表示在1的基础上增加堆(heap)的随机化"version:'0.0.1'sources:-type:'FILE'supported_os:'Linux'attributes:paths:-'/proc/sys/kernel/randomize_va_space'-'/etc/sysctl.conf'author:'NOPTeam'
9
采集 Linux 平台上的 Trap
信息。
Udev.yaml
name:'LinuxBashBuiltIn'doc:'Linux 平台上 Bash 内置的函数以及命令信息'version:'0.0.1'sources:-type:'COMMAND'supported_os:'Linux'attributes:cmd:'compgen'args:-'-b'urls:-'https://www.cnblogs.com/zhiminyu/p/14388997.html'author:'NOPTeam'
0
采集 Linux 平台上 udev
相关信息,主要用于排查 udev
后门。
目前 Linux 版本配置如上,如果大家有好的建议,可以提 PR 或者微信联系 just_hack_for_fun
反馈。
往期文章
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...