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

прога Router Scan

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

  1. zimmer

    zimmer Active Member

    Joined:
    19 Jun 2015
    Messages:
    151
    Likes Received:
    136
    Reputations:
    1
    и еще до кучи
    не парсит и не подбирает пароль в qnap qts web server qts-212 (инфо показывает такую http server 1.0) пароль и логин тупо админ, если нужен доступ для добавления, то айпишник могу в личку скинуть..
     
    1. Kakoluk

      Kakoluk Banned

      Joined:
      14 Aug 2015
      Messages:
      514
      Likes Received:
      704
      Reputations:
      4
      Я всё думаю, чего вы так покровительственно и занудно binarymaster-а зазываете?
      Неужто, в даркнете совсем кончились образованные программисты? ;)
      Одни скрипт-кидди остались? :)
       
      sha9, Triton_Mgn and Ossen like this.
      1. carartem02

        carartem02 Active Member

        Joined:
        8 Nov 2015
        Messages:
        320
        Likes Received:
        131
        Reputations:
        3
        Разве? Ночные сборки прямо тут для всех постились (я их замечал раньше)
         
        Payer, sha9, Triton_Mgn and 1 other person like this.
        1. binarymaster

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

          Joined:
          11 Dec 2010
          Messages:
          4,717
          Likes Received:
          10,195
          Reputations:
          126
          Если бы вы знали историю проекта, у вас было бы понимание, с каких пор и почему пошла традиция паролить архив.
          У нас всё просто, эксплойты постят участники сообщества в этой теме, а разработчики их добавляют в RS. Так безопаснее.
           
          carartem02, Payer, sha9 and 2 others like this.
          1. Ossen

            Ossen Active Member

            Joined:
            4 Jun 2015
            Messages:
            229
            Likes Received:
            155
            Reputations:
            0
            Кстати свежей запароленной ночной сборки нет?)
             
            sha9 and Kakoluk like this.
            1. binarymaster

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

              Joined:
              11 Dec 2010
              Messages:
              4,717
              Likes Received:
              10,195
              Reputations:
              126
              Всё постить сюда.
              Да, но RCE тоже можно, если оно эксплуатируется через HTTP, и с помощью него можно добиться таких эффектов:
              Это не роутер, так что добавлять не стоит.
              Нет, рано ещё, мало изменений.
               
              Payer and sha9 like this.
              1. Stine

                Stine New Member

                Joined:
                24 Nov 2012
                Messages:
                41
                Likes Received:
                4
                Reputations:
                0
                А в каком виде передаются данные в SetTableDataW(Row: DWord; Name, Value: PChar); ... я почему то не могу сохранить Name и Value типа Pchar в любую переменную, перепробовал разные типы... но почему то выводится только в визуальные компоненты... Причем, если потом скопировать из визуального компонента в переменную, тоже Access Violation.. не сталкивался ещё с таким.
                 
                1. binarymaster

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

                  Joined:
                  11 Dec 2010
                  Messages:
                  4,717
                  Likes Received:
                  10,195
                  Reputations:
                  126
                  Это указатели на null-terminated строки, ANSI либо Unicode в зависимости от постфикса A/W.

                  Покажите, как вы объявили callback-функцию, и как производите чтение из переменных, и я скажу, в чём ошибка.
                   
                  Stine and sha9 like this.
                  1. sha9

                    sha9 Well-Known Member

                    Joined:
                    25 Sep 2015
                    Messages:
                    567
                    Likes Received:
                    734
                    Reputations:
                    2
                    пароль еще не пофиксили. ;):D:D
                     
                    Ossen and Kolhozan like this.
                    1. Stine

                      Stine New Member

                      Joined:
                      24 Nov 2012
                      Messages:
                      41
                      Likes Received:
                      4
                      Reputations:
                      0
                      Пол ночи просидел с этой проблемой ). Ниже функция которой пытаюсь получить результат. Инициализация как в примере.


                      function routerscan(row:dword; ipaddr:string; port:dword):string;
                      type TIPv4 = record case Boolean of
                      False: (dw: LongWord);
                      True: (b: Array[0..3] of Byte);

                      end;
                      var
                      s:string;
                      IP: TIPv4;
                      info:tstringlist;
                      hRouter: THandle;

                      procedure SetTableDataW(Row: DWord; Name, Value: PChar); stdcall;
                      begin

                      if Row <> 123 then
                      Exit;
                      form1.memo1.Lines.Add(Name+ ': '+ Value);
                      if Name='Auth' then result:= PChar(Value) ; // В memo1 выводится, в любую переменную не получается...

                      end;

                      begin

                      info:=tstringlist.Create;
                      info.Delimiter:='.';
                      info.DelimitedText:=ipaddr;


                      ip.b[3]:=strtoint(info[0]);
                      ip.b[2]:=strtoint(info[1]);
                      ip.b[1]:=strtoint(info[2]);
                      ip.b[0]:=strtoint(info[3]);
                      info.Free;

                      if not SetParam(stSetTableDataCallback, @SetTableDataW) then begin
                      form1. memo1.Lines.Add('Failed to set callback procedure');
                      Exit;
                      end;

                      if not PrepareRouter(row, IP.dw, Port, hRouter) then begin
                      form1.memo1.Lines.Add('PrepareRouter failed');
                      Exit;
                      end;
                      form1.memo1.Lines.Add('Scanning router...');
                      if not ScanRouter(hRouter) then begin
                      form1.memo1.Lines.Add('ScanRouter failed');
                      Exit;
                      end;
                      if not FreeRouter(hRouter) then begin
                      form1.memo1.Lines.Add('FreeRouter failed');
                      Exit;
                      end;

                      end;
                       
                      1. binarymaster

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

                        Joined:
                        11 Dec 2010
                        Messages:
                        4,717
                        Likes Received:
                        10,195
                        Reputations:
                        126
                        Нельзя использовать вложенную функцию в качестве callback функции, поскольку при её вызове из librouter у неё не будет привязки к родительской функции, и к её локальным переменным соответственно.

                        Обращение к любым локальным переменным вызовет порчу памяти и структур. Можно использовать глобальные переменные:

                        PHP:
                        var
                          
                        Form1TForm1;
                          
                        ResString// глобальная переменная

                        implementation

                        {$R *.dfm}

                        function 
                        routerscan(rowdwordipaddrstringportdword): string;
                        type
                          TIPv4 
                        record
                            
                        case Boolean of
                              False
                        :
                                (
                        dwLongWord);
                              
                        True:
                                (
                        b: Array [.. 3of Byte);

                          
                        end;
                        var
                          
                        IPTIPv4;
                          
                        infotstringlist;
                          
                        hRouterTHandle;

                          
                        procedure SetTableDataW(rowdwordNameValuePChar); stdcall;
                          
                        begin
                            
                        if row <> 123 then
                              
                        Exit;
                            
                        form1.memo1.Lines.Add(Name ': ' Value);
                            if 
                        Name 'Auth' then
                             Res 
                        := Value// записываем результат
                          
                        end;

                        begin
                          Result 
                        := '';

                          
                        info := tstringlist.Create;
                          
                        info.Delimiter := '.';
                          
                        info.DelimitedText := ipaddr;

                          
                        IP.b[3] := strtoint(info[0]);
                          
                        IP.b[2] := strtoint(info[1]);
                          
                        IP.b[1] := strtoint(info[2]);
                          
                        IP.b[0] := strtoint(info[3]);
                          
                        info.Free;

                          if 
                        not SetParam(stSetTableDataCallback, @SetTableDataWthen
                          begin
                            form1
                        .memo1.Lines.Add('Failed to set callback procedure');
                            Exit;
                          
                        end;

                          if 
                        not PrepareRouter(rowIP.dwporthRouterthen
                          begin
                            form1
                        .memo1.Lines.Add('PrepareRouter failed');
                            Exit;
                          
                        end;
                          
                        form1.memo1.Lines.Add('Scanning router...');
                          if 
                        not ScanRouter(hRouterthen
                          begin
                            form1
                        .memo1.Lines.Add('ScanRouter failed');
                            Exit;
                          
                        end;
                          
                        Result := Res// считываем результат
                          
                        if not FreeRouter(hRouterthen
                          begin
                            form1
                        .memo1.Lines.Add('FreeRouter failed');
                            Exit;
                          
                        end;

                        end;

                         
                        Stine and sha9 like this.
                        1. Stine

                          Stine New Member

                          Joined:
                          24 Nov 2012
                          Messages:
                          41
                          Likes Received:
                          4
                          Reputations:
                          0
                          Хм, это ж функция потока... тогда придется создавать массив res, для каждого потока свой... Я так понимаю и в функции PrepareRouter(row, IP.dw, port, hRouter), row должно быть уникальное для каждого потока... И проверять в функции SetTableDataW, что ответ пришел именно этому потоку... row всех остальных потоков игнорировать...
                          Ограничений на количество потоков в библиотеке нет?
                           
                          sha9 likes this.
                          1. binarymaster

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

                            Joined:
                            11 Dec 2010
                            Messages:
                            4,717
                            Likes Received:
                            10,195
                            Reputations:
                            126
                            Да, абсолютно верно.
                            Ограничивается объёмом INT.
                             
                            sha9 likes this.
                            1. Stine

                              Stine New Member

                              Joined:
                              24 Nov 2012
                              Messages:
                              41
                              Likes Received:
                              4
                              Reputations:
                              0
                              Теперь проблема что в этой функции вообще не работают никакие локальные переменные, только глобальные, а как мне объявить внутри этой функции номер потока? Номер потока в любом случае локально внутри потока...
                              Пытался так объявлять, не работает...

                              tnew = class(tthread)
                              public
                              st:dword; //тут храню номер потока
                              protected
                              procedure execute; override;
                              end;

                              procedure SetTableDataW(Row: DWord; Name, Value: pchar); stdcall;
                              begin
                              if Row <> st then
                              Exit;
                              if Name='Auth' then res[st]:= Value ;
                              end;

                              Глобальные переменные работают, но как мне в них держать номера потоков?
                               
                              1. binarymaster

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

                                Joined:
                                11 Dec 2010
                                Messages:
                                4,717
                                Likes Received:
                                10,195
                                Reputations:
                                126
                                Можно же просто сделать глобальный массив строк:

                                Rows: Array[0..999] of String; // 1000 строк

                                И таким образом получать нужные строки по нужному уникальному индексу. Сами активные (используемые) индексы хранить где-то ещё.
                                 
                                sha9 likes this.
                                1. Stine

                                  Stine New Member

                                  Joined:
                                  24 Nov 2012
                                  Messages:
                                  41
                                  Likes Received:
                                  4
                                  Reputations:
                                  0
                                  В них и проблема , в индексе, для результатов уже сделал глобальный массив res , вопрос как функции указать индекс потока...

                                  res: array [1..2000] of string; // тут храню результаты... глобальная переменная... вопрос как указать функции индекс потока.... его номер... его нельзя глобально хранить... Переменная st , мне ж нужно указать функции какой Row этого потока, и индекс массива для сохранения результатов...

                                  procedure SetTableDataW(Row: DWord; Name, Value: pchar); stdcall;
                                  begin
                                  if Row <> st then
                                  Exit;
                                  if Name='Auth' then res[st]:= Value ;
                                  end;

                                  Чем заменить st переменную?
                                   
                                  1. binarymaster

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

                                    Joined:
                                    11 Dec 2010
                                    Messages:
                                    4,717
                                    Likes Received:
                                    10,195
                                    Reputations:
                                    126
                                    Вы должны были прийти к пониманию, для чего нужна первая проверка условия в демо приложении...
                                    PHP:
                                    procedure SetTableDataW(RowDWordNameValuepchar); stdcall;
                                    begin
                                      
                                    if Name 'Auth' then
                                        res
                                    [Row] := Value;
                                    end;
                                     
                                    Stine likes this.
                                    1. Stine

                                      Stine New Member

                                      Joined:
                                      24 Nov 2012
                                      Messages:
                                      41
                                      Likes Received:
                                      4
                                      Reputations:
                                      0
                                      Меня строка if Row <> 123 в демке запутала )...
                                      Все работает, на сотнях поков без глюков ... спасибо за консультацию...:)
                                       
                                      sha9 likes this.
                                      1. VViktor

                                        VViktor Banned

                                        Joined:
                                        3 Jun 2017
                                        Messages:
                                        5
                                        Likes Received:
                                        0
                                        Reputations:
                                        0
                                        China версия Router Scan со всевозможными пряниками давно уже есть, гуглите)
                                         
                                        1. Vltv

                                          Vltv New Member

                                          Joined:
                                          5 Nov 2015
                                          Messages:
                                          27
                                          Likes Received:
                                          2
                                          Reputations:
                                          0
                                          Доброе время суток! Вопрос может немного не по теме, но пока задам здесь. В базе 3Wifi появилась точка с МАК C8:BE:19:7A:50:04 и ESSID DSL_2640NRU. Нельзя ли подсказать пользователя и пароль на сам роутер, простые стандартные - не подходят, пытаюсь сбрутить через telnet -пока безрезультатно. Ещё раз извиняюсь если не по теме.