用sack去除掃描1433假結果?

用syn類掃描器比如我的SharpTcpScanner

掃描165.194.0.0-165.195.0.0這個ip段的1433端口

會出現大量連續ip的結果

幾乎每個ip都返回正常的的syn+ack,就像真有個sqlserver服務器開開啓一樣

但是這些都是假的,如果你真連接的話就連不上

像這樣的ip段有好多

平時掃描出10萬個1433,有7、8萬都是這樣的假結果

還有的ip段,平時單個掃描不會返回,但是一旦大量發送syn掃描就開始出現這種情況

我不知道這是什麼樣的設備或者程序,但可以斷定應該就是一個爲了防止syn掃描的東西吧


之前一直爲如何去掉這樣的假結果而苦惱,後來發現了一個可以比較有效去除這些假結果的辦法

就是

之前掃描我發送的是syn頭最短的ip:20+tcp:20共40個字節

而如果用sqlconnection去連接,它發送的是52個字節,多出來的12個字節是02 04 05 b4 01 03 03 08 01 01 04 02

這12個字節是tcp的options,其中前4個是最大包大小,04 02就是sack

而我試了一下真的sqlserver會返回48個或52個字節的syn+ack,sack那裏也是04 02,意思就是允許sack

而那些假結果返回的是44個字節,tcp的options只有4個字節就是開始的最大包大小,然後就沒了,意思是不允許sack

於是就可以判斷了,返回44個的就是假的,於是就有效的去除了那些假結果,並且把那些真的從這些地址段中給摘了出來


看了一下微軟網站的介紹,還是在介紹win2000的文章,好像可以關掉sack還是怎麼着,但是我想10000個人裏9000個都不知道啥是sack,999個知道的也不會去做關閉sack這種事情吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章