小迪安全(day8)

知识点

在这里插入图片描述
在安全测试中,信息收集是非常重要的一个环节,此环节的信息将影响到后续的成功几率,掌握信息的多少将决定发现漏洞机会大小,换言之决定着是否能完成目标的测试任务。

CMS识别技术

概念

CMS指Content Management System,即内容管理系统,是一种用于管理网站内容的软件工具。而CMS识别技术则是通过对网站页面进行分析,自动提取其中的数据信息,并根据预设规则将其归类整理。

该技术在自媒体上的应用

1.内容采集:CMS识别技术可以帮助自媒体从海量信息中快速准确地找到需要的内容,并进行采集整合。

2.内容分类:通过对采集到的内容进行分类整理,可以让自媒体更好地管理和利用这些信息资源。

3.内容推荐:CMS识别技术可以根据用户的浏览行为和兴趣偏好,为其推荐相关内容,提高用户粘性和体验。

4.内容分析:通过对采集到的数据进行分析,可以为自媒体提供更多的决策支持和业务发展方向。

站点搭建分析

搭建习惯-目录型站点

同一网站下的目录和二级目录是两个完全不同的网站,则这两个网站是同一服务器上的不同目标,一个有漏洞,另一个也会遭殃。

搭建习惯-端口类站点

同一IP下不同的端口是完全不同的网站,则这两个网站是同一服务器上的不同目标,一个有漏洞,另一个也会遭殃。

搭建习惯-子域名站点

同一域名下不同的子域名是完全不同的网站时,如果它们在同一IP上,那么这两个网站是同一服务器上的不同目标,一个有漏洞,另一个也会遭殃;如果它们在同一网段,那么它们的安全有一定相关性。

搭建习惯-类似域名站点

有些企业和组织可能有不止一个域名,这些域名同属于一个业务网,它们的安全有一定相关性。

同属一家公司的域名一般有相关性,可能中间不同,可能后缀不同。可以尝试爆破一下。

非法类网站可能多个域名对应的同一套源码,使用该方法意义不大。

搭建习惯-旁注,C段站点

旁注:同服务器不同网站。当对方是多站点服务器时,可以通过搞定同服务器的另一个网站,跳转回测试网站

C段:不同服务器不同网站,通过搞定同网段的其他网站,通过内网到达测试网站

搭建习惯-搭建软件特征站点

很多人使用搭建软件(如:宝塔、phpstudy)来搭建网站
搭建软件可以从响应标头看出,其server项会有很具体的数据回显,可以凭经验推测搭建平台。搭建软件会有默认账号密码和默认界面,可以尝试从这些角度攻击

WAF防护分析

什么是WAF应用?

Web应用防护系统(也称为:网站应用级入侵防御系统。英文:Web Application Firewall,简称:WAF)。Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。

如何快速识别WAF?

工具:wafw00f
链接: 工具

响应标头:X-Powered-By:WAF

识别WAF对于安全测试的意义?

  • 若目标网站使用了WAF,而渗透者在没有识别的状态下直接使用工具进行扫描,有可能会导致WAF将IP地址拉入黑名单而不能访问。识别WAF在于有针对性地绕过。不同WAF存在不同的绕过思路。

  • 知道对方有waf后,可以判断产商尝试绕过知道对方有waf后,不要直接用扫描工具扫描,容易被禁ip。

信息收集-app及其他资产

在安全测试中,若WEB无法取得进展或无WEB的情况下,我们需要借助app或其他资产在进行信息收集,从而开展后续渗透,那么其中的信息收集就尤为重要。在这里插入图片描述

app提取一键反编译

漏了个大洞使用方法

在这里插入图片描述点开result,然后找到反编译的那个APP,里面的文件都是需要一些java代码基础的才能看懂,这里就不去过多的解释;

在这里插入图片描述
这些是从apk中提取出来的url地址,可以通过这几种网站进行安全测试;
在这里插入图片描述

把apk放到“apk数据提取/apps”目录下,运行apkAnalyser.exe自动提取

“apk数据提取/result/(与apk同名)/files”下是反编译文件

“apk数据提取/result/(与apk同名)”下的其他文件是从apk提取出来的数据

链接:APP渗透—查脱壳、反编译、重打包签名

渗透思路总结

用什么→找什么→找到后怎么做
在这里插入图片描述

渗透思路Tips

  • 信息收集时,注意做笔记
  • 搜索域名相关的信息时去掉www,能搜索到更多信息
  • 阿里云有的网站打不开,可能是阿里云把你屏蔽了
  • 查看网站,查看源码、标头、网站各处
  • 正常收集信息记得使用一切可用的工具
  • 搜索引擎可能搜到之前地址的缓存,得到原始地址
  • 域名里面找问题,备案里面查问题

信息收集-资产监控拓展

在这里插入图片描述

Github监控

常见的方法和工具

  1. 使用Github提供的Webhooks功能:Github的Webhooks功能允许您将实时事件通知发送到外部应用程序。通过设置Webhooks,可以接收到关于仓库的各种事件,如push、pull request、issue等的更新通知。可以编写一个接收这些事件的服务器端应用程序,并将其与Webhooks绑定起来,以获得实时通知。

  2. 使用第三方工具:有一些第三方工具专门用于监控Github仓库的更新。其中一种称为"Github Watcher",它可以监控仓库的提交、分支和标签的变化,并通过电子邮件或Slack等方式通知您。可以在Github Marketplace上找到和评估其他类似工具,以选择适合您需求的监控工具。

  3. 轮询检查更新:可以编写一个定时任务来轮询检查Github仓库的更新情况。可以使用Github的API来获取相关信息,比如获取最新的commit、pull request和issue等。然后,可以编写脚本来定期运行这个任务,并在检测到更新时进行相应的处理。

GitHub是搞计算机使用较多的平台,有很多项目,我们监控他可以:
便于收集整理最新exp或poc(POC全称是Proof of Concept,中文译作概念验证。它是专门为了验证漏洞是否真的存在的脚本。而EXP全称是Exploit,中文译作漏洞利用程序。它是对POC验证结果的一种漏洞利用脚本。)

便于发现相关测试目标的资产
监控最新的EXP及其发布(地址:使用地址)
使用代码,有几个python库需要自己安装一下;

# Title: wechat push CVE-2020
# Date: 2020-5-9
# Exploit Author: weixiao9188
# Version: 4.0
# Tested on: Linux,windows
# cd /root/sh/git/ && nohup python3 /root/sh/git/git.py &
# coding:UTF-8

import requests
import json
import time
import os
import pandas as pd

time_sleep = 60  # 每隔 20 秒爬取一次
while (True):
    headers1 = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3741.400 QQBrowser/10.5.3863.400"}
    # 判断文件是否存在
    datas = []
    response1 = None
    response2 = None
    if os.path.exists("olddata.csv"):
    # 如果文件存在则每次爬取 10 个
        df = pd.read_csv("olddata.csv", header=None)
        datas = df.where(df.notnull(), None).values.tolist()
        # 将提取出来的数据中的 nan 转化为 None
        requests.packages.urllib3.disable_warnings()
        response1 = requests.get(url="https://api.github.com/search/repositories?q=CVE-2020&sort=updated&perpage = 10",headers=headers1,verify=False)
        response2 =requests.get(url="https://api.github.com/search/repositories?q=RCE&ssort=updated&per_page=10", headers = headers1, verify = False)
    else:
    # 不存在爬取全部
        datas = []
        requests.packages.urllib3.disable_warnings()
        response1 = requests.get(url="https://api.github.com/search/repositories?q=CVE-2020&sort=updated&order=desc",headers=headers1, verify=False)
        response2 =requests.get(url="https://api.github.com/search/repositories?q=ctcms&ssort=updated&order=desc", headers=headers1,verify=False)

    data1 = json.loads(response1.text)
    data2 = json.loads(response2.text)
    for j in [data1['items'], data2['items']]:
        for i in j:
            s = {"name": i['name'], "html": i['html_url'], "description": i['description']}
            s1 = [i['name'], i['html_url'], i['description']]
    if s1 not in datas:
        # print(s1)
        # print(datas)
        params = {
            "text": s["name"],
            "desp": "链接:" + str(s["html"]) + "\n简介" + str(s["description"])
        }
        print("当前推送为" + str(s) + "\n")
        # print(params)
        requests.packages.urllib3.disable_warnings()
        requests.get("https://sct.ftqq.com/SendKeySCT70049T99iUjjK1W7SP73HNAz1vbgNd.send", params=params, headers=headers1, timeout=10, verify=False)
        time.sleep(1)
        # 以防推送太快
        print("推送成功!\n")
        datas.append(s1)
    else:
        pass
        print("数据已经存在!")
pd.DataFrame(datas).to_csv("olddata.csv", header=Nonne, Index=None)
time.sleep(time_sleep)

各种子域名查询

  1. 通过DNS解析记录

看域名上曾经有哪些东西被解析过。

2.通过HTTPS证书日志搜集

通过证书也可以查到域名信息;

3.通过搜索引擎

比如谷歌、百度这种正经点的搜索网站,或者使用fofa、shodan、zoomeye等这些黑暗引擎来查询一些信息;

4.枚举

就是采用暴力破解,关键是字典、速度—多线程、dns服务器选择;

5.利用漏洞

不常使用,讲解较少;

6.从主站爬取

在一些网站的下面会有一些导航,这个导航可能会把一些网站的子域名导航出来;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值