Advanced Linux Detection and Forensics CheatSheet
by Defensive Security v0.4 [10/09/2024]
/proc:
/proc/modules → Displays a list of all modules loaded into the kernel
/proc/kallsyms → Displays addresses of kernel symbols
/proc/vmallocinfo → Gives mapping of virtual address space of the kernel
/proc/PID/maps → Lists of all the memory-mapped files of a process
/proc/PID/maps | grep ‘(deleted)’ → Lists of deleted memory-mapped files of a
process (ex. deleted shared libraries)
/proc/PID/fd/* → Get file descriptors per process
/proc/PID/fd/* | grep ‘memfd’ → Get processes with anonymous (memory-backed)
file descriptors live in RAM
[Link]
/proc/PID/fdinfo → Contains one entry for each file that the process has open
/proc/PID/map_files/* → Contains entries corresponding to memory-mapped files
/proc/PID/environ → Display environment variables per process
/proc/PID/exe → A symbolic link containing the actual pathname of the executed
command
/proc/PID/exe | grep ‘deleted’ → A symbolic link containing the actual unlinked
pathname of the executed command
/proc/PID/comm → Exposes the process's comm value - that is, the command name
associated with the process
/proc/PID/cmdline → Holds the complete command line for the process
/proc/PID/cwd → Gets a symbolic link to the current working directory of the process
/proc/PID/status → Status information about the process used by ps
/proc/PID/stack → Symbolic trace of the function calls in this process's kernel stack
/proc/PID/stack | grep packet_recvmsg
/proc/PID/stack | grep wait_for_more_packets → get processes with packet
capture functions
/proc/net/unix → List UNIX sockets
/proc/net/nf_conntrack → records the source IP, destination IP, and other information
of a TCP connection in the ESTABLISHED state
[Link]
/proc/mounts → Lists of all the filesystems currently mounted on the system
/proc/PID/fd/* | grep bpf-map → Get file descriptors per process with bpf-map type
/proc/PID/fd/* | grep bpf-prog → Get file descriptors per process with bpf-prog type
/proc/sys/kernel/tainted → Display the kernel-tainted state
/proc/PID/task/TID/children → Space-separated list of child tasks of this task
/sys:
/sys/kernel/debug/tracing/enabled_functions → contains a list of kernel functions
that are currently enabled for tracing
/sys/kernel/debug/tracing/trace → Get trace events
/sys/kernel/tracing/available_filter_functions → Provides a list of available functions
that you can use as filters when
setting up tracing
/sys/module/* → List loaded kernel modules, and compare with /proc/modules
/sys/module/$module/parameters → Check available parameters per module
/sys/module/$module/taint → Indicates whether a loaded kernel module has "tainted"
the kernel
/sys/fs/bpf/* → List pinned eBPF progs
[Link]
Logs:
/var/log/messages → Contains global system messages, including the messages that
are logged during system startup
/var/log/[Link] → Authentication logs
/var/log/[Link] → Kernel information and events
/var/log/secure → Authentication logs
/var/log/syslog → Contains messages that are recorded by the host about the system
activity
/var/log/httpd/ → Apache logs
/var/log/[Link] → Contains information about running system and application
daemons
/var/log/cron → Cron logs
/var/log/auditd/[Link] | grep denied → Get SELinux alerts
/var/log/journal → journald systemd's logs
journalctl --file [Link] -o verbose > [Link] → Dump journald logs with verbose
output
[Link]
CLI/tools:
lsmod → Display the status of modules in the Linux Kernel by reading /proc/modules
lsof → "list open files” tool is a robust interface for the information inside the /proc
virtual filesystem
ls -al → find hidden files
env → Display environment variables
who / w / pinky → Show logged users
last → show a listing of the last logged-in users based on /var/log/wtmp
lastb → Show a listing of the last unsuccessful logins based on /var/log/btmp
ps -efwwww → Get a full list of running processes
grep . FILENAME → single byte read to decloak the file
pstree → Display a tree of processes
find → Find files and directories
dd if=mem bs=1 skip=ADDRESS count=1000 of=/tmp/dumped_proc_file → Extract
memory content (1000 bytes) at specified ADDRESS
service --status-all → Display System V services status information
stat → Display file or file system status
[Link]
readelf →Display information about ELF files
objdump → Display information from object files
strings → Determines the contents of non-text files
capa → Tool to identify capabilities in executable files
yara → Identify and classify malware samples
strace → Trace system calls and signals
ltrace → intercepts and records the dynamic library calls which are called by the
executed process and the signals which are received by that process
ip link show | grep xdp →Find if any of network interfaces have XDP enabled
ip link show | grep qdisc →Find if any of network interfaces have Traffic Control
enabled
sudoreplay → Replay sudo session logs
bpftool prog list → List loaded eBPF programs
bpftool map list → List eBPF maps
dmesg | grep bpf_probe_write_user → Check for the presence of bpf
‘bpf_probe_write_user’ helper
dmesg | grep taint → Check kernel message buffer for tainted kernel modules
dmesg | grep systemtap → Check for the presense of systemtap
[Link]
mount → Read /proc/mounts, watch for bind-mounted PID dirs to random dir
top → Display current running processes
iptables -L -v -n → Collect firewall rules
iptables -t nat -L -v -n → Collect firewall rules from nat chain
ss → Display listening sockets
uptime → Display how long system has been running
auditctl -l → Display kernel's audit rules
ausearch → Query the audit daemon logs for events based on different search
criteria
chkconfig --list → Display a list of all services and their current configuration
systemctl list-units → Display all systemd system units
systemctl list-timers --all → Display timer units currently in memory
systemctl list-unit-files → Display unit files installed on the system
loginctl user-status UID --full → May be used to introspect and control the state of
the systemd login manager per user
getenforce → Display the current mode of SELinux
sestatus -v → Display the contexts of files and processes listed in the
/etc/[Link] file
[Link]
dnf list installed → Display installed packages
yum list installed → Display installed packages
dpkg -l → Display installed packages
rpm -V -a → Verify all packages to compare information about the installed files in the
package with information about the files taken from the package
metadata stored in the rpm database
debsums → Verify installed Debian package files against MD5 checksum lists from
/var/lib/dpkg/info/*.md5sums
tc qdisc → show/manipulate traffic control settings
ext4magic → List/recover deleted files
[Link] → extract events from individual files and creates a Plaso storage file
getcap -r / 2>/dev/null → displays the name and capabilities of each file
BPFhookdetect → Detect syscall hooking using eBPF
inotify → Provides a mechanism for monitoring filesystem events
lsattr → List file attribute ex. immutable bit
base64 → Encode/decode data and print to standard output
LKRG → Performs runtime integrity checking of the Linux kernel and detection of
security vulnerability exploits against the kernel
[Link]
Files/directories/attributes:
.bash_history → Get the command history for the Bash shell
.mysql_history → Get the query history for the MySQL/MariaDB sessions
.ftp_history → Get the command history for the FTP (File Transfer Protocol) client
.git/logs → Get log files that track changes to the repository’s references and branches
/etc/passwd → Get essential information about user accounts
/etc/group → Get essential information about user groups
/etc/fstab → Contains descriptive information about the filesystems the system can
mount
/etc/ssh/sshd_config → Main sshd configuration file
/etc/sudoers → Contains default sudo security policy configuration
.ssh/authorized_keys → Get a list of public SSH keys that are authorized to access the
user’s account
.ssh/known_hosts → Stores information about the public keys of remote SSH servers
.viminfo → Get various types of information between editing sessions
.gitconfig → Get settings and preferences for Git repositories and user accounts
/boot/[Link] → contains the necessary executables and system files to support
boot of a Linux system
[Link]
/etc/[Link] → Contains a whitespace-separated list of ELF shared objects to be
loaded before the program
/lib64/[Link] → Dynamic linker which finds and loads the shared objects (shared
libraries) needed by a program
/dev/shm/ → shared memory implementation
/dev/ → List device files and directories
suid → Search for files that have SUID bit set
sgid → Search for files that have SGID bit set
/etc/cron* /var/cron* /etc/at* → Linux scheduler
/etc/pam.d → main PAM configuration files
OSquery/Sunlight/osquery-defense-kit → OSquery queries for
Detection & Incident Response:
[Link] → Reveal processes that are powered by deleted programs
[Link] → Detect processes with loaded deleted shared libraries within
memory address space
[Link] → Uncover unexpected programs that are faking their names
[Link]
[Link] → Reveal hidden files
[Link] → Find processes that have hidden parent IDs
[Link] → Reveal rootkits that hide processes from getdents() calls to /proc
[Link] → Detect potential malicious behavior that hides processes
from ps using mount -o bind
[Link] → Finds processes that are apparently hidden by a rootkit
[Link] → Reveal if there is a hidden /sys/module entry
[Link] → Diagnose tainted kernels
[Link] → Find preload entries
[Link] → Uncover mysterious character devices in /dev
[Link] → Detect raw socket sniffers
[Link] → Detect rootkits, such as Diamorphine, that respond to
exotic signals
[Link] → Reveal processes running as root with a socket but no
dependencies outside of libc
[Link] → Find root SSH authorized keys
[Link] → Reveal suspicious crontab entries
[Link] → Find processes that have unusual environment variables
[Link]
[Link] → Reveal programs whose process space may have been taken over by
another program
[Link] → Discover suspicious behavior in eBPF
[Link] → Reveal processes with weird lock files open in /var/run
[Link] → Discover kernel modules logging to the trace pipe - this
may be the sign of an eBPF-based rootkits
[Link] → Show world readable locks in /var/run
[Link] → Find suspicious bpf maps
[Link] → Find suspicious bpf programs
[Link] → Find suspicious bpf write user in dmesg
[Link] → Detect suspicious bpf hooks
[Link] → Detect processes with a memory map
that suggests they might be code
smuggling
[Link] → Find unexpected programs listening from /tmp
or other weird directories
[Link] → Find programs where fd0 (stdin), fd1 (stdout), or fd2 (stderr) are
connected to a socket
[Link] → Detect potentially suspicious reverse-shell processes
[Link]
[Link] → Catch DNS traffic going to machines other than the
host-configured DNS server
[Link] → Find unexpected executable files in /etc
[Link] → Find unexpected potentially suspicious /etc/hosts entries
unexpected-privilege-escalation_linux.sh → Find processes that run with a lower
effective UID than their parent PID
[Link] → Find unexpected process that spawns shell
processes
[Link] → Find unexpected programs communicating over
non-HTTPS protocols
[Link] → Find processes with suspicious executable names
[Link] → Find unexpected files in /dev
[Link] → Unexpected systemd units, may be evidence
of persistence
[Link] → Programs running out of unexpected directories
[Link] → Find exotic processes based on their command-line
[Link] → Detect the execution of privileged Docker
containers which can be used to escape to
the host
[Link]
[Link] → Find programs processes which link against
libcurl
[Link] → Unexpected programs communicating over HTTPS
[Link] → Find unexpected hidden directories in
system folders
[Link] → Find kernel modules that are not part of the
expected list
[Link] → Detect running processes that originate from
setuid/setgid programs
[Link] → Find difference between
available_filter_functions and loaded modules
[Link] → Find running processes with potentially
malicious behavior
[Link] → Find unexpected executables in /var
[Link] → Find unexpected executables in /tmp
[Link] → Find unexpected executables in /dev
[Link] → Detect processes with executable names that
are potentially suspicious
[Link] → Find running processes with recently
downloaded cryptexec behavior
[Link]
[Link] → Find currently running processes backed by UPX
executable
[Link] → Find processes with ICMP socket communication
[Link] → Find LD_PRELOAD in /etc/sudoers
[Link] → Find LD_PRELOAD in /etc/sudoers.d/*
Runtime Security/Tracee→ Linux Runtime Security and Forensics using
eBPF:
Anti-Debugging Technique → Detects anti-debugging techniques
ASLR Inspection → Detects ASLR inspections
Cgroups notify_on_release File Modification → Monitors notify_on_release file
changes in cgroups
Cgroups Release Agent File Modification → Detects changes to the cgroup
release_agent
Core Dumps Config File Modification → Monitors core dump configuration
alterations.
Default Dynamic Loader Modification → Tracks changes to the default binary loader.
Container Device Mount → Detects unauthorized container device mounts.
[Link]
Docker Socket Abuse → Flags potential Docker socket misuse
Dropped Executables → Detects runtime-dropped executables.
Dynamic Code Loading → Monitors dynamic code loading events
Fileless Execution → Flags fileless execution techniques
Hidden Executable File Creation → Detects creation of hidden executable files
Illegitimate Shell → Flags unauthorized or unexpected shell executions
Kernel Module Loading → Monitors kernel module load events
Kubernetes API Server Connection → Detects connections to the Kubernetes API
server
Kubernetes TLS Certificate Theft → Flags potential theft of Kubernetes certificates
LD_PRELOAD Code Injection → Monitors LD_PRELOAD injection attempts
File Operations Hooking on Proc Filesystem → Detects hooks on file operations in
/proc
Kcore Memory File Read → Monitors reads of /proc/kcore
Process Memory Access → Flags unauthorized /proc/mem access.
Procfs Mem Code Injection → Detects code injections via /proc/mem
Process VM Write Code Injection → Monitors injections via process_vm_writev
Ptrace Code Injection → Detects ptrace-facilitated code injections.
[Link]
RCD Modification → Monitors changes to the remote control daemon
Sched Debug Reconnaissance → Flags /proc/sched_debug reconnaissance
Scheduled Tasks Modification → Tracks modifications to scheduled tasks.
Process Standard Input/Output over Socket → Detects IO redirection over sockets
Sudoers File Modification → Monitors alterations to the sudoers file
Syscall Table Hooking → Detects syscall table hook attempts
System Request Key Configuration Modification → Monitors system request key
configuration changes
Runtime Security/Falco → Detects and alerts on abnormal behavior and
potential security threats in real-time:
Disallowed outbound connection destination → Detects any outbound connection to
a destination outside of an allowed
set of ips, networks, or domain
names
Outbound connection to C2 server → Detects outbound connection to command &
control servers
Disallowed SSH Connection → Detect any new ssh connection to a host other than
those in an allowed group of hosts
[Link]
Network connection outside authorized port and binary → Detects traffic that is not
to authorized server
process and port
Possible miner running → Detects crypto miners using the Stratum protocol
File created below /dev by untrusted program →Detects creating any files below
/dev other than known programs
that manage devices. Some rootkits
hide files in /dev.
File created below /etc by untrusted program → Detects creating any files below
/etc
File below /etc opened for writing → Detects attempt to write to any file below /etc
File below / or /root opened for writing → Detects an attempt to write to any file
directly below / or /root
Interactive root → Detects anything that runs interactively by root
Privileged container started → Detects the initial process started in a privileged
container.
Excessively capable container started → Detects container started with a powerful
set of capabilities
Rpm database opened for writing by a non-rpm program → Detects an attempt to
write to the rpm
database by any
non-rpm related program
[Link]
Shell configuration file has been modified → Detects attempt to modify shell
configuration files
Cron jobs were scheduled to run → Detects modifications and executions of cron
jobs
Sensitive file opened for reading by non-trusted program → Detects an attempt to
read any sensitive file
(e.g. files containing
user/password/auth info)
Database-related program spawned process other than itself → Detects a
database-server
related program
spawned a new
process other than
itself.
Program run with disallowed HTTP_PROXY environment variable → Detects an
attempt to run a program with a disallowed HTTP_PROXY environment variable
Known system binary sent/received network traffic → Identifies any network activity
performed by system binaries that are not expected to send or receive any network
traffic
Redirect stdout/stdin to network connection → Detect redirecting stdout/stdin to
network connection
Interpreted program received/listened for network traffic → Detects any inbound
network activity performed by any interpreted program (perl, python, ruby, etc.)
[Link]
Unexpected UDP Traffic Seen → Detects UDP traffic not on port 53 (DNS) or other
commonly used ports
Unexpected setuid call by non-sudo, non-root program → Detects an attempt to
change users by calling
setuid. sudo/su are
excluded
Unexpected connection to K8s API Server from container → Detects attempts to
contact the K8S API
Server from a container
Network tool launched on host → Detects network tools launched on the host
Shell history had been deleted or renamed → Detects bash history deletion
Hidden file or directory created → Detects hidden files or directories created
Symlinks created over sensitive files → Detects symlink created over sensitive files
Hardlinks created over sensitive files → Detects hardlink created over sensitive files
An userfaultfd syscall was successfully executed by an unprivileged user → Detects
a successful unprivileged userfaultfd syscall which might act as an attack primitive to
exploit other bugs
Java process class file download → Detects Java process downloading a class file
which could indicate a successful exploit
Outbound connection to IP/Port flagged by [Link] → Detects
outbound connections to common miner pool ports
[Link]
Mount was executed inside a privileged container → Detects file system mount
happened inside a privileged
container
Detect Sudo Privilege Escalation Exploit (CVE-2021-3156) → Detects Privilege
escalation attempt affecting sudo (<= 1.9.5p2)
Linux Kernel Module injection using insmod detected → Detects if kernel module
was injected
Detect an attempt to exploit a container escape using release_agent file → Detects
an attempt to exploit a container escape using release_agent file
Drift detected (open+create), new executable created in a container → Identifies if
new executable created in a container due to open+create
Runtime Security/Kunai → Threat-hunting tool for Linux:
Execve → Generated whenever an execve syscall happens on the
system. It provides information about the current binary currently running.
Execve script → Generated under the same conditions as execve event. The only
difference is that it provides additional information about the
interpreter when the file being executed is a script
Exit → Generated when a single task (process or thread) exits.
Exit group → Generated when a thread-group (process and all its threads) exits
[Link]
Clone → A task is being cloned/forked. This means that a new task will be created on
the system.
Prctl → Generated when a process makes a call to the prctl syscall
Init module → Generated when a kernel module is loaded into the kernel.
Bpf prog load → Generated every time a BPF program is loaded into the kernel.
Bpf Socket Filter Attached → A socket filter attachement has been made
Mprotect exec → Generated when memory protection is turned to executable.
Mmap exec → Generated whenever the mmap syscall is used to map an executable
file in memory, with memory execution protection.
Connect → Generated every time a connect attempt is made to a remote IP.
Dns query → Generated when the a DNS response is received on the host and gives
insight both on the query, the response and the DNS resolver.
Send data → Generated when data is sent to a remote IP address.
Read → Generated whenever a file is read.
Read config → Generated whenever a file located in /etc is being read
Write → Generated whenever a file is write.
Write config → Generated whenever a file located in /etc is being written.
File rename → Generated whenever a file is being renamed.
[Link]
File unlink → Generated when a file gets unlinked
Runtime Security/Tetragon → eBPF-based Security Observability and
Runtime Enforcement:
Process Lifecycle Monitoring via exec and exit → Mo
Binary Execution in /tmp → Monitors execution of a binary in the /tmp directory.
sudo Monitoring → Monitors sudo invocations
Privileges Escalation via SUID Binary Execution → Monitors execution of SUID “Set
User ID” binaries.
Privileges Escalation via File Capabilities Execution → Monitors execution of binaries
with file capabilities.
Privileges Escalation via Setuid system calls → Monitors execution of the setuid()
system calls family.
Privileges Escalation via Unprivileged User Namespaces → Monitors creation of
User namespaces by
unprivileged.
Privileges Change via Capset system call → Monitors execution of the capset()
system call.
[Link]
Fileless Execution → Monitors the execution of binaries that exist exclusively as a
computer memory-based artifact.
Execution of Deleted Binaries → Monitors the execution of deleted binaries.
eBPF System Activity → Audits BPF program that loads and BPFFS interactions
Kernel Module Audit trail → Audits loading of kernel modules
Shared Library Loading → Monitors loading of libraries
Network Activity of SSH daemon → Monitors sessions established to sshd
Outbound Connections → Monitors all egress connections
Argus → a cutting-edge runtime security tool designed for both monitoring and enforcing
application behavior:
capabilities_modification → triggered when there are modifications to the capabilities
configuration files in a Linux environment, specifically
targeting changes to /etc/security/[Link]
code_modification_through_procfs → triggered by an attempt to modify code through
direct access to process memory via the /proc
filesystem
[Link]
core_pattern_access → triggered when there is an attempt to modify the system's
core dump pattern, typically found at
/proc/sys/kernel/core_pattern
cpu_fingerprint → Triggered by an attempt to access specific system files that could
be used to gather detailed information about the CPU architecture
and configuration direct access to process memory via the /proc
filesystem
credentials_files_access → Monitors and flags unauthorized or suspicious access to
files potentially containing sensitive credentials
filesystem_fingerprint → Triggered when specific system files related to disk and
filesystem configurations are accessed ex. /etc/fstab,
/proc/diskstats, /proc/filesystems, etc.
java_debug_wire_proto_load → Monitors for the loading of [Link]
java_libinstrument_load → Triggers when there is an attempt to load [Link]
through memory mapping (mmap)
machine_fingerprint → Triggered by unauthorized access to a specific system
directories and files that are commonly used to gather
information about the underlying machine hardware and
network configuration, ex. /sys/class/dmi/id, /sys/class/net,
/proc/ioports, etc.
os_fingerprint → Identifies attempts to gather detailed information about the
operating system on which it is running
os_status_fingerprint → Identifies attempts to gather detailed information about the
operating system's status, which can be indicative of
reconnaissance activities within a compromised system
[Link]
package_repo_config_modification → Triggered when there are modifications to
critical package management configuration
files across various Linux distributions. This
includes files like /etc/apt/[Link],
/etc/[Link], and others
pam_config_modification → Identifies unauthorized modification attempts that have
been made on critical PAM configuration files located in
/etc/pam.d/ and /lib/security/
sched_debug_access → Detects an attempt that was made to access the
/proc/sched_debug file on a Linux system
shell_config_modification → Identifies unauthorized or suspicious modifications to
critical shell configuration files across various user and
system profiles, ex. .bashrc, .profile, and /etc/profile
ssl_certificate_access → Detects unauthorized or unusual access to SSL certificate
files. ex. /etc/ssl/, /etc/ca-certificates/,
/usr/share/ca-certificates/, /usr/local/share/ca-certificates/
sudoers_modification → Identifies modifications to sudoers configuration
sysrq_access → Triggered when there is an access to /proc/sys/kernel/sysrq or
/proc/sysrq-trigger
unprivileged_bpf_config_access → triggered when there is an attempt to access BPF
configuration files without the appropriate
privileges.
[Link]
Velociraptor IR → a tool for collecting host-based state information using The
Velociraptor Query Language (VQL) queries:
[Link] → looks for processes that have been executed from
memory via memfd_create()
[Link] → Runs Yara over processes in memory
[Link] → Returns a list of target files then runs Yara over the
target list
[Link] → Runs Yara on embeded compressed files
[Link] → Lists loaded kernel modules via /proc/modules
[Link] → Parses the /proc/PID/maps to emit all mapped files into the
process
[Link] → List processes and their running binaries.
[Link] → Searches for files with setuid or setgid flag
[Link] → Looks for evidence of a web shell being present on
the system (based on Yara rules)
[Link] → Acquires a full memory image in LiME output format.
[Link] → Checks a number of files and directories to
verify whether they have the expected
owner, group owner and mode
[Link]
[Link] → Lists the NetworkManager state, all configured
connections and their settings
[Link] → Extract keys, fingerprints and identities from GPG keys.
[Link] → Searches for all apt sources file
[Link] → Parses dpkg status file.
[Link] → Parses packages installed from dnf/yum/rpm
[Link]
[Link]
[Link] → maintains a local database of file hashes. It
is then possible to query this database using
the [Link]
[Link] → identifies processes running as root that were
spawned by processes not running as root
[Link] → Parses the Kunai log file
[Link] → Leverages ChopChopGo to enable usage of
Sigma rules to facilitate detection within Linux
logs
[Link] → Leverages UAC (Unix-like Artifacts Collector) to collect
artifacts from Unix-like systems
[Link] → Collects various autorun files based on
TriagePersistence
[Link]
[Link] → Collects Browser Extensions based on
TriageWebBrowserExtensions
[Link] → Collects Browser History based on
TriageWebBrowserHistory
[Link] → Collects database configurations based on
TriageDatabaseConfigsAndLogs
[Link]→ Collects history files from unix/linux utilities based on
TriageHistory
[Link] → Collects network config files based on
TriageNetwork
[Link] → Collects system configurations based on
TriageSystemConfiguration
[Link] → Collects system logs based on TriageSystemLogs
[Link] → Collects user configurations and based on
TriageUserConfiguration
[Link] → Captures Bash logout files for examination of abnormal
activity
[Link] → Allows running arbitrary commands through the system
shell
[Link] → Finds and parses system wtmp files
[Link] → Displays parsed information from crontab
[Link]
[Link] → Parses the ‘[Link]’ XML file for all
standard Linux users
[Link] → Checks the log of software installation/removal/upgrades
[Link] → Parses the output of the journalctl command
[Link] → Parses the binary journal logs
[Link] → Lists and parses content of Systemd timers
[Link] → Quarantines a Linux host using iptables rules
[Link] → Enables grep of Linux logs and targets strings
observed in exploitation of CVE-2022-26134
[Link].CVE20214034 → Lists processes running as root that were
spawned by processes that are not running as root
[Link] → Enables grep of Linux, MacOS, and Windows logs.
Parameters include SearchRegex and WhitelistRegex as
regex terms
[Link] → Parses services from systemctl
[Link] → Gets user-specific information like homedir, group etc from
/etc/passwd
[Link] → Gets the interactive users from a Linux host
[Link] → Detects users added to the sudo group
[Link]
[Link] → Parses syslog for Sysmon events on Linux
using a unix domain socket
[Link] → Parses syslog for Sysmon events on Linux
[Link].log4jRCE → Detects the exploitation attempts against log4j RCE
vulnerability CVE-2021-44228
[Link] → Leverages Cat-Scale to collect many different artifacts
from a Linux host
[Link] → Gets a wget HSTS log file in a user's home
directory
[Link] → Parses /proc and reveal information about current
network connections
[Link] → Reports network connections, and enriches with
process information
[Link] → Leverages tcpdump to natively capture packets
[Link] → Executes OSquery query
[Link] → Displays the call chain for every process on the system by
traversing the process’s parent ID
[Link] → Acquires a full memory image by LiiME
[Link] → Dumps process memory and upload to the server
[Link] → Creates Volatility Framework profile to the Debian /
Ubuntu OS
[Link]
[Link] → Parses /proc/*/fd files and looks for processes
with anon_inode:bpf-map
[Link] → Enumerates applicable lines from the files that
reside in /etc/pam.d/
[Link] → Gets Dockers info by connecting to its socket.
[Link] → Get Dockers version by connecting to its
socket
[Link] → Detects anomalous files in a Linux filesystem
(hidden, large, SUID)
[Link] → Lists mounted filesystems by reading /proc/mounts
[Link] → Lists ARP table via /proc/net/arp
[Link] → Finds files on the filesystem using the filename or
content
[Link] → Finds and parses ssh authorized keys files
[Link] → Finds and parses ssh known hosts files
[Link] → Searches for private keys in the usual locations and also
records if they are encrypted or not
[Link] → Parses the auth logs to determine all SSH login attempts
[Link] → Parses ~/.ssh/authorized_keys and
~/.ssh/id*.pub looking for the command option
[Link]
to detect potential persistence
[Link] → Parses `/proc/[0-9]*/status` files and extracts the
ProcessName and Kthread values.
[Link].v3 → Detects potential persistence
mechanisms on Linux systems by
analyzing environment variable files
and login scripts
[Link]→ Lists all processes that produce (non-local) network
traffic on the client, leveraging the Nethogs process
tracker
[Link]
SANDFLY SECURITY → Sandfly is an agentless, instantly deployable, and safe
Linux security monitoring platform. Sandfly automates security investigation and forensic
evidence collection on Linux. To learn more visit: [Link] Top 30 Sandfly
modules out of thousands:
process_deleted → Looks for processes that are running, but the executable has been
deleted from the disk
process_environ_history_anti_forensics → Looks for processes with environment
variables indicating anti-forensics are
being used to conceal command history
[Link]
process_running_from_tmp_dir → Looks for processes that are running out of the
system temp directories
process_running_from_dev_dir → Looks for processes that are running out of the
system /dev directories
process_running_from_hidden_dir_anywhere → Looks for processes that are running
out of a hidden directory anywhere
on the system
process_running_from_suspicious_path → Looks for processes with environment
variables indicating anti-forensics are
being used to conceal command history
process_running_from_root_homedir_dir → Looks for processes that are running out
of the /root directory
process_running_from_system_dir → Looks for processes that are running out of
/boot, /sys and /lost+found directories
process_running_hidden_name → Looks for processes that are named as a Unix
hidden file that are running (e.g. period as the start
of name)
process_masquerade_extension_suspicious → Looks for processes that are running
with an extension of their name that
normally wouldn't be on a system
binary.
process_name_suspicious → Looks for processes that are running with a suspicious
name to hide the binary on the disk
[Link]
process_entropy_high → Looks for processes with high entropy indicating it may be
packed or encrypted which is common with malware and
malicious activity.
process_binary_immutable → Looks for any process with a binary that is marked as
immutable
process_masquerade_kernel_thread_* → Looks for processes hiding with a name to
appear to be a kernel thread ([brackets])
process_running_hidden_stealth → Looks for processes that have been hidden by a
stealth rootkit
user_ssh_authorized_keys_immutable → Looks for users that have an SSH
authorized_keys file that is set as
immutable
policy_user_ssh_authorized_keys_duplicates_found → Looks for users that have
SSH authorized_keys key
data that are duplicates
file_binary_in_tmp_dir → Looks for executable files in the top-level system temp
directories (no recursion)
file_hidden_bin → Looks for any kind of hidden file under system binary directories
which is unusual behavior
systemd_exec_from_hidden_dir_anywhere → Looks for systemd units that run
commands in a hidden directory
anywhere on the system
[Link]
user_default_user_ssh_authorized_keys_present → Looks for default Linux system
users that have a SSH
authorized_keys file presents that
could allow login
file_binary_entropy_high_in_dev_dir → Looks for high entropy packed or encrypted
executable files in system /dev directories
kernel_module_hidden → Kernel modules that appear to be trying to hide themselves
user_password_auditor_password_is_username → Looks for users with a password
that is the same as their
username
user_default_user_password_present → Looks for default Linux system users that
have a password hash present that could
allow login
policy_user_password_auditor_top_worst_small_list → Looks for users with a
password that is one of the
top worst passwords
(~100 word list)
process_persistence_cron_malicious → Looks for cron tasks that are suspicious or
malicious
kernel_module_file_missing → Kernel modules that are loaded but don't have .ko files
in /lib/modules/
dirs_hidden_dev_shm → Looks for hidden directories in /dev/shm
[Link]
process_shell_running_empty_file_descriptors_command_mode → Looks for
processes
running with
empty file
descriptors
process_environ_proc_home_dir → Searches for suspicious home directory location
in process environment
systemd_exec_args_base64 → Looks for systemd units that contain base64 encoded
data to obfuscate entries
systemd_exec_args_obfuscation → Looks for systemd units that are using
commands that obfuscate data
systemd_exec_args_malicious → Looks for systemd units that have indications of
suspicious or malicious use
systemd_exec_args_shell_execution → Looks for systemd units that executes
another shell via the command (-c) mode
process_shell_running_kthread_spawned_command_mode → Looks for shell
processes in
command (-c) mode
started by the kthread
process
policy_user_ssh_private_key_in_user_home_dir → Searches for SSH private keys in
any user's SSH directory
policy_cpu_load15_high → Finds overloaded systems or systems with suspiciously
high CPU activity
[Link]
DFIR/Triage Tools:
UAC → Live Response collection script for Incident Response
LinuxCatScale → Incident Response collection and processing scripts with automated
reporting scripts
Fennec → Artifact collection tool for *nix systems
varc → Volatile Artifact Collector collects a snapshot of volatile data from a system
chkrootkit → Checks for signs of a rootkit
rkhunter → Rkhunter Malware Scanner for linux
lynis → Security auditing tool for Linux, macOS, and UNIX-based systems
Unhide → Forensic tool to find hidden processes and TCP/UDP ports by rootkits
GRR Rapid Response → Incident response framework focused on remote live
forensics
sandfly-file-decloak → Decloak Linux stealth rootkits hiding data with this simple
memory mapped IO investigation tool
sandfly-process-decloak → Utility to quickly scan for Linux Process IDs (PIDs) that
are hidden by common and not-so-common loadable
kernel module stealth rootkits and decloak them so they
are visible
sandfly-entropyscan → Entropy scanner for Linux to detect packed or encrypted
binaries related to malware
[Link]
Sandfly Security → The greatest agentless Linux intrusion detection and incident
response platform. Find Linux threats without endpoint agents
instantly → [Link]
LINKS:
● [Link]
● [Link]
● [Link]
● [Link]
● [Link]
● [Link]
● [Link]
● [Link]
● [Link]
● [Link]
● [Link]
● [Link]
● [Link]
[Link]