Skip to content

Commit

Permalink
Merge branch 'develop' into list-immutable-files-on-linux
Browse files Browse the repository at this point in the history
  • Loading branch information
tclahr authored Jan 26, 2025
2 parents ebbf64a + 40ce614 commit 3f576c0
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 32 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
- live_response/packages/package_owns_file.yaml: Added collection support for which installed package owns a specific file or command. Note that this artifact is resource-intensive and time-consuming to execute, so it is disabled by default in all profiles [linux] ([mnrkbys](https://github.com/mnrkbys)).
- live_response/packages/paludis.yaml: Added collection support for listing installed packages managed by the Paludis package manager [linux] (by [Pierre-Gronau-ndaal](https://github.com/Pierre-Gronau-ndaal)).
- live_response/packages/portage.yaml: Added collection support for listing installed packages managed by the Portage package management system [linux] (by [Pierre-Gronau-ndaal](https://github.com/Pierre-Gronau-ndaal)).
- live_response/packages/slackpkg.yaml: Added collection support for listing installed and upgradable packages managed by slackpkg package manager [linux] (by [Pierre-Gronau-ndaal](https://github.com/Pierre-Gronau-ndaal)).
- live_response/packages/snap.yaml: Updated to display installed packages including all revisions [linux] (by [Pierre-Gronau-ndaal](https://github.com/Pierre-Gronau-ndaal)).
- live_response/storage/findmnt.yaml: Added JSON output format for listing all mounted file systems [linux] ([mnrkbys](https://github.com/mnrkbys)).
- live_response/storage/lsblk.yaml: Added JSON output format for listing block devices [linux] ([mnrkbys](https://github.com/mnrkbys)).
Expand Down
79 changes: 47 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,31 +4,33 @@
<img src="logo/uac-dark.svg" alt="logo" width="120px">
</picture>

<h2 align="center">Unix-like Artifacts Collector</h2>
<h2 align="center">Unix-like Artifacts Collector (UAC)</h2>

<p align="center">
<a href="https://github.com/tclahr/uac/actions/workflows/shellcheck.yaml" alt="Issues">
<img src="https://github.com/tclahr/uac/actions/workflows/shellcheck.yaml/badge.svg" /></a>
<a href="https://bestpractices.coreinfrastructure.org/projects/5640" alt="CII Best Practices">
<img src="https://bestpractices.coreinfrastructure.org/projects/5640/badge" /></a>
<a href="https://github.com/tclahr/uac/releases" alt="GitHub release (latest by date including pre-releases)">
<img src="https://img.shields.io/github/v/release/tclahr/uac?include_prereleases&style=flat" /></a>
<img src="https://img.shields.io/github/v/release/tclahr/uac?include_prereleases&style=flat-square" /></a>
<a href="https://github.com/tclahr/uac/LICENSE" alt="License">
<img src="https://img.shields.io/github/license/tclahr/uac?style=flat" /></a>
<img src="https://img.shields.io/github/license/tclahr/uac?style=flat-square" /></a>
</p>

<p align="center">
<a href="#-about-uac">About</a>
<a href="#-documentation">Documentation</a>
<a href="#-main-features">Main Features</a>
<a href="#-supported-operating-systems">Supported Operating Systems</a>
<a href="">Using UAC</a>
<a href="#-usage">Usage</a>
<a href="#-contributing">Contributing</a>
<a href="#-community-support">Support</a>
<a href="#-support">Support</a>
<a href="#-license">License</a>
</p>
Expand All @@ -37,15 +39,21 @@

## 🔎 About UAC

UAC is a Live Response collection script for Incident Response that makes use of native binaries and tools to automate the collection of AIX, ESXi, FreeBSD, Linux, macOS, NetBSD, NetScaler, OpenBSD and Solaris systems artifacts. It was created to facilitate and speed up data collection, and depend less on remote support during incident response engagements.
**UAC (Unix-like Artifacts Collector)** is a powerful and extensible incident response tool designed for forensic investigators, security analysts, and IT professionals. It automates the collection of artifacts from a wide range of Unix-like systems, including AIX, ESXi, FreeBSD, Linux, macOS, NetBSD, NetScaler, OpenBSD and Solaris.

Whether you're handling an intrusion, conducting forensic investigations, or performing compliance checks, UAC simplifies and accelerates data collection while minimizing reliance on external support during critical incidents.

UAC reads YAML files on the fly and, based on their contents, collects relevant artifacts. This makes UAC very customizable and extensible.
### Key Highlights:
- 📂 Fully customizable via YAML profiles for tailored data collection.
- ⚡ Lightweight, portable, and requires no installation or dependencies.
- 🔒 Adheres to the order of volatility to ensure reliable data acquisition.
- 🛠 Designed for diverse environments, including IoT devices and NAS systems.

[![uac_collection](https://tclahr.github.io/uac-docs/img/uac_3_collection.gif)](#)
![UAC in Action](https://tclahr.github.io/uac-docs/img/uac_3_collection.gif)

## 📘 Documentation

Project documentation page: [https://tclahr.github.io/uac-docs](https://tclahr.github.io/uac-docs)
Full documentation is available at the [project documentation page](https://tclahr.github.io/uac-docs).

## 🌟 Main Features

Expand All @@ -55,7 +63,7 @@ Project documentation page: [https://tclahr.github.io/uac-docs](https://tclahr.g
- Collect information about current running processes (including processes without a binary on disk).
- Hash running processes and executable files.
- Extract files and directories status to create a bodyfile.
- Collect system and user-specific data, configuration files and logs.
- Collect system and user-specific data, configuration files, and logs.
- Acquire volatile memory from Linux systems using different methods and tools.

## 💾 Supported Operating Systems
Expand All @@ -72,64 +80,71 @@ UAC runs on any Unix-like system, regardless of the processor architecture. All
[![OpenBSD](https://img.shields.io/static/v1?label=&message=OpenBSD&color=yellow&style=for-the-badge)](#-supported-operating-systems)
[![Solaris](https://img.shields.io/static/v1?label=&message=Solaris&color=lightblue&style=for-the-badge)](#-supported-operating-systems)

*Note that UAC even runs on systems like Network Attached Storage (NAS) devices, Network devices such as OpenWrt, and IoT devices.*
*Note: UAC even runs on systems like Network Attached Storage (NAS) devices, Network devices such as OpenWrt, and IoT devices.*

## 🚀 Usage

UAC does not need to be installed on the target system. Simply download the latest version from the [releases page](https://github.com/tclahr/uac/releases), uncompress it, and launch. It's that simple!

> **Full Disk Access** permission is a privacy feature introduced in macOS Mojave (10.14) that prevents some applications from accessing important data, such as Mail, Messages, and Safari files. So it is strongly recommended that you manually [grant permission for Terminal application](https://support.apple.com/guide/mac-help/allow-access-to-system-configuration-files-mchlccb25729/mac) before running UAC from the terminal, or [grant permission for remote users](https://support.apple.com/guide/mac-help/allow-a-remote-computer-to-access-your-mac-mchlp1066/mac) before running UAC via ssh.
### 🛠 Getting Started
1. Download the latest release from the [Releases page](https://github.com/tclahr/uac/releases).
2. Uncompress the archive.
3. Execute the tool directly from the terminal.

To execute a collection, you must supply at least a profile and/or a list of artifacts, and specify the destination directory. Any additional parameters are optional.
### Examples

Examples:
<details>
<summary>Click to view usage examples</summary>

Collect all artifacts based on the ir_triage profile, and save the output file to /tmp.

```shell
**Collect all artifacts based on the ir_triage profile:**
```bash
./uac -p ir_triage /tmp
```

Collect all artifacts located in the artifacts/live_response directory, and save the output file to /tmp.
**Collect memory dump and all artifacts based on the full profile:**
```bash
./uac -a ./artifacts/memory_dump/avml.yaml -p full /tmp
```

```shell
./uac -a ./artifacts/live_response/\* /tmp
**Collect all artifacts excluding a specific one:**
```bash
./uac -p full -a \!artifacts/bodyfile/bodyfile.yaml .
```

Collect all artifacts based on the ir_triage profile, along with all artifacts located in the /my_custom_artifacts directory, and save the output file to /mnt/sda1.
**Collect all artifacts based on the ir_triage profile, along with all artifacts located in the /my_custom_artifacts directory:**

```shell
./uac -p ir_triage -a /my_custom_artifacts/\* /mnt/sda1
```

Collect a memory dump and all artifacts based on the full profile.
**Collect all artifacts based on a custom profile:**

```shell
./uac -a ./artifacts/memory_dump/avml.yaml -p full /tmp
./uac -p /my_custom_uac_data/my_custom_uac_profile.yaml /tmp
```

Collect all artifacts based on the ir_triage profile excluding the bodyfile/bodyfile.yaml artifact.

```shell
./uac -p ir_triage -a \!artifacts/bodyfile/bodyfile.yaml /tmp
```
</details>

## 💙 Contributing

Contributions are what makes the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
Contributions make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

Have you created any artifacts? Please share them with us!

You can contribute with new artifacts, profiles, bug fixes or even propose new features. Please read our [Contributing Guide](CONTRIBUTING.md) before submitting a Pull Request to the project.
You can contribute with new artifacts, profiles, bug fixes, or propose new features. Please read our [Contributing Guide](CONTRIBUTING.md) before submitting a Pull Request to the project.

## 👨‍💻 Community Support
## 👨‍💻 Support

For general help using UAC, please refer to the [project documentation page](https://tclahr.github.io/uac-docs). For additional help, you can use one of the channels to ask a question:
For general help using UAC, please refer to the [project documentation page](https://tclahr.github.io/uac-docs). For additional help, you can use one of the following channels:

- [Discord](https://discord.com/invite/digitalforensics) (For live discussion with the community and UAC team)
- [GitHub](https://github.com/tclahr/uac/issues) (Bug reports and contributions)
- [Twitter](https://twitter.com/tclahr) (Get the news fast)

## ⭐ Support the Project

If you find UAC helpful, please give us a ⭐ on [GitHub](https://github.com/tclahr/uac)! This helps others discover the project and motivates us to improve it further.

## 📜 License

The UAC project uses the [Apache License Version 2.0](LICENSE) software license.
11 changes: 11 additions & 0 deletions artifacts/live_response/packages/slackpkg.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
version: 1.0
condition: command_exists "slackpkg"
output_directory: /live_response/packages
artifacts:
-
description: Display installed and upgradable packages.
supported_os: [linux]
collector: find
path: /var/log/packages/*
file_type: [f]
output_file: var_log_packages.txt

0 comments on commit 3f576c0

Please sign in to comment.