Trong bài thi chứng chỉ EC Council LPT ở vòng 1 tôi có gặp một mục tiêu có lỗi WinRM , đây là bài lab trên Windows nên ít thấy mục tiêu hay hướng dẫn trên mạng, cũng như trên lab thực hành của CEH, LPT hay Cyber Range CPENT . Tuy nhiên, may mắn là việc khai thác khá ổn, mất tầm 30 phút trở lại và sau đó tôi sử dụng Evil-Winrmm để tiến hành truy cập để lấy được flag chưa đáp án cho câu hỏi, hoàn thành 1/3 mục tiêu của vòng 1, bài thi LPT có 3 vòng và 9 thử thách (tất cả đều là dạng boot2root, có bài khó có bài dễ tùy thuộc vào kỹ năng của mỗi người, bài nào trúng tủ hay đã làm tương tự thì tôi thấy dễ, có bài ngồi mãi chẳng xác định được hướng để tấn công đành phải xin nghĩ giải lao để tham vấn ý kiến từ các chuyên gia và đồng bọn 🙂 , ngày nay có thể lên hỏi ChatGPT xem nó có cách nào không , nhưng chắc chắn là không vì tôi có hỏi thử nó bảo không biết !
Hiện nay, các bạn có thể học và thi mỗi CPENT với số điểm cao và report tốt vẫn có thể lấy được cả cặp Chứng chỉ Pentest đỉnh cao của EC Council là CPENT và LPT. Một số bạn đã lấy cả cặp như Đức Nguyễn (có rất nhiều bài demo hay trên kênh Security365) và Đạt Vũ (đang xây dựng 1 team Pentest cho công ty của mình).
Tôi là CertMaster Đông Dương, rất vinh dự khi được hướng dẫn 2 bạn trên mà nếu như các bạn tự mình ngâm cứu có khi đạt số điểm còn cao hơn 🙂 , nhưng có thể mất nhiều thời gian hơn. Nếu các bạn quan tâm và được công ty hỗ trợ hoc tập và thi cử, hãy tham gia khóa đào tạo CPENT v1 của CEH VIETNAM để có thể đậu, đậu cao và lấy cả cạp chứng chỉ CPENT +LPT.
Bây giờ, các bạn hãy tham khảo bài trình bày về công cụ rất hay và mạnh mẽ này nhé (bài gốc trên HA, và các bạn có thể thử nó trên Commando VM)
Công cụ Evil-winrm ban đầu được viết bởi nhóm Hackplayers. Mục đích của công cụ này là làm cho việc kiểm tra thâm nhập trở nên dễ dàng nhất có thể, đặc biệt là trong môi trường Microsoft Windows. Evil-winrm hoạt động với giao thức từ xa PowerShell (PSRP). Quản trị viên hệ thống và mạng thường sử dụng giao thức Windows Remote Management để tải lên, chỉnh sửa và tải lên. WinRM là một giao thức dựa trên SOAP và thân thiện với tường lửa, hoạt động với truyền tải HTTP qua cổng HTTP mặc định 5985.
Mục lục
- Giới thiệu về Evil-winrm
- Khám phá dịch vụ Winrm
- Trợ giúp Evil-winrm — Liệt kê các tính năng khả dụng
- Đăng nhập bằng mật khẩu văn bản đơn giản
- Đăng nhập bằng mật khẩu văn bản đơn giản — Đã bật SSL
- Đăng nhập bằng NTLM Hash -Pass The Hash Attack
- Tải tập lệnh Powershell
- Lưu trữ nhật ký với Evil-winrm
- Vô hiệu hóa hoàn thành đường dẫn từ xa
- Vô hiệu hóa giao diện màu
- Chạy tập tin thực thi
- Liệt kê dịch vụ với Evil-winrm
- Truyền tệp bằng Evil-winrm
- Sử dụng Evil-winrm từ Docker
- Đăng nhập bằng key sử dụng Evil-winrm
- Phần kết luận
Giới thiệu về Evil-winrm
Công cụ nguồn mở Evil-winrm được viết bằng ngôn ngữ ruby giúp việc khai thác bài dễ dàng nhất có thể. Công cụ này đi kèm với nhiều tính năng thú vị bao gồm đăng nhập từ xa bằng mật khẩu văn bản đơn giản, đăng nhập được mã hóa SSL, đăng nhập bằng hàm băm NTLM, đăng nhập bằng khóa, truyền tệp, lưu trữ nhật ký, v.v. Các tác giả của công cụ này tiếp tục cập nhật công cụ này và thêm nhiều tính năng mới giúp cho việc đánh giá nội bộ trở nên dễ dàng hơn. Sử dụng evil-winrm, chúng ta nhận được phiên PowerShell của máy chủ từ xa. Công cụ này có sẵn với tất cả các phiên bản Kali Linux hiện đại nhưng bạn có thể tải xuống từ kho lưu trữ git chính thức của nó.
Liên kết tải xuống: https://github.com/Hackplayers/evil-winrm
Khám phá dịch vụ Winrm
Như chúng ta đã thảo luận trước đó rằng công cụ evil-winrm được sử dụng nếu dịch vụ Winrm được bật trong máy chủ từ xa. Để xác nhận chúng ta có thể tìm kiếm 2 cổng dịch vụ winrm mặc định là 5895 và 5896 có mở hay không sử dụng nmap. Từ kết quả nmap, chúng ta thấy rằng dịch vụ winrm đã được kích hoạt để chúng tôi có thể sử dụng evil-winrm để đăng nhập và thực hiện các tác vụ khác mà chúng tôi sẽ khám phá trong các phần sau.
nmap -p 5985 , 5986 192.168 . 1 . 19

Trợ giúp Evil-winrm — Liệt kê các tính năng khả dụng
Nhiều người kiểm tra thâm nhập và người chơi CTF đã sử dụng công cụ này khá thường xuyên trong quá trình đánh giá nội bộ nhưng vẫn còn nhiều người trong chúng ta không biết về các tính năng bổ sung của công cụ có thể giúp việc đánh giá của chúng ta dễ dàng hơn bao giờ hết. Để liệt kê tất cả các tính năng thú vị có sẵn của evil-winrm, chúng ta chỉ cần sử dụng cờ -h và điều đó sẽ liệt kê tất cả các lệnh trợ giúp kèm theo mô tả. CEHVN sẽ đề cập nhiều nhất có thể trong bài viết này và khuyến khích mọi người thử với các tính năng khác.
Evil-winrm -h

Đăng nhập bằng mật khẩu văn bản đơn giản
Giả sử chúng ta đã nhận được mật khẩu văn bản đơn giản trong giai đoạn liệt kê và nhận thấy rằng dịch vụ winrm được bật trong máy chủ từ xa. Sau đó, chúng ta có thể thực hiện một phiên từ xa trên hệ thống đích bằng cách sử dụng evil-winrm bằng cách cấp địa chỉ IP của máy chủ từ xa bằng cờ -i , tên người dùng bằng cờ -u và mật khẩu bằng cờ -p . Trong hình bên dưới, chúng ta có thể thấy rằng nó đã thiết lập một phiên PowerShell từ xa.
Evil-winrm -i 192.168 . 1 . 19 -u administrator -p Ignite@ 987

Đăng nhập bằng mật khẩu văn bản đơn giản — Đã bật SSL
Như chúng tôi đã đề cập trước đó rằng dịch vụ winrm vận chuyển lưu lượng qua giao thức HTTP, sau đó ta có thể sử dụng tính năng Lớp cổng bảo mật (SSL) để đảm bảo an toàn cho kết nối. Khi bật tính năng SSL thì dữ liệu của sẽ được gửi qua lớp socket bảo mật được mã hóa. Với evil-winrm, chúng ta có thể đạt được mục tiêu bằng cách sử dụng cờ -S cùng với lệnh trước đó mà chúng ta đã sử dụng để thiết lập kết nối với máy chủ từ xa như hình sau.

Đăng nhập bằng NTLM Hash -Pass The Hash Attack
Trong quá trình đánh giá nội bộ hoặc giải quyết bất kỳ CTF nào liên quan đến leo thang đặc quyền của windows và khai thác Active Directory, chúng ta thường nhận được hàm băm NTLM bằng cách sử dụng các khai thác của mình và các cuộc tấn công. Nếu i đang ở trong môi trường windows, chúng ta có thể sử dụng evil-winrm để thiết lập phiên PowerShell bằng cách thực hiện vượt qua cuộc tấn công băm nơi chúng tôi cấp mã băm dưới dạng mật khẩu thay vì sử dụng mật khẩu văn bản thuần túy. Ngoài ra, cuộc tấn công này cũng hỗ trợ các giao thức khác. Các bạn có thể chuyển hàm băm bằng cờ -H cùng với lệnh đã sử dụng trước đó thay thế phần mật khẩu bằng hàm băm.Bây giờ, hãy chạy lệnh như hi2h sau

Tải tập lệnh Powershell
Evil-winrm cũng có một tính năng cho phép chúng ta sử dụng các tập lệnh từ máy cơ sở của mình. Các bạn có thể tải trực tiếp các tập lệnh vào bộ nhớ bằng cờ -s cùng với đường dẫn lưu trữ các tập lệnh trong máy cục bộ của mình. Hơn nữa, nó cũng đi kèm với tính năng AMSI mà chúng ta thường yêu cầu trước khi nhập bất kỳ tập lệnh nào. Trong ví dụ dưới đây, chúng tôi đang bỏ qua AMSI, sau đó gọi trực tiếp tập lệnh Invoke-Mimiktz.ps1 từ hệ thống của mình tới máy đích và tải nó vào bộ nhớ. Sau đó, chúng ta có thể sử dụng bất kỳ lệnh mimikatz nào. Đối với mục đích trình diễn, ở đây tôi đã kết xuất thông tin xác thực từ bộ đệm. Sau khi kết xuất thông tin đăng nhập, ta có thể thực hiện lại cuộc tấn công băm với hàm băm NTLM thu được. Thực hiện theo các bước bên dưới để tái tạo cuộc tấn công bằng evil-winrm.
https://github.com/clymb3r/PowerShell/blob/master/Invoke-Mimikatz/Invoke-Mimikatz.ps1

Dưới đây là thứ tự các lệnh cần thực hiện (chú ý phần có mũi tên trong hình là lệnh sẽ thực thi)

Lưu trữ nhật ký với Evil-winrm
Tính năng này được thiết kế để lưu nhật ký vào hệ thống cục bộ của chúng ta trong khi thực hiện liệt kê sau khi nhận phiên từ xa. Khi đang chơi CTF hoặc tham gia thử nghiệm thâm nhập nội bộ theo thời gian thực, chúng ta cần giữ các tài liệu tham khảo để báo cáo. Evil-winrm cho phép tự do lưu tất cả nhật ký vào máy cơ sở bằng cờ -l . Các bạn có thể thực hiện bất kỳ phiên từ xa nào bằng cách sử dụng evil-winrm và add -l cờ để nó sẽ lưu tất cả nhật ký vào máy cơ sở của chúng tôi trong thư mục /root/evil-winrm-logs với ngày và địa chỉ IP có thể được sử dụng sau này để tham khảo . Trong ví dụ dưới đây, chúng tôi đã sử dụng lệnh ipconfig và đầu ra của lệnh được lưu trong máy cơ sở của chúng tôi cùng một lúc.

Ta có thể xác minh nó bằng cách kiểm tra nội dung nhật ký đã lưu, bạn sẽ nhận thấy nó đã chụp ảnh màn hình của thiết bị đầu cuối nơi đã sử dụng lệnh ipconfig.

Vô hiệu hóa hoàn thành đường dẫn từ xa
Theo mặc định, nó đi kèm với tính năng hoàn thành đường dẫn từ xa, nhưng nếu chúng tôi muốn tắt tính năng hoàn thành đường dẫn từ xa, hãy thêm cờ -N cùng với lệnh của mình. Việc bật hay tắt tính năng tự động hoàn thành tùy thuộc vào từng cá nhân nhưng nếu bạn cảm thấy thoải mái với tính năng tự động hoàn thành thì hãy sử dụng chức năng mặc định của nó.
Hãy chạy các lệnh sau như hình minh họa (chú ý phần có mũi tên)

Vô hiệu hóa giao diện màu
Khi hiết lập bất kỳ phiên từ xa nào bằng evil-winrm, nó sẽ tạo ra một giao diện dòng lệnh có màu sắc đẹp mắt. Tuy nhiên, nếu các bạn muốn tắt giao diện màu có thể thực hiện điều đó bằng cách sử dụng cờ -n cùng với lệnh của mình trong khi thiết lập phiên.

Chạy tập tin thực thi
Tính năng này được thiết kế để giải quyết các vấn đề và khó khăn trong thời gian thực mà ta gặp phải trong quá trình đánh giá khi có phiên PowerShell nhưng không thể đưa nó vào dòng lệnh. Trong những tình huống như vậy, có thể chạy các tệp thực thi exe trong các phiên evil-winrm. Giả sử chúng ta có một tệp thực thi và muốn chạy trong hệ thống đích.

Nhóm Hackplayers đã thiết kế lại công cụ này và thêm một tính năng bổ sung để chúng tôi có thể chạy tất cả các tệp thực thi khi đang ở phiên PowerShell Evil-winrm. Tương tự, như ta đã sử dụng cờ -s để thực thi đường dẫn tập lệnh PowerShell, lần này là sử dụng cờ -e để thực thi các tệp nhị phân thực thi exe. Trong ví dụ bên dưới, chúng tôi đang phát hành một đường dẫn trong đó tệp thực thi WinPEAS.exe được lưu trữ trong máy cục bộ và chạy nó bằng một tính năng bổ sung ( Invoke-Binary ) từ menu evil-winrm. Tính năng này cho phép thực thi bất kỳ tệp nhị phân exe nào thường chạy trong trình bao dòng lệnh như hình sau :

Khi đặt đường dẫn tệp thực thi ta có thể sử dụng bất kỳ tệp thực thi nào muốn chạy vào hệ thống đích. Trong ví dụ dưới đây, chúng tôi đang gọi WinPEASx64.exe và chạy nó vào hệ thống đích với evil-winrm. Như các bạn có thể thấy, nó hoạt động tốt như mong đợi.

Liệt kê dịch vụ với Evil-winrm
Đôi khi nhiều công cụ liệt kê sau khai thác không phát hiện được tên dịch vụ đang chạy trong hệ thống đích. Trong trường hợp đó, ta có thể sử dụng evil-winrm để tìm tên dịch vụ đang chạy trong hệ thống đích. Để làm điều đó, một lần nữa các bạn có thể vào menu và sử dụng tính năng dịch vụ. Nó sẽ liệt kê tất cả các dịch vụ đang chạy trên máy chủ bị xâm nhập. Tính năng này có thể rất hữu ích khi có bất kỳ dịch vụ chưa được trích dẫn nào được cài đặt trong hệ thống đích và các công cụ hậu khai thác khác không xác định được tên dịch vụ.

Truyền tệp bằng Evil-winrm
Không còn nghi ngờ gì nữa, evil-winrm đã cố gắng hết sức để giúp công việc của Pentest+ trở nên dễ dàng nhất có thể. Khi các pentester cần chuyển các tệp từ máy Tấn công sang máy từ xa để thực hiện liệt kê hoặc những thứ khác. Thay vì đặt máy chủ python và tải xuống từ hệ thống đích, chúng ta chỉ cần sử dụng lệnh upload với tên tệp. Đây là một tính năng cứu mạng mà công cụ evil-winrm cung cấp, đặc biệt là trong các tình huống khi các pentester đối mặt với các quy tắc lưu lượng truy cập ra bên ngoài được đặt trong hệ thống đích và khi sử dụng evil-winrm với proxy. Trong ví dụ dưới đây, ta sẽ ải lên tệp notes.txt trong hệ thống đích.

Tương tự, các pentester có thể tải tệp từ hệ thống đích xuống máy của kẻ tấn công bằng cách sử dụng lệnh download cùng với tên tệp.

Các bạn có thể xác minh điều đó bằng cách điều hướng đường dẫn đã tải xuống notes.txt trong máy tấn công.

Sử dụng Evil-winrm từ Docker
Công cụ này cũng có thể được cài đặt trong docker. Nếu chúng ta có một hệ thống khác trong docker có cài đặt evil-winrm, thì cũng có thể gọi nó từ docker. Nó sẽ hoạt động giống như khi nó hoạt động trong hệ thống cơ sở chính mà không gặp vấn đề gì. Để làm điều đó, hãy làm theo cú pháp docker cùng với lệnh evil-winrm để gọi nó từ docker như hình sau.

Đăng nhập bằng key sử dụng Evil-winrm
Evil-winrm cũng cho phép các pentester sử dụng khóa chung và khóa riêng để thiết lập phiên từ xa bằng cờ -c cho khóa chung và cờ -k cho khóa riêng. Ngoài ra, các bạn cũng có thể thêm cờ –S để kích hoạt SSL làm cho kết nối được mã hóa và bảo mật.

Phần kết luận
Các bạn đã khám phá sơ lược về công cụ Evil-winrm và các tính năng đặc biệt của nó sẽ giúp quá trình pentesting dễ dàng hơn nhiều. Trog bài này ta đã khám phá nhiều kỹ thuật để thiết lập phiên từ xa bằng cách sử dụng evil-winrm. Ngoài ra, các bạn đã khám phá một số tính năng nâng cao giúp tăng năng suất trong môi trường công việc cũng như trong CTF. Cuối cùng, xin cảm ơn Hackplayers vì đã tạo ra một công cụ tuyệt vời như vậy.
Chúc các bạn sẽ có được các chứng chỉ quốc tế hàng đầu như CEH, CHFI, CPENT, LPT, OSCP, Pentest+, Security + , CySA+ hay CASP+ giúp cho công việc của mình ngày càng thuận lợi hơn.
CEH VIETNAM https://cehvietnam.com