WEB和服务器安全漏洞
黑客技术领域,包括内外部网络渗透、反向破解、网络木马病毒分析等。
1,243个主题在此版面
-
0x00 前言 最近在安全动态推送中看到了一篇文章《RunPE: How to hide code behind a legit process》 ,介绍了将恶意代码注于已知进程的方法 文章发布于2015年6月,虽然作者未公布完整的实现代码,但介绍了实现思路 本文将结合自己的心得做进一步介绍,测试开源实现代码,介绍防御方法 文章地址: https://www.adlice.com/runpe-hide-code-behind-legit-process/ 0x01 简介 本文将要介绍以下内容: 实现原理 开源代码测试 优化思路 防御检测 0x02 实现原理 这个利用方法至少在2005以前就存在,国内常常把该方法称为"傀儡进程的创建" 实现思路: 通过创建流程创建进程,传入参数创建_暂停使进程挂起 通过NtUnmapViewOfSection清空新进程的内存数据 通过虚拟分配申请新的内存 通过WriteProcessMemory向内存写入有效载荷 通过SetThreadContext设置入口点 通过ResumeThread唤醒进程,执行有效载荷 在具体实现上,还需要考虑以下问题: 1、傀儡进程的选择 如果傀儡进程已经运行,那么将无法实现替换(指针不可控、无法获得主线程句柄等) 所以这种利用方法只能通过创建新进程,传入参数创建_暂停使进程挂起,在进程执行前对其替换 2、清空新进程的内存数据 进程初始化后…
-
- 0 篇回复
- 221 次查看
-
-
0x00 前言 最近看了一篇文章《VSTO: The Payload Installer That Probably Defeats Your Application Whitelisting Rules》,介绍了利用VSTO实现Office后门的方法。我在之前的文章《Use Office to maintain persistence》和《Office Persistence on x64 operating system》研究过Office的后门。本文将重现这种方法,分析利用思路,分享实用的利用方法,最后介绍如何识别这个后门。 文章地址: https://bohops . com/2018/01/31/VSTO-the-payload-installer-that-possible-failed-your-application-whitelisting-rules/ 0x01 简介 本文将介绍以下内容: VSTO的编写方法 实用思维 后门检测 0x02 VSTO的编写方法 1、VSTO简介 Visual Studio Tools for Office的全名 用于自定义office应用程序并与Office控件交互。 在集成的Visual Studio安装包中 如下图 2、VSTO开发 本部分是《VSTO: The Payload Installer That Probably Defeats Your Application Whitelis…
-
- 0 篇回复
- 230 次查看
-
-
0x00 前言 在之前的文章《渗透基础——通过LDAP协议暴力破解域用户的口令》中介绍了通过LDAP协议暴力破解域用户密码的方法,最大的特点是会生成一个日志(4625-An账号登录失败)。 但是使用Kerberos预授权暴力破解时,会没有日志(4625-An账号登录失败),所以我对Kerberos做了进一步的研究,用python实现了同样的功能,增加了支持TCP协议和NTLM哈希的验证。本文将记录我自己的研究过程和学习经历。 0x01 简介 Brute简介 野蛮原则 使用python实现Kerberos的细节 开源代码pyKerbrute Kerberos预授权暴力的检测 0x02 kerbrute的适用场景 适用场景:从域外对域用户进行用户枚举和密码暴力破解。 由于没有域用户的密码,LDAP协议无法枚举所有域用户,在LDAP协议进行暴力破解时会产生一个日志(4625-An账号登录失败)。 使用Kerberos有以下优点: 使用Kerberos预授权强制更快。 不会生成日志(4625-帐户登录失败) 注: 默认情况下,Kerberos-auth对应的端口是88。 0x03 kerbrute测试 测试环境如下 Kerbrute是用Go语言开发的,github提供编译后的文件,地址如下: https://github.com/ropnop/kerbrute/releases Kerbrute主要包括以下两个函数: …
-
- 0 篇回复
- 244 次查看
-
-
0x00 前言 Windows XML事件日志(EVTX)单条日志清除系列文章的第一篇,侧重于介绍evtx日志文件的基础知识和删除单条日志的实现思路与实例 0x01 简介 本文将要介绍以下内容: evtx文件格式 删除单条日志的思路 删除单条日志的实例 0x02 基础知识:evtx文件格式 可参考的资料: https://github.com/williballenthin/python-evtx evtx文件是指Windows Vista之后用于保存系统日志信息的文件 evtx文件结构包含三部分: 文件标题 大块 尾随空值 注: 文件标题保存evtx文件基本信息,值得注意的是下一个记录标识符、块数量、文件标志和校验和 大块保存日志内容,包括具体每条日志的内容和校验和,值得注意的是最后事件记录号、最后事件记录标识符、最后事件记录数据偏移量和两个校验和 尾随空值为尾随空值,用于填充文件长度,内容任意,不会影响evtx文件的有效性 (1) file header 格式可参考: https://github。com/libyal/libevtx/blob/master/documentation/Windows XML事件日志(evtx).ascii文件# 2-文件头 (2) chunks 格式可参考: https://github。com/libyal/libevtx/blob/master/docum…
-
- 0 篇回复
- 422 次查看
-
-
0x00 前言 在渗透测试中,经常使用端口转发和代理。 端口转发是将网络端口从一个网络节点转发到另一个网络节点的行为。 实际应用中需要考虑两种情况: 客户端-中转服务器-服务器:客户端可以主动连接到中转服务器。中转服务器可以直接转发。 客户端-中转服务器-服务器:客户端不能正向连接到中转服务器,但中转服务器可以反向连接到客户端。 如果客户端要扫描一台服务器的多个端口(或者多台服务器的多个端口),那么逐个配置转发规则是不现实的。 为了提高效率,可以在这里使用代理,一次配置规则。 本文将对常用的方法和工具进行梳理和总结,进行分类,区分正向和反向连接,区分转发和代理,分析它们之间的联系和区别,并给出应用场景以供参考。 0x01 简介 本文将介绍以下内容: 对于Windows系统和Linux系统(Ubuntu和CentOS)下的方法 端口——转发连接的方法 端口——反向连接的转发方法 正向代理方法 反向代理方法 上述方法的应用场景 注: Go语言支持跨平台编译,所以本文重点介绍Go语言实现的工具。 0x02 端口转发——正向连接 0、应用场景 1.流量转发的跳板 用于隐藏真实的服务器地址。 Linux的Iptables用于CIA Hive Beacon基础设施中的端口转发。 (2)在下图中 注: 中转服务器的搭建请参考前面的文章《CIA Hive Beacon Infrastructure复现1…
-
- 0 篇回复
- 178 次查看
-
-
0x00 前言 肖丹是一个针对网络设备的搜索引擎,通过肖丹应用程序接口进行搜索,不仅数据更加丰富,而且能够配合自己的程序实现自动化分析。 本文将要介绍肖丹应用程序接口在使用过程需要注意的问题,分享使用心得和脚本开发技巧。 0x01 本文将要介绍以下内容 肖丹应用程序接口的简单使用 利用大蟒调用肖丹应用程序接口获得搜索结果 对搜索结果作进一步处理 三种积分(学分)的区别 通过肖丹官网导出搜索结果和进一步处理 0x02 Shodan API的简单使用 1、注册账号,获得API Key 测试应用程序接口密钥为:sk vs 0 rabitqpzzesahahqnq 2 HV 6 swjufs 3 2、安装python包 点安装肖丹 3、通过Shodan CLI获得搜索结果 参考资料: https://cli.shodan.io/ 注: 未付费只能获得100个搜索结果 硬币指示器(硬币水平指示器的缩写)命令行界面(批处理脚本的命令行界面)全称为命令行界面,即肖丹的命令行模式 Windows操作系统操作系统系统下使用点安装在同级目录产生文件Shodan.exe 如下图 (1) 初始化 shodan init 实际命令为: 应该初始化skvs 0 rabitqpzzesahqnq 2 HV 6 swjufs 3 如下图 (2) 搜索指定内容(apache)的数量 肖丹伯爵阿帕奇 如下图 …
-
- 0 篇回复
- 187 次查看
-
-
0x00 前言 之前的文章《域渗透——Hook PasswordChangeNotify》介绍了在dll中注入钩子PasswordChangeNotify来记录新密码的方法,相当于API PasswordChangeNotify的利用。 我们知道,API PasswordChangeNotify是密码过滤器DLL的一个函数。那么,对于密码过滤器DLL本身,是否可以直接开发一个可用的DLL呢? 0x01 简介 本文将介绍以下内容: 密码dll简介 使用密码过滤器DLL记录明文密码 通过密码过滤器DLL实现的后门 非windows server系统的应用 0x02 Password Filter DLL简介 在现实中使用Windows系统时,为了提高系统安全性,防止用户密码被暴力破解,系统管理员往往会询问用户密码的复杂度,可以通过配置组策略来开启。 位置如下: gpedit . MSC-本地计算机策略-计算机配置-Windows设置-安全设置-帐户策略-密码策略-密码必须满足复杂性要求。 启用时,密码必须满足以下最低要求: 您不能包含超过两个连续字符的用户帐户名或用户名部分。 至少六个字符长。 包含以下四种字符类型中的三种: 英文大写字母(A到Z) 英文小写字母(A到Z) 10个基本数字(0到9) 非字母字符(例如!$、#、%) 默认值: 在域控制器上启用 在独立服务器上禁用 如果这种策略仍然不能满足密…
-
- 0 篇回复
- 182 次查看
-
-
0x00 前言 上一篇文章介绍了两种通过劫持COM对象实现的后门,在利用思路上有一些区别: 第一种,通过CLR劫持.Net程序 正常CLR的用法: 设置注册表项HKEY _当前_用户\软件\类\ clsid \ Cmd输入: 设置COR_ENABLE_PROFILING=1 SET COR _ PROFILER={ 111111111-1111-1111-1111-111111111 } CLR可以劫持所有的启动。当前cmd下的. Net程序。 后门利用思路: 我试图通过WMI修改环境变量,使CLR全局运行,这样我就可以劫持所有的启动。Net程序。 实际测试表明,该方法是有效的。系统启动后。Net程序会默认调用,加载CLR,后门触发。 第二种,劫持CAccPropServicesClass和MMDeviceEnumerator 这种方法已经被木马COMpfun使用过,所以思路也是从COMpfun学来的。 设置注册表项HKEY _当前_用户\软件\类\ clsid \可以指定由实例CAccPropServicesClass和MMDeviceEnumerator加载的dll。 IE浏览器进程iexplore.exe在启动时会调用上述两个实例。 所以在注册表中设置CAccPropServicesClass和MMDeviceEnumerator加载的dll可以劫持IE浏览器的启动,实现后门触发。 当然,这种方式只能算是被动后门,只能在用户启动IE浏览器时触发。…
-
- 0 篇回复
- 151 次查看
-
-
0x00 前言 上一篇文章《渗透技巧——通过HTTP协议获得Net-NTLM hash》介绍了通过HTTP协议获取客户端当前登录用户的Net-NTLM hash的方法,重点介绍了原理和思路。本文将给出一个具体的实现方法,用PHP脚本模拟Net-NTLM认证过程,提取客户端的Net-NTLM哈希。 0x01 简介 本文将介绍以下内容: Net-NTLM认证过程 用PHP脚本模拟认证过程 脚本详细信息 实物试验 0x02 Net-NTLM认证过程 参考资料: https://www.innovation.ch/personal/ronald/ntlm.html 还是用这张图,如下图。 注: 照片取自https://www.innovation.ch/personal/ronald/ntlm.html. 0x03 利用PHP脚本模拟认证过程 如果想通过PHP脚本模拟Net-NTLM认证过程,主要考虑的是服务器的实现。 1、发送WWW-Authenticate: NTLM 收到客户端的GET请求后,回复401 unauthorized www-authenticate:NTLM,提示客户端需要NTLM认证。 2、发送WWW-Authenticate: NTLM 客户端收到类型1消息,回复类型2消息 类型2消息具有以下结构: Offset Description Content 0 N…
-
- 0 篇回复
- 196 次查看
-
-
0x00 前言 最近学习了matt Graeber @ matti festigation分享的方法《WMI Persistence using wmic.exe》 ,让我对WMI的攻击技巧有了新的认识,本文将结合之前的研究心得,分享利用wmic的一些技巧。 参考资料: http://www。剥削-星期一。com/2016/08/wmi-持久性-使用-wmic。超文本标记语言 0x01 简介 在之前的文章《WMI Attacks》 、 《WMI Backdoor》 、 《WMI Defense》 中分享了通过Poweshell和最高观测频率(最大观察频率)调用WMI实现的攻击技巧, 同样,使用wmic.exe也能达到相同的效果,而且更加直接,只要在煤矿管理局下直接运行命令就好。 0x02 搜集信息 获取操作系统相关信息 poweshell代码如下: get-wmio object-Namespace ROOT \ CIM v2-Class Win32 _ operating system 换成wmic.exe的命令为: wmic/NAMESPACE:"\ \ root \ CIM v2 "路径Win32_OperatingSystem 回显如图 注: 回显内容的格式没有对齐,需要添加参数指定输出格式 按照powershell回显的分行显示,需要添加如下参数: wmic/NAMESPACE:"\ \ root \ CIM v2 "…
-
- 0 篇回复
- 160 次查看
-
-
0x00 前言 前面三篇文章《vSphere开发指南1——vSphere Automation API》,《vSphere开发指南2——vSphere Web Services API》,《vSphere开发指南3——VMware PowerCLI》介绍了与虚拟机交互的方法,可以远程导出虚拟机的配置信息。本文将介绍在vCenter中通过PostgreSQL数据库导出虚拟机配置信息的方法。 0x01 简介 本文将介绍以下内容: 导出方法 程序实现 0x02 导出方法 默认情况下,PostgreSQL数据库安装在vCenter中,用于存储虚拟机和ESXI的信息。 前一篇文章《Confluence利用指南》中提到: 安装PostgreSQL后,将在本地操作系统中创建一个名为postgres的用户,默认情况下没有密码。 如果没有设置用户postgres的密码,可以通过以下命令连接到PostgreSQL数据库: psql -h localhost -U postgres 执行结果如下 默认用户列表如下 如果设置了用户postgres的密码,无法获取,可以选择用户vc进行操作。连接PostgreSQL数据库的命令如下: psql -h localhost -d VCDB -U vc 执行结果如下 vc的用户明文密码存储在固定文件/etc/VMware-vpx/vcdb . properties中。 注: Psql不支持直接…
-
- 0 篇回复
- 137 次查看
-
-
0x00 前言 Exchange网站服务(EWS)提供了一个访问交换资源的接口,我在开源代码库没有找到很合适的参考项目,于是对这方面的内容做一个系统性的整理,开源一份EWS的实现代码ewsManage,便于后续的二次开发。 0x01 简介 本文将要介绍以下内容: 使用EWS管理的应用程序接口访问交换资源 使用EWS SOAP XML消息访问交换资源 开源代码新闻管理 新闻管理功能介绍 0x02 简介 官方文档: https://份文件。微软。com/en-us/exchange/客户端-开发者/exchange-服务器-开发 两种访问交换资源的方法: 使用EWS管理的应用程序接口 使用EWS SOAP XML消息 测试环境: Exchange Server 2013 SP1 用户:[email protected] pwd: test123! 网址:https://test . com/EWS/exchange . asmx 自动发现URL:[email protected] 0x03 使用EWS Managed API 官方资料: https://份文件。微软。com/en-us/exchange/client-developer/exchange-web-services/get-started-with-EWS管理的API-client-applications 这里使用EWS托管API 2.0 下载地址…
-
- 0 篇回复
- 131 次查看
-
-
0x00 前言 汇合是一个专业的企业知识管理与协同软件,也可以用于构建企业维基百科。 前不久爆出了漏洞CVE-2021-26084 -合流服务器OGNL网络公司注射、本文仅在技术研究的角度介绍汇合的相关知识。 0x01 简介 汇合环境搭建 利用思路 0x02 Confluence环境搭建 环境搭建的参考资料: 窗口: https://汇合。亚特兰蒂斯人。com/doc/installing-confluence-on-windows-255362047。超文本标记语言 Linux: https://汇合。亚特兰蒂斯人。Linux上的installing-confluence-on-143556824。超文本标记语言 本文以Centos7搭建汇合为例进行介绍 1.配置数据库 这里选择PostgreSQL,安装的参考资料: https://汇合。亚特兰蒂斯人。com/doc/database-setup-for-PostgreSQL-173244522。超文本标记语言 (1)安装PostgreSQL 访问地址:https://www。PostgreSQL。org/download/Linux/red hat/ 获得安装命令,如下图 安装完成后查看运行状态: 系统ctl状态postgresql-13 (2)配置PostgreSQL 设置允许其他程序访问数据库: 修改/var/lib/pgsql/13/data/…
-
- 0 篇回复
- 140 次查看
-
-
0x00 前言 在上篇文章《VMware Workspace ONE Access漏洞调试环境搭建》 提到连接数据库的口令加密保存在文件/usr/local/horizon/conf/runtime-config。性能中,本文将要基于调试环境,分析加密流程,介绍详细的解密方法。 0x01 简介 本文将要介绍以下内容 加密流程 解密方法 数据库操作 0x02 加密流程 1.定位关键文件 经过一段时间的寻找,找到实现加密功能对应的文件为/opt/VMware/cert proxy/lib/horizon-config-encrypter-0.15。冲突 反编译获得加密的实现代码如下: 公共最终字符串加密(字节[]数据){ 如果(数据!=空数据,长度!=0) { 如果(!this.getKeyMgmt().randomKeyEnabled()!this.getKeyMgmt().customKeysAvailable()) { log.error('没有可用的自定义加密密钥,中止加密。'); 返回空 }否则{ 密码加密密码=这个。getencrypt密码(); 尝试{ if (encryptCipher!=null) { byte[]utf8=数组实用程序。addall(加密密码。getiv()、加密密码。做final(数据)); 字节缓冲区。分配(2); 密钥缓冲区。简而言之(这个。getkey管理().getCurre…
-
- 0 篇回复
- 152 次查看
-
-
0x00 前言 BSOD,全称死亡蓝屏,即蓝屏死机。 通常是振铃0级的内核程序出错导致,在提权漏洞中经常遇到。 而在渗透测试中,某些情况下需要重启系统,例如配置密码筛选器DLL,启用Wdigest Auth,重启域控服务器等。 某些条件下,可以选择触发BSOD导致系统重新启动。 那么,是否存在一个稳定的方法触发BSOD呢?更进一步的利用思路呢?如何防御? 0x01 简介 本文将要介绍以下内容: 测试几种结束当前进程导致BSOD的方法 修改指定进程,当进程退出后,导致BSOD 如何防御 0x02 结束当前进程导致BSOD的方法 找到如下参考资料: https://blog.csdn.net/qq125096885/article/details/52911870 提供多种结束当前进程导致BSOD的方法 经测试,适用Win7系统的方法有以下三种: CallRtlSetProcessIsCritical CallNtSetInformationThread CallNtRaiseHardError 1、CallRtlSetProcessIsCritical 关键代码: RtlSetProcessIsCritical(TRUE,NULL,FALSE); 参考资料: https://www。代码项目。com/Articles/43405/Protecting-Your-Process-with-rtlsetprocess…
-
- 0 篇回复
- 143 次查看
-
-
0x00 前言 Pierre-Alexandre Braeken在SecTor2016上发表了精彩的演讲。——通过使用微软签名的二进制文件来攻击微软 他推出了自己的开源工具PowerMemory,通过将powershell与微软签署的程序相结合,可以绕过设备卫士和杀毒软件的拦截。 演讲视频地址: https://sector . ca/sessions/hack-Microsoft-by-using-Microsoft-signed-binaries/ PowerMemory项目地址: https://github.com/giMini/PowerMemory/ 0x01 简介 PowerMemory中有许多脚本,其中一个有趣的脚本是Hide-Me.ps1,它通过There的方式隐藏了进程。 本文将对脚本进行测试,介绍进程隐藏原理,修改原脚本,分析利用和防御方法。 0x02 相关概念 PCB(process control block): 过程控制块是系统为管理过程而专门设置的数据结构。 PCB的组织: 线性表模式:不管过程的状态如何,所有的PCB都连续地存储在存储器的系统区域中。这种方法适用于系统中进程数量较少的情况。 索引表模式:该模式是线性表模式的改进,系统建立就绪索引表、阻塞索引表等。根据进程的状态。 链表模式:系统会将进程的PCB按其状态进行排队,从而形成就绪队列、阻塞队列、运行队列等。 不同操作系统的PCB结构不同。 Wi…
-
- 0 篇回复
- 155 次查看
-
-
0x00 前言 在上篇文章《渗透技巧——Windows日志的删除与绕过》 中提到一个绕过Windows操作系统操作系统日志监控的思路:使用API NtQueryInformationThread和查询信息获取线程对应的服务,关闭对应日志记录功能的线程,能够破坏日志功能,并且Windows操作系统事件日志服务没有被破坏,状态仍为正在运行。本文将要对其详细介绍,分享使用c在编写程序上需要注意的细节。 0x01 简介 本文将要介绍以下内容: 程序自身提权 遍历进程中的所有线程 根据线程tid,获取对应的进程pid 根据线程tid,获取对应的服务名称 结束线程 0x02 程序实现 开发工具:VS2012 开发语言:c 1、定位eventlog服务对应进程svchost.exe的pid powershell代码如下: get-wmio object-Class win32 _ service-Filter ' name=' event log ' ' | select-exp ProcessId 通过回显能够找出进程svchost.exe的pid 2、程序自身提权,以管理员权限执行 因为进程svchost.exe为系统权限,所以对其线程进行操作也需要高权限,因此,程序需要先提升至管理员权限 提权至管理员权限的代码如下: BOOL SetPrivilege() { 处理托肯 TOKEN _ PRIVILEGES新状态 LUID流…
-
- 0 篇回复
- 133 次查看
-
-
0x00 前言 要远程注入指定的进程,通常使用Windows提供的API CreateRemoteThread创建一个远程线程,然后注入dll或者执行shellcode。 在64位系统下,这种方法需要特别注意。注入的目标进程要和程序结构一致,即32位程序只能注入32位进程,64位程序只能注入64位进程。 32位程序注入64位程序会失败(32位和64位结构不同)。 但是在一些特殊情况下,无法预先预测目标流程的结构,准备两个不同版本的程序也是不现实的。 所以我们只能重新思考这个问题: 32位程序真的不能远程注入64位程序吗? 0x01 简介 我在odzhan的博客里找到了解决办法。文章地址如下: https://mode XP . WordPress . com/2015/11/19/dllpic-injection-on-windows-from-wow 64-process/ 本文将介绍实现思路,参考odzhan的开源项目“pi”,编写测试代码,生成32位程序,实现64位进程calc.exe的进程注入,验证32位程序可以注入64位进程的结论。 0x02 实现思路 1、32位程序支持对64位程序的读写 参考资料: rgb/29a: http://www.vxheaven.org/lib/vrg02.html ReWolf: http://blog.rewolf.pl/blog/ https://github.com/rwfpl/rewolf-…
-
- 0 篇回复
- 169 次查看
-
-
0x00 前言 对于Windows系统,通常使用远程桌面服务通过界面远程管理系统。 有一个缺点:使用远程桌面服务远程登录(使用另一个用户或者踢出当前用户)无法获得当前用户的系统状态。 如果想查看(甚至操作)当前用户的桌面,有什么好办法吗? 虽然我们可以通过编写程序(抓取桌面信息、压缩传输、发送鼠标键盘消息等)来实现界面操作。),如果能使用Windows系统的默认功能不是更好吗? 答案是Windows系统的远程协助。 0x01 简介 本文将介绍以下内容: 远程协助的基本操作 命令行下的操作 c程序隐藏界面,发送键盘消息,模拟用户点击确认。 完整的利用过程 检测方法 0x02 远程协助的基本操作 1、开启远程协助功能 系统属性-远程 选择允许远程协助连接到这台计算机。 如下图 2、添加防火墙规则,允许远程协助的通信端口 Windows防火墙允许的程序 选择远程协助。 如下图 3、启动界面程序 Run-msra.exe 4、配置本机为服务端,请求其他人协助 选择邀请您信任的人来帮助您。 如下图 选择将此邀请另存为文件。 如下图 保存文件Invitation.msrcincident 自动弹出界面,生成随机密码,记录密码,如下图所示 5、控制端发起远程连接 控制终端运行文件Invitation.msrcincident,填写上一步生成的密码,并启动远程连接。 …
-
- 0 篇回复
- 220 次查看
-
-
0x00 前言 隐写术历史悠久,里面有很多有趣的细节,所以我打算系统的研究一下,这次从PNG的文件格式开始。 图片来自http://null-byte . wonder how to . com/how-to/guide-steganography-part-1-hide-secret-messages-images-0130797/ 0x01 简介 隐写术可以理解为信息隐藏,渗透测试中最重要的应用是有效载荷的隐藏。本文将对PNG的文件格式进行分析,编写C程序自动解析文件格式,并根据其文件格式添加一个自定义的有效载荷,不仅影响图片的正常浏览,还会将图片上传到网络,使用时下载并解密成特定格式,最后执行有效载荷。 注: 所有程序源代码已上传至github,网址为: https://github.com/3gstudent/PNG-Steganography 0x02 PNG文件格式 1、PNG文件署名域 前8个字节 固定格式,十六进制是: 89 50 4e 47 0d 0a 1a 0a 2、数据块 组块类型代码:4字节,组块类型代码。 块数据(block data):存储数据的可变长度。 CRC(循环冗余检测):4字节,存储用于检测是否有错误的循环冗余码。 数据块类型: 1. 关键数据块(critical chunk) (1)文件标题数据块IHDR(标题块) 包含PNG文件的基本信息。 一个PNG数据流中只能有一个IHDR。 …
-
- 0 篇回复
- 128 次查看
-