0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: информационная безопасность, пентест, pentest, иб, уязвимости windows, uaf, type confusion, heap overflow, stack corruption</p>
1
<p>Теги: информационная безопасность, пентест, pentest, иб, уязвимости windows, uaf, type confusion, heap overflow, stack corruption</p>
2
<p>Третий модуль курса "<a>Пентест. Практика тестирования на проникновение</a>" посвящён структуре ОС Windows и тому, какие существуют механизмы ограничения доступа в этой популярной операционной системе. Но не менее важно знать, какие именно уязвимости используются злоумышленниками, чтобы обойти существующие механизмы ограничения доступа. О них и поговорим.</p>
2
<p>Третий модуль курса "<a>Пентест. Практика тестирования на проникновение</a>" посвящён структуре ОС Windows и тому, какие существуют механизмы ограничения доступа в этой популярной операционной системе. Но не менее важно знать, какие именно уязвимости используются злоумышленниками, чтобы обойти существующие механизмы ограничения доступа. О них и поговорим.</p>
3
<p>На момент написания материала из наиболее распространённых уязвимостей Windows можно выделить четыре:</p>
3
<p>На момент написания материала из наиболее распространённых уязвимостей Windows можно выделить четыре:</p>
4
<p>Давайте вкратце рассмотрим каждую из них.</p>
4
<p>Давайте вкратце рассмотрим каждую из них.</p>
5
<h2>Stack Corruption</h2>
5
<h2>Stack Corruption</h2>
6
<p>Stack Corruption - это повреждение стека или массива данных, которые сохраняются на стеке.</p>
6
<p>Stack Corruption - это повреждение стека или массива данных, которые сохраняются на стеке.</p>
7
<p>Как известно, все программы, которые запускаются на любых языках программирования, попадают в оперативную память. Хранятся они там в виде своеобразных "табличек", и эти таблички разделены на части: в одной части лежат команды, в другой части лежат данные и т. п. Так вот, там, где находятся данные, возможны ситуации, связанные со Stack Corruption.</p>
7
<p>Как известно, все программы, которые запускаются на любых языках программирования, попадают в оперативную память. Хранятся они там в виде своеобразных "табличек", и эти таблички разделены на части: в одной части лежат команды, в другой части лежат данные и т. п. Так вот, там, где находятся данные, возможны ситуации, связанные со Stack Corruption.</p>
8
<p>Стек - именно та ячейка, которая хранит информацию, необходимую для приложения, чтобы оно выполнялось и знало, как именно исполнять алгоритмы (там находятся специальные адреса и данные). Переполнение какой-нибудь переменной, находящейся на стеке, может привести к тому, что специальные адреса, используемые приложением для его корректной работы, могут быть перезаписаны. Перезапись этих адресов является способом перехвата управления и прямым доказательством того, что этот перехват произошёл.</p>
8
<p>Стек - именно та ячейка, которая хранит информацию, необходимую для приложения, чтобы оно выполнялось и знало, как именно исполнять алгоритмы (там находятся специальные адреса и данные). Переполнение какой-нибудь переменной, находящейся на стеке, может привести к тому, что специальные адреса, используемые приложением для его корректной работы, могут быть перезаписаны. Перезапись этих адресов является способом перехвата управления и прямым доказательством того, что этот перехват произошёл.</p>
9
<h2>Heap overflow</h2>
9
<h2>Heap overflow</h2>
10
<p>Речь идёт о переполнении, которое происходит на куче. "На куче" - это если программист написал приложение, которое очень много делает при обработке файлов, соответственно, вместо стека переполнение происходит на куче. Здесь как раз и происходит выполнение команд, то есть отсюда уже забирается информация, которая в дальнейшем будет открывать порт, дампить какие-нибудь значения или переконфигурировать операционную систему.</p>
10
<p>Речь идёт о переполнении, которое происходит на куче. "На куче" - это если программист написал приложение, которое очень много делает при обработке файлов, соответственно, вместо стека переполнение происходит на куче. Здесь как раз и происходит выполнение команд, то есть отсюда уже забирается информация, которая в дальнейшем будет открывать порт, дампить какие-нибудь значения или переконфигурировать операционную систему.</p>
11
<p>Heap overflow - сложно диагностируемая ошибка, так как реализация кучи может быть собственной у каждого ПО.</p>
11
<p>Heap overflow - сложно диагностируемая ошибка, так как реализация кучи может быть собственной у каждого ПО.</p>
12
<h2>Type Confusion and Use-After-Free</h2>
12
<h2>Type Confusion and Use-After-Free</h2>
13
<p>Эти уязвимости можно назвать вспомогательными. Что касается Type Confusion, то это уязвимость, которая позволяет вывести приложение из строя или выполнить дополнительные действия. Она чаще всего используется злоумышленниками для повреждения памяти.</p>
13
<p>Эти уязвимости можно назвать вспомогательными. Что касается Type Confusion, то это уязвимость, которая позволяет вывести приложение из строя или выполнить дополнительные действия. Она чаще всего используется злоумышленниками для повреждения памяти.</p>
14
<p>Use-After-Free (UAF) - уязвимость, при которой процесс может войти в неопределённое состояние. Сам этот класс уязвимости не приводит к проблемам, но при определённых условиях может быть произведено выполнение команд. Например, эти уязвимости могут позволить подменить значения в памяти, что, в свою очередь, может привести к выполнению вредоносного кода либо к остановке и выходу из строя самого приложения.</p>
14
<p>Use-After-Free (UAF) - уязвимость, при которой процесс может войти в неопределённое состояние. Сам этот класс уязвимости не приводит к проблемам, но при определённых условиях может быть произведено выполнение команд. Например, эти уязвимости могут позволить подменить значения в памяти, что, в свою очередь, может привести к выполнению вредоносного кода либо к остановке и выходу из строя самого приложения.</p>
15
15