HTB Pit. Находим и эксплуатируем службу SNMP

Содержание статьи

  • Разведка
  • Сканирование портов
  • Точка входа
  • Сканирование SNMP
  • Точка опоры
  • Уязвимость загрузки файлов
  • Продвижение
  • Получение учетных данных
  • Локальное повышение привилегий

Се­год­ня мы раз­берем­ся с про­токо­лом SNMP, который пред­назна­чен для монито­рин­га устрой­ств в сети, но иног­да пред­став­ляет угро­зу безопас­ности. Так­же взло­маем SeedDMS и узна­ем о ACL в Linux. Все это — в рам­ках про­хож­дения сред­ней по слож­ности машины Pit с пло­щад­ки Hack The Box.

warning

Под­клю­чать­ся к машинам с HTB рекомен­дует­ся толь­ко через VPN. Не делай это­го с компь­юте­ров, где есть важ­ные для тебя дан­ные, так как ты ока­жешь­ся в общей сети с дру­гими учас­тни­ками.

 

Разведка

 

Сканирование портов

До­бав­ляем IP машины в /etc/hosts:

10.10.10.241 pit.htb

И запус­каем ска­ниро­вание пор­тов.

Справка: сканирование портов

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

На­ибо­лее извес­тный инс­тру­мент для ска­ниро­вания — это Nmap. Улуч­шить резуль­таты его работы ты можешь при помощи сле­дующе­го скрип­та.

#!/bin/bashports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr 'n' ',' | sed s/,$//)nmap -p$ports -A $1

Он дей­ству­ет в два эта­па. На пер­вом про­изво­дит­ся обыч­ное быс­трое ска­ниро­вание, на вто­ром — более тща­тель­ное ска­ниро­вание, с исполь­зовани­ем име­ющих­ся скрип­тов (опция -A).

Ре­зуль­тат работы скрип­та

Ви­дим три откры­тых пор­та: 22 (служ­ба SSH), 80 (веб‑сер­вер nginx 1.14.1) и 9090 (тоже веб‑сер­вер). Начина­ем с веба, пос­коль­ку на SSH без учет­ки обыч­но делать нечего, а брут­форсом машины с HTB не про­ходят­ся.

Глав­ная стра­ница pit.htb

Глав­ная стра­ница pit.htb, порт 9090

Но на http://pit.htb/ нас встре­чает стра­ница nginx, а на пор­те 9090 — фор­ма авто­риза­ции CentOS Linux. Как вид­но из ска­на Nmap, на пор­те 9090 мы можем получить еще одно домен­ное имя — dms-pit.htb (поле сер­тифика­та commonName). Закиды­ваем и этот домен в /etc/hosts.

10.10.10.241 dms-pit.htb

Гля­нем, что там.

Глав­ная стра­ница сай­та dms-pit.htb

Увы, ничего осо­бен­но весело­го — нас встре­чает ошиб­ка 403.

Справка: сканирование веба c gobuster

Од­но из пер­вых дей­ствий при тес­тирова­нии безопас­ности веб‑при­ложе­ния — это ска­ниро­вание методом перебо­ра катало­гов с целью поис­ка скры­той информа­ции и недос­тупных обыч­ным посети­телям фун­кций. Для это­го мож­но исполь­зовать прог­раммы вро­де dirsearch и dirb. Но я обыч­но пус­каю в ход более быс­трый gobuster.

При запус­ке исполь­зуем сле­дующие парамет­ры:

  • dir — ска­ниро­вание дирек­торий и фай­лов;
  • -t — количес­тво потоков;
  • -u — URL-адрес для ска­ниро­вания;
  • -w — сло­варь для перебо­ра;
  • --timeout — вре­мя ожи­дания отве­та.

По­луча­ются вот такие коман­ды:

gobuster dir -t 128 -u http://pit.htb -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt --timeout 30s
gobuster dir -t 128 -u http://dms-pit.htb -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt --timeout 30s

Но и это нам не помога­ет, никако­го кон­тента мы не находим. Тог­да я решил сос­тавить кар­ту единс­твен­ного дос­тупно­го нам сай­та, за который отве­чает порт 9090. Перех­ватыва­ем зап­рос в Burp Proxy и в кон­текс­тном меню выбира­ем Engagement tools → Discover content. Ука­зыва­ем глу­бину ска­ниро­вания, инте­ресу­ющие нас рас­ширения фай­лов и бэкапов. Спус­тя некото­рое вре­мя мы получим кар­ту сай­та.

Кар­та сай­та на пор­те 9090

То­же ничего инте­рес­ного, но зато мы узна­ли, что исполь­зует­ся Cockpit. В этой CMS был най­ден экс­пло­ит, при­водя­щий к RCE, но у меня он не отра­ботал. Я даже рас­терял­ся, неуже­ли нуж­но реаль­но бру­тить SSH?! Но в моем чек‑лис­те еще оста­валась неот­мечен­ной гра­фа ска­ниро­вания пор­тов UDP…

 

Точка входа

 

Сканирование SNMP

За­пус­каем ска­ниро­вание наибо­лее веро­ятных пор­тов UDP:

sudo nmap --min-rate=1000 -sU -p161,162,10161,10162 pit.htb

Глав­ная стра­ница сай­та

В резуль­тате находим служ­бу SNMP на пор­те 161. SNMP — это прос­той про­токол управле­ния сетью, исполь­зуемый для монито­рин­га устрой­ств (нап­ример, мар­шру­тиза­торов, ком­мутато­ров, прин­теров). Тут сле­дует сра­зу объ­яснить два важ­ных понятия:

  • MIB (Management Information Base) — база дан­ных информа­ции управле­ния, хра­нящая информа­цию обо всех объ­ектах (парамет­рах и нас­трой­ках) устрой­ства;
  • OID (Object IDentifier) — чис­ловой иден­тифика­тор объ­екта в дереве MIB.

При работе с уда­лен­ной сис­темой по SNMP все зап­росы про­исхо­дят через OID, отра­жающий положе­ние объ­екта в дереве объ­ектов MIB. Но что­бы получить все стро­ки, нам сна­чала нуж­но прой­ти сво­еоб­разную аутен­тифика­цию, ука­зав стро­ку‑иден­тифика­тор сооб­щес­тва. Но так как мы ее не зна­ем, ее нуж­но переб­рать, к при­меру с помощью hydra. Переби­рать будем по сло­варю из набора Seclists.

hydra -P /usr/share/seclists/Discovery/SNMP/common-snmp-community-strings.txt pit.htb snmp

Пе­ребор стро­ки community

Все OID сис­темы мож­но получить, прос­каниро­вав устрой­ство сле­дующей коман­дой:

snmpbulkwalk -On -r1 -v2c -c public pit.htb 1

Дан­ные, получен­ные из сис­темы

Дан­ные, получен­ные из сис­темы

Дан­ные, получен­ные из сис­темы

Мы видим некото­рую слу­жеб­ную информа­цию, получа­ем некото­рые пути (сре­ди них — дирек­тория веб‑сер­вера /var/www/html/), рас­пре­деле­ние памяти и спи­сок сущес­тву­ющих поль­зовате­лей. А путь /var/www/html/seeddms51x/seeddms дает нам знать о соот­ветс­тву­ющем пути на веб‑сер­вере: http://dms-pit.htb/seeddms51x/seeddms.

Фор­ма авто­риза­ции SeedDMS

Нас встре­чает фор­ма авто­риза­ции SeedDMS.

Источник: xakep.ru

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *