Báo cáo hash injection
Trang 1Báo cáo Hash Injection
Thành viên :
Phạm Minh Lộc Đào Văn Tú
Đỗ Hồng Phúc Nguyễn Ngọc Cương
Trang 3Windows Hash
Khi ta tạo một password cho một tài
khoản,password sẽ không được lưu trữ trong hệ
thống dưới dạng clear text Việc lưu password dưới dạng clear text không phải là một ý tưởng hay bởi vì nếu một người nào đó truy xuất được tới file
password thì sẽ biết được mọi tài khoản lưu trong
hệ thống.
Nhưng có một điều là nếu không có password trên
hệ thống thì không thể chứng thực một user login
Trang 4 Xung quanh vấn đề này,những người phát
triển hệ thống đã hash password với một one way hash và lưu nó trên hệ thống.khi một
người log in,password nhập vào sẽ được
hash và đem kết quả so sánh với giá trị hash
đã được lưu trữ,nếu đúng thì sẽ cho phép
log in
Trang 5 Một one way hash là một hàm chuyển đổi
một input text string thành một output text
string duy nhất,tuy nhiên bởi vì là hàm một
chiều nên khi nhận vào output string sẽ
không có hàm nào chuyển ngược lại input
string ban đầu.chỉ có một cách duy nhất là
thử tất cả các input string có thể cho đến khi được output string đúng với output string cần tìm
Trang 6 Với lý do đấy nên nếu một hacker chiếm lấy được hash database họ cũng không thể ngay lập tức sử dụng nó để break hệ thống bởi vì password trước tiên cần phải được
crack.nếu một password đủ dài và phức tạp
nó có thể khiến cho hacker mất rất nhiều thời gian để crack ( hàng triệu năm đối với một
password tốt)
Trang 8LanManager (LM)
LAN Manager là một trong những định dạng mà Microsoft
LAN Manager và Microsoft Windows phiên bản trước để sử dụng Windows Vista để lưu trữ các mật khẩu người dùng có ít hơn 15 ký tự.Đây là loại băm là loại duy nhất của mã hóa được
sử dụng trong Microsoft LAN Manager,vì thế mà có tên LM,
và phiên bản của Windows đến Windows Me Nó cũng được
hỗ trợ trong nhiều phiên bản Windows gần đây cho tương thích,mặc dù trong Windows Vista và sau đó nó một cách rõ ràng phải được kích hoạt để sử dụng như nó bị tắt theo mặc định.
Trang 9LanManager (LM)
LM là cơ chế băm mật khẩu lâu đời nhất và kém an toàn nhất của Windows Mật khẩu được chia thành hai khối 7 ký tự Mỗi chuỗi băm một cách độc lập và nối 2 chuỗi băm lại Kết quả là một kẻ xâm nhập chỉ cần crack hai chuỗi băm 7 ký tự này và chỉ cần xem xét các ký tự hoa, số, và các ký hiệu để phá vỡ mật khẩu Điều này là rất dễ dàng để làm bằng cách sử dụng công nghệ ngày nay Cơ chế được sử dụng cho Window 3.1/95/98
Một khó khăn với LM như: về mặt xác thực là băm được gửi qua mạng với cơ chế mã hóa thấp khi làm một tên đăng nhập vào hệ thống mạng Cơ chế này làm cho nó có thể nắm bắt được chuỗi băm bằng cách sniffing mạng
Trang 10NT Lan Manager (NTLM)
người dùng với MD4 Đây là một băm mạnh hơn nhiều so với LM, cho phép sử dụng của tập ký tự Unicode, và nó không được chia thành ngắn hơn
Để tăng thêm an ninh, đăng nhập với NTLMv1 là
ta có thể thiết lập cho chuỗi không bao giờ được gửi qua mạng
Trang 12NT Lan Manager 2 (NTLMv2)
an toàn hơn nhiều để xác thực người nào đó qua mạng
Chiều dài chuỗi băm dài hơn nhiều
dùng MD4(NTLMv1), HMAC-MD5(NTLMv2)
Trang 13 Microsoft đã thông qua Kerberos như giao thức xác thực ưa thích cho Windows 2000 và Windows 2003 Active Directory domains.Kerberos thường được sử dụng khi một khách hàng thuộc về một miền Windows Server, hoặc nếu một mối quan hệ tin cậy với một miền Windows Server được thiết lập bằng cách khác (như Linux để xác thực Windows AD)
NTLM vẫn được sử dụng trong các tình huống sau đây:
-Các khách hàng được chứng thực vào một máy chủ sử dụng một địa chỉ IP.
-Các khách hàng được chứng thực vào một máy chủ mà thuộc
về một khu rừng khác nhau Active Directory, hoặc không thuộc về một miền
-Không tồn tại tên miền Active Directory (thường được gọi là
"nhóm làm việc" hay "peer-to-peer")
-Trong trường hợp một tường lửa nếu không sẽ hạn chế các cổng yêu cầu của Kerberos (trong đó có một số khá)
Trang 14Kerberos
Kerberos là một giao thức mật mã dùng để xác thực
trong các mạng máy tính hoạt động trên những đường truyền không an toàn Giao thức Kerberos có khả
năng chống lại việc nghe lén hay gửi lại các gói tin cũ
và đảm bảo tính toàn vẹn của dữ liệu Mục tiêu khi thiết kế giao thức này là nhằm vào mô hình chủ -
khách(client-server) và đảm bảo nhận thực cho cả hai
chiều.
Giao thức được xây dựng dựa trên mật mã đối xứng
và cần đến một bên thứ ba mà cả hai phía tham gia
giao dịch tin tưởng
Trang 15 Kerberos authentication dùng một server trung tâm để kiểm tra việc xác thực user và cấp phát thẻ thông
hành(service tickets )để user có thể truy cập vào tài
nguyên.kerberos là một phương thức rất an toàn trong authentication bởi vì chúng dùng cấp độ mã hóa rất
mạnh Kerberos cũng dựa trên độ chính xác của thời gian xác thực giữa Server và Client Computer, do đó cần đảm bảo có một time server hoặc authenticating servers được đồng bộ time từ các Internet time server Kerberos là nền tảng xác thực chính của nhiều OS như Unix, Windows
Trang 18 Để có tương thích với các hệ thống Windows cũ hơn, hầu hết các hệ thống mới đều có tất cả các cơ chế xác thực như trên.LM được kích hoạt để cho phép kết nối Windows với nhóm làm việc,
Windows 95 và Windows 98 Nếu bạn không phải chia sẻ một mạng lưới với các hệ thống này, bạn không cần nó và nó phải được vô hiệu hoá
để kiểm soát được các phiên bản LanMan của một
hệ thống có được chấp nhận hay không
Trang 19Nguyên lý xác thực
Trang 20Cached Credentials
tính nào đó trong miền thì password khi nhập vào sẽ được hash và cache lại trên máy tính đó
Registry tại
HKEY_LOCAL_MACHINE\SECURITY\CACH
E với các giá trị tương ứng là NL$1,NL$2 …chứa thông tin các user đã logon trước đó
Trang 21 Cached Credentials sẽ được sử dụng khi
một domain controller không hoạt động và
dùng để xác nhận một password,khi một user cung cấp một password để logon vào domain thì password đó sẽ được hash và đem so
sánh với giá trị hash của password đã được lưu trước đó trong cache,nếu đúng thì user
đó sẽ được phép log on,còn ngược lại thì
không
Trang 22Hash Dumpers
NTLM hash từ SAM Database (là một phần của registry dùng để quản lý các thông tin bảo mật)
được lưu trữ trong hệ thống từ những lần đăng nhập trước đó
Trang 23 Để nâng cao tính bảo mật thì file SAM sẽ
được mã hóa nhưng hầu hết các hash
dumpers biết làm thế nào để giải mã nó
dumper thì cần đến các user đặc quyền như administrator
Trang 24Demo 1_Mô hình Domain
Trang 25Mô hình g m 3 máy ồ
domain
với máy 1,2 nhưng không join vào domain
Trang 26Mô t quá trình t n công ả ấ
username và password của tài khoản admin cục bộ trên máy Client có thể mạo danh bất
kì tài khoản user domain nào log on vào máy Client để truy xuất đến domain controller lấy
dữ liệu về mà không cần username và
password của tài khoản đó
Trang 27Đi u ki n tiên quy t ề ệ ế
password tài khoản admin cục bộ trên máy Client
Trang 28Các Tools c n dùng ầ
Trang 29trình quản lý từ xa giống Symantec's PC
Anywhere
tương tác dòng lệnh trên remote systems
Trang 30 psexec [\\computer[,computer2[, ] | @file][-u user [-p psswd]][-n s][-l][-s|-e][-x][-i [session]][-c [-f|-v]][-w directory][-d][-<priority>][-a n,n, ] cmd [arguments]
accout
để thưc thi
Trang 31domain credentials, ngoài ra nó còn có thể lấy ra LSA, Wireless, và Active logon
sessions
system,để chạy nó trên một remote system thì cần ta cần sử dụng thông qua psexec
Trang 32 gsecdump [options]
options:
-h [ help ] show help
-a [ dump_all ] dump all secrets
-l [ dump_lsa ] dump lsa secrets
-w [ dump_wireless ] dump mircosoft
Trang 33cabcc:fa1d701b2YYYYYYYYYYYYYYYY71 5b5::: run cmd.exe
Trang 34 Tại máy Hacker dùng psexec để chạy chương trình gsecdump.exe từ xa trên máy Client
Trang 35 Chương trình gsecdump sẽ lấy ra toàn bộ cached credentials được lưu trên máy
workstation
Máy Client có tài khoản admin cục bộ là administrator và password là 123
Trang 36 Dùng msvctl để đăng nhập với quyền của userdomain3 thông qua giá trị hash của nó
Trang 37 Cửa sổ cmd với quyền hiện tại của userdomain3
Trang 38 Map 1 thư mục chia sẽ trên server về ổ đĩa bất kì
Xem các thư mục chia sẽ trên máy DC
Sử dụng lệnh net use để map thư mục share về thành ỗ đỉa cục bộ
Trang 39 Tùy theo quyền của userdomain3 trên thư
mục chia sẽ mà ta có quyền tương ứng với ổ đĩa map về
Tạo thư mục tailieu trong ổ đĩa Z
Trang 40 Chạy lại msvctl với quyền của user
admindomain (thuộc nhóm DomainAdmin của miền)
Trang 41 Lúc này với quyền của user admindomain ta có thể map ổ đĩa C: trên máy server về
Di chuyển đến thư mục chứa các tools
Trang 42 Thực hiện lệnh gsecdump -s để lấy ra toàn
bộ giá trị hash của các user lưu trong AD
Trang 43Với quyền hiện tại của admindomain ta không cần nhập username và password của máy Domain
Controller
Trang 44 Ta cũng có thể tạo user trên máy server
Trang 45T o 1 backdoor trên máy domain ạ
controller
làm ổ đĩa cục bộ (ổ đĩa i )
i( lúc này trên máy DC cũng sẽ xuất hiện file netcat tại thư mục share )
netcat trên máy DC
Trang 46 Copy netcat lên máy domain controller
Copy netcat vào thu muc fileserver trên DC
Trang 47 File nc.exe( netcat) đã được copy trong thư mục fileserver trên may DC
Trang 48 Dùng psexec để chạy chương trình netcat trên máy DC
Mở port 3333 trên máy DC
Trang 49 Từ máy Hacker dùng netcat truy cập vào port
3333 trên máy DC
Trang 50 Hacker có thể thực hiện các thao tác như trên máy DC
Trang 51 Hoặc ta cũng có thể telnet đến máy DC với port 3333
Trang 52 Cửa sổ telnet hiện ra,từ đây ta cũng có thể thực hiện toàn bộ thao tác trên máy DC
Trang 53 Tại máy DC dùng lệnh netstat để xem các kết nối trên máy tính
Trang 54 Ta thấy port 3333 hiện đang lắng nghe
Port 3333 đang được lắng nghe trên máy DC
Trang 55Cách phòng ch ng ố
cách tốt nhất là ta tắt cached credential trên máy đăng nhập để hacker không thể lấy ra
hash của các user domain đã đăng nhập
trước đó
cách
Trang 56 Để disable cached trên các máy cụ thể trong domain thì ta thực hiện trên máy đó.
Trang 57 Giá trị từ 0-50 ở đây có nghĩa là số lượng
user logon mà máy sẽ cached lại
Để disable thì ta chỉ cần chỉnh value về giá trị 0
Trang 58 Để disable cached trên toàn bộ các máy
trong domain thì ta tùy chỉnh policy trên máy domain controller
Trang 60Gi i Thi u v m t s tools ớ ệ ề ộ ố
Injection
Whosthere
Trang 61 Công cụ này sẽ liệt kê ra danh sách phiên
đăng nhập của người
dùng(user:domain:mảng băm LM và NT )
ở quyền Admin của máy đang chạy
người quản trị viên đăng nhập vào máy chủ
bị xâm nhập của máy để bàn từ xa.tại điểm
đó chỉ cần bạn chạy whosthere.exe là sẽ
thấy (user:domain:NTLM)
Trang 62Iam
Trang 63 Cấu trúc câu lệnh của tool Iam Là:
Iam.exe -r cmd.exe –b –h username:Domain hay tên địa chỉ Ip của máy đích( \\192.168.1.1):NT:LM
Trang 64 Chương trình này sẽ
dùng(user:domain:NTLM) đăng nhập vào
domain dưới quyền của user mà bạn băm ra được từ Whosthere ở trên
lệnh dưới quyền của user mà bạn đăng nhập
chia sẽ và map nó về.sử dụng file chia sẻ đó dưới quyền của user mà bạn đăng nhập
Trang 65 -D:Enable sửa lỗi thông tin
Option
Trang 69SMBRelay man-in-the-middle
Trang 70 Là một máy chủ SMB có thể thu thập các thông tin phân tách về đối tượng sử dụng và mật khẩu từ luồng thông tin SMB đi tới
tấn công MITM
Trang 71SMBRelay option
/D num - Set debug level, current valid levels: 0 (none), 1, 2 Defaults to
0
/E - Enumerates interfaces and their indexes
/IL num - Set the interface index to use when adding local IP addresses
/IR num - Set the interface index to use when adding relay IP addresses Defaults to 1 Use /E to display the adapter indexes
/L[+] IP - Set the local IP to listen on for incoming NetBIOS connections Use + to first add the IP address to the NIC Defaults to primary host IP
/R[-] IP - Set the starting relay IP address to use Use - to NOT first add each relay IP address to the NIC Defaults to 192.1.1.1
/S name - Set the source machine name Defaults to CDC4EVER
Trang 72SMBRelay man-in-the-middle Scenario
Trang 73Thiết lập mộ máy chủ SMBRELAY
giản Bước đầu tiên là chạy công cụ SMBRelay
bằng khóa chuyển đổi liệt kê để xác định một giao diện vật lí thích hợp mà trên đó ta có thể chạy
thiết bị nghe:
C:\ > smbrelay /E
Trang 74 Theo như ví dụ, giao diện với index2 là thích hợp nhất để ta lựa chọn vì nó là
một bảng vật lí có thể tiếp cận được từ một hệ
thống từ xa
Trang 75 Ta phải khởi chạy máy chủ khéo léo trên các hệ thống Windows
2000 vì các hệ điều hành sẽ không cho phép các quá trình khác kết nối cổng SMB TCP 139 khi mà hệ điều hành đang sử dụng cổng này Một cách khắc phục đó là tạm thời vô hiệu hóa cổng TCP 139 bằng cách kiểm tra Disable NetBIOS trên TCP/IP, cụ thể là ta lựa chọn Properties of the appropriate Local Area Connection, tiếp đó là Properties of Internet Protocol , nhấp vào nút Advanced, và tiếp đó chọn nút radio thích hợp trên WINDS tab,rồi chọn disble NETBIOS over TCP/IP Khi đã thực hiện xong,SMBRelay có thể kết nối TCP 139
Trang 77 Nếu như vô hiệu hóa TCP 139 không phải là một lựa chọn duy nhất thì kẻ tấn công phải tạo ra một địa chỉ IP ảo để dựa vào đó chạy máy chủ SMB giả Thật may mắn, SMBRelay cung cấp tính
năng tự động giúp thiết lập và xóa các địa chỉ IP
ảo sử dụng một khóa chuyển đổi lệnh đơn giản, /L+ ip_ address
C:\ > smbrelay /IL 2003 /IR 20003 /L+
192.168.30.54 /R- 192.168.30.54
Trang 79 Tiếp theo SMBRelay sẽ bắt đầu nhận những thỏa thuận vùng SMB Khi một máy khách nạn nhân thỏa thuận thành công một vùng SMB, sau đây trình tự SMBRelay thực hiện:
Trang 81-Máy chủ SMB bắt được user va password hash của máy Victim
-Nhưng chuỗi hash này đã được mã hóa
-Ta chỉ có thể dùng những phần mền Crackpass để bẻ khóa : Lpocrack
Trang 82 Nhưng đó không phải chức nang chinh của SMBRELAY ,hiện nay ta có thể xâm nhập máy khách chỉ bằng việc kết nối đơn giản qua điạ chỉ chuyển tiếp Dưới đây là những biểu hiện của nó:
C:\>net use * \\192.168.30.54\c$
Drive E: is now connected to \\192.168.30.130\c$
The command completed successfully
C:\>dir e:
Volume in drive G has no label
Volume Serial Number is 44FO-BFDD
Directory of G:\
12/02/2000 10:51p <Dir> Documents and settings
12/02/2000 10:08p <Dir> Inetpub
05/25/2001 03:47a <Dir> Program Files
05/25/2001 03:47a <Dir> WINNT
0 File(s) 0 bytes
4 Dir(s) 44,405,624,832, bytes free
Trang 83 Khi sử dụng SMBRelay thường phát sinh một số vấn đề Một lần thử kết nối từ một địa chỉ IP của nạn nhân đã cho và không thành công, tất cả các lần thử khác từ địa chỉ đó đều phát sinh lỗi đó (lỗi này là do thiết kế chương trình) Bạn cũng có thể gặp khó
khăn này ngay cả khi sự điều chỉnh ban đầu đã thành công nhưng bạn nhận được một thông tin như: "Login failure code:
0xC000006D." Khởi động lại SMBRelay giảm bớt những khó khăn đó (chỉ cần kích phím CTRL-C để dừng lại) Ngoài ra, bạn cũng có thể thấy sự kết nối sai từ bộ phận điều hợp Loopback
Trang 84 SMBRelay có thể không ổn định và kết quả không phải lúc
nào cũng đúng hoàn toàn, nhưng đã thực hiện thành công, đó
rõ ràng là một đợt tấn công phá hoại Máy trung tâm đã tiếp
cận hoàn toàn với tài nguyên của máy chủ đich mà không cần nhấc một ngón tay
Đương nhiên, khó khăn chủ yếu ở đây là: trước hết phải thuyết phục máy khách bị tấn công xác nhận với máy chủ MITM, tuy nhiên, chúng tôi đã bàn bạc một số phương pháp để giải quyết khó khăn này Ta có thể gửi cho máy khách bị tấn công một tin nhắn e-mail xấu với một siêu liên kết đã được gắn sẵn với địa chỉ của máy chủ MITM SMBRelay Hoặc thực hiện một tấn công độc hại ARP trống lại toàn bộ một mảng nào đó Làm
cho toàn bộ hệ thống trên phần đó phải xác nhận thông qua
máy chủ MITM bất hợp pháp