Professional Documents
Culture Documents
Baocao 5 12
Baocao 5 12
CHUYÊN ĐỀ CNTT
TÊN ĐỀ TÀI: TÌM HIỂU CÁC CÔNG CỤ KALI LINUX
(NMAP,SQLMAP,THC HYDRA)
LỜI CẢM ƠN
"Đầu tiên, nhóm xin gửi lời cảm ơn chân thành sâu sắc đến giảng viên hướng dẫn
chuyên đề Công Nghệ Thông Tin – Thầy Trần Hồ Đạt đã dạy dỗ tận tâm, truyền đạt những
kiến thức quý báu cho nhóm trong suốt thời gian học tập vừa qua. Trong thời gian tham gia
lớp học chuyên đề Công Nghệ Thông Tin của thầy, nhóm đã có thêm cho mình nhiều kiến
thức bổ ích về mạng, cách trình bày báo cáo. Đây chắc chắn sẽ là những kiến thức quý báu
và sẽ là hành trang để các thành viên trong nhóm có thể vững chắc mai sau này.
Chuyên đề Công Nghệ Thông Tin là môn học bồi dưỡng các khía cạch khác nhau về
mạng cho sinh viên, vô cùng bổ ích và có tính thực tế cao. Đảm bảo cung cấp đủ kiến thức,
gắn liền với nhu cầu thực tiễn của sinh viên khi làm về mạng và báo cáo trình bày về mạng.
Tuy nhiên, do vốn kiến thức còn nhiều hạn chế và khả năng tiếp thu thực tế còn nhiều bỡ
ngỡ. Mặc dù nhóm đã cố gắng hết sức nhưng chắc chắn bài báo cáo khó có thể tránh khỏi
những thiếu sót và nhiều chỗ còn chưa chính xác chưa phù hợp với thực tiễn, kính mong
thầy xem xét và góp ý để bài báo có của nhóm được hoàn thiện hơn.
Nhóm xin chân thành cảm ơn!”
ii
MỤC LỤC
CHƯƠNG 1: VẤN ĐỀ AN TOÀN THÔNG TIN TRONG NƯỚC VÀ THẾ GIỚI.........1
1.1 ATTT QUAN TRỌNG NHƯ THẾ NÀO........................................................................1
1.2 NHỮNG VỤ TẤN CÔNG MẠNG LÀM ẢNH HƯỞNG ĐẾN AN NINH, KINH TẾ
THẾ GIỚI VÀ TRONG NƯỚC NỔI BẬT..........................................................................1
1.2.1 Những vụ tấn công mạng làm ảnh hưởng đến an ninh, kinh tế thế giới..........................1
1.2.2. Những vụ tấn công mạng làm ảnh hưởng đến an ninh, kinh tế trong nước....................2
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT......................................................................................6
2.1 TÌM HIỂU VỀ NMAP......................................................................................................6
2.1.1 Giới thiệu về Nmap..........................................................................................................6
2.1.2 Cách thức hoạt động :......................................................................................................6
2.1.3 Tính năng của Nmap........................................................................................................6
2.1.4 Sử dụng Nmap:................................................................................................................6
2.2 Tìm hiểu về THC-Hydra................................................................................................13
2.2.1 Giới thiệu về Hydra.......................................................................................................13
2.2.2 Các chức năng có trong kỹ thuật...................................................................................13
2.2.3 Cài đặt công cụ hỗ trợ tấn công hydra...........................................................................14
2.3 TÌM HIỂU KỸ THUẬT SQLMAP...............................................................................14
2.3.1 Giới thiệu về Sqlmap.....................................................................................................14
2.3.2 Tính năng của Sqlmap...................................................................................................15
2.3.3 Các tham số có trong Sqlmap........................................................................................16
CHƯƠNG 3: TRIỂN KHAI HỆ THỐNG..........................................................................19
3.1 KỸ THUẬT NMAP........................................................................................................19
3.2. KỸ THUẬT THC-HYDRA...........................................................................................22
3.2.1 Phương pháp brute force of websites.............................................................................22
3.3 BIỆN PHÁP PHÒNG TRÁNH.....................................................................................26
3.2.1 Với người dùng..............................................................................................................26
3.2.2 Với người quản trị..........................................................................................................26
3.4 KỸ THUẬT SQLMAP...................................................................................................27
3.4.1 Cài đặt công cụ hỗ trợ tấn công Sqlmap........................................................................27
iii
Được biết, nguyên nhân là do một công ty marketing của ủy ban quốc gia đảng Cộng hòa đã
vô tình định sai cấu hình trong cấu hình bảo mật đám mây của Amazon. Song, vụ việc này
cũng làm dấy lên nhiều mối lo ngại cho rằng ngày càng có nhiều thông tin cá nhân quan
trọng có thể dễ dàng bị sử dụng cho các mục đích bất chính.
Tháng 6.2017, hàng loạt doanh nghiệp tại Ukraine báo cáo đã bị một loại mã độc có tên
NotPetya tấn công. Mã độc này sau đó lan sang các doanh nghiệp lớn trên toàn cầu bao gồm
FedEx, tập đoàn dầu khí khổng lồ của Nga Rosneft và hãng vận tải Đan Mạch Maersk.
Trong tháng 9.2017, FedEx ước tính thiệt hại gây ra bởi cuộc tấn công này lên tới 300 triệu
USD.
Tiếp theo, vào tháng 2, Cục dự trữ liên bang Mỹ cũng xác nhận bị tấn công bởi nhóm
Anonymous. Tin tặc đã tấn công vào một số website chính phủ, ăn cắp thông tin và đăng
hàng loạt thông tin nhạy cảm của 4.600 giám đốc điều hành ngân hàng.
Các dữ liệu bị xâm nhập và truy cập đều thuộc về Hệ thống truyền thông khẩn cấp
liên bang St. Louis. Hệ thống này được sử dụng bởi 17 bang trong thời kỳ khủng hoảng, cho
phép các tổ chức tài chính và nhân viên chính phủ bàn luận thông qua những kênh hai chiều.
Hoạt động tấn công đã làm lộ các chi tiết truy cập và cả thông tin các nhân như địa chỉ IP và
thông tin liên lạc ra công khai đúng vào lúc chính phủ Mỹ đang xem xét cải cách các điều
luật liên quan đến tội phạm mạng. Sau đó, Anonymous còn tiếp tục sử dụng các website
chính phủ để tiết lộ các thông tin đánh cắp.
1.2.2. Những vụ tấn công mạng làm ảnh hưởng đến an ninh, kinh tế trong nước
Website Vietnamnet đã trải qua nhiều sự cố trong năm qua. Vào đầu năm (4/1/2011),
một đợt tấn công từ chối dịch vụ nhắm vào Vietnamnet khiến trang web bị tắc nghẽn nhiều
giờ đồng hồ, gây khó khăn cho hàng triệu độc giả. Theo ông Bùi Bình Minh, Trợ lý Tổng
biên tập Vietnam về công nghệ, lượng truy cập tăng gấp 10 lần so với thông thường.
Kết quả điều tra cho thấy, các địa chỉ IP trong vụ tấn công xuất phát từ trong nước và quốc
tế, khiến việc ngăn chặn vụ tấn công gặp nhiều khó khăn. Nếu như các IP chỉ bắt nguồn từ
nước ngoài thì Vietnamnet chỉ cần chặn băng thông ra quốc tế. Vietnamnet sau đó đã chặn
các dải IP có lượng tấn công nhiều nhất, khiến băng thông được giãn ra tương đối, tuy nhiên
việc truy cập vẫn còn nhiều khó khăn. Ngày 15/8/2011, Vietnamnet cùng các chuyên trang
như “Tuần Việt Nam”, “Diễn đàn kinh tế Việt Nam” tiếp tục bị tấn công từ chối dịch vụ.
3
Vietnam đã liên kết với một số đơn vị như trung tâm VNCERT (Bộ Thông tin và Truyền
thông), VDC, VTC, Zing, CMC TI, CMC Infosec, FPT Telecom,…để giải quyết, tuy nhiên
đến ngày 1/10/2011 việc truy cập vào website này vẫn gặp nhiều khó khăn.
VNG.Thời gian: 2015 Ảnh hưởng đến: thông tin cá nhân của 160 triệu người dùng. Vào
ngày 26/4/2018, hơn 163 triệu tài khoản Zing ID bị phát hiện được rao bán trên một diễn đàn
nước ngoài. VNG xác nhận sự kiện này xảy ra từ năm 2015 nhưng đã không có hành động
công bố vụ việc. Các dữ liệu bị lộ bao gồm: mật khẩu, tên đăng nhập, mã game, email, số
điện thoại, họ tên đầy đủ, ngày sinh, địa chỉ, IP... Dữ liệu mật khẩu bị lộ được cộng đồng bảo
mật đánh giá đã được mã hóa khá sơ sài và dễ dàng bị giải mã bởi hacker.
Vietnam Airlines. Thời gian: tháng 7/2016 Ảnh hưởng đến: thông tin cá nhân của
411.000 người dùng; chiếm đoạt hệ thống thông báo sân bay. Chiều 29 tháng 7 năm 2016,
một số màn hình hiển thị thông tin chuyến bay của các Sân bay quốc tế Tân Sơn Nhất, Nội
Bài, Đà Nẵng, Sân bay Phú Quốc bị chèn những nội dung xúc phạm Việt Nam và
Philippines, xuyên tạc các nội dung về biển Đông. Website của Vietnam Airlines bị điều
hướng đến trang khác và tiết lộ dữ liệu của 411.000 thành viên Golden Lotus - phần lớn là
các lãnh đạo, quản lý cơ quan Nhà nước, ngân hàng, doanh nghiệp lớn... Những thông tin
trong file dữ liệu bao gồm họ tên, ngày sinh, địa chỉ thường trú, đơn vị làm việc, số điện
thoại, quốc tịch, ngày tham gia chương trình, điểm tích lũy, mật khẩu tài khoản GLP, và có
nguy cơ hacker giữ lại không công bố số thẻ tín dụng. Hơn 100 chuyến bay bị ảnh hưởng.
VCCorp. Thời gian: Tháng 10/2014 Ảnh hưởng đến: Nhiều website lớn của VCCorp
gồm Kênh14, Gamek, Genk, CafeF và một số website do VCCorp vận hành kỹ thuật như
Dân Trí, Soha, Người Lao Động… ngưng hoạt động. Trong khoảng 17-18/10, các website
thuộc sở hữu của VCCorp và các đối tác của công ty này liên tục không thể truy cập hoặc bị
chuyển hướng về trang blog “VCCorp tự truyện” với nhiều thông tin tiêu cực về VCCorp.
Báo Dantri và VnEconomy liên tiếp bị gián đoạn. Website giadinh.net.vn bị nghi ngờ bị
hacker xóa toàn bộ dữ liệu trên máy chủ. Sự cố đã gây thiệt hại cho VCCorp hàng chục tỷ
đồng và được coi là nghiêm trọng nhất từng xảy ra với VCCorp từ trước tới nay.
Bkav. Thời gian: Tháng 2/2012 Ảnh hưởng đến: Website bị deface, lộ hơn 100.000
địa chỉ email, mật khẩu diễn đàn, xuất hiện nhiều bài viết công kích. Vào 13/02/2012, nhóm
hacker tự nhận là “Anonymous/LulzSec Việt Nam” đã tấn công diễn đàn Bkav và công khai
4
toàn bộ cơ sở dữ liệu của diễn đàn bao gồm hơn 100.000 địa chỉ email và toàn bộ dữ liệu
cho đến tháng 02/2012. Ngày 24/02/2012, các hacker công bố 8 lỗi bảo mật nghiêm trọng
trong hệ thống website của công ty trên một trang blog. Tuy nhiên, đại diện từ Bkav đã
khẳng định thông tin về số lỗ hổng này là không chính xác và công ty này đã xác định được
đối tượng gây ra vụ hack
1.3 Các cách mà hacker xâm nhập vào hệ thống (rò rỉ thông tin cá nhân, mật khẩu, lừa người
dùng truy cập trái phép vào web, mã độc….)
Thông qua các website: với thủ đoạn này, các đối tượng sẽ tạo lập hoặc lợi dụng các
website có nội dung hấp dẫn thu hút người dùng, khi người dùng truy cập sẽ âm thầm cài
cắm mã độc vào máy tính và các thiết bị thông minh mà người dùng không hề hay biết để
thu thập thông tin. Ví dụ như: đính kèm các mã độc vào các trang game online, các trang
web có nội dung đồi trụy… hoặc đối tượng tạo ra các trang đăng nhập thông tin giả mạo
(facebook, email, bank). Những trang này sẽ được gửi qua email đến nạn nhân và chúng có
giao diện giống hệt với trang đăng nhập của các nhà cung cấp dịch vụ. Nếu nạn nhân mất
cảnh giác và thực hiện đăng nhập thông tin trên trang web đó, thông tin sẽ được gửi đến
hacker thay vì là các nhà cung cấp dịch vụ như họ nghĩ.
Thông qua phần mềm miễn phí trên mạng: với một số phần mềm được cung cấp miễn phí
trên mạng internet, đặc biệt là đối với những phầm mềm không rõ nguồn gốc, phần mềm bẻ
khóa, các đối tượng sẽ lợi dụng để cài cắm các mã độc đính kèm, khi người dùng tải về máy
và tiến hành cài đặt thì vô tình cài đặt mã độc lên chính thiết bị của mình. Và các mã độc này
sẽ tiến hành âm thầm thu thập thông tin cá nhân người dùng. Ví dụ: các chương trình crack,
patch phần mềm; một số phần mềm diệt virus giả mạo như AntivirusGold, Antivirus PC
2009, AntiSpyware Shield Pro, DoctorTrojan…
Thông qua hòm thư điện tử: các mẫu virus mới thường giả mạo địa chỉ email của cán bộ,
đồng nghiệp trong cơ quan để gửi file cho cán bộ khác bằng tiếng Việt với nội dung như liên
quan tiền lương, xin ý kiến, chương trình công tác… Kẻ xấu thường tìm hiểu kỹ tên tuổi,
chức vụ của người trong cơ quan trước khi tiến hành phát tán mã độc qua email.
Tấn công sử dụng USB, CD, DCD là vật trung gian: đây là các mã độc được viết riêng, có
chủ định, không bị các chương trình diệt vi rút phát hiện. Các mã độc này sử dụng USB, CD,
DCD làm vật trung gian. Đặc biệt, các đối tượng có thể cài cắm các mã độc này vào cả
5
những USB, CD, DCD mới, được bán trôi nổi trên thị trường. Khi các thiết bị lưu trữ này đã
nhiễm mã độc cắm vào máy tính, chúng tiến hành thu gom dữ liệu do các đối tượng quy
định (file tài liệu, file ảnh…), dữ liệu được nén và mã hóa trong các thư mục mà bình thường
không phát hiện được. Khi có điều kiện kết nối internet sẽ gửi ra máy chủ đặt ở nước ngoài.
Tấn công qua các thiết bị thông minh (IoT): đây là một thủ đoạn mới, các đối tượng
thường nhắm vào các thiết bị thông minh có kết nối internet như: Router wifi, camera an
ninh, điện thoại thông minh… Bằng việc tiến hành rà quét nhằm phát hiện và lợi dụng các lỗ
hổng an ninh phổ biến trên các thiết bị này như: sử dụng tài khoản và mật khẩu mặc định của
nhà sản xuất, không cập nhật các bản vá lỗi thường xuyên… Từ đó, cài cắm mã độc nhằm
theo dõi, thu thập dữ liệu, đe dọa hoặc tống tiền người dùng. Ngoài ra, các đối tượng còn sử
dụng nhiều thiết bị nghe lén thông minh để thu thập thông tin.
Ngoài những thủ đoạn phổ biến kể trên, việc lộ lọt các thông tin cá nhân của người
dùng còn xuất phát từ chính người dùng. Nhận thức của một bộ phận người dân về nguy cơ
mất an ninh, an toàn thông tin còn hạn chế, tác phong giao tiếp trên môi trường mạng còn
tùy tiện. Nhu cầu trao đổi thông tin qua USB, thư điện tử ngày càng nhiều nhưng chưa có
các biện pháp cụ thể và toàn diện để bảo đảm an ninh, an toàn thông tin mạng (ATTTM).
Các cơ quan, tổ chức chưa có đủ nhân lực, vật lực để thực hiện công tác bảo đảm an ninh,
ANTT; chưa kiểm soát hết khả năng mất an ninh, ANTT do các phần mềm, thiết bị phần
cứng nhập ngoại.
6
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 TÌM HIỂU VỀ NMAP
2.1.1 Giới thiệu về Nmap
Nmap, viết tắt của Network Mapper, là một công cụ miễn phí và mã nguồn mở được
sử dụng cho mục đích thu thập thông tin của mạng mục tiêu hoặc kiểm tra an ninh của hệ
thống mạng đang quản lý.
2.1.2 Cách thức hoạt động :
Nmap sử dụng các IP trên các gói tin theo những cách đặc biệt khác nhau để có thể
xác định các host trên một hệ thống mạng , để rồi từ đó xác định xem những services đang
chạy trên hệ thống đó, hệ điều hành đang chạy, bộ lọc các gói tin cũng như tường lửa đang sủ
dụng là gì.
2.1.3 Tính năng của Nmap
Phát hiện lỗ hổng bảo mật
khai thác lỗ hổng bảo mật
phát hiện ra backdoor
quét mạng network
quét các máy chủ và các cổng trên máy chủ trên hệ thống
xác định hệ điều hành, service, firewall đang sử dụng
cung cấp thông tin về loại thiết bị, tên DNS, địa chỉ Mac
thực thi các đoạn script NSE hoặc Lua với các đối tượng được kiểm thử
2.1.4 Sử dụng Nmap:
Việc đầu tiên khi sử dụng Nmap là xác định mục tiêu cần quét, mục tiêu đó có thể là
1 domain, 1 địa chỉ IP cố định,1 dãi địa chỉ IP,
Ví dụ:
Bảng 2. 1 Ví dụ 1
Quét 1 IP nmap 192.168.40.1
Quét 1 dãi IP nmap 192.168.40/24
Quét 1 domain nmap google.com
7
ACK Trả lời kết nối giữa 2 máy có thể bắt đầu
(Acknowledgement) thực hiện
Thông số nhằm thiết lập độ ưu tiên cần xử
UrG (Urgent)
lý ngay cho gói tin.
Thực hiện chức năng đẩy trong bộ đệm
PSH
trong TCP – thường sử dụng cho các gói
(Push)
tin ưu tiên.
FIN (Final) Kết thúc quá trình kết nối giữa 2 máy.
Trong quá trình thiết lập kết nối TPC giữa các máy chủ, quá trình bắt tay 3 bước diễn
ra. Quá trình bắt tay này đảm bảo chu kỳ kết nối thành công, đáng tin cậy và kết nối có định
8
hướng giữa các máy chủ. Chu trình thiết lập một kết nối TCP bao gồm ba bước được thể
hiện dưới đây:
A nhận được gói tin nghĩa là port ở trạng thái open, host A thì sẽ trả lời bằng gói tin RST
(Reset) để đóng kết nối, thay vì trả lời ACK để hoàn tất quá trình bắt tay 3 bước. Nếu host A
nhận được RST thì port đó ở trạng thái close. Nếu sau 1 số lần gửi mà không nhận được trả
lời hoặc nhận được ICMP type 3 (unreachable error) thì port đó ở trạng thái filtered (đã bị
tường lửa chặn). Để biểu diễn kiểu scan này, ta sử dụng cú pháp:
nmap -sS [địa chỉ IP mục tiêu]
+ TCP connect scan: Kỹ thuật này cho kết quả tương tự như TCP SYN scan, nếu host
A nhận được ACK-SYN thì sẽ gửi gói tin ACK để hoàn tất quá trình bắt tay 3 bước. TCP
connect scan được dùng khi user không có quyền truy cập raw packet để thực hiện SYN
scan (thường thì với quyền root trên linux mới có thể sử dụng SYN scan). TCP connect scan
sẽ sử dụng TCP stack của hệ điều hành để tạo ra 1 kết nối bình thường với mục tiêu (host B).
Tuy nhiên, do thực hiện 1 kết nối đầy đủ nên kỹ thuật này dễ bị phát hiện, loại bỏ bởi các
thiết bị bảo mật như tường lửa và IDS của máy mục tiêu, do đó SYN scan thường được sử
dụng nhiều hơn để tránh bị phát hiện. Cú pháp của kỹ thuật quét TCP connect:
nmap -sT [địa chỉ IP mục tiêu]
+ UDP scan: Đây là kiểu scan để phát hiện một cổng UDP đang mở. Do UDP là giao thức
phi kết nối, UDP không có các flag. Khi gói tin UDP đang hoạt động với các port, ta không
cần đến các kết nối có định hướng. Sẽ chẳng có phản hồi nào nếu port mục tiêu đang mở.
Tuy nhiên, nếu port bị đóng, tin nhắn phản hồi “Port unreachable” sẽ được gửi về. Hầu hết
các chương trình độc hại, Trojans, phần mềm gián điệp sử dụng port UDP để truy cập vào
mục tiêu. Cú pháp lệnh:
nmap -sU [địa chỉ IP mục tiêu]
+ Xmas scan: là kiểu scan trong đó chứa nhiều flag. Các gói tin được gửi đi song song với
URG, PSH và FIN, hoặc một gói tin với tất cả các flag tạo ra một tình huống bất thường đối
với người nhận. Cú pháp lệnh:
nmap -sX [địa chỉ IP mục tiêu]
+ FIN scan: là quá trình gửi đi các gói tin chỉ chứa bộ FIN flag. Những gói tin này có thể có
quyền tin cậy để vượt qua tường lửa. FIN Scan chỉ hoạt động với hệ điều hành nào có RFC-
793 based TCP/IP Implementation. FIN Scan sẽ không hoạt động trên bất cứ phiên bản hiện
10
tại nào của Windows, điển hình như Windows XP hoặc những phiên bản mới hơn. Cú pháp
lệnh:
nmap -sF [địa chỉ IP mục tiêu]
+ Null Scan: Là quy trình gửi đi các gói tin không chứa các bộ flag. Các phản hồi đều
tương tự với FIN và XMAS Scan. Việc thực hiện kiểu scan này tương đối dễ dàng vì không
có lý do hợp lý nào giải thích cho việc gửi đi gói tin mà không có flag nào.
nmap -sN [địa chỉ IP mục tiêu]
Khi 3 loại gói tin này được gửi tới mục tiêu, các port sẽ được xem như là open nếu
không có hồi đáp. Nếu RST được trả lại, port sẽ là close. Nếu nhận được các loại gói tin
ICMP (type 3, code 1, 2, 3, 9, 10, or 13) thì port ở trạng thái filtered.
Sử dụng tùy chọn –sn (No port scan) để thực hiện quá trình host discovery
(nmap sẽ dừng lại sau khi xác định các host đang chạy và không thực hiện việc quét port).
Tùy chọn –Pn để bỏ qua host discovery, Nmap sẽ chuyển qua quá trình quét port.
+ Quét port cụ thể
Mặc định nmap sẽ quét 1000 port phổ biến nhất với thứ tự ngẫu nhiên. Bên cạnh đó ta có cái
tùy chọn để quét cổng như:
-p [số cổng] [IP của mục tiêu]: lựa chọn chính xác các port cần quét, nếu quét đồng
thời nhiều giao thức thì thêm các chữ cái đứng trước số port T: TCP, U: UDP, S: SCTP, or
P: IP Protocol.
–F (Fast scan): Nmap quét 100 port phổ biến nhất thay vì mặc định 1000 port.
–top-ports : quét n port phổ biến nhất.
–r: thứ tự quét các port từ thấp lên cao thay vì mặc định là ngẫu nhiên.
+ Xác định dịch vụ, phiên bản, hệ điều hành
–sV: Xác định các port và dịch vụ, phiên bản phần mềm của máy mục tiêu.
–O [IP của mục tiêu]: xác định hệ điều hành máy mục tiêu. Nmap xác định hệ điều
hành dựa trên TCP/IP stack fingerprint của mục tiêu (ví dụ như Sequence Number, window
size, các Options và thứ tự của chúng trong TCP header, Identification number trong IP
header, …).
+ Nmap hỗ trợ chạy các script đặc biệt:
11
Nmap Scripting Engine (NSE) là một trong những chức năng linh hoạt và mạnh mẽ
nhất của Nmap. Nó cho phép người dùng viết và chia sẻ những đoạn script đơn giản để thực
hiện những công việc khác nhau trong lĩnh vực networking một cách tự động. Những đoạn
script có thể sử dụng để phát hiện các lỗ hổng, thậm chí khai thác các lỗ hổng. Để thực hiện
chức năng này của nmap sử dụng tùy chọn:
--script [tên_script].nse
Trong nmap chúng ta gồm có 4 loại NSE scripts như sau :
• Host script: là một loại script được thực thi sau khi nmap đã thực hiện tác vụ của nó như
quét những host, cổng mạng hay hệ điều hành,…
• Prerule script: là một loại script được thực thi trước bất kì 1 tác vụ quét hay thu thập thông
tin nào.
• Service script: là loại script chạy để chống lại 1 service đang lắng nghe ở trên mục tiêu
đang pentest.
• Postrule sciprt: là loại script chạy sau khi Nmap thực thi scan mục tiêu.
Vị trí của NSE script : Các script (.nse file) nằm trong thư mục script khi cài đặt
nmap, người dùng có thể tùy biến chỉnh sửa, thêm các scirpt khác. Trên mỗi hệ điều hành
khác nhau chúng sẽ được lưu trữ ở một vị trí khác nhau:
- Trên linux: ~/.nmap/scripts/ hoặc /usr/share/nmap/scripts/ hoặc trong $NMAPDIR. Hoặc
với cách dễ nhất là chạy lệnh :locate *.nse
- Trên Mac: /usr/local/Cellar/nmap//share/nmap/scripts/
- Trên windows: C:\Program Files (x86)\Nmap\scripts hoặc C:\Program Files\Nmap\scripts
Ngoài ra trong tường hợp muốn update các script NSE trên Nmap hãy sử dụng lệnh: sudo
nmap --script-updatedb
Một số ví dụ về sử dụng NSE Script để scan các lỗ hổng bảo mật trên hệ thống:
• SSL-HEARTBLEED : Phát hiện lỗ hổng bảo mật OpenSSL Heartbleed bug (CVE-2014-
0160).
nmap -sV -p 443 –script=ssl-heartbleed.nse [IP của mục tiêu]
• NMAP-VULNERS: NSE script giúp cung cấp thông tin về lỗ hổng có thể trên hệ thống
dựa theo API của Vulners.com.
nmap -sV --script vulners [--script-args mincvss=] [IP của mục tiêu]
12
• FREEVULNSEARCH: NSE script giúp truy vấn các lỗ hổng thông qua API cve-
search.org.
nmap -sV --script freevulnsearch [IP của mục tiêu]
+ Lưu lại kết quả quét
Cuối cùng Nmap cho phép người dùng có thể lưu lại kết quả quét của mình dưới dạng
text hoặc xml (có thể dùng kết quả làm đầu vào cho một số công cụ khác) với các tùy chọn:
-oN (normal output) hoặc -oX (xml output)
+ Một số kỹ thuật quét cổng nâng cao
Decoy Scan
Decoy Scan là một kỹ thuật thực hiện một IP Spoofing (giả mạo). Mục đích nhằm ấn địa chỉ
thực sự của kẻ tấn công (scanner). Ví dụ:
nmap -sS 192.168.1.22 -D 1.2.3.4, 5.6.7.8
Sau tham số “-D” là các giá trị IP cụ thể, với mỗi cổng khi scan mục tiêu sẽ nhận đồng thời 3
gói tin (một từ kẻ tấn công, một từ IP: 1.2.3.4, và một từ IP: 5.6.7.8). Kết quả là mục tiêu sẽ
phản hồi với cả 3 địa chỉ IP và sẽ nghĩ rằng cả 3 IP đang scan mình. Tuy nhiên, khi ta tăng
giá trị IP lên hàng trăm IP thì việc tìm ra kẻ tấn công thực sự là rất khó khăn.
Idle Scan
Idle Scan là một kỹ thuật phức tạp cho phép ẩn hoàn toàn kẻ tấn công. trong Scan này
sẽ có 3 thành phần: 1 là kẻ tấn công, một Zombie (một máy bị kẻ tấn công lợi dụng) và một
là mục tiêu cần quét cổng. Điều kiện là máy Zombie không thực hiện các hoạt động khác
ngoại trừ việc giao tiếp với Kẻ tấn công. IPID: Mỗi IP packet được gửi trên mạng có một số
duy nhất được gọi là fragment identification (hay gọi là IPID).
Hình 2. 3 The first stage and the second stage of an idle scan
13
1. Kẻ tấn công sẽ gửi một gói tin SYN|ACK đến một cổng của Zombie và sẽ phản hồi một
gói tin RST chứa 1 IP ID.
2. Kẻ tấn công tiếp tục gửi một gói tin SYN giả mạo IP của Zombie đến cổng của mục tiêu.
3. Nếu cổng đó đóng mục tiêu sẽ phản hồi đến Zombie một RST packet và zombie sẽ không
tăng giá trị IP ID, nếu cổng là mở, mục tiêu sẽ gửi một gói tin SYN|ACK đến zombie và
zombie sẽ tăng giá trị IP ID lên 1.
4. Kẻ tấn công sẽ gửi một gói tin SYN|ACK khác tới Zombie và kiểm tra nếu IP ID tăng
hoặc không tăng tương ứng với cổng được mở hoặc đóng trên Mục tiêu.
2.2 Tìm hiểu về THC-Hydra
2.2.1 Giới thiệu về Hydra
Hydra là một trình bẻ khóa đăng nhập song song hỗ trợ nhiều giao thức để tấn công. Nó rất
nhanh và linh hoạt, và dễ dàng thêm các mô-đun mới. Công cụ này giúp các nhà nghiên cứu
và nhà tư vấn bảo mật có thể chỉ ra việc truy cập trái phép vào hệ thống từ xa dễ dàng như
thế nào.
-x MIN: MAX: CHARSET: mật khẩu tạo bruteforce, nhập “-x -h” để nhận trợ giúp
-e nsr: thử “n” null password, đăng nhập “s” dưới dạng pass và / hoặc “r” đăng nhập bị đảo
ngược
-u: vòng lặp xung quanh người dùng, không phải mật khẩu (hiệu quả! ngụ ý với -x)
-C FILE: định dạng “đăng nhập: vượt qua” được phân tách bằng dấu hai chấm, thay vì tùy
chọn -L / -P
-M FILE: danh sách các máy chủ bị tấn công song song, một mục trên mỗi dòng
-o FILE: ghi các cặp đăng nhập / mật khẩu được tìm thấy vào FILE thay vì stdout
-f / -F: thoát khi tìm thấy cặp đăng nhập / vượt qua (-M: -f trên mỗi máy chủ, -F toàn cầu)
-t TASKS: chạy TASKS số lượng kết nối song song (trên mỗi máy chủ lưu trữ, mặc định:
16)
-w / -W TIME: thời gian chờ phản hồi (32 giây) / giữa các kết nối trên mỗi chuỗi
-4 / -6: ưu tiên địa chỉ IPv4 (mặc định) hoặc IPv6
-v / -V / -d: chế độ tiết / hiển thị đăng nhập + vượt qua cho mỗi lần thử / chế độ gỡ lỗi
-U: chi tiết sử dụng mô-đun dịch vụ
2.2.3 Cài đặt công cụ hỗ trợ tấn công hydra
Gõ lệnh như sau:
-git clone https://github.com/vanhauser-thc/thc-hydra-git
-cd thc-hydra ./configure make
-make install
2.3 TÌM HIỂU KỸ THUẬT SQLMAP
2.3.1 Giới thiệu về Sqlmap
SQLMAP là công cụ khai thác những lổ hỏng của cơ sở dữ liệu SQL. Công cụ này được
xem là công cụ khai thác SQL tốt nhất hiện nay. Được giới bảo mật và giới hacker sử dụng
thường xuyên. Với người dùng Kali hoặc Back Track 5 thì SQLMAP đã được tích hợp sẵn
vào hệ điều hành. Riêng Windows thì chúng ta phải cài đặt thêm python và SQLMAP để sử
dụng.
Đây là công cụ mã nguồn mở, tự động hóa quá trình phát hiện và khai thác lỗ hổng SQL. Nó
đi kèm với một công cụ phát hiện mạnh mẽ, nhiều tính năng thích hợp cho trình kiểm tra
thâm nhập cuối cùng
15
Hình 2. 5 Sqlmap
2.3.2 Tính năng của Sqlmap
Hỗ trợ đầy đủ làm việc với các hệ quản trị cơ sở dữ liệu MySQL, Oracle,
PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase,
SAP MaxDB, Informix, MariaDB, MemSQL, TiDB, CockroachDB, ...
Hỗ trợ đầy đủ cho các kỹ thuật tấn công SQL Injection: boolean-based blind, time-
based blind, error-based, UNION query-based, stacked queries và out-of-band
Kết nối trực tiếp với cơ sở dữ liệu mà không cần thông qua SQL SQL, bằng cách cung cấp
thông tin đăng nhập DBMS, địa chỉ IP, cổng và tên cơ sở dữ liệu.
Liệt kê người dùng, password hash, đặc quyền, vai trò, cơ sở dữ liệu, bảng và cột
.
Hình 2. 6 Tính năng splmap
Tự động nhận dạng các định dạng băm mật khẩu và hỗ trợ bẻ khóa chúng bằng cách sử dụng
một cuộc tấn công dựa trên từ điển.
Trích xuất hoàn toàn các bảng cơ sở dữ liệu, một loạt các mục hoặc các cột cụ thể theo lựa
chọn của người dùng
16
Tìm kiếm tên cơ sở dữ liệu cụ thể, các bảng cụ thể trên tất cả các cơ sở dữ liệu hoặc các cột
cụ thể trên tất cả các bảng của cơ sở dữ liệu
Tải xuống và tải lên bất kỳ tệp nào từ máy chủ cơ sở dữ liệu bên dưới hệ thống tệp khi phần
mềm cơ sở dữ liệu là MySQL, PostgreQuery hoặc Microsoft SQL Server.
Thực hiện các lệnh tùy ý và truy xuất đầu ra tiêu chuẩn của chúng trên máy chủ cơ sở dữ liệu
bên dưới hệ điều hành khi phần mềm cơ sở dữ liệu là MySQL, PostgreQuery hoặc Microsoft
SQL Server
2.3.3 Các tham số có trong Sqlmap
Cách sử dụng: sqlmap
Tùy chọn:
-h, --help Hiển thị thông báo trợ giúp cơ bản và thoát
-hh Hiển thị thông báo trợ giúp nâng cao và thoát
--version Hiển thị số phiên bản của chương trình và thoát
-v ĐỘNG TỪ Mức độ chi tiết: 0-6 (mặc định 1)
Mục tiêu:
Ít nhất một trong các tùy chọn này phải được cung cấp để xác định (các) mục tiêu
-u URL, --url = URL Mục tiêu URL (ví dụ: "http://www.site.com/vuln.php?id=1")
-g GOOGLEDORK Xử lý kết quả Google dork dưới dạng URL mục tiêu
Yêu cầu:
Các tùy chọn này có thể được sử dụng để chỉ định cách kết nối với URL mục tiêu
--data = DATA Chuỗi dữ liệu sẽ được gửi qua POST (ví dụ: "id = 1")
--cookie = COOKIE HTTP giá trị tiêu đề Cookie (ví dụ: "PHPSESSID = a8d127e ..")
--random-agent Sử dụng giá trị tiêu đề Tác nhân Người dùng HTTP được chọn ngẫu nhiên
--proxy = PROXY Sử dụng proxy để kết nối với URL đích
--tor Sử dụng mạng ẩn danh Tor
--check-tor Kiểm tra xem Tor có được sử dụng đúng cách không
Mũi tiêm:
Các tùy chọn này có thể được sử dụng để chỉ định tham số nào cần kiểm tra, cung cấp tải
trọng tiêm tùy chỉnh và tập lệnh giả mạo tùy chọn
-p TESTPARAMETER (Các) thông số có thể kiểm tra
17
--dbms = DBMS Buộc DBMS back-end đến giá trị được cung cấp
Phát hiện:
Các tùy chọn này có thể được sử dụng để tùy chỉnh giai đoạn phát hiện
--level = LEVEL Mức độ kiểm tra cần thực hiện (1-5, mặc định 1)
--risk = RỦI RO Rủi ro các thử nghiệm phải thực hiện (1-3, mặc định 1)
Kỹ thuật:
Các tùy chọn này có thể được sử dụng để điều chỉnh kiểm tra SQL njection cụ thể
--technique = TECH .. Các kỹ thuật chèn SQL để sử dụng (mặc định là "BEUSTQ")
Liệt kê:
Các tùy chọn này có thể được sử dụng để liệt kê thông tin, cấu trúc và dữ liệu của hệ
thống quản lý cơ sở dữ liệu back-end chứa trong các bảng
-a, - tất cả Truy xuất mọi thứ
-b, --banner Truy xuất biểu ngữ DBMS
--current-user Truy xuất người dùng hiện tại của DBMS
--current-db Truy xuất cơ sở dữ liệu hiện tại của DBMS
--passwords Liệt kê các băm mật khẩu của người dùng DBMS
--tables Liệt kê các bảng cơ sở dữ liệu DBMS
--của cột Liệt kê các cột trong bảng cơ sở dữ liệu DBMS
--schema Liệt kê lược đồ DBMS
--dump Dump các mục nhập trong bảng cơ sở dữ liệu DBMS
--dump-all Dump tất cả các mục nhập của bảng cơ sở dữ liệu DBMS
-D DB DBMS cơ sở dữ liệu để liệt kê
-T (các) bảng cơ sở dữ liệu DBMS TBL để liệt kê
-C COL DBMS trong bảng cơ sở dữ liệu để liệt kê
Quyền truy cập hệ điều hành:
Các tùy chọn này có thể được sử dụng để truy cập vào quản lý cơ sở dữ liệu phía sau
hệ điều hành cơ bản
--os-shell Lời nhắc cho một hệ điều hành tương tác shell
--os-pwn Prompt cho OOB shell, Meterpreter hoặc VNC
Chung:
18
Các tùy chọn này có thể được sử dụng để thiết lập một số thông số làm việc chung
--batch Không bao giờ yêu cầu đầu vào của người dùng, hãy sử dụng hành vi mặc định
--flush-session Flush các tệp phiên cho mục tiêu hiện tại
Điều khoản khác:
Các tùy chọn này không phù hợp với bất kỳ danh mục nào khác
--wizard Giao diện thuật sĩ đơn giản cho người mới bắt đầu
19
Bước 2 : Tính toán mạng con và quét một phạm vi cụ thể để tìm ra thiêt bị. Quét ARP
với truy vấn –PR
Bước 3 Tạo một danh sách hoạt động máy chủ có mục tiêu
• Quét một port cụ thể: Trong một số trường hợp, chúng ta có thể chỉ muốn biết nếu một
cổng duy nhất được mở. Chẳng hạn, ta có thể xem hệ thống này có mở cổng 80 hay không
bằng cách thêm -p sau địa chỉ IP đích và số cổng.
nmap -p 80 192.168.1.129
• Quét xác định phiên bản của dịch vụ đang chạy trên host: nmap -sV 192.168.40.1
Trong kali lunix tai chọn theo đường dẫn /usr/share/wordlists sẽ hiển thị 2 file password cho
bạn có thể chọn là file fasttrack.txt và file rockyou.txt.gz hoặc tạo 1 file paslist.txt có chứa
mật khẩu.
Nhập đúng tên tài khoản và nhập ngẫu nhiên mật khẩu
Bạn clik chuột phải sau đó chọn kiểm tra và chọn mạng
B3: bạn cần gõ cấu trúc hydra mà mình vừa hướng dẫn các bạn tìm vào
hydra -l tuituyenne -P passlist.txt testasp.vulnweb.com http-post-form "/Login.asp?
RetURL=%2FDefault%2Easp%3F:tfUName=^USER^&tfUPass=^PASS^: S=logout" -V
Hạn chế số lần đăng nhập sai: Giới hạn số lần thử cũng làm giảm khả năng bị tấn công
brute-force. Đi kèm với đó là việc làm tăng thời gian cho phép nhập khi nhập quá nhiều lần
sai.
Xác thực hai yếu tố: Quản trị viên có thể yêu cầu xác thực hai bước và cài đặt hệ
thống phát hiện xâm nhập phát hiện các cuộc tấn công. Điều này yêu cầu người dùng theo
dõi nỗ lực đăng nhập bằng yếu tố thứ hai, chẳng hạn như khóa USB vật lý hoặc quét sinh
trắc học dấu vân tay.
Captcha: các công cụ như reCAPTCHA yêu cầu người dùng hoàn thành các tác vụ
đơn giản để đăng nhập vào hệ thống. Việc này có thể ngăn chặn các công cụ brute-force tự
động.
3.4 KỸ THUẬT SQLMAP
3.4.1 Cài đặt công cụ hỗ trợ tấn công Sqlmap
SQLMap đã được cài đặt sẵn trong Kali
Để sử dụng, vào mục Applications -> Exploitation Tool -> SQLMap hoặc tại Terminal gõ
sqlmap
3.4.2 Cài đặt tấn công
Trong demo này, chúng ta sẽ thử tìm cách lấy được thông tin đăng nhập vào trang
Web: http://testphp.vulnweb.com/ (Đây là trang Web demo nên các bạn có thể thử thoải mái
nhé)
Bước 1: Mở teminal và gõ lệnh như sau:
sqlmap –u “http://testphp.vulnweb.com/search.php?test=query”
u: là url của mục tiêu
SQLMap sẽ phát hiện lỗ hổng của mục tiêu vào đưa ra thông tin về lỗ hổng.
Bước 2: Khi đã xác định được là website mục tiêu tồn tại lỗ hổng SQL injection, ta tiến
hành tìm tên cơ sở dữ liệu
python sqlmap –u “http://testphp.vulnweb.com/search.php?test=query” –dbs
dbs là option để liệt kê các cơ sở dữ liệu của website
Trong bản users có các trường uname và pass khả năng cao chưa tên tài khoản và mật khẩu
để đăng nhập vào hệ thống
Bước 5: Lấy dữ liệu trong bảng
Sqlmap -u"http://testphp.vulnweb.com/search.php?test=query" --dump -D acuart -T users
Câu lệnh trên để lấy ra các bản ghi của bảng users
Trong mã này, đầu vào của người dùng không được kết hợp với câu lệnh đã chuẩn bị.
Chúng được biên dịch riêng biệt. Vì vậy, ngay cả khi mã độc hại được nhập dưới dạng đầu
vào của người dùng, chương trình sẽ đơn giản coi phần mã độc hại là một chuỗi chứ không
phải lệnh.
Lưu ý: Ứng dụng này chỉ được sử dụng cho mục đích thử nghiệm
32