<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【實(shí)戰(zhàn)】用 Python 實(shí)現(xiàn)中間人攻擊

          共 2350字,需瀏覽 5分鐘

           ·

          2021-02-14 08:13

          文 | 豆豆

          來源:Python 技術(shù)「ID: pythonall」

          中間人攻擊,顧名思義,就是客戶端和服務(wù)端的通信被第三者攔截了,這樣通信雙方的通信內(nèi)容就會(huì)被竊聽。你可能會(huì)認(rèn)為,沒關(guān)系啊,竊聽就竊聽唄,反正又沒什么重要的信息,那如果我告訴你,攻擊者不但可以竊聽你們的通信內(nèi)容,甚至可以修改你們的通信內(nèi)容,你還會(huì)這么認(rèn)為么。

          想象一下,當(dāng)你和你的女朋友正聊的火熱時(shí),你們的聊天記錄就好像被掛在了公屏上一樣,攻擊者一覽無余,甚至當(dāng)你給你的女票發(fā)送了一句「我愛你」之后,攻擊者篡改了你發(fā)送的內(nèi)容,修改為「我恨你」。想象一下后果嚴(yán)重不嚴(yán)重。

          與信息被竊聽帶來的危害相比,攻擊者篡改通信內(nèi)容所帶來的危害則更甚。今天派森醬就帶你來玩一玩中間人攻擊。

          工具安裝

          熟話說工欲善其事,必先利其器。好的工具可以讓我們事半功倍,今天的主角就是 mitmproxy,這是一款出色的代理工具,使用起來也非常簡單方便,使用 pip 安裝即可。

          pip3 install mitmproxy

          安裝好之后,我們就可以使用 mitmproxy、mitmdump 和 mitmweb 這三個(gè)命令來愉快的玩耍了。

          其中 mitmproxy 是以命令行的方式來交互的,不太好用,所以很少用,暫時(shí)忽略即可;mitmdump 是 mitmproxy 的命令行接口,關(guān)鍵的是,該命令可以使用 Python 對(duì)請(qǐng)求做數(shù)據(jù)處理,比如數(shù)據(jù)的解析,過濾,存儲(chǔ)等;而 mitmweb 則是 web 交互模式。

          mitmweb

          直接在命令行是輸入 mitmweb 按回車即可。

          此時(shí),我們可以看到 mitmweb 在 8080 監(jiān)聽,而 8081 則是 web 交互界面的端口,打開地址 http://127.0.0.1:8081/ 即可看到。

          設(shè)置好電腦的代理服務(wù)器地址和端口,代理地址是本地,端口就是 8080,然后用瀏覽器訪問必應(yīng)首頁 https://cn.bing.com/,mitmweb 監(jiān)控頁面就會(huì)收到一系列請(qǐng)求了,針對(duì)每個(gè)具體的請(qǐng)求,還可以看到詳細(xì)的請(qǐng)求和返回?cái)?shù)據(jù),

          mitmdump

          相比于 mitmweb,mitmdump 的功能更強(qiáng)大,我們可以使用 Python 腳本來處理相應(yīng)的請(qǐng)求。

          先建一個(gè) script.py 的腳本。

          def request(flow):
              print('request url is %s' % flow.request.url)

          接著執(zhí)行 mitmdump -s script.py 命令,可看到 mitmproxy 仍然是在 8080 端口開啟監(jiān)聽。

          然后我們開始訪問必應(yīng)首頁,可以看到控制臺(tái)輸出如下。

          細(xì)心的你可能發(fā)現(xiàn)了,第二張圖的命令比第一張圖多了一個(gè) -q 的參數(shù),這是為了防止 mitmproxy 的日志輸出對(duì)結(jié)果造成干擾。我們的腳本程序已經(jīng)跑通了,接下來就是如何對(duì)數(shù)據(jù)做處理了。

          今天我們來做點(diǎn)好玩的,不管用戶訪問什么網(wǎng)站,我們都將其指向必應(yīng)首頁。

          def request(flow):
              flow.request.url = 'http://cn.bing.com'

          一行代碼搞定,啟動(dòng) mitmproxy 來看下效果,我們?cè)囍L問下百度搜索。

          另外,假設(shè)你正在 bing 搜索「如何自學(xué) Python」,我們將返回的答案修改為“自學(xué) Python,請(qǐng)關(guān)注「Python 技術(shù)」公眾號(hào)“。

          def response(flow):
              text = flow.response.get_text()
              for str in ['自學(xué) Python''自學(xué)Python''自學(xué) python''自學(xué)python']:
                  text = text.replace(str, '自學(xué) Python,請(qǐng)關(guān)注「Python 技術(shù)」公眾號(hào)')
              flow.response.set_text(text)

          啟動(dòng) mitmproxy,然后用 bing 搜索相應(yīng)的關(guān)鍵字,我們可以看到 bing 返回的結(jié)果已經(jīng)被修改為我們程序中內(nèi)定的文案了。

          是不是很流弊呀,這就是 mitmproxy 的強(qiáng)大之處,我們可以用 Python 腳本對(duì)請(qǐng)求做任何處理,只有你想不到,沒有做不到。

          總結(jié)

          今天我們用 mitmproxy 實(shí)現(xiàn)了中間人攻擊,只是作為實(shí)驗(yàn)達(dá)到學(xué)習(xí)知識(shí)的目的?,F(xiàn)實(shí)中的中間人人攻擊遠(yuǎn)比這個(gè)要復(fù)雜的多,會(huì)涉及到 DNS 欺騙,網(wǎng)絡(luò)劫持等多種手段,大家平時(shí)上網(wǎng)還需多留心。

          PS公號(hào)內(nèi)回復(fù)「Python」即可進(jìn)入Python 新手學(xué)習(xí)交流群,一起 100 天計(jì)劃!


          老規(guī)矩,兄弟們還記得么,右下角的 “在看” 點(diǎn)一下如果感覺文章內(nèi)容不錯(cuò)的話,記得分享朋友圈讓更多的人知道!

          代碼獲取方式

          識(shí)別文末二維碼,回復(fù):210213

          瀏覽 58
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  大鸡巴AV在线 | 日本无码无卡二三 | 色老板最新地址 | 大香蕉草久 | 四虎成人精品永久免费AV九九 |