Найти тему
Илья Седов

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

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

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

Их анонимность дело не святое, поэтому можно с ней и посражаться 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 каналом, что улучшало успешные «отстукивания» с данными.