Capitolo 2

PROGRAMMI UTILI

Ci sono dei programmi che si rendono indispensabili in questo campo:

Il primo è il ToneLoc oppure l'A-Dial o qualsiasi altro war dialer. Poi oltre agli scompattatori sono utili anche i seguenti programmi:

Il SATAN ( o SANTA ) è un programma che gira sotto macchine Unix e sue emulazioni e richiede perl5.0, un browser ( netscape và bene ), 32 MB di ram; questo programma consente l'analisi di reti e sottoreti di un sistema per trovare falle e aperture. E' stato progettato per poter trovare ingressi non controllati nei sistemi ed eventualmente chiuderli. E' stato usato ( oltre a questo nobile scopo ) da un certo signore chiamato Kevin Mitnick il quale ha fregato programmi segreti del governo, una cosa tipo 20.000 numero di carte di credito e chi più ne ha più ne metta.

Un altro programma simile al SATAN è l'ISS che lo precede come data di uscita su internet. L'Internet Security Scanner funziona in modo simile al SATAN ma non sò dire che requisiti voglia per girare.

Se vi siete accorti che qualcosa nel vostro sistema non và potete usare due programmi per vedere se il SATAN o altri netscanners ( esaminatori di reti ) vi hanno fatto una "visitina".

Uno è il GABRIEL, l'altro il COURTNEY che sono due strumenti che riescono a capire se si è stati sottoposti all'attacco del SATAN.

Un altro programma indispensabile è il crack jack ( o crackerjack ) oppure il Brute.

Questi due programmi comparano le password di una lista, che voi avrete compilato prima in un file di testo, con quelle del passwd file cercando di trovarne una uguale per poter così usufruirne al momento del login.

Attenzione perchè possono solo decifrare le password criptate col metodo DES, NON quelle shadowed.

Una cosa: chi ha detto in giro che ha decriptato il passwd file racconta solo un mucchio di balle perchè non è possibile decriptarlo. Al massimo si può, utilizzando i programmi sopra citati comparare una lista di password e trovarne una ( o più se si è MOLTO fortunati ) giusta.

Altri programmi utili possono essere il pgp ( Pretty Good Privacy ) e il pgpcrack.

Il primo serve per criptare dei messaggi in modo che nessuno ( tranne il ricevente con la giusta chiave ) possa capire. Questo programma ha, diciamo, fatto un pò di confusione su internet poichè riusciva a criptare i messaggi con una sicurezza quasi totale e i militari ( soprattutto americani ) non erano un gran che contenti di questa cosa.

Il secondo programma, pgpcrack, serve per l'opposto: crakkare i messaggi criptati col il pgp ( vedi sotto ). Anche qua bisogna comparare una lista di password con il file pgp a meno che non si conosca un pò di assembler il che ti potrebbe permettere ad esempio di scrivere al posto della lista di password la parola Random e ciò ( dopo aver appositamente modificato il programma ) ti permetterebbe di fare una scansione di tutti i caratteri ascii.

Ho sentito dire che il pgpcrak non servirebbe a nulla...io non ho sperimentato di persona i risultati e non posso confermare o smentire tale voce. Lascio a chi si intende di più di chiavi criptate il compito di dare una risposta a tutti quelli che la cercano.

Apro una piccola parentesi su tre parole che forse avrete sentito dire in giro su internet:

Virus, Trojan Horse, Worm che tradotti sarebbero virus, cavallo di troia e verme.

VIRUS

Questo è un programma indipendente che riesce a riprodursi. Può attaccare gli altri programmi e può creare copie di se stesso. Può danneggiare o corrompere i dati su di un computer o calare le performance del vostro computer utilizzando risorse come la memoria oppure lo spazio libero sul disco fisso.

Alcuni virus scanner ( anti-virus ) individuano alcuni virus. NESSUN anti-virus individua tutti i virus conosciuti e non ti può proteggere quindi da essi.

Avevo letto da qualche parte una frase che era abbastanza significatica sia in questo caso che nel caso dell'hacking:

"...ricorda, le forze dell'ordine fanno passi avanti nella sicurezza dei sistemi, scoprono nuovi mezzi per bloccare i nostri attacchi e scoprono nuovi trucchi per scovarci ed arrestarci.

Il loro unico problema è che la tecnologia non si espande solo per loro..." TROJAN HORSE ovvero IL CAVALLO DI TROIA Chi non sa cos'è il cavallo di Troia?

Spero che pochi non sappiano cos'è.

Comunque era quell'inganno che dei gran cattivi ragazzi avevano usato per portare morte all'inteno di una città nella quale sembrava impossibile entrare.

Un TROJAN ( abbrevio il nome ) da computer è molto simile.

E' un programma che, con funzioni non autorizzate, si nasconde dentro un programma autorizzato. Un trojan ha diverse funzioni...ad esempio può mandarti tutte le password che vengono digitate in un giorno al tuo indirizzo di posta elettronica e contemporaneamente può cancellarsi da solo.

Se non è intenzionale ( ovvero non viene immesso nel sistema da un hacker ) questo viene chiamato bug ( cito una storia che mi ha detto un mio amico, RaggedRobin..."per chi non sapesse perchè viene usato il termine bug per indicare un errore in un sistema, deve sapere che quando avevano inventato il primo computer, che era grande come una stanza, tra i suoi circuiti un giorno si infilò una cimice che lo mandò fuori uso e da allora i difetti di un sistema vengono chiamati bug cioè insetto..." ).

Alcuni anti-virus individuano alcuni trojan ma come nel caso dei virus, nessuno può sentirsi al sicuro poichè per ogni nuova scoperta in campo di protezione ne viene fatta una nel campo dell'attacco.

Per maggiori dettagli sui cavalli di troia vi rimando al primo numero di "SystemDown" nel quale ne parla RaggedRobin nel suo articolo.

WORM cioè VERME

I worms ( i vermi ) sono programmi simili ai virus che si riproducono e si copiano di file in file e di sistema in sistema usando le risorse di quest'ultimo e talvolta rallentandolo. La differenza dai virus è che mentre loro usano i file per duplicarsi, i vermi usano i networks.

Nota: sono stati creati, credo e non vorrei dire una balla, da un certo Robert Morris Jr.

ERRORI:

Quando inserisci un account non valido oppure una password non valida ( oppure entrambi ) tu dovresti vedere un messaggio di errore.

In genere è qualcosa di simile a: Login Incorrect.

Quando il computer ti dice questo, significa che hai sbagliato una delle due cose ma ( per ovvie ragioni ) non ti dice qual'è.

Quando tu sbagli il login, la chiamata viene registrata in appositi file ( error log ) che registrano chi è l'utente e da dove sta chiamando per puro scopo di sicurezza.

Altri tipici errori sono: "Cannot change to home directory" oppure "Cannot change directory". Questo significa che la home directory ( la directory dell'account in cui ti sei inserito ) è la root directory per quell'account.

Tanto per capirci è come ritrovarsi sul dos in c:\ e sai che indietro non puoi andare perchè non c'è nulla, l'unica differenza è che sullo unix non ci sono c:\ oppure a:\ quando parti con il sistema ma /homedirectory.

Piccola nota: nello unix è usato questo simbolo per delimitare le directory / e non \.

Molti sistemi dopo che ti hanno dato questo messaggio ti sconnettono automaticamente ma altri ti dicono semplicemente che ti hanno messo nella root directory ( / ).

Un altro errore è "No Shell". Significa che nessuna shell ( programma di interfaccia con il kernel del sistema che esegue tutti i comandi ) è stata impostata per quell'account. Per maggiori dettagli vedi oltre.

Come sopra, alcuni sistemi ti sconnettono dopo questo messaggio, mentre altri ti dicono di usare una shell regolare dicendo "Using the bourne shell" oppure "Using Sh".

ACCOUNT IN GENERALE

Il sistema unix ha due livelli di sicurezza: potere assoluto e user regolare.

Quelli che hanno potere assoluto sono i root, i system operator, gli amministratori di sistema in altre parole.

Lo unix è impostato ( per i livelli di sicurezza ) su numeri: associa un numero con un account; alcuni account possono avere lo stesso numero.

Il numero che definisce i poteri di un root ( amministratore di sistema ) è 0. Qualsiasi altro account abbia un UID ( User ID ) di 0, ha i privilegi di un root.

Tenete in considerazione che il livello normale di uno user è 100.

SHELL

La shell è un programma eseguibile che si "associa" ad un utente quando si inserisce ( normalmente o irregolarmente ) in un sistema.

Questa shell può essere qualsiasi programma eseguibile definito nel passwd file. Ogni login ha una shell unica. Le shell sono interpreti dei nostri comandi e cioè provvedono a fare da tramite tra noi e il sistema vero e proprio. Tanto per capirci le shell sono qualcosa di simile al "command.com" del dos.

Alcuni esempi di shell sono:

-sh: Questa e la "bourne shell" e si potrebbe definire il "command.com" dello unix.

-csh: Questa è la "C" shell e ti permette di inserire comandi simili al "C".

-ksh: Korn Shell. Un altro interprete di comandi.

-tcsh: Permette l'editing dei comandi. E' usata al MIT.

-vsh: Visual Shell.Questa è come il windows per il dos cioè un interprete grafico dei comandi.

-rsh: Restricted Shell o Remote Shell. Spiegato dopo.

Quando ti inserisci in un sistema la shell ti dà un simbolo e da questo puoi capire a che livello ti sei infiltrato ( spero l'abbiate capito prima di questo simbolo! ).

$: In genere il dollaro è il simbolo che si associa all'user regolare senza alcun potere. #:

Questo invece si associa in genere ai root.

CARATTERI SPECIALI:

Control-D: Fine di un file. Quando usi la mail oppure un editori di testi, questo comando capisce quando sei arrivato alla fine. Se sei nella shell ( nel prompt dei comandi normale ) e premi control-d tu ti disinserisci dal sistema.

Control-J: Su alcuni sistemi questo è come premere "invio".

@: Questo qualche volta è "null" che tradotto significa "nullo, qualcosa di nullo".

?: Può rappresentare una lettera ( come * nel dos ). Ad esempio se tu inserisci qualcosa tipo b?b, lo unix capisce che può essere bob, bib, bub ed ogni altra lettera e numero da 0-9 e a-z.

*: Questo rappresenta ogni numero di caratteri ed è simile a quello sopra descritto. Se inseriamo infatti quacosa tipo Hi* può voler dire Hit, Him e qualsiasi cosa parta per Hi. Se invece si inserisce H*l rappresenta qualsiasi cosa parte per H e finisce per l.

[ ]: Specificano un campo. Se diciamo b[o,u,i]b lo unix capisce bob, bub, bib. Se gli dico b[a-d] lo unix pensa a qualsiasi lettera compresa nel campo ( cioè in questo caso da a fino a d ).

In qualsiasi caso lo unix è molto "SENSIBILE" e quindi inserire D al post che d non significherà la stessa cosa.

Occhio quindi ad inserire le password giuste. ;-)

COMANDI DA USARE SOTTO LO UNIX:

ls: Questo elenca il contenuto delle directory ( è uguale a dir nel dos ).

cat: Questo comando stampa a video il contenuto di un file. Può essere usato sui file di testo.

cd: Cambia la directory come nel dos tranne per il fatto che per tornare indietro di una directory non bisogna fare cd.. ma cd .. ( cioè separare di uno spazio il cd dai puntini ). Per il resto è uguale al dos.

cp: Copia un file. Sintassi "cp dalfile alfile"

mv: Questo rinomina un file. Sintassi "mv vecchionome nuovonome".

pwd: Dà il nome della directory in cui ti trovi.

rm: Cancella un file. Sintassi "rm nomefile" oppure "rm -r nomedirectory".

write: Manda una chat ad un altro user. Sintassi "write nomeuser"; per uscire dal programma write digitare control-d.

who [w, who, whodo]: Dicono chi è online cioè chi è collegato alla macchina sulla quale fai who. Se al fianco del nome dello user c'è un + significa che puoi usare il comando write su di lui.

man: Ti stampa a video l'aiuto sui comandi che vuoi. Sintassi "man nomedelcomando"; ad esempio "man who".Questo comando deve essere seguito dal comando che si vuole consultare. Ad esempio man -k ricerca i comandi che hanno a che fare con la keyword.

stty: Setta le caratteristiche del tuo terminale.

sz, rz: Manda e Riceve ( send o receive ) con lo zmodem

rx, sx: Manda e Riceve con lo xmodem.

rb, sb: Manda e Riceve via batch ymodem. Questi 6 programmi possono e non possono esserci su di uno unix.

umodem: Manda e riceve con lo umodem. Esempio di trasmissione:

$ sz nomefile

ready to send...

$ rz nomefile

please send your file....

..etc..

ed: Editor di testi. Sintassi: "ed nomefile". Alcune versioni ti possono dare un prompt tipo "*" altre non lo fanno. Il piu' comune, comunque, e' il "vi".

mesg: Cambia il permesso o no di ricevere chat da altri utenti ( il + spiegato sopra nel comando write ).

cc: Il compilatore C.

chmod: Cambia i diritti di un file. Sintassi:"chmod mode nomefile". Ad esempio chmod a+r newtext: Tutti possono leggere newtext perchè a=all r=read. Questo è comunque spiegato oltre.

chown: Cambia il possessore e il gruppo di un file. Sintassi "chown possessore (owner) nomefile".

chgrp: Cambia il gruppo ( spiegato dopo ) di un file. Sintassi "chgrp group file"

finger: Stampa a video le informazioni basiche su un account.Sintassi: "finger nomeuser".

grep: Cerca un qualcosa dentro un file. Sintassi "grep pattern file".

mail: Questa è una utility molto interessante e utile. Al contrario del nome esistono molte versioni della Mail come ad esempio ELM, MUSH e MSH. Il programma basico della mail è comunque chiamato "mail".

La sintassi e:

"mail nomeuser@indirizzo" oppure

"mail nomeuser" oppure "mail" oppure

"mail addr1!addr2!addr3!user" comando

"mail nomeuser@indirizzo"

è usato per mandare una mail a qulcun'altro su di un altro sistema che solitamente è un altro unix ma anche dos e vax possono ricevere posta dallo unix.

Quando usi "mail nomeuser@indirizzo" il sistema dove sei DEVE avere uno "smart mailer" ( conosciuto come smail ) e deve avere quello che noi chiamiamo sistem maps. Lo smart mailer così può trovare l'indirizzo e mandare così la mail.

Per le macchine locali basta che digiti "mail nomeuser" dove nomeuser è il login a cui vuoi mandare la mail.

Scrivi il tuo messaggio poi premi control-d.

Per leggere le TUE mail digita "mail".

Ad esempio:

$ mail From McKrak .............................

To Inf ........................

Subject: bene ora........................

Arghhh!

 

?

 

Il ? è un prompt che aspetta un comando:

d - delete ( cancella )

f nomeuser - manda allo user

w fname - salva il messaggio con intestazione nel file

q - quit / update mail

x - quit ma non cambia nulla

m nomeuser - mail allo user

r - reply

[ invio ] - leggi il prossimo messaggio

+ - vai avanti di un messaggio

- : torna indietro di un messaggio

h - stampa a video le intestazioni dei messaggi che sono nella tua mailbox.

Ci sono altri comandi e per vederlo basta digitare ?.

Se mandate fakemail ( false mail ) date un'occhiata anche al file /var/adm/maillog

 

ps: Process. Questo comando permette di vedere tutti i processi che occupano la memoria ( come ad esempio i programmi aperti ). Ogni volta che lanci un programma tu assegni un Process ID number ( PID ) per scopi di registrazione e tramite ps puoi andare a vedere cosa e' stato lanciato.

Solitamente la prima voce del comando ps è la shell con il tuo nome.

pf -f dà una lunga lista di processi.

kill: "Uccide" un processo. Questo è usato per terminare un programma nella memoria del computer. Si possono solo uccidere i processi che si possiedono a meno che tu non sia un root o il EUID è lo stesso di quello che vuoi terminare ( spiegato dopo ). Se "uccidi" la tua shell, tu sei espulso fuori dal sistema.

shwomount (/usr/bin di solito ): serve per mostrare quali parti del file-system una macchina esporta sulla rete, e se seguito dall'opzione -e visualizza inoltre chi ha la possibilita' di montare tramite nfs la partizione esportata ( Se compare la scritta "everyone" siamo a posto ).

rusers: consente di sapere quali utenti sono collegati su macchine remote connesse alla tua.