Tải bản đầy đủ (.pdf) (80 trang)

Báo cáo NCKH Tìm hiểu, nghiên cứu các phương pháp tấn công và phòng thủ Web Server

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.3 MB, 80 trang )

LỜI MỞ ĐẦU
Cùng với sự phát triển của công nghệ thơng tin, cơng nghệ mạng máy tính và sự
phát triển của mạng internet ngày càng phát triển đa dạng và phong phú. Các dịch vụ trên
mạng đã thâm nhập vào hầu hết các lĩnh vực trong đời sống xã hội. Các thông tin trên
Internet cũng đa dạng về nội dung và hình thức, trong đó có rất nhiều thơng tin cần được
bảo mật cao hơn bởi tính kinh tế, tính chính xác và tính tin cậy của nó.
Bên cạnh đó, các hình thức phá hoại mạng cũng trở nên tinh vi và phức tạp hơn.
Do đó đối với mỗi hệ thống, nhiệm vụ bảo mật được đặt ra cho người quản trị mạng là
hết sức quan trọng và cần thiết. Xuất phát từ những thực tế đó, chúng ta sẽ tìm hiểu về
các cách tấn cơng phổ biến nhất hiện nay và các phịng chống các loại tấn cơng này.
Chính vì vậy, thơng qua việc nghiên cứu một số phương pháp tấn công và cách
bảo mật các loại tấn công này, mình mong muốn góp một phần nhỏ vào việc nghiên cứu
và tìm hiểu về các vấn đề an ninh mạng giúp cho việc học tập và nghiên cứu.
1. Lý do chọn đề tài
Trong những năm gần đây, Việt Nam ngày càng phát triển và nhất là về mặt công
nghệ thông tin. Đặc biệt là về ứng dụng web, hầu như mọi người ai cũng từng nghe và
làm việc trên ứng dụng web. Website trở nên phổ biến và trở thành một phần quan trọng
của mọi người và nhất là các doanh nghiệp, cơng ty. Bên cạnh đó lý do an tồn bảo mật
cho ứng dụng web ln là vấn đề nan giải của mọi người.Vì vậy chúng ta sẽ đi tìm hiểu
ứng dụng web và cách thức tấn cơng và bảo mật web.
2. Mục tiêu
Giúp chúng ta có thể hiểu hơn về các ứng dụng website, các mối đe dọa về vấn
đề an tồn thơng tin khi chúng ta làm việc trên ứng dụng web hàng ngày, hiểu rõ hơn về
các kỹ thuật tấn công và bảo mật web.
3. Phạm vi


Tìm hiểu các kỹ thuật tấn cơng phổ biến nhất hiện nay như SQL Injection,
Denial Of Service, Local Attack,…Cách bảo mật, phịng thủ các loại tấn cơng phổ biến
trên một cách tổng quan nhất.



Mục lục
CHƯƠNG 1 ......................................................................................................................... 4
TỔNG QUAN VỀ WEBSITE, CÁC DỊCH VỤ CỦA WEBSITE VÀ LỖI BẢO MẬT
THÔNG DỤNG ................................................................................................................... 4
1.1. Mô tả Website và cách hoạt động ............................................................................. 4
1.2. Các dịch vụ và ứng dụng trên nền web ..................................................................... 5
CHƯƠNG 2 ......................................................................................................................... 7
CÁC LOẠI TẤN CÔNG VÀ BẢO MẬT ỨNG DỤNG WEB PHỔ BIẾN ....................... 7
I.

Footprinting ............................................................................................................... 7
1. Phạm trù của Footprinting ..................................................................................... 7
2. Phương pháp thu thập thông tin ............................................................................. 8
3. Phương pháp cạnh tranh thông minh ..................................................................... 9
4. Phương pháp liệt kê DNS .................................................................................... 10
5. “System Hacking”. ............................................................................................... 10
6. Whois và ARIN Lookups..................................................................................... 11
7. Tìm kiểm vùng địa chỉ mạng (network address range) ....................................... 14
8. Sự khác biệt của các loại bảng ghi DNS (DNS Record)...................................... 15
9. Sử dụng traceroute trong kỹ thuật FootPrinting .................................................. 15
10.

Theo dõi email (E-mail Tracking) .................................................................... 16

11.

Thu thập thông tin qua Web (Web Spiders) ..................................................... 16

II. Các dạng tấn công ..................................................................................................... 17

2.1. Tấn công SQL injection ....................................................................................... 17
2.2. Cross Site Scripting (XSS) .................................................................................. 34
2.3. Local Attack ......................................................................................................... 38
2.4. Tấn công từ chối dịch vụ - (Denial Of Service) .................................................. 49
CHƯƠNG 3 ....................................................................................................................... 70
DEMO TẤN CÔNG WEBSITE CƠ BẢN ....................................................................... 70


CHƯƠNG 1

TỔNG QUAN VỀ WEBSITE, CÁC DỊCH VỤ CỦA WEBSITE VÀ LỖI
BẢO MẬT THƠNG DỤNG
1.1. Mơ tả Website và cách hoạt động
Website là một “trang web” trên mạng Internet, đây là nơi giới thiệu những thơng
tin, hình ảnh về doanh nghiệp và sản phẩm, dịch vụ của doanh nghiệp (hay giới thiệu bất
cứ thơng tin gì) để khách hàng có thể truy cập ở bất kỳ nơi đâu, bất cứ lúc nào.
Website là tập hợp nhiều trang [web page]. Khi doanh nghiệp xây dựng website
nghĩa là đang xây dựng nhiều trang thông tin, catalog sản phẩm, dịch vụ....Để tạo nên
một website cần phải có 3 yếu tố cơ bản:
 Cần phải có tên miền (domain).
 Nơi lưu trữ website (hosting).
 Nội dung các trang thông tin [web page].
Một số thuật ngữ cơ bản:
Website động (Dynamic website) là website có cơ sở dữ liệu, được cung cấp công
cụ quản lý website (Admin Tool). Đặc điểm của website động là tính linh hoạt và có thể
cập nhật thơng tin thường xun, quản lý các thành phần trên website dễ dàng. Loại
website này thường được viết bằng các ngơn ngữ lập trình như PHP, Asp.net, JSP,
Perl,..., quản trị Cơ sở dữ liệu bằng SQL hoặc MySQL...
Website tĩnh do lập trình bằng ngơn ngữ HTML theo từng trang như brochure,
khơng có cơ sở dữ liệu và khơng có cơng cụ quản lý thơng tin trên website. Thông

thường website tĩnh được thiết kế bằng các phần mềm như FrontPage, Dreamwaver,...
Đặc điểm của website tĩnh là ít thay đổi nội dung, sự thay đổi nội dung này thường liên
quan đến sự thay đổi các văn bản đi kèm thể hiện nội dung trên đó.


Hiện nay, hầu hết các doanh nghiệp đều sử dụng website động, thế hệ công nghệ
website được mọi người biết đến là web 2.0.
- Tên miền (domain): Tên miền chính là địa chỉ website, trên internet chỉ tồn tại
duy nhất một địa chỉ (tức là tồn tại duy nhất một tên miền). Có 2 loại tên miền:
- Tên miền Quốc tế: là tên miền có dạng .com; .net; .org; .biz; .name ...
- Tên miền Việt Nam: là tên miền có dạng .vn; .com.vn; .net.vn; org.vn; .gov.vn;...
- Lưu trữ website: Dữ liệu thông tin của website phải được lưu trữ trên một máy
tính (máy chủ - server) ln hoạt động và kết nối với mạng Internet. Một server có thể
lưu trữ nhiều website, nếu server này bị sự cố chẳng hạn tắt trong một thời điểm nào đó
thì khơng ai có thể truy cập được những website lưu trữ trên server tại thời điểm bị sự cố.
- Tùy theo nhu cầu lưu trữ thơng tin mà doanh nghiệp có thể th dung lượng thích hợp
cho website [thuê dung lượng host].
- Dung lượng host: Là nơi để lưu cơ sở trữ dữ liệu của website (hình ảnh, thơng tin
…), đơn vị đo dung lượng thường là Mb hoặc Gb.
- Băng thông hay dung lượng đường truyền truyền: Là tổng số Mb dữ liệu tải lên
máy chủ hoặc tải về từ máy chủ (download, upload) nơi đặt website, đơn vị đo thông
thường là Mb/Tháng.
1.2. Các dịch vụ và ứng dụng trên nền web
Với công nghệ hiện nay, website không chỉ đơn giản là một trang tin cung
cấp các tin bài đơn giản. Những ứng dụng viết trên nền web không chỉ được gọi là một
phần của website nữa, giờ đây chúng được gọi là phần mềm viết trên nền web.
Có rất nhiều phần mềm chạy trên nền web như Google word (xử lý văn bản),
Google spreadsheets (xử lý bảng tính), Email ,…
Một số ưu điểm của phần mềm hay ứng dụng chạy trên nền web:



Mọi người đều có trình duyệt và bạn chỉ cần trình duyệt để chạy phần mềm.



Phần mềm ln ln được cập nhật vì chúng chạy trên server




Ln sẵn sàng 24/7



Dễ dàng backup dữ liệu thường xun



Có thể truy cập mọi lúc, mọi nơi, miễn là bạn có mạng



Chi phí triển khai cực rẻ so với phần mềm chạy trên desktop

Hãy hình dung bạn có một phần mềm quản lý bán hàng hay quản lý công việc ở
công ty. Không phải lúc nào bạn cũng ở công ty, với phần mềm viết trên nền web, bạn có
thể vào kiểm tra, điều hành ở bất cứ đâu, thậm chí bạn chỉ cần một chiếc điện thoại chạy
được trình duyệt như IPhone mà không cần đến một chiếc máy tính.



CHƯƠNG 2

CÁC LOẠI TẤN CÔNG VÀ BẢO MẬT ỨNG DỤNG WEB PHỔ BIẾN

I.

Footprinting

Để bắt đầu tấn công hệ thống, bạn cần thực hiện 3 bước: In dấu chân, Quét, Liệt
kê. Trước khi đi vào trò đùa thật sự, bạn hãy hiểu sơ lược các công việc này. Cụ thể bây
giờ chúng ta sẽ tìm hiểu về kỹ thuật in dấu chân (footprint).
Ví dụ một tên cướp muốn đánh cướp ngân hàng, chúng khơng thể bước vào và địi
tiền, mà chúng sẽ dốc sức thăm do các thông tin từ ngân hàng đó. Thơng tin mà hắn thu
thập có thể là tuyền đường mà xe bọc thép đi qua, giờ phân phát, số thủ quỹ, và những
thông tin khác giúp phi vụ thành công.
Yêu cầu trên cũng áp dụng cho một kẽ tấn công trên mạng. Chúng phải ra sức thu
thập càng nhiều thơng tin càng tốt về mọi góc cạnh bảo mật của tổ chức. Kết quả thu
được sẽ giúp cuộc tấn cơng trót lọt hơn. Bằng cách dị theo dấu chân, những bộ lưu trữ
trên internet, truy cập từ xa, cùngvới sự hiện diện của internet kẽ tấn công có thể góp nhặt
một cách có hệ thống các thơng tin từ nhiều nguồn khác nhau về một tổ chức nào
đó.FootPrinting là gì ?
Footprinting là một phần của giai đoạn tấn cơng có chuẩn bị trước và bao gồm
việc tích lũy dữ liệu về môi trường của một mục tiêu và kiến trúc, thơng thường với mục
đích tìm cách để xâm nhập vào mơi trường đó.Footprinting có thể tiết lộ các lỗ hổng hệ
thống và xác định dễ dàng mà chúng có thể được khai thác. Đây là cách dễ nhất cho các
hacker để thu thập thông tin về những hệ thống máy tính và các cơng ty mà họ thuộc
về. Mục đích của giai đoạn chuẩn bị này là để tìm hiểu càng nhiều càng tốt như bạn có
thể về một hệ thống, khả năng truy cập từ xa của nó, port và dịch vụ của mình, và bất
kỳ khía cạnh cụ thể về bảo mật của nó.
1. Phạm trù của Footprinting

Footprinting được định nghĩa như những quá trình tạo ra một kế hoạch chi
tiết hoặc bản đồ về hệ thống mạng của một tổ chức nào đó. Thu thập thông tin được biết
đến như là footprinting một tổ chức. Footprinting bắt đầu bằng cách xác định mục tiêu hệ
thống, ứng dụng, hoặc vị trí vật lý của mục tiêu. Một thông tin được biết đến, thông tin cụ
thể về tổ chức được thu thập bằng cách sử dụng phương pháp khơng xâm nhập. Ví
dụ, trang web riêng của tổ chức có thể cung cấp một thư mục nhân viên hoặc danh sách
các bios nhân viên, cái mà có thể hữu ích nếu hacker cần sử dụng một cuộc tấn công kỹ
thuật xã hội để đạt được mục tiêu.
Một hacker có thể dùng Google search hoặc Yahoo! People tìm kiếm để xác định
vị trí thơng tin về những người nhân viên.


Google search engine có thể được sử dụng một cách sáng tạo để thực hiện việc
tổng hợp thông tin. Việc sử dụng về Google searh engine để lấy thông tin được gọi là
Google hacking. có thể được sử dụng để tìm kiếm Google
newsgroup.
Blog, new groups, báo chí…là những nơi tốt nhất để tìm kiếm thơng tin cơng ty
hay nhân viên. Các cơng ty tuyển dụng có thể cung cấp thông tin như những loại máy chủ
hoặc thiết bị cơ sở hạ tầng một công ty đang sử dụng.
Các thông tin khác thu được có thể bao gồm sự xác định về các công nghệ Internet
đang được sử dụng, hệ điều hành và phần cứng đang được sử dụng, hoạt động địa chỉ IP,
địa chỉ e-mail và số điện thoại, và tập đồn chính sách và thủ tục.
Note: Thơng thường, một hacker dùng 90% thời gian hồ sơ và tập hợp thông tin
trên một mục tiêu và 10% thời gian tiến hành việc tấn công.
2. Phương pháp thu thập thông tin
Tổng hợp thơng tin có thể được thực hiện trong 7 bước như trong mơ tả của hình
2.1 Q trình footprinting được thực hiện trong 2 bước đầu tiên của việc khám phá thông
tin ban đầu và định vị phạm vi mạng.
Note: Những bước tổng hợp thông tin khác được nằm ở chương 3, “Scanning and
Enumeration”.

Một số nguồn thông thường được sử dụng để thu thập thông tin bao gồm sau đây:
·Domain name lookup
· Whois
· Nslookup
· Sam Spade


Hình 2.1: B bước của việc tổng hợp thơng tin
Bảy
Trước khi chúng ta thảo lu những công cụ này, Hãy nhớ rằng thơng tin ngu
o luận
ng
nguồn
mở có thể mang lại sự giàu có c thơng tin về một mục tiêu, ví dụ như nh
của
những số điện
thoại và địa chỉ. Thực hiện nhữ yêu cầu của Whois, tìm kiếm trong bảng Domain
ững
ng
Name System (DNS). Hầu hết thông tin này là d dàng có được và hợp pháp đ có được.
t
dễ
p
để
Chi tiết về cách hoạt độ DNS và cụ thể của bản dịch DNS là ngoài ph vi của
ộng
ch
phạm
cuốn sách này và sẽ không đượ thảo luận chi tiết. Duy nhất chi tiết quan trong nh liên
ợc

t
nhất
quan cụ thể tới thông tin được n trong cuốn sách này. Đó là khuyến cáo r
c nằm
n
rằng tất cả các
ứng cử viên CEH có một sự hi biết về DNS và cách phân tên công việc trên Internet.
hiểu
c
Hacking tool
Sam Spade ( là một website có chứa một b sưu tập về
)
t bộ
những công cụ như Whois, nslookup, và traceroute. B vì chúng được xác đ
Bởi
c
định vị trí
trên 1 website, những cơng cụ làm việc cho vài hệ điều hành này và là đơn v trí để cung
u
vị
cấp thông tin về 1 mục tiêu tổ chức.
3. Phương pháp cạnh tranh thơng minh
nh
Cạnh tranh thơng minh có ngh là thu thập thông tin về sản phẩm c người cạnh
nh
nghĩa
m của
tranh, marketing, và những công ngh Hầu hết các cuộc cạnh tranh thông minh là không
ng
nghệ.

nh
xâm nhập đến công ty đang đư điều tra và đang được bắt đầu trong tự nhiên, nó đư
n
được
được
sử dụng để so sánh sản phẩm ho như bán hàng và chiến thuật marketing đ hiểu rõ hơn
m hoặc
t
để
cách mà những đối thủ cạnh tranh đang đ
nh
định vị sản phẩm và những dịch vụ của họ. Một

vài cơng cụ tồn tại cho mục đích t
c
tổng hợp những cuộc cạnh tranh thơng minh và có th
thể
được sử dụng bởi những hacker đ thu thập thông tin về 1 mục tiêu tiềm ẩn nào đó.
ng
để
n


4. Phương pháp liệt kê DNS
t
NSlookup, DNSstuff, the American Registry for Internet Number (ARIN), và
Whois có thể được sử dụng tất c để đạt được thơng tin mà kế đó được sử dụng để thực
t cả
hiện DNS enumeration.
Nslookup and DNSstuff

Một công cụ mạnh mẽ b n nên làm quen là nslookup (xem hình 2.2). Cơng c này
bạn
cụ
truy vấn những DNS server để tìm thơng tin. Nó được cài đặt trong Unix, Linux, và h

t
hệ
đều hành Window. Công cụ hack Sam Spade bao g
gồm những cơng cụ nslookup.

Hình 2.2 Nslookup
Ngồi việc tìm thơng tin t
c
tổng hợp từ Whois, bạn có thể sử dụng nslookup đ tìm
ng
để
bổ sung địa chỉ IP cho những máy ch và những host khác. Sử dụng tên máy ch có thẩm
ng
chủ
ng
chủ
quyền thơng tin từ Whois (AUTH1.NS.NYI.NET), b cần nhận ra địa chỉ IP của mail
bạn

server.
Sự bùng nổ của việc sử dụng thành thạo các công cụ đã làm quá trình hack th sự

ã
thật
dễ dàng, nếu như bạn biết nhữ công cụ nào để sử dụng. DNSstuff là một cơng c khác

ững
t
cụ
của những cơng cụ đó. Thay vì s dụng dịng lệnh cơng cụ nslookup với nh
sử
i những thiết bị
chuyển mạch cồng kềnh của nó đ tổng hợp việc ghi thông tin DNS, chỉ cầ truy cập
a
để
ần
website và bạn có thể làm một DNS record search online, hình
,
t
2.3 cho thấy một ví dụ DNS record search trên s
sử
dụng DNSstuff.com.
Những cuộc tìm kiếm ti lộ tất cả những bí danh kỷ lục
m tiết
về và đ chỉ IP của web server. Bạn thậm chí có th khám phá
địa
m
thể
tất cả tên server và liên quan đ chỉ IP.
địa
Note: Việc khai thác có s tới bạn bởi vì bạn có thơng tin này được th luận
c
sẵn
c thảo
trong chương.
5. “System Hacking”.



Hình 2.3 Bảng gh DNS tìm kiếm về địa chỉ
ng ghi
6. Whois và ARIN Lookups
Whois đã phát triển từ h điều hành Unix, nhưng nó bây giờ có thể được tìm thấy
hệ
trong nhiều hệ điều hành khác như trong hacking toolkits và trên Internet. Ngư xác định
u
trên
Người
công cụ này phải đăng ký tên mi sử dụng cho email hoặc website. Uniform Resource
ên miền
Locator (URL), ví dụ www.Microsoft.com chứa tên miền (Microsoft.com) và 1 tên host
www.Microsoft.com,
hoặc bí danh(www).
Internet Corporation for Asigned Names and Numbers (ICANN) yêu c đăng ký
ternet
cầu
tên miền để bảo đảm rằng chỉ có một cơng ty duy nhất sử dụng tên miền cụ thể đó. Cơng

cụ Whois truy vấn việc đăng ký c sở dữ liệu để lấy thông tin liên lạc về cá nhân ho tổ
c

hoặc
chức đăng ký tên miền đó.
Hacking tool
Whois thơng minh là 1 chương tr
trình thu thập thơng tin cho phép bạ tìm tất cả
ạn

thông tin giá trị về một địa chỉ IP, host name, hoặc domain, bao gồm đất nư gồm có

t nước,
làng, tỉnh, thành phố, tên của ngư cung cấp mạng, administrator, và hỗ tr kỹ thuật địa
a người
trợ
chỉ thông tin. Whois thông minh là 1 phiên b đồ họa của chương trình Whois c sở.
bản
ình

ARIN là một cơ sở dữ li của thông tin bao gồm những thông tin như ch sở hữu
liệu
ng
chủ
của địa chỉ IP tĩnh. Cơ sở dữ li ARIN có thể được truy vấn việc sử dụng cơng c
liệu
ng
cụ
Whois, ví dụ một vị trí tại /> />Hình 2.4 cho thấy một ARIN Whois tìm ki đến Chú ý
t
kiếm
.
những địa chỉ, những e-mail, và thông tin liên h được chứa tất cả trong kế quả tìm kiếm
ail,
hệ
ết
Whois này. Thơng tin này có th được sử dụng bởi một hacker đạo đức, tìm ra ng
thể
c,
người chịu

trách nhiệm cho một địa chỉ IP nh định và những tổ chức sở hữu mục tiêu h thống,
nhất
c
hệ
hoặc có thể được sử dụng bởi m hacker độc hại, thực hiên một cuộc tấn công k thuật
i một
n
kỹ


mang tính tổ chức xã hội lần n Bạn cần được nhận thức về thơng tin có s để tự do
n nữa.
sẵn
tìm kiếm cơ sở dữ liệu ARIN và đ bảo một hacker độc hại không thể sử dụng thông tin
u
đảm

này để khởi động một cuộc tấn cơng m
n
mạng.

Hình 2.4 ARIN k quả ra cho
kết
Phân tích kết quả của Whois
a
Một cách thơng thường đ chạy chương trình Whois là kết nối tới website (ví
ng để
i
dụ www.networksolutions.com và tiến hành tìm kiếm Whois. Sau đây là k quả của tìm
www.networksolutions.com)

m
kết
kiếm Whois cho site www.eccouncil.org
www.eccouncil.org:
Domain ID:D81180127
ID:D81180127-LROR
Domain Name:ECCOUNCIL.ORG
Created On:14-Dec-2001 10:13:06 UTC
2001
Last Updated On:19-Aug
Aug-2004 03:49:53 UTC


Expiration Date:14-Dec-2006 10:13:06 UTC
Sponsoring Registrar:Tucows Inc. (R11-LROR)
Status:OK
Registrant ID:tuTv2ItRZBMNd4lA
Registrant Name: John Smith
Registrant Organization:International Council of E-Commerce Consultants
Registrant Street1:67 Wall Street, 22nd Floor
Registrant Street2:
Registrant Street3:
Registrant City:New York
Registrant State/Province:NY
Registrant Postal Code:10005-3198
Registrant Country:US
Registrant Phone:+1.2127098253
Registrant Phone Ext.:
Registrant FAX:+1.2129432300
Registrant FAX Ext.:

Registrant Email:
Admin ID:tus9DYvpp5mrbLNd
Admin Name: Susan Johnson
Admin Organization:International Council of E-Commerce Consultants
Admin Street1:67 Wall Street, 22nd Floor
Admin Street2:
Admin Street3:
Admin City:New York
Admin State/Province:NY
Admin Postal Code:10005-3198
Admin Country:US
Admin Phone:+1.2127098253
Admin Phone Ext.:
Admin FAX:+1.2129432300


Admin FAX Ext.:
Admin Email:
Tech ID:tuE1cgAfi1VnFkpu
Tech Name:Jacob Eckel
Tech Organization:International Council of E-Commerce Consultants
Tech Street1:67 Wall Street, 22nd Floor
Tech Street2:
Tech Street3:
Tech City:New York
Tech State/Province:NY
Tech Postal Code:10005-3198
Tech Country:US
Tech Phone:+1.2127098253
Tech Phone Ext.:

Tech FAX:+1.2129432300
Tech FAX Ext.:
Tech Email:
Name Server: ns1.xyz.net
Name Server: ns2.xyz.net
Note: Những tên liên lạc và tên server trong sách này đã được thay đổi.
Chú ý 4 dịng được tơ đậm. Đầu tiên chỉ ra mục tiêu công ty hoặc người (tốt như
những địa chỉ vật lý của họ, địa chỉ e-mail, số điện thoại, và hơn thế). Tiếp theo chỉ ra
administrator hoặc technical contact ( và thơng tin liên lạc của họ). Hai dịng in đậm cuối
cùng cho thấy những tên của domain name servers.
7. Tìm kiểm vùng địa chỉ mạng (network address range)
Mỗi hacker cần hiểu làm thế nào để tìm vùng địa chỉ mạng và subnet mask của hệ
thống đích. Địa chỉ IP được sử dụng để xác định vị trí, scan, và kết nối đến hệ thống đích.
Bạn có thể tìm địa chỉ IP đăng ký trên internet với ARIN hoặc với IANA(Internet
Asigned Numbers Authority).
Hacker cũng cần phài tìm ra bảng đồ đường đi của hệ thống mạng mục tiêu.
Nhiệm vụ này có thể thực hiện bằng cách gửi những gói tin thăm dò (bằng giao thức
ICMP) đến địa chỉ IP đích. Bạn có thể sử dụng cơng cụ như Traceroute, VisualRouter và
NeoTrace cho công việc này.


Ngồi ra, khơng chỉ có thơng tin mạng đích, những thơng tin khác cũng trở nên có
giá trị. Ví dụ nhưng những địa chỉ mà hệ thống mạng này vừa truyền nhận gói tin, địa chỉ
gateway…Nó sẽ có tác dụng trong một tiến trình tấn cơng khác.
8. Sự khác biệt của các loại bảng ghi DNS (DNS Record)
Dưới đây là các loại bảng ghi DNS mà chúng ta thường gặp. Việc nghiên cứu nó
sẽ giúp chúng ta phân biệt rõ server mà chúng ta đang tìm có chức năng gì.
· A (address): Ánh xạ hostname thành địa chỉ IP.
·SOA (Start of Authoriy): Xác định bảng ghi thông tin của DNS Server.
· CNAME (canonical name): Cung cấp những tên biệt danh (alias) cho tên miền

đang có.
·MX (mail exchange): Xác định mail server cho domain
·SRV (service): Xác định những dịch vụ như những directory service
·PTR (pointer): Ánh xạ địa chỉ ip thành hostname
·NS (name server): Xác định Name Server khác cho domain
9. Sử dụng traceroute trong kỹ thuật FootPrinting
Traceroute là gói cơng cụ được cài đặt sẵn trong hầu hết các hệ điều hành. Chức
năng của nó là gửi một gói tin ICME Echo đến mỗi hop (router hoặc gateway), cho đến
khi đến được đích. Khi gói tin ICMP gửi qua mỗi router, trường thời gian sống (Time To
Live – TTL) được trừ đi xuống một mức. Chúng ta có thể đếm được có bao nhiêu Hop
mà gói tin này đã đi qua, tức là để đến được đích phải qua bao nhiêu router. Ngoài ra,
chúng ta sẽ thu được kết qua là những router mà gói tin đã đi qua.
Một vấn đề lớn khi sử dụng Traceroute là hết thời gian đợi (time out), khi gói tin
đi qua tường lửa hoặc router có chức năng lọc gói tin. Mặc dù tường lửa sẽ chặn đứng
việc gói tin ICMP đi qua, nhưng nó vẫn gửi cho hacker một thơng báo cho biết sự hiện
diện này, kế đến vài kỹ thuật vượt tường lửa có thể được sử dụng.
Note: những phương pháp kỹ thuật này là phần của tấn công hệ thống, chúng ta sẽ
được thảo luận trong chương 4: “System hacking”.
Sam Spade và nhiều công cụ hack khác bao gồm 1 phiên bản của traceroute.
Những hệ điều hành Window sử dụng cú pháp tracert hostname để xác định một
traceroute. Hình 2.5 là một ví dụ về traceroute hiển thị việc theo dõi theowww.yahoo.com
Chú ý trong hình 2.5, đầu tiên sẽ có một quá trình phân giải tên miền để tìm kiếm
địa chỉ cho Yahoo Web Server, và địa chỉ ip của server được tìm thấy là 68.142.226.42.
Biết địa chỉ IP này cho phép hacker thực hiện q trình qt tồn bộ hệ thống phục vụ
cho công việc tấn công. Chúng ta sẽ tìm hiểu về các cơng nghệ qt (Scan) trong chương
tiếp theo.


Hình 2.5 K quả của Traceroute cho www.yahoo.com
Kết

Hacking tools
Neo trace, Visualroute, và VisualLookout là nh
những cơng cụ có giao di đồ họa
diện
thực hiện chức năng Traceroute. S dụng công cụ này chúng ta có thể xác đ
Sử
định vị trí của
các router và thiết bị mạng khác. Ngồi ra, nó cịn xác định nhiều thông tin t
ng
u
tổng hợp
khác. Chúng cung cấp một giao di trực quan cho kết quả.
t
diện
10. Theo dõi email (E-mail Tracking)
mail
E-mail–tracking là chương tr
tracking
trình cho phép người gửi biết được những vi đã làm
ng việc
của người nhận như reads, forwards, modifies, hay deletes. H hết các chương tr
n
Hầu t
trình Email–tracking hoạt động tại server c tên miền email. Một file đồ họa đơn bit đư sử
i
của
a
được
dụng để đính kèm vào email g cho người nhận, nhưng file này sẽ không đư đọc. Khi
nh

gửi
được
một hành động tác động vảo email, file đính kèm đó s gửi thơng tin lại cho server cho
o
sẽ
i
biết hành động của server. Bạn thư
n thường thấy những file này đính kèm vào email v cái
ng
với
tên quen thuộc như noname, noread...
c
Hacking tool
Emailtracking pro và mailtracking.com là nh
những công cụ giúp hacker th hiện
thực
chức năng theo dõi email. Khi s dụng công cụ, tất cả những hoạt động như g mail, trả
õi
sử
ng
gửi
lời, chuyển tiếp, sửa mail đều đư gửi đến người quản lý. Người gửi sẽ nh được
u được
nhận
những thông báo này một cách t động.
t
tự
11. Thu thập thông tin qua Web (Web Spiders)
p
Web Spoder là công ngh thu thập những thông tin từ internet. Đây là cách

nghệ
là spammerhoặc bất ai quan tâm đ email dùng để thu thập danh sách ema hữu
t
đến
p
email
dụng. Web Spider sử dụng nhữ cứu pháp, ví dụ như biểu tượng @, để xác đ
ững
định
email hay, kế đến sao chép chúng vào cơ s dữ liệu. Dữ liệu này được thu th để
n
sở
c
thập
phục vụ cho một mục đích khác. Hacker có th sử dụng Web Spider để tổng h
c
thể
ng hợp


các loại thơng tin trên internet. Có một phương pháp để ngăn chặn Spider là thêm
file robots.txt trong thưc mục gốc của website với nội dung là danh sách các thư
mục cần sự bảo vệ. Bạn sẽ tìm hiểu chủ đề này trong phần nói về Web Hacking.
Hacking tool
1st email address spider và SpiderFoot là công cụ cho phép chúng ta thu thập
email từ website theo những tên miền khác nhau. Những spammer sử dụng công cụ này
để tiến hành thu thập hàng loạt email, phục vụ cho mục đích spam của họ.
II. Các dạng tấn công
2.1. Tấn công SQL injection
2. 1.1. SQL Injection là gì?

Khi triển khai các ứng dụng web trên Internet, nhiều người vẫn nghĩ rằng việc đảm
bảo an toàn, bảo mật nhằm giảm thiểu tối đa khả năng bị tấn công từ các tin tặc chỉ đơn
thuần tập trung vào các vấn đề như chọn hệ điều hành, hệ quản trị cơ sở dữ liệu,
webserver sẽ chạy ứng dụng, ... mà quên mất ằng ngay cả bản thân ứng dụng chạy trên đó
cũng tiềm ẩn một lỗ hổng bảo mật rất lớn. Một trong số các lỗ hổng này đó là SQL
injection. Tại Việt Nam, đã qua thời kì các quản trị website lơ là việc quét virus, cập nhật
các bản vá lỗi từ các phần mềm hệ thống, nhưng việc chăm sóc các lỗi của các ứng dụng
lại rất ít được quan tâm. Đó là lí do tại sao trong thời gian vừa qua, khơng ít website tại
Việt Nam bị tấn công và đa số đều là lỗi SQL injection. Vậy SQL injection là gì ?
- SQL injection là một kĩ thuật cho phép những kẻ tấn công lợi dụng lỗ hổng
trong việc kiểm tra dữ liệu nhập trong các ứng dụng web và các thông báo lỗi của hệ
quản trị cơ sở dữ liệu để "tiêm vào" (inject) và thi hành các câu lệnh SQL bất hợp pháp
(không được người phát triển ứng dụng lường trước). Hậu quả của nó rất tai hại vì nó cho
phép những kẻ tấn cơng có thể thực hiện các thao tác xóa, hiệu chỉnh, … do có tồn
quyền trên cơ sở dữ liệu của ứng dụng, thậm chí là server mà ứng dụng đó đang chạy. Lỗi
này thường xảy ra trên các ứng dụng web có dữ liệu được quản lí bằng các hệ quản trị cơ
sở dữ liệu như SQL Server, MySQL, Oracle, DB2, Sysbase.


2. 1.2. Các Dạng Tấn Cơng SQL Injection
- Có bốn dạng thông thường bao gồm: vượt qua kiểm tra lúc đăng nhập
(authorization bypass), sử dụng câu lện SELECT, sử dụng câu lệnh INSERT, sử dụng các
stored-procedures.
- Để biết các website bán hàng sử dụng CSDL SQL ta sử dụng các soft hoặc các
cơng cụ tìm lỗi.Hoặc các cơng cụ tìm kiếm như Google.Và dùng các Dork tìm kiếm như :
inurl : product.php?id=

Hình 11. Một tools tìm site lỗi Online

- Để biết website nào dính lỗi SQL Injection ta thêm dấu “ ’ ” vào sau thanh địa

chỉ. Ví dụ : />

Hình 12. Một site bị lỗi SQL Injection
i. Dạng tấn công vượt qua kiểm tra đăng nhập
- Với dạng tấn cơng này, tin tặc có thể dễ dàng vượt qua các trang đăng nhập
nhờ vào lỗi khi dùng các câu lệnh SQL thao tác trên cơ sở dữ liệu của ứng dụng web.
Xét một ví dụ điển hình, thơng thường để cho phép người dùng truy cập vào các
trang web được bảo mật, hệ thống thường xây dựng trang đăng nhập để yêu cầu người
dùng nhập thông tin về tên đăng nhập và mật khẩu. Sau khi người dùng nhập thông tin
vào, hệ thống sẽ kiểm tra tên đăng nhập và mật khẩu có hợp lệ hay khơng để quyết định
cho phép hay từ chối thực hiện tiếp. Trong trường hợp này, người ta có thể dùng hai
trang, một trang HTML để hiển thị form nhập liệu và một trang ASP dùng để xử lí thơng
tin nhập từ phía người dùng. Ví dụ: login.htm
<form action="ExecLogin.asp" method="post">
Username: <input type="text" name="fUSRNAME">

Password: <input type="password" name="fPASSWORD">

<input type="submit">


</form>
execlogin.asp
<%
Dim vUsrName, vPassword, objRS, strSQL
vUsrName = Request.Form("fUSRNAME")
vPassword = Request.Form("fPASSWORD")
strSQL = "SELECT * FROM T_USERS " & _
"WHERE USR_NAME=' " & vUsrName & _
" ' and USR_PASSWORD=' " & vPassword & " ' "
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQL, "DSN=..."

If (objRS.EOF) Then
Response.Write "Invalid login."
Else
Response.Write "You are logged in as " & objRS("USR_NAME")
End If
Set objRS = Nothing
%>
- Thoạt nhìn, đoạn mã trong trang execlogin.asp dường như không chứa bất cứ
một lỗ hổng về an tồn nào. Người dùng khơng thể đăng nhập mà khơng có tên đăng
nhập và mật khẩu hợp lệ. Tuy nhiên, đoạn mã này thực sự khơng an tồn và là tiền đề cho
một lỗi SQL injection. Đặc biệt, chỗ sơ hở nằm ở chỗ dữ liệu nhập vào từ người dùng
được dùng để xây dựng trực tiếp câu lệnh SQL. Chính điều này cho phép những kẻ tấn
cơng có thể điều khiển câu truy vấn sẽ được thực hiện. Ví dụ, nếu người dùng nhập chuỗi


sau vào trong cả 2 ô nhập liệu username/password của trang login.htm là: ' OR ' ' = ' '.
Lúc này, câu truy vấn sẽ được gọi thực hiện là:
SELECT * FROM T_USERS WHERE USR_NAME ='' OR ''='' and
USR_PASSWORD= '' OR ''=''
- Câu truy vấn này là hợp lệ và sẽ trả về tất cả các bản ghi của T_USERS và
đoạn mã tiếp theo xử lí người dùng đăng nhập bất hợp pháp này như là người dùng đăng
nhập hợp lệ.
ii. Dạng tấn công sử dụng câu lệnh SELECT
- Dạng tấn công này phức tạp hơn. Để thực hiện được kiểu tấn cơng này, kẻ tấn
cơng phải có khả năng hiểu và lợi dụng các sơ hở trong các thông báo lỗi từ hệ thống để
dị tìm các điểm yếu khởi đầu cho việc tấn cơng. Xét một ví dụ rất thường gặp trong các
website về tin tức. Thông thường, sẽ có một trang nhận ID của tin cần hiển thị rồi sau
đó truy vấn nội dung của tin có ID này.
Ví dụ: . Mã nguồn cho
chức năng này thường được viết khá đơn giản theo dạng

<%
Dim vNewsID, objRS, strSQL
vNewsID = Request("ID")
strSQL = "SELECT * FROM T_NEWS WHERE NEWS_ID =" & vNewsID
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQL, "DSN=..."
Set objRS = Nothing
%>
- Trong các tình huống thơng thường, đoạn mã này hiển thị nội dung của tin có
ID trùng với ID đã chỉ định và hầu như khơng thấy có lỗi. Tuy nhiên, giống như ví dụ


đăng nhập ở trước, đoạn mã này để lộ sơ hở cho một lỗi SQL injection khác. Kẻ tấn cơng
có thể thay thế một ID hợp lệ bằng cách gán ID cho một giá trị khác, và từ đó, khởi đầu
cho một cuộc tấn cơng bất hợp pháp, ví dụ như: 0
OR 1=1 (nghĩa là, or 1=1).
- Câu truy vấn SQL lúc này sẽ trả về tất cả các article từ bảng dữ liệu vì nó sẽ
thực hiện câu lệnh:
SELECT * FROM T_NEWS WHERE NEWS_ID=0 or 1=1
- Một trường hợp khác, ví dụ như trang tìm kiếm. Trang này cho phép người
dùng nhập vào các thơng tin tìm kiếm như Họ, Tên, … Đoạn mã thường gặp là:
<%
Dim vAuthorName, objRS, strSQL
vAuthorName = Request("fAUTHOR_NAME")
strSQL = "SELECT * FROM T_AUTHORS WHERE AUTHOR_NAME =' " & _
vAuthorName & " ' "
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQL, "DSN=..."

Set objRS = Nothing

%>
- Tương tự như trên, tin tặc có thể lợi dụng sơ hở trong câu truy vấn SQL để
nhập vào trường tên tác giả bằng chuỗi giá trị:
' UNION SELECT ALL SELECT OtherField FROM OtherTable WHERE ' '='
- Lúc này, ngoài câu truy vấn đầu khơng thành cơng, chương trình sẽ thực hiện
thêm lệnh tiếp theo sau từ khóa UNION nữa.


- Tất nhiên các ví dụ nói trên, dường như khơng có gì nguy hiểm, nhưng hãy thử
tưởng tượng kẻ tấn cơng có thể xóa tồn bộ cơ sở dữ liệu bằng cách chèn vào các đoạn
lệnh nguy hiểm như lệnh DROP TABLE.
Ví dụ như: ' DROP TABLE T_AUTHORS -- Chắc các bạn sẽ thắc mắc là làm sao biết được ứng dụng web bị lỗi dạng này
được. Rất đơn giản, hãy nhập vào chuỗi (*) như trên, nếu hệ thống báo lỗi về cú pháp
dạng: Invalid object name “OtherTable”; ta có thể biết chắc là hệ thống đã thực hiện câu
SELECT sau từ khóa UNION, vì như vậy mới có thể trả về lỗi mà ta đã cố tình tạo ra
trong câu lệnh SELECT.
- Cũng sẽ có thắc mắc là làm thế nào có thể biết được tên của các bảng dữ liệu
mà thực hiện các thao tác phá hoại khi ứng dụng web bị lỗi SQL injection. Cũng rất đơn
giản, bởi vì trong SQL Server, có hai đối tượng là sysobjects và syscolumns cho phép liệt
kê tất cả các tên bảng và cột có trong hệ thống. Ta chỉ cần chỉnh lại câu lệnh SELECT, ví
dụ như:
' UNION SELECT name FROM sysobjects WHERE xtype = 'U' là có thể liệt kê
được tên tất cả các bảng dữ liệu.
iii. Dạng tấn công sử dụng câu lệnh INSERT
- Thông thường các ứng dụng web cho phép người dùng đăng kí một tài khoản
để tham gia. Chức năng không thể thiếu là sau khi đăng kí thành cơng, người dùng có thể
xem và hiệu chỉnh thơng tin của mình. SQL injection có thể được dùng khi hệ thống
khơng kiểm tra tính hợp lệ của thơng tin nhập vào.
Ví dụ, một câu lệnh INSERT có thể có cú pháp dạng:
INSERT INTO TableName VALUES('Value One','Value Two', 'Value Three').

Nếu đoạn mã xây dựng câu lệnh SQL có dạng :
<%
strSQL = "INSERT INTO TableName VALUES(' " & strValueOne & " ', ' " _


& strValueTwo & " ', ' " & strValueThree & " ') "
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQL, "DSN=..."

Set objRS = Nothing
%>
- Thì chắc chắn sẽ bị lỗi SQL injection, bởi vì nếu ta nhập vào trường thứ nhất ví
dụ như: ' + (SELECT TOP 1 FieldName FROM TableName) + '. Lúc này câu truy vấn sẽ
là: INSERT INTO TableName VALUES(' ' + (SELECT TOP 1 FieldName FROM
TableName) + ' ', 'abc', 'def'). Khi đó, lúc thực hiện lệnh xem thơng tin, xem như bạn đã
yêu cầu thực hiện thêm một lệnh nữa đó là: SELECT TOP 1 FieldName FROM
TableName
iiii. Dạng tấn công sử dụng stored-procedures
- Việc tấn công bằng stored-procedures sẽ gây tác hại rất lớn nếu ứng dụng được
thực thi với quyền quản trị hệ thống 'sa'.
- Ví dụ: nếu ta thay đoạn mã tiêm vào dạng: ' ; EXEC xp_cmdshell ‘cmd.exe dir
C: '.
- Lúc này hệ thống sẽ thực hiện lệnh liệt kê thư mục trên ổ đĩa C:\ cài đặt server.
- Việc phá hoại kiểu nào tuỳ thuộc vào câu lệnh đằng sau cmd.exe. Nếu cài SQL Server ở
chế độ mặc định thì SQL Server chạy trên nền SYSTEM, tương đương mức truy cập ở
Windows. Có thể dùng master..xp_cmdshell để thi hành lệnh từ xa:
; exec master..xp_cmdshell 'ping 10.10.1.2'-Thử dùng dấu nháy đôi (") nếu dấu nháy đơn (') không làm việc.
Dưới đây là một số extended stored procedure mà hacker thường hay sử dụng để
thực thi những câu lệnh xem nội dung thông tin trong máy nạn nhân:



Xp_availablemedia: Hiển thị những ổ đĩa hiện hành trên máy
Xp_dirtree: Hiển thị tất cả các thư mục kể cả thư mục con
Xp_loginconfig: Lấy thông tin về chế độ bảo mật trên server
Xp_makecab: Cho phép người sử dụng tạo các tập tin lưu trữ trên Server (hay bất
cứ tập tin nào mà server có thể truy xuất
Xp_ntsec_enumdomain: liệt kê những domain mà server có thể truy vấn.
Xp_terminate_process: chấm dứt một tiến trình với tham số PID của nó.
iiiii. Tấn cơng SQL Injection nâng cao.
• Chuỗi kí tự khơng có dấu nháy đơn:
- Những nhà lập trình có thể bảo vệ ứng dụng của họ bằng cách loại bỏ tất cả
dấu nháy, thông thường loại bỏ dấu nháy bằng cách thay một dấu nháy thành 2 dấu nháy.
Ví dụ a.1 :
function escape( input )
input = replace(input, "'", "''")
escape = input
end function

Rõ ràng là, nó ngăn chặn được tất cả những kiểu tấn công trên. Tuy nhiên nếu
muốn tạo ra một chuỗi giá trị mà khơng dùng các dấu nháy, có thể dùng hàm “char()”
như ví dụ sau:
Ví dụ a.2:
INSERT into User VALUES(666, char(0x63) +char(0x68)
+char(0x72) char(0x69) +char(0x73) ,char(0x63) +char(0x68)
+char(0x72) +char(0x69) +char(0x73),0xffff)


×