偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

超級任天堂游戲模擬器被曝安全漏洞

安全
超級任天堂是任天堂全球知名主機NES(國內(nèi)稱為小霸王)的后續(xù)主機,主機采用16位色表現(xiàn),令主機的畫面表現(xiàn)在當(dāng)時非常之棒。

超級任天堂(SNES,Super Nintendo Entertainment System)是任天堂全球知名主機NES(國內(nèi)稱為小霸王)的后續(xù)主機,主機采用16位色表現(xiàn),令主機的畫面表現(xiàn)在當(dāng)時非常之棒。而作為當(dāng)時的主機霸主,任天堂SNES主機上出現(xiàn)了非常多經(jīng)典的游戲,現(xiàn)在大紅大紫的游戲系列很多都是在SNES上發(fā)跡的。像勇者斗惡龍系列、傳說系列、最終幻想系列、超時空之輪系列等等。當(dāng)年的超級任天堂憑借全球數(shù)千萬臺的銷量一直占據(jù)著游戲機市場的鰲頭,在這個優(yōu)秀的平臺上,誕生過無數(shù)優(yōu)秀的精品游戲,很多作品即使拿到現(xiàn)在與PS2,XBOX的游戲相比在游戲性方面也毫不遜色(其實是比他們還要好很多)。如果你對那些令人激動的游戲念念不忘的話,而Snes9x可以在你的電腦上網(wǎng)模擬超級任天堂,讓你再次回到童年。軟件可根據(jù)不同硬件方便的調(diào)節(jié)聲音,圖象等。

上圖中的那個程序是一個 SNES 模擬器,很有游戲愛好者都使用過它。從網(wǎng)上找到這些東西并不難,但我不會在文章里說,因為從技術(shù)上講,這么做屬于傳播盜版。

首先,我拿出舊的外部硬盤,找到了我的SNES9x模擬器的壓縮副本,啟動它,就發(fā)現(xiàn)了一個 DLL 劫持漏洞。

Snes9x是款讓你重溫童年游戲的SNES模擬器,能夠在Windows平臺上運行經(jīng)典SNES/SFC游戲的模擬器軟件,支持.smc, .sfc, .fig, 和 .1等格式的游戲,可用鍵盤,也能用手柄進行操作,支持鍵位修改。

以 x86 和 x64 架構(gòu)編寫的程序利用動態(tài)鏈接庫 (DLL) 在軟件開發(fā)過程中提供靈活性和可移植性。 DLL 基本上是包含可重用代碼、資源和變量的小程序。就其性質(zhì)而言,它們沒有入口點并且需要父級可執(zhí)行文件在運行時調(diào)用它們。如果你只有一個 DLL,則可以使用 Rundll32.exe 之類的東西來運行該特定 DLL 的內(nèi)容,而無需父級程序。否則,DLL 中的函數(shù)可以由父級可執(zhí)行文件調(diào)用,使用 LoadLibrary API 調(diào)用將它們動態(tài)導(dǎo)入到程序中。

有時軟件開發(fā)并不完全按計劃進行,并且你可能會經(jīng)常編寫一個程序來調(diào)用加載一個不存在的 DLL?;蛘?,在 SNES 模擬器的情況下,你可能會遇到相當(dāng)于路徑漏洞的問題,這基本上意味著程序嘗試從當(dāng)前工作目錄加載 DLL,然后在別處查找。

以下就是我加載Procmon并運行SNES模擬器時的情況:

在上圖中,SNES 模擬器已放置在我的 FlareVM 主機的桌面上。當(dāng)程序嘗試加載opengl32.dll時,它首先檢查當(dāng)前工作目錄C:\Users\Husky\Desktop\SNES32bit\。當(dāng)它在這里找不到指定的 DLL 時,它會轉(zhuǎn)到SysWOW64目錄,并加載成功存在其中的DLL。這個SNES模擬器是一個32位應(yīng)用程序,因此它檢查SysWOW64是否需要dll是有意義的。

注意,System32和SysWOW64有點像冰島/格陵蘭的情況。在標(biāo)準(zhǔn)的x64設(shè)備上,64位系統(tǒng)目錄是System32, 32位系統(tǒng)目錄是SysWOW64。

總之,這是一個漏洞。程序試圖從一個可以寫入的目錄中裝入DLL。這是因為該程序已被復(fù)制到桌面,而不是安裝在標(biāo)準(zhǔn)程序目錄中,例如“程序文件”。

這就很容易發(fā)生這個軟件被共享即從硬盤驅(qū)動器共享它,然后將文件復(fù)制到他們自己的筆記本電腦上。

另外,在這里需要注意的是,SNES模擬器有DEP但沒有ASLR,將來可能會回到那個狀態(tài)。

現(xiàn)在在一些攻擊場景中,DLL劫持是通過以下方式實現(xiàn)的:只需要做一個MSFVenom DLL有效載荷,并將其替換為程序試圖加載4head的載荷即可。直到程序崩潰或無法加載:

DOS不在這個范圍內(nèi),要做得更好,可以進入DLL代理。

DLL 代理

DLL 代理實現(xiàn) DLL 劫持的成功率更高。

你可能能夠從 DLL 劫持中獲得 shellcode 執(zhí)行,但程序仍然需要解析它想要從原始 DLL 進行的函數(shù)調(diào)用。而且你的 MSFVenom 生成的 DLL 不知道如何處理這些請求的函數(shù),所以calc.exe運行,程序崩潰。

在 DLL 代理中,你可以創(chuàng)建一個新的 DLL,其中包含指向原始 DLL 的導(dǎo)入函數(shù)的指針。有效載荷隱藏到這個DLL的一個部分中,并使用剩余的空間將可執(zhí)行文件指向它想要加載的原始DLL。

該程序以其原始預(yù)期功能執(zhí)行,得到有效載荷執(zhí)行。

使用 Procmon,過濾以下內(nèi)容:

打開一個可執(zhí)行文件或 10 并確定一個嘗試加載到 DLL 中但沒有成功的程序。在本文的示例中,我專注于 OpenGL32.dll:

重新配置過濾器,以查看該DLL是否在程序執(zhí)行的任何時刻被成功加載。因此,只需過濾即可擴大你的搜索條件:

如果你已經(jīng)找到一個好的DLL代理候選,你可能會看到如下內(nèi)容:

可以看到,將成功加載的 DLL 從主機復(fù)制到攻擊者的設(shè)備上,并將其命名為 [dllName]_original.dll。幸運的是,這個DLL可能在所有Windows系統(tǒng)上都是本地的,因此你甚至可能不需要從目標(biāo)主機復(fù)制它,只需從你自己的 Windows 主機復(fù)制它即可。

在攻擊者的設(shè)備上,使用這個簡單的Python腳本從原始DLL中取出導(dǎo)出的函數(shù)并將它們寫入一個模塊定義文件 (.def):

請注意引用原始DLL的兩個位置,并確保相應(yīng)地更改這些值。

在編譯程序時,模塊定義文件向編譯器提供有關(guān)鏈接導(dǎo)出的信息。在本文示例中,我們將告訴編譯器創(chuàng)建代理DLL,并將它鏈接到原始DLL,以指向它導(dǎo)出的所有函數(shù)。

所以,每當(dāng)可執(zhí)行文件問“嘿,DLL,函數(shù)在哪里?”代理DLL便回復(fù)到:“哦,是的,去檢查[dllName]_original.dll,它應(yīng)該在那里。”

現(xiàn)在,我們制作我們的代理 DLL。這是一個用 C 編寫的非常簡單的程序,它導(dǎo)出一個 DLLMain 函數(shù)作為 DLL 的入口點。在 DLLMain 方法中,我們偷偷調(diào)用了 Payload 函數(shù)。該函數(shù)執(zhí)行,然后所有其他請求的函數(shù)調(diào)用都傳遞給 [dllName]_original.dll:

創(chuàng)建此 C 文件并將其命名為 [dllName].c:

到目前為止,一切順利。

最后,我們需要創(chuàng)建這個代理 DLL 并將它與我們的模塊定義文件鏈接起來。這可以通過 mingw-w64 來完成,它擁有編譯DLL所需的必要工具鏈。注意這里的架構(gòu):我代理了32位SNES模擬器,所以我需要為32位架構(gòu)編譯它。

如果你的攻擊設(shè)備上沒有 mingw-w64,只需輸入:

然后,編譯我們的 DLL:

當(dāng) DLL 編譯時,你現(xiàn)在應(yīng)該有四個文件可以使用:

  • [dllName]_original.dll:我們從主機上拉下來的原始DLL,重命名為“_original”
  • [dllName].c:包含我們的有效載荷的代理 DLL 的 C 代碼。
  • [dllName].def:使用Python腳本從原始dll中提取導(dǎo)出的函數(shù)調(diào)用創(chuàng)建的模塊定義文件。
  • [dllName].dll:新編譯的代理DLL。

最后一步是將原始DLL和代理DLL在目標(biāo)主機的程序目錄下登陸,這兩個 DLL 必須與彼此和原始程序位于同一目錄中。

找到兩個 DLL 后,啟動程序!

此時,已經(jīng)有了一個加載到代理DLL中的功能完整的程序。沒有崩潰,沒有段錯誤,只有calc。

本文翻譯自:https://huskyhacks.dev/2021/08/29/dll-hijacking-dll-proxying-an-snes-emulator/

 

責(zé)任編輯:趙寧寧 來源: 嘶吼網(wǎng)
相關(guān)推薦

2018-04-25 10:51:58

2009-02-03 09:01:40

2015-08-26 10:14:29

2015-05-08 12:11:14

2009-02-19 17:36:13

Windows MobMy Phone

2019-02-21 10:11:49

2020-10-23 11:13:39

漏洞網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2009-02-19 17:00:52

My PhoneWindows Mob安全漏洞

2024-05-09 09:09:56

2014-12-24 12:34:48

2011-11-10 16:59:26

當(dāng)當(dāng)網(wǎng)安全漏洞用戶資料

2021-12-30 15:18:18

安全漏洞攻擊身份驗證

2023-07-29 11:15:47

2013-01-14 12:15:51

2011-05-26 12:25:18

2010-08-18 10:48:07

2011-08-23 16:46:55

谷歌任天堂wii

2024-10-09 14:40:42

2023-08-14 19:51:43

2022-01-17 10:01:46

Linux 開源操作系統(tǒng)
點贊
收藏

51CTO技術(shù)棧公眾號