您现在的位置是:首页 >学无止境 >章节1:信息收集网站首页学无止境

章节1:信息收集

程序员小勇 2024-06-17 11:28:05
简介章节1:信息收集

章节1:信息收集

1 信息收集概览

01 为什么要做信息收集?

渗透测试的流程

确定目标

信息收集

漏洞扫描

漏洞利用

形成报告

信息收集包括的内容

域名信息、IP段、开放的端口、网站架构、文件目录结构、软件版本、WAF、旁站、C段…

分类
  1. 域名相关信息
  2. IP相关信息
  3. 端口服务相关信息
  4. 指纹识别
  5. Google Hacking
  6. 目录信息
  7. Git Hack
学习框架
  1. 这种信息是什么?
  2. 怎么收集这种信息?
  3. 收集这种信息有什么用?

2 域名信息收集-上

01 域名(Domian Name)是什么?

IP

在这里插入图片描述

域名的分类

国际域名:.com(商业公司);.net(网络服务);.org(组织协会等);.gov(政府部门);.edu(教育机构);.mil(军事领域);.int(国际组织)

国别域名:.CN代表中国,.UK代表英国,.US代表美国

新顶级域名:biz, info, name, pro, aero, coop, museum…

域名与IP(DNS Domain Name Server)

在这里插入图片描述

域名联系人信息

所属人、邮箱、电话、地址…

02 whois查询

whois

.com由域名运营商VeriSign管理

cn域名由CNNIC管理

https://wanwang.aliyun.com/

https://whois.chinaz.com/

http://whoissoft.com/

https://webwhois.cnnic.cn/WelcomeServlet

在这里插入图片描述

whois工具

https://whois.chinaz.com

http://whoissoft.com

https://whois.cnnic.cn/WelcomeServlet

kali whois命令

域名反查

http://whois.chinaz.com/reverse

https://mwhois.chinaz.com/

03 ICP备案查询

备案信息

在这里插入图片描述

备案流程

https://help.aliyun.com/document_detail/61819.html

https://beian.miit.gov.cn/#/Integrated/index

https://icp.chinaz.com/

https://www.beian88.com/

https://www.tianyancha.com/

域名:联系人:姓名、邮箱、手机号

反查:更多的域名

主要的产品、主站:安全级别最高

3 域名信息收集-下

04 子域名信息

子域名的作用?

百度搜索 www.baidu.com

百度新闻(news.baidu.com)、百度地图、百度贴吧、百度文库

怎么查询子域名?
  1. 字典猜解
  2. 枚举

在这里插入图片描述

在这里插入图片描述

https://phpinfo.me/domain/

https://github.com/lijiejie/subDomainsBrute(在kali中运行)

05 域名解析信息

域名解析信息

在这里插入图片描述

https://www.dnspod.com/

https://www.dnspod.cn/

在这里插入图片描述

@:代表所有的地址

www:代表特殊的子域名

在上图中,IP是有用信息,邮箱服务器可能会在渗透测试中用到。

记录类型

A A记录是最常用类型,将域名指向一个 IPv4 地址,如 8.8.8.8

CNAME 将域名指向另一个域名地址,与其保持相同解析,如 https://www/dnspod.cn

​ z.cn跳转到amazon.cn

​ g.cn跳转到www.google.cn

MX 用于邮件服务器,相关参数一般由邮件注册商提供

​ 腾讯企业邮箱

​ 企业邮箱 wuya@xxxx.com

​ 校园邮箱

TXT 可填写附加文本信息,常用于域名验证

NS 域名服务器记录,可将指定域名交由其他 DNS 服务商解析管理

AAAA 将域名指向一个 IPv6 地址,如ff06:0:0:0:0:0:0:c3

http://dbcha.com/

https://sitereport.netcraft.com/

http://www.jsons.cn/nslookup/

在这里插入图片描述

(不推荐使用)

4 IP信息

01 DNS服务器的类型

DNS解析流程

在这里插入图片描述

https://console.dnspod.cn/dns/

02 ping / nslookup

Ping

Packet Internet Groper

因特网包探索器

nslookup

在这里插入图片描述

nslookup -type=“MX” baidu.com

在这里插入图片描述

03 IP归属

IP归属

https://ipwhois.cnnic.net.cn/

https://www.ip138.com/

04 如何获取CDN背后的真实IP

CDN

Content Delivery Network

内容分发网络

没有CDN

在这里插入图片描述

使用CDN服务

在这里插入图片描述

常见CDN服务商(简单了解)

CloudFlare/CloudFront…

帝联/蓝讯/网宿/七牛云/腾讯/百度/阿里云(市场占有率最高)

实现流程(阿里云为例)

https://www.zhihu.com/question/36514327/answer/1604554133

  1. 当终端用户(北京)向www.a.com下的指定资源发起请求时,首先向LDNS(本地DNS)发起域名解析请求。
  2. LDNS检查缓存中是否有www.a.com的IP地址记录。如果有,则直接返回给终端用户;如果没有,则向授权DNS查询。
  3. 当授权DNS解析www.a.com时,返回域名CNAME www.a.tbcdn.com对应IP地址。
  4. 域名解析请求发送至阿里云DNS调度系统,并为请求分配最佳节点IP地址。
  5. LDNS获取DNS返回的解析IP地址。
  6. 用户获取解析IP地址。
  7. 用户向获取的IP地址发起对该资源的访问请求。
如何找出真实IP

在这里插入图片描述

如何获取CDN背后的真实IP
  1. 超级ping

    https://ping.chinaz.com/

  2. 历史DNS

    https://dnshistory.org/

    https://sitereport.netcraft.com/

    https://tools.ipip.net/cdn.php

  3. 通过子域名查询IP

  4. 国外主机解析

    https://www.host-tracker.com/en

    https://www.webpagetest.org/

    https://dnscheck.pingdom.com/

  5. 其他,比如邮件、SSL证书、手机APP抓包、网络空间搜索引擎等

邮件

在这里插入图片描述

国外访问

https://www.host-tracker.com/en

https://www.webpagetest.org/

https://dnscheck.pingdom.com/

5 端口服务信息

01 端口扫描思路和代码实现

查看本机端口信息

Windows

netstat -ano|findstr 3306

Linux

netstat -an|grep 3306

在这里插入图片描述

在这里插入图片描述

远程机器端口

telnet ip 80

wget ip 80

nc -vz ip 445(或一个端口范围)

-z:只是去扫描一个侦听守护的进程,而不会实际向他们发送数据。

在这里插入图片描述

# wscan.py

import socket, threading

def TCP_connect(ip, port_number, delay, output):
    TCPsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    TCPsock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    TCPsock.settimeout(delay)
    try:
        TCPsock.connect((ip, port_number))
        output[port_number] = 'Listening'
    except:
        output[port_number] = ''
        
def scan_ports(host_ip, delay):
    threads = [] # To run TCP_connect concurrently
    output = {}  # For print purposes
    
    # Spawning threads to scan ports
    # 先扫描10000个端口
    for i in range(10000):
        t = threading.Thread(target=TCP_connect, args=(host_ip, i, delay, output))
        threads.append(t)
        
    # Starting threads
    for i in range(10000):
        threads[i].start()
        
    # Locking the script until all threads complete
    for i in range(10000):
        threads[i].join()
        
    # Printing listening ports from small to large
    for i in range(10000):
        if output[i] == 'Listening':
            print(str(i) + ': ' + output[i])
            
def main():
    host_ip = input("Please enter host IP: ")
    # 超时抛出异常
    delay = int(input("How many seconds the socket is going to wait until timeout: "))
    scan_ports(host_ip, delay)
    input("Press Any Key to Exit")
                      
if __name__ == "__main__":
    main()

02 常见端口及漏洞

常见端口

https://nsrc.org/workshops/2009/summer/presentations/day3/common-ports.pdf

分类
  1. 文件共享服务
  2. 远程连接服务
  3. Web应用服务
  4. 数据库服务
  5. 邮件服务
  6. 网络常见协议
  7. 其他服务端口
文件共享服务端口
端口号端口说明攻击方向
21/22/69FTP/SFTP文件传输协议允许匿名上传、下载、爆破和嗅探操作
2049NFS服务(Network File System)配置不当
139Samba服务爆破、未授权访问、远程代码和执行
389LDAP目录访问协议注入、允许匿名访问、弱口令
远程连接服务端口
端口号端口说明攻击方向
22SSH远程连接爆破、SSH隧道及内网代理转发、文件传输
23Telnet远程连接爆破、嗅探、弱口令
3389RDP远程桌面连接Shift后门(Windows Server2003以下的系统)、爆破
5900VNC弱口令爆破
5632PcAnywhere远程控制服务抓密码、代码执行
web应用服务端口(漏洞较多)
端口号端口说明攻击方向
80/443/8080常见的web服务端口(80:默认的http端口号;443:https协议的端口号;8080:Tomcat默认的端口号)Web攻击、爆破、对应服务器版本漏洞
7001/7002Weblogic控制台Java反序列化、弱口令
8080/8089Jboss/resin/jetty/Jenkins反序列化、控制台弱口令
9090Websphere控制台Java反序列化、弱口令
4848Glassfish控制台弱口令
1352Lotus domino邮件服务弱口令、信息泄露、、爆破
10000Webmin-web控制面板弱口令
数据库服务端口
端口号端口说明攻击方向
3306MySQL注入、提权、爆破
1433MSSQL数据库注入、提权、SA弱口令
1521Oracle数据库TNS爆破、注入、反弹shell
5432PostgreSQL数据库爆破、注入、弱口令
27017/27018MongoDB爆破、未授权访问
6379Redis数据库可尝试未授权访问、弱口令爆破
5000Sysbase/DB2数据库爆破、注入
邮件服务端口
端口号端口说明攻击方向
25SMTP邮件服务邮件伪造
110POP3协议爆破、嗅探
143IMAP协议爆破
网络常见协议端口
端口号端口说明攻击方向
53DNS域名系统允许区域传送、DNS劫持、缓存投毒、欺骗
67/68DHCP服务劫持、欺骗
161SNMP协议爆破、搜集目标内网信息
特殊服务端口
端口号端口说明攻击方向
2181Zookeeper服务未授权访问
8069Zabbix服务远程执行、SQL注入
9200/9300ElasticSearch服务远程执行
11211Memcached服务未授权访问
512/513/514Linux Rexec服务爆破、rlogin登录
873Rsync服务匿名访问、文件上传
3690SVN服务SVN泄露、未授权访问
50000SAP Management Console远程执行

03 端口扫描工具

Nmap

Nmap(Network Mapper)

https://nmap.org/

1)扫描主机(Host Discovery)

2)扫描端口(Port Scanning)

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

在这里插入图片描述

参数类型

namp --help

  • TARGET SPECIFICATION:目标,对什么进行扫描,比如是域名、IP或者网络
  • HOST DISCOVERY:主机发现,怎么对主机进行扫描,比如简单扫描,还是全部扫一遍,或者用相应的协议扫
  • SCAN TECHNIQUES:扫描技术,协议的设置
  • PORT SPECIFICATION AND SCAN ORDER:端口和扫描顺序设置
  • SERVICE/VERSION Detection:服务和版本识别
  • SCRIPT SCAN:使用脚本,namp本身内置了大量的lua版本,而且还可以自己编写脚本
  • OS Detection:操作系统识别
  • TIMING AND PERFORMANCE:时间和性能设置,比如扫描频率、重试次数等等
  • FIREWALL/IDS EVASION AND SPOOFING:防火墙绕过和欺骗,比如使用代理,假IP等
  • OUTPUT:把扫描接出输出到文件
  • MISC:启用IPv6等等配置
脚本

nmap本身内置了大量的lua版本,而且还可以自己编写脚本

ls /usr/share/namp/scripts/ | wc -l

全部清单:https://nmap.org/nsedoc/index.html

例如:

nmap ip --script http-enum 列举HTTP服务

nmap --script=auth 绕过鉴权

nmap --script=brute 暴力破解

nmap --script=vuln 扫描漏洞

安装metasploitable2 Linux靶机

导入VM

默认用户名密码

msfadmin/msfadmin

修改root密码:

sudo passwd root

在这里插入图片描述

使用示例

nmap ip # metasploitable2 Linux

nmap testfire.net # IBM的一个靶场

http://testfire.net/

常用参数

简单扫描

nmap -sP ip

指定端口或范围扫描:

nmap -p0-65535 ip

探测操作系统:

nmap -O ip

在这里插入图片描述

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

nmap -sn ip/24

在这里插入图片描述

IP后面的 /24是什么意思?

掩码的位数。

子网掩码8位,11111111.00000000.00000000.00000000 代表:

255.0.0.0(A类IP地址)

子网掩码16位,

11111111.11111111.00000000.00000000 代表:

255.255.0.0(B类IP地址)

子网掩码24位,

11111111.11111111.11111111.00000000 代表:

255.255.255.0(C类IP地址)

旁站:和目标网站在同一台服务器但端口不同的其他网站。

C段:和目标服务器IP在同一个C段的其他服务器。

Zenmap

第一种:Intense scan

第二种:Intense scan plus UDP

第三种:Intense scan,all TCP ports

第四种:Intense scan,no ping

第五种:Ping scan

第六种:Quick scan

第七种:Quick scan plus

第八种:Quick traceroute

第九种:Regular scan

第十种:Slow comprehensive scan

其他扫描工具

在线扫描

http://coolaf.com/tool/port

masscan、nbtscan…

6 CMS指纹识别

01 什么是指纹识别?

什么是指纹识别?

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

识别对象
  1. CMS信息:比如Discuz、织梦、帝国CMS、PHPCMS、ESshop等;
  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,如cloudfare、帝联、蓝讯、网宿、七牛云、阿里云等;
  8. WAF信息:是否使用WAF,如D盾、云锁、宝塔、安全狗、360等

02 CMS指纹识别

CMS怎么来的?

内容管理系统

Content Management System

如果你要建一个论坛……

CMS包括什么?

博客(比如CSDN、博客园)、微博、团购网站、导航网站(hao123)、信息分类(58)、问答网站(知乎)、商城、百科……

企业官网、学校官网、医院官网……

主流(开源)CMS

在这里插入图片描述

各类网站开源CMS
  • 企业建站系统:MetInfo(米拓)、蝉知、SiteServer CMS等;

  • B2C商城系统:商派Shopex、ECshop、HiShop、Xpshop等;

  • 门户建站系统:DedeCMS(织梦)、帝国CMS、PHPCMS、动易、CmsTop等;

  • 博客系统:WordPress、Z-Blog等;

  • 论坛社区:Discuz、PHPwind、WeCenter等;

  • 问答系统:Tipask、whatsns等;

  • 知识百科系统:HDwiki;

    https://zh.moegirl.org.cn/Mainpage

  • B2B门户系统:Destoon、B2Bbuilder、友邻B2B等;

  • 人才招聘网站系统:骑士CMS、PHP云人才管理系统;

  • 房产网站系统:FangCms等;

  • 在线教育建站系统:Kesion、EduSoho;

  • 电影网站系统:苹果CMS、ctcms、movcms等;

  • 小说文学建站系统:杰奇CMS;

03 CMS识别思路

在这里插入图片描述

CMS指纹识别思路

版权信息(大部分会去掉)

在这里插入图片描述

在这里插入图片描述

特定文件MD5值

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(对上图的小图标判断MD5值是否等于原开源建站网站)

https://github.com/Lucifer1993/cmsprint

查看网页源代码

在这里插入图片描述

通过特定文件分析

在这里插入图片描述

……

04 CMS识别工具

kali自带工具

whatweb

在这里插入图片描述

浏览器插件

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

在这里插入图片描述

7 CDN指纹识别

01 CDN指纹识别思路

如何获取CDN背后的真实IP
  1. 超级ping

  2. 历史DNS

  3. 通过子域名查询IP

  4. 国外主机解析

  5. 其他

CDN如何配置?

https://help.aliyun.com/document_detail/27144.html

通过DNS解析记录的CNAME解析到CDN服务器

02 CDN指纹识别工具

常规

ping

nslookup

超级ping

https://ping.chinaz.com/

ldb(load balance detector)

专用工具

国内:

http://cdn.chinaz.com/

国外:

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

脚本:

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

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

8 WAF指纹识别

01 什么是WAF

什么是WAF

Web Application Firewall

Web 应用防火墙

过滤HTTP/HTTPS的请求

WAF的作用

http://modsecurity.cn/

  • 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:阻止利用远程代理感染漏洞进行攻击
  • Sshllshock:阻止利用Shellshock漏洞进行攻击
  • Session Fixation:阻止利用Session会话ID不变的漏洞进行攻击
  • Scanner Detection:阻止黑客扫描网站
  • Metadata/Error Leakages:阻止源代码/错误信息泄露
  • Project Honey Pot Blacklist:蜜罐项目黑名单
  • GeoIP Country Blocking:根据判断IP地址归属地来进行IP阻断
WAF分类
  • 硬件型WAF(产商安装)
  • 云WAF(阿里云、腾讯云、华为云……)
  • 软件型WAF(部署在Apache、Nginx等HTTP Server中)

02 常见WAF产商

WAF产商

各种云:阿里云、腾讯云、华为云、百度云……

安全狗、宝塔、360、知道创宇、长亭、安恒……

宝塔

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

安全狗

在这里插入图片描述

腾讯云

在这里插入图片描述

阿里云

在这里插入图片描述

03 WAF指纹识别思路

识别思路

额外的cookie;

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

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

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

IP地址(云WAF);

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

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

如何触发拦截?
xsstring = '<script>alert("XSS");</script>'
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 STSTEM "file:///etc/shadow">]><pwn>$hack;</pwn>'
指纹库

https://github.com/CSecGroup/wafid/blob/master/finger.xml

04 WAF指纹识别工具

工具

Kali自带:

https://github.com/EnableSecurity/wafw00f

用法:wafw00f https://www.12306.cn

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

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

其他:

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

9 搜索引擎收集信息

搜索引擎

在这里插入图片描述

01 Google Hacking

来源

2002年

Johnny Long

https://www.google.com.hk/advanced_search?q=burp+suite&sxsrf=AJOqlzWGfmoREu3NjJmGlN2RlbMFIFrM3w:1674560029591&hl=zh-CN

在这里插入图片描述

语法数据库

https://www.exploit-db.com/google-hacking-database(没必要去记,用时找即可)

https://github.com/BullsEye0/google_dork_list

工具

https://github.com/m3n0sd0n4ld/uDork

10 网络空间搜索引擎-上

在这里插入图片描述

11 网络空间搜索引擎-中

02 Shodan

Shodan

“When people don’t see stuff on Google, they think no one can find it. That’s not true."

​ ——Jonh Matherly (Schodar创始人:约翰·玛瑟利)

https://www.shodan.io/dashboard

tomcat coutry: “CN”

apache city: “Changsha”

server: gws hostname: “google”

Server: Hikvision-Webs country: “CN”

在这里插入图片描述

在这里插入图片描述

12 网络空间搜索引擎-下

03 Censys

https://search.censys.io/

https://www.zoomeye.org/

https://en.fofa.info/

在这里插入图片描述

13 目录扫描-上

01 什么是目录扫描

在这里插入图片描述

14 目录扫描-中

03 常见敏感目录和文件

https://github.com/lijiejie/ds_store_exp

https://github.com/BlackFan/WEB-INF-dict/blob/master/web-inf.txt

在这里插入图片描述

15 目录扫描-下

04 文件扫描思路

在这里插入图片描述

16 Git信息收集-上

01 什么是版本控制系统

在这里插入图片描述

17 Git信息收集-中

02 Git工作区划分

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

18 Git信息收集-下

04 Git信息泄露利用方式

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

经本人实验,命令中的python应该为python2。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

19 信息收集总结

笔记见https://download.csdn.net/download/weixin_43909650/87806486

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。