<sub id="dfg0s"></sub><wbr id="dfg0s"></wbr>
<sub id="dfg0s"><listing id="dfg0s"></listing></sub>
<sub id="dfg0s"></sub>
<dd id="dfg0s"><address id="dfg0s"></address></dd>
  • <sub id="dfg0s"><table id="dfg0s"></table></sub>

    <nav id="dfg0s"></nav>

    CVE-2018-4990 漏洞詳情分析

    測試版本:AcroRdrDC1700920044_en_US

    漏洞模塊: Escript.api

    漏洞函數

    image1.png

    修復函數

    image2.png

    問題分析

    拷貝對象的時候把DWORD類型的對象地址作為BYTE類型進行了拷貝,堆對象拷貝溢出漏洞。對象偏移在0x50的地方,也就是錯誤的位置。

    image3.png

    Javascript里面噴射的對象代碼。

    image4.png

    修復方案

    定位到問題很好修復。

    ROP技術

    使用EScript.api模塊作為ROP執行地址,基址為69260000,ROP表如下.

    0D130064 692E2803 EScript.692E2803

    0D130068 692E2803 EScript.692E2803

    0D13006C 692E2802 EScript.692E2802

    0D130070 693F7084 <&KERNEL32.VirtualAlloc>

    0D130074 69271784 EScript.69271784

    0D130078 693EAF26 EScript.693EAF26

    0D13007C 69278000 EScript.69278000

    0D130080 69283AAA EScript.69283AAA

    0D130084 6936F282 EScript.6936F282

    0D130088 00010201

    0D13008C 692E2802 EScript.692E2802

    0D130090 692695C4 EScript.692695C4

    0D130094 77842FB6 kernel32.VirtualAlloc

    0D130098 69283AAA EScript.69283AAA

    第一條ROP指令RETN在692E2803,為一條RETN指令。因為有ASLR保護,所以地址看起來不一樣。

    image5.png

    ROP指令不進行一一講解,接下來通過ROP技術構造了一個函數VirtualAlloc分配一段內存。注意看下EAX寄存器的值。

    image6.png

    EAX是0x90909090,adobe的javascript的堆噴射器里面也有0x90909090。

    image7.png

    使用VirtualAlloc函數申請了一段可讀可寫可執行的內存,大小為66049字節。為什么呢?因為惡意pdf里面還有個pe文件,shellcode應該帶有一個pe加載器,直接在本進程在內存執行pe文件。

    image8.png

    接下來返回到了惡意內存中的shellcode繼續執行。注意一下,前面4字節是0x90。說明那個是填充的NOP指令。

    image9.png

    Shellcode

    第一個功能就是在shellcode長度(0x2710字節長度)后面搜索一個4字節的標記0xBFAFBFAF。搜索標記的作用是定位PE頭。

    image10.png

    接下來用經典的fs:[0x30]技術定位kernel32的基址。

    image11.png

    接下來通過解析PE文件搜索GetProcAddress函數的地址,這也是windows經典的shellcode技術。

    image12.png

    使用GetProcAddress函數得到LoadLibraryA、VirtualAlloc、VirtualFree、VirtualProtect、GetModuleHandleA的地址

    image13.png

    image14.png

    接著是PE加載器的經典功能,拷貝PE頭、修復區段、重定位、填充輸入表等等。

    image15.png

    接著使用VirtualProtect函數改寫PE為可讀可執行可寫。

    image16.png

    最后調用PE文件的入口函數,因為PE是dll所以入口是DllMain。

    image17.png

    這個dll只有一個功能,使用MessageBoxA彈一個對話框。

    image18.png

    Dll的入口函數。

    image19.png

    完事收工。

    標簽: 漏洞分析

    作者:pig 來源:黑客視界 瀏覽量:6248 時間: 2018-05-23

    加入墨者學院可立即獲得20墨幣

    可免費開啟靶場環境

    點擊注冊領取

    已有賬號,立即登錄

    你是不是好久没有被C了_少妇找技师做性按摩视频在线观看_午夜福利电影_777766香港开奖结果 7777