Mirai源碼解析

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

Mirai概述

mirai,2016年一個備受關注的DDoS攻擊程式,與傳統的殭屍網路不同的是,mirai的控制的殭屍主要是網路攝影機等嵌入式裝置,mirai的出現將一大波安全研究者引入了IoT安全領域。

mirai的事迹主要有:

  • 2016.9.20 ,攻擊Brian Krebs個人網站,攻擊流量達到665Gbps,據稱有150萬殭屍發起攻擊。
  • 2016.9.21, 攻擊法國網路服務商OVH,攻擊流量達到1Tbps
  • 2016.9.30,mirai開源
  • 2016.10.21, 攻擊Dyn DNS,導致Github、Twitter等美國大半個互連網下線
  • 2016.11.28, 攻擊德國電信,mirai出現新變種

mirai已經成為IoT DDOS攻擊的母體。

mirai能夠控制如此大規模的殭屍網路,主要原因是各個裝置供應商對安全的不重視,包括雄邁裝置、浙江大華等企業,所有裝置密碼都一樣且不能由使用者修改,且開放telnet連接埠以致mirai輕易爆破成功。

當然,mirai開源了,不看白不看。

架構


mirai架構

mirai主要由三部分構成,源碼對應四個模組:

  • loader :監聽bot的report,並上傳payload到要感染的裝置
  • cnc: command&control,即控制伺服器,主要功能是處理使用者登入和下發命令
  • bot: 即payload,殭屍程式
  • tools: 工具

loader源碼分析

  • 發起telnet串連
  • 維護狀態機器

CNC源碼分析

CNC部分由golang編寫,golang能用goroutine+channel寫出高效能的伺服器。
CNC源碼主要分為:

  • 使用者管理
  • 攻擊命令管理
  • 感染節點管理
  • 資料庫管理

bot源碼分析


bot模組劃分

bot源碼主要分為:

  • attack模組:解析下發的命令,發起DoS攻擊
  • scanner模組:掃描telnet弱口令登入,上報給loader
  • killer模組:佔用連接埠,kill同類殭屍(排除異己)
  • public模組: utils

1、bot主流程

1、關閉watchdog,防止裝置重啟
2、Ensure_single_instance 綁定48101,防止多個執行個體執行
3、產生隨機數,加密進程路徑和進程名
4、建立daemon,關閉stdin、stdout、stderr
5、attack_init 主進程, add_attack() 添加攻擊類型和回呼函數
6、kill_init 建立killer子進程,根據連接埠號碼找到pid殺死進程,killer_kill_by_port
7、scanner_init, 掃描子進程,一個死迴圈
8、主進程,死迴圈,監聽CNC串連,解析攻擊參數,發起攻擊

2、attack模組

①從table.c擷取CNC的網域名稱和連接埠,建立串連,然後監聽CNC connection
②定時發送心跳,保持串連
③解析攻擊參數 ,attack_start發起dos攻擊

攻擊方式
  • attack_app.c
  • attack_gre.c
  • attack_tcp.c
    1、attack_tcp_syn()
    2、attack_tcp_ack()
    3、attack_tcp_stomp()
  • attack_udp.c
    1、attack_udp_generic()
    2、attack_udp_vse()
    3、attack_udp_dns()
    4、attack_udp_plain()

3、scanner模組

1、用raw socket試探性掃描telnet的23號連接埠,有回應才進行telnet登陸嘗試
2、用scanner_init中硬式編碼弱口令字典去嘗試登陸telnet
3、進入登入狀態機器,執行一系列命令來判斷是否登入成功
4、如果登入成功,開啟一個子進程,將IP、連接埠、使用者名稱、密碼按照固定格式上報給loader,loader的scanListen.go處理接收暴力掃描的結果

4、killer模組

5、public模組

  • talbe.c 存了一些硬式編碼資料,並對資料進行加密,向外提供加解密、取出成員和新增成員的介面。

tools源碼分析

  • 異或加密
  • 反gdb調試
  • 接收掃描結果

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.