Semplice script che utilizza nmap per scansionare e trovare socks 4/5 e/o http/https proxy di qualità e residenziali.
Github Source

Siti con liste già pronte

Di siti con liste di proxy online gratis ce ne sono moltissimi, ad esempio proxydb.net in cui è possibile ottenere socks4, socks5, http sia trasparent che elite suddivisi anche per nazione.

Il grande problema di queste liste è che la maggior degli IP che si trovano funzionano a singhiozzo; quelli che possono essere usati sono sicuramente nelle liste di spam e, se usati nei siti più grandi, che adottano tecniche avanzate, anche solo per lasciare un semplice commento a un post, viene inibito l’accesso e segnalata l’azione svolta: quindi sono inutilizzabili.

Così facendo, si passa più tempo a cercare un proxy che funzioni piuttosto che usarlo. E i problemi aumentano se dobbiamo ricercare un proxy di una determinata nazione: se, per qualsiasi ragione, dobbiamo utilizzare un proxy con ip italiano non ne veniamo più a capo.

Script Base con NMAP per trovare proxy

Lo script si basa sul tuttofare Nmap, uno strumento essenziale per scansionare le reti internet.

Nmap

Nmap (“Network Mapper”) è un software free e open source per la scansione di reti.

Nmap è un software libero distribuito con licenza GNU GPL da Insecure.org creato per effettuare port scanning, cioè mirato all’individuazione di porte aperte su un computer bersaglio o anche su range di indirizzi IP, in modo da determinare quali servizi di rete siano disponibili.

Gli amministratori di sistema possono utilizzarlo per verificare la presenza di possibili applicazioni server non autorizzate, così come i cracker possono usarlo per analizzare i loro bersagli: è in grado infatti di ipotizzare quale sistema operativo sia utilizzato dal computer bersaglio, tecnica conosciuta come fingerprinting.

Installazione

L’installazione su ubuntu di NMap è semplice:

foo@bar:~$ sudo apt install nmap

Curl

Altro requisito di questo script da installare è curl che consente di trasferire dati da un server remoto o viceversa attraverso protocolli quali HTTP, HTTPS, SCP, SFTP e FTP.

L’installazione su ubuntu è altrettanto semplice:

foo@bar:~$ sudo apt install curl

Porte più comuni usate per i proxy

  • 80
  • 8181
  • 1080
  • 8123
  • 3128
  • 9050
  • 9051
  • 32889
  • 4145
  • 59729
  • 4153
  • 47324
  • 31050
  • 3629
  • 10801
  • 35573
  • 5678
  • 43638
  • 52666
  • 34746
  • 3629
  • 8686
  • 43153
  • 61743
  • 55583

Questa è una esigua serie di porte utilizzate normalmente nei proxy. Però c’è da sottolineare che non esiste una porta specifica per questo tipo di servizio e quindi se in un server c’è una porta custom difficilmente la si troverà. Un semplice escamotage è quello di visitare i principali siti in cui si trovano le liste proxy gratis e segnarsi le porte più utilizzate.

Nello script c’è la variabile PORT in cui vengono inserite tutte le porte che nmap andrà a controllare. Basta aggiungere tutte quelle che si vogliono e nmap le userà nelle sue funzioni.

Scanner delle porte con NMAP

Lo scanner delle porte con nmap è composto da un solo comando:

foo@bar:~$ nmap 1.2.3.4 -p80

Con questo comando si testa la porta 80 sull’ip 1.2.3.4 e il risultato stampato a video ci dirà se è aperta o chiusa. In caso di risultato positivo non significa che il proxy sia attivo in quella porta.

Invece per effettuare la scansione su più ip:

foo@bar:~$ nmap 1.2.3.1-254 -p80

E con questo otterremo il risultato nel range di ip da 1.2.3.1 a 1.2.3.254

Test dei presunti proxy

Una volta ottenuti degli host dalla scansione precedente bisogna sapere se siano effettivamente dei proxy, ma come?

Il metodo che preferisco è quello di usare curl interrogando ipify.com, un sito che come risposta invia l’ip del cliente remoto.

foo@bar:~$ curl -s -m 15 -a "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36" -x socks4://1.2.3.4:8081 https://api.ipify.org/

Se la risposta è lo stesso IP del proxy testato, allora significa che funziona.

Utilizzo dello script

Adesso che ogni fondamentale comando è stato spiegato, si può unire e creare lo script per automatizzare il tutto.

Salvataggio temporaneo dei proxy

nmap -oG - -p$PORT $1 | awk '/^Host/ && /Ports/ { for (i=1;i<=NF;i++) { if (match($i,/open/)) { split($i,map,"/"); printf "%s:%s\n",$2,map[1] } } }'>$TEMP_FILE

Questo comando salva nel file temporaneo gli host e le rispettive porte aperte.

Test dei proxy

Per ogni elemento salvato nel file temporaneo, si testa se l’accoppiata IP e porta risulta in un proxy utilizzabile.

res4=$(curl -s -m 15 -a $USER_AGENT -x socks4://$line https://api.ipify.org/)https://api.ipify.org/

Output finale

Al termine dello script verrà creato un file con i proxy testati e funzionanti; tale file, come nome, conterrà l’IP e la data di esecuzione in modo da archiviare il risultato e sapere quando e cosa è stato scansionato.


Lo script per ricercare proxy è pubblico nel repository di github.