Copy Link
Add to Bookmark
Report

Ricavare informazioni da un host: Gli ingredienti essenziali per diventare root

di Ankit Fadia ankit@bol.net.in

DrWatson's profile picture
Published in 
guide hacker
 · 5 years ago

Ho ricevuto molte email da gente che mi chiede come possono entrare nel loro ISP o come possono entrare nei sistemi. Infatti, tali domande sono le più comuni tra tutte le domande che ho ricevuto. Bene, dopo questa domanda popolare, ho pensato che un intero manuale su come entrare nei sistemi era necessario. E così...

Vedi, entrare nei sistemi o diventare root su un sistema non é così difficile quanto sembra. E non richiede che tu sia un superhacker. Entrare in un sistema é abbastanza semplice e richiede che tu sappia almeno un linguaggio di programmazione (preferibilmente il C), e avere un buon QI. Comunque, entrare nei sistemi richiede un po' di fortuna e anche un po' di noncuranza o stupidità dell'amministratore di sistema del sistema che vogliamo attaccare.

Cosa voglio dire da ciò é che entrare nei sistemi non é difficile, chiunque può farlo, anche uno stupido, comunque, comunque, la cosa più difficile dell'intero processo dove molta gente esita é rimanere nascosti. L'anonimato o rimanere anonimi ai logs del server e prevenire la rivelazione é la cosa più difficile da fare.

Quello che separa un buon hacker da uno Script Kiddie o un Lamer é che il primo ha molti modi di assicurarsi che nessuno abbia sospetti che c'é stata un'intrusione, d`altronde, l'ultimo non sa nemmeno cosa fare e non sa come evitare tali rivelazioni. Ci sono così tanti programmi C già fatti o utility su internet che la maggior parte dei futuri hackers scarica e usa per entrare nei sistemi. Bene, non solo questi non lavorano propriamente e alla perfezione, essi non forniscono nessun meccanismo per rimanere anonimi. Inoltre, se non stai usando uno strumento "in scatola", e non ci sono tentativi di rimanere anonimi, hai più possibilità di rimanere inosservato rispetto a quando usi uno strumento del genere. Così pensa prima di usare tali strumenti, saresti capace di prendere il file delle password e comunque prima o poi verrai rintracciato.

La prima cosa chce devi fare una volta che hai deciso il computer da attaccare é trovare il maggior numero di informazioni su di esso. Vedi, per entrare in un sistema devi sfruttare delle vulnerabilità esistenti nei servizi. La maggior parte dei sistemi hanno porte aperte, che hanno dei demoni o servizi in esecuzione.

HACKING TRUTH: Ci sono due tipi di porte. Ci sono porte hardware, che sono gli slots esistenti dietro la CPU del tuo sistema, nel quale inserisci o connetti l'hardware. Per esempio, COM1, COM2, Porta Parallela, ecc. Comunque, non siamo interessati a quelle porte. Siamo interessati ad altri tipi di porte, che sono porte virtuali o porte software. Una porta virtuale é quella porta dove passano le informazioni. Tutte le porte aperte hanno un servizio o un demone in esecuzione. Un servizio o un demone non é nient'altro che il software in esecuzione su quelle porte, che prevede un determinato servizio agli utenti che si connettono ad essa. Per esempio, la porta 25 é sempre aperta su un server che gestisce le mail, poiché é la porta che Sendmail apre (di solito).

Così fondamentalmente il primo passo nel tuo tentativo di entrare in un sistema é di prendere più informazioni possibili. Prova a prendere la lista delle porte aperte, la lista dei servizi in esecuzione sulle rispettive porte e altri tipi di informazioni che vedremo in seguito.

Innanzitutto prendi un buon Port Scanner, preferibilmente invisibile e poi fai un port scan sull'obiettivo. Ora una cosa che devi ricordare mentre fai un port scan é il fatto che ci sono vari port scanners 'invisibili' che dicono di essere non identificabili, ma che lo sono. Così al posto di usare falsi port scanner invisibili, ti suggerisco di farne uno da te.

Ma di cosa ho bisogno per usare un port scanner invisibile e come posso farne uno da me? Bene, hai bisogno di un port scanner invisibile perché gli amministratori di sistemi logganno tutti i tentativi di port scanning e registrano l'IP di tali tentativi, e questo rende più facile rintracciarti. Per me i migliori port scanner sono quelli che mandano pacchetti SYN/FIN da un host spoofato, rendendo inutile il logging. Tali port scanner possono essere creati in C, ma non possono essere eseguiti in Windows. Questa é solo un'idea, ora tocca a te scrivere un port scanner.

Presumiamo che hai un un port scanner 'impossibile da rintracciare', ora scansiona il sistema vittima e registra la lista delle porte aperte:

Nota: In questo manuale, ho preso il mio ISP come esempio di sistema obiettivo.

Nel mio caso, ho trovato le seguenti porte aperte (host xxx.bol.net.it):

 
Numero Servizio
21 FTP
23 Telnet
25 SMTP
53 DNS
79 Finger
80 HTTP
110 POP
111 Non utile
389 Non utile
512 rlogin


Nota: Solo pochi port scanners ti danno sia le porte aperte sia i servizi che sono in esecuzione su di esse. La maggior parte dei port scanners danno solo la lista delle porte aperte. Questo anche é buono; una volta che hai la lista delle porte aperte, puoi trovare il servizio corrispondente consultando l'RFC 1700. Contiene la lista completa dei numeri delle porte e il corrispondente servizio.

Il port scanning prende vantaggio dal 3-stage TCP handshake per determinare quali porte ono aperte sul computer remoto. Per capire meglio il protocollo TCPIP leggi i manuali di rete che distribuisco sulla mia mailing list.

Strumenti come SATAN e molti altri ti permettono di trovare la lista delle porte aperte, il demone o il servizio in esecuzione su ogni porta aperta e anche la vulnerabilità del servizio. Non puoi chiamarti un hacker se hai bisogno di tale Software. Concordo che controllare manualmente le porte su un server richiede molto tempo. Ma quello che sto suggerendo é usare un port scanner, che ti dà la lista delle porte aperte senza la lista dei servizi e delle vulnerabilità. Ti assicuro, se cerchi una porta aperta di un server remoto manualmente, sarai capace di capire di più sul sistema remoto e anche ti darà un assaggio di cos'é l'hacking attualmente. Se usi un port scanner, che ti dà tutti i dettagli con un click per impressionare i tuoi amici, stai sicuro che non impressionerai nessuno, poiché sono sicuro che tutti possono usare SATAN e altri scanners simili.

Un'altra cosa di cui devi aver presente prima di effettuare un port scanning sul tuo ISP é che la maggior parte di port scanners sono facili da rintracciare e possono essere tracciati facilmente e non avrai scuse se ti beccano mentre fai un port scan su un host, é un chiaro segno di attività hacker. Ci sono molti scanners invisibili com Nmap, che dicono di essere non identificabili. Ma la verità é che sono tracciabili e sono abbastanza imprecisi poiché mandano solo un pacchetto per controllare se una porta é aperta o no. E se l'host sta eseguendo uno sniffer il port scan può essere facilmente rintracciato e l'IP dell'user loggato. In ogni modo alcuni ISP sono molto spaventati da attività hacker e anche al minimo sospetto di attività losche come un port scanning, possono disabilitare il tuo account. Quindi stai attento.

Alcuni ISP sono abbastanza consapevoli delle attività hacker e sono un passo avanti. Possono eseguire del software eccellente, che tiene lontano gli hackers. EtherPeek é un eccellente esempio di software sniffing, che può tracciare facilmente gli utente che stanno eseguendo un port scanner Nuke Nabber un freeware per Windows dice di poter bloccare i port scan. Non l'ho provato e quindi non posso esserne sicuro. Però c'é un altro bel programma chiamato Port Dumper, che può emulare i demoni (servizi) come Telnet, Finger, ecc. Ci sono anche software che mostrano una lista di porte aperte. Quello che voglio dire é che se tu scansioni un host che esegue tale software, potrai vedere delle porte aperte, e il tuo port scan potrebbe diventare pazzo.

Una volta che hai preso una lista di porte aperte, comincia ad analizzare i punti deboli o i servizi che potrebbero aiutarci a ricavare maggiori informazioni sul sistema remoto. Prova a sfruttare i comandi o le opzioni disponibili su ogni porta aperta per trovare una vulnerabilità, che potrebbe essere sfruttata, o qualunque tipo di informazione sul sistema remoto. Ora spiegherò come cercare di trovare tali cose con la lista delle porte aperte (del mio ISP) e i servizi in esecuzione su di esse.

Nota: prima di procedere, controlla la tavola delle porte aperte che abbiamo preso. Comincerò dalla porta 79 poiché se comincio dalla porta 21, il manuale diventerà molto molto breve.

Se la porta 79 é aperta, o, in altre parole, é in esecuzione finger, comunque, la maggior parte dei demoni finger sono configurati per non restituire molte informazioni sugli Utenti, comunque, proviamo alcuni exploits Finger che potrebbero darti l'accesso root (ma é molto molto difficile che funzionino).

finger root

finger system

finger

Questi exploits sono molto molto vecchi e non funzionano 99 volte su 100. Così la porta Finger é scartata.

Ora andiamo avanti, nella lista delle porte, anche la porta HTTP o porta 80 é aperta, e questo significa che il sistema remoto probabilmente mantiene un sito web. Così prendiamo il nostro browser preferito e vediamo cosa hanno sul loro sito. Bene, attualmente non siamo interessati su cosa hanno sul sito, ma quello che ci interessa controllare é se hanno la directory CGI-BIN aperta al pubblico o no, e se sì se qualche comune exploit CGI, che ti dà l'accesso root, funziona o no.

Così scrivo il seguente indirizzo nel mio browser:

 
http://xxx.bol.net.in/cgi-bin


Ho trovato il messaggio d'errore NOT FOUND; questo probabilmente significa che questo sistema non supporta gli scripts CGI. Se la directory CGI-Bin é stata bloccata all'accesso pubblico, avremo probabilmente il messaggio d'errore Forbidden.

Comunque, non ci dobbiamo disperare se troviamo la directory chiusa perché gli exploits CGI sono alquanto vecchi e trovare nuovi exploits andrebbe fuori da questo manuale.

OK, così la porta 80 e la porta 79 sono escluse, non hanno vulnerabilità né ci danno informazioni sul sistema remoto. [Bene attualmente la porta HTTP ci ha dato alcune informazioni da valutare, ma ci arriveremo in seguito.]

Proviamo la porta 21 o porta FTP. Ora, ci sono due modi di connettersi alla porta 21 di un host, il primo é di telnettarsi alla porta 21 e l'altro é di usare il client FTP di MS-DOS. Puoi scegliere uno dei due per questa sezione, comunque, preferisco il client FTP, nonostante molta gente dice che é lamer. In ogni modo, mi connetto a xxx.bol.net.it sulla porta FTP.

 
C:windows>ftp xxx.bol.net.in
Connected to xxx.bol.net.in.
220-
220-#*************************************************************
220-# Welcome to MTNL's ftp site
220-#*************************************************************
220-#
220-# You can upload your own homepages at this site!!!
220-#
220-# Just login with your username and upload the HTML pages.
220-# (You can use your favourite HTML editor as well)
220-#
220-# World will see it at http://web2.mtnl.net.in/~yourusername/
220-#
220-# So get going......UNLEASH YOUR CREATIVITY !!!!
220-#
220-#*************************************************************
220-
220 ftp2.xxx.bol.net.in FTP server ready.


Siamo immediatamente salutati dal banner del demone FTP, che ci dice che questo é un server FTP dove la gente che usa MTNL Internet Services (il mio ISP), può aggiornare il suo sito. Ora, normalmente i banner del demone FTP danno più informazioni rispetto a questo. Di solito danno il nome del Sistema Operativo in esecuzione e anche il demone in esecuzione. Bene, ora é il login prompt del banner del demone che ci da il sistema operativo. Normalmente, un banner di demone tipico, darebbe il seguente Login prompt:

 
220 xxx2.bol.net.in FTP server (Digital UNIX Version 5.60) ready.
User (bol.net.in:(none)):


Comunica il nome del Sistema tra le parentesi nella prima linea. Comunque, normalmente la maggioranza dei demoni FTP sono meglio configurati (che é il caso nell'esempio xxx.bol.net.in) e il loro login prompt é qualcosa del genere:

 
220 ftp2.xxx.bol.net.in FTP server ready.
User (mail2.bol.net.in:(none)):


Vedi, non c'é nessun nome di Sistema Operativo. Comunque, con l'aiuto di alcuni comandi, tali sistemi possono rilevare il sistema operativo. Comunque, prima di andare avanti, c'é una cosa che devi capire. Ora, ci siamo "FTPati" a xxx.bol.net.in, così normalmente ti aspetti la connessione alla porta 21 di xxx.bol.net.in, ma non é così (almeno in questo caso). Se controlli di nuovo il banner del demone, noterai che l'ultima linea dice:

 
220 ftp2.xxx.bol.net.in FTP server ready.


Ora cosa é successo? La porta 21 non é aperta? Bene, sì e no. Quello che succede attualmente é che la porta 21 di xxx.bol.net.in é aperta e un demone sta aspettando le connessioni. Appena é stabilita una connessione, trasferisce il controllo o connette il visitatore al sistema ftp2.xxx.bol.net.in che é una macchina FTP. Non ci sono altri servizi in esecuzione Così qualsiasi informazione che prendiamo da questo FTP non é di xxx.bol.net.in ma di ftp2.xxx.bol.net.in, chiaro?

In ogni modo, quando ci appare il login prompt, entriamo anonimamente usando anonymous come username e un indirizzo email falso come password.

 
220 ftp2.xxx.bol.net.in FTP server ready.
User (ftp2.xxx.bol.net.in:(none)): anonymous
331 Guest login ok, send your complete e-mail address as password.
Password: xxx@linux.net
230 User anonymous logged in. Access restrictions apply.


Anche se hai un account al server FTP nel quale vuoi entrare, é sempre meglio non usare il tuo username e password. Entrare anonimamente dà molti vantaggi. Se usi il tuo username e password per entrare e non sei capace di editare i log di sistema ti troverai nei guai (diciamo che il tuo account potrebbe essere disabilitato. Oppure potrebbe succedere di peggio).

Ok, sei dentro, ora facciamoci dire dal client FTP quali comandi sono disponibili scrivendo il comando help.

 
ftp> help
Commands may be abbreviated. Commands are:
! delete literal prompt
? debug ls put
append dir mdelete pwd
ascii disconnect mdir quit
bell get mget quote
binary glob mkdir recv
bye hash mls remotehelp
cd help mput rename
close lcd open rmdir


Um...nessuno di questi comandi sembra esserci utile. Così il comando 'help' non ci ha rilevato nessun comando utile. Comunque, nota che la lista di comandi riportata sono comandi che sono offerti dal client FTP e a volte il demone FTP offre comandi in più. Per avere una lista completa di comandi offerti dal demone FTP, usa il comando 'remotehelp':

 
ftp> remotehelp
214-The following commands are recognized (* =>'s unimplemented).
USER PORT STOR MSAM* RNTO NLST MKD CDUP
PASS PASV APPE MRSQ* ABOR SITE XMKD XCUP
ACCT TYPE MLFL* MRCP* DELE SYST RMD STOU
SMNT* STRU MAIL* ALLO CWD STAT XRMD SIZE
REIN* MODE MSND* REST XCWD HELP PWD MDTM
QUIT RETR MSOM* RNFR LIST NOOP XPWD
214 End of help


Nota: per avere una descrizione di una singola linea per ogni comando, scrivi help seguito da uno spazio e dal comando di cui vuoi una descrizione.

Una cosa da ricordare é che per eseguire ogni comando da un server FTP remoto hai bisogno della parola chiave 'literal'. Quello che voglio dire é che i comandi remoti devono essere preceduti dalla parola 'literal'. Per esempio, se vogliamo eseguire 'stat', devi scrivere:

 
ftp> literal stat


HACKING TRUTH: Secondo l'help di FTP, il comando literal é descritto come:
ftp> help literal
literal send arbitrary ftp command
[literal manda un comando ftp arbitrario]

In ogni modo, fra i comandi FTP remoti, i comandi che ci interessa usare sono: 'stat' e 'syst'. Vediamo cosa ci dicono:

 
ftp>literal stat
211- ftp2.xxx.bol.net.in FTP server status:
Version 5.60
Connected to 203.xx.251.198 (203.xx.251.198)
Logged in anonymously
TYPE: ASCII, FORM: Nonprint; STRUcture: File; transfer MODE: Stream
211- No data connection
211 End of status


Nota: L'indirizzo IP é di xxx.bol.net.in e non della tua macchina.

 
ftp> literal syst
215 UNIX Type: L8 Version: BSD-198911


Voila, abbiamo il nome del sistema operativo su ftp2.xxx.bol.net.in. Almeno un'informazione utile.

Sia Finger che HTTP hanno fallito, cosa facciamo ora? Andiamo a controllare il demone più buggato della terra ... Sendmail: Porta 25, la porta SMTP.

Sendmail é certamente il demone più buggato del mondo; ha il numero più grande di exploits conosciuti fra tutti i demoni. Così questo probabilmente ci aiuterà ad andare avanti. Telnettiamoci alla porta 25 e controlliamo se c'é una versione di sendmail sfruttabile.

 
C:windows> telnet xxx.bol.net.in 25

220 xxx.bol.net.in ESMTP Sendmail 8.9.1 (1.1.20.3/27Jun00-0346PM) Thu, 29 Jun 2000 14:18:12 0530 (IST)


Quanto di telnetti alla porta 25, la prima cosa che vedi é qualcosa del genere...un banner di benvenuto. Un banner del demone é il miglior amico dell'Hacker. Rivela importanti informazioni sull'host. Fondamentalmente ti dice il demone o servizio in esecuzione su quella porta e anche la versione di quel particolare servizio. In questo caso, il banner del demone Sendmail ci dice che é in esecuzione ESMTP Sendmail 8.9.1 e ci dà anche altre informazioni sull'host.

In ogni modo, tornando al titolo, questo banner rivela una grande vulnerabilità esistente sul computer remoto. Ci dice che xxx.bol.net.in sta eseguendo una vecchia, vulnerabile versione di Sendmail. L'ultima versione di Sendmail é la 8.9.4 (correggetemi se sbaglio), così questa particolare versione di Sendmail sicuramente ha qualche buco.

Così cerca su packetstorm o sul tuo sito preferito come sfruttare la versione 8.9.1 di Sendmail.

Ora si vede il vero hacker da uno script kiddie. Edita il tuo file sorgente e rendilo eseguibile sulla tua piattaforma. Un'altra cosa che devi tenere in mente é il sistema operativo della macchina remota. Vedi ci sono degli exploits che lavorano solo se sulla macchina remota é in esecuzione uno specifico sistema operativo. Per esempio:

Una volta c'era un buco Sendmail che funzionava solo se il computer remoto eseguiva SunOS.

Così in alcuni casi diventa necessario trovare il sistema operativo del computer remoto. Comunque alcuni exploit non necessitano che il computer remoto esegui uno specifico sistema operativo, ma perché correre il rischio?

Così fondamentalmente dovresti tener conto delle seguenti cose mentre usi l'exploit:

1) Il nome del Demone e la versione che stai cercando di exploitare, per esempio Sendmail 8.9.1
2) Il sistema operativo su cui é progettato (se necessario).
3) Il sistema operativo che richiede per il corretto funzionamento (se necessario).

Questo ci porta a imparare come trovare il sistema operativo del computer remoto. Bene, la porta HTTP ha la chiave. Semplicemente, telnettati alla porta 80 del computer remoto.

 
C:windows>telnet xxx.bol.net.in 80


Ora, una volta che ti sei connesso, scrivi un comando HTTP non valido (tutto quello che vuoi). Poi premi invio due volte.

Hacking Truth: Si deve premere due volte invio dopo ogni comando per avere una risposta. E' così che lavora il protocollo HTTP.

Sulla porta 80 del sistema remoto d'esempio, ho scritto semplicemente 'ankit' e ho premuto invio due volte. Questo é il tipo di risposta che ho avuto:

 
HTTP/1.1 400 Bad Request
Server: Netscape-Enterprise/3.5.1


Il server risponde con la versione di HTTP che sta eseguendo (non importante), ci dà un messaggio d'errore e il codice d'errore associato con esso (ancora non molto importante), ma ci dà anche il nome dell'OS e la sua versione. Wow! Dà agli hackers quello l'ultima informazione che serve per entrare nel loro server.

Bene, questi sono i modi comuni di trovare il maggior numero di informazioni su un host per entrarci. Aggiornerò presto questo manuale. Spero che la prima edizione ti é piaciuta. Arrivederci al prossimo aggiornamento.

Ankit Fadia
ankit@bol.net.in

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT