1 điểm bởi GN⁺ 2025-01-13 | 1 bình luận | Chia sẻ qua WhatsApp
  • watchTowr Labs đã đăng ký lại các tên miền hết hạn hoặc bị bỏ mặc để chặn các lệnh gọi lại backdoor bên trong web shell, và quan sát lưu lượng do hơn 4.000 backdoor đang hoạt động duy nhất gửi về
  • Nếu web shell có chức năng ẩn gửi vị trí triển khai hoặc mật khẩu về tên miền của tác giả gốc, thì sau khi tên miền hết hạn, chủ sở hữu mới có thể nhận được nhật ký callback
  • Các mục tiêu được quan sát bao gồm hệ thống chính phủ ở Bangladesh, Trung Quốc, Nigeria và các trường đại học, cơ sở giáo dục bậc cao tại Thái Lan, Trung Quốc, Hàn Quốc; tổng log tích lũy vượt 300MB
  • Sau khi đăng ký hơn 40 tên miền, nhóm nghiên cứu đã cấu hình AWS Route53, chứng chỉ TLS wildcard và máy chủ ghi log Apache, ghi nhận các yêu cầu rồi chỉ trả về 404 response
  • Hạ tầng bị bỏ mặc không chỉ có thể trở thành đường truy cập thực tế trong quá trình xác minh CA TLS/SSL mà còn trong hệ sinh thái web shell do kẻ tấn công sử dụng; các tên miền liên quan sẽ được The Shadowserver Foundation tiếp quản để sinkhole

Hạ tầng hết hạn trở thành đường truy cập vào backdoor

  • Trong nghiên cứu .MOBI năm 2024, watchTowr Labs đã cho thấy các tên miền chưa được đăng ký có thể ảnh hưởng tới quy trình xác minh quyền sở hữu tên miền của CA TLS/SSL, sau đó Google đã kiến nghị CAB Forum loại bỏ việc xác minh quyền sở hữu dựa trên WHOIS
  • Nghiên cứu lần này áp dụng cùng một nhóm vấn đề là hạ tầng hết hạn hoặc bị bỏ mặc vào hệ sinh thái web shell và backdoor
  • Nhóm nghiên cứu đã đăng ký lại các tên miền hết hạn mà một backdoor khác nằm trong backdoor phụ thuộc vào, qua đó quan sát lưu lượng do các máy chủ đã nhiễm gửi đi
  • Về mặt lý thuyết, cách làm này có thể tạo ra vị trí cho phép chiếm quyền hoặc điều khiển các máy chủ bị xâm phạm, nhưng để không tạo thêm rủi ro cho hệ thống, nhóm nghiên cứu đã làm mờ hầu hết hostname
  • Đến nay đã quan sát được hơn 4.000 backdoor đang hoạt động duy nhất, và con số này vẫn tiếp tục tăng

Web shell là phương tiện điều khiển từ xa được để lại sau xâm nhập

  • Web shell là đoạn mã được triển khai sau khi máy chủ web bị xâm nhập, đóng vai trò backdoor để kẻ tấn công thực hiện các hành động tiếp theo
  • Dạng đơn giản có thể là mã thực thi lệnh như <?php system($_GET['exec']);?> trong PHP
  • Các dạng phức tạp hơn gồm những web shell như c99shell, r57shell, China Chopper, có thể bao gồm các chức năng sau
    • Thực thi lệnh
    • Xóa, sửa, tải lên, di chuyển, đổi tên tệp
    • Thực thi mã
    • Tự xóa
    • Triển khai thêm backdoor như connect-back, bindshell
    • Brute-force FTP
    • Ứng dụng khách SQL
  • c99shellr57shell được giới thiệu là những web shell từng được sử dụng rộng rãi trong quá khứ

Vị trí bị rò rỉ cho tác giả web shell

  • r57shell chứa đoạn mã tải ảnh kích thước 0 từ rst.void.ru, bề ngoài trông như đang gửi thông tin về phiên bản shell hiện tại
  • Thực tế, thông qua header Referer của yêu cầu HTTP, vị trí của web shell mới được triển khai bị lộ cho chủ sở hữu rst.void.ru
  • Nghĩa là ngay cả khi kẻ tấn công xâm nhập mục tiêu và cài web shell, tác giả web shell vẫn có thể nhận được vị trí đó
  • Trong trường hợp c99shell, thông tin xác thực được hardcode, nhưng lời gọi @extract($_REQUEST["c99shcook"]) có thể ghi đè các biến trong scope hiện tại
  • extract không an toàn với dữ liệu không đáng tin cậy; kẻ tấn công có thể đưa giá trị md5_passlogin vào tham số yêu cầu c99shcook để thay thế các biến xác thực sẵn có và vượt qua kiểm tra đăng nhập

Chỉ ghi lại callback bằng hơn 40 tên miền

  • Nhóm nghiên cứu đã thu thập web shell thuộc nhiều ngôn ngữ, đối tượng và niên đại khác nhau, giải mã các đoạn mã bị làm rối bằng base64 và các kỹ thuật khác để trích xuất những tên miền chưa đăng ký có vẻ được dùng cho callback
  • Sau đó họ đăng ký hàng loạt hơn 40 tên miền bằng API AWS Route53
  • Các tên miền ví dụ gồm aljazeera7.com, alturks.com, caspian-pirates.org, h0ld-up.info, w2img.com, odayexp.com, nettekiadres.com
  • Họ cấu hình chứng chỉ TLS wildcard và máy chủ web Apache, rồi trỏ các tên miền mới về máy chủ ghi log
  • Máy chủ ghi log chỉ ghi nhận các yêu cầu đến và trả về 404, nhóm nghiên cứu không phản hồi theo cách khiến hệ thống thực thi mã mà chỉ nhận những yêu cầu do hệ thống tự gửi ra

Callback web shell có vẻ là công cụ của Lazarus

  • Đã quan sát thấy hàng nghìn yêu cầu tải ảnh .gif tới nhóm tên miền w2img.com
  • Nhóm nghiên cứu tìm được mẫu backdoor tạo ra các yêu cầu đó và cho rằng nó giống với phiên bản được cho là Lazarus sử dụng năm 2020
  • Khi loại bỏ lớp làm rối, xuất hiện đoạn mã tải tệp .gif từ img2.w2img.com dưới dạng background:url(...) trong CSS
  • Khi trình duyệt yêu cầu ảnh, log phía máy chủ sẽ lưu yêu cầu kèm Referer, nhờ đó có thể biết vị trí web shell được triển khai
  • Chỉ riêng backdoor này đã cho thấy hơn 3.900 tên miền bị xâm phạm duy nhất
  • Các trình duyệt hiện đại gần đây chỉ để lộ tên miền trong Referer, nhưng đã có trường hợp kẻ tấn công dùng trình duyệt cũ gửi cả URL đầy đủ của web shell

Bao gồm cả tên miền chính phủ và cơ sở giáo dục bậc cao

  • Khi tìm các tên miền .gov trong Referer của log, nhóm nghiên cứu đã thấy nhiều tên miền liên quan tới chính phủ
  • Các ví dụ được xác nhận gồm
    • fhc.gov.ng: Tòa án Liên bang Cấp cao Nigeria
    • Các tên miền thuộc gov.cn
    • Các tên miền thuộc gov.bd
    • Các tên miền thuộc court.gov.cn
  • Trong trường hợp Tòa án Liên bang Cấp cao Nigeria, có 4 backdoor khác nhau gửi thông tin, và các tên miền nhận yêu cầu cũng khác nhau
  • Nhóm nghiên cứu tổng kết rằng trong hơn 4.000 hệ thống bị xâm phạm nói chung, có bốn hệ thống .gov
  • Các trường đại học và cơ sở giáo dục bậc cao tại Thái Lan, Trung Quốc, Hàn Quốc cũng được quan sát là mục tiêu bị xâm phạm

Web shell gửi mật khẩu ở dạng plain text

  • Một loại backdoor khác không dựa vào việc tải ảnh và Referer, mà gửi trực tiếp URL và thông tin cụ thể qua tham số
  • Các yêu cầu tới odayexp.com có chứa tham số url cùng với tham số p
  • Trong mã web shell ASP, giá trị p là biến UserPass, tức mật khẩu cần để đăng nhập vào web shell
  • Kẻ tấn công đã đặt mật khẩu cho web shell, nhưng cấu trúc của nó lại gửi chính mật khẩu đó ở dạng plain text tới odayexp.com
  • Khi watchTowr sở hữu tên miền đó, vị trí web shell và mật khẩu đã được chuyển tới máy chủ ghi log của nhóm nghiên cứu
  • Trong log còn có các yêu cầu chứa localhost, IP private và đường dẫn thử nghiệm, cho thấy dấu vết ai đó đã chỉnh sửa hoặc thử chức năng này

Giới hạn trong diễn giải và xử lý tiếp theo

  • Các shell được quan sát có xu hướng thiên về mục tiêu ở Trung Quốc, nhưng nhóm nghiên cứu cho rằng điều này có thể chỉ phản ánh dữ liệu mẫu
  • IP nguồn khó dùng làm căn cứ vì việc sử dụng proxy rất dễ dàng, nhưng các yêu cầu có vẻ là lưu lượng của kẻ tấn công hoặc kiểu quản trị bất thường lại tập trung mạnh vào các dải IP ở Hong Kong và Trung Quốc
  • Web shell mở, tên miền hết hạn và phần mềm cài sẵn backdoor cho thấy kẻ tấn công cũng mắc sai lầm giống như phía phòng thủ
  • Tương tự nghiên cứu .MOBI trước đây, nếu các tên miền lại bị để hết hạn lần nữa thì vấn đề tương tự có thể lặp lại, nên vẫn còn câu hỏi về trách nhiệm xử lý
  • The Shadowserver Foundation sẽ tiếp quản các tên miền liên quan trong nghiên cứu này để sinkhole

1 bình luận

 
GN⁺ 2025-01-13
Ý kiến trên Hacker News
  • Vì sợ CFAA nên tôi sẽ không dám tự thử, nhưng việc này thật sự rất hay. Đặc biệt buồn cười là có 4 backdoor ký sinh bám vào một domain của chính phủ
    Tôi tự hỏi liệu các script kiddie khi chiếm được hệ thống có không xóa backdoor của script kiddie khác để độc chiếm hay không
    Tôi mong tất cả chúng ta ngừng dùng các từ như “mua” hay “sở hữu” khi nói về domain. “thuê” hay “mượn” đúng hơn, và nếu nó là thứ thật sự có thể mua thì đã không thể lại trở nên khả dụng như trong vụ này

    • Trong ngữ cảnh này, “mua” chính xác nghĩa là gì cũng khá mơ hồ. Ngay cả một quốc gia cũng khó có thể nói là “sở hữu” ccTLD của mình, nhưng ICANN đã khá công phu xây dựng chính sách rằng “ccTLD nên được đối xử như thể thuộc sở hữu của quốc gia đó” để tránh căng thẳng trong không gian tên Internet
      Vì vậy hầu hết quy tắc của gTLD không áp dụng cho ccTLD. Có thể xem một quốc gia “sở hữu” ccTLD của mình chỉ theo nghĩa họ có thể dùng sức mạnh quân sự để bảo vệ việc sử dụng ccTLD đó nếu ICANN hoặc các máy chủ root-servers.net không còn phân giải TLD đúng cách
    • Nhìn thật lệch đi một chút thì tài sản vật lý và số đều có thể coi là đi thuê
    • Đó là bản chất con người và kiểu “chức năng” của tiếng Anh. Người ta vẫn gọi xe đi thuê dài hạn hay số điện thoại là “xe của tôi”, “số của tôi”, và dù đang gánh khoản vay thế chấp gần như không có vốn tự có thì vẫn gọi là “nhà của tôi”
      Đó là một cách rút gọn khái niệm, trong đó thực tế lộn xộn được coi là hiểu ngầm theo lẽ thường, hoặc ngay từ đầu được xem là không liên quan đến luận điểm
  • Bài viết thật sự rất hay. Đọc nhẹ nhàng nhưng vẫn ý thức được tác động của việc công bố; mọi nội dung đều có căn cứ mà không tự làm ra vẻ quá nghiêm trọng
    Vừa đọc thú vị, vừa xử lý tốt một vấn đề bảo mật nghiêm trọng

    • Tôi cũng có cảm giác tương tự với bài này và bài trước về .mobi. Có đủ bối cảnh, giải thích tốt, nhẹ nhàng và ngầu mà không cố tỏ ra ngầu
      Nội dung đầy đủ và không thừa thãi, nên khá mới mẻ so với nhiều bài blog hay bài phân tích bảo mật thường bỏ lỡ những điểm này
    • Tôi cũng thích việc có WordArt xuất hiện, nhưng hơi tiếc là không dùng hiệu ứng cầu vồng
  • Tôi tò mò không biết chuyện gì sẽ xảy ra nếu dùng ngược lại web shell backdoor này để xóa web shell

  • Tôi không chắc mình đã hiểu đúng phần này chưa. Bài giải thích rằng CSS khiến trình duyệt lấy ảnh nền từ một URL nhất định, nên trình duyệt sẽ yêu cầu file .gif trên w2img.com; và rằng các trình duyệt gần đây chỉ tiết lộ domain trong referrer, nhưng kẻ tấn công dùng trình duyệt cũ thì đã gửi toàn bộ URL của shell
    Nhưng câu “kẻ tấn công dùng trình duyệt cũ” nghe lạ. Ban đầu kẻ tấn công đã kiểm soát máy chủ cung cấp CSS, còn trình duyệt là của người dùng vô tội truy cập máy chủ bị chiếm chứ? Nếu vậy người dùng trình duyệt là nạn nhân, không phải kẻ tấn công
    Tôi không hiểu trong tình huống nào kẻ tấn công lại dùng trình duyệt

    • Web shell là một trang, thường là file .php, mà kẻ tấn công upload lên site sau khi xâm nhập kiểu RCE; kẻ tấn công mở trang đó bằng trình duyệt của mình để thực hiện thêm thao tác trên web server đã bị xâm nhập
      Nhưng các file web shell có sẵn kiểu này lại do kẻ tấn công khác tạo ra, và được phát tán trong trạng thái đã bị cài backdoor. Trong trường hợp này, CSS bên trong web shell khiến trình duyệt của kẻ tấn công rò rỉ vị trí web shell về domain do tác giả gốc kiểm soát
  • Hơi lạc đề, nhưng tôi không hiểu vì sao font của chữ y trong bài này lại trông như vậy. Nó quá nổi bật nên gây khó chịu khi nhìn

    • Những thứ như thế này khá thường xuyên làm tôi khó chịu nên tôi đã tắt downloadable_fonts. Tôi nghĩ web là nơi để đọc chữ, vì vậy tôi không thích các font tùy chỉnh làm giảm khả năng đọc
      Tôi hiểu nhà thiết kế muốn có phong cách riêng, nhưng với tư cách người dùng cuối thì hiếm khi tôi muốn điều đó
    • Bản thân thiết kế font là như vậy: https://abcdinamo.com/typefaces/favorit
    • Tôi nghĩ một số font cố tình thêm các yếu tố như vậy để có đặc điểm nhận diện riêng. Thị trường font đã rất bão hòa, nên điều đó có thể giúp nổi bật giữa hàng loạt bản sao na ná nhau
      Phần nổi bật có thể được cố ý làm hơi gây khó chịu, nhưng giống như một phát ngôn gây tranh cãi, dù sao nó vẫn phải có lý ở mức nào đó. Nó giống chiến lược của một số nhân vật trực tuyến cố ý phát âm sai một số từ lặp đi lặp lại hoặc phóng đại ngữ điệu
      Quay lại chuyện font, tôi nhớ trang lời bài hát Genius cũng từng dùng cách tương tự một thời gian. Trong giai đoạn định vị, họ dùng các dạng chữ vuông vức của font Programme, có thể thấy ở liên kết dưới đây. Hiện họ vẫn dùng Programme, nhưng có vẻ từ một thời gian trước đã chuyển sang dạng thông thường, có lẽ vì nó thật sự gây khó chịu và làm giảm khả năng đọc
      https://www.typewolf.com/programme
  • Bài có vài lỗi chính tả. Trong “with the hopes of painting a paint a clear picture” thì a paint là thừa, và trong “we the following stood out” thì we là thừa
    Ngoài ra “Atleast” trong “Atleast there will be memes...” cũng là lỗi chính tả

  • Thấy nhắc đến h0no làm tôi nhớ lại ngày xưa. Cảm giác như quay về thời darpanet/m00/#darknet/dikline

  • Tôi thắc mắc vì sao gần như mọi domain đều bị che, nhưng domain của Federal High Court of Nigeria lại được giữ nguyên
    Dù không được nói rõ, tôi hy vọng họ đã đi qua quy trình công bố có trách nhiệm

  • Có vẻ 99% dựa trên việc giành được domain hết hạn, vậy mà họ không nói gì về cách làm sao?

    • Không biết bạn có thật sự đọc bài chưa. Bài giải thích khá chi tiết. Họ không “hijack” bản ghi DNS, mà mua các domain đã hết hạn và trở nên khả dụng
      Phần duy nhất họ không giải thích là cách tìm các shell trên mạng, và điều đó có lý do rõ ràng; theo cách nói của tác giả thì đó là những thứ “rơi khỏi thùng xe tải”