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

Realizar DDos Attack usando Slowloris

Salve esse arquivo como "slowloris.pl". Download do script. http://pastebin.com/2M4ZAHpz Abra o terminal e siga os seguintes comandos:   cd Desktop                    ( o local deve ser substituído pelo local do arquivo, nesse caso se encontra no Desktop ) chmod +x slowloris.pl perl ./slowloris.pl -dns www.target.com -port 80 -timeout 1 -num 1000 -cache 1- Substitua a URL pelo endereço do alvo. 2- Nesse caso será disparado 1000 pacotes a cada 1 segundo.

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