欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

内网横向移动技巧总结

来源:本站整理 作者:佚名 时间:2020-03-14 TAG: 我要投稿

一、前言
在攻击者获取到某台内网机器的控制权限之后,进一步会考虑如何在内网进行横向移动,以及攻击域控服务器,本文总结了突破边界后进一步的攻击技巧。主要分为Windows域认证背景介绍、技巧总结两部分。
二、Windows域介绍
将网络中多台计算机逻辑上组织到一起进行集中管理,这种区别于工作组的逻辑环境叫做域。域是由域控制器(Domain Controller)和成员计算机组成,域控制器就是安装了活动目录(Active Directory)的计算机。活动目录提供了存储网络上对象信息并使用网络使用该数据的方法,在域中,至少有一台域控制器,域控制器中保存着整个域的用户帐号和安全数据库。
2.1域的优势
1.集中管理,可以集中的管理企业中成千上万分布于异地的计算机和用户。
2.便捷的网络资源访问,能够容易的定位到域中的资源。
3.用户一次登录就可访问整个网络资源,集中的身份验证。
4.网络资源主要包含用户帐户、组、共享文件夹、打印机等
5.可扩展性,既可以适用于几十台计算机的小规模网络,也可以适用于跨国公司。
2.2域渗透常用命令
查询与控制器主机名 :net group “domain controllers” /domain

可以通过ping主机名获取到域控的ip

查询域管理用户:net group “domain admins” /domain

查看所有域用户: net user /domain

查看加入域的所有计算机名:net group “domain computers” /domain

查看域密码策略:net accounts /domain

2.3Windows认证协议
Windows有两种认证协议:NTLM(NT LAN Manager)和Kerberos。域成员计算机在登录的时候可以选择登录到域中或此台电脑,选择登陆到域一般会采用Kerberos协议在域控DC上进行认证。
2.3.1NTLM认证协议
NTLM是一种网络认证协议,它是基于挑战(Chalenge)/响应(Response)认证机制的一种认证模式。这个协议只支持Windows。NTLM认证协议大概流程:

可以看到NTLM协议基于NTLM hash,windows本地登陆的密码由LM hash和NTLM hash组成,存储在SAM文件中,前一部分是LM Hash,后一部分是NTLM Hash。
administrator:500:6f08d7b306b1dad4ff17365faf1ffe89:032f3db689bf1ee44c04d08c785710de:::
在登陆Windows的时候,系统会将用户输入的密码转换成NTLM hash并与SAM文件中的密码进行对比,如果相同,则认证成功。
2.3.2Kerberos认证协议
Kerberos是一种网络认证协议,整个认证过程涉及到三方:客户端、服务端和 KDC(Key Distribution Center),在 Windows 域环境中,KDC 的角色由 DC(Domain Controller)来担当。
Kerberos基于票据(Ticket)进行安全认证,票据是用来在认证服务器和用户请求的服务之间传递用户身份的凭证。以下是kerberos协议的认证流程:

第1步:KRB_AS_REQ:Client-A发送Authenticator(通过A密码加密的一个时间戳TimeStamp)向KDC的AS服务认证自己的身份;
第2步:KRB_AS_REP:AS通过KDC数据库中存储的Client-A密码的副本,解密收到的Authenticator,如果解密出的TimeStamp符合要求,则AS服务认为Client-A就是所谓的Client-A;
认证成功后,AS服务生成一个短期有效的SessionKeya-kdc,将该Key使用A的密码副本加密成密文1,另外将Key连同时间戳标志(控制该SessionKey的有效时间)通过TGS服务的密码也就是KDC的密码加密为密文2(称为TGT),将这两个密文组合成KRB_AS_REP返回给Client-A;
第3步:KRB_TGS_REQ:Client-A在接收到KRB_AS_REP后,首先使用自身密码解密密文1得到SessionKeya-kdc,此时需要注意的是,密文2(TGT)是被KDC的密码加密的,所以Client-A无法解密,这也是Kerberos协议设计的精妙之处,既解决了Server端(TGS相对于Client-A也称之为Server端)无法及时接收SessionKey的问题,又不怕Client-A对该TGT的伪造,因为Client-A不知道Server端的密码。
得到SessionKeya-kdc后,Client-A利用其加密时间戳生成Authenticator用于向TGS申请Client-A与Client-B进行认证所需的SessionKeya-b,连同刚才KRB_AS_REP接收的TGT一同组合成KRB_TGS_REQ发送给TGS
第4步:KRB_TGS_REP:TGS在接收到KRB_TGS_REP之后,利用KDC密码解密TGT获得本来就该发送给自己的SessionKeya-kdc,然后用其解密KRB_TGS_REQ中的Authenticator得到Client-A发送过来的时间戳,如果时间戳符合要求,则生成一个短期有效的SessionKeya-b,注意此时利用SessionKeya-kdc将SessionKeya-b加密为密文1,然后利用Server-B的密码将SessionKeya-b加密为密文2(称为ServiceTicket),两个密文一同构成KRB_TGS_REP返回给Client-A;

[1] [2] [3] [4] [5]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载