Faq UnitedQ: Подскажи, как можно определить движок сайта, если админ убрал все баннеры, по которым можно было определить CMS.A: Действительно, определить движок сайта на глаз не всегда представляется возможным, и без использования специальных инструментов тут никак не обойтись. К счастью таковые имеются. Одним из лучших является Whatweb (www.morningstarsecurity.com/research/whatweb) – веб-сканер нового поколения, умеющий идентифицировать системы управления контентом (CMS), платформы для блогов, JavaScript-библиотеки, сервера и т.д. В процессе того, как ты посещаешь какой-либо вебсайт, браузер получает массу невидимой информации о том, как настроен веб-сервер, с помощью какого ПО создавалась страничка и т.д. На данный момент программа поддерживает 250 плагинов, идентифицирующих CMS по различным признакам. Например, даже если админ удалил тэг WordPress, это не собьет сканер с толку, так как плагин для WordPress будет искать еще строку «wp-content». Использовать сканер очень просто, достаточно передать ему в качестве параметра адрес сайта:
Q: Подскажи простой способ сгенерировать словарь для подбора пароля к аккаунту конкретного человека.A: Пентестеры и хакеры сталкиваются с этой задачей практически каждый день. Поэтому уже давно существуют специальные инструменты, которые умеют генерировать списки паролей, принимая в качестве параметра только URL. Например, такой инструмент, как CeWL (www.digininja.org/projects/cewl.php), умеет генерировать словари, путешествуя по заданному сайту до указанной глубины. Однако хакеры – люди ленивые :), и привыкли по максимуму автоматизировать свою работу. Userpass.py (www.pauldotcom.com/userpass.py) – небольшой скриптик на Python, который с помощью Google ищет человека на Linkedin.com, а затем натравливает на найденный профиль CeWL. Если жертва указала в профиле свои аккаунты facebook, myspace и т.д., то данные для создания словаря берутся и оттуда. Работа со скриптом проста: $ python userpass.py "name". Параметр name может быть как именем отдельного человека, так и названием компании (в данном случае будет сгенерирован словарь для всех работников данной компании ). У программы есть несколько интересных опций:
Как видишь, все очень просто. Вдобавок, можно заточить скриптик под свои собственные нужды. Q: Есть ли руткиты для x64?A: Еще некоторое время назад я был бы не уверен. Но теперь точно могу сказать: «Да». Сейчас совершенно очевидно, что нашумевший руткит TDL3, который надолго поселился в головах исследователей из антивирусных компаний, развивается именно в этом направлении. Напомню, что TDL3 считается одним из самых передовых руткитов на сегодняшний день (подробнее можно прочитать в этой статье – www.nobunkum.ru/issue003/tdss-botnet). Однако количество установок новой Win7 x64 постоянно растет, а руткит до этого момента до сих пор не умел осваиваться в системе. Это странно, потому что механизмы, позволяющие инсталлировать на эту платформу, существуют. Тот же концепт (Disable PatchGuard & Driver signature enforcement) механизма обхода проверки подписи в x64 появился еще в начале года в публичном доступе. Авторы нового TDL4 используют техники заражения MBR и старта вредоносного кода раньше самой операционной системы. Подобные методологии уже активно применялись такой малварью, как Mebroot. Так что, вероятно, в ближайшее время x64 уже перестанет быть помехой. Q: Объясни на пальцах, что за новые атаки – DLL-инъекции?A: Есть несколько разновидностей этой атаки. Самые распространенные – атаки на основе функции LoadLibrary. Когда приложение динамически загружает библиотеку DLL без указания полного пути, система Windows пытается найти ее путем линейного поиска в определенном наборе каталогов (так называемый порядок поиска DLL). Если библиотеку удается обнаружить в порядке поиска DLL, она загружается. Однако если ее не удается найти ни в одном из каталогов порядка поиска DLL, система Windows сообщает о сбое загрузки DLL. Ниже указан порядок поиска DLL для функций динамической загрузки DLL LoadLibrary и LoadLibraryEx.
Рассмотрим описанную ниже ситуацию.
В этом сценарии специально созданная библиотека DLL запускается в приложении и получает права текущего пользователя. Для предотвращения описанной атаки можно удалить текущий рабочий каталог приложения из порядка поиска DLL. Для этого нужно вызвать функцию API SetDllDirectory с пустой строкой (""). Если приложение зависит от загрузки библиотеки DLL из текущего каталога, определите его расположение и используйте с функцией LoadLibrary полный путь. Известно, что некоторые разработчики используют функцию LoadLibrary для проверки наличия отдельных DLL с целью определения текущей версии Windows. Следует помнить, что это может сделать приложение уязвимым. Если соответствующая библиотека в действительности отсутствует в среде Windows, в которой выполняется приложение, злоумышленник может поместить в текущий рабочий каталог библиотеку с таким же именем. Если приложение загружает подключаемые модули сторонних компаний и не может использовать полный путь к ним при вызовах функции LoadLibrary, следует удалить текущий рабочий каталог из порядка поиска DLL с помощью функции SetDllDirectory(""), а затем добавить в порядок поиска каталог установки подключаемого модуля с помощью функции SetDllDirectory("каталог_установки_модуля"). Q: А можешь дать примеры небезопасной загрузки библиотек в исходном коде?A: В примере кода ниже приложение выполняет поиск библиотеки «schannel.dll», используя наименее безопасный путь поиска. Если злоумышленник поместит библиотеку с таким именем в текущий рабочий каталог, она будет загружена еще до того, как приложение выполнит поиск нужного файла в каталогах Windows. В примере кода ниже приложение пытается загрузить библиотеку из разных расположений приложения и операционной системы, описанных в начале данного документа, с помощью функции LoadLibrary(). Если нужный файл отсутствует, приложение может попытаться загрузить его из текущего рабочего каталога. В этом примере уровень риска немного ниже, чем в предыдущем. Q: А есть ли тулзы, позволяющие отыскать вызовы небезопасных функций загрузки библиотек? A: Мама-Microsoft зарелизила приложение Process Monitor, которое позволяет разработчикам и администраторам тщательно отслеживать поведение выполняемого процесса. С помощью средства Process Monitor (http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx) можно динамически определять, уязвимы ли приложения для описанных атак. Попробуй запустить приложение, используя определенный каталог в качестве текущего рабочего. Например, дважды щелкни файл с расширением, обработчик которого назначен данному приложению. К тому же разработчик Metasploit разработал на Ruby довольно простую утилиту DLLHijackAuditKit (http://bit.ly/DLLHijackAuditKit) для автоматизированного поиска уязвимых приложений. Запускается он следующим образом:
Далее через «Пуск» выбираем «Start Command Prompt with Ruby», переходим в директорию DLLHijackAuditKit. Теперь запускаем «audit.bat» и готовимся закрыть множество всплывающих окон! После того, как программа сделает все итерации, необходимо будет экспортировать CSV-лог из ProcMon'а. После этого остается проверить полученные результаты с помощью специального скрипта. Для этого переходим в директорию DLLTest и запускаем там скрипт «ruby generate.rb». Q: Как распознать скрытое сканирование Nmap?A: Метод скрытого сканирования Nmap используется в том случае, когда нужно скрыть сам факт сканирования. Методика использует нестандартные комбинации флагов TCP-пакетов, поэтому системный журнал редко такое сканирование фиксирует. Если по каким-то (вероятно, параноидальным) причинам ты все-таки хочешь отлавливать подобные прецеденты, это легко делается с помощью firewall'а. В инете можно найти следующие варианты:
Параметры «--tcp-flags ACK,FIN FIN» описывают комбинацию TCP-флагов. Первый список состояний (ACK,FIN) указывает флаги, которые надо проверить, второй (FIN) проверяет, какие из них установлены. Таким образом, условие соответствует тем пакетам, в которых есть FIN-флаг, но нет ACK. При нормальном TCP-соединении эта комбинация невозможна, что свидетельствует о скрытом сканировании. Q: Можно ли разбить флешку на несколько дисков?A: Основная проблема в том, что Windows считает: раз это флешка, то у нее может быть только один раздел. Даже если поделить каким-нибудь независимым от винды средством вроде GParted (LiveCD на базе Linux'а), то в системе будет определяться только один из разделов. Одно из решений проблемы – заставить систему определять пендрайв не как флешку, а как сменный жесткий диск. Для этого контроллер флешки нужно перевести в режим HDD, в чем в большинстве случаев может помочь утилита BootIt. Увы, под Vista/Windows7 она по умолчанию не работает, поэтому запускать ее придется в режиме совместимости. Больших знаний и умений она не требует: достаточно выбрать из списка букву нужной флешки и нажать на кнопку «Flip Removable Bit». После этого тулза попросит вытащить флешку и вставить ее обратно. Вуаля, если открыть любым менеджером разделов (скажем, через «Управление дисками» в системе), то мы сможем поделить накопитель на несколько разделов. Правда, стоит заметить, что с некоторыми флешками такой фокус все-таки не проходит. Q: Как бы ускорить выполнения кода на Python? Есть скрипт, которые обрабатывает данные. Написал его быстро, а работает он медленно. Есть ли способ увеличить скорость?A: Есть. Проект Psyco (psyco.sourceforge.net) показывает, что выполнять код на Python можно на скорости, сравнимой с полностью компилируемыми языками. В результате использования специального модуля на i386 процессорах можно добавиться 2-100-кратного увеличения производительности, в зависимости от кода. Q: Составляю подборку для изучения вредоносных PDF-файлов. Подскажи инструменты.A: Вот список:
Q: Есть ли возможность, обращаться к сервисам Google из командной строки? Хочу автоматизировать скачивание фотографий c Picasa Web.A: Да, совсем недавно появился пакет googlecl (code.google.com/p/googlecl), позволяющий обращаться к сервисам гугла из командной строки. Примеры использования: Сервис блогов Blogger: Календарь Calendar: Контакты Contacts: Google Docs: Хранилища фотографий Picasa: Видеохостинг Youtube: Все эти консольные утилиты работают через Google Data API и доступны как для Windows, так и Linux. |