Ataques

Neste capítulo, iremos ver diversos tipos de ataques que podem ser usados em um alvo. Aqui será mostrado a teoria seguido da prática, para assim termos um melhor entendido sobre o funcionamento e os seus objetivos.

Apesar deste ser um material voltado para a área de Cyber Security e estarmos agora na seção de Ataques, irei abordar também um conteúdo de aprendizado para que possamos conhecer novas tecnologias e termos assim, uma boa base para o que nos espera. Na verdade isso já começou nas seções anteriores (Representação de Dados e Sistemas Operacionais), onde não citei nada sobre ataques, mas passei o que é essencial para um bom profissional, que é entender bem o próprio SO que usa. Se você não pulou de página e se manteve interessado até este exato momento, parabéns, está no caminho certo.

Fases de um Ataque

Reconnaissance

Antes de atacar qualquer aplicativo ou serviço, é importante reunir o máximo de informações possível. Quanto mais informações um invasor tiver, mais fácil será identificar quaisquer configurações incorretas e vulnerabilidades. O objetivo da seção de reconhecimento é familiarizar com a abordagem de para enumerar aplicativos da web e vários serviços de rede, como DNS, servidores da web, bancos de dados, sistemas de cache, etc. Usando as informações, o vetor de ataque e os pontos de entrada podem ser identificados e usados na fase de exploração.

Exploitation

O objetivo da fase de exploração é estabelecer o acesso a um sistema ou recurso aproveitando uma vulnerabilidade ou contornando uma restrição de segurança. Nessa fase, incluimos pesquisas sobre exploits com base nas informações adquiridas na fase de reconhecimento e usá-las para comprometer o aplicativo ou serviço. Depois que o invasor compromete uma máquina, é possível atacar outras máquinas na mesma rede que podem não estar expostas à internet.

Post-exploitation

Um sistema comprometido pode conter informações confidenciais, como dados do usuário, chaves de acesso, credenciais etc. Pode então ser possível usar essas informações para comprometer outras máquinas na mesma rede. O invasor também pode transformar a máquina em um computador zumbi e usá-la para realizar ataques a outras máquinas em um ataque planejado em uma data futura. O objetivo dessa fase é procurar informações confidenciais em uma máquina, quebrar arquivos protegidos por senha e realizar o movimento lateral na rede.

Privilege Escalation

Usando o sistemas Linux como exemplo, os serviços podem ser executados como um usuário não root. Por exemplo, por padrão, Apache e Nginx são executados como dados www do usuário. Portanto, mesmo que um aplicativo da web ou o próprio serviço sejam comprometidos, o invasor só obterá acesso como o usuário www-data, que possui privilégios limitados. Para obter controle total de um sistema, é importante escalar os privilégios de um usuário com poucos privilégios para o usuário root (escalonamento vertical).

Nem sempre é possível escalar do usuário atual para o usuário root. Nesses casos, outros usuários da máquina devem ser comprometidos (escalação horizontal) e usados para tentar obter privilégios de root.

No caso do Windows devemos seguir essa metodologia, porém o usuário alvo é o administrator.

Pivoting

Em um ambiente corporativo, a maioria das máquinas está atrás de um firewall, o que torna impossível atacá-las diretamente. No entanto, se houver uma máquina vulnerável exposta à Internet que também esteja conectada à rede interna. Pode ser possível pivotar a máquina comprometida e atacar as máquinas da rede interna.

Maintaining Access

O objetivo de um invasor não é apenas comprometer a máquina-alvo, mas também manter o acesso a ela para que a máquina possa ser usada posteriormente em um ataque planejado. Manter o acesso à máquina não é uma tarefa trivial, pois os vetores de ataque podem disparar alarmes e fazer com que os administradores do sistema bloqueiem a vulnerabilidade.

MITRE ATT&CK

Mitre ATT&CK (Adversarial Tactics, Techniques, and Common Knowledge) é uma estrutura desenvolvida pela Mitre corporation. Consiste em táticas e técnicas de ameaças baseadas em observações feitas a partir de ataques do mundo real. Com a estrutura Mitre ATT&CK, os ataques do mundo real podem ser divididos em várias categorias e comparados com outros ataques.

Exploit Research

Com base nas informações encontradas durante a fase de reconhecimento ou na fase de pós-exploração, pode não existir um exploit público para comprometer a máquina. Nesses casos, o invasor terá que analisar os arquivos ou a saída e escrever seu próprio código de exploração

PTF (PenTester Frameworks)

Essa é uma maneira práticar de termos diversos ferramentas prontas para utilizar. O tempo de instalação pode demorar um certo tempo, mas vale a pena cada segundo de espera.

sudo su
apt update
apt install python
git clone https://github.com/trustedsec/ptf /opt/ptf
cd /opt/ptf
./ptf
use modules/exploitation/install_update_all
use modules/intelligence-gathering/install_update_all
use modules/post-exploitation/install_update_all
use modules/powershell/install_update_all
use modules/vulnerability-analysis/install_update_all
cd /pentest

Searchploit

Já adiantando esse tópico de ataques, vamos ver um pouco sobre os comandos do Searchploit, que é uma ótima ferramenta para pesquisar por exploits. A grande diferença é que, o Searchploit contém todos os exploit's localmente no host atacante, não precisando assim de conectividade com a internet, o que pode ser muito útil em cenários onde temos uma rede interna limitada (sem acesso a internet). O Searchploit é uma cópia dos exploit disponíveis em https://www.exploit-db.com/, que ficam armazenados localmente em /usr/share/exploitdb/.

Instalando

sudo apt install exploitdb

Consultando Exploit-db Localmente

Altere os 3 parâmetros (pode ser menos, mas não pode ser mais de 3) de acordo com a pesquisa que deseja realizar, exemplo: local, windows e iis

searchsploit <param1> <param2> <param3>

Utilizando filtros de exclusão

searchploit <find> --exclude="<exclude1>|<exclude2>"

Realizando buscas exatas

searchploit -e <busca_exata>

Visualizando Conteúdo do Exploit

Lê o conteúdo arquivo/exploit

searchsploit -x <exploit_file>

Copiando o Exploit

Caso ache o exploit que deseja, utilize o comando abaixo para copiar o arquivo para o diretório atual:

searchsploit -m <exploit_file>

Sites

# Guia Red Team
https://redteam.guide/docs/guides/

# Diversos tipos de ataques
https://book.hacktricks.xyz/
https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html
https://xapax.gitbooks.io/security/
https://vulp3cula.gitbook.io/hackers-grimoire/
https://book.hacktricks.xyz/
https://chryzsh.gitbooks.io  
http://index-of.es
http://index-of.co.uk/
https://gtfobins.github.io/
https://www.vulnhub.com/
https://www.hackingarticles.in

# Writeup de OSCP
https://www.hackingarticles.in/ctf-challenges-walkthrough/  

# Buscando por Vulnerabilidade e Exploits
https://www.exploit-db.com
https://packetstormsecurity.com/
https://packetstormsecurity.org/files/cve/<CVE>
https://cve.mitre.org/cgi-bin/cvename.cgi?name=<CVE>
www.vulnview.com/cve-details.php?cvename=<CVE>
https://www.securityfocus.com/bid
https://nvd.nist.gov/vuln/search
https://cpr-zero.checkpoint.com/

# Diversas tools
https://www.kitploit.com/
https://cyberpunk.xyz/ice

# Senhas padrões de diversos protocolos e equipamentos
https://cirt.net/passwords
https://datarecovery.com/rd/default-passwords

# APT (Grupos e Operação)
https://docs.google.com/spreadsheets/d/1H9_xaxQHpWaa4O_Son4Gx0YOIzlcBWMsdvePFX68EKU/edit#gid=361554658

# Tutoriais de Ataques
https://blog.g0tmi1k.com/

# Plataforma de estudos do Burp Suite
https://portswigger.net/web-security

# Manual com exemplos de SO/Programação via curl
curl cht.sh

# Sites de Mapa de Ataque (Real Time)
https://cybermap.kaspersky.com
https://threatmap.fortiguard.com
https://threatbutt.com/map
https://threatmap.checkpoint.com
https://www.fireeye.com/cyber-map/threat-map.html

# Site com IP's queimados
https://www.abuseipdb.com/

# Tutorais na Prática de diversos temas (a maioria não é voltado pro hacking)
https://www.katacoda.com

# Range de IP - AWS
https://ip-ranges.amazonaws.com/ip-ranges.json

# Range de IP - Azure
https://www.microsoft.com/en-us/download/confirmation.aspx?id=41653

Last updated