任务一:内外网互联方式
端口映射(NAT技术)
端口映射(NAT,网络地址转换)技术允许将内网机器的端口映射到外网IP地址的某个端口上,这样外网用户就可以通过访问这个外网IP地址和过端口来访问内网中的特定服务。NAT技术包括静态NAT、动态NAT和端口NAT(PAT)等类型。
VPN(虚拟专用网络)
VPN通过加密技术在公共网络上建立一个虚拟的私有网络,使内网用户能够安全地访问外网资源,就像在同一个局域网内一样。VPN协议包括PPTP、L2TP、OpenVPN等。
代理服务器
在内网中搭建代理服务器,将内网用户的请求转发到外网,并从外网获取响应后返回给内网用户。这样,内网用户就可以通过代理服务器间接访问外网资源。常用的代理服务器软件有Squid、Nginx、Apache等。
反向代理(Reverse Proxy)
反向代理服务器位于内网和外网之间,负责将外部的请求转发到内网服务器上处理。它不仅可以实现内外网互联,还能提供负载均衡、缓存、SSL加密等功能。
跳板机(Bastion Host)
跳板机是一台用于连接外部网络和内部网络的服务器。用户先通过跳板机访问内部网络资源,然后再从跳板机连接到目标内网设备。跳板机通常用来加强网络安全,控制对内网资源的访问。
互联网中继服务
通过互联网中继服务(如类似于 TeamViewer、ngrok 的服务),可以实现对内网设备的远程访问。这种服务通常在不需要复杂配置和公网 IP 的场景下使用。
任务二:python和java安装成功截图
任务三:pikachu靶场第一关爆破
1.靶场前置操作
- 配置好靶场环境
- 启动靶场环境(我这里做了端口映射,将靶场映射到了本地83端口)
- 访问本地83端口(页面正常)
- 使用BP配置监听端口(不想搞这个的直接使用BP内置浏览器直接跳到5)
- 使用BP内置浏览器(无需配置监听端口即可抓包)
- 依旧还是proxy模块,在确保左边那个红框是off关闭状态下,点击右侧红框打开BP内置浏览器,在网址栏输入你的pikachu网址进行访问,可以正常显示。
- 点击左侧红框使其变为蓝色即打开拦截,然后刷新页面,可以发现BP拦截到了数据包,且浏览器一直在加载(因为数据包被拦截下来了,没有收到响应包浏览器无法继续)。点击forward即可让该数据包通行,浏览器正常加载,点击drop会将该数据包丢弃,浏览器保持之前的页面不变,丢失此次请求。
- 以上均无问题,即可正常使用靶场和BP,从而进行实验。
2.解决报错问题如下(目前只有两个)
1.连接不到mysql,或者连接mysql出错
先把以前自己安装的mysql删除干净(或者关闭掉,这个不好关闭,直接删最快最方便),在windows中直接输入mysql回车报错如下才是删除干净了
如果不是上图所示报错,而是什么拒绝xxx@localhost本地登录、权限不够、拒绝xxx访问诸如此类,均是没有删除干净。删除干净(不是指进入mysql文件夹,把应用程序删了)
不知道怎么卸载的可以打开windows系统设置->应用->搜索mysql->将下面搜到的所有mysql全部卸载。
然后在小皮面板(也就是phpstudy)中的软件管理,安装一个mysql,然后在首页启动即可。
2.在第一关基于表单的暴力破解输入用户名密码后页面报错
(这里没有截屏报错)
这里可能是因为你的pikachu靶场没有初始化,老师上课演示的过程中,创建数据库连接后就直接可以访问页面,而没有初始化靶场。你需要访问如下路径:你的路径/pikachu/install.php,我这里是做了映射,所以直接加/install.php即可,没有做映射的就需要用你自己的路径。
然后安装此页面所示的初始化进行初始化数据库即可,从而就可以使数据库中有数据,然后在进行后续测试,验证数据库是否初始化完成你可以尝试在第一关基于表单的暴力破解中输入用户名admin,密码123456(来自后续测试所知),若没有报错,且显示了login success如下即可说明初始化数据库成功。
这里不用担心第一关用户密码就这么给你了,因为这个靶场用户共三个,三个都可以登录上,如果你在这里看到了第一个,那恭喜你,最简单的一个被你知道了,你需要继续爆破出另外两个,冲冲冲骚年。
3.pikachu第一关弱口令
前两个复现建立在我先用Inturder爆破出来密码后的情况下进行的测试,不然手动一个一个测试会废。
Proxy复现
- 抓取登录数据包
点击forward使该数据包通行,可以看到页面出现了用户或者密码不存在的提示,说明账户密码错误。 - 再次登录抓取数据包
- 可以看到页面返回了login success
- 使用错误密码和正确密码分别登录,拦截请求包进行对比
-
- 拦截错误登录密码响应包
- 拦截正确密码响应包,拦截方法同上
- 两者都返回html,但是前者渲染后显示用户名或密码不存在,后者显示登录成功
Repater复现
- 抓取登录包将其发送到repater模块,抓包方法同上
- 将错误登录密码的包直接发送到服务器查看返回
- 将密码修改为正确密码123456再次发送查看返回,可以看到登录成功
Intruder复现
- 抓取登录包,方法同上,右键选择发送到Intruder
集束炸弹爆破
- 将用户和密码处添加为变量进行爆破,选择集束炸弹模式
- 点击上侧Payloads,分别设置两个参数的payload
- 设置好后点击右上角start attack开始爆破 爆破结果:
用户 | 密码 |
admin | admin123 |
pikachu | 000000 |
test | adb123 |
狙击手爆破
因为上面已经爆破出了用户名密码,所以我们固定一个正确的用户名或者密码,然后爆破对应的密码或者用户名即可,这里我固定用户名pikachu进行爆破密码
- 同上抓包发送到Intruder模块
- 设置Payloads
- 结果
交叉爆破
- 同上抓包发送到Intruder模块
- 因为交叉爆破模式的特点所以修改了一下字典,让正确的用户名和密码按行配对
- 配置Payloads,注意这里是1和2参数都配置好后才点击的开始爆破,不是只设置了1
- 结果