HTB Mentor. Извлекаем информацию из SNMP и пентестим API веб-сервиса

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

  • Разведка
  • Сканирование портов
  • Точка входа
  • Сканирование SNMP
  • Сканирование веб-сервера
  • Точка опоры
  • Продвижение
  • Локальное повышение привилегий
  • Пользователь james
  • Пользователь root

В этом рай­тапе я покажу, как работать со служ­бой SNMP, что­бы получить информа­цию, которая поможет в прод­вижении ата­ки. Так­же мы взло­маем сайт и получим RCE бла­года­ря уяз­вимос­ти в API.

На­ша цель — зах­ват учеб­ной машины Mentor с пло­щад­ки Hack The Box. Уро­вень слож­ности — сред­ний.

warning

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

 

Разведка

 

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

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

10.10.11.193 mentor.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 — служ­ба OpenSSH 8.9p1 и 80 — веб‑сер­вер Apache 2.4.52. На пор­те 80 так­же отме­чаем редирект на сайт http://mentorquotes.htb/. Так как мы рас­кры­ли новый домен, добав­ляем и его в файл /etc/hosts.

10.10.11.193 mentor.htb mentorquotes.htb

Так­же всег­да сто­ит про­верять четыре пор­та UDP, где может работать служ­ба SNMP.

sudo nmap -p161,162,10161,10162 -sU 10.10.11.193

Ре­зуль­тат ска­ниро­вания пор­тов UDP

И мы видим, что SNMP работа­ет на пор­те 161. SNMP — это про­токол прик­ладно­го уров­ня, он дела­ет воз­можным обмен дан­ными меж­ду сетевы­ми устрой­ства­ми. Про­токол поз­воля­ет сис­темно­му адми­нис­тра­тору про­водить монито­ринг, кон­тро­лиро­вать про­изво­дитель­ность сети и изме­нять кон­фигура­цию под­клю­чен­ных устрой­ств.

В SNMP исполь­зует­ся модель безопас­ности сommunity-based (на осно­ве стро­ки сооб­щес­тва). Фак­тичес­ки это иден­тифика­тор поль­зовате­ля или пароль, который отправ­ляет­ся вмес­те с зап­росом. Если стро­ка сооб­щес­тва невер­на, агент игно­риру­ет зап­рос. Давай поп­робу­ем проб­рутить эти community-стро­ки ска­нером onesixtyone.

onesixtyone -c snmp_default_pass.txt 10.10.11.193

Ре­зуль­тат перебо­ра community-строк

Наш­ли толь­ко дефол­тную стро­ку public, ничего полез­ного она нам не дала.

 

Точка входа

 

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

У меня бывали слу­чаи, ког­да популяр­ные средс­тва ска­ниро­вания комь­юни­ти‑строк ничего не находи­ли, а стро­ки все же сущес­тво­вали. По этой при­чине сле­дующим скрип­том про­буем зап­росить базовую информа­цию с помощью snmpbulkwalk по каж­дой стро­ке из сло­варя. В ито­ге рас­кры­ваем еще одну комь­юни­ти‑стро­ку internal.

while read line; do echo $line ; snmpbulkwalk -c $line -v2c 10.10.11.193 . 2>/dev/null | head -n 1
done < /usr/share/metasploit-framework/data/wordlists/snmp_default_pass.txt

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

Го­воря о SNMP, сто­ит упо­мянуть MIB. MIB — это иерар­хичес­кая база дан­ных со све­дени­ями об устрой­стве. У каж­дого типа устрой­ства своя MIB-таб­лица: у прин­тера в ней содер­жится информа­ция о сос­тоянии кар­трид­жей, а у ком­мутато­ра — дан­ные о тра­фике. Бла­года­ря MIB сетевой менед­жер зна­ет, какую информа­цию он может зап­росить у аген­та устрой­ства.

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

Ответить

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