Trích xuất thông tin xác thực được mã hóa từ các công cụ phổ biến Thông minh dữ liệu PlatoBlockchain. Tìm kiếm dọc. Ái.

Trích xuất thông tin xác thực được mã hóa từ các công cụ phổ biến

Sản phẩm phần lớn các cuộc tấn công mạng dựa vào thông tin đăng nhập bị đánh cắp — có được bằng cách lừa nhân viên và người dùng cuối chia sẻ chúng hoặc bằng cách thu thập thông tin xác thực tên miền được lưu trong bộ nhớ cache trên máy trạm và các hệ thống khác trên mạng. Những thông tin đăng nhập bị đánh cắp này cung cấp cho kẻ tấn công khả năng di chuyển ngang trong môi trường khi chúng xoay vòng từ máy này sang máy khác — cả tại chỗ và đám mây — cho đến khi chúng tiếp cận được các tài sản quan trọng trong kinh doanh.

Trong tạp chí Uber vi phạm hồi tháng XNUMX, những kẻ tấn công đã tìm thấy thông tin đăng nhập trong tập lệnh PowerShell cụ thể. Nhưng có rất nhiều cách ít hào nhoáng hơn nhưng cũng gây hại không kém, những kẻ tấn công có thể tìm thấy thông tin xác thực cho phép chúng truy cập vào môi trường. Chúng bao gồm thông tin đăng nhập cục bộ phổ biến, người dùng cục bộ có mật khẩu tương tự và thông tin xác thực được lưu trữ trong các tệp trên mạng chia sẻ.

Trong nghiên cứu của mình, chúng tôi đã đối mặt với câu hỏi loại thông tin nào có thể được trích xuất từ ​​một máy bị xâm nhập — mà không khai thác bất kỳ lỗ hổng nào — để di chuyển ngang hoặc trích xuất thông tin nhạy cảm. Tất cả các công cụ chúng tôi sử dụng ở đây đều có sẵn trên GitHub kho.

Các tổ chức dựa vào một số công cụ để xác thực với máy chủ và cơ sở dữ liệu bằng giao thức SSH, FTP, Telnet hoặc RDP — và nhiều công cụ trong số này lưu thông tin đăng nhập để tăng tốc độ xác thực. Chúng tôi xem xét ba công cụ như vậy — WinSCP, Robomongo và MobaXterm — để chỉ ra cách kẻ tấn công có thể trích xuất thông tin đăng nhập không phải văn bản rõ ràng.

WinSCP: Thông tin xác thực bị xáo trộn

Khi không có bộ điều khiển miền, người dùng có thể truy cập tài nguyên hệ thống bằng cách sử dụng thông tin xác thực đã lưu trong bộ nhớ cache được lưu cục bộ sau khi đăng nhập miền thành công. Vì trước đó người dùng đã được ủy quyền nên người dùng có thể đăng nhập vào máy bằng tài khoản miền thông qua thông tin đăng nhập được lưu trong bộ nhớ cache ngay cả khi bộ điều khiển miền đã xác thực người dùng trước đây không khả dụng.

WinSCP cung cấp tùy chọn lưu chi tiết thông tin xác thực được sử dụng để kết nối với các máy từ xa thông qua SSH. Mặc dù thông tin đăng nhập bị xáo trộn khi được lưu trong sổ đăng ký Windows (ComputerHKEY_CURRENT_USERSOFTWAREMartin PrikrylWinSCP 2Sessions), chúng hoàn toàn không được mã hóa. Bất kỳ ai biết thuật toán được sử dụng để làm xáo trộn đều có thể có quyền truy cập vào thông tin đăng nhập.

Vì mã nguồn của WinSCP có sẵn trên GitHub nên chúng tôi có thể tìm thấy thuật toán che giấu. Chúng tôi đã sử dụng một công cụ triển khai cùng một thuật toán để giải mã thông tin đăng nhập và chúng tôi đã có quyền truy cập vào thông tin đăng nhập ở dạng văn bản rõ ràng.

Việc triển khai thuật toán che giấu để bảo mật thông tin đăng nhập được lưu trữ không phải là phương pháp hay nhất vì thuật toán này có thể dễ dàng đảo ngược và dẫn đến hành vi trộm cắp thông tin đăng nhập.

Robomongo: Không phải là chìa khóa bí mật

Robomongo (nay là Robo 3T) là ứng dụng khách MongoDB được sử dụng để kết nối với máy chủ cơ sở dữ liệu Mongo. Khi bạn lưu thông tin đăng nhập của mình, chúng sẽ được mã hóa và lưu trong một robo3t.json Tệp JSON. Khóa bí mật được sử dụng để mã hóa thông tin xác thực cũng được lưu cục bộ, ở dạng văn bản rõ ràng, ở dạng robo3t.key tập tin.

Điều đó có nghĩa là kẻ tấn công giành được quyền truy cập vào máy có thể sử dụng khóa được lưu trong văn bản rõ ràng để giải mã thông tin đăng nhập.

Chúng tôi đã xem mã nguồn của Robomongo trên GitHub để hiểu cách khóa được sử dụng để mã hóa mật khẩu và biết rằng nó sử dụng lib SimpleCrypt từ Qt. Mặc dù Robomongo sử dụng mã hóa để lưu trữ thông tin xác thực một cách an toàn, nhưng thực tế là khóa bí mật được lưu trong văn bản rõ ràng không phải là phương pháp hay nhất. Những kẻ tấn công có khả năng đọc được nó, bởi vì bất kỳ người dùng nào có quyền truy cập vào máy trạm đều có thể giải mã thông tin đăng nhập. Ngay cả khi thông tin được mã hóa theo cách mà con người không thể đọc được, một số kỹ thuật nhất định có thể xác định mã hóa nào đang được sử dụng, sau đó giải mã thông tin.

MobaXterm: Giải mã mật khẩu

MobaXterm là một công cụ mạnh mẽ để kết nối với các máy từ xa bằng nhiều giao thức khác nhau như SSH, Telnet, RDP, FTP, v.v. Người dùng muốn lưu thông tin đăng nhập trong MobaXterm sẽ được yêu cầu tạo mật khẩu chính để bảo vệ dữ liệu nhạy cảm của họ. Theo mặc định, MobaXterm chỉ yêu cầu mật khẩu chính trên một máy tính mới.

Điều đó có nghĩa là mật khẩu chính được lưu ở đâu đó và MobaXterm sẽ truy xuất mật khẩu đó để truy cập thông tin đăng nhập được mã hóa. Chúng tôi đã sử dụng Procmon từ Sysinternals Suite để ánh xạ tất cả các khóa đăng ký và tệp được MobaXterm truy cập và chúng tôi đã tìm thấy mật khẩu chính được lưu trong sổ đăng ký Windows (ComputerHKEY_CURRENT_USERSOFTWAREMobatekMobaXtermM). Thông tin đăng nhập và mật khẩu lần lượt được lưu trong khóa đăng ký C và P.

Ban đầu, chúng tôi không thể giải mã mật khẩu chính được mã hóa bằng DPAPI. Cuối cùng, chúng tôi phát hiện ra rằng 20 byte DPAPI đầu tiên, vốn luôn giống nhau khi sử dụng DPAPI, đã bị xóa. Khi chúng tôi thêm 20 byte đầu tiên, chúng tôi có thể giải mã mật mã DPAPI để lấy hàm băm SHA512 của mật khẩu chính. Băm này được sử dụng để mã hóa và giải mã thông tin xác thực.

Tại đây, khóa mã hóa được sử dụng để lưu trữ an toàn thông tin xác thực được lưu bằng DPAPI. Điều đó có nghĩa là chỉ người dùng đã lưu thông tin xác thực mới có thể truy cập chúng. Tuy nhiên, người dùng có quyền truy cập quản trị viên hoặc kẻ tấn công có quyền truy cập vào phiên của nạn nhân cũng có thể giải mã thông tin xác thực được lưu trữ trên máy.

Biết rủi ro

Các nhà phát triển, DevOps và CNTT sử dụng nhiều công cụ khác nhau để kết nối với các máy từ xa và quản lý các chi tiết truy cập này. Các nhà cung cấp phải lưu trữ thông tin nhạy cảm này theo cách an toàn nhất. Tuy nhiên, mã hóa luôn ở phía máy khách và kẻ tấn công có thể sao chép hành vi của công cụ để giải mã thông tin đăng nhập.

Như mọi khi, không có giải pháp kỳ diệu nào có thể giải quyết mọi vấn đề mà chúng ta đã thảo luận ở đây. Tuy nhiên, các tổ chức có thể bắt đầu bằng cách kiểm tra các dịch vụ mà họ hiện đang sử dụng. Họ có thể xây dựng một ma trận rủi ro chính xác và chuẩn bị tốt hơn cho các vi phạm dữ liệu bằng cách hiểu rõ hơn về các loại dữ liệu nhạy cảm và thông tin đăng nhập mà họ đang lưu trữ.

Dấu thời gian:

Thêm từ Đọc tối