渗透测试环境搭建与工具使用-基于PHPstudy构建DVWA网站
实验目的
熟悉PHPstudy集成调试环境的安装与配置,掌握基于PHPstudy构建DVWA网站的方法和流程。
实验环境
操作机:pt-env
(1)操作系统:Windows 7
(2)登录账号密码:操作系统帐号Administrator,密码Sangfor!7890
测试机:Kali2018
(1)操作系统:Kali Linux 2018.4
(2)登录账号密码:操作系统帐号root,密码Sangfor!7890
实验原理
PHPstudy是一个PHP调试环境的程序集成包。该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境。
而DVWA(Damn Vulnerable Web
Application)则是一个用来进行安全脆弱性鉴定的Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助Web开发者更好的理解Web应用安全防范的过程。同时,它也是一款开源的渗透测试漏洞练习平台,基于Apache+MySQL+PHP运行,包含了XSS、SQL注入、文件上传、文件包含、CSRF、暴力破解等各个难度的测试环境。
实验步骤
1.安装“微软常用运行库合集”
在操作机pt-env上,打开桌面文件夹soft,鼠标左键双击“微软常用运行库合集_v2021.02.23.exe”程序,按照提示完成安装。
2.安装PHPstudy 2018
在操作机pt-env上,打开桌面文件夹soft,鼠标左键双击phpstudy2018.exe,运行PHPstudy安装程序:
保持程序默认安装路径(C:\phpStudy)不变:
安装完成后,出现如下PHPstudy面板界面:
说明:首次安装PHPstudy后,如果不小心关闭了PHPstudy面板,可能会出现“双击PHPstudy的桌面图标,无任何反应”的现象。此时,可以鼠标右键单击任务栏,在弹出的菜单中选择“启动任务管理器”:
在任务管理器中找到PHPstudy进程,将其结束:
再次双击PHPstudy的桌面图标,即可正常启动PHPstudy面板。
3.安装DVWA网站资源
(1)在操作机pt-env上,将桌面文件夹soft中的DVWA网站资源包(dvwa文件夹中的全部内容)拷贝到网站根目录(C:\phpStudy\PHPTutorial\WWW)中:
(2)拷贝完成后,将C:\phpStudy\PHPTutorial\WWW\dvwa\config下的config.inc.php.dist文件(DVWA网站的配置文件)名称修改为config.inc.php,并利用记事本程序打开,将config.inc.php文件中MySQL数据库的连接密码由“p@ssw0rd”修改为“root”:
修改完成后,记得保存文件!
(3)启动PHPstudy:
这里建议将PHP切换为5.x.x的版本:
(4)在操作机pt-env上,启动浏览器,输入如下url本地访问DVWA网站:
1 |
|
首次访问时会自动跳转至安装页面(setup.php):
在此页面最下方,点击“Create/Reset Database”按钮,在MySQL中安装dvwa数据库:
安装成功后等待几秒钟,会自动跳转至DVWA网站的认证页面(login.php),输入默认用户名admin、密码password即可成功登录网站。
4.远程登录测试
在测试机Kali2018上启动浏览器:
在浏览器地址栏中输入以下URL远程访问DVWA网站:
1 |
|
如果能够正常访问,会直接跳转至DVWA网站的认证页面(login.php),如图所示:
输入默认用户名admin、密码password即可登录。
远程登录测试成功!
实验至此结束。
实验总结
本次实验,成功实现了基于PHPstudy构建DVWA网站,熟悉了渗透测试目标网站环境的构建过程和方法。
渗透测试环境搭建与工具使用-基于WAMP构建SQLi-Labs网站
实验目的
熟悉WAMP Server集成调试环境的安装与配置,掌握基于WAMP构建SQLi-Labs网站的方法和流程。
实验环境
操作机:pt-env
(1)操作系统:Windows 7
(2)登录账号密码:操作系统帐号Administrator,密码Sangfor!7890
测试机:Kali2018
(1)操作系统:Kali Linux 2018.4
(2)登录账号密码:操作系统帐号root,密码Sangfor!7890
实验原理
WAMP即“Windows+Apache+MySQL+PHP”的简称,它是一个软件堆栈,这意味着在操作系统(Windows)上安装Apache、MySQL和PHP。WAMP源自LAMP(L代表Linux),两者之间的唯一区别是WAMP用于Windows操作系统,而LAMP用于基于Linux操作系统。
而SQLi-Labs(SQL Injection Libraries)是一款学习SQL注入的开源平台(靶场环境),其中包含了60多种不同类型的注入,总体上基于Apache+MYSQL+PHP运行。
实验步骤
1.安装“微软常用运行库合集”
在操作机pt-env上,打开桌面文件夹soft,鼠标左键双击“微软常用运行库合集_v2021.02.23.exe”程序,按照提示完成安装。
2.安装WAMP Server
在操作机pt-env上,打开桌面文件夹soft,鼠标左键双击wampserver3.1.7_x64.exe,运行WAMP Server安装程序:
保持程序默认安装路径(C:\wamp64)不变:
安装完成后,桌面会出现如下图标:
3.启动WAMP Server并开通远程访问权限
(1)在操作机pt-env上,鼠标左键双击桌面WAMP Server图标,此时在桌面右下角的托盘处也会看到WAMP Server图标:
(2)鼠标左键单击托盘处的WAMP Server图标,在菜单中选择“PHP”->“Version”,将PHP程序版本从默认的7.2.4切换成5.6.40:
(3)鼠标左键单击托盘处的WAMP Server图标,在菜单中选择“Apache”->“httpd.conf”,打开httpd.conf文件:
编辑httpd.conf配置文件,将文件中<Directory “${INSTALL_DIR}/www/”>标签下的“Require local”修改成“Require all granted”,并保存:
(4)鼠标左键单击托盘处的WAMP Server图标,在菜单中选择“Apache”->“httpd-vhost.conf”,打开httpd-vhost.conf文件:
编辑httpd-vhost.conf配置文件,将文件中的“Require local”修改成“Require all granted”,并保存:
(5)鼠标左键单击托盘处的WAMP Server图标,在菜单中选择“Restart All Services”,重启WAMP Server:
重启成功之后,托盘处的WAMP Server图标会变成绿色。
经过上述设置,在WAMP Server下的网站将具备远程访问权限。
4.安装SQLi-Labs网站资源
(1)在操作机pt-env上,将桌面文件夹soft中的SQLi-Labs网站资源包(sqli-labs文件夹中的全部内容)拷贝到网站根目录(C:\wamp64\www)中:
(2)拷贝完成后,进入C:\wamp64\www\sqli-labs\sql-connections目录,利用记事本程序打开dbcreds.inc文件,确保文件中MySQL数据库的连接密码为空密码:
(3)在操作机pt-env上启动浏览器,在地址栏中输入如下URL本地访问SQLi-Labs网站:
1 |
|
在网站主页点击“Setup/reset Database for labs”,为网站安装数据库:
出现如下提示时,则表明网站安装、初始化成功!
说明:由于SQLi-Labs网站源代码基于PHP5编写,其中所用到的一些函数(如mysql_connect())在后续版本的PHP(如PHP7)中被弃用,因此此处出现了一段提示声明,但不影响此网站在PHP5环境下的使用。
5.远程登录测试
在测试机Kali2018上启动浏览器:
在浏览器地址栏中输入以下URL远程访问SQLi-Labs网站:
1 |
|
如果能够正常访问,会能看到网站的首页:
任意测试一些关卡,如Less-1:
显示正常!远程登录测试成功!
实验至此结束。
实验总结
本次实验,成功实现了基于WAMP构建SQLi-Labs网站,熟悉了渗透测试目标网站环境的构建过程和方法。
渗透测试环境搭建与工具使用-Nmap配置使用1
实验目的
掌握Nmap的主机发现、端口扫描、版本检测、操作系统侦测等技术的原理及配置使用方法。
实验环境
操作机:Kali2018-TS
(1)操作系统:Kali Linux 2018.4
(2)登录账号密码:操作系统帐号root,密码Sangfor!7890
靶机:B-SQLi-dvwa
(1)操作系统:Windows Server 2003
(2)安装的应用软件:PHPStudy 2013、DVWA漏洞网站环境
(3)登录账号密码:操作系统帐号Administrator,密码Sangfor!7890
实验原理
Nmap是Linux下一款开源免费的网络发现和安全审计工具。它使用原始IP报文来发现网络上有哪些主机,这些主机提供什么服务(应用程序名和版本),服务运行在什么操作系统,它们使用什么类型的报文过滤器/防火墙,以及一些其他功能。
Nmap常用参数:
1 |
|
实验步骤
1.启动靶机Web环境
在靶机B-SQLi-dvwa上,启动phpstudy,启动数据库和Web环境。
2.使用Nmap对靶机进行不同类型的扫描
(1)在操作机Kali2018-TS上点击左侧菜单中的终端图标,启动终端:
(2)使用如下命令,利用Nmap对靶机进行主机存活检测(主机发现):
1 |
|
扫描结果:靶机IP地址在线!
(3)使用如下命令,利用Nmap对靶机进行全端口扫描:
1 |
|
从扫描结果中可以看出,靶机上运行着HTTP、MySQL、远程桌面等服务。
(4)使用如下命令,利用Nmap对靶机进行应用程序版本和操作系统侦测:
1 |
|
从扫描结果中可以看出,靶机上运行的操作系统类型为Windows Server 2003,TCP 80端口运行着Apache httpd 2.4.4,PHP环境的版本为5.3.26。
实验至此结束。
实验总结
本次实验,熟悉了Nmap的主机发现、端口扫描、版本检测、操作系统侦测等功能的配置使用方法。
渗透测试环境搭建与工具使用-Nmap配置使用2
实验目的
理解Nmap常用扫描方式的原理,掌握Nmap发包的简单分析方法。
实验环境
操作机:Kali2018-TS
(1)操作系统:Kali Linux 2018.4
(2)登录账号密码:操作系统帐号root,密码Sangfor!7890
靶机:B-SQLi-dvwa
(1)操作系统:Windows Server 2003
(2)安装的应用软件:PHPStudy 2013、DVWA漏洞网站环境
(3)登录账号密码:操作系统帐号Administrator,密码Sangfor!7890
实验原理
本实验中涉及的Nmap扫描参数:
1 |
|
实验步骤
1.启动靶机Web环境
在靶机B-SQLi-dvwa上,启动phpstudy,启动数据库和Web环境。
2.使用Nmap对靶机进行不同类型的扫描,并使用WireShark进行抓包观察
(1)在操作机Kali2018-TS上点击桌面左上角菜单“Applications”->“09-Sniffing & Spoofing”->“Wireshark”,启动Wireshark:
在Wirshark主界面点击“Start capturing packets”按钮启动抓包:
同时,设置如下网络封包过滤条件:
1 |
|
(2)在操作机Kali2018-TS上点击左侧菜单中的终端图标,启动终端:
(3)使用如下命令,利用Nmap对靶机的80端口进行TCP SYN扫描,并观察Wireshark抓到的网络封包:
1 |
|
扫描结果:
Wireshark抓包结果:
TCP SYN原理分析:
Nmap向目标端口发送TCP SYN报文,如果目标机返回TCP SYN+ACK报文,则说明目标端口处于开放状态,同时Nmap会紧接着向目标机发送TCP RST报文以重置此连接;如果目标机返回TCP RST+ACK报文,则说明目标端口处于关闭状态。
(4)使用如下命令,利用Nmap对靶机的80端口进行TCP connect扫描,并观察Wireshark抓到的网络封包:
1 |
|
扫描结果:
Wireshark抓包结果:
TCP connect原理分析:
Nmap向目标端口发送TCP SYN报文,如果目标机返回TCP
SYN+ACK报文,则说明目标端口处于开放状态,同时Nmap会紧接着向目标机依次发送TCP ACK、TCP
RST+ACK完成三次握手和重置此连接;如果目标机返回TCP RST+ACK报文,则说明目标端口处于关闭状态。
(5)使用如下命令,利用Nmap对靶机的80端口进行TCP ACK扫描,并观察Wireshark抓到的网络封包:
1 |
|
扫描结果:
Wireshark抓包结果:
TCP ACK原理分析:
Nmap向目标端口发送TCP ACK报文,无论目标端口是否处于开放状态,目标机都会返回TCP RST报文。如果Nmap主机能收到此TCP RST报文,则说明目标端口未被防火墙屏蔽。
TCP ACK扫描只能用于确定防火墙是否屏蔽某个端口,可以辅助TCP SYN的方式来判断目标主机防火墙的状况。
实验至此结束。
实验总结
本次实验,利用Wireshark辅助分析了Nmap的TCP SYN、TCP connect和TCP ACK等扫描方式的发包过程,验证了这些扫描方式的原理。
渗透测试环境搭建与工具使用-Burpsuite配置使用1
实验目的
掌握Burpsuite的Proxy模块的用法,熟悉利用Burpsuite拦截、修改和发送HTTP、HTTPS报文的方法和流程。
实验环境
操作机:Kali2018-TS
(1)操作系统:Kali Linux 2018.4
(2)登录账号密码:操作系统帐号root,密码Sangfor!7890
靶机:A-SQLi-Labs
(1)操作系统:CentOS 7
(2)安装的应用软件:Apache、MySQL(MariaDB)、PHP;DVWA、SQLi-Labs、Webug3.0漏洞网站环境
(3)登录账号密码:操作系统帐号root,密码Sangfor!7890
实验原理
BurpSuite(简称Burp)是基于Java开发的Web安全领域的集成工具,被称为信息安全界的瑞士军刀,它包含Proxy、Intruder、Repeater、Decoder、Comparer等多个模块,模块间通过共享相互传递HTTP/HTTPS消息数据包。
其中,核心模块Proxy作为一个在浏览器和目标应用程序之间的中间人,能够拦截、查看、修改在两个方向上的原始HTTP/HTTPS数据流。
实验步骤
第一部分:拦截HTTP报文
1.Firefox浏览器设置
(1)正常访问DVWA网站
在操作机Kali2018-TS上启动Firefox浏览器,输入以下URL访问靶机上的DVWA网站:
1 |
|
(注意大小写)
(2)设置Firefox代理
在Firefox浏览器界面,点击菜单按钮,选择“Preferences”:
在“General”->“Network Proxy”处点击“Settings”按钮:
在此处设置如下图所示的代理参数,并点击“OK”按钮确认:
1 |
|
2.启动Burpsuite并进行代理设置
(1)启动Burpsuite
在操作机Kali2018-TS上启动Burpsuite:
(2)设置Burpsuite的代理服务端口
在Burpsuite软件界面上选择选项卡“Proxy”->“Options”,在Proxy Listeners模块下,将Burpsuite的代理服务端口设置为8090(与前面Firefox浏览器设置的代理端口保持一致)。
(3)开启Burpsuite的代理拦截功能
在Burpsuite软件界面上选择选项卡“Proxy”->“Intercept”,将拦截开关按钮的状态设置为“Intercept is on”。
注意:上述设置完成之后,不要关闭Burpsuite!
3.利用Burpsuite工具拦截、修改和发送HTTP请求包
回到Firefox浏览器显示的DVWA登录验证界面,输入用户名1、密码1,然后点击Login按钮:
此时Burpsuite会拦截到HTTP请求包:
直接在Burpsuite拦截到的报文(POST包)中,将原始的表单内容修改成:
1 |
|
修改完成后,多次点击Forward按钮发送此报文:
回到Firefox浏览器界面,发现已正常登录DVWA网站:
第二部分:拦截HTTPS报文
说明:此部分实验需要在互联网接入环境下进行!
默认情况下,Burpsuite无法对HTTPS报文进行拦截,只有在安装相应的数字证书后方可。
1.设置Firefox浏览器代理参数
方法同上,略。
2.设置Burpsuite代理参数
方法同上,略。
注意设置完成之后,不要关闭Burpsuite!
3.为Firefox浏览器安装数字证书
(1)利用Firefox浏览器访问http://burp或127.0.0.1:8090,点击页面右上侧的“CA Certificate”处下载CA证书(cacert.der)并保存。
(2)在Firefox浏览器上点击右侧菜单按钮,选择“Preferences”:
在“Privacy & Security”->“Certificates”处点击“View Certificates”按钮:
在弹出的“Certificate Manager”对话框中点击“Import”按钮,将刚刚下载的CA证书(cacert.der)导入:
导入成功后,会在证书列表中看到“PortSwigger”的记录:
4.在Firefox浏览器上访问百度网站,观察Burpsuite是否可以拦截到HTTPS报文
(1)在Burpsuite软件界面上选择选项卡“Proxy”->“Intercept”,将拦截开关按钮的状态设置为“Intercept is on”。
(2)重新启动Firefox浏览器,输入以下URL访问百度网站:
1 |
|
此时观察到Burpsuite已经拦截到HTTPS报文:
实验至此结束。
实验总结
本次实验,熟悉了Burpsuite的Proxy模块的用法,实现了利用Burpsuite拦截、修改和发送HTTP、HTTPS报文的过程。
渗透测试环境搭建与工具使用-Burpsuite配置使用2
实验目的
掌握Burpsuite的intruder模块的用法,熟悉利用Burpsuite对HTTP登录凭证进行暴力破解的方法和流程。
实验环境
操作机:Kali2018-TS
(1)操作系统:Kali Linux 2018.4
(2)登录账号密码:操作系统帐号root,密码Sangfor!7890
靶机:A-SQLi-Labs
(1)操作系统:CentOS 7
(2)安装的应用软件:Apache、MySQL(MariaDB)、PHP;DVWA、SQLi-Labs、Webug3.0漏洞网站环境
(3)登录账号密码:操作系统帐号root,密码Sangfor!7890
实验原理
BurpSuite(简称Burp)是基于Java开发的Web安全领域的集成工具,被称为信息安全界的瑞士军刀,它包含Proxy、Intruder、Repeater、Decoder、Comparer等多个模块,模块间通过共享相互传递HTTP/HTTPS消息数据包。
其中,Intruder模块在原始请求数据的基础上,通过修改各种请求参数,以获取不同的请求应答。每一次请求中,Intruder通常会携带一个或多个有效攻击载荷(payload),在不同的位置进行攻击重放,通过应答数据的比对分析来获得需要的特征数据。
实验步骤
本实验的目标是:利用Burpsuite的Intruder模块对DVWA网站(安全级别为High)的“Brute Force”训练关卡的用户名和密码进行暴力破解。
1.访问DVWA网站,进入“Brute Force”训练关卡
(1)正常访问DVWA网站
在操作机Kali2018-TS上启动Firefox浏览器,输入以下URL访问靶机上的DVWA网站:
1 |
|
(注意大小写)
输入用户名admin、密码password登录:
(2)在DVWA网站主页左侧菜单中点击“DVWA Security”,将网站安全级别设置为High:
(3)在DVWA网站主页左侧菜单中点击“Brute Force”,进入Brute Force训练关卡:
2.启动Burpsuite并进行代理设置
(1)启动Burpsuite
在操作机Kali2018-TS上启动Burpsuite:
(2)设置Burpsuite的代理服务端口
在Burpsuite软件界面上选择选项卡“Proxy”->“Options”,在Proxy Listeners模块下,将Burpsuite的代理服务端口设置为8090。
(3)开启Burpsuite的代理拦截功能
在Burpsuite软件界面上选择选项卡“Proxy”->“Intercept”,将拦截开关按钮的状态设置为“Intercept is on”。
注意:上述设置完成之后,不要关闭Burpsuite!
3.Firefox浏览器代理设置
在Firefox浏览器界面,点击菜单按钮,选择“Preferences”:
在“General”->“Network Proxy”处点击“Settings”按钮:
在此处设置如下图所示的代理参数,并点击“OK”按钮确认:
1 |
|
4.利用Burpsuite工具拦截HTTP请求包,并发送至Intruder模块
回到Firefox浏览器显示的DVWA网站“Brute Force”训练关卡界面,输入用户名1、密码1,然后点击Login按钮:
此时Burpsuite会拦截到HTTP请求包:
将此HTTP请求包全部选中,单击鼠标右键,在弹出的菜单中选择“Send to intruder”,将此报文发送至Intruder模块:
5.利用Intruder模块进行暴力破解
(1)进入选项卡“Intruder”->“Positions”,点击右侧的“Clear $”按钮,将默认选中的爆破位置清空:
然后按如下方式指定爆破位置,同时将Attack type设置为“Pitchfork”(草叉模式):
(2)进入选项卡“Intruder”->“Payloads”:
在此选项卡中设置2个payload set(有效载荷集):
i)第一个payload set选择Custom iterator类型:
同时配置3个占位:
第1个占位为用户名的集合:
第2个占位为固定字符串:
第3个占位为密码的集合:
同时,在Payload Encoding处,禁用对=和&进行URL编码:
ii)第二个payload set选择Recursive grep类型:
(3)进入选项卡“Intruder”->“Options”:
i)在Request Engine处将线程数(Numbers of threads)设置为1:
ii)在“Grep-Extract”处设置为递归提取的内容:
注意:选中该token值后,记得复制下来!
iii)在“Redirections”处设置“Follow Redirections”为“always”(总是跟随重定向):
(4)回到选项卡“Intruder”->“Payloads”,在Payload Options处设置初始token值(即为上个步骤中选中和复制的token值):
(5)点击右上方的“Start attack”按钮执行爆破攻击,并观察结果。
通过请求报文的长度或应答报文的内容判断,正确的用户名为admin,密码为password:
实验至此结束。
实验总结
本次实验,熟悉了Burpsuite的Intruder模块的用法,实现了利用Burpsuite对HTTP登录凭证进行暴力破解的过程。
渗透测试环境搭建与工具使用-Metasploit配置使用1
实验目的
熟悉ms12-020漏洞的原理及利用方法,掌握Metasploit的配置使用方法。
实验环境
操作机:Kali2018-TS
(1)操作系统:Kali Linux 2018.4
(2)登录账号密码:操作系统帐号root,密码Sangfor!7890
靶机:B-SQLi-dvwa
(1)操作系统:Windows Server 2003
(2)安装的应用软件:PHPStudy 2013、DVWA漏洞网站环境
(3)登录账号密码:操作系统帐号Administrator,密码Sangfor!7890
实验原理
(1)关于Metasploit
Metasploit是一个强大的开源平台,可以用来开发、测试和使用恶意代码,同时为渗透测试、shellcode编写和漏洞研究提供了一个可靠平台。
(2)关于ms12-020(Windows远程桌面协议RDP远程代码执行漏洞)
微软安全公告KB2671387:远程桌面中的漏洞可能允许远程执行代码
1 |
|
此安全更新可解决远程桌面协议中两个秘密报告的漏洞。如果攻击者向受影响的系统发送一系列特制RDP数据包,则这些漏洞中较严重的漏洞可能允许远程执行代码。默认情况下,任何Windows操作系统都未启用远程桌面协议(RDP),没有启用RDP的系统不受威胁。
实验步骤
1.启动Metasploit
(1)在操作机Kali2018-TS上点击左侧菜单中的终端图标,启动终端:
(2)在终端使用如下命令,启动Metasploit终端(提示符msf>):
1 |
|
2.检测靶机是否存在ms12-020漏洞
(1)在Metasploit终端下输入以下命令查找ms12-020相关的模块:
1 |
|
搜索的结果中,第一项为ms12-020漏洞利用模块,第二项为ms12-020漏洞检测模块:
(2)分别输入以下命令,使用ms12_020_check模块对目标机进行漏洞检测,以确认目标机存在ms12-020漏洞:
1 |
|
检测结果显示,靶机存在ms12-020漏洞!
3.利用ms12-020漏洞对靶机进行攻击
在Metasploit终端下分别输入以下命令,使用ms12_020_maxchannelids模块对目标机的ms12-020漏洞进行利用:
1 |
|
此时,靶机被攻击后出现蓝屏:
实验至此结束。
实验总结
本次实验,成功利用Metasploit工具对存在ms12-020漏洞的靶机进行了攻击,熟悉了ms12-020漏洞的原理及利用方法,同时也掌握了Metasploit的配置使用方法。
渗透测试环境搭建与工具使用-Metasploit配置使用2
实验目的
熟悉ms17-010漏洞的原理及利用方法,掌握Metasploit的配置使用方法。
实验环境
操作机:Kali2018-TS
(1)操作系统:Kali Linux 2018.4
(2)登录账号密码:操作系统帐号root,密码Sangfor!7890
靶机:pt-env
(1)操作系统:Windows 7
(2)登录账号密码:操作系统帐号Administrator,密码Sangfor!7890
实验原理
(1)关于Metasploit
Metasploit是一个强大的开源平台,可以用来开发、测试和使用恶意代码,同时为渗透测试、shellcode编写和漏洞研究提供了一个可靠平台。
(2)关于ms17-010(Windows SMB远程执行代码漏洞)
微软安全公告KB4013389:
1 |
|
此安全更新程序修复了Microsoft Windows中的多个漏洞。如果攻击者向 Windows SMBv1服务器发送特殊设计的消息,那么其中最严重的漏洞可能允许远程执行代码。
实验步骤
1.启动Metasploit
(1)在操作机Kali2018-TS上点击左侧菜单中的终端图标,启动终端:
(2)在终端使用如下命令,启动Metasploit终端(提示符msf>):
1 |
|
2.检测靶机是否存在ms17-010漏洞
(1)在Metasploit终端中输入以下命令,搜索ms17-010相关的模块:
1 |
|
搜索结果:
(2)分别输入以下命令,使用smb_ms17_010模块对靶机进行漏洞检测,确认其存在ms17-010漏洞:
1 |
|
执行结果显示:靶机存在ms17-010漏洞!
3.利用ms17-010漏洞对靶机执行溢出攻击
(1)分别输入以下命令,使用ms17_010_eternalblue模块对目标机的ms17-010漏洞进行利用:
1 |
|
溢出攻击成功后,返回meterpreter提示符:
4.后渗透模块meterpreter的使用
可以在meterpreter提示符下使用下列命令,进行后渗透操作:
1 |
|
实验至此结束。
实验总结
本次实验,成功利用Metasploit工具对存在ms17-010漏洞的靶机进行了攻击,熟悉了ms17-010漏洞的原理及利用方法,同时也掌握了Metasploit的配置使用方法。
渗透测试环境搭建与工具使用-FireFox浏览器插件配置使用1
实验目的
了解Firefox浏览常用插件的功能和作用,掌握Hackbar的简单配置与使用。
实验环境
操作机:Kali2018-TS
(1)操作系统:Kali Linux 2018.4
(2)登录账号密码:操作系统帐号root,密码Sangfor!7890
靶机:A-SQLi-Labs
(1)操作系统:CentOS 7
(2)安装的应用软件:Apache、MySQL(MariaDB)、PHP;DVWA、SQLi-Labs、Webug3.0漏洞网站环境
(3)登录账号密码:操作系统帐号root,密码Sangfor!7890
实验原理
Web渗透测试时,经常要和浏览器地址栏内容进行交互,比如添加或修改参数、变更URL等。有些服务器的响应包含重定向、重载、参数变化,所有的这些变化的获得需要花费大量的时间去在这些变量上尝试不同的参数,借助合适的工具,可以大大缩短这一过程的繁琐程度。
Hackbar是一个Firefox的插件,它的功能类似于地址栏,但是它里面的数据不受服务响应触发的重定向等其它变化的影响,这一功能在我们后面测试Web应用中十分有帮助。
实验步骤
1.启动Firefox浏览器及Hackbar插件
在操作机Kali2018-TS上启动Firefox浏览器:
启动Firefox浏览器后,按下F12键启动Hackbar:
2.Hackbar插件的简单使用
(1)Load和Execute功能的使用
1 |
|
在浏览器地址栏中输入以下URL,访问靶机上的SQLi-Labs网站第1关:
1 |
|
(注意大小写)
在Hackbar界面点击“Load URL”按钮,此时浏览器地址栏中的URL会被加载到Hackbar的输入框中:
在Hackbar输入框中将原URL修改为:
1 |
|
修改完成后点击“Execute”按钮,观察页面的变化:
(2)Split功能的使用
1 |
|
在当前状态下,直接点击“Split URL”按钮,此时输入框的URL会按动态参数被切分:
此时点击“Execute”按钮,页面显示的结果不变。
(3)Post功能的使用
在Hackbar输入框中输入以下URL,并点击“Execute”按钮,访问SQLi-Labs的第11关:
1 |
|
在Hackbar界面钩选“Post data”,并在弹出的Post输入框中输入以下内容:
1 |
|
输入完成后,点击“Execute”按钮,页面显示成功登录:
(4)编码功能的使用
取消“Post data”的钩选,在Hackbar输入框中输入以下URL,并点击“Execute”按钮,访问SQLi-Labs的Less-2:
1 |
|
将Hackbar输入框中的URL更改为以下URL,并点击“Execute”按钮:
1 |
|
在Hackbar输入框中,将当前URL中的第二个空格选中,并选择Hackbar菜单项“Encoding”->“URL Encode”:
最终,空格会被编码成“%20”。
1 |
|
在此状态下点击“Execute”按钮,此时页面显示的结果不变。
实验至此结束。
实验总结
本次实验,体验了Hackbar的功能及简单配置使用。
渗透测试环境搭建与工具使用-FireFox浏览器插件配置使用2
实验目的
了解Firefox浏览常用插件的功能和作用,掌握FoxyProxy、User-Agent Switcher的简单配置与使用。
实验环境
操作机:Kali2018-TS
(1)操作系统:Kali Linux 2018.4
(2)登录账号密码:操作系统帐号root,密码Sangfor!7890
靶机:A-SQLi-Labs
(1)操作系统:CentOS 7
(2)安装的应用软件:Apache、MySQL(MariaDB)、PHP;DVWA、SQLi-Labs、Webug3.0漏洞网站环境
(3)登录账号密码:操作系统帐号root,密码Sangfor!7890
实验原理
FoxyProxy是一个高级的代理管理插件,能够提高firefox的内置代理的兼容性,可基于URL的参数在一个或多个代理之间进行切换;User-Agent
Switcher则可用于改变HTTP头部中的User Agent,利用它可以实现隐藏(伪装)客户端浏览器信息的目的。
实验步骤
1.启动Firefox浏览器
在操作机Kali2018-TS上启动Firefox浏览器:
实验环境中已预安装FoxyProxy、User-Agent Switcher插件,可以在浏览器界面看到两个插件的图标:
2.启动Burpsuite并进行代理设置
(1)启动Burpsuite
在操作机Kali2018-TS上启动Burpsuite:
(2)设置Burpsuite的代理服务端口
在Burpsuite软件界面上选择选项卡“Proxy”->“Options”,在Proxy Listeners模块下,将Burpsuite的代理服务端口设置为8090。
(3)暂时关闭Burpsuite的代理拦截功能
在Burpsuite软件界面上选择选项卡“Proxy”->“Intercept”,将拦截开关按钮的状态设置为“Intercept is off”。
注意:上述设置完成之后,不要关闭Burpsuite!
3.FoxyProxy插件的简单使用
(1)点击浏览器界面上的FoxyProxy图标,在弹出的对话框中点击“Options”按钮,进入FoxyProxy Options设置界面:
在FoxyProxy Options设置界面点击左侧按钮“Add”,进入“Add Proxy”设置界面:
在“Add Proxy”设置界面,为Burpsuite添加一个代理:
1 |
|
代理参数设置完成后,点击下方的“Save”按钮保存:
(2)点击浏览器界面上的FoxyProxy图标,将代理方式切换至“Burpsuite(8090)”:
(3)开启Burpsuite的代理拦截功能
在Burpsuite软件界面上选择选项卡“Proxy”->“Intercept”,将拦截开关按钮的状态设置为“Intercept is on”。
(4)在浏览器地址栏中输入以下URL,试图访问靶机上的SQLi-Labs的第1关:
1 |
|
(注意大小写)
此时,Burpsuite拦截到了此HTTP请求包:
在Burpsuite界面点击“Forward”按钮,发送此HTTP请求包,此时浏览器正常访问SQLi-Labs的第1关:
4.User-Agent Switcher插件的简单使用
(1)暂时关闭Burpsuite的代理拦截功能
在Burpsuite软件界面上选择选项卡“Proxy”->“Intercept”,将拦截开关按钮的状态设置为“Intercept is off”。
(2)重新启动Firefox浏览器,点击浏览器界面上的User-Agent Switcher图标,将主机操作系统伪装成Android:
(3)开启Burpsuite的代理拦截功能
在Burpsuite软件界面上选择选项卡“Proxy”->“Intercept”,将拦截开关按钮的状态设置为“Intercept is on”。
(4)在浏览器地址栏中输入以下URL,试图访问靶机上的SQLi-Labs的第1关:
1 |
|
(注意大小写)
此时,Burpsuite拦截到了此HTTP请求包,此请求包的头部字段User-Agent中,显示的操作系统类型为Android:
伪装成功!
实验至此结束。
实验总结
本次实验,体验了FoxyProxy、User-Agent Switcher的功能及简单配置使用。
渗透测试环境搭建与工具使用-SET配置使用
实验目的
熟悉SET的配置使用,掌握利用SET构建钓鱼网站的方法。
实验环境
操作机:Kali2018-TS
(1)操作系统:Kali Linux 2018.4
(2)登录账号密码:操作系统帐号root,密码Sangfor!7890
靶机:pt-env
(1)操作系统:Windows 7
(2)登录账号密码:操作系统帐号Administrator,密码Sangfor!7890
实验原理
SET(Social Engineering Toolkit)是Kali
Linux中集成的一款社会工程学工具包,它是一个基于Python的开源的社会工程学渗透测试工具。这套工具包由David
Kenned设计,而且已经成为业界部署实施社会工程学攻击的标准。
SET利用人们的好奇心、信任、贪婪及一些愚蠢的错误,攻击人们自身存在的弱点。SET最常用的攻击手法包括:用恶意附件对目标进行E-mail钓鱼攻击、Java Applet攻击、基于浏览器的漏洞攻击、收集网站认证信息、建立感染的便携媒体、邮件群发等攻击手段。
实验步骤
1.启动SET
(1)在操作机Kali2018-TS上点击左侧菜单中的终端图标,启动终端:
(2)在终端使用如下命令,启动SET:
1 |
|
2.利用SET构建钓鱼网站
(1)在SET主菜单中选择第1项——Social-Engineering Attacks(社会工程学攻击):
(2)继续选择菜单第2项——Website Attack Vectors(网站攻击向量):
(3)继续选择菜单第3项——Credential Harvester Attack Method(凭证收集攻击方法):
(4)继续选择菜单第1项——Web Templates(网站模板):
输入操作机IP,作为钓鱼网站(凭证收集器)的地址:
选择菜单第2项——Google,建立google网站模板:
此时一个伪装成Google的钓鱼网站已在操作机上建立成功!
3.利用靶机访问钓鱼网站,观察操作机能否收集到靶机的登录凭证
在靶机pt-env上启动浏览器,输入以下URL访问操作机:
1 |
|
假如用户在登录处填入用户名admin、密码123456,并点击了“Sign in”按钮试图登录:
此时操作机上会监听到此凭证信息(用户名和密码),用户的用户名和密码遭到泄露:
实验至此结束。
实验总结
本次实验,利用SET构建了钓鱼网站,并成功收集到靶机用户的登录凭证,熟悉了SET的配置使用方法。
渗透测试环境搭建与工具使用-Hashcat配置使用
实验目的
熟悉Hashcat的配置使用,掌握利用Hashcat破解Windows账号密码的方法。
实验环境
操作机:Kali2018-TS
(1)操作系统:Kali Linux 2018.4
(2)登录账号密码:操作系统帐号root,密码Sangfor!7890
靶机:pt-env
(1)操作系统:Windows 7
(2)登录账号密码:操作系统帐号Administrator,密码Sangfor!7890
实验原理
Hashcat是自称世界上最快的密码恢复工具,它在2015年之前拥有专有代码库,但现在作为免费软件发布。
Hashcat适用于Linux、OS
X和Windows等操作系统,支持多种计算核心(包括CPU、GPU、APU、DSP、FPGA等),支持的散列算法包括Microsoft
LM、NTLM哈希、MD4、MD5、SHA系列、Unix加密格式、MySQL和Cisco PIX等。
实验步骤
1.借助Metasploit、利用ms17-010漏洞对靶机进行溢出攻击,并获取靶机Windows操作系统的密码Hash值
(1)在操作机Kali2018-TS上点击左侧菜单中的终端图标,启动终端:
(2)在终端使用如下命令,启动Metasploit终端(提示符msf>):
1 |
|
(3)假设已知靶机存在ms17-010漏洞,在Metasploit终端分别输入以下命令,利用ms17-010漏洞对靶机进行溢出攻击:
1 |
|
溢出攻击成功后,显示meterpreter提示符:
(4)在meterpreter提示符下输入以下命令,获取靶机Windows账户密码的Hash值:
1 |
|
显示结果中,将如图所标识的user账户的密码Hash值拷贝下来:
2.利用Hashcat对user账户的密码Hash值进行暴力破解
(1)分别在meterpreter提示符、msf提示符下输入exit命令,退回到Kali终端:
(2)在Kali终端下输入以下命令,对user账户的密码Hash值进行暴力破解:
(假设已知user账户的密码是由数字、小写字母组成、长度为4的字符串)
1 |
|
破解的结果,user账户的密码原文为1a2b:
3.验证user账户密码的正确性
在Kali终端输入如下命令,登录靶机的远程桌面:
1 |
|
在弹出的图形化登录界面上,点击“其他用户”图标,用user账户和对应的密码(本例中为1a2b)登录:
user账户远程登录成功,密码正确:
实验至此结束。
实验总结
本次实验,借助Metasploit、利用ms17-010漏洞对靶机进行溢出攻击,并获取了靶机Windows操作系统的密码Hash值,然后利用Hashcat对密码Hash进行暴力破解,还原出了密码原文。在实验过程中,实现了Metasploit和Hashcat的配合使用。
渗透测试环境搭建与工具使用-Hydra与Crunch配置使用
实验目的
熟悉Hydra与Crunch的配置使用,掌握利用Crunch生成字典、利用Hydra对靶机FTP登录密码进行字典攻击的方法。
实验环境
操作机:Kali2018-TS
(1)操作系统:Kali Linux 2018.4
(2)登录账号密码:操作系统帐号root,密码Sangfor!7890
靶机:pt-env
(1)操作系统:Windows 7
(2)登录账号密码:操作系统帐号Administrator,密码Sangfor!7890
实验原理
(1)关于Hydra
Hydra(九头蛇)是一个相当强大的暴力密码破解工具。该工具支持几乎所有协议的在线密码破解,如FTP、HTTP、HTTPS、MySQL、MS
SQL、Oracle、Cisco、IMAP和VNC等。Hydra能够在Linux、Windows、Cygwin、Solaris11、FreeBSD8.1、OpenBSD、OSX、QNX/Blackberry上测试和编译。
(2)关于Crunch
Crunch是一种创建密码字典的工具,按照指定的规则生成密码字典,可以灵活的制定自己的字典文件。使用Crunch工具生成的密码可以输出到屏幕、保存到文件或另一个程序。
实验步骤
1.开启靶机上的FTP服务
(1)启动靶机pt-env,以Administrator账户登录:
(2)在靶机C盘根目录下,双击鼠标左键启动Quick Easy FTP:
注:如果在C盘根目录下启动Quick Easy FTP时显示“建立空文档失败”的提示,则可以将Quick Easy FTP
Server V4.0.0、users.dat、ftptrace三个文件拷贝到桌面,再启动桌面上的Quick Easy FTP Server
V4.0.0程序。
成功启动Quick Easy FTP后,在Quick Easy FTP主界面点击左上角的绿灯,启动FTP服务:
2.在操作机上使用Crunch生成用户名和密码字典
(1)在操作机Kali2018-TS上点击左侧菜单中的终端图标,启动终端:
(2)使用如下命令,利用Crunch生成密码字典,并保存至/usr目录:
(假设已知靶机FTP登录账号有两个,分别为li、xu,密码为由纯数字组成的2个字符长度)
1 |
|
生成的密码字典如下图所示:
说明:关于字符集的名称与格式,可参考/usr/share/crunch/charset.lst文件内容:
3.在操作机上使用Hydra对靶机FTP登录密码进行字典攻击
(1)在终端使用如下命令,对靶机FTP登录用户名li进行密码字典攻击:
1 |
|
破解结果:用户名li的密码为45。
(2)在终端使用如下命令,对靶机FTP登录用户名xu进行密码字典攻击:
1 |
|
破解结果:用户名xu的密码为13。
实验至此结束。
实验总结
本次实验,利用Crunch生成了用户名和密码字典,利用Hydra对靶机FTP登录密码进行了字典攻击,熟悉了Hydra与Crunch的配置使用。
渗透测试环境搭建与工具使用-AWVS配置使用
实验目的
熟悉漏洞扫描工具AWVS的配置使用。
实验环境
操作机:Pentest-Atk
(1)操作系统:Windows 10
(2)安装的应用软件:AWVS、Havij、菜刀、蚁剑等
(3)登录账号密码:操作系统帐号Administrator,密码Sangfor!7890
靶机:A-SQLi-Labs
(1)操作系统:CentOS 7
(2)安装的应用软件:Apache、MySQL(MariaDB)、PHP;DVWA、SQLi-Labs、Webug3.0漏洞网站环境
(3)登录账号密码:操作系统帐号root,密码Sangfor!7890
实验原理
AWVS,全称Acunetix Web Vulnerability Scanner,是一款知名的Web网络漏洞扫描工具,可以用来测试网站、Web应用程序及接口的安全性。
AWVS能够检测7000种以上的Web安全漏洞,包括SQL注入、XSS、配置不当、弱密码等常见类型。
实验步骤
1.启动并登录AWVS
(1)在操作机Pentest-Atk上打开Chrome浏览器,在地址栏中输入以下URL启动AWVS:
1 |
|
(2)在认证界面,输入用户名Admin@awvs.com,密码Admin123,然后点击“Login”按钮登录AWVS的主界面:
2.设置扫描目标并执行扫描任务
在AWVS的主界面,点击左侧菜单“Target”->“Add Target”,将以下URL作为扫描目标:
1 |
|
设置完成后直接点击右上角“Save”按钮,此时会自动进入目标设置界面。在此界面下,可以根据需要对一些参数进行设置。
比如设置扫描速度(本例中为Fast):
设置网站登录凭证(本例中未设置):
设置爬取选项(本例中为默认):
…
本例中所有扫描参数设置保持默认,直接点击右上角“Scan”按钮:
弹出如下对话框:
直接点击“Create Scan”按钮,创建一个扫描任务并开始执行:
等待约2分钟后,扫描完成。
3.查看扫描结果
在“Scan”->“Scan information”页面下可查看总体的扫描信息:
在“Scan”->“Vulnerabilities”页面下可查看扫描到的漏洞信息:
在“Scan”->“Site Structure”页面下可查看网站的目录架构:
在“Scan”->“Events”页面下可查看扫描过程中的事件:
4.生成扫描报告
在AWVS的主界面,点击左侧菜单“Scans”,钩选刚刚执行完成的扫描任务:
点击页面上方的“Generate Report”按钮,选择报告类型为“快速报告”(即“Standard Reports”->“Quick”):
此时在AWVS的主界面,点击左侧菜单“Reports”,会看到刚刚生成的报告记录:
下载并查看PDF格式的报告:
实验至此结束。
实验总结
本次实验,熟悉了漏洞扫描工具AWVS的配置使用。
渗透测试环境搭建与工具使用-Nikto配置使用
实验目的
熟悉漏洞扫描工具Nikto的配置使用。
实验环境
操作机:Kali2018-TS
(1)操作系统:Kali Linux 2018.4
(2)登录账号密码:操作系统帐号root,密码Sangfor!7890
靶机:A-SQLi-Labs
(1)操作系统:CentOS 7
(2)安装的应用软件:Apache、MySQL(MariaDB)、PHP;DVWA、SQLi-Labs、Webug3.0漏洞网站环境
(3)登录账号密码:操作系统帐号root,密码Sangfor!7890
实验原理
Nikto是一款基于Perl语言开发的开源Web扫描评估软件,可以对Web服务器进行多项安全测试,能在230多种服务器上扫描出2600多种有潜在危险的文件、CGI及其他问题。
Nikto可以扫描指定主机的WEB类型、主机名、指定目录、特定CGI漏洞、返回主机允许的HTTP模式等。
实验步骤
1.启动Nikto
(1)在操作机Kali2018-TS上点击左侧菜单中的终端图标,启动终端:
(2)使用如下命令,启动Nikto并查看其命令格式和可用参数:
1 |
|
2.利用Nikto对靶机网站进行漏洞扫描
使用如下命令,利用Nikto对靶机A-SQLi-Labs上的SQLi-Labs网站进行漏洞扫描,并将扫描结果保存至/usr/result.html中:
1 |
|
扫描结果:
输出的文档:
3.利用Nikto对靶机网站进行Web子目录扫描
(1)为体验Web子目录扫描的功能,我们在/usr路径下手工新建一个sub.txt文档作为字典,文档内容如图所示:
(2)使用如下命令,利用Nikto对靶机A-SQLi-Labs上的网站进行子目录扫描:
1 |
|
扫描结果:靶机网站的两个子目录/dvwa和/sqli-labs被找到!
实验至此结束。
实验总结
本次实验,熟悉了漏洞扫描工具Nikto的配置使用。
渗透测试环境搭建与工具使用-OWASP ZAP配置使用
实验目的
熟悉漏洞扫描工具OWASP ZAP的配置使用。
实验环境
操作机:Kali2018-TS
(1)操作系统:Kali Linux 2018.4
(2)登录账号密码:操作系统帐号root,密码Sangfor!7890
靶机:A-SQLi-Labs
(1)操作系统:CentOS 7
(2)安装的应用软件:Apache、MySQL(MariaDB)、PHP;DVWA、SQLi-Labs、Webug3.0漏洞网站环境
(3)登录账号密码:操作系统帐号root,密码Sangfor!7890
实验原理
OWASP ZAP(OWASP Zed Attack
Proxy,QWASP攻击代理服务器)是世界上最受欢迎的免费安全工具之一。ZAP可以帮助我们在开发和测试应用程序过程中自动发现
Web应用程序中的安全漏洞。另外,它也是一款提供给具备丰富经验的渗透测试人员进行人工安全测试的优秀工具。
实验步骤
1.启动OWASP ZAP
(1)在操作机Kali2018-TS上点击桌面左上角菜单“Applications”->“03-Web Application Analysis”->“owasp-zap”,启动OWASP ZAP:
启动后的OWASP ZAP主界面如下图所示:
2.OWASP ZAP代理功能的使用
(1)在OWASP ZAP主界面选择菜单项“Tools”->“Options”->“Local Proxies”,设置如图所示的代理参数并点击“OK”按钮确认:
1 |
|
(2)启动Firefox浏览器,利用FoxyProxy插件新建一个代理:
代理参数如下图所示:
1 |
|
设置完成后,点击“Save”按钮保存。
(3)在浏览器上,将FoxyProxy插件的代理切换为“OWASP ZAP(8091)”:
然后,在地址栏输入以下URL,访问靶机A-SQLi-Labs上的SQLi-Labs网站的第1关:
1 |
|
(注意大小写)
此时,在OWASP ZAP主界面能够看到代理抓包的信息:
3.OWASP ZAP漏洞扫描功能的使用
在OWASP ZAP主界面右上窗口中,选择“Quick Start标签页”,在“URL to attack”处填写下列URL,并点击“Attack”按钮,启动对SQLi-Labs网站Less-1的扫描:
1 |
|
当扫描过程中检测出漏洞,OWASP ZAP会产生报警信息,如下图所示:
实验至此结束。
实验总结
本次实验,熟悉了漏洞扫描工具OWASP ZAP的配置使用。
渗透测试环境搭建与工具使用-“中国菜刀”配置使用
实验目的
熟悉PHP一句话木马的编写及Webshell管理工具“中国菜刀”的配置使用。
实验环境
操作机:Pentest-Atk
(1)操作系统:Windows 10
(2)安装的应用软件:AWVS、Havij、菜刀、蚁剑等
(3)登录账号密码:操作系统帐号Administrator,密码Sangfor!7890
靶机:A-SQLi-Labs
(1)操作系统:CentOS 7
(2)安装的应用软件:Apache、MySQL(MariaDB)、PHP;DVWA、SQLi-Labs、Webug3.0漏洞网站环境
(3)登录账号密码:操作系统帐号root,密码Sangfor!7890
实验原理
(1)关于Webshell
Webshell是以ASP、PHP、JSP或者CGI等网页文件形式存在的一种代码执行环境,主要用于网站管理、服务器管理、权限管理等操作。
Webshell使用方法简单,只需上传一个代码文件,通过网址访问,便可进行很多日常操作,极大地方便了使用者对网站和服务器的管理。正因如此,也有小部分人将代码修改后当作后门程序使用,以达到控制网站服务器的目的。
(2)关于中国菜刀
中国菜刀是一款专业的Webshell管理软件,用途广泛,使用方便,小巧实用,只要支持动态脚本的网站,都可以用中国菜刀来进行管理。
实验步骤
1.编写PHP一句话木马(Webshell)
在操作机Pentest-Atk桌面新建一个文本文档并更名为muma.php:
鼠标右键单击muma.php,在弹出的菜单中选择“Edit with Notepad++”:
用Notepad++打开此文件后,在文件中输入以下代码并保存:
1 |
|
2.利用靶机的文件上传漏洞,将此木马文件(Webshell)上传至靶机
(1)在操作机Pentest-Atk上启动浏览器,在地址栏中输入以下URL访问靶机上的DVWA网站:
1 |
|
(注意大小写)
(2)成功登录DVWA网站后,在网站主页左侧菜单选择DVWA Security,将网站的安全级别设置为“Low”:
(3)在DVWA网站主页左侧菜单选择“File upload”进入文件上传训练关卡,将muma.php上传至靶机,并记下文件上传的路径:
3.利用“中国菜刀”连接靶机上的muma.php
(1)在操作机Pentest-Atk上进入桌面文件夹tools/中国菜刀(过狗),鼠标左键双击“中国菜刀(过狗).exe”程序,运行“中国菜刀”:
(2)在“中国菜刀”主界面空白处单击鼠标右键,在弹出的菜单中选择“添加”,
添加一条Webshell管理项:
1 |
|
添加完成后,会看到主界面多了一条Webshell管理项:
4.利用“中国菜刀”对靶机进行虚拟终端及文件操作
(1)虚拟终端操作
选中muma.php所在的Webshell管理项,单击鼠标右键,在弹出的菜单中选择“虚拟终端”
打开虚拟终端界面后,可以像操作本地机器一样,对靶机执行一些操作系统命令(如whoami、id、netstat -an等):
(2)文件操作
选中muma.php所在的Webshell管理项,单击鼠标右键,在弹出的菜单中选择“文件管理”:
打开文件管理界面后,可以像操作本地机器一样,对靶机系统进行一些操作(如上传文件、下载文件、修改文件属性等):
实验至此结束。
实验总结
本次实验,熟悉了PHP一句话木马的编写及“中国菜刀”的配置使用。
渗透测试环境搭建与工具使用-“中国蚁剑”配置使用
实验目的
熟悉PHP一句话木马的编写及Webshell管理工具“中国蚁剑”的配置使用。
实验环境
操作机:Pentest-Atk
(1)操作系统:Windows 10
(2)安装的应用软件:AWVS、Havij、菜刀、蚁剑等
(3)登录账号密码:操作系统帐号Administrator,密码Sangfor!7890
靶机:A-SQLi-Labs
(1)操作系统:CentOS 7
(2)安装的应用软件:Apache、MySQL(MariaDB)、PHP;DVWA、SQLi-Labs、Webug3.0漏洞网站环境
(3)登录账号密码:操作系统帐号root,密码Sangfor!7890
实验原理
(1)关于Webshell
Webshell是以ASP、PHP、JSP或者CGI等网页文件形式存在的一种代码执行环境,主要用于网站管理、服务器管理、权限管理等操作。
Webshell使用方法简单,只需上传一个代码文件,通过网址访问,便可进行很多日常操作,极大地方便了使用者对网站和服务器的管理。正因如此,也有小部分人将代码修改后当作后门程序使用,以达到控制网站服务器的目的。
(2)关于中国蚁剑
蚁剑是一个开放源代码、跨平台的Webshell管理工具,旨在满足渗透测试人员以及具有权限和/或授权的安全研究人员以及网站管理员的需求。
实验步骤
1.编写PHP一句话木马(Webshell)
在操作机Pentest-Atk桌面新建一个文本文档并更名为muma.php:
鼠标右键单击muma.php,在弹出的菜单中选择“Edit with Notepad++”:
用Notepad++打开此文件后,在文件中输入以下代码并保存:
1 |
|
2.利用靶机的文件上传漏洞,将此木马文件(Webshell)上传至靶机
(1)在操作机Pentest-Atk上启动浏览器,在地址栏中输入以下URL访问靶机上的DVWA网站:
1 |
|
(注意大小写)
(2)成功登录DVWA网站后,在网站主页左侧菜单选择DVWA Security,将网站的安全级别设置为“Low”:
(3)在DVWA网站主页左侧菜单选择“File upload”进入文件上传训练关卡,将muma.php上传至靶机,并记下文件上传的路径:
3.利用“中国蚁剑”连接靶机上的muma.php
(1)在操作机Pentest-Atk上进入桌面文件夹tools/antSword/antSword-Loader-v4.0.3-win32-x64,鼠标左键双击“AntSword.exe”程序,运行“中国蚁剑”:
初次运行“中国蚁剑”时,需要初始化。点击“中国蚁剑”主界面的“初始化”按钮,将桌面tools/antSword/antSword-master指定为“中国蚁剑”的工作目录:
指定完成后,界面会提示手动重启蚁剑程序。可再次进入桌面文件夹tools/antSword/antSword-Loader-v4.0.3-win32-x64,运行“AntSword.exe”程序:
(2)在“中国蚁剑”主界面空白处单击鼠标右键,在弹出的菜单中选择“添加数据”,
添加一条Webshell管理项:
1 |
|
设置完成后点击左上角的“添加”按钮,会看到主界面多了一条Webshell管理项:
4.利用“中国蚁剑”对靶机进行虚拟终端及文件操作
(1)虚拟终端操作
选中muma.php所在的Webshell管理项,单击鼠标右键,在弹出的菜单中选择“虚拟终端”
打开虚拟终端界面后,可以像操作本地机器一样,对靶机执行一些操作系统命令(如whoami、id、netstat -an等):
(2)文件操作
选中muma.php所在的Webshell管理项,单击鼠标右键,在弹出的菜单中选择“文件管理”:
打开文件管理界面后,可以像操作本地机器一样,对靶机系统进行一些操作(如上传文件、下载文件、修改文件属性等):
(3)数据操作
选中muma.php所在的Webshell管理项,单击鼠标右键,在弹出的菜单中选择“数据操作”:
打开文件管理界面后,可以对靶机上的数据库系统进行一些操作:
实验至此结束。
实验总结
本次实验,熟悉了PHP一句话木马的编写及“中国蚁剑”的配置使用。
渗透测试环境搭建与工具使用-Weevely配置使用
实验目的
熟悉Webshell管理工具Weevely的配置使用。
实验环境
操作机:Kali2018-TS
(1)操作系统:Kali Linux 2018.4
(2)登录账号密码:操作系统帐号root,密码Sangfor!7890
靶机:A-SQLi-Labs
(1)操作系统:CentOS 7
(2)安装的应用软件:Apache、MySQL(MariaDB)、PHP;DVWA、SQLi-Labs、Webug3.0漏洞网站环境
(3)登录账号密码:操作系统帐号root,密码Sangfor!7890
实验原理
Weevely是一款Python编写的Webshell管理工具,它最大的优点在于跨平台,可以算作是Linux下的一款菜刀替代工具(限于PHP)。
实验步骤
1.启动Weevely
在操作机Kali2018-TS上点击桌面左上角菜单“Applications”->“10-Post Exploitation”->“weevely”,启动Weevely:
2.利用Weevely生成专用Webshell
在终端下输入以下命令,利用Weevely生成专用Webshell:
1 |
|
3.利用靶机的文件上传漏洞,将此Webshell上传至靶机
(1)在操作机Kali2018-TS上启动Firefox浏览器,在地址栏中输入以下URL访问靶机上的DVWA网站:
1 |
|
(注意大小写)
(2)成功登录DVWA网站后,在网站主页左侧菜单选择DVWA Security,将网站的安全级别设置为“Low”:
(3)在DVWA网站主页左侧菜单选择“File upload”进入文件上传训练关卡,将muma.php上传至靶机,并记下文件上传的路径:
4.利用Weevely远程连接Webshell,并获得靶机的控制权
(1)在Kali终端下输入以下命令,利用Weevely远程连接刚刚上传至靶机的muma.php:
1 |
|
连接成功后,直接输入回车即可获取靶机的shell:
(2)获取靶机的shell后,可以像操作本地主机一样,对靶机执行一些远程操作,如用file_ls查看文件和目录:
用system_info查看操作系统信息:
用file_download将远程目录下的文件下载到本地:
实验至此结束。
实验总结
本次实验,熟悉了Webshell管理工具Weevely的配置使用。
渗透测试环境搭建与工具使用-“御剑”配置使用
实验目的
了解Web目录扫描的原理,熟悉“御剑”Web目录扫描工具的配置使用。
实验环境
操作机:Pentest-Atk
(1)操作系统:Windows 10
(2)安装的应用软件:御剑等
(3)登录账号密码:操作系统帐号Administrator,密码Sangfor!7890
靶机:A-SQLi-Labs
(1)操作系统:CentOS 7
(2)安装的应用软件:Apache、MySQL(MariaDB)、PHP;DVWA、SQLi-Labs、Webug3.0漏洞网站环境
(3)登录账号密码:操作系统帐号root,密码Sangfor!7890
实验原理
网站目录和敏感文件扫描是网站测试中最基本的手段之一。如果通过该方法发现了网站后台,可以尝试暴库、SQL注入等方式进行安全测试;如果发现敏感目录或敏感文件,能帮我们获取如php环境变量、robots.txt、网站指纹等信息;如果扫描出了一些上传的文件,我们甚至可能通过上传功能(一句话恶意代码)获取网站的权限。
“御剑”被誉为国内第一后台扫描神器,拥有图形化页面,简单易上手。利用“御剑”对网站目录进行扫描,实际就是通过发送HTTP请求,并分析网站服务器返回的信息来判断当前目录或文件是否真实存在。在判断过程中利用了字典爆破的方法,一般来说,字典越多越丰富,扫描到的结果也越多,准确性也越高。
实验步骤
1.尝试访问DVWA、SQLi-Labs、Webug网站
在操作机Pentest-Atk上打开浏览器,尝试访问以下网站:
1 |
|
1 |
|
1 |
|
上述三个网站均能正常访问。
2.使用“御剑”对靶机的三个网站进行目录扫描(默认方式)
在操作机Pentest-Atk上打开桌面文件夹tools/御剑后台扫描珍藏版/,鼠标左键双击“御剑后台扫描工具.exe”程序启动“御剑”:
在“御剑”主界面的“域名”框内填写需要进行目录扫描的网站URL,点击“开始扫描”按钮(其余参数保持默认),即可得到各网站的扫描结果:
(1)http://[靶机IP]/dvwa
(2)http://[靶机IP]/sqli-labs
(3)http://[靶机IP]/webug
3.将“御剑”的字典适当丰富化,并再次对靶机的三个网站进行目录扫描
在操作机Pentest-Atk上打开桌面文件夹tools/御剑后台扫描工具/配置文件/(此为“御剑”的字典文件存放目录),打开DIR.txt文件,在文件末尾处添加6条记录并保存:
1 |
|
配置完成后,重新启动“御剑”,再次对上述三个网站进行目录扫描:
1 |
|
1 |
|
1 |
|
此现象说明,字典越丰富,“御剑”扫描到的结果准确性越高。
实验至此结束!
实验总结
本次实验,体验了“御剑”Web目录扫描工具的配置使用过程。扫描工具本身以及一本强大的字典,是执行网站目录扫描的必备条件。
渗透测试环境搭建与工具使用-Havij配置使用
实验目的
熟悉自动化注入工具Havij的配置使用,掌握利用其进行SQL注入的方法。
实验环境
实验环境
操作机:Pentest-Atk
(1)操作系统:Windows 10
(2)安装的应用软件:Havij等
(3)登录账号密码:操作系统帐号Administrator,密码Sangfor!7890
靶机:A-SQLi-Labs
(1)操作系统:CentOS 7
(2)安装的应用软件:Apache、MySQL(MariaDB)、PHP;DVWA、SQLi-Labs、Webug3.0漏洞网站环境
(3)登录账号密码:操作系统帐号root,密码Sangfor!7890
实验原理
Havij是一款十分优秀的SQL自动化注入工具。Havij不仅能够自动挖掘可利用的SQL查询,还能够识别后台数据库类型、检索数据的用户名和密码hash、转储表和列、从数据库中提取数据,甚至访问底层文件系统和执行系统命令。Havij支持广泛的数据库系统,支持参数配置以躲避IDS,同时也支持代理、后台登录地址扫描等功能。
实验步骤
本实验的目标是:以SQLi-Labs网站的Less-5为入口,借助Havij工具获取SQLi-Labs网站的登录用户名和密码。
1.尝试访问SQLi-Labs网站的Less-5关卡
在操作机Pentest-Atk打开FireFox浏览器,并访问靶机A-SQLi-Labs上的SQLi-Labs网站Less-5。访问的URL为:
1 |
|
(注意大小写)
登录后,根据网页提示,先给定一个GET参数,即:
1 |
|
此时页面显示“You are in…”。
2.利用Havij对该网站进行注入尝试
(1)在操作机Pentest-Atk打开桌面文件夹tools/装机工具/Havij/,运行此路径下的“注册.bat”文件进行注册:
(2)继续运行此路径下的“Havij 1.15 Pro Cracked By Hmily[LCG].exe”程序:
运行后的Havij主界面如图所示:
(3)在Havij主界面的Target文本框中,填写如下URL(即目标网站):
1 |
|
Database框中选择“MySQL error based”,Method框中选择“GET”,设置完参数后点击“Analyze”按钮执行注入:
执行完成后,Havij的状态消息栏会显示目标网站后台数据库的基本信息:
服务器信息:Apache/2.4.6(CentOS),PHP/5.5.38
注入点类型:string(’)(即字符型注入点,单引号)
当前数据库库名:security
(4)继续在Havij主界面,先点击“Tables”按钮,再点击“Get DBs”按钮,执行结果将显示后台系统中所有的数据库库名:
在此结果下,进一步选中security数据库,并点击“Get Tables”按钮,执行结果将显示security数据库中的所有数据表表名:
在此结果下,进一步选中users数据表,并点击“Get Columns”按钮,执行结果将显示users数据表中的所有字段名:
在次结果下,进一步同时选中id、username、password三个字段,并点击“Get Data”,执行结果将显示id、username、password三个字段的全部值:
至此,通过Havij工具获取了SQLi-Labs网站的全部登录用户名和密码。
实验至此结束!
实验总结
本次实验,熟悉了Havij自动化注入工具的配置使用,并体验了利用Havij对存在SQL注入漏洞的网站进行自动化注入的过程。