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

Thảo luận trong 'Infrastructure security' bắt đầu bởi Testthuthoi, 15/08/20, 08:08 PM.

  1. Testthuthoi

    Testthuthoi Moderator Thành viên BQT

    Tham gia: 26/06/18, 10:06 AM
    Bài viết: 34
    Đã được thích: 29
    Điểm thành tích:
    18

    Zalo-1080x675.png
    Zalo đang là một ứng dụng chat phổ biến ở các nước Đông Nam Á, trong đó có Việt Nam. Trong đại dịch virus Corona hiện nay, rất nhiều người đã và đang sử dụng các phần mềm chat để làm việc tại nhà được dễ dàng hơn. Với độ phổ biến đó, lỗ hổng bảo mật của Zalo có thể ảnh hưởng nghiêm trọng đến rất nhiều người. Chúng ta hãy bắt đầu tìm hiểu chi tiết về lỗ hổng mới trên Zalo.

    Khởi đầu là việc ThreatSpike EDR phát hiện rằng Zalo.exe có gọi đến PowerShell

    Command Line:

    powershell.exe "start \"c:\users\USERNAME\documents\zalo received files\phao vni.pdf\""

    Parent Processes:

    c:\program files\windowsapps\vngonline.zalofordesktop_19.8.1.0_x64__z59ddpn1nx8g0\app\zalo.exe [11700]

    c:\program files\windowsapps\vngonline.zalofordesktop_19.8.1.0_x64__z59ddpn1nx8g0\app\zalo.exe [14736]

    c:\windows\explorer.exe [10172]


    Giống như bao ứng dụng gửi tin nhắn khác, Zalo cũng cho phép người dùng gửi file tài liệu cho nhau. Nhìn qua có thể thấy PowerShell được gọi bởi Zalo.exe để mở file được gửi đến. Có lẽ ban đầu nhà phát triển sử dụng PowerShell bởi PowerShell sẽ phụ trách luôn phần chọn ứng dụng nào để mở file. Tuy nhiên, việc sử dụng dấu ngoặc kép (“) để đóng mở string chứa đường dẫn file trong PowerShell rất nguy hiểm. Khi sử dụng dấu ngoặc kép thay vì ngoặc đơn, PowerShell cho phép người dùng nhúng vào các biểu thức, ví dụ:

    1.png

    Trong trường hợp của Zalo, người gửi file có thể chỉnh sửa tên file thoải mái, do đó họ có thể dễ dàng nhúng câu lệnh vào tên file, và câu lệnh đó sẽ được thực thi trên máy người nhận nếu tên file không được xử lí cẩn thận.

    2.png

    Để xác nhận điều trên, chúng tôi đã gửi một file có tên $(calc).txt cho một người bằng Zalo (file bình thường thôi, nội dung bất kì). Nếu tên file được Zalo xử lí đúng, khi người kia mở file lên, Notepad sẽ mở file văn bản có tên $(calc).txt. Nhưng thay vì Notepad, chúng tôi lại thấy ứng dụng máy tính Calculator hiện lên trên máy nhận! Do đó chúng tôi đã có thể khẳng định đây là lỗi thực thi lệnh tùy ý Remote Code Execution trên ứng dụng Zalo Desktop (phiên bản 19.8.1.0). Như trong màn hình ProcMon (dùng để theo dõi các tiến trình) dưới đây, Zalo gọi đến PowerShell, coi tên file như một lệnh và thực thi luôn lệnh đó, mở lên Calculator.

    3.png

    Video demo :


    Giờ thì chúng ta biết Calculator đã được thực thi 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 có một vài giới hạn sau:
    1. Tên file không quá 255 kí tự.
    2. Các kí tự “/”, “\” “|” “<”, “>”, “:”, “*” và “?” không được dùng.

    Việc bị giới hạn như này sẽ khiến việc truyền trực tiếp câu lệnh vào tên file trở nên khó khăn. Ở bài sau chúng tôi sẽ giới thiệu cách để bypass các giới hạn trên phục vụ cho việc tấn công sâu hơn.

    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.

    Trích dẫn tham khảo: ThreatSpike Blog
     
    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
    lapduc and chaien like this.
  2. chaien

    chaien Well-Known Member

    Tham gia: 15/08/17, 08:08 AM
    Bài viết: 65
    Đã được thích: 10
    Điểm thành tích:
    8
    cách này ,mình nghĩ chỉ hiệu quả ,nếu đối tượng dùng zalo trên windows , chứ họ dùng trên điện thoại , android ,iphone , thì chắc không làm được gì
     
    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
  3. Testthuthoi

    Testthuthoi Moderator Thành viên BQT

    Tham gia: 26/06/18, 10:06 AM
    Bài viết: 34
    Đã được thích: 29
    Điểm thành tích:
    18
    Đúng rồi bác ơi.
     
    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
  4. vohai2003

    vohai2003 Active Member

    Tham gia: 15/05/20, 09:05 PM
    Bài viết: 37
    Đã được thích: 4
    Điểm thành tích:
    8
    Cái này họ sửa bằng cách thay thế kí tự. Chắc vẫn bypass được bác nhỉ.
     
    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
  5. Testthuthoi

    Testthuthoi Moderator Thành viên BQT

    Tham gia: 26/06/18, 10:06 AM
    Bài viết: 34
    Đã được thích: 29
    Điểm thành tích:
    18
    Hum, mình cũng ko rõ lắm. Bác thử xem rồi post lên ...
     
    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
  6. vohai2003

    vohai2003 Active Member

    Tham gia: 15/05/20, 09:05 PM
    Bài viết: 37
    Đã được thích: 4
    Điểm thành tích:
    8
    Lỗi này họ fix rồi, họ đổi tên file. Nhưng chỉ thay mấy kí tự đầu.
    Ko biết còn cách nào để bypass ko.
     
    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
  1. Testthuthoi
  2. WhiteHat News #ID:2018
  3. WhiteHat News #ID:2018
  4. sunny
  5. Testthuthoi