
本文选自《内网安全攻防:红队之路》
攻击者可能会尝试获取系统或环境中的帐户列表,账户类型主要包括本地账户、域账户、邮件账户和云账户,此信息可以帮助攻击者确定存在哪些帐户以帮助后续行为。
MailSniper是一种用于在Microsoft Exchange环境中搜索包含特定术语(如密码、内部信息、网络架构信息等)的电子邮件的开源工具。它可以作为普通用户搜索他们自己的电子邮件,也可由Exchange管理员搜索域中每个用户的邮箱。
地址:https://github.com/dafthack/MailSniper
在使用前需运行如下命令打开PowerShell并导入mailsniper
powershell.exe -exec bypass
Import-Module .\MailSniper.ps1
执行如下命令,使用MailSniper的Get-GlobalAddressList功能模块,可实现连接到Outlook Web Access(OWA)在线门户并利用“FindPeople”方法(仅适用于Exchange2013及更高版本)从全局地址列表(GAL)枚举电子邮件账户。如果通过OWA未成功发现邮件账户,MailSniper将同时连接到Exchange Web Service(EWS)并尝试从GAL枚举电子邮件账户。
Get-GlobalAddressList -ExchHostname mail.domain.com -UserName domain\username -Password Summer2017 -OutFile global-address-list.txt
MailSniper除了邮件账户发现功能外,还具有许多实用的功能模块,各模块参数及使用方法可以从项目地址获取:
Invoke-DomainHarvest模块:OWA获取目标组织的内部域名
Invoke-UsernameHarvest模块:OWA生成“域\用户名”或“用户名@域”格式的潜在用户名列表
Invoke-PasswordSprayOWA模块:OWA密码喷射
Invoke-PasswordSprayEWS模块:EWS密码喷射
Get-ADUsernameFromEWS模块:从EWS获取活动目录用户名
Invoke-OpenInboxFinder模块:查找权限过宽的收件箱
Invoke-SelfSearch模块:默认搜索当前账户邮箱含“password”、“creds”和“credentials”的邮件。
攻击者可能会尝试获取云帐户列表。云帐户是由组织创建和配置的帐户,供用户、远程支持、服务使用,或用于管理云服务提供商或软件即服务(SaaS)应用程序内的资源。
运行如下命令列出Microsoft Azure活动目录的用户列表。
az ad user list
命令az ad user list可选参数:
--display-name 对象的显示名称或其前缀
--filter OData过滤器,如"displayname eq 'test'"
--query-examples 推荐JMESPath字符串,可以复制其中一个查询并将其粘贴到双引号内的--query参数之后以查看结果
l--upn 用户主体名称,如john.doe@contoso.com
运行如下命令列出Amazon Web Services(AWS)中的所有IAM用户。
aws iam list-users
命令aws iam list-users可选参数:
--path-prefix 过滤结果的路径前缀
--max-items 在命令的输出中返回的项目总数
--cli-input-json 根据提供的JSON字符串进行服务操作
--starting-token 用于指定从何处开始分页的标记
--page-size 要在AWS服务调用中获取的每个页面的大小
--generate-cli-skeleton 在不发送API请求的情况下将JSON骨架打印到标准输出。
运行如下命令列出Google Cloud当前项目中的所有服务帐户。
gcloud iam service-accounts list
命令gcloud iam service-accounts list可选参数:
--filter=EXPRESSION 将布尔过滤器EXPRESSION应用于要列出的每个资源项,如果表达式计算为True,则列出该项目。
--limit=LIMIT 要列出的最大资源数,默认为unlimited。
--sort-by=[FIELD,…] 要排序的资源字段键名称的逗号分隔列表,默认顺序是升序,使用“~”字段前缀,用于该字段的降序。
--uri 打印资源URI列表而不是默认输出,并将命令输出更改为URI列表。
账户发现是攻击者探测内网的重要步骤,具有较高的危害性,内网安全管理员可以通过采取以下方法进行防御:
一是加强对内网的监控,实施内网安全日志管理和内网安全监测,特别是在域网络中,一旦发现与账户发现相关的网络活动,无论是否合法都要立即发出警报。
二是加强对操作系统的监测,通过sysmon监控Windows操作系统上可用于枚举用户帐户的进程和命令行参数,例如net.exe和net1.exe程序,及时发现非正常的攻击行为。
三是缓解账户发现相关攻击。本地管理员账户枚举主要信赖的是注册表项:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\CredUI\EnumerateAdministrators,我们可以通过组策略对象(GPO)禁用它:计算机配置>[策略]>管理模板>Windows组件>凭据用户界面:在提升时枚举管理员帐户。邮箱账户枚举主要信赖的是相关攻击软件的嗅探技术,安装并维护杀毒软件,可以有效进行应对。
本文分享自 Ms08067安全实验室 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!