1. 内外网互联方式
1.1 端口映射(NAT技术):
端口映射(NAT,网络地址转换)技术允许将内网机器的端口映射到外网IP地址的某个端口上,这样外网用户就可以通过访问这个外网IP地址和端口来访问内网中的特定服务。NAT技术包括静态NAT、动态NAT和端口NAT(PAT)等类型。
1.2 VPN(虚拟专用网络):
VPN通过加密技术在公共网络上建立一个虚拟的私有网络,使内网用户能够安全地访问外网资源,就像在同一个局域网内一样。VPN协议包括PPTP、L2TP、0penVPN等。
1.3 代理服务器:
在内网中搭建代理服务器,将内网用户的请求转发到外网,并从外网获取响应后返回给内网用户。这样,内网用户就可以通过代理服务器间接访问外网资源。常用的代理服务器软件有Squid、Nginx、Apache等。
1.4 SD-WAN(软件定义广域网):
SD-WAN(Software-Defined Wide Area Network)是一种新兴的网络技术,它通过软件定义的方式管理和优化内外网之间的连接。SD-WAN的目标是提高网络的灵活性、可靠性和成本效益,同时简化网络管理。随着云计算和物联网技术的发展,SD-WAN的应用越来越广泛,成为企业和组织网络基础设施的重要组成部分。
1.5 DMZ(隔离区):
DMZ 是一种网络架构,将外部网络和内部网络之间的服务器放在一个中间区域(隔离区)中。这些服务器可以同时访问内外网。通过防火墙规则控制外部访问,内网和外网的直接通信被限制,增加了安全性。
2. 环境安装
2.1 Java环境安装:
环境安装教程:Java程序设计入门教程--环境安装:Windows10,JDK安装,Java 环境配置。_win java环境-CSDN博客
本地java环境安装成功截图:
2.2 python环境安装:
环境安装教程:最新Python安装详细教程_python安装教程-CSDN博客
本地python环境安装成功截图:
3. pikachu第一关弱口令爆破:
3.1 准备工作
(1)打开PhpStudy,启动Apache 和 MySQL 套件服务
(2)在Burp Suite的内置浏览器中输入网址:http://127.0.0.1/pikachu/index.php,进行系统安装初始化,点击 “安装/初始化”。
然后基于Burp Suite,使用proxy、Intruder、Repater三种模式复现解决pikachu暴力破解第一关:基于表单的暴力破解。
ps:使用Burp Suite的内置浏览器,无需配置监听端口即可抓包,省事。
(3)设置Burp Suite代理,默认为127.0.0.1,8080端口。
(4)在登录页面按F12,查看网页的源码,在源码中找到了正确的账号和密码。
3.2 Proxy复现
1. 打开拦截,用BP抓取登录数据包。随意输入账号和密码,点击登录,这里输入的账号和密码均为admin。从下图中可以看到,BP成功拦截了数据包,并且可以看到登录的账号及密码。
点击转发,使该数据包通行,可以看到页面提示用户或者密码不存在,说明刚刚登录的账户或密码错误。
2. 再次用BP抓取拦截数据包,直接修改密码为“123456”(这里已经知道正确密码),
点击转发,可以看到页面上显示登陆成功。
3. 用BP分别拦截密码正确及错误的返回包,进行分析对比。
(1)密码正确:
点击右键选择“执行拦截”->"此请求的响应"(没法截图,一截图选项就没了。。。),然后点击转发,看到BP成功拦截密码正确情况下的返回包。
如下图所示,返回了一个html网页,显示登录成功,login success。
(2)密码错误:
同上面的操作,这里在页面中输入错误的账号密码(均为admin),再次用BP进行拦截返回包。
如下图所示,可以看到返回包也是一个html页面,显示登陆失败,username or password is not exists~
3.3 Intruder复现
同样的方法,用BP拦截数据包,单击右键选择“发送到 Intruder”
3.3.1 集束炸弹
选择集束炸弹,先选择用户名,然后点击add;再选择密码,点击add,将用户和密码都添加为变量进行爆破。
1. 点击“有效荷载”(Payloads),先设置第一个参数的payload,也就是用户名。在下面的Simple list中输入可能的用户名(或者直接导入字典)。
2. 继续设置第二个参数的payload,也就是密码。在下面的Simple list中输入可能的密码(或者直接导入字典)。
3. 两个参数的payload都设置好后,点击右上方的“攻击开始”,进行爆破。
4. 查看爆破结果,可以明显看到有一个length不一样的结果。点击下面的响应中的Render,可以看到账号密码正确,登陆成功。
5. 根据上面得到的length长度,找到了其他的正确账号密码。
3.3.2 狙击手
上面利用集束炸弹,已经爆破出了正确的用户名和密码,所以使用狙击手的时候固定一个正确的用户名或者密码,然后爆破对应的密码或者用户名。这里固定用户名为admin,进行密码爆破。
1. 操作同上,用BP进行抓包,单击右键选择“发送到 Intruder”。
2. 攻击类型选择狙击手,对密码进行爆破。选择密码,点击add,将密码添加为变量进行爆破。
3. 点击“有效荷载”(Payloads),设置第一个参数的payload,也就是刚刚add的密码。在下面的Simple list中输入可能的密码(或者直接导入字典)。
ps:这里的有效载荷集只要一个选项,因为狙击手只能狙击一个,也就是我们刚刚选择的密码。
4. 密码参数的payload都设置好后,点击右上方的“攻击开始”,进行爆破。
5. 查看爆破结果,如下图,可以看到,有一个length长度明显不一样的request。查看响应中的Render,可以看到页面上显示登陆成功,login success。
3.3.3 交叉
1. 操作同上,用BP进行抓包,单击右键选择“发送到 Intruder”。
2. 与集束炸弹类似,攻击类型改为“交叉”,将账号和密码都设置为爆破变量。先选择用户名,然后点击add;再选择密码,点击add,将用户和密码都添加为变量进行爆破。
3. 与集束炸弹爆破类似,分别设置两个payload。点击“有效荷载”(Payloads),设置参数的payload(用户名及密码),在下面的Simple list中输入可能的用户名或密码(或者直接导入字典)。
ps:由于交叉爆破的特性,输入的正确的账号密码需要对应起来,否则可能会导致爆破失败。
4. 输入完成后,点击右上角的攻击开始,进行爆破。
5. 查看爆破结果,找出了length不同的request,得到了正确的账号和密码。
3.4 Repater复现
1. 在登陆页面输入账号密码(这里均为admin),用BP抓取数据包。单击右键,发送到Repater(还是没法截图,一截图,右键点击出来的内容就消失了。。)。
在Repater请求界面点击发送,可以在右边的Pretty中看到返回包。
可以在右边的Render中看到返回的页面,提示:username or password is not exists~。
2. 在Repater界面修改请求体中的密码(admin)为正确密码(123456),再次点击发送
在右边响应的Render中可以看到登陆成功,login success