版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第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
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑幕墙工程防雷接地测试点设置要求制定方法
- 基于TLS实验性能评估方案课程设计
- 《校园便利店培训部工作规范》
- 近代物理发展历程
- 调味品业务员工作总结与计划
- 深基坑支护设计答辩汇报纲要
- 居住小区景观设计规划
- 芒果设计产品介绍
- 设计案例深度解析维度
- 新人见面会新员工
- 2025年甘肃高考物理试题+答案
- 碳四加氢催化剂培训课件
- 皮带胶接培训课件
- 2025统编版初升高语文专项提升:辨析词语语境义(解析版)
- 北京市朝阳区2024-2025学年高一下学期期末质量检测数学试题【含答案解析】
- 学校餐费涨价家长会课件
- DB4401∕T 152-2022 既有建筑幕墙安全检查技术规程
- 2025年辅警招聘考试真题(含答案)
- 2025年北京市高考化学试卷真题(含答案解析)
- 肺结核竞赛试题及答案
- 2025年八年级数学下册反比例函数专项训练100题(含答案)
评论
0/150
提交评论