当前位置: 首页 > 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…...

10.动态路由绑定怎么做

为什么要动态路由绑定 因为,如果我们的导航栏没有这个权限,输入对应网址,一样可以获取对应的页面,为了解决这个问题,有两种解决方案,一种是动态路由绑定(导航有多少个,就有多少个路由,在路由修改之前,先进行一个导航路由的加载和路由的动态绑定,然后看是否有这个路由,有就跳转…...

操作ArkTS页面跳转及路由相关心得

本文为JS老狗原创。 当前端不得不关注的点&#xff1a;路由&#xff0c;今天聊一聊鸿蒙相关的一点心得。 总体上套路不意外&#xff0c;基本就是&#xff08;尤其是Web&#xff09;前端那些事&#xff1a;维护路由表、跳转带参数、历史堆栈操作&#xff0c;等等。 历史原因&…...

Vue2-低版本编译兼容-基础语法-data-methods-双向数据绑定v-model

文章目录 1.安装编译命令2.低版本兼容3.vue2响应式数据3.1.data定义3.2.双向数据绑定v-model3.3.单向数据绑定v-bind4.方法methods5.子组件向父组件传值6.父组件向子组件传值1.安装编译命令 命令行工具 vue create zhiliaoplugins8824barcodebatch cd zhiliaoplugins8824barc…...

提取“c语言的函数定义“脚本

------------------------------------------------------------ author: hjjdebug date: 2024年 08月 11日 星期日 16:35:31 CST description: 提取c语言的函数定义脚本 ------------------------------------------------------------ c 文件中包含很多函数定义, 我想在每…...

pytorch学习(十二):对现有的模型进行修改

以VGG16为例&#xff1a; VGG((features): Sequential((0): Conv2d(3, 64, kernel_size(3, 3), stride(1, 1), padding(1, 1))(1): ReLU(inplaceTrue)(2): Conv2d(64, 64, kernel_size(3, 3), stride(1, 1), padding(1, 1))(3): ReLU(inplaceTrue)(4): MaxPool2d(kernel_size2…...

服务器虚拟内存是什么?虚拟内存怎么设置?

服务器虚拟内存是计算机系统内存管理的一种重要技术&#xff0c;它允许应用程序认为它们拥有连续且完整的内存地址空间&#xff0c;而实际上这些内存空间是由多个物理内存碎片和外部磁盘存储器上的空间共同组成的。当物理内存&#xff08;RAM&#xff09;不足时&#xff0c;系统…...

深度学习入门指南(1) - 从chatgpt入手

2012年&#xff0c;加拿大多伦多大学的Hinton教授带领他的两个学生Alex和Ilya一起用AlexNet撞开了深度学习的大门&#xff0c;从此人类走入了深度学习时代。 2015年&#xff0c;这个第二作者80后Ilya Sutskever参与创建了openai公司。现在Ilya是openai的首席科学家&#xff0c;…...

Python学习笔记(六)

""" 演示对序列进行切片操作 """ # 切片&#xff1b;从一个序列中&#xff0c;取出一个子序列 # 语法[起始下标&#xff1a;结束下标&#xff1a;步长] # 这三个都不写也行&#xff0c;视为从头到尾步长为1 # 起始下标不写&#xff0c;视作从头开…...

大数据安全规划总体方案(45页PPT)

方案介绍&#xff1a; 大数据安全规划总体方案的制定&#xff0c;旨在应对当前大数据环境中存在的各类安全风险&#xff0c;包括但不限于数据泄露、数据篡改、非法访问等。通过构建完善的安全防护体系&#xff0c;保障大数据在采集、存储、处理、传输、共享等全生命周期中的安…...

第20周:Pytorch文本分类入门

目录 前言 一、前期准备 1.1 环境安装导入包 1.2 加载数据 1.3 构建词典 1.4 生成数据批次和迭代器 二、准备模型 2.1 定义模型 2.2 定义示例 2.3 定义训练函数与评估函数 三、训练模型 3.1 拆分数据集并运行模型 3.2 使用测试数据集评估模型 总结 前言 &#x1…...