logo       

LOGS: GIAC GCIA Version 3.4 Practical Detect Blaine Hein: msg#00013

security.intrusions

Subject: LOGS: GIAC GCIA Version 3.4 Practical Detect Blaine Hein

Hello,

Attached are the three detects required for the SANS GCIA certification
assignment question 2. This includes a reposting of my first two
detects. Any comments would be greatly appreciated.

Regards,

Blaine Hein



1 Source of Trace:
1.1 Location of file
This detect was extracted from the file 2002.9.28 downloaded from
http://www.incidents.org/logs/Raw/.
Further supporting information (in the form of 2 more very similar
detects were obtained from the file 2002.9.29 from the same web site.
For the sake of clarity the network layout and description of the detect
are based on the first file.
1.2 Network Layout

All of the captured packets contain two MAC addresses beginning with
[00:00:0C] on the internal side and [00:03:E3] on the external side.
When these two MAC address fragments are referenced to a vendor MAC
address table (http://www.coffer.com/mac_find/) the resulting vendor is
CISCO in both cases. This means that the IDS probe is physically located
between 2 CISCO routers with no other communicating hosts between the
two routers. The internal network appears to be the address range of
32.245.0.0/16

+=========+ +=========+
Internal | | | | External
=========| CISCO |=========+=========| CISCO |=========
| | | | |
+=========+ | +=========+
+=========+
| |
| IDS |
| |
+=========+


2 Detect was generated by:

2.1 Raw Detect Information

Snort intrusion detection system version 2.1.2 for Win32 with the
default rule set. Rule triggered is

[**] [116:97:1] (snort_decoder): Short UDP packet, length field >
payload length [**]
[Classification: Potentially Bad Traffic] [Priority: 2]
10/28-04:10:12.336507 0:3:E3:D9:26:C0 -> 0:0:C:4:B2:33 type:0x800
len:0x5C
80.63.124.198:0 -> 32.245.98.91:0 UDP TTL:112 TOS:0x0 ID:314 IpLen:20
DgmLen:78
Len: 129

"Raw" packet extracted from SNORT without ruleset (based on a search for
packets from 80.63.124.198 turned up the following single datagram:

10/28-04:10:12.336507 0:3:E3:D9:26:C0 -> 0:0:C:4:B2:33 type:0x800
len:0x5C
80.63.124.198:0 -> 32.245.98.91:0 UDP TTL:112 TOS:0x0 ID:314 IpLen:20
DgmLen:78
0x0000: 0E 25 00 00 00 89 00 3A 4D 16 01 00 00 10 00 01
.%.....:M.......
0x0010: 00 00 00 00 00 00 20 43 4B 41 41 41 41 41 41 41 ......
CKAAAAAAA
0x0020: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41
AAAAAAAAAAAAAAAA
0x0030: 41 41 41 41 41 41 41 00 00 21 AAAAAAA..!

As an interesting bit of trivia, note the error in Snort indicating a
source port of 0 instead of 3621. To eliminate all confusion, here is
the real packet extracted with WinDump:

windump -xXn -r ..\in\2002.9.28 -s 0 net 80.63.0.0/16
04:10:12.336507 IP 80.63.124.198.3621 > 32.245.98.91.0: udp 129
0x0000 4500 004e 013a 0000 7011 e4f8 503f 7cc6 E..N.:..p...P?|.
0x0010 20f5 625b 0e25 0000 0089 003a 4d16 0100 ..b[.%.....:M...
0x0020 0010 0001 0000 0000 0000 2043 4b41 4141 ...........CKAAA
0x0030 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA
0x0040 4141 4141 4141 4141 4141 4100 0021 AAAAAAAAAAA..!

2.2 Explanation of Trigger Stimulus

Bytes 2 and 3 of the captured packet indicate that the total length of
the IP packet and included data are 0x0043 (78 bytes) in length
(highlighted in yellow). However, Bytes 24 and 25 (Decimal) indicate
that the UDP datagram length is 0x0089 (137 Bytes) in length. As this
is larger than the entire 78 byte length of the IP datagram, an alert is
triggered.

While the malformed packet size information is of interest, the
remainder of the packet information is of more interest and is actually
irrelevant to the original detect. This will be discussed in much more
detail in section 4.

3 Probability the source address was spoofed:

3.1 Type of Detect
UDP attacks directed at port 0 are unlikely to be anything other than an
attempt at a DOS attack. Based on that assumption, the source address
would highly likely be spoofed. The only reference to this I have found
to Port 0 DOS attacks is CVE-1999-0675 (detailed in section 4 below)
which refers to a Checkpoint Firewall -1 vulnerability. As there is no
evidence of a VPN involved in this configuration, and as this
vulnerability is now approaching 5 years old, this is not likely to be
the actual attack implemented here.
However, based on "google" searches for information on the payload
(CKAAAAAA...), I believe that this is an unsuccessful attempt at a
crafted packet, and that the detection based on the current rule set was
purely coincidental. As will be shown in the analysis in section 4,
this attack was likely intended as an information gathering exercise
prior to the launching of a real attack. Based on that assumption, the
IP address(es) would not be spoofed. More detail to justify the
validity of this assumption is provided in section 4.
3.2 Potential Source of Attack

inetnum: 80.63.124.0 - 80.63.124.255
netname: TELEDANMARK-ADSL-USERS
descr: TDC NetExpres users
country: DK
Source IP address from 2002.9.28 file

IP Address: 211.223.8.0-211.223.8.255
Network Name: KORNET-INFRA000001
Connect ISP Name: KORNET
Connect Date: 20031129
Registration Date: 20031209
Source IP address from 2002.9.29
The two source IP addresses in question resolve to the two
geographically distinct areas, though caution must be used as the event
date predates the Korean registration. There are not sufficient numbers
of events to make a positive determination, but this still looks to me
like the IP addresses are not spoofed due to the apparent information
gathering mission.
4 Description of attack:
The analysis of this attack is somewhat speculative as there were two
distinct oddities to this packet which seem to be unrelated. There is
the incorrect size of the packet and the apparent insertion of 2 bytes
within the UDP header. These two irregularities lead to this detect
having similarities to the following detects:
* Port 0 DOS / Packet length mismatch
* System Scan / SMB Name Wildcard
4.1 DOS
Based on the packet sent, there is a small possibility that this was a
DOS attack against the router. If the packet size had been correct, the
following alert would have triggered based on the destination port being
0.

alert udp $EXTERNAL_NET any <> $HOME_NET 0 (msg:"BAD-TRAFFIC udp port 0
traffic"; reference:cve,CVE-1999-0675; reference:nessus,10074;
classtype:misc-activity; sid:525; rev:5;)

In its current form, the UDP datagram length rule triggers before the
Port 0 rule is parsed. As a result the port 0 rule is not triggered.
There is no evidence that the destination host even exists. Therefore,
it is impossible to confirm or deny the DOS intent of this packet with
this level of detail. However, this would be a stretch of the
imagination. The one clear item from the log files; if this was a DOS
attack against the router, it did not succeed.

4.2 System Scan

The fact that a single packet was sent in a one day period, and two
packets of a very similar nature were sent on the second day, makes me
believe that this is an attempt at a slow scan. It is quite possible
that there is a script tool (with a bug?) which is implementing this
scan. An interesting exercise would be to send this packet to an
existing system and look for a response to determine if this is really a
bug, or an attempt at subterfuge to throw the IDS analyst off the scent.

If the 2 bytes at offset 22 and 23 were deleted and the remaining
datagram were shifted left accordingly (to correct the "bug"), the
packet would have been destined for port 137. With this assumption, the
remainder of the packet would have made more sense as the packet length
would then be 0x003a (58 bytes) which would have matched the IP datagram
length of 78 bytes (58 bytes UDP datagram + 20 bytes IP header.) The
resulting packet (with the last two bytes intact would be the port 137
SMB Name Wildcard attack. The default rule set shipped with Snort
2.1.12 does not appear to have a rule to detect this attack

4.3 Evidence of Packet Crafting
The following two packets were captured from the 2002.9.29 data file
(the next day.) The existence of two packets in close proximity allows
us to perform a little more analysis.

[**] (snort_decoder): Short UDP packet, length field > payload length
[**]
10/29-21:16:27.826507 0:3:E3:D9:26:C0 -> 0:0:C:4:B2:33 type:0x800
len:0x5C
211.223.8.214:0 -> 32.245.161.79:0 UDP TTL:109 TOS:0x0 ID:25767 IpLen:20
DgmLen:78
Len: 129

=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
=+

[**] (snort_decoder): Short UDP packet, length field > payload length
[**]
10/29-21:16:33.676507 0:3:E3:D9:26:C0 -> 0:0:C:4:B2:33 type:0x800
len:0x5C
211.223.8.214:0 -> 32.245.161.117:0 UDP TTL:109 TOS:0x0 ID:62887
IpLen:20 DgmLen:78
Len: 129

=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
=+

C:\Snort\bin>windump -xXn -r ..\in\2002.9.29 -s 0 net 211.223.0.0/16
21:16:27.826507 IP 211.223.8.214.1026 > 32.245.161.79.0: udp 129
0x0000 4500 004e 64a7 0000 6d11 33e8 d3df 08d6 E..Nd...m.3.....
0x0010 20f5 a14f 0402 0000 0089 003a 0696 0100 ...O.......:....
0x0020 0010 0001 0000 0000 0000 2043 4b41 4141 ...........CKAAA
0x0030 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA
0x0040 4141 4141 4141 4141 4141 4100 0021 AAAAAAAAAAA..!
21:16:33.676507 IP 211.223.8.214.1026 > 32.245.161.117.0: udp 129
0x0000 4500 004e f5a7 0000 6d11 a2c1 d3df 08d6 E..N....m.......
0x0010 20f5 a175 0402 0000 0089 003a 0670 0100 ...u.......:.p..
0x0020 0010 0001 0000 0000 0000 2043 4b41 4141 ...........CKAAA
0x0030 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA
0x0040 4141 4141 4141 4141 4141 4100 0021 AAAAAAAAAAA..!

The source port is the same for both packets (highlighted in Yellow),
and the "error" in all three packets is identical. These are crafted
packets.

4.4 Apparent bug in recent versions of Snort
All three detected packets have source ports of 0 reported by Snort.
However, the packets do not have this source port as can be seen in the
Windump packets.

5 Attack mechanism:
5.1 DOS

Packet size mismatches are common denominators in several
attacks. Normally they attempt to cause a crash, or cause the execution
of selected code. In this case, a poor UDP implementation would be left
with a buffer under run possibly resulting in random data if the buffer
was not properly initialized. This random data could theoretically
cause a crash.
5.2 SMB Name Wildcard
This is the normal structure of the Netbios name query. When
resolving a name with only the IP address available, windows machines
will send these queries as part of normal operations. The notable
string in the udp datagram "CKAAA..." is generated from a null Netbios
name, "00 00 00..." as a wildcard with a translation function being
performed to complete the mapping.
However, when these queries arrive from an external network,
they represent a threat to the network based on the information provided
in the response which could include:
(Source:
http://www.digitaltrust.it/anachnids/IDS177/research.html)
1. The NetBIOS name of the server.
2. The Windows NT workgroup domain name.
3. Login names of users who are logged into the server.
4. The name of the administrator account if they are logged into
the server.
The detected packets are not generated by the standard netbios
name server. Instead they have been crafted to provide a more directed
approach to scanning a network.
6 Correlations:
The SMB Name Wildcard, the Port 0 DOS, and the packet length mismatches
are not new attacks.
SMB wildcard attacks have been reported quite extensively from 1999
onwards. The following links provide a quite good analysis.
http://www.sans.org/resources/idfaq/port_137.php
http://www.digitaltrust.it/arachnids/IDS177/research.html
http://www.giac.org/practical/GCIA/Sebastien_Pratte_GCIA.pdf
http://www.finchhaven.com/pages/incidents/030102_udp_137.html
CAN-1999-0621
The port 0 DOS against the Checkpoint Firewall-1 was documented in 1999.
CVE-1999-0675
The detected packet (including the apparent error has been previously
detected by Andrew Evans on 9 July 2003
(http://cert.uni-stuttgart.de/archive/intrusions/2003/07/msg00071.html)
and by
Reto Baumann on 7 Mar 2003.
(http://cert.uni-stuttgart.de/archive/intrusions/2003/03/msg00090.html)

7 Evidence of active targeting:

This attack does not represent active targeting of particular systems.
Quite the opposite, this attack is the general fishing exercise (looking
for systems, and looking for any response to the probing.)

8 Severity:

severity = (criticality + lethality) (system countermeasures + network
countermeasures)

Criticality 1: This attack is designed to perform a slow scan of a
network while attempting to mislead the analyst of the real intent.
However, at best, only the existence of a system on the network would be
determined. Had the packets been crafted correctly, the attack would
have also yielded more information relating to the roles of the detected
systems (e.g. workstations vs. servers. This correction would result in
the Criticality being raised to 2 in my opinion.
Lethality 1: This attack only provides mapping information for
targeting a future directed attack against the network. There is no
immediate damage to the system, only a reduction in "security by
obscurity."
System countermeasures 2: There are no responses to these packets.
However, as there are only 3 captured packets over a 2 day period that
does not provide a warm fussy feeling that the internal hosts are well
protected. Based on the network configuration discussed below, I am not
inclined to be charitable in the area of system countermeasures.
Network countermeasures 2: As the network owner has created the RAW log
files for our studies, it is a safe assumption that there actually is an
IDS system located at the same location. However, in order to limit the
vast number of low tech attacks and noise caused by the lack of good
networking practices out on the Internet, I would expect to see a better
configuration on the CISCO router connecting this network to the
INTERNET. Based on sound practices for router configurations, I would
not expect to see source broadcast addresses nor LAN protocols entering
from the WAN. The current configuration allows ports 137 and 139 in
through the external router, along with source broadcast addresses.
This adds an unnecessary burden on the security analyst.
Overall (1 + 1) - (2+2) = - 2. The most formulated working variation on
this detect is the SMB Name Wildcard which is effectively a pre attack
probe. While the countermeasures did not score well, this is partially
due to the unknown nature of the scanned network.
9 Defensive recommendation:

The network involved with this detect appears to be quite large. The
location of the IDS sensor appears to be as close to the outside of the
network as possible. As such, a second IDS inside the firewall is
needed to determine what makes it into the network. In this manner the
analyst has a better picture of where rules need to be improved while
still providing insight as to who is knocking on the door.
In addition, there are some basic housekeeping rules which need to be
implemented on the external router. Even if the router is owned by the
ISP, these recommendations should still be implemented. First: LAN
protocols and addresses do not belong on the WAN. This means that the
standard network O/S protocols such as TCP ports 135, 139, 445 and UDP
ports 137, 138, and 445 should not pass through the external router in
either direction (as source or destination ports.) Private and Wildcard
IP addresses should also be blocked in both directions through the
external firewall.
These rules should, as much as possible, also be implemented on the
internal router. In the case where several internal routers converge to
a single external router, this may not always be possible to completely
implement.
10 Multiple choice test question:

21:16:27.826507 IP 211.223.8.214.1026 > 32.245.161.79.0: udp 129
0x0000 4500 004e 64a7 0000 6d11 33e8 d3df 08d6 E..Nd...m.3.....
0x0010 20f5 a14f 0402 0000 0050 0696 0100 0010 ...O.....:......
0x0020 0001 0000 0000 0000 2043 4b41 4141 4141 .........CKAAAAA
0x0030 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA
0x0040 4141 4141 4141 4100 0021 0021 AAAAAAAAA..!..
Q: What rule will trigger based on the above packet?
A) [**] [116:97:1] (snort_decoder): Short UDP packet, length field
> payload length [**]
B) [13]alert udp $EXTERNAL_NET any <> $HOME_NET 0 (msg:"BAD-TRAFFIC
udp port 0 traffic"; reference:cve,CVE-1999-0675;
reference:nessus,10074; classtype:m isc-activity; sid:525; rev:5;)
C) Both
D) None
A: A
The Snort decoder runs before the other rule files. A questions has been
raised regarding processing order of Snort version 1.9.1, but I have not
been able to confirm this behavior)
11 Source of Trace #2:
Location of trace
This detect was extracted from a tcpdump capture off of my home network
on 22.04.2004 between 08:52:48 (UTC) and 19:53:29 (UTC).
Network Layout
My home network consists of a DSL modem, hub, and 2 computers. The
first computer is a general purpose system (not logged into the DSL
modem during the capture timeframe.) The second computer is configured
as an IDS analysis system with Snort, Apache, MySQL, ACID, and
EtherPeek. As the described configuration was not generating
interesting packets needed to complete my assignment, the personal
firewall was turned off for the duration of the capture. IP address
assignment is dynamic, so there was no advance indication to the world
that this system with several listening services would be live.

+=========+ +=========+
External | | Internal | |
=========|DSL Modem|=========+=========| Home PC |
| | | | |
+=========+ | +=========+
+=========+
| |
| IDS & |
| Web Svr |
+=========+

12 Detect was generated by:
Snort intrusion detection system version 2.1.2 for Win32.

There are three detects analyzed here as they are actually parts of the
same attack. I originally selected the first detect shown here as I
could not find a significant amount of analysis already performed.
However, shortly into the analysis, I determined a link with an alert on
an earlier packet. Later on when I started to gather more technical
evidence, I found another detect was also included in the same data
stream. As such the three alerts are included together (not in
chronological order.)
First Selected rule triggered is

[**] [119:4:1] (http_inspect) BARE BYTE UNICODE ENCODING [**]
04/22-08:14:09.456949 0:2:3B:2:67:D2 -> 0:10:A7:5:62:CA type:0x8864
len:0x5DE
211.45.217.3:54291 -> 217.136.26.209:80 TCP TTL:107 TOS:0x0 ID:5528
IpLen:20 DgmLen:1480 DF
***A**** Seq: 0x6EEA5655 Ack: 0xBF8BFB3F Win: 0xFFFF TcpLen: 20

The raw packet from WinDump is:

08:14:09.456949 PPPoE [ses 0x9616] IP 1482: IP 211.45.217.3.54291 >
XXX.XXX.XXX.209.80: . 1441:2881(1440) ack 1 win 65535 (DF)
0x0000 1100 9616 05ca 0021 4500 05c8 1598 4000 .......!E.....@.
0x0010 6b06 540d d32d d903 0000 00d1 d413 0050 k.T..-.........P
0x0020 6eea 5655 bf8b fb3f 5010 ffff 7d98 0000 n.VU...?P...}...
0x0030 b102 b102 b102 b102 b102 b102 b102 b102 ................
.
.
.
0x02f0 b102 b102 b102 b102 b102 b102 b102 b190 ................
0x0300 9090 9090 9090 9090 9090 9090 9090 9090 ................
.
.
.
0x05c0 9090 9090 9090 9090 9090 9090 9090 9090 ................

In a more user friendly format for display (Etherpeek): this packet
looks like:


Packet Info
Flags: 0x00
Status: 0x00
Packet Length: 1506
Timestamp: 09:14:09.456949000 04/22/2004
Ethernet Header
Destination: 00:10:A7:05:62:CA Unex Tech:05:62:CA
Source: 00:02:3B:02:67:D2 Redback Net:02:67:D2
Protocol Type: 0x8864 PPPoE Session
PPP over Ethernet
Version: 1
Type: 1
Code: 0x00 Session
Session Id: 38422
Length: 1482
Point-to-Point Protocol
PPP 0x0021 IP, Internet Protocol
IP Header - Internet Protocol Datagram
Version: 4
Header Length: 5 (20 bytes)
Differentiated Services:%00000000
0000 00.. Default
.... ..x. Reserved
.... ...x Reserved

Total Length: 1480
Identifier: 5528
Fragmentation Flags: %010
0.. Reserved
.1. Do Not Fragment
..0 Last Fragment

Fragment Offset: 0 (0 bytes)
Time To Live: 107
Protocol: 6 TCP - Transmission Control Protocol
Header Checksum: 0x540D
Source IP Address: 211.45.217.3
Dest. IP Address: XXX.XXX.XXX.209
TCP - Transport Control Protocol
Source Port: 54291
Destination Port: 80 http
Sequence Number: 1860851285
Ack Number: 3213622079
TCP Offset: 5 (20 bytes)
Reserved: %000000

TCP Flags: %010000 .A....
0. .... (No Urgent pointer)
.1 .... Ack
.. 0... (No Push)
.. .0.. (No Reset)
.. ..0. (No SYN)
.. ...0 (No FIN)

Window: 65535
TCP Checksum: 0x7D98
Urgent Pointer: 0
No TCP Options
HTTP - Hyper Text Transfer Protocol
Continuation of existing HTTP
stream<STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><
STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><ST
X><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX>
<STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><S
TX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX
><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><
STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><ST
X><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX>
<STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><S
TX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX
><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><
STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><ST
X><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX>
<STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><S
TX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX
><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><
STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><ST
X><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX>
<STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><S
TX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX
><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><
STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><ST
X><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX>
<STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><S
TX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX><STX
>
FCS - Frame Check Sequence
FCS: 0x00000000 Calculated

After a short examination of the related packets the following detect is
also seen to be related to the same attack as it appears immediately
prior to the first detect and within the same http session.

Detect #2 rule triggered is (Packet previous to detect #1):
[**] [119:15:1] (http_inspect) OVERSIZE REQUEST-URI DIRECTORY [**]
04/22-08:14:09.452902 0:2:3B:2:67:D2 -> 0:10:A7:5:62:CA type:0x8864
len:0x5DE
211.45.217.3:54291 -> 217.136.26.209:80 TCP TTL:107 TOS:0x0 ID:5527
IpLen:20 DgmLen:1480 DF
***A**** Seq: 0x6EEA50B5 Ack: 0xBF8BFB3F Win: 0xFFFF TcpLen: 20

The Etherpeek decode of this packet is as follows.


Packet Info
Flags: 0x00
Status: 0x00
Packet Length: 1506
Timestamp: 09:14:09.452902000 04/22/2004
Ethernet Header
Destination: 00:10:A7:05:62:CA Unex Tech:05:62:CA
Source: 00:02:3B:02:67:D2 Redback Net:02:67:D2
Protocol Type: 0x8864 PPPoE Session
PPP over Ethernet
Version: 1
Type: 1
Code: 0x00 Session
Session Id: 38422
Length: 1482
Point-to-Point Protocol
PPP 0x0021 IP, Internet Protocol
IP Header - Internet Protocol Datagram
Version: 4
Header Length: 5 (20 bytes)
Differentiated Services:%00000000
0000 00.. Default
.... ..x. Reserved
.... ...x Reserved

Total Length: 1480
Identifier: 5527
Fragmentation Flags: %010
0.. Reserved
.1. Do Not Fragment
..0 Last Fragment

Fragment Offset: 0 (0 bytes)
Time To Live: 107
Protocol: 6 TCP - Transmission Control Protocol
Header Checksum: 0x540E
Source IP Address: 211.45.217.3
Dest. IP Address: 217.136.26.209
TCP - Transport Control Protocol
Source Port: 54291
Destination Port: 80 http
Sequence Number: 1860849845
Ack Number: 3213622079
TCP Offset: 5 (20 bytes)
Reserved: %000000

TCP Flags: %010000 .A....
0. .... (No Urgent pointer)
.1 .... Ack
.. 0... (No Push)
.. .0.. (No Reset)
.. ..0. (No SYN)
.. ...0 (No FIN)

Window: 65535
TCP Checksum: 0xD044
Urgent Pointer: 0
No TCP Options
HTTP - Hyper Text Transfer Protocol
Continuation of existing HTTP stream
Binary Data:
SEARCH /........ 53 45 41 52 43 48 20 2F 90 02 B1 02 B1 02 B1 02
................ B1 02 B1 02 B1 02 B1 02 B1 02 B1 02 B1 02 B1 02
.
.
.
................ B1 02 B1 02 B1 02 B1 02 B1 02 B1 02 B1 02 B1 02
FCS - Frame Check Sequence
FCS: 0xE64D141C Calculated
The third detect
[**] [1:648:6] SHELLCODE x86 NOOP [**]
[Classification: Executable code was detected] [Priority: 1]
04/22-08:14:09.762991 0:2:3B:2:67:D2 -> 0:10:A7:5:62:CA type:0x8864
len:0x5DE
211.45.217.3:54291 -> 217.136.26.209:80 TCP TTL:107 TOS:0x0 ID:5611
IpLen:20 DgmLen:1480 DF
***A**** Seq: 0x6EEA5BF5 Ack: 0xBF8BFB3F Win: 0xFFFF TcpLen: 20
[Xref => http://www.whitehats.com/info/IDS181]

In the interest of space I will not include the decode here. Suffice it
to say that the http data section of the packet included 1440 "no
operation" (NOOP) (0x90) codes. On average there were 15 of these
packets per attack. The combination of these three detects were found
two further times within the file.
Explanation of Trigger Stimulus
Detect #1
Normally, the Http command included within this packet should have begun
with a valid HTTP method such as GET. Instead, the first data packet is
simply a binary data stream. The HTTP 1.1 methods are defined in
RFC2616. The omission of the HTTP method triggers the rule "Bare Byte
Unicode Encoding"

Detect #2
The http data field within this packet starts with the string "SEARCH /"
which conforms to the http method encoding standard. Therefore, the
rule "Bare Byte Unicode Encoding" does not fire. While the HTTP method
"search" in this packet is not in the HTTP 1.1 specification, it is
included in the "Web-based Distributed Authoring and Versioning"
(WebDAV) specification. However, the length of the http data field is
larger than the configured maximum for a directory query which is
programmed as a default of 300 in the preprocessor section of the
Snort.conf file. This triggers the "OVERSIZE REQUEST-URI DIRECTORY."
As this rule triggers before the bulk of the ruleset is applied to the
packet, rule 1500 does not fire. (I am waiting for a Win32 binary for
Snort 2.1.13 to fix this one)

Detect #3
Within the HTTP data field of the packet are a large number of (0x90)
binary instructions which translate to the (NOOP) instruction in x86
assembly language. A NOOP instruction is simply an instruction which
tells the CPU to wait one command interval and then load and execute the
next command. Anywhere outside of a wait loop in a program, this is
always a sign of bad things to come.
13 Probability the source address was spoofed:
For this attack to succeed, the attacker must complete a three way
handshake and push data into a vulnerable web server. In the absence of
predictable sequence numbers this is not possible. Once the three way
handshake has been successfully completed, and the offending packet(s)
pushed to the web server, the next step is to try to open a telnet
session to the hacked machine on the designated port (e.g.31337) to
determine if the attack resulted in a compromise instead of just a
crash. The end conclusion is that the source address is unlikely to be
spoofed.
Potential Sources of Attacks
A query to http://ww2.arin.net/whois/ provides the following information
on the three sources for the detected packets.

Search results for: 211.45.217.3

inetnum: 211.45.192.0 - 211.45.255.255
netname: BORANET-NET-211-45-192
descr: DACOM Corp.
descr: Facility-based Telecommunication Service Provider
descr: providing Internet leased-ine, on-line service, BLL etc.
country: KR
admin-c: DB50-AP
<http://www.apnic.net/apnic-bin/whois.pl?searchtext=DB50-AP&form_type=ad
vanced>
tech-c: DB50-AP
<http://www.apnic.net/apnic-bin/whois.pl?searchtext=DB50-AP&form_type=ad
vanced>
mnt-by: APNIC-HM
<http://www.apnic.net/apnic-bin/whois.pl?searchtext=APNIC-HM&form_type=a
dvanced>
mnt-lower: MAINT-KR-DACOM
<http://www.apnic.net/apnic-bin/whois.pl?searchtext=MAINT-KR-DACOM&form_
type=advanced>
changed: hm-changed@xxxxxxxxx 20021202
status: ALLOCATED PORTABLE
source: APNIC



Search results for: 24.213.249.141
OrgName: Road Runner-Commercial
OrgID: RCNY
<http://ws.arin.net/cgi-bin/whois.pl?queryinput=O%20!%20RCNY>
Address: 13241 Woodland Park Road
City: Herndon
StateProv: VA
PostalCode: 20171
Country: US

ReferralServer: rwhois://ipmt.rr.com:4321

NetRange: 24.213.128.0
<http://ws.arin.net/cgi-bin/whois.pl?queryinput=24.213.128.0> -
24.213.255.255
<http://ws.arin.net/cgi-bin/whois.pl?queryinput=24.213.255.255>
CIDR: 24.213.128.0/17
NetName: RR-COMMERCIAL-NYC-3
<http://ws.arin.net/cgi-bin/whois.pl?queryinput=N%20.%20RR-COMMERCIAL-NY
C-3>
NetHandle: NET-24-213-128-0-1
<http://ws.arin.net/cgi-bin/whois.pl?queryinput=N%20!%20NET-24-213-128-0
-1>
Parent: NET-24-0-0-0-0
<http://ws.arin.net/cgi-bin/whois.pl?queryinput=N%20NET-24-0-0-0-0>
NetType: Direct Allocation
NameServer: NS1.BIZ.RR.COM
NameServer: NS2.BIZ.RR.COM
NameServer: DNS4.RR.COM
Comment:
RegDate: 2003-03-06
Updated: 2003-08-29


Search results for: 217.81.77.151

inetnum: 217.80.0.0 - 217.89.31.255
netname: DTAG-DIAL14
descr: Deutsche Telekom AG
country: DE
admin-c: DTIP
<http://www.ripe.net/perl/whois?searchtext=DTIP&form_type=simple>
tech-c: DTST
<http://www.ripe.net/perl/whois?searchtext=DTST&form_type=simple>
status: ASSIGNED PA
remarks:
************************************************************
remarks: * ABUSE CONTACT: abuse@xxxxxxxxxx IN CASE OF HACK ATTACKS,
*
remarks: * ILLEGAL ACTIVITY, VIOLATION, SCANS, PROBES, SPAM, ETC.
*
remarks:
************************************************************
mnt-by: DTAG-NIC
<http://www.ripe.net/perl/whois?searchtext=DTAG-NIC&form_type=simple>
changed: ripe.dtip@xxxxxxxxxx 20001026
changed: ripe.dtip@xxxxxxxxxx 20030211
source: RIPE
route: 217.80.0.0/12
descr: Deutsche Telekom AG, Internet service provider
origin: AS3320
<http://www.ripe.net/perl/whois?searchtext=AS3320&form_type=simple>
mnt-by: DTAG-RR
<http://www.ripe.net/perl/whois?searchtext=DTAG-RR&form_type=simple>
changed: rv@xxxxxxxxxxx 20001027
source: RIPE
person: DTAG Global IP-Addressing
address: Deutsche Telekom AG
address: D-90492 Nuernberg
address: Germany
phone: +49 180 5334332
fax-no: +49 180 5334252
e-mail: ripe.dtip@xxxxxxxxxx
nic-hdl: DTIP
mnt-by: DTAG-NIC
<http://www.ripe.net/perl/whois?searchtext=DTAG-NIC&form_type=simple>
changed: ripe.dtip@xxxxxxxxxx 20031013
source: RIPE
person: Security Team
address: Deutsche Telekom AG
address: Germany
phone: +49 180 5334332
fax-no: +49 180 5334252
e-mail: abuse@xxxxxxxxxx
nic-hdl: DTST
mnt-by: DTAG-NIC
<http://www.ripe.net/perl/whois?searchtext=DTAG-NIC&form_type=simple>
changed: abuse@xxxxxxxxxx 20030210
source: RIPE
The three source IP addresses resolve to three geographically distinct
areas, specifically Korea, United States, and Germany.
14 Description of attack:
To clarify the attack, the detects will now be reordered into the
originally received order instead of the order upon which the detects
were selected for analysis.
THREE WAY HANDSHAKE (No detect)
One of the requirements for this attack is the establishment of an HTTP
session which of course requires the three way handshake. These packets
were easily found in the raw packet logs. No detects are linked to this
activity as this was a connection to an existing HTTP server with Snort
configured with the line
"var HTTP_SERVERS $HOME_NET" in the snort.conf file.

OVERSIZE REQUEST-URI DIRECTORY
The next packet received by the web server began with the information
"SEARCH /........ " where the information trailing the "/" was a stream
of hex bytes starting with 0x90, 0x02, 0xb1, 0x02, 0xb1,,, After a bit
of a tutorial read on http methods from various sources, I finally found
reference to the search method being part of WebDAV by a google search
on the keywords ("http method" search x02 xb1") The messages thread
refers to WebDAV and Microsoft Security Bulletin MS03-007.
(Link damaged looking for original again)

A search google search on the words WebDAV and Exploit turned up a good
tutorial on a previous very similar shellcode exploit which is available
at:
http://home.comcast.net/~merana296463/files/fatelabs-ntdll-analysis.pdf


Since the binary data is not the same, this is not the exact exploit
captured here, but it demonstrates the techniques involved and shows the
resulting logs and results of a successful attack.
Bare Byte Unicode Encoding
This detect was the original one selected for this analysis. In reality
it is just part of the stream of data being sent to the web server. As
Snort is currently stateless, the HTTP analysis is currently only
performed on a per packet basis. This is explained in the
README.http_inspect file: as extracted below

This initial version of HttpInspect only handles
stateless processing. This means that HttpInspect looks for HTTP fields
on a packet by packet basis, and will be fooled if packets are not
reassembled. This works fine when there is another module handling the
reassembly, but there are limitations in analyzing the protocol. That's
why future versions will have a stateful processing mode which will hook
into various reassembly modules.

On its own this is an HTTP packet that does not conform to the http
standard in that the data field does not begin with a HTTP method, and
instead begins with Unicode bytes. The reason that this packet does not
flag as a SHELLCODE x86 NOOP is due to the fact that the NOOP hex values
do not occur until late in the data field. The current Snort rule #648
only searches for a string of NOOPs until a depth of 128 bytes. The
NOOPs don't start until well after.
SHELLCODE x86 NOOP
This is the meat of the attack which is effectively to pad a large
number of NOOPs into the code space of the program and hope that an
instruction has a jump instruction into this active code space. We do
not see the active code uploading to the server because (un)fortunately
the Apache web server intervenes prior to the arrival of the interesting
code. Apache is not vulnerable to the IIS vulnerability and provides
the following error message back to the offending host. HTTP/1.1
414 Request-URI Too Large<CR><LF>

Note: Unless you turn on word wrapping in WordPad, you may not see the
happy end to that message (the 414 reply) as WordPad seems to have
difficulty with displaying these long lines properly.
Analysis Common to All Detects
All of the detects from a single IP address came from the same http
session, but that does not prove whether they are part of the same event
or whether they are independent events. My next step was to open the
Apache log file and confirm the outcome of the attack if possible. I
was quite interested to know whether I could prove to myself that the
attacks were unsuccessful, or whether I would be rebuilding the system
from scratch. The times in the log files appear different until you
note that the Apache log is UTC +2 and the system log is UTC +1 (CET).
The following log entry shows that the collection of packets have been
reassembled into a single malicious HTTP Search request of over 6 Kbytes
in length. Over 27 Kbytes of NOOPs and other related binary information
were thrown at the server, but the server generated a response and ended
the session well before they had all been delivered.

This entry was found in the Apache 2.0 access.log
211.45.217.3 - - [22/Apr/2004:08:14:10 +0200] "SEARCH
/\x90\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x0
2\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x0
2\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1.
.
.
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90
\x90\x90\x90\x90HTTP/1.0" 414 366

The end result of this all: Exploit is the WebDAV Exploit a.k.a.
Windows NTdll.dll Buffer overflow as documented in CAN 2003-0109.
Evidence of Packet Crafting
The rate and types of packets delivered to the web server makes it
probable that some form of script or worm was used to generate and
deliver the packets. Of interest here is that while the source
application properly initiated the three way handshake, it did not make
use of the push flag, and tended to ignore both the FIN and multiple
Reset flags that were sent back to the attacker by the web server.
Ignoring the reset flag could either be accomplished by the code, or by
filtering at the attacker's firewall (as a hacker defense against active
response mechanisms in an IDS.)
15 Attack mechanism:
This attack is a classic, buffer overflow. The attack attempts to
exploit a buffer overflow in the WebDAV Search method by pumping a large
number of NOOPs at the web server followed by a block of code which will
nominally create a root shell for the attacker to log into. As the
attacker has no knowledge of exactly where in the memory space the code
will be downloaded, he effectively needs to have a range of memory
addresses affected which will lead to his code. A large number of NOOPs
achieves this goal as they will all execute in sequence leading to the
attack code. The random chance is where the program will branch to, and
whether this will just lead to a bad crash, or to the execution of the
attack code. There are lots of books written on the subject, but the
document "Analysis of the ntdll.dll WebDAV Exploit, Fate Research Labs
Internet Warfare and Intelligence Team http://www.fatelabs.com, Date:
Tue. March 25, 2003" provides a concise walk through of the events
including logs from successful attacks. While this is not the exact
attack shown here (the binary code is different in this attack,) the
information is still quite relevant. Likely this is a variant on the
original script.
16 Correlations:
The WebDAV exploit was first announced in CAN 2003-0109 in Feburary 2003
under the title of "Windows NTdll.dll Buffer overflow".
Other references of user are:
http://www.whitehats.com/info/IDS181
http://www.snort.org/snort-db/sid.html?sid=648
http://home.comcast.net/~merana296463/files/fatelabs-ntdll-analysis.pdf

http://www.securityfocus.com/bid/7116
http://www.microsoft.com/technet/security/bulletin/MS03-007.mspx
http://www.whitehats.com/info/ids181

README.http_inspect from the Snort 2.1.12 documents

The SecurityFocus web site appeared to be a little too helpful as it
provided downloads for 10 different attack scripts to implement this
exploit. While having the code from these exploits is useful in
decoding new exploits, it is also helps the script kiddies to be
hackers.

There is a short thread on the Snort-Sigs mailing list (2004-04-01
21:05) started by Tyler Hudak with another variant on this attack (where
the initial packet is less than 300 bytes (or the relevant preprocessor
is disabled). In his case, the "MISC WebDAV search access" rule
triggers. As the second detect he describes is a x86 ShellCode NOOP, I
suspect that the data again differs from my attack, but that the end
goal is the same.

Finally an excellent in depth analysis is provided by Brandon Young GCIH
at http://www.giac.org/practical/GCIH/Brandon_Young_GCIH.pdf

17 Evidence of active targeting:
In order to be successful previous reconnaissance should be done in
order to find active IIS servers which might be vulnerable. In this
case, a response on Port 80 was seen to be good enough to launch the
script even though simply opening the default home page would have
hinted to the attacker that he was barking up the wrong tree... Well
when all you have is a hammer, all your problems look like Microsoft
IIS.
18 Severity
Severity = (criticality + lethality) (system countermeasures + network
countermeasures)
The attacker guessed the right code platform and operating system, but
guessed the wrong web server. As the web server information was

Criticality 3: This attack was launched against a Windows XP
workstation configured as a Web server. As this is one of the main
systems I am currently relying on for Snort analysis to complete this
assignment, this represents a very important asset. As it is not the
central web server at the office, it does not rate a higher score
Lethality 1: As the attack was doomed to failure the moment I
chose Apache, this could not be a very lethal attack.
System countermeasures 2: In order to entice enough packets to perform
analysis, I disabled the personal firewall on the system as a calculated
risk. However, the system is fully patched for the operating system,
applications and antivirus.
Network countermeasures 2: The DSL modem does not have a built in
firewall. Each system (other than the IDS system with the web server)
has a personal firewall configured to block all incoming connections.
There is an active IDS system on the network which is currently being
reviewed almost daily (looking for the perfect detect for analysis #3)
Severity = (3 + 1) - (2 + 2) = 0
Overall this attack would rates as a 0 mainly due to the fact that the
attacker did not have the knowledge to correctly profile the intended
victim.
19 Defensive recommendation
The temporary disabling of the personal firewall has already been
corrected and is unlikely to be repeated. Current plans to improve
security include the installation of a dedicated firewall with IDS built
in. As this network currently has no requirement for published services
to the Internet, the firewall will have all incoming connections
blocked. The personal firewalls will remain in service, but file
sharing between internal hosts may be allowed after the dedicated
firewall is installed.
20 Multiple choice test question:
alert ip $EXTERNAL_NET any -> $HOME_NET any (msg:"SHELLCODE x86 NOOP";
content: "|90 90 90 90 90 90 90 90 90 90 90 90 90 90|"; depth: 128;
reference:arachnids,181; classtype:shellcode-detect; sid:648; rev:4;)
Based on the above rule, would the following packet be logged as a
SHELLCODE x86 NOOP exploit?
A) Yes
B) No, the IP data field must start with 90 90 90 90 90 90 ...
C) Insufficient information is given to determine the answer
D) No, the detected content is too far from the beginning of the
packet
08:14:09.456949 PPPoE [ses 0x9616] IP 1482: IP 211.45.217.3.54291 >
XXX.XXX.XXX.209.80: . 1441:2881(1440) ack 1 win 65535 (DF)
0x0000 1100 9616 05ca 0021 4500 05c8 1598 4000 .......!E.....@.
0x0010 6b06 540d d32d d903 0000 00d1 d413 0050 k.T..-.........P
0x0020 6eea 5655 bf8b fb3f 5010 ffff 7d98 0000 n.VU...?P...}...
0x0030 b102 b102 b102 b102 b102 b102 b102 b102 ................
.
. (deleted section all b102)
.
0x02f0 b102 b102 b102 b102 b102 b102 b102 b190 ................
0x0300 9090 9090 9090 9090 9090 9090 9090 9090 ................
.
. (deleted section all 9090)
.
0x05c0 9090 9090 9090 9090 9090 9090 9090 9090 ................

Answer: D
The sequence that this rule triggers on does not start until offset
0x2ff which is well after the rule depth of 128 bytes

21 Source of Trace #3:
Location of trace
This detect was extracted from the tcpdump file named 2002.8.22
downloaded from downloaded from http://www.incidents.org/logs/Raw/. The
timestamps on these packets indicate that they were actually captured on
2003.08.22 between 14:34 and 15:36
Network Layout
Based on the captured packets, the network configuration consists of 2
computers with private IP addresses (192.168.2.101 and 102) connected
to the INTERNET via a third system (host X) which is performing NAT
translations for host 102. Insufficient information is available to
determine the IP address of NAT host X, but this host appears to be
programmed as the default gateway for host 102. Only three MAC
addresses appear on this network. Packet capture was made inside the
network (remote possibility that it was on host 102 as Windump is
installed on that system, but also possible as a receive only lan
analyzer.)

+=========+ +=========+
External | | Internal | Private |
=========| Host X |=========+=========|Host 101 |
| NAT | | | |
+=========+ | +=========+
+=========+
| Private |
|Host 102 |
| |
+=========+

22 Detect was generated by:
Snort intrusion detection system version 2.1.2 for Win32.
Rule triggered
[**] [1:2351:1] NETBIOS DCERPC ISystemActivator path overflow attempt
little endian [**]
[Classification: Attempted Administrator Privilege Gain] [Priority: 1]
08/22-14:34:23.861089 0:D0:59:2B:7A:57 -> 0:50:DA:C5:9D:8B type:0x800
len:0x5EA
192.168.2.101:32777 -> 192.168.2.102:135 TCP TTL:64 TOS:0x0 ID:15427
IpLen:20 DgmLen:1500 DF
***A**** Seq: 0xBBCCB264 Ack: 0x3704D4B Win: 0x16D0 TcpLen: 32
TCP Options (3) => NOP NOP TS: 167847 11838
[Xref => http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2003-0352]

Explanation of Trigger Stimulus
alert tcp $EXTERNAL_NET any -> $HOME_NET 135 (msg:"NETBIOS DCERPC
ISystemActivator path overflow attempt little endian";
flow:to_server,established; content:"|05|"; distance:0; within:1;
byte_test:1,&,16,3,relative; content:"|5c 00 5c 00|";
byte_test:4,>,256,-8,little,relative; reference:cve,CAN-2003-0352;
classtype:attempted-admin; sid:2351; rev:1;)

This decodes to Write an alert when a TCP packet from an External
network on any port sends a packet to a host on the internal network
port 135 and the following additional conditions are met:
* Flow:to_server,established; (the stream is flowing to the
server and a TCP session has been established
* Content:"|05|;distance:0;within:1;(At byte offset 0 in the TCP
Data the hex data "05" appears.
* byte_test:1, &,16,3,relative; 3 bytes after the "05" compare the
next byte against 16 (0x10)
* content:"|5c 00 5c 00|"; search for hex data "5C 00 5C 00" found
at offset "0x56C" within this packet
* byte_test:4,>,256,-8,little,relative; 8 bytes before the end of
the previous content match compare the next 4 bytes (i.e. the 4 bytes
immediately preceding the last content match to ensure that they are
greater than 256 (when those 4 bytes interpreted as least significant
byte first)
23 Probability the source address was spoofed:
Somewhat less than none. The attacking host is internal to the network
and on the same segment as the packet logger. The attack is based on an
established TCP session between attacker and victim with the intent of
establishing a RootShell.
Source of Attack
Internal computer at IP address 192.168.2.101 (MAC Address
00:D0:59:2B:7A:57)
24 Description of attack:
The attacking computer utilized the kaht2.exe exploit code to send a
buffer overflow to the DCOM RPC service on a Windows system. The
linkage to the kaht2 code is based on a very strong match between the
captured code from the log file, and the shell code extracted from the
kaht2 program. The kaht2 program was downloaded from
http://www.securityfocus.com/bid/8205/exploit/.
Only 2 bytes of the code differ between the two sets of binary code.
This difference is possibly related to the listening port (53) for the
root shell. Immediately after the delivery of this payload the
attacking system opened a connection to the exploited system (root
shell) on port 53 where he was able to browse directories, execute
applications that were on the system (Windump), and view raw http
packets (and replies) being transmitted between that workstation and the
Internet.
25 Attack mechanism:
This is a classic buffer overflow overflow as implemented by the
Blaster, MSBlast, LoveSan, scripts and the Nachi, and Welchia worms
(reference to ???)

The destination is port 135 and the DCOM RPC service where the script or
worm overflows a buffer to insert a shell code. In this case the
shellcode immediately started listening for connections on port 53
providing the attacker with full access on the system.
26 Correlations:
This exploit was first published in July 2003
http://www.microsoft.com/technet/security/Bulletin/MS03-026.mspx
http://www.microsoft.com/technet/security/bulletin/MS03-039.mspx
http://www.securityfocus.com/bid/8205
Snort\rules\netbios.rules
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2003-0352
http://www.cert.org/advisories/CA-2003-16.html
http://www.cert.org/advisories/CA-2003-19.html
The exploit is readily available in either script or worm varieties and
has been categorized under several names and variants.
27 Evidence of active targeting:
This attack is interesting in that it is an insider attack. In this
case the attacker is able to monitor the activities of the user of host
102 without significant risk of detection.
28 Severity
Severity = (criticality + lethality) (system countermeasures + network
countermeasures)
Criticality 2: Host 102 appears to be a windows 2000 Professional
system (build 2195) with peer web services installed (based on the
directory structure browsed by the attacker which included a inetpub
directory in C:\ The owner of the system may be named Jamie (another
directory in C:\) The system has at least some administrative tools
(Windump) installed. However, this configuration does not seem to be a
critical installation based on the network layout.
Lethality 5: The attack was completely successful with no
apparent error messages being logged by the system (the Port 135 session
was terminated gracefully without error after the shell code was
delivered.) The attack makes no changes to the file system nor changes
to the registry making its detection difficult unless the attacker
executes further less subtle attacks.
System countermeasures 1: While the exploits had only received less
than 2 months of publicity, the publicity available was quite high
profile. As such, the system should have been patched by late August
when the attack occurred.
Network countermeasures 2: The network connection is utilizing NAT
which provides a good start towards security. Specifically, packets
addressed to any ports which are not explicitly mapped through the NAT
box to a particular host on the inside network have no place to go.
Severity = (2 + 5) - (1 + 2) = 4
This is an attack which requires immediate action to ensure that the
system is not used as an attack platform against other systems, and to
protect the privacy of host 102's personal information. Defensive
recommendation.
29 Defensive recommendation:
As this is an insider attack, special attention must be directed at
properly handling the incident. Management and legal advise must be
sought to ensure that the appropriate civil and / or criminal legal
actions are taken. Initial steps to preserve and isolate both systems
needs to be taken, as well as isolating the systems from the INTERNET
(as we do not know yet what else is lurking in the two systems. Once
the legal mire has been sorted, the system needs to be rebuilt (after
preserving and quarantining data) including all of the relevant patches.
A good review on the recovery of compromised systems can be found at
30 Multiple choice test question:
Based on the following rule from Snort 2.*
alert tcp $EXTERNAL_NET any -> $HOME_NET 135 (msg:"NETBIOS DCERPC
ISystemActivator path overflow attempt little endian";
flow:to_server,established; content:"|05|"; distance:0; within:1;
byte_test:1,&,16,3,relative; content:"|5c 00 5c 00|";
byte_test:4,>,256,-8,little,relative; reference:cve,CAN-2003-0352;
classtype:attempted-admin; sid:2351; rev:1;)

Which of the following stimulus will trigger the above rule (assuming
all other criteria are met)

A) The string "5c 00 5c 00" within the TCP data of the packet
B) The Hex data "0x5c005c00" within the UDP data of the packet
C) The string "attempted-admin" within the TCP data of the packet
D) The Hex data "0x05" in the first byte of the TCP data of the
packet

Answer D:

Not A (looking for hex not string)
Not B (looking for TCP packets)
Not C (Attempted-Admin is the class type for the alert and does not
appear in the packet)


_______________________________________________
Intrusions mailing list
Intrusions@xxxxxxxxxxxxxx
http://www.dshield.org/mailman/listinfo/intrusions
<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise