Domanda Risalire ad un IP tramite link su whatsapp (senza che venga aperto)

Stato
Discussione chiusa ad ulteriori risposte.

System32ita

Utente Silver
12 Maggio 2017
55
12
18
54
Salve a tutti,
so che potrebbe essere una domanda un po' stupida, ma sono giorni che ci penso su:
Avete presente quando su WhatsApp (e app simili) si manda un link e automaticamente scarica alcune informazioni (come ad esempio un'icona di presentazione)?
Se questo accade, il dispositivo "vittima" manda una richiesta al server, quindi in teoria si potrebbe creare un sito che semplicemente raccolga tutti gli indirizzi IP che mandano richieste e senza che la vittima apra il link si può risalire appunto al suo IP.
Sto dicendo una cagata o ha un minimo di senso?
 
Ha senso ed è giusto quello che dici. Magari qualcuno più esperto di me potrà confermare o meno.

Per esempio guardando questo video sembra che sia giusto quello che dici ( guarda da min. 9:39 a min. 10:39)
 
Salve a tutti,
so che potrebbe essere una domanda un po' stupida, ma sono giorni che ci penso su:
Avete presente quando su WhatsApp (e app simili) si manda un link e automaticamente scarica alcune informazioni (come ad esempio un'icona di presentazione)?
Se questo accade, il dispositivo "vittima" manda una richiesta al server, quindi in teoria si potrebbe creare un sito che semplicemente raccolga tutti gli indirizzi IP che mandano richieste e senza che la vittima apra il link si può risalire appunto al suo IP.
Sto dicendo una cagata o ha un minimo di senso?
Non credo, poichè in verità chi fa la richiesta sei tu che mandi il messaggio, non la vittima, non il device vittima. Nel caso fosse la vittima a incollare il link, allora sì, potrebbe essere usato per estrarre l'IP, anche se sto notando diverse cose strane.

Ho fatto questa prova:
- Creato server ngrok che forwarda le chiamate a un server netcat in lcoale
- Inviato il link di ngrok su telegram e whatsapp
- Intercettato la richiesta con netcat

Server ngrok:
Bash:
┌──(kali㉿kali)-[~]
└─$ ngrok http 10099
ngrok by @inconshreveable                                                                                                                                                                                                  (Ctrl+C to quit)
                                                                                                                                                                                                                                          
Session Status                online                                                                                                                                                                                                       
Account                       MaOutis (Plan: Free)                                                                                                                                                                                         
Version                       2.3.40                                                                                                                                                                                                       
Region                        United States (us)                                                                                                                                                                                           
Web Interface                 http://127.0.0.1:4040                                                                                                                                                                                       
Forwarding                    http://ca4a8880452c.ngrok.io -> http://localhost:10099                                                                                                                                                       
Forwarding                    https://ca4a8880452c.ngrok.io -> http://localhost:10099                                                                                                                                                     
                                                                                                                                                                                                                                          
Connections                   ttl     opn     rt1     rt5     p50     p90                                                                                                                                                                 
                              2       1       0.01    0.01    0.01    0.01                                                                                                                                                                 
                                                                                                                                                                                                                                          
HTTP Requests                                                                                                                                                                                                                             
-------------                                                                                                                                                                                                                             
                                                                                                                                                                                                                                          
GET /                          502 Bad Gateway                                                                                                                                                                                             
GET /                          502 Bad Gateway                                                                                                                                                                                             
GET /

Richiesta inviata e tramite telegram web:
Bash:
┌──(kali㉿kali)-[~]
└─$ sudo nc -nlvp 10099
listening on [any] 10099 ...
connect to [127.0.0.1] from (UNKNOWN) [127.0.0.1] 35866
GET / HTTP/1.1
Host: ca4a8880452c.ngrok.io
User-Agent: TelegramBot (like TwitterBot)
Accept-Encoding: deflate, gzip
Cookie: euConsent=true; BCPermissionLevel=PERSONAL; BC_GDPR=11111; fhCookieConsent=true; gdpr-source=GB; gdpr_consent=YES; beget=begetok
Accept-Language: en-US,en;q=0.5
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
X-Forwarded-For: 149.154.161.17
Guardando a chi appartiene l'IP 149.154.161.17 salta fuori che è un IP del backend dell'infrastruttura di Telegram

Richiesta inviata tramite whatsapp mobile:
Bash:
┌──(kali㉿kali)-[~]                                                                                                                                                                                                                       
└─$ sudo nc -nlvp 10099
listening on [any] 10099 ...                                                                                                                                                                                                               
connect to [127.0.0.1] from (UNKNOWN) [127.0.0.1] 35896                                                                                                                                                                                   
GET / HTTP/1.1                                                                                                                                                                                                                             
Host: ca4a8880452c.ngrok.io                                                                                                                                                                                                               
Upgrade-Insecure-Requests: 1                                                                                                                                                                                                               
User-Agent: Mozilla/5.0 (Linux; Android 11; Pixel 4a) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Mobile Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: android-app://org.telegram.messenger/
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9,it-IT;q=0.8,it;q=0.7
X-Forwarded-For: 37.161.189.24
Guardando a chi appartiene l'IP 37.161.189.24 salta fuori invece che è di Illiad, quindi del mio device con cui ho inviato il link
 
Non credo, poichè in verità chi fa la richiesta sei tu che mandi il messaggio, non la vittima, non il device vittima. Nel caso fosse la vittima a incollare il link, allora sì, potrebbe essere usato per estrarre l'IP, anche se sto notando diverse cose strane.

Ho fatto questa prova:
- Creato server ngrok che forwarda le chiamate a un server netcat in lcoale
- Inviato il link di ngrok su telegram e whatsapp
- Intercettato la richiesta con netcat

Server ngrok:
Bash:
┌──(kali㉿kali)-[~]
└─$ ngrok http 10099
ngrok by @inconshreveable                                                                                                                                                                                                  (Ctrl+C to quit)
                                                                                                                                                                                                                                         
Session Status                online                                                                                                                                                                                                      
Account                       MaOutis (Plan: Free)                                                                                                                                                                                        
Version                       2.3.40                                                                                                                                                                                                      
Region                        United States (us)                                                                                                                                                                                          
Web Interface                 http://127.0.0.1:4040                                                                                                                                                                                      
Forwarding                    http://ca4a8880452c.ngrok.io -> http://localhost:10099                                                                                                                                                      
Forwarding                    https://ca4a8880452c.ngrok.io -> http://localhost:10099                                                                                                                                                    
                                                                                                                                                                                                                                         
Connections                   ttl     opn     rt1     rt5     p50     p90                                                                                                                                                                
                              2       1       0.01    0.01    0.01    0.01                                                                                                                                                                
                                                                                                                                                                                                                                         
HTTP Requests                                                                                                                                                                                                                            
-------------                                                                                                                                                                                                                            
                                                                                                                                                                                                                                         
GET /                          502 Bad Gateway                                                                                                                                                                                            
GET /                          502 Bad Gateway                                                                                                                                                                                            
GET /

Richiesta inviata e tramite telegram web:
Bash:
┌──(kali㉿kali)-[~]
└─$ sudo nc -nlvp 10099
listening on [any] 10099 ...
connect to [127.0.0.1] from (UNKNOWN) [127.0.0.1] 35866
GET / HTTP/1.1
Host: ca4a8880452c.ngrok.io
User-Agent: TelegramBot (like TwitterBot)
Accept-Encoding: deflate, gzip
Cookie: euConsent=true; BCPermissionLevel=PERSONAL; BC_GDPR=11111; fhCookieConsent=true; gdpr-source=GB; gdpr_consent=YES; beget=begetok
Accept-Language: en-US,en;q=0.5
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
X-Forwarded-For: 149.154.161.17
Guardando a chi appartiene l'IP 149.154.161.17 salta fuori che è un IP del backend dell'infrastruttura di Telegram

Richiesta inviata tramite whatsapp mobile:
Bash:
┌──(kali㉿kali)-[~]                                                                                                                                                                                                                      
└─$ sudo nc -nlvp 10099
listening on [any] 10099 ...                                                                                                                                                                                                              
connect to [127.0.0.1] from (UNKNOWN) [127.0.0.1] 35896                                                                                                                                                                                  
GET / HTTP/1.1                                                                                                                                                                                                                            
Host: ca4a8880452c.ngrok.io                                                                                                                                                                                                              
Upgrade-Insecure-Requests: 1                                                                                                                                                                                                              
User-Agent: Mozilla/5.0 (Linux; Android 11; Pixel 4a) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Mobile Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: android-app://org.telegram.messenger/
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9,it-IT;q=0.8,it;q=0.7
X-Forwarded-For: 37.161.189.24
Guardando a chi appartiene l'IP 37.161.189.24 salta fuori invece che è di Illiad, quindi del mio device con cui ho inviato il link

In realta' non c'e' nulla di strano.
Telegram utilizza qualcosa che potrebbe definirsi un middleware per gestire lo sharing preview dei link.
Quello che ha descritto @System32ita ha senso e plausibile a livello teorico e pratico ( vedi i tracking pixel nelle email ).
Per quanto riguarda whatsapp almeno fino a poco tempo fa non utilizzava alcun filtro ma se non erro effetuava la richiesta solo all'apertura del messaggio
 
In realta' non c'e' nulla di strano.
Telegram utilizza qualcosa che potrebbe definirsi un middleware per gestire lo sharing preview dei link.
Quello che ha descritto @System32ita ha senso e plausibile a livello teorico e pratico ( vedi i tracking pixel nelle email ).
Per quanto riguarda whatsapp almeno fino a poco tempo fa non utilizzava alcun filtro ma se non erro effetuava la richiesta solo all'apertura del messaggio
Sì sto facendo delle prove, confermo che il comportamento di Telegram e Whatsapp è differente: Telegram usa un bot mentre whatsapp fa accesso diretto ma solo nel momento in cui digiti l'url per inviarlo (e quindi l'IP che raccogli è il tuo stesso). Per ottenere l'IP della vittima è necessario che clicchi sul link.

Sto cercando di capire se però sia possibile far scaricare a Whatsapp una finta anteprima il cui crawling venga fatto da entrambe le parti. Non credo sia possibile però
 
Avete provato con il metodo descritto qua?

Yes, stesso risultato di sopra.
Sembra essere proprio il funzionamento di Whatsapp. Non so se sono io, ma non riesco a trovare un modo per fare disclosure dell'IP di qualun altro. La richiesta al server viene fatta prima dell'invio del messaggio, e quindi parte sempre dal device di un attaccante.

Inoltre tristemente sugli indirizzi IP non viene fatto il crawl, funziona solo se qualcuno ha un dominio
1622227341695.png

1622227411704.png
 
Stato
Discussione chiusa ad ulteriori risposte.