Некоторое время назад один товарищ (будем называть его Билл) попросил меня о довольно странной просьбе – взломать его систему. Все имена и названия (кроме производителей) также изменены.
Взламывать крупные корпорации не составляет особого труда. Несмотря на инвестиции в безопасность, довольно сложно уследить за всеми информационными ресурсами, которыми владеет компания. Для этого требуется железная дисциплина, ежедневные пентесты и оперативное исправление найденных уязвимостей.
Получение доступа к компьютеру отдельного человека часто становится непростой задачей даже несмотря на то, что далеко не все пользователи осведомлены об элементарных правилах информационной безопасности, и иногда необходимо найти всего лишь одну брешь. С другой стороны, возможностей для атаки на системы отдельных пользователей намного меньше по сравнению с большими корпорациями. Кроме того, большинство пользователей доверяют свою безопасность облачным сервисам, которые хорошо защищены.
Я начал с первичной разведки. Для поиска следов присутствия в сети мне помогает приложение Maltego и сервисы наподобие checkusernames.com, knowem.com и pipl.com. Не лишним будет заглянуть в Google+, Facebook и Linkedin. При этом неплохо создать привлекательный профиль, чтобы, в случае чего, можно было получить информацию при помощи социальной инженерии.
В моей практике часто бывали случаи, когда ответы на секретные вопросы почтовых сервисов можно было легко найти на страничке в Facebook. Уверен, что большинство пользователей не обращают на это никакого внимания. При регистрации они заполняют ответы на контрольные вопросы и забывают о них. Однако в моем случае все эти трюки были малоэффективны, поскольку моим оппонентом был специалист по безопасности, и, самое главное, он ждал моего вторжения.
Для начала я решил проверить, висят ли на его домашнем IP-адресе какие-нибудь сервисы, о которых он, возможно, даже не подозревает. Многие приложения и устройства используют UPnP и по тихому оставляют дыры в пользовательских фаерволлах. Иногда достаточно обнаружить NAS- или media-сервер для проникновения в систему. Чтобы определить домашний IP-адрес я пользуюсь сервисами наподобие resolveme.org. Найдя IP-адрес, я начал сканировать его (вместе с соседними IP-адресами) на предмет присутствия каких-либо сервисов. К сожалению, мои поиски не увенчались успехом. Скорее всего, мой оппонент был осведомлен об этом.
Переходим к беспроводным сетям, предоставляющим обширное поле для деятельности. У меня в наличии две видеокарты Radeon 6990, которые в связке с процессором Intel Core i7 прекрасно щелкают WPA-хеши. Для генерации словаря используются цепи Маркова, который потом передается в oclHashcat. При этом за 8 часов успешный подбор пароля осуществляется в 80% случаев.
Итак. На тот момент в моем распоряжении был IP-адрес вместе с несколькими WiFi-адаптерами (хотя, в общем, эту информацию получить не так сложно посредством социальной инженерии). После успешного перехвата WPA-хеша на неделю был запущен перебор пароля. Никакого результата. Хотя мой метод дает хорошие результаты, но не в случае с Биллом, поскольку он весьма подкованный чувак. Скорее всего, его ключ состоит из более чем 32 символов.
Возможно, у вас в голове созрел иной и более быстрый план, связанный, например, с получением доступа к системе при помощи свежего Java-эксплоита и методов целенаправленного фишинга. Однако этот вариант также не сработал бы, поскольку я хорошо знаю Билла. Во-первых, он регулярно устанавливает обновления. Во-вторых, у него не установлена Java.
После того как я в очередной раз зашел в гости к Биллу, то узнал очередную порцию полезной информации. MAC-адрес (BSSID) его роутера был 06:A1:51:E3:15:E3. Поскольку у меня есть OUI (первые три байта MAC-адреса), я знаю, что у него роутер Netgear. Я также знаю, что у роутеров Netgear есть некоторые проблемы, но у Билла установлена последняя версия прошивки. И все-таки было решено купить и протестировать этот роутер на предмет присутствия непропатченных уязвимостей.
Определить версию роутера не представлялось возможным. Однако, зная о том, что Билл – экономный человек, я решил взять модель WNDR3400v3.
После изучения некоторых старых уязвимостей купленного девайса я создал два модуля для Metasploit. В первом модуле эксплуатировалась уязвимость CSRF (Cross-Site Request Forgery, Межсайтовая подделка запроса) для мапирования интерфейса UPnP, который позволял получить доступ к роутеру через telnet. Вероятно, подобная уязвимость, существует во многих других устройствах. Важно подчеркнуть, что:
Если вы можете подделать UPnP запросы через CSRF, то сможете получить доступ ко всей сети.
Последний тезис особенно важен. Мной был открыт один порт. Можно использовать Ajax-запросы из браузера жертвы для конфигурирования NAT для любого IP-адреса или целой подсети, по сути, отключив фаерволл. Само собой, существуют некоторые ограничения для составляющих UPnP NAT, однако большинство устройств позволяют смапировать несколько ключевых портов.
Для того чтобы подсунуть Биллу мой эксплоит, я отправил ему электронное сообщение со ссылкой. У Cobalt Strike есть утилита для копирования электронного сообщения (вместе с заголовками). Нам же достаточно изменить ссылки. В качестве приманки я решил отправить ему сообщение о приглашении в Linkedin.
Примечание: Возможно, сейчас вы задаетесь вопросом, как продвинутый чувак может пойматься на такой топорный трюк, ведь даже беглый осмотр отправителя или ссылки тут же раскрывает весь наш замысел. Главный фактор успеха – хорошая легенда. Мы будем использовать метод социальной инженерии, описанный в этой статье. Письмо отсылалось от имени предполагаемого работодателя, с которым недавно встречался Билл и который приглашал его на неформальное интервью.
Перед тем как отсылать письмо, нужно было создать полезную нагрузку. По умолчанию telnet-порт доступен на роутерах Netgear, но сам сервис не работает до тех пор, пока вы не подключитесь к порту и не отправите специальный ключ разблокировки. Для решения этой задачи, вместо использования публичного эксплоита, я написал еще один модуль для Metasploit.
Билл кликнул на ссылку. Как только я увидел обратное соединение (callback), то запустил второй модуль и подключился к роутеру через telnet. После получения прав суперпользователя я тут же изменил настройки DNS, указав подконтрольный мне DNS-сервер.
Контроль над DNS сервером позволяет выполнять различные MITM-атаки. Больше всего мне нравится фреймворк Evilgrade, позволяющий подсовывать свои собственные файлы при обновлении приложений. Evilgrade в течение многих лет показывал прекрасные результаты (с небольшими модификациями). Через неделю Билл решил обновить notepad++, и я подсунул ему версию с бэкдором, что дало мне полный доступ к его машине при помощи интерпретатора команд через Meterpreter. После этого я отправил Биллу несколько скриншотов и лог нажатых клавиш.
1 comments On Практический пример пентеста с взломом домашнего роутера
Pingback: Взлом роутера. Методы и примеры. - Cryptoworld ()