跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

渗透基础——远程从lsass.exe进程导出凭据


cnhackteam7

推荐的帖子

0x00 前言

在之前文章《渗透基础——从lsass.exe进程导出凭据》 介绍了本地导出凭据的方法,而在渗透测试中,经常遇到的情况是需要远程导出凭据,本文将要介绍远程导出凭据的思路和方法,记录细节

0x01 简介

本文将要介绍以下内容:

思路

实现方法

lsassy介绍

0x02 思路

在远程导出凭据时,需要考虑以下几点:

(1)需要实现远程命令执行,关于远程命令执行,可以参考之前的文章《在远程系统上执行程序的技术整理》

(2)由于保护措施的限制,不同环境需要不同的导出方法

(3)远程导出lsass进程的倾销文件后,通常会选择将倾销文件复制到本地,解析得到口令哈希,而有的时候lsass进程的倾销文件很大,所以需要考虑传输文件的效率

(4)对于多个系统,重复劳动太多,效率不高

综合以上几点,我们需要一个方便快捷的方法:支持多种导出方法,能够直接解析出口令哈希,操作自动化以提高效率

这里可以使用开源工具伊莎西,地址为:https://github.com/Hackndo/lsassy

0x03 lsassy介绍

1.安装使用

安装命令:

点安装lsassy

测试命令:

lsassy -u管理员-p密码1 192.168.1.1

在输出上,使用术语颜色添加了颜色显示,在默认Windows cmd下无法正常显示颜色,会导致显示格式不友好,存在一些乱码

为了解决Windows操作系统操作系统下格式乱码的问题,可以修改\ lib \ site-packages \ lsassy \ logger。py,代码如下:

导入日志记录

导入操作系统

导入系统

LsassyFormatter类(日志记录。格式化程序):

def __init__(self):

伐木。格式化程序。_ _ init _ _(self,' %(bullet)s %(线程名)s %(消息)s ',无)

if os.name=='nt ':

自我。蓝色,自我。白色,自我。黄色,自我。红色,自我NC='','','','',' '

否则:

自我. BLUE=' \ 033[1;34米

自我WHITE=' \ 033[1;37米

自我. YELLOW=' \ 033[1;33米

自我. RED=' \ 033[1;31米

自我. GREEN=' \ 033[1;32米

自我. NC='\033[0m '

定义格式(自身,记录):

if record.levelno==logging .信息:

record.bullet='[*]{} ' .格式(自我. NC)

elif record.levelno==logging .调试:

record.bullet='[*]{} ' .格式(自我. NC)

elif record.levelno==logging .警告:

record.bullet='[!]{}'.格式(自我. NC)

elif record.levelno==logging .错误:

record.bullet='[x]{} ' .格式(自我. NC)

否则:

record.bullet='[ ]{} ' .格式(自我. NC)

if record.exc_info和logging.getLogger().getEffectiveLevel()!=日志记录。调试:

record.exc_info=无

返回日志记录Formatter.format(self,record)

定义高亮显示(消息):

返回消息

def init(quiet=False):

处理程序=日志记录StreamHandler(sys.stdout)

处理程序。设置格式化程序(lsassy formatter())

logging.getLogger().addHandler(处理器)

logging.getLogger().设置级别(日志记录。信息)

logging.addLevelName(25,"成功")

setattr(logging,' success ',lambda message,*args: logging.getLogger()._log(25,message,args))

logging.getLogger().禁用=安静

2.打包成exe

这里可以使用pyinstaller,主程序代码为https://github。com/hack ndo/lsassy/blob/master/lsassy/console。巴拉圭

打包成单独可执行程序的扩展名的命令:

pyinstaller -F console.py

生成console.exe后,在执行时会报错提示缺少组件

根据输出提示修改打包命令,添加引用模块:

py安装程序-F控制台。隐藏导入unicode。后端。纯粹。隐藏导入unicode。后端。纯粹。隐藏-导入unicode。后端。纯粹。AES-hidden-import unicode。后端。纯粹。RC4

此时虽然能够正常启动console.exe,但是无法运行导出功能

调试方法:添加参数-vv,能够看到lsassy.dumpmethod.comsvcs找不到

添加所有依赖包,得到完整的打包命令:

py安装程序-F控制台。隐藏导入unicode。后端。纯粹。隐藏导入unicode。后端。纯粹。隐藏-导入unicode。后端。纯粹。AES-hidden-import unicode。后端。纯粹。RC4-隐藏-进口lsassy。转储方法。隐藏-导入lsassy。转储方法。com SVCs _ stealth-hidden-import lsassy。导入lsassy。转储方法。dll注入隐藏导入lsassy。转储方法。杜(姓氏)

此时生成的console.exe可以正常使用

3.支持的导出方法

(1)comsvcs

使用c:\ windows \ system32 \ com SVCs。动态链接库的导出函数小型转储()获得lsass进程的倾销文件

细节可参考之前的文章《MiniDumpWriteDump via COM+ Services DLL》 的利用测试

可直接使用

(2)comsvcs_stealth

方法类似comsvcs,区别是先将c:\ windows \ system32 \ com SVCs。动态链接库复制到c:\windows\temp并重命名,使用新的动态链接库获得lsass进程的倾销文件

可直接使用

(3)dllinject

通过动态链接库注入的方式实现

美国动力会议注入的方法可参考《通过APC实现Dll注入——绕过Sysmon监控》

需要加入参数:-O loader_path=loader.exe,dll_path=inject.dll

(4)dumpert

技术细节:https://github。com/包抄nl/Dumpert

通过API MiniDumpWriteDump()获得lsass进程的倾销文件

需要加入参数:-O dumpert_path=dumpert.exe

(5)dumpertdll

方法同上,区别是使用动态链接库文件作为参数

需要加入参数:-O dumpertdll_path=dumpert.dll

(6)edrsandblast

技术细节:https://github。com/wave stone-CDT/edr爆炸

利用带有签名的驱动程序获得lsass进程的倾销文件

需要加入参数:-O edr blaster _ path=edr blaster。exe,RTCore64_path=RTCore64.sys,ntoskrnl _ path=ntoskrnloffsets。战斗支援车

(7)mirrordump

技术细节:https://github。com/CCob/镜像转储

实现流程:

加载一个LSA SSP插件

在插件中泄露lsass.exe的进程句柄

通过API MiniDumpWriteDump()获得lsass进程的倾销文件

需要加入参数:-O mirrordump _ path=mirrordump。可执行程序的扩展名

(8)mirrordump_embedded

方法同上,不需要Mirrordump.exe作为参数

需要注意的是镜像转储无法自动清除已注册的LSA SSP插件,使用该方法后会留下以下痕迹:

LSA SSP插件保存在C:\Windows\System32,名称为八位随机字符,后缀名为动态链接库

lsass进程中残留未卸载的动态链接库

痕迹如下图

2-1.png

清除痕迹的方法:先卸载lsass进程中加载的dll,再删除动态链接库文件

关于枚举和清除LSA SSP插件的细节可参考之前的文章《Mimikatz中SSP的使用》

可直接使用

(9)nanodump

技术细节:https://github。com/帮助系统/nanodump

优点是支持多种方式泄露lsass进程句柄

需要加入参数:-O nanodump_path=nanodump.exe

(10)ppldump

技术细节:https://github.com/itm4n/PPLdump

支持Win10和服务器2019

能够绕过受保护的工艺灯对lsass进程的保护

相关细节:

https://itm4n.github.io/lsass-runasppl/

https://博客。scrt。ch/2021/04/22/绕过-LSA-用户保护区/

需要加入参数:-O ppldump_path=PPLdump.exe

(11)ppldump_embedded

方法同上,不需要PPLdump.exe作为参数

可直接使用

(12)procdump

通过procdump.exe获得lsass进程的倾销文件

需要加入参数:-O procdump_path=procdump.exe

(13)procdump_embedded

方法同上,不需要procdump.exe作为参数

可直接使用

(14)rdrleakdiag

目标系统需要在c:\ windows \系统32\下存在文件rdrleakdiag.exe

默认存在的系统:

视窗10

视窗8.1

视窗8

视窗7

windows Vista 6 . 0 . 6001 . 18000

只能执行一次,第二次执行需要重启操作系统。

可以直接使用。

(15)wer

技术详情:3359github.com/powershell黑手党/powersploit/blob/master/ex filtering/out-minidump . PS1

用Powershell调用API MiniDumpWriteDump()获取lsass进程的dmp文件。

可以直接使用。

0x04 小结

介绍了远程导出lsass.exe进程证书的思想,逐一介绍了Lsassy使用的导出方法,并对技术细节进行了分析。

留下回复

链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...