Pular para o conteúdo

Plaso (log2timeline)

Plaso (log2timeline) is a Python-based, cross-platform forensic timeline tool that creates super timelines by parsing and correlating logs, artifacts, and metadata from various digital sources. It processes thousands of log files, browser histories, system artifacts, and application data to build comprehensive timelines for forensic investigations and incident response.

sudo apt-get install plaso-tools
sudo apt-get install python3-plaso
sudo dnf install plaso
brew install plaso

Download the installer from the official Plaso GitHub repository or use Python pip.

git clone https://github.com/log2timeline/plaso.git
cd plaso
pip3 install -r requirements.txt
python3 setup.py install

A super timeline is a single, comprehensive timeline that combines events from multiple sources on a system, ordered chronologically. This provides investigators with a unified view of system activity.

Plaso includes parsers for:

  • Windows Event Logs (.evtx)
  • Syslog files
  • Apache/Nginx web server logs
  • Browser history and cookies
  • File system metadata
  • Application logs
  • Memory artifacts
  • Registry hives
log2timeline.py output_timeline.plaso /path/to/source
log2timeline.py -o case_timeline.plaso /mnt/image/mount/point
log2timeline.py -p [parser_name] output.plaso /path/to/file
log2timeline.py --parsers
log2timeline.py --parsers=list
log2timeline.py -o sqlite output.db /source/path
log2timeline.py -o elastic-search /source/path
CommandDescription
log2timeline.py output.plaso /sourceCreate timeline from source directory
log2timeline.py -r output.plaso /sourceRecursive parsing of all subdirectories
log2timeline.py -o json output.json /sourceOutput in JSON format
log2timeline.py -o csv output.csv /sourceOutput in CSV format for spreadsheet analysis
log2timeline.py -z UTC output.plaso /sourceSpecify timezone for time conversion
log2timeline.py -p win_registry output.plaso /windows/registryParse only Windows registry
log2timeline.py --hasher_file=/path output.plaso /sourceInclude file hash analysis
log2timeline.py -p chrome output.plaso /source
log2timeline.py -p firefox output.plaso /source
log2timeline.py -p syslog output.plaso /var/log
log2timeline.py --filter '\.zip$' output.plaso /source
log2timeline.py -w 4 output.plaso /source
log2timeline.py -v output.plaso /source
log2timeline.py --debug output.plaso /source

Psort is the timeline analysis tool that reads Plaso output and generates human-readable reports.

psort.py output.plaso
psort.py -o dynamic output.plaso
psort.py -f "date >= '2024-01-01 00:00:00' AND date <= '2024-12-31 23:59:59'" output.plaso
psort.py -f "source_short == 'LOG'" output.plaso
CommandOutput Format
psort.py output.plasoDefault text format
psort.py -o json output.json output.plasoJSON output
psort.py -o csv output.csv output.plasoCSV format
psort.py -o elastic-search output.plasoElasticsearch bulk import
psort.py -o html report.html output.plasoHTML report
psort.py -o sqlite output.db output.plasoSQLite database
# Filter by source
psort.py -f "source_short == 'EVT'" output.plaso

# Filter by message content
psort.py -f "message CONTAINS 'login'" output.plaso

# Filter by username
psort.py -f "username == 'Administrator'" output.plaso

# Date range filtering
psort.py -f "date >= '2024-01-15 08:00:00'" output.plaso

# Multiple conditions
psort.py -f "date >= '2024-01-01' AND source_short == 'LOG'" output.plaso
psort.py -s date output.plaso
psort.py -s source output.plaso
psort.py -s date,source output.plaso
sudo mount -o ro /dev/sdX /mnt/evidence
log2timeline.py -r case.plaso /mnt/evidence
log2timeline.py -r -w 8 case.plaso /mnt/evidence
psort.py -f "date >= '2024-01-20 00:00:00'" case.plaso
psort.py -o html investigation_report.html case.plaso
psort.py -o csv timeline.csv case.plaso
log2timeline.py -r mounted_image.plaso /mnt/ewf_mount
ewfmount /path/to/image.E01 /mnt/ewf
log2timeline.py -r case.plaso /mnt/ewf/ewf1
log2timeline.py -p win_registry case.plaso /mnt/evidence/Windows/System32/config
log2timeline.py -p chrome case.plaso /mnt/evidence/Users/username/AppData/Local/Google/Chrome
log2timeline.py -p firefox case.plaso /mnt/evidence/Users/username/AppData/Roaming/Mozilla/Firefox
log2timeline.py -p safari case.plaso /mnt/evidence/Users/username/Library/Safari
log2timeline.py -p 'chrome|firefox|safari' case.plaso /source/path
log2timeline.py -w 8 output.plaso /source
log2timeline.py -w 16 output.plaso /large/dataset
log2timeline.py -v output.plaso /source 2>&1 | tee parsing.log
log2timeline.py -r --no-dedupe output.plaso /source
# PLASO to CSV
psort.py -o csv timeline.csv case.plaso

# PLASO to JSON
psort.py -o json timeline.json case.plaso

# PLASO to SQLite for queries
psort.py -o sqlite timeline.db case.plaso
sqlite3 timeline.db "SELECT datetime, source, message FROM events WHERE source LIKE '%LOG%' ORDER BY datetime;"
psort.py case.plaso | grep -i "logon\|failed\|error"
log2timeline.py -r incident.plaso /evidence
psort.py -f "message CONTAINS 'error' OR message CONTAINS 'failed'" incident.plaso
psort.py -f "username == 'suspect_user'" case.plaso
log2timeline.py -p fswalk case.plaso /evidence
psort.py -f "source_short == 'FILE'" case.plaso
psort.py -f "source_short == 'EVT' AND message CONTAINS 'network'" case.plaso
log2timeline.py --info=parsers | grep -i keyword
log2timeline.py --debug output.plaso /source
sudo log2timeline.py -r case.plaso /protected/source
psort.py case.plaso | head -20
file case.plaso
  • Always work from copies: Never analyze original evidence directly
  • Document your process: Maintain detailed notes on filters and queries used
  • Timezone awareness: Use correct timezone settings for accurate timeline analysis
  • Multi-source correlation: Combine logs from multiple sources for better accuracy
  • Regular backups: Save critical timeline analysis in multiple formats
  • Version control: Track Plaso version used for reproducibility
  • Validate results: Cross-reference findings with other forensic tools
  • Volatility: Memory forensics and analysis
  • FTK Imager: Forensic imaging and analysis
  • EnCase: Commercial forensic platform
  • Autopsy: Digital forensics GUI frontend
  • Timeline Explorer: Timeline visualization tool