Nghiên cứu một số phương pháp tấn công web (ĐATN cực hay) - Pdf 24

Nghiên cứu một số phương pháp tấn công Web
NGHIÊN CỨU MỘT SỐ PHƯƠNG
PHÁP TẤN CÔNG WEB
SINH VIÊN THỰC HIỆN:
Nghiên cứu một số phương pháp tấn công Web
Mục Lục
LỜI DẪN
Hacking những ứng dụng Web cũng giống như một thủ thuật kì diệu. Nếu bạn
biết những kĩ thuật đúng và thực hành bạn có thể đột nhập vào bất kì ngân hàng
trực tuyến nào hoặc các công ty tín dụng, các công ty chứng khóan. Với những
phương pháp tấn công đơn giản bạn có thể xác định được hệ điều hành, ngôn
ngữ lập trình, phiên bản máy chủ và thậm chí bạn có thể xác định được lỗ hổng
bảo mật của trang Web đó chỉ cần dựa vào URL. Hầu hết những công ty đều rất
lo ngại về việc cơ sở dữ liệu của mình có thể bị mất cắp và cũng từ chính những
điều này mà công việc làm ăn kinh doanh của họ có thể sụp đổ bất cứ lúc nào.
Tuy nhiên việc bảo mật các ứng dụng Web thường rất kém và các chuyên gia
Nghiên cứu một số phương pháp tấn công Web
cũng nhận định rằng chính bản thân họ cũng sợ những lỗ hổng bảo mật trên
Web vì hiện tại khả năng của các attacker đang rất mạnh, và lòng tham của họ
cũng lớn. Hàng ngày họ phải tìm kiếm để ăn cắp những thẻ tín dụng ngân hàng,
số an sinh xã hội, tài khỏan ngân hàng hoặc bất cứ điều gì mà họ có thể lấy cắp
được….Với những attacker ác ý chúng có thể sẵn sàng đe dọa và tống tiền các
doanh nghiệp. Với những hoạt động xâm nhập như vậy sự thiệt hại sẽ là rất lớn
ví dụ như: Tiền phạt, lòng tin khách hàng, thời gian chết, thiệt hại thương hiệu,
trách nhiệm pháp lý….Cho nên vấn đề tìm hiểu những phương pháp tấn công
Web đồng thời phòng chống các phương pháp đó là điều rất cần thiết cho mỗi
doanh nghiệp. Tài liệu dưới đây chúng em xin đề cập những phương pháp từ tấn
công đến phức tạp, những phương pháp được thực hiện bằng tay cũng như sử
dụng các tool tự động đồng thời đưa ra các cách phòng chống các phương pháp
này.
Nghiên cứu một số phương pháp tấn công Web 2010

hành và các ứng dụng logic như
- Chương trình Web server như IIS hay Apache.
- Thành phần mở rộng của web serber như ISAPI hay các mod của Apache.
- Môi trường thực thi như ASP.NET, PHP và J2EE
- Các dịch vụ người dùng như forum, portal
Đã từ lâu, lỗi thuộc về chương trình web server là một trong những lỗi dễ dàng nhất để
khai thác trên một website, nhưng càng về sau, các nhà phát triển chương trình web
server càng chú trọng hơn tới vấn đề bảo mật bởi vì sản phẩm của họ đã bị tấn công
khá nhiều trong quá khứ. IIS của Microsoft là một ví dụ cho trường hợp này. Mặc dù
nhiều lỗi đã được tìm thấy và sửa chữa bởi Microsoft nhưng hàng ngày hacker trên
toàn thế giới vẫn tìm ra các lỗi mới của ứng dụng này.
Chương này sẽ đề cập đến một số hình thức khai lỗi như :
- Khai thác Point-and-click
- Khai thác thủ công
2.1.1 Khai thác Point-and-click
Point-And-Click là cách khai thác sử dụng các công cụ và các kịch bản có sẵn để tấn
công vào lỗ hổng. Metasploit Framework là một chương trình mã nguồn mở phục vụ
cho việc phát triển, kiểm tra và thực hiện các đoạn code khai thác lỗ hổng. Mặc dù đã
được cảnh báo rằng "chỉ sử dụng cho mục đích kiểm tra và nghiên cứu", nhưng
Metasploit lại trở thành công cụ yêu thích của hacker vì tính đơn giản của nó.
5
Nghiên cứu một số phương pháp tấn công Web
Metasploit hoạt động trên nhiều hệ điều hành Linux/Unix/Windown, nó cung cấp cách
khai thác lỗ hổng dễ dàng cho nhiều loại lỗ hổng trong đó có cả web platform. Có một
ứng dụng thương mại khác là CORE IMPACT được phát triển bởi Core Security
Technologies hoặc CANVAS của Immunity.
Như vậy người tấn công không cần có kiến thức sâu về lỗ hổng sắp khai thác mà vẫn
có thể tấn công một cách hiện quả. Tất cả các kịch bản tấn công, code đều có thể tìm
kiếm dễ dàng trên mạng internet.
Để hiểu được cách thức thực hiện Point-and-click, hãy thử thực hiện một cuộc tấn

với đầy đủ các mục phục vụ cho việc khai thác. Trong hình dưới, ta sẽ chọn loại hệ
điều hành mà ta chuẩn bị tấn công.
7
Nghiên cứu một số phương pháp tấn công Web
Hình 2.2
8
Nghiên cứu một số phương pháp tấn công Web
Sau khi chọn mục tiêu, Metasploit sẽ hiển thị màn hình tiếp theo để ta chọn payload sẽ
gửi tới server. Đối với tấn công này, ta sẽ sử dụng một remote shell đơn giản. Sau đó
chỉ cần click vào nút Exploit, ta sẽ nhận được kết quả :
Hình 1.2
2.1.2 Khai thác thủ công
Việc khai thác thủ công đòi hỏi người khai thác phải có kiến thức về lỗ hổng mà mình
khai thác cũng như các giao thức, cấu hình xung quanh lỗ hổng đó. Hacker sử dụng
các kiến thức của mình về hệ thống và lỗ hổng để từng bước nhận được các thông tin
từ hệ thống thống qua lỗ hổng cũng như phục vụ cho các tần công khác sâu hơn.
Một số ví dụ về tấn công thủ công :
PEAR/PHP XML-RPC Code Execution
PEAR/PHP XML-RPC được tìm ra vào năm 2005, cho phép thực hiện đoạn code thực
thi từ xa trên server. Những ứng dụng như PostNude, Drupal hay TikiWiki đều vướng
lỗi này vào thời gian đó.
Lỗ hổng này được khai tác bẳng cách tận dụng một hàm trong bộ XML - eval() cho
phép nhúng input của người dùng từ request XML Điều này cho phép hacker tạo ra
một XML request đơn giản và nhùn một chuổi có khả năng vượt qua các tham số
truyền của hàm eval(). Tấn công này cũng tương tự như SQL injection hay XSS.
9
Nghiên cứu một số phương pháp tấn công Web
Trong ví dụ dưới đây sử dụng ứng dụng PhpAdsNew. PhpAdsNew sửa dụng file
adxmlrpc.php để chấp nhận các request của web service. Trong trường hợp này
adxmlrpc.php đóng vai trò như một gateway để khai thác XML-RPC. Tấn công được

03/08/2005 12:14 AM 4,435 adjs.php
01/13/2005 04:43 PM 6,250 adlayer.php
01/13/2005 04:43 PM 4,122 adlog.php
11/11/2005 12:11 PM <DIR> admin
01/13/2005 04:43 PM 8,618 adpopup.php
01/13/2005 04:43 PM 9,877 adview.php
10/09/2003 07:39 PM 73 adx.js
01/13/2005 04:43 PM 5,867 adxmlrpc.php
11/11/2005 12:11 PM <DIR> cache
11/11/2005 12:11 PM <DIR> client
11/10/2005 03:57 PM 6,706 config.inc.php
01/13/2005 04:43 PM 1,144 index.php
11/11/2005 12:11 PM <DIR> language
11/11/2005 12:11 PM <DIR> libraries
10/29/2002 10:01 PM 15,515 LICENSE
11/11/2005 12:11 PM <DIR> maintenance
11/11/2005 12:11 PM <DIR> misc
01/13/2005 04:43 PM 2,254 phpadsnew.inc.php
03/15/2005 11:20 AM 5,273 README
16 File(s) 87,908 bytes
9 Dir(s) 10,690,588,672 bytes free
<?xml version="1.0"?>
<methodResponse>
<fault>
<value>
<struct>
11
Nghiên cứu một số phương pháp tấn công Web
<member>
<name>faultCode</name>

announcements list để biết được các bản vá cập nhật mới nhất.
Mặt khác hãy thực hiện định kỳ công việc pen-test hệ thống, sử dụng các chương trình
quét lỗ hổng để tự kiểm tra độ bảo mật của web server cũng như các ứng dụng đang
chạy trên web server.
Cấu hình đúng và chuẩn web server là điều quan trọng tránh những lỗ hổng vô tình
được tạo ra.
Đối với IIS :
Tắt "IIS' Detailed Error Messages" sẽ giúp ngăn chặn hacker footprinting từ hệ thống
các thông tin cần thiết phục vụ cho tấn công
Cài đặt các thư mục web ở các ổ đĩa khác với ổ root của hệ điều hành. Với IIS,Internet
Services Manager (iis.msc) điều khiển vị trí của web root, hãy chắc rằng Local Path
không có "%systemroot%"
Tháo bỏ những mở rộng không cần thiết. Các mở rộng luôn ẩn chứa những lỗ hổng mà
nhà phát triển không lường trước được, hãy chắc rằng chỉ sử dụng những mở rộng thật
sự cần thiết. Bạn không phải xóa các file .dll để tránh trường hợp đụng chạm đến hệ
thống, chỉ cần tháo nó ra khỏi startup của server, khi đó các lỗi từ các mở rộng sẽ
không bị khai thác nữa.
Sử dụng IISLockdown và URLScan. Trong khi IISLockdown và URLScan giúp bạn
tự động đặt cấu hình cần thiết để đảm bảo bảo mật cho platform ở một khía cạnh nào
đó , IISLockdown và URLScan hoạt động như một firewall phía trước server. Cả 2
ứng dụng có thể sử dụng riêng biệt mà cấu hình chi tiết bằng tay
Ngăn việc group Everyone và Guest thực hiện Write và Execute: Các truy cập nặc
danh trên IIS thuộc các nhóm này và bạn cần chắc chắn rằng họ không được quyền
can thiệp vào thư mục hay file nào trên hệ thống cũng như những người không có
quyền thực thi các lệnh execute trên các thư mục.
13
Nghiên cứu một số phương pháp tấn công Web
2.2.2 Đối với Apache:
Loại bỏ các module không cần thiết: Một trong những điều quan trọng khi cài đặt
Apache là các chức năng yêu cầu phải có trên web server, ví dụ PHP script hoặc Perl

- Nghe lén.
3.1.1 Username enumeration
- Cách tấn công: Username enumeration được sử dụng chính để cung cấp cho việc dò
tìm password. Việc sử dụng này nhằm tránh lãng phí thời gian trong việc bị fail khi sử
dụng một password cho một user không tồn tại. Ví dụ như: Nếu bạn có thể xác định
được không có một user nào tên là Alice thì bạn sẽ không bị lãng phí thời gian để dò
tìm password của user Alice. Dưới đây là một số chức năng thường được sử dụng
trong các ứng dụng khác giúp bạn có thể xác định được tên của người dùng:
+ Profiling Result: Trong một website có một số nơi mà ở đó chúng ta có thể
xác định được thông tin xung quanh của người dùng ví dụ như: Lời chú giải của
source code. Những kẻ tấn công thông minh luôn luôn xem xét data của profiling vì nó
thường là một nguồn thông tin dồi dào.
15
Nghiên cứu một số phương pháp tấn công Web
+ Lỗi khi login: Một kĩ thuật đơn giản nhằm để xác định nếu có một user tồn tại
thử login vào hệ thống và nhìn thấy tin nhắn thông báo lỗi. Ví dụ: Thử login vào ứng
dụng web sử dụng username “Alice” và password “abc123”. Bạn có thể sẽ nhận được
3 thông báo lỗi trừ khi bạn đăng nhập thành công vào hệ thống với password đã dò
được:
o Bạn đã nhập một username sai
o Bạn đã nhập một password sai
o Bạn đã nhập username/password sai
Nếu bạn nhận được dòng thông báo (1) điều này có nghĩa là username đó không tồn
tại trong ứng dụng, bạn không nên tốn thời gian để dò password cho user Alice. Nếu
bạn nhận được dòng thông báo (2) có nghĩa là bạn đã xác định được một user hợp lệ
trong hệ thống và bạn có thể thử để dò tìm password. Và nếu bạn nhận được thông báo
(3) thì nếu Alice là một user hợp lệ thì việc xác định password cho user này quả thật là
một việc khá khó khăn.
+ Đăng kí: Có nhiều ứng dụng web cho phép người dùng lựa chọn username
của chính họ để thực hiện quá trình đăng kí. Trong suốt quá trình đăng kí nếu bạn lựa

cố gắng tính tóan thời gian hệ thống gửi thông báo lỗi khi hệ thống nhận được một bad
user hoặc một bad pass. Và tùy thuộc vào thuật tóan cũng như công nghệ sử dụng mà
thời gian trả lời là khác nhau.
3.1.2 Dò tìm password
- Phương thức tấn công: Không đáng ngạc nhiên khi nhận xét việc dò tìm password là
nguyên nhân chính dẫn đến sự sụp đổ của cấu trúc username/password. Thật không
may hiện nay cấu trúc này lại rất phổ biến trên các web và kĩ thuật tấn công kiểu dò
tìm password là kiểu tấn công cơ bản nhất. Tấn công dò tìm password thường được
thực hiện mà không cần quan tâm đến nơi mà giao thức xác thực đó áp dụng. Việc dò
tìm password có thể thực hiện được bằng tay và bằng các phần mềm.
+ Dò tìm password bằng tay: Tấn công dò tìm password có thể được thực hiện
bằng tay hoặc thông qua các tool tự động. Tấn công dò tìm password được thực hiện
bằng tay là một kiểu tấn công rất nhạt nhẽo nhưng qua kiểu tấn công này ta lại thấy
17
Nghiên cứu một số phương pháp tấn công Web
được vai trò của con người hơn là kiểu tấn công tự động, đặc biệt là khi lỗi phần tùy
chỉnh của trang được sử dụng để trả lời các form login cơ bản. Khi tiến hành dò tìm
password thường người ta sẽ dựa vào bảng sau:
Username Guesses Password Guesses
[NULL] [NULL]
root, administrator, admin [NULL], root, administrator, admin, password,
[company_name]
operator, webmaster, backup [NULL], operator, webmaster, backup
guest, demo, test, trial [NULL], guest, demo, test, trial
member, private [NULL], member, private
[company_name] [NULL], [company_name], password
[known_username] [NULL], [known_username]
+ Dò password tự động: Có hai phương pháp cơ bản để thực hiện dò password tự động
đó là: chiều sâu và chiều rộng đầu tiên. Thuật tóan của phép chiều sâu đầu tiên đó là
thử tất cả các password được kết hợp bởi một username sau đó mới thử đến username

Hydra () finished at 2005-11-08 21:22:01
Hydra hỗ trợ http-head, http-get, https-head và http-proxy cho viện tấn công ứng dụng
web.
WebCracker là một công cụ cũ hơn Hydra, ứng dụng Window Base GUI giống như
Hydra nhưng nó không cần nhiều kinh nghiệm như Hydra. Nó là một công cụ rất tuyệt
vời dành cho những người mới bắt đầu hoặc khi bạn muốn kiểm tra nhanh. Ở hình
phía dưới chỉ ra việc Web Cracker đã dò tìm thành công một số account ở URL đích.
19
Nghiên cứu một số phương pháp tấn công Web
Hình 3.1: WebCracker đã dò tìm thành công username/password.
Brutus là một công cụ dò tìm password nó được xây dựng để phục vụ cho việc tấn
công xác thực HTTP Basic và Form-base giữa các giao thức như SMTP hoặc POP3.
Brutus có thể thực hiện cả việc tấn công từ điển và brute-force attack nơi mà các
password có thể được sinh ra ngẫu nhiên từ tập hợp các kí tự. Dưới đây là giao diện
chính của Brutus sau khi tiến hành tấn công dò tìm password xác thực cơ bản
Hình 3.2: Brutus đã dò tìm được 4908 password trong vòng 19s
Brutus cũng có thể tiến hành việc tấn công xác thực Form-Basic nhưng nó lại không
hiển thị password đã dò tìm được khi tiến hành tấn công.
Cách phòng tránh tấn công bằng username/password:
20
Nghiên cứu một số phương pháp tấn công Web
Cách phòng tránh hiệu quả nhất tránh việc dò tìm mật khẩu đó là sự kết hợp giữa
chính sách mật khẩu mạnh và chính sách khóa account mạnh. Sau khi một số lượng
nhỏ truy cập không thành công, các ứng dụng nên khóa các tài khỏan để hạn chế kiểu
tấn công này. Tuy nhiên hãy cẩn thận với các cuộc tấn công DOS đối với một ứng
dụng có chính sách khóa tài khoản trên mức cần thiết. Một kẻ tấn công có thể khóa tất
cả các tài khỏan trên hệ thống. Một lựa chọn tốt nhất mà các nhà phát triển ứng dụng
thường sử dụng đó là chỉ khóa các tài khỏan trong khoảng một thời gian ngắn, thông
thường thời gian đó là 10p. Điều này có hiệu quả trong việc làm chậm tốc độ dò tìm
mật khẩu. Với việc sử dụng một chính sách mật khẩu mạnh, khả năng dò tìm ra các

+ Brufoce session ID là phương pháp tấn công là thử hàng ngàn các request để
yêu cầu session ID nhằm dò tìm một session ID chính xác nhất. Số lượng các
request thực hiện cần phụ thuộc vào không gian key của session ID. Như vậy
xác suất thành công của kiểu tấn công này có thể tính tóan dựa trên kích cỡ và
không gian key của Session ID.
+ Hacking cookies: Cookie thường chứa những dữ liệu nhạy cảm liên quan đến
việc xác thực. Nếu cookie có chứa password hoặc các seesion ID thì việc đánh
cắp được cookie là một cuộc tấn công rất thành công đối với một rang web. Có
một số kĩ thuật phổ biến được sử dụng để đánh cắp cookies, với một số kịch bản
thông dụng là script injection và nghe trộm. Kĩ thuật đảo ngược cookie offline
cũng có thể chứng minh đây là một kiểu tấn công rất có lợi. Cách tiếp cận tốt
nhấp đó là thu thập một mẫu cookie sau đó thay đổi các giá trị khác nhau của
input để xem cookie đó thay đổi như thế nào. Điều này có thể đuowcj làm bằng
cách sử dụng các account khác nhau để login tại các thời điểmkhác nhau. Ý
tưởng này được sử dụng để xem những thay đổi của cookie dựa trên username,
thời gian, các đặc quyền truy nhập…Tấn công Bit-flipping là cuộc tấn công
thông qua kiểu tấn công brute force, nó thay đổi các bit cookie miễn là cookie
có còn hợp lệ và có các quyền truy cập khác nhau.
22
Nghiên cứu một số phương pháp tấn công Web
3.2.2 Phương pháp phòng tránh:
- Sử dụng SSL: Nghe lén là cách dễ nhất để ăn cắp thẻ bảo mật như cookie. Sử
dụng SSL hoặc kết hợp với công nghệ bảo mật phiên khác để chống lại việc
nghe trộm. Ngoài việc nghe trộm trên đường truyền có dây, chúng ta cũng phải
nhận thức được những vấn đề bảo mật với các khách hàng thường xuyên sử
dụng web cũng có thể làm lộ các thẻ bảo mật để thực hiện các phần mềm mã
độc hại hoặc cross-site sripting. Nhìn chung cách tiếp cận tốt nhất là sử dụng
các session ID được cung cấp bởi các server ứng dụng. Tuy nhiên nếu bạn cần
xây dựng một cái của riêng bạn, bạn nên thiết kế một thẻ bảo mật mà thẻ đó
không thể bị đóan trước hoặc không thể bị tấn công sử dụng brute force. Bạn

những người làm lệch kết quả của các bản thăm dò bằng cách viết ra một
chương trình mà chương trình này sẽ không trả lời lại các cuộc thăm dò.
CAPCHA là một loại HIP (Human Interactive Proof) cái mà được sử dụng để
xác định xem các thực thể ở bên kia là một máy tính hay là một con người,
phương thức này người ta gọi là RTT (reverse tuning test). Điều khác với
CAPCHA đó là nó hòan toàn tự động và làm cho nó tương thích với các ứng
dụng web. Loại CAPCHA cơ bản thường là dựa trên một đoạn text hay một
đoạn hình ảnh. Các hình ảnh sau đây mô tả việc thực hiện CAPCHA.
Hình 3.3: Gimpy-r CAPCHA
24
Nghiên cứu một số phương pháp tấn công Web
Hình 3.4: CAPCHA sử dụng trong đăng kí tài khoản Hotmail.
Hình 3.5: Một hình ảnh CAPCHAT trên CAPCHA.net
Hình 3.6: Nhận biết kiểu CAPCHA (hình ảnh và text)
25

Trích đoạn Design Liability Denial-of-Service (DoS) Attacks Phòng chống
Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status