一.概述: 聽了yeslab的秦珂老師的ASA的課程,講到ASA對TCP的隨機初始化序列號擾亂功能,于是搭建環(huán)境進行測試,發(fā)現(xiàn)其實不僅對TCP初始化的序列號進行擾亂,對后續(xù)的TCP包序列號也會進行擾亂。
----后記:聽了后面的教程,才知道之所以叫初始化序列號擾亂,是因為后續(xù)的變化都基于初始的序列號之上的,比如未擾亂前第一個SYN包ISN序列號為A,第四個包的序列號為B,擾亂后的第一個SYN包ISN序列號為A',擾亂后的第四個包的序列號的B',那么B-A=B'-A',即它們的差值總是相同的。
二.基本思路和結(jié)論:
A.搭建環(huán)境在ASA兩側(cè)進行抓包測試
B.抓包軟件顯示的相對隨機號,實際數(shù)據(jù)才是真正的序列號
C.ASA不僅僅對TCP初始化包進行序列號擾亂,對其他的包也進行序列號擾亂
D.通過policy-map可以禁止讓ASA對序列號進行擾亂
三.測試拓撲:
四.基本配置:
A.Outside路由器:
interface Ethernet0/0
ip address 202.100.1.1 255.255.255.0
no shut
line vty 0 4
password cisco
login
ip route 0.0.0.0 0.0.0.0 202.100.1.10
B.ASA842防火墻:
interface GigabitEthernet0
nameif Outside
security-level 0
ip address 202.100.1.10 255.255.255.0
interface GigabitEthernet1
nameif DMZ
security-level 50
ip address 192.168.1.10 255.255.255.0
interface GigabitEthernet2
nameif Inside
security-level 100
ip address 10.1.1.10 255.255.255.0
C.Inside路由器:
interface Ethernet0/0
ip address 10.1.1.1 255.255.255.0
no shut
ip route 0.0.0.0 0.0.0.0 10.1.1.10
五.TCP序列號擾亂測試:
A.沒有NAT情況下,Inside路由器Telnet Outside路由器:
Inside路由器TCP第一個包:
----從抓包的注釋relative sequence number可以看到seq 0其實是相對值,真正的值為D6D2CFDC。
Outside路由器TCP第一個包:
---從兩個圖對比很容易看出,兩邊的syn包的序列號是不相同的,雖然相對值都是0。
Inside路由器TCP第四個包:
outside路由器TCP第四個包:
---四個截圖序列號的值:未擾亂前第一個包D6D2CFDC,未擾亂前第四個包D6D2CFDD,增加值為1,擾亂后第一個包2F67830F,擾亂后四個包2F678310,增加值也為1,這就是抓包軟件顯示相對值為1的原因。
B.NAT情況下,Inside路由器Telnet Outside路由器:
①PAT配置:
object network Inside_net
subnet 10.1.1.0 255.255.255.0
nat (Inside,Outside) dynamic interface
②抓包測試:
----發(fā)現(xiàn)跟沒有NAT情況相同,不僅僅是TCP初始化進行序列號擾亂,其他的包也會進行序列號擾亂
六.TCP序列號擾亂避免:
A.配置policy-map并應用:
access-list telnet extended permit tcp any any eq telnet
class-map noseqrandom match access-list telnet
policy-map noseqrandom class noseq set connection random-sequence-numberdisable
service-policy noseqrandom interface Inside
B.Inside路由器telnet Outside路由器并在兩邊抓包測試:
----抓包可以發(fā)現(xiàn)兩邊的序列號保持一致(截圖略)