hsadHsad
安全相关/渗透测试

信息收集

本文导航按标题快速定位

信息收集内容

在划定了测试范围之后,就需要进入信息收集阶段。在这个阶段,渗透人员需要使用各种公开资源尽可能地获取测试目标的相关信息。他们搜集信息的互联网渠道主要有:论坛/公告板/新闻组/媒体文章/博客/社交网络/github/其他商业或非商业性的网站。此外,他们也可以借助各种搜索引擎中获取相关数据,如谷歌、雅虎、MSN必应、百度等。收集的信息主要包括:

(1)收集目标网站服务器信息:域名、子域名、CNAME、cdn、真实IP、系统类型、版本等;

(2)识别并收集目标网站指纹信息:CMS、中间件、网页编程语言等及其通用漏洞调查收集;

(3)扫描并收集目标网站目录结构:一些文件可以访问获得信息、后台管理页面位置、日志位置等;

(4)网站的敏感信息:

whois信息、姓名、备案、邮箱、电话反查(邮箱丢社工库,社工准备等);
弱口令扫描、密码爆破等(如针对系统管理员、网站后台管理员、数据库管理员等);
网站源码是否泄露等,如github源码。
(5)收集目标服务器主机端口信息:不同端口提供不同的攻击思路和方向;

(6)网络防护信息:网络边界设备或网络节点设备,如有没有防火墙,有没有IPS、IDS或WAF,网络行为管理,全流量分析。

收集的信息越多,渗透测试成功的概率越高。
在信息收集中,最主要的就是收集服务器的配置信息和网站的敏感信息,其中包括域名及子域名信息、目标网站系统、CMS指纹、目标网站真实IP 、开放的端口等。换句话说,只要是与目标网站相关的信息,我们都应该去尽量搜集。

域名相关信息

知道目标的域名之后,我们要做的第一件事就是获取域名的注册信息,注意关注该域名的注册商和注册人的联系方式(电话和邮箱)等信息。

域名分类

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

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

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

域名信息查询方式
whois查询

Whois是一个标准的互联网协议, 可用于收集域名注册信息,注册的域名、IP地址等信息。简单来说, Whois就是一个用于查询域名是否

己被注册以及注册域名的详细信息的数据库(如域名所有人、域名注册商)。

在Whois查询中,得到注册人的姓名和邮箱信息通常对测试个人站点非常有用,因为我们可以通过搜索引擎和社交网络挖掘出域名所有人

的很多信息。对中小站点而言,域名所有人往往就是管理员。

  • Kali系统:在Kali系统中, Whois 己经默认安装,只需输入要查询的域名即可,代码为whois+域名(一般域名不包含主机名,如

·baidu.com)。注意,Kali系统需连接真实网络,能上网。

反查

邮箱反查 注册人反查 电话反查

备案信息查询
子域名信息查询方式

子域名也就是二级域名, 是指顶级域名下的域名。假设我们的目标网络规模比较大,直接从主域入手显然是很不理智的, 因为对于这种

规模的目标, 一般其主域都是重点防护区域,所以不如先进入目标的某个子域,然后再想办法迂回接近真正的目标,这无疑是个比较好

的选择。

IP相关信息

端口服务相关信息

查看本机端口

Windows:netstat -aon|findstr 3306

Linux: netstat -an|grep 3306

远程机器端口

telnet 192.168.142.137 80

wget 192.168.142.137 80

nc -vz 192.168.142.137 445

常见端口及漏洞
文件共享服务
端口号 端口说明 攻击方向
21/22/69 FTP/SFTP文件传输协议 允许匿名上传、下载、爆破和嗅探操作
2049 NFS服务(NetworkFileSystem) 配置不当
139 Samba服务 爆破、未授权访问、远程代码和执行
389 LDAP目录访问协议 注入、允许匿名访问、弱口令
远程连接服务端口
端口号 端口说明 攻击方向
22 SSH远程连接 爆破、SSH隧道及内网代理转发 文件传输
23 Telnet远程连接 爆破、嗅探、弱口令
3389 RDP远程桌面连接 Shift后门(WindowsServer2003以下的系统)、爆破
5900 VNC 弱口令爆破
5632 PcAnywhere远程控制服务 抓密码、代码执行
数据库服务端口
端口号 端口说明 攻击方向
3306 MySQL 注入、提权、爆破
1433 MSSQL数据库 注入、提权、SA弱口令
1521 Oracle数据库 TNS爆破、注入、反弹shell
5432 PostgreSQL数据库 爆破、注入、弱口令
27017/27018 MongoDB 爆破、未授权访问
6379 Redis数据库 可尝试未授权访问、弱口令爆破
5000 Sysbase/DB2数据库 爆破、注入
邮件服务端口
端口号 端口说明 攻击方向
25 SMTP邮件服务 邮件伪造
110 POP3协议 爆破、嗅探
143 IMAP协议 爆破
网络常见协议端口
端口号 端口说明 攻击方向
53 DNS域名系统 允许区域传送、DNS劫持 缓存投毒、欺骗
67/68 DHCP服务 劫持、欺骗
161 SNMP协议 爆破、搜集目标内网信息
特殊服务端口
端口号 端口说明 攻击方向
2181 Zookeeper服务 未授权访问
8069 Zabbix服务 远程执行、SQL注入
9200/9300 Elasticsearch服务 远程执行
11211 Memcached服务 未授权访问
512/513/514 LinuxRexec服务 爆破、rlogin登录
873 Rsync服务 匿名访问、文件上传
3690 SVN服务 SVN泄露、未授权访问
50000 SAPManagementConsole 远程执行
Nmap

Nmap (Network Mapper https://nmap.org/

1)扫描主机(HostiDiscovery)

2)扫描端口(Port Scanning)

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

参数类型

nmap–help

  • TARGETSPECIFICATIOM:自标,对什么进行扫描,比如是域名、TP或者网络

  • HOSTDISCOVERY:主机发现,怎么对主机进行扫描,比如简单扫描,还是全部,扫一遍,或者用相应的协议扫

  • SCANTECHNIOQUES:扫描技术,协议日勺设置

  • PORTSPECIFICATIONANDSCANORDER:端口和扫描顺序设置 SERVICEVERSIONDETECTION:服务和版本识别

  • SCRIPT SCAN:使用脚本,nmap本身内置了大量的lua脚本,而且还可以自己编写脚本

  • OS DETECTION:操作系统识别

  • TIMING AND PERFORMANCE:时间和性能设置,比如扫描频率、重试次数等等 FIREWALL/IDS EVASION AND SPOOFING:防火墙绕过和欺骗,比如使用代理假IP等

  • OUTPUT:把扫描接出输出到文件 MISC:启用IPv6等等配置

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

Is /usr/share/nmap/scripts/ I wc -1

全部清单:Nmap Scripting Engine

例如:

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

nmap–script=auth绕过鉴权

nmap–script=brute 暴力破解 nmap –script=vuln 扫描漏洞

指纹识别

识别对象

  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指纹识别

内容管理系统

Content Management System

通过关键特征器、开发语言、版本等等

识别出月标的CMS系统、服务操作系统、CDN、WAF的类别

常见的CMS

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

问答网站、企业官网、学校官网、医院官网、团购网(58)

各类网站开源CMS
  • 企业建站系统:Metlnfo(米拓)、蝉知、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
CMS指纹识别思路

版权信息、特定文件MD5值、查看网页源代码、通过特定文件分析

CMS识别工具
CDN指纹识别
WAF指纹识别

Web. Application Firewall Web 应用防火墙

过滤HTTP/HTTPS的请求

WAF的作用
  • SQL Injection (SQLi):阻止SQL注入

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

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

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

  • Remote Code Execution(RCE):阻正止利用远程命令执行漏洞进行攻击 PHP Code Injectiod:阻正止PHP代码注入

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

  • HTTPoXy:阻止利用远程代理感染漏洞进行攻击 Sshllshock:阻止利用Shellshock漏洞进行攻击

  • Session Fixation: 阻止利用Session会话iD不变的漏洞进行攻击 ScannerDetection:阻止黑客扫描网站

  • Metadata/ErrorLeakages:阻止源代码/错误信息泄露 Project Honey Pot Blacklist:蜜罐项目黑名单

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

WAF分类

硬件型WAF厂商安装)

云WAF(阿里云、腾讯云、华为云.. )

软件型 WAF(部署在 Apache、Nginx 等 HTTPServer中)

常见WAF厂商

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

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

WAF识别思路
  • 额外的cookie;

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

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

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

  • IP地址(云WAF);

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

WAF触发拦截方式
xsstring = '<script>alert("Xss");</script>
sqlistring = "UNION SELECT ALL FROM information schema AND ' or SLEEP(5) or '"
Ifistring = "../.././../etc/passwd
rcestring = '/bin/cat /etc/passwd; ping 127.0.0.1; curl google.com'
xxestring = '<!ENTITY xxe SYSTEM "file:///etc/shadow">]><pwn>&hack;</pwn>"
WAF识别工具

Kali自带:

其他:

搜索引擎(Google语法)

查找正文含有关键字的网页

intext
intext:后台登陆      只返回正文包含“后台登陆”的网页
intitle
intitle:后台登陆           只返回标题中包含“后台登录”的网页
allintitle:后台登陆 管理员       可以指定多个词
inurl
inurl:login
inurl:/admin/login.php      查找管理员登陆页面
inurl:/phpmyadmin/index.php  查找后台数据库管理员页面
allinurl:                  可以指定多个词
site
site:baidu.com inurl:login         只在baidu.com 中查找url中含有 Login的网页
filetype

指定访问的文件类型

site:xcu.edu.cn filetype:pdf

指定连接的网页

link:www.baidu.com 

相似类型的网页

related:www.xcu.edu.cn
cache:

返回浏览器对网站的缓存

cache:www.xcu.edu.cn
info:

返回站点的指定信息

define:

返回某个词语的定义

phonebook:

电话簿查询美国街道地址和电话号码信息

查找网站后台
  • site:xx.com intext:管理
  • site:xx.com inurl:login
  • site:xx.com intitle:后台
查看服务器使用的程序
  • site:xx.com filetype:asp
  • site:xx.com filetype:php
  • site:xx.com filetype:jsp
  • site:xx.com filetype:aspx
查看上传漏洞
  • site:xx.com inurl:file
  • site:xx.com inurl:load
index of

利用 Index of 语法去发现允许目录浏览的web网站,就像在本地的普通目录一样

index of /admin
index of /passwd
index of /password
index of /mail
"index of /" +passwd
"index of /" +password.txt
"index of /".htaccess
"index of /root"
"index of/cgi-bin"
"index of/logs"
"index of /config"

inurl

而上面这些命令中用的最多的就是 inurl: 了,利用这个命令,可以查到很多意想不到的东西

利用 allinurl:winnt/system32/ 查询:列出的服务器上本来应该受限制的诸如“system32” 等目录,如果你运气足够好,你会发现“system32” 目录里的“cmd.exe” 文件,并能执行他,接下来就是提升权限并攻克了。
查询 allinurl:wwwboard/passwd.txt  将列出所有有“WWWBoard Password vulnerability”漏洞的服务器
查询  inurl:.bash_history  将列出互联网上可以看见 “inurl:.bash_history” 文件的服务器。这是一个命令历史文件,这个文件包含了管理员执行的命令,有时会包含一些敏感信息比如管理员键入的密码。
查询 inurl:config.txt  将看见网上暴露了“inurl:config.txt”文件的服务器,这个文件包含了经过哈希编码的管理员的密码和数据库存取的关键信息。

还有一些其他一些使用“inurl:”和“allinurl:”查询组合的例子

inurl:admin filetype:txt
inurl:admin filetype:db
inurl:admin filetype:cfg
inurl:mysql filetype:cfg
inurl:passwd filetype:txt
inurl:”wwwroot/*.”
inurl:adpassword.txt
inurl:webeditor.php
inurl:file_upload.php
inurl:gov filetype:xls “restricted”
index of ftp +.mdb allinurl:/cgi-bin/ +mailto
语法数据库&工具

Google Hacking Database

[Google Dork List](https://github.com/BullsEye0/google_dork_
list)

pagodo - Passive Google Dork

网络空间搜索引擎
shodan

shodan网络搜索引擎偏向网络设备以及服务器的搜索

网络类

port          	端口  
product     	所使用的软件或产品
os          	操作系统类型
version:	    搜索指定的软件版本,例如 version:"1.3.2"
net:			搜索指定的IP地址或子网,例如 net:"110.43.140.0/24"

应用类

html.title 	 		网页标题
http.html   		网页内容
http.server 		http请求返回中server的类型
http.status 		http请求返回响应码的状态
hostname  			主机类型
http.favicon.hash 	icon对应hash
vuln       			CVE漏洞编号,例如:vuln:CVE-2014-0723

地理位置类

country:		搜索指定的国家,例如 country:"CN"
city:			搜索指定的城市,例如 city:"Beijing"
org:			搜索指定的组织或公司,例如 org:"google"
isp:			搜索指定的ISP供应商,例如 isp:"China Telecom"

其他
如果需要多个词同时搜索时,只需要在每个关键字间加空格分割就行,比如:country:“CN” city:“Beijing”
当不需要某个词时,可以用”-”加上关键词来进行去除。比如:”-port:80”(排除80端口搜索结果)
My-Shodan-Scripts

censys
  • 23.0.0.0/8 or 8.8.8.0/24  可以使用and or not
  • 80.http.get.status_code: 200  指定状态
  • 80.http.get.status_code:[200 TO 300]  200-300之间的状态码
  • location.country_code: DE  国家
  • protocols: (“23/telnet” or “21/ftp”)  协议
  • tags: scada  标签
  • 80.http.get.headers.server:nginx  服务器类型版本
  • autonomous_system.description: University  系统描述
  • 正则
钟馗之眼ZoomEye

钟馗之眼搜索引擎偏向web应用层面的搜索。

  • app:nginx  组件名
  • ver:1.0  版本
  • os:windows  操作系统
  • country:”China”  国家
  • city:”hangzhou”  城市
  • port:80  端口
  • hostname:google  主机名
  • site:thief.one  网站域名
  • desc:nmask  描述
  • keywords:nmask’blog  关键词
  • service:ftp  服务类型
  • ip:8.8.8.8  ip地址
  • cidr:8.8.8.8/24  ip地址段
FoFa

FoFa搜索引擎偏向资产搜索。

搜索语法

  • title=”abc” 从标题中搜索abc。例:标题中有北京的网站。
  • header=”abc” 从http头中搜索abc。例:jboss服务器。
  • body=”abc” 从html正文中搜索abc。例:正文包含Hacked by。
  • domain=”qq.com” 搜索根域名带有qq.com的网站。例: 根域名是qq.com的网站。
  • host=”.gov.cn” 从url中搜索.gov.cn,注意搜索要用host作为名称。
  • port=”443” 查找对应443端口的资产。例: 查找对应443端口的资产。
  • ip=”1.1.1.1” 从ip中搜索包含1.1.1.1的网站,注意搜索要用ip作为名称。
  • protocol=”https” 搜索制定协议类型(在开启端口扫描的情况下有效)。例: 查询https协议资产。
  • city=”Beijing” 搜索指定城市的资产。例: 搜索指定城市的资产。
  • region=”Zhejiang” 搜索指定行政区的资产。例: 搜索指定行政区的资产。
  • country=”CN” 搜索指定国家(编码)的资产。例: 搜索指定国家(编码)的资产。
  • cert=”google.com” 搜索证书(https或者imaps等)中带有google.com的资产。

高级搜索:

  • title=”powered by” && title!=discuz
  • title!=”powered by” && body=discuz
  • ( body=”content=\”WordPress” || (header=”X-Pingback” && header=”/xmlrpc.php” && body=”/wp-includes/“) ) && host=”gov.cn”
Dnsdb搜索引擎

dnsdb搜索引擎是一款针对dbs解析的查询平台。

搜索语法

DnsDB查询语法结构为条件1 条件2 条件3 …., 每个条件以空格间隔, DnsDB 会把满足所有查询条件的结果返回给用户.

域名查询条件

域名查询是指查询顶级私有域名所有的DNS记录, 查询语法为domain:.
例如查询google.com 的所有DNS记录: domain:google.com.
域名查询可以省略domain:.

主机查询条件

查询语法:host:
例如查询主机地址为mp3.example.com的DNS记录: host:map3.example.com
主机查询条件与域名查询查询条件的区别在于, 主机查询匹配的是DNS记录的Host值

按DNS记录类型查询

查询语法: type:.
例如只查询A记录: type:a
使用条件:必须存在domain:或者host:条件,才可以使用type:查询语法

按IP限制

查询语法: ip:
查询指定IP: ip:8.8.8.8, 该查询与直接输入8.8.8.8进行查询等效
查询指定IP范围: ip:8.8.8.8-8.8.255.255
CIDR: ip:8.8.0.0/24
IP最大范围限制65536个

条件组合查询的例子

查询google.com的所有A记录: google.com type:a

Apollo
EHole
ShuiZe
Kunyu
Saucerframe