прога 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) пароль и логин тупо админ, если нужен доступ для добавления, то айпишник могу в личку скинуть..
     
  2. Kakoluk

    Kakoluk Banned

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

    Ossen Active Member

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

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

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

    sha9 Well-Known Member

    Joined:
    25 Sep 2015
    Messages:
    567
    Likes Received:
    735
    Reputations:
    2
    пароль еще не пофиксили. ;):D:D
     
    Ossen and Kolhozan like this.
  10. 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;
     
  11. 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.
  12. 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.
  13. binarymaster

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

    Joined:
    11 Dec 2010
    Messages:
    4,717
    Likes Received:
    10,195
    Reputations:
    126
    Да, абсолютно верно.
    Ограничивается объёмом INT.
     
    sha9 likes this.
  14. 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;

    Глобальные переменные работают, но как мне в них держать номера потоков?
     
  15. 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.
  16. 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 переменную?
     
  17. 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.
  18. Stine

    Stine New Member

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

    VViktor Banned

    Joined:
    3 Jun 2017
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    China версия Router Scan со всевозможными пряниками давно уже есть, гуглите)
     
  20. 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 -пока безрезультатно. Ещё раз извиняюсь если не по теме.