freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

AgentTesla 全球受害者情况分析
2024-01-13 23:41:58

AgentTesla 是一个非常活跃的窃密类恶意软件,主要通过电子邮件附件进行传播分发。攻击者正在尝试使用 Telegram 回传数据,但主要还是靠邮件服务器。

恶意软件即服务

AgentTesla 是使用 .NET 开发的 Windows 恶意软件,主要从受害者的系统中窃取敏感信息。由于该恶意软件随处可用而且成本低廉,AgentTesla 被认为是商品化恶意软件的典型代表。恶意软件即服务使水平较低的犯罪分子也可以进行各种类型的攻击,对网络安全状况构成了重大威胁。自从 2014 年开始,AgentTesla 就成为了持续且广泛的威胁。

AgentTesla 也被称为 Negasteal 和 OriginLogger,主要是 2018 年 10 月该恶意软件被揭露后产生的变化。研究人员披露了该恶意软件背后的疑似攻击者,应该是土耳其人。当年信息被披露后,AgentTesla 突然就暂停了销售。2019 年 3 月,攻击者通过 Discord 宣布由于法律问题停止销售,但也介绍了替代方案 OriginLogger。

OriginLogger 实质上就是 AgentTesla 的变种,二者共享开发代码。对 AgentTesla 的检测方法对于识别 OriginLogger 也是有效的,OriginLogger 样本也会被检测为 AgentTesla 家族的恶意样本。和 AgentTesla 类似,OriginLogger 也是恶意软件即服务(MaaS)。OriginLogger 的网站如下所示:

OriginLogger 网站截图

网站售卖使用许可证,最长可达六个月。购买这些许可证后就能够获得使用恶意软件构建工具的权限,支持攻击者定制 AgentTesla 样本文件,包括数据泄露的方法。

由于 AgentTesla 和 OriginLogger 有许多相似之处,将其区分开非常有挑战。本文将二者统称为 AgentTesla,除非要对二者进行比较。

信息窃取程序

名称变化后,该恶意软件一直持续更新。AgentTesla 家族一直位于最常见、最流行的恶意软件排行榜前列,ANY.RUN、MalwareBazaar 与 Unpac.Me 等都可以证明。

通常来说,AgentTesla 会使用带有恶意附件的网络钓鱼邮件进行攻击。攻击者将恶意软件加载程序,如 GuLoader、PureCrypter 与 PrivateLoader,作为初始感染媒介。感染链启动后,最终 Payload 会进行持久化,尽可能保持更长时间收集用户凭据、按键记录、剪贴板信息和屏幕截图。具体来说,可以从浏览器、VPN 客户端、邮件客户端、FTP 客户端、VNC 客户端等应用程序收集各种敏感信息。

数据泄露可以通过各种协议实现,如 SMTP、FTP、HTTP、Telegram 与 Discord。2020 年 8 月,攻击者引入了 Telegram。2022 年 10 月,攻击者引入了 Discord。数据会以明文的形式回传给攻击者,以未加密的状态保留在服务器上。

1705160282_65a2ae5ac7d031c7b3219.png!small?1705160282995

数据回传

过去的三个月中,研究人员分析了 1500 余个 AgentTesla 样本的配置文件。配置文件中,大约四分之三都是利用电子邮件进行数据泄露。Telegram 已经占比达到 14%,而使用 HTTP 回传数据已经许久未用过了。

数据分析

分析人员分析了 3 个月内 210 次攻击行动中的受害者信息。2023 年 10 月到 12 月期间,至少 5300 台计算机被入侵,共计 2000 余个 IP 地址。根据情况看,受害者最多的是美国、中国与德国。

1705160322_65a2ae829cd906db45c62.png!small?1705160322943

受害者分布情况

而 AgentTesla 回传的数据中,密码是最常见的。几乎所有共计都会窃取密码,如下所示:

1705160337_65a2ae9150959b3565682.png!small?1705160337555

数据泄露类别分类

顶级域名的词云如下所示,大多数是美国公司和中国公司,也有俄罗斯公司、土耳其公司和希腊公司。

1705160353_65a2aea1af054ae93daa5.png!small?1705160354051

按受害者数量排名

这些域名数据反映了受害者的国家分布情况,而查看顶级域名情况时。大多数受害者可能在欧洲,如土耳其、意大利、俄罗斯、波兰、希腊、罗马尼亚、德国和西班牙。

1705160368_65a2aeb0db5d67e2305c9.png!small?1705160369005

顶级域名排行

后续利用

攻击者获取了这些数据后,要么直接利用这些数据,要么直接出售以供进一步利用。直接利用时,攻击者通常会使用各种身份信息,将资金、加密货币或者其他有价值的资产从受害者账户转移到攻击者的账户。进一步利用时,攻击者可以将数据用于其他以利润为导向的攻击,例如勒索软件攻击和商业电子邮件泄露(BEC)攻击等。事实上,已经有攻击者利用 AgentTesla 恶意软件重定向东南亚、中东和北非的石油公司与天然气公司的金融交易。

总结

2014 年以来,AgentTesla 是一个以恶意软件即服务为卖点的 Windows 恶意软件。该恶意软件后来更名为 OriginLogger,也表明了该恶意软件的适应性。数据分析显示,AgentTesla 的数千名受害者主要在美国、中国与德国。大量数据被泄露,不仅直接构成财务威胁,还助长勒索软件和其他类型的攻击。

Yara

rule agent_tesla
{
    meta:
        description = "Detecting HTML strings used by Agent Tesla malware"
        author = "Stormshield"
        version = "1.0"

    strings:
        $html_username    = "<br>UserName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: " wide ascii
        $html_pc_name     = "<br>PC&nbsp;Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: " wide ascii
        $html_os_name     = "<br>OS&nbsp;Full&nbsp;Name&nbsp;&nbsp;: " wide ascii
        $html_os_platform = "<br>OS&nbsp;Platform&nbsp;&nbsp;&nbsp;: " wide ascii
        $html_clipboard   = "<br><span style=font-style:normal;text-decoration:none;text-transform:none;color:#FF0000;><strong>[clipboard]</strong></span>" wide ascii

    condition:
        3 of them
}

rule AgentTesla
{
    meta:
        author = "kevoreilly"
        description = "AgentTesla Payload"
        cape_type = "AgentTesla Payload"
    strings:
        $string1 = "smtp" wide
        $string2 = "appdata" wide
        $string3 = "76487-337-8429955-22614" wide
        $string4 = "yyyy-MM-dd HH:mm:ss" wide
        //$string5 = "%site_username%" wide
        $string6 = "webpanel" wide
        $string7 = "<br>UserName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:" wide
        $string8 = "<br>IP Address&nbsp;&nbsp;:" wide

        $agt1 = "IELibrary.dll" ascii
        $agt2 = "C:\\Users\\Admin\\Desktop\\IELibrary\\IELibrary\\obj\\Debug\\IELibrary.pdb" ascii
        $agt3 = "GetSavedPasswords" ascii
        $agt4 = "GetSavedCookies" ascii
    condition:
        uint16(0) == 0x5A4D and (all of ($string*) or 3 of ($agt*))
}

rule AgentTeslaV2 {
    meta:
        author = "ditekshen"
        description = "AgenetTesla Type 2 Keylogger payload"
        cape_type = "AgentTesla Payload"
    strings:
        $s1 = "get_kbHook" ascii
        $s2 = "GetPrivateProfileString" ascii
        $s3 = "get_OSFullName" ascii
        $s4 = "get_PasswordHash" ascii
        $s5 = "remove_Key" ascii
        $s6 = "FtpWebRequest" ascii
        $s7 = "logins" fullword wide
        $s8 = "keylog" fullword wide
        $s9 = "1.85 (Hash, version 2, native byte-order)" wide

        $cl1 = "Postbox" fullword ascii
        $cl2 = "BlackHawk" fullword ascii
        $cl3 = "WaterFox" fullword ascii
        $cl4 = "CyberFox" fullword ascii
        $cl5 = "IceDragon" fullword ascii
        $cl6 = "Thunderbird" fullword ascii
    condition:
        (uint16(0) == 0x5a4d and 6 of ($s*)) or (6 of ($s*) and 2 of ($cl*))
}

rule AgentTeslaV3 {
    meta:
      author = "ditekshen"
      description = "AgentTeslaV3 infostealer payload"
      cape_type = "AgentTesla payload"
    strings:
        $s1 = "get_kbok" fullword ascii
        $s2 = "get_CHoo" fullword ascii
        $s3 = "set_passwordIsSet" fullword ascii
        $s4 = "get_enableLog" fullword ascii
        $s5 = "bot%telegramapi%" wide
        $s6 = "KillTorProcess" fullword ascii
        $s7 = "GetMozilla" ascii
        $s8 = "torbrowser" wide
        $s9 = "%chatid%" wide
        $s10 = "logins" fullword wide
        $s11 = "credential" fullword wide
        $s12 = "AccountConfiguration+" wide
        $s13 = "<a.+?href\\s*=\\s*([\"'])(?<href>.+?)\\1[^>]*>" fullword wide
        $s14 = "set_Lenght" fullword ascii
        $s15 = "get_Keys" fullword ascii
        $s16 = "set_AllowAutoRedirect" fullword ascii
        $s17 = "set_wtqQe" fullword ascii
        $s18 = "set_UseShellExecute" fullword ascii
        $s19 = "set_IsBodyHtml" fullword ascii
        $s20 = "set_FElvMn" fullword ascii
        $s21 = "set_RedirectStandardOutput" fullword ascii

        $g1 = "get_Clipboard" fullword ascii
        $g2 = "get_Keyboard" fullword ascii
        $g3 = "get_Password" fullword ascii
        $g4 = "get_CtrlKeyDown" fullword ascii
        $g5 = "get_ShiftKeyDown" fullword ascii
        $g6 = "get_AltKeyDown" fullword ascii

        $m1 = "yyyy-MM-dd hh-mm-ssCookieapplication/zipSCSC_.jpegScreenshotimage/jpeg/log.tmpKLKL_.html<html></html>Logtext/html[]Time" ascii
        $m2 = "%image/jpg:Zone.Identifier\\tmpG.tmp%urlkey%-f \\Data\\Tor\\torrcp=%PostURL%127.0.0.1POST+%2B" ascii
        $m3 = ">{CTRL}</font>Windows RDPcredentialpolicyblobrdgchrome{{{0}}}CopyToComputeHashsha512CopySystemDrive\\WScript.ShellRegReadg401" ascii
        $m4 = "%startupfolder%\\%insfolder%\\%insname%/\\%insfolder%\\Software\\Microsoft\\Windows\\CurrentVersion\\Run%insregname%SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\StartupApproved\\RunTruehttp" ascii
        $m5 = "\\WindowsLoad%ftphost%/%ftpuser%%ftppassword%STORLengthWriteCloseGetBytesOpera" ascii
    condition:
        (uint16(0) == 0x5a4d and (8 of ($s*) or (6 of ($s*) and 4 of ($g*)))) or (2 of ($m*))
}

rule AgentTeslaXor
{
    meta:
        author = "kevoreilly"
        description = "AgentTesla xor-based config decoding"
        cape_type = "AgentTesla Payload"
    strings:
        $decode = {06 91 06 61 20 [4] 61 D2 9C 06 17 58 0A 06 7E [4] 8E 69 FE 04 2D ?? 2A}
    condition:
        uint16(0) == 0x5A4D and any of them
}

rule AgentTeslaV4
{
    meta:
        author = "kevoreilly"
        description = "AgentTesla Payload"
        cape_type = "AgentTesla Payload"
        packed = "7f8a95173e17256698324886bb138b7936b9e8c5b9ab8fffbfe01080f02f286c"
    strings:
        $decode1 = {(07|FE 0C 01 00) (07|FE 0C 01 00) 8E 69 (17|20 01 00 00 00) 63 8F ?? 00 00 01 25 47 (06|FE 0C 00 00) (1A|20 04 00 00 00) 58 4A D2 61 D2 52}
        $decode2 = {(07|FE 0C 01 00) (08|FE 0C 02 00) 8F ?? 00 00 01 25 47 (07|FE 0C 01 00) (11 07|FE 0C 07 00) 91 (06|FE 0C 00 00) (1A|20 04 00 00 00) 58 4A 61 D2 61 D2 52}
        $decode3 = {(07|FE 0C 01 00) (11 07|FE 0C 07 00) 8F ?? 00 00 01 25 47 (07|FE 0C 01 00) (08|FE 0C 02 00) 91 61 D2 52}
    condition:
        uint16(0) == 0x5A4D and all of them
}

rule AgentTeslaV4JIT
{
    meta:
        author = "kevoreilly"
        description = "AgentTesla JIT-compiled native code"
        cape_type = "AgentTesla Payload"
        packed = "7f8a95173e17256698324886bb138b7936b9e8c5b9ab8fffbfe01080f02f286c"
    strings:
        $decode1 = {8B 01 8B 40 3C FF 50 10 8B C8 E8 [4] 89 45 CC B8 1A 00 00 00}
        $decode2 = {83 F8 18 75 2? 8B [2-5] D1 F8}
        $decode3 = {8D 4C 0? 08 0F B6 01 [0-3] 0F B6 5? 04 33 C2 88 01 B8 19 00 00 00}
    condition:
        2 of them
}

参考来源

BitSight

# AgentTesla # 信息窃密
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录