Java环境安装
python环境安装
1.pikachu靶场搭建
1.安装phpstudy
在phystudy官网下载https://www.xp.cn/download.html
2.phpstudy配置
1.点击软件管理,下载需要的软件,我这里用的是mysql5.7.26和apache2.4.39。
2.下载好之后,点击启动。
3.点击到网站-管理-打开网站,出现“站点创建成功”的界面。
4.创建需要的数据库,我这里创建的是pikachu。
2.pikachu下载安装配置
1.pikachu介绍
Pikachu是一个带有漏洞的Web应用系统,在这里包含了常见的web安全漏洞。
2.pikachu下载
https://github.com/zhuifengshaonianhanlu/pikachu
3.pikachu安装配置
1.将下载并解压的pikachu放到phpstudy的www根目录下。
2.打开pikachu的inc文件,打开config.inc.php文件。
3.把数据库连接密码改成之前改的密码,保存即可。
4.在之前打开的网站后面加上pikachu,回车即进入靶场首页。
5.出现下面问题,需要将localhost/pikachu/install.php内容手动初始化。
3.burpsuite抓包pikachu靶场
1.点击proxy模块关闭拦截,使用BP内置浏览器可以访问pikachu。
2.BP拦截数据包过程实现
打开拦截,然后刷新页面,可以发浏览器一直在加载(因为数据包被拦截下来了,没有收到响应包浏览器无法继续)。
4.pikachu第一关弱口令爆破
1.intruder复现
1.在BP内置浏览器中进行登录操作,使用BP抓取登录数据包,先随机尝试登录用户名和密码。
2.右键发送到Intruder
3.以集束炸弹形式爆破,特性如下:
起码要两个参数,
比如pl1:1,2,3
pl2:4,5,6
那么第一次爆破为 1,4
第二次为1,5
以此类推 1,6
2,4
2,5.。。。。。。
将用户和密码处添加为变量进行爆破,选择集束炸弹模式。
点击上侧Payloads,按设置变量的顺序分别设置两个参数的payload,字典可以从网上查找。
设置好后点击右上角start attack开始爆破。
得到爆破结果:
pikachu | 000000 |
admin | 123456 |
test | abc123 |
4.以狙击手形式爆破
作为比较常用的模式,Sniper的作用是对其中选定的参数一个一个依次遍历字典并且替换然后测试。由于上面我们已经得到了几组用户名和密码,我们可以用已知的admin来爆破相应的密码,反之也相同。
发送给intruder
设置Payloads,并开始爆破
5.以交叉形式爆破(变量的字典不能相同)
和集束炸弹相同,抓取登录数据包,发送到intruder。
交叉爆破的特性为:只能添加两个参数,如果只添加一个参数就会报错
添加了两个参数的话 ,要求添加两个payload
pl1:1,2
pl2:3,4
那么第一爆破为 1,3
而二次爆破为2,4
如果两个payload行数不一致的话,取最小值进行测试。所以爆破的次数取两个中最小的为准。
用户 | 密码 |
admin | 123456 |
test | abc123 |
pikachu | 000000 |
2.proxy复现
使用BP抓取登录数据包
点击forward使该数据包通行,可以看到页面出现了用户或者密码不存在的提示,说明账户密码错误。
再次抓取登录数据包,由于我们已知正确的用户名和密码,我们在这里修改正确的数据再点击forward发送。
3.Repater复现
BP抓取登录包将其发送到repater模块,抓包方法同上。
将错误登录密码的包直接发送到服务器查看。
将密码修改为正确密码123456再次发送查看。
5.内外网互联方式
端口映射(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 的场景下使用。