第27章 揪住黑客!

投票推薦 加入書籤 小說報錯

  羅韜神色變得鄭重了些。

  打開源文件,把主工程文件導入自己的編譯器,一行一行地查看源碼。

  林青玉輕手輕腳走進寢室,站在羅韜身後。

  隨著時間一點點地過去,她的一顆心漸漸下沉。

  突然,羅韜身體向前探去,仔仔細細看了片刻,嘴裡道:「發現一處問題。」

  說話間移動滑鼠,將一行代碼標為高亮。

  林青玉連忙湊過去看,發現那行代碼是——

  fprintf(logfile, log_entry);

  「這一行,存在格式化字符串漏洞。」

  羅韜手指指著屏幕,對著林青玉解說起來。

  「對方若是知道這個漏洞,就會發送一條特製的公開消息,其中嵌入大量的格式化符號——比如%x、%n這些格式說明符。

  %x可以從棧上讀取數據,泄露內存信息。

  %n可以向任意內存地址寫入任意值。

  因為,%n會將當前已輸出的字符數寫入對應地址。

  攻擊者利用這些,一步步地推移棧上的指針,最終覆蓋函數返回地址,實現遠程代碼執行。」

  林青玉雖然專業教人編程,卻從未涉及安全領域,聽了一個似懂非懂。

  羅韜不想總是解決這類小問題,唯一辦法就是教會對方。

  所以,他表現出了極強耐心。

  「當伺服器程序將攻擊者的消息記錄到日誌時,日誌函數沒有對消息內容做任何過濾,直接將其作為格式字符串傳遞給fprintf函數。

  攻擊者通過那些格式化符號推移棧上的指針,最終用一個%n,將當前輸出的字符數寫入了程序全局偏移表中fprintf函數的入口地址,將其篡改為他預先布置的shellcode的起始地址。

  此後伺服器再次調用fprintf時,實際執行的是攻擊者的代碼,從而以root權限為他開啟了一個後門埠。

  他通過這個後門修改了程序內存中標識用戶權限的變量,使自己獲得了最高權限。」

  這一次,林青玉徹底聽明白了,由衷地說了一聲:「感謝解惑!」

  然後擺了擺手:「你先處理漏洞,不用管我。」

  羅韜點點頭,卻沒有立即修補漏洞,而是先去追查入侵者的來源。

  來而不往非禮也!

  對方那麼狂,必須給他一點教訓。

  他登錄伺服器,查看當前所有網絡連接。

  發現聊天室的進程裡面,維護著四五十個來自外部的活躍連接。

  其中一個的發包周期,恰好與黑客帳號的發言頻率相對應。

  他記下那個IP位址,然後打開一個命令行窗口。

  「噼哩啪啦……」

  羅韜雙手十指在鍵盤上面飛舞,速度之快把林青玉都嚇了一跳。

  她很想問一句——「你現在在幹什麼?」

  看到羅韜那般專注,最終把話咽了回去。

  羅韜這時寫的,是個最簡易的TCP埠掃描器。

  原理簡單得可怕:創建socket,用connect()去嘗試連接目標IP的常用埠,能連上的就是開放的。

  使用這個小工具,可以快速掃描目標開放的埠。

  一分鐘左右,代碼寫完。

  編譯、運行,輸入那個IP位址。

  屏幕上面,開始滾過一行行結果——

  21埠:開放

  23埠:開放

  80埠:開放

  139埠:開放

  445埠:開放

  3389埠:開放

  ……

  過了一陣,羅韜雙目緊緊盯著屏幕,目光鎖定在3389埠。

  林青玉也不是全無見識,直接問出心中疑惑:「你想反攻對方?這很難吧?」

  「會者不難,難者不會!」羅韜臉上浮現笑意,「已經有眉目了。」


  說話間,點擊滑鼠退出掃描程序,嘗試連接過去——

  通過之前植入的後門,他發現這是一台Windows主機。

  而且,3389埠開放意味著遠程桌面服務正在運行。

  羅韜沒有貿然連接,而是先檢查這台機器的歷史操作記錄。

  在臨時目錄中,他發現了幾處線索:一個名為「exploit.c」的源碼文件,一個編譯好的可執行文件,還有幾個日誌片段。

  這說明,攻擊者只是用這台機器作為跳板。

  好消息是,攻擊者沒有清除操作痕跡。

  羅韜仔細檢查了系統日誌,發現攻擊者通過另一台中間伺服器登錄這台機器,而那個中間伺服器的IP屬於教育網。

  202.114.64.xxx

  羅韜手指指著IP位址,對著林青玉說道:

  「這個IP位址,多半是某個大學的,應該可以查到。」

  林青玉點點頭,仔細記下,轉身走了出去。

  羅韜進一步分析,發現那個攻擊者曾經多次從這台跳板機訪問另一個固定地址。

  大約是一直都太順利,根本沒有清理連接記錄。

  羅韜嘴角浮起一抹嘲諷,再次打開掃描工具,對準那個新發現的地址。

  路運成全程看著羅韜操作,完全就是不明覺厲心態。

  突然。

  他發現羅韜打開一個畫著窗口圖標的東西,裡面有兩個空白的框子。

  羅韜在第一個框裡敲了一串數字,又點開下面一個小方塊,選了另一串更長的字符貼進去。

  過不多時,屏幕上出現了一個完整的電腦桌面,壁紙是藍天白雲青草地。

  典型的Win98界面。

  隨著羅韜不斷點擊滑鼠,路運成看到一個個的文件夾展開,課程表、實習報告……

  直到看到一個相冊,裡面的照片一點一點刷新出來,路運成終於確認一件事——羅韜進入那名黑客的電腦里了!

  那麼厲害的一個黑客,就這樣被羅韜拿下了?

  為了確定這點,他直接不恥下問:「羅韜,你在遠程操控對方電腦嗎?」

  「算是吧。」羅韜頭也不抬,一邊說話一邊截圖。

  路運成馬上又問:「那他知道嗎?」

  羅韜搖搖頭,臉上浮起笑意:「他要知道,現在肯定拔網線了!」

  實際上,羅韜是通過跳板機上殘留的RDP連接記錄,獲取了目標IP和用戶名。

  對方顯然大意了,在連接時選擇了「記住密碼」,憑證被明文緩存在註冊表的DefaultPassword鍵值中。

  羅韜提取出這組憑據,直接建立了遠程桌面會話。

  此時,他打開mstsc的遠程協助功能,利用Shadow會話技術,在不影響對方操作的情況下實時監控桌面。

  對方全屏展開了小雨點聊天室,輸入框裡字符不斷增加。

  【那誰誰不是很厲害嗎,快來……】

  羅韜等到攻擊者打出後面的「抓我呀」三個字,趕緊截了一張圖片。

  又等片刻,等到攻擊者把這一句發出去,變成小雨點聊天室中的一行系統文字,又截一張。

  證據固定完畢。

  羅韜在命令行中調用shutdown.exe,強制終止目標系統:

  shutdown /s /t 0 /f

  系統立即響應,終止所有進程並進入關機流程。

  對方界面很快變藍,系統提示「正在關機」。

  緊接著,屏幕一黑,連接斷開了。

  「你把對方關機了?」路運成瞪眼問道。

  羅韜點點頭,回到跳板機,修改了本地安全策略,強制要求複雜密碼並禁用憑據緩存。

  然後,斷開了所有連接。

  此時此刻,某大學宿舍。

  一個年輕人坐在電腦面前,神情很是疑惑。

  「咋就關機了?」

章節目錄