搜索
查看: 1537|回复: 36
收起左侧

[病毒样本] 自制木马OSkiller1.1

[复制链接]
ruineng
发表于 2021-2-10 19:24:48 | 显示全部楼层 |阅读模式
本帖最后由 ruineng 于 2021-2-12 08:52 编辑

病毒样本下载链接停止提供,原因:有骗子滥用本病毒迫害电脑小白,欺骗小白说本病毒是个外{过}{滤}挂,一个劲地点“确定”就行
ruineng
 楼主| 发表于 2021-2-10 20:21:49 | 显示全部楼层
本帖最后由 ruineng 于 2021-2-12 08:52 编辑

病毒样本下载链接停止提供,原因:有骗子滥用本病毒迫害电脑小白,欺骗小白说本病毒是个外{过}{滤}挂,一个劲地点“确定”就行
ruineng
 楼主| 发表于 2021-2-11 14:40:00 | 显示全部楼层
henry217 发表于 2021-2-10 20:38
ESET双击同样miss 虚拟机里玩玩看
这只能算个joker  连计算机病毒都算不上 不过破坏力堪比熊猫烧香[:01: ...

不是啊,这个病毒是我做的,为了防止恶搞啊,因为出了事我可要负责的,所以才要弹窗警告

评分

参与人数 1人气 +1 收起 理由
henry217 + 1 --------

查看全部评分

a233
发表于 2021-2-10 19:42:48 | 显示全部楼层
Avast DeepScreen拦截

本帖子中包含更多资源

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

x
shaomao
发表于 2021-2-10 19:49:39 | 显示全部楼层
卡巴, 火绒MISS   诺顿杀
心醉咖啡
发表于 2021-2-10 19:51:07 | 显示全部楼层
毒霸
  1. 扫描时间:[2021-02-10 19:50:45]
  2. 扫描用时:[00:00:04]
  3. 扫描类型:自定义查杀
  4. 扫描文件总数:1
  5. 扫描速度:1文件/秒
  6. 发现威胁:1个
  7. 清除威胁:1个
  8. =============================================
  9. [2021-02-10 19:50:54]
  10. 威胁:e:\浏览器下载\oskiller1.1(解压密码:oskiller)\oskiller.exe
  11. 类型:win32.heur.kam2.a
  12. 处理方式:需要处理

复制代码
正在缓冲
发表于 2021-2-10 19:52:19 | 显示全部楼层
ESET竟然暂时miss
  1. 日志
  2. 扫描日志
  3. 检测引擎的版本: 22789 (20210210)
  4. 日期: 2021/2/10  时间: 19:51:48
  5. 已扫描的磁盘、文件夹和文件: C:\Users\Windows\Desktop\OSkiller.exe
  6. 已扫描的对象数: 2
  7. 检测数: 0
  8. 完成时间: 19:51:48  总扫描时间: 0 秒 (00:00:00)
复制代码

BitterLotus
发表于 2021-2-10 19:52:29 | 显示全部楼层
本帖最后由 BitterLotus 于 2021-2-10 20:31 编辑

https://www.virustotal.com/gui/f ... 3bdcb010c/detection
大概分析了一下main函数,这里是伪C代码,有兴趣的可以看看,前半部分有注释。
@ruineng  你可以来看看分析的对不对。
  1. int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
  2. {
  3.   HANDLE 创建文件返回的句柄; // eax
  4.   void *创建文件返回的句柄2; // edi
  5.   _DWORD *v6; // esi
  6.   DWORD *v7; // esi
  7.   DWORD v8; // eax
  8.   char *v9; // ST18_4
  9.   int v10; // esi
  10.   const char *v11; // edi
  11.   const char *v12; // esi
  12.   signed int v13; // eax
  13.   char *v14; // edi
  14.   const char *v15; // esi
  15.   const char *v16; // edi
  16.   const char *v17; // ST14_4
  17.   DWORD *v18; // esi
  18.   DWORD v19; // edi
  19.   char *v20; // esi
  20.   HINSTANCE v21; // eax
  21.   HMODULE v22; // eax
  22.   FARPROC v23; // eax
  23.   CHAR FileName; // [esp+10h] [ebp-298h]
  24.   CHAR 文件名; // [esp+114h] [ebp-194h]
  25.   CHAR v27; // [esp+218h] [ebp-90h]
  26.   char v28; // [esp+24Ch] [ebp-5Ch]
  27.   DWORD NumberOfBytesWritten; // [esp+280h] [ebp-28h]
  28.   HINSTANCE buffer; // [esp+284h] [ebp-24h]
  29.   int v31; // [esp+288h] [ebp-20h]
  30.   DWORD NumberOfBytesRead; // [esp+28Ch] [ebp-1Ch]
  31.   DWORD v33; // [esp+290h] [ebp-18h]
  32.   int v34; // [esp+294h] [ebp-14h]
  33.   void (__stdcall *v35)(signed int); // [esp+298h] [ebp-10h]
  34.   DWORD v36; // [esp+29Ch] [ebp-Ch]
  35.   LPVOID lpBuffer; // [esp+2A0h] [ebp-8h]
  36.   LPCSTR lpText; // [esp+2A4h] [ebp-4h]
  37.   HINSTANCE buffer2; // [esp+2B0h] [ebp+8h]
  38.   HINSTANCE hInstanceb; // [esp+2B0h] [ebp+8h]
  39.   HINSTANCE hInstancec; // [esp+2B0h] [ebp+8h]
  40.   const char *hInstanced; // [esp+2B0h] [ebp+8h]
  41.   HINSTANCE hInstancee; // [esp+2B0h] [ebp+8h]

  42.   lpText = 0;
  43.   lpBuffer = 0;
  44.   v35 = 0;
  45.   GetModuleFileNameA(hInstance, &文件名, 0x104u);  // 获得某个正在运行的EXE或者DLL的全路径
  46.   创建文件返回的句柄 = CreateFileA(&文件名, 0x80000000, 1u, 0, 3u, 0x80u, 0);// 创建一个文件
  47.   创建文件返回的句柄2 = 创建文件返回的句柄;                       // 将v5赋值为创建文件返回的句柄
  48.   if ( 创建文件返回的句柄 == (HANDLE)-1 )                // 判断创建是否成功
  49.   {
  50.     lpText = aCanTOpenFile;
  51.     goto LABEL_47;                              // 跳转到MessageBox报错
  52.   }
  53.   v36 = SetFilePointer(创建文件返回的句柄, -8, 0, 2u);   // 猜测是指向打开文件的末尾以获取文件长度
  54.   if ( v36 < 0x3E8 )                            // 如果大于1000视为无效大小
  55.     goto LABEL_53;
  56.   NumberOfBytesRead = 0;                        // 将以读取的字节数设为0
  57.   if ( !ReadFile(创建文件返回的句柄2, &buffer, 8u, &NumberOfBytesRead, 0) || NumberOfBytesRead != 8 )
  58.   {
  59.     lpText = aFailedToReadDa;                   // 读取文件失败
  60.     goto LABEL_45;
  61.   }
  62.   buffer2 = buffer;
  63.   if ( v31 != -2103789659 || (signed int)buffer < 4 || (signed int)buffer >= (signed int)v36 )
  64.   {
  65. LABEL_53:
  66.     lpText = aInvalidDataInT;                   // 无效文件大小
  67.     goto LABEL_47;
  68.   }
  69.   lpBuffer = operator new((unsigned int)buffer);// 将buffer重载为lpBuffer
  70.   if ( !lpBuffer )
  71.   {
  72. LABEL_23:
  73.     lpText = aInsufficientMe;                   // 没看懂。大概就是报错
  74.     goto LABEL_45;
  75.   }
  76.   v33 = 0;
  77.   if ( SetFilePointer(创建文件返回的句柄2, -8 - (_DWORD)buffer2, 0, 2u) != -1
  78.     && (v6 = lpBuffer, ReadFile(创建文件返回的句柄2, lpBuffer, (DWORD)buffer2, &v33, 0))
  79.     && (HINSTANCE)v33 == buffer2
  80.     && *v6 == -2103789659 )
  81.   {
  82.     v7 = v6 + 1;
  83.     if ( !GetTempPathA(0x104u, &文件名) )
  84.     {
  85.       lpText = aCanTRetrieveTh;
  86.       goto LABEL_45;
  87.     }
  88.     v8 = *v7;
  89.     v9 = (char *)v7[1];
  90.     hInstanceb = buffer2 - 3;
  91.     v10 = (int)(v7 + 1);
  92.     v36 = v8;
  93.     sub_401119(v10 + 4, hInstanceb, (char)v9);
  94.     v11 = (const char *)(v10 + 4);
  95.     if ( *(_BYTE *)(v10 + 4) )
  96.     {
  97.       strcat(&文件名, v11);
  98.       v12 = &v11[strlen(v11) + 1];
  99.     }
  100.     else
  101.     {
  102.       wsprintfA(&v27, aENX, v36);
  103.       strcat(&文件名, &v27);
  104.       v12 = (const char *)(v10 + 5);
  105.     }
  106.     CreateDirectoryA(&文件名, 0);
  107.     strcat(&文件名, asc_40718C);
  108.     hInstancec = hInstanceb - 2;
  109.     v13 = *((_DWORD *)v12 + 1);
  110.     v34 = *((_DWORD *)v12 + 1);
  111.     if ( (signed int)hInstancec > 0 && *(_DWORD *)v12 == 54398733 && v13 > 0 )
  112.     {
  113.       v14 = (char *)operator new(v13);
  114.       if ( v14 )
  115.       {
  116.         if ( sub_403248(v14, &v34, v12 + 8, hInstancec) )
  117.         {
  118.           operator delete(v14);
  119.           lpText = aFailedToDecomp;
  120.         }
  121.         else
  122.         {
  123.           operator delete(lpBuffer);
  124.           lpBuffer = v14;
  125.           v15 = v14;
  126.           v36 = (DWORD)&v14[v34];
  127.           v28 = 0;
  128.           if ( v14 >= &v14[v34] )
  129.             goto LABEL_54;
  130.           do
  131.           {
  132.             v16 = v15;
  133.             hInstanced = v15;
  134.             v17 = v15;
  135.             v18 = (DWORD *)&v15[strlen(v15) + 1];
  136.             if ( !_strcmpi(v17, aKrnlnFnr) || !_strcmpi(v16, aKrnlnFne) )
  137.               strcpy(&v28, v16);
  138.             v19 = *v18;
  139.             v20 = (char *)(v18 + 1);
  140.             strcpy(&FileName, &文件名);
  141.             strcat(&FileName, hInstanced);
  142.             v21 = (HINSTANCE)CreateFileA(&FileName, 0x40000000u, 0, 0, 2u, 0x80u, 0);
  143.             hInstancee = v21;
  144.             if ( v21 != (HINSTANCE)-1 )
  145.             {
  146.               WriteFile(v21, v20, v19, &NumberOfBytesWritten, 0);
  147.               CloseHandle(hInstancee);
  148.             }
  149.             v15 = &v20[v19];
  150.           }
  151.           while ( (unsigned int)v15 < v36 );
  152.           if ( v28 )
  153.           {
  154.             strcpy(&FileName, &文件名);
  155.             strcat(&FileName, &v28);
  156.             v22 = LoadLibraryA(&FileName);
  157.             if ( v22 )
  158.             {
  159.               v23 = GetProcAddress(v22, ProcName);
  160.               if ( v23 )
  161.               {
  162.                 v35 = (void (__stdcall *)(signed int))((int (__stdcall *)(signed int))v23)(1000);
  163.                 if ( !v35 )
  164.                   lpText = aTheInterfaceOf;
  165.               }
  166.               else
  167.               {
  168.                 lpText = aTheKernelLibra;
  169.               }
  170.             }
  171.             else
  172.             {
  173.               lpText = aFailedToLoadKe;
  174.             }
  175.           }
  176.           else
  177.           {
  178. LABEL_54:
  179.             lpText = aNotFoundTheKer;
  180.           }
  181.         }
  182.         goto LABEL_45;
  183.       }
  184.       goto LABEL_23;
  185.     }
  186.     lpText = aInvalidDataInT;
  187.   }
  188.   else
  189.   {
  190.     lpText = aFailedToReadFi;
  191.   }
  192. LABEL_45:
  193.   if ( lpBuffer )
  194.     operator delete(lpBuffer);
  195. LABEL_47:
  196.   if ( lpText )
  197.     MessageBoxA(0, lpText, Caption, 0x10u);
  198.   else
  199.     v35(4231168);
  200.   return 0;
  201. }
复制代码




秋日之殇
发表于 2021-2-10 19:53:58 | 显示全部楼层
本帖最后由 秋日之殇 于 2021-2-10 19:55 编辑

卡巴斯基双击杀

本帖子中包含更多资源

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

x
秋日之殇
发表于 2021-2-10 19:56:52 | 显示全部楼层
BitterLotus 发表于 2021-2-10 19:52
就不能整个蓝奏?这两个东西下的人快恶心死了。

https://cowtransfer.com/s/da3af480247b46
凑合用
BitterLotus
发表于 2021-2-10 19:58:15 | 显示全部楼层
秋日之殇 发表于 2021-2-10 19:56
https://cowtransfer.com/s/da3af480247b46
凑合用

我还剩十秒,把次数留给别人吧
技术支持-小凯
发表于 2021-2-10 20:06:43 | 显示全部楼层
不知道为什么,我这里金山毒霸miss,和刚刚的上面那位的检测结果不一样

本帖子中包含更多资源

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

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

本版积分规则

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

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 湘ICP备2021004765号-1 ) GMT+8, 2021-4-21 10:21 , Processed in 0.136786 second(s), 20 queries .

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

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