一.概述:
聽了yeslab的秦珂老師的ASA的課程,講到ASA對TCP的随機初始化序列号擾亂功能,于是搭建環境進行測試,發現其實不僅對TCP初始化的序列号進行擾亂,對後續的TCP包序列号也會進行擾亂。
----後記:聽了後面的教程,才知道之是以叫初始化序列号擾亂,是因為後續的變化都基于初始的序列号之上的,比如未擾亂前第一個SYN包ISN序列号為A,第四個包的序列号為B,擾亂後的第一個SYN包ISN序列号為A',擾亂後的第四個包的序列号的B',那麼B-A=B'-A',即它們的內插補點總是相同的。
二.基本思路和結論:
A.搭建環境在ASA兩側進行抓包測試
B.抓包軟體顯示的相對随機号,實際資料才是真正的序列号
C.ASA不僅僅對TCP初始化包進行序列号擾亂,對其他的包也進行序列号擾亂
D.通過policy-map可以禁止讓ASA對序列号進行擾亂
三.測試拓撲:
<a href="http://blog.51cto.com/attachment/201309/223453812.jpg" target="_blank"></a>
四.基本配置:
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路由器:
ip address 10.1.1.1 255.255.255.0
ip route 0.0.0.0 0.0.0.0 10.1.1.10
五.TCP序列号擾亂測試:
A.沒有NAT情況下,Inside路由器Telnet Outside路由器:
Inside路由器TCP第一個包:
<a href="http://blog.51cto.com/attachment/201309/223604839.jpg" target="_blank"></a>
----從抓包的注釋relative sequence number可以看到seq 0其實是相對值,真正的值為D6D2CFDC。
Outside路由器TCP第一個包:
<a href="http://blog.51cto.com/attachment/201309/223717681.jpg" target="_blank"></a>
---從兩個圖對比很容易看出,兩邊的syn包的序列号是不相同的,雖然相對值都是0。
Inside路由器TCP第四個包:
<a href="http://blog.51cto.com/attachment/201309/223822384.jpg" target="_blank"></a>
outside路由器TCP第四個包:
<a href="http://blog.51cto.com/attachment/201309/223933997.jpg" target="_blank"></a>
---四個截圖序列号的值:未擾亂前第一個包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
②抓包測試:
----發現跟沒有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路由器并在兩邊抓包測試:
----抓包可以發現兩邊的序列号保持一緻(截圖略)
本文轉自 碧雲天 51CTO部落格,原文連結:http://blog.51cto.com/333234/1303915,如需轉載請自行聯系原作者