summaryrefslogtreecommitdiff
path: root/informationals/teso-i0016.txt
diff options
context:
space:
mode:
Diffstat (limited to 'informationals/teso-i0016.txt')
-rw-r--r--informationals/teso-i0016.txt47
1 files changed, 47 insertions, 0 deletions
diff --git a/informationals/teso-i0016.txt b/informationals/teso-i0016.txt
new file mode 100644
index 0000000..d233b81
--- /dev/null
+++ b/informationals/teso-i0016.txt
@@ -0,0 +1,47 @@
10016 2000/02/23 Trick to hide UDP ports, trick to discover this
2
3==== TESO Informational =======================================================
4This piece of information is to be kept confidential.
5===============================================================================
6
7Description ..........: Trick to hide UDP ports, trick to discover this
8Date .................: 2000/02/23 18:00
9Author ...............: scut
10Publicity level ......: unknown
11Affected .............: UDP/IP stack
12Type of entity .......: implementation
13Type of discovery ....: useful information
14Severity/Importance ..: low
15Found by .............: scut
16
17Information ===================================================================
18
19Many hacking tools operate as an UDP daemon, which listens on a UDP port for
20messages. Usually this open UDP ports are easily discovered through a simple
21UDP port scan. However, most hackers try to avoid detection by using a high
22port number which won't be scanned usually.
23
24 There is a better method of hiding UDP ports, by copying the behaviour of a
25closed UDP port: Just send a ICMP Port Unreachable packet each time a packet
26is received on the port. To do this you have to call an ICMP send routine
27directly after you have received an UDP packet. This ICMP send routine has to
28craft a Unreachable packet similar to the one the system would create and send
29it back to the source IP of the received UDP packet.
30
31While this looks very stealthy it has a really cool flaw which is easy to
32oversee. Every IP packet, hence the ICMP packet too has to have an IP ID,
33which is linear on most systems. If you just fill in a random one in the ICMP
34packet you generate, your port can still be detected. To do this one will
35sequentially scan all UDP ports and collect all received ICMP unreachable
36packets. Then your artificial ICMP packets will be those which don't match
37into the mostly linear IP ID's of the other ICMP packets.
38
39To avoid detection completely on a system whose kernel generates linear IP ID's
40you have to aquire the current IP ID before sending a bogus ICMP packet. This
41can be discovered remotely too, if you get the ID by sending a packet to a UDP
42port yourself and watch the IP ID in the ICMP unreachable packet send back to
43you: An IP ID increment value of two instead of one will be observed. To do
44this right a direct access to the current IP ID is required.
45
46===============================================================================
47