De cabeça e pesquisando rapidamente não conhecia nada, mas algo que gosto de usar bastante para simular honeypots web é o próprio apache, bem mal configurado as vezes, visto que o foco é coletar infos e não ser seguro.
Pequisando e fazendo alguns testes, consegui montar algo usando basicamente essas 2 configurações:
1-) Criar o .htaccess dentro do diretório protegido com o seguinte conteúdo:
ErrorDocument 401 /logging.php
AuthName "My Password Protected Site"
AuthUserFile /tmp/.htpasswd
AuthType Basic
Require valid-user
# Set REMOTE_USER env variable on 401 ErrorDocument
RewriteEngine On
RewriteBase /
RewriteCond %{ENV:REDIRECT_STATUS} ^401$
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},E=REMOTE_USER:%{ENV:REDIRECT_REMOTE_USER}]
No caso, o arquivo que será redirecionado em caso de erro do login estará no root e com nome logging.php.
2-) Criar o logging.php com o seguinte código
if(isset($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'])):
$fp = fopen('/tmp/htaccess.log', 'a+');
$ip = $_SERVER['REMOTE_ADDR'];
$password = $_SERVER['PHP_AUTH_PW'];
$username = $_SERVER['PHP_AUTH_USER'];
$time = date('y-m-d/H:i:s');
$request = $_SERVER['REDIRECT_URL'];
fwrite($fp, $time."\t".$ip."\t".$request."\t".$username."/".$password."\r\n");
fclose($fp);
endif;
ob_start();
header("HTTP/1.1 401 Authorization Required",1);
header("Status: 401 Authorization Required",1);
echo '401 Authorization Required Authorization Required
This server could not verify that you are authorized to
access the document
requested. Either you supplied the wrong
credentials (e.g., bad password), or your
browser doesn\'t understand how to supply
the credentials required.
';
exit();
?>
No exemplo ele salvará as tentativas no /tmp/htaccess.log .
3-) Lembre-se de mudar o AllowOverride das configurações do diretório root de None para All, visto que ele vem como None por motivos de segurança
O resultado no /tmp/htaccess.log (fiz um update no script acima que salva o IP source também) será:Options Indexes FollowSymLinks
AllowOverride all
Require all granted
15-06-22/14:32:20 127.0.0.1 /honey/ admin/123
15-06-22/14:32:20 127.0.0.1 /honey/ admin/lalala
15-06-22/14:32:20 127.0.0.1 /honey/ admin/1234546
15-06-22/14:32:20 127.0.0.1 /honey/ admin/abc
15-06-22/14:32:20 127.0.0.1 /honey/ admin/test
15-06-22/14:32:20 127.0.0.1 /honey/ admin/root
15-06-22/14:32:20 127.0.0.1 /honey/ admin/teste
15-06-22/14:32:20 127.0.0.1 /honey/ admin/admin
Usei de referência essa link - http://serverfault.com/questions/460765/log-invalid-login-attempts-htpasswd
Lembrando que isso é pra função de honeypot, código pode (ou não) conter falhas, simplesmente fiz algo funcional.
Alguém conhece algo melhor ? Sugestões ? Subirei depois isso em algum node pra ver se consigo infos legais e logicamente compartilhar.
Happy Detection!
Sp0oKeR Labs
Nenhum comentário:
Postar um comentário