Иллюстрированный самоучитель по защите в Интернет

Часто используемые методы удаленного взлома

Атаки на систему DNS

DNS является одной из наиболее популярных служб, используемых в Internet и большинстве корпоративных интрасетей. Как и следовало ожидать, такое широкое распространение службы DNS оказалось одной из причин многочисленных атак на эту систему. Взломщики постоянно пытаются воспользоваться слабыми местами одной из наиболее стандартной реализации службы DNS системы UNIX– пакета BIND (Berkeley Internet Name Domain). Кроме того, DNS является одной из нескольких служб, которые практически всегда оказываются необходимыми и функционируют по всему периметру корпоративной сети, обеспечивая доступ к Internet. Таким образом, любая ошибка службы DNS практически всегда приводит к возможности удаленного проникновения (зачастую с привилегиями root). В одном из отчетов по вопросам безопасности, который был опубликован в 1999 году и взбудоражил общественное мнение, сообщалось, что более 50% всех соединенных с Internet серверов DNS уязвимы для атак взломщиков. Так что подобная опасность абсолютна реальна. Соблюдайте осторожность!

Несмотря на то, что с пакетом BIND связано множество проблем обеспечения безопасности (http://www.cert.org/advisories/CA-98.05.bind_problems.html), мы сфокусируем все внимание на одной из последних и наиболее разрушительных атак. В ноябре 1999 года координационный центр CERT выпустил информационный бюллетень, в котором сообщалось о нескольких серьезных изъянах, обнаруженных в пакете BIND (http://www.cert.org/advisories/CA-99-14-bind.html). В Нем сообщалось о шести изъянах, среди которых наиболее опасным было удаленное переполнение буфера, возникающее при проверке пакетом BIND записей NXT. В результате переполнения буфера взломщик может выполнить на удаленном сервере любую команду с привилегиями root. Попробуем разобраться с основными принципами такой атаки.

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

[ tsunami]# dig
(§10.1.1.100 version.bind chaos txt
"" DIG 8.1 "" 010.1.1.100 version.bind chaos txt
(1 server found)
res options: init recurs defnam dnsrch
got answer:
-"HEADER" – opcode: QUERY, status: NOERROR, id: 10
flags: qr aa rd ra; QUERY: 1, ANSWER:
1, AUTHORITY: 0, ADDITIONAL:
QUERY SECTION:
version.bind, type = TXT, class = CHAOS
ANSWER SECTION: VERSION.BIND. OS CHAOS TXT"8.2.2"

В приведенном фрагменте для определения используемой версии службы DNS демону named передается соответствующий запрос. Сейчас стоит еще раз подчеркнуть важность процесса предварительного сбора данных. В рассматриваемом примере на целевом сервере DNS используется программа named версии 8.2.2, которая уязвима для атак NXT. Для этой же атаки оказываются уязвимыми также версии 8.2 и 8.2.1 этой программы.

Для проведения такой атаки взломщик должен контролировать сервер DNS, связанный с удаленным доменом. На этом сервере DNS взломщику необходимо также создать поддомен, связанный с его собственным доменом. В данном примере предполагается, что сетью взломщика является attackers.org, поддомен называется hash и сервер DNS запущен на узле с именем quake. В данном случае взломщику необходимо добавить в файл /var /named/attackers, org .zone узла quake следующую запись, а затем перезапустить программу named с помощью интерфейса ndc.

subdomain IN NS hash.attaokers.org.

Помните о том, что сервер DNS, контролируемый взломщиком, запущен на узле quake.

После компиляции утилиты взлома, созданной группой ADM (http://packet storm.securify.com/9911-exploits/adm-nxt.с), ее нужно запустить с отдельного узла (tsunami), имеющего корректную архитектуру. Поскольку программа named используется в многих версиях UNIX, то утилитой adm-nxt поддерживаются следующие архитектуры.

[tsunami]# adm-nxt
Usage: adm-nxt architecture [command]
Available architectures:
1: Linux Redhat 6.x – named 8.2/8.2.1 (from rpm)
2: Linux SolarDiz's non-exec
stack patch – named 8.2/8.2.1
3: Solaris 7 (Oxff) – named 8.2.1
4: Solaris 2.6 – named 8.2.1
5: FreeBSD 3.2-RELEASE – named 8.2
6: OpenBSD 2.5 – named 8.2
7: NetBSD 1.4.1 – named 8.2.1
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.