← Back to Projects

Full DFIR Workflow: Linux Memory Acquisition & Forensic Triage

Kali Linux + LiME + SANS SIFT Workstation

DFIRMemory ForensicsIOC HuntingMalware DiscoveryLog AnalysisEvidence Handling

Overview

This project documents a complete end-to-end Digital Forensics & Incident Response (DFIR) workflow, beginning with live memory acquisition on a Linux system and progressing through forensic triage, malware discovery, log analysis, persistence detection, and structured case packaging.

Objective

Phase 1 — Install LiME

sudo apt update
sudo apt install linux-headers-$(uname -r) build-essential git

cd /tmp
git clone https://github.com/504ensicsLabs/LiME.git
cd LiME/src
make

Phase 2 — Live RAM Acquisition

sudo insmod ./lime-6.16.8+kali-amd64.ko path=/root/memdump.lime format=lime

lsmod | grep lime
ls -lh /root/memdump.lime

sudo rmmod lime
lsmod | grep lime

Phase 3 — Integrity Hashing

sudo -i
cd /root
sha256sum memdump.lime > memdump.lime.sha256
md5sum memdump.lime > memdump.lime.md5
cat memdump.lime.sha256
cat memdump.lime.md5

Phase 4 — Forensic Environment Setup (SANS SIFT)

SIFT Workstation imported into VirtualBox as the primary analysis environment. Memory dump transferred via shared folders to maintain isolation.

Phase 5 — Memory Analysis and Triage

Bulk Extractor

bulk_extractor -o ~/bulk-output /media/your_username/memdump2.lime

Strings + Grep (IOC Hunting)

strings /media/your_username/memdump2.lime | grep -i ssh
strings /media/your_username/memdump2.lime | grep -i passwd
strings /media/your_username/memdump2.lime | grep -i http
strings /media/your_username/memdump2.lime | grep -i .exe

Foremost (File Carving)

mkdir ~/foremost-out
foremost -i /media/your_username/memdump2.lime -o ~/foremost-out

file 94243319.exe
exiftool 94243319.exe
strings -a 94243319.exe | less

YARA (Pattern Detection)

yara -s wide_scan.yara /media/your_username/memdump2.lime
yara -s ~/http_creds.yara ~/foremost-out/exe/

Phase 6 — Linux Log Collection

sudo mkdir -p /root/dfir

sudo journalctl -u systemd-logind | sudo tee /root/dfir/logins.log
sudo journalctl -t sshd | sudo tee /root/dfir/ssh-auth.log
sudo journalctl _COMM=sudo | sudo tee /root/dfir/sudo.log
sudo journalctl | grep -Ei "failed|pam|invalid" | sudo tee /root/dfir/auth-failures.log

Phase 7 — Log Analysis and Intrusion Detection

grep "Failed password" /root/dfir/ssh-auth.log

grep "Failed password" /root/dfir/ssh-auth.log | \
awk '{for(i=1;i<=NF;i++) if($i=="from") print $(i+1)}' | \
sort | uniq -c | sort -nr

grep "Accepted" /root/dfir/ssh-auth.log
grep "COMMAND=" /root/dfir/sudo.log

Phase 8 — Persistence and Malware Discovery

sudo ls -al /var/spool/cron/
sudo crontab -l

sudo systemctl list-units --type=service
sudo systemctl list-unit-files --type=service

ps aux | grep -E "nc|curl|wget|python|perl"
sudo ss -tulpn

sudo cat /etc/rc.local
sudo cat ~/.ssh/authorized_keys
sudo cat /root/.ssh/authorized_keys

Phase 9 — Case Packaging

mkdir ~/DFIR-CASE
cp -r /root/dfir/ ~/DFIR-CASE/
cp /root/memdump.lime ~/DFIR-CASE/

cd ~
zip -r DFIR-CASE.zip DFIR-CASE/