目录
一. 内外网互联技术
1. 端口映射(NAT技术):
端口映射(NAT,网络地址转换)技术允许将内网机器的端口映射到外网IP地址的某个端口上,这样外网用户就可以通过访问这个外网IP地址和端口来访问内网中的特定服务。NAT技术包括静态NAT、动态NAT和端口NAT(PAT)等类型。
2. VPN(虚拟专用网络):
VPN通过加密技术在公共网络上建立一个虚拟的私有网络,使内网用户能够安全地访问外网资源,就像在同一个局域网内一样。VPN协议包括PPTP、L2TP、OpenVPN等。
3. 代理服务器:
在内网中搭建代理服务器,将内网用户的请求转发到外网,并从外网获取响应后返回给内网用户。这样,内网用户就可以通过代理服务器间接访问外网资源。常用的代理服务器软件有Squid、Nginx、Apache等。
4. 远程桌面协议(RDP)或远程Shell
- 远程桌面协议(RDP):主要用于Windows系统,允许用户远程访问和控制另一台计算机。通过配置RDP服务,外部用户可以通过互联网安全地访问内网中的服务器或计算机。
- 远程Shell(如SSH):在Linux和Unix系统中常用,SSH(Secure Shell))提供了一种加密的网络协议,用于远程登录和命令执行。通过SSH,用户可以安全地访问内网服务器,执行命令或传输文件。
5. 反向代理服务器
反向代理服务器位于内网和外网之间,负责将外部的请求转发到内网服务器上处理。这种方式不仅可以实现内外网的互联,还可以提高内网服务器的安全性和访问效率。
6. DirectAccess(直接访问)
DirectAccess是Windows Server提供的一种远程访问技术,允许远程用户直接连接到企业内网,无需使用VPN客户端或连接到特定的网络位置。DirectAccess使用IPv6和过渡技术(如Teredo或6to4)来穿越NAT和防火墙,提供无缝的远程访问体验。
7. 软件定义网络(SDN)
SDN是一种新兴的网络架构,它将网络控制平面与数据转发平面分离,实现了网络资源的集中管理和灵活配置。通过SDN,企业可以更容易地实现内外网的互联,并根据业务需求动态调整网络策略。
8. API网关
API网关是微服务架构中常用的组件,它位于客户端和服务器之间,负责处理所有的API请求。通过API网关,企业可以实现内外网服务的统一管理和访问控制,同时提供负载均衡、安全认证等功能。
二. 环境安装
1. JAVA
主要用的是java8,但遇到了需要高版本的情况,因此又装了个java17,切换版本时编辑环境变量即可。
java8安装情况:
java17安装情况:
系统环境变量配置情况:
两个版本我都安装在D:\env\Java\路径下,需要切换版本时更改JAVA_HOME为对应的变量即可。
此外,还要配置PATH变量:
这里遇到一个小坑:由于之前安装老版本java时配置过一次PATH,现在卸载了老版本后,新装java8时,自动在最上面添加了C:\Program Files (x86)\Common Files\Oracle\Java\java8path,导致手动配置的%JAVA_HOME%\bin和%JAVA_HOME%\jre\bin无效了,版本一直都是java8。所以要把这两条移到上面去,或者直接删掉自动添加的那条。同理,安装java17时也要再修改一下PATH变量。
Tips:
Windows 系统在查找可执行文件时,会按照
PATH
变量中目录的顺序进行搜索,并使用它找到的第一个匹配项。
2. Python
安装情况:
三. pikachu
1.环境搭建
使用phpstudy2018搭建环境。为了避免可能的端口冲突,web服务器端口我配置成了8081:
把pikachu放到WWW目录里,修改pikachu\inc目录下的config.inc.php,根据自己的mysql环境修改用户名密码等(我这里用户名是root,密码是123456):
然后访问install.php进行安装:
之后就可以用浏览器正常访问网站了:
2. 暴力破解:基于表单的暴力破解
要求:使用proxy、Intruder、Repater三种模式复现,Proxy模块需要直接修改请求包,并拦截返回包进行截图,Intruder需要使用狙击手、交叉和集束炸弹三种形式复现。
2.1 proxy模式
先admin+12345登录并用BP抓包:
在proxy模块直接修改密码为54321,然后拦截返回包:
一直放包直到拦截到对应的响应包,可以直接修改,放行后的响应就会返回到浏览器:
2.2 Intruder模式
抓包并送到Intruder:
(1)狙击手
在password处设置payload:设置一个简单的payload集:
攻击完成以后,排序包长度,发现登陆成功,成功爆破出admin的密码123456:
(2)交叉
在username和password处都设置payload:
payload集1中添加6个用户名:
payload集2中添加6个密码:
该攻击模式会同时遍历组合两个payload集,因此一共请求6次。爆破并排序包长度,得到admin的密码为123456:
(3)集束炸弹
同样在username和password处都设置payload:
使用和交叉攻击模式同样的payload集。该攻击模式会依次遍历两个payload集并做组合,因此一共请求36次:
爆破并排序包长度,得到admin的密码为123456:
2.3 Repeater模式
抓包并送到Repater:
Repeater模式中,可以任意修改并多次投放请求包:
将请求包中admin的密码改为123456后发送,响应包显示成功登录: