版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章内网渗透基础知识内网渗透攻防技术【ch01】内网渗透基础知识【ch02】隧道技术【ch03】Windows认证协议【ch04】内网信息收集【ch05】权限提升【ch06】横向移动【ch07】Metasploit简介【ch08】PowerShell攻击全套可编辑PPT课件01内网结构和拓扑PARTONE常见的内网拓扑类型单核心拓扑结构是指在整个网络环境中只有一台核心层交换机的拓扑结构,如图1-1所示。这种拓扑结构适用于网络规模不太大、对网络依赖程度不高的企业。由于核心设备(如思科设备)的价格高昂,因此大多数企业的网络采用单核心拓扑结构。1单核心拓扑结构常见的内网拓扑类型双核心拓扑结构是指在整个网络环境中有两台核心层交换机的拓扑结构,如图1-2所示。这种拓扑结构的优点是稳定性好、传输性能强、传输速率高。由于核心层交换机是整个网络环境的核心交换节点,因此对核心层交换机的性能要求非常高。同时配备两台核心层交换机作为整个网络环境的核心交换节点,完全避免了单点故障对整个网络环境的影响,从而提高了网络的安全性和稳定性。2双核心拓扑结构内网安全设备部署基础防火墙主要通过包过滤策略来实现对网络流量的控制。防火墙可以是硬件设备,也可以是软件程序,其主要功能是限制对特定IP地址和端口的访问。传统的防火墙(Firewall,FW)主要拦截低层攻击行为,而对应用层的深层攻击行为无能为力。而下一代防火墙(NextGenerationFirewall,NGFW)则增强了对应用层流量的检测和控制能力。防火墙通常被部署在网络的外联出口或区域性出口,以实现对内外流量的安全隔离,其部署方式如图1-3所示。1基础防火墙FW/NGFW内网安全设备部署基础防火墙主要通过包过滤策略来实现对网络流量的控制。防火墙可以是硬件设备,也可以是软件程序,其主要功能是限制对特定IP地址和端口的访问。传统的防火墙(Firewall,FW)主要拦截低层攻击行为,而对应用层的深层攻击行为无能为力。而下一代防火墙(NextGenerationFirewall,NGFW)则增强了对应用层流量的检测和控制能力。防火墙通常被部署在网络的外联出口或区域性出口,以实现对内外流量的安全隔离,其部署方式如图1-3所示。1基础防火墙FW/NGFW内网安全设备部署形象地说,假如防火墙是一幢大楼的门锁,入侵检测系统就是这幢大楼里的监视系统。一旦小偷爬窗进入大楼,或者内部人员有越界行为,监视系统就会及时发出警报。入侵检测系统一般通过镜像模式部署,其部署方式如图1-4所示。2入侵检测系统入侵检测系统依照一定的安全策略,通过软硬件对网络和系统的运行状况进行监视,尽可能发现各种攻击企图、攻击行为或攻击结果,以保证网络和系统资源的机密性、完整性和可用性。内网安全设备部署入侵防御系统作为入侵检测系统的拓展,能够在发现入侵行为时迅速做出反应,自动阻止攻击并采取行动,以保护网络和系统的安全。入侵防御系统通常被串接在主干路上,对内外网异常数据进行监控与阻断,其部署方式如图1-5所示。3入侵防御系统入侵检测系统在发现异常情况后,会及时向网络管理员或防火墙发出警报。然而此时灾害往往已经形成。虽然亡羊补牢,犹未为晚,但是防御机制最好在灾害形成之前先起作用。内网安全设备部署4UTMIDC(InternetDataCenter,互联网数据中心)将防病毒、防火墙和入侵检测等概念融合到被称为“统一威胁管理(UnifiedThreatManagement,UTM)”的新类别中,这一概念引起了业界的广泛重视,并推动了以整合式安全设备为代表的市场细分的诞生。由IDC提出的UTM是指由硬件、软件和网络技术组成的具有专门用途的设备,它主要提供一项或多项安全功能,将多种安全特性集成在一个硬件设备里,构成一个标准的统一威胁管理平台。由于UTM性能要求出众,导致其造价一般比较高,目前一般只有大型企业才会使用。内网安全设备部署4UTM(1)(2)(3)整合所带来的成本降低。信息安全工作强度降低。技术复杂度降低。UTM具有以下优点内网安全设备部署4UTM但UTM不能一劳永逸地解决所有安全问题,它依然存在如下缺点。网关防御的弊端
网关防御在防范外部威胁的时候非常有效,但是在面对内部威胁的时候就无法发挥作用了。资料表明,造成组织信息资产损失的威胁大部分来自组织内部,因此,以网关防御为主的UTM目前尚不是解决安全问题的“万灵药”。性能和稳定性要求高的弊端由于UTM需要处理多种安全功能,因而对其性能和稳定性的要求非常高。在高负载的情况下,UTM可能无法及时处理所有安全任务,从而影响整个网络的安全和运行效率。过度集成所带来的风险
UTM将多种安全特性集成在一个硬件设备里,一旦设备出现故障或被攻击,所有安全防护措施可能同时失效,从而带来更大的安全隐患。内网安全设备部署5堡垒机堡垒机是从跳板机(也叫前置机)的概念演变而来的。早在2000年左右,一些大中型企业为了对运维人员的远程登录进行集中管理,会在机房内部署一台跳板机。跳板机其实就是一台安装了UNIX/Windows操作系统的服务器,所有运维人员都需要先远程登录跳板机,再通过跳板机登录其他服务器进行运维操作。但跳板机并没有实现对运维人员操作行为的控制和审计,在使用跳板机的过程中,还是会出现因误操作、违规操作导致的操作事故,而一旦出现操作事故,很难快速定位事故原因和责任人。此外,跳板机存在严重的安全风险,一旦跳板机系统被攻击,就会将后端资源暴露无遗。同时,对于个别资源(如Telnet),可以通过跳板机来实现一定的内部控制(简称“内控”),而要管控更多更特殊的资源(如FTP、RDP等)则显得力不从心。内网安全设备部署5堡垒机随着人们逐渐认识到跳板机的不足,对更新、更好的安全设备的需求不断增加。这就需要一种能满足角色管理与授权审批、信息资源访问控制、操作记录和审计、系统变更和维护控制要求,并生成一些统计报表配合管理规范来不断提升IT内控的合规性的产品。随着信息安全要求的不断提高,跳板机逐渐发展为具有更多安全控制功能的堡垒机。堡垒机不仅能够对运维人员的登录行为进行集中管理,还能够提供更加细粒度的访问控制和审计功能。2005年前后,堡垒机开始以一个独立的产品形态出现,其部署方式如图1-6所示。堡垒机有效地降低了运维操作风险,使得运维操作管理变得更简单、更安全。内网安全设备部署5堡垒机堡垒机的设计基于“4A”理念,即认证(Authentication)、授权(Authorization)、账户管理(AccountManagement)、审计(Audit)。认证认证是指对用户的真实身份进行验证。(1)授权授权是指在认证通过后,对用户进行权限管理。(2)账户管理账户管理是指对用户账户进行统一管理和控制。(3)审计审计是指记录和监控用户操作。(4)02常见的内网协议和端口PARTTWOSMB协议SMB(ServerMessageBlock,服务器消息块)协议是微软和英特尔在1987年制定的协议,主要作为微软的网络通信协议。SMB协议是工作在会话层、表示层及小部分应用层的协议。SMB协议使用了NetBIOS(NetworkBasicInput/OutputSystem,网络基本输入/输出系统)的应用程序编程接口(ApplicationProgrammingInterface,API),一般使用139、445端口。另外,SMB协议是一个开放性的协议,允许协议扩展,因此其结构复杂,拥有大约65个顶层操作,每个操作都包含超过120个函数,即便是WindowsNT操作系统也未完全支持所有功能。后来,微软将SMB改名为CIFS(CommonInternetFileSystem,通用网络文件系统),并且加入了许多新的特色。Samba与SMB协议之间存在密切的联系。简单来说,SMB协议是一种网络文件共享协议,而Samba是一款能够实现SMB协议的开源软件。Samba服务功能强大,这与其通信基于SMB/CIFS协议有关。SMB协议不仅提供目录和打印机共享,还支持认证、权限设置。早期SMB协议运行于NBT(NetBIOSoverTCP/IP)协议上,使用UDP协议的137、138端口及TCP协议的139端口;后期SMB协议经过开发,可以直接运行于TCP/IP协议上,没有额外的NBT层,使用TCP协议的445端口。SMB协议Samba的工作流程主要分为4个阶段。(1)协议协商。客户端在访问Samba服务器时,首先发送一个SMBnegprot请求数据报,并列出它所支持的所有SMB协议版本。Samba服务器在接收到请求信息后开始响应请求,并列出希望使用的协议版本,之后根据客户端的情况选择最优的SMB协议版本。如果没有可使用的SMB协议版本,则返回oXFFFFH信息,结束通信。(2)建立连接。当SMB协议版本确定后,客户端向Samba服务器发起一个用户或共享的认证,这个过程是通过发送SesssetupX请求数据报实现的。客户端发送一对用户名和密码或一个简单密码到Samba服务器,之后Samba服务器通过发送一个SesssetupX应答数据报来允许或拒绝本次连接。SMB协议(3)访问共享资源。当客户端和Samba服务器完成协议协商和认证后,客户端会发送一个Tcon或SMBTconX请求数据报,并列出它想访问的网络资源名称,而Samba服务器则会发送一个SMBTconX应答数据报来允许或拒绝本次连接。(4)断开连接。连接到相应资源后,客户端就能通过openSMB打开文件,通过readSMB读取文件,通过writeSMB写入文件,通过closeSMB关闭文件。Samba的工作流程主要分为4个阶段。SMB协议(1)nmbd负责进行NetBIOS名称解析,并提供浏览服务,显示网络上的共享资源列表。Samba服务由两个进程组成,分别是nmbd
和smbd。(2)smbd负责管理Samba服务器上的共享目录和打印机,主要针对网络上的共享资源进行管理。当用户需要访问Samba服务器上的共享文件时,依靠smbd
进程来管理数据传输。NetBIOS协议1协议应用在Windows操作系统中,默认情况下,在安装TCP/IP协议后会自动安装NetBIOS协议。例如,在Windows10操作系统中,当选择“自动获得IP”后,会启用DHCP服务器,从该服务器使用NetBIOS设置;如果使用静态IP地址或DHCP服务器不提供NetBIOS设置,则启用TCP/IP上的NetBIOS。具体设置方法为:打开控制面板,单击“网络和Internet”下面的“查看网络状态和任务”链接;在打开的窗口中单击左侧窗格中的“更改适配器设置”链接,打开“网络连接”窗口,其中列出了计算机上的所有网络适配器;用鼠标右键单击要启用NetBIOS协议的网络适配器,在弹出的快捷菜单中选择“属性”命令,在打开的窗口中找到并双击“Internet协议版本4(TCP/IPv4)”选项;在打开的窗口中单击“高级”按钮,打开“高级“TCP/IP”设置”对话框,切换到“WINS”选项卡,在“NetBIOS设置”选项区域中就可以进行相应的NetBIOS设置,如图1-7所示。在日常使用中,就是利用NetBIOS协议实现使用计算机名在网络中通信的。NetBIOS协议1协议应用在Windows操作系统中,默认情况下,在安装TCP/IP协议后会自动安装NetBIOS协议。例如,在Windows10操作系统中,当选择“自动获得IP”后,会启用DHCP服务器,从该服务器使用NetBIOS设置;如果使用静态IP地址或DHCP服务器不提供NetBIOS设置,则启用TCP/IP上的NetBIOS。具体设置方法为:打开控制面板,单击“网络和Internet”下面的“查看网络状态和任务”链接;在打开的窗口中单击左侧窗格中的“更改适配器设置”链接,打开“网络连接”窗口,其中列出了计算机上的所有网络适配器;用鼠标右键单击要启用NetBIOS协议的网络适配器,在弹出的快捷菜单中选择“属性”命令,在打开的窗口中找到并双击“Internet协议版本4(TCP/IPv4)”选项;在打开的窗口中单击“高级”按钮,打开“高级“TCP/IP”设置”对话框,切换到“WINS”选项卡,在“NetBIOS设置”选项区域中就可以进行相应的NetBIOS设置,如图1-7所示。在日常使用中,就是利用NetBIOS协议实现使用计算机名在网络中通信的。NetBIOS协议2协议接口NetBIOS是应用程序访问符合NetBIOS规范的传输协议的接口,NetBEUI是该接口的一个扩展版本(1985年由IBM公司开发)。两者的区别和联系如下。(1)NetBIOS最多只能与其他节点建立254个通信会话;而NetBEUI不再有此限制,它允许WindowsNT操作系统中的每个进程都能够与多达254个节点通信。(2)NetBIOS名称中最多可包含15个字符,会话层应用程序通过它与远程计算机进行通信;而NetBEUI则是通过SMB协议来实现逻辑通道中的消息传输的。(3)NetBEUI总是包含在NetBIOS中,NetBIOS可以运行在几种不同的传输协议上,包括NetBEUI、TCP/IP和IPX/SPX,后三者位于网络层驱动接口与传输层驱动接口之间。然而,运行在一种传输协议上的NetBIOS服务不能与运行在另一种传输协议上的NetBIOS服务通信。NetBIOS可以使用以下4种类型的SMB命令。NetBIOS协议3协议解析NetBIOS最初由IBM公司和Sytek公司作为API开发,其功能是使用户软件能够使用局域网资源。自诞生以来,NetBIOS便成为许多其他网络应用程序的基础。从严格意义上讲,NetBIOS是接入网络服务的接口标准。NetBIOS原来是作为THE网络控制器为IBM局域网设计的,是通过特定硬件用来和网络操作系统连接的软件层。NetBIOS经扩展,允许程序使用NetBIOS接口来操作IBM令牌环结构。目前NetBIOS已被公认为工业标准,通常参照Netbios-compatibleLANs。NetBIOS提供给网络程序一套方法,以便相互通信及传输数据。NetBIOS允许程序与网络会话,其目的是将程序与底层硬件属性分离,使软件开发人员无须处理网络错误修复、底层信息寻址和路由等复杂任务。使用NetBIOS接口,软件开发人员可以专注于应用程序的开发,而无须关注底层网络通信的细节。NetBIOS使程序和局域网操作能力之间的接口标准化,从而可以将程序细化到OSI模型的特定层,并使程序能够被移植到其他网络上。在NetBIOS局域网环境下,计算机通过名称被系统识别。网络中的每台计算机都有通过不同方法编写的永久性名称。通过使用NetBIOS的数据报或广播方式,NetBIOS局域网上的计算机建立会话并彼此联络。NetBIOS协议3协议解析在当前环境下,NetBIOS是一种被广泛使用的协议。无论是以太网、令牌环,还是IBMPC网,都支持NetBIOS。在其最初的版本中,NetBIOS仅作为程序和网络适配器之间的接口。随后,NetBIOS中加入了传输类的功能,其功能逐渐增强。NetBIOS支持面向连接的通信(使用TCP协议)和无连接的通信(使用UDP协议),如图1-8所示。它支持广播和复播,提供3种主要服务——会话服务、命名服务和数据报服务。NetBEUI协议NetBEUI(NetBIOSEnhancedUserInterface,NetBIOS增强用户接口)协议是NetBIOS协议的增强版本,曾被许多操作系统所采用,如WindowsforWorkgroup、Windows9x系列、WindowsNT等。NetBEUI是为IBM开发的非路由协议,用于承载NetBIOS通信。NetBEUI协议在许多情形下很有用,是Windows98以前的操作系统默认安装的协议。总之,NetBEUI协议是一种短小精悍、通信效率高的广播型协议,安装后不需要进行额外设置,特别适合在局域网中传输数据。因此,建议除了安装TCP/IP协议,局域网中的计算机最好同时安装NetBEUI协议。NetBEUI协议缺乏路由和网络层寻址功能,这既是其最大的优点,也是其最大的缺点。因为它不需要附加的网络地址和网络层头尾,所以通信速度快且效率高,但适用于只有单个网络或整个环境都桥接起来的小工作组环境。IPX/SPX协议组合1IPX协议IPX(InternetworkPacketExchange,网间数据包交换)协议是NovellNetWare自带的底层网络协议,主要用来控制局域网内或局域网之间数据包的寻址和路由。IPX协议只负责数据包在局域网中的传输,并不保证消息的完整性,也不提供纠错服务。在局域网中传输数据包时,如果接收节点在同一网段内,那么IPX协议会直接根据该节点的ID将数据包传输给接收节点;如果接收节点不在同一网段内,则先通过IPX协议将数据包交给NetWare服务器,再继续传输。网络管理员可以使用相应的IPX路由命令来管理路由,例如,使用routingipxadd/setstaticroute命令在IPX路由表中添加或配置静态IPX路由,使用routingipxsetglobal命令配置全局IPX路由。IPX/SPX协议组合2SPX协议SPX(SequencesPacketExchange,顺序包交换)协议基于施乐公司的XeroxSPP(SequencesPacketProtocol,顺序包协议),同样是由Novell公司开发的一种用于局域网的网络协议。在局域网中,SPX协议主要负责对传输的所有数据进行无差错处理,即纠错。SPX协议通常与IPX协议结合使用,构成IPX/SPX协议组合,广泛应用于NetWare网络环境及联网游戏中。IPX/SPX协议组合提供了局域网中可靠的数据传输服务,其中,IPX协议负责数据包的寻址和路由,SPX协议负责确保数据传输的可靠性和完整性。WinRM服务Windows远程管理(WinRM)是WindowsServer2003R2以上版本中一种新式的、方便远程管理的服务。WinRM是远程管理应用的“服务器”组成部分,并且WinRS(Windows远程Shell)是WinRM的“客户端”,它在远程管理WinRM服务器的计算机上运行。然而,我们应该注意到,两台计算机不仅要手动安装WinRS,还要使WinRM能够启动并从远程系统传回信息。WinRM基于Web服务管理(WS-Management)标准。也就是说,WinRM使用HTTP协议(80/5895端口),并且使用SOAP(SimpleObjectAccessProtocol,简单对象访问协议)消息格式进行通信。这样做的好处在于,HTTP请求能够非常容易地穿过防火墙进行收发。但这样做使通过Internet管理远程WindowsPC更为容易,或者说给Internet上存心不良的远程Windows攻击者提供了攻击机会。WinRM使用HTTP协议的其他好处在于,如果HTTP入站通信被允许,就没有其他端口必须在服务器和客户端上被开放。内网常用端口在内网渗透中,了解目标系统上的开放端口及其对应的服务或协议是至关重要的。端口是网络服务监听和接收数据的逻辑接口,每个端口都被分配一个数字,用于区分不同的服务或协议。以下是一些内网常用端口及其对应的服务或协议。端口21:FTP(FileTransferProtocol,文件传输协议),用于文件传输。端口22:SSH(SecureShell,安全外壳),用于安全远程登录和其他安全网络服务。端口23:Telnet,用于非安全的文本通信。端口25:SMTP(SimpleMailTransferProtocol,简单邮件传输协议),用于发送电子邮件。端口53:DNS(DomainNameSystem,域名系统),用于将域名转换为IP地址。端口80:HTTP(HyperTextTransferProtocol,超文本传输协议),用于Web服务传输未加密的网页。内网常用端口在内网渗透中,了解目标系统上的开放端口及其对应的服务或协议是至关重要的。端口是网络服务监听和接收数据的逻辑接口,每个端口都被分配一个数字,用于区分不同的服务或协议。以下是一些内网常用端口及其对应的服务或协议。端口110:POP3(PostOfficeProtocol3,邮局协议版本3),用于接收电子邮件。端口135:RPC(RemoteProcedureCall,远程过程调用),在Windows环境中用于客户端与服务器之间的通信。端口139/445:SMB,用于提供Windows网络文件和打印共享。端口443:HTTPS(HyperTextTransferProtocolSecure,超文本传输安全协议),用于Web服务传输加密的网页。端口3389:RDP(RemoteDesktopProtocol,远程桌面协议),用于Windows远程桌面连接。谢谢观看第2章隧道技术内网渗透攻防技术01隧道技术概述PARTONE隧道技术的概念和作用网络通信是现代社会基础设施的重要组成部分,其安全性至关重要。在通常情况下,网络通信要求两台机器先建立TCP连接,然后才能进行数据交换。如果知道IP地址,则可以直接发送报文;如果不知道IP地址,则需要将域名解析为IP地址。然而,在实际网络环境中,通常会遇到如边界设备、软/硬件防火墙、入侵检测系统等安全防护设备。这些设备会严格监控对外连接,一旦发现异常,便会立即阻断通信。这些设备对数据包的内容检查极为严格,导致恶意数据很难突破这种网络环境下的封锁。然而,各类协议在网络通信中是不可或缺的组成部分,很难被完全禁用。因此,可以通过协议进行伪装,隐藏特征,从而绕过安全检查,实现隐蔽通信。隧道技术应运而生,为绕过上述安全检查提供了一种有效的解决方案。简单来说,隧道是一种能够绕过端口屏蔽的通信方式。它通过将防火墙两端的数据包封装成防火墙所允许的数据包类型或端口,从而成功穿过防火墙。被封装的数据包到达目的地后首先被还原,然后将其发送到相应的服务器,从而实现与对方的隐蔽通信。隧道技术的类型1网络层隧道技术网络层隧道主要包括IPv6隧道、ICMP(InternetControlMessageProtocol,互联网控制报文协议)隧道、GRE(GenericRoutingEncapsulation,通用路由封装)隧道等。IPv6隧道将IPv6数据包封装在IPv4数据包中,从而实现IPv4和IPv6之间的互通。ICMP隧道利用ICMP的消息进行数据传输。由于ICMP主要用于网络诊断,因此不容易被防火墙拦截。GRE隧道是一种通用的隧道技术,可以封装多种网络层协议,绕过端口屏蔽,实现隐蔽通信。隧道技术的类型2传输层隧道技术传输层隧道主要包括TCP隧道、UDP隧道等。TCP隧道首先建立稳定的连接,然后在此连接中进行数据传输。而UDP隧道则没有建立连接的过程,可以直接进行数据传输。由于TCP隧道和UDP隧道都在传输层封装数据包,因此这两种隧道技术都可以有效地隐藏数据内容,从而绕过安全检查,实现隐蔽通信。隧道技术的类型3应用层隧道技术应用层隧道主要包括SSH隧道、HTTP隧道、HTTPS隧道等。SSH隧道可以提供一个加密的通道,保证数据的安全传输。HTTP隧道和HTTPS隧道则利用Web浏览器常用的HTTP协议进行数据传输。由于HTTP和HTTPS是网络中十分常见的协议,因此这两种隧道技术难以被检测和拦截。另外,HTTPS隧道基于TLS/SSL加密协议实现,不仅可以实现隐蔽通信,还可以提供额外的加密安全保障。02端口转发技术PARTTWO端口转发的原理端口转发是网络通信的基础技术之一,它允许数据从一个端口被转发到另一个端口,无论这两个端口是否在同一台主机上。通过端口转发,可以实现网络请求的重定向和数据流的控制,为网络安全和网络服务的可达性提供了基础。下面详细解释端口转发的原理和实现机制。端口转发的核心是数据包的重定向。当数据包到达一个指定的端口时,端口转发规则会将数据包重定向到另一个指定的端口。这种重定向可以发生在同一台主机上,也可以跨越网络,将数据包重定向到另一台主机上的端口。端口转发通常需要在源端口上设置一个监听服务,该服务会捕获到达该端口的所有数据包。一旦捕获到数据包,监听服务就会根据预先设定的端口转发规则,将数据包转发到目标端口。在目标端口上可以有一个服务等待这些数据包,以便进行处理。如前文所述,端口转发是面向NAT技术的一种应用。NAT技术可以在修改传输中的IP地址和端口信息的同时,通过端口转发功能实现端口级别的数据重定向。这种功能允许将外网的请求精准地重定向到内网的特定服务,从而在暴露网络服务的同时提供一定程度的安全保护。端口转发的原理端口转发规则的设定是实现端口转发的关键。网络管理员需要根据网络环境和安全需求,设定合适的端口转发规则。这些规则会指明哪些数据包应该被转发,以及应该被转发到哪个端口。端口转发规则的设定可以是静态的,也可以是动态的,以适应不同的网络环境和安全需求。端口转发可以用于搭建安全的通信隧道,绕过网络监控和防火墙。通过端口转发,可以将敏感的网络通信隐藏在正常的网络流量中,从而增加了网络攻击的难度。同时,端口转发也可能被恶意使用,比如用于创建反弹Shell,允许攻击者通过网络防火墙与受害者机器通信。在实际网络环境中,端口转发有很多实用的案例。例如,可以通过端口转发将HTTP请求从标准的80端口重定向到其他端口,以绕过网络过滤。又如,在网络服务暂时不可用时,可以通过端口转发将用户的请求重定向到备用的服务,从而保证服务的连续可用性。Socat端口转发Socat是一个强大的多功能网络工具,可以实现端口转发、网络桥接和代理等多种网络相关功能,是网络安全领域常用的工具之一。使用Socat端口转发的核心原理在于将数据从源端口重定向到目标端口。它可以创建一个监听指定端口的服务,并将从该端口接收到的所有数据转发到另一个指定的端口。由于可以在本机或网络之间进行数据转发,使得Socat成为一个极其灵活且功能强大的网络工具,能在不同的网络环境和配置中实现端口转发。Socat端口转发具有以下特点。(1)端口监听与数据转发。Socat可以在一个指定的端口上设置监听,当数据到达该端口时,Socat会将数据转发到另一个指定的端口。这个转发过程可以在本地主机上完成,也可以跨越网络完成。(2)数据重定向。Socat不仅可以进行基本的端口转发,还可以实现更复杂的数据重定向,包括TCP、UDP、SSL等多种协议的转发和桥接。(3)双向数据通信。Socat支持双向数据通信,可以同时处理输入和输出的数据,非常适合创建复杂的网络隧道和代理服务。Netcat端口转发Netcat通常被称为网络的“瑞士军刀”,是一个功能强大且灵活的网络工具,能够实现端口扫描、端口监听、数据传输等多种网络相关功能。在网络安全领域,Netcat常被用于创建网络连接和实现端口转发。其简单而直接的操作方式让它成为渗透测试人员和网络管理员的常用工具。Netcat端口转发基于TCP/UDP协议,能够在两个网络节点之间创建一个数据通道。通过Netcat,可以将一个端口接收到的数据转发到另一个端口,无论这两个端口是否在同一台主机上。Netcat可以监听指定的端口,并将接收到的数据转发到目标端口,从而实现数据的重定向和端口转发。Netcat的配置和操作简单、直接,通过命令行参数设定源端口和目标端口的信息即可。例如,可以使用如下命令将本地1234端口上的数据转发到远程主机上的5678端口。Netcat端口转发在上述命令中,-l表示让Netcat在本地端口上创建一个监听服务;-p用于指定本地端口号;“|”是管道符,用于将第一个Netcat命令接收到的数据传输给第二个Netcat命令。使用Netcat与使用Socat进行端口转发十分相似。在内网实际渗透场景中,使用Netcat端口转发有以下作用。绕过网络过滤和防火墙规则。通过Netcat端口转发,可以将受限或被过滤的数据转发到不受限制的端口,从而绕过网络过滤和防火墙规则。
实现内网穿透。Netcat可以建立反向连接,使外部网络能够访问内网服务,从而实现内网穿透。网络服务的暴露或保护。通过Netcat端口转发,可以在不更改网络配置和防火墙规则的情况下,暴露或保护网络服务。Netcat端口转发下面的案例将展示如何使用Netcat实现简单的端口转发。假设有一个内网环境,其中主机1(IP地址为5)的用户需要访问主机2(IP地址为4)上的8080端口,但是该端口被防火墙保护着,不允许外界机器访问。目前用户只能访问主机2上的9000端口,因而需要9000端口进行转发。目标:主机1通过访问主机2上的9000端口,与主机2上的8080端口通信。通过Netcat实现端口转发的具体操作如下。(1)在主机2上开启8080端口,命令如下。(2)在主机2上实现9000端口转发,命令如下。(3)在主机1上连接主机2上的9000端口,命令如下。Netcat端口转发此时,主机1的用户即可通过9000端口访问主机2上的8080端口,如图2-2所示。可以看到主机1成功与主机2上的8080端口通信,但实际上连接的是主机2上的9000端口。SSH端口转发本地端口转发允许将数据从本地主机上的一个端口转发到远程主机上的另一个端口。当需要通过SSH访问位于防火墙后面或只能在远程主机上访问的服务时,本地端口转发非常有用。通过本地端口转发,可以在本地主机上创建一个监听指定端口的SSH隧道,将该端口上的数据转发到远程主机上的指定端口,这样就可以通过本地主机上的该端口与远程主机上的服务通信,如图2-3所示。1本地端口转发SSH端口转发远程端口转发允许将数据从远程主机上的一个端口转发到本地主机上的另一个端口。当需要将远程主机上的某个服务映射到本地主机,或者需要远程主机网络中的其他计算机访问本地主机上的服务时,远程端口转发非常有用。通过远程端口转发,可以在远程主机上创建一个监听指定端口的SSH隧道,将该端口上的数据转发到本地主机上的指定端口。2远程端口转发这样,远程主机上的数据就可以通过SSH隧道被传输到本地主机上的指定端口,从而实现对服务的访问,如图2-4所示。需要注意的是,图2-4中的访问请求在主机B一侧发生,而SSH连接的方向没有改变,仍然是从主机A到主机B。由此可以得知,端口转发的类型主要取决于SSH连接建立的方向。SSH端口转发动态端口转发也被称为SSH动态代理。与本地端口转发和远程端口转发只能对一个端口进行转发不同,动态端口转发可以创建一个动态代理隧道,将数据从本地主机上的多个端口转发到远程主机。通过动态端口转发,可以在本地主机上创建一个监听指定端口的SSH隧道,将本地主机上的数据通过SSH隧道转发到远程主机,之后由远程主机发送到最终的目标地址。动态端口转发通常用于代理服务器或通过中间节点访问特定网络资源。3动态端口转发LCX端口转发LCX是一个广泛应用的端口转发工具,能够将数据从一个端口重定向到另一个端口,同时提供了一座桥梁,使得两个网络实体能够相互通信。LCX端口转发是网络渗透测试中常见的技术,尤其是在内网渗透测试中具有重要的应用价值。与SSH端口转发不同,LCX不依赖于SSH协议,而是基于TCP/UDP协议来实现端口转发的。LCX端口转发的工作原理相对简单,其中包括3个基本组件:监听器(Listener)、发送器(Sender)和接收器(Receiver)。监听器被部署在攻击者的机器上,用于接收从内网中的发送器转发过来的数据。发送器被部署在被攻击网络内的机器上,用于捕获目标端口上的数据,并将其转发到外网中的监听器。接收器则被部署在与发送器同一网络内的另一台机器上,用于接收从外网中的监听器转发过来的数据,并将其发送到目标端口。LCX端口转发通过LCX,攻击者能够将内网中的端口数据转发到外网,从而实现对内网环境的控制和数据的获取。使用LCX进行端口转发的过程如下。(1)在攻击者的机器上部署监听器,用于接收从内网中的发送器转发过来的数据,命令如下。(2)在被攻击网络内的机器上部署发送器,用于捕获目标端口上的数据,并将其转发到外网中的监听器,命令如下。(3)如果需要,则可以在与发送器同一网络内的另一台机器上部署接收器,用于接收从外网中的监听器转发过来的数据,并将其发送到目标端口,命令如下。03代理技术PARTTHREE代理的原理在内网渗透测试中,代理技术主要应用于数据转发和隐藏真实IP地址。通过代理服务器,攻击者可以隐藏自身的真实IP地址,使得目标网络的防火墙和入侵检测系统难以追踪到攻击的来源。同时,代理服务器可以对数据进行过滤和修改,为渗透测试提供了更多的可能性。代理技术的核心是代理服务器。代理服务器接收来自客户端的请求,解析请求内容,并将请求转发到目标服务器。在接收到目标服务器的响应后,代理服务器会将响应数据返回给客户端。在整个过程中,客户端和目标服务器之间的通信都是通过代理服务器来完成的,从而实现了对数据的控制和管理。代理技术的实现通常依赖于专用的代理软件或硬件设备,如Squid、Nginx等。通过配置代理服务器,可以实现对数据的过滤、缓存和转发,从而满足不同的网络环境和安全需求。代理的原理代理技术的应用非常广泛,包括但不限于以下几个方面。网络匿名
通过代理服务器隐藏真实IP地址,保护用户的隐私。网络监控
通过代理服务器监控数据,检测和预防网络攻击。内容过滤
代理服务器可以根据预设的规则对数据进行过滤,阻止恶意流量的传输。负载均衡通过反向代理实现数据的负载均衡,提高网络服务的可用性和性能。正向代理和反向代理1正向代理正向代理服务器位于客户端和目标服务器之间,客户端直接连接到正向代理服务器,并请求正向代理服务器代替其向目标服务器发送请求。正向代理的主要作用是为内网提供一个出口,帮助内网用户访问外网,同时可以提供缓存服务和访问控制,以及隐藏内网结构。正向代理结构示意图如图2-8所示。在正向代理的场景中,代理服务器知道客户端的身份,而目标服务器不知道。所有请求都会先被发送到代理服务器,再由代理服务器转发到目标服务器。正向代理的一个典型应用是在企业和教育网络环境中过滤和监控用户的请求。正向代理和反向代理2反向代理反向代理服务器同样位于客户端和目标服务器之间,客户端直接连接到反向代理服务器,但不知道其背后的目标服务器。反向代理服务器接收客户端的请求,代替客户端将请求转发到目标服务器,并将目标服务器的响应返回给客户端。反向代理结构示意图如图2-9所示。反向代理的主要作用是为内网服务器提供一个统一的接口,隐藏和保护内网结构,以及分发数据,实现负载均衡和高可用。在反向代理的场景中,目标服务器知道代理服务器的身份,但不知道客户端的身份。正向代理和反向代理2反向代理正向代理和反向代理的区别在于代理服务的对象和目的不同。正向代理主要服务于内网用户,帮助他们访问外网资源,目的是突破网络限制和保护用户隐私。而反向代理主要服务于内网服务器,保护其免受直接访问,目的是隐藏内网结构、分担负载和提高可用性。在内网渗透攻防实战中,正向代理往往受限于内网服务器上的防火墙屏蔽和权限不足等情况,而反向代理则可以很好地突破这些限制。反向代理通过代理服务器接收和处理客户端的请求,有效避免了内网服务器直接暴露于外网,使得渗透测试人员能够更灵活地进行攻击和防御策略的实施。SOCKS5代理SOCKS5代理是网络安全领域非常重要的代理技术之一,被广泛应用于内网渗透测试和数据传输场景。SOCKS5代理是一种传输层代理,能够处理更多的网络协议,包括TCP和UDP,并提供了一定程度的身份验证功能。其核心价值在于能够为客户端和服务器提供一个中间层,使数据能够通过代理服务器传输,从而实现对数据的转发和控制。在这个过程中,代理服务器充当了中间人的角色,负责转发客户端与目标服务器之间的请求和响应。这样,客户端就能够通过代理服务器访问到原本无法直接访问的网络资源,并且能够保护客户端的真实IP地址不被目标服务器识别。SOCKS5代理SOCKS5代理的工作原理相对简单明了。以下是SOCKS5代理建立连接的详细步骤。(1)验证阶段。在建立连接时,SOCKS5代理支持无须验证、用户名/密码验证和GSS-API验证3种验证方式。客户端和代理服务器会协商选择一种验证方式。完成验证后,代理服务器会向客户端返回验证结果。(2)请求阶段。客户端向代理服务器发送代理请求,其中包括目标服务器的IP地址和端口信息。代理服务器接收到请求后,解析目标服务器的IP地址和端口信息,并尝试与目标服务器建立连接。(3)数据转发阶段。一旦与目标服务器成功建立连接,代理服务器就会成为客户端和目标服务器之间数据传输的中介,负责在客户端和目标服务器之间转发数据。SOCKS5代理SOCKS5代理在内网穿透中的应用如下。(1)代理链。在复杂的内网环境中,可能需要通过多层代理来实现请求转发。SOCKS5代理支持代理链功能,可以将多个SOCKS5代理服务器连接在一起,构成一个代理链,从而实现更复杂的请求转发。(2)隧道穿透。利用SOCKS5代理的隧道穿透功能,攻击者能够将内网中的请求转发到外网,突破防火墙的限制,实现对内网资源的访问和控制。SOCKS5代理技术为内网渗透测试提供了强大的支持,使攻击者能够轻松地控制和管理数据,实现对目标网络的深度渗透。通过合理地配置和使用SOCKS5代理,能够有效地提高内网渗透测试的效率和成功率。SOCKS5代理我们构建一个实验环境,其中包括外网(VMnet8)和内网(VMnet1)。为了模拟真实的场景,内网中的路由器配置了IP安全策略,将外网的IP访问阻断。在这样的配置下,外网主机无法直接ping通内网主机。案例网络设置如图2-10所示。SOCKS5代理此时,外网中的攻击机无法直接访问内网中的Windows服务器1,如图2-11所示。FRPFRP(FastReverseProxy,快速反向代理)使用Go语言开发,是一种强大的、用于内网穿透的高性能的反向代理应用,被广泛应用于网络安全领域和内网渗透测试场景。FRP支持TCP、UDP、KCP、HTTP、HTTPS等协议,并且支持Web服务根据域名进行路由转发,从而将内网中的服务暴露到外网。因此,攻击者可以使用FRP搭建隧道,绕过防火墙或NAT限制,实现对内网资源的远程访问和控制。FRP主要由FRP客户端和FRP服务器端两部分组成。FRP客户端被部署在内网环境中,而FRP服务器端则被部署在外网环境中。通过FRP,内网中的服务可以被安全地暴露到外网,而无须修改内网防火墙或NAT设置。在FRP的工作流程中,FRP客户端会与FRP服务器端建立一个网络连接。一旦连接建立,内网中的服务就可以通过这个连接被暴露到外网,外网用户就可以通过访问FRP服务器端来访问内网中的服务。FRP在内网渗透过程中,有的内网设备没有暴露可连接的端口,如22、3389等端口,外网用户无法直接访问。然而,如果这台内网设备存在漏洞,可上传任意文件,攻击者就可以利用FRP对内网设备进行连接。下面通过一个简单的案例来演示FRP配置。假设在前期的渗透过程中已经获得了一台位于内网的、通过NAT方式对外提供服务的主机的权限,现在需要对其所在的内网继续进行渗透,这就需要通过FRP搭建一个隧道,让攻击机可以通过隧道访问内网资源,如图2-14所示。04隧道技术应用PARTFOURICMP隧道ICMP(InternetControlMessageProtocol,互联网控制报文协议)隧道是一种通过ICMP进行数据传输的隧道技术。ICMP通常用于网络设备之间的诊断和错误报告,如ping命令就是基于ICMP的。由于ICMP在网络中被广泛允许,因此,利用ICMP隧道可以在防火墙或网络安全设备允许ICMP流量通过的情况下进行数据传输,实现隐蔽通信。ICMP隧道通过将数据封装在ICMP回显请求包和回显应答包中进行传输。客户端将数据封装在ICMP回显请求包中发送到服务器,服务器解封装数据后进行处理,并将响应数据再次封装在ICMP回显应答包中返回给客户端。常见的ICMP隧道工具包括pingtunnel、icmpsend、icmptunnel等,这些工具可以帮助渗透测试人员在网络中搭建ICMP隧道,实现数据传输。ICMP隧道ICMP隧道具有以下特点。(1)穿透性好。由于ICMP报文通常被防火墙允许通过,因此ICMP隧道可以在一些防火墙限制比较严格的网络环境中使用。(2)协议获得广泛支持。ICMP是网络层的协议之一,几乎所有操作系统和网络设备都支持该协议。(3)隐蔽性较差。在一些网络环境中,ICMP报文可能会被监控和过滤,因而隐蔽性较差。pingtunnel是一种把TCP/UDP/SOCKS5流量伪装成ICMP流量进行转发的工具。假设内网跳板服务器为服务器端,IP地址为0;外网攻击机为客户端,IP地址为23。可以通过以下3条命令搭建ICMP隧道,使用正向SOCKS5的转发形式实现。HTTP隧道HTTP隧道是一种通过HTTP进行数据传输的隧道技术。HTTP是互联网中十分常见的协议之一,几乎所有防火墙都允许HTTP流量通过。因此,利用HTTP隧道可以在防火墙或网络安全设备允许HTTP流量通过的情况下进行数据传输,实现隐蔽通信。HTTP隧道通过将数据封装在HTTP请求包和响应包中进行传输。客户端将数据封装在HTTP请求包中发送到服务器,服务器解封装数据后进行处理,并将响应数据再次封装在HTTP响应包中返回给客户端。通过这种方式,数据可以在客户端和服务器之间进行隐蔽传输。HTTP隧道常用于绕过防火墙和入侵检测系统,在防火墙允许HTTP流量通过但阻止其他协议的情况下进行数据传输。此外,HTTP隧道还可以用于在受限的网络环境(如企业或学校网络)中进行隐蔽通信。Neo-reGeorg是一种被广泛应用的HTTP正向隧道工具,它是reGeorg工具的升级版,拥有更多强大的特性,如内容加密、防止被检测、请求头和响应码的定制及对Python3的支持等。HTTP隧道Neo-reGeorg主要依赖于Python3环境。在安装Neo-reGeorg之前,需要先确认系统中是否已经安装了Python3,如果没有,则需要先行安装。在安装Neo-reGeorg的过程中,可能会遇到缺少某些Python库的情况,这时可以先使用pip命令安装这些Python库,再进行Neo-reGeorg本体的安装,如图2-16所示。1安装Neo-reGeorgHTTP隧道2设置密码并生成隧道文件在使用Neo-reGeorg之前,需要先设置密码并生成隧道文件,如图2-17所示。密码用于保护隧道的安全,防止未经授权的访问。可以使用如下命令设置密码。隧道文件是搭建和使用隧道的基础,需要被准确地配置和生成。HTTP隧道3上传隧道文件首先需要获取WebShell或CobaltStrike,然后将tunnel.php文件上传到服务器,并确保该文件能被正常执行且不报错,如图2-18所示。HTTP隧道3上传隧道文件首先需要获取WebShell或CobaltStrike,然后将tunnel.php文件上传到服务器,并确保该文件能被正常执行且不报错,如图2-18所示。HTTP隧道4建立本地代理在本地,需要建立一个SOCKS5代理,如图2-19所示。可以在Neo-reGeorg的安装路径下执行如下命令。其中,-k表示密码,-u表示服务器上tunnel.php文件的URL(UniformResourceLocator,统一资源定位符),-p表示指定的端口。如果省略参数-p,则默认端口是1080。HTTP隧道5建立全局代理可以使用Proxifier工具建立全局代理。首先配置代理服务器,如图2-20所示。选择IP地址和SOCKS5代理,在弹出的对话框中启用验证并输入密码。HTTP隧道5建立全局代理然后设置代理规则,如图2-21所示。可以选择特定的IP地址段,如192.168.52.*;也可以选择任意端口和任意IP地址;还可以设置代理本地的特定应用,如mstsc.exe等。HTTP隧道6测试代理设置完成后,可以通过访问特定网站或资源来测试代理是否生效,并确认是否能够成功转发请求和接收响应。在代理生效前,直接尝试连接内网主机,确认无法连接,如图2-22所示。HTTP隧道6测试代理在代理生效后,可以成功连接内网主机,如图2-23所示。DNS隧道DNS隧道是一种利用域名系统(DNS)协议进行数据传输的隧道技术。DNS协议通常用于将域名解析为IP地址,但由于DNS流量在网络中广泛允许且不易被检测,因此,渗透测试人员可以利用这一特点,通过DNS隧道实现数据的隐蔽传输和通信。DNS隧道通过将数据封装在DNS查询请求包和响应包中进行传输。具体来说,客户端首先将数据编码并嵌入DNS查询请求包的域名部分,然后发送到DNS服务器;DNS服务器接收到DNS查询请求包后,解码数据并进行处理,随后将响应数据编码到DNS响应包中返回给客户端。整个过程利用了DNS流量的普遍性,使数据传输得以隐蔽进行。DNS隧道常用于在受限的网络环境中进行数据传输,尤其是在防火墙或入侵检测系统阻止其他协议而允许DNS流量通过的情况下。渗透测试人员可以利用DNS隧道绕过网络安全设备,实现与外部服务器的通信。此外,DNS隧道还可用于数据泄露,通过隐蔽的DNS请求将敏感数据传输到外部服务器。dnscat2是一款开源的DNS隧道工具,可以使用DNS协议搭建加密通信隧道。它支持多种DNS查询类型(如TXT、MX、CNAME、A、AAAA),并允许多个会话同时进行,类似于SSH隧道。dnscat2的客户端有Windows版和Linux版,服务器端是用Ruby语言编写的。严格来说,dnscat2是一个命令与控制工具。谢谢观看第3章Windows认证协议内网渗透攻防技术01NTLM认证PARTONE协商就是客户端向服务器端发送TYPE1(协商)消息,主要包含客户端支持和服务器端请求的功能列表。图3-2展示了协商阶段发送消息的格式。1格式一:协商质询是NTLM认证流程中Challenge/Response机制的核心阶段。在这一阶段中,服务器向客户端发送一个随机生成的Challenge。客户端随后将使用Challenge和其掌握的密码生成一个加密的随机值,并将其发送回服务器。图3-3展示了质询阶段发送消息的格式。2格式二:质询身份验证主要是在质询完成后验证结果,是认证的最后一步。消息中的Response最为关键,用于向服务器端证明客户端已经掌握了正确的密码。图3-4展示了身份验证阶段发送消息的格式。3格式三:身份验证在NTLMv1中使用LMHash和NTLM-hash来进行验证,而后续推出的v2版本成为WindowsVista及后续版本操作系统中的默认认证协议。两者加密的原料都是NTLM-hash,不同之处在于,NTLMv1中的Challenge有8字节数值,主要加密算法为DES;而NTLMv2中的Challenge有16字节数值,主要加密算法为HMAC-MD5。图3-5展示了NTLMv2认证流程。3格式三:身份验证LMHash(1)(2)(3)(4)将密码转换为大写格式。如果密码长度不足14字节,则将会用\0在后面补全,最终得到长度为14字节的密码字符串。将填充后的密码字符串分成两个7字节的块,并分别对每个密码块使用DES加密算法进行加密。两个7字节的密码块被分别用作DES密钥,对固定的字符串“KGS!@#$%”进行DES加密。每个密码块进行DES加密后的输出结果都是8字节数值,将两个DES加密结果拼接在一起,得到最终的LMHash。计算方式LMHashLMHash算法有以下缺陷。(1)密码不区分大小写。LMHash将密码强制转换为大写格式,降低了密码的复杂度。(2)LMHash最多支持14个字符的密码,超过部分会被忽略。(3)如果密码长度小于7字节,那么第二个分组加密后的结果肯定是aad3b435b51404ee。(4)14个字符的密码被分成两个7字节的部分,并分别加密,这使得每部分可以被单独暴力破解,极大地降低了破解难度。(5)DES密码强度较低。DES是一种较早的加密算法,密钥长度较短(56位),很容易被暴力破解。NTLM-hash基于LMHash存在的问题,微软于1993年引入了NTLM-hash。个人版从WindowsVista开始,服务器版从WindowsServer2003开始,Windows操作系统的认证方式均变更为NTLM-hash。NTLM-hash的计算方式如下。(1)将密码转换为十六进制格式。(2)对十六进制格式的密码进行Unicode编码。(3)使用MD4摘要算法对Unicode编码数据进行哈希计算。02Kerberos认证PARTTWOKerberos认证介绍Kerberos是一种网络认证协议,它的名字来源于希腊神话中一只守护着冥界、长着3只头颅的神犬。在Kerberos认证中,Kerberos的3只头颅代表认证过程中涉及的三方:Client(客户端)、Server(服务器)和KDC(KeyDistributionCenter,密钥分发中心)。Kerberos从提出到今天,共经历了5个版本的发展。其中,第一版到第三版主要在麻省理工学院(MIT)内部使用。当发展到第四版的时候,Kerberos已经获得了MIT校外的广泛认同和应用。随着第四版的传播,人们逐渐发现了Kerberos的一些局限性和安全困境,如适用网络环境有限、加密过程存在冗余等。MIT充分吸取了各方意见,对第四版进行了修改和扩充,形成了今天较为完善的第五版。第五版由JohnKohl和CliffordNeuman设计,1993年作为RFC1510颁布,2005年由RFC4120取代,目的在于克服第四版的局限性和安全困境,用更细化和明确的解释说明了Kerberos协议的一些细节和使用方法。Kerberos协议的基本应用是在一个分布式的Client/Server体系结构中,采用一台或多台Kerberos服务器提供鉴别服务。当客户端想要请求服务器上的资源时,首先由客户端向密钥分发中心请求一张身份证明,然后将身份证明交给服务器进行验证,在通过服务器的验证后,服务器就会为客户端分配其请求的资源。Kerberos认证流程Kerberos认证流程1第一阶段:ASExchange某个客户端用户Client试图访问域内的某个服务,于是输入用户名和密码,此时客户端本机的Kerberos服务会向KDC的AS发送一个AS_REQ认证请求。请求的凭据是Client的哈希值NTLM-hash、加密的时间戳及Client-info、Server-info等数据,以及一些其他信息。当Client发送身份信息给AS后,AS会先向AD发送请求,询问是否有此用户。如果有,就会取出它的NTLM-hash来对AS_REQ进行解密。如果解密成功,则证明客户端提供的密码正确。如果解密后得到的时间戳与当前时间差在5分钟之内,则认证成功。然后AS会生成一个AS_REP。AS_REP中包含两部分内容。一部分是AS生成的临时密钥Session-keyAS,使用Client的NTLM-hash加密,用于确保Client和KDC之间的通信安全。另一部分是TGT,内容包括使用特定账户krbtgt(创建域控时自动生成的账户)的NTLM-hash加密的Session-keyAS、时间戳及一些用户信息,这个用户信息就是PAC(PrivilegeAttributeCertificate,特权属性证书),PAC中包含用户的SID(SecurityIdentifier,安全标识符)和用户所在的组等信息。Kerberos认证流程1第一阶段:ASExchangeKerberos认证流程2第二阶段:TGSExchangeClient接收到AS的回复AS_REP后,分别获得了TGT和加密的Session-keyAS。它会先用自己的ClientNTLM-hash解密得到原始的Session-keyAS,然后在本地缓存此TGT和原始的Session-keyAS,当需要访问某个服务时,就可以构成TGS_REQ提交给TGS,以此来得到对应的ST。在这个过程中发送的TGS_REQ中包含使用Session-keyAS加密的时间戳及Client-info、Server-info等数据,以及使用krbtgt账户的NTLM-hash加密的TGT。TGS接收到TGS_REQ后,先用krbtgt账户的NTLM-hash解密TGT得到Session-keyAS、时间戳、Client-info及Server-info,再用Session-keyAS解密第一部分内容得到Client-info、时间戳,接着将两次获取的时间戳进行比较,如果时间戳跟当前时间相差太久,就需要重新认证。TGS还会将这个Client的信息与TGT中Client的信息进行比较,如果两者相同,则会继续判断Client有没有权限访问Server。如果都没有问题,则表示认证成功。认证成功后,TGS会生成一个Session-keyTGS,并用Session-keyAS加密Session-keyTGS作为响应的一部分。此Session-keyTGS用于确保客户端和服务器之间的通信安全。Kerberos认证流程2第二阶段:TGSExchange响应的另一部分是使用Server的NTLM-hash加密Session-keyTGS、时间戳、Client-info等数据生成的ST。最后TGS将这两部分信息返回给Client,即TGS_REP。至此,Client和KDC之间的通信就结束了,之后是和Server之间的通信。Kerberos认证流程3第三阶段:C/S(Client/Server)Exchange该阶段是Client和TGS的认证,通过认证的客户端将与服务器建立连接。Client接收到TGS_REP后,分别获得了ST和加密的Session-keyTGS。它会先使用本地缓存的Session-keyAS解密出原始的Session-keyTGS,然后在本地缓存此ST和原始的Session-keyTGS。当Client需要访问某台服务器上的服务时,会向Server发送请求。它会使用Session-keyTGS加密Client-info、时间戳等数据作为请求的一部分。因为ST是使用ServerNTLM-hash进行加密的,Client无法解密,所以Client会将ST作为请求的另一部分继续发送给Server。这两部分构成的请求被称为AP_REQ。Kerberos认证流程3第三阶段:C/S(Client/Server)ExchangeServer接收到AP_REQ后,先用自身的ServerNTLM-hash解密ST得到Session-keyTGS,再解密出Client-info、时间戳等数据,接着与ST的Client-info、时间戳等数据一一进行对比。时间戳的有效时间一般为8小时。通过Client身份验证后,Server会拿着PAC去询问DC(DomainController,域控制器)该用户是否有访问权限。DC拿到PAC后,先进行解密,再通过PAC中的SID判断用户所在的组、用户权限等信息,并将结果返回给Server,Server将此信息域用户请求的服务资源的ACL(AccessControlList,访问控制列表)进行对比,最终决定是否给用户提供相关的服务。通过认证后,Server将返回最终的AP-REP,并与Client成功通信。03PACPARTTHREE在Kerberos最初的设计中,其主要目标是解决如何证明Client是Client的问题,即确保通信的一方并非被其他人冒充。然而,在早期的设计中,Kerberos并未涉及对Client是否具备访问特定Server服务权限的验证。在这种情况下,即便Client成功完成了身份验证,依旧无法有效区分其访问服务的权限。为了在域内实现更加精细的权限控制,确保不同权限的用户只能访问符合其身份的资源,微软在其Kerberos协议的实现中引入了PAC的概念。PAC的引入使得Kerberos协议不仅能验证身份,还能验证权限。PAC的核心功能是提供一段描述用户权限、身份属性和组信息的校验数据。可以将PAC理解为一串加密的结构化数据,其中包含了用户的SID、组成员信息及其他权限属性。PAC的存在使得认证过程不再单单是对身份的验证,而是同时完成对权限的确认,这在域环境中显得尤为重要。为了防止PAC数据被伪造或篡改,PAC通常被存储在Kerberos票据中,并由KDC通过其主密钥进行加密和签名保护,从而确保数据的完整性与可信性。PAC的生成和验证过程贯穿于Kerberos认证流程中。在客户端通过AS请求获取TGT时,KDC会在生成的TGT中嵌入PAC。这个PAC中包含两部分重要的数字签名:PAC_SERVER_CHECKSUM和PAC_PRIVSVR_CHECKSUM。前者由Server的NTLM-hash加密,用于校验Server的合法性;而后者则由krbtgt账户的NTLM-hash加密,用于确保PAC的完整性。PAC数据和TGT一起被AS_REP消息传递到客户端,客户端在后续的认证请求中将携带这些数据。PAC的具体作用在TGS和Server处理阶段得以体现。当客户端向TGS请求特定服务的访问票据时,KDC会首先验证PAC的完整性和真实性。只有在PAC验证通过后,KDC才会在生成的ST中嵌入一个新的PAC,并将其返回给客户端。客户端随后将ST发送给目标Server。Server接收到票据后,通过验证ST中的PAC来确认客户端的权限信息,并将其与目标资源的ACL进行匹配,最终决定是否授予客户端访问权限。PAC的存在简化了Server对权限的处理逻辑。在没有PAC的情况下,Server需要单独向DC查询客户端的权限信息,而PAC的引入使得权限数据能够随Kerberos票据一同传递,从而显著提升了认证效率。此外,PAC数据的加密和签名保护也确保了权限信息的安全性,防止攻击者通过篡改PAC来获得未授权的访问权限。在PAC的实现过程中,KDC的角色尤为重要。作为权限数据的生成者和验证者,KDC在AS阶段和TGS阶段都需要对PAC进行严格的签名和验证。特别是在TGS阶段,KDC会先解密ST中的PAC,验证其完整性,再根据具体的服务请求生成一个新的PAC返回客户端。这一过程确保了每一阶段的PAC都是动态生成的,能够适配不同服务对权限的要求。值得注意的是,PAC中的权限信息不仅限于用户的身份和组信息,还可以包括用户在特定上下文中的额外权限数据。例如,某些PAC实现可能会包含用户的会话信息、登录时间等,这些信息可以被Server用来制定更加细致的访问控制策略。通过PAC提供的这些附加数据,域环境中的资源访问能够更加灵活地适应不同的安全需求。PAC在Kerberos中的作用不仅体现在权限验证上,还对整体的域安全性和管理效率产生了深远的影响。通过将身份验证和权限验证集成到同一认证流程中,PAC减少了重复查询权限数据的开销,为域内大规模用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年度安全运维销售协议书
- 2026福建稀土资源产业集群数字化转型路径下供应链管理平台搭建应用市场调研规划分析报告
- 2026瑞士西班牙服装行业市场供需分析及投资评估规划分析研究报告
- 2026年货物运输合同范本
- 贸易公司进出口流程管理方案
- 东蒲城小学一年级数学加减法练习题
- 医疗机构设备管理岗位职责说明
- 初中英语词汇记忆方法及训练方案
- 新冠疫情校园出入管理实施方案
- 旅游团合同管理与风险控制
- 2026年党建基础考试题及答案
- 预制构件裂缝修补施工工艺流程
- 2026桂林市教师招聘笔试题及答案
- 2026年湖北十堰市中考英语试卷及答案
- 重庆市2026届高三学业质量调研抽测(高考二模)英语试卷
- 2026年4月全国二卷高考预测模拟数学试卷01
- 2026年辽宁沈阳市-中考模拟试卷英语(含答案)
- 2026年高考政治易错易混点专项梳理
- 2026年历史街区老旧建筑消防改造技术案例
- 2026年天津市公共交通集团控股有限公司校园招聘笔试备考题库及答案解析
- 第7课伟大的历史转折说课课件
评论
0/150
提交评论