win-exec-calc-shellcode
Piccola shellcode senza null byte che esegue calc.exe.
Funziona su versioni x86 e x64 di Windows 5.0-6.3 (2000, XP, 2003, 2008, 7, 8, 8.1), tutti i service pack.
Dimensioni (build 306)
| piattaforma | dimensione | allineamento stack | wrapper di funzione | func+salva reg | func+stack | func+stack+reg |
| x86 | 72 | 75 | 77 | 77 | 84 | 84 |
| x64 | 85 | 90 | 98 | 105 | 106 | 112 |
| x86+x64 | 113 | 118 | 179 | 188 | 188 | 196 |
Caratteristiche
- Senza NUL
- Indipendente dalla versione di Windows e dal service pack.
- ISA indipendente:
gira su architettura x86 (w32-exec-calc-shellcode) o x64 (w64-exec-calc-shellcode),
oppure su entrambe (win-exec-calc-shellcode).
- Il puntatore di stack può essere allineato se necessario (se si verificano
crash in WinExec, provare a usare la versione con allineamento dello stack).
- Non vengono fatte assunzioni sui valori nei registri o nello stack.
- x86: compatibile con /3GB e
WoW64 (non si assume
che i puntatori siano inferiori a 0x80000000).
- Compatibile con DEP /
ASLR:
i dati non vengono eseguiti, il codice non viene modificato.
- In grado di salvare e ripristinare i registri e di restituire il controllo,
per l'uso in codice PoC che chiama la shellcode come funzione (usando la
convenzione di chiamata
cdecl/stdcall/fastcall.
Crediti
Skylined e Peter Ferrie