最新消息:图 床

路由器漏洞復現終極奧義——基於 MIPS 的 shellcode 編寫

COOL IAM 205浏览 0评论

原文來自安全客,作者:desword
原文鏈接:https://www.anquanke.com/post/id/153725

前言

今天我們來聊聊如何在MIPS架構中編寫shellcode。在前面的兩篇文章中,我們分別介紹了基於MIPS的緩衝區溢出實踐,以及進一步的如何利用學到的溢出知識復現與驗證路由器的漏洞。但是在上文的路由器漏洞利用的例子裡面,我們需要有一個前置條件,即含有漏洞的程序必須導入了系統的庫函數,我們才能方便的驗證,然而這個條件並不是時刻有效的。因此,在本文中,我們介紹路由器漏洞復現的終極奧義——基於MIPS的shellcode編寫。有了shellcode,如果目標程序能夠被溢出,那麼我們就可以執行任意的程序。所以說是終極奧義。簡單來說,shellcode就是一段向進程植入的一段用於獲取shell的代碼,(shell即交互式命令程序)。現如今,shellcode從廣義上來講,已經統一指在緩衝區溢出攻擊中植入進程的代碼。因此,shellcode現在所具備的功能不僅包括獲取shell,還包括彈出消息框、開啟端口和執行命令等。

在本文中,我將介紹

  1. 基於MIPS的常用shellcode;
  2. 快速提取shellcode的二進制指令的工具-shell_extractor.py;
  3. 開發的shellcode如何在自己的實驗程序應用。

其中,shellcode二進制指令快速提取工具是我自己開發的。我隨便搜索了一下,沒有發現類似的能夠滿足我需求的工具,所以就自己開發了一個工具,已經開源在shell_extractor),歡迎大家使用。如果大家有更好的工具,歡迎評論。^_^

0. 鳥瞰shellcode

首先,我們先從一個比較直觀的角度來了解一下,一個shellcode它在緩衝區溢出攻擊的過程所扮演的角色和所處的位置。

如圖所示一個常見的MIPS堆棧分配情況

转载请注明:IAMCOOL » 路由器漏洞復現終極奧義——基於 MIPS 的 shellcode 編寫

0 0 vote
Article Rating
Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x