В этой статье будет обсуждаться техника пассивной атаки на http-соединение без изменения передаваемой информации.
Итак, вы каким-то образом смогли физически или удаленно вклиниться в канал передачи данных, настроить мост или просто получить root-контроль над шлюзом.
Руткит установили, исходные базы слили, вебшелл залили, в cron заложили бомбу замедленного действия, и что теперь? Оговоримся, что в данной статье не рассматриваются методы взлома защищенного соединения, например SSL. Как мы получили этот самый root-доступ, мы тоже не будем рассказывать, оставим место для интриги.
Доступ без root-прав не имеет смысла, так как описанные ниже утилиты требуют высоких привилегий.
С чего нам начать сейчас? И тут же приходит нам на помощь утилита tcpflow .
С его помощью мы можем записывать веб-сессию, хеши авторизации, файлы cookie и передаваемые данные, а также захватывать большинство файлов, таких как изображения, архивы, мультимедиа.
Подав команду есликонфигурация Узнаем, какие интерфейсы присутствуют в системе через маршрут Мы узнаем, как проходит наш трафик.
В случае со шлюзом у нас будет как минимум два интерфейса, один из которых, как правило, смотрит во внутреннюю сеть, другой «вовне».
Единственное, что мы должны знать и всегда помнить, это то, что входящее соединение из локальной сети будет исходящим во «внешнем» интерфейсе.
Итак, возьмем несколько http-соединений, например, из «внутреннего» интерфейса: #tcpflow порт 80 -i eth1 Многие файлы сеансов начинают создаваться в текущем каталоге.
Мы помним это благодаря технологии поддержания активности , в одном соединении может быть сделано несколько запросов, а значит несколько из них можно записать в один файл.
Файлы содержат заголовки, как HTTP-заголовки, так и передаваемые данные.
Это выглядит примерно так: HTTP/1.1 200 ОК Дата: вторник, 01 ноября 2011 г.
, 12:25:18 по Гринвичу Сервер: Апач Последнее изменение: среда, 14 сентября 2011 г.
, 03:48:00 GMT. ETag: "1111111-22222-333333333" Диапазоны принятия: байты Длина контента: 4451 Keep-Alive: таймаут=15, макс=100 Соединение: Поддержание активности Тип контента: изображение/png .
PNG.IHDR.d.,T+3.gAMA.7.tEXtSoftware.Adobe ImageReadyq.e<.
.
PLTE.2.j.*.
N.\.
> .
.
&.
В.
$.
Р.
л.
:.
.
.
мм.
р.
,.
Б.
уу.
{{.
.
а.
\.
!.
з… .
}.
л.
7.Х.
у.
М.
д.А.
=.
.
&ff.~~.
|.
У.
-.
.
.
|.
к.
?… Фильтрация Попробуем отфильтровать данные по строкам, содержащим данные авторизации.
#egrep -ir "Авторизация|Cookie" .
/ Результат будет выглядеть примерно так.
Извините за качество, скриншот с рабочего сервера.
С файлами cookie все просто, просто введите их в свой браузер через какой-то редактор файлов cookie украсть сессию.
Следует помнить, что иногда файлы cookie привязаны к IP-адресу клиента и даже к его Пользовательский агент , поэтому простое удаление файлов cookie ничего не даст. Также легко расшифровать HTTP-АУТ существует всего несколько видов:
- Базовая пара логин:пароль отправляется в кодировке Base64. В данном случае мы берем строку из Authorization и декодируем ее в декодере base64, получаем строку вида имя пользователя:пароль.
- Дайджест, хеш передается из функции MD5(имя пользователя:область:пароль) .
Здесь сложнее.
Вы можете попробовать через радужные столы найти все совпадения строк вида «A:B:C», где A — логин, B — область, C — пароль.
Таких совпадений не должно быть так много, чтобы их потом невозможно было разобрать.
- Прочее: открытый ключ, Kerberos, TLS/SSL – не рассматривается.
#egrep -rnH "POST" .
/ ПОСТ/auth.php HTTP/1.1 Хозяин: blabla.ru. Пользовательский агент: Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 Принять: text/html,application/xhtml+xml,application/xml;q=0,9,*/*;q=0,8 Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3 Принять-кодирование: gzip, deflate Accept-Charset: windows-1251,utf-8;q=0,7,*;q=0,7 ДНТ: 1 Соединение: поддержание активности Реферер: http://bla.ru/auth.php Файл cookie: __utma=25445499.32598290.132041700.132014354.132015499.3; __utmc=25445439; __utmz=25445499.132014100.1.1.utmcsr=(прямой)|utmccn=(прямой)|utmcmd=(нет); Тип контента: приложение/x-www-form-urlencoded Длина контента: 72 text=blabla&login=имя пользователя&пароль=ololo&wefo=onPOST /bla.php HTTP/1.1 Захват файла Также tcpflow в сочетании с полезность прежде всего полезен для перехвата файлов или, скорее, их извлечения из массива необработанных захваченных данных.
Для этого просто используйте передний план в файлах подключения, обработанных tcpflow: #в первую очередь .
/* # ls -la .
/выход/ всего 48 drwxr-xr — 5 root root 4096 1 ноября 18:01. drwxr-xr-x 3 root root 32768 1 ноября 18:01… -rw-r--r-- 1 корень корень 0 1 ноября 18:01 Audit.txt drwxr-xr-- 2 root root 4096 1 ноября 18:01 flv drwxr-xr -- 2 корень корень 4096 1 ноября 18:01 html drwxr-xr -- 2 root root 4096 1 ноября 18:01 php Также неожиданно выяснилось, что с помощью этой утилиты вы можете восстановить файлы с повреждённых носителей, благо файлы по сигнатурам он распознаёт хорошо.
Например, в передовой.
conf Вы даже можете зарегистрировать подписи для пользовательских типов файлов.
Другие примеры работ Перехват FTP-соединений на шлюзе snup: #tcpflow 'функция шлюза и (порт ftp или ftp-данные)' Перехват незашифрованного почтового трафика: #tcpflow TCP-порт 110 #tcpflow TCP-порт 25 Похожий на tcpflow выполняет функцию утилита tcpxtract .
Есть еще сторона утилита httpflow , но в основном используется для отладки http-соединений.
выводы Таким образом, мы показали, что имея физический или удаленный root-доступ к каналу, без образования и сложных знаний можно перехватить любые пользовательские данные с помощью простых утилит. Статья скорее обзорная, так как мне не хотелось писать очередное бездушное «скачал-скомпилировало».
Любознательным людям это не нужно, они и так понимают, чего хотят, но новичок просто обязан изучить весь упомянутый в статье материал и воспользоваться поиском.
Что мне не удалось
- Установите кучу утилит через трубка TCP-поток | в первую очередь.
Они, видимо, не очень дружелюбны друг с другом.
- Эизвлечь с использованием html-файлов переднего плана, сжатых Принять-кодирование: gzip, сдуть , очевидно, в первую очередь не поддерживает такой вид декодирования.
При быстром поиске я не смог найти никаких утилит для этого.
Однако это можно сделать вручную; для каждого файла вам нужно обрезать заголовки http и передать их через sdtin в gzip/tar/deflate.
-
Ищем Смысл В Ревью Кода
19 Oct, 24 -
Как Мы Делали «3D Фотографии»
19 Oct, 24 -
Banker's Rebound - Шуточная Игра О Банкире
19 Oct, 24