【网安第一章】——信息收集

文章目录

  • 域名信息
  • IP信息
    • [1. 域名解析流程](#1. 域名解析流程)
    • [2. IP归属](#2. IP归属)
    • [3. 如何获取CDN后面的真实IP](#3. 如何获取CDN后面的真实IP)
      • CDN实现流程
      • [1. 超级ping](#1. 超级ping)
      • [2. 历史DNS](#2. 历史DNS)
      • [3. 通过子域名查询IP](#3. 通过子域名查询IP)
      • [4. 通过国外的主机来解析](#4. 通过国外的主机来解析)
      • [5. 邮件、SSL证书、手机App抓包、网络空间搜索引擎](#5. 邮件、SSL证书、手机App抓包、网络空间搜索引擎)
  • 端口服务信息
    • [1. 本机端口号查看](#1. 本机端口号查看)
    • [2. 远程端口号查看](#2. 远程端口号查看)
    • [3. 常用端口号及用途](#3. 常用端口号及用途)
      • [1. 文件共享服务端口](#1. 文件共享服务端口)
      • 2.远程连接服务端口
      • [3. web应用端口号](#3. web应用端口号)
      • [4. 数据库端口号](#4. 数据库端口号)
      • [5. 邮件端口号](#5. 邮件端口号)
      • [6. 网络常见协议端口号](#6. 网络常见协议端口号)
      • [7. 特殊服务端口](#7. 特殊服务端口)
    • [4. 端口扫描工具------nmap](#4. 端口扫描工具——nmap)
    • [5. 端口扫描可视化工具------zenmap](#5. 端口扫描可视化工具——zenmap)
  • 指纹识别
  • CMS指纹识别
    • [1. CMS识别思路](#1. CMS识别思路)
      • [1. 版权信息](#1. 版权信息)
      • [2. 特定文件MD5值](#2. 特定文件MD5值)
      • [3. 查看网页源代码](#3. 查看网页源代码)
      • [4. 通过特定文件分析](#4. 通过特定文件分析)
    • [2. cms识别工具](#2. cms识别工具)
  • CDN指纹识别
  • WAF指纹识别
  • 搜索引擎收集
    • [1. 运算符](#1. 运算符)
    • [2. 高级语法](#2. 高级语法)
    • [3. 谷歌语法数据库](#3. 谷歌语法数据库)
  • 网络空间搜索引擎
    • 1.shodan
    • [2. Censys](#2. Censys)
    • [3. ZoomEye](#3. ZoomEye)
    • [4. fofa](#4. fofa)
    • [5. 工具](#5. 工具)
  • 目录扫描
    • [1. 简介](#1. 简介)
    • [2. 常见敏感目录和文件](#2. 常见敏感目录和文件)
    • [3. 文件扫描思路](#3. 文件扫描思路)
    • [4. 工具](#4. 工具)
    • [5. 注意事项](#5. 注意事项)
    • [6. 防御](#6. 防御)
  • GIT
    • [1. 为什么GIT会导致信息泄露](#1. 为什么GIT会导致信息泄露)
    • [2. github搜索技巧](#2. github搜索技巧)
    • [3. git泄露利用方式](#3. git泄露利用方式)
    • [4. 懒人工具](#4. 懒人工具)
    • [5. 案例](#5. 案例)

域名信息

1. whois

whois命令查看域名信息。

shell 复制代码
┌──(kali㉿kali)-[~]
└─$ whois collshell.cn
Domain Name: collshell.cn
ROID: 20240604s10001s57799689-cn
Domain Status: ok
Registrant: 李强
Registrant Contact Email: qqiangqiang700@gmail.com
Sponsoring Registrar: 阿里云计算有限公司(万网)
Name Server: hasslo.ns.cloudflare.com
Name Server: dara.ns.cloudflare.com
Registration Time: 2024-06-04 10:52:09
Expiration Time: 2025-06-04 10:52:09
DNSSEC: unsigned

可以得到一些姓名、邮箱、手机的信息

  1. 爆破密码,根据以上的信息,做一个自定义的字典,去爆破他的密码

  2. 邮箱。用来钓鱼,做一个假的页面,发到邮箱,让他登录。

2.域名反查

有时候想做渗透想看某个邮箱另外注册了哪几个域名,就可以用到域名反查。

域名反查_邮箱反查域名_邮箱Whois反查 - 站长工具 (chinaz.com)

可以通过邮箱查询这个邮箱用来注册了几个域名。

作用:

  1. 一般来说,主站的安全级别最高,其他站点比较薄弱,如果得到另外注册的域名,可以从这些薄弱的地方入手。

但是这些信息可能会被隐藏起来。

3. ICP备案查询

有些域名信息被隐藏了,可以到这个ICP备案进行查询。

ICP/IP地址/域名信息备案管理系统 (miit.gov.cn)

或者用beian88.com

4.天眼查

根据公司名称获取企业的邮箱等联系信息

5. 子域名信息

1. 暴力枚举

  1. layer子域名挖掘机软件
  1. 字典枚举

仓库

GitHub - lijiejie/subDomainsBrute: A fast sub domain brute tool for pentesters

6. 域名DNS信息

CNAME记录

2、CNAME:

CNAME( Canonical name )即:别名记录。

  • CNAME的目标主机地址只能使用主机名,不能使用IP地址;
  • 主机名前不能有任何其他前缀,如:http://等是不被允许的
  • A记录优先于CNAME记录。即如果一个主机地址同时存在A记录和CNAME记录,则CNAME记录不生效。

两种域名解析方式

最常见的两种域名解析方式为A记录域名解析和CNAME域名解析。ALB对外提供域名,只支持CNAME域名解析。

  • A记录域名解析
    A记录域名解析又称IP指向,您可以设置子域名并指向到自己的目标主机IP上,从而实现通过域名找到指定IP。应用型负载均衡ALB默认对外提供公网IP访问,如需通过域名访问主机,可以配置A记录域名解析,具体实现方案如下图所示:
  • CNAME域名解析
    CNAME域名解析又称别名解析,您可以设置子域名并指向到其他域名,从而实现将一个域名指向另一个域名。应用型负载均衡ALB默认对外提供域名访问,如果通过其他域名访问请配置CNAME域名解析,具体实现方案如下图所示:

MX记录

  • MX记录(Mail Exchange):邮件路由记录
    在DNS上设定,用于将邮箱地址@符号后的域名指向邮件服务器。
  • 示例:example.com. IN MX 10 mail.example.com.
  • 解释:【domain】 IN MX 【优先度】 【邮件服务器】

作用:

当发信侧服务器给受信侧发邮件时,首先会要求DNS服务器解析受信侧邮箱地址中@后面部分的域名对应的MX记录(DNS的写法可以理解成example.com 的A记录下面,有一行上面示例的MX记录,当然邮箱服务器也有对应的A记录)。

这样,邮件就直接发到对应的MX记录的A记录里的IP了。

例子:给test@exmaple.com发邮件的话,

DNS会返回给发信侧198.51.100.3这个IP

exmaple.com. IN A 198.51.100.2

example.com. IN MX 10 mail.example.com.

mail.example.com. IN A 198.51.100.3

TXT记录

主要用于域名验证,域名解析服务商会要求你把一段文本填到TXT,如果能填上,服务商就会知道这个域名确实是你的。

  • 示例:ns1.exmaple.com. IN TXT "联系电话:XXXX"
  • 解释:【domain】 IN TXT 【任意字符串】

一般指某个主机名或域名的说明,或者联系方式,或者标注提醒等等。

哪里可以查这些信息

  1. 直接百度搜域名解析查询
  2. What's that site running? | Netcraft

这个netcraft非常强大

IP信息

1. 域名解析流程

  • 查询对应IP

ping baidu.com

nslookup baidu.com

2. IP归属

通过IP查找它归属哪个运营商等信息

Whois (cnnic.net.cn)

iP地址查询--手机号码查询归属地 | 邮政编码查询 | iP地址归属地查询 | 身份证号码验证在线查询网 (ip138.com)

3. 如何获取CDN后面的真实IP

CDN实现流程

1. 超级ping

2. 历史DNS

查找历史的DNS可以知道之前是哪个IP(也就是没用CDN之前)

3. 通过子域名查询IP

可能只有主站用了CDN,但是流量少的子站没用,这样就可以查找子域名对应的IP,看看是不是只有一个。

4. 通过国外的主机来解析

一般国内的CDN不会考虑国外的主机,所以直接用国外主机往往能访问到对应的真实IP.

https://webpagetest.org

5. 邮件、SSL证书、手机App抓包、网络空间搜索引擎

有的公司的邮件上面会显示真实ip

SSL证书

有些网站的SSL证书是绑定IP的,可以直接查看到。

手机APP抓包

有可能网页的前端用了CDN,但是手机APP没有,对APK进行逆向

端口服务信息

1. 本机端口号查看

netstat -an|grep 3306

2. 远程端口号查看

telnet 192.168.142.137 80

wget 192.168.142.137 80

nc -vz 192.168.142.137 445

nc -vz 192.168.142.137 80-9000 扫描80-9000端口

3. 常用端口号及用途

common-ports.pdf (nsrc.org)

1. 文件共享服务端口

2.远程连接服务端口

3. web应用端口号

4. 数据库端口号

5. 邮件端口号

6. 网络常见协议端口号

7. 特殊服务端口

4. 端口扫描工具------nmap

  • 最基础的工具,一定要掌握,作用

1)扫描主机(Host Discovery)

2)扫描端口(Port Scanning)

3)探测操作系统、软件版本 (Operating System

Detection、Version Detection)

  • nmap自带脚本

/usr/share/nmap/scripts

以下网址可以查看每个脚本的用途

NSEDoc Reference Portal: NSE Scripts --- Nmap Scripting Engine documentation

nmap 192.168.142.137 --script http-enum 列举HTTP服

nmap --script=auth 绕过鉴权

nmap --script=brute 暴力破解

nmap --script=vuln 扫描漏洞

nmap testfire.net 这是IBM提供的靶场

简单扫描

nmap -sP 192.168.142.137

指定端口或范围扫描:

nmap -p0-65535 192.168.142.137

探测操作系统:

nmap -O 192.168.142.137

只进行主机发现,不进行端口扫描

nmap -sn 192.168.40.195/24

主机发现就是,查看192.168.40.1 ~ 192.168.40.255的主机是否存在。

文档

Nmap使用技巧总结.md · lcxclcxc/my_doc - 码云 - 开源中国 (gitee.com)

5. 端口扫描可视化工具------zenmap

指纹识别

1、CMS信息:比如Discuz、织梦、帝国CMS、PHPCMS、ECshop等;

2、前端技术:比如HTML5、jquery、bootstrap、Vue、ace等;

3、开发语言:比如PHP、Java、Ruby、Python、C#等;

4、Web服务器:比如Apache、 Nginx、IIS、lighttpd等;

5、应用服务器:比如Tomcat、Jboss、Weblogic、Websphere等;

6、操作系统信息:比如Linux、win2k8、win7、Kali、Centos等;

7、CDN信息:是否使用CDN,如cloudflare、帝联、蓝讯、网宿、七

牛云、阿里云等;

8、WAF信息:是否使用WAF,如D盾、云锁、宝塔、安全狗、360等

CMS指纹识别

  • CMS即搭建整套网站用的框架。

  • 内容管理系统

    Content Management System

1. CMS识别思路

1. 版权信息

2. 特定文件MD5值

  • 打开F12网页后台,查看靶站的静态文件,看看是否和对应的cms网站的MD5值一致,一致即代表用的是那个CMS。

    比如网站图标、或者其它的小icon

拿到后直接在下面这个项目匹配MD5值,即可找到cms名称。

Lucifer1993/cmsprint: CMS和中间件指纹库 (github.com)

3. 查看网页源代码

譬如说有这种文件,就是wordPress搭建的博客系统。

4. 通过特定文件分析

比如某个网站的robot.txt文件

这些文件如果和某个cms系统一致,那么就是某个cms系统

2. cms识别工具

  • whatweb工具

whatweb -v www.baidu.com

  • 浏览器插件

Wappalyzer:https://www.wappalyzer.com

whatruns :https://www.whatruns.com/

  • 在线网站

http://whatweb.bugscaner.com

http://finger.tidesec.com/

  • 离线网站

御剑指纹扫描器(需要.NET Framework)

Test404轻量CMS指纹识别 v2.1

  • 开源程序

https://github.com/Tuhinshubhra/CMSeeK

CDN指纹识别

  • nslookup
  • 超级ping
  • ldb
  • 网站

国内:

http://cdn.chinaz.com/

国外:

https://www.cdnplanet.com/tools/cdnfinder/

脚本:

https://github.com/boy-hack/w8fuckcdn/

https://github.com/3xp10it/xcdn

WAF指纹识别

过滤HTTP/HTTPS的请求

WAF作用

| SQL Injection (SQLi):阻止SQL注入

l Cross Site Scripting (XSS):阻止跨站脚本攻击

l Local File Inclusion (LFI):阻止利用本地文件包含漏洞进行攻击

l Remote File Inclusione(RFI):阻止利用远程文件包含漏洞进行攻击

l Remote Code Execution (RCE):阻止利用远程命令执行漏洞进行攻击

l PHP Code Injectiod:阻止PHP代码注入

l HTTP Protocol Violations:阻止违反HTTP协议的恶意访问

l HTTPoxy:阻止利用远程代理感染漏洞进行攻击

l Sshllshock:阻止利用Shellshock漏洞进行攻击

l Session Fixation:阻止利用Session会话ID不变的漏洞进行攻击

l Scanner Detection:阻止黑客扫描网站

l Metadata/Error Leakages:阻止源代码/错误信息泄露

l Project Honey Pot Blacklist:蜜罐项目黑名单

l GeoIP Country Blocking:根据判断IP地址归属地来进行IP阻断

识别方法------触发拦截

  • 在请求中带入非法字符,从而触发拦截,这个时候可以根据拦截的提示识别是哪个WAF
  • xsstring = ''
    sqlistring = "UNION SELECT ALL FROM information_schema AND ' or SLEEP(5) or '"
    lfistring = '.../.../.../.../etc/passwd'
    rcestring = '/bin/cat /etc/passwd; ping 127.0.0.1; curl google.com'
    xxestring = '<!ENTITY xxe SYSTEM "file:///etc/shadow">]>&hack;'

得到指纹

  1. 额外的cookie;

  2. 任何响应或请求的附加标头;

  3. 响应内容(如果被阻止请求);

  4. 响应代码(如果被阻止请求);

  5. IP地址(云WAF);

  6. JS客户端模块(客户端WAF)

指纹库

https://github.com/0xInfection/Awesome-WAF.git

https://github.com/CSecGroup/wafid.git

实际使用

  1. wafw00f www.12306.cn
  1. nmap

nmap www.12306.cn --script=http-waf-detect.nse

  1. sqlmap

sqlmap -u "xxx.com?id=1" --identify-waf

限制:必须含动态的网页。(即带get参数)

搜索引擎收集

1. 运算符

  • 完整匹配:""
  • 剔除不需要的内容: -
  • 或: OR
  • 数字范围: num...num

2. 高级语法

  • 只搜索某个网站: site:zhihu.com

  • 网页内容包括:

    allintext:Powered by Discuz

    intext:Powered by Discuz

  • 网页标题包括:

    allintitle:后台管理系统

    intitle:后台管理系统

  • URL地址包括

    allinurl:admin.php

    inurl:index.php?id=1

  • 文件类型指定:

    filetype:pdf

3. 谷歌语法数据库

https://www.exploit-db.com/google-hacking-database

https://github.com/BullsEye0/google_dork_list

网络空间搜索引擎

1.shodan

淘宝上花几块钱可以买到。

  • CLI 命令行工具

使用示例:

使用 shodan 入侵打印机 - 链滴 (ld246.com)

https://github.com/jakejarvis/awesome-shodan-queries (语法)

https://github.com/random-robbie/My-Shodan-Scripts (python脚本)

2. Censys

3. ZoomEye

4. fofa

5. 工具

https://github.com/knownsec/Kunyu

https://github.com/coco413/DiscoverTarget

https://github.com/saucer-man/saucerframe

目录扫描

1. 简介

  1. 常见敏感文件:
  • 配置文件

    xxx.cfg

  • 数据文件

    xxx.sql

    .tar.gz

  • 目录

    /backup

    /conf

    /admin

  1. 为什么会泄露
  • 网站配置错误
  • 本地文件包含(LFI)

php里面存在include。如果include通过参数传入,并且没有经过校验,那么就能访问到磁盘中所有的文件。

可以在dvwa靶场中试下这个:

http://localhost/dvwa/vulnerabilities/fi/?page=.../.../phpinfo.php

http://localhost/dvwa/vulnerabilities/fi/?page=.../.../.../.../.../.../.../in.txt

2. 常见敏感目录和文件

  • robots.txt 爬虫机器人文件(如果配置了这个,进去里面看看,exclude的往往是敏感的文件,可以专门看这些文件)

  • sitemap.xml 知道搜索引擎爬虫如何搜索(往往由cms生成)

  • 网站的备份文件/数据

    • xxx.zip
  • 后台登录的目录

    /admin

    /manage

  • 安装包(源码)

    • 主要适用于非开源,商用的系统
    • /install
  • 上传的目录

    /upload

    /upload.php

  • mysql的管理界面

​ phpadmin 的web页面去管理

  • 程序的安装路径

​ /install

  • php 的探针 phpinfo.php
    • 用来查看服务器的探针

​ + 雅黑探针 (用来解析phpinfo)

  • 网站文本编辑器漏洞。可以百度搜下学习下,这种很容易有各种漏洞

    • ueditor漏洞
    • kindeditor
  • Linux

    • /etc/passwd
    • /etc/shadow 用SHA512
    • /etc/sudoers
  • MacOs

    • DS_Store
  • 临时文件编辑器

    • .swp
  • 目录穿越

    • 可能会出现漏洞的服务器:Windows IIS 、 Apache
    • 就是访问网站路径的上一级 .../.../.../
  • tomcat 中的WEB_INF

    WEB-INF/web.xml : Web应用程序配置文件, 描述了servlet和其他的应用组件配置及命名规则.

    WEB-INF/database.properties : 数据库配置文件

    WEB-INF/classes/ : 一般用来存放Java类文件(.class)

    WEB-INF/lib/ : 用来存放打包好的库(.jar)

    WEB-INF/src/ : 用来放源代码(.asp和.php等)

WEB-INF-dict

3. 文件扫描思路

  1. 直接输入url

    • 递归模式
    • 字典模式:得预先有字典
    • 暴力破解模式
    • 爬虫(专门用robots.txt)
    • fuzz(模糊测试):依赖于字典
  2. 文件扫描的字典

    wordlists即可获取

4. 工具

  1. dirb 扫描工具

dirb http://demo.testfire.net/

  1. dirbuster 图形化界面工具 ------ 新版本是ZAP,建议用ZAP

  2. 御剑

  3. Burp Suite

5. 注意事项

  1. WAF、IDS等会拦截或锁IP

    如何绕过?

    1. 通过代理
    2. 网络空间搜索引擎,找到一些现成的结果

6. 防御

  1. 控制权限
  2. 删除敏感文件
  3. WAF、IDS

GIT

1. 为什么GIT会导致信息泄露

  1. 把是由仓库/隐私文件提交到了github
  2. 部署项目的时候,不小心把【.git文件】一起打包进去,放到web网站的目录下
    • .git/logs/HEAD 存储了git的log信息,可以找到历史的commit项
      .git/index 缓存git add的文件,暂存区
      .git/refs/stash git stash 把代码存入缓存区
      .git/refs/heads/master 记录了master的commit的hash(得到hash就能得到当前所有最新代码)
      .git/objects/pack/.pack

2. github搜索技巧

kali in:file 搜索文件中包含kali的代码

kali in:path 搜索路径中包含kali的代码

kali in:path,file 搜索路径、文件中包含kali的代码

shodan language:python 搜索关键字shodan,语言为python的代码

filename:config.php language:php 搜索文件名为config.php,且语言为php

kali topics:>=5 标签数量大于等于5的

kali size:<1000 文件小于1KB的

kali stars:10...50 star大于10小于50的

kali pushed:>2021-08-15 搜索在2021年8月15日之后提交的

kali pushed:2021-07-01...2021-08-01 搜索在此区间

kali created:>=2021-06-01 创建时间

kali pushed:<2021-08-01 -language:java

搜索在2020年8月1日前push代码且排除java语言

3. git泄露利用方式

  1. 找到.git 文件夹

    • 目录扫描
    • robots.txt
    • 搜索引擎搜索 intitle:"Index of /.git"
  2. 下载.git文件夹

    https://github.com/BugScanTeam/GitHack

    https://github.com/lijiejie/GitHack

    https://github.com/wangyihang/githacker

    https://github.com/WangWen-Albert/JGitHack

  3. 用git的命令获取内容

  • git log
  • git rest --hard [log hash]
  • git diff

4. 懒人工具

  • 自动下载、自动分析

https://github.com/gakki429/Git_Extract

5. 案例

  • ctfhub网站,强烈推荐使用
  1. dirb直接扫描
  1. 直接用GitHack工具下载下来。

  2. git log查看提交记录

  1. 使用git diff比较

直接得到flag

相关推荐
qmx_073 小时前
HTB-Jerry(tomcat war文件、msfvenom)
java·web安全·网络安全·tomcat
Wrop12 小时前
网络安全实训八(y0usef靶机渗透实例)
安全·web安全
xuan哈哈哈19 小时前
web基础—dvwa靶场(八)SQL Injection(Blind)
数据库·web安全·网络安全
go_to_hacker21 小时前
网络安全中GET和POST区别在哪?
安全·web安全
白80801 天前
Nginx越界读取缓存漏洞(CVE-2017-7529)
安全·web安全
zqh176736464691 天前
注册信息安全专业人员(CISP)和网络安全的联系与区别
网络·安全·web安全
小堃学编程1 天前
计算机网络(七) —— https协议与网络安全证书
计算机网络·web安全·https