跳到主要内容

信息收集

信息收集的分类

  • 服务器的相关信息(真实ip,系统类型,版本,开放端口,WAF等)

  • 网站指纹识别(包括,cms,cdn,证书等) dns记录

  • whois信息,姓名,备案,邮箱,电话反查(邮箱丢社工库,社工准备等)

  • 子域名收集,旁站,C段等

  • google hacking针对化搜索,word/电子表格/pdf文件,中间件版本,弱口令扫描等

  • 扫描网站目录结构,爆后台,网站banner,测试文件,备份等敏感文件泄漏等

  • 传输协议,通用漏洞,exp,github源码等

常见方法

  1. whois查询

    域名在注册的时候 需要填入个人或者企业信息 如果没有设置隐藏属性可以查询出来 通过备案号 查询个人或者企业信息 也可以whois反查注册人 邮箱 电话 机构 反查更多得域名和需要得信息。

  2. 收集子域名

  3. 端口扫描

    常见的端口是tcp 和udp两种类型(0~65535)

  4. 查找真实ip

    企业的网站,为了提高访问速度,或者避免黑客攻击,用了cdn服务,用了cdn之后真实服务器ip会被隐藏。

  5. 探测旁站及C段

    旁站:一个服务器上有多个网站 通过ip查询服务器上的网站

    c段:查找同一个段 服务器上的网站。可以找到同样网站的类型和服务器,也可以获取同段服务器进行下一步渗透。

  6. 网络空间搜索引擎

    通过这些引擎查找网站或者服务器的信息,进行下一步渗透。

  7. 扫描敏感目录/文件

    通过扫描目录和文件,大致了解网站的结构,获取突破点,比如后台,文件备份,上传点。

  8. 指纹识别

    获取网站的版本,属于那些cms管理系统,查找漏洞exp,下载cms进行代码审计。

whois查询

通过whois来对域名信息进行查询,可以查到注册商、注册人、邮箱、DNS解析服务器、注册人联系电话等,通过每个网站查询的信息可能会有差异。

whois 域名

whois详细查询地址

备案查询地址

收集子域名

查询目标域名信息常用方式

FOFA:title="公司名称"

百度:intitle=公司名称

Google:intitle=公司名称

钟馗之眼:site:"域名"

站长之家:直接搜索名称或者网站域名即可查看相关信息

  • 检测CNAME记录

    输入命令nslookup -q=cname 域名,查看返回的结果与设置的是否一致即可

  • 检测TXT记录

    输入命令nslookup -q=txt 域名,查看返回的结果与设置的是否一致即可

收集子域名

  • 子域名在线查询(暴力枚举)

    https://phpinfo.me/domain

  • censys(基于SSL证书查询)

    https://search.censys.io

  • dns侦测

    https://dnsdumpster.com

  • FOFA搜索子域名

    https://fofa.so

    语法:domain="域名"

  • 钟馗之眼搜索子域名

    https://www.zoomeye.org

    语法:site:"域名"

  • Hackertarget查询子域名

    https://hackertarget.com/find-dns-host-records

  • 360测绘空间

    https://quake.360.cn

    语法:domain:"域名"

  • Layer子域名挖掘机(暴力枚举)

  • FuzzDomian(web界面,枚举)

  • OneForALL(功能较全)

    https://github.com/shmilylty/OneForAll

    pip3 install --user -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/  //安装模块
    python3 oneforall.py --target baidu.com run //运行
  • SubDomainBrute(暴力枚举)

    pip install aiodns  //安装模块
    subDomainsBrute.py freebuf.com //运行
    subDomainsBrute.py freebuf.com --full -o result.txt //使用自带的subnames_full.txt字典进行枚举,并将结果保存到result.txt
  • Sublist3r

    https://github.com/aboul3la/Sublist3r

    git clone https://github.com/aboul3la/Sublist3r.git //下载项目
    pip install -r requirements.txt //安装模块
    python sublist3r.py -d baidu.com //默认参数扫描子域名
    python sublist3r.py -b -d baidu.com //使用暴力枚举扫描子域名
  • ksubdomain

    无状态子域名爆破

隐藏域名hosts碰撞

端口扫描

  • nmap扫描

    nmap -sV ip地址

    • 常用参数

      -sn:只做ping扫描,不做端口扫描(主机发现)
      -Pn:跳过主机发现,视所有主机都在线
      -PS/PA/PU:基于TCP(SYN、ACK)、UDP的指定端口的主机发现
      -sS/sT:TCP扫描,半/全连接扫描
      -sU:UDP扫描
      -p:指定端口扫描范围
      -sV:探测开放的端口的系统/服务信息
      --script=<Lua scripts>:指定脚本名称
      -iL:从文件中加载目标
      -O:获取操作系统信息
      -A:使能系统探测、版本检测、脚本扫描、路由追踪(探测端口指纹)

  • masscan扫描

    msscan ip地址 -p 1-65535 --rate=1000 //rate值越大越快
  • 御剑端口扫描

  • 在线端口扫描

    http://coolaf.com/tool/port

常见端口及攻击方式

旁站与C段

旁站是和已知目标站点在同一服务器但不同端口的站点,建议先收集已有IP的旁站,再探测C段,确认C段目标后,再在C段的基础上再收集一次旁站

  • 网络空间搜索引擎查询(如FOFA、钟馗之眼等)

    同IP旁站:ip="192.168.0.1"

    C段:ip="192.168.0.0/24"

  • 在线c段查询

    https://c.webscan.cc

  • nmap扫描

    nmap -p 80,443,8000,8080 -Pn 192.168.0.0/24
  • 使用脚本探测C段

    pip install requests //安装模块

    #coding:utf-8
    import requests
    import json

    def get_c(ip):
    print("正在收集{}".format(ip))
    url="http://api.webscan.cc/?action=query&ip={}".format(ip)
    req=requests.get(url=url)
    html=req.text
    data=req.json()
    if 'null' not in html:
    with open("resulit.txt", 'a', encoding='utf-8') as f:
    f.write(ip + '\n')
    f.close()
    for i in data:
    with open("resulit.txt", 'a',encoding='utf-8') as f:
    f.write("\t{} {}\n".format(i['domain'],i['title']))
    print(" [+] {} {}[+]".format(i['domain'],i['title']))
    f.close()

    def get_ips(ip):
    iplist=[]
    ips_str = ip[:ip.rfind('.')]
    for ips in range(1, 256):
    ipadd=ips_str + '.' + str(ips)
    iplist.append(ipadd)
    return iplist
    ip=input("请你输入要查询的ip:")
    ips=get_ips(ip)
    for p in ips:
    get_c(p)

网站头信息收集

  • 中间件

    如apache、iis7、iis7.5、iis8、nginx、weblogic、tomcat等

  • 网站组件

    如jquery、vue等

  • 界面框架

    bootstrap

收集方式

  • 通过浏览器获取

  • 在线指纹识别

  • 火狐插件 Wappalyzer

  • 网络空间搜索

  • curl查询头信息

    curl https://www.moonsec.com -i

端口扫描

  • nmap

    nmap ip地址  #先利用ping检测主机是否存活,利用tcp扫描目标主机的常见端口的top1000
    nmap -p U:53 ip地址 #扫描UDP端口

    参数:

    -sn:只做ping扫描,不做端口扫描(主机发现)

    -Pn:跳过主机发现,视所有主机都在线

    -PS/PA/PU:基于TCP(SYN、ACK)、UDP的指定端口的主机发现

    -sS/sT:TCP扫描,半/全连接扫描

    -sU:UDP扫描

    -p:指定端口扫描范围(-p-:全端口)

    -sV:探测开放的端口的系统/服务信息

    -sC:使用脚本扫描,调用默认脚本

    -iL:从文件中加载目标

    -O:获取操作系统信息

    -A:使能系统探测、版本检测、脚本扫描、路由追踪(-O -sC -sV)

    常用扫描方式:

    //存活探测
    nmap -sn 192.168.1.0/24 #扫描存活主机
    nmap -Pn -p445 192.168.1.0/24 #忽略主机存活扫描445端口
    nmap -PE 192.168.1.0/24 #利用ping icmp echo扫描(常用于内网扫描)
    //扫描技巧
    nmap -sS -p- 192.168.1.1 #半开放式扫描(仅发送syn+ack,目标不记录ip地址)
    nmap -sA -p- 192.168.1.1 #tcp窗口扫描 (只发送ack,目标不记录ip地址)
    nmap -sU -p- 192.168.1.1 #UDP扫描,速度快,发包数量小(常用于内网扫描)
    //版本识别
    nmap -sV -O -p- 192.168.1.1 #根据响应包中的banner提取服务的版本信息,并识别目标机器的操作系统版本
    //脚本扫描
    nmap -sC 192.168.1.1 #使用脚本扫描(可能有误报)
    nmap --script=xxx 192.168.1.1 #指定脚本扫描目标机器,返回详细漏洞信息
    //绕过防火墙和IDS检测
    nmap -f --mtu=8 192.168.1.1 #指定使用分片(0-8)
    nmap --data-length 1000 192.168.1.1 #填充随机数据使数据包长度达到NUM
    nmap -e eth0 192.168.1.1 #指定网卡发送数据包
    nmap --proxies http://x.x.x.x:7890 192.168.1.1 #指定代理
    nmap --spoof-mac xx-xx-xx-xx-xx-xx #伪装mac
    //输出文件
    nmap 192.168.1.1 -oN result.txt #将标准输出保存到文件
  • masscan

收集网站信息

CMS指纹识别

收集好网站信息之后,应该对网站进行指纹识别,通过识别指纹,确定目标的cms(内容管理系统)及版本,方便制定下一步的测试计划,利用公开的poc或自己累积的对应手法等进行正式的渗透测试

  • 水泽信息收集工具

  • EHole棱动(棱角社区漏洞资产)

  • 通过特殊文件或特殊目录识别

  • 通过页面版权信息,poweredby关键字等

  • 前端代码中的相关信息(特征js文件+特征html body+特征title)

  • robots.txt文件中的关键字(作用标记哪些文件目录可以被爬虫访问)

  • wapplazyer(根据响应包内容识别CMS)

  • 潮汐指纹 http://finger.tidesec.net

  • whatweb

    whatweb https://luoyunhao.com //kail

CMS漏洞利用

  • 常规搜索引擎
  • 乌云漏洞库
  • exploit-db
  • Cnvd
  • Github

目录/敏感文件收集

常见的敏感文件如.git文件泄露,.svn文件泄露,phpinfo泄露等

敏感信息收集

  • 御剑

  • 7kbstorm

    https://github.com/7kbstorm/7kbscan-WebPathBrute

  • dirmap

    https://github.com/H4ckForJob/dirmap

    pip install -r requirement.txt //安装
    python3 dirmap.py -i https://target.com -lcf //单个目标
    python3 dirmap.py -iF urls.txt -lcf //多个目标
  • dirsearch

    git clone https://gitee.com/Abaomianguan/dirsearch.git
    unzip dirsearch.zip
    python3 dirsearch.py -u http://target.com -e * //运行扫描
  • bbscan(信息泄露扫描)

    https://github.com/lijiejie/BBScan

    pip install -r requirements.txt //安装
    python BBScan.py --host www.target.com //扫描单个web服务
    python BBScan.py --host www.target.com --network 28 //扫描www.target.com/28网段下的所有主机
    python BBScan.py -f ip.txt //扫描txt文件中的所有主机
  • gobuster

    apt-get install gobuster //安装
    gobuster -u 网址 -w 字典 -c cookies -x 指定后缀 -t 线程数量 //基本用法

源代码审计

挖0day

  1. 全文通读——漏洞挖掘最全

  2. 敏感函数回溯--方便快捷挖掘漏洞

    eval assert create function arrat map (代码执行) system passthru popen shell_exec exec ``(命令执行) move_uploaded_file(upload) include require(RFI) echo print print_r(XSS)

  3. 定向功能分析法--定向挖掘某块功能的漏洞

中间件信息收集

IIS Apache httpd Nginx weblogic tomcat jboss jekins websphere

网站脚本信息收集

php、jsp、asp、aspx

数据库信息收集

Access(没有端口)、SQL server(1433)、Mysql(3306)、Oracle(1521)

SSH/TLS证书查询

SSL/TLS证书通常包含域名、子域名和邮件地址等信息,结合证书中的信息,可以更快速地定位到目标资产,获取到更多目标资产的相关信息

查询网站:

查找部署CDN网站的真实IP

判断是否有CDN

查找真实ip方式

  • dns历史解析记录

    通过以下这些网站可以访问dns的解析,有可能存在未有绑cdn之前的记录。

    https://dnsdb.io/zh-cn/ DNS查询(需购买会员)

    https://x.threatbook.cn/ 微步在线(需积分or工作认证)

    https://site.ip138.com

  • 子域名解析

    https://securitytrails.com (也可查dns历史)

  • 空间搜索ico图标

    下载图标 放到fofa识别

  • 网络空间直接搜索

    https://search.censys.io censys

    https://quake.360.cn/quake

  • 利用SSL证书找真实ip

    使用Censys获取网站SSL证书的HASH,然后使用HASH进行搜索

  • 获取Serial值,再放到网络空间引擎中查找

  • 利用邮箱获取真实ip

    获取后,真实性需要进一步确认

  • 网站敏感文件

    文件探针、phpinfo、网站源代码、GitHub信息泄露、js文件等

  • F5 LTM解码法

    当服务器使用F5 LTM做负载均衡时,通过对set-cookie关键字的解码真实ip也可被获取

    例如:Set-Cookie:BIGipServerpool_8.29_8030=487098378.24095.0000,先把第一小节的十进制数即487098378取出来,然后将其转为十六进制数1d08880a,接着从后至前,以此取四位数出来,也就是0a.88.08.1d,最后依次把他们转为十进制数10.136.8.29,也就是最后的真实ip

  • 扫全网获取真实ip(不建议,容易被设黑名单) https://github.com/superfish9/hackcdn https://github.com/boy-hack/w8fuckcdn

Google Hacking

  • site

    搜索带有相关域名的网站

    site:.tw
  • inurl

    搜索URL中带有相关内容的网页

    inurl:".php?id="

    静态/动态页面判断

    image-20220921101117704

    动态页面是为实时更新的,时间会与当前时间相近

  • allinurl

    可以指定URL中带有多个相关内容的网页

    allinurl:admin.php login.php
  • intext

    搜索正文中含有关键字的网页

    intext:学号
  • allintext

    搜索正文中含有多个关键字的网页

    allintext:学号 用户名
  • intitle

    搜索标题中含有关键字的网页

    intitle:后台管理
  • allintitle

    搜索正文中含有多个关键字的网页

    allintitle:后台管理 login
  • filetype

    指定文件类型

    filetype:xls

符号配合

  1. 精确搜索:给关键词加上双引号实现精确匹配双引号内的字符
  2. 通配符:*必须在精确搜索符双引号内部使用。用通配符代替关键词或短语中无法确定的字词
  3. 点号匹配任意字符:点号.匹配的是匹配某个字符,不是字、短语等内容。
  4. 基本搜索符号约束:加号+用于强制搜索,即必须包含加号后的内容。一般与精确搜索符一起应用。关键词前加-减号,要求搜索结果中包含关键词,但不包含减号后的关键词,用关于搜索结果的筛选
  5. 数字范围:用两个点号..表示一个数字范围。一般应用于日期、货币、尺寸、重量、高度等范围的搜索。如:手机2000..3000 元,注意“3000”与“元”之间必须有空格
  6. 布尔逻辑:符号|在多个关键字中,只要有一个关键字匹配上即可,符号&所有的关键字都匹配上才可以

fofa相关语法

title="beijing" #从标题中搜索
header="jboss" #从http头中搜索
body="Hacked by" #从html正文中搜索
domain="qq.com" #搜索根域名为qq.com的资产
host=".gov.cn" #从ur1中搜索指定关键字
port="443" #查找相应端口的资产
ip="1.1.1.1" #搜索指定ip
ip="220.181.111.1/24" #查询C段资产
orotocol="https" #搜索指定协议类型
icon_hash="713581487" #指定网站图标搜索相关资产
city="Hangzhou" #搜索指定城市的资产
region="zhejiang" #搜索指定行政区的资产
country="CN" #搜索指定国家(编码)的资产
cert="google" #搜索证书(https或者imaps等)中带有google的资产
server=="Microsoft-IIS/7.5" #搜索IIS 7.5服务器
app="HIKVISION-视频监控" #搜索指定指纹资产(海康威视设备)
domain="xxx" && status_code="200" #搜索指定网站状态码为200的资产
cert="hzvtc.edu.cn" #搜索证书中包含指定关键字的资产
cert="62915681758986821938903689415000632430" #搜索证书序列号

资产收集工具

  • Goby

  • ARL资产灯塔系统

    使用docker进行部署

    kail安装docker

    git clone https://github.com/TophantTechnology/ARL
    cd ARL/docker/
    docker volume create arl_db //创建数据卷(volume的目的是能够保存(持久化)数据以及共享容器间的数据)
    docker-compose pull //拉取内容
    docker-compose up -d //后台运行容器

移动端信息收集

ApplnfoScanner 移动端信息收集扫描工具(Android、iOS、WEB、H5、静态网站)