Good in study, attitude and health

  • Use Waitfor.exe to maintain persistence

    0x00 前言 从Casey Smith‏@subTee的Twitter上获得的一个思路,利用Waitfor.exe有可能实现一种后门机制。 于是我对其做了进一步研究,并且使用Powershell写了一个后门利用的POC。 本文将要介绍Waitfor.exe在渗透测试中的利用技巧,并且分享开发POC的思路和细节。 完整POC下载地址如下: https://github.com/3gstudent/Waitfor-Persistence 0x01 简介 本文将要具体介绍以下内容: Waitfor.exe简介 利用思路 POC细节 0x02 Waitfor.exe简介 用来同步网络中计算机,可以发送或等待系统上的信号 支持系统: Windows Server 2003 Windows Vista Windows XP Windows Server 2008 Windows 7 Windows Server 2003 with SP2 Windows Server 2003 R2 Windows Server 2008 R2 Windows Server 2000 Windows Server 2012 Windows...

  • 渗透技巧——程序的降权启动

    0x00 前言 在渗透测试中,常常会遇到需要改变程序启动权限(分为提权和降权)的情况。 提权包含从普通用户权限到管理员权限和从管理员权限到system权限,而渗透测试中的降权通常是指从system权限降到普通用户权限(从管理员权限降到普通用户权限比较简单,方法很多),往往是为了操作当前用户的文件内容(如捕获桌面、操作注册表等) 本文将会介绍具体的降权方法(从system权限降到普通用户权限),理清其中的重点,并且开源一个小工具,用于判断进程权限 0x01 简介 本文将要介绍以下内容: 为什么要降权 从管理员权限降到普通用户权限的方法 从system权限降到普通用户权限的方法 利用SelectMyParent实现提权和降权 注: 测试系统: Win7 0x02 为什么要降权 使用sytem权限的进程可能会遇到以下问题: 1、无法获得当前用户的文件内容 例如无法捕获用户的屏幕 2、环境变量有差异 比如以下环境变量: APPDATA Temp Tmp USERDOMAIN USERNAME USERPROFILE cmd下可通过echo查看环境变量,例如查看环境变量APPDATA的命令为: echo %appdata% system权限下,查询到的环境变量APPDATA为C:\Windows\system32\config\systemprofile\AppData\Roaming 管理员权限下,查询到的环境变量APPDATA为C:\Users\a\AppData\Roaming 如下图 通过API SHGetSpecialFolderPath 获取指定的系统路径,如APPDATA,也能发现权限不同导致的区别 c++代码如下: #include <windows.h> #include <Shlobj.h> bool IsSystemPrivilegeCmp() { static bool isSystemPrivilege = false;...

  • Study Notes of using BGInfo to bypass Application Whitelisting

    0x00 前言 最近看到一篇有趣的文章《Bypassing Application Whitelisting with BGInfo》,介绍了如何通过BGInfo实现白名单绕过,我对此很感兴趣,于是对这部分内容做了学习整理,同时开源了一个powershell脚本,用于自动生成.bgi文件 文章地址如下: https://msitpros.com/?p=3831 0x01 简介 本文将要介绍如下内容: Bginfo简介 通过Bginfo绕过白名单的实际操作 如何使用powershell编辑二进制文件 如何开发powershell脚本自动生成.bgi文件 0x02 Bginfo Bginfo—强大的Windows系统信息显示工具,出自Sysinternals套件 下载地址: https://technet.microsoft.com/en-us/sysinternals/bb897557.aspx 注: bginfo.exe最新版本为4.22,本文测试版本为4.21 1、简介 可以自动在桌面的一个区域中显示当前Windows环境信息 面板如图 设置后,桌面显示Windows环境信息,如图 编辑要显示的信息,可将其保存为config.bgi,使用时将其导入就好 2、Bginfo命令行模式 /h 弹出帮助 如图 通过命令行设置桌面显示信息的命令如下: bginfo.exe config.bgi /timer:0 /nolicprompt /silent 3、扩展: 点击Custom可自定义桌面显示内容,如图 选择New 设置数据源,包括环境变量、注册表键值、WMI、文件、VB Script脚本 4、导入WMI查询: 添加一个WMI查询,如图 在面部添加显示内容,修改桌面,成功显示新内容,如图 5、导入VBS: 添加一个vbs查询,vbs脚本可参考: https://gist.githubusercontent.com/api0cradle/efc90f8318556f0737791b6d73a4ec8b/raw/9a46f4cdacb5752e721e1e3701308939351b4768/gistfile1.txt 该vbs脚本实现:...

  • Study Notes of using SilentCleanup to bypass UAC

    0x00 前言 最近我在James Forshaw‏的博客学到了一个Win10下绕过UAC的技巧,该方法通过脚本实现,并且目前微软还未对该绕过方法进行修复(预计在Win10 RS3修复)。经过我的学习测试,该方法同样适用于Win8,并且文中介绍的绕过思路很值得学习,因此整理成文,分享给大家。 文章地址如下: https://tyranidslair.blogspot.co.uk/2017/05/exploiting-environment-variables-in.html 0x01 简介 本文将要介绍以下内容: 绕过思路 利用方法 防御检测 0x02 绕过思路 在之前文章也分享过一些绕过UAC思路的心得,可参考以下文章: https://3gstudent.github.io/Study-Notes-of-using-sdclt.exe-to-bypass-UAC https://3gstudent.github.io/Study-Notes-Weekly-No.1(Monitor-WMI_ExportsToC++_Use-DiskCleanup-bypass-UAC) 个人认为寻找绕过UAC的方法可分为以下两个步骤: 1、寻找权限控制不严格的程序 通常具有以下特点: 以普通用户权限启动程序 程序默认以高权限启动,通常标记为Highest 2、该程序启动过程是否可被劫持 启动路径是否可被劫持 启动过程加载的问题(如dll)是否可被劫持 0x03 利用方法 对应到James Forshaw‏的方法,也是优先寻找权限控制不严格的程序——计划任务中的SilentCleanup 注: Matt Nelson之前也介绍过一个利用SilentCleanup绕过UAC的方法,目前已被修复,文章地址如下: https://enigma0x3.net/2016/07/22/bypassing-uac-on-windows-10-using-disk-cleanup/ 计划任务中的SilentCleanup: 普通用户权限即可启动 启动后自动提升为高权限 通过Powershell可以获取更多细节,代码如下: $task = Get-ScheduledTask SilentCleanup $task.Principal 注: Win7默认powershell版本2.0,不支持Get-ScheduledTask操作 如下图 Authenticated Users表示普通用户权限即可启动 RunLevel为Highest表示以高权限启动 查看启动参数,powershell代码如下:...

  • 逆向分析——使用IDA动态调试WanaCrypt0r中的tasksche.exe

    0x00 前言 2017年5月12日全球爆发大规模蠕虫勒索软件WanaCrypt0r感染事件,各大厂商对该软件做了深入分析,但针对初学者的分析教程还比较少,复现过程需要解决的问题有很多,而且没有文章具体介绍勒索软件的实际运行流程,所以我写了这篇面向初学者的教程,希望帮助大家。 0x01 简介 本文将要介绍以下内容: 样本实际运行流程 IDA动态调试方法 具体调试tasksche.exe的过程 0x02 样本分析 测试环境: Win 7 x86 测试工具: IDA 6.8 样本下载地址: http://bbs.pediy.com/thread-217586-1.htm 经测试,该样本为WanaCrypt0r母体mssecsvc.exe释放出的敲诈者程序tasksche.exe 因此不包含“Kill Switch”开关和MS17-010漏洞利用代码 样本流程分析: 通过逆向分析,样本流程如下图 注: 样本流程图使用processon绘制,在线网址如下: https://www.processon.com/ 0x03 实际测试 1、启动IDA,加载样本文件wcry.exe 找到WinMain(x,x,x,x)函数,在初始位置下断点(快捷键F2),如下图 2、启动调试器 选择Debugger(快捷键F9) 选择Local Win32 debugger,如下图 选择Debugger-Continue process(快捷键F9),进入调试界面,如下图 3、开始单步调试 单步步入快捷键F7 单步步过快捷键F8 执行到 call sub_401225,按F7单步步入,查看该函数的反汇编代码,如下图 为了便于分析,可以输入快捷键F5查看伪代码,如下图 通过代码猜测该函数的功能如下: 调用GetComputerNameW函数获得计算机名 使用rand函数生成一个随机数 二者结合生成一个唯一的ID...

  • An interesting way of bypassing Windows Attachment Manager

    0x00 前言 最近看到了一篇文章《Bypassing Windows Attachment Manager》,作者rvrsh3ll@424f424f,文中介绍了他绕过Windows Attachment Manager的思路,很有趣。 恰好我对文中涉及到的ADS和lnk文件利用有过研究,所以,本文将结合我的一些心得,对该绕过方法做拓展介绍,并分享一个我在实际测试过程中发现的有趣问题 相关文章地址如下: 《Bypassing Windows Attachment Manager》: http://www.rvrsh3ll.net/blog/informational/bypassing-windows-attachment-manager/ 我之前的一些研究心得: 《渗透技巧——快捷方式文件的参数隐藏技巧》 《Hidden Alternative Data Streams的进阶利用技巧》 0x01 简介 本文将要介绍以下内容: Windows Attachment Manager作用 Windows Attachment Manager实现方式 Windows Attachment Manager的绕过思路 特殊文件的构造 实际测试过程中发现的有趣问题 0x02 Windows Attachment Manager 简介 自WinXp SP2开始,微软推出的新功能 用来防止文件从非信任的途径下载后可以直接执行 非信任的途径包括邮件和互联网下载 如果发现文件来自于非信任的途径,那么该文件在打开时会弹框提示用户,需要用户确认才能执行,如图 被标记为High-risk的文件格式如下: .ade,.adp,.app,.asp,.bas,.bat,.cer,.chm,.cmd,.com,.cpl,.crt,.csh,.exe,.fxp,.hlp,.hta,.inf,.ins,.isp,.its,.js,.jse,.ksh,.lnk,.mad,.maf,.mag,.mam,.maq,.mar,.mas,.mat,.mau,.mav,.maw,.mda,.mdb,.mde,.mdt,.mdw,.mdz,.msc,.msi,.msp,.mst,.ops,.pcd,.pif,.prf,.prg,.pst,.reg,.scf,.scr,.sct,.shb,.shs,.tmp,.url,.vb,.vbe,.vbs,.vsmacros,.vss,.vst,.vsw,.ws,.wsc,.wsf,.wsh 详细资料可参考: https://support.microsoft.com/en-us/help/883260/information-about-the-attachment-manager-in-microsoft-windows 实现方式...

  • Hidden Alternative Data Streams的进阶利用技巧

    0x00 前言 在渗透测试中,ADS(供选数据流/ alternate data stream)通常用于在文件中隐藏payload,这种方式最大的优点是不影响文件大小,普通用户很难察觉 为此,微软提供了"dir /r"操作,可用来查看文件的ADS,同时,Win XP以后的系统禁止用户从ADS里直接执行程序,限制了ADS的利用 然而,通过一些特殊用法和技巧,我们能够更好的隐藏ADS,并且能够从ADS里直接执行程序 :) 说明: 写本文的初衷是偶然看到了一篇有趣的文章,作者:lex Inführ,地址如下: http://insert-script.blogspot.co.at/2012/11/hidden-alternative-data-streams.html 该文章介绍了一些绕过ADS检测工具的技巧,并给出了通过wmi执行ADS的方法 本文将基于lex Inführ的文章,结合我的研究心得,对ADS的利用技巧作扩充,分享如何清除这些特殊的ADS,帮助大家提升对ADS的认识 0x01 简介 本文将要介绍以下内容: ADS常规利用方法 ADS常规检测工具 特殊ADS对检测工具的绕过 特殊ADS的清除 防御建议 0x02 常规利用 ADS: 适用于NTFS文件系统,基础知识可参考如下文章: http://www.freebuf.com/articles/73270.html 创建ADS: 对文件,命令行: echo test1 > test.txt:ThisIsAnADS 创建成功后,test.txt文件大小不变 对文件夹,命令行: echo test1 > c:\test\ads\1:ThisIsAnADS 注: 需要绝对路径 查看文件中的ADS: 命令行: dir /r 如图...

  • NSA DanderSpiritz测试指南——木马生成与测试

    0x00 前言 DanderSpritz是NSA的一款界面化的远控工具,基于FuzzBunch框架,执行Start.jar即可启动 在实际测试过程中,由于缺少说明文档,遇到的问题有很多,同时一些细节也值得深入研究 所以本文将要帮助大家答疑解惑,分享测试心得,结合木马特点分析防御思路 0x01 简介 本文将要介绍以下内容: 执行pc_prep无法获得回显的原因及解决方法 Pc同Pc2.2的区别 level3和level4木马代表的含义及如何使用 各类型木马区别 dll木马利用方式 Windows单条日志删除功能 木马查杀思路 0x02 实际测试 测试环境: Win7 x86 安装如下工具: python2.6 pywin32 jdk 1、下载fuzzbunch 参考链接: https://github.com/3gstudent/fuzzbunch 注: 我fork了公开的fuzzbunch项目(https://github.com/fuzzbunch/fuzzbunch),并添加了部分内容,解决了一个bug,具体内容会在后面介绍 2、直接运行Start.jar 如图 设置启动参数,Log Directory需要设置成固定格式:c:\logs\xxx(xxx任意名称) 否则,会出现报错,如下图 注: 网上的部分分析文章认为应该先用fb.py生成一个日志文件,接着Start.jar指向该目录,其实不需要,只要路径格式正确即可 3、执行pc_prep配置木马 输入pc_prep获得回显,如下图 注: 有很多人在测试的时候发现输入pc_prep无法获得回显,如下图 原因: fuzzbunch工程下载自如下链接: https://github.com/x0rz/EQGRP_Lost_in_Translation 文件缺失,导致该错误 正确的下载位置: https://github.com/fuzzbunch/fuzzbunch 但是,下载后还需要补全缺失的文件,才能完全正常使用 我fork了上述工程,并补全了缺失文件,下载我的github即可解决上述问题,地址如下: https://github.com/3gstudent/fuzzbunch 补充:...

  • 内网安全——利用NSA Smbtouch批量检测内网

    0x00 前言 最近,NSA渗透工具被曝光,其中包含多个Windows远程漏洞利用工具,影响很大 本文不会具体介绍这些远程漏洞工具的使用方法,而是站在防御者的角度,介绍如何利用这些工具,更好的去保护自己的内网 0x01 简介 本文将要介绍以下内容: FuzzBunch使用流程 Smbtouch功能介绍 编写python脚本实现批量检测内网是否存在可被SMB和NBT协议攻击的漏洞 根据日志掌握内网主机信息 检测的SMB和NBT远程提权漏漏洞列表如下: ETERNALBLUE ETERNALCHAMPION ETERNALROMANCE ETERNALSYNERGY 注: 个人认为,以上四个漏洞危害最大,尤其适用于内网工作组环境 0x02 FuzzBunch FuzzBunch框架,类似于metasploit,包含探测、攻击、利用等各种功能(仅根据目前泄露的资料) 下载地址: https://github.com/fuzzbunch/fuzzbunch 注: fuzzbunch提取自https://github.com/x0rz/EQGRP_Lost_in_Translation 1. 配置环境 安装python2.6,参考下载地址: http://dl.nexiao.com/file.html?url=http%3A//b9.gpxz.net/201402/python-2_gpxz.6_gpxz.6_gpxz.rar 安装pywin32,参考下载地址: https://sourceforge.net/projects/pywin32/files/pywin32/Build%20221/pywin32-221.win32-py2.6.exe/download 2. 添加环境变量 c:\python26 3. 执行fb.py进入命令行操作模式 报错 原因: 泄露的资料里缺少listeningposts文件夹 解决办法: 在shadowbroker-master\windows\下创建个listeningposts文件夹 或者修改fb.py,修改好的文件可在如下链接下载: https://raw.githubusercontent.com/3gstudent/test/master/fb.py 再次执行fb.py,成功 如图 注: 执行start_lp.py可进入界面操作模式,如下图,此处不再过多介绍 4. 设置启动参数如下: [?]...

  • 利用globalAPIhooks在Win7系统下隐藏进程

    0x00 前言 在之前的文章《Powershell tricks::Hide Process by kd.exe》介绍过通过kd.exe隐藏进程的技巧,最大的缺点是需要开启Local kernel debugging模式,等待重启才能生效 这次介绍另外一个隐藏进程的方法——利用global API hooks 优点是即时生效,不需要等待系统重启 0x01 简介 本文将要参照Sergey Podobry的文章,对该方法进行介绍,分析实际测试中需要注意的细节,并补全在64位下具体的参数设置 参考链接: https://www.codeproject.com/articles/49319/easy-way-to-set-up-global-api-hooks?display=print https://github.com/subTee/AppInitGlobalHooks-Mimikatz 0x02 原理 在用户层,通过global API hooks将测试dll注入到系统的所有进程,实现对指定进程的隐藏 hook方式 修改注册表键值AppInit_DLLs 位置: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows 参数说明: LoadAppInit_DLLs: (REG_DWORD) Value that globally enables or disables AppInit_DLLs. 0x0 – AppInit_DLLs are disabled. 0x1 – AppInit_DLLs are enabled....