跳到主要内容

信息收集

信息收集的分类

  • 服务器的相关信息(真实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" #搜索证书序列号

查找log4j漏洞相关组件信息

app="APACHE-ActiveMQ"
app="Jenkins"
app="RabbitMQ"
app="Apache-log4j2-Web"
app="Jedis"
app="Apache_OFBiz"
app="APACHE-tika"
app="泛微-协同办公OA"
app="致远互联-FE"
app="jeewms"
app="APACHE-Skywalking"
app="Struts2"
app="APACHE-Shiro"
app="JEECMS"
app="JeeSite"
app="APACHE-dubbo"
app="OPENCms"
app="JEECG"
app="Jeeplus"
app="MyBatis"
app="vmware-SpringBoot-Framework"
app="APACHE-Solr"
app="Map/Reduce"
app="CLOUDERA-Hadoop-Hue"
app="splunk-日志分析"
app="vmware-vCenter"
app="APACHE-Storm"
app="APACHE-Druid"
app="JavaMelody"
app="openNMS-产品"
app="APACHE-Unomi"
app="ECLIPSE-jetty"
app="elastic-Elasticsearch"
app="RedHat-Jboss"
app="Openfire"
app="Oracle-BEA-WebLogic-Server"
app="Oracle-Weblogic_interface_7001"
app="Oracle-BI-Publisher-Enterprise"
app="vmware-vSphere-Web-Client"
app="RedHat-JBoss-AS"
..........

一些有趣的搜索语句

Shadow/soc/ks-Manager登录界面:
body="indeterminate" && body="MainController" && header="X-Powered-By: Express"
供暖监控系统:
body="s1v13.htm"
body="admin" server="tomcat"
获取免费的代理池:
body="get all proxy from proxy pool"
body="miner start"
一些蜜罐:
(header="uc-httpd 1.0.0" && server="JBoss-5.0") || server="Apache,Tomcat,Jboss,weblogic,phpstudy,struts"
阿里云某网段Webshell:
body="webshell -> http://{ip}:{port}/?cmd=ifconfig"
未授权访问摄像头:
app="webcamXP"
疫情监控防控系统:
title="疫情" &&(title="防控"||title="监控") && country="CN"
此语法可以查询到被挂黑的站点,紧张刺激:
body="hacked by"
GitHub域名接管:
title="Site not found · GitHub Pages" && server=="cloudflare"
这是一个批量上传的webshell,使用密码"r00ts"即可登录,这些目录中还会包含大量的批量上传的木马文件,可供大家进行研究分析:
body="x.aspx" && body="asp"
各种机场登录注册:
body="UA-111801619-3"
搜索邮件配置文件:
body="intitle:"index of" squirrelmail/"
批量上传的一句话后门,某些后门密码比较简单,并且密码都一样。这些服务器都有一定的漏洞,比如IIS上传等,并且以企业测试服务器居多,可能包含企业内部数据,并且可以成为跳板进入企业内部网络:
body="asp;.jpg"
能搜到很多html中明文显示的用户名密码的:
body="admin" && body="123456" && title="登录"
识别cobalt strike服务器,cobalt strike C/S架构的商业渗透软件,适合多人进行团队协作,可模拟APT做模拟对抗,进行内网渗透,是当前比较热门的一款C2软件,无论是红蓝对抗(HW),还是应急响应中,快速识别C2服务器是重要的工作之一:
header="HTTP/1.1 404 Not Found Content-Type: text/plain Date:"||protocol="cobaltstrike"||cert="Serial Number: 146473198"
app="Canon-网络摄像头"
密码文件:
(body="password.txt" || body="密码.txt") && title="index of"
ss机场框架:
body="SSPanel-Uim"
私服GM管理后台 一般都有默认密码,数据库弱口令,或者后门,注入:
title="GM管理后台" title="传奇后台" body="GM校验码"
xray扫描结果:
title="X-Ray Report" || body="Powered by xray"
vulscan 扫描框架:
title="vulscan"
body="选择区服" && body="充值" && body="后台"
机场【科学——上网】:
body="<a href= "staff">STAFF</a >" && body="<a href="tos">"
各种指挥系统的登录后台:
body="<a href= "staff">STAFF</a >" && body="<a href="tos">"
title="指挥" && title="登录"
查看看别人家搭建的蜜罐捕获攻击情况,红色的为攻击者,黄色的为蜜罐部署位置,看看哪个国家的肉鸡多~:
body="img/mhn_logo.png" && body="world-map"
社工库:
title=="社工库" || ((title="社工库" && title="系统") ||(title=="社工库查询" ))
该后台为逆苍穹游戏私服运营管理后台,如果存在/action/api_show.php该文件 则密码为value的一句话木马后门:
body="网站管理员登陆" && port="8090"
此语句搜索源代码等文件,可以修改rar部分,搜索自己需要的内容,也可根据文件类型进行筛选:
title="Index of" && body="rar"
未授权的摄像头:
title="webcam 7" && body="Live View"
另类查找九安监控:
port="600001" && body="login_chk_usr_pwd"
路由设备登陆界面:
title=="欢迎使用RippleOS"
该语法可直接访问到任意使用python3.6.3、3.6.8、3.7.X搭建的简易服务器,然后可以直接访问甚至下载其服务器所有展示内容(毕设Demo、内部测试Demo、源码测试、电影图片XX、相册...):
(server="SimpleHTTP/0.6 Python/3.6.3" || server="SimpleHTTP/0.6 Python/3.6.8" || server="SimpleHTTP/0.6 Python/3.7.0" || server="SimpleHTTP/0.6 Python/3.7.1" || server="SimpleHTTP/0.6 Python/3.7.2" || server="SimpleHTTP/0.6 Python/3.7.3" || server="SimpleHTTP/0.6 Python/3.7.4" || server="SimpleHTTP/0.6 Python/3.7.5" || server="SimpleHTTP/0.6 Python/3.7.6") && title="Directory listing for"
也许是用户量最大的xss系统:
body="tmp_downloadhelper_iframe" && body="mr_15"
关于情报中心的网站内容:
title="情报中心"
weblogic:
port="7001" && app="Weblogic_interface_7001"
不用FQ的Google:
body= "var c =Array.prototype.slice.call(arguments,1):return function() {var d=c.slice();"
未授权burp:
title="Burp Suite" && body="Proxy History"
文件上传接口:
body="method=\"post\" enctype=\"multipart/form-data\"" && body="<input type=\"file\""
多人运动:
protocol="beacon" || protocol="cobaltstrike"
thinkphp:
header="thinkphp"
开放的python服务:
server="SimpleHTTP" && title="Directory listing for"
vue组件:
body="<strong>We're sorry but mas-creator-admin doesn't work properly without JavaScript"

资产收集工具

  • 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、静态网站)