Продолжим разговор за интересные случаи в работе пентестеров. В прошлом посте речь шла о внешних тестированиях на проникновение, сегодня же расскажем о наиболее занимательных внутренних пентестах, реализованных нами за последнее время. Суть их в том, что мы должны были, находясь во внутреннем периметре заказчика, получить максимальные привилегии в домене и добраться до каких-либо важных данных. Случалось удивляться. Но обо всем по порядку.

Случай 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’е, которые бы блокировали такой трафик, не было. Так мы протащили весь наш инструментарий внутрь периметра и смогли отлично поработать.

Напоследок


Повторю рекомендации из предыдущей части, потому что повторение — мать заикания учения. Проводите периодические тестирования на проникновение — они помогут вам найти тонкие места в вашей защите, как, например, в кейсе 3. Вы можете считать, что патчить системы во внутреннем периметре не обязательно, но иногда это приводит к тяжелым последствиям.

Постройте систему патч-менеджмента — устраняйте не только «громкие» уязвимости (вроде EternalBlue или BlueKeep), но и менее известные, но не менее опасные в случае их эксплуатации (как в случае с HP AM). Словом, следите за всеми вашими системами.

Комментарии (7)


  1. DenisTrunin
    19.12.2019 14:29

    «Дождались, когда админ залочил рабочий стол и ушел (на обед?). Дальше дело было за малым» — А о каком малом идет речь? т.е. как можно разлочить станцию?


    1. Gutt
      19.12.2019 16:12

      Зачем разлочивать, если у нас есть админские права на его машине?


      1. VitalKoshalew
        19.12.2019 22:27
        +1

        Если у вас есть админские права на машине сисадмина, то вам совершенно плевать, лочится KeePass или не лочится. Всё, game over.


        1. Daynine Автор
          20.12.2019 08:37

          Отвечу просто в ветке:
          DenisTrunin как правильно заметили выше — зайти под его учеткой, сделать экспорт паролей и использовать их в сети.

          VitalKoshalew админ это не всегда сотрудник обладающий правами админа в домене, это может быть администратор какой-либо системы. База паролей позволяет получить доступы чуть по другому.


          1. VitalKoshalew
            20.12.2019 21:08

            Где я упоминал домен? Есть права администратора на машине и доступ к ней по сети — всё, game over, нет смысла играть в «безопасность» с ненужными дополнительными ограничениями.


  1. Lissov
    20.12.2019 02:23

    Мучиться пришлось недолго. Прокси действительно блокировал многое, не было возможности даже просто подключиться к своему http-серверу (его нет в белых списках), копипаст запрещен, браузер отказывался ходить куда-либо, кроме http (80/tcp) и https(443/tcp), и куда-то, кроме внутренних порталов. Попробовали wget через powershell — тоже не работает, без прокси не ходит, а прокси запрещает.

    Есть же софт, который быстро-быстро «печатает клавиатурой». Можно просто «напечатать» нужный софт прямо в блокноте. Есть и в хардверном исполнении, можно использовать как флешку на изолированных сетях. Скорость небольшая, но утилиты обычно маленькие и это дело времени.


    1. Daynine Автор
      20.12.2019 08:39

      Да, можно и так получить доступ к инструментарию.
      Тут скорее это пример того, что иногда забывают настроить FW до конца.