域名信息收集

域名是什么

域名(英语:Domain Name),又称网域,是由一串用点分隔的名字组成的 Internet 上某一台 计算机 或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。

由于 IP地址 具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并通过网域名称系统(DNS,Domain Name System)来将域名和 IP地址 相互 映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的 IP地址 数串。

注册域名

国内域名注册服务商

万网(阿里云旗下)
新网

国外域名注册服务商

NameSilo
GoDaddy

二级域名、多级域名

子域名(或子域,英语:Subdomain)是在 域名系统 等级中,属于更高一层域的域。比如,mail.example.com 和 calendar.example.com 是 example.com 的两个子域,而 example.com 则是 顶级域 .com 的子域。
凡顶级域名前加前缀的都是该顶级域名的子域名,而子域名根据技术的多少分为二级子域名,三级子域名以及多级子域名。

域名的分类

国际域名

  • .com - 商业公司
  • .net - 网络服务
  • .org - 组织机构
  • .gov - 政府部门
  • .edu - 教育机构
  • .mil - 军事领域
  • .int - 国际组织

国别域名

  • .cn - 中国
  • .uk - 英国
  • .us - 美国

新顶级域名

  • .biz
  • .info
  • .name
  • .pro
  • .aero
  • .coop
  • .museum

域名联系人信息

Whois

用于查询域名所有者、到期日、所属注册商等详细 WHOIS 信息。

查询网站

Whois.com - Domain Names & Identity for Everyone
域名WHOIS查询 - WhoisSoft
域名Whois查询 - 站长之家
在线域名Whois查询,网站Whois反查-在线站长工具 bugscaner
whois查询-中国万网
域名信息查询 - 腾讯云
国家域名whois - CNNIC(只能查询 .cn 域名)

终端工具

whois | Kali Linux Tools

域名反查

可以使用邮箱、注册人、电话,ICP备案信息等进行反向查询。
域名Whois反查 - 站长之家

ICP备案

ICP备案,是为了防止在网上从事非法的网站经营活动,打击不良互联网信息的传播,国家对互联网信息服务实行的备案制度。
互联网信息服务管理办法》指出互联网信息服务分为经营性和非经营性两类。国家对经营性互联网信息服务实行许可制度;对非经营性互联网信息服务实行备案制度。未取得许可或者未履行备案手续的,不得从事互联网信息服务。
非经营性互联网信息服务备案管理办法》于2005年3月20日起施行。办法指出在中华人民共和国境内提供非经营性互联网信息服务,应当依法履行备案手续。未经国家机关单位许可备案,不得在中华人民共和国境内从事非经营性互联网信息服务。

备案信息查询

ICP/IP地址/域名信息备案管理系统
ICP备案查询 - 站长工具

企业信息查询

企业信用信息公式系统

天眼查-商业查询平台_企业信息查询_公司查询_工商查询_企业信用信息系统
企查查-工商信息查询-公司企业注册信息查询-全国企业信用信息公示系统
爱企查首页 - 专业企业查询平台 - 查企业 - 查老板 - 查风险 - 工商信息查询系统

子域名信息

子域名通常用于其他业务系统,意味着更多的测试点。

在线子域名查询

在线子域名查询 - phpinfo.me
子域名查询|ip反查域名 - DNSGrep

子域名字典枚举工具

subDomainBrute
Layer子域名挖掘机
Sublist3r
theHarvester
Teemo

DNS

域名系统(英文:Domain Name System,缩写:DNS)是 互联网 的一项服务。它作为将 域名IP地址 相互 映射 的一个 分布式数据库 ,能够使人更方便地访问互联网。DNS使用 UDP 端口 53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

本地 hosts 与 DNS 有什么关系

Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的 IP 地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从 Hosts 文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交 DNS 域名解析服务器进行 IP 地址的解析。
需要注意的是,Hosts 文件配置的映射是静态的,如果网络上的计算机更改了请及时更新 IP 地址,否则将不能访问。

DNS 解析类型

类型 作用
A 将域名指向一个 IPv4 地址
CNAME 指向另一个域名
MX 用于邮件服务器,相关参数由邮件注册商提供
TXT 附加文本信息,常用于域名验证
NS 域名服务器记录,可将指定域名交由其他 DNS 服务器解析管理
AAAA 将域名指向一个 IPv6 地址
SRV 用 DNS 做服务发现,可以将端口映射到指定的子域名上

DNS 在线解析

DNS 在线解析
Ping.cn-DNS在线查询工具
域名解析查询(A/Txt/Cname/Mx/Srv/AAAA记录)

DNS 解析工具

nslookup

证书反查

crt.sh | Certificate Search

域名信息综合收集

网站信息综合查询

Netcraft

OSINT 收集工具

Maltego

IP 信息

Ping

Ping(Packet Internet Groper,因特网包探索器),用于测试网络是否正常,也可以 ping 域名获取对应的服务器 IP。(如果服务器使用了 CDN 则返回的是 CDN 加速节点的 IP)

1
2
3
4
ping [domain]/[ip]

# 示例
ping baidu.com

nslookup

nslookup(name server lookup,域名服务器查找)

1
2
3
4
5
6
7
8
9
nslookup [domain] [dns-server]

# 指定解析记录类型
nslookup -type=[type] [domain]

# 示例
nslookup baidu.com
nslookup -type=MX baidu.com
nslookup -type=MX baidu.com 114.114.114.114

ipwhois

Whois - CNNIC

什么是 CDN

CDN的全称是 Content Delivery Network,即 内容分发网络。CDN 是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN 的关键技术主要有内容存储和分发技术。

image.png

来源链接:什么是阿里云CDN

常见的 CDN 服务提供商

国外 CDN 服务提供商

CloudFlare
CloudFront
StackPath

国内 CDN 服务提供商

帝联
蓝讯
网宿
七牛云
腾讯
百度
阿里云

获取 CDN 之后的真实 IP

通过 DNS 解析历史

Netcraft
DNS History

通过子域名

处在主域名和子域名上的业务都在同一台服务器上而子域名没有做 CDN 加速时可以用此方法。

国外主机解析

针对只做了国内加速或在国外没有加速节点的服务器,当国外主机访问时则直接解析到主机。

国外 DNS 解析服务

Website uptime monitoring service, check is site down - Host-tracker
WebPageTest - Website Performance and Optimization Test
Website Speed Test | Pingdom Tools

其他方法

  • 网络空间搜索引擎
    • Fofa
    • Censys
    • Shodan
  • 邮件
  • APP 抓包
  • 微信服务号抓包

端口服务信息

Windows

1
netstat -ano | findstr 80

Linux

1
netstat -an | grep 80

测试目标机器端口开放状态

1
2
3
4
telnet 192.168.1.88 80
wget 192.168.1.88 80
nc -vz 192.168.1.88 80
nc -vz 192.168.1.88 1-65535

常用端口列表

common-ports.pdf

攻击方向

端口 说明 攻击方向
21/22/69 FTP/SFTP 文件传输协议 允许匿名上传、下载、爆破和嗅探
2049 NSF(Network File System) 配置不当
139 Samba 文件共享协议 爆破、未授权访问、RCE
389 LDAP 目录访问协议 注入、允许匿名访问、弱口令
22 SSH 爆破、SSH 隧道及内网代理转发、文件传输
23 Telnet 爆破、嗅探、弱口令
3389 RDP 远程桌面 爆破
5900 VNC 爆破、弱口令
5632 PcAnywhere 远程控制服务 密码抓取、代码执行
80/443/8080 常见的 Web 服务端口 Web 攻击、爆破、漏洞利用
7001/7002 Weblogic 控制台 Java 反序列化、弱口令
8080/8089 Jboss/resin/jetty/Jenkins 反序列化、弱口令
9090 Websphere 控制台 Java 反序列化、弱口令
4848 Glassfish 控制台 弱口令
1352 Lotus domino 邮件服务 弱口令、信息泄露、爆破
10000 Webmin-web 控制面板 弱口令
3306 MySQL 数据库 注入、提权、爆破
1433 MSSQL数据库 注入、提权、SA 弱口令
1521 Oracle 数据库 注入、反弹 Shell、TNS 爆破
5432 PostgreSQL数据库 注入、弱口令、爆破
27017/27018 MongoDB 数据库 未授权访问、爆破
6379 Redis 数据库 未授权访问、弱口令
5000 Sysbase/DB2 数据库 注入、爆破
53 DNS 域名解析服务 允许区域传送、DNS 劫持、缓存投毒、DNS 欺骗
67/68 DHCP 动态主机配置协议 劫持、欺骗
161 SNMP 简单网络管理协议 爆破、搜集目标内网信息
2181 Zookeeper 未授权访问
8069 Zabbix RCE、SQL 注入
9200/9300 Elasticsearch RCE
11211 Memcached 未授权访问
512/513/514 Linux Rexec rlogin 登录、爆破
873 Rsync 匿名访问、文件上传
3690 SVN SVN 泄露、未授权访问
50000 SAP Management Console RCE

Nmap

  1. 主机扫描 (Host Discovery);
  2. 端口扫描 (Port Scanning);
  3. 操作系统、软件版本探测 (Operating System Detection, Version Detection)。

使用方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 帮助文档
nmap --help

# 常用
nmap -sS -A -P [ip]

# 脚本路径(lua):/usr/share/nmap/scripts/
# 查看脚本总数:/usr/share/nmap/scripts/ | wc -l
# 脚本清单:https://nmap.org/nsedoc/scripts/

# 绕过鉴权
nmap --script=auth

# 暴力破解
nmap --script=brute

# 扫描漏洞
nmap --script=vuln

在线扫描服务

在线端口检测,端口扫描,端口开放检查-online tool-postjson

masscan

nmap 相似,同时还可以与 nmap 无缝衔接。

masscan | Kali Linux Tools

1
masscan -p22,80,445 192.168.1.0/24

nbtscan

用于探测内网主机。

nbtscan | Kali Linux Tools

1
nbtscan -r 192.168.1.0/24

指纹识别

通过关键特征,识别出目标的 CMS 系统、服务器、开发语言、操作系统、CDN、WAF 的类别和版本等信息。

识别对象

  • CMS 信息:如 Discuz、织梦CMS、帝国CMS、PHPCMS、ECshop 等;
  • 前端技术:如 jQuery、Bootstrap、Vue、ACE 等;
  • 开发语言:如 PHP、Java、Ruby、Python、C# 等;
  • Web 服务器:如 Apache、Nginx、IIS、lighttpd 等;
  • 应用服务器:如 Tomcat、Jboss、Weblogic、Websphere 等;
  • CDN 信息:如 Cloudflare、帝联、蓝讯、网宿、七牛云、阿里云等;
  • WAF 信息:D盾、云锁、宝塔、安全狗、360 等。

CMS 指纹识别

CMS(Content Management System,内容管理系统

各类开源 CMS

  • 企业建站系统:Metinfo(米拓)、蝉知、SiteServer CMS 等;
  • B2C 商城系统:商派 Shopex、ECshop、HiShop、XpShop 等;
  • 门户建站系统:DedeCMS(织梦)、帝国CMS、PHPCMS、动易、CmsTop 等;
  • 博客系统:WordPress、Z-Blog 等;
  • 论坛社区:Discuz、PHPwind、WeCenter 等;
  • 问答系统:Tipask、Whatsns 等;
  • 知识百科系统:HDwiki;
  • B2B 门户系统:Destoon、B2Bbuilder、友邻B2B 等
  • 人才招聘网站系统:骑士CMS、PHP云人才管理系统等;
  • 房产网站系统:FangCMS等;
  • 在线教育建站系统:Kesion、EduSoho等;
  • 电影网站系统:苹果CMS、ctcms、movcms等;
  • 小说文学建站系统:杰奇CMS等;

版权信息

像是在页面底部,或者是 Title 处的版权声明信息。
image.png

image.png

特定文件 MD5 值

默认的 CSS、JS、图片等文件的 MD5 值,下载文件后计算即可得出。
image.png
image.png

网页源代码

浏览器用 F12 快捷键启动开发者工具,再用 Ctrl+F 查找功能搜索关键词。
image.png
再以 WordPress 为例,用户上传的图片和文件都会存储在wp-content/目录下
image.png

通过特定文件分析

搜索引擎使用爬虫Spider,又称蜘蛛)爬取网站页面制作成索引,就可以让用户在搜索引擎中通过关键字搜索到。而网站也有一些不希望被搜索引擎搜索到的页面或文件(如管理后台),这时就定义了一个 robots.txt 文件,该文件是网站和搜索引擎之间的协商,由网站管理员定义,告知爬虫哪些文件或目录允许或不允许收录
image.png
image.png

CMSprint

该项目收集了主流 CMS 系统的特定文件 MD5 值,可以结合这份数据开发一套识别 CMS 系统的脚本。
image.png

Lucifer1993/cmsprint - Github

whatweb

whatweb 是一款 CMS 识别工具,集成在 Kali Linux 的工具集中。

whatweb | Kali Linux Tools

1
2
# 使用示例,-v 表示输出详细信息
whatweb -v https://www.example.com

CMSeek

Kali 环境下可以使用 apt 直接安装。

image.png

[Tuhinshubhra/CMSeeK - Github](Tuhinshubhra/CMSeeK - Github)

1
2
# 使用示例
cmseek -u https://www.example.com

Wappalyzer

一款识别 Web 网站技术栈的浏览器插件,支持 Chrome/Edge,Firefox 等浏览器。
image.png

Find out what websites are built with - Wappalyzer

whatruns

Wappalyzer 相似,但识别的正确率要低一些。
image.png

WhatRuns — Discover What Runs a Website

bugscaner

在线 CMS 识别服务。
image.png

在线指纹识别,在线cms识别小插件–在线工具

御剑指纹扫描器

Windows 平台下的老牌工具(需要安装 .NET Framework 3.5)。

Test404 轻量级 CMS 指纹识别

较为小众的轻量化 CMS 指纹识别工具,可以导入文件批量探测。

CDN 指纹识别

通过 Ping

1
ping www.example.com

image.png
注意 PING wordpress.org(198.143.164.252) 这部分,如果存在 CDN 则可能显示的是 CDN 节点的域名。

通过 nslookup

1
2
# 第二个参数是指定 DNS
nslookup www.example.com 114.114.114.114

image.png
多尝试几次 nslookup,可能每次得到的 IP 地址都不一样,则可以判断是否存在 CDN。

多地点 ping

image.png

多个地点Ping服务器,网站测速 - 站长工具

lbd

lbd(load balance detector,负载均衡探测器)

注意是 “lbd“ 而不是 “ldb“。

1
lbd www.example.com

image.png

cdn.chinaz.com

image.png

各地CDN节点测速结果 - CDN云观测 - 站长工具

www.cdnplanet.com

image.png

CDN Finder - CDN Planet

w8fuckcdn

通过扫描全网绕过CDN获取网站IP地址

image.png

boy-hack/w8fuckcdn - Github

xcdn

尝试找出cdn背后的真实ip

image.png

3xp10it/xcdn - Github

WAF

WAF(Web Application Firewall,Web 应用防火墙),用于网站安全的防护,可以过滤 HTTP/HTTPS 请求,拦截恶意攻击。

ModSecurity

一款开源的跨平台 Web 应用程序防火墙(WAF)引擎,支持 Apache,IIS 和 Nginx。

  • SQL Injection (SQLi):阻止SQL注入
  • Cross Site Scripting (XSS):阻止跨站脚本攻击
  • Local File Inclusion (LFI):阻止利用本地文件包含漏洞进行攻击
  • Remote File Inclusione(RFI):阻止利用远程文件包含漏洞进行攻击
  • Remote Code Execution (RCE):阻止利用远程命令执行漏洞进行攻击
  • PHP Code Injectiod:阻止PHP代码注入
  • HTTP Protocol Violations:阻止违反HTTP协议的恶意访问
  • HTTPoxy:阻止利用远程代理感染漏洞进行攻击
  • Shellshock:阻止利用Shellshock漏洞进行攻击
  • Session Fixation:阻止利用Session会话ID不变的漏洞进行攻击
  • Scanner Detection:阻止黑客扫描网站
  • Metadata/Error Leakages:阻止源代码/错误信息泄露
  • Project Honey Pot Blacklist:蜜罐项目黑名单
  • GeoIP Country Blocking:根据判断IP地址归属地来进行IP阻断

image.png

SpiderLabs/ModSecurity - Github

WAF 类型

  • 硬件型 WAF(厂商安装)
  • 云 WAF(配合云服务器使用,提供商有 阿里云、腾讯云、华为云…)
  • 软件型 WAF(部署在 Apache、Nginx 等 HTTP 服务器上)

WAF 厂商

  • 宝塔
  • 知道创宇

image.png

  • 安全狗
  • 腾讯云
  • 阿里云

WAF 指纹识别

0xInfection/Awesome-WAF -Github

Everything about web application firewalls (WAFs). 🔥

Foreword: This was originally my own collection on WAFs. I am open-sourcing it in the hope that it will be useful for pentesters and researchers out there. You might want to keep this repo on a watch, since it will be updated regularly. “The community just learns from each other.” #SharingisCaring

“关于web应用程序防火墙(WAF)的一切。”
一个关于 WAF 特征的仓库。

wafw00f

The Web Application Firewall Fingerprinting Tool.
— From Enable Security

一款非常热门的 Web应用程序防火墙指纹工具,Kali Linux 内置。
image.png

1
wafw00f https://example.com

wafw00f | Kali Linux Tools
enablesecurity/wafw00f - Github

nmap 识别 WAF

image.png

1
nmap example.com --script=http-waf-detect.nse

sqlmap 识别 WAF

默认就会执行识别 WAF 操作,识别成功则会提示。
image.png

1
sqlmap -u "exmple.com/search.php?id=1"

搜索引擎收集信息

Google hacking

运算符

  • 完全匹配
    • 用双引号括住,例如 “Burp Suite”
  • 任意关键词
    • 在两个关键词中间添加 “OR”,如 “管理 OR 登录”
  • 筛选结果
    • 用 “-xxx”,除去包含 “xxx” 的搜索结果
  • 限定数字范围
    • 在数字之间添加 “..”,如 1..100

高级语法

  • 搜索指定网站的内容
    • site:example.com
  • 搜索网页内容
    • intext:Powered by Discuz
    • allintext
  • 搜索网页标题
    • intitle:后台登录
    • allintitle
  • 搜索 URL
    • inurl:index.php?id=1
    • allinurl
  • 指定文件类型
    • filetype:pdf

Google Hacking Database

Google Hacking 的语法收集

Google Hacking Database (GHDB) - Google Dorks, OSINT, Recon
BullsEye0/google_dork_list - Github

网络空间搜索(测绘)引擎

OSINT

OSINT Framework

Shodan

Shodan 是最早的互联网设备搜索引擎,与 Google, Bing 等搜索引擎不同,Shodan 收录的范围更大,包括服务器的系统版本、运行的服务,端口开放信息等。

过滤器

详细参考 Filter Reference - Shodan

  • 指定国家
    • country:”CN”
  • 指定城市
    • city:”Changsha”

延伸阅读 一些有趣的Shodan搜索

Censys

Zoomeye

Fofa

鹰图

集成框架

Kunyu

Kunyu (坤舆),名字取自 <坤舆万国全图> ,测绘实际上是一个地理信息相关的专业学科,针对海里的、陆地的、天上的地理信息进行盘点。同样应用于网络空间,发现未知、脆弱的资产也是如此,更像是一张网络空间地图,用来全面描述和展示网络空间资产、网络空间各要素及要素之间关系,以及网络空间和现实空间的映射关系。所以我认为“坤舆”还是比较贴合这个概念的。
Kunyu(坤舆),旨在让企业资产收集更高效,使更多安全相关从业者了解、使用网络空间测绘技术。

knownsec/Kunyu - Github

DiscoverTarget

尽可能花更少的时间,使用All in one工具收集更多的信息-URL采集。 集360、百度、谷歌、Shodan、Zoomeye、Censys、Fofa于一体一键运行获取目标URL、IP等信息。

coco413/DiscoverTarget - Github

Saucerframe

saucerframe是一个基于python3的开源批量POC检测框架,默认使用协程异步请求,支持多线程并发,支持多种指定目标方式,可用于批量POC检测,也可根据需要扩展功能。

saucer-man/saucerframe - Github

目录扫描

为什么要进行目录扫描

网站管理员在部署网站时可能会因为粗心而把敏感文件放在网站的根目录下,或没有更改 HTTPD 配置而导致目录泄露。
image.png

文件扫描思路

基本原理

域名后面拼接文件或目录名,访问并确认 HTTP 状态,如果为 200/403 则能证明该文件存在。

递归

针对文件夹进行递归测试,逐层返回信息。

字典

使用预先收集或制作的文件/目录列表进行自动化测试,任意一条匹配成功即可。

爆破

使用 a-zA-Z1-9 等各类字符组合,并从 1 - x 位逐个尝试。

爬虫

根据 robots.txt 的内容进行探测。

FUZZ

模糊测试,主要针对参数。

目录扫描字典

  • wordlists
  • Seclists

目录扫描工具

dirb

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#    -a <agent_string>         自定义 User-Agent
#
# -c <cookie_string> 设置 Cooike
#
# -E <certficate> 设置客户端证书文件
#
# -H <header_string> 设置 HTTP 请求头
#
# -i 是否大小写敏感
#
# -N <nf_code> 根据指定的 HTTP 状态码忽略响应包
#
# -o <output_file> 输出文件
#
# -p <proxy[:port]> 设置代理
#
# -r 不要递归扫描
#
# -S 不显示测试字符
#
# -u <username:password> 指定用户名和密码
#
# -X <extension> 扫描特定的扩展名

# 指定需要使用的字典(不指定则默认用 common) URL
dirb /usr/share/wordlists/common.txt https://example.com

DirBuster

由 OWASP 推出,现已并入 OWASP ZAP 项目,DirBuster 则不再维护。

ZAP

OWASP 新出品的漏洞扫描综合工具。

御剑后台扫描

Burp Suite

Intruder 模块下指定 payload 和爆破模式

绕过 WAF/IDS

  • Proxy
  • 网络空间搜索(测绘)引擎

防御

  • 设置访问权限;
  • 删除敏感文件;
  • 使用 WAF/IDS。

Git 信息收集

什么是版本控制系统

版本控制系统(Version Control System)是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。

VCS 的发展阶段

  • 本地 VCS
    • 直接存储在本机上,对于个人项目非常实用,但无法多人协作开发,如果更改了同一段代码则会冲突。
  • 集中式 VCS
    • 集中式版本控制系统 CVCS(Centralized Version Control Systems);
    • 并行的版本控制系统 CVS(Concurrent Version System);
    • SVN(Subversion);
    • 解决了本地 VCS 无法协同开发的痛点,适合多人协作。
  • 分布式 VCS
    • 相较于集中式 VCS 更为安全,不需要担心作为 VCS 的服务器损坏。

Git

  • Github
  • 码云
  • Coding

Git 使用方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 初次使用时,先要配置全局邮箱和名字
git config --global user.email "you@example.com"
git config --global user.name "Your Name"

# 进入存放代码的文件夹
cd projectname/

# 初始化仓库
git init

# 暂存文件
git add

# 提交,并添加备注
git commit -m "fix bugs"

# 提交,origin 是这个本地仓库的别名,可以另外指定
git push origin master

Git 为什么会泄露重要信息

  • 将私有仓库或密钥文件错误的提交到了 Github;
  • 部署项目时, .git/ 文件夹也被打包进去,并且放在网站的根目录下;

关于在 .git/ 文件夹中较为重要的文件

适用于上文提到的第二种方式。

  • .git/logs/HEAD:存储了 git 的日志信息,可以找到历史 Commit;
  • .git/index:暂存了 git add 操作的文件;
  • .git/refs/stash:暂存了 git stash 操作的文件;
  • .git/refs/heads/master:记录了 master 最后一次提交的 hash;
  • git/objects/pack/.pack:压缩文件。

Gtihub 搜索技巧

适用于上文提到的第一种方式。

  • 查询文件名中包含指定关键字的代码:
    • kali in:file
  • 查询路径/用户/组织名称中包含指定关键字的代码:
    • kali in:path
  • 上述两种方式组合使用:
    • kali in:path,file
  • 指定程序开发语言:
    • shodan language:python
  • 查询文件名为指定关键字,且开发语言为 php 的代码:
    • filename:config.php language:php
  • 查询标签数量大于等于 5 的仓库:
    • kali topics:>=5
  • 查询小于 1KB 的文件:
    • kali size:<1000
  • 查询 Star 总数在 10 到 50 之间:
    • kali stars:10..50
  • 查询最近一次更新时间大于某日的仓库:
    • kali pushed:>2022-4-1
  • 查询最后一次更新时间在两个时间段之内的仓库:
    • kali pushed:2021-4-1..2022-4-1
  • 查询仓库的创建时间大于等于指定日期:
    • kali created:>=2022-4-1
  • 筛选不需要的结果,如:排除开发语言为 Java 的仓库
    • kali pushed:2021-4-1..2022-4-1 -language:java

Git 仓库利用流程和工具

寻找 .git/ 文件夹

  • 目录扫描
  • robots.txt
  • Google hacking
    • intitle:”Index of /.git”

下载 .git/ 到本机

用 git 命令获取

1
2
3
git log
git reset --hard [log hash]
git diff

集成上述功能的 Git 利用工具

示例

CTFHub Git 信息泄露(Log)

1
2
3
4
5
dirb http://xxx.ctfhub.com:10800/
python GitHack.py http://xxx.ctfhub.com:10800/.git/
cd dist/xxx.ctfhub.com_10800/
git log
git diff 690ced82338b6036a3fe8322b33f922a0593988f

信息收集总结

常规信息收集

  • 域名信息
  • IP 信息
  • 端口服务信息
  • CMS 指纹识别
  • CDN 指纹识别
  • WAF 指纹识别
  • 搜索引擎(Google hacking)
  • 网络空间搜索(测绘)引擎
  • Web 目录扫描
  • Git 信息泄露

Kali 信息收集工具

  • 存活主机识别
    • arping(发送 ARP 或 ICMP 数据包)
    • fping(可以指定 ping 的主机范围)
    • hping3(TCP/IP 数据包组装/分析工具,也可以发起 flood 攻击)
    • masscan(最快的互联网端口扫描器,自称)
    • thcping6(atk6-thcping6,可以攻击 IPV6 和 ICMP 6 固有的协议弱点)
  • 路由分析
    • netdiscover(基于 ARP 的网络扫描工具)
    • netmask(可以在 IP 范围、子网掩码、CIDR、Cisco 等格式中相互转换)
  • 情报分析
    • maltego(信息收集和网络侦查工具)
    • spiderfoot(收集信息和探测资源)
    • theharvester(从开源情报中收集电子邮箱和子域名)
  • 网络扫描
    • masscan
    • nmap(主机发现,端口扫描,服务和版本探测,操作系统探测,防火墙/IDS 欺骗)
  • DNS 分析
    • dnsenum(多线程 Perl 脚本枚举域名 DNS 信息并发现非连续的 IP 段)
    • dnsrecon(DNS 枚举和扫描)
    • fierce(DNS 扫描)
  • IDS/IPS 识别
    • lbd(CDN、负载均衡识别)
    • wafw00f(WAF 识别)
  • SMB 分析
    • enum4linux(能够收集 Windows 系统的相关信息,如用户列表、主机列表、共享文件列表、密码策略信息、工作组和成员信息、主机信息,打印机信息等)
    • nbtscan(扫描开放的 NETBIOS 名称服务器)
    • smbmap(枚举域中的 Samba 共享驱动器。列出共享驱动器及权限,共享内容,上传/下载等。文件名自动下载模式匹配,甚至是执行远程命令)
  • SNMP 分析
    • onesixtyone(通过 SNMP 服务获取设备和系统信息)
    • snmp-check
  • SSL 分析
    • ssldump(SSL/TLS 网络协议分析工具)
    • sslh(采用 C 语言编写的开源端口复用软件)
    • sslscan(评估远程 Web 服务的 SSL/TLS 的安全性)
    • sslyze(扫描 SSL 中一些经典的配置错误)
  • dmitry(信息收集工具,包括子域名、电子邮箱,正常运行时间信息,TCP 端口扫描,whois 等)
  • ike-scan(VPN 服务嗅探工具)
  • legion(使用 NMAP,whataweb,nikto,vulners,hydra,smbenum,dirbuster,sslyzer,webslayer 等进行自动化侦察和扫描)

其他信息收集方式

  • 旁站/C段
  • 通过 APK 收集信息
    • apktool 反编译
    • 正则表达式匹配
      • grep -ohr -E "https?://[a-zA-Z0-9\.\/_&=@$%?~#~]*" /apps/com.name.android/ |sort|uniq >> result.txt
    • Nicholas-lang/apkmap - Github
  • 社会工程学工具包(Social Engineering Toolkit)
    • Spear-Phishing Attack Vectors(鱼叉式网络钓鱼攻击)
    • Website Attack Vetors(网站攻击)
    • Infectious Media Generator(传染媒介生成,俗称木马)
    • Create a Payload and Listener(创建 Payload 和 Listener,比如 MSF)
    • Mass Mailer Attack(邮件群发攻击,携带Payload,如木马执行脚本)
    • Arduino-Based Attack Vector(基于 Arduino 的攻击,类似树莓派的开发板)
    • Wireless Access Point Attack Vector(无线接入点攻击)
    • QRCode Generator Attack Vetor(二维码攻击)
    • Powershell Attack Vetors(Powershell 攻击)
    • Third Party Modules(第三方模块)
  • 内网信息收集(Windows 或 Linux 命令)