Good in study, attitude and health

  • Phishing credentials via Basic Authentication(phishery)利用测试

    0x00 前言 phishery是一个简单的支持SSL的HTTP服务器,其主要目的是通过基本身份验证钓鱼获得目标的凭据。 本文将要对其进行测试,介绍测试细节,分析实现原理,扩展用法。 phishery地址: https://github.com/ryhanson/phishery 0x01 简介 本文将要介绍以下内容: phishery实际测试 实现原理 补充1: 使用openssh制作证书 补充2: php实现Basic Authentication 防御建议 0x02 phishery实际测试 测试系统: Win7x64 下载编译好的程序: https://github.com/ryhanson/phishery/releases/download/v1.0.2/phishery1.0.2windows-amd64.tar.gz 1、生成word文档 phishery -u https://secure.site.local/docs -i good.docx -o bad.docx 参数说明: https://secure.site.local/docs作为伪造的web服务器地址,docs为文件名称(该文件必须存在,默认对应文件template.dotx),目标用户在打开bad.docx时,会显示该域名 good.docx为输入的word文档,文档为正常内容 bad.docx为输出的word文档,在good.docx中插入Word document template 如下图 2、启动HTTPS Auth Server phishery 默认加载的配置文件为同级目录下的settings.json 内容如下: { "ip": "0.0.0.0", "port": "443", "sslCert":...

  • AntiVirus Evasion Tool(avet)测试分析

    0x00 前言 avet是一款用来绕过杀毒软件检测的工具,使用了多种不同的反病毒规避技术。 分别入选blackhat ASIA 2017 arsnal、blackhat USA 2017 arsnal和blackhat USA 2018 arsnal: https://www.blackhat.com/asia-17/arsenal.html#avet-antivirus-evasion-tool https://www.blackhat.com/us-17/arsenal/schedule/index.html#avet—antivirus-evasion-tool-7908 https://www.blackhat.com/us-18/arsenal/schedule/index.html#avet-antivirus-evasion-tool-10692 github开源地址: https://github.com/govolution/avet 本文将要对其进行测试,结合自己的经验分析avet使用的反病毒规避技术 0x01 简介 本文将要介绍以下内容: 环境搭建 使用流程 工具实现细节 技术细节分析 0x02 环境搭建 测试系统:kali2 x64 1、下载 https://github.com/govolution/avet 2、编译 如果使用32位kali系统,需要编译 gcc -o make_avet make_avet.c 64位kali系统不需要 3、安装wine32 否则,无法生成exe 如下图 安装命令: dpkg --add-architecture i386 && apt-get update &&...

  • 渗透技巧——Windows单条日志的删除

    0x00 前言 在之前的文章《渗透技巧——Windows日志的删除与绕过》介绍了常见的Windows日志清除与绕过方法,但未提到单条日志的清除。 这一次将要结合刚刚完成的Windows XML Event Log (EVTX)单条日志清除系列文章,介绍在渗透测试中Windows XML Event Log (EVTX)单条日志清除的具体使用方法,同时结合利用思路给出防御建议 Windows XML Event Log (EVTX)单条日志清除系列文章地址: Windows XML Event Log (EVTX)单条日志清除(一)——删除思路与实例 Windows XML Event Log (EVTX)单条日志清除(二)——程序实现删除evtx文件的单条日志记录 Windows XML Event Log (EVTX)单条日志清除(三)——通过解除文件占用删除当前系统单条日志记录 Windows XML Event Log (EVTX)单条日志清除(四)——通过注入获取日志文件句柄删除当前系统单条日志记录 Windows XML Event Log (EVTX)单条日志清除(五)——通过DuplicateHandle获取日志文件句柄删除当前系统单条日志记录 0x01 简介 本文将要介绍以下内容: 通过命令行获得日志信息 通过命令行导出日志文件 将修改后的日志文件覆盖系统原文件 细节和注意点 防御建议...

  • Windows Event Viewer Log (EVT)单条日志清除(三)——删除当前系统指定指定时间段evt日志记录

    0x00 前言 Windows Event Viewer Log (EVT)单条日志清除系列文章的第三篇,介绍删除当前系统指定时间段evt日志记录的方法和详细测试过程,说明无法修改日志数量的原因,最后开源查询日志内容和修改日志内容的实现代码 0x01 简介 本文将要介绍以下内容: XP系统下枚举系统所有句柄的方法 筛选日志文件句柄的条件 XP下Dll注入的实例代码 实际测试过程 无法修改日志数量的原因 日志查询的程序实现细节 日志修改的程序实现细节 0x02 XP系统下枚举系统所有句柄 之前的文章《Windows单条日志清除(五)——通过DuplicateHandle获取日志文件句柄删除当前系统单条日志记录》介绍了Win8及以上系统的实现方法: 利用NtQuerySystemInformation查询SystemHandleInformation能够获得所有进程的句柄信息 通过NtDuplicateObject获取句柄的名称和具体的数值信息 筛选出想要查找的句柄 通过DuplicateHandle复制句柄 获得修改日志文件的权限 在XP系统下,无法使用NtQuerySystemInformation查询SystemHandleInformation获得进程的句柄信息 参考processhacker的源码,寻找实现方法 代码位置: https://github.com/processhacker/processhacker/blob/e2d793289dede80f6e3bda26d6478dc58b20b7f8/ProcessHacker/hndlprv.c#L307 获得参考资料: On Windows 8 and later, NtQueryInformationProcess with ProcessHandleInformation is the most efficient method. On Windows XP and later, NtQuerySystemInformation with...

  • Windows Event Viewer Log (EVT)单条日志清除(二)——程序实现删除evt文件指定时间段的日志记录

    0x00 前言 Windows Event Viewer Log (EVT)单条日志清除系列文章的第二篇,介绍删除evt文件指定时间段日志记录的思路,解决在程序设计上需要考虑的多个问题,开源实现代码。 0x01 简介 本文将要介绍以下内容: 对指定evt文件指定时间段日志记录的删除思路 程序实现细节 开源代码 0x02 删除evt文件指定时间段日志记录的思路 对比之前文章中提到的evtx文件单条日志删除方法,evt文件无法使用相同的思路 这是因为evt的文件结构中不包括唯一值EventRecordID,也就无法定位到指定的日志 经过分析,发现可以选择日志的创建时间作为输入项,指定起始日期和结束日期,删除这个时间段内的日志内容 而日志创建时间的格式为time_t类型,这里需要做一个考虑time_t类型和格林威治标准时间(Greenwich Mean Time,GMT)之间的转换 在程序实现上,思路如下: 遍历所有日志,过滤掉符合删除条件的日志,保存剩下的日志内容 筛选完成后,后续日志的Record number作减法,减去删除的日志条数 更新file header中的End of file record offset,Last (newest) record number和Maximum file size 更新end of file record中的End of file record offset和Last (newest) record number 0x03 time_t类型和格林威治标准时间(Greenwich Mean...

  • Windows Event Viewer Log (EVT)单条日志清除(一)——删除思路与实例

    0x00 前言 Windows Event Viewer Log (EVT)单条日志清除系列文章的第一篇,侧重于介绍evt日志文件的基础知识和删除单条日志的实现思路与实例 Windows Event Viewer Log (EVT)适用于以下Windows系统: Windows NT 4 Windows 2000 Windows XP Windows 2003 注: 之前介绍了Windows XML Event Log (EVTX)适用于Win7及更高版本的系统 0x01 简介 本文将要介绍以下内容: evt文件格式 删除单条日志的思路 删除单条日志的实例 0x02 基础知识 evt文件格式指Windows Vista之前用于保存系统日志信息的文件,最常见的为XP和Server2003系统 日志文件默认保存位置: %systemroot%\system32\config 常见日志文件: 应用程序日志:AppEvent.Evt 安全日志:SecEvent.Evt 系统日志:SysEvent.Evt 查看日志的方法 (1) 通过界面 cmd -> eventvwr (2)...

  • 结束进程导致BSOD的利用分析

    0x00 前言 BSOD,全称Blue Screen of Death,即蓝屏死机。 通常是Ring0级的内核程序出错导致,在提权漏洞中经常遇到。 而在渗透测试中,某些情况下需要重启系统,例如配置Password Filter 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.codeproject.com/Articles/43405/Protecting-Your-Process-with-RtlSetProcessIsCriti 函数原型: NTSTATUS RtlSetProcessIsCritical ( BOOLEAN bNew, // new setting for process BOOLEAN *pbOld, // pointer...

  • 渗透技巧——Windows系统的文件恢复与删除

    0x00 前言 在渗透测试中,文件的恢复和删除好比矛与盾。 文件恢复是指恢复目标系统已删除的文件,而文件删除是指删除在目标系统上使用过的工具,避免被恢复。 0x01 简介 本文将要介绍以下内容: 文件删除的原理 文件恢复的原理 利用PowerForensics恢复文件 利用SDelete删除文件 利用SDelete删除文件后,能否使用PowerForensics恢复 通过文件覆盖,防止文件被恢复 枚举所有进程,搜索指定文件的句柄,释放该句柄,解除文件占用,实现文件删除 程序实现细节和开源代码 0x02 文件删除与恢复的原理 参考资料: http://www.ntfs.com/ntfs_basics.htm 基本概念 Windows文件系统大都使用NTFS(New Technology File System)技术 NTFS中每个文件对应一个主文件表(Master File Table,MFT) MFT作为文件索引,存储文件的属性 文件删除的直观理解: 只修改了MFT(即文件属性),没有修改删除文件的内容 文件恢复的直观理解: 恢复文件的MFT即可 简单测试 新建文件test.txt,写入内容0123456789 使用工具:WinHex 下载地址: http://www.x-ways.net/winhex/ 选择Tools -> Open Disk,选择盘符 找到文件test.txt,右键 -> Navigation -> Seek FILE Record 查看test.txt的MFT信息,如下图 MFT的结构如下图...

  • Shodan API使用指南

    0x00 前言 Shodan是一个针对网络设备的搜索引擎,通过Shodan API进行搜索,不仅数据更加丰富,而且能够配合自己的程序实现自动化分析。 本文将要介绍Shodan API在使用过程需要注意的问题,分享使用心得和脚本开发技巧。 0x01 本文将要介绍以下内容 Shodan API的简单使用 利用python调用Shodan API获得搜索结果 对搜索结果作进一步处理 三种积分(credits)的区别 通过Shodan官网导出搜索结果和进一步处理 0x02 Shodan API的简单使用 1、注册账号,获得API Key 测试API Key为:SkVS0RAbiTQpzzEsahqnq2Hv6SwjUfs3 2、安装python包 pip install shodan 3、通过Shodan CLI获得搜索结果 参考资料: https://cli.shodan.io/ 注: 未付费只能获得100个搜索结果 CLI全称为command-line interface,即shodan的命令行模式 Windows系统下使用pip install在同级目录产生文件Shodan.exe 如下图 (1) 初始化 shodan init <api key> 实际命令为: shodan init SkVS0RAbiTQpzzEsahqnq2Hv6SwjUfs3 如下图 (2) 搜索指定内容(apache)的数量...

  • Windows XML Event Log (EVTX)单条日志清除(五)——通过DuplicateHandle获取日志文件句柄删除当前系统单条日志记录

    0x00 前言 Windows单条日志清除系列文章的第五篇,介绍第三种删除当前系统单条日志记录的方法:枚举当前系统的所有进程,获得指定日志文件的句柄,通过DuplicateHandle复制句柄,获得权限,利用该句柄实现日志文件的修改 0x01 简介 本文将要介绍以下内容: 利用思路 程序实现 枚举所有进程,获得指定文件句柄 通过DuplicateHandle复制句柄 开源实现代码 0x02 利用分析 上篇文章《Windows XML Event Log (EVTX)单条日志清除(四)——通过注入获取日志文件句柄删除当前系统单条日志记录》提到,某些条件下,高版本的Windows系统不允许注入保护进程svchost.exe,而我们又不想停掉日志服务,那么该怎么办呢? 我在之前的文章《渗透技巧——Windows系统的文件恢复与删除》曾涉及到解决方法,可以尝试通过DuplicateHandle复制句柄,将“伪句柄”转换成实句柄,获得日志文件的操作权限 0x03 枚举所有进程,获得指定文件句柄 思路如下: 使用内核API NtQuerySystemInformation查询SystemHandleInformation,获得所有进程的句柄 筛选出类型为文件的句柄 如果无法打开句柄对应的进程,留下标志位,不再重复打开该进程 过滤出有可能导致挂起的句柄,利用API WaitForSingleObject进行判断 通过NtDuplicateObject获取句柄的名称和具体的数值信息,筛选出指定句柄 代码参考地址: https://github.com/3gstudent/Homework-of-C-Language/blob/master/EnumerateProcess%26GetFile’sHandle%26CloseHandle(Win7).cpp 代码适用于Win7和更高版本的操作系统,并提供了是否选择关闭句柄的功能 当然,也可以先枚举服务信息,找到日志服务对应的进程,缩小查询范围,再获得日志文件的句柄,思路如下: 枚举服务信息,找到日志服务对应的进程 使用内核API NtQuerySystemInformation查询SystemHandleInformation,获得所有进程的句柄 筛选出日志服务对应进程中的句柄 通过NtDuplicateObject获取句柄的名称和具体的数值信息,筛选出指定句柄 在效率上会更高,不会遇到有可能导致挂起的句柄 代码参考地址: https://github.com/3gstudent/Homework-of-C-Language/blob/master/GetPIDandHandle(evtx).cpp 代码实现了自动获得日志服务的进程,缩小查询范围,获得日志文件的句柄 0x04 通过DuplicateHandle复制句柄 通过枚举进程获得了日志文件的句柄后,发现这是一个“伪句柄”,原因如下: 获取句柄的具体内容需要调用NtDuplicateObject DuplicateObject的函数原型: BOOL WINAPI DuplicateHandle(...