IP MAC捆绑原理及缺陷的讨论
?
?
路由器從外面收到發給子網的包時,直接用其事先存儲的 ARP 表查出對應 MAC 地址,而以這個MAC地址為目的MAC地址在子網內發包 , 這樣沒有注冊的網卡就收不到外面來的包.? 但這種方法有缺陷,就是對發出的包不檢查,即使網卡MAC 是未登記的, 也可以向外發數據包,而且可以用偽造的IP, 當然有的路由器檢查源IP的范圍, 這時候偽造的IP也必須屬于子網內的IP.? 我們這里的路由器則更土, 把沒有登記的IP 對應的 MAC 設為 0123456789AB , 所以只要把網卡的 MAC 改成這個通用 MAC , 就可以以任何沒有登記的 IP 出去, 至于錢
就不知道記在哪個倒霉鬼的頭上了.? 從根本上說,采用 IP-MAC 來防止IP 盜用是不行的,所有的網卡 MAC 都可以修改.而且更讓人吃驚的是網卡發出的包的源 MAC 地址并不是網卡本身寫上去的, 而是應用程序提供的,只是在通常的實現中,應用程序先從網卡上得到了MAC地址,每次發送包的時候用這個MAC 地址作為源MAC地址而已,所以完全可以不用網卡帶的配置程序修改MAC僅僅靠修改網絡的驅動程序就可以改MAC .在 pkt-driver + win31 的環境下我已經測試過的確是可以的,win95 下利用 NDIS 也是可以的。
? 對于基于連接的TCP協議來說,偽造IP就不是太容易, 這就涉及到 TCP 連接序號的預測的問題,這里面有很多的學問了,國外有很多Hack站點有這些方面問題的討論.
?
這個嘛....說實話,我也沒干過....
只是曾和這樣的人聊過,方法:
1.直接對網卡操作,改其EPROM內容(以太網卡的地址正是存在此)
2.現在有的網卡據說驅動就能改網卡地址,以前有人討論過的,你可找找...
其實我也很想實驗下,苦于無法詳細了解具體細節,老兄要是
有了進一步的體會心得,還望不吝賜教.
初次發表文章,我這里獻丑了,先將我對王卡的一些研究與大家分享。
我們知道網卡有一個唯一表示其地址的物理地址,該地址寫在ROM中(不管該ROM
是EEPROM或ROM),在網卡組幀時需要將該網卡地址寫入幀中,那么網卡在寫入
幀中時是否是將MAC地址直接從ROM中寫入幀的呢?答案是否定的。
實際上在網卡中有一地址寄存器,該處也記著MAC地址,網卡組幀時所用的MAC
地址即從此處讀出,然后由硬件寫入幀中,而地址寄存器的內容則是程序在網卡
初始化時從ROM中讀出寫入的,用圖表示如下:
????????????????? ———————????????? ———————?????????? ————
???????????????? |? ROM??????? |????????? |地址寄存器? |????????? | 幀??? |
???????????????? ---------------????????? --------------?????????? -------
???????????????????? |???? ????????????????????|? |???????????????? |
???????????????????? |-----程序----------------|? |————硬件------
由此過程可以看出,程序部分是唯一一部分可以用來修改MAC的部分,即我們可以截取
網卡驅動程序中該部分代碼,進行修改以修改MAC。
如果HUB換用Switch, 某些Switch可以鎖定端口和MAC, 某個端口只允許指定
MAC接入, 再加上IP-MAC綁定, 還要加上將Switch鎖起來, 情況回好些. 這時
別人要盜用IP除了要改IP,改MAC,還要將機器搬過來換網線:).
? 有這個問題, 好象TCP/IP啟動時會先發ARP廣播一下自己的IP和MAC(?) 不知到95/NT
? 是否會檢測到這個. 我的試驗是在兩臺Linux上做的(許多實驗室都用Linux跑router)
? 至少ifconfig后兩臺機器都沒有給出信息(在前臺, 沒看log). 這里的關鍵在于那合法
? IP的MAC地址是在router處定好的(static), router不會發ARP查詢 MAC, 因此至少
? 從router外來的包ARP不會亂(也就是一直用合法IP機的MAC), 而盜用IP的目的當然不會
? 是在subnet內轉悠 :-) 相當于盜用IP機進入promisc模式, 從合法IP機的包中取出屬于
? 自己的IP包(port不對的丟棄). 經實驗, ping, traceroute等ICMP雙方(合法非法IP機)
? 都可以用, UDP也可以(DNS實驗). 但TCP不行(telnet, ftp等), 我看看source到底是
? 怎么回事, 現在是合法IP機TCP可用, 盜用者不可用...
? 要是TCP也可以了, 那盜用IP豈非很簡單, 根本不用改什么MAC,? ifconfig/route
? 兩條命令就搞定了...
?
?
再談修改網卡MAC地址
在看過第22,23電腦報后,我覺得修改網卡MAC地址并沒有作者所說的那么麻煩。其實更改網卡MAC地址的功能不論98還是2000,都已經提供了,只是平時大家都沒有注意到而以。下面我就說說怎么更改。很簡單哦。。。
好了,現在先來看看WIN2000。在桌面上網上鄰居圖標上點右鍵,選"屬性",在出來的"網絡和撥號連接"窗口中一般有兩個圖標,一個是"新建連接"圖標,一個是"我的連接"圖標。如果你的機器上有兩個網卡的話,那就有三個圖標了。如果你只有一個網卡,那就在"我的連接"圖標上點右鍵,選"屬性",會出來一個"我的連接 屬性"的窗口。在圖口上部有一個"連接時使用:"的標識,下面就是你機器上的網卡型號了。在下面有一個"配置"按鈕,點擊該按鈕后就進入了網卡的屬性對話框了,這個對話框中有五個屬性頁,點擊第二項"高級"頁,在"屬性"標識下有兩項:一個是"Link Speed/Duplex Mode",這是設置網卡工作速率的,我們需要改的是下面一個"Network Address",點擊該項,在對話框右邊的"值"標識下有兩個單選項,默認得是"不存在" ,我們只要選中上面一個單選項,然后在右邊的框中輸入你想改的網卡MAC地址,點"確定",等待一會兒,網卡地址就改好了,你甚至不用停用網卡!
另外,你也可以在"設置管理器"中,打開網卡的屬性頁來修改,效果一樣。
在98下面修改和WIN2000下差不多。在"網上鄰居"圖標上點右鍵,選擇"屬性",出來一個"網絡"對話框,在"配置"框中,雙擊你要修改的網卡,出來一個網卡屬性對話框。在"高級"選項中,也是點擊"屬性"標識下的"Network Address"項,在右邊的兩個單選項中選擇上面一個,再在框中輸入你要修改的網卡MAC地址,點"確定"后,系統會提示你重新啟動。重新啟動后,你的網卡地址就告修改成功!!
如果你想把網卡的MAC地址恢復原樣,只要再次把"Network Address"項右邊的單選項選擇為下面一個"沒有顯示"再重新啟動即可。在WIN2000下面是選擇"不存在",當然也不用重新啟動了。
編者注:編者按作者所說的方法進行過嘗試,但并未在網卡屬性頁中看到作者所說的修改選項,估計有可能是因和作者所用的網卡不同的原因(編者所用的為ISA接口的7009網卡),希望讀者都試驗一下,歡迎到天極DIY論壇討論結果更換網卡的物理地址更換網卡的物理地址--怎一個爽字了得
我們直到網卡的地址有兩種
1、IP地址-->這個要修改比較容易。
2、MAC地址-->網卡的物理地址,它師Ethernet協議采用的地址,主要用于局域網中。
一般由6位00--0FFH之間的16進制數組成,中間用"-"隔開表示,如:00-80-c8-74-12-37
一般來說,這個Mac地址是網卡自己的唯一標識,不可以隨便更換的。本文對網卡Mac地址的
修改是基于注冊表技術實現的。
可以更改的原理//這是我們需要直到的,也是本文的閃光之處。
在Windows9x下,網卡驅動程序使用NDIS規范與操作系統通訊。MAC地址就存儲在操作系統的
某個存儲單元內,Windows9x系統就根據這個存儲單元的內容來識別你網卡的物理地址。所以
我們完全不用修改EPROM的內容而只通過修改存儲單元的內容就能達到修改MAC地址的目的。
修改方法:
運行regedit.exe,找到
HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Class/Net/0000下,如果
你有一塊以上的網卡,就還有0001,0002...在這里保存了有關你機器網卡的信息,其中的
DriverDesc的內容就是你的網卡的信息描述,比如我的網卡就是
Intel 21041 based Ethernet Controller
在相應的0000下新建一字符串"NetworkAddress",鍵值設為你想設置的地址,主意要連續寫。
如,我設置的是112233445566設置完畢,重新啟動計算機,你無論是使用winipcfg或者是使用
nbtstat -a xxx.xxx.xxx.xxx
xxx.xxx.xxx.xxx是你的具體IP,來查看你都會發現你的網卡的MAC地址已經被修改成了
11-22-33-44-55-66。
更進一步的設置:
在HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Class/Net/0000
下的NDI/Params中新建主鍵NetworkAddress;再在NetworkAddress主鍵下添加名為default
的串值,鍵值設置為你要預設置的MAC地址,如112233445566;繼續添加名為ParmasDesc串,鍵
值設置為"MAC Address"
設置好后,重新啟動機器,打開網上鄰居屬性,選擇相應的網卡,查看其屬性頁中的高級選項
有一項就是剛才我們設置好的Mac Addess它的設置值就是我們的預設值112233445566
?
以上修改只適合于Windows系列操作系統,對于別的操作系統可能得想別的辦法。
修改注冊表前請注意備份。另:你改了你網卡的物理地址之后,你就不能上網了
。(不過,這時另一個比較惡毒的念頭
在我的思維的火光中涌現出來..........)
?
IP地址的盜用和防范
Internet是一個開放的、互操作的通信系統,其基礎協議是TCP/IP。Internet協議地址(簡
稱IP地址)是TCP/IP網絡中可尋址設施的唯一邏輯標識,它是一個32位的二進制無符號數。對于
Internet上的任一主機,它都必須有一個唯一的IP地址。IP地址由InterNIC及其下級授權機構分
配,沒有分配到自己的IP地址的主機不能夠直接連接到Internet。??
??? 隨著Internet的迅速發展,IP地址的消耗非常快,據權威機構預測,現行IPv4版本的IP只夠
??? 用到2007年。現在,企業、機構、個人要申請到足夠的IP地址都非常困難,作為一種稀缺資
??? 源,IP地址的盜用就成為很常見的問題。特別是在按IP流量計費的CERNET網絡,由于費用是
??? 按IP地址進行統計的,許多用戶為了逃避網絡計費,用IP地址盜用的辦法,將網絡流量計費
??? 轉嫁到他人身上。另外,一些用戶因為一些不可告人的目的,采用IP地址盜用的方式來逃避
??? 追蹤,隱藏自己的身份。??
??? IP地址盜用侵害了Internet網絡的正常用戶的權利,并且給網絡計費、網絡安全和網絡運行
??? 帶來了巨大的負面影響,因此解決IP地址盜用問題成為當前一個迫切的課題。??
1? IP地址盜用方法分析??
IP地址的盜用方法多種多樣,其常用方法主要有以下幾種:??
1) 靜態修改IP地址??
???? 對于任何一個TCP/IP實現來說,IP地址都是其用戶配置的必選項。如果用戶在配置TCP/IP
???? 或修改TCP/IP配置時,使用的不是授權機構分配的IP地址,就形成了IP地址盜用。由于IP地
???? 址是一個邏輯地址,是一個需要用戶設置的值,因此無法限制用戶對于IP地址的靜態修改,
???? 除非使用DHCP服務器分配IP地址,但又會帶來其它管理問題。??
2) 成對修改IP-MAC地址??
???? 對于靜態修改IP地址的問題,現在很多單位都采用靜態路由技術加以解決。針對靜態路由技
???? 術,IP盜用技術又有了新的發展,即成對修改IP-MAC地址。MAC地址是設備的硬件地址,對
???? 于我們常用的以太網來說,即俗稱的計算機網卡地址。每一個網卡的MAC地址在所有以太網
???? 設備中必須是唯一的,它由IEEE分配,是固化在網卡上的,一般不能隨意改動。但是,現在
???? 的一些兼容網卡,其MAC地址可以使用網卡配置程序進行修改。如果將一臺計算機的IP地址和
???? MAC地址都改為另外一臺合法主機的IP地址和MAC地址,那靜態路由技術就無能為力了。??
另外,對于那些MAC地址不能直接修改的網卡來說,用戶還可以采用軟件的辦法來修改MAC地址,
即通過修改底層網絡軟件達到欺騙上層網絡軟件的目的。??
?3) 動態修改IP地址??
???? 對于一些黑客高手來說,直接編寫程序在網絡上收發數據包,繞過上層網絡軟件,動態修改自
???? 己的IP地址(或IP-MAC地址對),達到IP欺騙并不是一件很困難的事。??
?????
2? 防范技術研究??
針對IP盜用問題,網絡專家采用了各種防范技術,現在比較通常的防范技術主要是根據TCP/IP的層
次結構,在不同的層次采用不同的方法來防止IP地址的盜用。?
?
2.1? 交換機控制??
解決IP地址的最徹底的方法是使用交換機進行控制,即在TCP/IP第二層進行控制:使用交換機提供的
端口的單地址工作模式,即交換機的每一個端口只允許一臺主機通過該端口訪問網絡,任何其它地址
的主機的訪問被拒絕[1]。但此方案的最大缺點在于它需要網絡上全部采用交換機提供用戶接入,這
在交換機相對昂貴的今天不是一個能夠普遍采用的解決方案。??
?
2.2? 路由器隔離??
采用路由器隔離的辦法其主要依據是MAC地址作為以太網卡地址全球唯一不能改變。其實現方法為通
過SNMP協議定期掃描校園網各路由器的ARP表,獲得當前IP和MAC的對照關系,和事先合法的IP和
MAC地址比較,如不一致,則為非法訪問[2]。對于非法訪問,有幾種辦法可以制止,如:??
???????? 使用正確的IP與MAC地址映射覆蓋非法的IP-MAC表項;??
???????? 向非法訪問的主機發送ICMP不可達的欺騙包,干擾其數據發送;??
???????? 修改路由器的存取控制列表,禁止非法訪問。??
路由器隔離的另外一種實現方法是使用靜態ARP表,即路由器中IP與MAC地址的映射不通過ARP來獲得,
而采用靜態設置。這樣,當非法訪問的IP地址和MAC地址不一致時,路由器根據正確的靜態設置轉發
的幀就不會到達非法主機。路由器隔離技術能夠較好地解決IP地址的盜用問題,但是如果非法用戶針對其理
論依據進行破壞,即成對修改IP-MAC地址,對這樣的IP地址盜用它就無能為力了。??
?
2.3? 防火墻與代理服務器??
使用防火墻與代理服務器相結合,也能較好地解決IP地址盜用問題:防火墻用來隔離內部網絡和外
部網絡,用戶訪問外部網絡通過代理服務器進行[3]。使用這樣的辦法是將IP防盜放到應用層來解決,
變IP管理為用戶身份和口令的管理,因為用戶對于網絡的使用歸根結底是要使用網絡應用。這樣實現
的好處是,盜用IP地址只能在子網內使用,失去盜用的意義;合法用戶可以選擇任意一臺IP主機使用,
通過代理服務器訪問外部網絡資源,而無權用戶即使盜用IP,也沒有身份和密碼,不能使用外部網絡。??
使用防火墻和代理服務器的缺點也是明顯的,由于使用代理服務器訪問外部網絡對用戶不是透明的,
增加了用戶操作的麻煩;另外,對于大數量的用戶群(如高校的學生)來說,用戶管理也是一個問題。
?
如何防止寬帶網絡IP地址被盜用?
? 隨著網絡技術在國內的蓬勃發展,寬帶網在許多大樓和社區應運而生。但在享受各種多媒體信息的同時,有個問題經常困擾著網絡管理員和用戶,那就是寬帶網絡內分配的IP地址經常被盜用,授權用戶用自己的IP地址在網絡中產生沖突,無法進入網絡。這種現象導致了網絡管理的混亂,影響授權用戶的利益,也對用網絡流量來進行計費的寬帶網帶來較大的影響。
一、開放系統互聯模型結構
要清楚IP地址盜用的方法,首先必須了解國際電聯規定的開放系統互聯模型(OSI)的結構層次。需要傳輸的數據在傳輸層被分割并重組為數據串(segment),然后在網絡層加入源和目的IP地址,封裝成包(packet),再在數據鏈路層附加數據鏈的幀頭和幀尾,將數據包放進幀(frame)里,最后在物理層轉換成以比特為單位的數據。所以,IP地址是網絡層用來標識不同地點的邏輯地址,它的長度是32位;而在數據鏈路層則是用MAC(媒介存取控制)地址來標識網絡節點的位置,它的長度是48位,它也是設備的物理地址。
二、盜用IP地址的幾條途徑
1. 修改靜態IP地址
在修改TCP/IP協議屬性配置時,使用的不是網絡管理員分配的IP地址,而是已知的授權的IP地址。由于IP地址是一個邏輯地址,是一個需要用戶設置的值,因此無法限制用戶對于IP地址的靜態修改,當盜用者修改IP地址后,也可以通過網關訪問外網。
2. 成對地修改IP地址和MAC地址
為防止靜態IP地址被修改,一般采用靜態路由技術予以解決。針對靜態路由技術,IP盜用技術又有了新的門路,即成對修改IP-MAC地址。MAC地址是設備的物理地址,對于我們常用的以太網來說,俗稱為計算機網卡地址。每一個網卡的MAC地址在所有以太網設備中必須是唯一的,它由IEEE分配,是固化在網卡上的,一般不能隨意改動。但是,目前的一些兼容網卡,其MAC地址可以使用網卡配置程序進行修改。如果將一臺計算機的IP地址和 MAC地址都改為一臺合法主機的IP地址和MAC地址,那靜態路由技術就無能為力了。另外,對于那些MAC地址不能直接修改的網卡來說,高明的盜用者還可以采用軟件的辦法來修改MAC地址。
三、幾種防止IP地址被盜的方法
1.鎖定交換機端口
對于交換機的每一個以太網端口,采用MAC地址表(MAC-address-table)的方式對端口進行鎖定。只有網絡管理員在MAC地址表中指定的網卡的MAC地址才能通過該端口與網絡連接,其他的網卡地址不能通過該端口訪問網絡。我們可以在計算機上先運行ping命令,然后用arp-a命令就可以看到網絡用戶相應的IP地址對應的MAC地址,這樣就使MAC地址和物理順序對應起來,使得一根網線、一個端口對應一個MAC地址。這種方法比較適合于單幢大樓的寬帶用戶,在每一層樓或每個單元放置一臺交換機,對交換機的每一個以太網端口進行限定,讓每個用戶單獨占用一個端口,如果有人盜用了IP地址也將無濟于事。下面用一段程序,舉例說明指定交換機的e0/9口對應MAC地址083c.0000.0002,只有這個MAC地址可以通過該端口訪問網絡。
?
Switch#config terminal
Switch(conf)#mac-address-table permanent 083c.0000.0002 e0/9
Switch(conf)#int e0/9
Switch(conf-if)#port secure max-mac-count1
Switch(conf-if)#exit
Switch(conf)#exit
2.應用ARP綁定IP地址和MAC地址
ARP(Address Resolution Protocol)即地址解析協議,這個協議是將IP地址與網絡物理地址一一對應的協議。每臺計算機的網卡的MAC地址都是唯一的。在三層交換機和路由器中有一張稱為ARP的表,用來支持在IP地址和MAC地址之間的一一對應關系,它提供兩者的相互轉換,具體說就是將網絡層地址解析為數據鏈路層的地址。
我們可以在ARP表里將合法用戶的IP地址和網卡的MAC地址進行綁定。當有人盜用IP地址時,盡管盜用者修改了IP地址,但由于網卡的MAC地址和ARP表中對應的MAC地址不一致,那么也不能訪問網絡。以Cisco交換機為例,在Cisco Catalyst 5000網絡交換機上,關于ARP表的設置和刪除有以下幾條命令:
Set arp [dynamic | static] {ip_addr hw_addr}( 設置動態或靜態的ARP表);
ip_addr(IP地址),hw_addr(MAC地址);
Set arp static 20.89.21.1 00-80-1c-93-80-40(將將IP地址20.89.21.1和網卡MAC地址00-80-1c-93-80-40綁定);
Set arp static 20.89.21.3 00-00-00-00-00-00(對未用的IP進行綁定,將MAC地址設置為0);
Set arp agingtime seconds(設置ARP表的刷新時間,如Set arp agingtime 300);
show arp (用來顯示ARP表的內容);
clear arp [dynamic | static] {ip_addr hw_addr}(清除ARP表中的內容)。
其他品牌的三層交換機也有類似的命令和功能,用其他交換機來構建寬帶網絡時,也可以采用這種設置ARP表的辦法來防止盜用IP地址,以達到限制每個IP地址的流量和根據網絡流量進行計費的目的。這種方法比較適合于社區的寬帶用戶,但它只能防止盜用者靜態地修改IP地址。
3. 用PPPoE協議進行用戶認證
對于盜用者使用第二種方法同時修改IP地址和MAC地址時,可以使用PPPoE協議進行用戶認證。現在有很多基于PPPoE協議的軟件,在ADSL的寬帶網中廣泛使用。PPPoE全稱是Point to Point Protocol over Ethernet(基于局域網的點對點通訊協議),這個協議是為了滿足越來越多的寬帶上網設備和網絡之間的通訊而最新制定開發的標準,它基于兩個廣泛接受的標準,即以太網和PPP點對點撥號協議。對運營商來說,在現有局域網基礎上不必花費巨資來做大面積改造,使得PPPoE 在寬帶接入服務中比其他協議更具有優勢,因此逐漸成為寬帶上網的最佳選擇。 PPPoE的實質是以太網和撥號網絡之間的一個中繼協議,它兼有以太網的快速性和PPP協議撥號的簡易性以及用戶驗證和IP分配等優勢。在ADSL寬帶網的實際應用中,PPPoE利用以太網的工作原理,將ADSL Modem的10BASE-T接口與內部以太網絡互聯,PPPoE接入利用在網絡側和ADSL Modem之間建立一條PVC(永久虛電路)就可以完成以太網上多用戶的共同接入,實際組網方式簡單易行,大大降低了網絡的復雜程度。
在客戶端,其設置和撥號上網方式一樣,安裝虛擬撥號軟件,通過虛擬撥號的方式完成。在客戶機接入網絡后,由PPP服務器或RADIUS服務器來進行認證,其使用的驗證協議有兩種:PAP和CHAP。
PAP是密碼身份驗證協議,它使用原文(不加密)密碼,是一種最簡單的身份驗證協議。如果網絡的接入不能用更安全的驗證方式,一般就使用PAP。
CHAP是質詢握手身份驗證協議,它是使用MD5(message digest 5一種工業標準)的一種散列方案,散列方案是一種轉換密碼的方法,它生成的結果是唯一的且不能被改回到原始形式。CHAP在響應時使用質詢-響應機制和單向 MD5 散列。用這種方法,可以向服務器證明用戶知道密碼,但不必實際將密碼發送到網絡上。通過支持 CHAP 和 MD5,網絡和撥號連接能夠安全地連接到幾乎所有其他的PPP服務器上。
當用戶合法身份通過RADIUS服務器驗證后,由寬帶接入服務器給客戶機分配IP地址,避免了IP地址被盜用的情況。這種由寬帶接入服務器和RADIIUS服務器配合來完成用戶身份并分配IP地址的方法,還可以分配不同性質的IP地址(如公網地址或私有地址),并且符合RFC 2138和RFC 2139建議,支持Radius Proxy功能,可實現用戶的漫游認證。在現有的很多寬帶網里,使用網絡防火墻也具有同樣的用戶認證功能。
用PPPoE協議進行用戶認證的方式適合于大范圍安裝ADSL和局域網的寬帶用戶群,是可以較好地防止盜用IP地址的一種方法。?
?
總結
以上是生活随笔為你收集整理的IP MAC捆绑原理及缺陷的讨论的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《Python 3网络爬虫开发实战 》崔
- 下一篇: 前端技巧总结---持续更新