:: www.spippolatori.com  ::
-/-
in girum imus nocte, ecce, et consumimur igni
-/-
Punto Informatico, l'evoluzione della rete
indice - successiva

ahccc FAQ

--[ HACKING ]--


Q)Cosa significa "hacker"? Chi sono gli hacker? sono cattivi? Chi sono i lamer? perche' si definiscono cosi'? io sono lamer? Gli hacker son comunisti? Come scrivono gli hacker? e i lamer?
A) Domande di questo tipo trovano risposta nel jargon file, un enorme dizionario con spiegati quasi tutti i termini inerenti alla materia, e una simpatica introduzione sul lessico hacker.
Una copia la troverai senza dubbio qui:

    http://www.tuxedo.org/~esr/jargon


Q) Come posso diventare hacker?
A) Per prima cosa devi documentarti, imparare e sperimentare. Hacker in italiano si potrebbe tradurre come "smanettone". Necessaria e' la conoscenza dei vari standard e protocolli di comunicazione. Alcune RFC sono un passo obbligato se ti interessa imparare qualcosa. Le trovi su

    ftp://ftp.ripe.net/rfc
    http://www.faqs.org/rfcs

Vuoi qualche dritta per iniziare? RFC 822 (e-mail), RFC 977 (news), RFC 921 (Internet Protocol)...
Una volta acquisite le basi teoriche dovresti leggerti qualche tutorial o qualche ezine. Per esempio l'encinclopedia dell'hacking di Lord Shinva, seppur abbastanza datata, e' ancora interessante e contiene parecchi spunti. Tieni in mente che qualunque tutorial che abbia piu' di un anno, e' gia' superato. Nel mondo dell'informatica, e quindi anche della telematica e della sicurezza elettronica, i cambiamenti sono repentini, e dopo poco tempo molte delle cose che poco prima erano attuali diventano obsolete.
Per avere un po' di materiale da studiare ecco qualche indicazione:

    http://neworder.box.sk
    http://www.antionline.com
    http://packetstorm.securify.com
    http://securityfocus.com
    http://www.insecure.org
    http://www.spippolatori.com       [italiano]
    http://www.dislessici.org         [italiano]
    http://softpj98.bbk.org           [italiano]

Tre ottime ezine italiane sono bfi, redatta dal softpj, Netrunners, redatta dagli spippolatori, e Newbies, redatta dal gruppo Newbies. Una tra le ezine piu' autorevoli prodotte a livello internazionale e' invece Phrack:

     http://www.phrack.com

   <SPOT>
Se preferisci avere un CD con numerosi mirror e/o documentazione tecnica, consiglio di fare un salto su:

    http://cadaveria.hypermart.net

garantisco che non ne resterai deluso.
   </SPOT>

Altra ottima fonte di informazioni e spunto per discussioni sono le mailing list, consiglio in particolare BUGTRAQ, INCIDENTS, VULN-DEV, SF-NEWS e FOCUS-MS, sottoscrivibili presso

    http://securityfocus.com

e disponibili anche sotto forma di digest [riassunto in una mail sola quotidiana di tutte le altre inviate in quel giorno], in modo da non sovraccaricare la casella di posta.


Q) Cosa si intende per DoS?
A) DoS e' l'abbreviazione di Denial of Service, che si traduce con "negazione del servizio", ovvero uno dei tanti (pochi!) sistemi per far si che un determinato numero di utenti non possa piu' usufruire come di norma di un certo servizio, ovvero di un servizio di posta via web come yhaoo, o di un ftp, di una bbs, di un privilegio particolare in un ufficio di posta celere dell'Oregon ecc...
Un paio di esempi di DoS sono lo smurf e il classico port-fucker, che consiste nell'inviare una miriade di richieste di connessione in un intervallo brevissimo di tempo con il solo scopo di mandare in crash il server vittima.


Q) Come posso entrare in un sistema?
A) In tanti modi, ma tutti partono dal fatto, naturalmente, che devi conoscere il target.
Quindi per prima cosa dovresti raccogliere tutte le informazioni possibli, e poi scegliere l'attacco migliore, nel caso ne trovassi piu' di uno.
Questa che segue puo' essere una piccola lista delle possibilita' che potresti avere:

    1) default account senza password: vecchi sistemi li avevano
    2) anonymous ftp mal configurato
    3) raccogliere informazioni tramite finger, systat, netstat, rusersd,
      per poter poi cercare di indovinare la password se l'utente/root
      non e' stato abbastanza accorto da usarne una alfanumerica ma una
      di senso compiuto, e per avere informazioni sul tipo di rete
    4) sfruttare l'RPC [vedi RPC]
    5) sfruttare il NFS [vedi NFS]
    6) buchi nei vari cgi-bin del server http
    7) SMTP [ad esempio Sendmail], IMAP [famoso il bug relativo al demone
      imapd4beta2, che permette di divenire root tramite un
      semplicissimo attacco esterno].
    8) X-windows [naturalmente se monta sistema *nix, vedi X]
    9) samba
    10) nessun servizio e' immune da bug, quindi si potrebbe ricavare
      qualcosa di utile da un semplice port-scan [vedi port-scanner]

Un ottima raccolta di exploit e sorgenti l'ha messa a disposizione il Valvoline crew, e la puoi trovare su:

    http://www.kyuzz.org/valvoline/hack/1500exploits.zip

Bisogna pero' tenere in mente una cosa: ricorda che ogni attacco lascia un segno, in qualche sperduto file di log, e questo non e' molto simpatico.
Se non sai
    a) guadagnare un buon grado di pseudo anonimato
    b) cancellare le tue tracce
ti consiglio di lasciar perdere, o al limite giocare con qualche server coreano, non certo famosi per la qualita' e preparazione dimostrata dai loro sysadmin :-), ma comunque attento a non generalizzare troppo.


Q) Cos'e` un port-scanner?
A) E' un programma in grado di individuare quali servizi sono attivi su un determinato server. Tali informazioni le acquisiscono semplicemente provando connessioni a tale host sequenzialmente su tutte le porte che vengono specificate all'avvio dello scanner.
In base alle connessioni che avranno successo, stabilira' quali servizi saranno attivi. Quindi per esempio se eseguo uno scan delle porte tra la 1 e la 1024 di un certo server, lo scanner prova 1024 connessioni [non sara' immediato quindi il risultato...] e mi dira', per esempio, che avra' trovato aperta la porta 25 e 110, quindi sapro' che ho trovato un server adibito ai servizi di mail, dato che monta sia un demone smtp e pop3.
Tra i numerosissimi port-scanner che ci sono in giro per ogni tipo di sistema operativo (ce ne sono a centinaia, anche a causa della facilita' con cui se ne puo' scrivere uno semplice) mi sento di
consigliare, ma e' tutto soggettivo, YAPS (cerca su altavista +yaps +"port scanner" e lo trovi subito) per windows e naturalmente l'insuperabile Nmap

   http://www.insecure.org/nmap

per Linux


Q) Cosa si intende per brute-force attack?
A) Il bruteforce e' un tipo di attacco ad un qualunque file o servizio coperto da autentificazione tramite password. Si basa o su un file di parole (dizionario) e inizia a provarle tutte, una dopo l'altra, sperando prima o poi di beccare quella giusta, ammesso che sia tra quelle del dizionario. Oppure fa un attacco di tipo consequenziale, generando lui stesso delle parole e provandole. Ad esempio se si imposta di provare con tutte le parole di 6 lettere, tentera' con 000000, 000001, 000002, ... , 00000a, 00000b, ... , oblura, oblurb, oblurc, ... fino a ZZZZZZ o ~~~~~~, in base alle regole impostate sul fatto di usare o meno le maiuscole, i simboli ecc ecc. Di solito viene usato per ottenere la login su telnet via remoto, o la password di posta di qualche sventurato, ma se non si sa neanche la login, sono cazzi :)
Si trovano in giro per la rete un bel po' di sorgenti di programmelli per il brute-force, ed e' chiaro che, a meno che non ci si sia collegati da un host sempre on-line, questi vadano eseguiti su shell e non sul proprio PC collegato tramite dial-up, a meno che non si voglia stare qualche giorno-settimana-mese sempre connesso 24 ore al giorno.
Caso particolarmente utile e vantaggioso per usare un attacco del genere e' quando si e' parzialmente a conoscenza della password, vuoi perche' la si e' dimenticata o perche' la si e' intravista, allora basta semplicemente crearsi un dizionario ad hoc (magari tramite 2 righe di C) e via di tentativi.
Altro utilizzo di un brute-forcer e' per esempio l'apertura di file di word o compressi tramite zip e poi protetti da password. Stesso procedimento, prova ad aprire il file provando una serie di parole estratte da un file o create consecutivamente.
Tra i brute-force che hanno fatto la storia impossibile non menzionare John The Reaper per i file passwd di *nix, sia in versione unix che dos, e i numerosi tools per windows per ogni occasione: word, zip, pwl, ecc... una discreta raccolta la potete trovare qui:

    http://www.theargon.com/tools/index.shtml

Ma anche un girettino su www.l0pht.com sara' ricompensato


Q) Come togliere la pass del BIOS ad un PC?
A) C'e` un jumper da chiudere sulla mainboard; consulta il manuale.
NB: Oltre alla passwd si cancellano tutte le altre opzioni modificate nel setup del bios. (ma quasi sempre le impostazioni di default vanno bene)


Q) Mi potete spiegare i comandi da eseguire per l'ftp-bounce? Se ne trovano ancora molti di server bacati?
A) I comandi sono quelli propri dell'ftp [leggiti gli rfc per questo].
Possono essere eseguiti sia direttamente che da file script (con RETR). I comandi per l'esecuzione sono (sarebbero!) RETR, SITE EXEC, EXEC.. difficili da trovare esattamente in quest'ordine.
    RETR difficilissimo
    SITE EXEC praticamente zero
    EXEC oblsoleto
Quanti ne trovi di siti che lo permettono? Secondo te un server ftp  puo' implementare il comando SITE EXEC quando sa che qualunque idiota potrebbe provare a divertirsi con un bel

    SITE EXEC format c: /autotest

oppure

    SITE EXEC rm -rf      ?

Se ti va bene trovi solo quelli che ti apri da te per fare le prove.


Q) Esiste un programmino per simulare la pressione dei tasti della tastiera, dandogli in pasto un file sequenziale con dei numeri?
A) Si, cerca in giro Ezmacros


Q) Sapete dove posso trovare dei remailer?
A) Qui per esempio:

    http://anon.efga.org/Remailers

Per avere un po' di liste di ramailer [non sempre valide pero'] prova a fare una ricerca partendo da qui:

    http://www.zedz.net
    http://www.theargon.com
    http://neworder.box.sk
    http://www.antionline.com


Q) Sapete dove posso trovare liste di proxy/wingate/ecc ?
A) Prova qui:

    http://proxylist.hypermart.net
    http://www.bikkel.com/~proxy/
    http://www.cyberarmy.com/lists/wingate/
    http://www.cyberarmy.com/lists/proxy/
    http:/www.theargon.com/proxy/
    http://proxys4all.cgi.net
    http://www.lightspeed.de/irc4all

Nota comunque che la maggior parte dei proxy che troverai non funzionera'. Su Cyberarmy trovi anche Proxy hunter, uno scanner carino e veloce per la ricerca di sock e proxy


Q) Ho trovato un wingate, come lo uso?
A) Cosi':

    telnet IP_WINGATE 23

apparira' il prompt  "wingate>", a questo punto digita

    IP_AL_QUALE_TI_VUOI_CONNETTERE PORTA

e se funziona ti rispondera' qualcosa del tipo: "connected to IP on PORTA", e il wingate iniziera' a fare da ponte. Per maggiori info:

    http://www.bikkel.com/~proxy/


Q) Come posso sapere il mio ip quando sono connesso in internet?
A) Su windows95-98:    c:\windows\winipcfg.exe
    windowsNT:    ipconfig
    linux:   /sbin/ifconfig


Q) Se combino qualcosa di non propriamente lecito per la rete, e lascio in giro il mio ip, dimenticandomi o non essendo capace di nascondermi perfettamente, riescono a risalire da li' alla mia identita' reale?
A) Se ti colleghi tramite telefonia fissa: e' possibile il recupero del tuo numero di telefono se richiesto da un magistrato. Nota che possono venire rintracciate istantaneamente (sulle vecchie centrali ci volevano una 30ina di secondi). Se ti colleghi tramite scheda GSM riescono anche tramite triangolarizzazione a sapere in meno di 5 minuti dove ti trovi.
Inutile dire che simili iniziative vengono prese solo in casi di estrema gravita' del reato.
Per piccole cazzatine, al limite il provider ti sega l'account, ma non avendo prove che sia stato effettivamente tu a telefonare (se non ha abilitato il servizio tramite il quale e' a conoscenza di tutti i num di telefono dei chiamanti, anche quelli che usano come prefisso 1793 per nascondersi) non credo riesca a dimostrare che il colpevole sia stato effettivamente tu, quindi potresti passare anche impunito.
Nota a parte va fatta per l'utilizzo dei green: tutte le chiamate ricevute da un numero verde vengono LOGGATE,  okkio...


Q) Come funziona [funzionava] il vecchio bug per l'ftp tramite QUOTE?
A) Un omaggio al vecchio alby, sole a scacchi? :-)

       ---
  "ftp victim.com
   il server chiedera' username noi diremo enter
   il server chiedera' password noi diremo enter
   al prompt.....
   quote user ftp
   poi....
   quote cwd ~root
   poi....
   quote pass ftp
   ...se l'ftp e' vecchiotto...avete pieno accesso.......poi fate voi
   ...la mia universita' ci da' quest'opportunita'...se qualcuno riesce a
   sapere da dove chiamo.......ha anche un ftp dove provare per bene.....
   alla prossima MASTER........
   ho altro da dire......
   tu resta in ascolto....."
       ---

[ndr: molto vecchiotto deve essere l'ftp, devono essere passati piu' o meno 5 anni dall'ultimo aggiornamento software e dall'ultima patch. Il newsgroup e' anche questo :-)  ]


Q) Cosa si intende per RPC?
A) RPC sta per Remote Procedure Call: permette di chiamare delle procedure che verranno eseguite dall'host al quale richiedi l'esecuzione.

   RPC Portmapper - Some versions allow attackers to perform "proxy"
   attacks that will allow an attacker to bypass local security
   resrictions by making the RPC call appear to come from the localhost.
   This service can also be used to dump all available RPC services that
   may aid an attacker to discover vulnerable services. You should
   shutdown all RPC services if you don't use them, or use Wietse
   Venema's portmapper replacement which fixes a number of these
   problems.  This only blocks attackers looking at the portmapper for
   information however, a saavy intruder can bypass portmapper (and hence
   your wrapper) and probe for services directly. It is important that
   you shut off all RPC services you are not using. WARNING:
   Wietse Venema's site has recently been compromised and several
   programs have been altered with trojan horses (including his very
   popular TCP Wrappers program). You are well advised to verify all
   software off of this site with Wietse Venema's PGP key before
   installing.

   Generic RPC services - Many RPC services have problems that can be
   exploited to one degree or another. If you don't use the service you
   should shut it off  (rusers, sprayd, walld, rexd, etc.).  One
   particular service, statd (sometimes listed as "status" in portmapper
   dumps), is being used extensively by intruders to gain access to
   systems. This service should be patched or shutdown on all hosts that
   don't require it (it is used by NFS to enable more reliable file
   locking so you may not be able to shut it off if you use NFS). Contact
   your vendor for an update.  Another service making the rounds is
   'ttdbserverd' which has a remotely exploitable overflow too. Shut off
   your RPC services or get them patched (and pray).


Q) Cosa si intende per NFS?
A) NFS sta letteralmente per Network File System, e si usa per rendere disponibile al resto del mondo una parte del disco, condividerlo.

   NFS - NFS is a notorious problem. Attackers use this to read/write to
   files and to gain access through any number of methods.
   First be sure you are running the latest version of the daemon for
   your OS as this will fix many common problems. Be sure you are not
   exporting directories to the world. Be sure you are only exporting
   directories to hosts that need them and that you are not exporting
   more than necessary(why are you exporting "/" when users really only
   need "/usr/local/tools")? Be sure you have run fsirand or similar
   utility after you have applied patches to ensure your filehandles are
   random. Export read-only when you can and if you export read-write be
   sure you do not allow root privs to cross the export mount.  The
   mountd service under Linux is especially vulnerable to a nasty remote
   access hole. Make sure your systems are patched, and if you aren't
   running NFS shut off all of it's associated daemons!!


Q) E' vero che ci sono bug sfruttabili anche di X-windows?
A) Non un vero e proprio buco, ma una disattenzione che potrebbe costare cara:

   X-Windows - Attackers can use open X-Windows clients to read keyboard
   input, dump screen shots, execute commands as
   the logged in user and generally cause mischief. Make sure all your X
   related devices are  secured with either xhost or xauth
   security mechanisms.  If you are running Microsoft Windows X clients
   you need to do the same to them as well. You can
   capture keystrokes just as easily from Reflections X on Windows as you
   can on Unix!

Se uno non ha fatto un bel xhost -, potrebbe avere problemi se ha una distribuzione mal configurata (poche).


Q) Ci sono attacchi oltre che per sendmail anche per imap/pop3?
A) Certo :-)

   IMAP/POP - This is a very common exploit method for attackers as some
   versions contain a serious and easily exploited buffer overrun that
   allows remote execution commands as root. Update your daemon or shut
   this service off if you do not use it. Some POP servers also don't
   report failed logins, so an attacker can brute force passwords and you
   will never know. If yours does this you should upgrade.


Q) Come faccio a capire che sistema operativo monta un certo server?
A) Ci sono vari programmi, per esempio per linux c'e' Queso, ma anche Nmap di Fyodor (http://www.insecure.org/nmap) molte volte riesce a stabilire con un errore accettabile (o nullo) il sistema operativo.
Per Windows sinceramente non ne ho trovati.
Se sei particolarmente pigro e non vuoi scaricarti un programma, potresti usare l'applet che trovi su:

     http://www.genocide2600.com/~tattooman/websearch.html

Ad ogni modo, telnet o netcat alla mano, da un'analisi dei server che monta dovresti farti qualche idea, seppur grossolana.


Q) Dove posso reperire informazioni sul buffer overflow?
A) Cerca l'articolo di Aleph One "Smashing stack for fun and profit" pubblicato su Phrack (http://www.phrack.com)
Per ora sembra il miglior articolo mai stato scritto sull'argomento.


Q) Il portscan e' un'azione illecita?
A) Ci sono stati vari threads relativi a quest'argomento, alla legalita' dei ping, dei tentativi di connessione alla 31337 ecc ecc.
La questione non e' semplice, ma in due parole si puo' dire che il portscan in linea di massima e' un'azione legalissima, in quanto e' intendibile come una ricerca di particolari servizi che un server puo' offrire. Cosi' tramite quest'azione noi veniamo a conoscenza di un server news, smtp, time e molto altro. Certo che uno scanning di tutte le porte e' gia' piu' difficile da motivare, e, seppur legale, infastidirebbe qualsiasi sysadmin, ma non rappresenta reato.
Discorso analogo per il ping, che viene fatto per stabilire se un server e' up oppure no.
Tutto sta a non abusarne, altrimenti si potrebbe parlare di DoS, e quindi la questione si farebbe piu' complicata.
Cosi' pure per lamerate su porte "maliziose" tipo 12345, 31337 e molte altre: se si viene loggati vuol dire che la backdoor in questione non e' installata sul sistema, e quindi al limite si puo' parlare di tentativo di connessione, ma bisogna ricordare che secondo la legislazione americana, una prova acquisita in questo modo non ha nessuna validita' in campo giuridico, e quindi, in poche parole, si e' salvi. Questo di fronte alla legge, ma un provider dietro varie lamentele ci mette molto poco a revocare un account, e lo puo' benissimo motivare "per ragioni di sicurezza" senza rendere conto a nessuno

<mayhem-METAFORA>

Allora... quando tu scrivi ping www.linux.org bussi ad una porta lui apre e dice "sono in casa". Se lo scrivi dentro netscape prima bussi, poi ti aprono chiedendo "desidera?". tu gentilmente chiedi una pagina e loro con cortesia la porgono. Nulla di piu' bello e legale. Piu' o meno quando vai in un
condominio e bussi alla porta dell'amico che cerchi.
Se pero' nel condominio bussi a tutte le porte, si, fai girare le scatole a qualcuno, ma non vengono a cercarti i signori con le righe rosse sui pantaloni a casa il giorno dopo.
Se al posto di un port scanner poi usi un programma tipo Satan (tipo un port scanner che pero' anziche' cercare le porte aperte, cerca le vulnerabilita', le porte "appoggiate") equivale a  tentare di forzare un 40% delle serrature del condominio. questo ti potrebbe causare diversi problemi.

</mayhem-METAFORA>


Q) Cosa si intende per spoofing?
A) Considera un host H che accetta connessioni solamente da host fidati e considera che la fiducia venga data in base all'IP dell'host. Facciamo finta che l'host fidato sia F.
Lo spoofing e' una tecnica (a dire il vero e' un insieme di tecniche, visto che ci sono delle varianti) che serve a stabilire una connessione con H fingendosi F.
La dinamica e', a grandi linee, questa:
1) mettiamo a tacere F
2) stabiliamo una connessione con H fingendoci F
Il passo  1 e' necessario,  perche' H mandera'  le risposte, in  fase di apertura della  connessione, all'IP di F.F vede H che gli manda dei pacchetti e dice: "oh H: echettuvvuoi? Mica ti ho interpellato".
E H dice:  "scusami, provvedo a chiudere la connessione immediatamente".
Ecco perche' bisogna stordire F: perche' non faccia cadere lo stabilirsi della connessione, cioe' l'handshake a tre vie.
Se vuoi avere qualche particolare in piu', vai nella home page di Buttha, nella sezione documenti, e troverai "Firewall penetration testing". Li e' spiegata in maniera molto semplice tutta la faccenda.
Nota bene: uno dei motivi per cui e' sempre meno attuabile e' anche la capacita' di mettere a tacere l'host F con un syn flooding: un qualsiasi host configurato decentemente e' immune da tale attacco.


Q) Cosa si intende per syn flooding?
A) Il concetto si basa su una raffica di syn, da uno o piu' mittenti, sta a te sceglierlo.
La macchina vittima assegnera' una quantita' di risorse prestabilite ad ogni syn, credendo che corrisponda all'instaurarsi di una nuova connessione, e non sapendo che invece e' stato mandato fine a se stesso, quindi solo con lo scopo di effettuare un DoS. All'aumentare dei syn ricevuti in un intervallo molto limitato di tempo, aumenteranno le risorse dedicate, fino al crash, ammesso che la macchina non sia configurata da cantinari [MD TM :) ]


Q) Che cosa è lo smurf?
A) E' un flooding, ma particolarmente cattivo.
Incominciamo per passi:
come funziona un ping? Tu invii un pacchetto icmp di tipo echo request e il computer "pingato" risponde con un pacchetto echo reply. Ora modifichiamo il meccanismo: io spedisco un icmp di tipo echo request a un computer ma modifico l'IP sorgente del pacchetto; per esempio metto il tuo IP come IP sorgente. Cosa succede? Che il computer che riceve l'echo request rispondera' all'IP sorgente, cioe' a te, non a me.
Ora, devi sapere che esistono delle reti mal configurate, che permettono di fare un icmp broadcast: esiste un particolare indirizzo della rete a cui posso mandare un ping e tutti gli host di quella rete risponderanno: il mio echo request viene spedito a tutti i computer di quella rete.
Piu' la rete e' grande e piu' echo reply otterro'.
Ora, supponi che io cerchi questo particolare tipo di reti: esistono programmi appositi che mandano un ping agli indirizzi di broadcast e contano quante risposte (echo reply) arrivano, cosi' come esistono dei siti che ti danno gli IP di queste reti.
Mi faccio la mia bella collezione di IP e cosa faccio? Semplice, mando un ping (echo request) a tutte queste reti *a nome tuo*.
Cosa succede? Che il tuo computer si ritrovera' innondato di echo reply: immaginati centinaia di computer che ti mandano, piu' o meno nello stesso istante, pacchetti ICMP (di dimensione scelta da me).