<~DarkNode~>
01.01.2017, 20:54
Привет колеги.
Добро пожаловать на курс Web Application Pentesting.
В этой статье мы с вами поговорим о:
Вспомним немного заголовки ответа сервера
Поговорим о HTTP аутентификации ,ее видах
Посмотрим на HTTP базовую аутентификацию (HTTP Bacic Auth)
Посмотрим как атаковать HTTP Basic Auth c помощью:
http-brute скрипта от Nmap
http-login auxiliary модуля вMetasploit
Перебор пароля с помощьюHydra (Дополнение от меня)
Итак прежде чем мы начнем знакомство за HTTP аутентификацией давайте немножко вспомним коды ответа веб сервера:
https://forum.antichat.xyz/attachments/4770427/12.png
В прошлой статье (https://forum.antichat.xyz/threads/558690/) мы познакомились с вами как можно отсылать на сервер различные запросы (GET,POST,HEAD и т.д) И на каждый такой запрос сервер нам отвечает в первую очередь статус кодом ответа.То есть это может быть успешное обращение к ресурсу(2xx),в результате которого мы получаем желаемый контент,перенаправление на другой ресурс(3xx), ошибки на стороне сервера(5xx),информационные заголовки (1xx) или ошибки на стороне клиента (4xx)
Конкретно в этой статье мы будем встречаться с заголовком 401 - не пройдена авторизация клиента.
Теперь давайте поговорим об аутентификации HTTP
Аутентификация в HTTP бывает только двух видов:
HTTP Bacic Auth(Базовая Аутентификация)
HTTP Digest Auth(Цифровая Аутентификация)
Это важно понимать!! Так как различные формы аутентификации, windows ntlm аутентификации и т.д
не имеют никакого отношения к стандартам HTTP протокола и HTTP аутентификации.
https://forum.antichat.xyz/attachments/4770427/14.png
Теперь давайте посмотрим на слайд выше, и попытаемся понять как же работает аутентификация в HTTP. Как можно наблюдать, все очень и очень просто:
Клиент запрашивает защищенный ресурс у сервера
Сервер просит клиента отправить ему необходимый логин:пароль
Клиент отправляет Серверу логин:пароль
В случае успешной проверки присланных данных сервер дает доступ на запрашиваемый защищенный ресурс,в противном (если логин и пароль не прошли проверку ) случае отдаст статус код ответа401
Вроде как все понятно.
Давайте посмотрим как это выглядит на практике через анализатор сетевого трафика WireShark:
В PentesterAcademy есть бесплатная площадка для тренировки полученных знаний:
Давайте откроемтаск по http basic auth
https://forum.antichat.xyz/attachments/4770427/1.png
Видим что это задания которое мы решим немножко поже в этой статье,немного забегая наперед возьмем пока уже готовый логин и пароль от этого таска( только в целях демонстрации работы аутентификации)
логин: admin
пароль: aaddd
Откроем и запускаем WireShark и сперва давайте посмотрим на трафик неудачной аутентификации:
https://forum.antichat.xyz/attachments/4770427/15.png
https://forum.antichat.xyz/attachments/4770427/16.png
https://forum.antichat.xyz/attachments/4770427/17.png
Как можете наблюдать сервер передается запрос методом POST и появляется заголовок (header|хедер)Authorization со значением Basic и base64 символы. На что сервер ответил нам 401 статус кодом и мы не получили желаемый контент.
Теперь давайте попробуем зайти под валидными кредами|creds(логин:пароль):
https://forum.antichat.xyz/attachments/4770427/18.png
https://forum.antichat.xyz/attachments/4770427/19.png
Как видим идет запрос на сервер к защищенному ресурсу через метод POST но в хедере Authorization идут уже валидные логин и пароль (admin:aaddd) в base64 кодировке(Wireshark имеет в себе функционал декодировать base64 кодировку) Если кто хочет проверить то можно легко это сделать даже в командной строке :
https://forum.antichat.xyz/attachments/4770427/20.png
Как результат успешной проверки логина и пароля на стороне сервера ,нам вернулся заголовок ответа 200 ОК и желаемый контент)
Надеюсь здесь более менее понятно как работает базовая HTTP аутентификация ,о Digest Auth мы поговорим в следующей статьи.
Теперь давайте перейдем к атаке на базовую аутентификацию:
Для начала как в рамках курсах Вивека посмотрим атаки с помощью Nmap и Metasploit Framework
Сразу же хочу заметить плюсы такой атаки
https://forum.antichat.xyz/attachments/4770427/21.png
Суть атаки как вы уже смогли догадаться в том , что мы перебираем возможные пароли и логины к запрашиваемому ресурсу через брутфорс по словарю.
И так давайте вернемся к нашему таску от Вивека:
Видим подсказку (hint|хинт) о том , что валидный логин или admin или nick
а пароль состоит из 5 латинских символов в нижнем регистре и состоит только из трех букв a,s,d
https://forum.antichat.xyz/attachments/4770427/1.png
Создадим сперва словарик утилитой crunch:
https://forum.antichat.xyz/attachments/4770427/2.png
Подготовим файл с логинами:
https://forum.antichat.xyz/attachments/4770427/4.png
Сходим на официальный сайт nmap за документацией по http-brute скрипту
Смотрим необходимые параметры:
https://forum.antichat.xyz/attachments/4770427/3.png
Наша команда для нмап выглядит примерно так:
nmap -p 80 --script http-brute --script-args 'http-brute.hostname=pentesteracademylab.appspot.com,htt p-brute.method=POST,http-brute.path=/lab/webapp/basicauth,passdb=./pass.txt,userdb=./users.txt' -v pentesteracademylab.appspot.com -n
И результат:
https://forum.antichat.xyz/attachments/4770427/5.png
Как видим все на отлично отработало) Наш логин пароль сбрутился за 9 секунд.
Идем дальше.
Давайте добьемся того же результата через метасплоит через модуль http_login:
https://forum.antichat.xyz/attachments/4770427/22.png
Признаюсь честно ,при попытке выполнить этот модуль на таске Вивека - он у меня не отработал,наверное упустил какуе то мелочную деталь в опциях,но пока нету времени разбираться с проблемой так что попытаюсь разобраться немножко позже и укажу где была проблема,а пока для демонстрации возьму вдс-ку одного товарища)
https://forum.antichat.xyz/attachments/4770427/8.png
Заполним необходимые опции и запустим :
https://forum.antichat.xyz/attachments/4770427/9.png
Проверим результат SoolFaa привет)
https://forum.antichat.xyz/attachments/4770427/10.png
Теперь от себя немного добавлю.
Так же HTTP Basic аутентификация прекрасно брутится с помощью утилиты Hydra
hydra -l admin -P pass.txt pentesteracademylab.appspot.com http-post /lab/webapp/basicauth
https://forum.antichat.xyz/attachments/4770427/7.png
Как видим результат тот же)
Вот видосик к статье:
Всем спасибо) Продолжение следует)
Понравилась статья - жмакни лайк
Вот пдф-ка со слайдами небольшая по статье смотрите во вложенных файлах.
Добро пожаловать на курс Web Application Pentesting.
В этой статье мы с вами поговорим о:
Вспомним немного заголовки ответа сервера
Поговорим о HTTP аутентификации ,ее видах
Посмотрим на HTTP базовую аутентификацию (HTTP Bacic Auth)
Посмотрим как атаковать HTTP Basic Auth c помощью:
http-brute скрипта от Nmap
http-login auxiliary модуля вMetasploit
Перебор пароля с помощьюHydra (Дополнение от меня)
Итак прежде чем мы начнем знакомство за HTTP аутентификацией давайте немножко вспомним коды ответа веб сервера:
https://forum.antichat.xyz/attachments/4770427/12.png
В прошлой статье (https://forum.antichat.xyz/threads/558690/) мы познакомились с вами как можно отсылать на сервер различные запросы (GET,POST,HEAD и т.д) И на каждый такой запрос сервер нам отвечает в первую очередь статус кодом ответа.То есть это может быть успешное обращение к ресурсу(2xx),в результате которого мы получаем желаемый контент,перенаправление на другой ресурс(3xx), ошибки на стороне сервера(5xx),информационные заголовки (1xx) или ошибки на стороне клиента (4xx)
Конкретно в этой статье мы будем встречаться с заголовком 401 - не пройдена авторизация клиента.
Теперь давайте поговорим об аутентификации HTTP
Аутентификация в HTTP бывает только двух видов:
HTTP Bacic Auth(Базовая Аутентификация)
HTTP Digest Auth(Цифровая Аутентификация)
Это важно понимать!! Так как различные формы аутентификации, windows ntlm аутентификации и т.д
не имеют никакого отношения к стандартам HTTP протокола и HTTP аутентификации.
https://forum.antichat.xyz/attachments/4770427/14.png
Теперь давайте посмотрим на слайд выше, и попытаемся понять как же работает аутентификация в HTTP. Как можно наблюдать, все очень и очень просто:
Клиент запрашивает защищенный ресурс у сервера
Сервер просит клиента отправить ему необходимый логин:пароль
Клиент отправляет Серверу логин:пароль
В случае успешной проверки присланных данных сервер дает доступ на запрашиваемый защищенный ресурс,в противном (если логин и пароль не прошли проверку ) случае отдаст статус код ответа401
Вроде как все понятно.
Давайте посмотрим как это выглядит на практике через анализатор сетевого трафика WireShark:
В PentesterAcademy есть бесплатная площадка для тренировки полученных знаний:
Давайте откроемтаск по http basic auth
https://forum.antichat.xyz/attachments/4770427/1.png
Видим что это задания которое мы решим немножко поже в этой статье,немного забегая наперед возьмем пока уже готовый логин и пароль от этого таска( только в целях демонстрации работы аутентификации)
логин: admin
пароль: aaddd
Откроем и запускаем WireShark и сперва давайте посмотрим на трафик неудачной аутентификации:
https://forum.antichat.xyz/attachments/4770427/15.png
https://forum.antichat.xyz/attachments/4770427/16.png
https://forum.antichat.xyz/attachments/4770427/17.png
Как можете наблюдать сервер передается запрос методом POST и появляется заголовок (header|хедер)Authorization со значением Basic и base64 символы. На что сервер ответил нам 401 статус кодом и мы не получили желаемый контент.
Теперь давайте попробуем зайти под валидными кредами|creds(логин:пароль):
https://forum.antichat.xyz/attachments/4770427/18.png
https://forum.antichat.xyz/attachments/4770427/19.png
Как видим идет запрос на сервер к защищенному ресурсу через метод POST но в хедере Authorization идут уже валидные логин и пароль (admin:aaddd) в base64 кодировке(Wireshark имеет в себе функционал декодировать base64 кодировку) Если кто хочет проверить то можно легко это сделать даже в командной строке :
https://forum.antichat.xyz/attachments/4770427/20.png
Как результат успешной проверки логина и пароля на стороне сервера ,нам вернулся заголовок ответа 200 ОК и желаемый контент)
Надеюсь здесь более менее понятно как работает базовая HTTP аутентификация ,о Digest Auth мы поговорим в следующей статьи.
Теперь давайте перейдем к атаке на базовую аутентификацию:
Для начала как в рамках курсах Вивека посмотрим атаки с помощью Nmap и Metasploit Framework
Сразу же хочу заметить плюсы такой атаки
https://forum.antichat.xyz/attachments/4770427/21.png
Суть атаки как вы уже смогли догадаться в том , что мы перебираем возможные пароли и логины к запрашиваемому ресурсу через брутфорс по словарю.
И так давайте вернемся к нашему таску от Вивека:
Видим подсказку (hint|хинт) о том , что валидный логин или admin или nick
а пароль состоит из 5 латинских символов в нижнем регистре и состоит только из трех букв a,s,d
https://forum.antichat.xyz/attachments/4770427/1.png
Создадим сперва словарик утилитой crunch:
https://forum.antichat.xyz/attachments/4770427/2.png
Подготовим файл с логинами:
https://forum.antichat.xyz/attachments/4770427/4.png
Сходим на официальный сайт nmap за документацией по http-brute скрипту
Смотрим необходимые параметры:
https://forum.antichat.xyz/attachments/4770427/3.png
Наша команда для нмап выглядит примерно так:
nmap -p 80 --script http-brute --script-args 'http-brute.hostname=pentesteracademylab.appspot.com,htt p-brute.method=POST,http-brute.path=/lab/webapp/basicauth,passdb=./pass.txt,userdb=./users.txt' -v pentesteracademylab.appspot.com -n
И результат:
https://forum.antichat.xyz/attachments/4770427/5.png
Как видим все на отлично отработало) Наш логин пароль сбрутился за 9 секунд.
Идем дальше.
Давайте добьемся того же результата через метасплоит через модуль http_login:
https://forum.antichat.xyz/attachments/4770427/22.png
Признаюсь честно ,при попытке выполнить этот модуль на таске Вивека - он у меня не отработал,наверное упустил какуе то мелочную деталь в опциях,но пока нету времени разбираться с проблемой так что попытаюсь разобраться немножко позже и укажу где была проблема,а пока для демонстрации возьму вдс-ку одного товарища)
https://forum.antichat.xyz/attachments/4770427/8.png
Заполним необходимые опции и запустим :
https://forum.antichat.xyz/attachments/4770427/9.png
Проверим результат SoolFaa привет)
https://forum.antichat.xyz/attachments/4770427/10.png
Теперь от себя немного добавлю.
Так же HTTP Basic аутентификация прекрасно брутится с помощью утилиты Hydra
hydra -l admin -P pass.txt pentesteracademylab.appspot.com http-post /lab/webapp/basicauth
https://forum.antichat.xyz/attachments/4770427/7.png
Как видим результат тот же)
Вот видосик к статье:
Всем спасибо) Продолжение следует)
Понравилась статья - жмакни лайк
Вот пдф-ка со слайдами небольшая по статье смотрите во вложенных файлах.