亚洲av色香蕉一区二区三区,十四以下岁毛片带血a级,亚洲 校园 欧美 国产 另类,亚洲av日韩av一区谷露,色欲av无码一区二区三区

  • 相關(guān)軟件
    >目標(biāo)主機(jī)操作系統(tǒng)識別技術(shù) 創(chuàng)建者:webmaster 更新時(shí)間:2005-05-27 19:29

      普遍的入侵行為需要進(jìn)行端口掃描,這是多數(shù)“黑客”的熟練技巧。大多數(shù)的端口掃描就是讓我們能夠達(dá)到這樣的目的:
    1、讓我們能夠大致判斷目標(biāo)是什么操作系統(tǒng)
    2、目標(biāo)到底在運(yùn)行些什么服務(wù)
    當(dāng)然,要掃描得到這些東西還是最后為了讓我們能夠知道哪些可能拿來利用,可能存在的漏洞,對目標(biāo)主機(jī)的操作系統(tǒng)類型識別,更能夠方便地讓我們?nèi)ダ貌僮飨到y(tǒng)對應(yīng)的漏洞實(shí)施攻擊。很多工具提供的掃描也可能就直接得到什么操作系統(tǒng)了,或者相對應(yīng)的端口使用的是什么程序,程序是什么版本的等等。不過,這些都是由那些工具自己做了,不討論這個(gè),我們應(yīng)該去想想這些工具到底是怎么去實(shí)現(xiàn)的。

    對目標(biāo)主機(jī)操作系統(tǒng)識別的目的,正如Fyodor(nmap的作者)在他的
    《Remote OS detection via TCP/IP Stack FingerPrinting》中講解那樣,進(jìn)行主機(jī)識別有兩個(gè)主要作用,第一,很多系統(tǒng)漏洞是同OS密切相關(guān)的,還有就是社會(huì)學(xué)(social engineering)問題,你能夠在非常了解對方的系統(tǒng)之后,冒充軟件提供商給目標(biāo)發(fā)送“補(bǔ)丁”。按照我們上面提到的高級掃描方式,直接進(jìn)行的端口掃描,能夠賦予我們繞過防火墻的能力,而且可以盡可能地隱藏
    自己等等,但是,我們能夠得到的信息也是有限的,也許對是否開放一個(gè)端口并不是那么直接地感興趣,比如一個(gè)21端口,我們真正感興趣的是這個(gè)端口被用來作什么了,運(yùn)行地什么版本的程序,而不是僅僅打開一個(gè)21端口就滿意了。也就是說,我們對下面得到地這個(gè)東西更感興趣(關(guān)系到IP的地方,我都用X代替了):

    C:\>ftp XXX.XXX.XXX.XXX
    Connected to XXX.XXX.XXX.XXX.
    220 XXXXX X2 WS_FTP Server 1.0.5 (1327846197)
    User (XXX.XXX.XXX.XXX:(none)):

    其實(shí),這就是一種最簡單和最直接的判別方式,獲得程序版本變相地也讓我們能夠估計(jì)到目標(biāo)的操作系統(tǒng)類別。我們可以對每個(gè)打開的端口進(jìn)行相應(yīng)的連接,通常這些服務(wù)程序就會(huì)非常高興地顯示自己的“banner”,也就讓我們能夠直接得到他是什么版本了。甚至,我們能夠得到更好的東西:

    C:\>telnet XXX.XXX.XXX.XXX
    Red Hat Linux release 7.1 (Seawolf)
    Kernel 2.4.2-2 on an i686
    login:

    這讓我們對操作系統(tǒng)版本一覽無余了。正象這些只對80端口感興趣的“黑客”一樣,通過對80端口的連接,我們也能得到足夠多的信息。

    C:\>telnet XXX.XXX.XXX.XXX 80
    HEAD / HTTP/1.1

    HTTP/1.1 200 OK
    Via: 1.1 ADSL2000
    Content-Length: 97
    Date: Thu, 24 Jan 2002 13:46:56 GMT
    Content-Type: text/html
    Server: Apache/1.3.20 (Unix) PHP/4.0.6
    Last-Modified: Wed, 26 Dec 2001 09:22:54 GMT
    ETag: "8715f-61-3c2996ee"
    Accept-Ranges: bytes
    Keep-Alive: timeout=15, max=100

    可以注意到:Server: Apache/1.3.20 (Unix) PHP/4.0.6,這里很明白地“貢獻(xiàn)”出WEB服務(wù)器的軟件版本。

    這樣直接的連接探測方式,對于這些banner開放的,簡直是太容易了,當(dāng)然,負(fù)責(zé)的管理員也會(huì)屏蔽或者修改掉這些BANNER。

    還有一種粗劣而且簡單的判別主機(jī)操作系統(tǒng)類型的辦法就是通過Ping,然后分析得到的TTL值,當(dāng)然,稍微準(zhǔn)確點(diǎn)可以同時(shí)在配合Tracert來確定主機(jī)原始的TTL值,不過,這種辦法很容易被欺騙,比如,在WINDOWS系統(tǒng)中,對注冊表的修改:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
    Key: DefaultTTL
    通過對DefaultTTL的修改,比如:修改成為255,偽裝成為一臺UNIX主機(jī),就能夠造成探測者的錯(cuò)誤判斷。

    對主機(jī)使用端口的分析,同樣也能夠進(jìn)行操作系統(tǒng)識別,一些操作系統(tǒng)使用特殊的端口,比如:WINDOWS的137、139,WIN2K的445,而且一些網(wǎng)絡(luò)設(shè)備比如入侵檢測系統(tǒng)、防火墻等等也都有廠商自己的端口開放。

    上面的這些識別方式也是那些負(fù)責(zé)管理員能夠簡單應(yīng)付的方式,這里,我們可以看看高級的主機(jī)識別技術(shù),這些技術(shù)主要分為兩類:主動(dòng)協(xié)議識別和被動(dòng)協(xié)議識別,都是利用各種操作系統(tǒng)在網(wǎng)絡(luò)協(xié)議通訊中使用不同的協(xié)議內(nèi)容(各個(gè)廠商有自己的規(guī)定),然后對這些不同之處進(jìn)行分析進(jìn)行的識別。

    Nmap這個(gè)強(qiáng)大的掃描工具在遠(yuǎn)程主機(jī)判斷上也使用了很多技術(shù),來實(shí)現(xiàn)更高級的主機(jī)系統(tǒng)檢測。這主要是通過主動(dòng)的TCP/IP協(xié)議辨識來實(shí)現(xiàn)的,每種操作系統(tǒng)在TCP交流中總是使用一些具有特性的標(biāo)志,這些標(biāo)志在TCP IP數(shù)據(jù)包的頭中表現(xiàn)出來。比如window、ACK序號、TTL等等的不同反應(yīng),通過大量的數(shù)據(jù)分析,然后精確地判斷主機(jī)系統(tǒng)。這些系統(tǒng)的協(xié)議特性包括(這只是一小部分):
    FIN識別:發(fā)送一個(gè)只有FIN標(biāo)志位的TCP數(shù)據(jù)包給一個(gè)打開的端口并等待回應(yīng)。正確的RFC793行為是不響應(yīng),但有些系統(tǒng),例如 MS Windows, BSDI, CISCO, HP/UX,MVS,和IRIX 發(fā)回一個(gè)RESET。

    DF位識別:許多操作系統(tǒng)在送出的一些包中設(shè)置IP的DF(不分片)位。

    WINDOW大?。簷z查返回包的窗口大小。特定操作系統(tǒng)反應(yīng)的窗口大小基本是常數(shù),例如,AIX 是唯一用0x3F25的),Microsoft 以及OpenBSD 與FreeBSD用的是0x402E。

    ACK 序號識別:不同實(shí)現(xiàn)中ACK的值是不同的。例如,如果你送了一個(gè)FIN|PSH|URG 到一個(gè)關(guān)閉的TCP 端口。大多數(shù)實(shí)現(xiàn)會(huì)設(shè)置ACK 為你的初始序列數(shù),而Windows 和一些傻打印機(jī)會(huì)送給你序列數(shù)加1。
    在之后,F(xiàn)yodor 和Ofir又分析和收集利用ICMP協(xié)議的操作系統(tǒng)特性來進(jìn)行的主機(jī)系統(tǒng)判別,這種主動(dòng)的識別方式都經(jīng)過了大量的分析,原理和上面的TCP/IP協(xié)議識別相同,比如:用ICMP的地址掩碼請求來探測SUN操作系統(tǒng),對于ICMP地址掩碼請求,只有少數(shù)操作系統(tǒng)會(huì)產(chǎn)生相應(yīng)的應(yīng)答,這些系統(tǒng)包括ULTRIX OpenVMS, Windows 95/98/98 SE/ME,
    NT below SP 4, 和 SUN Solaris機(jī)器。但SUN對分片ICMP地址掩碼請求的應(yīng)答同其他操作系統(tǒng)不相同,這樣就可以來識別SUN主機(jī)操作系統(tǒng)。

    和主動(dòng)的協(xié)議識別原理相同,Lance Spitzner在《Passive Fingerprinting》中提出了被動(dòng)的協(xié)議識別,同樣用來判別主機(jī)系統(tǒng)。這種辦法主要集中考慮:
    1、TTL的設(shè)置
    2、WINDOW SIZE:操作系統(tǒng)設(shè)置的窗口大小
    3、DF:操作系統(tǒng)是否設(shè)置分片位
    4、TOS:操作系統(tǒng)設(shè)置的服務(wù)類型

    對于TTL,對于一個(gè)操作系統(tǒng)來說一般是固定的,比如LINUX Kernel 2.2.x & 2.4.x的 TTL 字段值為 64,
    FreeBSD 4.1, 4.0, 3.4; Sun Solaris 2.5.1, 2.6, 2.7, 2.8;的 TTL為 255 Windows NT,Windows 2000 的為 128等,同時(shí)將配合其他需驗(yàn)證的內(nèi)容,比如:LINUX的窗口值是0x7D78,Solaris2.6-2.7的窗口值有幾種0x2328,0x2238等等。我們以WIN2000為例,它的TTL為“128”,窗口大小在“17000-18000”這個(gè)范圍內(nèi),并且設(shè)置分片位,即DF為1,
    而操作系統(tǒng)設(shè)置的服務(wù)類型TOS為“0”,如果我們對接收的原始數(shù)據(jù)分析得到這樣的結(jié)果,那么我們可以判斷這是一個(gè)WIN2000的操作系統(tǒng)。
    當(dāng)然被動(dòng)協(xié)議識別操作系統(tǒng)也需要分析各個(gè)操作系統(tǒng)的不同反饋屬性,然后根據(jù)得到的信息同收集的屬性相比較。比如多數(shù)系統(tǒng)使用DF位設(shè)置,但是有些系統(tǒng)如SCO和OPENBSD不使用這個(gè)DF標(biāo)志,這樣就可以用來識別一些沒有設(shè)置DF位的操作系統(tǒng)。被動(dòng)協(xié)議識別也可以用來判斷遠(yuǎn)程代理防火墻,因?yàn)榇矸阑饓χ亟▽蛻舻倪B接,它有它自身的特征代碼,也可以用這樣的辦法來分析。

    主動(dòng)協(xié)議識別和被動(dòng)協(xié)議識別需要進(jìn)行大量的統(tǒng)計(jì)分析,雖然比最開始介紹的那些簡單識別方法準(zhǔn)確些,但是也并不能保證一定能夠識別得到準(zhǔn)確的操作系統(tǒng)類型。同時(shí)這兩種方法主要區(qū)別就在于一個(gè)是主動(dòng),而一個(gè)是被動(dòng)的,主動(dòng)識別方式需要主動(dòng)發(fā)送數(shù)據(jù)包,因此相對于那些安全設(shè)備來說,也比較容易識別這些數(shù)據(jù)包,同被動(dòng)識別比較起來,隱蔽性稍微差些。

    Reference:
    1、《X - Remote ICMP Based OS Fingerprinting Techniques》
    2、Phrack #57《ICMP based remote OS TCP/IP stack fingerprinting techniques》
    3、Fyodor《Remote OS detection via TCP/IP Stack FingerPrinting》
    4、Lance Spitzner《Passive Fingerprinting》
    相關(guān)文章
    本頁查看次數(shù):