Брутфорс: полезная практика

Докучаев Дмитрий aka Forb

Xakep, номер #058, стр. 058-058-1

(forb@real.xakep.ru)

Пишем универсальный брутфорсер

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

В чем сложность?

Брутфорс, если рассматривать его на практике сетевых ресурсов, это не что иное, как простая попытка входа на определенный сервис удаленной машины. По ее результату программа-переборщик определяет, верный пароль или нет. Если аккаунт верный - происходит завершение работы и сохранение информации о последней попытке входа. В противном случае, брутфорсер берет следующую пару логин/пароль и продолжает перебор.

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

1. Логи. Каждая попытка входа на сервис в обязательном порядке записывается в специальный лог-файл (как правило, в /var/log/messages). Так уж устроены операционки *nix. В этих самых логах админ может найти логин и IP-адрес, с которого производился перебор, а также время захода. По определению брутфорсинга, одной такой записью дело не ограничивается, поэтому логи - самый большой недостаток этого метода.

2. Канал. Брутфорсер каждый раз соединяется с сервером, чтобы проверить правильность пароля. Этот процесс занимает довольно длительное время и зависит от пропускной способности между тобой и удаленной машиной. Поэтому запускать программу-переборщик на диалапе не имеет смысла (можно, но успешного результата дождутся твои внуки). Для этого метода заранее ищется шелл с хорошим каналом, на котором и запускается программа.

3. Защита. В последнее время админы серверов (особенно тех, которые предоставляют бесплатные сервисы) защищаются от подобных атак. Методы защиты бывают разными: от введения специальных цифр, изображенных на картинках, генерируемых специальными скриптами, до временных блокировок входа с IP-адреса либо с логина. Но на каждое действие есть противодействие, поэтому существуют и способы обхода такой защиты ;).

Web-брутфорсинг: от теории к практике

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

Мы пойдем другим путем! А именно, попробуем написать полностью автоматический брутфорсер, заточенный под определенный web-сервис. Я долго думал о выборе жертвы ;), но потом решил, что это будет популярный сервис www.livejoual.com. Если ты часто бываешь в инете, то наслышан об этом онлайн-журнале. В противном случае - зайди на сайт и почитай о проекте. Ни для кого не секрет, что lj (или просто ЖЖ) аккаунты можно получить, заплатив энную сумму создателям проекта либо выпросив за ящик пива ключ у знакомого, уже имеющего ЖЖ. Дело в том, что ключ активации выдается по истечении недели с того момента, как пользователь зарегистрировался на сайте. Получив пароль к заброшенной учетной записи, ты легко можешь поменять ее имя и личные данные. Но это уже второй вопрос ;). Важно понять, как же можно получить этот самый пароль.

Содержание  Вперед на стр. 058-058-2
ttfb: 3.8890838623047 ms