1.CVE-2022-4510:Binwalk 远程代码执行漏洞
2.Windows命令行下载远程payload及执行任意代码的远程源码远程源码用几种方法
3.如何编译 "大灰狼远程控制管理软件"源码 ?
4.关于一款开源远程控制软件(gh0st)的源码分析(一)
5.rpcgenRpcgen的部分选项
CVE-2022-4510:Binwalk 远程代码执行漏洞
Binwalk是一款用于搜索二进制镜像文件以提取嵌入文件和代码的工具。
Binwalk是工具工具一款固件分析工具,旨在帮助研究人员进行固件非分析、远程源码远程源码用提取和逆向工程。工具工具它简单易用,远程源码远程源码用支持完全自动化脚本,工具工具基址模块 源码通过自定义签名、远程源码远程源码用提取规则和插件模块进行扩展。工具工具
Part1 漏洞状态
Part2 漏洞描述
分析环境:
Kalix
Binwalk v2.3.3
Part3 漏洞复现
1. 创建一个.pfs文件头,远程源码远程源码用如下,工具工具然后打包成exp.zip。远程源码远程源码用
2. 正常binwalk执行后输出。工具工具
3. 在kali中使用binwalk解析exp.zip,远程源码远程源码用binwalk -M -e exp.zip,工具工具并查看结果。远程源码远程源码用
4. 看到在kali桌面生成了一个_exp.zip.extracted文件夹。文件夹下pfs-root目录下看到.py是我们pfs文件头写的文件名。
5. 构造验证pfs并打包成exp.zip。
6. 构造的pfs文件头如下。
7. 再次在kali中使用binwalk解析exp.zip。matlabGUI源码
8. 可以看到binwalk在正常输出之后又输出了rce...字段。证明复现成功!
Part4 漏洞分析
什么是PFS文件?
PFS文件是由PhotoFiltre Studio(图像修饰程序)创建的选择文件。它包含图像编辑器的多边形选择工具使用的坐标,以便在给定坐标之间绘制线。PFS文件以纯文本格式存储。
漏洞源代码
问题出现在红框内部的代码。
在解析pfs文件头时,会把pfs文件头内部的文件名和out_dir拼接。拼接之后默认走else代码分支,并且对特殊符号没有校验,导致可以使用../符号路径穿越。再利用binwalk的plugins功能,就可以释放py文件到binwalk的plugins目录下,从而实现代码执行。
Part5 修复建议
1. 将Binwalk软件升级到最新的2.3.4版本。
2. 代码要检测特殊符号,防止路径穿越。
Windows命令行下载远程payload及执行任意代码的搞笑 源码几种方法
Windows命令行中,除了powershell,还有其他方式实现远程payload下载和执行任意代码。以下是一些满足特定条件的命令行工具和方法:利用内置二进制文件执行:通过滥用Microsoft标准文件,如IE缓存和WebDAV客户端缓存,来下载payload。这种方式要求工具支持HTTP URL参数传递、UNC路径处理,以及执行下载的内联脚本。
Powershell:以powershell.exe执行payload,它通常不直接写入硬盘,但可以使用编码技巧绕过安全检测。通过WebDAV服务器访问时,payload会保存在WebDAV客户端本地缓存。
cmd.exe与批处理文件:可以使用批处理文件嵌入payload,但同样会写入WebDAV客户端本地缓存。
Cscript/Wscript:通过这两个脚本工具下载payload,写入位置同样是WebDAV客户端本地缓存。
Mshta:支持执行内联脚本,可用mshta.exe接收URL或HTA文件,niucms 源码写入IE本地缓存。
Rundll:可通过UNC路径执行DLL或内联JScript,写入WebDAV客户端本地缓存。
Regasm/Regsvc:利用特定DLL和WebDAV接口,写入WebDAV客户端本地缓存。
Regsvr:有多种实现方式,写入位置取决于使用方法,可能是IE本地缓存或WebDAV客户端。
Msbuild:通过msbuild.exe间接执行payload,写入WebDAV客户端本地缓存。
组合技巧:可以结合不同工具下载和执行payload,如certutil.exe或InstallUtil.exe。
payload源码示例:使用.sct脚本、.hta文件、MSBuild内联任务或DLL,可以从指定地址获取实例。
值得注意的是,如bitsadmin工具因不支持代理而未被提及。这些方法在满足条件的源码智慧同时,也需考虑EDR监控和安全策略。更多详细内容可通过原文链接获取。如何编译 "大灰狼远程控制管理软件"源码 ?
在编译大灰狼远程控制管理软件源码时,首先需要安装VC++6.0,避免使用VS时产生许多错误。安装VC++6.0后,打开大灰狼远程控制的.dsw项目文件。
接着,可能遇到找不到XTToolkitPro.h文件的问题,这是因为缺少XTP库文件的支持。需将XTP库文件全部拷贝到主控端的当前目录,并修改XTP库的引入路径。
继续编译时,可能会遇到找不到MSTcpIP.h头文件的错误。此时需要找到VC++6.0安装目录下的VC目录,替换其中的include文件夹和lib文件夹,以准备好的SDK文件进行替换。
完成上述步骤后,进行编译一般不会出现问题,能成功编译出远程控制的可执行文件。大多数基于VC++编译的远程控制工具,其核心机制不会有太大改变。如果对源代码感兴趣,可以尝试进行升级。
编写此教程仅为娱乐和学习,旨在提供相关技术支持。请勿以身作则进行破坏活动,避免日后后悔莫及。
关于一款开源远程控制软件(gh0st)的源码分析(一)
gh0st软件专为远程控制设计,支持远程文件传输、视频连接等功能,类似QQ远程桌面。软件由gh0st_Client与gh0st_Server两部分组成。
启动gh0st_server,VS调试,程序运行后,中断所有调试,打开Threads窗口和CallStack窗口。gh0st_server作为服务端,启动时创建个线程,主线程负责资源初始化,创建监听线程ListenThreadProc以监听客户端连接。
主线程完成初始化后,ListenThreadProc进入循环,等待连接请求,通过m_hkillEvent事件与主线程同步。当主线程发出关闭命令,m_hkillEvent设置为可信任状态,工作线程退出循环,进行资源回收,增强程序稳定性。
gh0st_server的核心在于IOCPServer类,它负责网络事件检测、IO请求与数据收发。当有网络事件发生时,关键业务逻辑将处理数据接收与解包等操作,详情将在后续章节介绍。
rpcgenRpcgen的部分选项
RPCgen 是一个用于生成远程过程调用(RPC)相关的源代码的工具。它提供了多种选项,以便用户根据自己的需求自定义生成的代码。以下是一些主要选项及其功能的简要介绍: -a 选项用于生成所有源程序,包括客户端和服务器端的源代码,这使得用户可以完整地构建整个RPC系统。 -C 选项指定了生成的代码遵循 ANSI C 标准,这对于确保代码在不同编译器之间的兼容性非常有用。 -l 选项生成客户端 stubs,即客户端调用的代理代码,用于与服务器端进行交互。 -m 选项生成服务器 stubs,但不生成 main 函数,用户可以自行添加 main 函数以完成程序启动。 -s 选项结合 -C 和 -s tcp 参数,生成服务器 stubs 和 main 函数,同时使用 TCP 协议,使得代码更加完整。 -h 选项生成头文件,这些文件包含了定义和声明,对于构建过程至关重要。 -Sc 选项生成骨架客户端程序,用户需要手动添加额外的代码以完成客户端的实现。 -Ss 选项生成服务器程序,同样,用户需要手动添加代码以完成服务器端的实现。 使用 Rpcgen -C file.x 命令,可以生成 file_xdr.c、file.h、Makefile.file、file_svc.c 和 file_clnt.c 这五个文件。 若使用 Rpcgen -C -a file.x 命令,除了生成上述五个文件之外,还会额外生成 file_server.c 和 file_client.c 这两个文件,从而提供更加全面的客户端和服务器端源代码。 这些选项的使用使得 RPCgen 成为构建复杂 RPC 系统的有力工具,用户可以根据自己的需求灵活配置生成的代码结构。扩展资料
rpcgen可以自动生成RPC服务器程序的大多数代码,它的输入为一个规格说明文件,它的输出为一个C语言的源程序。规格文件(*.x)包含常量、全局数据类型以及远程过程的声明。Rpcgen产生的代码包含了实现客户机和服务器程序所需要的大部分源代码。他包括参数整理、发送RPC报文、参数和结果的外部数据表示以及本地数据表示的转换等。不过在由rpcgen生成的源文件中,没有过程的具体实现,所以程序员必须要手工编辑这些文件,实现这些过程。