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.