HTTP 中間人攻擊實驗
在Linux下使用mitmproxy的透明代理模式,攔截同一區域網下一臺目標主機的HTTP響應頁面,並重定向網頁。
2 實驗環境
攻擊主機:Kali Linux、mitmproxy
靶機:Windows 7 、IE瀏覽器
3 實驗工具
mitmproxy:是專用於中間人攻擊的代理工具,可以攔截HTTP和HTTPS請求和響應,並動態修改它們,它支援兩種模式,正向代理,與透明代理,OSX和Linux上的透明代理模式
4 實驗步驟
4.1 環境準備
在NAT模式下配置兩臺虛擬機器IP位於統一網段,可以ping通
kali
win7
ping
4.2 安裝工具
kali已安裝
4.3 輸入攔截條件
4.4 設定IE瀏覽器的代理伺服器
開啟win7 的IE的Internet選項,將代理伺服器地址設定為我們的kali地址
4.5 攔截資料包
IE位址列輸入網址
kali已攔截
單擊URL,可以看到三個標籤,其中Request標籤被標註為intercepted,表示被攔截
4.6 攔截Response包
按a放行該包,Response包被攔了下來
IIS 302 0 0日誌程式碼解釋:搜尋引擎返回302錯誤表示被請求的資源暫時轉移(Moved temporatily),然後會給出一個轉移後的URL,而瀏覽器在處理伺服器返回的302錯誤時,原則上會重新建立一個TCP連線,然後再取重定向後的URL的頁面;但是如果頁面存在於快取中,則不重新獲取。
伺服器要求重定向到谷歌
4.7 修改location
按e
回車進入
按e進入,按i插入,將google換成163,esc退出,:wq儲存
檢視Location
4.8 完成中間人攻擊
按a放包
回去看我們win7
攻擊成功
5 實驗中的問題
5.1 課本提示返回301而我們返回302
301和302狀態碼都表示重定向,就是說瀏覽器在拿到伺服器返回的這個狀態碼後會自動跳轉到一個新的URL地址,這個地址可以從響應的Location首部中獲取——這是它們的共同點。
他們的不同在於301表示舊地址A的資源已經被永久地移除了(這個資源不可訪問了);302表示舊地址A的資源還在(仍然可以訪問),這個重定向只是臨時地從舊地址A跳轉到地址B,搜尋引擎會抓取新的內容而儲存舊的網址。
5.2 課本命令有問題
參考課本先按e再按h的方法無法改Location,這裡還是花了些時間去試探其他方法的
按e進入編輯模式之後可以進入response header的頁面進行修改
6 實驗收穫