史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 網路軟硬體架設技術文件
忘記密碼?
論壇說明 標記討論區已讀

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2004-05-24, 03:01 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 通過TCP/IP堆棧特徵探測遠端操作系統

通過TCP/IP堆棧特徵探測遠端操作系統
本文主要討論如何通過探測遠端主機的TCP/IP堆棧來收集寶貴的主機系統。

首先講述幾種沒有包括堆棧探測技術的「傳統」的主機操作系統掃瞄方法。


接著是現在較為一般的堆棧特徵掃瞄工具的基本原理。然後討論一些能使遠端主機「在不知不覺間」洩露其資訊的技術。最後主要是nmap掃瞄工具的一些實現細 節。


動機

我想誰都已經非常清楚知道遠端主機操作系統有多麼重要,因此這裡只是作一簡單敘述。


首先最有用的一點在於絕大多數安全漏洞都是針對特定操作系統的。


例如你在作連接阜掃瞄時發現連接阜53開啟了,而且其守護伺服器是有安全漏洞的BIND版本,這時你只要找到相應 的漏洞攻擊程序就可輕而易舉地使守護工作崩潰。


依靠優秀的TCP/IP特徵探測器,你可以很快知道主機是執行'Solaris 2.5.1'還是'Linux 2.0.35',然後使用相應的漏洞程序和shellcode程式碼。

這個工具也可能被不正當地使用。

有些人喜歡一次對多台機器(例如50000台)進行操作系統和連接阜掃瞄,例如如果Sun comsat守護伺服器的一個安全漏洞被公佈了,他們就會特意地去尋找『Solaris 2.6'操作系統和'UDP/512'連接阜,然後不厭其煩地去攻擊這些機器。


我們通常將這種人稱為"SCRIPT KIDDIE"(註:就像是只會抄襲別人的小孩)。


這種人並沒有什麼技術,也不能說明他能夠發現漏洞或修補漏洞。而對於那些即使自己發現了漏洞,但卻只會通過攻擊他人網頁來企圖證明自己如何出色而系統管理員如何愚蠢的人,人們更會嗤之以鼻。

我們稱之為「社完成工作程(social engineering)」也是另一種可能的不正當用途。


例如當駭客掃瞄到目標公司網路時nmap報告發現了一台'Datavoice TxPORT PRISM 3000 T1 CSU/DSU 6.22/2.06『,他就會以「Datavoice技術支持」的身份給這間公司打電話:「我們正準備公佈一個安全漏洞,但我們希望在此之前為我們的客戶安裝修正檔程序。


這個修正檔程序我剛剛給您寄出去。

……」某些天真的管理員會真的以為只有真正來自Datavoice 公司的技術工程師才知道那麼多關於他們的CSU/DSU設備的資料,從而……

另一個可能的用途是評價你準備有合作的公司。當在選項一個新的ISP時,掃瞄一下該網路看看在使用設備。


如果是一大堆的便宜機種路由器和用Windows機器提供PPP服務,那即使是"¥99/年"的價格你也會覺得不值。:)


傳統技術

利用堆棧特徵探測操作系統是一種獨特的方法。我想它會滿足大多數的要求,雖然目前也還流行有其它方法。不過下面這種方法可能仍然是迄今為止最有效的:

playground~> telnet hpux.u-aizu.ac.jp
Trying 163.143.103.12...
Connected to hpux.u-aizu.ac.jp.
Escape character is '^]'.

HP-UX hpux B.10.01 A 9000/715 (ttyp2)

login:

如此公開地宣佈本機執行的是什麼系統根本就是一種商業炒作!現在的大多數系統都還帶有這種banner,而管理員們也沒有意識到應該去掉它們。


雖然是存在許多探測主機操作系統的方法,但這絕對不能成為為公開主機操作系統這種愚蠢行為辯護的理由。

隨著這個問題的嚴重性被廣泛意識到,越來越多的人已經開始將banner去掉,許多系統的banner也不再洩露重要的資訊,這種通過搜尋banner獲得操作系統類型和版本的方法會遇到許多困難,變得不那麼可行了。



但是,至少目前版本的昂貴商業掃瞄器( 如ISS)仍然只使用這種古老的方法來試突獲取主機操作系統類型和版本。


相比之下,下載nmap和queso會節約你大量的金錢。

即使關閉了banner,許多應用程式卻仍然樂於向訪問者提供這類資訊。例如,當登入到某台FTP伺服器時:

payfonez> telnet ftp.netscape.com 21
Trying 207.200.74.26...
Connected to ftp.netscape.com.
Escape character is '^]'.
220 ftp29 FTP server (UNIX(r) System V Release 4.0)
ready.
SYST
215 UNIX Type: L8 Version: SUNOS

首先,它在預設的banner裡告訴你系統的資訊。然後當輸入'SYST'指令時,它會更樂意地向你提供更多的資訊。

如果支持匿名FTP,我們可以下載/bin/ls或其它二進制文件來(至少)確定主機的硬體平台。

其它許多應用程式也能提供類似資訊。例如WEB伺服器:

playground> echo 'GET / HTTP/1.0\n' nc hotbot.com 80
egrep '^Server:'
Server: Microsoft-IIS/4.0
playground>

嗯。。。現在我們知道這台機器執行的是什麼破操作系統了。:)

其它「傳統」的技術還包括DNS主機記錄(INFO)、社完成工作程(social engineering)和SNMP等。這裡就不再多說了。


幾個操作系統特徵探測程序

Nmap不是第一個使用TCP/IP堆棧特徵探測操作系統類型的程序。Johan編寫的IRC欺騙器sirc從第三版(或更早)就已經包含了很基本的特徵探測技術。這個程序使用了一些簡單的TCP標記位測試來區分"Linux"、"4.4BSD"、"Win95"或"Unknown"操作系統。

另一個類似的程序是checkos,由Shok編寫並於1998年1月在"Confidence Remains High Issue #7"上發表。它採用了與sirc完全相同的技術,甚至某些程式碼也完全一致。


其實checkos在公開發表前就已在私底下流傳了很久,因此我不知道是哪個程序抄襲了另一個程序。在傳播程序中,checkos增加了telnet banner檢查功能(雖然這是一項很老的技術)。


據Shok說,checkos從來就沒打算公開,因此他並沒有考慮過版權問題。

Su1d也寫了一個操作系統檢測程式。程序名為SS,版本3.11能夠檢測12種不同操作系統類型。


我這個程序使用了nmap的某些網路程式碼。

然後是queso。

這個很新的程序比起以前的其它程序有了很大的飛躍。


它不但增加了不少新的測試,還是第一個(我所知道的)將操作系統特徵與程式碼分離的程序。其它掃瞄程序的程式碼與下面相似:

/* from ss */
if ((flagsfour & TH_RST) && (flagsfour & TH_ACK) &&
(winfour == 0) && (flagsthree & TH_ACK))
reportos(argv[2],argv[3],"Livingston Portmaster
ComOS");

而queso將這些操作系統特徵都單獨存放到一個配置文件中,這樣只需將新的操作系統特徵增加到配置文件中即可,從而極大地增強了程序的可擴展性。

Queso由Apostols.org的Savage編寫。

以上談到的所有程式都存在一個問題,那就是仍然局限於依靠為數不多的測試和回應來確定系統類型。


我們不但希望僅僅知道「這台機器執行的是OpenBSD、FreeBSD或者NetBSD。」,還想知道如具體版本和其它更多的資訊。

例如,'Solaris 2.6'比'Solaris'包含有更多的資訊。


為了能達到這種更高的探測要求,在nmap中使用了更多的操作系統特徵技術。

下面就讓我們一起討論吧。
特徵探測方法

目前有許多的網路堆棧特徵探測技術。最簡單的就是尋找各種操作系統間的不同並寫出探測程序。


當使用了足夠的不同特徵時,操作系統的探測精度就有了很大保證。

例如nmap能夠可靠地區分出Solaris 2.4、Solaris 2.5-2.5.1和Solaris 2.6,也能區分2.0.30、2.0.31-34或2.0.35版本的Linux內核。以下是一些這方面的技術:

FIN探測 -- 通過傳送一個FIN資料包(或任何未設定ACK或SYN標記位的資料包)到一個開啟的連接阜,並等待回應。


RFC793定義的標準行為是「不」回應,但諸如MS Windows、BSDi、CISCO、HP/UX、MVS和IRIX等操作系統會回應一個RESET包。大多數的探測器都使用了這項技術。

BOGUS(偽造)標記位探測 -- 據我所知,Queso是第一個使用這種更聰明技術的探測器。

它原理是在一個SYN資料包TCP頭中設定未定義的TCP「標記」(64或128)。

低於2.0.35版本的Linux內核會在回應包中保持這個標記,而其它操作系統好像都沒有這個問題。不過,有 些操作系統當接收到一個SYN+BOGUS資料包時會復位連接。所以這種方法能夠比較有效地識別出操作系統。

TCP ISN 取樣 -- 其原理是通過在操作系統對連接請求的回應中尋找TCP連接啟始化序列號的特徵。


目前可以區分的類別有傳統的64K(舊UNIX系統使用)、隨機增加(新版本的Solaris、IRIX、FreeBSD、Digital UNIX、Cray和其它許多系統使用)、真正「隨機」(Linux 2.0.*及更高版本、OpenVMS和新版本的AIX等操作系統使用)等。


Windows平台(還有其它一些平台)使用「關於時間」方式產生的ISN會隨著時間的變化而有著相對類BIOS的增長。不必說,最容易受到攻擊的當然是老式的64K方式。


而最受我們喜 愛的當然是「類BIOS」ISN!確實有些機器總是使用相同的ISN,如某些3Com集線器(使用0x83)和Apple LaserWriter列印機(使用0xC7001)。

根據計算ISN的變化、最大公約數和其它一些有跡可循的規律,還可以將這些類別分得更細、更準確。

「無碎片」標記位 -- 許多操作系統逐漸開始在它們傳送的資料包中設定IP「不分片(無碎片)」位。這對於提高傳輸效能有好處(雖然有時它很討厭 -- 這也是為什麼nmap不對Solaris系統進行碎片探測的原因)。


但並不是所有操作系統都有這個設定,或許並不並總是使用這個設定,因此通過留意這個標記位的設定可以收集到關於目標主機操作系統的更多有用資訊。

TCP 啟始化「視窗」 -- 就是檢查返回資料包的「視窗」大小。以前的探測器僅僅通過RST資料包的非零「視窗」值來標識為「起源於BSD 4.4」。


而像queso和nmap這些新的探測器會記錄確切的視窗值,因為該視窗隨操作系統類型有較為穩定的數值。


這種探測能夠提供許多有用的資訊,因為某些系統總是使用比較特殊的視窗值(例如,據我所知AIX是唯一使用0x3F25視窗值的操作系統) 。


而在聲稱「完全重寫」的NT5的TCP堆棧中,Microsoft使用的視窗值總是0x402E。更有趣的是,這個數值同時也被OpenBSD和FreeBSD使用。

ACK值 -- 也許你認為ACK值總是很標準的,但事實上操作系統在ACK域值的實現也有所不同。


例如,假設向一個關閉的TCP連接阜傳送一個FINPSHURG包,許多操作系統會將ACK值設定為ISN值,但Windows和某些愚蠢的列印機會設定為seq+1。


如果向 開啟的連接阜傳送SYNFINURGPSH包,Windows的返回值就會非常不確定。


有時是seq序列號值,有時是S++,而有時回送的是一個似乎很隨機性的數值。我們很懷疑為什麼MS總是能寫出這種莫名其妙的程式碼。

ICMP錯誤資訊查詢 -- 有些(聰明的)操作系統根據RFC 1812的建議對某些類型的錯誤資訊傳送頻率作了限制。

例如,Linux內核(在net/ipv4/icmp.h)限制傳送「目標不可到達」資訊次數為每4秒80次,如果超過這個限制則會再減少1/4秒。


一種測試方法是向高端隨機UDP連接阜傳送成批的資料包,並計算接收到的「目標不可到達」資料包的數量。


在nmap中只有UDP連接阜掃瞄使用了這個技術。



這種探測操作系統方法需要稍微長的時間,因為需要傳送大量的資料包並等待它們的返回。這種資料包處 理方式也會對網路效能造成某種程度的影響。

ICMP資訊引用 -- RFC定義了一些ICMP錯誤資訊格式。如對於一?連接阜不可到達資訊,幾乎所有操作系統都只回送IP請求頭+8字元長度的包,但Solaris返回的包會稍微長一點,Linux則返回更長的包。


這樣即使操作系統沒有任何監聽任何連接阜,nmap仍然有可能確 定Linux和Solaris操作系統的主機。

ICMP錯誤資訊回顯完整性 -- 我們在前面已談到,機器必鬚根據接收到的資料包返回「連接阜不可到達」(如果確實是這樣)資料包。有些操作系統會在啟始化處理程序中弄亂了請求頭,這樣當你接收到這種資料包時會出現不正常。


例如,AIX和BSDI返回的IP包中的「總長度」域會被設定為20 字元(太長了)。某些BSDI、FreeBSD、OpenBSD、ULTRIX和VAX操作系統甚至會修改請求頭中的IP ID值。另外,由於TTL值的改變導致校驗和需要修改時,某些系統(如AIX、FreeBSD等)返回資料包的檢驗和會不正確或為0。



有時這種情況也出現在UDP包檢驗和。總的說來,nmap使用了九種不同的ICMP錯誤資訊探測技術來區分不同的操作系統 。

服務類型(TOS) -- 對於ICMP的「連接阜不可到達」資訊,經過對返回包的服務類型(TOS)值的檢查,幾乎所有的操作系統使用的是ICMP錯誤類型0,而Linux使用的值是0xC0。

片段(碎片)處理 -- 不同操作系統在處理IP片段重疊時採用了不同的方式。有些用新的內容覆蓋舊的內容,而又有些是以舊的內容為優先。


有很多探測方法能確定這些包是被如何重組的,從而能說明 確定操作系統類型。

TCP選項 -- 這是收集資訊的最有效方法之一。其原因是:

1)它們通常真的是「可選的」,因此並不是所有的操作系統都使用它們。


2)向目標主機傳送帶有可選項標記的資料包時,如果操作系統支持這些選項,會在返回包中也設定這些標記。
3)可以一次在資料包中設定多個可選項,從而增加了探測的準確度。

Nmap在幾乎每一個探測資料包中都設定了如下選項:

Window Scale=10; NOP; Max Segment Size = 265;
Timestamp; End of Ops;

當接收到返回包時,檢查返回了哪些選項,它們就是目標操作系統支持的選項。有些操作系統(如較新版本的FreeBSD)支持以上所有選項,而有些(如Linux 2.0.x)則幾乎都不支持。Linux 2.1.x內核支持以上所有選項。

如果有幾個操作系統支持相同的選項,可以通過選項的值唇
如果支持相同的選項,返回值也相同,又怎麼辦呢?仍然可以通過返回選項的順序進行區分。如Solaris系統返回『NNTNWME』,代表:


而如果是Linux 2.1.122系統,相同的選項,相同的返回值,但順序卻有所不同:MENNTNW。

目前還沒有其它操作系統探測工具利用TCP選項,但它確實非常有效!

另外還有其它一些選項也可用於進行探測,如T/TCP支持等。

譯者註:還有至少兩種頗具攻擊性的探測方法。由於它們能導致拒絕服務攻擊,而這也是在nmap中沒有實現這些方法的主要原因。

NMAP探測細節和結果
上面我們討論了操作系統類型探測的多種技術(除了某些攻擊性方法外)。


這些技術都在nmap掃瞄器中實現。Nmap掃瞄器收集了眾多操作系統連接阜開啟和關閉時的特徵,支持目前流行的Linux、*BSD和Solaris 2.5.1/2.6多種操作系統。

目前版本的nmap掃瞄器從一個文件中讀取操作系統特徵範本。下面是一個實例:

FingerPrint IRIX 6.2 - 6.4 # Thanks to Lamont Granquist
TSeq(Class=i800)
T1(DF=N%W=C000EF2A%ACK=S++%Flags=AS%Ops=MNWNNT)
T2(Resp=Y%DF=N%W=0%ACK=S%Flags=AR%Ops=)
T3(Resp=Y%DF=N%W=C000EF2A%ACK=O%Flags=A%Ops=NNT)
T4(DF=N%W=0%ACK=O%Flags=R%Ops=)
T5(DF=N%W=0%ACK=S++%Flags=AR%Ops=)
T6(DF=N%W=0%ACK=O%Flags=R%Ops=)
T7(DF=N%W=0%ACK=S%Flags=AR%Ops=)
PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E)

讓我們來看一下每一行的含義:

> FingerPrint IRIX 6.2 - 6.3 # Thanks to Lamont
Granquist

它說明這是一個IRIX 6.2 - 6.3操作系統特徵,註釋指出該特徵由Lamont Granquist提供。

> TSeq(Class=i800)

它說明ISN特徵是"i800 class",即每一個新序列號比上一個序列號大800的整數倍。

> T1(DF=N%W=C000EF2A%ACK=S++%Flags=AS%Ops=MNWNNT)

T1代表test1。這個測試是向開啟的連接阜傳送帶有多個TCP選項的SYN資料包。DF=N說明返回包的"Don't fragment"位必須沒有設定。W=C000EF2A說明返回包的視窗值必須為0xC000或0xEF2A。ACK=S++說明返回包的ACK值必須為啟始化序列號加1。Flags=AS說明返回包的ACK和SYN標記位必須被設定。Ops=MNWNNT說明返回包的T CP選項及其順序必須為:


> T2(Resp=Y%DF=N%W=0%ACK=S%Flags=AR%Ops=)

Test 2(第二個測試)向開啟連接阜傳送帶有相同TCP選項的NULL(空)資料包。Resp=Y說明必須接收到返回包。Ops= 說明返回包中的所有TCP選項必須都沒有被設定。『%Ops=』匹配任意TCP選項。

> T3(Resp=Y%DF=N%W=400%ACK=S++%Flags=AS%Ops=M)

Test 3(第三個測試)向開啟連接阜傳送帶有TCP選項的SYNFINURGPSH資料包。

> T4(DF=N%W=0%ACK=O%Flags=R%Ops=)

這是向開啟連接阜傳送ACK資料包。注意這裡沒有Resp=字串串。說明返回包不是必須的(例如資料包被丟棄或有防火牆)。

> T5(DF=N%W=0%ACK=S++%Flags=AR%Ops=)
> T6(DF=N%W=0%ACK=O%Flags=R%Ops=)
> T7(DF=N%W=0%ACK=S%Flags=AR%Ops=)

以上測試是針對關閉連接阜的SYN、ACK和FINPSHURG資料包測試,並設定了相同的TCP選項。

>
PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E)

這個是對「連接阜不可到達」資訊的測試。DF=N前面已經介紹過了。TOS=0說明IP服務類型域應為0。接著的兩個是IP包頭總長度和返回IP包總長度(16進制值)。RID=E說明期望返回包RID值與傳送的UDP包的值相同。RIPCK=E說明校驗和 應該正常(如果不正常則RIPCK=F)。UCK說明UDP包校驗和也應該正常。ULEN=134是UDP包長度為0x134。DAT=E說明正確返回UDP資料,這個是大多數情況下的預設設定。


一些較為著名站點的掃瞄結果
註:這些都是以前的掃瞄結果,僅供參考。不保證它現在仍然有效或準確。

# "Hacker" sites or (in a couple cases) sites that think
they are
www.l0pht.com => OpenBSD 2.2 - 2.4
www.insecure.org => Linux 2.0.31-34
www.rhino9.ml.org => Windows 95/NT # No comment
www.technotronic.com => Linux 2.0.31-34
www.nmrc.org => FreeBSD 2.2.6 - 3.0
www.cultdeadcow.com => OpenBSD 2.2 - 2.4
www.kevinmitnick.com => Linux 2.0.31-34 # Free Kevin!
www.2600.com => FreeBSD 2.2.6 - 3.0 Beta
www.antionline.com => FreeBSD 2.2.6 - 3.0 Beta
www.rootshell.com => Linux 2.0.35 # Changed to
OpenBSD after
# they got owned.

# Security vendors, consultants, etc.
www.repsec.com => Linux 2.0.35
www.iss.net => Linux 2.0.31-34
www.checkpoint.com => Solaris 2.5 - 2.51
www.infowar.com => Win95/NT

# Vendor loyalty to their OS
www.li.org => Linux 2.0.35 # Linux
International
www.redhat.com => Linux 2.0.31-34 # I wonder what
distribution
www.debian.org => Linux 2.0.35
www.linux.org => Linux 2.1.122 - 2.1.126
www.sgi.com => IRIX 6.2 - 6.4
www.netbsd.org => NetBSD 1.3X
www.openbsd.org => Solaris 2.6 # Ahem
www.freebsd.org => FreeBSD 2.2.6-3.0 Beta

# Ivy league
www.harvard.edu => Solaris 2.6
www.yale.edu => Solaris 2.5 - 2.51
www.caltech.edu => SunOS 4.1.2-4.1.4 # Hello! This
is the 90's
www.stanford.edu => Solaris 2.6
www.mit.edu => Solaris 2.5 - 2.51 # Coincidence
that so many good
# schools seem
to like Sun?
# Perhaps it
is the 40%
# .edu
discount
www.berkeley.edu => UNIX OSF1 V 4.0,4.0B,4.0D
www.oxford.edu => Linux 2.0.33-34 # Rock on!

# Lamer sites
www.aol.com => IRIX 6.2 - 6.4 # No wonder they
are so insecure
www.happyhacker.org => OpenBSD 2.2-2.4 # Sick of being
owned, Carolyn?
# Even the most
secure OS is
# useless in the
hands of an
# incompetent
admin.

# Misc
www.lwn.net => Linux 2.0.31-34 # This Linux news
site rocks!
www.slashdot.org => Linux 2.1.122 - 2.1.126
www.whitehouse.gov => IRIX 5.3
sunsite.unc.edu => Solaris 2.6
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2006-03-13, 06:12 AM   #2 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

TCP/IP 網路漏洞和安全

TCP/IP 傳輸協定組本身存在很多安全性方面的漏洞。這些弱點正導致了攻擊者的拒絕服務(DOS)、Connection Hijacking 以及其它一系列攻擊行為。TCP/IP 主要存在以下幾個方面的安全問題:

  TCP SYN attacks 或 SYN Flooding - TCP 利用序列號以確保資料以正確順序對應特定的用戶。在三向握手(Three-Way Handshake)方式的連接開啟階段,序列號就已經建立好。TCP SYN 攻擊者利用大多數主機執行三次握手中存在的漏洞展開攻擊行為。當主機 B 接收到來自 A 的 SYN 請求,那麼它必須以「Listen Queue」跟蹤那部分開啟的連接,時間至少維持75秒鍾,並且一台主機可以只跟蹤有限數量的連接。一台非法主機通過向其它主機傳送 SYN 請求,但不答覆 SYN & ACK,從而形成一個小型的 Listen Queue,而另一台主機則傳送返回。這樣,另一台主機的 Listen Queue 迅速被排滿,並且它將停止接收新連接,直到佇列中開啟的連接全部完成或超出時間。至少在75秒內將主機撤離網路的行為即屬於拒絕服務(Denial-of-Service)攻擊,而在其它攻擊中也常發生這樣的行為,如偽 IP。

  IP Spoofing - 偽 IP 技術是指一種獲取對電腦未經許可的訪問的技術,即攻擊者通過偽 IP 位址向電腦傳送訊息,並顯示該訊息來自於真實主機。IP 層假設它所接收到的任何 IP 資料包上的源位址都與實際傳送資料包的系統 IP 位址(沒有經過認證)相同。很多高層傳輸協定和應用程式也會作這樣的假設,所以似乎每個偽造 IP 資料包源位址的人都可以獲得非認證特免。偽 IP 技術包含多種檔案類型,如 Blind 和 Non-Blind Spoofing、Man-in-the-Middle-Attack (Connection Hijacking)等。詳細內容請參照「偽 IP」文件。

  Routing Attacks - 該攻擊利用路由選項訊息傳輸協定(RIP:TCP/IP 網路中的基本組成)。RIP 主要用來為網路分配路由選項訊息(如最短路徑)並將線路傳播出區域網路絡。與 TCP/IP 一樣,RIP 沒有建立認證機制,所以在無需校驗的情況下就可以使用 RIP 資料包中的訊息。RIP 攻擊會改變資料傳送目的地,而不能改變資料來源位置。例如,攻擊者可以偽造一個 RIP 資料包,並聲稱他的主機「X」具有最快網外路徑。所有從網路中傳送出去的資料包可以通過「X」傳送,並且進行修改或檢查。攻擊者還可以通過 RIP 高效模仿任何主機,並導致所有將要傳送到那台主機上的通信流量全部傳送到了攻擊者電腦上。

  ICMP Attacks - IP 層通常使用 Internet 控制訊息傳輸協定(ICMP:Internet Control Message Protocol)向主機傳送單行道訊息,如「ping」訊息。ICMP 中不提供認證,這使得攻擊者有機會利用 ICMP 漏洞攻擊通信網路,從而導致拒絕服務(Denial of Service)或資料包被截取等攻擊。

  拒絕服中務基本上利用 ICMP Time Exceeded 或 Destination Unreachable 訊息,使得主機立即放棄連接。攻擊者可以偽造其中一個 ICMP 訊息,然後將它傳送給通信主機雙方或其中一方,以取消通信雙方之間的連接。另外通過 ICMP 中的 Redirect 訊息(當某台主機錯誤地以為目的端不在區域網路絡中時,網路閘道通常也會使用 Redirect 訊息),攻擊者可以截取網路資料包。如果攻擊者偽造一個 ICMP 「Redirect」訊息,另一台主機在不知情的情況下繼續傳送資料包,建立與攻擊者機器之間的連接。這種攻擊檔案類型類似於 RIP 攻擊,所不同的是 ICMP 訊息只適用於現有連接,並且攻擊者(接收重轉發IP的主機)必須在區域網路絡中。

  DNS Attacks - 域名系統 DNS 是 Internet 中適用較為普遍的一種傳輸協定,主要用於映射主機名和 IP 位址。攻擊者利用 IP 位址和主機名之間的映射性質欺騙名稱認證。但可以通過在第一次查詢返回的主機名上執行第二次查詢的方法避免這種攻擊。

  The IP Address as Identifier is no Longer Unique - 任何依靠 IP 位址維持機器時間或空間上唯一的安全模式都有其不足之處,這歸因於廣泛使用的網路位址轉換和動態 IP 位址技術。在現今的 TCP/IP 網路中,各種網路傳輸協定套用廣泛,如 PPP/SLIP 和 DHCP 傳輸協定,其中 DHCP 傳輸協定支持主機 lease 任意時間的 IP 位址。防火牆(代理 socket 伺服器)以及其它網路位址轉換器(Network Address Translators)是 IP 位址作為標幟符的更為複雜的套用,這主要表現在當通信流量在網路內、外傳輸時,它們仍可以轉換位址。不同的主機可能使用同樣的 IP 位址,或同一台主機可能具有不同的 IP 位址。因此 IP 位址不再是用於識別主機的唯一標幟。

  有很多可行工具可以說明 最小化或阻止以上出現的各種安全問題。另一方面,為增強 TCP/IP 傳輸協定安全效能,解決其存在的漏洞,人們已經作了很多努力。如 IPsec 是 TCP/IP 傳輸協定組中新增的一種安全性傳輸協定,在 IPv6 中也增添了一些安全性選項和特性
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
 


主題工具
顯示模式

發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 01:39 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1