[Flare-On7] Chal7-re_crowd write-up (Vie)

Posted: October 24, 2020 in Flare-On7, My Tutorials, [Flare-On7] Chal7-re_crowd write-up (Vie)
Tags: , , ,

Đề bài như sau:

Tại Reynholm Industries, chúng tôi tự hào về mọi thứ. Thật không dễ dàng để thừa nhận, nhưng gần đây một máy chủ quan trọng nhất của chúng tôi đã bị kẻ xấu kiểm soát. Chúng tôi không tin lắm vào việc giám sát máy chủ vì vậy tất cả những gì chúng tôi có là một tập tin chứa quá trình giao tiếp mạng. Chúng tôi cần bạn điều tra và xác định dữ liệu nào đã bị kẻ xấu lấy từ máy chủ này, nếu có.

Cảm ơn!


1. Phân tích re_crowd.pcapng

Load vào Wireshark, Statistics -> Flow Graph, thấy được flow như sau:

Hình 1. Sử dụng tính năng Flow Graph của Wireshark để xem luồng trao đổi thông tin

Lọc theo filter: (http.request or tls.handshake.type == 1 or tcp.flags eq 0x0002 or dns) and !(udp.port eq 1900) thấy nhiều http request từ ip 192.168.68.21 tới port 80 của máy chủ 192.168.68.1:

Hình 2. Kết quả lọc dữ liệu cho thấy nhiều http reqest từ ip 192.168.68.21 tới port 80 của máy chủ 192.168.68.1

Lọc theo filter data.data || media.type có được thông tin trao đổi dữ liệu giữa các máy. Chú ý tới các port lạ ở đây là 4444 1337:

Hình 3. Kết quả lọc dữ liệu thấy xuất hiện các port lạ là 4444 và 1337

Follow một HTTP Stream bất kì ở trên, có được thông tin sau:

Hình 4. Nội dung của một HTTP Stream

Google HTTP PROPFIND Exploit biết được nó là “WebDAV PROPFIND Exploiting CVE-2017-7269”, đồng thời tìm được bài phân tích của Fortinet tại https://www.fortinet.com/blog/threat-research/buffer-overflow-attack-targeting-microsoft-iis-6-0-returns

Qua bài phân tích của Fortinet, biết được “payload was encoded using the Metasploit encoder ‘AlphanumUnicodeMixed’”.

Sử dụng decode script cung cấp theo bài viết sẽ decode được shellcode (gọi là sc1). Trong shellcode này có một plaintext string là “killervulture123

Hình 5. Shellcode 1 sau khi decode chứa key để giải mã Shellcode 2

2. Phân tích sc1

Sc này sẽ resolve các APIs thuộc ws2_32.dll, khởi tạo socket để connect tới cổng 4444 của ip 192.168.68.21:

Hình 6. Shellcode 1 khởi tạo socket kết nối tới cổng 4444 của ip 192.168.68.21

Kết nối thành công, sẽ gọi đoạn code sau để nhận dữ liệu:

Hình 7. Cấp phát buffer để nhận dữ liệu trả về (là một shellcode khác)

Với thông tin đoạn code trên, xác định được dữ liệu nhận về là một shellcode vì vùng nhớ được cấp phát là PAGE_EXECUTE_READWRITE. Dữ liệu nhận về này sẽ được giải mã bằng RC4 với key dùng để giải mã chính là killervulture123.

Quay trở lại file pcap, sử dụng filter data.data || media.type, lấy ra được encoded shellcode.

Hình 8. Kết quả lọc dữ liệu với Wireshark tìm được shellcode 2 đã bị mã hóa

Giải mã ra shellcode mới (gọi là sc2), xem nội dung shellcode thấy có string quan trọng sau:

Hình 9. Shellcode 2 sau giải mã chứa key để mã hóa dữ liệu

3. Phân tích sc2

Sc này sử dụng các hàm CreateFileA ReadFile để đọc dữ liệu từ “C:\\accounts.txt“. Sau đó sử dụng RC4 để mã hóa nội dung đọc được với key là “intrepidmango”. Cuối cùng gửi dữ liệu đã mã hóa tới cổng 1337 của IP 192.168.68.21:

Hình 10. Shellcode 2 gửi dữ liệu mã hóa tới cổng 1337 của IP 192.168.68.21

Quay trở lại file pcap, sử dụng filter data.data || media.type, lấy ra được encoded data.

Hình 11. Kết quả lọc dữ liệu với Wireshark tìm được dữ liệu gửi đi đã bị mã hóa

Giải mã data trên có được flag:

Hình 12. Giải mã dữ liệu để lấy flag cần tìm

End.

m4n0w4r

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.