Guida Pentesting da Mobile usando Termux ed Nmap

MRPants

Helper
4 Gennaio 2015
288
34
258
269
Ultima modifica da un moderatore:
In questa guida vedremo come installare Termux ed Nmap sul proprio smarphone e come utilizzare questi due strumenti per scansionare ed eseguire test di sicurezza.​
copertinaa.jpg


1    INTRODUZIONE

Tempo fa abbiamo parlato di Termux e di come utilizzare questo tool per avere sempre a portata di mano un terminale linux con cui poterci approcciare anche al pentesting, ovunque ci troviamo:

Un altro strumento molto utile da poter utilizzare su Termux è il conosciuto e blasonato nmap.
Per chi è nato ieri, nmap è il coltellino svizzero per eccellenza che ci permette di esaminare molteplici indirizzi IP per poter determinare o meno la presenza di porte aperte su cui poter iniziare la nostra attività di "penetrazione" del device di nostro interesse.

Anticipo i sapientini della domenica, logicamente si ha più possibilità e "raffinatezza ventola"(cit.) da una distro linux per l'utilizzo di questo tool, ma col tempo vi accorgerete che avere questo strumento a portata di palmo può rivelarsi un asso nella manica anche per i meno esperti .​



Detto questo, iniziamo subito con l'installazione :

2    INSTALLAZIONE

Dopo aver ovviamente aggiornato i pacchetti del nostro caro termux, procediamo con la riga per l'installazione :
Bash:
$ pkg install nmap
Con questo comando inizieremo il processo di installazione del tool che utilizzeremo per eseguire le scan, pazientiamo fino al termine dell'installazione.
termux1.jpg

3    FUNZIONE HELP E TIPOLOGIE DI SCAN

Terminata l'installazione, buona abitudine è andare a vedere cosa ci racconta l'help del nostro tool. Termux ci lascia sul semplice con un secco $ nmap:

nmap.jpg

Possiamo già farci un quadro di alcune delle possibilità presenti, la sintassi è semplice (per chi è avezzo su linux) richiamo nmap, mettiamo il tipo di scansione desiderata es "-sL" le opzioni aggiuntive come ad es il numero di host e infine l'indirizzo IP del target .
Come vediamo dallo screen abbiamo molte tipologie tra cui scegliere, da scansioni che inviano pacchetti UDP vuoti all'host (e la porta risulterà aperta si riceverà un pacchetto UDP, se chiusa ci torna un errore ICMP :( tecnica che richiede tempo ma talvolta utile) con dicitura "-sU"
nmap2.jpg

Fino ad arrivare a scansioni che utilizzano pacchetti di tipo SYN che ci garantiscono velocità ed anonimato garantito dal fatto che non viene stabilita una connessione TCP diretta "-sS". Si abbiamo anche la -sT ma lasciatela stare, un IDS qualsiasi se la fotte alla grande ( termux regà :addio: ).
Per farla breve sulle altre:
-sN
= TCP null ( non manda alcun bit )
-sW
= molto simile all'ACK ma sfrutta delle vulnerabilità su sistemi windows per distinguere le porte aperte dalle chiuse.​

Altri flag messi a disposizione dal tool sono quelli mostrati nello screenshot seguente:

nmap3.jpg

Abbiamo altre tipologie, io vi ho dato delle brevi e sommarie descrizioni di quello che è presente sullo screen per farvi la quadra delle potenzialità, ci sono altre tipologie ma non voglio togliervi tutto il divertimento lol lol lol. Qui a seguire un esempio di una semplice scan lanciata su un precisato range di indirizzi IP, a seguire troviamo in calce il report nella quale è riportato l'IP preciso e cosa ha trovato ( o non ) aperto.​

nmapscan.jpg

La sintassi come possiamo vedere è praticamente la stessa della versione per pc, per cui in caso di dubbi potete fare riferimento anche alle altre guide del forum in merito allo strumento, tra cui le seguenti:​

4     SCAN E PROTOCOLLI

Con nmap puoi andare ad eseguire varie tipologie di scansione, che vanno a verificare vari elementi come il sistema operativo, i servizi attivi o le porte aperte disponibili, qui a seguire andremo a vedere:​
  • - - Ping scan
  • - - Port scan
  • - - Os Detection
  • - - Service detection
Prima di iniziare bisogna sapere che i sistemi, per comunicare correttamente, utilizzano 2 tipi di protocolli di rete:
  • TCP ( Trasmission Control Protocol )
  • UDP (user Data Protocol )

sdf.jpeg

5     PROTOCOLLI DI RETE : TCP & UDP


5.1    TCP

I protocolli di rete sono, detta male, delle regole instaurate per un corretta comunicazione.
La procedura utilizzata per instaurare in modo affidabile una connessione TCP tra due host è chiamata three-way handshake (stretta di mano in 3 passaggi), indicando la necessità di scambiare 3 messaggi tra host mittente e host ricevente affinché la connessione sia instaurata correttamente.
300px-Tcp-handshake.svg.png

Consideriamo ad esempio che l'host A intenda aprire una connessione TCP con l'host B; il processo segue la sequenza:​
  1. A invia un segmento SYN a B - il flag SYN è impostato a 1 e il campo Sequence number contiene il valore xche specifica l'Initial Sequence Number di A;​
  2. B invia un segmento SYN/ACK ad A - i flag SYN e ACK sono impostati a 1, il campo Sequence numbercontiene il valore y che specifica l'Initial Sequence Number di B e il campo Acknowledgment number contiene il valore x+1 confermando la ricezione del ISN di A;​
  3. A invia un segmento ACK a B - il flag ACK è impostato a 1 e il campo Acknowledgment number contiene il valore y+1 confermando la ricezione del ISN di B.​
Alcuni dei principali protocolli TCP (tra cui l'HTTP, noto ormai a tutti) e le rispettive porte d'ascolto sono elencati di seguito:

tabella.jpg

5.2     UDP

L'UDP (User Datagram Protocol) è un protocollo di trasporto non orientato alla connessione e non confermato. Viene utilizzato quando i dati inviati non necessitano di conferma, o perché la rete e ritenuta sufficientemente affidabile o perché l'applicativo che utilizza il servizio di trasporto sarebbe penalizzato dal punto di vista delle prestazioni dalla complessità di un protocollo di trasporto confermato.​
L'UDP permette all'applicazione che lo utilizza di inviare dati in broadcast e multicast a differenza del TCP che in questo caso dovrebbe gestire gli ACK di conferma da tutti i nodi destinatari di questi messaggi.
L'intestazione UDP ha una dimensione di soli 8 byte cosi ripartiti:
source port ---- Destination port .---- length----- cheksum

Altre discussioni che potrebbero aiutarti ad approfondire l'argomento:


6     HANDS ON SCAN


Andiamo a provare con mano i vari tipi di scan :

6.1     PING SCAN

Uno dei primi passi in qualsiasi approccio di mappatura di una rete è quello di ridurre un intervallo di indirizzi IP (talvolta di notevoli dimensioni) ad una lista di host attivi o interessanti. Uno scan di ogni porta di ogni singolo indirizzo IP è lento e generalmente non necessario. Ovviamente ciò che rende un host interessante dipende in larga misura dalle motivazioni della scansione.​

Andiamo a fare una scansione su più IP con: $ nmap -sn <IP>/24

scan-multiple-ports-termux.png

6.2     SYN SCAN


Bash:
$ nmap -sS <IP> --top-ports <number>

Il Syn scan è un tipo di scansione in cui l'handshake non viene portato a termine; In pratica viene inviato un paCchetto TCP con SYN attivo, e se di ritorno ha un SYN e ACK la connessione è aperta, altrimenti se è chiusa restituirà un pacchetto TCP con flag RST attivo.
synscanning1.png

Qui elencate alcune possibilità di scan:​
Bash:
$ nmap -sS <IP>
$ nmap -sS <IP> -p80,81,82,100-150 # Scan su un preciso numero o range di porte
$ nmap -sS <IP> --top-ports <Number> # Scan su porte più utilizzate
$ nmap -sS <IP> -p1-65535 # Scan su tutte le porte
$ nmap -sS <IP> -Pn # salta la ricerca dell'host



6.3     SERVICE & OS DETECTION

Al momento dell'identificazione delle porte TCP e/o UDP da parte di uno dei vari metodi di scansione, il version detection interroga queste porte per rilevare ulteriori dati sui servizi erogati. Il database contenuto nel file nmap-service-probes contiene istruzioni per interrogare i vari servizi e per interpretarne le risposte.​

Nmap cerca quindi di determinare di che servizio si tratta.

Bash:
$ nmap -sS <IP> -sV

Nmap invia un tot di pacchetti TCP e UDP all'host e passa sotto esame ogni bit di ritorno. Dopo aver eseguito molteplici test come ad esempio il campionamento TCP ISN, Nmap confronta i risultati con i suoi nmap-os-db database e stampa i dettagli del sistema operativo se c'è una corrispondenza nell'impronta digitale. Per lanciare l'OS detection:​

Bash:
$ nmap -sS <IP> -O

con questa tipologia di scan andiamo a verificare il sistema operativo del nostro bersaglio .



Bene, ora abbiamo anche visto come utilizzare nmap dal nostro dispositivo con termux. Facciamone un uso saggio e nel limite della legalità. Faccio un richiamo dal primo capitolo di questa serie, attenzione che scaricando termux dal play store possono sorgere dei problemi di compatibilità qualora si andasse ad aggiornare i pacchetti presenti con un update.​

Grazie dell'attenzione e buon pentesting a tutti ;) :myeah: :myeah: :myeah: :myeah: :myeah: :myeah:
 

Allegati

  • nmap4.jpg
    nmap4.jpg
    67.3 KB · Visualizzazioni: 13
  • image2-7.png
    image2-7.png
    105.2 KB · Visualizzazioni: 19