DVWA测试系统的搭建和主机扫描

声明:本站点及相关页面所提供的教程、代码、插件或工具仅用于合法授权的安全研究、教育演示与自我防护目的。任何未经授权的第三方登录、密码测试、绕过验证或其他形式的暴力破解行为,均可能违反《中华人民共和国网络安全法》及相关刑法条款,由此产生的法律责任与后果由行为人自行承担。若因未遵守适用法规而导致的民事赔偿、行政处罚或刑事责任,本站点及其作者概不负责。使用者继续阅读或下载即视为已充分理解并同意本声明。

所用到的资源:
  • Windows10镜像
  • Kali Linux镜像
  • PhpStudy
  • Zenmap
  • DVWA(Damn Vulnerable Web Application)
具体步骤:

1.首先,准备一台windows10操作系统(作为靶机)和kali的虚拟机(确保能相互通信),并将PhpStudyZenmapDVWA压缩包放入windows虚拟机里(可安装VMware tools将其拖入),如图1,2所示。

图1
图2

2.将PhpStudy,Zenmap和DVWA压缩包解压出来,并安装PhpStudy和Zenmap

PhpStudy安装

双击phpstudy_x64_8.1.1.3.exe,默认安装路径是在C盘下面(可根据实际情况进行修改),点击立即安装,如图3所示

图3

等待安装完成,,安装完成后如图4所示

图4

双击zenmap_v7.95.exe,会弹出窗口,点击I Agree同意此协议,如图5所示

图5

组件这块保持默认即可,点击Next,如图6所示

图6

安装路径保持默认即可(可根据实际情况进行调整),点击Install进行安装,如图7所示

图7

安装过程中会弹出另一个安装窗口,点击I Agree同意协议,如图8所示

图8

选项保持默认(可根据实际调整),点击Install进行安装,如图9所示

图9

点击Next进行下一步安装,然后再点击Finish结束(另一个安装窗口也是类似操作),如图10所示

图10

安装完后桌面会有一个zenmap的快捷方式,如图11所示

图11

3.打开phpStudy,点击软件管理,往下翻找到php5.6.9nts点击安装,如图12所示

图12

4.接下来点击网站,点击管理,更改php版本为php5.6.9nts,并在首页将ApacheFTPMysql服务打开,如图13、14所示

图13
图14

5.更改完后可回到的软件管理将原来的php版本卸载掉,接下来点击网站页面的管理按钮,选择打开根目录,将原来的文件全部删除,并将DVWA文件夹里面的文件拷贝到根目录(默认路径是在C:\phpstudy_pro\WWW)下,如图15所示

图15

6.接下来进行数据库配置,进入config文件夹,里面有个config.inc.php文件,修改里面db_password的参数(根据实际进行修改,可通过phpstudy里数据库页面查看数据库的用户密码),修改完后记得保存。具体内容如图16所示

图16

7.接下来查看主机IP(可快捷键win+R打开运行窗口,输入cmd,在cmd里面输入ipconfig查看本机ip地址),如图17所示,可以看到本机IP为192.168.130.133/24,在浏览器输入ip地址192.168.130.133,可进入到网页,如图18所示

图17
图18

8.可以看到PHP function allow_url_include为 Disabled,接下来打开C:\phpstudy_pro\Extensions\php\php5.6.9nts\php.ini(根据实际路径进行打开),打开之后可按快捷键Ctrl+F搜索关键词allow_url_include吗,之后将它改为On,保存,如图19所示。改完之后可重启相关服务,刷新网页可以看到PHP function allow_url_include为Enabled,如图20

图19
图20

9.点击网页的Create/Reset Database按钮创建数据库,点完以后会自动弹出如图21所示的登录界面,默认的账号和密码为admin,password,点击login进行登录

图21

10.之后打开cmd(win+R打开运行框,输入cmd,回车),进入命令行模式后,修改当前目录为‘C:\phpstudy_pro\Extensions\MySQL5.7.26\bin’,如图22所示。

图22

11.在cmd执行命令:”mysql -u root -p“,之后输入密码“root”(如有更改根据实际情况进行输入)。使用“use mysql”命令,连接mysql数据库,如图23所示

图23

12.执行如下命令,执行结果如图24所示

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
图24

13.执行命令”flush privileges;“,如图25所示

图25

14.执行如下命令查看当前可以访问数据库的用户并进行验证,执行结果如图26所示

SELECT DISTINCT CONCAT('User:''',user,'''@''',host,''';') AS query FROM mysql.user;
图26

15.接下来进行主机扫描,获取局域网内主机的资源信息或者对内网进行子网扫描,打开Zenmap图形化工具,在扫描目标处填写目标主机IP地址,扫描方式如图27所示,默认选择“Intense scan”。扫描完成会生成报告,可发现主机开放80端口、21端口和3306端口,分别对应HTTP服务、FTP服务和MYSQL数据库。

图27

16.启用Namp中的“http-enum”脚本,用于收集Web服务的有用信息。目标选择目标主机的IP地址,在命令框中执行以下命令,执行结果如图28所示,可以看到存在“login.php”(登录授权页面)和“robots.txt”(网络爬虫排除协议)文件

namp --script http-enum 目标主机IP
图28

17.通过Zenmap探测,发现靶机开启了21端口,执行暴力破解FTP账号密码,目标选择目标主机IP,在命令框中执行以下命令,执行结果如图30所示(需要在phpstudy创建ftp,设置用户名及密码都为admin,鉴于Namp自带的“usernames.lst”(不到1KB)和“passwords.lst”(46KB)相对简单,涉及测试的用户名和密码非常简单,如图29所示)(破解的整个过程有可能比较慢,属于正常现象,本人等待了差不多10分钟左右)

namp -p 21 -v --script ftp-brute.nse 目的主机IP
图29
图30

18.通过Zenmap探测,发现测试机开启了3306端口,对应Mysql数据库,选择暴力破解脚本“mysql-brute”。在C:\根目录下创建两个.txt文件,分别是“user.txt”(用户名包含root,admin)和“password.txt”(密码包含root,password)(记得保存),如图31所示

图31

19.在Zenmap选择目标为目标主机IP,在命令框中执行以下命令进行测试,测试结果如图32所示,,可以看到破解的数据库账号密码

namp -p 3306 --script mysql-brute --script-args userdb=C:\\user.txt,passdb=C:\\password.txt 目标主机IP
图32
参考文献
  • [1] 杨文虎.网络安全技术与实训[M].第6版.中国工信出版集团,人民邮电出版社,2025.