已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
TCP三次握手及會話劫持原理與實(shí)例首先詳細(xì)了解一下TCP三次握手的過程三次握手Three-way Handshake 一個(gè)虛擬連接的建立是通過三次握手來實(shí)現(xiàn)的 1. (B) - SYN - (A) 假如服務(wù)器A和客戶機(jī)B通訊. 當(dāng)A要和B通信時(shí),B首先向A發(fā)一個(gè)SYN (Synchronize) 標(biāo)記的包,告訴A請求建立連接. 注意: 一個(gè) SYN包就是僅SYN標(biāo)記設(shè)為1的TCP包(參見TCP包頭Resources). 認(rèn)識到這點(diǎn)很重要,只有當(dāng)A受到B發(fā)來的SYN包,才可建立連接,除此之外別無他法。因此,如果你的防火墻丟棄所有的發(fā)往外網(wǎng)接口的SYN包,那么你將不 能讓外部任何主機(jī)主動建立連接。 2. (B) - SYN/ACK ACK - (A) B收到SYN/ACK 包,B發(fā)一個(gè)確認(rèn)包(ACK),通知A連接已建立。至此,三次握手完成,一個(gè)TCP連接完成 Note: ACK包就是僅ACK 標(biāo)記設(shè)為1的TCP包. 需要注意的是當(dāng)三此握手完成、連接建立以后,TCP連接的每個(gè)包都會設(shè)置ACK位 這就是為何連接跟蹤很重要的原因了. 沒有連接跟蹤,防火墻將無法判斷收到的ACK包是否屬于一個(gè)已經(jīng)建立的連接.一般的包過濾(Ipchains)收到ACK包時(shí),會讓它通過(這絕對不是個(gè) 好主意). 而當(dāng)狀態(tài)型防火墻收到此種包時(shí),它會先在連接表中查找是否屬于哪個(gè)已建連接,否則丟棄該包 四次握手Four-way Handshake 四次握手用來關(guān)閉已建立的TCP連接 1. (B) - ACK/FIN - (A) 2. (B) - ACK - (A) 3. (B) - ACK/FIN ACK - (A) 注意: 由于TCP連接是雙向連接, 因此關(guān)閉連接需要在兩個(gè)方向上做。ACK/FIN 包(ACK 和FIN 標(biāo)記設(shè)為1)通常被認(rèn)為是FIN(終結(jié))包.然而, 由于連接還沒有關(guān)閉, FIN包總是打上ACK標(biāo)記. 沒有ACK標(biāo)記而僅有FIN標(biāo)記的包不是合法的包,并且通常被認(rèn)為是惡意的 連接復(fù)位Resetting a connection 四次握手不是關(guān)閉TCP連接的唯一方法. 有時(shí),如果主機(jī)需要盡快關(guān)閉連接(或連接超時(shí),端口或主機(jī)不可達(dá)),RST (Reset)包將被發(fā)送. 注意在,由于RST包不是TCP連接中的必須部分, 可以只發(fā)送RST包(即不帶ACK標(biāo)記). 但在正常的TCP連接中RST包可以帶ACK確認(rèn)標(biāo)記 請注意RST包是可以不要收到方確認(rèn)的 無效的TCP標(biāo)記Invalid TCP Flags 到目前為止,你已經(jīng)看到了 SYN, ACK, FIN, 和RST 標(biāo)記. 另外,還有PSH (Push) 和URG (Urgent)標(biāo)記. 最常見的非法組合是SYN/FIN 包. 注意:由于 SYN包是用來初始化連接的, 它不可能和 FIN和RST標(biāo)記一起出現(xiàn). 這也是一個(gè)惡意攻擊. 由于現(xiàn)在大多數(shù)防火墻已知 SYN/FIN 包, 別的一些組合,例如SYN/FIN/PSH, SYN/FIN/RST, SYN/FIN/RST/PSH。很明顯,當(dāng)網(wǎng)絡(luò)中出現(xiàn)這種包時(shí),很你的網(wǎng)絡(luò)肯定受到攻擊了。 別的已知的非法包有FIN (無ACK標(biāo)記)和NULL包。如同早先討論的,由于ACK/FIN包的出現(xiàn)是為了關(guān)閉一個(gè)TCP連接,那么正常的FIN包總是帶有 ACK 標(biāo)記。NULL包就是沒有任何TCP標(biāo)記的包(URG,ACK,PSH,RST,SYN,FIN都為0)。 到目前為止,正常的網(wǎng)絡(luò)活動下,TCP協(xié)議棧不可能產(chǎn)生帶有上面提到的任何一種標(biāo)記組合的TCP包。當(dāng)你發(fā)現(xiàn)這些不正常的包時(shí),肯定有人對你的網(wǎng)絡(luò)不懷好意。 UDP (用戶數(shù)據(jù)包協(xié)議User Datagram Protocol)TCP是面向連接的,而UDP是非連接的協(xié)議。UDP沒有對接受進(jìn)行確認(rèn)的標(biāo)記和確認(rèn)機(jī)制。對丟包的處理是在應(yīng)用層來完成的。(or accidental arrival). 此處需要重點(diǎn)注意的事情是:在正常情況下,當(dāng)UDP包到達(dá)一個(gè)關(guān)閉的端口時(shí),會返回一個(gè)UDP復(fù)位包。由于UDP是非面向連接的, 因此沒有任何確認(rèn)信息來確認(rèn)包是否正確到達(dá)目的地。因此如果你的防火墻丟棄UDP包,它會開放所有的UDP端口(?)。 由于Internet上正常情況下一些包將被丟棄,甚至某些發(fā)往已關(guān)閉端口(非防火墻的)的UDP包將不會到達(dá)目的,它們將返回一個(gè)復(fù)位UDP包。 因?yàn)檫@個(gè)原因,UDP端口掃描總是不精確、不可靠的。 看起來大UDP包的碎片是常見的DOS (Denial of Service)攻擊的常見形式 (這里有個(gè)DOS攻擊的例子,/dos/grcdos.htm ). ICMP (網(wǎng)間控制消息協(xié)議Internet Control Message Protocol)如 同名字一樣, ICMP用來在主機(jī)/路由器之間傳遞控制信息的協(xié)議。 ICMP包可以包含診斷信息(ping, traceroute - 注意目前unix系統(tǒng)中的traceroute用UDP包而不是ICMP),錯(cuò)誤信息(網(wǎng)絡(luò)/主機(jī)/端口 不可達(dá) network/host/port unreachable), 信息(時(shí)間戳timestamp, 地址掩碼address mask request, etc.),或控制信息 (source quench, redirect, etc.) 。 你可以在/assignments/icmp-parameters中找到ICMP包的類型。 盡管ICMP通常是無害的,還是有些類型的ICMP信息需要丟棄。 Redirect (5), Alternate Host Address (6), Router Advertisement (9) 能用來轉(zhuǎn)發(fā)通訊。 Echo (8), Timestamp (13) and Address Mask Request (17) 能用來分別判斷主機(jī)是否起來,本地時(shí)間 和地址掩碼。注意它們是和返回的信息類別有關(guān)的。它們自己本身是不能被利用的,但它們泄露出的信息對攻擊者是有用的。 ICMP消息有時(shí)也被用來作為DOS攻擊的一部分(例如:洪水ping flood ping,死 ping ?呵呵,有趣 ping of death)?/p 包碎片注意A Note About Packet Fragmentation 如果一個(gè)包的大小超過了TCP的最大段長度MSS (Maximum Segment Size) 或MTU (Maximum Transmission Unit),能夠把此包發(fā)往目的的唯一方法是把此包分片。由于包分片是正常的,它可以被利用來做惡意的攻擊。 因?yàn)榉制陌牡谝粋€(gè)分片包含一個(gè)包頭,若沒有包分片的重組功能,包過濾器不可能檢測附加的包分片。典型的攻擊Typical attacks involve in overlapping the packet data in which packet header is 典型的攻擊Typical attacks involve in overlapping the packet data in which packet header isnormal until is it overwritten with different destination IP (or port) thereby bypassing firewall rules。包分片能作為 DOS 攻擊的一部分,它可以crash older IP stacks 或漲死CPU連接能力。 Netfilter/Iptables中的連接跟蹤代碼能自動做分片重組。它仍有弱點(diǎn),可能受到飽和連接攻擊,可以把CPU資源耗光。握手階段: 序號 方向 seq ack 1A-B 10000 0 2 B-A 20000 10000+1=10001 3 A-B 10001 20000+1=20001解釋: 1:A向B發(fā)起連接請求,以一個(gè)隨機(jī)數(shù)初始化A的seq,這里假設(shè)為10000,此時(shí)ACK0 2:B收到A的連接請求后,也以一個(gè)隨機(jī)數(shù)初始化B的seq,這里假設(shè)為20000,意思是:你的請求我已收到,我這方的數(shù)據(jù)流就從這個(gè)數(shù)開始。B的ACK是A的seq加1,即10000110001 3:A收到B的回復(fù)后,它的seq是它的上個(gè)請求的seq加1,即10000110001,意思也是:你的回復(fù)我收到了,我這方的數(shù)據(jù)流就從這個(gè)數(shù)開始。A此時(shí)的ACK是B的seq加1,即20000+1=20001 數(shù)據(jù)傳輸階段: 序號方向 seq ack size 23 A-B 40000 70000 1514 24 B-A 70000 40000+1514-54=41460 54 25 A-B 41460 70000+54-54=70000 1514 26 B-A 70000 41460+1514-54=42920 54 解釋: 23:B接收到A發(fā)來的seq=40000,ack=70000,size=1514的數(shù)據(jù)包 24:于是B向A也發(fā)一個(gè)數(shù)據(jù)包,告訴B,你的上個(gè)包我收到了。B的seq就以它收到的數(shù)據(jù)包的ACK填充,ACK是它收到的數(shù)據(jù)包的SEQ加上數(shù)據(jù)包的大小(不包括以太網(wǎng)協(xié)議頭,IP頭,TCP頭),以證實(shí)B發(fā)過來的數(shù)據(jù)全收到了。 25:A在收到B發(fā)過來的ack為41460的數(shù)據(jù)包時(shí),一看到41460,正好是它的上個(gè)數(shù)據(jù)包的seq加上包的大小,就明白,上次發(fā)送的數(shù)據(jù)包已安全 到達(dá)。于是它再發(fā)一個(gè)數(shù)據(jù)包給B。這個(gè)正在發(fā)送的數(shù)據(jù)包的seq也以它收到的數(shù)據(jù)包的ACK填充,ACK就以它收到的數(shù)據(jù)包的seq(70000)加上包 的size(54)填充,即ack=70000+54-54(全是頭長,沒數(shù)據(jù)項(xiàng))。其實(shí)在握手和結(jié)束時(shí)確認(rèn)號應(yīng)該是對方序列號加1,傳輸數(shù)據(jù)時(shí)則是對方序列號加上對方攜帶應(yīng)用層數(shù)據(jù)的長度.如果從以太網(wǎng)包返回來計(jì)算所加的長度,就嫌走彎路了. 另外,如果對方?jīng)]有數(shù)據(jù)過來,則自己的確認(rèn)號不變,序列號為上次的序列號加上本次應(yīng)用層數(shù)據(jù)發(fā)送長度.通常,大家所說的入侵,都是針對一臺主機(jī),在獲得管理員權(quán)限后,就很是得意;其實(shí),真正的入侵是占領(lǐng)整個(gè)內(nèi)部網(wǎng)絡(luò)。 針對內(nèi)部網(wǎng)絡(luò)的攻擊方法比較多,但比較有效的方法非ARP欺騙、DNS欺騙莫屬了。但是,不管使用什么技術(shù),無非都是抓取目標(biāo)的數(shù)據(jù)包,然后分析出敏感數(shù) 據(jù)。如果目標(biāo)內(nèi)部采用的是共享式網(wǎng)絡(luò)(采用HUB集線器連網(wǎng)),那只需要把網(wǎng)卡設(shè)置為“混雜模式”,掛上嗅探器(Sniffer),就能簡聽到你想得到的 數(shù)據(jù)。如果是交換式網(wǎng)絡(luò)(采用交換機(jī)連網(wǎng)),這樣方法就行不通了,因?yàn)閷τ谛崽狡?,有三種網(wǎng)絡(luò)環(huán)境是無法跨越的:“網(wǎng)橋”、“交換機(jī)”、“路由器”???惜,對于ARP欺騙,交換式網(wǎng)絡(luò)還是無能為力,如果我們借助ARP欺騙,在實(shí)現(xiàn)更高一層的“入侵手段”,從而真正的控制內(nèi)部網(wǎng)絡(luò)。這也就是本文要敘述的會 話劫持攻擊。 一、會話劫持原理1、什么是會話劫持 在現(xiàn)實(shí)生活中,比如你去市場買菜,在交完錢后你要求先去干一些別的事情,稍候再來拿菜;如果這個(gè)時(shí)候某個(gè)陌生人要求把菜拿走,賣菜的人會把菜給 陌生人嗎?!當(dāng)然,這只是一個(gè)比喻,但這恰恰就是會話劫持的喻意。所謂會話,就是兩臺主機(jī)之間的一次通訊。例如你Telnet到某臺主機(jī),這就是一次 Telnet會話;你瀏覽某個(gè)網(wǎng)站,這就是一次HTTP會話。而會話劫持(Session Hijack),就是結(jié)合了嗅探以及欺騙技術(shù)在內(nèi)的攻擊手段。例如,在一次正常的會話過程當(dāng)中,攻擊者作為第三方參與到其中,他可以在正常數(shù)據(jù)包中插入惡 意數(shù)據(jù),也可以在雙方的會話當(dāng)中進(jìn)行監(jiān)聽,甚至可以是代替某一方主機(jī)接管會話。我們可以把會話劫持攻擊分為兩種類型:1)中間人攻擊(Man In The Middle,簡稱MITM),2)注射式攻擊(Injection);并且還可以把會話劫持攻擊分為兩種形式:1)被動劫持,2)主動劫持;被動劫持實(shí) 際上就是在后臺監(jiān)視雙方會話的數(shù)據(jù)流,叢中獲得敏感數(shù)據(jù);而主動劫持則是將會話當(dāng)中的某一臺主機(jī)“踢”下線,然后由攻擊者取代并接管會話,這種攻擊方法危害非常大,攻擊者可以做很多事情,比如“cat etc/master.passwd”(FreeBSD下的Shadow文件)。MITM攻擊簡介 這也就是我們常說的“中間人攻擊”,在網(wǎng)上討論比較多的就是SMB會話劫持,這也是一個(gè)典型的中間人攻擊。要想正確的實(shí)施中間人攻擊,攻擊者首 先需要使用ARP欺騙或DNS欺騙,將會話雙方的通訊流暗中改變,而這種改變對于會話雙方來說是完全透明的。關(guān)于ARP欺騙黑客防線介紹的比較多,網(wǎng)上的 資料也比較多,我就不在多說了,我只簡單談?wù)凞NS欺騙。DNS(Domain Name System),即域名服務(wù)器, 我們幾乎天天都要用到。對于正常的DNS請求,例如在瀏覽器輸入,然后系統(tǒng)先查看Hosts文件,如果有相對應(yīng)的 IP,就使用這個(gè)IP地址訪問網(wǎng)站(其實(shí),利用Hosts文件就可以實(shí)現(xiàn)DNS欺騙);如果沒有,才去請求DNS服務(wù)器;DNS服務(wù)器在接收到請求之后, 解析出其對應(yīng)的IP地址,返回給我本地,最后你就可以登陸到黑客防線的網(wǎng)站。而DNS欺騙則是,目標(biāo)將其DNS請求發(fā)送到攻擊者這里,然后攻擊者偽造 DNS響應(yīng),將正確的IP地址替換為其他IP,之后你就登陸了這個(gè)攻擊者指定的IP,而攻擊者早就在這個(gè)IP中安排好了惡意網(wǎng)頁,可你卻在不知不覺中已經(jīng) 被攻擊者下了“套”DNS欺騙也可以在廣域網(wǎng)中進(jìn)行,比較常見的有“Web服務(wù)器重定向”、“郵件服務(wù)器重定向”等等。但不管是ARP欺騙,還是 DNS欺騙,中間人攻擊都改變正常的通訊流,它就相當(dāng)于會話雙方之間的一個(gè)透明代理,可以得到一切想知道的信息,甚至是利用一些有缺陷的加密協(xié)議來實(shí)現(xiàn)。注射式攻擊簡介 這種方式的會話劫持比中間人攻擊實(shí)現(xiàn)起來簡單一些,它不會改變會話雙方的通訊流,而是在雙方正常的通訊流插入惡意數(shù)據(jù)。在注射式攻擊中,需要實(shí) 現(xiàn)兩種技術(shù):1)IP欺騙,2)預(yù)測TCP序列號。如果是UDP協(xié)議,只需偽造IP地址,然后發(fā)送過去就可以了,因?yàn)閁DP沒有所謂的TCP三次握手,但 基于UDP的應(yīng)用協(xié)議有流控機(jī)制,所以也要做一些額外的工作。對于IP欺騙,有兩種情況需要用到:1)隱藏自己的IP地址;2)利用兩臺機(jī)器之間的信任關(guān) 系實(shí)施入侵。在Unix/Linux平臺上,可以直接使用Socket構(gòu)造IP包,在IP頭中填上虛假的IP地址,但需要root權(quán)限;在Windows 平臺上,不能使用Winsock,需要使用Winpacp(也可以使用Libnet)。例如在Linux系統(tǒng),首先打開一個(gè)Raw Socket(原始套接字),然后自己編寫IP頭及其他數(shù)據(jù)??梢詤⒖枷旅娴膶?shí)例代碼:sockfd = socket(AF_INET, SOCK_RAW, 255);setsockopt(sockfd, IPPROTO_IP, IP_HDRINCL, &on, sizeof(on);struct ip *ip;struct tcphdr *tcp;struct pseudohdr pseudoheader;ip-ip_src.s_addr = xxx;pseudoheader.saddr.s_addr = ip-ip_src.s_addr;tcp-check = tcpchksum(u_short *)&pseudoheader,12+sizeof(struct tcphdr); sendto(sockfd, buf, len, 0, (const sockaddr *)addr, sizeof(struct sockaddr_in);對于基于TCP協(xié)議的注射式會話劫持,攻擊者應(yīng)先采用嗅探技術(shù)對目標(biāo)進(jìn)行簡聽,然后從簡聽到的信息中構(gòu)造出正確的序列號,如果不這樣,你就必須先猜測目標(biāo)的ISN(初始序列號),這樣無形中對會話劫持加大了難度。那為什么要猜測會話雙方的序列號呢?請繼續(xù)往下看。2、TCP會話劫持本文主要敘述基于TCP協(xié)議的會話劫持。如果劫持一些不可靠的協(xié)議,那將輕而易舉,因?yàn)樗鼈儧]有提供一些認(rèn)證措施;而TCP協(xié)議被欲為是可靠的傳輸協(xié)議,所以要重點(diǎn)討論它。 根據(jù)TCP/IP中的規(guī)定,使用TCP協(xié)議進(jìn)行通訊需要提供兩段序列號,TCP協(xié)議使用這兩段序列號確保連接同步以及安全通訊,系統(tǒng)的 TCP/IP協(xié)議棧依據(jù)時(shí)間或線性的產(chǎn)生這些值。在通訊過程中,雙方的序列號是相互依賴的,這也就是為什么稱TCP協(xié)議是可靠的傳輸協(xié)議(具體可參見 RFC 793)。如果攻擊者在這個(gè)時(shí)候進(jìn)行會話劫持,結(jié)果肯定是失敗,因?yàn)闀掚p方“不認(rèn)識”攻擊者,攻擊者不能提供合法的序列號;所以,會話劫持的關(guān)鍵是預(yù)測 正確的序列號,攻擊者可以采取嗅探技術(shù)獲得這些信息。TCP協(xié)議的序列號 現(xiàn)在來討論一下有關(guān)TCP協(xié)議的序列號的相關(guān)問題。在每一個(gè)數(shù)據(jù)包中,都有兩段序列號,它們分別為:SEQ:當(dāng)前數(shù)據(jù)包中的第一個(gè)字節(jié)的序號ACK:期望收到對方數(shù)據(jù)包中第一個(gè)字節(jié)的序號假設(shè)雙方現(xiàn)在需要進(jìn)行一次連接:S_SEQ:將要發(fā)送的下一個(gè)字節(jié)的序號S_ACK:將要接收的下一個(gè)字節(jié)的序號S_WIND:接收窗口/以上為服務(wù)器(Server)C_SEQ:將要發(fā)送的下一個(gè)字節(jié)的序號C_ACK:將要接收的下一個(gè)字節(jié)的序號C_WIND:接收窗口/以上為客戶端(Client)它們之間必須符合下面的邏輯關(guān)系,否則該數(shù)據(jù)包會被丟棄,并且返回一個(gè)ACK包(包含期望的序列號)。C_ACK = C_SEQ = C_ACK + C_WINDS_ACK = S_SEQ = S_ACK + S_WIND如果不符合上邊的邏輯關(guān)系,就會引申出一個(gè)“致命弱點(diǎn)”,具體請接著往下看。致命弱點(diǎn) 這個(gè)致命的弱點(diǎn)就是ACK風(fēng)暴(Storm)。當(dāng)會話雙方接收到一個(gè)不期望的數(shù)據(jù)包后,就會用自己期望的序列號返回ACK包;而在另一端,這個(gè) 數(shù)據(jù)包也不是所期望的,就會再次以自己期望的序列號返回ACK包于是,就這樣來回往返,形成了惡性循環(huán),最終導(dǎo)致ACK風(fēng)暴。比較好的解決辦法是先進(jìn) 行ARP欺騙,使雙方的數(shù)據(jù)包“正?!钡陌l(fā)送到攻擊者這里,然后設(shè)置包轉(zhuǎn)發(fā),最后就可以進(jìn)行會話劫持了,而且不必?fù)?dān)心會有ACK風(fēng)暴出現(xiàn)。當(dāng)然,并不是所 有系統(tǒng)都會出現(xiàn)ACK風(fēng)暴。比如Linux系統(tǒng)的TCP/IP協(xié)議棧就與RFC中的描述略有不同。注意,ACK風(fēng)暴僅存在于注射式會話劫持。TCP會話劫持過程假設(shè)現(xiàn)在主機(jī)A和主機(jī)B進(jìn)行一次TCP會話,C為攻擊者,劫持過程如下:A向B發(fā)送一個(gè)數(shù)據(jù)包SEQ (hex): X ACK (hex): YFLAGS: -AP- Window: ZZZZ,包大小為:60B回應(yīng)A一個(gè)數(shù)據(jù)包SEQ (hex): Y ACK (hex): X+60FLAGS: -AP- Window: ZZZZ,包大小為:50A向B回應(yīng)一個(gè)數(shù)據(jù)包SEQ (hex): X+60 ACK (hex): Y+50FLAGS: -AP- Window: ZZZZ,包大小為:40B向A回應(yīng)一個(gè)數(shù)據(jù)包SEQ (hex): Y+50 ACK (hex): X+100FLAGS: -AP- Window: ZZZZ,包大小為:30攻擊者C冒充主機(jī)A給主機(jī)B發(fā)送一個(gè)數(shù)據(jù)包SEQ (hex): X+100 ACK (hex): Y+80FLAGS: -AP- Window: ZZZZ,包大小為:20B向A回應(yīng)一個(gè)數(shù)據(jù)包SEQ (hex): Y+80 ACK (hex): X+120 FLAGS: -AP- Window: ZZZZ,包大小為:10現(xiàn)在,主機(jī)B執(zhí)行了攻擊者C冒充主機(jī)A發(fā)送過來的命令,并且返回給主機(jī)A一個(gè)數(shù)據(jù)包;但是,主機(jī)A并不能識別主機(jī)B發(fā)送過來的數(shù)據(jù)包,所以主機(jī)A會以期望的序列號返回給主機(jī)B一個(gè)數(shù)據(jù)包,隨即形成ACK風(fēng)暴。如果成功的解決了ACK風(fēng)暴(例如前邊提到的ARP欺騙),就可以成功進(jìn)行會話劫持了。關(guān)于理論知識就說到這里,下面我以具體的實(shí)例演示一次會話劫持。二、會話劫持實(shí)踐1、嘮叨幾句 可以進(jìn)行會話劫持的工具很多,比較常用有Juggernaut,它可以進(jìn)行TCP會話劫持的網(wǎng)絡(luò)Sniffer程序;TTY Watcher,而它是針對單一主機(jī)上的連接進(jìn)行會話劫持。還有如Dsniff這樣的工具包也可以實(shí)現(xiàn)會話劫持,只是看你會不會使用了。但,能將會話劫持 發(fā)揮得淋漓盡致的,還要算Hunt這個(gè)工具了。它的作者是Pavel Krauz,可以工作在Linux和一些Unix平臺下。它的功能非常強(qiáng)大,首先,無論是在共享式網(wǎng)絡(luò)還是交換式網(wǎng)絡(luò),它都可以正常工作;其次,可以進(jìn)行 中間人攻擊和注射式攻擊。還可以進(jìn)行嗅探、查看會話、監(jiān)視會話、重置會話。通過前面的敘述,我們知道在注射式攻擊中,容易出現(xiàn)ACK風(fēng)暴,解決辦法是先進(jìn) 行ARP欺騙;而使用Hunt進(jìn)行注射式攻擊時(shí),它并不進(jìn)行ARP欺騙,而是在會話劫持之后,向會話雙方發(fā)送帶RST標(biāo)志位的TCP包以中斷會話,避免 ACK風(fēng)暴繼續(xù)下去。而中間人攻擊是先進(jìn)行ARP欺騙,然后進(jìn)行會話劫持。Hunt目前最新版本是1.5,可以到Pavel Krauz網(wǎng)站下載源代碼包和二進(jìn)制文件:http:/lin.fsid.cvut.cz/kra/#hunt。現(xiàn)在來看看如果使用Hunt,首先是下載并編譯源代碼:rootdahubaobao hunt#wget /hunt-1.5.tgzrootdahubaobao hunt#tar zxvf hunt-1.5.tgzrootdahubaobao hunt#cd hunt-1.5rootdahubaobao hunt-1.5#makerootdahubaobao hunt-1.5#./hunt/Hunt是完全交互試的操作解釋一下各個(gè)選項(xiàng)的含義l/w/r) list/watch/reset connections/l(字母l)為查看當(dāng)前網(wǎng)絡(luò)上的會話;w為監(jiān)視當(dāng)前網(wǎng)絡(luò)上的某個(gè)會話;r為重置當(dāng)前網(wǎng)絡(luò)上的某個(gè)會話。a) arp/simple hijack (avoids ack storm if arp used)/中間人攻擊(會話劫持),Hunt先進(jìn)行ARP欺騙,然后進(jìn)行會話劫持。使用此方法可以避免出現(xiàn)ACK風(fēng)暴。s) simple hijack/簡單的會話劫持,也就是注射式攻擊。會出現(xiàn)ACK風(fēng)暴。d) daemons rst/arp/sniff/mac/該選項(xiàng)共實(shí)現(xiàn)四個(gè)功能,分別為:終止會話,自動發(fā)送帶RST標(biāo)志位的TCP包;ARP欺騙后進(jìn)行數(shù)據(jù)包轉(zhuǎn)發(fā);不用說了,嗅探功能;在當(dāng)前網(wǎng)絡(luò)上收集MAC地址。其他的選項(xiàng)很簡單,不在多說了。還是來看看具體的例子吧,我想大家都等不及了!_2、應(yīng)用實(shí)例 測試環(huán)境:攻擊者:Red Hat Linux 9.0 IP:0主機(jī)A:Windows Advanced Server IP:主機(jī)B:FreeBSD 4.9 STABLE IP:0rootdahubaobao hunt-1.5#./hunt/* hunt 1.5* multipurpose connection intruder / sniffer for Linux* (c) 1998-2000 by kra*/starting hunt- Main Menu - rcvpkt 0, free/alloc 63/64 -l/w/r) list/watch/reset connectionsu) host up testsa) arp/simple hijack (avoids ack storm if arp used)s) simple hijackd) daemons rst/arp/sniff/maco) optionsx) exit* l /查看當(dāng)前網(wǎng)絡(luò)上的會話0) 3465 ?0 23/主機(jī)A正在Telnet到主機(jī)B- Main Menu - rcvpkt 0, free/alloc 63/64 -l/w/r) list/watch/reset connectionsu) host up testsa) arp/simple hijack (avoids ack storm if arp used)s) simple hijackd) daemons rst/arp/sniff/maco) optionsx) exit* w /監(jiān)視當(dāng)前網(wǎng)絡(luò)上的會話0) 3465 ?0 23Choose conn0 /選擇打算監(jiān)視的會話。由于我的條件有限,不能模擬多個(gè)會話,請多見量。Dump src/dst/both b /回車Print sec/dst same charactes y/n n /回車 現(xiàn)在就可以監(jiān)視會話了。主機(jī)A輸入的一切內(nèi)容,我們都可以看到。主機(jī)A在Telnet并登陸之后,直接su root,password:后邊的就是root的密碼。現(xiàn)在這個(gè)系統(tǒng)已經(jīng)完全由你所控制了,自由發(fā)揮吧!- Main Menu - rcvpkt 0, free/alloc 63/64 -l/w/r) list/watch/reset connectionsu) host up testsa) arp/simple hijack (avoids ack storm if arp used)s) simple hijackd) daemons rst/arp/sniff/maco) optionsx) exit* s /進(jìn)行注射式會話劫持0) 3465 ?0 23choose conn 0dump connection y/n n Enter the command string you wish executed or cr cat /etc/passwd攻擊者的意圖是獲取主機(jī)B的passwd文件的內(nèi)容,但由于注射式會話劫持缺陷,導(dǎo)致了ACK風(fēng)暴,所以Hunt向會話雙方發(fā)送了一個(gè)帶RST標(biāo)志位的TCP包來阻止ACK風(fēng)暴。- Main Menu - rcvpkt 0, free/alloc 63/64 -l/w/r) list/watch/reset connectionsu) host up testsa) arp/simple hijack (avoids ack storm if arp used)s) simple hijackd) daemons rst/arp/sniff/maco) optionsx) exit* a /進(jìn)行中間
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個(gè)人出納職業(yè)擔(dān)保合同規(guī)范范本4篇
- 2025年度內(nèi)部設(shè)施設(shè)備更新改造承包協(xié)議4篇
- 2025年度新能源汽車零部件供應(yīng)合同樣本3篇
- 二零二五年度成人教育代理招生服務(wù)合同范本7篇
- 二零二五年度企業(yè)破產(chǎn)財(cái)產(chǎn)保全及清算合同3篇
- 2025版養(yǎng)老機(jī)構(gòu)護(hù)理服務(wù)外包合同模板4篇
- 二零二五年度辦公樓智能化門禁系統(tǒng)租賃合同全文4篇
- 2025年度智能照明系統(tǒng)個(gè)人銷售代理合同范本3篇
- 二零二五年度石材產(chǎn)業(yè)鏈采石場承包合作協(xié)議3篇
- 二零二五版奶牛牧場養(yǎng)殖環(huán)境監(jiān)測與治理承包合同4篇
- 風(fēng)電場事故案例分析
- 護(hù)理飲食指導(dǎo)整改措施及方案
- 項(xiàng)目工地春節(jié)放假安排及安全措施
- 印染廠安全培訓(xùn)課件
- 紅色主題研學(xué)課程設(shè)計(jì)
- 胸外科手術(shù)圍手術(shù)期處理
- 裝置自動控制的先進(jìn)性說明
- 《企業(yè)管理課件:團(tuán)隊(duì)管理知識點(diǎn)詳解PPT》
- 移動商務(wù)內(nèi)容運(yùn)營(吳洪貴)任務(wù)二 軟文的寫作
- 英語詞匯教學(xué)中落實(shí)英語學(xué)科核心素養(yǎng)
- 《插畫設(shè)計(jì)》課程標(biāo)準(zhǔn)
評論
0/150
提交評論