PIXNET Logo登入

Rootkit --逆向工程技術--

跳到主文

Rootkit與逆向工程技術研討 歡迎指教:P

部落格全站分類:數位生活

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 12月 27 週五 201311:22
  • 搬家囉

pixnet廣告與頁面設定實在看不太爽,換成Google BLOG囉
LINK
(繼續閱讀...)
文章標籤

殘月影 發表在 痞客邦 留言(1) 人氣(416)

  • 個人分類:
▲top
  • 7月 23 週一 201220:00
  • Hit 2012 binary 1 答案

1
感想:這題只有韓國隊PLUSX有解出來,讓我有點意外,其實題目設計不是為了難倒人,都是Windows Driver的基礎概念而已,下面解密一下讓許多人苦惱2天的題目....@_@

題目:Kenny意外地從探險家手上獲得了一張海外的藏寶圖,但看起來似乎失去了下半部分,你能幫助他找到寶藏嗎??
(繼續閱讀...)
文章標籤

殘月影 發表在 痞客邦 留言(2) 人氣(543)

  • 個人分類:應用層-Wargame&CrackMe分析
▲top
  • 5月 05 週六 201214:45
  • 總結一下得到內核模組位址的方法

網上說的比較常見的4種方法:
1、通過DriverEntry傳入的DriverObject參數的DriverSection成員指向LDR_DATA_TABLE_ENTRY結構,通過遍歷這張表得到ntoskrnl的基址和大小
2、ZwQuerySystemInformation大法
3、搜索記憶體 
4、利用KPCR結構
存在的問題:
1、第1種方法和第4種方法得到的結果比ZwQuerySystemInformation少一個
2、第1種方法如果輸出BaseDllName是ntoskrnl.exe,如果輸出FullDllName則是:\WINDOWS\system32\ntkrnlpa.exe,位址都是:804d8000,不明白為何
環境:虛擬機器VMWare:WIN XP SP3  + WDK ---- WINXP Check方式編譯
(繼續閱讀...)
文章標籤

殘月影 發表在 痞客邦 留言(0) 人氣(361)

  • 個人分類:驅動層_Rootkit資安研究
▲top
  • 10月 20 週四 201110:28
  • [分享]Win 7下定位kernel32.dll基址及shellcode編寫


      為了使shellcode在多種作業系統平臺下都可以正常運行,就不得不動態的定位kernel32.dll的基底位址。而被廣泛使用的一種方法是通過TEB/PEB結構獲取kernel32.dll基底位址,我個人第一次接觸是通過綠盟月刊的一篇文章“通過TEB/PEB枚舉當前進程空間中使用者模組清單”方才知道這種被眾多程式設計人員使用的方法。至於這個方法的最原始出處該文作者也未提及。只得知29A雜誌也有大量使用該技術。這種方法適用於除Win7以外的所有windows作業系統包括95/98/ME/NT/2K/XP,大小只有34 bytes,下面是其原理及實現代碼;
      更詳細的知識大家可以參考snowdbg大牛的文章Windows下的shellcode剖析淺談http://bbs.pediy.com/showthread.php?t=99007
      利用PEB結構來查找kernel32.dll的原理:FS段寄存器作為選擇子指向當前的TEB結構,在TEB偏移0x30處是PEB指標。而在PEB偏移的0x0c處是指向PEB_LDR_DATA結構的指標,位於PEB_LDR_DATA結構偏移0x1c處,是一個叫InInitialzationOrderModuleList的成員,他是指向LDR_MODULE鏈表結構中,相應的雙向鏈表頭部的指標,該鏈表載入的DLL的順序是ntdll.dll,kernel32.dl,因此該成員所指的鏈表偏移0x08處為kernel32.dll地址。
更詳細的知識大家可以參考snowdbg大牛的文章Windows下的shellcode剖析淺談http://bbs.pediy.com/showthread.php?t=99007
獲取KERNEL32.DLL基址彙編實現代碼:
;find kernel32.dll
find_kernel32:
    push esi
    xor eax, eax
    mov eax, [fs:eax+0x30]
    test eax, eax
    js find_kernel32_9x        ;win9x or nt
find_kernel32_nt:
    mov eax, [eax + 0x0c]
    mov esi, [eax + 0x1c]
    lodsd
    mov eax, [eax + 0x8]
    jmp find_kernel32_finished
find_kernel32_9x:
    mov eax, [eax + 0x34]
    lea eax, [eax + 0x7c]
    mov eax, [eax + 0x3c]
find_kernel32_finished:
    pop esi
    ret
但非常可惜的是這種方法在Win7下是不適用的,所以很高興現在給大家分享國外網站上看到的一種新的方法來定位kernel32.dl的基底位址,該方法可以在所有windows版本上適用!這種方法通過在InInitializationOrderModuleList中查找kernel32.dll模組名稱的長度來定位它的基底位址,因為"kernel32.dll"的最後一個字元為"\0"結束符。所以倘若模組最後一個位元組為"\0"即可定位kernel32.dll的地址;
具體代碼實現方法:
;find kernel32.dll
find_kernel32:
    push esi
    xor ecx, ecx
    mov esi, [fs:ecx+0x30]
    mov esi, [esi + 0x0c]
    mov esi, [esi + 0x1c]
next_module:
    mov eax, [esi + 0x8]
    mov edi,[esi+0x20]
    mov esi ,[esi]
    cmp [edi+12*2],cx
    jne next_module
    pop esi
    Ret
      通過我的測試,這種利用該方法編寫的shellcode可以在32位平臺Windows 5.0-7.0的所有版本上適用,下面是經我測試在win 7下實現執行calc.exe的shellcode,shellcode本身寫的很粗糙只為驗證該方法的可用性!
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
  unsigned char shellcode[219] = {
  0xE9, 0x96, 0x00, 0x00, 0x00, 0x56, 0x31, 0xC9, 0x64, 0x8B, 0x71, 0x30, 0x8B, 0x76, 0x0C, 0x8B, 
  0x76, 0x1C, 0x8B, 0x46, 0x08, 0x8B, 0x7E, 0x20, 0x8B, 0x36, 0x66, 0x39, 0x4F, 0x18, 0x75, 0xF2, 
  0x5E, 0xC3, 0x60, 0x8B, 0x6C, 0x24, 0x24, 0x8B, 0x45, 0x3C, 0x8B, 0x54, 0x05, 0x78, 0x01, 0xEA, 
  0x8B, 0x4A, 0x18, 0x8B, 0x5A, 0x20, 0x01, 0xEB, 0xE3, 0x37, 0x49, 0x8B, 0x34, 0x8B, 0x01, 0xEE, 
  0x31, 0xFF, 0x31, 0xC0, 0xFC, 0xAC, 0x84, 0xC0, 0x74, 0x0A, 0xC1, 0xCF, 0x0D, 0x01, 0xC7, 0xE9, 
  0xF1, 0xFF, 0xFF, 0xFF, 0x3B, 0x7C, 0x24, 0x28, 0x75, 0xDE, 0x8B, 0x5A, 0x24, 0x01, 0xEB, 0x66, 
  0x8B, 0x0C, 0x4B, 0x8B, 0x5A, 0x1C, 0x01, 0xEB, 0x8B, 0x04, 0x8B, 0x01, 0xE8, 0x89, 0x44, 0x24, 
  0x1C, 0x61, 0xC3, 0xAD, 0x50, 0x52, 0xE8, 0xA7, 0xFF, 0xFF, 0xFF, 0x89, 0x07, 0x81, 0xC4, 0x08, 
  0x00, 0x00, 0x00, 0x81, 0xC7, 0x04, 0x00, 0x00, 0x00, 0x39, 0xCE, 0x75, 0xE6, 0xC3, 0xE8, 0x19, 
  0x00, 0x00, 0x00, 0x98, 0xFE, 0x8A, 0x0E, 0x7E, 0xD8, 0xE2, 0x73, 0x81, 0xEC, 0x08, 0x00, 0x00, 
  0x00, 0x89, 0xE5, 0xE8, 0x5D, 0xFF, 0xFF, 0xFF, 0x89, 0xC2, 0xEB, 0xE2, 0x5E, 0x8D, 0x7D, 0x04, 
  0x89, 0xF1, 0x81, 0xC1, 0x08, 0x00, 0x00, 0x00, 0xE8, 0xB6, 0xFF, 0xFF, 0xFF, 0xEB, 0x0E, 0x5B, 
  0x31, 0xC0, 0x50, 0x53, 0xFF, 0x55, 0x04, 0x31, 0xC0, 0x50, 0xFF, 0x55, 0x08, 0xE8, 0xED, 0xFF, 
  0xFF, 0xFF, 0x63, 0x61, 0x6C, 0x63, 0x2E, 0x65, 0x78, 0x65, 0x00
};
printf("size of shellcode: %d\n", strlen(shellcode));
system("pause");
((void (*)())shellcode)();
return 0;
}
感謝所有朋友回復和意見以及riusksk的驗證,漏洞方面我是新手,還需不斷學習,我深信技術的提升總是通過一次一次的更新的認知!發現自己的不足,不斷進步!這才是我一直關注看雪的原因!
參考連結:
http://skypher.com/index.php/2009/07/22/shellcode-finding-kernel32-in-windows-7/
http://code.google.com/p/w32-exec-calc-shellcode/
(繼續閱讀...)
文章標籤

殘月影 發表在 痞客邦 留言(0) 人氣(967)

  • 個人分類:應用層_資安研究
▲top
  • 9月 13 週二 201100:16
  • [動畫教學] 程式碼快速簡轉繁


今天來做個 "程式碼快速簡轉繁"的動畫

雖然是個小技巧,但卻十分好用

進入正題.....

從對岸抓下來的程式碼  都是亂碼

首先呢

1.先把語系修改成Taiwan 然後存檔


2.利用馴碼快手中文化資源 & 程式碼(可以用自己熟悉的中文化工具)

3.翻譯大陸用語

4.Done  OK  這樣就快速轉換完畢囉

By Kost0911  2011.9.12  下次見囉~BYE
(繼續閱讀...)
文章標籤

殘月影 發表在 痞客邦 留言(0) 人氣(439)

  • 個人分類:應用層_資安研究
▲top
  • 8月 15 週一 201122:27
  • [原創]一個彈出網站的工具分析


慣例的PEiD查下殼,VC6 無殼  成功的第一步
 
首先用OD打開F9執行,我X~程式雖然執行了,但OD卻關閉了
 
(繼續閱讀...)
文章標籤

殘月影 發表在 痞客邦 留言(3) 人氣(258)

  • 個人分類:應用層_資安研究
▲top
  • 7月 25 週一 201113:47
  • HIT2011_Binary 1 - 吃角子老虎-我的分析

Wargame
這題真的是要靠提示才想到的解答
Lucky Seven就是個關鍵提示
分析一下詳細的流程,一開始拿到的SlotMachine.exe是一個Load類型的檔案
執行後會讀取{EEEE25A2-84EC-4817-8238-5B47CFFAF094}這個怪字串
(繼續閱讀...)
文章標籤

殘月影 發表在 痞客邦 留言(1) 人氣(271)

  • 個人分類:應用層-Wargame&CrackMe分析
▲top
  • 7月 24 週日 201118:36
  • HIT2011-Binary 3 -我的分析_IDA暴力破解


這題其實破的有點技術犯規,因為前提是如果沒原檔對照就沒轍拉~
方法如下:
1.Orange.exe 是個大家都玩過的訓練集中力的小遊戲
   PEid載入
(繼續閱讀...)
文章標籤

殘月影 發表在 痞客邦 留言(0) 人氣(469)

  • 個人分類:應用層-Wargame&CrackMe分析
▲top
  • 7月 05 週二 201120:13
  • [原創].NET的逆向之旅-某Blog軟體分析

.NET Creak
前言:
今天遇到個.NET的程式,以前一直都沒碰到過,今天遇上了就來對他做個分析吧!
PEiD查一下
   
(繼續閱讀...)
文章標籤

殘月影 發表在 痞客邦 留言(2) 人氣(805)

  • 個人分類:應用層_資安研究
▲top
  • 7月 04 週一 201119:00
  • HIT2010_CrackMe 第一題-我的分析


前言:最近剛跟朋友拿到Hit2010的Wargame  裡面有CrackMe系列的原始檔
看了幾個發現非常的有趣,手癢就來分析一下,這是針對Window CrackMe系列的第一題
 
想玩的人請到這裡抓:http://cn.ziddu.com/download/604447/HIT2010-CreakMe_1.rar.html
(繼續閱讀...)
文章標籤

殘月影 發表在 痞客邦 留言(2) 人氣(552)

  • 個人分類:應用層-Wargame&CrackMe分析
▲top
12...5»