<=-=><=-=><=-=><=-=><=-=><=-=><=-=><=-=><=-=><=-=><=-=><=-=><=-=> <=-=> <=-=> <=-=> -=> Lord Shinva <=- <=-=> <=-=> <=-=> <=-=> -DiGiTAL::ALLiANCE- <=-=> <=-=> <=-=> <=-=> C : 0 . N : F . E : D . E : R . A : T . i : 0 . N <=-=> <=-=> <=-=> <=-=> <=-=> <=-=> Enciclopedia dell'Hacking <=-=> <=-=> ````````````````````````` <=-=> <=-=> .:[ Volume 10 ]:. <=-=> <=-=> <=-=> <=-=><=-=><=-=><=-=><=-=><=-=><=-=><=-=><=-=><=-=><=-=><=-=><=-=> VIRTUOSISMI TECNICI: PARTE 1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 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 collegarci 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'account di qualcun altro (un utente di cui abbiamo crackato la password) e/o usare un account Telnet su una BBS, utilizzare il "bounce" e cosi` 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 e` on-line e cosa sta facendo (se il SysAdmin e` in giro, sara` meglio lasciar perdere e collegarsi piu` tardi, meglio se di notte o la mattina molto presto) - digitare "unset HISTFILE" per far si` che il file "history" (dove vengono annotate tutte le operazioni che svolgiamo!) venga eliminato non appena lasceremo 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 e` riusciti a crackare la password di root, usare un exploit per ottenere accesso root, in modo da poter eseguire comandi nella shell - OPZIONALE: crearsi un nuovo account su quel server, utilizzando un nome poco vistoso (dare un'occhiata al file delle password per uniformarvi agli altri in modo da non far saltare all'occhio il vostro nuovo account) - installare una backdoor (se si e` 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 e` creato un nuovo account (vedi sopra) potremo mettere la shell "segreta" nella nostra directory utente, in modo che nessun altro la noti e possa usarla all'infuori di noi (un buon posto e` la directory .term nella directory /users oppure /home/users o comunque dove si trovano le directory degli utenti). Si puo` anche aggiungere un account al file delle password, in modo da utilizzare la shell root quando ci servira`, utilizzando semplicemente Telnet: usando PHF con il comando "echo stringa >> /etc/passwd" oppure editando direttamente 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 potra` 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 ne sono fatti) Ora, quando vorremo collegarci di nuovo per utilizzare la shell root, non dovremo 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, oppure usare la shell "segreta" che abbiamo installato. Tutto questo andra` fatto solo la prima volta, cioe` quando hackeriamo il server. Cio` ci consentira` di non far notare un'attivita` hacker su quel server, cosicche` il nostro account (e soprattutto la shell root ;) durera` piu` 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, percio` 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 modalita` locale (sul vostro computer), se ne avete la possibilita`. Quando dovete analizzare il contenuto di un file di log alla ricerca di informazioni da cancellare (come il vostro IP Address o l'host name del vostro provider) 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 directory /var/log (ma anche /var/adm). Se l'output (i risultati della ricerca) e` troppo lungo per essere contenuto in una pagina, bastera` 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 trova nella directory /etc Il suo compito e` "dire" al sistema cosa loggare (registrare in file di log) e dove mettere i log (un altro file interessante e` /etc/login.defs dove e` possibile abilitare/disabilitare il logging delle operazioni effettuate con file ad accesso root). Ci bastera` quindi editare il file /etc/syslog.conf e cancellare i file "scomodi"... ma non solo. Affinche` i cambiamenti apportati abbiano effetto, dovremo riavviare il programma syslogd, o piu` precisamente il suo processo (le operazioni che svolge in background). Ma prima di riavviare il processo dovremo disattivalo. Per farlo, useremo il comando "kill" (uccidi), in questo modo: digitiamo "ps -x" per vedere a quale numero di processo e` associato syslogd. Il primo numero sulla sinistra sara` quello che ci interessa: in pratica, e` come un numero di indentificazione che varia da processo a processo. Digitiamo ora "kill -HUP numero_di_processo" e syslogd verra` disattivato e subito riavviato. Abbiamo ora ottenuto quello che volevamo: niente piu` "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 maiuscole o minuscole. (continua nel prossimo volume) +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- Copyright (C) 1997 by :: LoRD SHiNVA :: -Digital Alliance Confederation- http://members.tripod.com/~helghast/dac.htm +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +-