目录
注:环境搭建基于Windows完成。
一、环境搭建
1.1 Python环境搭建
官网下载安装包后按步骤安装即可。
没什么特别要注意的,只是最好不要装在默认C盘,养成良好文件管理习惯。(记住路径,配PyCharm的时候会用到)
1.2 Java环境搭建
JDK 下载路径:Java Downloads | Oracle
同理下载安装(记住安装路径),安装成功后需配置环境变量:右键“此电脑”——“属性”——“高级系统设置”——”环境变量“:
选中系统变量中的“path”,点击编辑:
将自己安装的JDK的bin目录路径添加到path中:
连续点”确定“。环境变量配置成功后即可打开cmd查看java环境是否配置好:
1.3 Phpstudy
学习网络安全经常需要搭建各种各样的Web环境,而Pphstudy(简称“小皮”)可以一键搭建环境,节省下载、配置环境的时间。
小皮下载地址:https://old.xp.cn/download.html
按指引安装即可。安装成功后打开,启动服务。(启动服务过程中,如遇弹窗请求权限务必允许)
浏览器访问环回地址127.0.0.1,显示如下则说明小明已经成功安装。
1.4 Pikachu靶场
“如果你想搞懂一个漏洞,比较好的方法是:你可以自己先制造出这个漏洞,然后再利用它,最后再修复它”。Pikachu是一个带有漏洞的Web应用系统,在这里包含了常见的web安全漏洞。 若你是一个Web渗透测试学习人员且正发愁没有合适的靶场进行练习,那么Pikachu可能正合你意。
-
Pikachu下载
Pikachu靶机的项目地址:http://https://github.com/zhuifengshaonianhanlu/pikachu
有两种下载方法:
(1)若已安装有git,可直接用如下命令克隆项目到本地(对应用户目录):
git clone https://github.com/zhuifengshaonianhanlu/pikachu
(2)也可直接下载项目压缩包(Code—Download ZIP):
By the way,这里提一句两种下载方式的区别:
-
git clone下载:采用git clone的项目包含.git目录,这里面有历史版本信息,相对于拥有了整个项目的结构。
-
下载zip压缩包:优点是简单方便,不需要安装git,对非科班友好,解压即可用;但缺点是它不包含版本历史信息,只是当前分支的最新版本。
如何选择:对普通用户,选择哪种方式都可以,下载ZIP包更为简单;如果想要对开源项目进行复现或者魔改,就最好选择git clone。
-
Pikachu配置
将下载并解压好的Pikachu文件复制到Phpstudy的WWW目录下:
打开Phpstudy,点击一键启动栏中的WIMP(也可以手动启动服务器和Mysql):
由于我本地配有Mysql环境,于是我直接查看其是否可以正常连接(数据库root用户默认密码root,忘了密码的可以试试):
注:为便于在 cmd 任何位置打开 mysql,可以配置环境变量(跟java配环境变量同理),不配也没关系。
修改config.inc.php配置文件,路径如下:
将框内按自己的Mysql用户名—密码修改:
修改后保存退出。使用浏览器访问靶场安装初始化页面Get the pikachu,点击”安装/初始化“:
初始化成功,点击进入首页:
Pikachu靶场搭建成功,可以开始愉快玩耍啦!
1.5 BurpSuite
在52破解发现一个持续更新的版本,汉化版英文版都有,下载链接如下,按教程操作即可:
https://www.52pojie.cn/thread-1544866-1-1.html
这个版本与官方版不冲突。我下载的是BurpSuite v2024.7.3专业版,汉化后使用也不错。
二、Pikachu—基于表单的暴力破解(弱口令爆破)
2.1 Intruder模式
打开Burpsuite抓包,在靶场随便尝试输入个用户名密码提交,并观察回显。
在BS中找到对应记录流:
右键将其send to Intruder:
切换到Intruder:
2.1.1 Clusterbomb形式
选取攻击类型为Clusterbomb,设置payload为用户名和密码字段:
切换到payload选项卡,按我们设置的字段分别设置两个Payload集。
第一个Payload集加载”用户名“字典:
第二个Payload集加载”密码“字典:
考虑到用户名和密码有特殊字符的情况,这里把URL编码字符取消勾选:
按start attack开始爆破,完成后结果按长度排序,发现三个与众不同的,猜想是正确的用户名密码。
验证,均可通过!
2.1.2 Sniper模式
选取攻击类型为Sniper,其默认已知用户名只标注password参数进行爆破。因为我们已经通过集束炸弹模式爆破出了用户名密码,所以我们固定一个正确的用户名或者密码,然后爆破对应的密码或者用户名即可,这里固定用户名admin进行爆破,于是只设置payload为密码字段:
只对payload1进行载入密码字典进行爆破:
得到admin的密码为123456。
2.1.3 Pitchfork模式
选取攻击类型为Pitchfork,设置payload为用户名和密码字段:
构建简单字典:
分别对payload1 payload2载入弱口令字典进行攻击:
payload1载入users_dict.txt。
payload2载入pswd_dict.txt。
点击攻击,攻击完成后将其按长度排序,爆破成功。
通过以上分析,得到三组有效用户名-密码:
admin-123456 | pikachu-000000 | test-abc123 |
验证:均可成功登录。
2.2 Proxy模式
打开拦截,任意输入用户名密码提交,截取包:
因为拦截了所以没有响应:
修改用户名密码后,点击放行:
得到返回包,查看结果,成功登录:
2.3 Repater模式
将之前登录抓到的包发送到Repeater模块:
直接对request的password参数进行正确更改并点击发送,可以在response看到登录成功。
三、内外网互联方式调研
-
NAT(网络地址转换) 网络地址转换(NAT)是最常见的方式之一,通常用于将内网的私有IP地址映射到一个或多个外部公有IP地址上。NAT允许内网设备通过一个公共IP地址访问外部网络,而不需要每个设备都使用唯一的公有IP地址。
-
VPN(虚拟专用网络) VPN是一种常用的方式,通过在公共网络(如互联网)上创建加密的隧道,使内网和外网可以安全互联。VPN可以实现不同网络间的加密通信,通常用于远程办公或分支机构连接到企业内网。
-
代理服务器(Proxy) 代理服务器作为中介,帮助内网设备访问外部网络资源。内网设备的请求会先经过代理服务器,代理服务器再将请求转发到外部网络,并返回结果。常用于隔离和控制内网与外网的通信。
-
电路层代理(Circuit-Level Proxy)
它工作在OSI模型的会话层,通过在客户端和目标服务器之间建立一个虚拟的连接或“电路”,来代理网络通信。
-
Nginx反向代理 Nginx 作为一种高性能的 HTTP 和反向代理服务器,也可以用于内外网的互联。Nginx 的反向代理模式可将外部网络的请求转发到内部服务器,隐藏了内网服务器的实际 IP 地址,保护内网资源不被直接暴露到互联网。
在Web应用中,Nginx 可以作为一个网关,代理来自外部网络的请求,并将其转发到内网的应用服务器,例如通过Nginx代理请求到后台的API服务器。
-
双网卡设备 某些设备配备有两个网络接口(双网卡),一个连接到内网,另一个连接到外网。这种设备可以作为内外网之间的网关,但需要严格的安全策略,以防止未经授权的访问。
-
专线接入 企业或机构可以通过租用专线,将内网与外网或其他内部网络进行连接。专线通常用于高安全性要求的场景,例如金融、政府部门等,确保内外网的稳定和安全通信。
四、思考
今天我顺利地完成了基本环境的安装,并采用多种解法解决了Pikachu的弱口令爆破关卡,明天继续加油!