Lion Cipher Lab

Triage an unknown binary without running it: capabilities with capa, hidden strings with FLOSS

Why it matters

A threat-intel or incident-response analyst does not get to run every suspicious file they receive -- there are too many of them, running them is dangerous, and a live sample can detect that it is being watched and behave. So the first move on almost any unknown binary is TRIAGE: a fast, safe, static look that reads the file on disk -- without executing a single instruction -- to answer one question, 'is this worth more of my time, and what kind of time?' Triage is what lets one analyst survive a queue of thousands of samples: most files can be dispositioned in minutes from static evidence…

What you'll learn

Steps in this lab

  1. What triage is, and why the first look is always static
  2. Install the cross-compiler so you can build a Windows PE on Linux
  3. Write the benign suspect: a program with recognizable capabilities and a hidden string
  4. Cross-compile the suspect into a Windows .exe (and never run it)
  5. Install capa and FLOSS
  6. Run capa: read the capability table and its ATT&CK mapping
  7. Run capa -vv: which rule matched, at which address, and the rule IS the analysis
  8. strings vs FLOSS: watch the hidden marker appear
  9. Write the triage verdict from static evidence alone
  10. The limits, said plainly: packing, false negatives, and what static cannot prove
  11. The judgment: when static triage is the right move, and how the pros chain it

Open the full interactive lab →