07.03.2014

SNMP - Убийца процессов. Как убить процессы Windows с помощью доступа на запись SNMP

image

Недавно я столкнулся с ситуацией, когда у меня был доступ на запись через SNMP, и у меня возникла идея использовать его для снижения защищенности сервера, но, к сожалению, успешными оказались только Denial of Service (замена IP, имени и т.д.) и бессмысленный POC (через добавление контактов).

Автор: DOUG

Недавно я столкнулся с ситуацией, когда у меня был доступ на запись через SNMP, и у меня возникла идея использовать его для снижения защищенности сервера, но, к сожалению, успешными оказались только Denial of Service (замена IP, имени и т.д.) и бессмысленный POC (через добавление контактов).

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

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

Без дальнейших церемоний… Я представляю вам “SNMP - убийцу процессов”.

Он еще не окончательно доработан, и у меня есть целый список того, что нужно добавить, как например, port forwarding с использованием дополнительного меню выбора IPtables или nc в качестве SNMPSET и SNMPWALK (которые, к сожалению, ограничены в использовании портов - только по умолчанию).

Кроме того, я немного намудрил в расцветкой! Прошу простить меня за это =)

Код можно найти по этому адресу.

Данный скрипт запускает несколько базовых функций с помощью host mibs, а также snmpwalk и snmpset, встроенные в Kali. Для использования скрипта, убедитесь, что у вас установлены все перечисленные средства.

Кроме того, стоит отметить, что тесты проводились на корпоративных решениях, как IBM Tivoli Netcool SNMP Agent. Не все SNMP агенты позволяют писать в mib “hrswrunstatus”, как snmp агент по умолчанию в windows. Такое ощущение, что Microsoft решила делать все по-своему, а не в соответствии с нормами RFC (у RFC говорится “MAX-ACCESS Read/Write”).

http://tools.ietf.org/html/rfc2790. Если вкратце, то защита Microsoft лучше.

Сценарий:

Вы тестируете устройство под управлением ОС Windows, на котором запущен SNMP, и которое допускает изменение community string со стороны только определенных пользователей. Служба SNMP запущена от системы.

Давайте запустим программу и рассмотрим некоторые скриншоты:

Сначала скрипт запрашивает значения Target, Community String и Version:

Затем он выполняет простой тест, чтобы определиться, правильно ли настроен SNMP.

Если нажать Enter, мы увидим меню выбора вариантов. Если вы уже знаете PID процесса, который вам надо убить, выберите 2, в противном случае для получения списка PID и имен процессов выберите 1.

Результат выбора 1 представлен ниже. Там показаны 2 колонки: PID и имя процесса. Далее программа снова возвращается к меню.

Теперь нам известны PID, мы можем выбрать опцию 2 и убить процесс, который нам необходимо.

В этом примере я выбрал процесс с PID 1234.

С помощью скрипта среди прочего я смог убить RDP сессию, межсетвой экран и антивирус.

Надеюсь, кому-нибудь скрипт будет полезен.

или введите имя

CAPTCHA