作者:V0WKeep3r\链接:http://v0w.top/2020/08/11/Int...0x00前言本文从渗透的角度总结了几种常用的内网渗透和内网代理工具,介绍其简单原理和用法。0x01nps-npc1.1简介nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可以支持任意tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面、内网dns解析等...),还支持内网http代理、内网socks5代理、p2p等,并拥有强大的web管理终端。一台公网IP的服务器(VPS)运行服务器(NPS)一台或多台运行于内网的服务器或一台PC运行客户端(NPC)1.2特点Go语言编程支持跨平台支持多种协议的代理web管理terminal1.3如何使用https://github.com/ehang-io/n...NPS安装配置找到你服务器对应版本的服务器:cd~wgethttps://github.com/cnlh/nps/releases/download/v0.23.2/linux_amd64_server.tar.gztarxzvflinux_amd64_server.tar.gzcd~/npsnps目录下会有一个nps可执行文件,conf配置目录和网页目录,我们只需要修改conf/nps.conf:vimconf/nps.conf需要修改#web下的几个参数,web_host=服务器IP或域名web_username=admin(登录用户名)web_password=你的密码web_port=8080(web管理端口)修改#bridge即可被改变的NPC的连接端口。比如我们拿到一个限制权限的服务器,有防火墙,可能只有部分端口(80、443)可以出网,所以我们需要修改才能出网。##bridgebridge_type=tcpbridge_port=443#修改连接端口bridge_ip=0.0.0.0start#Mac/Linux./npstest|start|stop|restart|status测试配置文件|start|stop|restart|status#Windowsnps.exe测试|start|stop|restart|status测试配置文件|start|stop|restart|statusNPC./npc-server=你的IP:8024-vkey=唯一验证密码-type=tcp可以看到,详细的客户端连接命令:web管理端可以在客户端界面以一种新的方式添加客户端连接,每个连接的vkey是唯一区分的。每个客户端在建立连接后,可以建立多条不同协议的隧道,每条隧道都是不同的代理。代理的内网机器可以通过不同的协议和端口连接。0x02frp2.1简介frp是一款专注于内网穿透的高性能反向代理应用,支持TCP、UDP、HTTP、HTTPS等协议。通过具有公网IP的节点中转,可以将内网业务安全便捷的暴露在公网中。2.2特点客户端与服务器端的通信支持TCP、KCP、Websocket等多种协议。端口复用,多个服务通过同一个服务器端口暴露。跨平台,但是支持的插件种类比nps少了一点,提供了很多功能11...1。通过rdp访问本机,修改frps.ini文件。为了安全起见,最好在这里配置认证。如果服务端和客户端公共配置中的token参数相同,则认证通过:#frps。ini[common]bind_port=7000#用于身份验证,请自行修改,确保服务端和客户端一致token=abcdefghstartfrps:./frps-c./frps.ini修改frpc.ini文件,假设frps所在服务器的公网IP为x.x.x.x:#frpc.ini[common]server_addr=x.x.x.xserver_port=7000#用于身份验证,请自行修改,并确保服务器和客户端都是一致的token=abcdefgh[rdp]type=tcplocal_ip=127.0.0.1local_port=3389remote_port=6000启动frpc:./frpc-c./frpc.ini通过rdp访问远程机器,地址为:x.x.x.x:6000开机自启动对于Windows系统,为了方便使用,可以在开机时配置静默启动。在frpc.exe同级目录下创建start_frpc.vbs:'start_frpc.vbs'请根据实际情况修改路径CreateObject("WScript.Shell").Run"""D:\ProgramFiles\frp_windows_amd64\frpc.exe"""&"-c"&"""D:\ProgramFiles\frp_windows_amd64\frpc.ini""",0复制start_frpc.vbs文件,打开如下目录,注意将改为您的用户名:C:\Users\\AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup右键单击??并粘贴为快捷方式。\2。通过SSH访问公司内网机器frps的部署步骤同上。启动frpc,配置如下:#frpc.ini[common]server_addr=x.x.x.xserver_port=7000#用于认证,请自行修改,并保证server和client一致token=abcdefgh[ssh]type=tcplocal_ip=127.0.0.1local_port=22remote_port=6000通过SSH访问内网机器,假设用户名为test:ssh-oPort=6000test@x.x.x.x\3。通过自定义域名访问内网部署的Web服务有时候想让别人通过域名访问或者测试我们在本地搭建的web服务,但是由于本机没有公网IP,域名无法访问被解析到本地机器。这个功能可以通过frp来实现。以下示例为http服务,https服务配置方法相同,将vhost_http_port替换为vhost_https_port,并设置type为https。修改frps.ini文件,设置http访问端口为8080:#frps.ini[common]bind_port=7000vhost_http_port=8080#用于认证,请自行修改,并保证服务端和客户端一致token=abcdefgh启动frps:./frps-c./frps.ini修改frpc.ini文件,假设frps所在服务器IP为x.x.x.x,local_port为本机web服务对应的端口,并绑定自定义域名www.yourdomain.com:#frpc.ini[common]server_addr=x.x.x.xserver_port=7000#用于身份验证,请自行修改,确保服务器与客户端一致token=abcdefgh[web]type=httplocal_port=80custom_domains=www.yourdomain.com启动frpc:./frpc-c./frpc.ini将www.yourdomain.com的域名A记录解析为IPx.x.x.x。如果服务器已有对应的域名,也可以将CNAME记录解析为服务器的原域名。通过浏览器访问http://www.yourdomain.com:8080,访问内网机器上的Web服务。\4.对外提供简单的文件访问服务通过static_file插件,可以对外提供简单的基于HTTP的文件访问服务。frps的部署步骤同上。启动frpc,启用static_file插件,配置如下:#frpc.ini[common]server_addr=x.x.x.xserver_port=7000#用于认证,请自行修改,并保证server和client的token一致=abcdefgh[test_static_file]type=tcpremote_port=6000plugin=static_file#对外暴露的文件目录plugin_local_path=/tmp/file#访问将去掉url的前缀,保留内容为文件路径被访问plugin_strip_prefix=staticplugin_http_user=abcplugin_http_passwd=abc通过浏览器访问http://x.x.x.x:6000/static/查看位于/tmp/file目录下的文件,会要求输入已经设置的用户名和密码.2.4常用功能\1.统计面板(Dashboard)通过浏览器查看frp的状态和代理统计的展示。注意:仪表板尚未针对显示大量代理数据进行优化。如果Dashboard访问速度慢,请不要启用此功能。启用该功能需要在frps.ini中指定dashboard服务使用的端口:[common]dashboard_port=7500#dashboard用户名和密码,默认为admindashboard_user=admindashboard_pwd=admin通过http://[server_addr打开浏览器]:7500访问dashboard界面,默认用户名和密码都是admin。2、加密和压缩这两个功能默认是不开启的。需要在frpc.ini中配置,为指定代理启用加密和压缩。压缩算法使用snappy:#frpc.ini[ssh]type=tcplocal_port=22remote_port=6000use_encryption=trueuse_compression=true如果公司内网防火墙已经识别并阻止流量访问外网,比如禁止SSH协议等.,通过设置use_encryption=true,frpc和frps之间的通信内容会被加密传输。有效防止流量被拦截。如果传输的消息长度较长,通过设置use_compression=true对传输内容进行压缩,可以有效减少frpc和frps之间的网络流量,加快流量转发,但会额外消耗一些CPU资源。从v0.25.0版本开始,TLS支持frpc和frps之间通过TLS协议进行加密传输。通过在frpc.ini中common配置tls_enable=true开启该功能,更加安全。对于端口复用,建立TLS连接的frp的第一个字节是0x17。注意:开启此功能后,除xtcp外,其他use_encryption都不需要设置。3、代理限速目前支持在客户端的代理配置中设置代理级限速,限制单个代理可以占用的带宽。#frpc.ini[ssh]type=tcplocal_port=22remote_port=6000bandwidth_limit=1MB在proxy配置中添加bandwidth_limit字段开启该功能,目前只支持MB和KB单位。4.范围端口映射可以在frpc配置文件中指定映射多个端口,目前只支持tcp和udp类型。这个功能是通过range:段落标签来实现的。客户端会解析这个标签中的配置,拆分成多个代理。每个代理都以数字作为后缀命名。例如映射本地6000-6005、6007这6个端口,主要配置如下:#frpc.ini[range:test_tcp]type=tcplocal_ip=127.0.0.1local_port=6000-6006,6007remote_port=6000-6006,6007实际连接成功之后会创建8个代理,分别命名为test_tcp_0、test_tcp_1...test_tcp_7。0x03ew3.1简介EW是一套便携的网络渗透工具,具有SOCKSv5服务架设和端口转发两大核心功能,可用于复杂的网络环境,完成网络渗透。但是,该工具不再更新。..3.2特点轻量级,C语言编写,可设置多级代理跨平台但只支持Socks5代理端口均为1080,服务均为SOCKSv5代理服务。该工具有6种命令格式(ssocksd、rcsocks、rssocks、lcx_slave、lcx_listen、lcx_tran)。1、转发到SOCKSv5服务器$./ew-sssocksd-l10802反弹SOCKSv5服务器的操作分为两步:a)首先在一台有公网ip的主机A上运行如下命令:$./ew-srcsocks-l1080-e8888b)在目标主机B上启动SOCKSv5服务,并弹跳到公网主机的8888端口。$./ew-srssocks-d1.1.1.1-e8888成功。3、多级级联工具中包含的三个端口转发指令,其参数格式为:$./ew-slcx_listen-l1080-e8888$./ew-slcx_tran-l1080-f2.2.2.3-g9999$./ew-slcx_slave-d1.1.1.1-e8888-f2.2.2.3-g9999通过这些端口转发指令,可以将深层网络中基于TCP的服务转发到根,比如袜子v5。首先提供两个“二级级联”本地SOCKS测试样本:a)lcx_tran$./ew-sssocksd-l9999$./ew-slcx_tran-l1080-f127.0.0.1-g9999b)lcx_listen和的用法lcx_slave$./ew-slcx_listen-l1080-e8888$./ew-sssocksd-l9999$./ew-slcx_slave-d127.0.0.1-e8888-f127.0.0.1-g9999提供了一个“三级级联》本地SOCKS测试用例参考$./ew-srcsocks-l1080-e8888$./ew-slcx_slave-d127.0.0.1-e8888-f127.0.0.1-g9999$./ew-slcx_listen-l9999-e7777$./ew-srssocks-d127.0.0.1-e7777数据流向:SOCKSv5->1080->8888->9999->7777->rssocks0x04ngrok4.1简介ngrok是一个反向代理。通过在公共端点和本地运行的Web服务器之间建立安全通道,可以将内部主机的服务暴露给外部网络。ngrok可以抓取和分析所有通道的流量,供后期分析和回放,因此ngrok可以轻松辅助服务器程序测试。4.2特点官方维护,一般比较稳定和跨平台,闭源,有流量记录和重发功能4.3使用方法进入ngrok官网(https://ngrok.com/),注册一个ngrok账号,下载ngrok;根据官网代码给出的授权,运行如下授权命令;./ngrokauthtoken1hAotxhmORtzCYvUc3BsxDBPh1H_*********************./ngrokhttp80将本机80端口的http服务暴露到公网,并且将一个公网域名提供。可以通过官网的UI界面查看数据包和流量(但是要付费==,)也可以使用一些命令将内网的文件和其他TCP服务暴露到公网。授权设置文件共享ngrokhttp-auth="user:password"file:///Users/alan/share未授权设置文件共享ngrokhttp"file:///C:\Users\alan\PublicFolder"暴露主机的TCP3389端口到公网ngroktcp3389更多使用方法:https://ngrok.com/docs0xFF参考链接内网渗透内网渗透https://xz.aliyun.com/t/7701开源内网渗透工具frp简单教程https://segmentfault.com/a/11...http://rootkiter.com/EarthWorm/推荐近期文章:1.1,000+Java面试题及答案整理(2021最新版)2.不要在满屏的if/else了,试试策略模式,太爽了!!3.操!Java中xx≠null的新语法是什么?4、SpringBoot2.6正式发布,一大波新特性。.5.《Java开发手册(嵩山版)》最新发布,赶快下载吧!感觉不错,别忘了点赞+转发!