Продолжим разговор за интересные случаи в работе пентестеров. В прошлом посте речь шла о внешних тестированиях на проникновение, сегодня же расскажем о наиболее занимательных внутренних пентестах, реализованных нами за последнее время. Суть их в том, что мы должны были, находясь во внутреннем периметре заказчика, получить максимальные привилегии в домене и добраться до каких-либо важных данных. Случалось удивляться. Но обо всем по порядку.
Случай 1. Менеджер паролей хорошо, но им нужно уметь пользоваться
Мы проводили внутреннее тестирование на проникновение для крупного клиента, у которого уже были натасканные сисадмины и служба ИБ. В ходе работ получили несколько учеток, с которыми смогли уже ходить по сети и подключаться к машинам других пользователей. В какой-то момент обосновались на машине одного из сисадминов и обнаружили там эльдорадо. Сисадмин использовал действительно сложные пароли (подобрать такие было бы трудно) и даже хранил их в keepass’e. Но вот незадача: сам менеджер паролей никогда не блокировался — ни через 15 минут, ни в момент блокировки экрана. С таким бонусом мы без шума и пыли получили административные права в критичных системах заказчика.
Похожий случай был и у другого клиента. Тоже сложные пароли, тоже keepass, правда там все-таки стояла автоблокировка через 15 минут. Как мы смогли это использовать? Дождались, когда админ залочил рабочий стол и ушел (на обед?). Дальше дело было за малым.
Если вы используете менеджеры паролей, используйте их с умом — включайте опцию блокировки при lock screen’е и при отсутствии активности в течение 1–5 минут.
Случай 2. Уволенные сотрудники
Очень часто в ходе внутренних пентестов мы получаем доступы, подбирая пароли — пользователям обычно лень придумывать сложные комбинации, особенно когда парольная политика требует их обновления каждый месяц. Часто просто изменяют цифры — так, superpassword_03.2019 спустя месяц превращается в superpassword_04.2019 и далее по списку.
Но иногда заказчики попадаются совсем уж на ровном месте. Так, проводя атаку password spraying в одной из компаний, мы получили некоторое количество учеток и одна из них нас особенно заинтересовала: она имела достаточно широкие права, хоть и не админские. Для нее был установлен легкий пароль (qaz12345), а в комментариях к этой записи в AD значилось, что данный сотрудник уволен — судя по дате, почти год назад. То есть после увольнения учетную запись не заблокировали, а просто сбросили пароль до «дефолтного» и поставили опцию «сменить пароль при 1-ом входе». На счастье заказчика мы стали первыми, кому предлагалось это сделать.
Случай 3. Патчи? Неее, не надо
Самый сложный этап внутреннего пентеста — получение первой учетной записи. Существует много средств и способов, как это сделать, начиная со шпионского дефиле по офису в поисках заветных стикеров с паролями и ловли страждущих на клонированный офисный вай-фай, заканчивая атаками на Kerberos и спреингом паролей учетных записей. Но иногда уже при первоначальном сканировании можно обнаружить ПО, которое никто не обновлял уже десять тысяч лет (зачем вообще обновлять софт во внутренней инфраструктуре?).
В одном таком проекте набрели на управляющее ПО от HP, в котором нашлась RCE без аутентификации — из нее и получили часть учетных записей.
?\_(?)_/?
Казалось, дальше все будет просто — Mimikatz, да и дело в шляпе, однако выяснилось, что полученные учетки не обладают нужными нам привилегиями. Как говорится, в готовности к облому наша сила: с помощью магии nmap’a и скрипта smb-enum-shares выяснили, что одна из учеток имела права локального админа на тестовом сервере, которым в этот момент активно занимались доменные админы=).
Случай 4. Блокировки
Напоследок поговорим немного про возможные блокировки доступов. Работы по «внутрянке» мы проводим чаще всего с удаленным доступом. Схема выглядит так: подключаемся к VPN, получаем внутренний адрес, после этого цепляемся к выделенной для нас машине по RDP. И с этой машины мы уже начинаем вести работы, но для этого нам нужно каким-то образом донести свой инструментарий. У многих наших клиентов для получения доступов в интернет используются прокси-серверы с белыми списками сайтов, иногда даже с белыми списками портов (например, можно подключиться к веб-сайту на 80 порт, но на 8081 уже нельзя). Это действительно несколько затрудняет работу, особенно если запрещают копипаст через RDP.
Но куда ж в нашем деле без нюансов. У одного клиента были очень строгие правила и нам не разрешили залить наш инструментарий официальным способом, так сказать воспрепятствовали проникновению через «главный вход». Мол, вот вам виртуалка и минимальные права — мучайтесь, как реальные хакеры.
Мучиться пришлось недолго. Прокси действительно блокировал многое, не было возможности даже просто подключиться к своему http-серверу (его нет в белых списках), копипаст запрещен, браузер отказывался ходить куда-либо, кроме http (80/tcp) и https(443/tcp), и куда-то, кроме внутренних порталов. Попробовали wget через powershell — тоже не работает, без прокси не ходит, а прокси запрещает. Зато встроенная утилита винды FTP отлично работала — правил на firewall’е, которые бы блокировали такой трафик, не было. Так мы протащили весь наш инструментарий внутрь периметра и смогли отлично поработать.
Напоследок
Повторю рекомендации из предыдущей части, потому что повторение — мать
Постройте систему патч-менеджмента — устраняйте не только «громкие» уязвимости (вроде EternalBlue или BlueKeep), но и менее известные, но не менее опасные в случае их эксплуатации (как в случае с HP AM). Словом, следите за всеми вашими системами.
Комментарии (7)
Lissov
20.12.2019 02:23Мучиться пришлось недолго. Прокси действительно блокировал многое, не было возможности даже просто подключиться к своему http-серверу (его нет в белых списках), копипаст запрещен, браузер отказывался ходить куда-либо, кроме http (80/tcp) и https(443/tcp), и куда-то, кроме внутренних порталов. Попробовали wget через powershell — тоже не работает, без прокси не ходит, а прокси запрещает.
Есть же софт, который быстро-быстро «печатает клавиатурой». Можно просто «напечатать» нужный софт прямо в блокноте. Есть и в хардверном исполнении, можно использовать как флешку на изолированных сетях. Скорость небольшая, но утилиты обычно маленькие и это дело времени.Daynine Автор
20.12.2019 08:39Да, можно и так получить доступ к инструментарию.
Тут скорее это пример того, что иногда забывают настроить FW до конца.
DenisTrunin
«Дождались, когда админ залочил рабочий стол и ушел (на обед?). Дальше дело было за малым» — А о каком малом идет речь? т.е. как можно разлочить станцию?
Gutt
Зачем разлочивать, если у нас есть админские права на его машине?
VitalKoshalew
Если у вас есть админские права на машине сисадмина, то вам совершенно плевать, лочится KeePass или не лочится. Всё, game over.
Daynine Автор
Отвечу просто в ветке:
DenisTrunin как правильно заметили выше — зайти под его учеткой, сделать экспорт паролей и использовать их в сети.
VitalKoshalew админ это не всегда сотрудник обладающий правами админа в домене, это может быть администратор какой-либо системы. База паролей позволяет получить доступы чуть по другому.
VitalKoshalew
Где я упоминал домен? Есть права администратора на машине и доступ к ней по сети — всё, game over, нет смысла играть в «безопасность» с ненужными дополнительными ограничениями.