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.
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
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
Utilizando filtros de exclusão
Realizando buscas exatas
Visualizando Conteúdo do Exploit
Lê o conteúdo arquivo/exploit
Copiando o Exploit
Caso ache o exploit que deseja, utilize o comando abaixo para copiar o arquivo para o diretório atual:
Sites
Last updated