信息收集学习笔记

信息收集

注 : 笔记中拓扑图 xmind 源文件在其图片目录下


免责声明

本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关.


大纲

  • 漏洞信息

    • DAST
      • web漏扫
        • 主动漏扫
        • 被动漏扫
      • 综合漏扫
    • IAST
    • SAST
    • SRC历史漏洞)
    • 服务-组件-协议
  • 空间测绘

  • 网络

    • IP扫描
    • MAC扫描
    • 端口扫描
    • 域信息
      • 域环境
        • SPN扫描
      • 域控
    • 工控资产
    • 网络层指纹
  • 网站

    • 真实IP
    • 子域
    • 目录扫描
    • 参数枚举
    • web指纹
    • 旁站 & 反查
    • 历史快照
    • whois与备案
    • 截图
  • 主机

  • OSINT

    • 业务信息
    • 员工信息
  • APIkey/密钥信息

    • 通用关键词
    • 正则规则

相关文章

  • 我的信息收集之道
  • 【原创】CDN 2021 完全攻击指南(一)

资产过滤/整理

  • mstxq17/MoreFind - 一款用于快速导出 URL、Domain 和 IP 的小工具
  • tomnomnom/waybackurls - 提取 Wayback Machine 已知的域下所有 URL
    cat domains.txt | waybackurls > urls
  • lc/gau - 从 AlienVault 的 Open Threat Exchange,Wayback Machine 和 Common Crawl 中获取已知的 URL。

漏洞信息

相关文章

  • 一文洞悉DAST、SAST、IAST ——Web应用安全测试技术对比浅谈
  • 小议 Dashboard

DAST

动态应用测试

动态应用程序安全测试(Dynamic Application Security Testing)技术在测试或运行阶段分析应用程序的动态运行状态。它模拟黑客行为对应用程序进行动态攻击,分析应用程序的反应,从而确定该 Web 应用是否易受攻击。

web漏扫

漏洞扫描器就是扫描漏洞的工具,它能够及早暴露网络上潜在的威胁,有助于加强系统的安全性。漏洞扫描除了能扫描端口,还能够发现系统存活情况,以及哪些服务在运行。

漏洞扫描器本质上是一类自动检测本地或远程主机安全弱点的程序,能够快速的准确的发现扫描目标存在的漏洞,例如,SQL 注入,XSS 攻击,CSRF 攻击等,并提供给使用者扫描结果,提前探知到漏洞,预先修复。

在渗透过程中,一个好的漏扫工具在渗透测试中是至关重要的,可以说是渗透成功或者失败的关键点。一款优秀的扫描器会使渗透更加轻松,但不是扫描漏洞都能用漏扫扫出来的,比如:逻辑漏洞、一些较隐蔽的 XSS 和 SQL 注入。所以,渗透的时候,漏扫都是需要人员来配合使用的。

漏扫靶机

  • http://testphp.vulnweb.com/ - AWVS PHP+Ajax 漏洞扫描器测试平台
  • http://testphp.vulnweb.com/AJAX/ - AWVS Ajax 漏洞扫描器测试平台
  • http://testfire.net/ - IBM Appscan 测试平台
  • http://demo.aisec.cn/demo/aisec/ - Sec 漏洞扫描器测试平台
  • http://testaspnet.vulnweb.com/ - AWVS .Net 漏洞扫描器测试平台
  • http://testasp.vulnweb.com/ - AWVS ASP 漏洞扫描器测试平台
  • http://zero.webappsecurity.com/

主动漏扫

相关文章

  • 扫描POC的收纳之道

相关工具

  • projectdiscovery/nuclei - 一款基于 Go 语言开发的运行速度非常快且易于使用的开源安全漏洞扫描工具
  • knownsec/pocsuite3
  • jaeles-project/jaeles
  • AWVS-acunetix
    • 相关文章
      • 编写 AWVS 脚本探测web services
      • 论如何反击用 AWVS 的黑客
      • 了解AWVS的漏洞贪心设计,一个默认静态页竟然扫了3000+HTTP请求
    • 解密脚本
      • fnmsd/awvs_script_decode - 解密好的AWVS10.5 data/script/目录下的脚本
      • gatlindada/awvs-decode - AWVS 解码/解密方法,仅15行代码!!无须任何依赖任何工具
    • awvs13 docker 部署
      • 来自 [国光博客]
        docker pull secfa/docker-awvs   # pull 拉取下载镜像
        docker run -it -d -p 13443:3443 secfa/docker-awvs   # 将Docker的3443端口映射到物理机的 13443端口
        
        # 容器的相关信息
        # awvs13 username: [email protected]
        # awvs13 password: Admin123
        # AWVS版本:13.0.200217097
        # 浏览器访问:https://127.0.0.1:13443/ 即可
      • https://hub.docker.com/r/raul17/awvs13_crack
        docker run -tid -p 13443:3443 --name awvs_13_ubuntu --privileged=true images_id "/sbin/init"
        
        # awvs用户名密码见:/opt/awvs13/README.MD
        # awvs页面:https://x.x.x.x:13443/
        若访问awvs页面,发现没被破解,可进入容器,手动破解。
        cd /opt/awvs13
        cp wvsc /home/acunetix/.acunetix/v_200807155/scanner/
        chmod +x /home/acunetix/.acunetix/v_200807155/scanner/wvsc
        cp license_info.json /home/acunetix/.acunetix/data/license/
    • 辅助工具
      • test502git/awvs13_batch_py3 - 针对 AWVS 扫描器开发的批量扫描脚本,支持联动 xray、burp、w13scan 等被动批量
  • al0ne/Vxscan - python3 写的综合扫描工具,主要用来敏感文件探测 - 指纹+端口+目录结合,偏向信息泄露,漏洞扫描结果较少
  • nikto - 效果一般
    nikto -host http://xxx.xxx.xxx.xx:8080/
  • Xyntax/POC-T - 适合批量任务,速度可以
    • 刷 SRC 经验之批量化扫描实践
  • netsparker
  • woodpecker-framework/woodpecker-framwork-release
  • hktalent/scan4all

被动漏扫

相关文章

  • HTTP被动扫描代理的那些事

相关工具

  • chaitin/xray - 长亭的洞鉴漏扫社区版
    • xray
  • w-digital-scanner/w13scan - 一款插件化基于流量分析的扫描器,通过编写插件它会从访问流量中自动扫描,基于 Python3。
    python3 w13scan.py -s 127.0.0.1:7777 --html # 端口可省略,默认为7778,开启--html即实时生成html报告

综合漏扫

相关工具

  • Nessus
    • 报告翻译
      • FunnyKun/NessusReportInChinese
      • Bypass007/Nessus_to_report
    • 输出渲染
      • Ebryx/Nessus_Map - 渲染 .nessus 文件
      • 0bs1d1an/sr2t - 将扫描报告转换为表格格式
      • Hypdncy/NessusToReport - nessus扫描报告自动化生成工具
  • ysrc/xunfeng - 巡风是一款适用于企业内网的漏洞快速应急,巡航扫描系统。
  • Goby - 内网扫描, 速度挺快, 打 C 段很好用
    • 闲来无事,反制GOBY

IAST

交互式应用测试

交互式应用程序安全测试(Interactive Application Security Testing)是2012年 Gartner 公司提出的一种新的应用程序安全测试方案,通过代理、VPN 或者在服务端部署 Agent 程序,收集、监控 Web 应用程序运行时函数执行、数据传输,并与扫描器端进行实时交互,高效、准确的识别安全缺陷及漏洞,同时可准确确定漏洞所在的代码文件、行数、函数及参数。IAST 相当于是 DAST 和 SAST 结合的一种互相关联运行时安全检测技术。

相关文章

  • 浅谈被动式IAST产品与技术实现
  • IAST交互式应用安全测试建设实录(一)
  • DongTai 被动型IAST工具

相关工具

  • https://github.com/btraceio/btrace
  • https://newrelic.com/
  • https://github.com/HXSecurity/DongTai

SAST

静态应用测试

静态应用程序安全测试(Static Application Security Testing)技术通常在编码阶段分析应用程序的源代码或二进制文件的语法、结构、过程、接口等来发现程序代码存在的安全漏洞。

相关资源

  • analysis-tools-dev/static-analysis - A curated list of static analysis (SAST) tools for all programming languages, config files, build tools, and more.

相关工具

  • Fortify Sca
    • 规则解密
      • 相关文章
        • fortify规则库解密之旅
        • fortify SCA内置规则破解到简单工具开发使用
      • 解密工具
        • liweibin123/fortify
  • Checkmarx CxSAST
  • Synopsys Static Analysis (Coverity)
  • ajinabraham/nodejsscan - nodejsscan is a static security code scanner for Node.js applications.

更多 SAST 工具请参考 语言安全


空间测绘

  • 空间测绘笔记

网络

相关文章

  • 内外网资产对应关系定位 [ 补 ]
  • 基于service的远程主机os识别之抄个痛快
  • 使用 DNS-SD 和 SSDP 扫描内网主机

TTL 来判断目的主机的操作系统类型

下面是默认操作系统的 TTL:

1、WINDOWS NT/2000   TTL:128
2、WINDOWS 95/98     TTL:32
3、UNIX              TTL:255
4、LINUX             TTL:64
5、WIN7              TTL:64

修改本机电脑上面的默认 TTL 值

通过修改本机上的 TTL 值可以混淆攻击者的判断 (当然, 很少有用户会这么做).TTL 值在注册表的位置是: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 其中有个 DefaultTTL 的 DWORD 值, 其数据就是默认的 TTL 值了, 我们可以修改 DefaultTTL 里面的 TTL 默认值, 但不能大于十进制的 255.

资产扫描工具

  • JE2Se/AssetScan - 资产探测工具,检测存活,检测风险端口,常规端口,全端口探测等等,对探测的端口的脆弱面进行安全分析进行 - 调用 masscan 端口扫 + 简易漏扫 + 报表生成
  • LangziFun/LangNetworkTopology3 - IP/IP 段资产扫描 --> 扫描开放端口识别运行服务部署网站 --> 自动化整理扫描结果 --> 输出可视化报表 + 整理结果 - 本质还是调用 masscan + 生成报表 实际使用效果不佳
  • Router Scan - 路由器扫描软件, 但扫 C 段也很有用
  • dilap54/RouterScan-console - Router Scan 命令行版
  • TophantTechnology/ARL - ARL 资产侦察灯塔系统旨在快速侦察与目标关联的互联网资产,构建基础资产信息库。 协助甲方安全团队或者渗透测试人员有效侦察和检索资产,发现存在的薄弱点和攻击面。
    • loecho-sec/ARL-Finger-ADD - 灯塔指纹添加脚本
  • er10yi/MagiCude - 分布式端口(漏洞)扫描、资产安全管理、实时威胁监控与通知、高效漏洞闭环、漏洞 wiki、邮件报告通知、poc 框架
  • shadow1ng/fscan - 支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写私钥、计划任务反弹shell、读取win网卡信息、web漏洞扫描等。

IP扫描

当设备连接网络,设备将被分配一个 IP 地址,用作标识。通过 IP 地址,设备间可以互相通讯,如果没有 IP 地址,我们将无法知道哪个设备是发送方,无法知道哪个是接收方。IP 地址有两个主要功能:标识设备或网络和寻址。

常见的 IP 位址分为 IPv4 与 IPv6 两大类,IP 地址由一串数字组成。IPv4 由十进制数字组成,并以点分隔,如:172.16.254.1 ;IPv6 由十六进制数字组成,以冒号分割,如:2001:db8:00:567:8:1

CIDR处理

  • projectdiscovery/mapcidr - Small utility program to perform multiple operations for a given subnet/CIDR ranges.
  • zhanhb/cidr-merger - A simple command line tool to merge ip/ip cidr/ip range, support IPv4/IPv6
  • ffffffff0x/iprange - 计算 ip 范围,支持 cidr,ip-range 格式的输入

ip信息查询

  • zu1k/nali
  • lionsoul2014/ip2region - 一个离线IP地址定位库和IP定位数据管理框架

ipv4

IPv4 地址是类似 A.B.C.D 的格式, 它是 32 位, 用 . 分成四段, 用 10 进制表示; 而 IPv6 地址类似 X:X:X:X:X:X:X:X 的格式, 它是 128 位的, 用 : 分成 8 段, 用 16 进制表示;

  • LOL

    # windows
    for /l %i in (1,1,255) do @ ping 192.168.1.%i -w 1 -n 1 | find /i "ttl="
    
    # windows
    # 把前期在外网搜集到的目标子域列表整理好,拿到内网循环ping,然后把解析到的ip截下来
    for /f "delims=" %i in (host.txt) do @ping -w 1 -n 1 %i | findstr /c:"[10." /c:"[192." /c:"[172." >> C:/users/public/out.txt
  • 探测工具

    • alexxy/netdiscover: netdiscover - 内网中实测效果不好,不建议使用
    • nbtscan - NETBIOS nameserver scanner - 内网中实测效果不好
    • nmap
      nmap -sP <网段>/24
    • shmilylty/netspy - netspy是一款快速探测内网可达网段工具
      netspy -h                   # 查看帮助信息
      netspy icmpspy              # 使用icmpspy模块进行探测
      netspy arpspy -i eth0       # 指定使用eth0网络接口进行arp协议探测
      netspy tcpspy -p 22 -p 3389 # 使用tcpspy模块进行探测
      netspy udpspy -p 53 -p 137  # 使用udpspy模块进行探测

ipv6

从 IPv4 到 IPv6 最显著的变化就是网络地址的长度,有 128 位长;


MAC扫描

MAC 位址,以太网地址或物理地址,它是一个用来确认网络设备位置的位址。

MAC 地址的长度为 48 位 (6 个字节),通常表示为 12 个 16 进制数,如:00-16-EA-AE-3C-40 就是一个 MAC 地址,其中前 6 位 16 进制数 00-16-EA 代表网络硬件制造商的编号,它由 IEEE(电气与电子工程师协会) 分配,而后 6 位 16 进制数 AE-3C-40 代表该制造商所制造的某个网络产品 (如网卡) 的系列号。只要不更改自己的 MAC 地址,MAC 地址在世界是惟一的。形象地说,MAC 地址就如同身份证上的身份证号码,具有唯一性.

探测工具

  • 科来 MAC 地址扫描器
  • arp-scan
    arp-scan -l

端口扫描

通过对目标地址的 TCP/UDP 端口扫描,确定其开放的服务数量和类型。通过端口扫描,可以基本确定一个系统的基本信息,并且结合测试人员的经验可以确定其可能存在,以及被利用的安全弱点,为进行深层次的渗透提供依据.

相关文章

  • Port Scanner Shootout
  • Nmap抓包分析与绕过Windows防火墙扫内网存活主机

Tips

  1. 有时候扫描主机会碰到显示大量开放端口, 这种可能都是虚的, 是 waf 在起作用.
  2. nmap 在有些场景下不一定能把所有开放端口扫出, 这时候换一个工具说不定有奇效.

LOL

# Linux scanning the 65535 ports
for port in {1..65535};do curl -s http://host:$port;done
for port in {1..65535};do wget -nv http://host:$port;done

# Linux scanning the 65535 ports with raw http request
for port in {1..65535}; do
    echo >/dev/tcp/host/$port &&
        echo "port $port is open" ||
        echo "port $port is closed"
done

# Linux scanning ports
curl http://host:[1-100] 1> 1.txt 2>/dev/null
curl http://host:[8000-9999] 1>> 1.txt 2>/dev/null

端口安全

  • 端口安全 - 记录一些端口渗透时的方法和思路

端口信息

  • Service Name and Transport Protocol Port Number Registry

服务器端口的分类

  • 公认端口/特权端口 : 0~1023,它们绑定特定的服务,端口的通信明确表明了某种服务的协议。例如:80端口是HTTP服务端口。
  • 注册端口 : 1024~49151,它们松散地绑定一些服务,就是说有许多服务绑定于这些端口,这些端口同样用于许多其它的目的
  • 动态/私有端口 : 49152~65535,这些端口一般不分配服务,有些较为特殊的程序,特别是木马程序非常喜欢使用这些端口,容易隐蔽。

当然,现实环境中什么端口都有可能承载正常的服务,就比如有人在 8 端口上承载网站

扫描工具

  • nmap
    • nmap 笔记
  • masscan
    # 常用
    masscan 127.0.0.0/24 -p80,161,443,873,2181,3389,6379,7001,8000,8009,8080,9000,9009,9090,9200,9300,10000,50070 > results.txt
    
    # 远程登录
    masscan 127.0.0.0/24 -p22,23,3389,5632,5800,5900,5901 > results.txt
    
    # 文件服务
    masscan 127.0.0.0/24 -p20,21,445,873,2049 > results.txt
    
    # 数据库
    masscan 127.0.0.0/24 -p1433,1521,3306,4100,5000,5432,5984,6379,11211,27017,27018 > results.txt
    
    # 单端口扫描
    masscan 127.0.0.0/24 -p443
    
    # 多端口扫描 扫描 80 或 443 端口的 B 类子网
    masscan 127.0.0.0/24 -p80,443
    
    # 扫描一系列端口 扫描 22 到 25 端口的 B 类子网
    masscan 127.0.0.0/24 -p22-25
    
    # 快速扫描
    masscan 127.0.0.0/24 -p80,8000-9000 --rate 100000
    
    # 排除目标
    masscan 127.0.0.0/24 -p80,8000-9000 --excludefile exclude.txt
    
    # 结果保存
    masscan 127.0.0.0/24 -p80,8000-9000 > results.txt
  • msf
    set scanner/portscan/tcp
    set rhosts 
    set ports 
    set THREADS 
    set TIMEOUT 
    run
  • gnebbia/halive - 快速对 URL 探活,可以配合端口扫描工具批量检测.
  • hdm/nextnet - 通过扫描 137 端口获得目标路由信息用于扩大网络拓扑的探测
  • hellogoldsnakeman/masnmapscan-V1.0 - 一款端口扫描器。整合了 masscan 和 nmap 两款扫描器. - 实际使用效果一般
  • RustScan/RustScan -rust 写的用于代替 nmap 的端口扫描器
    • 不是很推荐
  • projectdiscovery/naabu - A fast port scanner written in go with a focus on reliability and simplicity. Designed to be used in combination with other tools for attack surface discovery in bug bounties and pentests
    • naabu 是非常好用的扫描器,只不过需要调整使用的参数,默认使用效果并不很好,个人建议是,rate 4000,retries 3,运行多次来扫描不同端口,这样结果又快又准
  • L-codes/MX1014 - 灵活、轻便和快速端口扫描器
  • redtoolskobe/scaninfo
  • zyylhn/zscan

第三方

  • https://internetdb.shodan.io/

域信息

相关文章

  • 域渗透-域内信息收集
  • 浅谈内网信息收集之定位域管理员
  • 内网基础-定位域管理员
  • 内网渗透之域内信息收集
  • 内网信息收集二

域信息收集相关工具/脚本

  • PowerSploit
  • BloodHound - 域环境分析工具
    • 参考文章 : 域渗透分析工具BloodHound 1.5.2入门实战
  • impacket - 一个网络协议工具包
    git clone https://github.com/CoreSecurity/impacket.git
    cd impacket/
    python setup.py install
    cd impacket/examples
    • Ping.py

      一个简单的 ICMP ping 脚本,使用 ICMP echo 和 echo-reply 数据包检查主机状态。

      ./ping.py [Source IP] [Destination IP]
    • Lookupsid.py

      通过 [MS-LSAT] MSRPC 接口的 Windows SID bruteforcer 示例,旨在查找远程用户/组。

      ./lookupsid.py test/Administrator:[email protected]
    • Rpcdump.py

      该脚本将转储在目标上注册的 RPC 端点和字符串 bindings 列表。它也会尝试将它们与一些知名的端点进行匹配。

      ./rpcdump.py test/Administrator:[email protected]
    • Samrdump.py

      与 MSRPC 套件中的安全帐户管理器远程接口通信的应用程序。它将为我们列出目标系统上的用户帐户,可用资源共享以及通过此服务导出的其他敏感信息

      ./samrdump.py test/Administrator:[email protected]
    • Wmiquery.py

      它允许发出 WQL 查询并获取目标系统 WMI 对象的描述信息。

      ./wmiquery.py test/Administrator:[email protected]
    • getArch.py

      该脚本将连接目标(或目标列表上的)计算机,并使用已记录的 MSRPC 特征收集由(ab)安装的操作系统架构类型。

      ./getArch.py -target 192.168.1.100
  • shadow1ng/fscan - 支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写私钥、计划任务反弹shell、读取win网卡信息、web漏洞扫描等。
  • shmilylty/SharpHostInfo - SharpHostInfo是一款快速探测内网主机信息工具
  • lzzbb/Adinfo - 域信息收集工具

域环境

查询所有域主机名

dsquery computer

查看所有域

net view /domain

查看域中的用户名

net user /domain
dsquery user

获取域内用户详细信息

wmic useraccount get /all

查询域内所有用户组列表

net group /domain

查看域密码信息

net accounts /domain

获取域信任信息

nltest /domian_trusts

查询域联系人

dsquery contact

查询域中所有的组

dsquery group

查询域中所有的组织单元

dsquery ou

查询域中所有的站点

dsquery site

查询指定域主机名

dsquery computer -name win* -desc desktop -limit 0

查询 n 周未活动的域主机名

dsquery computer -inactive n -limit 0

查询 n 天内未更改密码的域主机名

dsquery computer -stalepwd n

查询指定域的域主机名

dsquery computer -s ip -u username -p password -limit 0

查询域中的配额规范

dsquery quota

查询域中的分区对象

dsquery partition

查看域时间

net time /domain
SPN扫描

SPN 扫描的主要好处是,SPN 扫描不需要连接到网络上的每个 IP 来检查服务端口, SPN 通过 LDAP 查询向域控执行服务发现,spn 查询是 kerberos 票据行为一部分,,域内的主机都能查询 SPN,因此比较难检测 SPN 扫描。所以在域内不用做端口扫描也可以隐蔽地探测域内的服务。当利用 SPN 扫描找到域管登录过的系统,对渗透权限扩展有很大的帮助。

spn 介绍

  • spn

一些注意的服务

  • AGPMServer:通常具有所有 GPO 的完全控制权。
  • MSSQL/MSSQLSvc:具有管理员权限的 SQL 服务器通常会有一些有趣的数据。
  • FIMService:通常对多个 AD 林具有管理权限。
  • STS:VMWare SSO 服务,可以提供访问 VMWare 的后门。

对于 RC4 加密的使用 tgsrepcrack 解密

对于 AES 加密的使用 Kirbi2john 转换为 hash,通过 hashcat 爆破

SPN 扫描相关工具

  • setspn

    setspn 是 Windows 内置工具,可以检索用户账户和服务之间的映射,此工具可以添加、删除、查看 SPN 的注册情况。

    为账户 test.com/dbadmin 注册 SPNMSSQLSvc/SqlServer.test.com:

    setspn -A MSSQLSvc/SqlServer.test.com dbadmin

    查看 SPN:

    // 查看当前域内的所有 SPN
    setspn.exe -q */*
    
    // 查看 test 域内的所有 SPN
    setspn.exe -T test -q */*
    
    // 查看 dbadmin 账户的 SPN
    setspn -l dbadmin

    以 CN 开头的每一行代表一个账户,紧跟下面的信息是与该账户有关的 SPN。

  • GetUserSPNs

    • https://github.com/nidem/kerberoast
      .\GetUserSPNs.ps1
      cscript.exe GetUserSPNs.vbs         利用 GetUserSPNs.vbs 进行 SPN 信息查询
  • PowerView

    • https://github.com/PowerShellMafia/PowerSploit/tree/master/Recon
      PS C:\Users\Administrator\Desktop\Recon> Import-Module .\PowerView.ps1
      PS C:\Users\Administrator\Desktop\Recon> Get-NetUser -SPN
  • Powershell AD Recon

    • https://github.com/PyroTek3/PowerShell-AD-Recon
      //如查看MSSQL(其他的同理):
      
      //导入脚本
      Import-Module .\Discover-PSMSSQLServers.ps1
      //查找MSSQL所有实例
      Discover-PSMSSQLServers
  • PowerShellery

    • https://github.com/nullbind/Powershellery
      PS C:\Users\dbadmin\Desktop\Get-SPN> Import-Module .\Get-SPN.psm1
      PS C:\Users\dbadmin\Desktop\Get-SPN> Get-SPN -type service -search "*"
      
      //查找所有的SPN服务
      Get-SPN -type service -search "*" -List yes | Format-Table
      //查找MSSQL服务
      Get-SPN -type service -search "MSSQLSvc*" -List yes
      //若在一个非域系统上,可以使用以下命令执行
      Get-SPN -type service -search "*" -List yes -DomainController 域控IP -Credential domainuser| Format-Table -Autosize
  • RiskySPN

    • https://github.com/cyberark/RiskySPN
      Import-Module .\RiskySPNs.psm1
      Find-PotentiallyCrackableAccounts
  • Adfind

    • http://www.joeware.net/freetools/tools/adfind/
      Adfind -f "ServicePrincipalName=MSSQLSvc*"
      Adfind -h 域控地址 -sc spn:*

相关文章

  • Locate and Attack Domain SQL Servers without Scanning - 通过 SPN 扫描域内 MSSQL 服务
  • SPN Scanning - Service Discovery without Network Port Scanning

域控

查询域管理员用户

net group "Domain Admins" /domain

查找域控

ping test.com               # ping 域名,解析到域控服务器IP地址
net time /domain            # 查看当前时间,因为时间服务器也是主域服务器,可以看到域服务器的机器名
nltest /DCLIST:test.com     # 查看域控制器机器名
net group "Domain Controllers" /domain              # 查看域控制器组,因为可能有不止一台域控,有主备之分
nslookup -type=all _ldap._tcp.dc._msdcs.test.com    # 若当前主机的dns为域内dns,可通过查询dns解析记录定位域控。
dsquery server
  • BloodHound

  • 端口探测

    通过端口探测方式定位域控, 扫描内网中同时开放 389,636 与 53 的机器,389 默认是 LDAP 协议端口,636 端口是 LDAPS,53 端口默认是 DNS 端口,主要用于域名解析,通过 DNS 服务器可以实现域名与 ip 地址之间转换,他们都是域控机器开放的端口。

  • SPN 扫描定位

    由于 SPN 本身就是正常的 kerberos 请求,所以扫描隐蔽,它不同于 TCP 与 UDP 常规端口扫描。大部分 windows 已经自带 setspn.exe,且此操作无需管理权限。

    setspn -T test.com -Q /

    在扫描出的结果中就可以根据

    CN=AD-SERVER,OU=Domain Controllers,DC=test,DC=com 来进行域控的定位。此时已经查询出域控机器。

定位域管理员

  • 为什么要定位域管理员

    在一个域中,当计算机加入域后,会默认给域管理员组赋予本地系统管理员权限。也就是说,当计算机被添加到域中,成为域的成员主机时,系统会自动将域管理员组添加到本地系统管理员组中。因此,域管理员组的成员均可访问本地计算机,且具备完全控制权限。

    定位,查看有哪些账号登录了哪些机器,如果我们可以找到域管理员登录了哪些服务器,就可以通过攻击这些服务器并进行尝试利用,以获得域管理员权限。

    定位域管理员的常规渠道,一是日志,二是会话。日志是指本地机器的管理员日志,可以使用脚本或wevtutil工具导出并查看。会话是指域内每台机器的登陆会话,可以使用netsess.exe或powerview等工具查询

  • psloggedon.exe - pstools 中自带, 其原理为检查注册表 HKey_USER 项的 key 来查询,会调用 NetSession api, 所以有些功能需要管理员权限。

    # 此工具用于查看本地登录的用户和通过本地计算机或远程计算机资源登录的用户
    
    psloggedon.exe [-] [-l] [-x] [\\computername或username]
    # -	显示支持的选项和用于输出值的度量单位
    # -l 	仅显示本地登录,而不显示本地和网络资源登录
    # -x	不显示登录时间
    # \computername	指定要为其列出登录信息的计算机的名称
    # username	指定用户名,在网络中搜索该用户登陆的计算机
    
    # \\后面接的是域控机器名,看一下登录过域控的用户名
    # \\接的是用户名,那就会搜索网上邻居的计算机,并显示当前用户是否已经登录
  • PVEFindADUser.exe - 查找域用户位置、某计算机上登录用户。运行需要计算机支持framework2.0 且以管理员权限运行

    pvefinaduser.exe -current   # #将获取域内所有计算机上当前登陆的所有用户, 结果保存到 report.csv 文件
    # -last	将获取目标计算机的最后一个登陆用户
    # -target	指定要查询的计算机。
    # -current [“username”]	-current 参数显示每台 PC 上当前登录的用户在域中。如果指定用户名(在引号之间),则仅将显示该特定用户登录的 PC
    # -noping	阻止尝试枚举用户登录名之前对目标计算机执行 ping 命令
  • netview.exe - netview.exe 是一个枚举工具,使用 WinAPI 枚举系统,利用 NetSessionEnum 找寻登录会话,利用 NetShareEnum 找寻共享,利用 NetWkstaUserEnum 枚举登录的用户,netview.exe 还可以查询共享入口和有价值的用户。

    netview.exe [参数]
    # -f	filename.txt: 指定要提取主机列表的文件
    # -e	filename.txt: 指定要排除的主机名的文件
    # -o	filename.txt: 将所有输出重定向到指定的文件
    # -d	filename.txt: 指定要提取主机列表的域。如果没有指定,则从当前域中提取主机列表
    # -g	group: 指定搜索的组名。如果没有指定,则在 Domain Admins 组中搜索
    # -c	对已找到的共享目录 / 文件的访问权限进行检查
  • nmap 脚本

    smb-enum-domains.nse: 对域控制器进行信息收集,可以获取主机信息、用户、可使用密码策略的用户等
    smb-enum-users.nse: 在进行域渗透时,如获取了域内某台主机权限,但权限有限,无法获取更多的域用户信息,可借助此脚本对域控制器进行扫描
    smb-enum-shares.nse: 遍历远程主机的共享目录
    smb-enum-processes.nse: 对主机的系统进程进行遍历,通过此信息,可知道目标主机运行着哪些软件
    smb-enum-sessions.nse: 获取域内主机的用户登陆会话,查看当前是否有用户登陆
    smb-enum-discovery.nse: 收集目标主机的操作系统、计算机名、域名、域林名称、NetBIOS 机器名、NetBIOS 域名、工作组、系统时间等信息
  • PowerSploit

    Set-ExecutionPolicy -ExecutionPolicy Bypass
    import-module .\Recon.psd1
    # Invoke-UserHunter: 找到域内特定的用户群,接受用户名、用户了表和域组查询,接收一个主机列表或查询可用的主机域名。可以使用 Get-NetSession 和 Get-NetLoggedon(调用 NetSessionEnum 和 NetWkstaUserEnumAPI) 扫描每台服务器并对扫描结果进行比较,从而找出目标用户集,在使用时不需要管理员权限,在本地执行该脚本
    
    # Invoke-StealthUserHunter: 只需要进行一次查询,就可以获取域里面的所有用户,使用方法为,从 user.HomeDirectories 中提取所有用户,并对没太服务器进行 Get-NetSession 获取。因不需要使用 Invoke-UserHunter 对没太机器进行操作,所以这个方法的隐蔽性相对较高(但涉及的机器不一定全面)。PowerView 默认使用 Invoke-StealthUserHunter 如果找不到需要的信息,就使用 Invoke-UserHunter
    
    Get-NetLocalGroupMember -ComputerName 主机名 -GroupName administrators
    # 指定远程计算机,指定枚举管理员组
  • Netsess.exe - 收集所有活动域的会话列表

  • BloodHound


工控资产

相关文章

  • 工控资产嗅探与分析实践

相关工具

  • nmap
    • nmap工控探测脚本
  • ISF
    scanners/s7comm_scan        # 选择 S7 扫描插件
    scanners/vxworks_6_scan     # 选择 vxworks 扫描插件
    scanners/cip_scan           # 选择 cip_scan 扫描插件
  • plcscan - 通过 s7comm 或 modbus 协议扫描 PLC 设备的工具。
  • msf
    use auxiliary/scanner/scada/modbusdetect

网络层指纹

相关工具

  • nmap
  • praetorian-inc/fingerprintx - Standalone utility for service discovery on open ports!
    go install github.com/praetorian-inc/fingerprintx/cmd/fingerprintx@latest
    
    fingerprintx -h
    fingerprintx -t praetorian.com:80
    fingerprintx -l input-file.txt
    fingerprintx --json -t praetorian.com:80,127.0.0.1:8000
    • https://www.praetorian.com/blog/fingerprintx/

网站

教程/案例

  • web渗透第一步之信息搜集[子域,旁站,C段,AS号...]
  • WEB安全入门系列之信息收集
  • 【转】浅析前期信息收集方法
  • [原创]安全攻城师系列文章-信息收集工具篇-『WEB安全』-看雪安全论坛
  • 渗透测试--01信息搜集
  • ”安全线“大型目标渗透
  • 微服务渗透之信息搜集
  • 新时代的渗透思路!微服务下的信息搜集(II)
  • 攻防演练模式下的信息收集--Fofa工程师

资产扫描工具

  • smicallef/spiderfoot - SpiderFoot 是一个 Python 编写的免费开源的网站信息收集类工具,并且支持跨平台运行,适用于 Linux、*BSD 和 Windows 系统。提供了 GUI 界面。可以获取网站子域、电子邮件地址、web 服务器版本等等信息。
  • broken5/WebAliveScan - 对目标域名进行快速的存活扫描、简单的指纹识别、目录扫描
    pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
    python3 webscan.py --target target.txt --port 80
    python3 webscan.py --target target.txt --port small
    python3 webscan.py --target target.txt --port large
  • projectdiscovery/httpx
  • tomnomnom/httprobe

真实IP

为什么要寻找真实 IP?,当某个企业使用了 CDN/云防线/反向代理等方式对服务进行架构设计时,我们通过 ping 命令等并不能直接将请求传递到真实的服务器上,而是经过一层设置对该请求进行转向,导致到我们不能获取到真实服务器的开放端口等信息进行收集。

相关文章

  • 绕过 CDN 查找网站真实 IP
  • 绕过 cdn,查找真实 IP | 冰羽の博客
  • 聊聊 CDN 的误区 - r34l!ty - 不负勇往
  • 网站真实 IP 发现手段浅谈 - 安全客,安全资讯平台
  • 如何寻找隐藏在 CloudFlare 或 TOR 背后的真实原始 IP - 嘶吼 RoarTalk
  • CloudFlair: Bypassing Cloudflare using Internet-wide scan data
  • Bypassing CDN WAF’s with Alternate Domain Routing - 通过 severless 服务绕过 cdn 的访问限制
  • CDN绕过技术总汇

相关工具

  • pielco11/fav-up - 从 favicon 图标查真实 IP 的工具,需要 Shodan API(付费的)
  • christophetd/CloudFlair - 通过使用 Censys 的数据查找真实 IP 的工具,需要 Censys API
  • 3xp10it/xcdn - 尝试找出 cdn 背后的真实 ip 的工具
  • greycatz/CloudUnflare - 用于绕过 Cloudflare 侦查真实 IP 地址.
  • boy-hack/w8fuckcdn - 通过扫描全网绕过 CDN 获取网站 IP 地址,建议参考思路,不建议实战实用

tips

  • Nslookup

    nslookup + 域名

  • phpinfo

  • 利用邮件服务器找到真实 IP

    Web 跟 Email 服务属同服务器的情况下可以通过 Email 来查询目标真实 IP 地址,但如果 Web 跟 Email 属不同服务器,那么我们通过 Email 得到的可能只是邮件服务器的 IP 地址。

  • 多地 ping 域名

    利用在线网站服务多地 ping 测试

    • CDN Finder tool - CDN Planet
    • CDN检测
    • 多个地点Ping服务器,网站测速 - 站长工具
    • 网站测速工具_超级ping _多地点ping检测 - 爱站网
    • DNSMap - 检查来自世界各地的多个DNS名称服务器和解析器的域名或主机名的当前IP
    • Ping.cn:网站测速-ping检测-dns查询-ipv6网站测试-路由跟踪查询
  • "常识"判断

    在反查网站 ip 时,如果此网站有 1000 多个不同域名,那么这个 ip 多半不是真实 ip.

    如果一个 asp 或者 asp.net 网站返回的头字段的 server 不是 IIS、而是 Nginx,那么多半是用了 nginx 反向代理,而不是真实 ip.

    如果 ip 定位是在常见 cdn 服务商的服务器上,那么是真实 ip 的可能性就微乎其微了.

  • 子域名查找

    利用一些在线查询的网站,例如 https://dnsdb.io/zh-cn/ 只需输入 baidu.com type:A 就能收集百度的子域名和 ip

    Google 搜索 Google site:baidu.com -www 就能查看除 www 外的子域名

    总结:收集子域名后尝试以解析 ip 不在 CDN 上的 ip 解析主站,真实 ip 成功被获取到.

  • 历史 DNS 解析记录

    上面下面这么多方法里,这个应该是成功率较高的了

    通过查询历史的 DNS 解析 IP,有可能得到真实 IP

    • https://x.threatbook.cn/nodev4/vb4/list
    • https://viewdns.info/iphistory/
    • https://securitytrails.com/
  • SSL 证书

    • CloudFlair: Bypassing Cloudflare using Internet-wide scan data
    • https://www.censys.io
  • 查询网站标题找到真实 IP

    有提议通过遍历全球 IP 端口匹配标题来找源 IP 的方法,太不切实际了,与其这样不如直接到 shodan 搜索网站标题 Title,这样说不定还更快.

  • 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.

    其实我就像问一句,你家祖传的 F5 设备不更新的吗?

  • DDOS 消耗

    我看过不少文章将通过 DDOS 来消耗对方流量,只要把流量打光,就会回滚到原始 IP,还特别拿 cloudflare 举例,但是目前, cf 免费版就提供 ddos 无限量防护.

  • 拿下 CDN 节点服务器的权限

    离谱,你还不如社工管理员服务器 IP 地址来得快呢


子域

子域名(或子域;英语:Subdomain)是在域名系统等级中,属于更高一层域的域。比如,mail.example.com 和 calendar.example.com 是 example.com 的两个子域,而 example.com 则是顶级域 .com 的子域。

在渗透测试的时候,往往主站的防御会很强,常常无从下手,那么子站就是一个重要的突破口,因此子域名是渗透测试的主要关注对象.

域名级别

  • 顶级域名

    顶级域名又分为两类:

    • 国家顶级域名(national top-level domainnames,简称 nTLDs),200 多个国家都按照 ISO3166 国家代码分配了顶级域名,例如中国是 .cn,美国是 .us,日本是 .jp 等;

    • 国际顶级域名(international top-level domain names,简称iTDs),例如表示工商企业的 .com,表示网络提供商的 .net,表示顶级标杆、个人的 .top,表示非盈利组织的 .org 等。

  • 二级域名

    二级域名是互联网 DNS 等级之中,处于顶级域名之下的域。 二级域名是域名的倒数第二个部份,例如在域名 example.com 中,二级域名是 example 。

  • 三级域名

    三级域名用字母(a~z)、数字(0~9)和连接符(-)组成, 各级域名之间用实点(.)连接,三级域名的长度不能超过20个字符。 如无特殊原因,采用申请人的英文名(或者缩写)或者汉语拼音名 (或者缩写) 作为三级域名,以保持域名的清晰性和简洁性。

Public Suffix List

  • 域名小知识:Public Suffix List
  • publicsuffix/list

相关文章

  • Subdomain Recon
  • 从代码角度看各类子域名收集工具
  • 子域名发现的20种方法

学习资料

  • appsecco/bugcrowd-levelup-subdomain-enumeration - 此资料库包含了在 Bugcrowd LevelUp 2017 虚拟会议上进行的演讲 “神秘的子域枚举技术” 中的所有演讲材料,视频和脚本。

相关工具

  • shmilylty/OneForAll - 非常优秀的子域名爆破工具,推荐

    # config/setting.py 配置代理
    # config/api.py 配置 API 信息
    python3 oneforall.py --target ffffffff0x.com run
    python3 oneforall.py --targets ./example.txt run
  • boy-hack/ksubdomain

    • knownsec/ksubdomain - 无状态子域名爆破工具,推荐
    • ksubdomain 无状态域名爆破工具
    ksubdomain -d xxx.com -o out.txt
  • blechschmidt/massdns - 一个高性能的DNS存根解析器,用于批量查找和侦察(子域枚举)。

  • Threezh1/JSFinder - 通过在 js 文件中提取 URL,子域名

  • LangziFun/LangSrcCurise - 持续性的子域名监控

  • tomnomnom/assetfinder - GO语言编写,从社交网站、威胁搜索引擎获取子域的工具

  • infosec-au/altdns - 生成大量的子域列表,配合爆破工具使用

  • Edu4rdSHL/findomain - Rust语言编写的子域枚举工具

  • OWASP/Amass - 多功能信息收集工具

  • lijiejie/subDomainsBrute - 本工具用于渗透测试目标域名收集。高并发DNS暴力枚举

  • bit4woo/teemo - 域名收集及枚举工具

  • ring04h/wydomain - python语言编写的子域枚举工具

  • fwaeytens/dnsenum - 一个枚举DNS信息的 perl 脚本

  • mschwager/fierce - 一个 DNS 侦查工具,用于查找非连续 IP 空间。

  • OJ/gobuster - go 写的枚举工具可爆破目录、DNS、虚拟主机名,速度极快

  • esecuritylab/kostebek - 一种使用公司商标信息来发现其域名的侦察工具

  • MilindPurswani/Syborg - 一个递归 DNS 域枚举器,它既不是主动的也不是完全被动的。该工具仅构造一个域名,然后使用指定的DNS服务器查询该域名。

  • guelfoweb/knock - python 编写的 DNS 枚举工具,支持对 VirusTotal 子域的查询

  • tismayil/rsdl - go语言编写,采用 ping 方式的子域扫描工具

  • joinsec/BadDNS - BadDNS 是一款使用 Rust 开发的使用公共 DNS 服务器进行多层子域名探测的极速工具。

    ./baddns -t target.txt -s domaindict-170W.txt -d depthdict.txt
  • projectdiscovery/subfinder - Fast passive subdomain enumeration tool.

    • api 配置文件位于 $HOME/.config/subfinder/provider-config.yaml
  • yunxu1/dnsub - 通过字典枚举、API查询、爬虫的方式用于扫描探测子域名

  • projectdiscovery/dnsx - dnsx is a fast and multi-purpose DNS toolkit allow to run multiple DNS queries of your choice with a list of user-supplied resolvers.

host 碰撞

  • fofapro/Hosts_scan - 一个用于 IP 和域名碰撞匹配访问的小工具,旨意用来匹配出渗透过程中需要绑定 hosts 才能访问的弱主机或内部系统。
  • pmiaowu/HostCollision

Tips

  • 子域名扫描尽量通过第三方平台进行收集。
    # 从 rapid7 sonar项目下载公共数据集,解压缩进行匹配
    wget https://opendata.rapid7.com/sonar.fdns_v2/2020-09-25-1600992617-fdns_any.json.gz   # 23G,谨慎下载
    cat 2020-09-25-1600992617-fdns_any.json.gz | pigz -dc | grep ".target.org" | jq
  • 通过 HTTPS 证书查询
    • 见 Censys
  • 从代码托管网站或在线服务商查询
    • 见 Github
  • 第三方网站接口查询
    • https://x.threatbook.cn/nodev4/vb4/list - 内容需注册可见
    • https://www.riskiq.com/ - 内容需注册可见
    • https://www.shodan.io/ - 无需注册
    • https://findsubdomains.com - 内容需注册可见
    • censys.io - 无需注册
    • https://www.zoomeye.org/ - 无需注册
    • https://fofa.so/ - 无需注册
    • https://www.threatcrowd.org/ - 无需注册
    • https://dnsdumpster.com/ - 无需注册
    • https://securitytrails.com/ - 无需注册
    • https://viewdns.info/ - 无需注册
    • https://www.dnsdb.io/zh-cn/ - 部分内容需注册可见
  • 在线 api
    https://dns.bufferover.run/dns?q=baidu.com  # 调用的 Rapid7 数据
    https://rapiddns.io/subdomain
    • 更多开放 api 参考 : https://opendata.rapid7.com/apihelp/
    • 开放数据下载 : https://opendata.rapid7.com/

目录扫描

在渗透测试中,在对目标网站进行渗透时,对网站的下级目录进行目录扫描,用以发现目标网站是否存在 OA,网站后台,敏感目录或者任意文件下载等信息.

字典

字典资源见 Power-PenTest Web 字典 部分

相关文章

  • 熟练使用各类敏感目录文件扫描工具

目录扫描工具

  • ffuf/ffuf - go 写的 web fuzz 工具,很好用,推荐
    ffuf -c -mc 200,301,302,403 -t 50 -u http://testphp.vulnweb.com/FUZZ -w dic.txt
    ffuf -c -mc 200,301,302,403 -t 50 -u http://testphp.vulnweb.com/FUZZ -b "NAME1=VALUE1; NAME2=VALUE2" -w dic.txt # Cookie
    • ffuf/ffuf-scripts
  • wfuzz
  • OJ/gobuster - go 写的枚举工具可爆破目录、DNS、虚拟主机名,报错较多
    ./gobuster dir -u http://testphp.vulnweb.com/ -w dic.txt
  • nccgroup/dirble - rust 写的目录扫描工具,效果一般
    ./dirble http://testphp.vulnweb.com/ -w dic.txt
  • maurosoria/dirsearch - python 写的目录扫描工具,效果一般
  • Nekmo/dirhunt - python 写的目录扫描工具,效果一般
  • Xyntax/DirBrute - python 写的目录扫描工具,效果一般,且长期未更新
  • H4ckForJob/dirmap - python 写的 web 目录、文件扫描工具

浏览器爬虫工具

  • 0Kee-Team/crawlergo
    # 假设你的 chromium 安装在 /tmp/chromium/ ,开启最大10标签页,爬取 AWVS 靶场
    ./crawlergo -c /tmp/chromium/chrome -t 10 http://testphp.vulnweb.com/
    
    # 使用代理
    ./crawlergo -c /tmp/chromium/chrome -t 10 --request-proxy socks5://127.0.0.1:7891 http://testphp.vulnweb.com/
    
    # json 输出
    ./crawlergo --output-json out.json -c /tmp/chromium/chrome -t 10 http://testphp.vulnweb.com/
    cat out.json | jq '.req_list' > out2.json
    cat out2.json | jq '.[].url' > url.txt
    sed -i 's/.//' url.txt && sed -i 's/.$//g' url.txt
    • timwhitez/crawlergo_x_XRAY - crawlergo 动态爬虫结合长亭 XRAY 扫描器的被动扫描功能
    • ox01024/Xray_and_crwlergo_in_server - xray 与 crwlergo 联动+server 酱推送
  • jaeles-project/gospider
  • chaitin/rad

js收集

  • lc/subjs - Fetches javascript file from a list of URLS or subdomains.

Tips

  • 使用 burp 的 Intruder 爆破模块扫描目录也是以一种很好的选择,当其他扫描器没有结果时不妨尝试一下。

参数fuzz

相关工具

  • s0md3v/Arjun - HTTP parameter discovery suite.
    pip3 install arjun
  • tomnomnom/unfurl - Pull out bits of URLs provided on stdin
  • tomnomnom/qsreplace - Accept URLs on stdin, replace all query string values with a user-supplied value

web指纹

指纹是指网站 CMS 指纹识别、计算机操作系统以及 web 容器的指纹识别等。

应用程序一般在 html、js、css 等文件中包含一些特征码,这些特征码就是所谓的指纹。当碰到其他网站也存在次特征时,就可以快速识别出该程序,所以叫做指纹识别。

在线工具

  • 云悉 WEB 资产梳理|在线 CMS 指纹识别平台 - 云悉安全
  • Sucuri SiteCheck - Free Website Security Check & Malware Scanner
  • Bad site specified
  • Site Info Tool - Website Information Lookup Tool
  • 在线指纹识别,在线 cms 识别小插件--BugScaner
  • YFCMF 内容管理框架 YFCMF 内容管理框架
  • BuiltWith Technology Lookup - 找出网站使用什么搭建的

相关文章

  • WAF 指纹探测及识别技术
  • 阻碍获取真实网络指纹
  • Web指纹识别技术研究与优化实现
  • Web应用组件自动化发现的探索

相关工具

  • wappalyzer/wappalyzer
    • firefox 扩展
    • chrome 扩展
  • zhzyker/dismap
    dismap -ip 192.168.1.1/24
    dismap -file xxx.txt
  • 0x727/ObserverWard - 命令行Web指纹识别工具
    • https://github.com/0x727/FingerprintHub - 侦查守卫(ObserverWard)的指纹库
  • urbanadventurer/WhatWeb - Next generation web scanner
    • winezer0/whatweb-plus - 指纹扩展版
  • tanjiti/FingerPrint - web 应用指纹识别
  • webanalyzer/rules - 通用的指纹识别规则
  • TideSec/TideFinger - 指纹识别小工具
  • Shodan
    • firefox 扩展
    • chrome 扩展
  • EnableSecurity/wafw00f: WAFW00F allows one to identify and fingerprint Web Application Firewall (WAF) products protecting a website. - 识别 waf 指纹的工具

旁站 & 反查

旁站是和目标网站在同一台服务器上的其它的网站;如果从目标站本身找不到好的入手点,这时候,如果想快速拿下目标的话,一般都会先找个目标站点所在服务器上其他的比较好搞的站下手,然后再想办法跨到真正目标的站点目录中。C 段是和目标机器 ip 处在同一个 C 段的其它机器;通过目标所在 C 段的其他任一台机器,想办法跨到我们的目标机器上。

相关工具

  • Sma11New/ip2domain - 批量查询ip对应域名及百度权重、备案信息;ip反查域名;ip查备案信息;资产归属查询;百度权重查询

在线工具

  • https://x.threatbook.cn/nodev4/vb4/list
  • https://dns.aizhan.com/
  • https://www.robtex.com/
  • http://www.webscan.cc/
  • http://www.114best.com/ip/
  • http://www.5kik.com/c/
  • https://phpinfo.me/bing.php
  • https://dnsdumpster.com/
  • https://viewdns.info/iphistory/
  • https://securitytrails.com/
  • https://rapiddns.io/sameip
  • http://stool.chinaz.com/same
  • https://www.virustotal.com/gui/home/search

历史快照

大部分网站都存在历史快照,往往这些快照都有存在些敏感信息或者曾经被挂过暗链。

在线工具

  • 网页快照网 - 搜索引擎网页快照查询,支持手机移动端
  • Internet Archive: Digital Library of Free & Borrowable Books, Movies, Music & Wayback Machine - 互联网档案馆是一个非营利性的数字图书馆组织。提供数字数据如网站、音乐、动态图像、和数百万书籍的永久性免费存储及获取。

例子

https://webcache.googleusercontent.com/search?q=cache:www.baidu.com

whois与备案

什么是 whois

whois(读作“Who is”,非缩写)是用来查询域名的 IP 以及所有者等信息的传输协议。简单说,whois 就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)。

命令行下使用

  • windows

    下载 https://docs.microsoft.com/en-us/sysinternals/downloads/whois

  • linux

    yum install -y whois
    
    whois ffffffff0x.com

在线 whois 查询

  • http://wq.apnic.net/apnic-bin/whois.pl
  • https://centralops.net/co/
  • https://www.register.com/whois.rcmx
  • https://www1.domain.com/whois/whois.bml
  • https://whois.domaintools.com/
  • https://who.is/
  • https://www.t00ls.net/domain.html
  • https://www.whois.com.au/whois/abn.html
  • http://whois.webmasterhome.cn/
  • https://whois.aliyun.com/
  • https://whois.icann.org/zh/lookup
  • http://whoissoft.com/
  • http://whois.chinaz.com/
  • https://www.whois.com/
  • http://whois.domaintools.com/
  • https://whois.icann.org/en
  • https://www.whoxy.com/reverse-whois/
  • https://domainbigdata.com/
  • https://viewdns.info/whois/
  • https://www.reversewhois.io/

在线备案查询

  • http://www.beianbeian.com/
  • http://beian.gov.cn/portal/recordQuery
  • http://www.miitbeian.gov.cn/publish/query/indexFirst.action

截图

相关工具

  • FortyNorthSecurity/EyeWitness - 获取网站的屏幕截图,提供一些服务器标头信息,并在可能的情况下识别默认凭据.(要下的依赖挺多的,比较费功夫)
  • michenriksen/aquatone - 用于对大量主机上的网站进行可视化检查的工具
  • Nmap-Tools/NSE/http-screenshot.nse - 可以截图的 Nmap 脚本
  • TheKingOfDuck/domain_screen - 批量采集站点基础信息&截图。

主机

linux

  • Linux主机信息收集
  • Linux日志

windows

  • Windows主机信息收集
  • Windows日志
  • Windows取证

相关工具

  • i11us0ry/winlog

应用程序

  • 应用程序取证

OSINT

  • Digital-Privacy - 一个关于数字隐私搜集、保护、清理集一体的方案,外加开源信息收集(OSINT)对抗

业务信息

公司信息

  • 企查查 - 工商信息查询_公司企业注册信息查询_全国企业信用信息公示系统
  • 天眼查 - 企业信息调查工具_企业信息查询_公司查询_工商查询_信用查询平台
  • 小蓝本-商业信息搜索

移动应用

  • APP商店
    • (华为/小米/OPPO/三星/...)应用商店
    • App Store
  • 微信/支付宝小程序

相关工具

  • ouxinLou/company-crawler - 天眼查爬虫&企查查爬虫,指定关键字爬取公司信息
  • wgpsec/ENScan_GO - 一款基于各大企业信息 API 的工具,解决在遇到的各种针对国内企业信息收集难题。一键收集控股公司 ICP 备案、APP、小程序、微信公众号等信息聚合导出。

员工信息

收集渠道

  • qq群
  • 微信群
  • 钉钉群
  • 线上/下活动

email

企业邮箱的邮箱后缀名一般为企业的域名,为便于员工可以方便的进行工作通信,企业会对外网开放邮箱登录地址。因此在前期的信息收集中掌握大量的邮箱账号对于破解企业邮箱非常有帮助。

相关工具

  • laramies/theHarvester - E-mails, subdomains and names
  • nettitude/Prowl - 一个电子邮件收集工具,它可以搜索与用户搜索术语相关联的个人资料,并识别职位。还确定指定组织的当前工作列表。
  • 按域名搜索
  • Taonn/EmailAll - 一款强大的邮箱收集工具
    git clone https://github.com/Taonn/EmailAll.git
    cd EmailAll
    pip3 install -r requirements.txt
    
    python3 emailall.py --domain example.com run
  • MSF Module - 这个模块比较拉胯,不建议使用
    use auxiliary/gather/search_email_collector
    show options
    set domain ffffffff0x.com
    run

APIkey/密钥信息

相关文章

  • Unauthorized Google Maps API Key Usage Cases, and Why You Need to Care
  • 一些提取api key的正则表达式
  • 企业微信Secret Token利用思路
  • 企业微信Token-Secret利用思路
  • 企业微信+腾讯IM密钥泄漏利用
    • https://mp.weixin.qq.com/debug/cgi-bin/apiinfo?t=index&type=基础支持&form=获取access_token接口 /token

相关案例

  • WooYun-2015-141929 - 神器之奇虎360某命令执行导致网站卫士等多个重要业务官网可getshell(可能影响接入站长)
  • Flickr Account Takeover using AWS Cognito API
    • Flickr Account Takeover
  • 记一次SRC信息泄漏利用

相关资源

  • daffainfo/all-about-apikey
  • https://github.com/databricks/security-bucket-brigade/blob/3f25fe0908a3969b325542906bae5290beca6d2f/Tools/s3-secrets-scanner/rules.json

通用关键词

password=
$passwd
key=
Realm
accessId
accessKey
APPID
APPSECRET

正则规则

以下正则来自 [一些提取api key的正则表达式]

'aliyun_oss_url': '[\\w-.]\\.oss.aliyuncs.com',
'azure_storage': 'https?://[\\w-\.]\\.file.core.windows.net',
'access_key': '[Aa](ccess|CCESS)_?[Kk](ey|EY)|[Aa](ccess|CCESS)_?[sS](ecret|ECRET)|[Aa](ccess|CCESS)_?(id|ID|Id)',
'secret_key': '[Ss](ecret|ECRET)_?[Kk](ey|EY)',
'slack_token': '(xox[p|b|o|a]-[0-9]{12}-[0-9]{12}-[0-9]{12}-[a-z0-9]{32})',
'slack_webhook': 'https://hooks.slack.com/services/T[a-zA-Z0-9_]{8}/B[a-zA-Z0-9_]{8}/[a-zA-Z0-9_]{24}',
'facebook_oauth': '[f|F][a|A][c|C][e|E][b|B][o|O][o|O][k|K].{0,30}['\'\\s][0-9a-f]{32}['\'\\s]',
'twitter_oauth': '[t|T][w|W][i|I][t|T][t|T][e|E][r|R].{0,30}['\'\\s][0-9a-zA-Z]{35,44}['\'\\s]',
'heroku_api': '[h|H][e|E][r|R][o|O][k|K][u|U].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}',
'mailgun_api': 'key-[0-9a-zA-Z]{32}',
'mailchamp_api': '[0-9a-f]{32}-us[0-9]{1,2}',
'picatic_api': 'sk_live_[0-9a-z]{32}',
'google_api': 'AIza[0-9A-Za-z-_]{35}',
'google_captcha': '6L[0-9A-Za-z-_]{38}',
'google_oauth': 'ya29\\.[0-9A-Za-z\\-_]+',
'amazon_aws_access_key_id': 'AKIA[0-9A-Z]{16}',
'amazon_mws_auth_token': 'amzn\\.mws\\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}',
'amazonaws_url': 's3\\.amazonaws.com[/]+|[a-zA-Z0-9_-]*\\.s3\\.amazonaws.com',
'facebook_access_token': 'EAACEdEose0cBA[0-9A-Za-z]+',
'mailgun_api_key': 'key-[0-9a-zA-Z]{32}',
'twilio_api_key': 'SK[0-9a-fA-F]{32}',
'twilio_account_sid': 'AC[a-zA-Z0-9_\\-]{32}',
'twilio_app_sid': 'AP[a-zA-Z0-9_\\-]{32}',
'paypal_braintree_access_token': 'access_token\\$production\\$[0-9a-z]{16}\\$[0-9a-f]{32}',
'square_oauth_secret': 'sq0csp-[ 0-9A-Za-z\\-_]{43}',
'square_access_token': 'sqOatp-[0-9A-Za-z\\-_]{22}',
'stripe_standard_api': 'sk_live_[0-9a-zA-Z]{24}',
'stripe_restricted_api': 'rk_live_[0-9a-zA-Z]{24}',
'github_access_token': '[a-zA-Z0-9_-]*:[a-zA-Z0-9_\\-]+@github\\.com*',
'rsa_private_key' : '-----BEGIN RSA PRIVATE KEY-----',
'ssh_dsa_private_key' : '-----BEGIN DSA PRIVATE KEY-----',
'ssh_dc_private_key' : '-----BEGIN EC PRIVATE KEY-----',
'pgp_private_block' : '-----BEGIN PGP PRIVATE KEY BLOCK-----',
'json_web_token' : 'ey[A-Za-z0-9-_=]+\.[A-Za-z0-9-_=]+\.?[A-Za-z0-9-_.+/=]*$',
'JWT':'[= ]ey[A-Za-z0-9_-]*\.[A-Za-z0-9._-]*',
'ALL_JWT':'[= ]ey[A-Za-z0-9_\/+-]*\.[A-Za-z0-9._\/+-]*',

Google Maps API

  • Unauthorized Google Maps API Key Usage Cases, and Why You Need to Care
    • 谷歌地图API密钥未授权利用造成的危害
  • Google Maps API (Not the Key) Bugs That I Found Over the Years
  • ozguralp/gmapsapiscanner - Used for determining whether a leaked/found Google Maps API Key is vulnerable to unauthorized access by other applications or not.
    python3 maps_api_scanner_python3.py
    python3 maps_api_scanner_python3.py --api-key API_KEY
    
    # Staticmap、Streetview、Embed API's 有可能会误报
  • Google API key leaked to Public

点击关注,共同学习!安全狗的自我修养

github haidragon

https://github.com/haidragon

你可能感兴趣的:(学习)