by xundi<xundi@xfocus.org>
http://www.xfocus.org<安全焦点>
原作:Toby Miller
来源:http://www.securityfocus.com
此文是为了帮助入侵检测分析和防火墙管理员鉴别NMAP和QUESO扫描。其中里面
将对NMAP和QUESO扫描进行BIT级别的分析,这种类型的分析对防火墙管理员和
需要更多知道这些有关扫描器内容的人来说是有相当的好处。
一个端口扫描工具是系统管理员和攻击者鉴别系统上漏洞的所必须的,端口扫描
通过发送正常的和不正常的信息包达到计算机端口和等待端口对其的响应作为对
鉴别的。对这些数据进行解析,可以让用户判断有什么漏洞需要打补丁,或者有
什么漏洞可以被利用。
现在有不同类型的端口扫描器,如免费的端口扫描器NMAP和QUESO,免费的端口
扫描器允许对扫描漏洞有很多机动性的选择。而一些商业的扫描器你使用的话
就需要一些许可证之类的东西,如果没有的话就会影响你扫描的结果。关于商业
扫描器和免费扫描器的对比已经超出本文所描述的内容了。
1.3 NMAP AND QUESO 1.3.1 NMAP
NMAP是一个免费的发放的端口扫描器,由Fyodor (www.insecure.org)进行开发和
维护,NMAP可以运行在多个系统上,如Linux, FreeBSD, Open BSD, Solaris,而
经过EEYE的开发,现在NMAP又有了NT上的版本。现在NMAP可能是INTERNET最流行
最有价值的扫描器。由于它的易使好用,一个新手和专家都可以好好的使用。所以
NMAP的广泛使用和强大的功能,就出现这样一个问题:我们怎样使用IDS或者FIREWALL
来探测NMAP?
探测NMAP是一项比较困难的事情,NMAP有着很多开关供用户使用(本文将不概括每
一个开关的作用和其选项),为了演示的目录,将使用下面的开关进行操作:
-sS 这个开关执行一个SYN扫描
-sX 这个开关执行一个XMAS扫描
-sF 这个开关执行一个FIN扫描
-O 这个开关执行一个操作系统鉴别扫描
图1显示了有关NMAP使用-sS扫描出现的一些普通标志:
12:19:04.981033 attacker.com > victim.com: icmp: echo request (ttl 40, id 28524)
4500 001c 6f6c 0000 2801 2573 xxxx xxxx
xxxx xxxx 0800 e152 16ad 0000
12:19:04.981033 attacker.com > victim.com: icmp: echo request (ttl 40, id 28524)
4500 001c 6f6c 0000 2801 2573 xxxx xxxx
xxxx xxxx 0800 e152 16ad 0000
12:19:04.981207 victim.com > attacker.com: icmp: echo reply (ttl 255, id 0)
4500 001c 0000 0000 ff01 bdde xxxx xxxx
xxxx xxxx 0000 e952 16ad 0000
12:19:04.981207 victim.com > attacker.com: icmp: echo reply (ttl 255, id 0)
4500 001c 0000 0000 ff01 bdde xxxx xxxx
xxxx xxxx 0000 e952 16ad 0000
12:19:04.981574 attacker.com.58397 > victim.com.www: . ack 0 win 3072 (ttl 54,
id 47895)
4500 0028 bb17 0000 3606 cbb6 xxxx xxxx
xxxx xxxx e41d 0050 5720 0003 0000 0000
5010 0c00 6a41 0000
12:19:04.981574 attacker.com.58397 > victim.com.www: . ack 1 win 3072 (ttl 54, id 47895)
4500 0028 bb17 0000 3606 cbb6 xxxx xxxx
xxxx xxxx e41d 0050 5720 0003 0000 0000
5010 0c00 6a41 0000
12:19:04.981687 victim.com.www > attacker.com.58397: R 0:0(0) win 0 (ttl 255, id 1)
4500 0028 0001 0000 ff06 bdcc xxxx xxxx
xxxx xxxx 0050 e41d 0000 0000 0000 0000
5004 0000 cd70 0000
12:19:04.981687 victim.com.www > attacker.com.58397: R 0:0(0) win 0 (ttl 255, id 1)
4500 0028 0001 0000 ff06 bdcc xxxx xxxx
xxxx xxxx 0050 e41d 0000 0000 0000 0000
5004 0000 cd70 0000
12:19:05.065741 attacker.com.58377 > victim.com.1531: S 1899041970:1899041970(0) win 3072 (ttl 54,
id 22525)
4500 0028 57fd 0000 3606 2ed1 xxxx xxxx
xxxx xxxx e409 05fb 7131 14b2 0000 0000
5002 0c00 35f8 0000
12:19:05.065741 attacker.com.58377 > victim.com.1531: S 1899041970:1899041970(0) win 3072 (ttl 54,
id 22525)
4500 0028 57fd 0000 3606 2ed1 xxxx xxxx
xxxx xxxx e409 05fb 7131 14b2 0000 0000
5002 0c00 35f8 0000
12:19:05.065924 victim.com.1531 > attacker.com.58377: R 0:0(0) ack 1899041971 win 0 (ttl 255, id 2)
4500 0028 0002 0000 ff06 bdcb xxxx xxxx
xxxx xxxx 05fb e409 0000 0000 7131 14b3
5014 0000 41e5 0000
12:19:05.065924 victim.com.1531 > attacker.com.58377: R 0:0(0) ack 1 win 0 (ttl 255, id 2)
4500 0028 0002 0000 ff06 bdcb xxxx xxxx
xxxx xxxx 05fb e409 0000 0000 7131 14b3
5014 0000 41e5 0000
12:19:05.066228 attacker.com.58377 > victim.com.522: S 1899041970:1899041970(0) win 3072 (ttl 54,
id 45591)
4500 0028 b217 0000 3606 d4b6 xxxx xxxx
xxxx xxxx e409 020a 7131 14b2 0000 0000
5002 0c00 39e9 0000
12:19:05.066228 attacker.com.58377 > victim.com.522: S 1899041970:1899041970(0) win 3072 (ttl 54,
id 45591)
4500 0028 b217 0000 3606 d4b6 xxxx xxxx
xxxx xxxx e409 020a 7131 14b2 0000 0000
5002 0c00 39e9 0000
The two RST were cut for space reasons.
图 1: NMAP -sS scan
首先让我们来看看一些普通的NMAP信号,图1中显示NMAP发送2个echo requests请求,
第二个信号是在扫描中有两个独立的ACK信息包,其32-BIT Acknowledgement field
设置为0,而实际上当发送ACK信息包的时候ACK field必须>1。
设置这个ACK field为0的原因很简单:"秘密行动(Stealth)",但为何NMAP发送2
个ACK信息包呢,RFC793解释了这个问题并可以帮助你了解部分信息包可以用来网络
的MAP,RFC793 pp.64包含了TCP怎样响应特别的信息包:这些响应基于2个TCP状态,
这两个状态是CLOSED和LISTEN,RFC793描述了当一个端口在关闭状态的时候,必须
采用下面的规则:
任意进入的包含RST标志的信息段(segment)将被丢弃。
任意进入的不包含RST标志的(如SYN, FIN, 和 ACK)会导致在响应发送一个RST。
如果一个端口处于LISTEN状态,将采用下面的规则:
任意进入的包含RST标志的信息段(segment)将被忽略。
任意进入的包含ACK标志的信息段(segment)将导致一个RST的响应。
如果SYN位被设置:
如果进入的信息段(segment)不允许那么将导致一个RST的响应。
如果进入的信息段(segment)被允许,那么将导致响应中发送一个SYN|ACK 信息包。
从上面我们可以知道2个ACK信息包的发送就可以验证计算机是否处于运行状态。
另一个普通的有关NMAP的信息号是其使用高位源端口,通常的来说,NMAP的源端
口一般使用20000以上(当然这个特征可以使用-p开关来改变),设置这样高的
端口主要是考虑到一些IDS和防火墙程序会不标记这些扫描。当然有的IDS和防火墙
也会对高源端口进行报警和分析。
现在我们来看看第一个开关-sS,这个-sS开关发送一个SYN包到一个端口并等待
响应。如果端口打开这个响应必定是SYN|ACK或者如果断口是关闭的状态将会收到
RST|ACK响应,这个扫描可以成为"半打开(half-scan)扫描",这个"半打开(half-
scan)扫描"原理是NMAP会发送一个SYN到计算机,如果端口关闭就发送RST信息通知
NMAP,但如果NMAP发送SYN信息包到打开状态的端口,端口就会响应SYN|ACK信息包
给NMAP,当NMAP探测到SYN|ACK信息包后自动回应RST,这个RST就会断开连接,一般
情况下,计算机就不会记录这种情况,但对于NMAP来说也已经知道端口是否打开
或者关闭。
-sX开关执行一个Xmas tree扫描(见图2),这种扫描方式设置了TCP首部中6个标志
位的FIN,PSH和URG位(其中FIN表示发端完成发送任务,PSH是接受方应该尽快将
这个报文段交给应用层,URG表示紧急(URGENT POINTER)指针有效|),对于一些
配置较差的防火墙就会允许这些信息包通过,图2显示了NMAP又发送了2个echo
request请求和ACK信息包来确定端口的状态。
12:07:47.251547 attacker.com > victim.com: icmp: echo request (ttl 52, id 57064)
4500 001c dee8 0000 3401 a9f6 xxxx xxxx
xxxx xxxx 0800 98d3 5f2c 0000
12:07:47.251547 attacker.com > victim.com: icmp: echo request (ttl 52, id 57064)
4500 001c dee8 0000 3401 a9f6 xxxx xxxx
xxxx xxxx 0800 98d3 5f2c 0000
12:07:47.251720 victim.com > attacker.com: icmp: echo reply (ttl 255, id 2136)
4500 001c 0858 0000 ff01 b586 xxxx xxxx
xxxx xxxx 0000 a0d3 5f2c 0000
12:07:47.251720 victim.com > attacker.com: icmp: echo reply (ttl 255, id 2136)
4500 001c 0858 0000 ff01 b586 xxxx xxxx
xxxx xxxx 0000 a0d3 5f2c 0000
12:07:47.252111 attacker.com.40335 > attacker.com.www: . ack 0 win 2048 (ttl 53, id 1254)
4500 0028 04e6 0000 3506 82e8 xxxx xxxx
xxxx xxxx 9d8f 0050 1b98 0003 0000 0000
5010 0800 f057 0000
12:07:47.252111 attacker.com.40335 > victim.com.www: . ack 1 win 2048 (ttl 53, id 1254)
4500 0028 04e6 0000 3506 82e8 xxxx xxxx
xxxx xxxx 9d8f 0050 1b98 0003 0000 0000
5010 0800 f057 0000
12:07:47.252225 victim.com.www > attacker.com.40335: R 0:0(0) win 0 (ttl 255, id 2137)
4500 0028 0859 0000 ff06 b574 xxxx xxxx
7f00 0001 0050 9d8f 0000 0000 0000 0000
5004 0000 13ff 0000
12:07:47.252225 victim.com.www > attacker.com.40335: R 0:0(0) win 0 (ttl 255, id 2137)
4500 0028 0859 0000 ff06 b574 xxxx xxxx
xxxx xxxx 0050 9d8f 0000 0000 0000 0000
5004 0000 13ff 0000
12:07:47.336218 attacker.com.40315 > victim.com.824: FP 0:0(0) win 2048 urg 0 (ttl 53, id
43059)
4500 0028 a833 0000 3506 df9a xxxx xxxx
xxxx xxxx 9d7b 0338 0000 0000 0000 0000
5029 0800 0906 0000
12:07:47.336218 attacker.com.40315 > victim.com.824: FP 0:0(0) win 2048 urg 0 (ttl 53, id
43059)
4500 0028 a833 0000 3506 df9a xxxx xxxx
xxxx xxxx 9d7b 0338 0000 0000 0000 0000
5029 0800 0906 0000
12:07:47.336392 victim.com.824 > attacker.com.40315: R 0:0(0) ack 0 win 0 (ttl 255, id
2138)
4500 0028 085a 0000 ff06 b573 xxxx xxxx
xxxx xxxx 0338 9d7b 0000 0000 0000 0000
5014 0000 111b 0000
12:07:47.336392 victim.com.824 > attacker.com.40315: R 0:0(0) ack 1 win 0 (ttl 255, id
2138)
4500 0028 085a 0000 ff06 b573 xxxx xxxx
xxxx xxxx 0338 9d7b 0000 0000 0000 0000
5014 0000 111b 0000
图 2: NMAP XMAS 扫描
简单的来说FIN,PSH,URG组合告诉计算机拆卸连接,尽可能快的让数据通过,然后
"紧急(urgent)"数据将在普通数据流上通过。另一个NMAP使用Xmas tree扫描的标志
可以检查"紧急(urgent)"指针--一般都设置为0。
最后,我们来看看-sF和-O开关的结合,-sF扫描表示设置了FIN位,-O开关执行操作
系统鉴别操作,如果你有机会就在你编译NMAP前看看fingerprinting文件。下面的
图3显示的是-SF和-O的结合扫描:
11:00:09.360631 attacker.com.49044 > victim.com.219: F 0:0(0) win 4096 (ttl 59, id 45102)
11:00:09.360631 attacker.com.49044 > victim.com.219: F 0:0(0) win 4096 (ttl 59, id 45102)
11:00:09.361056 attacker.com.49044 > victim.com.48: F 0:0(0) win 4096 (ttl 59, id 30876)
11:00:09.361056 attacker.com.49044 > victim.com.48: F 0:0(0) win 4096 (ttl 59, id 30876)
11:00:12.820777 attacker.com.49051 > victim.com.sunrpc: S 561959278:561959278(0) win 4096
<wscale 10,nop,mss 265,timestamp 1061109567 0,eol> (ttl 59, id 11173)
11:00:12.820777 attacker.com.49051 > victim.com.sunrpc: S 561959278:561959278(0) win 4096
<wscale 10,nop,mss 265,timestamp 1061109567 0,eol> (ttl 59, id 11173)
11:00:12.821526 victim.com.sunrpc > attacker.com.49051: S 2988831197:2988831197(0) ack
561959279 win 16165 <mss 265,nop,nop,timestamp 2872982 1061109567,nop,wscale 0>
(DF) (ttl 64, id 3059)
11:00:12.821526 victim.com.sunrpc > attacker.com.49051: S 2988831197:2988831197(0) ack
561959279 win 16165 <mss 265,nop,nop,timestamp 2872982 1061109567,nop,wscale 0>
(DF) (ttl 64, id 3059)
11:00:12.821923 attacker.com.49052 > victim.com.sunrpc: . win 4096 <wscale 10,nop,mss
265,timestamp 1061109567 0,eol> (ttl 59, id 25812)
11:00:12.821923 attacker.com.49052 > victim.com.sunrpc: . win 4096 <wscale 10,nop,mss
265,timestamp 1061109567 0,eol> (ttl 59, id 25812)
11:00:12.822090 attacker.com.49053 > victim.com.sunrpc: SFP 561959278:561959278(0)
win 4096 urg 0 <wscale 10,nop,mss 265,timestamp 1061109567 0,eol> (ttl 59, id 10538)
11:00:12.822090 attacker.com.49053 > victim.com.sunrpc: SFP 561959278:561959278(0)
win 4096 urg 0 <wscale 10,nop,mss 265,timestamp 1061109567 0,eol> (ttl 59, id 10538)
11:00:12.822519 attacker.com.49054 > victim.com.sunrpc: . ack 0 win 4096 <wscale
10,nop,mss 265,timestamp 1061109567 0,eol> (ttl 59, id 36725)
11:00:12.822519 attacker.com.49054 > victim.com.sunrpc: . ack 1 win 4096 <wscale
10,nop,mss 265,timestamp 1061109567 0,eol> (ttl 59, id 36725)
11:00:12.822795 attacker.com.49055 > victim.com.34459: S 561959278:561959278(0) win 4096
<wscale 10,nop,mss 265,timestamp 1061109567 0,eol> (ttl 59, id 36400)
11:00:12.822795 attacker.com.49055 > victim.com.34459: S 561959278:561959278(0) win 4096
<wscale 10,nop,mss 265,timestamp 1061109567 0,eol> (ttl 59, id 36400)
11:00:12.823071 attacker.com.49056 > victim.com.34459: . ack 0 win 4096 <wscale
10,nop,mss 265,timestamp 1061109567 0,eol> (ttl 59, id 46890)
4500 003c b72a 0000 3b06 ca8f xxxx xxxx
xxxx xxxx bfa0 869b 217e d16e 0000 0000
a010 1000 81fb 0000 0303 0a01 0204 0109
080a 3f3f 3f3f 0000 0000 0000
11:00:12.823071 attacker.com.49056 > victim.com.34459: . ack 1 win 4096 <wscale
10,nop,mss 265,timestamp 1061109567 0,eol> (ttl 59, id 46890)
4500 003c b72a 0000 3b06 ca8f xxxx xxxx
xxxx xxxx bfa0 869b 217e d16e 0000 0000
a010 1000 81fb 0000 0303 0a01 0204 0109
080a 3f3f 3f3f 0000 0000 0000
11:00:12.823347 attacker.com.49057 > victim.com.34459: FP 561959278:561959278(0) win 4096
urg 0 <wscale 10,nop,mss 265,timestamp 1061109567 0,eol> (ttl 59, id 733)
4500 003c 02dd 0000 3b06 7edd xxxx xxxx
xxxx xxxx bfa1 869b 217e d16e 0000 0000
a029 1000 81e1 0000 0303 0a01 0204 0109
080a 3f3f 3f3f 0000 0000 0000
11:00:12.823347 attacker.com.49057 > victim.com.34459: FP 561959278:561959278(0) win 4096
urg 0 <wscale 10,nop,mss 265,timestamp 1061109567 0,eol> (ttl 59, id 733)
4500 003c 02dd 0000 3b06 7edd xxxx xxxx
xxxx xxxx bfa1 869b 217e d16e 0000 0000
a029 1000 81e1 0000 0303 0a01 0204 0109
080a 3f3f 3f3f 0000 0000 0000
11:00:12.823642 atttacker.com.49044 > victim.com.34459: udp 300 (ttl 57, id 60791)
4500 0148 ed77 0000 3911 952b xxxx xxxx
xxxx xxxx bf94 869b 0134 40db 6060 6060
6060 6060 6060 6060 6060 6060 6060 6060
11:00:12.823642 attacker.com.49044 > victim.com.34459: udp 300 (ttl 57, id 60791)
4500 0148 ed77 0000 3911 952b xxxx xxxx
xxxx xxxx bf94 869b 0134 40db 6060 6060
6060 6060 6060 6060 6060 6060 6060 6060
6060 6060 6060 6060 6060 6060 6060 6060
11:00:12.823746 victim.com > attacker.com: icmp: victim.com udp port 34459 unreachable [tos 0xc0]
(ttl 255, id 3067)
45c0 0164 0bfb 0000 ff01 afdb xxxx xxxx
xxxx xxxx 0303 fc44 0000 0000 4500 0148
ed77 0000 3911 952b 7f00 0001 7f00 0001
bf94 869b 0134 40db 6060 6060 6060 6060
11:00:12.823746 victim.com > attacker.com: icmp: victim.com udp port 34459 unreachable [tos 0xc0]
(ttl 255, id 3067)
45c0 0164 0bfb 0000 ff01 afdb xxxx xxxx
xxxx xxxx 0303 fc44 0000 0000 4500 0148
ed77 0000 3911 952b 7f00 0001 7f00 0001
bf94 869b 0134 40db 6060 6060 6060 6060
图3:NMAP -sF -O扫描
NMAP的-sF扫描原理很简单:
如果一个端口处于关闭状态,带FIN信息包的发送就有一个reset的响应。在下面
情况下,如果FIN被发送而端口是打开的,就TCP丢弃FIN包并不发送任何响应。
这种方法可以让很多IDS和防火墙通过,因此它们只检查FIN|ACK的组合而没有
检查FIN包。
NMAP的-O功能是鉴别操作系统的,你可以看到图3NAMP组合了一些FIN | PUSH | URG,
SIN | FIN | PSH, SYN 信息包和一些UDP信息包,根据本人经验,多数UDP信息包
有300个字节。
1.3.2 QUESO
虽然QUESO扫描器没有NMAP流行,但它有自己独特之处,这个QUESO是由savage@apostols.org
提供,免费发放。
QUESO通常依次发送14个信息包,如果你阅读它的documentation.txt,它所说的
是一般一次发送7个信息包,通过本人的经验,QUESO一般一次发送14个信息包。
QUESO发送下面的信息包:
SYN=4
SYN|ACK=2
PSH=2
SYN|FIN=2
FIN|ACK=2
TOTAL=14
QUESO允许用户伪造他的地址和可以选择的扫描端口,QUESO也可以选择随机的端口
号4000-65000,图4显示我们的一次QUESO扫描:
17:24:43.328743 attacker.com.19909 > victim.com.sunrpc: S 1567977113:1567977113(0) win 4660
(ttl 255, id 51246)
4500 0028 c82e 0000 ff06 6095 xxxx xxxx
xxxx xxxx 4dc5 006f 5d75 6e99 0000 0000
5002 1234 f05f 0000
17:24:43.328743 attacker.com.19909 > victim.com.sunrpc: S 1567977113:1567977113(0) win 4660
(ttl 255, id 51246)
4500 0028 c82e 0000 ff06 6095 xxxx xxxx
xxxx xxxx 4dc5 006f 5d75 6e99 0000 0000
5002 1234 f05f 0000
17:24:43.352137 attacker.com.19910 > victim.com.sunrpc: S 1567977113:1567977113(0) ack 0 win
4660 (ttl 255, id 51247)
4500 0028 c82f 0000 ff06 6094 xxxx xxxx
xxxx xxxx 4dc6 006f 5d75 6e99 0000 0000
5012 1234 f04e 0000
17:24:43.352137 attacker.com.com.19910 > victim.com.sunrpc: S 1567977113:1567977113(0) ack 0
win 4660 (ttl 255, id 51247)
4500 0028 c82f 0000 ff06 6094 xxxx xxxx
xxxx xxxx 4dc6 006f 5d75 6e99 0000 0000
5012 1234 f04e 0000
17:24:43.370082 attacker.com.19911 > victim.com.sunrpc: F 1567977113:1567977113(0) win 4660
(ttl 255, id 51248)
4500 0028 c830 0000 ff06 6093 xxxx xxxx
xxxx xxxx 4dc7 006f 5d75 6e99 0000 0000
5001 1234 f05e 0000
17:24:43.370082 attacker.com.19911 > victim.com.sunrpc: F 1567977113:1567977113(0) win 4660
(ttl 255, id 51248)
4500 0028 c830 0000 ff06 6093 xxxx xxxx
xxxx xxxx 4dc7 006f 5d75 6e99 0000 0000
5001 1234 f05e 0000
17:24:43.390301 attacker.com.19912 > victim.com.sunrpc: F 1567977113:1567977113(0) ack 0 win
4660 (ttl 255, id 51249)
4500 0028 c831 0000 ff06 6092 xxxx xxxx
xxxx xxxx 4dc8 006f 5d75 6e99 0000 0000
5011 1234 f04d 0000
17:24:43.390301 attacker.com.19912 > victim.com.sunrpc: F 0:0(0) ack 1 win 4660 (ttl 255, id
51249)
4500 0028 c831 0000 ff06 6092 xxxx xxxx
xxxx xxxx 4dc8 006f 5d75 6e99 0000 0000
5011 1234 f04d 0000
17:24:43.410079 attacker.com.19913 > victim.com.sunrpc: SF 1567977113:1567977113(0) win 4660
(ttl 255, id 51250)
4500 0028 c832 0000 ff06 6091 xxxx xxxx
xxxx xxxx 4dc9 006f 5d75 6e99 0000 0000
5003 1234 f05a 0000
17:24:43.410079 attacker.com.19913 > victim.com.sunrpc: SF 1567977113:1567977113(0) win 4660
(ttl 255, id 51250)
4500 0028 c832 0000 ff06 6091 xxxx xxxx
xxxx xxxx 4dc9 006f 5d75 6e99 0000 0000
5003 1234 f05a 0000
17:24:43.430076 attacker.com.19914 > victim.com.sunrpc: P win 4660 (ttl 255, id 51251)
4500 0028 c833 0000 ff06 6090 xxxx xxxx
xxxx xxxx 4dca 006f 5d75 6e99 0000 0000
5008 1234 f054 0000
17:24:43.430076 attacker.com.19914 > victim.com.sunrpc: P win 4660 (ttl 255, id 51251)
4500 0028 c833 0000 ff06 6090 xxxx xxxx
xxxx xxxx 4dca 006f 5d75 6e99 0000 0000
5008 1234 f054 0000
17:24:43.450082 attacker.com.19915 > victim.com.sunrpc: S 1567977113:1567977113(0) win 4660
(ttl 255, id 51252)
4500 0028 c834 0000 ff06 608f xxxx xxxx
xxxx xxxx 4dcb 006f 5d75 6e99 0000 0000
50c2 1234 ef99 0000
17:24:43.450082 attacker.com.19915 > victim.com.sunrpc: S 1567977113:1567977113(0) win 4660
(ttl 255, id 51252)
4500 0028 c834 0000 ff06 608f xxxx xxxx
xxxx xxxx 4dcb 006f 5d75 6e99 0000 0000
50c2 1234 ef99 0000
图 4: QUESO 扫描
由上图可以看到,我们看见了14个信息包。第一个信息是我们看到了2个单独的
FIN信息包,这些信息包就感到比较特殊,因你没有连接,那为何你要发送FIN来
终止连接。并且FIN没有包含ACK标志,虽然TCP使用三路握手建立连接,但它TCP
使用四路握手来断开连接,这个过程如图所示:
电脑A-----------------------FIN|ACK------------------->电脑B
电脑B-------------------------ACK--------------------->电脑A
电脑B-----------------------FIN|ACK------------------->电脑A
电脑A-------------------------ACK--------------------->电脑B
继续看上面的扫描,我们看到PSH标志被设置,这你需要注意事因为TCP中的
PSH标志需要由ACK来完成(在连接完成的时候)。
我们可以看到QUESO设置了SYN|FIN标志可以告诉接受的计算机打开和关闭关闭
一次连接:
n/a n/a urg ack psh rst svn fin
8 4 2 1 8 4 2 1
图5:TCP头部中的第13个字节
一个很有趣的特征是QUESO发送2个SYN信息包设置了保留位,如图4中的:
17:24:43.450082 attacker.com.19915 > victim.com.sunrpc: S 1567977113:1567977113(0) win 4660
(ttl 255, id 51252)
4500 0028 c834 0000 ff06 608f xxxx xxxx
xxxx xxxx 4dcb 006f 5d75 6e99 0000 0000
50c2 1234 ef99 0000
17:24:43.450082 attacker.com.19915 > victim.com.sunrpc: S 1567977113:1567977113(0) win 4660
(ttl 255, id 51252)
4500 0028 c834 0000 ff06 608f xxxx xxxx
xxxx xxxx 4dcb 006f 5d75 6e99 0000 0000
50c2 1234 ef99 0000
50c2的c2位。图5中显示了TPC头的第13个字节,最后左边的(n/a)两位保留并
没有被设置,这个很容易鉴别,如果你看到TCP头的第13个字节有c2设置,你
就应该想到有恶意的扫描。


