专栏首页FreeBufAutoMacTC:一款针对macOS环境的自动化取证分类采集器

AutoMacTC:一款针对macOS环境的自动化取证分类采集器

工具介绍

AutoMacTC是一个针对macOS环境的模块化自动取证分类收集框架,AutoMacTC旨在帮助研究人员轻松访问macOS环境中的各种取证信息以及数据文件,而且它还能够对这些取证文件及数据进行解析,并以可视化的形式呈现以供研究人员对其进行分析。除此之外,AutoMacTC的输出可以为研究人员解决macOS环境中的事件响应提供有价值的建议。值得一提的是,AutoMacTC可以在活动系统或固定磁盘(加载的卷)中直接运行。

工具要求

1、Python 2.7(macOS原生自带了Python 2.7环境,之后该工具将增加Python 3的支持)

2、macOS目标系统,支持实时收集

3、macOS分析系统,进行已加载磁盘镜像的取证分类采集

工具下载

广大研究人员可以使用git命令直接将该项目代码克隆至本地:

git clone https://github.com/CrowdStrike/automactc.git

工具使用

广大研究人员可以直接使用下列命令调用AutoMacTC(注意:AutoMacTC需要使用sudo权限才能运行,应该从/usr/bin/python2.7中直接调用以确保功能的完整性):

sudo /usr/bin/python2.7 automactc.py -m all

上述命令将会使用默认配置运行所有模块(-m)。比如说,默认的输入目录为“/”,即当前卷宗的根目录,默认输出目录为“./”,默认输出文件名的前缀为“automactc-output”,默认输出文件格式为“CSV”,默认CPU优先级将被设置为“低”,所有的输出文件压缩格式为tar.gz。

查看所有的可用模块列表:

automactc.py -l

输入目录和输出目录可以使用“-i”或“-o”选项来进行相应配置:

automactc.py -i / -o /automactc_output -m all

我们还可以直接在运行参数后面加上需要包含或排除的模块名称:

automactc.py -m pslist bash profiler

或者,我们也可以排除使用特定模块:

automactc.py -x dirlist autoruns

输出控制

针对每一个模块,AutoMacTC将会生成对应的输出文件,并向其中填充数据。输出文件格式默认为CSV,但是可以使用“fmt”参数来修改为JSON格式:

automactc.py -m all -fmt json

输出文件填充完成之后,文件将会被转换为.tar格式。当最后一个模块的输出文件生成之后,AutoMacTC将会使用GZIP将所有输出报告压缩为.tar.gz文档。

tar文件名遵循下列命名规范:

prefix,hostname,ip,automactc_runtime.tar

第一个perfix可以使用“-p”参数指定,如果不指定,那么前缀默认为“automactc-output”。其他的数据域会在程序运行过程中进行填充。如果你需要在多个系统中运行AutoMacTC的话,你可以尝试为单一事件生成取证报告:

automactc.py -m all -p granny-smith

若你不想生成tar文档的话,可以使用下列命令获取原始文件:

automactc.py -m all -p granny-smith -nt

工具当前模块

-pslist(automatc运行时的当前进程列表) -lsof(automatcc运行时打开的当前文件句柄) -netstat(automatcc运行时的当前网络连接) -ASL(解析的Apple系统日志(.asl)文件) -autoruns(解析各种持久性位置和plist) -bash(为所有用户解析bash/*\u历史文件) -chrome(解析chrome访问历史和下载历史) -coreAnalytics(解析由Apple Diagnostics生成的程序执行证据) -dirlist (列出磁盘上的所有文件和目录) -firefox(解析Firefox访问历史和下载历史) -installhistory(分析程序安装历史) -mru(解析sfl和mru plist文件) -quarantines(分析QuarantineEventSv2数据库) -quicklook(分析QuickLooks数据库) -safari(解析Safari访问历史和下载历史) -spotlight(分析用户spotlight顶部搜索) -ssh(为每个用户解析已知的主机和授权的密钥文件) -syslog(分析system.log文件) -systeminfo(基本系统标识,如当前IP地址、序列号、主机名) -terminalstate(分析终端保存状态文件) -users(列出系统上现有和已删除的用户) -utmpx(列出终端上的用户会话)

工具高级使用

禁用verbose调试日志生成:

automactc.py -m all -nl

使用静默模式运行AutoMacTC:

automactc.py -m all -q

在控制台显示调试信息:

automactc.py -m all -d

以常规CPU优先级运行AutoMacTC:

automactc.py -m all -r

帮助菜单

usage: automactc.py [-m INCLUDE_MODULES [INCLUDE_MODULES ...] | -x                    EXCLUDE_MODULES [EXCLUDE_MODULES ...] | -l] [-h]                    [-i INPUTDIR] [-o OUTPUTDIR] [-p PREFIX] [-f] [-nt] [-nl]                    [-fmt {csv,json}] [-np] [-b] [-q | -d]                    [-K DIR_INCLUDE_DIRS [DIR_INCLUDE_DIRS ...]]                    [-E DIR_EXCLUDE_DIRS [DIR_EXCLUDE_DIRS ...]]                    [-H DIR_HASH_ALG [DIR_HASH_ALG ...]]                    [-S DIR_HASH_SIZE_LIMIT] [-R] [-NC] [-NM] AutoMacTC: an Automated macOS forensic triage collection framework. module filter:  -m INCLUDE_MODULES [INCLUDE_MODULES ...], --include_modules INCLUDE_MODULES [INCLUDE_MODULES ...]                        module(s) to use, use "all" to run all modules, space                        separated list only  -x EXCLUDE_MODULES [EXCLUDE_MODULES ...], --exclude_modules EXCLUDE_MODULES [EXCLUDE_MODULES ...]                        assumes you want to run all modules EXCEPT those                        specified here, space separated list only  -l, --list_modules    if flag is provided, will list available modules and                        exit. general arguments:  -h, --help            show this help message and exit  -i INPUTDIR, --inputdir INPUTDIR                        input directory (mount dmg with mountdmg.sh script and                        use -f to analyze mounted HFS or APFS Volume)  -o OUTPUTDIR, --outputdir OUTPUTDIR                        output directory  -p PREFIX, --prefix PREFIX                        prefix to append to tarball and/or output files  -f, --forensic_mode   if flag is provided, will analyze mounted volume                        provided as inputdir  -nt, --no_tarball     if flag is provided, will NOT package output files                        into tarball  -nl, --no_logfile     if flag is provided, will NOT generate logfile on disk  -fmt {csv,json}, --output_format {csv,json}                        toggle between csv and json output, defaults to csv  -np, --no_low_priority                        if flag is provided, will NOT run automactc with                        highest niceness (lowest CPU priority). high niceness                        is default  -b, --multiprocessing                        if flag is provided, WILL multiprocess modules                        [WARNING: Experimental!] console logging verbosity:  -q, --quiet           if flag is provided, will NOT output to console at all  -d, --debug           enable debug logging to console specific module arguments:  -K DIR_INCLUDE_DIRS [DIR_INCLUDE_DIRS ...], --dir_include_dirs DIR_INCLUDE_DIRS [DIR_INCLUDE_DIRS ...]                        directory inclusion filter for dirlist module,                        defaults to volume root, space separated list only  -E DIR_EXCLUDE_DIRS [DIR_EXCLUDE_DIRS ...], --dir_exclude_dirs DIR_EXCLUDE_DIRS [DIR_EXCLUDE_DIRS ...]                        directory and file exclusion filter for dirlist                        module. defaults are specified in README. space                        separated list only. put 'no-defaults' as first item                        to overwrite default exclusions and then provide your                        own exclusions  -H DIR_HASH_ALG [DIR_HASH_ALG ...], --dir_hash_alg DIR_HASH_ALG [DIR_HASH_ALG ...]                        either sha256 or md5 or both or none, at least one is                        recommended, defaults to sha256\. also applies to                        autoruns module  -S DIR_HASH_SIZE_LIMIT, --dir_hash_size_limit DIR_HASH_SIZE_LIMIT                        file size filter for which files to hash, in                        megabytes, defaults to 10MB. also applies to autoruns                        module  -R, --dir_recurse_bundles                        will fully recurse app bundles if flag is provided.                        this takes much more time and space  -NC, --dir_no_code_signatures                        if flag is provided, will NOT check code signatures                        for app and kext files. also applies to autoruns                        module  -NM, --dir_no_multithreading                        if flag is provided, will NOT multithread the dirlist                        module

项目地址

AutoMacTC:https://github.com/CrowdStrike/automactc

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

本文分享自微信公众号 - FreeBuf(freebuf)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MacBook 包管理 HomeBrew 安装

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    suveng
  • 5 分钟带你学会享有瑞士军刀之称的网络调试神器 Netcat,从此网络故障诊断不再愁!

    Netcat 是跨平台的,可用于 Linux、macOS、Windows 和 BSD。你可以使用 Netcat 调试和监视网络连接、扫描打开的端口、传输数据、作...

    iMike
  • MONGODB 磁盘与内存的数据格式是否一致

    但后续的问题我模糊了,例如磁盘和内存的数据是否完全一致,压缩的比率是多少,等等。人无完人,我也不是DB 百科全书。不过好在还不是中年油腻大叔,模糊了那就lear...

    AustinDatabases
  • 记不住命令行?用这个开源项目一次性解决问题!

    命令行是非常高效的工具,但一个很常见的现象是,很多命令行过一段时间就容易忘。举个栗子,如果我们常用 git 命令行管理代码、利用 conda 命令管理开发环境,...

    崔庆才
  • 如何通过macOS的磁盘管理工具实现系统提权

    近期,ZDI的研究人员“ccpwd”在一个名叫“diskmanagementd”的macOS守护进程中,发现了一个基于堆的缓冲区溢出漏洞。diskmanagem...

    FB客服
  • ICCV 2019 Tiger Pose Detection 冠军团队技术分享

    近日,在 ICCV 2019 Workshop 举办的 CVWC2019 公布了最终结果,来自深兰科技北京 AI 研发中心的 DeepBlueAI 团队斩获了 ...

    AI研习社
  • Homebrew 终于进入1.x

    Homebrew在mac中,就像centos中的yum或者ubuntu中的apt-get,地位尤其重要。用了好几年,一直都是0.x.x,终于到1.x了。

    pollyduan
  • 一.jenkins+github+gradle 实现android自动化打包全攻略(MAC版)

    折腾了好几天,今天终于实现了第一个Android项目的自动化打包,过程比较的艰辛,参考了大量的资料,基本都没能说的很全,当中的坑比较多,还是自己总结下吧!OK,...

    专注APP开发
  • 在移动硬盘中安装win10和macos双系统

    在SSD移动硬盘中安装win10和macos双系统,在安装完成后,通过移动硬盘引导启动,达到如下效果

    小慢哥Linux运维
  • 李小璐PGone视频引全民吃瓜,让渡隐私权成社交必然代价?

    10月30日下午,演员李小璐和说唱歌手PGone的几段亲密视频在网络引发热议。当天晚间,PGone在微博文章中提到:“为什么去年在抖音拍的视频没有任何外传的前...

    腾讯大讲堂

扫码关注云+社区

领取腾讯云代金券