:---------------------------: L'Hacking e le News . by Lord Shinva . :---------------------------: Conoscere le News ~~~~~~~~~~~~~~~~~ Le news sono costituite da gruppi di discussione (come alt.hackers) che racchiudono un certo numero di messaggi pubblici. Tali messaggi (detti articoli, che io chiamero` "post") hanno degli headers, proprio come le normali email. Uno degli headers presenti sia nelle email che nelle post e` Message-ID. Provate ora a visualizzare tali headers: per chi, come me, usa Outlook Mail and News della Microsoft, la procedura e`: cliccare sul titolo del messaggio da analizzare, premere il tasto destro del mouse, scegliere Proprieta` e poi Dettagli. Con Netscape, invece, scegliete il menu "Options", quindi "Show Headers" e infine "All". Come vedrete, tra gli headers figurera` una linea del tipo: Message-ID: <[email protected]> Lo scopo di Message-ID e` identificare ciascun messaggio univocamente, in modo da facilitarne la gestione.... e da rendere piu` semplice la loro distruzione :))) Ma procediamo per gradi. Per gestire gli articoli e i gruppi che costituiscono le news, esiste un particolare tipo di messaggi (normali email, niente di trascendentale), detti messaggi "control" (detti, appunto, messaggi di controllo). Come sapete, quando scrivete un msg a un newsgroup potete in seguito eliminarlo, utilizzando una funzione presente in molti nuovi NewsReader (in Outlook Mail and News la funzione e` "Annulla", visualizzabile tramite tasto destro sul titolo del messaggio da eliminare). Ovviamente pero` questo vale solo per i *vostri* messaggi. Non potete (o meglio, non POTRESTE) cancellare quelli degli altri. Vediamo come cancellarli ;) Un messaggio di controllo, dicevamo, non e` altro che una normale post, ma con qualche cosa in piu`. Quello che ci serve sapere per cancellare un messaggio e`: 1 - il mittente del messaggio (header From) 2 - l'ID (header Message-ID) ...e nient'altro. Ora non dobbiamo fare altro che inviare una post di controllo da parte del mittente originale. Poiche` avremo bisogno di falsificare il "From", e` bene cambiare nel NewsReader i vostri dati con quelli che avete appreso leggendo l'header "From". Ora che abbiamo falsificato il mittente del messaggio, dobbiamo inserire dei comandi particolari, che renderanno la nostra email un messaggio di controllo. Senza di essi, infatti, resterebbe una semplice email e verrebbe postata al Newsgroup e letta da tutti... :( Tutto quello che dobbiamo fare e` digitare i comandi al posto del Soggetto. Il comando per cancellare un messaggio e` il seguente: cmsg cancelquindi, per eliminare il messaggio di Lamer che ha l'indirizzo [email protected] e Message-ID pari a <[email protected]> dal newsgroup alt.lamers dovremo inviare una normale post a alt.lamers con i seguenti dati: From: [email protected] (Lamer) Subject: cmsg cancel <[email protected]> Per assicurarci che il nostro messaggio di controllo funzioni, dovremo aggiungere un paio di header aggiuntivi: Control e Approved. Control e` in realta` l'header designato ai comandi di controllo, per cui possiamo utilizzare solo Subject, solo Control, oppure entrambi. L'unica differenza e` che con Control non dobbiamo usare "cmsg". Approved invece serve a dire al server di "fidarsi" di quello che gli stiamo inviando, in quanto esso e` stato letto e approvato... ;) Vediamo un esempio completo: From: [email protected] (Lamer) Subject: cmsg cancel <[email protected]> Control: cancel <[email protected]> Approved: [email protected] Ovviamente se in Approved metteremo l'indirizzo di email dell'Amministratore del server delle News che utilizzeremo per inviare la post al newsgroup, avremo buone probabilita' che i comandi del messaggio di controllo verrebbero eseguiti. NOTA: tenete presente che se avete gia` scaricato i messaggi e utilizzate il comando "cancel" per eliminarne uno, esso sara` eliminato da tutti gli host connessi al news server al quale avrete inviato il messaggio di controllo; ma voi non noterete il cambiamento sul vostro PC, in quanto il messaggio e` stato scaricato PRIMA della cancellazione. Dovrete eliminare la "cartella" del newsgroup dal vostro NewsReader e poi ricaricare tutti i messaggi, per vedere se quello cancellato e` stato eliminato o meno. Esiste un newsgroup chiamato control sul quale vengono visualizzati TUTTI i messaggi di controllo inviati giorno per giorno. Anche i vostri.... Altri comandi utili sono newgroup (non newsgroup) e rmgroup, che non richiedono la conoscenza di elementi come From e ID. Il primo (newgroup) serve a creare un nuovo newsgroup tutto nostro. Per usarlo basta dare una linea di comando del tipo: newgroup alt.gruppomio (seguito dalla parola moderated se si vuole che solo chi aggiunge l'header Approved alle proprie post riesca a inviare messaggi). Come messaggio andra` scritto quanto segue: For your newsgroups file: alt.gruppomio descrizione di alt.gruppomio Per rimuovere un newsgroup (per esempio alt.pedophilia) bisogna invece utilizzare: rmgroup alt.nomegruppo (come sempre, utilizzando Soggetto, Control e Approved). Questi comandi, pero`, non sono gestiti quasi mai in maniera automatica, ma passano per... le mani dell'Amministratore, che puo` decidere di non permetterne l'esecuzione. NOTA: nel caso di newgroup e rmgroup puo` essere conveniente utilizzare come From e Approved l'indirizzo email dell'Amministratore :) (il cui formato, generalmente, e` news@nome_del_news_server.com) Attenti pero` a non finire su net-abuse.usenet :-/ Ho spiegato il funzionamento dei comandi "newgroup" e "rmgroup" solo per completezza, ma non usateli, a meno che non abbiate la certezza che un news server li accetti automaticamente. Diversamente, dareste solo MOLTO fastidio al news-admin (amministratore delle news) e non ottereste niente. Accedere tramite Telnet ~~~~~~~~~~~~~~~~~~~~~~~ Ovviamente anche le news - come FTP, IRC, il Web, ecc. - hanno un set di comandi tramite i quali vengono effettati l'invio e la ricezione dei post, e molto altro ancora. Iniziamo subito. Ci collegheremo tramite Telnet alla porta 119 del news server, e aspetteremo il messaggio di "benvenuto" ;) che sara` di questo tipo: 200 Interbusiness news server ready, posting allowed NOTA: alla fine di tale messaggio ci sara` una frase. Se questa e` "posting allowed" oppure "posting ok", significa che possiamo usare quel server per inviare e leggere i messaggi; in caso contrario (not allowed) non potremo inviare ne` i messaggi normali, ne` tantomeno quelli di controllo, ma potremo comunque leggerli. Dunque, per selezionare il newsgroup che ci interessa, utilizzeremo il comando "GROUP". Supponiamo di voler scegliere alt.hackers... GROUP alt.hackers il server rispondera` con una linea contenente diverse informazioni (che vedremo tra poco). Ora potremmo voler leggere un messaggio di cui conosciamo il Message-ID (ad esempio, se abbiamo inviato un messaggio di controllo per cancellarlo e vogliamo vedere se esiste ancora); faremo cosi`: ARTICLE dove "numero del messaggio" e` il Message-ID. NOTA: per controllare l'esistenza di un messaggio potremmo anche provare a usare il comando: IHAVE (se il server non ha quel messaggio, rispondera` "news to me!"). IMPORTANTE! Il numero del Message-ID va sempre racchiuso tra "< >". Digitando semplicemente NEXT (seguito da invio a capo) selezioneremo il messaggio successivo a quello attualmente selezionato. Per leggerne gli headers digiteremo HEAD mentre per il "corpo" del messaggio vero e proprio useremo il comando BODY. Naturalmente e` possibile selezionare un messaggio (articolo) anche senza conoscerne il Message-ID. Digitando (ad esempio): GROUP alt.music.progressive selezioneremo tale newsgroup e avremo una risposta di questo tipo: 211 100 110 123 msgs Your new group is alt.music.progressive eccone... l'interpretazione: 211 e` il messaggio di conferma (numerico) del server 100 e` il numero di articoli presenti su quel newsgroup 110 e` il numero del primo articolo 123 e` il numero dell'ultimo articolo Supponiamo ora di voler leggere i messaggi; faremo cosi`: ARTICLE 110 (il server rispondera` con un messaggio a ogni comando che gli daremo) HEAD 110 (per avere gli headers del messaggio, se ci interessano) BODY 110 (per leggere il messaggio vero e proprio) ora possiamo usare NEXT invece di scrivere ARTICLE 111, 112, 113, ecc. (oppure possiamo continuare cosi`). Per controllare tutti gli ultimi messaggi arrivati, faremo cosi`: NEWNEWS alt.hackers 971201 0512 in questo esempio, il server ci rispondera` con i Message-ID di tutti i nuovi messaggi (news) inviati dal giorno 01-12-97 (971201 al contrario) alle ore 05:12 (oppure 0100 per dire dalle 01:00 del mattino, ecc). NOTA: e` possibile usare un asterisco per selezionare tutti i newsgroup, oppure una parte di essi. Per esempio, alt.hack* corrisponde a: alt.hack alt.hacker alt.hackers alt.hackers.cough.cough.cough alt.hackers.malicious ... Il comando NEWGROUPS e` l'equivalente di NEWNEWS, ma orientato ai newsgroups. Per avere una lista di tutti i nuovi newsgroup creati da una certa data, bastera` scrivere: NEWGROUPS 971120 0100 (elenca tutti i nuovi newsgroups creati dal 20-11-97 alle 01:00 in poi). Spieghero`, infine, come inviare un messaggio a un newsgroup. L'utilita` di postare tramite Telnet e`, principalmente, quella di poter liberamente inserire tutti gli headers che vogliamo nel nostro articolo. Ad esempio, per postare un articolo su alt.hackers sappiate che non basta inviarlo da un normale newsreader (tipo Outlook, Forte Agent e Netscape News) ma, dal momento che e` un newsgroup MODERATO, dovrete inserire un header addizionale: Approved: yes (invece di "yes" potete scrivere qualsiasi altra cosa). Senza questo header, i messaggi inviati saranno respinti dai server in USA. Il comando da usare e` "POST", seguito dal nostro messaggio, completo di tutti gli headers e del messaggio vero e proprio. Ecco un esempio completo: (S: e` il server, N: siamo noi - ovviamente N: e S: non vanni messi ;) [ INIZIO ESEMPIO --> ] N: POST S: 340 Continue posting, ecc..... N: From: "nessuno" N: Newsgroups: alt.irc.corruption N: Subject: prova N: Message-ID: N: Date: 12 Dec 97 12:05:22 GMT N: Approved: [email protected] (opzionale) N: X-Newsreader: telnet :) (opzionale) N: Lines: 3 (numero di righe) N: (linea vuota) N: qui scriviamo... N: il nostro... N: messaggio! N: (linea vuota) N: (linea vuota) N: . (punto) N: (linea vuota) S: 240 Article posted successfully N: QUIT S: 205 Interbusiness closing connection. Goodbye. [ <-- FINE ESEMPIO ] Notate la linea vuota seguita dal punto e da un'altra linea vuota, alla fine del messaggio: serve a indicare al server che il nostro messaggio e` terminato (ricordate? si fa lo stesso anche con le fakemail). NOTA IMPORTANTE: se nel vostro messaggio sono presenti linee che iniziano con un punto, dovrete aggiungerne un altro all'inizio della riga, per evitare che il news server possa confondere quel punto con il punto che si usa per indicare la fine del messaggio! Postilla ~~~~~~~~ Bene... questa era la teoria, ora datevi alla pratica! Sarebbe pero` buona norma NON iniziare cancellando messaggi degli altri (e non farlo neanche dopo, a meno che non sia necessario... tipo spamming, insulti, ecc). Iniziate a postare, ad esempio, un normale msg di prova su alt.test.test (e` un newsgroup di prova sul quale potete scrivere quello che vi pare), e poi inviate un messaggio di controllo (di tipo "cancel") per eliminarlo in base al suo "Message-ID". Se viene cancellato, ci siete riusciti. NOTA: tenete presente che se avete gia` scaricato il msg sul vostro PC non vi accorgerete dell'avvenuta cancellazione. Per controllare, utilizzate Telnet come descritto sopra. Per ulteriori informazioni vi consiglio di leggervi la RFC 977 e, se volete approfondire, anche la RFC 850 (sono in inglese). Potete prelevare queste documentazioni dai seguenti (o altri) siti: ftp://ftp.digex.net/.1/rfc/ ftp://ftp.ridder.no/.02/rfc ftp://ftp.hkstar.com/.1/netinfo/rfc/ ftp://ftp.almac.co.uk/pub/internet/RFC/ ftp://ftp.cdrom.com/.22/obi/Networking/rfc/ ftp://ftp.umr.edu/.pub/rfc/ ftp://ftp.lysator.liu.se/.pub2/doc/rfc/ (i nomi dei file sono rfc850.txt e rfc977.txt). Ovviamente ci sono molti altri siti... basta cercare con FTPSearch o Filez la parola RFC977.TXT (ad esempio) e si avra` una lista aggiornata di siti. In particolare, la RFC 850 descrive lo standard per lo scambio dei messaggi su Usenet, mentre la RFC 977 descrive il protocollo NNTP, i comandi "interni" e tutti i messaggi di errore generati dai server. Buon lavoro. "...rain down... come on rain down on me.... from a great height..." -- Radiohead +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- Copyright (C) 1997 by Lord Shinva +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +-