ĐẠI HỌC QUỐC GIA TP HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG
ỨNG DỤNG TRUYỀN THÔNG VÀ ATTT
ĐỂ TÀI: CÁC KĨ THUẬT TẤN CÔNG
GV: TS. TÔ NGUYỄN NHẬT QUANG
SV Thực Hiện:
- Cao Nguyễn Trung Sang – 07520494
- Nguyễn Cảnh Hà – 07520102
- Hoàng Ngọc Tùng – 07520402
- Hoàng Công Nguyện – 07520487
TP HCM, tháng 5 năm 2011
[Ứng dụng truyền thông và ANTT]
MỤC LỤC
[Các kĩ thuật tấn công] Trang 2
[Ứng dụng truyền thông và ANTT]
I. Network Reconnaissance
I.1. Giới thiệu.
Network reconnaissance là thuật ngữ để kiểm tra các lỗ hổng dễ bị tấn công trong 1
máy tính.
Có thể do người quản lý tiến hành hoặc có thể là tiền thân của một cuộc tấn công từ bên
ngoài.
Tất cả việc thu tập thông tin này rất quan trọng đối với hacker vì giúp hacker xác định
những con đường nào mà dễ tấn công vào hệ thống nhất.
Cần phải xác định:
- Loại Network nào mà Hacker muốn tấn công?
- Và Hacker sẽ tấn công Network này như thế nào?
Một số khái niệm về hoạt động thăm dò Network:
- Xác định mục tiêu
- Phân tích mục tiêu
- Phân tích gói tin
- Google Hacking
I.2. Xác định mục tiêu:
Là một quá trình yêu cầu kiến thức cao. Có nhiều công cụ rất mạnh để hỗ trợ nhưng
công cụ tốt nhất vẫn là bộ não.
Trước khi tiến hành thăm dò, Hacker cần xác định:
• Tổ chức, cá nhân / cái gì mà Hacker sẽ hack?
• Tại sao phải Hack?
• Hacker sẽ tìm kiếm gì nếu đạt được truy cập?
Một trong những khu vực chính dễ trở thành mục tiêu là những forum, diễn đàn, nhóm
gọi chung là newsgroup. Đó là nơi mà những nội dung, thông tin hữu dụng cho mọi
người được admin cung cấp. Vì vậy nên cảnh giác không đưa ra nhiều thông tin hoặc
địa chỉ IP thực lên newsgroup ngay cả khi nó được kiểm duyệt kỹ càng.
[Các kĩ thuật tấn công] Trang 3
[Ứng dụng truyền thông và ANTT]
Ngay cả khi những thông tin trên newgroup không hữu dụng, Hacker có thể thu thập
những mua bán, sát nhập,… để tìm ra lỗ hổng.
Ví dụ: Một công ty lớn mua lại công ty nhỏ khác cần phải kết nối giữa các công ty. Như
vậy, bảo mật sẽ bị nới lỏng hơn để đảm bảo các nhân viên ở các công ty có thể giao
dịch, liên lạc thông suốt. Hacker sẽ tấn công các công ty nhỏ hơn với hi vọng bảo mật ở
đó kém hơn. Khi thu thập được dữ liệu, dữ liệu đó sẽ được so sánh với công ty lớn để
có thể đạt được quyền truy cập vào công ty lớn.
I.3. Phân tích mục tiêu:
Những thông tin đăng ký Website của công ty thường dễ dàng tìm thấy, nó chứa đựng
những thông tin, dữ liệu rất quan trọng của công ty. Có thể là địa chỉ vật lý, tên của
người quản lý DNS, tên người quản trị mạng, số điện thoại và số fax của công ty, địa
chỉ email của admin, DNS server, ISP công ty dùng, những tên miền công ty sở hữu, dải
địa chỉ IP công ty đăng ký,…
I.4. Phân tích gói tin:
Thông qua hành động gửi email, hacker có thể phân tích những chi tiết như tên mail
server, địa chỉ IP private người dùng trong công ty dẫn tới có thể xác định được dải địa
chỉ IP được dùng trong công ty. Những gói tin khác có thể tiết lộ địa chỉ IP public cũng
như tên của Router.
Thông thường, những website nhỏ của công ty kém bảo mật hơn, và có thể trở thành
điểm bắt đầu của cuộc tấn công. Nếu 1 công ty có vài Website và tất cả đều hoạt động,
tất cả cần được bảo mật, không chỉ bảo mật 1 Website chính.
Google Hacking:
Google Hacking là sử dụng Google tìm kiếm dựa vào những thông tin khóa từ những
công ty khác nhau. Một số kỹ thuật sử dụng google:
- site:<domain>: tìm kiếm với việc chỉ định rõ website hoặc domain. Website mà
muốn tìm kiếm phải được chỉ định rõ sau dấu “:”. Ví dụ ô text tìm kiếm gõ :
site:vickigroup.com. và tiếp đến là từ khóa bạn muốn tìm, thì Google nó sẽ tìm
kiếm những thông tin có chứa từ khóa và chỉ trong phạm vi domain
vickigroup.com
- filetype:<phần mở rộng>: Tìm kiếm thông tin trong kiểu file mà mình
mong muốn. Và khi thực hiện không kèm theo dấu ".". Bạn chỉ cần gõ
filetype:txt nếu như kiểu file muốn tìm kiếm có phần mở rộng là .txt. Ví dụ
filetype:txt là chỉ tìm trong file có phần mở rộng .
[Các kĩ thuật tấn công] Trang 4
[Ứng dụng truyền thông và ANTT]
- link:<domain>: Tìm kiếm những site nào có chứa liên kết đến domain mà
mình chỉ định. Ví dụ link:vickigroup.com. Thì nó sẽ ra những site có chứa liên
kết đến vickigroup.com.
- cache:<domain>: Tìm kiếm trong cache của google.
- intitle: Nó sẽ tìm kiếm phần Title của document.
- inurl: Nó sẽ tìm kiếm trong phạm vi url.
Việc kiếm hợp giữa các yếu tố tìm kiếm trên rất quan trọng, giúp hacker xác
định rõ những thông tin và phạm vi mà mình quan tâm.
Mục đích sử dụng chính của Google Hacking là một tổ chức để lộ thông tin bảo mật
của 1 điểm yếu xác định nào đó trong mạng.
I.5. Tìm hiểu về Whois:
Sau khi đã định danh được tên domain chúng ta bắt đầu truy vấn whois để tìm kiếm
thông tin của nạn nhân. Ta có thể có được thông tin khác nhau theo từng mục truy vấn,
các thông tin có được thường là:
• Organizational: Hiển thị tất cả các thông tin liên quan đến một tổ chức cụ
thể.
• Domain: Hiển thị thông tin liên quan đến một domain cụ thể như thời
gian đăng kí, thời gian hết hạn, chủ sử hữu…
• Network: Hiện thị thông tin liên quan đến một mạng cụ thể hoặc một địa
chỉ IP đơn lẻ, tên server mà nó đang trỏ tới…
• Point of contact (POC): Thông tin liên lạc của cá nhân sở hữu địa chỉ,
email, phone…
Đây là những thông tin về trang vnexpress.net thông qua whois:
[Các kĩ thuật tấn công] Trang 5
[Ứng dụng truyền thông và ANTT]
II. Mapping The Network
Với mục tiêu mạng đã được xác định, tiếp theo Hacker cần hoàn thành là sơ đồ mạng.
Điều này có nghĩa là nhận dạng mô hình mạng và bao nhiêu nút mạng dựa vào địa chỉ
IP và vị trí của chúng trong mạng.
Có một số công cụ bảo mật mạng chuyên nghiệp để quản lý mạng. Một vài
công cụ miễn phí trong khi một số khác phải trả phí. Công cụ mà nhiều Hacker sử dụng
là Traceroute.
[Các kĩ thuật tấn công] Trang 6
[Ứng dụng truyền thông và ANTT]
Tracert là công cụ dòng lệnh nền tảng Windows dùng để xác định đường đi từ nguồn
tới đích. Tracert tìm đường tới đích bằng cách gửi các thông báo Echo Request ICMP
tới từng đích. Sau mỗi lần gặp một đích, giá trị Time to Live (TTL) sẽ được tăng lên
cho tới khi gặp đúng đích cần đến. Đường đi được xác định từ quá trình này.
• Để dùng Tracert, đơn giản chỉ cần mở màn hình lệnh Command Prompt.
Để thực hiện điều này, vào Start -> Run -> cmd -> tracert
• Xác định đường đi tời Google.com.vn (74.125.71.99) qua tối đa 30 hop.
III. Sweeping the Network
Khi sơ đồ mạng cơ bản được hoàn thành, Hacker cần tìm hiểu chi tiết hơn các nút trong
mạng đích:
• Xác định hệ thống có đang "sống" hay không.
• Kiểm tra các port nào đang mở.
• Xác định những dịch vụ nào đang chạy tương ứng với các port đang mở.
• Xác định hệ điều hành và phiên bản của nó.
• Kiểm tra lỗi của những dịch vụ đang chạy.
• Xây dựng sơ đồ những host bị lỗi.
[Các kĩ thuật tấn công] Trang 7
[Ứng dụng truyền thông và ANTT]
• Xác định những host trong hệ thống đang sống hay chết rất quan trọng vì
có thể Hacker ngừng tấn công khi xác định hệ thống đã chết. Việc xác định hệ
thống có sống hay không có thể sử dụng kỹ thuật Ping Sweep.
Bản chất của quá trình này là gửi hàng loạt ICMP Echo Request đến 1 dải địa chỉ host
mà hacker đang muốn tấn công và mong đợi ICMP Reply. Dựa vào danh sách những
host đáp ứng có thể xác định dải địa chỉ IP đang được dùng trong mạng.
• Đa số các firewall thì luôn luôn chặn Ping do vậy việc phòng chống Ping
Sweep rất dễ dàng. Lý do chặn ICMP ngoài việc chống Ping Sweep ra thì cũng
nên chặn ICMP nếu như có firewall nào mà chưa chặn bởi vì hacker cũng có thể
lợi dụng ICMP để đưa backdoor trên giao thức này. Công cụ có sẵn là sử dụng
lệnh ping có sẵn trên Windows hoặc Linux hoặc sử dụng những chương trình
chuyên dụng sau : Pinger, Friendly Pinger, và WS Ping Pro , Hping2.
• Thông thường thì việc Firewall chặn một ICMP rất đơn giản nên ngoài
việc chúng ta scan ping bằng các ứng dụng có sẵn trên hệ điều hành thì chúng ta
cũng có thêm một số công cụ chuyên dụng hơn có khả năng vẫn xác định được
mạng ngay cả khi hệ thống đó chặn ICPM như : Hping, gping, Pinger…
Tìm hiểu về Hping:
Hping (phiên bản mới nhất là Hping3) là một công cụ có khả năng gửi đi các gói tin
TCP/IP và nhận về các reply từ đích giống như ping ICMP. Hping có thể được dùng để
tạo ra các IP packets chứa TCP, UDP, hay ICMP payload. Ngoài ra Hping còn có khả
năng phân mảnh tùy ý và có thể sử dụng để truyền các file đã được đóng gói dưới
những giao thức được hỗ trợ. Sử dụng Hping ta có thể thực hiện một số công việc như:
• Kiểm tra các luật lọc của firewall
• Có thể sử dụng để quét cổng
• Kiểm tra mạng đang sử dụng những giao thức khác nhau nào, kích cỡ của
gói tin, TOS (type of service) và sự phân mảnh.
• Xác định dò ra được MTU (Maximum Tranmission Unit)
• Có thể truyền file
• Và một số các ứng dụng khác.
Nói thêm về Hping, đây thực sự là một công cụ tốt cho những ai muốn tìm hiểu về
mạng nói chung và TCP/IP nói riêng.
Ví dụ:
[Các kĩ thuật tấn công] Trang 8
[Ứng dụng truyền thông và ANTT]
- Để kiểm tra xem các host cần xâm nhập còn “sống” hay không với
Hiping ta có thể sử dụng ICMP Ping, TCP Ping hay UDP Ping.
hping -1 antoanmang.vn --- > ICMP Ping
hping -S antoanmang.vn -p 80 --- > TCP Ping
hping -2 antoanmang.vn -p 0 --- > UDP Ping
- Sử dụng Hping để quét cổng (Scan port). Một số phương pháp thường
được sủ dụng để scan port như: TCP SYN Scan, TCP ACK Scan, Other TCP
Scans, UDP Scans.
[ /]# hping -I eth0 -S antoanmang.vn -p 80
HPING antoanmang.vn (eth0 203.162.57.24): S set, 40 headers + 0 data bytes
len=46 ip=203.162.57.24 ttl=58 DF id=0 sport=80 flags=SA seq=0 win=5840 rtt=25.6 ms
len=46 ip=203.162.57.24 ttl=58 DF id=0 sport=80 flags=SA seq=1 win=5840 rtt=24.7 ms
len=46 ip=203.162.57.24 ttl=58 DF id=0 sport=80 flags=SA seq=2 win=5840 rtt=24.8 ms
IV. Scanning the Network
IV.1. Port Scannning
Là phương pháp chính thường được dùng khi Admin tắt chế độ ICMP ở tường lửa.
Khi một host không phản hồi khi ping, thì nó có thể vẫn được active, và port scanning
có thể xác định những host ẩn như thế này.
Port scanner có một số phương thức hoạt động khác nhau để tránh bị phát hiện.
Dưới đây là một số phương thức có thể được lựa chọn để thực hiện port scanning:
• TCP connect scan: đây là phương pháp chủ yếu và cơ bản nhất. Chương trình
cố gắng tạo các gói tin để kết nối đến mỗi cổng trên một máy, nó sẽ cố gắng
thực hiện các cuộc gọi hệ thống và hoàn thành quy trình bắt tay 3 bước. Nếu
máy đích trả lời port đó sẽ active. Đây là phương pháp khá phổ biến hiện nay
và được dùng nhiều nhất trong hầu hết các chương trình scan port. Tuy nhiên
phương pháp này sẽ không còn hiệu quả nếu như các máy đích được bảo vệ
bởi 1 firewall hoặc người sử dụng ẩn đi các thông tin về port được scan thì
xem như phương pháp này cũng không thể hoạt động.
• TCP SYN scan: Lưu ý rằng, TCP là một giao thức tin cậy, nó sử dụng phương
pháp bắt tay 3 bước để thiết lập các kết nối. Nếu ta muốn tìm 1 port có được
mở hay không trên một máy, ta sẽ gửi 1 gói tin đến port đó với bit SYN được
[Các kĩ thuật tấn công] Trang 9
[Ứng dụng truyền thông và ANTT]
bật. Nếu port đó được mở, máy đó sẽ gửi lại gói tin với 2 bit SYN và ACK được
bật. Lúc này, ta có thể nhanh chóng xác định được rằng, port đó đã active.
Phương pháp này còn được gọi là phương pháp hafl open connection. Phương
pháp này ít được sử dụng hơn phương pháp trên do nhiều máy tính không cho
phép tạo half open connection.
• TCP ACK scan: Khi chúng ta cố gắng thiết lập một kết nối mới, hệ thống phải
gửi 1 gói tin với bit SYN được lập. Nếu hệ thống đó gửi đến một máy mà máy
đó không chấp nhận kết nối thì nó sẽ gửi ngược lại cho ta RST. Có thể là bạn
nghĩ rằng phương pháp này giống với phương pháp FIN Scan nhưng thực
chất nó có ưu điềm hơn phương pháp trên. Như chúng ta biết, để thiết lập
một cầu nối tin cậy, thì gói tin thứ 2 phải được gửi với bit ACK được bật.
Chính điều này mà các firewall tận dụng để lọc bỏ các gói tin gửi đến để tạo
kết nối. Vậy nếu ta tạo một gói tin với bit ACK được bật, tức là gói tin ta gửi đi
sẽ đóng vai trò là gói tin thứ 2 trong cầu nối tin cậy. Bây giờ thì có lẽ bạn đã
hiểu, ta đã qua mặt được firewall vì hiện nay ta đã đóng vai trò là máy đích
cho cầu nối TCP của một máy trong mạng có firewall bảo vệ. Firewall không
thể lọc bỏ các gói có bit ACK được bật từ bên ngoài gửi vào, vì nếu như thế thì
mạng LAN bên trong Firewall sẽ không thể trao đổi thông tin với các máy bên
ngoài. Vậy là đã vượt qua Firewall, việc còn lại thực hiện giống như phương
pháp đầu tiên.
Dưới đây là 3 loại khác dựa trên nguyên lý của RFC 793, cách mà mục tiêu có thể
phản hồi với RST message:
• TCP FIN scan: Ta biết, sau khi 1 kết nối TCP được lập, 2 máy sẽ gửi packet cho
nhau. Khi chúng kết nối, chúng sẽ gửi các gói tin với bit FIN được bật. Cách
TCP làm việc là nếu ta gửi 1 gói tin đến 1 port bị đóng, hệ thống sẽ gửi ngược
lại lệnh RST để báo cho ta biết port đó không active. Như vậy chương trình
scan port bằng phương pháp này sẽ hoạt động như sau: nó sẽ gửi một gói tin
với bit FIN được bật. Nếu port đó mở nó sẽ xóa gói tin này nếu như port đó bị
khóa, thì nó sẽ gửi lại lệnh RST (reset).
• TCP Null scan: Client sẽ gửi tới Server những gói TCP với số port cần Scan mà
không chứa thông số Flag nào, nếu Server gửi lại gói RST thì tôi biết port đó
trên Server bị đóng.
• TCP Xmas Tree scan: Client sẽ gửi những gói TCP với số Port nhất định cần
Scan chứa nhiều thông số Flag như: FIN, URG, PSH. Nếu Server trả về gói RST
tôi biết port đó trên Server bị đóng.
[Các kĩ thuật tấn công] Trang 10
[Ứng dụng truyền thông và ANTT]
IV.2. Công cụ Netstat
Mặc dù hiện nay có rất nhiều công cụ dùng để scaning, nhưng chúng ta cũng không
nên quên các công cụ có sẵn trong hệ thống của mình. Netstat trong Windows là một
ví dụ. Netstat là một công cụ mạnh mẽ, dùng để hiển thị các kết nối đang thiết lập và
các cổng đang lắng nghe hiện tại. Mặc dù vậy, Netstat không hiển thông báo chương
trình hay các dịch vụ đang lắng nghe ở các cổng, đây là một nhược điểm của công cụ
này. Netstat sử dụng giao diện dòng lệnh, dưới đây là cú pháp và các thông số tùy
chọn của Netstat:
• Cú pháp: NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-t]
[interval]
• Trong đó:
-a hiển thị tất cả các kết nối và các cổng đang lắng nghe.
-e hiển thị các thông kê về Enthernet.
-n hiển thị địa chỉ và số cổng dưới định dạng số.
-s hiển thị trạng thái của từng giao thức.
-p protocol hiển thị các kết nối giao thức được chỉ tên TCP hoặc UDP.
-r hiển thị nội của bảng lộ trình.
- ...
Ví dụ: Để hiển thị tất cả các địa chỉ đang kết nối và các cổng đang lắng nghe, ta sử
dụng lệnh netstat –a, kết quả thu được như bên dưới:
[Các kĩ thuật tấn công] Trang 11
[Ứng dụng truyền thông và ANTT]
IV.3. Công cụ SuperScan:
Là một công cụ dùng để scan port mạnh mẽ và miễn phí dùng cho Windows. Bên
cạnh scan port, công cụ còn có các chức năng bổ sung như ping, traceroute, HTML
HEAD, Whois…
Các bước scan port bằng công cụ SuperScan:
• Tại tab Scan: nhập dải địa chỉ IP cần scan bằng cách nhập địa chỉ IP bắt đầu
và địa chỉ IP kết thúc.
• Thiết lập các tùy chọn cần thiết trong tab Host and Service Discovery.
[Các kĩ thuật tấn công] Trang 12
[Ứng dụng truyền thông và ANTT]
• Quay lại tab Scan và bắt đầu tiến hành scan.
[Các kĩ thuật tấn công] Trang 13
[Ứng dụng truyền thông và ANTT]
V. Vulnerability Scanning
V.1. Giới thiệu công cụ Nessus
Trong quá trình bảo mật hệ thống mạng cho 1 công ty hay tổ chức việc sử dụng các
công cụ mạnh để kiểm tra hay phát hiện các lỗi bảo mật nhằm nâng cao tính an toàn
của hệ thống và toàn Mạng là rất quan trọng. Trong đó Netssus và GFI LanGuard là
hai trong số các chương trình rà soát lỗ hổng Bảo mật Mạng hàng đầu hiện nay
nhưng GFI LanGuard là một phần mềm thương mại trong khi đó Nessus lại là một
phần mềm miễn phí hoàn toàn cho người dùng cá nhân với cơ sở dữ liệu về các lỗ
hổng có thể được rất phong phú cho cả hệ thống chạy Window hay Linux và được
cập nhật thường xuyên
Nessus hoạt động dựa trên dữ liệu từ các plugin. Plugin là các dữ liệu về các lỗ hổng
trong hệ thống. Khi một lỗ hổng nào đó được công bố, thì trong vòng 24h Plugin để
kiểm tra lỗ hổng đó cũng sẽ xuất hiện. Tuy vậy, chỉ có người dùng trả phí mới được
cập nhập các plugin này ngay lập tức, còn các người dùng miễn phí sẽ phải đợi thời
gian là 1 tuần để có thể cập nhập các plugin mới này.
Download nessus tai địa chỉ: />[Các kĩ thuật tấn công] Trang 14
[Ứng dụng truyền thông và ANTT]
V.2. Khởi động Nessus
Nessus hoạt động theo mô hình Client, Server. Nessus Server sẽ chứa thông tin về cơ
sở dữ liệu và cập nhật các lỗ hổng mới, thông tin về username và password để Nessus
Client chứng thực, thực hiện quét lỗi các PC do Nessus Client yêu cầu.
Sau khi cài đặt, ta tiến hành khởi động nessus server:
Với nessus server, ta có thể đánh dấu vào các tùy chọn như “start the Nessus server
when Windows boots”,.. tùy theo nhu cầu của mình. Đồng thời có thể thêm hoặc bớt
các User để đăng nhập vào nessus server bằng cách click vào Manage Users.
Sau khi nessus server được khởi động, ta có thể dùng nessus client để truy cập vào tại
bất kì máy tính nào ở trong mạng, bằng cách nhập địa chỉ IP của máy tính cài đặt
nessus server vào trình duyệt và nhập port là 8834. Sau đó nhập User và Pass để
đăng nhập vào (xem ảnh).
[Các kĩ thuật tấn công] Trang 15
[Ứng dụng truyền thông và ANTT]
V.3. Tạo các policy
Policy là các chính sách dùng để kiểm tra các hệ thống khác nhau. Policy chứa các
Plugin dùng để quyết lỗ hổng của các hệ thống. Đối với các hệ thống khác nhau, ta
nên chọn các policy khác nhau, trong các policy chọn các plugin thích hợp để quyết
hệ thống đó. VD: đối với các hệ thống linux thì ta sử dụng các plugin cho linux, vì các
plugin khác như plugin cho windows sẽ không có chút tác dụng nào đối với hệ thống
linix, bên cạnh đó còn làm quá trình scan diễn ra chậm chạm hơn.
Dưới đây là các bước để tạo ra một Policy.
Vào tab Policies, chọn Add.
[Các kĩ thuật tấn công] Trang 16