Thứ Năm, 10 tháng 3, 2016

Giảm thiểu thiệt hại khi bị tấn công tài khoản Local Administrator với Microsoft LAPS (theo DNA)

Có thể Giảm thiểu thiệt hại hiệu ứng "vết dầu loang" ?
Hackers, các chuyên gia ứng phó sự cố và các chuyên gia đánh giá an toàn thông tin đều hiểu rằng, tài khoản quản trị Local Administrator dùng chung một mật khẩu để quản lý tất cả các máy tính, từ máy chủ cho đến máy trạm trong hạ tầng hệ thống của tổ chức là một trong những lỗ hổng phổ biến và nguy hiểm nhất hiện nay.
Tài khoản quản trị Local Administrator dùng chung một mật khẩu là rủi ro nằm trong danh sách Top những lỗ hổng Nguy hiểm nhất theo báo cáo của Verizon năm 2014/2015 "Data Breach Investigations Reports".
0486.clip 5F00 image
Theo số liệu đến từ các dự án đánh giá an toàn thông tin của DNA năm 2015, gần như tất cả các khách hàng mà DNA thực hiện đánh giá an toàn thông tin đều tồn tại lỗ hổng này, vì lý do đó DNA nghĩ rằng cần phải chia sẻ công khai, nhân rộng hướng xử lý lỗ hổng này với toàn cộng đồng Internet Việt Nam và các khách hàng của DNA.
Cơ sở hạ tầng hệ thống sử dụng công nghệ Microsoft vẫn là mục tiêu nằm trong danh sách dễ bị tổn thương và khai thác nhất đối với lỗ hổng này, do Active Directory thường được triển khai theo cách: Các chuyên gia IT sẽ chuẩn bị một file ISO "Image" dùng cài đặt hệ điều hành được thiết lập sẵn tài khoản và mật khẩu Local Administrator, sau đó tiến hành cài đặt file này trên tất cả các máy trạm của tổ chức.
Local Administrator Password Solution - Microsoft LAPS
Khi một kẻ tấn công chiếm được quyền kiểm soát một máy trạm bất kỳ trong hệ thống, "Local Administrator Password Hash" sẽ dễ dàng bị đánh cắp và lợi dụng để truy cập đến tất cả các máy trạm còn lại bằng cách sử dụng kỹ thuật khai thác Pass-the-Hash (PtH). Đây là phương pháp tấn công được mô tả chi tiết trong báo cáo của FireEye/Mandiant M-Trends 2015.
Thời gian gần đây, Microsoft đã phát hành một công cụ mới, gọi là "Local Administrator Password Solution (LAPS)"giúp giảm thiểu thiệt hại đối với kỹ thuật tấn công Pass-the-Hash.
microsoft laps2
LAPS sẽ thay đổi mật khẩu của mỗi tài khoản Local Administrator thành từng mật khẩu riêng biệt (unique value) tương ứng với từng máy trạm, ngăn chặn việc dùng chung một mật khẩu. LAPS cũng cung cấp phần mềm giúp cho quản trị viên có thể quản lý các tài khoản Local Administrators từ một máy chủ trung tâm Centralized Server.
Kể từ khi kỹ thuật tấn công Pass-the-Hash trở thành một phần không thể thiếu trong quá trình đánh giá an toàn thông tin và các sự cố an ninh, đây là lần đầu tiên chúng ta thấy được cách thức giảm thiểu rủi ro này, cách nó xử lý những vấn đề tiềm ẩn liên quan đến Pass-the-Hash, cũng như những ảnh hưởng của nó đối với giới Hackers, cả tốt và xấu.
Trước khi có giải pháp này, những chiến thuật đặc trưng thường dùng để giảm thiểu thiệt hại đối với Pass-the-Hash là vô hiệu hóa cơ chế xác thực truyền thống SMB, vô hiệu hóa tính năng Printer và File Sharing, hoặc tự tạo và quản lý thủ công tài khoản Local Administrator với từng mật khẩu riêng biệt cho tất cả các máy trạm, đây được xem là việc bất khả thi nếu tổ chức có số lượng máy trạm từ hàng trăm máy trở lên. Rõ ràng không một chiến thuật nào trong số này là lý tưởng và phù hợp với công tác quản trị hệ thống.
LAPS hoạt động như thế nào ?
LAPS có một cách tiếp cận khác biệt so với những chiến thuật trên. LAPS không ngăn chặn việc truy cập đến các máy tính khác bằng kỹ thuật Pass-the-Hash, thay vào đó nó tập trung vào việc giảm thiểu mức độ ảnh hưởng của Pass-the-hash bằng cách gán cho mỗi tài khoản Local Administrator một mật khẩu hoàn toàn riêng biệt. Giúp chúng ta quản lý mật khẩu Local Administrator của các máy trạm đã join domain. Những mật khẩu này sẽ được lưu trữ tập trung tại Active Directory và giới hạn truy cập chỉ dành cho những người dùng có đặc quyền thông qua cơ chế kiểm soát ACL.
Điều này giúp hạn chế hiệu ứng "vết dầu loang" sau khi một máy trạm bị chiếm quyền kiểm soát. Khi kẻ tấn công chiếm được quyền truy cập vào máy này, chúng sẽ không thể truy cập đến các máy còn lại trong hạ tầng mạng bằng tài khoản Local Admin trên máy đã bị kiểm soát.
Vậy có thực sự Microsoft đã cung cấp một giải pháp giảm nhẹ hiệu quả đối với tấn công Pass-the-Hash ?
Điều đầu tiên, DNA xác nhận giải pháp này có khả năng giúp giảm thiểu thiệt hại đối với các cuộc tấn công từ kỹ thuật Pass-the-Hash. Tuy nhiên nó đòi hỏi việc thay đổi một số cấu hình tương đối phức tạp trong môi trường Active Directory hiện hành của tổ chức. Vì lỗ hổng này khá phổ biến và tương đối nghiêm trọng, DNA khuyến nghị Quý khách hàng nên triển khai thực hiện giải pháp này sau khi đã thử nghiệm trên môi trường UAT hoặc Lab.
Thử nghiệm của DNA
Trong môi trường thử nghiệm, DNA có một máy chủ Windows Server 2008 R2 SP2 Domain Controller và hai máy trạm Windows 7 trong hệ thống. Ở kịch bản thử nghiệm này, nhân viên IT Helpdesk của DNA đã thiết lập tài khoản mặc định Local Administrator với tên gọi "administrator" dùng chung một mật khẩu để quản trị hai máy trạm.
DNADC: 192.168.112.10  - DNA Active Directory Domain Controller
RECEPTION: 192.168.112.151 - Máy trạm đã bị chiếm quyền kiểm soát
HELPDESK: 192.168.112.160 - Máy trạm của người dùng bình thường, chưa bị khai thác
Như hầu hết các chiến dịch tấn công Advanced Persistent Threat, đầu tiên DNA thực hiện chiếm quyền kiểm soát máyRECEPTION bằng một loại Malware riêng, leo thang đặc quyền và đạt được SYSTEM-level shell trên máy này.
reception compromised
Bước tiếp theo, DNA sẽ sử dụng công cụ gọi là mimikatz để dump các thông tin mã hashes của người dùng từ memory, bao gồm cả mã hash (highlight vàng) của tài khoản quản trị "Administrator" đã đề cập ở phần trên
mimikatzm
Sau đó sử dụng module psexec_psh trong Metasploit để thực hiện tấn công thực thi mã từ xa (Remote Code Execution) bằng cách xác thực với đoạn hash đã đánh cắp được, đây chính là kỹ thuật Pass-the-Hash. Ở môi trường thực tế, DNA đã từng thực hiện đánh giá an toàn thông tin và sử dụng kỹ thuật này để chiếm quyền kiểm soát hơn 1200 máy trạm trong mạng lưới của khách hàng, do tất cả các máy này đều được quản trị bởi duy nhất một tài khoản Local Administrator dùng chung mật khẩu.
psexec pshpsexec psh2
Từ đây, kẻ tấn công có thể sử dụng những công cụ khác để tiếp tục chiếm quyền kiểm soát các máy trạm khác trong mạng, những máy sử dụng cùng một tài khoản Local Administrator. Đến giai đoạn này, kẻ tấn công có thể chiếm quyền máy trạm của các quản trị viên và leo thang đặc quyền thành Domain Administrator.
Vậy làm thế nào để giảm thiểu được lỗ hổng này trong phần thử nghiệm của DNA ? Tiến hành triển khai giải pháp LAPS, sau khi triển khai mỗi tài khoản Local Administrator trên từng máy trạm sẽ có mật khẩu riêng biệt không trùng nhau (unique password). Trong phần này DNA sẽ hướng dẫn Quý khách hàng thiết lập LAPS cho tài khoản quản trị mặc định "administrator", được quản lý bởi Active Directory. 
Triển khai cài đặt Local Administrator Password Solution LAPS 
LAPS Requirement
LAPS yêu cầu .NET Framework 4.0 và PowerShell 2.0 hoặc phiên bản cao hơn. Trên các máy chủ chịu trách nhiệm quản lý tài khoản Local Administrator (LAPS Management Computer), chỉ hỗ trợ từ Windows Server 2003 SP1 trở lên. Trên các máy trạm (LAPS Client), chỉ hỗ trợ từ Windows Vista SP2 trở lên (Không hỗ trợ Windows XP). Máy chủ Active Directory cần cập nhật schema để hỗ trợ LAPS bằng cách thêm hai attributes là ms-Msc-AdmPwd và ms-Mcs-AdmPwdExpirationTime. Những thuộc tính này được sử dụng để lưu trữ Local Administrator password và thời gian hết hiệu lực của password.
Nhìn chung có hai việc chính cần thực hiện khi triển khai LAPS: Một là thay đổi schema của Domain để thêm các thuộc tính mới; hai là cài file MSI Group Policy extension (nằm trong gói cài đặt LAPS) lên tất cả các client cần quản lý. Lưu ý: Bắt buộc phải cập nhật tất cả các bản vá và SP mới nhất từ Microsoft cho AD, nếu không sẽ xảy ra lỗi khi sử dụng PowerShell để cập nhật schema (DNA đã thử nghiệm trên máy chủ Windows Server 2008 R2 SP2 và PowerShell 2.0).
Để triển khai LAPS, Quý khách hàng có thể tải hướng dẫn và bộ cài đặt từ Microsoft Download Center, chú ý LAPS là giải pháp hoàn toàn miễn phí, có thể tải cả hai phiên bản x86 và x64: https://www.microsoft.com/en-us/download/details.aspx?id=46899
1. Trên máy chủ DNA Domain Controller, thực thi file cài đặt 32-bit installer, LAPS.x86.msi và thực hiện theo hướng dẫn
LAPS Installer
2. Sau đó click Next và Accepting the License agreement. Tiến hành cài đặt Management Tools (không cần cài AdmPwd GPO Extension trên DC, nó dành cho LAPS Client). Sau khi cài đặt hoàn tất, vào menu Start chúng ta sẽ thấy xuất hiện ứng dụng LAPS UI
 LAPS Server Install
3. Tiếp theo, chúng ta cần mở Windows PowerShell với quyền Admin. Tại cửa sổ PowerShell, tiến hành load LAPS Module và thực thi lệnh Update-AdmPwdADSchema
A.1 Import-Module AdmPwd.PS ==> Load LAPS Module
A.2 Update-AdmPwdADSchema ==> Cập nhật Domain schema
Ghi chú: Nếu gặp thông báo lỗi "This assembly is built by a runtime newer than the current and cannot be loaded". Có nghĩa là chúng ta chưa cài .NET 4 và PowerShell 3.0 hoặc phiên bản cao hơn.
Khi hoàn thành các câu lệnh này, sẽ có ba thông báo "Success" như hình
 update powershell
4. Bước kế tiếp chúng ta cần thiết lập Security Permissions để giới hạn chỉ cho phép một nhóm tài khoản có thể xem được dữ liệu mật khẩu của LAPS bằng command Find-AdmPwdExtendedRights –Identity "*Your OU record". Mặc định cho thấy chỉ có nhóm Domain Admins là có quyền xem được các mật khẩu đã lưu.
5. Cuối cùng, chúng ta cần cấp quyền để các máy trạm có thể cập nhật được giá trị của ms-Msc-AdmPwd và ms-Mcs-AdmPwdExpireationTime trong Active Directory, tiếp tục load module AdmPwd.PS (nếu chưa load) và thực thi lệnh Set-AdmPwdComputerSelfPermission. Lưu ý, cần thực thi câu lệnh này cho mỗi OU mà chúng ta cần quản lý.
update computerpermission
Đến lúc này, hạ tầng Active Directory đã được cấu hình để hỗ trợ LAPS, chỉ cần cài LAPS AdminPwd GPO Extension lên các máy tính cần quản lý và cấu hình GPO để enable LAPS là hoàn tất giai đoạn triển khai áp dụng giải pháp Local Administrator Password Solution. Đây là hình sử dụng LAPS UI để query mật khẩu Local Administrator của hai máy trạm RECEPTION và HELPDESK.
 LAPS success UI
Góc nhìn của kẻ tấn công
DNA thấy rằng chiến thuật này đã giảm thiểu tương đối thiệt hại từ kỹ thuật tấn công Pass-the-Hash, khiến cho kẻ tấn công mất đi khả năng chiếm quyền hàng loạt máy tính trên diện rộng. Tuy nhiên, khi triển khai giải pháp LAPS đồng nghĩa đây cũng là nơi lưu trữ tập trung tất cả Cleartext Passwords. Nếu những máy chủ và hạ tầng hệ thống quan trọng nằm dưới sự bảo vệ của LAPS mà AD cấu hình không đúng cách thì những thông tin mà LAPS bảo vệ sẽ trở thành mối đe dọa tương đối phức tạp. 
Tổng kết lại có ba điều quan trọng sau đây Quý khách hàng của DNA cần lưu ý khi triển khai áp dụng LAPS:
*  Đảm bảo rằng các thuộc tính AD được cấu hình đúng cách, không lộ thông tin mật khẩu đến những người dùng không có thẩm quyền
*  Đảm bảo rằng tất cả những tài khoản AD mà có quyền truy cập và xem dữ liệu LAPS phải là những tài khoản đặc quyền và được sử dụng đúng cách (Chỉ đăng nhập vào Domain Controllers, sử dụng mật khẩu mạnh và không chia sẻ cho người khác)
*  Thực hiện rà soát đánh giá an toàn thông tin để đảm bảo cấu hình được áp dụng chính xác.
Cuối cùng, hãy xem DNA thực hiện lại cuộc tấn công mà DNA đã thực hiện trước khi áp dụng LAPS. Kết quả cho thấy mã hash riêng biệt (unique hash) mà DNA đoạt được thông qua mimikatz giờ đây chỉ dành cho duy nhất chính máy RECEPTION, vô hiệu hóa hoàn toàn khả năng truy cập đến các máy khác bằng Pass-the-Hash. Tuyệt vời !
pth after laps

Mật khẩu Windows có thể bị crack như thế nào – Phần 2 (theo quantrimang)

Trong phần đầu của loạt bài này, chúng tôi đã giới thiệu cho bạn về các hash mật khẩu cũng như các cơ chế mà Windows sử dụng để tạo và lưu các giá trị đó. Trong phần đó, chúng tôi cũng nêu ra những điểm yếu của mỗi một phương pháp và cácđại lộ có thể bị những kẻ tấn công lợi dụng để crack các mật khẩu đó. Trong phần thứ hai và cũng là phần cuối này, chúng tôi sẽ giới thiệu cho các bạn về một số cách crack mật khẩu bằng các công cụ miễn phí khác nhau, qua đó cung cấp cho một số mẹo trong việc phòng chống lại các cách thức crack mật khẩu.
Cần phải lưu ý rằng các kỹ thuật được giới thiệu ở đây chỉ hoàn toàn cho mục đích nghiên cứu, không được sử dụng cho các hệ thống mà ở đó bạn không có quyền thẩm định.
Thu thập các hash mật khẩu
Để crack mật khẩu bạn phải thu được các hash được lưu bên trong hệ điều hành. Các hash này được lưu trong file SAM của hệ điều hành Windows. File SAM này nằm trên hệ thống tại C:\Windows\System32\config, tuy nhiên bạn không thể truy cập được nó khi hệ điều hành đang hoạt động. Các giá trị này cũng được lưu trong registry tại HKEY_LOCAL_MACHINE\SAM, tuy nhiên vùng registry này cũng không thể truy cập khi hệ điều hành được khởi chạy.
Có một số tùy chọn khác ở đây phụ thuộc vào mức độ truy cập mà bạn có đối với máy tính đang tiến hành thẩm định.
Truy cập vật lý
Nếu có thể truy cập vật lý, một trong những phương pháp hiệu quả nhất là khởi động máy tính bằng một hệ điều hành khác. Nếu cảm thấy thoải mái trong việc sử dụng Linux, bạn hoàn toàn có thể khởi động từ một Linux live CD có khả năng đọc các ổ đĩa NTFS, gắn partition Windows và copy file SAM sang ổ ngoài.
Nếu không quen với cách làm này, bạn có thể sử dụng Offline NT Password Editor của P. Nordahl, công cụ có thể được download tại đây. Đây là một phân phối Linux có thể khởi động, phân phối này được thiết kế để trợ giúp người dùng quên mật khẩu bằng cách cho phép họ thiết lập lại chúng. Phần mềm sẽ nhận dữ liệu đầu vào từ người dùng, tạo một hash hợp lệ và thay thế hash cũ trong file SAM bằng hash mới. Điều này khá hữu dụng vì chúng ta cũng có thể sử dụng phân phối này để đọc file SAM và lấy dữ liệu hash.
Để thực hiện điều đó, bạn hãy khởi động từ image CD và chọn partition hệ thống của mình, vị trí file SAM và cấu trúc registry, chọn tùy chọn thiết lập lại mật khẩu[1], khởi chạy registry editor [9] đi kèm, duyệt đến SAM\Domain\Account\Users, duyệt đến thư mục của người dùng mà bạn muốn truy cập, sử dụng lệnh cat để xem hash có chứa trong các file. Đầu ra sẽ có định dạng hex, tuy nhiên hoàn toàn có thể chuyển đổi định dạng này.

Hình 1: Đầu ra dạng hex của SAM hash
Trước khi sử dụng Offline NT Password Editor để thiết lập lại mật khẩu, cần bảo đảm rằng bạn hiện không sử dụng Encrypted File System (EFS) trên bất cứ phiên bản nào phát hành sau Windows XP/2003. Nếu bạn thực hiện điều đó, hệ điều hành mất các khóa EFS của nó và gây ra nhiều vấn đề khác chứ không chỉ một việc quên mật khẩu.
Trang 2: Truy cập qua giao diện phần mềm

Truy cập qua giao diện phần mềm
Nếu đang thực hiện các hành động thẩm định mật khẩu mà không có sự truy cập vật lý đến thiết bị đang được nói đến, tuy nhiên vẫn có thể truy cập qua giao diện phần mềm thông qua cơ chế remote desktop hoặc VNC, khi đó bạn có thể thu được các hash mật khẩu thông qua sử dụng tiện ích fgdump của Fizzgig, có thể download tiện ích tại đây.
Khi đã download được fgdump để sử dụng, bạn có thể chạy nó một cách đơn giản.

Hình 2: Cấu hình tiện ích Fgdump chạy
Khi hoàn tất, một file sẽ được tạo trong cùng thư mục mà tiện ích khởi chạy, file này gồm có danh sách tất cả các tài khoản người dùng, hash LM của họ và cả các hash NTLMv2.

Hình 3: Đầu ra của các hash mật khẩu thu được bởi Fgdump
Truy cập mạng
Cuối cùng nếu không có bất cứ sự truy cập tương tác nào với máy tính có các hash bạn muốn, giải pháp tốt nhất là cố gắng đánh hơi (sniff) các hash khi chúng được truyền tải trên mạng trong suốt quá trình thẩm định. Tất nhiên điều này sẽ chỉ hoạt động nếu máy khách đang chứng thực với bộ điều khiển miền hoặc đang truy cập tài nguyên trên một máy khách khác.
Nếu nằm trong cùng đoạn mạng với máy khách mục tiêu, bạn có thể sử dụng chương trình Cain & Abel để chặn các hash mật khẩu khi chúng được phát đi giữa các thiết bị. Cain & Abel là một tiện ích miễn phí có thể download tại đây. Sử dụng Cain & Abel, bạn có thể khởi tạo một quá trình có tên gọi “giả mạo ARP cache”, quá trình này được ví như một người ở giữa lợi dụng giao thức ARP để định tuyến lưu lượng giữa hai host thông qua máy tính của bạn. Giả mạo ARP cache là biện pháp tích cực, ngoài ra bạn có thể sử dụng bộ đánh hơi mạng đi kèm với Cain & Abel; nó có thể cho phép bạn chặn các hash mật khẩu NTLM khi đang truyền thông giữa các host giả mạo.
Trang 3: Crack mật khẩu bằng Cain & Abel

Crack mật khẩu bằng Cain & Abel
Lúc này chúng ta đã thực sự có các hash mật khẩu, nhiệm vụ tiếp theo cần thực hiện lúc này là crack chúng. Nếu đã download và cài đặt Cain & Abel thì bạn đã đi trước được một bước vì chúng ta sẽ sử dụng nó để crack các mật khẩu LM ví dụ.
Nếu chưa cài đặt Cain & Abel, bạn có thể download nó tại đây. Quá trình cài đặt diễn ra rất đơn giản. Bạn cũng sẽ gặp nhắc nhở cài đặt bộ capture dữ liệu WinPCap được sử dụng cho các tính năng đánh hơi của Cain & Abel. Khi đã cài đặt xong chương trình, bạn có thể khởi chạy nó và kích vào tab Cracker gần phía trên của màn hình. Sau khi thực hiện điều này, kích vào tiêu đề LM & NTLM Hashestrong panel bên trái, kích phải vào vùng trống ở phần trung tâm của màn hình và chọn Add to List.
Cain sẽ không chấp nhận một copy và paste đơn giản đối với hash mật khẩu, vì vậy bạn sẽ phải đặt hash vào một file văn bản được định dạng theo một cách đặc biệt. Nếu trích rút các hash của mình bằng fgdump thì bạn sẽ có file văn bản cần thiết của mình, file văn bản này có chứa các hash trên định dạng từng dòng.

Hình 4: Định dạng được chấp nhận của Passwords Hash
Nếu đã trích rút các Passwords Hash của mình một cách thủ công, bạn cần tạo một file có một entry cho mỗi tài khoản người dùng. Mỗi dòng có chứa username, phần nhận dạng quan hệ (RID) của SID người dùng và các hash. Định dạng của các thành phần này sẽ là:
Username:RID:LMHash:NTLMHash:::
Duyệt đến file này, chọn nó và kích next để import các hash vào Cain & Abel. Khi thực hiện xong, bạn có thể kích phải vào tài khoản mà ở đó bạn muốn crack mật khẩu của nó, chọn tùy chọn Brute Force Attack, chọn LM hashes. Phương pháp tấn công brute force là phương pháp cố gắng kết hợp các mật khẩu với giá trị hash cho tới khi tìm thấy sự thỏa khớp. Trên màn hình sau đó, bạn có thể chọn các ký tự mà mình muốn sử dụng cho tấn công brute force, chiều dài mật khẩu cực tiểu và cực đại. Lưu ý rằng tập ký tự sẽ tự động được cấu hình để chỉ sử dụng các ký tự in hoa và số với chiều dài tối đa là 7, do các đặc tính của LM hash.
Trong kịch bản ví dụ, với mật khẩu PassWord123, chúng ta sẽ thấy ngay lập tức các kết quả hoàn chỉnh khi chương trình trả về “Plaintext of 664345140A852F61 is D123”. Kết quả cũng cho thấy chúng ta đã crack nửa thứ hai của hash mật khẩu. Trên một máy tính hiện đại, việc tiến hành thử để tìm ra sự kết hợp mật khẩu duy nhất có thể phải mất đến khoảng 2,5 đến 3 giờ để đảm bảo cho một thành công thực sự.

Hình 5: Cain crack thành công LM Password Hash
Crack mật khẩu bằng John the Ripper
Cain & Abel thực hiện khá tốt công việc crack các LM password nhưng nó khá chậm và khi thực hiện crack NTLMv2 hash, quá trình của nó thậm chí còn chậm hơn rất nhiều. Nếu chưa có nhiều kinh nghiệm hoặc cảm thấy không thích dòng lệnh cho các hành động crack mật khẩu, John the Ripper chính là một trong những cỗ máy crack khá được ưa thích và có tốc độ nhanh nhất mà chúng tôi từng thấy.
Có thể download John the Ripper từ đây. Khi đã trích rút các nội dung của file, bạn sẽ tìm thấy file thực thi john-386.exe trong thư mục con /run. John có thể chạy ở một vài chế độ khác, tuy nhiên để chạy nó trong chế độ mặc định, tất cả những gì bạn cần thực hiện là cung cấp file có chứa password hash như một đối số (argument) khi chạy john-386.exe từ nhắc lệnh.

Hình 6: John the Ripper đang cố gắng crack mật khẩu
Khi hoàn tất, John the Ripper sẽ hiển thị các mật khẩu đã được crack và lưu các kết quả vào file john.pot của nó. Trong hầu hết các trường hợp, chế độ crack mặc định là khá ổn, tuy nhiên John the Ripper cũng có các chế độ crack khác như:
  • Single Crack Mode – Sử dụng các biến tên tài khoản
  • Wordlist Mode – Dựa vào một từ điển để đoán mật khẩu
  • Incremental Mode – Dựa vào tấn công kiểu brute-force
  • External Mode – Dựa vào một ứng dụng khác (được người dùng cung cấp) để đoán mật khẩu.
John rất hiệu quả trong tất cả các chế độ crack và là một chương trình mà tôi lựa chọn cho việc crack mật khẩu.
Crack mật khẩu bằng các bảng cầu vồng (Rainbow Table)
Khi bạn nghi ngờ sự phức tạp và tiêu tốn nhiều thời gian cho việc crack một mật khẩu NTLMv2, chỉ có quyết định hợp lý nhất là sử dụng các bảng cầu vồng. Bảng cầu vồng là một bảng tra cứu có chứa các password hash cho mỗi sự kết hợp mật khẩu có thể được đưa ra để thuật toán mã hóa sử dụng. Như những gì bạn có thể hình dung, các bảng cầu vồng có thể tiêu tốn khá nhiều không gian lưu trữ. Trước đây, các bảng này vượt quá khả năng xử lý của bộ vi xử lý và không gian lưu trữ chuyên sâu cho việc tạo và lưu, tuy nhiên với sự phát triển của máy tính hiện đại, những tester cũng như các hacker mã độc đều có thể dễ dàng sử dụng các ổ cứng ngoài để lưu trữ một loạt các bảng cầu vồng.
Tìm một nơi tạo hoặc download tập hợp các bảng cầu vồng chính là Google search, tuy nhiên có nhiều phương pháp tốt hơn cho một cracker mật khẩu. Một phương pháp như vậy là sử dụng dịch vụ web có chứa tập các bảng cầu vồng của chính  nó. Dịch vụ web như vậy bạn có thể được tìm thấy tại đây. Website này duy trì rất nhiều tập hợp các bảng cầu vồng mà bạn có thể đệ trình các password hash cho việc crack, cùng với đó là một danh sách các mật khẩu đã bị hack gần đây.
Để đệ trình các hash tới plain-text.info, bạn có thể kích liên kết Add Hashes để chỉ định hash và chế độ mã hóa. Nếu hash này đã bị crack thì bạn sẽ thấy kết quả hiển thị, còn không nó sẽ đệ trình hash vào hàng đợi. Có thể kiểm tra trạng thái hàng đợi bằng cách vào liên kết Search và tìm kiếm hash, khi đó nó sẽ cho bạn biết vị trí trong hàng đợi của bạn. Các mật khẩu phức tạp có thể tiêu tốn khá nhiều thời gian thông qua phương pháp này, tuy nhiên nó còn cho thấy nhanh hơn việc cho phép thực hiện trên phần cứng của riêng bạn.
Trang 4Việc bảo vệ trước các hành động crack mật khẩu

Việc bảo vệ trước các hành động crack mật khẩu
Mọi người thường nghĩ rằng mục tiêu của mã hóa là làm cho văn bản qua mã hóa trở thành một thứ gì đó mà không ai có thể giải mã được, tuy nhiên đây chỉ là một chút khái niệm. Suy nghĩ đó dựa vào sự tin tưởng rằng các máy tính có khả năng tạo các số ngẫu nhiên cho các mục đích mã hóa, tuy nhiên trong tất cả các máy tính trung thực đều không thực hiện “random” tốt đến như vậy, vì “random” là một logic lập trình dựa hoàn toàn trên sự tin cậy. Chính vì vậy, mục tiêu thực sự của mã hóa là làm cho văn bản qua mã hóa trở nên khó crack đến nỗi lượng thời gian bỏ ra để có thể crack nặng hơn lợi ích thu được trong việc thực hiện hành động crack đó.
Với tư duy đó, có một vài thứ có thể được thực hiện trên một hệ điều hành để tránh bị crack mật khẩu.
Sử dụng mật khẩu phức tạp và liên tục thay đổi
Cách logic nhất để tránh bị crack mật khẩu là làm cho mật khẩu của bạn trở nên phức tạp “đến nỗi không ngờ”. Nếu mật khẩu của bạn gồm có các ký tự in thường, in hoa, chữ số, các ký hiệu đặc biệt và tương đối dài, nó sẽ không thể bị crack với một số lượng thời gian ngắn. Để làm tăng độ phức tạp thêm nữa, hãy thay đổi mật khẩu của bạn một cách thường xuyên. Không có biện pháp phòng ngừa nào hơn việc sử dụng một mật khẩu mạnh và thay đổi nó thường xuyên.
Vô hiệu hóa LM Hash
Giờ đây bạn đã biết được những yếu điểm của LM hash. Một điều tốt chúng ta là không phải sử dụng chúng nữa. Các hệ điều hành Windows hiện đại có thể được cấu hình để sử dụng NTLMv2 độc quyền với một vài thay đổi registry.
Bạn có thể vô hiệu hóa kho lưu trữ LM hash bằng cách duyệt đến HKLM\System\CurrentControlSet\Control\LSA trong registry. Khi đã ở trong đó, hãy tạo một khóa DWORD có tên NoLMHash, với giá trị bằng 1.
Một bước nữa là vô hiệu hóa thẩm định LM trong toàn mạng. Lần nữa, bạn duyệt đến HKLM\CurrentControlSet\Control\LSA. Khi ở trong đó, tìm đến khóa có tênLMCompatibiltyLevel. Giá trị của nó có thể được thiết lập bằng 3 cho mục đích gửi đi thẩm định NTLMv2, đây là cách thức tuyệt vời cho các máy khách trong miền. Ngoài ra có thể thay đổi giá trị của nó thành 5, đây là giá trị được sử dụng để cấu hình thiết bị nhằm chấp nhận các yêu cầu thẩm định, tuyệt vời cho các máy chủ.
Chí có một trường hợp mà ở đó các thiết lập này có thể gây ra vấn đề là trường hợp mà trong đó bạn có các máy tính Windows NT 4 và phiên bản cấp thấp hơn trong mạng. Chính vì vậy, nếu vẫn có các hệ thống đó trên mạng, hãy loại bỏ chúng là lời khuyên bảo mật tốt nhất mà chúng tôi đưa đến bạn.
Sử dụng SYSKEY
SYSKEY là một tính năng Windows có thể được sử dụng để add 128 bit mã hóa mở rộng vào file SAM. SYSKEY làm việc bằng cách sử dụng một khóa của người dùng được sử dụng để mã hóa file SAM. Khi kích hoạt, SYSKEY không thể bị vô hiệu hóa.
Bạn cần lưu ý rằng SYSKEY chỉ bảo vệ bản thân file SAM, bảo vệ nó trống lại hành động copy. SYSKEY không bảo vệ chống lại các công cụ trích rút các hash từ bộ nhớ đang chạy, chẳng hạn như Cain và fgdump.
Bạn có thể tìm hiểu thêm thông tin về SYSKEY tạihttp://support.microsoft.com/kb/143475.
Kết luận
Crack mật khẩu là một kỹ năng cho những ai muốn cố gắng đột nhập vào một hệ thống, cũng chính vì điều đó mà mỗi quản trị viên hệ thống cần phải hiểu các mật khẩu được lưu như thế nào, chúng có thể bị đánh cắp và bị bẻ khóa ra sao. Khi một kẻ xâm nhập đã chọc thủng được hệ thống, mục tiêu của chúng sẽ được hoàn thành hơn nửa nếu người dùng của bạn đang sử dụng các mật khẩu đơn giản. Cần nhớ rằng, những gì bạn biết là một nửa trận chiến, vì vậy nếu bạn nắm được các thông tin này và không làm gì với nó thì bạn chỉ có được một nửa chiến thắng. Sử dụng các kỹ thuật phòng chống được cung cấp trong bài, bạn sẽ ngăn chặn được việc những kẻ tấn công thỏa hiệp mật khẩu trong hệ thống của mình.

Mật khẩu Windows có thể bị crack như thế nào - phần 1 (theo quantrimang)

Giới thiệu
Mật khẩu (Password) thường là con đường chủ đạo trong việc phòng chống sự xâm nhập bừa bãi. Tuy vậy dù một kẻ tấn công không có truy cập vật lý (trực tiếp) đến máy tính, chúng vẫn có thể truy vập vào máy chủ thông qua giao thức máy trạm từ xa (remote desktop) hoặc xác thực một dịch vụ thông qua một ứng dụng web bên ngoài.
Mục đích của bài viết này nhằm giới thiệu cho các bạn cách Windows tạo và lưu các hash mật khẩu và cách các hash mật khẩu đó bị crack như thế nào. Sau khi giới thiệu cách crack mật khẩu Windows, chúng tôi sẽ cung cấp cho các bạn một số mẹo để bảo vệ bạn tránh được các lỗ hổng trong các kiểu tấn công này.
Windows lưu mật khẩu như thế nào
Windows sử dụng hai phương pháp hash mật khẩu người dùng, cả hai đều có những điểm mạnh và điểm yếu riêng. Đó là LAN Manager (LM) và NT LAN Manager version 2 (NTLMv2). Hàm hash (hash function) là hàm một chiều mà nếu đưa một lượng dữ liệu bất kì qua hàm này sẽ cho ra một chuỗi có độ dài cố định ở đầu ra.
Hash mật khẩu LAN Manager (LM)
Hash LAN Manager là một trong những thuật toán hash mật khẩu đầu tiên được sử dụng bởi các hệ điều hành Windows, chỉ có một phiên bản duy nhất được hỗ trợ cho tới khi xuất hiện NTLMv2 sử dụng trong Windows 2000, XP, Vista và Windows 7. Các hệ điều hành mới này vẫn hỗ trợ sử dụng các hash LM để có khả năng tương thích. Mặc dù vậy, nó đã bị vô hiệu hóa mặc định trong Windows Vista và Windows 7.
Hash mật khẩu loại này được tính bằng một quá trình 6 bước sau:
  1. Mật khẩu người dùng được chuyển đổi thành tất cả các ký tự in hoa.
  2. Mật khẩu được bổ sung thêm các ký tự 0 vào cho tới khi có đủ 14 ký tự.
  3. Mật khẩu mới được chia thành hai hash có 7 ký tự.
  4. Các giá trị này được sử dụng để tạo hai khóa mã hóa DES, mỗi nửa đều được thêm vào một bit chẵn lẻ để tạo các khóa 64 bit.
  5. Mỗi khóa DES sẽ được sử dụng để mã hóa một chuỗi ASCII định sẵn (KGS!@#$%), cho kết quả ra trong hai chuỗi văn bản mật 8-byte.
  6. Hai chuỗi văn bản mật 8-byte này sẽ được kết hợp để tạo thành một giá trị 16-byte, giá trị này chính là một hash LM hoàn chỉnh.
Trong thực tế, mật khẩu “PassWord123” sẽ được chuyển đổi như sau:
  1. PASSWORD123
  2. PASSWORD123000
  3. PASSWOR and D123000
  4. PASSWOR1 and D1230001
  5. E52CAC67419A9A22 and 664345140A852F61
  6. E52CAC67419A9A22664345140A852F61

Hình 1: Một mật khẩu được biến đổi thành một LM hash
Các mật khẩu tuân theo phương pháp LM hash có một số nhược điểm. Nhược điểm đầu tiên cần kể đến là sự mã hóa ở đây dựa vào Data Encyrption Standard (DES). DES khởi đầu từ một dự án của IBM vào những năm 70, dự án sau đó bị sửa đổi bởi NIST, được bảo trợ bởi NSA và được phát hành như một chuẩn ANSI vào năm 1981. DES được cho là khá an toàn trong nhiều năm sau những nghiên cứu kỹ lưỡng trong những năm 90 nhờ kích thước key 56-bit của nó. Tuy nhiên đến đầu năm 1998, Electronic Frontier Foundation thông báo là đã có thể crack DES trong khoảng thời gian 23 giờ. Từ đó, DES được xem như đã lỗi thời và cũng từ đó nó được thay thế bằng Triple-DES và AES. Tuy nhiên đây cũng là các chuẩn mã hóa đã có nạn nhân thiệt mạng với sức mạnh tính toán hiện đại và có thể bị crack một cách dễ dàng.
Có lẽ điểm mạnh lớn nhất trong LM hash chính là trong quá trình tạo các khóa (key) DES. Trong quá trình này, một mật khẩu được cấp bởi người dùng sẽ tự động chuyển đổi tất cả thành in hoa, sau đó được chèn thêm thành chuỗi có độ dài 14 ký tự (đây là chiều dài tối đa cho mật khẩu theo phương pháp LM hash), tiếp đó được chia thành hai hash 7 ký tự. Đây là một điểm yếu khi bạn chuỗi mật mã bị chia nhỏ và chỉ được phép sử dụng các ký tự ASCII in hoa. Xét về bản chất, thuật toán này làm cho việc sử dụng các ký tự khác cũng như tăng chiều dài mật khẩu trở nên vô nghĩa, đó chính là điều làm cho các mật khẩu LM trở nên hổng đối với các cố gắng crack lặp lại nhiều lần (brute-force).
Hash mật khẩu NTLMv2
NT LAN Manager (NTLM) là một giao thức thẩm định của Microsoft, giao thức này được tạo ra để kế vị LM. Có nhiều tải tiến, NTLMv2 được chấp nhận như một phương pháp thẩm định mới đáng để lựa chọn và được thực thi trong Windows NT 4.
Quá trình tạo một NTLMv2 hash (từ lúc này trở về sau chúng ta viết tắt là NT hash) là một quá trình đơn giản hơn nhiều với những gì mà hệ điều hành thực hiện, nó dựa vào thuật toán hash MD4 để tạo hash nhờ một loạt các tính toán toán học. Thuật toán MD4 được sử dụng ba lần để tạo NT hash. Trong thực tế, mật khẩu “PassWord123” sẽ có kết quả là “94354877D5B87105D7FEC0F3BF500B33” sau khi sử dụng thuật toán MD4.

Hình 2: Mật khẩu được chuyển đổi thành một NTLMv2 hash
MD4 được coi là mạnh hơn đáng kể so với DES vì nó cho phép mật khẩu có chiều dài dài hơn, có sự phân biệt giữa các ký tự in thường và in hoa, không chia mật khẩu thành các phần nhỏ hơn (điều tạo sự dễ dàng trong việc crack).
Có lẽ phàn nàn lớn nhất với các NTLMv2 hash là rằng Windows không sử dụng kỹ thuật mang tên salting (tạm được dịch là ướp muối). Salting là một kỹ thuật mà trong đó một số ngẫu nhiên được tạo ra để tính toán hash cho mật khẩu. Điều này có nghĩa rằng cùng một mật khẩu có thể có hai giá trị hash khác nhau hoàn toàn, đây thực sự là điều lý tưởng.
Trong trường hợp này, người dùng có khả năng tạo những gì được gọi là các “bảng cầu vồng” (rainbow table). Các bảng cầu vồng này không phải  là các bảngđược trang điểm rực rỡ; mà chúng thực sự là các bảng có chứa các giá trị hash cho số lượng mật khẩu có thể đối với một số lượng ký tự nào đó. Sử dụng bảng cầu vồng, bạn có thể lấy một cách đơn giản giá trị hash được trích rút được từ máy tính mục tiêu và thực hiện một tìm kiếm. Khi giá trị hash được tìm thấy trong bảng, bạn sẽ có mật khẩu. Như những gì bạn có thể hình dung, một bảng cầu vòng thậm chí chỉ với một số lượng nhỏ các ký tự cũng có thể trở thành rất lớn, có nghĩa rằng sự sinh sôi, lưu trữ và đánh chỉ số cho chúng sẽ là một nhiệm vụ khó khăn.
Kết luận
Trong phần đầu tiên của loạt bài này, chúng tôi đã giải thích cho các bạn về các hash mật khẩu và các cơ chế Windows sử dụng để tạo và lưu trữ các giá trị đó. Chúng tôi cũng đã giới thiệu những điểm yếu của mỗi phương pháp và những đại lộ có thể được sử dụng để crack các mật khẩu đó. Trong phần tiếp theo của loạt bài này chúng tôi sẽ giới thiệu cho các bạn về quá trình trích rút và crack các hash này để minh chứng cho những điểm yếu của nó. Khi đã minh chứng xong, chúng tôi sẽ cung cấp cho các bạn một số lớp bảo mật bổ sung và tạo một mật khẩu mạnh thực sự.
HÀM HASH
Hàm hash (hash function) là hàm một chiều mà nếu đưa một lượng dữ liệu bất kì qua hàm này sẽ cho ra một chuỗi có độ dài cố định ở đầu ra.
Ví dụ, từ "Illuminatus" đi qua hàm SHA-1 cho kết quả E783A3AE2ACDD7DBA5E1FA0269CBC58D.
Ta chỉ cần đổi "Illuminatus" thành "Illuminati" (chuyển "us" thành "i") kết quả sẽ trở nên hoàn toàn khác (nhưng vẫn có độ dài cố định là 160 bit) A766F44DDEA5CACC3323CE3E7D73AE82.

Hai tính chất quan trọng của hàm này là:
• Tính một chiều: không thể suy ra dữ liệu ban đầu từ kết quả, điều này tương tự như việc bạn không thể chỉ dựa vào một dấu vân tay lạ mà suy ra ai là chủ của nó được.
• Tính duy nhất: xác suất để có một vụ va chạm (hash collision), tức là hai thông điệp khác nhau có cùng một kết quả hash, là cực kì nhỏ.

Một số ứng dụng của hàm hash:
• Chống và phát hiện xâm nhập: chương trình chống xâm nhập so sánh giá trị hash của một file với giá trị trước đó để kiểm tra xem file đó có bị ai đó thay đổi hay không.
• Bảo vệ tính toàn vẹn của thông điệp được gửi qua mạng bằng cách kiểm tra giá trị hash của thông điệp trước và sau khi gửi nhằm phát hiện những thay đổi cho dù là nhỏ nhất.
• Tạo chìa khóa từ mật khẩu.
• Tạo chữ kí điện tử.
SHA-1 và MD5 là hai hàm hash thông dụng nhất và được sử dụng trong rất nhiều hệ thống bảo mật. Vào tháng 8 năm 2004, tại hội nghị Crypto 2004, người ta đã tìm thấy va chạm đối với MD5 và SHA-0, một phiên bản yếu hơn của hàm hash SHA-1. Không bao lâu sau đó, vào khoảng giữa tháng 2 năm 2005, một nhóm ba nhà mật mã học người Trung Quốc đã phát hiện ra một phương pháp có thể tìm thấy va chạm đối với SHA-1 chỉ trong vòng 269 bước tính toán (tức là có thể nhanh hơn brute-force vài nghìn lần).