Chiêu sinh khóa học PreOSCP – Tài liệu thực hành Home Lab
Hôm nay chúng ta giải quyết kỹ thuật thoạt nghe rất giống với Bruteforcing nhưng không phải là brute-force. Đó là Password Spraying. Chúng tasẽ hiểu sự khác biệt giữa hai điều này và cũng làm sáng tỏ những tình huống thực tế. Sau đó, ta sẽ khám phá ra nhiều công cụ có thể thực hiện Password Spraying.
Mục lục
- Giới thiệu về Password Spraying
- Brute-force vs Spraying
- Password Spraying trong đời thực
- Cấu hình được sử dụng trong thực tế
- Tấn công bằng Password Spraying
- rdppassspray.py
- domainpasswordspray.ps1
- BurpSuite
- spray.sh
- Crackmapexec
- Hydra
- Medusa
- Metasploit: Đăng nhập SMB
- Patator
- Phát hiện
- Giảm nhẹ
Giới thiệu về Password Spraying
Đây là một cuộc tấn công vào các kênh xác thực nơi kẻ tấn công lấy một số lượng lớn tên người dùng và lấy một mật khẩu và sau đó thử từng tên người dùng đó cho đến khi một tên người dùng được chấp nhận. Điều này được thực hiện bằng cách sử dụng các công cụ, một số trong số đó chúng ta sẽ xem xét trong bài viết này. Đây là một kỹ thuật tuyệt vời hầu hết các chính sách khóa tài khoản chỉ áp dụng cho mật khẩu không chính xác và không áp dụng cho tên người dùng không chính xác.
Brute-force vs Spraying
“Cưỡng bức” có nhiều loại, nhưng chủ yếu là cố gắng tạo một số lượng lớn mật khẩu trên số lượng tài khoản nhỏ nhất, hoặc thậm chí trên một tài khoản duy nhất.
…Password Spraying gần như ngược lại. Password Spraying đang cố gắng tạo số lượng mật khẩu nhỏ nhất trên số lượng tài khoản lớn nhất có thể.
Password Spraying trong đời thực
Các cuộc điều tra của FBI cho chúng ta biết rằng có sự gia tăng rất cao trong việc sử dụng mật khẩu chống lại các tổ chức trên toàn cầu. Vào tháng 2 năm 2018, DOJ của New York đã truy tố 9 công dân Trung Đông có liên quan đến Viện Mabna vì các tội liên quan đến xâm nhập máy tính. Họ đã thực hiện nhiều trường hợp tấn công rải mật khẩu. Điều này nói lên nhiều rủi ro trong cuộc sống thực của cuộc tấn công này. Tin tặc đang sử dụng nó để truy cập vào thông tin bí mật liên quan đến chi tiết cá nhân cũng như doanh nghiệp của nhân viên. Một sự cố khác như vậy là Citrix, đối với những người không biết thì đó là một công ty phần mềm cung cấp máy chủ, ứng dụng và ảo hóa máy tính để bàn cũng như các dịch vụ SAAS. Họ trở thành nạn nhân của việc rải mật khẩu và không biết rằng mình đã bị tấn công cho đến khi FBI thông báo cho họ. Hiện nay cũng có rất nhiều bệnh viện đang bị tấn công bởi cuộc tấn công này vì những kẻ tấn công nghĩ rằng những bệnh viện này quá bận rộn với việc xử lý các trường hợp COVID-19 đến nỗi hầu hết vấn đề bảo mật của họ sẽ xử lý xa hoặc có thể không có .
Cấu hình được sử dụng trong thực tế
- Máy tấn công
- Hệ điều hành: Kali Linux 2020.1
- Địa chỉ IP: 168.1.112
- Máy mục tiêu
- Server
- Hệ điều hành: Windows Server 2016
- Địa chỉ IP: 168.1.105
- Hệ điều hành: Ubuntu 18 (BWAPP)
- Địa chỉ IP : 192.168.1.109
- Client
- Hệ điều hành: Windows 10
- Địa chỉ IP: 168.1.106
- Server
Tấn công bằng Password Spraying
Chúng ta sẽ xem xét chuỗi các cuộc tấn công bằng cách sử dụng các công cụ khác nhau và một số cuộc tấn công sử dụng các giao thức khác nhau. Chúng ta sẽ xem xét các tập lệnh python, tập lệnh PowerShell, BurpSuite, tập lệnh Shell, Mô-đun Metasploit và hơn thế nữa.
RDPassSpray.py
Đó là một tập lệnh python mà tôi (tác giả, xem cuối bài) đã phát hiện ra trong khi nghiên cứu một thứ khác. Nó là một tập lệnh python sử dụng mật khẩu. Về mặt kỹ thuật, nó đang phun tên người dùng nhưng chúng ta đừng đi sâu vào danh pháp. Chúng tôi đã tạo một từ điển với một loạt các tên người dùng như trong hình bên dưới.
cat /root/Desktop/user.txt

Bây giờ chúng tôi quyết định sử dụng mật khẩu 123 là mật khẩu phổ biến nhất thế giới. Chúng tôi có thể thấy rằng chúng tôi có những người dùng raj, aarti, Yashika và pavan với cùng một mật khẩu và chúng tôi cũng có thể thấy rằng những người dùng đó cũng có Đặc quyền của Quản trị viên.
python3 RDPassSpray.py -U /root/Desktop/user.txt -p 123 -t 192.168.1.106

Thông thường, tôi giữ nhật ký cho phần Phát hiện trong bài viết của mình nhưng nhật ký cụ thể này rất cụ thể cho công cụ này. Do đó, tôi muốn thể hiện nó. Hãy chú ý Event ID 1158. Chúng tôi đã chạy RDPassSpray và thấy rằng nó đã tạo nhật ký cho sự kiện này. Ở đây chúng ta có thể thấy rằng chúng ta có Địa chỉ IP của kẻ tấn công.

DomainPasswordSpray.ps1
Tiếp theo, chúng tôi đã điều chỉnh xung quanh PowerShell. Đó là một tập lệnh mà chúng tôi đã tải xuống để tấn công xác thực mật khẩu miền. Đảm bảo ở trong Môi trường được kiểm soát miền để thực hiện cuộc tấn công này. Chúng tôi có một loạt người dùng trong môi trường thử nghiệm. Chúng tôi có một số tên như vậy trong từ điển. Chúng tôi thử mật khẩu “ Password @ 1 ”.
Tải xuống DomainPasswordSpray.ps1
Mô-đun nhập khẩu C: \ Users \ kavish \ Desktop \ DomainPasswordSpray.ps1 gõ. \ user.txt Invoke-DomainPasswordSpray -Userlist. \ User.txt -Domain firete.local -Password Password @ 1

Các bạn có thể thấy rằng có một loạt người dùng có cùng mật khẩu là “ Password @ 1 ”.
BurpSuite
Phun mật khẩu cũng có thể được áp dụng trên Ứng dụng web. Để hiển thị điều này, tôi quyết định sử dụng BWAPP. Nó cho phép tạo người dùng khi ta cần nhiều người dùng cho mục đích thực tế này. Bây giờ, sau khi tạo người dùng, hãy chuyển đến trang đăng nhập của BWAPP và nhập thông tin đăng nhập và nắm bắt yêu cầu trên BurpSuite. Sau đó nhấp chuột phải vào yêu cầu đã chụp và gửi đến Intruder.

Trong tab Vị trí, chúng ta sẽ phải thêm các neo trên tên người dùng như thể hiện trong hình dưới đây. Chúng tôi đang làm điều này để BurpSuite có thể nhắm mục tiêu tên người dùng cho các cuộc tấn công lặp lại mà nó sẽ thực hiện thông qua kẻ xâm nhập.

Bây giờ vào tab Tải trọng (Payload) . Ở đây, chúng tôi sẽ cung cấp các tùy chọn tải trọng hoặc tên người dùng mà chúng tôi đang đưa vào từ điển trong các cuộc tấn công trước. Chúng ta có thể dán trực tiếp nó từ từ điển hoặc thêm từng tên người dùng một bằng cách nhập chúng vào hộp thoại và nhấp vào nút Thêm.

Sau khi thêm đủ tên người dùng, hãy nhấp vào Bắt đầu tấn công. Thao tác này sẽ bật ra một cửa sổ mới như trong hình bên dưới. Ở đây chúng ta có thể thấy sự khác biệt giữa độ dài của yêu cầu cho chúng ta biết rằng “lỗi” mật khẩu đã được một số người dùng chấp nhận. Đây là cách chúng tôi thực hiện phun mật khẩu trên ứng dụng web bằng BurpSuite.

Spray.sh
Spray.sh là một tập lệnh shell khá nổi tiếng được sử dụng để Password Spraying. Trước khi chúng ta tiếp tục hãy tạo thêm một từ điển khác với tên người dùng như thể hiện trong hình dưới đây. Chúng tôi sẽ brute force người dùng SMB. Tôi sẽ tạo một từ điển tương tự với các mật khẩu có thể xảy ra. Nhưng giữ tối đa 2 mật khẩu để nó không kích hoạt bất kỳ chính sách khóa nào.
cat users.txt

Bây giờ ta soạn thảo lệnh để phun mật khẩu. Đầu tiên, chúng tôi sẽ cung cấp giao thức SMB làm tham số. Sau đó, chúng tôi sẽ cung cấp Địa chỉ IP của Bộ điều khiển miền. Tiếp theo là từ điển của người dùng cũng như mật khẩu.
./spray.sh -smb '192.168.1.105' users.txt password.txt 10 1 IGNITE skiuu

Ở đây, ta có thể thấy xác nhận của các tài khoản người dùng khác nhau và thông tin đăng nhập của họ trong mạng.
Crackmapexec
Crackmapexec, một công cụ không bao giờ làm tôi hết ngạc nhiên. Ý tôi là chính xác thì công cụ này không làm gì? Phun mật khẩu cũng là một trong những điều mà công cụ này thực hiện. Công việc này khá đơn giản với công cụ này. Tất cả những gì chúng ta phải làm là cung cấp giao thức để sử dụng, phạm vi Địa chỉ IP mà chúng ta muốn tấn công, một loạt tên người dùng và một mật khẩu riêng và nó sẽ thực hiện phần còn lại. Ngay lập tức, nó cho chúng tôi biết rằng Quản trị viên là tài khoản có mật khẩu Ignite @ 987.
crackmapexec smb 192.168.1.0/24 -u "Kavish" "Quản trị viên" -p " Ignite @ 987 "

Giả sử chúng ta có nhiều tên người dùng hơn chỉ một vài tên thì chúng ta có thể đưa chúng vào từ điển và thực hiện phun mật khẩu. Tất cả những gì chúng tôi phải làm là thay thế tên người dùng bằng từ điển chứa tên người dùng như thể hiện trong hình ảnh dưới đây.
cat /root/Desktop/user.txt crackmapexec smb 192.168.1.106 -u /root/Desktop/user.txt -p ' Password @ 1 ' --continue-on-success

Tìm hiểu thêm: Khoảnh khắc bên trên Active Directory: CrackMapExec
Hydra
Hydra là một trong những công cụ “cưỡng bức vũ phu” nổi tiếng nhất. Nó đã có trong cộng đồng trong một thời gian rất dài. Nhưng có rất ít người biết rằng nó cũng có thể được sử dụng để phun mật khẩu. Về cơ bản, chúng tôi cung cấp nhiều tên người dùng và một mật khẩu duy nhất trong quá trình phun mật khẩu. Đó chính xác là những gì chúng ta sẽ làm với Hydra. Chúng tôi sẽ nhắm mục tiêu giao thức SMB ở đây nhưng nó có thể được thực hiện với hầu hết mọi giao thức khác.
hydra -L /root/Desktop/user.txt -p Password@1 192.168.1.105 smb

Medusa
Trong khi làm việc với Hydra, tôi nhận ra rằng có một công cụ khá giống với hydra nhưng có cái tên không giống tiếng Hy Lạp quá phổ biến. Đó là Medusa. Tôi không biết tại sao nó không phổ biến như vậy có lẽ nó không hỗ trợ nhiều giao thức như hydra. Dù lý do là gì, tôi đã cố gắng thực hiện Phun mật khẩu với Medusa bằng cách cung cấp từ điển tên người dùng thay cho tên người dùng và nó hoạt động mà không gặp bất kỳ sự cố nào. Vì vậy, nó là một thay thế tốt để xem xét.
medusa -h 192.168.1.105 -U /root/Desktop/user.txt -p Mật khẩu @ 1 -M smbnt

Metasploit: Đăng nhập SMB
Làm việc nhiều với SMB, khiến tôi nghĩ rằng liệu chúng ta có thể sử dụng Metasploit để tấn công kiểu này không? Sau khi tải mô-đun smb_login tôi đã kiểm tra các tùy chọn và nhận thấy rằng chúng tôi có thể cung cấp tên người dùng trong từ điển nhưng sau khi thử một vài lần, tôi thấy rõ việc sử dụng tên người dùng trong từ điển, tôi sẽ phải cung cấp mật khẩu trong từ điển tốt. Vì vậy, tôi đã thêm một mật khẩu số ít trong từ điển mật khẩu và chạy mô-đun như trong hình.
use auxiliary/scanner/smb/smb_login set rhosts 192.168.1.105 set user_file /root/Desktop/user.txt set pass_file /root/Desktop/pass.txt exploit

Patator
Sau khi trải qua rất nhiều cách mà chúng tôi có thể thực hiện cuộc tấn công rải mật khẩu, chúng tôi đến với một công cụ mà nhiều người trong số các bạn có thể sẽ nghe thấy lần đầu tiên. Nó là một trong những người anh em thiện lành ít được biết đến của hydra. Đó là Patator. Tôi đã quên mất nó khi tôi đột nhiên nhận ra rằng đây cũng có thể được sử dụng để phun mật khẩu. Parator là một công cụ rất đơn giản cho phép chúng tôi cung cấp một mật khẩu số ít với một từ điển cho tên người dùng.
patator smb_login host = 192.168.1.105 user = FILE0 0 = / root / Desktop / user.txt password = Password @ 1

Phát hiện
- Một số lượng lớn cố gắng đăng nhập vào cổng SSO doanh nghiệp hoặc ứng dụng dựa trên web
- Bằng cách sử dụng các công cụ tự động, các tác nhân độc hại cố gắng đăng nhập hàng nghìn lần đăng nhập, trong một khoảng thời gian ngắn, chống lại nhiều tài khoản người dùng tại tài khoản người dùng nạn nhân, bắt nguồn từ một địa chỉ IP hoặc máy tính.
- Nhân viên đăng nhập từ các địa chỉ IP phân giải đến các vị trí khác với vị trí bình thường của họ.
Giảm nhẹ
- Bật Xác thực Đa yếu tố và xem lại các cài đặt đó để đảm bảo phạm vi phủ sóng trên các giao thức tiếp xúc với internet đang hoạt động.
- Xem lại các chính sách mật khẩu để đảm bảo rằng chúng phù hợp với các nguyên tắc mới nhất của NIST và hạn chế việc sử dụng các mật khẩu dễ đoán.
- Thực thi chính sách mật khẩu cấm các mật khẩu dễ đoán.
- Triển khai danh sách mật khẩu bị cấm
- Giám sát tài khoản quản trị viên và tài khoản người dùng của bạn để tìm hoạt động bất thường
Tác giả: Pavandeep Singh là Nhà văn kỹ thuật, Nhà nghiên cứu và Người kiểm tra thâm nhập.
Biên soạn : Nguyễn Trần Tường Vinh