关于信息搜集的方法
信息搜集:子域名,端口,服务及版本,数据库,C段,旁站,操作系统,敏感文件,搭建的中间件,cms,开发框架
子域名搜集
一.搜索引擎
- 通过普通搜索引擎进行搜索(goolehacking),如site:baidu.com
Goolehacking语法
site:找到与指定网站有联系的URL。例如输入Site:family.chinaok.com,返回所有和这个网站有关的URL。
intitle:返回所有网页标题中包含关键词的网页。例如输入intitle:cbi,这样网页标题中带有 cbi 的网页都会被搜索出来。
inurl:搜索包含有特定字符的URL。例如输入inurl:cbi,则可以找到带有 cbi 字符的URL。
intext:搜索网页正文内容中的指定字符。例如输入intext:cbi,将返回所有在网页正文部分包含 cbi 的网页。
link:例如link:thief.one,返回所有和 thief.one 做了链接的URL。
filetype:搜索指定类型的文件。例如输入filetype:cbi,将返回所有以 cbi 结尾的文件URL。
域名把公司和后面的com类似的当作一级域名
Eg:baidu.com 一级域名
www.baidu.com二级域名
- 黑暗搜索引擎(shadon,foafa,360quake,zoomeye)
Domain=baidu.com
二.在线子域名爆破
三.工具爆破(御剑系列[不是很好用],7ksan,sublist3r,subdomain)等
Python写个脚本判断一下状态码是否位200
端口开放情况
- 工具扫描(nmap)
- 在线端口扫描
-
系统类型
- 工具(nmap)
-
Nmap -O
-
Nmap -O
- 手工
- 1.通过ping的ttl值判断(不准)
-
128——windows
64——linux
255——网络设备
63——unix(手机)
2.通过大小写敏感(windows不敏感,linux敏感),不是绝对的
- 3.特殊端口
- 22 linux
- 3389 windows
- 3.路径特征(搜索报错)
-
Eg:c:/phpstudy/www/search.php
4.banner信息(403,404)
eg:404 not found
apache 1.2.04/centos6.2
5.脚本语言
Eg:Asp-windows
ASP+Access(windows独有)
apsx+mssql(sql server) (windows独有)
常见数据库的端口
Mysql 3306
Sqlserver 1433
Oracle 1521
Redis 6379
常见数据库和脚本语言搭配
ASP+Access(windows独有)
php+mysql
apsx+mssql(sql server) (windows独有)
jsp+mssql,oracle
python+mongodb
Web组成结构
-
web指纹(脚本语言,中间件,数据库,框架和cms)
- 工具(nmap,kali的whatweb,浏览器的插件)
-
Nmap -sV
- 手工
-
网站框架,毛坯房,最后网站什么样取决你的开发
Cms,精装房
- banner信息(404,403)
-
eg:404 not found
apache 1.2.04/centos6.2
thinkphpv6.0未找到
- 路径特征(搜索报错)
-
Eg:c:/phpstudy/www/search.php
- 前端代码的network
- 特定文件(logo[ico]的MD5值,后台目录)
- 在线c段查询,黑暗引擎
Eg:decade是织梦cms后台目录
Logo文件名大多都是favicon.ico
黑暗引擎,上传ico文件
旁站
同一服务器
同域名同路径 eg:127.0.0.1/xsstest,127.0.0.1/xss
同域名不同端口
Eg:127.0.0.1:81,127.0.0.1:82
C段
独立站点服务器,就是一台服务器上只有一个站点
-
在线c段查询,黑暗引擎,搜索引擎
Site:*.baidu.com
Site:10.2.1.*
查找相关的域名
站点的搭建一些方式
目录站点,网站加了一个目录就不是同一个cms或框架(在同一服务器上)(目录扫描)
端口站点(加了端口就不是同一个网站,有很大可能是在同一服务器上)(端口扫描)
子域名站点(不同cms)
类似域名(都是一个团队,一个公司的)
Whois信息,备案信息查询
可以查到联系人,手机,邮箱等信息
敏感信息
一.敏感信息泄露
Github泄露(用户名和密码,数据库相关的密码),网盘泄露,社交信息泄露
- 敏感文件\敏感目录
-
Robots.txt,phpinfo.php,.svn(源代码管理),.git,web.zip,.mdb(access后缀)
Phpinfo.php,disable_functions,禁用了那些函数,服务器ip,Master Value是PHP.ini文件中的内容。Local value 是当前目录中的设置,这个值会覆盖Master Value中对应的值。
Web.zip网站源码备份
工具(dirsearch,dirbrute,wealfilescan,御剑后台目录扫描)
网站源码
获取方式:特定渠道,第三方源码,咸鱼,淘宝等
手工判断cms用开发者工具,看数据包,找特殊的文件(logo),如有字典md5和cms类型文件,可以转换为MD5进行比对
获取源码后可以本地搭建进行安全渗透测试,或进行代码审计,查找漏洞
请求包和数据包的结构
-
扫描目录的原理即是通过状态码来判断文件或目录是否存在
通过post提交的数据在空行的下面,数据就是请求体。
网站解析对应
#简要网站搭建过程
涉及到的攻击层面?(源码,搭建平台,系统,网络层等)
涉及到的安全问题?(目录,敏感文件,弱口令,IP 及域名等)
HTTP/S 数据包
#HTTP/HTTPS 具体区别?
Request 请求数据包数据格式
#Request 请求数据包数据格式
1.请求行:请求类型/请求资源路径、协议的版本和类型
2.请求头:一些键值对,浏览器与 web 服务器之间都可以发送,特定的某种含义
3.空行:请求头与请求体之间用一个空行隔开;
4.请求体:要发送的数据(一般 post 提交会使用);例:user=123&pass=123
例:
# Request Headers
POST /adduser HTTP/1.1
Host: localhost:8030
Connection: keep-alive
Content-Length: 16
Pragma: no-cache
Cache-Control: no-cache
Origin: chrome-extension://fdmmgilgnpjigdojojpjoooidkmcomcm
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/66.0.3359.181 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
# Form Data
name=name&age=11
#请求行
请求行由三个标记组成:请求方法、请求 URL 和 HTTP 版本,它们用空格分享。
例如:GET /index.html HTTP/1.1
HTTP 规划定义了 8 种可能的请求方法:
GET:检索 URL 中标识资源的一个简单请求
HEAD:与 GET 方法相同,服务器只返回状态行和头标,并不返回请求文档
POST:服务器接受被写入客户端输出流中的数据的请求
PUT:服务器保存请求数据作为指定 URL 新内容的请求
DELETE:服务器删除 URL 中命令的资源的请求
OPTIONS:关于服务器支持的请求方法信息的请求
TRACE:web 服务器反馈 Http 请求和其头标的请求
CONNECT :已文档化,但当前未实现的一个方法,预留做隧道处理
#请求头
由关键字/值对组成,每行一对,关键字和值用冒号分享。请求头标通知服务器腾于客户端的功能和标识。
HOST: 主机或域名地址
Accept:指浏览器或其他客户可以接爱的 MIME 文件格式。Servlet 可以根据它判断并返回适当的文件格
式。
User-Agent:是客户浏览器名称
Host:对应网址 URL 中的 Web 名称和端口号。
Accept-Langeuage:指出浏览器可以接受的语言种类,如 en 或 en-us,指英语。
connection:用来告诉服务器是否可以维持固定的 HTTP 连接。http 是无连接的,HTTP/1.1 使用 Keep-Alive
为默认值,这样,当浏览器需要多个文件时(比如一个 HTML 文件和相关的图形文件),不需要每次都建立
连接
Cookie:浏览器用这个属性向服务器发送 Cookie。Cookie 是在浏览器中寄存的小型数据体,它可以记载
和服务器相关的用户信息,也可以用来实现会话功能。
Referer : 表 明 产 生 请 求 的 网 页 URL 。 如 比 从 网 页 /icconcept/index.jsp 中 点 击 一 个 链 接 到 网 页
/icwork/search , 在 向 服 务 器 发 送 的 GET/icwork/search 中 的 请 求 中 , Referer 是
http://hostname:8080/icconcept/index.jsp。这个属性可以用来跟踪 Web 请求是从什么网站来的。
Content-Type:用来表名 request 的内容类型。可以用 HttpServletRequest 的 getContentType()方法取得。
Accept-Charset:指出浏览器可以接受的字符编码。英文浏览器的默认值是 ISO-8859-1.
Accept-Encoding:指出浏览器可以接受的编码方式。编码方式不同于文件格式,它是为了压缩文件并加
速文件传递速度。浏览器在接收到 Web 响应之后先解码,然后再检查文件格式。
#空行
最后一个请求头标之后是空行,发送回车符和退行,通知服务器以下不再有头标。
#请求数据
使用 POST 传送,最常使用的是 Content-Type 和 Content-Length 头标。
Response 返回数据包数据格式
#Response 请求数据包数据格式
一个响应由四个部分组成;状态行、响应头标、空行、响应数据。
1.状态行:协议版本、数字形式的状态代码和状态描述,个元素之间以空格分隔
2.响应头标:包含服务器类型、日期、长度、内容类型等
3.空行:响应头与响应体之间用空行隔开
4.响应数据:浏览器会将实体内容中的数据取出来,生成相应的页面
HTTP 响应码:
1xx:信息,请求收到,继续处理
2xx:成功,行为被成功地接受、理解和采纳
3xx:重定向,为了完成请求,必须进一步执行的动作
4xx:客户端错误
5xx:服务器错误
绕过CDN服务
www 44.2.3.1
www 44.2.3.1
* 44.2.3.1
设置了这两种主机名,访问www和访问不加www的是一样,可能*没有加cdn,从而得到真实的ip
多节点技术就是超级ping,不一致存在cdn,一致不存在
子域名查询就是为了得到主站的真实ip(在同一网段,ip相同)
国外地址访问时可能没有cdn,找偏门的国家,离中国远的(asm.ca.com)
扫描遗留文件如phpinfo
查看dns解析,可能会得到真实ip,以前可能没有加cdn
黑暗引擎(shodan,钟馗之眼(zoomeye),fofa)
第三方查询ip,get-site-ip,将查询的ip和第三方对比(如果一致,很大可能这就是真实的ip地址)
用邮箱查看源代码,找真实ip
查看邮件ip
编辑
编辑
查看一下备案信息,查找一下公司位置,第三方查出来的IP,通过ip查位置,比对一下这两个ip位置(邮件,第三方)和公司位置是一致的,很大可能是真实的ip地址,还可以改一下本地host文件,能正常访问,这个ip可能是真实ip或者是一个cdn节点
脚本转换hash
shodan搜索指定hash文件.ico(logo)
把脚本的地址改一下
本地host文件位置
DNS解析时首先会从本地host中找域名和ip地址对应关系,找不到才会让dns服务器解析
iis搭建网站
ip访问网站
指向网站的根目录,如www
域名访问网站
是访问根目录(www)下的子目录
如有备份,就扫描不到,不利于安全渗透测试
脚本为何可以执行
网站访问的安全性
2.开启匿名访问就不需要用户名密码
匿名访问用户权限很低为来宾用户
3.设置网站目录权限限制访问
执行权限,无,不给执行权限,一些脚本文件就无法运行了
执行权限,不会所有目录都不给,因为网站有些源码是用脚本搭建的。