Download: curl -L …/linpeas.sh -o linpeas.sh. Run: ./linpeas.sh. Fast: -s. Deep: -a. Secrets: -r. Target: -o <section>. Save colour: | tee out. Save plain: -N > out. Help: -h. Run only on systems you are authorised to test.
Flag names and defaults can change between releases. Everything here is verified against release 20260908-dffb9496; confirm with ./linpeas.sh -h on your copy.
Download & run#
curl -L https://github.com/peass-ng/PEASS-ng/releases/latest/download/linpeas.sh -o linpeas.sh
chmod +x linpeas.sh
./linpeas.sh | tee linpeas.out
less -r linpeas.outMost-used flags#
| Flag | Does |
|---|---|
-h | Help for your build |
-s | Stealth & fast (skips slow checks) |
-a | All checks: 1 min process monitoring, su bruteforce, extra checks (noisy) |
-e | Extra enumeration |
-r | Secret/API-key regexes (slow — minutes to hours) |
-o <list> | Only these sections |
-T <list> | Only checks matching MITRE ATT&CK technique(s) |
-P <pwd> | Password for sudo -l / su checks |
-N | No colours (clean report file) |
-q | No banner |
-D | Debug / timing |
-z <N> | Threads for background checks |
-V | Online vulnerability lookup (outbound request) |
-f <folder> | Password/permission recon inside a folder (+ regexes) |
Sections for -o#
system_information, container, cloud, procs_crons_timers_srvcs_sockets,
network_information, users_information, software_information,
interesting_perms_files, interesting_files, api_keys_regexThe privesc-critical trio for a first pass: users_information,interesting_perms_files,interesting_files — sudo, SUID, writable files and credentials in one quick run.
Recipes#
# Quiet first pass (fragile or monitored host)
./linpeas.sh -s
# Focus on privesc-critical areas
./linpeas.sh -o users_information,interesting_perms_files
# Deep lab scan with secrets
./linpeas.sh -a -r | tee linpeas.out
# Clean report file, no colours
./linpeas.sh -N > linpeas.txt
# Password-assisted (authorised, password known)
./linpeas.sh -P 'KnownPassword'
# Only MITRE T1057/T1082-relevant checks
./linpeas.sh -T T1057,T1082The first five minutes: triage workflow#
When the output lands, work in this order — it mirrors how experienced testers read a LinPEAS report:
- Search for red/yellow lines first — high-confidence vectors.
- Check sudo (
sudo -lsection): NOPASSWD or abusable binaries win fastest. - Check SUID/SGID: cross-reference highlighted binaries with GTFOBins.
- Check writable cron scripts / timers / service files: scheduled root execution.
- Check credentials: history, configs, keys — then lateral options.
- Only then consider kernel CVEs — verify patch level, last resort.
Full method: how to read LinPEAS output.
Colour legend (memorise this)#
Red/yellow = 95%+ confidence privesc vector — investigate immediately. Red = suspicious, verify. Green = known-good by name (content may still be misconfigured — verify). Blue / cyan = informational. Full legend: LinPEAS colours.
Saving and sharing output#
./linpeas.sh | tee linpeas.out # keep colours; read back with less -r
./linpeas.sh -N > linpeas.txt # plain text for reports
shred -u linpeas.out # securely delete when done (contains secrets)LinPEAS output routinely contains credentials. Redact before sharing, store it only where the engagement allows, and delete it from the target afterward.
Common mistakes#
- Running
-a -ron a production host — noisy, slow, writes temp files. Use-sfor a first pass. - Trusting a kernel CVE flag without checking the distro changelog (backported patches).
- Forgetting that
curl | shexecutes unreviewed code — download and review first outside labs. - Saving output with secrets to a shared location.
- Assuming green means safe — it means “known-good by name”; verify content.
Frequently asked questions#
What is the single most useful LinPEAS command?
For a first authorised pass: ./linpeas.sh -s — fast and quiet. For a deep lab audit: ./linpeas.sh -a -r | tee linpeas.out. Most daily work lives between those two.
How do I run LinPEAS on just one area?
Use -o with a section name, e.g. ./linpeas.sh -o users_information,interesting_perms_files for the privesc-critical areas. See the sections list above.
Why is my LinPEAS run so slow?
You are probably running -a (all checks incl. 1-minute process monitoring) or -r (filesystem-wide regexes). Use -s for speed, or scope with -o.
How do I keep the colours when saving output?
Pipe through tee (./linpeas.sh | tee linpeas.out) and read back with less -r. Redirecting with > alone keeps colour codes too, but -N gives clean plain text for reports.
Is there an interactive way to build the command?
Yes — the LinPEAS command builder on this site lets you pick a mode, options and sections and copies the resulting command.
Build the exact command interactively with the command builder. Verified against 20260908-dffb9496.
LinPEAS section map#
Every -o section maps to a part of the output. Learn this map and you can target any audit precisely instead of re-running everything:
| Section | Covers | Privesc value |
|---|---|---|
system_information | Kernel, OS, hostname, protections, exploit registry | Kernel CVE leads (verify patch level) |
container | Docker/LXC detection, breakout conditions | Container escape paths |
cloud | Instance metadata and cloud credentials | Highest blast radius — scope carefully |
procs_crons_timers_srvcs_sockets | Processes, cron, timers, services, sockets | Scheduled root execution |
network_information | Interfaces, ports, firewall, connectivity probes | Local-only services to pivot into |
users_information | Users, groups, sudo, passwords, SSH | Sudo rules, reusable creds |
software_information | Packages, versions, sudo version | Version-based CVEs |
interesting_perms_files | SUID/SGID, writable files, ACLs | The classic privesc hunting ground |
interesting_files | Configs, histories, keys, backups | Credentials and misconfigurations |
api_keys_regex | Filesystem-wide secret regexes (-r) | API keys — slow but thorough |
When not to run LinPEAS#
- On a production host without explicit written approval —
-ais noisy and writes temp files. - With
-Vwhen outbound traffic is out of scope — it sends an inventory to an external service. - With
-rwhen you are short on time — regexes can run for hours on large filesystems. - Piped straight from the internet (
curl | sh) on anything but a lab — download and review the script first. - When a lighter question would do — a single
sudo -lanswers “can I sudo?” faster than a full scan.
One-line triage commands#
Saved the output? These one-liners pull the signal out of a long report:
grep -iE 'red|99%' linpeas.out | head -40 # highest-confidence lines
grep -iE 'sudo|NOPASSWD' linpeas.out # sudo findings
grep -iE 'suid|sgid' linpeas.out # SUID/SGID findings
grep -iE 'writable' linpeas.out # writable files/scripts
grep -iE 'password|passwd|key|token' linpeas.out # credential hits (handle carefully)Print tips#
The cheat sheet is designed to be useful on a second monitor, but if you print it: use landscape, and keep the flags reference open alongside — flags change between releases and paper does not update itself. Re-print after each PEASS-ng release you standardise on. A stale cheat sheet is worse than none when flags change between releases.
Sources & references
- linPEAS README — commands and parameters
- PEASS-ng releases — help text verified against 20260908-dffb9496