在渗透的整个流程中,根据web应用或者开放的端口进行渗透,获取webshell只是渗透这门艺术的一小部分,在真实的错综复杂的企业环境中进行内网渗透,其实水很深,涉及内网穿透,端口转发,域渗透,提权等一系列的难题。所以这篇文章对内网渗透学习进行一些记录。
转发,映射,代理
这几个概念其实是比较难区分的,特别是和后面的内网穿透混在一起,在宏观上说,他们差别不大。但是究其本质还是存在不小的差别的。现在就先对这几个概念说一下我个人的理解:
- 转发: 转发是渗透中一种手段,是将一个网络端口从一个网络节点转发到另一个节点的行为。结果是使一个外网用户经过一个NAT路由器到达在内网IP地址某个端口。有时候也被称为隧道。
- 映射: 映射也是渗透中的一种手段,端口映射就是将外网主机的IP地址的一个端口映射到内网中一台机器,提供相应的服务。其实很多时候转发和映射
- 代理: 代理是一种结果,以端口转发和映射为技术基础。代理在很多场合是用在连接互联网的web服务上面,起到突破ip封锁,隐匿身份等作用。其原理是动态的端口转发。只需要本机和代理间建立一个隧道,然后代理就可以根据本机发起的请求去动态的获取出链的地址与端口。
- 内网穿透: 内网穿透是目的,它使用的手段有包括端口转发和映射,或者直接使用代理这一结果。很多时候我们指的内网穿透场景是指攻击机与靶机处于处于不同的内网中,一些回弹shell之类的手段直接实现,因为IP地址无法相互建立连接。这个时候就需要使用一些内网穿透常见的工具。这些工具也是使用端口转发和映射或类似的方法来突破限制。
工具名称 | 主要用途 | 平台 | 备注 |
---|---|---|---|
lcx | 端口映射 | Windows | 只支持tcp协议的端口转发,非系统内置。linux下叫做可以实现端口转发和端口映射 |
netsh | 端口映射 | Windows | 只支持tcp协议的端口转发,需要安装ipv6 |
rinetd | 反向代理 | Linux | 非内置,需要自行安装 |
Earthworm | 端口映射、Socks5代理 | Linux、Windows、MacOS、Arm-Linux | 非系统内置,可以十分方便的支持多级转发 |
frp | 高性能的反向代理应用 | go | 基于反向代理,可以十分灵活的进行内网穿透,绕过防火墙 |
reGeorg | Socks5 代理 | 常见脚本语言 | reGeorg利用webshell建立一个socks代理进行内网穿透,服务器必须支持aspx、php、jsp、js等web语言 |
Metasploit portfwd | 端口映射 | MSF -> Metpreter会话 | 需要网络状况较好 |
socat | 端口映射 | Linux | 可能需要安装 |
Metasploit->socks4a | 反向代理 | MSF -> Metpreter会话 | 需要会话主机有外网代理IP |
tunna | HTTP隧道 |