Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyên trên WindowsDANH MỤC KÝ HIỆU, TÊN TIENG ANH VÀ NGHĨA bà Ký hiệu Tên tiếng anh Nghĩa 1 |AD Active Directory pich vụ quan lý thư mục phân 2
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIÊN THONG
KHOA AN TOÀN THÔNG TIN
ĐỎ ÁN TÓT NGHIỆP
_ CÔNG CỤ KIEM THU LEO THANG ĐẶC QUYEN
TREN WINDOWS THONG QUA CAC GIAO THUC XAC THUC
TRAN QUOC HOAN
Hà Nội, Thang 12 nam 2023
Trang 2HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIÊN THONG
KHOA AN TOÀN THÔNG TIN
ĐỎ ÁN TÓT NGHIỆP
ĐÈ TÀI: CÔNG CỤ KIEM THU LEO THANG ĐẶC QUYEN
TRÊN WINDOWS THÔNG QUA CÁC GIAO THỨC XÁC THỰC
Giảng viên hướng dẫn : TS Nguyễn Ngọc Điệp
Tên sinh viên : Trần Quốc Hoàn
Mã sinh viên : BI9DCAT077
Lớp : DI9CQAT01-B
Khoá : 2019-2024
Hệ : Dai học chính quy
Hà Nội, Tháng 12 năm 2023
Trang 3Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
LỜI CẢM ƠN
Lời đầu tiên, em xin gửi lời biết ơn sâu sắc tới Thầy giáo TS Nguyễn NgọcĐiệp đã tận tình chỉ bảo, hướng dẫn em trong không chi quá trình thực hiện đồ án này,
nhờ sự giúp đỡ và những chia sẻ của Thầy, em đã có những định hướng riêng cho
tương lai của mình.
Em xin chân thành cảm ơn các Thay, Cô trong Khoa An toàn thông tin nói riêng
và toàn thé các cán bộ của Học viện Công nghệ Bưu chính Viễn thông nói chung đã tạo
điều kiện dé em có thé học tập và phát triển bản thân trong một môi trường rất tốt Cảm
ơn các Thầy Cô đã cung cấp cho em không chỉ kiến thức mà còn là kỹ năng sống, đó là
những hành trang hữu ích cho em trên chặng đường dài phía trước của cuộc đời.
Em cũng xin gửi lời cảm ơn đến những người anh, người bạn, người đồngnghiệp trong công ty An ninh mạng Viettel đã cung cấp cho em những kiến thức về lập
trình, hệ điều hành, kiêm thử xâm nhập và tạo điều kiện cho em hoàn thiện đồ án này
Cuối cùng, em xin cảm ơn gia đình, bạn bẻ, những người đã luôn ở cạnh, quantâm, giúp đỡ và ủng hộ đề bản thân em có thể hoàn thành được đồ án này
Em xin chân thành cảm ơn!
Hà Nội, ngày 31 thang 12 năm 2023
Sinh viên thực hiện
Trân Quôc Hoàn
i
Tran Quốc Hoàn - BI9DCAT077
Trang 4Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
LỜI CAM ĐOAN
Em xin cam đoan rằng đồ án tốt nghiệp “Công cụ kiểm thử leo thang đặc
quyền trên Windows thông qua các giao thức xác thực” là công trình nghiên cứu
của bản thân Những phần có sử dụng tài liệu tham khảo có trong đồ án đã được liệt kê
và nêu rõ ra tại phần tài liệu tham khảo Đồng thời những số liệu hay kết quả trình bày
trong đồ án đều mang tính chất trung thực, không sao chép, đạo nhái.
Em cũng xin cam đoan giữ vững và tôn trong van đề đạo đức của người nghiêncứu bảo mật Không phát tán mã khai thác, mã nguồn hay tài liệu hướng dẫn khai thác
dưới mọi hình thức Không để cá nhân, tổ chức khác lợi dụng làm điều xấu ảnh hưởng
tới bat kì cá nhân, tổ chức nào khác
Em xin hoàn toàn chịu trách nhiệm về tính trung thực và pháp lý của đồ án trướchội đồng và pháp luật
Hà Nội, ngày 31 tháng 12 năm 2023
Sinh viên cam kết
Trân Quôc Hoàn
il
Tran Quốc Hoàn - BI9DCAT077
Trang 5Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
NHẬN XÉT DANH GIÁ CHO DIEM
(Của Người hướng dẫn)
Điểm: 0 St rerye (băng chữ: 52 S21 E222 E2 re )Đồng ý / Không đồng ý cho sinh viên bảo vệ trước hội đồng chấm tốt nghiệp?
Hà Nội, ngày tháng năm
CÁN BỘ - GIẢNG VIÊN HƯỚNG DẪN
(ky và ghi rõ họ tên)
1H
Trần Quốc Hoàn - BI9DCAT077
Trang 6Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
NHẬN XÉT DANH GIÁ CHO DIEM
(Của Người phản biện)
Điểm: 0 St rerye (băng chữ: 52 S21 E222 E2 re )Đồng ý / Không đồng ý cho sinh viên bảo vệ trước hội đồng chấm tốt nghiệp?
Hà Nội, ngày tháng năm
CÁN BỘ - GIẢNG VIÊN PHẢN BIỆN
(ký và ghi rõ họ tên)
IV
Trần Quốc Hoàn - BI9DCAT077
Trang 7Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
MỤC LỤC
DANH MỤC KÝ HIỆU, TÊN TIENG ANH VÀ NGHĨA -. 2-52 ©ss©csscss vii IJ.9):8\ 1098:7916 43+ Ô ix DANH MỤC HINH VE ccccsssssssssssssssssssessesssssssssessesssssssessessesssssssessesscssssusssscsecssseseesesceeees x
0900062710057 .- ,Ô 1 CHƯƠNG 1 XÁC THỰC VÀ KIEM SOÁT ĐẶC QUYEN TREN WINDOWS 4
1.1 Kiểm soát đặc quyền trên WindOWS - 2 + s22 21122122121221217121212 1111k 4
1.1.1 Mã định danh bảo mậtt - c E2 1111122211 1112211111151 1 111281111111 1 1kg 4
1.1.3 Đặc quyền của tài khoản - ¿52 s2 EEE1211211271 7111211211211 1 1x ye 10
1.2.1 NTIM 5-52 252221 2E22112212211221211271211271121121112111112112111111121112 re 14
1.2.2 Ker€TOS - - c E2 2211112211 1111931111 1531 111 1011111110 1K 1n kg ty 191.3 KẾt chương -.-¿- ¿5+ +scxSE12E121121E712112112112111112112111111112111E111121111211 re 28CHUONG 2 PHƯƠNG PHÁP LỢI DỤNG PHƯƠNG THỨC XÁC THỰC DE
I0299:7.0 1680701900040) 227277 30
2.1 Lỗ hồng trong quá trình xác thực của Kerberos - 2 2 222++x+>++x+z++x+zxszez 30
2.1.1 Mô tả lỗ hồng - 52-5252 SE EE12E1212121121121121211121121121111121111121111 n0 30
2.1.2 Cách thức khai thác lỗ hồng - - 2 S+2SE E9 E9 E2E12E121EE17171E12121 2111 xe 32
2.2 Phương thức tan công RBCD -2- 2 ©5¿+222EE2EE9EEEEEE2E121221212121121211 212.1 xe 39
2.2.2 Luồng thực thi -¿- ¿5+2 2x‡2E22E12112112212711121121121121121111 111012111111 Ea te 41
2.2.3 Biện pháp phát hiện, phòng chống 2-5 +® + EE+E£E£EE£E+EeE£EzEerrrxzed 44
2.3 Phương thức tan công Tgtdeleg - + 2+Ss+SE£EE£2E£2EE2E12E12E1212121211 212.1 xe 44
2.3.2 Luông thực thi -¿- ¿5 +s+Sx9EE2E12EE212712212112121111121121111111 01112112 1x0 452.3.3 Biện pháp phát hiện, phòng chống 2- 2 2+ +SE+E£EE+E#E£EEEE2EeEEEEzEerrxred 462.4 KẾt chương -:- 2 St s EE1211212171211211211111111111111111211 1111211112111 Hye 47
Vv
Trần Quốc Hoàn - BI9DCAT077
Trang 8Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
CHUONG 3 CÔNG CỤ KIEM THU LEO THANG ĐẶC QUYEN LỢI DỤNG
PHƯƠNG THỨC XÁC THỤC - «se +s+++£E+£E+£ExeEEeEveerxerrserserrsrrsersrre 48
3.1 GiGt thidu CONG CU ccc Ả 493.2 Phân tích thiết 6 0 c ccccccccsscssessessessesssssssusssessessesssssessssssesesssesissessssessssesetsesseeeseess 49
3.2.1 Phân tích yêu cầu - 2: 5¿©2¿+S£+EESEE£EE9EE2E12112112712717171121121111 11 E1 re 49
3.2.2 Thiết kế công Cụ 2-5221 EE9EE921121122122127121121121121121111 11112111211 re 49 3.2.3 Sơ đồ hoạt động -2 ¿5c S1 2E 1 212211211211211 2111111111121 0101211 errdey 50
3.3 Cait Gat CONG CU ee 51 3.4 Thử nghiệm và đánh gid ccccccccccsccssesseessesssessesssesssessesssessesssessnsstssessessessessesseseeeecees 523.5 Phương hướng phát triÊn - 2-5: sSE9SE2E22EEEEEEEEE121121212121211111112121 111211 xe 58KET 00.0777 Ả 59
IV.)80/9089:70/84 27.0122 60
VITrần Quốc Hoàn - BI9DCAT077
Trang 9Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyên trên Windows
DANH MỤC KÝ HIỆU, TÊN TIENG ANH VÀ NGHĨA
bà Ký hiệu Tên tiếng anh Nghĩa
1 |AD Active Directory pich vụ quan lý thư mục phân
2 |AP Application Server Máy chủ đáp ứng yêu cầu củaứng dụng
3 | AS Authentication Service Dich vu xac thuc danh tinh
4 |DACL Discretionary Access Control Danh sách điêu khiên truy cập
List
5 |DC Domain Controller May chu quan lý tại neuyen,xac thuc va truy cap
6 | GSS-API Generic Security Service Giao diện lập trình ứng dụng
Application Program Interface cho các dich vu bảo mật
7 |HS Internet Information Services Dic h vụ may chủ web củaMicrosoft
8 |KDC Key Distribution Center Trung tâm phan phối khóa
9 | LDAP Lightweight Directory Access Giao thức truy cập thư mục nhẹ
Protocol
10 |LM Lan Manager Hệ thông quản lý mạng máytính
11 |LSA Local Security Authority Dic h vụ bảo mật tại cap độ hệthông
12 | LSASS Local Security Authority Dich vu con cua LSA
Subsystem Service
13 | MFA Multifactor authentication Xác thực da yếu tố
14 |MITM Man in the middle
viiTran Quốc Hoan - BI9DCAT077
Trang 10Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyên trên Windows
15 | NTLM | New Technology LAN Manager | CÍA9 thức xác thực và quản lýtruy cập mạng
16 |PAC Privilege Attribute Certificate Chứn ° ch : chứa thông tin vequyén/dac quyén
17 | PoC Proof of Concept Bang chứng thực nghiệm
1 Resource-Based Constrained Cap quyén truy cap gidi han
8 |RBCD : A
Delegation cho tai nguyén
19 | RID Relative Identifier Định danh tương đối
Giao thức cho phép các ứng
20 | RPC Remote Procedure Call dung giao tiép và gọi các ham
từ xa
21 | S4U Service for User Dich vu cho phép mey chu `đăng nhập thay mặt người dùng
22 |SAM System Account Manger Quan Ị ý tài khoản người dùngvà nhóm
23 | SCM Service Control Manager Quan lý các dich vụ hệ thống
24 |SID Security Identifiers Ma dinh danh bao mat
Security Support Provider Giao điện hỗ trợ nhà cung cấp
25 |SSPI ar
Interface bao mat
26 | TGS Ticket Granting Ticket Phiêu cập quyền truy cập chomáy chủ
27 | TGT Ticket Granting Service Dich vu cap quyen truy cap chocac dich vu
28 |UAC User Account Control Co che kiêm soát quyền truycập người dùng
villTran Quốc Hoan - BI9DCATO077
Trang 11Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
DANH MỤC BẢNG
Bảng 1.1: Một số SID Thường gặp - 2-52 52 S221 E1 EEEE211211211211 1111211 xe 6
Bang 1.2: Một số đặc quyền mặc định được cấp trên Windows c-c <<<<<<<+ 11
1X
Trần Quốc Hoàn - BI9DCAT077
Trang 12Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
DANH MỤC HÌNH VE
Hình 1.1: Các thông tin trong một SID thực TA 5
Hình 1.2: Quan sát chủ sở hữu của các mô-đun trong thư mục system32 5
Hình 1.3: Quan sát SID đăng nhập thông qua Process ExpÏOTeT ‹+++<s+ s52 7
Hình 1.4: Access TIOK€N - c9 nh TH ng nh TH HH nh TH HH Hàng nh 8
Hình 1.5: Doc Access Token từ một tiến trình bằng công cụ TokenViewer 9
Hình 1.6: Liệt kê đặc quyền thông qua câu lệnh whoaimi 2 25225252: 10
Hình 1.7: Mô hình hoạt động cơ bản của NTƯM - - 52c St *+ sssirsreeerke 14
Hình 1.8: Mô hình hoạt động của NTLM trong quá trình đăng nhập 15
Hình 1.9: Mô hình xác thực NTLM trong truy cập tài nguyên dùng chung (máy chủ
chia sẻ file SMB) L2 111 1112111111 111101111111 11111 111111111111 TH KH kg kg kg 17
Hình 1.10: Mô tả đơn giản về cách tạo Response của NTLM 2- 2-5255: 18
Hình 1.11: Mô hình tông quan về giao thức xác thực kerberos :- 5:5: 21
Hình 1.12: Một số thông tin của AS-REQ bắt được từ Wireshark -5-55- 22
Hình 1.13: Sơ đồ thông điệp AS-REQ 2- 2-52 SE 2E12E12212717121211211 1E ye 23
Hình 1.14: Sơ đồ thông điệp AS-REP - 2 252221 EEEEE2E211212121212121 11x ye 23
Hình 1.15: Sơ đồ thông điệp TGS-R.EQ -2- 5 522222EE2E1EEEEE121212121 2111 te 24
Hình 1.16: Sơ đồ thông điệp TGS-REP 22 2: 22222Et2EE2EE22EE2EE22122EE2E2E cv 25
Hình 1.17: Sơ đồ thông điệp AP-R.EQ 22- 2:52 22E22E222E22212212221 2212221 zxee 26
Hình 2.1: Sơ đồ kiểm tra điều kiện dé áp dụng bộ lọc Token «5+5 ++<s+s5+ 32
Hình 2.2: Lệnh klist đề lay ticket cho dịch vu RPC của máy tính cục bộ 33
Hình 2.3: Công cụ Rubeus dé trích xuất RPC ticket 2-2-5 5s2z+zzvzxzxczxccez 34
Hình 2.4: Công cụ Rubeus dé chuyền lại RPC ticket vào bộ nhớ đệm 35
Hình 2.5: Sử dụng công cụ SCMUACBypass dé leo thang đặc quyên - 38
XTrần Quốc Hoàn - BI9DCAT077
Trang 13Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
Hình 2.6: Sơ đồ thực thi trong quá trình thực hiện ủy quyền bị rang buộc (dựa trên tài
0130/9000 5:.£ 39
Hình 3.1: Công cụ kiểm thử WAL/PE + + S2 St2E2EEEEEE12E121217121121121211 121 re 48
Hình 3.2: Sơ đồ hoạt động của CONG CỤ c2 3S 1112 111v TH vn key 50
Hình 3.3: Tải công cụ WALPE từ Github - S111 1 kg ng kh kết 51
Hình 3.4: Kịch ban đánh giá tu động (trong thử nghiỆm)) - ¿- -<+s++++sx++ss+2 52
Hình 3.5: Hướng dẫn băng tiếng việt của automateWALPE .cccccccccccsseseesesseseeseees 53
Hình 3.6: Kết qua thử nghiệm 1 - automateWALPE ccccccscsscsscessessesessessesessesesseees 54
Hình 3.7: Kết qua thử nghiệm 1 - RBCD c.cceccsscsscsssessessessessesssesesscsussesssesscsessssesseees 55
Hình 3.8: Kết qua thử nghiệm 1 - Tgtdeleg +- 2 2 2+E+EE2EEE£EEE2EzEeEEzErrrrees 55
Hình 3.9: Kết qua thử nghiệm 2 - automateWALPE ccccccssessesssessessesessesessessesesseees 56
Hình 3.10: Kết quả thử nghiệm 2 — RBCD 2- ¿©22+2E£EE+EE+EEtEE2EE2EE2EExrrrred 56
XI
Trần Quốc Hoàn - BI9DCAT077
Trang 14Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
LOI MỞ ĐẦU
Ngày nay, máy tính càng trở nên phô biến và trở thành một công cụ không thé
thiếu trong cuộc sông dé làm việc, học tập, giải tri, Tuy nhiên, sự phổ biến của máy
tính ngày nay cũng đặt ra nhiều mối lo ngại về an toàn thông tin An toàn thông tin là
việc bảo vệ các dữ liệu, thông tin cá nhân và tài sản trên máy tính khỏi những mối đe
doa từ bên ngoài Những mối de dọa phô biến trên máy tính có thé là phần mềm độc
hai, tin tặc hay đơn giản là những người tò mò về các dit liệu trên máy tính Thực tế đã
ghi nhận rất nhiều thiệt hại mà các mối đe doạ trên gây ra với những hậu quả nghiêm
trọng như mất dữ liệu, lộ lọt thông tin cá nhân, bị chiếm quyền kiểm soát máy tính
thậm chí là bị tan công hoặc đánh cắp tài sản
Một trong những hệ điều hành phổ biến nhất trên máy tính là Windows Hệđiều hành này cung cấp một giao diện đồ họa thân thiện và nhiều tính năng hỗ trợ
người dùng Windows cũng có hệ thống xác thực riêng để kiểm soát quyền truy cập
của người dùng vảo các tai nguyên của máy tính Xác thực là quá trình xác minh danh
tính của người dùng hoặc thiết bị dựa trên các thông tin như tên người dùng, mật khẩu,
mã PIN hay chứng chỉ số
Năm 1993, Microsoft giới thiệu Windows NT 3.1, bao gồm việc sử dụng mộtphương pháp xác thực an toàn hon được gọi là NTLM (NT LAN Manager) Phương
pháp này sử dụng kết hợp mật khâu của người dùng và khóa mã hóa duy nhất để xác
minh danh tính của họ Không lâu sau đó vào năm 1998, Microsoft giới thiệu NTLMv2
trong phiên bản Windows NT 4.0 Service Pack 4 NTLM là một cải tiến đáng ké so với
hệ thống mật khâu trước đó, nhưng nó vẫn có lỗ hồng và có thé đã được khai thác
thành công từ sớm nhưng đến tận năm 2016 khi một khai thác lỗ hồng trong giao thức
xác thực NTLM mang tên "HotPotato" được công khai[1] Phương thức tấn công này
cho phép leo thang đặc quyền cục bộ trong Windows Trong vài năm tiếp theo,
Microsoft tiếp tục có găng khắc phục sự cô nhưng mỗi lần tìm ra cách giải quyết thì lại
có một phương thức tấn công "Potato" khác xuất hiện: RottenPotato (2016),
1
Tran Quốc Hoàn - BI9DCAT077
Trang 15Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
LonelyPotato (2017), JuicyPotato (2018), GhostPotato(2019), SweetPotato (2020),
RoguePotato (2020), GenericPotato (2021), JuicyPotatoNG (2022), CertPotato (2022),
LocalPotato (2023).
Do đó NTLM không còn được khuyến khích sử dụng trong việc xác thựcWindows trong miền mà thay vào đó là Kerberos Giao thức xác thực Kerberos được
Microsoft giới thiệu vào năm 2000 cùng với phiên bản hệ điều hành Windows 2000
Kerberos là một giao thức xác thực mạng sử dụng mã hóa để xác minh danh tính của
người dùng và đảm bảo giao tiếp an toàn giữa các hệ thống Nó vẫn được sử dụng rộng
rãi trong các hệ điều hành Windows hiện đại và được coi là một trong những hình thức
xác thực an toàn tốt nhất Nhưng liệu Kerberos có thé bị lợi dụng để leo thang đặc
quyền tương tự như NTLM? Thực tế đã có khá nhiều phương pháp tan công vào các hệ
thống sử dụng xác thực bằng Kerberos: Pass The Ticket (PTT)[2], Golden Tieket[3],
Kerberoasting[4], ASREPRoast[5], và có cả những công cụ được công khai cho việc
tấn công leo thang đặc quyền thông qua Kerberos: KrbRelayUp[6],
KRBUACBypass[7], Tuy nhiên tới nay vẫn chưa có một tài liệu tiếng việt nào hay
công cụ chính thống nào phục vụ mục đích kiểm thử khả năng leo thang đặc quyền
thông qua Kerberos này, đặt ra bài toán lớn trong việc tai liệu hoá, đưa ra phương án
phòng chống và nhận diện thích hợp
Nhận thấy đây là một thách thức với ngành bảo mật nói chung cũng như một
kỹ sư an toàn thông tin nói riêng Là một sinh viên ngành an toàn thông tin, em thấy
mình cũng đã được học tập, nghiên cứu về hệ điều hành, mã độc và cách thức hoạt
động của chúng Em quyết định chọn đề tài "Công cụ kiểm thử leo thang đặc quyền
trên Windows thông qua các giao thức xác thực" mong muốn đóng góp một phần
nhỏ bé vào nên an toàn thông tin nước nhà
Trong phạm vi đồ án của mình, em xin trình bày một số thông tin cơ bản vềbảo mật trên hệ điều hành Windows, cơ chế kiểm soát tài khoản người dùng va các cơ
chế vượt qua thường gặp, từ đó phát triển xây dựng công cụ kiểm thử
2
Trần Quốc Hoàn - BI9DCAT077
Trang 16Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
Theo đó, đồ án của em sẽ bao gồm 3 chương theo cấu trúc:
- Chương 1: Xác thực và kiểm soát đặc quyền trên Windows: Trình
bày sơ bộ về các phương thức xác thực trên Windows và các thông tin
mà Windows sử dụng để kiểm soát đặc quyền
- Chương 2: Phương pháp lợi dụng phương thức xác thực để leo
thang đặc quyền: Trình bày một số phương pháp được sử dụng trong
quá trình khai thác, từ đó phân tích, làm rõ, mở rộng và chỉ ra nhiều
mục tiêu tấn công khác chưa được khám phá, đưa ra các biện pháp
phòng chống, phát hiện thích hợp
- Chương 3: Công cụ kiểm thử leo thang đặc quyền lợi dụng phương
thức xác thực: Trình bày về quá trình xây dựng công cụ kiêm thử Bắt
đầu từ bước lên ý tưởng, phân tích yêu cầu, thiết kế, phát trién, cho tới
khi hoàn thành và thử nghiệm.
3
Trần Quốc Hoàn - BI9DCAT077
Trang 17Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
CHUONG 1 XÁC THUC VÀ KIEM SOÁT ĐẶC QUYEN TREN
WINDOWS
Xác thực và kiểm soát đặc quyền là một những thành phần của hệ thống Windows để quản lý các hành động của đối tượng trong hệ thống từ đó tăng cường bảo
mật và tính toàn vẹn của hệ thống Trong chương này, đồ án sẽ làm rõ:
- Cac thông tin mà hệ thống sử dung dé kiểm soát đặc quyền của đối tượng
trên hệ thống
- _ Cách thức hoạt động của các phương thức xác thực trên hệ thống
1.1 Kiểm soát đặc quyền trên Windows
1.1.1 Mã định danh bao mật
Để quản lý quyền truy cập và kiểm soát truy cập vào các tài nguyên trong hệ thống Windows các nhà phát triển đã sử dụng một chuỗi số nhận dạng duy nhất cho
mỗi đối tượng, nó được gọi là Mã định danh bảo mật (Security identifiers — SID) Đối
tượng được cấp SID không chỉ là người dùng mà còn là nhóm miền, nhóm cục bộ, máy
tính cục bộ, miền, thành viên miền và dịch vụ Đề phân biệt các đối tượng này SID là
một dãy số có cau trúc rõ ràng với các thành phần chính là:
- Một Revision: Số hiệu phiên ban SID
- Một Identifier Authority: Gia trị định danh tác gia dài 48 bit xác định tac
nhân đã cấp SID, tác nhân này thường là một hệ thống cục bộ Windowshoặc một miền
- Một vài Subauthorities: Là một chuỗi gồm một hay nhiều giá trị quyền
phụ sử dụng đề định danh miền với các đối tượng không phải là một dịch
vụ hệ thống Trong trường hợp là SID của dịch vụ thì đây là giá trị băm
SHA-1 của tên dich vụ được viết hoa.
- Nhiéu nhất là một Relative Identifier — RID: Xác định một tài khoản hoặc
nhóm cu thé có liên quan đến một miễn, nếu là một dịch vụ thì sẽ không
có giá trị nay.
4
Trần Quốc Hoàn - BI9DCAT077
Trang 18Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
Vì SID có tập giá trị rất lớn và Windows quan tâm đến việc tạo các giá trị thực
sự ngẫu nhiên trong mỗi SID, nên hầu như Windows không thể phát hành cùng một
SID hai lần trên các máy hoặc miền ở bat kỳ đâu trên thế giới
Khi được hiển thị dưới dạng văn bản, mỗi SID mang một tiền tố S và các thànhphần khác nhau của nó được phân tách băng dau gach ngang nhu sau:
S-1-5-21-3407162097-421674631-3260644744-1103
“—————————
Cho biết giá trị định danh là miền hay là cục bộ
RID
Cho biết giá trị định danh tác giả là 5 (cơ quan bảo mật Windows)
Cho biết mức độ sửa đổi Cho biết chuỗi là SID
Hình 1.1: Các thông tin trong một SID thực tế
Windows cũng định nghĩa một số SID cục bộ và miền được tích hợp sẵn dé đại
diện cho các nhóm mặc định Bang 1.1, được sao chép từ tải liệu Windows App
Development[8] chứa một số SID hay gặp cùng với định nghĩa và cách sử dụng của
chúng Không giống như SID của người dùng, các SID này là các hằng số được xác
định trước và có cùng giá trị trên mọi miền và hệ thống Windows trên thế giới
> ThisPC > Local Disk (C:) » Windows » System32 >
^ Name Date modified Type Size Owner
[ MixedRealityRuntime.json 3/19/2019 11:46 AM JSON File 1KB_ Trustedlnstaller
|_| mlang.dat 3/ 19 11:44 AM DAT File 658 KB Trustedlnstaller
a mlang.dll (2019 11:44 AM Application exten 240KB Trustedlnstaller
= mmc.exe 3/19/2019 11:45 AM Application 1,760 KB Trustedlnstaller
a mmc.exe.config 19 11:49 AM CONFIG File 4KB SYSTEM
a mmcbase.dll 3/19/2019 11:45 AM Application exten 179KB Trustedlnstaller
a mmcndmar.dll /2019 11:45 AM Application exten 2,226 KB TrustedInstaller
|8 mmceshext.dll 19 11:45 AM Application exten 131KB Trustedlnstaller
E MMDevAPI.dll 3/19/2018 11:43 AM Application exten 466KB Trustedlnstaller [2] mmgaclient.dll /2018 11:44 AM Application exten 2,127 KB Trustedlnstaller
a mmgaproxystub.dll 3/19/2019 11:44 AM Application exten 152KB Trustedlnstaller
[=| mmgaserver.exe 3/19/2019 11:44 AM Application 1,517 KB TrustedInstaller
[) mmres.dil 3/19/2019 11:44 AM Application exten 4KB TrustedInstaller
Hình 1.2: Quan sát chu sở hữu cua các mô-ẩun trong thư mục system32
5
Trần Quốc Hoàn - BI9DCAT077
Trang 19Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyên trên Windows
SID Tên mô tả Định nghĩa & chức năng
Một nhóm không có thành viên Giá S-1-0-0 Nobody trị này thường được sử dụng khi
không biết giá tri SID.
Một nhóm bao gồm tat cả người dùng
S-1-1-0 Everyone
ngoại trừ Nobody.
Người dùng đăng nhập vào thiết bị
S-1-2-0 Local đầu cuối được kết nối cục bộ (vật lý)
với hệ thống
; Người dùng uy quyền của hệ điều S-1-5-18 NT Authority\SYSTEM
hanh.
Một nhóm có sẵn Thanh viên duy
nhất của nhóm sau khi cai đặt mới
Windows là tài khoản Administrator.
S-1-5-32-544 | BUILTIN\Administrators
Các tai khoản trong nhóm quan tri
viên của miền cũng nằm trong nhóm
1831038044- mô-đun quan trọng trên hệ điêu hành
1853292631- Windows Hình 1.2 thể hiện điều nay.
2271478464
S-1-5-82- IIS APPPOOLADefaultAppPool | Người dùng mặc định của một
3006700770- Application Pool trên IIS7 hoặc cao
424185619- or ¬ A 4:
hon Application Pool là một dịch vu
1745488364- ; a „ ;
794895919- cua IIS dé cô lập các website hoặc
4004696415 ứng dung web với nhau, giúp giảm
6
Trần Quốc Hoàn - BI9DCAT077
Trang 20Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
rủi ro và tăng hiệu suât.
Bảng 1.1: Một số SID Thường gặpMỗi khi người dùng đăng nhập vào hệ thống, Winlogon tạo một SID đăng nhập
(logon SID) duy nhất cho mỗi phiên đăng nhập tương tác (Interactive logon) Giá trị
SID này sẽ được sử dụng xuyên suốt trong quá trình xác định danh tính và cấp quyền
của phiên đăng nhập đó SID cho một phiên đăng nhập có dạng S-1-5-5-X-Y, trong đó
X và Y được tạo ngẫu nhiên
W explorer.exe:4260 Properties — oO <
Image Performance Performance Graph DistandNetwork GPUGranh Threads TCP/IP Security Environment Strings
F User PRONIKNOVENIYE \pentester
Mandatory LabelxMedium Mandatory Level Integrity
NT AUTHORITY Authenticated Users Mandatory
NT AUTHORITY SLi |_| } Mandatory
NT AUTHORITY This Organization Mandatory PRONIKNOVENIYE\Domain Users Mandatory S-1-5-21-3407162097-421674631-3260644744-526 Mandatory S-1-5-21-3407162097-421674631-3260644744-527 Mandatory
Lœ |] œeHình 1.3: Quan sát SID đăng nhập thông qua Process Explorer
1.1.2 Thẻ truy cập
7
Trần Quốc Hoàn - BI9DCAT077
Trang 21Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
Để mô tả phạm vi bảo mật của một tiến trình hoặc luồng trong hệ thốngWindows các nhà phát triển đã sử dụng một đối tượng gọi là thẻ truy cập (Access
Token) Trong AccessToken chứa các thông tin liên quan đến danh tính và đặc quyền
của tài khoản người dùng được liên kết với tiến trình hoặc luồng Khi người dùng đăng
nhập thành công thì thẻ truy cập này được tạo, chỉ tiết quá trình đăng nhập và tạo thẻ
truy cập được nói trong phần 1.2.1.1 của đồ án Mọi tiến trình được khởi chạy bởi
người dùng đều có một bản sao của thẻ truy cập này Các thẻ truy cập có kích thước
khác nhau vì các tài khoản người dùng khác nhau có các bộ đặc quyền và tài khoản
nhóm được liên kết khác nhau Tuy nhiên, tất cả các thẻ truy cập đều chứa các loại
thông tin giống nhau nhất định Nội dung quan trọng nhất của thẻ truy cập được trình
bày trong hình bên dưới.
Primary Group
Default Discretionary ñccess
Control List (DACLI
Source
Type
Impersonation Level
Statistics Restricting SID 1
Restricting SID n
TS Session ID Session Reference SandBox Inert
Trang 22Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
Hệ thống sử dụng thẻ truy cập dé xác định người dùng khi một luồng tương tácvới một đối tượng bảo mật hoặc cố gang thực hiện một tác vu hệ thống yêu cầu đặc
quyền Thẻ truy cập chứa tối thiểu các thông tin sau:
9
SID của tài khoản người dùng.
Danh sách SID của các nhóm mà người dùng này thuộc về
Một logon SID xác định phiên đăng nhập hiện tại.
Danh sách các đặc quyền do người dùng hoặc các nhóm của người dùngnăm giữ
SID của chủ sở hữu.
SID của nhóm chính.
DACL mặc định mà hệ thống sử dụng khi người dùng tạo một đối tượngbảo mật mà không chỉ định bộ mô tả bảo mật cụ thê
Nguồn gốc của token
Thông tin xác định token là mạo danh hay token chính.
Một danh sách tùy chọn các SID hạn chế
Mức độ mạo danh (nếu có).
Trần Quốc Hoàn - BI9DCAT077
Trang 23Đồ án tốt nghiệp
8 =plorer.ere:4260 - User PRONIKNOVENIYE\pentester - Tokenlrl 00000000-00057850 — h x
Main Details Groups Privileges Default Dacl Misc Operations Token Source Security
Set Integrity Level
Hình 1.5: Doc Access Token từ một tiễn trình bằng công cụ TokenViewer
Vì thẻ truy cập là đối tượng nằm trong bộ nhớ nhân của hệ điều hành, do đó cáctrường trong thẻ truy cập là bất biến dé đảm an toàn cho hệ thống Ngoại trừ các trường
được phép sửa đôi thông qua Windows API AdjustTokenPrivileges, dữ liệu như đặc
quyền va SID trong thẻ truy cập không bao giờ có thể được sửa đổi từ chế độ người
Trang 24Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
El walpe_env _ oO x
Microsoft Windows [Version 10.0.18362.30] ^
(c) 2019 Microsoft Corporation All rights reserved.
C:\Users\pentester\Desktop\share>whoami /user /priv
USER INFORMATION
proniknoveniye\pentester S-1-5-21-3407162097-421674631-3260644744-1103
PRIVILEGES INFORMATION
Privilege Name Description State
SeShutdownPrivilege Shut down the system Disabled
SeChangeNotifyPrivilege Bypass traverse checking Enabled
SeUndockPrivilege Remove computer from docking station Disabled
SeIncreaseWorkingSetPrivilege Increase a process working set Disabled
SeTimeZonePrivilege Change the time zone Disabled
Hình 1.6: Liệt kê đặc quyên thông qua câu lệnh whoami
Đặc quyền (Privileges) là những quyền hạn đặc biệt mà một tài khoản hoặc một
nhóm tài khoản có thé sử dụng đề thực hiện các thao tác nhạy cảm trên hệ thống, như
cài đặt phần mềm, thay đổi cấu hình, tạo hoặc xóa tài khoản khác Windows cung cấp
nhiều loại đặc quyền khác nhau, tùy thuộc vào vai trò và mục đích của tài khoản Đặc
quyền khác với quyền truy cập ở hai điểm chính:
- Quyén truy cập kiểm soát việc truy cập vào các đối tượng, trong khi đặc
quyên lại kiểm soát quyền truy cập vào tài nguyên hệ thống và các tác vụliên quan đến hệ thống
- Quản trị viên của hệ thống chỉ định đặc quyền cho tài khoản và nhóm,
trong khi hệ thống cấp hoặc từ chối quyền truy cập vào đối tượng dựa
trên mức độ toàn vẹn và quyền truy cập được cấp trong DACL của đối
Trang 25Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
một thẻ truy cập (access token) chứa danh sách các đặc quyền của người dùng, bao
gồm những đặc quyền được cấp cho người dùng hoặc cho các nhóm mà người dùng
thuộc về Lưu ý rằng các đặc quyền chỉ áp dụng cho máy tính cục bộ; tài khoản miền
có thê có các đặc quyền khác nhau trên các máy tính khác nhau
Khi người dùng cé gang thực hiện một thao tác đặc quyên, hệ thống sẽ kiểm trathẻ truy cập của người dùng để xác định xem người dùng có các đặc quyền cần thiết
hay không, nếu có hệ thống sẽ kiểm tra xem các đặc quyền đó có được bật hay không
Nếu người dùng không đạt các điều kiện này, hệ thống sẽ không thực hiện thao tác đặc
quyền nay
Đặc quyền Mô tả
Cho phép thực hiện yêu cầu hệ điều hành tắt
SeShutdownpPrivilege
máy hoặc khởi động lại
Cho phép một tiến trình nhận được thông báo về
SeChangeNotifyPrivilege các thay đôi trong hệ thống tập tin hoặc hệ
lượng bộ nhớ được câp phát cho nó
Cho phép một tiến trình thay đôi múi giờ hệSeTimeZonePrivilege ,
thông
Bảng 1.2: Một số đặc quyền mặc định được cấp trên Windows
Ngoài ra còn có một số đặc quyền quan trọng, có sự ảnh hưởng lớn với hệthống:
- Gỡ lỗi chương trình (SeDebugPrivilege): Day là đặc quyền bảo mật
được cấp cho các tiến trình cho phép chúng truy cập vào các tiến trìnhkhác dé thực hiện các hoạt động như đọc và ghi bộ nhớ, thay đôi các
12
Trần Quốc Hoàn - BI9DCAT077
Trang 26Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
thông số, hoặc tạm dừng và tiếp tục thực thi Đặc quyền này thường được
sử dụng bởi các công cụ gỡ lỗi, nhưng cũng có thé bị lợi dụng bởi các
phần mềm độc hại để ân, leo thang đặc quyền Đặc quyềnSeDebugPrivilege chỉ nên được cấp cho các tài khoản đáng tin cậy và cónhu cầu thiết yêu dé sử dụng nó
- Tao một đối tượng thẻ truy cập (SeCreateTokenPrivilege): Đặc quyền
cho phép một tiến trình tạo ra một thẻ truy cập mới với các thuộc tính vaquyền riêng của nó Đặc quyền này thường được sử dụng bởi các tiện ích
hệ thống hoặc các ứng dụng có nhu cau điều khiển các tiến trình khác
Tuy nhiên, đặc quyền này cũng có thê bị lợi dụng bởi các phần mềm độchai dé thực hiện các hoạt động xâm nhập hoặc đánh cắp dữ liệu Do đó,việc quản lý và giám sát đặc quyền này là rat cần thiết dé bảo vệ hệ thốngkhỏi các mối đe dọa
- Tai và gỡ trình điều khiến thiết bị (SeLoadDriverPrivilege): Đặc quyền
cho phép người dùng hoặc tiến trình nạp va gỡ bỏ trình điều khiến thiết
bị vào hệ thống Đây là một đặc quyền rất nhạy cảm, vì nó có thé được sử dụng dé thực thi mã độc hoặc thay đôi chức năng của hệ thống Đặc
quyền này chỉ nên được cấp cho những người dùng hoặc tiến trình có nhu cầu chính đáng và được tin tưởng Nếu đặc quyền này bị lạm dụng, nó có
thé gây ra hậu quả nghiêm trọng cho an ninh và 6n định của hệ thống
- Khôi phục tệp và thư mục (SeRestorePrivilege): Đặc quyền cho phép
người dùng khôi phục các tập tin và thư mục từ các bản sao lưu Đặc
quyền này cũng cho phép người dùng ghi đè lên các thuộc tính bảo mật của các đối tượng, như chủ sở hữu, quyên truy cập, và kiểm soát truy cập.
Đặc quyền này chỉ nên được cấp cho những người dùng đáng tin cậy, vì
nó có thé được sử dụng dé thay đổi hoặc xóa các tập tin và thư mục quan
trọng của hệ thống
13
Trần Quốc Hoàn - BI9DCAT077
Trang 27Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
- Lấy quyền sở hữu (SeTakeOwnershipPrivilege): Đặc quyền cho phép
người dùng hoặc tiến trình thay đổi chủ sở hữu của bat kỳ đối tượng nào
trong hệ thống, bao gồm cả các tệp, thư mục, registry key, thiết bị và các
đối tượng khác Đặc quyền nay được sử dung dé khôi phục quyền truy
cập vào các đối tượng bị từ chối hoặc bị hạn chế Đặc quyền này cũng có
thé được sử dụng để thực hiện các hành động xấu như xóa, sửa đôi hoặcsao chép các đối tượng nhạy cảm mà không cần phải tuân theo các quytắc bảo mật Đặc quyền này nên được gán cho những người dùng hoặctiến trình đủ tin tưởng và có nhu cầu chính đáng dé thay đôi chủ sở hữucủa các đối tượng
- Dac quyền chuyển đổi (SeTcbPrivilege): Đặc quyền cho phép một tiến
trình hoặc một tài khoản người dùng thay đổi thông tin đăng nhập của bat
kỳ tài khoản nào khác Đặc quyền này gọi là "đặc quyền chuyên đổi" vì
nó cho phép một tiến trình hoặc một tài khoản người dùng chuyền đổithành bất kỳ tài khoản nào khác mà không cần xác thực Đặc quyền nàychỉ được cấp cho các tài khoản hệ thống và các tiến trình hệ thống, vàkhông nên được cấp cho bất kỳ tài khoản người dùng nào khác, vì nó có
thé gây ra các rủi ro bảo mật nghiêm trọng Nếu một kẻ tan công có thé
chiếm quyền kiểm soát một tiến trình hoặc một tài khoản người dùng cóđặc quyền SeTcbPrivilege, họ có thé sử dụng nó dé dang nhap vao héthống với các quyền cao nhất, và thực hiện các hành động độc hai như
xóa đữ liệu, cài đặt phần mềm độc hại, hoặc chiếm quyền kiểm soát toàn
bộ hệ thống
14
Trần Quốc Hoàn - BI9DCAT077
Trang 28Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
1.2 Các phương thức xác thực trên Windows
Xác thực là một quá trình để xác minh danh tính của một đối tượng, dịch vụ
hoặc người Khi thực hiện xác thực một đối tượng mục tiêu là xác minh rằng đối tượng
đó là thật Khi thực hiện xác thực một dịch vụ hoặc người mục tiêu là xác minh rằng
thông tin đăng nhập được cung cấp là chính xác Trong phan này, đồ án sẽ trình bày về
hai phương thức xác thực trên Windows là NTLM và Kerberos.
1.2.1 NTLM
NTLM là một tập hop các giao thức xác thực được tạo bởi Microsoft Ban đầuđây là một giao thức độc quyền của Microsoft, nhưng sau đó hãng đã công bố công
khai dé sử dụng trên các hệ thống không phải Windows Trình quản lý mạng LAN NT
(NTLM - New Technology LAN Manager) cho phép các máy tính và máy chủ khác
nhau tiến hành xác thực lẫn nhau Hầu hết các mạng sẽ từ chối những người dùng truy
cập trái phép và yêu cầu thực hiện quy trình xác thực
Hình 1.7: Mô hình hoạt động cơ bản của NTLM
Giao thức NTLM xác thực máy tính khi truy cập một tài nguyên trên mạng bằngcách yêu cầu cung cấp tên người dùng và mật khâu tương ứng Do đó máy chủ và máy
khách phải được mở kết nối với nhau qua mạng Khi thông tin đăng nhập của người
15
Trần Quốc Hoàn - BI9DCAT077
Trang 29Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
dùng đã được xác thực, máy chủ sau đó thực hiện kiểm tra quyền truy cập và cho phép
người dùng truy cập.
16
Tran Quốc Hoan - BI9DCATO077
Trang 30Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
1.2.1.1 Mô hình hoạt động
a NTLM trong qua trình đăng nhập
Người dùng nhập thông tin
LSA kiểm tra người dùng
SA sử dụng dịch vụ Netlogon kiểm tra SAM trong miền S Xác thực
WinLogon khởi chạy, người dùng truy cập thành công
Hình 1.8: Mô hình hoạt động của NTLM trong quá trình đăng nhập
17
Trần Quốc Hoàn - BI9DCAT077
Trang 31Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
Trên Windows người dùng có thể đăng nhập vào máy tình bằng tài khoản cục
bộ hoặc tài khoản miền (nếu máy tinh này có trong miền), cả hai loại tài khoản này đều
phải thực hiện xác thực Với phương thức NTLM, các bước xác thực người dùng thực
hiện như trong hình phía trên:
- Sau khi gửi thông tin đăng nhập của từ trang đăng nhập, Winlogon sử
dụng GINA để gửi thông tin đăng nhập này đến LSA (Local SecurityAuthority) dé xử lý
+ GINA là một mô-đun DLL bảo mật của Winlogon Winlogon thực
hiện gọi GINA trong quá trình khởi động hệ thống Đường dẫn
mặc định của GINA là %windir%\System32\Msgina.dll (dll này đã
được loại bỏ từ phiên bản Windows Vista và được tích hợp vàoWinlogon), nó có thé được thay thé dé hỗ trợ các phương thức xácthực tuỳ chỉnh khác.
- LSA sử dụng cơ sở dữ liệu SAM (System Account Manager) trên máy
tính cục bộ nếu tài khoản và đối tượng được xác định là máy tính cục bộ
Nếu trong trường hợp là một người dùng của miền Active Directory lúcnày LSA sử dụng dịch vụ netlogon để truy vấn tên miền SAM trên DC(Domain Controller).
+ LSA (%windir%\System32\Isass.exe) là một hệ thống con bảo vệ
bảo mật, nó giúp tạo ra các tương tác an toản cho người dùng trong Windows
+ SAM là hệ thống lưu trữ thông tin về tài khoản người dùng cục bộ
trong bảng đăng ký Windows (Windows Registry) Mật khâutrong SAM được mã hóa bằng gói xác thực NTLM Kết quả của
mã hóa là một mật khẩu đã băm chuyên thành ban mã
- Khi thông tin đăng nhập được xác định là chính xác, và sau đó SAM gửi
thông báo chấp nhận đến LSA có chứa tài khoản người dùng SID và
18
Trần Quốc Hoàn - BI9DCAT077
Trang 32Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
SIDs của tất cả các nhóm được liên kết với tài khoản đó Sử dụng thông
tin này LSA thực hiện tạo thẻ truy cập cho tài khoản.
- Winlogon sau đó khởi động giao diện (ngoại trừ trường hợp tai khoản
được tạo bằng cách sử dung RunAs dé chạy trong tài khoản) người dùng
và đính thẻ truy cập vào tất cả các quy trình hiện tại
b NTLM trong truy cập tài nguyên dùng chun
NTLM sử dụng giao thức trả lời thử thách (challenge-response) đề kiểm tra tínhxác thực của người dùng trong mạng Dé làm như vậy, máy khách và máy chủ trải qua
các bước xác thực như sau:
1 Yêu cầu truy cập tài nguyên
2 Thử thách NTLM
CI
3 Trả lời thử thách NTML Thiết bị Máy chủ
( Điều khiển Miền
Hình 1.9: Mô hình xác thực NTLM trong truy cập tài nguyên dùng chung
(máy chu chia sẻ file SMB)
(1) Người dùng thực hiện truy cập tài nguyên được chia sẻ bằng thông tin đăng
nhập Khi bam đăng nhập tên người dùng được gửi đến máy chủ (trong vi
dụ nay là máy chủ SMB)
19
Trần Quốc Hoàn - BI9DCAT077
Trang 33Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
(2) Máy chủ tạo ra một số ngẫu nhiên 16 bit được gọi là thử thách (Challenge)
và gửi lại cho máy người dùng.
(3) Máy người dùng gửi câu trả lời cho thử thách (Response) là tài khoản và
mật khâu được mã hóa trở lại máy chủ
(4) Máy chủ gửi tên người dùng, thử thách và câu trả lời thử thách từ máy
khách đến máy chủ điều khiển miền - máy chủ DC (Domain controller)
(5) Máy chủ DC so sánh thách thức và phản hồi dé xác thực người dùng Nếu
trùng khớp, bộ điều khiển miền sẽ gửi xác nhận máy chủ rằng người dùng
đã được xác thực(6) Nếu thông tin đăng nhập hợp lệ, máy chủ cấp cho khách hàng quyền truy
cập vào dịch vụ hoặc tài nguyên được yêu cầu; Nếu không thì máy chủ từchối yêu cầu truy cập
1.2.1.2 Ưu nhược điểm
Một ưu điểm là xác thực thông qua NTLM không yêu cầu người dùng gửi mật
khẩu không được bảo vệ qua mạng Việc gửi mật khẩu từ máy khách đến máy chủ chỉ
được thực hiện dưới dạng các giá trị băm.
SC = 8-byte server challenge, random
CC = 8-byte client challenge, random
cc* = (X, time, CC2, domain name) v2-Hash = HMAC-MD5(NT-Hash, user name, domain name) LMv2 = HMAC-MD5(v2-Hash, SC, CC)
Trang 34Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
Tuy nhiên, các giá trị băm có nhược điểm là tương đương với mật khẩu Nếu
việc truyền tải bị chặn (tấn công MITM) thì việc thực hiện tấn công để lay duoc mat
khẩu với giá trị băm là không quá khó khăn nếu như mật khâu không đủ mạnh Hon
nữa mật khẩu trong NTLM được mã hoá khá đơn giản, với phiên bản NTLMVvI là hàm
băm MD4 kết hợp với mã hoá DES sử dụng key là thử thách từ server, với phiên bản
NTLMv2 là kết hợp của hàm băm mật khẩu với MD4 và HMAC-MDS kết hợp với giá
trị thử thách của server.
Một nhược điểm nữa là NTLM không bao gồm xác thực đa yêu tổ (MFA) Nênthực hiện một số cơ chế bảo mật, đặc biệt là khi chia sẻ dữ liệu nhạy cảm Giao thức trả
lời thử thách trong NTLM chỉ cho phép một phương thức xác thực duy nhất: đó là sử
dụng tên người dùng và mật khẩu
1.2.2 Kerberos
Kerberos là một giao thức xác thực, không phải cấp quyền Nói cách khác, nó
cho phép định danh người dùng khi người dùng nhập thông tin thực hiện xác thực,
nhưng nó không phê duyệt tài nguyên hoặc dịch vụ nào mà người dùng này có thê truy
cập Kerberos được sử dụng trong AD (Active Directory), trong nền tảng này Kerberos
cung cấp thông tin về các đặc quyền của mỗi người dùng, nhưng trách nhiệm của mỗi
dịch vụ là xác định xem người dùng có quyền truy cập vào tài nguyên của mình hay
không.
1.2.2.1 Mô hình hoạt động
Một số tác nhân trong giao thức xác thực Kerberos là:
- Máy tính hoặc tài khoản người dùng muốn truy cập vào dich vụ
- May chủ ứng dụng (Application Server - AP) cung cấp dịch vụ mà người
dùng yêu cau
- Trung tâm phân phối khóa (Key Distribution Center - KDC), dịch vụ
chính của Kerberos, chịu trách nhiệm phát hành vé (Ticket), được cài đặt
trên máy chủ DC (Domain Controller) Nó được hỗ trợ bởi dịch vụ xác
thực (Authentication Service - AS), đây là nơi phát hành TGT.
21
Tran Quốc Hoan - BI9DCAT077
Trang 35Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyên trên Windows
- Vé là các thành phần chính được xử lý trong Kerberos Các vé sẽ được
giao cho người dùng dé người dùng thực hiện các thao tác trên hệ thông
Kerberos Vé sẽ có hai loại:
+ Vé cấp phép dich vụ (Ticket Granting Service - TGS) là vé mà
người dùng có thể sử dụng để xác thực đối với một dịch vụ Nó
được mã hóa băng khóa của dịch vụ.
+ Vé cấp phép vé (Ticket Granting Ticket - TGT) là vé xuất trình
cho KDC dé yêu cầu TGS Nó được mã hóa bang khóa của KDC.
- Hau hét trong các vé đêu có câu trúc chứng chỉ thuộc tính đặc quyên
(Privilege Attribute Certificate - PAC), nhưng người dùng cũng có thể
thiết lập dé không dua PAC vào trong vé bang cách chỉ định
KERB-PA-PAC-REQUEST trong yêu cầu tạo vé Chứng chỉ này chứa các quyềncủa người dùng và được ký với khoá của KDC, nhưng trong quá trình cácdịch vụ xác minh PAC với KDC thì các quyền của người dùng lại khôngđược kiểm tra mà chỉ kiểm tra chữ ký của chứng chỉ này
- _ Trong các vé nói riêng hay trong Kerberos nói chung hầu hết thành phan
chứa thông tin quan trong đều được ký hoặc mã hoá để tránh bị giả mạo
Các khoá dé mã hoá/ký số trong kerberos là:
+
+
22
KJ KJ
KJ
KJ
hóa KDC hoặc krbtgt là gia tri bam NTLM cua tài khoản krbtgt.
hóa người dung là giá tri băm NTLM của tai khoản của người
dùng.
hóa dịch vụ là giá trị băm NTLM của tài khoản sở hữu dịch vụ,
có thể là tài khoản người dùng hoặc máy tính.
hóa phiên được thoả thuận giữa người dùng và KDC.
Trần Quốc Hoàn - BI9DCAT077
Trang 36Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
KDC (DC)
_VERIFY_PAC - itt of @ - asuodsa, Ajuan Dvd [4] [ [6] KERB
>me)
Hình 1.11: Mô hình tong quan về giao thức xác thực kerberos
Kerberos sử dụng các loại thông điệp trong quá trình xác thực khác nhau, cụ thể:
- KRB_AS REQ: Yêu cầu KDC gửi TGT
- KRB_ AS REP: KDC cung cấp TGT
- KRB TGS REQ: Sử dung TGT để yêu cầu KDC gửi TGS
- KRB_TGS REP: KDC cung cap TGS
- KRB AP REQ: Người dùng sử dung TGS để xác thực với dich vụ
- KRB AP REP: (Tùy chọn) Dịch vụ sử dụng để định danh đối với người
Trang 37Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
1.2.2.2 Quy trình xác thực
a Yêu câu và phản hôi dịch vụ xác thực
AS-REQ là một thông điệp được gửi đến dịch vụ xác thực (AS) của KDC Tất
cả những gi AS làm là trao đổi thông tin đăng nhập lấy vé Thông tin đăng nhập thường
là mật khâu Nhưng trong AS-REQ chúng ta không thay thông tin mật khẩu Đó là vi
thoả thuận khoá - không tiết lộ khoá
- Dau thời gian được mã hóa với khóa người dùng, dé xác thực người dùng
và ngăn chặn các cuộc tan công phát lai (relay)
- Tén người dùng của người dùng thực hiện xác thực
- Dich vụ SPN (Service Principal Name) liên kết với tài khoản krbtgt
- Mét Nonce được tạo bởi người dùng
24
Trần Quốc Hoàn - BI9DCAT077
Trang 38Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
User nonce
Hình 1.13: Sơ đô thông điệp AS-REO
Lưu ý: dau thời gian được mã hóa chỉ cần thiết nếu người dùng yêu cầu xác thựctrước, nhưng trong các xác thực thông thường thì luôn là như vậy trừ khi cờ
DONT REQ PREAUTH (tài khoản không yêu cầu xác thực kerberos trước khi đăng
nhập) được thiết lập trong tài khoản người dùng
Sau khi nhận được yêu cầu, KDC xác minh danh tính người dùng bằng cách sử
dụng mật khẩu đã biết của người dùng dé giải mã dấu thời gian Với một thông điệp
AS-REQ chính xác, thì KDC sẽ phản hồi bằng một thông điệp KRB_AS_REP:
Trang 39Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
+ Khóa phiên
+ Ngày hết hạn của TGT
+ PAC với đặc quyền người dùng, được ký bởi KDC
- Một khối dé liệu người dùng được mã hóa bằng khóa người dùng, bao
Khối dữ liệu người dùng được mã hoá bằng khoá người dùng để cho thấy rằng
phía phản hồi lại yêu cầu là KDC vì chỉ KDC biết mật khẩu của người dùng và chỉ có
đúng máy người dùng nhận được thì mới giải mã được khối dữ liệu này, điều này ngăn
chặn việc tấn công MITM.
b Yêu cầu và phản hoi dịch vụ cấp vẻ
TGS-REQ giống với AS-REQ về mặt cấu trúc thông điệp Sự khác biệt là dữliệu trước khi xác thực, đó là vé được mã hóa Đối với AS thì vé này là thông tin mật
khẩu còn với TGS là tên của dich vụ được yêu cầu và TGT[9] Cụ thé các thành phan
của TGS-REQ như sau:
26
Trần Quốc Hoàn - BI9DCAT077
Trang 40Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows
- Di liệu được mã hóa bằng khóa phiên:
+ Tên tài khoản
+ Dấu thời gian
- TGT
- SPN của dịch vụ được yêu cầu
- M6t Nonce được tạo bởi người dùngTGS nhận được thông điệp TGS-REQ thì tra preauth-data và trích xuất TGT từ
đó TGT được mã hóa băng khóa krbtgt (mật khẩu của tài khoản này) dé ngăn chặn tan
công MITM vì chỉ có KDC biết khoá này nên khi gửi AS-REP và nhận TGS-REQ phải
là cùng một giá trị đều có thể giải mã bằng khoá này
KDC tạo một phản hồi và thay vì mã hóa dữ liệu người dùng cho mật khâu của
người dùng nó mã hóa bằng khóa phiên.
27
Trần Quốc Hoàn - BI9DCAT077