信息收集精简

0x00 什么是信息收集

信息收集是指通过各种方式获取所需要的信息,以便我们在后续的渗透过程更好的进行。比如目标站点IP、中间件、脚本语言、端口、邮箱等等。信息收集包含资产收集但不限于资产收集。

0x01 信息收集的分类

信息收集的方式可以分为两种:主动和被动。

  • 主动信息收集:通过直接访问在网站上进行操作,对网站进行扫描等,这种是有网络流量经过目标服务器得信息收集方式
  • 被动信息收集:基于公开的渠道,比如搜索引擎等在不与目标系统直接交互得情况下获取信息,并且尽量避免留下痕迹,比例:Google搜索、Shodan搜索等

没有一种方式是最完美的,每个方式都有自己的优势,主动方式,能获取更多的信息,但是目标主机可能会记录你的操作记录。被动方式,收集的信息会相对较少,但是收集信息得行动并不会被目标主机发现。一个渗透项目下,需要有多次的信息收集,同时也要运用不同的收集方式,才能保证信息收集的完整性。

常见搜集的信息包括
  1. IP地址信息(服务、端口、协议、CDN)
  2. 域名信息(whois、备案信息(邮箱、联系人、地址、电话)、子域名)
  3. 网站信息(框架、服务器、数据库、编程语言、指纹、WAF、敏感文件、C段、敏感目录、源码泄露、旁站)
  4. DNS记录
  5. 管理员信息(姓名、职务、生日、联系电话、邮件地址)

0x02 域名信息的收集

1.域名介绍

域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。
DNS(域名系统,Domain Name System)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。

img

2. Whois

Whois是用来查询域名的IP以及所有者等信息的传输协议。简单说,Whois就是一个用来查询域名是否已经被注册,以及注册域名信息的数据库(如域名所有人、域名注册商、注册商邮箱等)。
​ 通过Whois查询可以获得域名注册者邮箱地址等信息,一般情况下对于中小型网站域名注册者就是网站管理员,利用搜索引擎对Whois查询到的信息进行搜索,获取更多域名注册者的个人信息。

(1) web接口查询

常见的信息收集网站包括:

(2)通过Whois命令查询

在Kali Linux下自带的Whois查询工具,通过命令Whois查询域名信息。

Whois baidu.com
(3) Python撰写Whois代码
1. import urllib.request
2. req_whois = urllib.request.urlopen('http://whois.chinaz.com/doucube.com')
3. print(req_whois.read().decode())
4. 
5. import whois
6. data = whois.whois("sohu.com")
7. print(data)

3.备案信息

ICP备案是指网络内容提供商(Internet Content Provider),《互联网信息服务管理办法》指出需要对网站进行备案,未取得许可不得从事互联网信息服务。

4.子域名

子域名指二级域名,二级域名是顶级域名(一级域名)的下一级。比如mail.heetian.com和bbs.heetian.com是heetian.com的子域,而heetian.com
则是顶级域名.com的子域。

(1) Google Hack

Google Hack是指使用Google、百度等搜索引擎对某些特定网站主机漏洞(通常是服务器上的脚本漏洞)进行搜索,以达到快速找到漏洞主机或特定主机的漏洞的目的。

关键字 含义
site 指定搜索域名 例如:site:hetianlab.com
inurl 指定url中是否存在某些关键字 例如:inurl : php?id=
intext 指定网页中是否存在某些关键字 例如:intext:网站管理
filetype 指定搜索文件类型 例如:filetype:txt
intitle 指定网页标题是否存在某些关键字 例如:后台管理
link 指定网页链接 例如:link:hetianlab.com 指定与合天做了外链得站点
info 指定搜索网页信息 例如: info:hetianlabcom
(2) 第三方web接口查询
(3) 网络空间安全搜索引擎
(4) SSL证书查询
(5) 工具

0x03 IP信息的收集

1. IP反查域名

如果渗透目标为虚拟主机,那么通过IP反查到的域名信息很有价值,因为一台物理服务器上面可能运行多个虚拟主机。这些虚拟主机有不同的域名,但通常共用一个IP地址。如果你知道有哪些网站共用这台服务器,就有可能通过此台服务器上其他网站的漏洞获取服务器控制权,进而迁回获取渗透目标的权限,这种技术也称为“旁注”。

2. 域名查询IP

知道一个站点的域名需要得到它的IP以便之后获取端口信息或扫描等后续工作。

3. CDN

(1)CDN

CDN全称是Content Delivery Network,即内容分发网络。CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率.其原理如下:某些大型网站在全国都会有很多用户,这些用户常常会向网站发送不同的请求,那么不同地域会具有不同的缓冲服务器来接收用户发送的流量。如果用户发送流量没有任何交互的数据,只是请求首页的话,此时根据用户所在地区来确定访问的高速缓存服务器,高速缓存服务器会返回对应的响应到用户的浏览器当中,比如广东。

img

当用户填写数据,需要交互时才会将请求发送到真实的服务器;此时通过广东省的缓存服务器来连接真实服务器。

(2)判断CDN

可以通过Ping来判断网站是否存在CDN,比如 http://www.xxxx.com/ 。显示如下图所示,可以看到该网站是存在CDN的。

img

(3)绕过CDN

如果目标使用CDN: 需要绕过CDN后去真实IP地址,方法如下:

4. C段存货主机探测

C段指的是同一内网段内的其他服务器,每个IP有ABCD四个段,举个例子,192.168.0.1,A段就是192,B段是168,C段是0,D段是1,而C段嗅探的意思就是拿下它同一C段中的其中一台服务器,也就是说是D段1-255中的一台服务器,然后利用工具嗅探拿下该服务器。C段在线查询地址:

工具

0x04 端口信息收集

1.端口简介

在Internet上,各主机间通过TCP/IP协议发送和接受数据包,各个数据包根据其目的主机的IP地址来进行互联网络中的路由选择,从而顺利的将数据包顺利的传送给目标主机。根据提供服务类型的不同,端口可分为以下两种:

  • TCP端口:TCP是一种面向连接的可靠的传输层通信协议
  • UDP端口:UDP是一种无连接的不可靠的传输层协议

TCP协议和UDP协议是独立的,因此各自的端口号也互相独立。

2.常见端口

(1) 常用端口类
端口 服务
21 ftp
22 SSH
23 Telnet
80 WWW
139/445 NetBIOS SessionService
161 SNMP
389 LDAP
445 SMB
1433 MSSQL
1521 Oracle
3306 MSSQL
3389 RDP远程桌面
5432 PostgreSQL
5900 vnc
6379 Redis
7001 Weblogic
8080 Tomcat
(2) 特殊服务类
端口 服务 漏洞
1099 rmi RCE
8000 jdwp java 调试接口RCE
443 SSL HeartBleed
873 Rsync 未授权
5984 CouchDB http://xxx:5984/_utils/
6379 redis 未授权
7001,7002 Weblogic 默认弱口令,反序列化
9200,9300 elasticsearch 未授权 RCE
11211 memcache 未授权
27017,27018 Mongodb 未授权
50000 SAP 命令执行
50060,50070,50030 hadoop 默认端口未授权
2375 docker 未授权
3128 squid 代理默认端口
2601,2604 zebra 路由,默认密码zebra
4440 rundeck
4848 glassfish 中间件弱口令
9000 fcigphp 代码执行
9043 websphere 弱口令

3.端口扫描

Nmap

Network Mapper,是一款开放源代码的网络探测和安全审核的工具
​ nmap参考指南(中文版)https://nmap.org/man/zh/

功能介绍
​ 1. 检测网络存活主机(主机发现)
​ 2. 检测主机开放端口(端口发现或枚举)
​ 3. 检测相应端口软件(服务发现)版本
​ 4 .检测操作系统,硬件地址,以及软件版本
​ 5. 检测脆弱性的漏洞(nmap的脚本)

4. 端口防御措施

对于端口攻击来说,只要端口开放并且可以连通,就可以利用对应的方式进行攻击测试。这里提供的防御措施包括:

  • 关闭不必要的端口;
  • 对重要业务的服务端口设置防火墙;
  • 加强员工信息安全意识,经常性更换用户密码,避免弱口令爆破;
  • 经常更新软件,打补丁(Patch);
  • 利用CVE网站的漏洞信息,提高自身网站的安全。

0x05 网站信息收集

1. 网站指纹识别

(1) 操作系统
  • ping判断:windows的TTL值一般为128,Linux则为64。TTL大于100的一般为windows,几十的一般为linux。
  • nmap-O参数
  • windows大小写不敏感,linux则区分大小写
(2) 网站服务/容器类型
(3) 脚本类型

php, jsp, asp/aspx, python

(4) 数据库类型

mysql,sqlserver,access,oracle

(5) CMS识别

在渗透测试中,对目标服务器进行指纹识别是相当有必要的,因为只有识别出相应的Web容器或者CMS(内容管理系统),才能查找与其相关的漏洞,然后才能进行相应的渗透操作。CMS又称整站系统。常见的CMS有:WordPress、Dedecms(织梦)、Discuz、PhpWeb、PhpWind、Dvbbs、PhpCMS、ECShop、、SiteWeaver、AspCMS、帝国、Z-Blog等。

常见识别工具:

2. 敏感文件、目录探测

针对目标Web目录结构和敏感隐藏文件探测是非常重要的,在探测过程中很可能会探测到后台页面、上传页面、数据库文件,甚至是网站源代码文件等。补充谢公子大佬的内容,扫描网站目录结构可以看看是否可以遍历目录,或者敏感文件泄漏,包括:

后台目录:弱口令,万能密码,爆破
安装包:获取数据库信息,甚至是网站源码
上传目录:截断、上传图片马等
mysql管理接口:弱口令、爆破,万能密码,然后脱裤,甚至是拿到shell
安装页面 :可以二次安装进而绕过
phpinfo:会把你配置的各种信息暴露出来
编辑器:fck、ke等
iis短文件利用:条件比较苛刻 windows、apache等

(1) 敏感文件、目录
  • github

    开发人员将代码上传到网站,在上传的时候,没有删除重要的一些信息。如邮箱信息,SVN信息,内部账号和密码,数据库连接信息,服务器配置信息等。尤其是邮箱信息和内部账号和密码。这类信息可以通过在github上搜索公司的一些特定信息,查看是否有程序员将这些信息上传到了github上

  • git

    ".git" intitle:"index of "
    https://github.com/lijiejie/GitHack

  • svn

    ".svn" intitle:"index of "
    https://github.com/admintony/svnExploit

  • .DS_Storehg

  • .bzr

  • CVS

  • WEB-INF

  • 备份文件

(2) 网站备份文件

网站备份文件泄露指管理员误将网站备份文件或是敏感信息文件存放在某个网站目录下。
https://github.com/7kbstorm/7kbscan-WebPathBrute

(3)目录探测

3. 网站WAF识别

WAF 即:Web Application FireWall(Web应用防火墙)。可以通俗的理解为:用于保护网站,防黑客、防网络攻击的安全防护系统;是最有效、最直接的Web安全防护产品。WAF功能如下

防止常见的各类网络攻击,如:SQL注入、XSS跨站、CSRF、网页后门等;
防止各类自动化攻击,如:暴力破解、撞库、批量注册、自动发贴等;
阻止其它常见威胁,如:爬虫、0DAY攻击、代码分析、嗅探、数据慕改、越权访问、敏感信息泄漏、应用层DDOS、远程恶意包含、盗链、越权、扫描等。

(1) WAF识别

0x06 其他信息收集

1.历史漏洞信息

2.社会工程学

posted @ 2023-09-07 00:23  树大招疯  阅读(31)  评论(0编辑  收藏  举报