Pular para o conteúdo principal

Atacando o servidor VPN


Os primeiros passos envolvem encontrar os serviços de escuta. Como é uma imagem de VPN, tenho realizado uma única varredura na porta UDP 500 a partir do qual o resultado pode ser visto na imagem seguinte.
nmap_udp_500
Para manter esse profundo Eu também executada uma porta TCP varredura completa, embora, como esperado, apenas a porta aberta é 81. Isso é usado para hospedar uma página de ajuda e está fora do escopo para o teste.
Usando ike-scan é possível determinar se o host está executando uma VPN baseada IKE no modo agressivo, a partir do qual podemos basicamente realizar um ataque offline no hash para devolver o PSK não criptografado. Mais informações sobre este ataque pode ser encontrada aqui .
ike-scan
É possível, então, usar um programa como o PSK-crack para realizar dicionário ou força bruta ataques ao hash. Na imagem seguinte é evidente ao ver que o valor PSK texto claro é 123456.
PSK-wordlist
Se você estiver usando os arquivos de configuração do cliente fornecido, você vai precisar para entrar no PSK no arquivo ipsec.secrets (a seguir).
ipsec.secrets
Antes de tentar conectar-se ao host que você vai precisar para realizar uma reinicialização do serviço ou seja /etc/init.d/ipsec restart .
É possível, então, iniciar a conexão VPN usando o comando, como mostrado na imagem seguinte.
ipsec_sa_established
Se a ligação tiver sido bem sucedida, você verá 'IPsec SA estabelecida "mensagem como destacado acima. Se as coisas não saem como planejado, podem ajudar:
  • 022 "vpn": Nós não podemos nos identificar com uma ou outra extremidade dessa conexão - Isso significa que o seu endereço de IP não é o mesmo, tal como especificado no arquivo ipsec.conf. Ou mudar seu endereço, ou alterar o valor no arquivo (o padrão para o cliente é definido como 192.168.0.11).
  • 021 nenhuma conexão com o nome "xxxx" -   O nome da conexão não é como especificado no ipsec.conf, ou seja, vpn (o padrão para este desafio).
  • STATE_AGGR_I1: INVALID_HASH_INFORMATION - Este erro indica que as informações de hash em ipsec.secrets está incorreto.Certifique-se de inserir o PSK como obtido anteriormente.
Após as alterações, certifique-se de reiniciar os serviços IPSec.
O próximo passo envolve a criação / iniciar uma conexão PPP para a interface "dentro". Se você tiver baixado os arquivos do cliente você pode usar o script 'start-vpn.sh' para fazer isso. Se você deseja executar isso manualmente, o comando é o seguinte:  echo "c vpn"> / var / xl2tpd / l2tp-control / run  
Para verificar isso tem funcionado como esperado, você pode usar o comando " ip link 'a partir do qual você deve ver um novo adaptador, ppp0 provavelmente nomeado. Se isso não tiver sido criado, garantir que você tenha uma bem-sucedida fase de uma conexão (ver acima) e, em seguida, tente executar o script novamente. Se você tiver problemas, você deve referir-se a ambos os registros do cliente ea página de ajuda em http://192.168.0.10:81.
ip_link
Desde a saída do ifconfig é possível ver que o adaptador tem o novo endereço do 10.99.99.2, com o servidor baseado no 10.99.99.1.
ifconfig
Um comando básico de ping mostra que a conexão entre os dois hosts está funcionando como esperado.
ping_10.99.99.1
A realização de uma varredura de portas no endereço interno identifica que há agora muitos mais serviços ao alvo em novos ataques :-)
nmap_10.99.99.1_scan

Enumeração & Atacando o anfitrião # 1

É possível ver que um servidor SMTP está disponível na porta 25. Usando o telnet para se conectar a este confirma que o Postfix está em execução, o que também permite que os comandos VRFY para ser executado (essencialmente o que nos permite localizar usuários válidos no sistema). A imagem seguinte mostra a diferença entre uma verdadeira resposta / false.
vrfy_test
Ao utilizar o programa 'smtp-user-enum' de pentestmonkey.net podemos usar uma lista de nome de usuário e força bruta este serviço para retornar usuários válidos muito rapidamente.
user_enum_smtp
Desde a saída a seguir é possível ver todos os usuários localizados. Algumas delas são contas padrão, mas um, 'bob', parece ser interessante.
smtp_enum_results
Agora temos um nome de usuário válido que pode, potencialmente, usar isso em um ataque de força bruta. A partir do porto anterior varredura, é possível ver que o serviço SSH está disponível.
Usando hidra podemos ver se é possível encontrar a senha para a conta 'bob' ... É!
ssh_brute
Agora estamos conectado ao servidor, como prumo, nós abrimos um novo vetor de ataque conjunto, escalação de privilégios ...
ssh_bob
Uma visão rápida de / etc / passwd revela outra conta possivelmente interessante que em breve deverá atingir ...
etc_passwd

Atacar o anfitrião # 2

A partir do porto anterior varredura, é possível ver que um servidor web está escutando na porta TCP 80. Navegar para isso revela uma página padrão do Apache.
default_apache
É sempre vale a pena usar uma ferramenta como o Dirbuster para ajudar a descobrir quaisquer diretórios interessantes / páginas.
dirbuster
Navegando para / wordpress revela uma página 'currículo submissão ", com a funcionalidade de upload. Há um problema conhecido com o plugin "WordPress Retomar Submissões & Oportunidades de Emprego v2.5.1" - mais detalhes podem ser encontrados aqui em explorar-db .
É possível criar um simples WebShell php e enviá-lo para esta página, exemplo a seguir:
<? Php
intermediário ($ _ GET [1]);
?>
Após o upload, um link não é dado para o arquivo, mas é possível navegar através conhecida estrutura de diretório para WordPress / wordpress / wp-content / uploads, de onde, felizmente, listagem de diretório está habilitada.
wp-content_uploads
É possível, então, interagir com o WebShell para lançar comandos do sistema operacional.
WebShell
A partir daqui você pode querer usar msfpayload para criar um shell interativo para fazer os próximos estágios mais fácil.

Atacar o anfitrião # 3

Pouco tempo atrás eu criei o desafio Vulnix. Parte deste envolveu o uso de NFS e SSH para obter uma shell sem privilégios para o host remoto. Esta técnica é também aplicável aqui. Mais detalhes podem ser encontrados no ponto de entrada # 3 na Vulnix write-up aqui .

Privilege Escalation local # 1

Neste ponto temos de encontrar arquivos "interessantes" ou vulnerabilidades. Há uma série de comandos / ferramentas / métodos de fazer isso, mas eu vou pular direto ao ponto. Executar o seguinte comando deve trazer alguns resultados interessantes:
find / -type f -perm -2 2> / dev / null> results.txt
... Eo arquivo realmente interessante é ...
wp-backup
De olhar para as permissões, é possível ver que o arquivo é de propriedade de raiz, mas outros têm acesso de leitura / gravação. Além disso, devido à localização ( /etc/cron.daily ), é provavelmente uma tarefa agendada que está sendo executado em uma base regular.
Ignorando o fato de que a senha do usuário root do MySQL são armazenados em claro, poderíamos alterar o conteúdo do arquivo e espero que o trabalho cron é executado como root em um futuro próximo. Este trabalho é realmente executado após uma reinicialização do sistema e, portanto, você vai precisar para hard reset o sistema para os efeitos de ser visto. No exemplo abaixo (eu já copiou um shell para o diretório home do bob) estamos adicionando algumas linhas para o trabalho cron que deve, em essência, nos dão acesso a uma shell de root. É importante notar que sh foi usado em vez de festa como o bit suid foi ignorado no shell bash, e, portanto, não correr com as permissões proprietários, neste caso raiz, privilégios.
cron_sh
Esperemos que, após a reinicialização, você verá os seguintes resultados:
cron_sh_root
Nós temos raiz!

Privilege Escalation local # 2

A partir da varredura nmap é claro, para ver que o NFS (TCP 2049) está escutando. Usando o comando showmount podemos ver se alguma coisa de acesso.
showmount
Qualquer pessoa tem permissão para montar este compartilhamento de qualquer host, então aqui vamos nós ...
NFS-partes-conteúdo
Visualizando o conteúdo desse diretório mostra que o usuário 1000, neste caso bob (assumido devido ao nome do diretório / home), tem acesso.
NFS esmagamento raiz está habilitado, neste caso, de modo root essencialmente tem ninguém permissões. Portanto, em nosso sistema de ataque local, podemos criar um novo usuário e atribuir o uid de 1000, mudar para este usuário e, em seguida, fazer upload de arquivos para o diretório, conforme as imagens a seguir.
create_user_and_directory
Como você pode ver, nós criamos o diretório "upload" e agora vamos atribuir permissões muito frouxas para isso. Essencialmente, isso permitirá que qualquer pessoa fazer upload de arquivos para este diretório. É importante notar também que eu já copiados / bin / bash (versão de 32-bit) para o diretório de upload (ler).
chmod_upload_perms
Como você pode lembrar, a saída do / etc / passwd revelou outro usuário chamado jane com o uid de 1001. Um truque rápido aqui é criar outro usuário em seu sistema de ataque com o uid de 1001 (neste caso, a título de referência, também chamado jane). Podemos, então, su a jane (no seu sistema local), cópia bash (no diretório de upload) para bater-jane e, finalmente, definir as permissões de 4777 para o shell bash. Essencialmente, este conjunto é o bit suid no escudo e permite que qualquer pessoa leia / wite / executar o acesso.Quando executado em VulnVPN este será executado como 'Jane'.
cp_jane_bash
Voltar dentro sessão ssh do bob podemos então executar o shell "bash-jane", como segue:
execute_jane_bash
Agora que temos o euid de jane, o que podemos fazer? Talvez ver se jane está autorizado a sudo?
bash_jane_before_uid
Não é exatamente o resultado que queríamos. Existem algumas maneiras de contornar isso, mas o mais fácil é para compilar e executar esse código simples:
#include <sys / types.h> 
#include <unistd.h> 
#include <stdlib.h> 
#include <stdio.h>
int main (void) { 
setreuid (1001, -1); 
char * args [] = {"/ bin / bash", 0}; 
execve (args [0], args, 0); 
return 0; 
}
É interessante notar que, neste caso, o uid de jane é 1001, portanto, isso se reflete no código.
Agora podemos compilar isso em VulnVPN?
gcc_not_included
Não seria tão fácil seria ele :-)
Você vai ter que compilar este em um host de 32 bits e, em seguida, fazer o upload deste para o diretório 'carregar' via NFS, e depois executar, como segue:
uid_change_jane
Como você pode ver, após a execução do programa uid agora temos a uid de 1001 e pode ser executado com sucesso sudo -l, como abaixo:
jane_sudo
Podemos ver que Jane pode executar o vim como root - vim é muito fácil a fuga de!
Assim, como jane vamos correr sudo vim , e então ...
vim_bash_breakout
Nós temos raiz!

Rápido e fácil 'root' em # 1 & # 2

Olhando para o nmap resulta é possível ver que a porta TCP 10000 está aberta. Isto é comumente associado com webmin. Navegando para o endereço interno revela o seguinte:
webmin

Vamos assumir que já temos bobs credenciais através de métodos de força bruta (descritos anteriormente), podemos registrar em webmin com estes? Sim, nós podemos!
Olhando para a tela inicial, é possível ver que a versão é de 1.590, e Bob tem acesso ao módulo "Gerenciador de Arquivos". Realizando uma rápida pesquisa na web revela várias vulnerabilidades com este, e versões anteriores (você pode precisar fazer referência a diversos recursos como a informação de ambos os seguintes módulos Metasploit estado versão 1.580, mas na verdade também funcionam em 1.590).
webmin_authenticated_as_bob
Em primeiro lugar, usando o módulo auxiliar, que pode preencher os campos relevantes e tentar obter uma cópia do arquivo shadow. A execução desta prova bem sucedido. Podemos continuar a copiar qualquer arquivo que desejamos.
webmin_fileaccess
O segundo dos módulos Metasploit nos permite obter um shell remoto. Mais uma vez, preencha os campos relevantes e selecione uma carga adequada. Neste caso cmd / unix / bind_perl é escolhido, executado e temos raiz!
webmin_cgi
Espero que tenham gostado dos desafios ;-)... Esperemos que não haverá mais para vir em breve.

Comentários

Postagens mais visitadas deste blog

WiFiPhisher - Ataques Automatizados de Phishing Contra Redes Wi-Fi

Um pesquisador de segurança grego, chamado George Chatzisofroniou, desenvolveu uma ferramenta de engenharia social WiFi que é projetado para roubar credenciais de usuários de redes Wi-Fi segura. A ferramenta, batizada WiFiPhisher, foi lançado no site do desenvolvimento de software GitHub no domingo e está disponível gratuitamente para os usuários.   "É um ataque de engenharia social que não usa força bruta, em contraste com outros métodos. É uma maneira fácil de obter senhas WPA", disse George Chatzisofroniou. No entanto, existem várias ferramentas de hacker disponíveis na Internet que pode cortar de uma rede Wi-Fi segura, mas esta ferramenta automatiza múltipla Wi-Fi técnicas que o tornam um pouco diferente dos outros hackers. Ferramenta WiFiPhisher usa ataque "gêmeo do mal " cenário. O mesmo que o gêmeo do mal, a ferramenta cria primeiro um ponto de acesso sem fio falso (AP) mascarar-se como o legítimo Wi-Fi AP. Em seguida, ele dirige uma negação de...

Como encontrar a WPS Routers Habilitados - Kali Linux

Como você poderia encontrar WPS Routers ativado?  Sério é muito fácil de encontrar WPS habilitado roteadores, mas depois que eu postei o meu tutorial sobre como cortar o WPA / WPA2 WiFi Protected muitos povos me enviado mensagens para saber como eles poderiam encontrar WPS habilitado router? por isso é muito simples e limitado a um comando único sim, vamos usar o comando de lavagem para esse fim. O comando que podemos utilizar para encontrar WPS habilitado roteadores está abaixo. wash -i mon0 -C Tenha em mente que o "C" neste alfabeto "C" deve ser a capital Também tenha em mente antes de entrar este comando por favor ligar o interface de moniter ou este comando não funciona mais assim para que você moniter tipo de interface o comando abaixo primeiro e depois tentar digitalizar routers WPS habilitados. airmon-ng start wlan0  Agora isso vai lhe dar todos os roteadores que possuem botão WPS / push ativado em cima delas e você pode tentar cortar-lhes a seu p...

Tsunami - DNS Amplification Attack Tool

ABOUT Tsunami is forked from Namescan .  It is an open source project by Samiux (GPLv3). It is designed for research and testing your firewalls as well as IDS/IPS.  Do NOT think of using this tool to attack.  It is very expensive due to its poor performance.  The effect may be differ due to the bandwidth, number of sessions and the size of feedback from the domain query as well as the power of the tool. All the features of Namescan are included in Tsunami.  That means, you can use Tsunami as a scanner too.  Please note that Namescan features/functions cannot be used with Tsunami functions. KNOW ISSUE The performance of this tool is very very poor. Tsunami only works on Kali Linux 1.0.9a or above.  Other linux  distributions may not working properly. The -p switch, do not set more than 1000 as it will consume a lot of memory. FEATURE Tsunami will spoof the MAC address on every session and it will be changed on the next session....