前言:哈哈,来啦,声明:思维导图来自小迪渗透测试

信息收集

壹.CDN绕过

1.判断网站是否存在cdn技术

超级ping:如果返回IP不唯一,则说明存在cdn服务器

2.常见的cdn绕过技术

2.1子域名查询

DNS查询:https://dnsdb.io/zh-cn/
微步在线:https://x.threatbook.cn/
在线域名信息查询:http://toolbar.netcraft.com/site_report?url=
DNS、IP等查询:http://viewdns.info/
CDN查询IP:https://tools.ipip.net/cdn.php
SecurityTrails平台: https://securitytrails.com/domain/www.baidu.com/history/a
在线子域名二级域名查询:http://tools.bugscaner.com/subdomain/

ps:

一般情况下,www.XXX.com和XXX.com指向的是同一个DNS服务器,进入XXX.com会自动跳转到www.XXX.com,所以XXX.com不需要大流量,不用做CDN。如果加www检测不出来,可以试着去掉,或许就可以得到真实IP了

2.2邮件服务查询

邮件服务查询很多公司内部都会有一个邮箱服务器,这种邮箱服务器大部分是不会做CDN的。因为邮箱服务器一般都是公司内部人去访问,所以大部分不做CDN。因此,我们就可以根据对方邮件服务器给我们发送的邮件,来判断对方的IP地址

2.3.国外IP查网址

有些网站为了节省成本,不会把CDN部署在国外。假设现在你自己的网络公司有一个网站,但你的客户群体主要是在国内,因为国外用户不多,所以就不值得在国外搭建CDN,因此这样从国外访问国内的网站就很可能直接访问的就是主站的真实ip地址。

https://tools.ipip.net/cdn.php

2.4.遗留文件,扫描全网

一些站点在搭建之初,会用一些文件测试站点,例如“phpinfo()”文件,此类文件里就有可能包含了真实的IP地址。可以利用Google搜索引擎搜索关键字“site:xxx.com inurl:phpinfo.php”,搜索站点是否有遗留文件

2.5.黑暗引擎搜索文件

google,shodan,zoomeye,fofa等
这里的特定文件,指的是站点的icon文件,也就是网站的图标,一般查看网页源代码可以找到,格式大致“http://www.xx.com/favicon.ico”。在shodan搜索网站icon图标的语法为:http.favicon.hash:hash值,hash是一个未知的随机数,我们可以通过shodan语法来查看一个已经被shodan收录的网站的hash值,来进一步获取到所有带有某icon的网站。

获取icon的hash值

2.6.dns历史记录

站点在使用CDN服务之前,它的真实IP地址可能被DNS服务器所记录到,此时我们就可以通过DNS历史记录找到目标真实IP。而“以量打量”就是常说的ddos攻击或者说是流量耗尽攻击,在网上开CDN的时候,都会分地区流量,就比如这个节点有100M流量,当这流量用完后,用户再访问就会访问网站真实的ip地址。
情报社区:
https://x.threatbook.cnDNSdb
https://dnsdb.io/zh-cn/


贰.站点搭建及waf

前言

信息收集对于渗透测试前期来说是非常重要的,因为只有我们掌握了目标网站或目标主机足够多的信息之后,我们才能更好地对其进行漏洞检测。在安全测试中,信息收集是非常重要的一个环节,此环节的信息将影响到后续的成功几率,掌握信息的多少将决定发现漏洞机会大小,换言之决定着是否能完成目标的测试任务

站点搭建分析

1.目录站点

原则是一个网站,但区别在于目录下的差异

例如:D:\tools\PHPstudy\PHPTutorial\WWW\DVWA-master和 D:\tools\PHPstudy\PHPTutorial\WWW\mantisbt-2.25.0 两者仅仅是目录路径不同

但两个网站是两套程序,一个网站源码出现漏洞,另一个网站也会遭殃,就等于给与了两套漏洞方案

可通过目录扫描工具可以查询到

2.端口类站点

在同一台服务器上,以端口来把网站进行分开,一个网站出现安全问题,也会导致另一个网站出现安全问题

3.子域名站点

如果IP不同,则两个站点可能不在同一个服务器

4.类似于名站点

出自同一公司的网站,基于后缀名的更改

5.旁注,c段站点

  • 旁注

旁注是一种入侵方法,在字面上解释就是-“从旁注入”,利用同一主机上面不同网站的漏洞得到webshell,从而利用主机上的程序或者是服务所暴露的用户所在的物理路径进行入侵。同服务器不同站点。两个网站或者多个网站放在同一个服务器上,其中一个网站是目标。

  • c段

同网段不同服务器不同站点。网站有一个或多个站点,通过服务器IP地址的网段来进行测试

6.搭建软件特征站点

一体化搭建软件:宝塔、PHPstudy、WMAP、INMAP(Nginx)

常规的搭建软件都有常规的数据库的默认账号密码,如果搭建者不去更改的话,就能成为突破思路。

WAF防护

1.什么是waf

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

分为:硬件形式和软件形式。

在安全公司单位购买的防火墙都是硬件,个人网站和小企业搭建都是软件。

2.如何快速识别waf

Sqlmap是一款检测和利用SQLi漏洞工具,也是基于python编写,业内认同率较高,sqlmap用来探测WAF类型想比较Wafw00f来说还多一些。

Sqlmap用来探测每种WAF设备都是一个python文件,同样是从cookie信息或者返回头信息进行判断。

命令:python sqlmap.py -u “[http://www.XXXXX.org/1.php?id=1]"-identify-waf(貌似必须是或自己修改的类似动态参数才能使用)

3.识别waf对于安全测试的意义

如果发现目标有WAF的话,不要用扫描工具进行扫描


叁.资产监控

POC、EXP、Payload与Shellcode(原链接传送门)

  1. 概念

POC:全称 ’ Proof of Concept ',中文 ’ 概念验证 ’ ,常指一段漏洞证明的代码。

EXP:全称 ’ Exploit ',中文 ’ 利用 ',指利用系统漏洞进行攻击的动作。

Payload:中文 ’ 有效载荷 ',指成功exploit之后,真正在目标系统执行的代码或指令。

Shellcode:简单翻译 ’ shell代码 ',是Payload的一种,由于其建立正向/反向shell而得名。

  1. 几点注意

POC是用来证明漏洞存在的,EXP是用来利用漏洞的,两者通常不是一类,或者说,PoC通常是无害的,Exp通常是有害的,有了POC,才有EXP。

Payload有很多种,它可以是Shellcode,也可以直接是一段系统命令。同一个Payload可以用于多个漏洞,但每个漏洞都有其自己的EXP,也就是说不存在通用的EXP。

Shellcode也有很多种,包括正向的,反向的,甚至meterpreter。

Shellcode与Shellshcok不是一个,Shellshock特指14年发现的Shellshock漏洞。

  1. Payload模块

在Metasploit Framework 6大模块中有一个Payload模块,在该模块下有Single、Stager、Stages这三种类型,Single是一个all-in-one的Payload,不依赖其他的文件,所以它的体积会比较大,Stager主要用于当目标计算机的内存有限时,可以先传输一个较小的Stager用于建立连接,Stages指利用Stager建立的连接下载后续的Payload。Stager和Stages都有多种类型,适用于不同场景。

  1. 总结

想象自己是一个特工,你的目标是监控一个重要的人,有一天你怀疑目标家里的窗子可能没有关,于是你上前推了推,结果推开了,这是一个POC。之后你回去了,开始准备第二天的渗透计划,第二天你通过同样的漏洞渗透进了它家,仔细查看了所有的重要文件,离开时还安装了一个隐蔽的窃听器,这一天你所做的就是一个EXP,你在他家所做的就是不同的Payload,就把窃听器当作Shellcode吧!

Github 监控

便于收集整理最新 exp 或 poc 便于发现相关测试目标的资产

各种子域名查询

DNS,备案,证书

全球节点请求 cdn

枚举爆破或解析子域名对应

便于发现管理员相关的注册信息

黑暗引擎相关搜索

fofa,shodan,zoomeye

微信公众号接口获取

内部群内部应用内部接口

演示案例

监控最新的EXP发布及其他

#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=CVE2020&sort=updated&per_page=10”,headers=headers1,verify=False)

response2 =

requests.get(url=“https://api.github.com/search/repositories?q=RCE&ssort=updated&per_page=10”,hea

ders=headers1,verify=False)

else:

#不存在爬取全部

datas = []

requests.packages.urllib3.disable_warnings()

response1 = requests.get(url=“https://api.github.com/search/repositories?q=CVE2020&sort=updated&order=desc”,headers=headers1,verify=False)

response2 =

requests.get(url=“https://api.github.com/search/repositories?q=RCE&ssort=updated&order=desc”,heade

rs=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:

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)

网络安全之信息收集(二)相关推荐

  1. 网络安全之信息收集篇知识点整理

    新的一年愿每一位朋友都能更上一层楼,共同进步,路漫漫其修远兮,吾将上下而求索,不负韶华,只争朝夕,共勉~ 多少事,从来急,天地转,光阴迫,一万年太久,只争朝夕.--毛泽东 文章目录 一.信息收集 (一 ...

  2. 【网络安全】信息收集系列|子域名收集姿势总结

    声明:本文初衷为分享网络安全知识,请勿利用技术做出任何危害网络安全的行为,由于传播.利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责 概述 在渗透测试或SRC漏洞挖掘中,安 ...

  3. 网络安全入门—信息收集(完整版)

     目录 前言 俗话说"渗透的本质也就是信息收集",信息收集的深度,直接关系到渗透测试的成败,打好信息收集这一基础可以让测试者选择合适和准确的渗透测试攻击方式,缩短渗透测试的时间. ...

  4. 网络安全之信息收集技术(全)

    1. 信息收集概述 (1)渗透测试流程: 前期交互:授权书(确定范围,规则,需求) 信息收集 威胁建模 漏洞分析 渗透攻击(POC验证) 后渗透攻击(后门) 报告 (2)常见名词: 语言:静态语言,动 ...

  5. 网络安全之信息收集(一)

    1.whois 用来查询域名IP以及所有者信息的协议,用来查询域名是否被注册,以及域名所有人,域名注册商. #whois zmkjedu.com 2.DNS解析查询 nslookup 安装命令: [r ...

  6. kali信息收集二 Sublist3r安装以及出现的问题

    Sublist3r安装以及出现的问题 安装 1.下载到本地 2.安装依赖 3.使用命令 出现问题 安装 1.下载到本地 打开kali的程序终端 克隆下载到本地,代码如下: git clone http ...

  7. 网络安全之内网信息收集

    文章目录 一.本机基础信息收集 二.进程和服务信息收集 三.网络信息收集 四.域内信息收集 一.本机基础信息收集 Hostname 查看当前的主机名(计算机名) Whoami 查看当前用户 Whoam ...

  8. 《内网安全攻防:渗透测试实战指南》读书笔记(二):内网信息收集

    目录 前言 一.收集本机信息 1.手动搜集 (1)查询网络配置 (2)查询操作系统及软件的信息 (3)查询本机服务信息 (4)查询进程列表 (5)查看启动程序信息 (6)查看计划任务 (7)查看主机开 ...

  9. 渗透测试如何学习? (*╹▽╹*) 信息收集 ~ 其一

    文章目录 简介 本博客学习基础 收集信息简介 收集那些信息 信息收集一(域名信息收集) 收集目标相关子域名 被动方式收集信息 方法一:Google语法 方法二:使用第三方网站接口查询 方法三:使用网络 ...

最新文章

  1. 【C++】Visual Studio教程(七) -修改 Visual Studio
  2. 质数判断,不同算法效率比较
  3. 总算是把用户流失分析讲清楚了!
  4. docker启动顺序
  5. 大数据之MapReduce详解(MR的运行机制及配合WordCount实例来说明运行机制)
  6. eclipse ssh mysql_Eclipse 配置SSH 详解
  7. 学习JavaScript数据结构与算法 — 散列表
  8. 导数与微分的知识点思维导图_高中物理思维导图,高中三年知识点一个不漏
  9. 用perl发送数据到钓鱼站
  10. PSpice 使用中的若干问题
  11. 赋能智慧交通的5G关键技术
  12. STRING网站分析蛋白质相互作用
  13. camisetas de futbol baratas carrera
  14. 大白菜pe安装服务器系统安装教程视频教程,大白菜u盘启动盘制作工具安装系统的详细方法...
  15. 微软黑科技如何加速游戏开发,读这篇就够了
  16. 使用docker 注册runner
  17. ET钱包2月25日早报 | 过去24小时EOS区块链活跃度指数蝉联榜首
  18. 干货 | 你的 KL 散度 vanish 了吗?
  19. php每天自动备份数据库
  20. Ubuntu16.04 使用apt-get命令安装Mesos

热门文章

  1. 校园一卡通“卡”在哪里
  2. MVE(Multi-View Enviroment)三维重建
  3. jquery.chosen.css,jquery-chosen 选择框插件
  4. 短信验证码之签名和模板
  5. golang知识图谱NLP实战第四节——关系抽取完善逻辑
  6. Yin算法应用(单片机\嵌入式)
  7. exportArchive: No signing certificate \“Mac App Distribution\“ found
  8. 《智能手机心率和呼吸率测量算法的前瞻性验证》阅读笔记
  9. wireshark找不到网卡的解决办法
  10. 程序员常常看到的英文