>
Май 2017
Пн Вт Ср Чт Пт Сб Вс
« Апр    
1234567
891011121314
15161718192021
22232425262728
293031  

Как вычислить хакера?

Не раз я сталкивался с вопросами пользователей, можно ли каким либо образом вычислить хакера который взломал тот или иной сайт. Вопрос достаточно интересный и однозначного ответа на него дать невозможно. Конечно же все зависит от квалификации человека который осуществляет атаку и от его осторожности. Но как оказалось на практике, очень многие хакеры совершают достаточно глупые ошибки и раскрывают свою анонимность. Давай посмотрим как.

Как вычислить хакера

Прежде всего… а зачем мне это? Я не «трехбуквенник», а скромный инженер, замыслов по захвату мира у меня пока нету и прочими недобросовестными делами я не занимаюсь, так чем же мне не угодила анонимность? Ответ прост — анонимусами, хацкерами, скрипт-кидисами… Эти ребята вечно пытаются что-то там сломать, украсть, испортить или погонять свое ЧСВ. Дело это, если подумать не такое уж и плохое (лучше чем в подворотне наркотиками баловаться), но раз ребята любят поиграть — давайте поиграем с ними.

Их анонимность дело не святое, поэтому можно с ней и посражаться 8) Но как общий результат, все это работает с любым пользователем сети Интернет, просто я применил усилия исключительно против атакующих, тех кто пытается получить несанкционированный доступ и нарушить статью 272 УК РФ. Кроме того, мой опыт будет интересной иллюстрацией к теме «контратаки» на самих атакующих в автоматическом режиме без участия человека. Результат контратаки — раскрытие информации об атакующем, что, согласитесь, дело хорошее, а не плохое…

Бочонок с медом

Для того, чтобы не повредить анонимности ни в чем не повинных граждан и контратаковать только «злодеев», нужно быть уверенным, что данный юзверь — взломщик. Для этого достаточно иметь систему анализа поведения посетителя с механизмом обнаружения «атакующих» действий. Короче говоря, достаточно сделать honeypot. Для этого не надо разворачивать honeyd и тд. Например для общего случая с WEB ресурсом, достаточно на продакшн сервере расположить один псевдо-рабочий скрипт, который будет изображать полезность и функциональность, но на деле будет детектировать попытки проникновения и в случае «удачной» атаки изображать, что этот взлом удался. После этого исполнять контр-атаку на этого конкретного пользователя.

Наглядный пример, создадим скрипт admin.php или /admin/ не важно, любой уважающий себя атакующий найдет этот URI за несколько секунд, это очевидный ход. В случае, если хочется повысить внимание нежелательных элементов к ловушке, можно разместить линк с главной страницы (мол админка тут), ведь главная задача, чтобы плохой парень начал атаковать первым делом хонипот, а не ковырялся в нормальных скриптах.

В скрипте псевдо-админки, ясно дело, спрашивают логин и пароль. Далее дело фантазии, можно ждать когда атакующий пробрутит перебором пароль либо сделать эмуляцию уязвимости класса SQL Injection, и тогда подойдет любой пароль классаor 1=1/*, который будет давать доступ в «админку». При этом мы можем собирать статистику — как была взломана админка, подбором или через SQLi. Ну и само собой — любой кто попал в «админку» является «плохим» парнем, и его раскрытие его анонимности не вызывает у меня проблем морали.

Собственно в 2011 я разместил такой скрипт на своем горе сайте и стал ждать… ждал я не долго, так как сайт был посвящен теме ИБ, то желающих зОхакать его превышало всякое воображение.

Бей в лоб

Очевидно, что в самом общем случае, все что мы имеем об посетителе веб сайта (и атакующем, в нашем частном случае) это лишь IP адрес, User-Agent и тд. Как я говорил, мы не CIA/FSB/MOSSAD… у нас нет СОРМ или PRISM, и мы понимаем, что IP адрес (учитывая разные там Proxy серверы и TOR) — это фактически НИЧЕГО. С этим мы и имеем дело в большинстве случаев, но если разыграть один тонкий психологический момент (конкретно касающегося скрипт-кидди), то выяснится, что эти ребята не ждут подвоха! Другими словами, в теле «админки» можно сделать что угодно — повесить сплойт-пак например, и пробивать сплойтами нерадивых. Но я сыграл более «плоско», я запустил Апплет Java. Мол вы прошли аутентификацию… вот наша панель GUI на Java.

Элемент социальной инженерии — атакующий в порыве радости от успешной атаки SQLi может тупо запустить апплет. И… я удивился, но таких было достаточно (конечно потом, с течением времени процент пробива падал, так как информация о подставе быстро разошлась среди узкого круга специалистов ;). Собственно апплет тупо дергал EXE файл с сервера и запускал его.

EXE файл собирал НЕ ПЕРСОНАЛЬНЫЕ данные (да да, я блюду ФЗ о ПДн…), только следующую инфу: IP локальный, traceroute из сети, имя машины, логин пользователя. Это не много, но в большинстве случаев этого достаточно чтобы обойти TOR/Proxy/VPN и даже узнать фамилию атакующего! Дополнительно, конечно, можно было бы собирать BSSID окружающих точек доступа, например, и делать съемку с веб-камеры ноута, парсить конфиг файлы с винта и тд и тп. Короче суть в том, что установив «агента контр-разведки» на ПК атакующего мы обошли многие преграды, и TOR и Proxy уже не при делах. Очевидная контр-атака.

Примечание: мой агент не имел удаленного доступа, хотя технически это можно было закодить, я не хотел бекдорить и распространять вредоносное ПО. Данный агент не был вредоносным, так как собирал сугубо техническую инфу об ПК атакующего и его сетевом окружении. Кстати, все данные передавались реверсивным DNS каналом, что улучшало успешные «отстукивания» с данными — http://www.xakep.ru/post/55661/.

xiaomi-miband-2-

Интересные «атакующие»:

1) Министерство обороны РФ

Одни из первых, попытались применить атаку типа SQLi ребята с ВНЕШНЕГО IP Министерства обороны Российской Федерации. К моему счастью, они либо не повелись на апплет, либо у них был Linux (так как мне впадлу было добавлять кросс-платформенность). Я знаю, что там хорошие ребята и, конечно, ничего плохого они не хотели! Но надеюсь при реальных «разведывательных операциях» они используют хотя бы китайские прокси сервера 😉

2) Антивирусная компания

Этот запуск был сделан с виртуальной машины антивирусной компании. DNS сервер и tracert спалили контору 8) Примечательно что ребята не добавили агента в список вредоносного ПО! Оценили. Спасибо вам ребята!

3) Куча ребят

Просто куча разных ребят, кто-то знал о фиче и просто игрался, кто-то нет (http://habrahabr.ru/post/122107/#comment_4003842)

4) И самое интересное Хост принадлежащий РАЗВЕДКЕ одной из стран СНГ. С «обратным» проникновением.

Поначалу я решил что вот она, кибер война началась! Наш агент в результате контр-атаки оказался запущен на хосте, принадлежащем службе разведки другого гос-ва. Только учетная запись выглядела как сервисная, что наводило на мысль, что хост был скомпрометирован и использовался как посредник. Чуть позже в то же день мы получили инсталл второго «агента» из той же страны, только в этот раз не из сети правительственного учреждения, а с домашнего ПК. Имя пользователя ПК оказалось легко гуглящимся и идентифицировать человека вышло без проблем. При этом, учитывая, эти «совпадения», можно сказать что либо он работает на эту разведку, либо как-то получил доступ к правительственному хосту.

Ранение рикошетом

Окей, мы поняли, что простейший путь раскрытия анонимности — контратака через сплойт-паки или с элементами СИ, но это толсто и очевидно. Но была еще одна идея — сторонние сервисы, такие как веб-почта или, например, социальные сети. Можно сделать атаку более незаметной… что я и сделал 8)

Да, кроме апплета, в случае успешной атаки на меня, я узнавал e-mail атакующего, чтобы точно знать «кто виноват» (ну а что делать и так ясно..). И опять же, анонимность это не TOR/VPN/Proxy chain. Этого не достаточно! И так суть проста, если гражданин использует сервисы типа ВКонтакте, yandex, google, linkedin, twitter, facebook и тд… и при этом он на них постоянно аутентифицирован, то при наличии каких-либо уязвимостей (CSRF/XSS) на этих сервисах позволят раскрыть ВАШУ анонимность. Так получилось, что на сервисах mail.ru и yandex.ru были найдены уязвимости (я о них сообщил давно, и они давно запатчены, тем нем менее я успел испытать ради моего «научного» эксперимента по практической поимке злых парней…). Уязвимость самая банальная (на обоих сервисах): JSONP Hijacking. Суть проста, есть некий сервис:

Который использует cookie аутентификацию, и возвращает что-то типа:

Соответственно, для эксплуатации этой бреши и раскрытия анонимности используем код:

Так что помните: можете забыть о TOR/VPN, если вы вечно носитесь по соц. сетям, даже не надо иметь PRISM, чтобы проследить кто вы и откуда, достаточно «тупых» CSRF/XSS.

Типичный атакующий:

И еще…

Кстати, как еще пример такого подхода, сеть linkedin, даже не нужна уязвимость, там это реальная фича — лог тех, кто просматривал ваш профайл. То есть если на мою админку повесить тупо редирект на специальный зарегистрированный профайл linkedin:

То в итоге можем прямо в linkedin’е узнавать больше информации об атакующих:

Кстати, можно заметить, что SAMEORIGIN не помогает, так как GET запрос проходит до того, как браузер проверит ORIGIN политику, проверка происходит ПОТОМ 😉

Статистика

В конце немного статистики. Эксперимент длился с Q2 2011 до Q3 2012.

Всего УНИКАЛЬНЫХ атак SQLi — 484 (за ~1.2 года)

Из них успешных контр-атак (Java Applet) — 52 (за ~1.2 года)

Из них успешных контр-атак на mail.ru/yandex.ru — 16 (за 6 месяцев)

~ 17 % успеха при контр-атаках.

График зависимости:

Как видно, в начале был апплет, а «мыло» я добавил значительно позже. Пики по посещаемости связаны с анонсами ZeroNights и встреч Defcon группы. Пробив по почте фактически линейный, тогда как в случае апплетов -зависимость была линейной лишь в начале эксперимента. Это связано с обновлениями Java, антивирусы добавили апплет потом в базу вредоносного ПО (что неудивительно ибо он собран из metasploit пейлода)

P.S. Кстати, если с yandex.ru есть куда сообщать о найденных мной багах, то в случае с mail.ru я не нашел контакты, пока не познакомился с тамошним ИБшником и не слил багу ему лично…

Выводы

Хоть этот блог-пост больше о том как я ловил «плохих» парней, хотя на самом деле это можно экстраполировать на вопросы анонимности в сети Интернет — уж если ИТ/ИБ специалисты и хацкеры палятся, то что говорить о нормальных людях? Вполне очевидно, что TOR/Proxy и VPN не помогают в этом вопросе. Достаточно логина в соц.сети, невнимательности и еще много чего, чтобы однозначно сопоставить посетителя веб-ресурса с реальным человеком. Будьте аккуратнее и JFYI: Как работают настоящие зло-хакИры

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

P.S. Оригинальные материалы, где чуть более детально раскрыты баги:

Слайды с BH EU 2013
Текстик с BH EU 2013

May the Force be with you.

Share Button
[Всего голосов: 9    Средний: 3.7/5]

Вам может быть интересно также:

Last updated by at .

Leave a Reply

You can use these HTML tags

<a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">