当前位置: 首页 > news >正文

APT 组织 Kimsuky 瞄准大学研究人员

执行摘要

Kimsuky 是一个朝鲜 APT 组织,其任务是执行符合朝鲜政府利益的全球情报收集行动。该组织自 2012 年以来一直活跃,对韩国智库和政府实体特别感兴趣;然而,它也针对美国、英国和其他欧洲国家。Kimsuky 擅长进行有针对性的网络钓鱼活动,在通过电子邮件通信建立信任后,利用后续电子邮件中的恶意附件进行攻击 [1][2]。

2024 年春,美国国家安全局和联邦调查局发布了一份针对朝鲜民主主义人民共和国(DPRK,又名朝鲜)的联合网络安全咨询,具体指出 Kimsuky 利用配置不当的 DNS 基于域的消息认证、报告和一致性 (DMARC) 记录策略来隐藏社会工程尝试 [3]。这份咨询报告指出,DPRK 倾向于冒充学者、记者或其他东亚专家,针对韩国、美国和欧洲开展活动 [2][3]。

2024 年 7 月下旬,Resilience 分析师发现威胁行为者 Kimsuky 犯了一个操作安全 (OPSEC) 错误。我们的分析师利用这一点收集了大量源代码、登录凭据、流量日志和内部笔记。根据我们收集的数据,我们评估 Kimsuky 正在钓鱼大学员工、研究人员和教授进行间谍活动。一旦进入大学网络,Kimsuky 就可以窃取朝鲜政府的研究和情报。

这些行动与朝鲜政府主要外国情报收集机构侦察总局 (RGB) 的目标一致。金修基此前曾试图窃取核武器研究、医疗保健和制药机密 [4]。在某些情况下,金修基还被认定为进行以经济为目的的网络犯罪,据信这些犯罪正在为他们的间谍活动提供资金 [4]。朝鲜试图利用这些信息来改善其严重缺乏成熟科学界的国家。

以下技术细节和建议提供了有关 Kimsuky 如何运作以及如何以大学为目标进一步开展朝鲜间谍行动的更多信息。

弹性建议

对于可能成为国家支持的运动目标的人,Resilience 建议采取以下高级策略:

  • 利用防网络钓鱼的多因素身份验证,例如符合 FIDO 的硬件令牌或基于推送的移动应用程序。
  • 请务必仔细检查您登录的 URL 是否与您预期登录的页面相匹配。一些密码管理器会自动执行此操作。
  • 审查并测试模拟 Kimsuky 活动的突破和攻击模拟包。

技术细节

暂存基础设施

CISA 先前的报告表明,Kimsuky 使用受感染的互联网主机来发动攻击。根据我们收集的数据,他们可以访问 audko[.]store、dorray[.]site、nusiu[.]live、osihi[.]store、simos[.]online、sorsi[.]online、wodos[.]online 和 wodods[.]xyz。

在获得基础设施访问权限以进行攻击后,威胁组织在主机上设置了一个名为“Green Dinosaur”的 Webshell。此 Webshell 允许操作员上传、下载、重命名和删除文件。此 Webshell 似乎基于从名为 Indrajith Mini Shell 2.0 [5] 的旧 Webshell 中提取的代码。然而,Green Dinosaur 删除了功能,限制了检测可能性,同时允许操作员放置钓鱼网站。

图片:“绿色恐龙”webshell

图片:“绿色恐龙”webshell

我们从 Kimsuky 基础设施获得的 GreenDinosaur 样本都经过了多层 base64 和 gz 压缩字符串的混淆,很可能是为了防止托管公司检测到。最后一层是使用 PHP 函数“strtr”的 base64 和多字符替换的混合。

图片:去混淆后的“绿色恐龙” webshell 源代码示例

图片:去混淆后的“绿色恐龙” webshell 源代码示例

钓鱼页面

设置 Green Dinosaur 后,运营商上传了预先构建的网络钓鱼页面。这些网络钓鱼页面是通过首先抓取他们模仿的真实登录门户来创建的。然后使用其他代码修改抓取的页面以记录任何输入的凭据。在这次活动中,针对同德大学、高丽大学和延世大学创建了网络钓鱼页面。此外,我们还发现了一个用于窃取 Naver 帐户的网络钓鱼工具包。

同德大学

同德大学钓鱼页面在视觉上与真正的同德电子邮件登录页面完全相同,但包含了一些可用作武器的修改。

图片:合法的 Dongduk 登录页面(上)和 Kimsuky 恶意登录页面(下)显示出明显的相似性。

图片:合法的 Dongduk 登录页面(上)和 Kimsuky 恶意登录页面(下)显示出明显的相似性。

图片:修改后的同德登录页面 HTML 代码截图

图片:修改后的同德登录页面 HTML 代码截图

上面的代码是添加到登录页面的主要部分。开发人员首先注释掉了网站使用 Dongduks 公共 RSA 密钥加密密码值的默认行为。以下代码获取用户名、密码和登录尝试次数,并将其发送到 j_spring_securty_check.php,而不是使用常规提交函数。此 PHP 文件包含以下代码:

图片:j_spring_security_check.php 代码的屏幕截图

图片:j_spring_security_check.php 代码的屏幕截图

该文件与 j-spring 或安全无关,它收集有关访问者、当前时间的信息,并将受害者的用户名和密码记录到服务器上的文件中。从受害者的角度来看,在他们第一次尝试登录后,他们会看到一条消息,上面写着“登录失败”,并提示他们再次输入凭证。这很可能是为了确保威胁行为者获得没有拼写错误的密码。在第二次尝试后,他们会被重定向到另一个网站,就好像登录正常一样,但实际上他们的凭证只是被记录到服务器上的文本文件中。

图片:正在记录的凭证的屏幕截图

图片:正在记录的凭证的屏幕截图

对于同德大学的目标,他们被重定向到一份 PDF 文件,标题为“2024년 8월 비공개 아산정책포럼 참석요청서 계획(안)”(翻译:2024 年 8 月非公开的安山政策论坛计划(草案)),该文件托管在 Google Drive 上(https[😕/]drive[.]google[.]com/file/d/1ra7zb3K4BPF3qjJ-lNdWs_qQQeeR4z38/view)。这份 PDF 文件由 Google 用户 kimduyong2020@gmail[.]com 上传到 Google Drive,他拥有南北朝鲜交流合作支援协会的个人资料照片。

图片:南北韩交流合作支援协会徽标用作 kimduyong2020@gmail[.]com 的个人资料照片

图片:南北韩交流合作支援协会徽标用作 kimduyong2020@gmail[.]com 的个人资料照片

PDF 是峨山政策研究院 8 月论坛的邀请函。此诱饵可能与真正的峨山政策研究院在 2024 年 7 月 16 日的一篇博客文章中提到的相同,该文章警告成员注意来自 Daum、Gmail 和 Naver 帐户的网络钓鱼攻击 [6]。

图片:峨山政策研究院八月论坛 PDF

图片:峨山政策研究院八月论坛 PDF

[外链图片转存中…(img-c3QaofpP-1723269293303)]

图片:峨山政策研究院 - 往期活动:‘关于恶意钓鱼邮件的安全警告’

高丽大学

高丽大学登录页面采用与同德大学类似的方法,但不是修改文档的 HTML,而是修改其中一个 javascript 导入来传递登录凭据。

图片:韩国大学合法登录页面(上)与 Kimsuky 恶意登录页面(下)呈现出明显的相似性。

图片:韩国大学合法登录页面(上)与 Kimsuky 恶意登录页面(下)呈现出明显的相似性。

图片:修改后的韩国大学 JavaScript 代码截图

图片:修改后的韩国大学 JavaScript 代码截图

发送 urlencoded 的用户名、密码和计数的 login.php 文件与 Dongduk 钓鱼页面上的 j_spring_securty_check.php 文件相同,但会将受害者重定向到真正的登录页面 https://portal.korea.ac.kr/mail/。

延世大学

延世大学的登录页面采用与同德大学几乎相同的方法,并使用 AJAX 将凭证传输至 login.php。

图片:合法的延世大学登录页面(上)和 Kimsuky 恶意登录页面(下)显示出明显的相似性。

图片:合法的延世大学登录页面(上)和 Kimsuky 恶意登录页面(下)显示出明显的相似性。

图片:修改后的延世大学登录页面 HTML 代码截图

图片:修改后的延世大学登录页面 HTML 代码截图

接收 urlencoded 用户名、密码和计数的 login.php 文件与 Dongduk 钓鱼页面上的 j_spring_securty_check.php 文件完全相同,但是会将受害者重定向到真正的登录页面https://mail.yonsei.ac.kr/。

Naver

此外,Kimsuky 的网络钓鱼网站上还有一个非针对特定目标的网络钓鱼工具包,用于收集 Naver 帐户。该工具包是一个类似于 Evilginx 的基本代理,用于窃取访问者的 cookie 和凭据,并显示弹出窗口,告知用户他们需要重新登录,因为与服务器的通信已中断。

图片:Kimsuky 恶意弹出窗口的屏幕截图,提示用户由于服务器通信错误而重新登录

图片:Kimsuky 恶意弹出窗口的屏幕截图,提示用户由于服务器通信错误而重新登录

在弹出窗口中单击“确定”后,受害者将被重定向到虚假的 Naver 登录页面。

图片:Kimsuky 恶意 Naver 登录页面截图

图片:Kimsuky 恶意 Naver 登录页面截图

发送邮件

为了让目标访问这些钓鱼网站,Kimsuky 上传了一个使用 GreenDinosaur 的自定义 PHPMailer 实现,简称为“SendMail”。在我们观察到的活动中,这个 PHPMailer 利用首尔国立大学教授的受感染电子邮件帐户访问托管在韩国的 CRM 应用程序 Dooray 的 SMTP 服务器。在 SendMail 中,多个 gmail 和 daum 帐户也被用作源地址。在操作员编写的注释文本文件中,列出了几个 gmail 和 daum 帐户及其密码、恢复电子邮件和 2fa 备份代码。这些电子邮件帐户用于向同德大学、高丽大学、延世大学和其他目标的员工发送钓鱼电子邮件。注释中的链接还指向“发送”工具在某个时间点托管在“http://penlu[.]or[.]kr/data/view[.]php”。我们发现的所有电子邮件帐户都有相同的密码“1qaz2wsx#EDC$RFV”和相同的恢复电子邮件:“nasndaoop@gmail[.]com”。

钓鱼账户

nahoiu95@gmail[.]com
nolpoaw@daum[.]net
nasaioy0@gmail[.]com
nboipw@daum[.]net
nkodfgl@gmail[.]com
naokilw@daum[.]net
nsmnop99@gmail[.]com
nabsoiu @daum[.]net
nanmskeo@gmail[.]com
nmakope@daum[.]net
nasndaoop@gmail[.]com
aaa@naver[.]com
no-reply@sisileae[.]com

我们获得的 SendMail 配置预加载了多个以 Naver 为主题的钓鱼邮件,主题为“네이버 아이디 탈퇴가 완료되었습니다”(翻译:Naver ID 已成功删除)和“[네이버]메일 송수신 기능 제한 알림。”(翻译:发送和接收 Naver 邮件存在限制。)这些钓鱼邮件和其他钓鱼邮件链接回众多钓鱼网站。

图片:Kimsuky 的 SendMail 工具的屏幕截图

图片:Kimsuky 的 SendMail 工具的屏幕截图

相关文章:

APT 组织 Kimsuky 瞄准大学研究人员

执行摘要 Kimsuky 是一个朝鲜 APT 组织,其任务是执行符合朝鲜政府利益的全球情报收集行动。该组织自 2012 年以来一直活跃,对韩国智库和政府实体特别感兴趣;然而,它也针对美国、英国和其他欧洲国家。Kimsuky 擅长进行有针对性的网…...

Golang | Leetcode Golang题解之第327题区间和的个数

题目&#xff1a; 题解&#xff1a; import "math/rand" // 默认导入的 rand 不是这个库&#xff0c;需要显式指明type node struct {ch [2]*nodepriority intkey intdupCnt intsz int }func (o *node) cmp(b int) int {switch {case b < o.k…...

Django5实战

一、安装&#xff1a; 1、安装Django环境&#xff1a; # 安装 pip install django5.0.3# 验证 5.0.3 python -m django --version 安装慢的解决方法&#xff1a;使用阿里云的镜像源 pip install -i https://mirrors.aliyun.com/pypi/simple django5.0.3 2、创建项目&#…...

网址管理功能 Webstack

前言 在工作生活中大家可能会收集各种网址地址&#xff0c;大部分同学都是通过浏览器标签进行管理。如果你换电脑或者电脑不再身边的时候就有些不方便了。接下来我要向大家推荐一个工具&#xff1a;在线网址导航。 CNS学术导航 大家通过搜索引擎可以很方便的搜索到各种网址导航…...

【热工与工程流体力学】第1章 流体及其主要物理性质,流体的粘性,压缩性,流体的质量力和表面力(西北工业大学)

第1章 流体及其主要物理性质 一、流体力学概述 二、流体力学发展简史 三、本课程的教学计划 四、连续介质模型 五、流体的主要物理性质 六、作用在流体上的力 七、本课程中使用的单位制 一、流体力学概述 1.流体的概念 在任何微小剪应力持续作用下连续变形的物质称为流…...

TCP和UDP区别,各自的应用场景

区别 是否基于链接 TCP是面向连接的协议&#xff0c;发送数据之前需要建立连接&#xff1b;而UDP是无连接的协议&#xff0c;即发送数据之前不需要简历连接。 可靠性和有序性区别 TCP提供交付保证&#xff0c;&#xff08;TCP通过校验和重传控制&#xff0c;序号表示&#xff…...

Java开发工具IDEA

IDEA概述 Intellij IDEA IDEA全称Intellij IDEA&#xff0c;是用于Java语言开发的集成环境&#xff0c;它是业界公认的目前用于Java程序开发最好的工具。 集成环境 把代码编写&#xff0c;编译&#xff0c;执行&#xff0c;调试等多种功能综合到一起的开发工具。 IDEA下载和安…...

VIVADO IP核之DDS直接数字频率合成器使用详解

VIVADO IP核之DDS直接数字频率合成器使用详解 目录 前言 一、DDS基本知识 二、DDS IP核使用之SIN COS LUT only 三、DDS IP核之SIN COS LUT only仿真 四、DDS IP核使用之Phase Generator and SIN COS LUT 五、DDS IP核之Phase Generator and SIN COS LUT仿真 总结 前言 …...

Vue3 插槽 使用笔记

Vue3 插槽 使用笔记 介绍 在 Vue 3 中&#xff0c;插槽&#xff08;Slot&#xff09;是一个非常强大的特性&#xff0c;它允许我们更好地组织和重用组件。通过定义插槽&#xff0c;子组件可以预留出由父组件控制的区域&#xff0c;这样父组件就可以向这些区域填充自己的内容。…...

Vue2与Vue3响应式原理对比

Vue2.x 响应式原理 Vue2.x 响应式&#xff1a; 实现原理 对象类型&#xff1a;通过 Object.defineProperty() 对属性的读取、修改进行拦截( 数据劫持 )数组类型&#xff1a;通过重写数组方法&#xff0c;并作为拦截器挂载到数组对象与数组原型之间&#xff0c;来实现拦截。 存在…...

Android系统Android.bp文件详解

文章目录 1. 基本语法结构2. 常见模块类型3. 模块属性常见属性包括&#xff1a; 4. 具体示例5. 高级功能5.1. 条件编译5.2. 变量定义与使用5.3. 模块继承 6. 总结 Android.bp 是 Android 构建系统&#xff08;Android Build System&#xff09;中的配置文件&#xff0c;用于描述…...

eNSP 华为静态路由配置

R1&#xff1a; <Huawei>system-view [Huawei]sysname R1 [R1]int g0/0/0 //进入g0/0/0端口 [R1-GigabitEthernet0/0/0]ip address 192.168.1.1 24 //给端口配置IP地址和子网掩码 [R1-GigabitEthernet0/0/0]int g0/0/1 [R1-GigabitEthernet0/0/1]ip addr…...

Type-C PD芯片:引领智能充电与数据传输的新时代

随着科技的飞速发展&#xff0c;智能设备已经成为我们日常生活中不可或缺的一部分。无论是智能手机、平板电脑、笔记本电脑&#xff0c;还是智能家居设备&#xff0c;都需要高效、安全、便捷的充电与数据传输解决方案。在这样的背景下&#xff0c;Type-C PD&#xff08;Power D…...

天气查询 免费

免费的前提是需要有高德地图key 前去申请一个key 调用IP查询 | 高德控制台 ------ 申请key之后调用下面的接口或者查看官方文档 api地址&#xff1a; restapi.amap.com/v3/weather/weatherInfo 天气查询-基础 API 文档-开发指南-Web服务 API | 高德地图API 参数名 含义 规…...

VC 与 VS(visual studio) 的对应版本

VC 与 VS 对应版本的关系&#xff1a; VC9&#xff1a;对应的是 Visual Studio 2008 版本。在这个版本中&#xff0c;开发环境提供了一系列的新特性和改进&#xff0c;为开发者提供了更高效的编程体验。例如&#xff0c;增强了对 C 标准的支持&#xff0c;优化了调试工具等。 …...

Qt使用lupdate工具生成.ts文件

Qt提供了lupdate工具&#xff0c;用于从源代码中提取需要翻译的字符串【1】&#xff0c;并生成或更新.ts文件 注解【1】&#xff1a;使用tr()函数&#xff08;或者QCoreApplication::translate()等其他相关的翻译函数&#xff09;来标记所有需要翻译的文本。例如&#xff1a; …...

编程-设计模式 1:工厂方法模式

设计模式 1&#xff1a;工厂方法模式 定义与目的 定义&#xff1a;工厂方法模式定义了一个创建对象的接口&#xff0c;但允许子类决定实例化哪一个类。工厂方法让一个类的实例化延迟到其子类。目的&#xff1a;提供一种方式来封装对象创建的过程&#xff0c;使得客户端不需要…...

Linux 快速构建LAMP环境

目录 部署方式&#xff1a; 基础环境准备&#xff1a; 1.安装Apache服务 &#xff08;1&#xff09;安装Apache &#xff08;2&#xff09;安装一些Apache的扩展包 2.安装PHP语言 &#xff08;1&#xff09;下载php软件仓库 &#xff08;2&#xff09;指定php安装版本…...

【C/C++】语言基础知识总复习

文章目录 1. 指针1.1 数组和指针1.2 函数指针1.3 const 和 指针、static、#define、typedef1.4 指针和引用的异同1.5 sizeof与strlen 2. 库函数及其模拟实现3. 自定义类型4. 数据存储5. 编译链接过程6. C入门基础6.1 函数重载6.2 引用和指针6.3 建议使用const、inline、enum去替…...

【漏洞修复】Tomcat中间件漏洞

1.CVE-2017-12615 抓包上传一句话木马 密码passwd 2.后台弱口令部署war包 先用弱口令登录网站后台 制作war包 将172.jsp压缩成.zip文件&#xff0c;修改后缀为.war 上传 蚁剑链接 3.CVE-2020-1938 Python2 CVE-2020-1938.py IP -p 端口 -f 要读取的文件 漏洞修复&#xf…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...

搭建DNS域名解析服务器(正向解析资源文件)

正向解析资源文件 1&#xff09;准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2&#xff09;服务端安装软件&#xff1a;bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...

Ubuntu系统复制(U盘-电脑硬盘)

所需环境 电脑自带硬盘&#xff1a;1块 (1T) U盘1&#xff1a;Ubuntu系统引导盘&#xff08;用于“U盘2”复制到“电脑自带硬盘”&#xff09; U盘2&#xff1a;Ubuntu系统盘&#xff08;1T&#xff0c;用于被复制&#xff09; &#xff01;&#xff01;&#xff01;建议“电脑…...

Vue3中的computer和watch

computed的写法 在页面中 <div>{{ calcNumber }}</div>script中 写法1 常用 import { computed, ref } from vue; let price ref(100);const priceAdd () > { //函数方法 price 1price.value ; }//计算属性 let calcNumber computed(() > {return ${p…...

C++11 constexpr和字面类型:从入门到精通

文章目录 引言一、constexpr的基本概念与使用1.1 constexpr的定义与作用1.2 constexpr变量1.3 constexpr函数1.4 constexpr在类构造函数中的应用1.5 constexpr的优势 二、字面类型的基本概念与使用2.1 字面类型的定义与作用2.2 字面类型的应用场景2.2.1 常量定义2.2.2 模板参数…...

react更新页面数据,操作页面,双向数据绑定

// 路由不是组件的直接跳转use client&#xff0c;useEffect&#xff0c;useRouter&#xff0c;需3个结合&#xff0c; use client表示客户端 use client; import { Button,Card, Space,Tag,Table,message,Input } from antd; import { useEffect,useState } from react; impor…...