Общая методология проведения внутреннего теста на проникновение

Ant0ny_T

New member
31.12.2019
1
0
BIT
0
Что представляет из себя внутренний пентест?

Внутренний тест на проникновение - комплекс мероприятий, имитирующих действия злоумышленника,
направленных на получение доступа к конфиденциальной информации, ее неправомерного использования,
изменения или уничтожения, при наличии доступа во внутреннию сеть компании.


Почему это важно?

Достаточно посмотреть сводку новостей по кибератакам APT группировок. Большинство взломов
крупных корпораций, банков, объектов промышленной инфраструктуры начинается с атаки на рядовых
служащих данной организации. Далее злоумышленники используя вредоносное программное
обеспечение пытаются проникнуть глубже в систему, закрепится в ней и скрыть следы
своей активности. Для предотвращения не только самих атак, но и возможности
углубления внутрь корпоративной системы одним из привентивных методов защиты
как раз и является проведение внутреннего пентеста.

Недавняя история связанная со Сбербанком также является примером не обеспеченной
внутренней безопасности системы.


Цель тестирования.

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


Объект воздействия.

Вся внутренняя сеть компании, начиная от рабочих станций и файловых серверов, заканчивая
кофеварками, холодильниками и любыми другими устройствами имеющими выход в сеть(локальную или глобальную).


Стороны, учавствующие в тестировании.

Тестирование может проводится как внутрикорпоративно, так и с привлечением сторонних лиц(компаний).
Проходить тесты могут как при участии службы безопасности компании(при наличии такой) для отработки
мер реагирования, защиты и предотвращения инцидентов, так и без них, для оценки защищенности
системы в целом и правильной конфигурации отдельных ее элементов.

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

Возможно также так называемое "скрытое привлечение"(прим. автора). Это подразумевает под собой
незнание сотрудников компании о том что проводится анализ защищенности внутреннего периметра,
возможность атакующими использовать рабочие станции служащих компании, в отдельных случаях
использование методов социальной инженерии в отношении служащих компании с целью повышения
привилегий в системе, либо получения доступа к важным частям внутренней инфраструктуры.


Результат тестирования.

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

Второй отчет предназначается уже техническому персоналу(необязательно всем). Он должен
нести в себе достаточное количество информации по найденным брешам в защите, а также
исчерпывающие рекомендации по их устранению и недопущению в будущем.


План действий.

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

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

Так как диапозон хостов на которых может оказаться здоумышленник ограничен,
предполагаем что мы оказались на хосте рядового служащего, имеющие минимальные
привилегии в корпоративной системе.



1) Определение цели.

Зачастую это обговаривается перед началом тестирования, но я палагаю, так как злоумышленник
может не знать местоположение искомой(целевой) информации, такой вариант имеет право на жизнь -
отсутствие знаний о критично важной информации у тестировщика.


2) Определение нашего местоположения.

В данном случае проводится анализ хоста на котором находится тестировщик. Он включает в себя определение:

a) операционной системы
b) служб взаимодействующих с другими узлами в тестиромой сети
c) антивирусного програмного обеспечения
d) привилегий на текущей машине и возможностей их повышения
e) служб не взаимодествующих с другими узлами, но имеющими публичные уязвимости
(могут быть предустановлены на других хостах)
d) анализ сетевого трафика
(личные данные, посещаемые ресурсы, корпоративная переписка без шифрования, криптослабые учетные данные
или отсутствие шифрования в целом для авторицазии\аутентификации и др.)


3) Определение характера данных на хосте.

На данном этапе происходит поиск и анализ корпоративных данных, их значения и важности, а так
же возможности их использования для дальнейшего проникновения. Дальше происходит поиск личных данных
"владельца"(независимо от того были ли у тестировщика изначально какие-либо данные о служащем), их
анализ на возможность использования в атаках с использованием социальной инжинерии, при условии
наличия у него доступа к другим узлам инфраструктуры, или атак нацеленных на его коллег, при нахождении
компрометирующих данных(пример фото).


4) Определение периметра.

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


5) Определение слабостей конфигурации.

Существует большая вероятность, что системы сконфигурированы схожим образом, если не однообразно. Обнаружив
некоторые критичные ошибки в конфигурации системы(грубый пример - открытый на чтение /etc/shadow), тестировщик
сможет использовать их и на других хостах системы.


6) Тестирование на повышение привилегий.

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


7) Тестирование хоста на наличие вирусного по.

Внутренний тест включает не только попытку проникновения, но и проверку внутренней сети на наличие руткитов,
троянов - не была ли она скомпрометирована ранее.


8) Тестирование программного обеспечения внутреннего периметра.

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


9) Тестирование безопасности сетевого оборудования.

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


10) Тестирование устройств не относящихся к функциональной инфраструктуре.

На данном этапе проводится тестирование перифирии - принтеры, кофеварки и все торчащие наружу устройства.


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


Прмичание:
Думаю вы заметили что о самом тестировании служб и сервисов не сказано ни слова. Из-за большого разнообразия
потенциально возможного по не представляется возможным охватить даже большую часть, иначе эта методичка разрастется
до нечитаемых и длинных размеров. Предполагается что каждый сам освоит и дополнит ее "под себя" в каждом
отдельном пункте. Но важно придерживаться простой последовательности, которая подходит для тестирования
практически любого по.

- Определение службы сервиса.
- Тестирвоание неправильной конфигурации.
- Поиск публичных уязвимостей.
- Поиск публичных эксплоитов под эти уязвимости.
- Создание эксплоитов под уязвимости без публичных эксплоитов.
- Тестирование на текущем программном обеспечении.
 
Последнее редактирование модератором:

explorer

Platinum
05.08.2018
1 080
2 475
BIT
0
Не увидел, что статья подходит под какой-либо пункт конкурса.

Темы, с которыми можно участвовать в конкурсе
  1. - История поиска интересной уязвимости в публичном сервисе/продукте/операционной системе;
  2. - Ваша разработка для проведения пентеста;
  3. - Полноценный CheatSheet по одной узкой теме из этичного хакинга;
  4. - Hardware: Истории о том, как вы собирали дешевые аналоги дорогих устройств на базе ардуино или распберри пи. Или ломали таковые.
  5. - Как ломали IoT.

1. Уязвимость в сервисе? - нет
2. Свой софт? - нет
3. CheatSheet? - нет
4. Ардуино или распберри пи? - нет
5. IoT? - нет
 

mrOkey

Well-known member
14.11.2017
967
975
BIT
0
Действительно, никак не сочетается с темами конкурса.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!