1.什麼是中間人攻擊
man-in-the-middleattack(簡稱「mitm攻擊」),通過各種技術手段將攻擊伺服器放置在兩台正常通訊的計算機之間。
2.中間人攻擊的三種方式
1)dns欺騙
修改受害人計算機host,或者dns伺服器,控制路由器等方法,把受害人要訪問的網域名稱對應的ip解析為攻擊者控制的機器,這時受害人傳送給目標機器的資料就發到了攻擊人的機器上。攻擊者可以監聽甚至修改資料。
2)會話劫持
攻擊人參與到受害人和目標機器正常的tcp會話中,從而干涉會話雙方的資料傳輸。這個「攻擊人」可以是物理伺服器,也可以是邏輯上的木馬程式,關鍵在於它能否獲得通訊雙方的資料。
典型的會話劫持是基於tcp/ip的工作原理來設計的,tcp/ip是使用點對點連線進行資料傳輸的,如果傳送資料後不慎掉線,恰好另乙個人接著ip位址連線到inernet,那他會不會收到伺服器返回資料呢?
tcp協議採用兩個條件來確認每條已經建立連線的tcp通道,
第乙個是基礎連線確認(源ip,源tcp埠,目的ip,目的tcp埠),
第二個是序號標識(seq),tcp建立連線時,規定:序號seq是本報文中傳送的資料在傳送主機所要傳送的整個資料流中的順序號,而確認序列號ackseq是傳送本報文的主機希望接收的對方主機的順序號。一台主機發出的報文中的seq值應等於它所收到的報文中的ackseq值,ackseq值應為收到的seq+本次傳送的tcp資料長度。
知道這兩個條件,就可以進行會話劫持了。攻擊人在原來的合法主機收到另一台合法主機傳送的tcp報文前,向該主機傳送乙個符合條件的tcp報文,如果該主機先收到攻擊報文,就會受到欺騙而把合法的tcp會話建立在攻擊主機與被攻擊主機之間,而且攻擊報文會讓被攻擊主機對下一次要收到的tcp報文中的確認序號值得要求發生變化,使得另一台合法的主機向被攻擊主機發出的報文被拒絕,這種模式稱為「主動劫持」。
3)**伺服器
**伺服器的工作原理:ie傳送乙個包含目標url的http請求,**伺服器接收並解析出http報文裡的目標url和相關引數,然後把這個url與目標**連線,獲取目標**返回的資料後緩衝到**伺服器的硬碟上,再把這些資料返回給客戶端。
常見的**型別有http,smtp,pop3,ftp,ssl,sock4/5
3.中間人攻擊的防禦
對應dns欺騙,首先要檢查本機的hosts檔案,以免被攻擊者加了惡意站點進去;其次要確認自己使用的dns伺服器是isp提供的,因為isp伺服器的安全性較好;如果是依靠閘道器自帶的dns解析來連線internet的,就要拜託管理員定期檢查閘道器裝置是否遭受入侵。
一般區域網才會發生會話劫持,因為要結合嗅探和欺騙技術的攻擊手段,必須依靠arp和mac做基礎,所以閘道器應該使用交換式網路代替共享式網路,靜態arp,,**mac+ip等方法來限制欺騙,認證方式的連線等。
**伺服器本身就是乙個「中間人」角色,當目標ip被遮蔽,或者想在網路中隱藏自己,可以是用**伺服器。
中間人攻擊
正好在公司有機會玩玩內網滲透,於是實踐一下中間人攻擊 我所在的網段為10.0.100.0 24 攻擊者主機ip 10.0.100.133 受害者主機ip 10.0.100.136 閘道器 10.0.100.1 先用nmap掃瞄看看目前內網中在使用的主機ip 使用命令 nmap ss 10.0.100...
中間人攻擊
前面的文章我們講到了rsa演算法以目前的手段是很難被攻破的,那麼使用rsa演算法是不是就一定安全了呢?答案當然是否,因為我們並沒有考慮到網路傳輸中的各種情況。本文會講一種攻擊叫做中間人攻擊,為了抵禦這種攻擊,我們引入證書的概念。我們會在後續的文章中講解證書的概念。這裡我們重點講一下中間人攻擊。所謂中...
Android 中間人攻擊
0x00 android中間人攻擊的思路就是劫持區域網中被攻擊機器和伺服器間的對話。被攻擊機器和伺服器表面上工作正常,實際上已經被中間人劫持。可以從一張圖來明白這個過程。受攻擊主機傳送的資料,首先經過了攻擊者,從伺服器返回的資料也經過攻擊者,再傳送給受攻擊主機。0x01 android開源中間人攻擊...