渗透测试基础--信息收集

小白,记录一下所学内容 ( •̀ ω •́ )✧,参考了许多大佬们的文章

信息收集是渗透测试的前期主要工作,是非常重要的环节,收集足够多的信息才能方便接下来的测试,信息收集主要是收集网站的域名信息、子域名信息、目标网站信息、目标网站真实IP、敏感/目录文件、开放端口和中间件信息等等。通过各种渠道和手段尽可能收集到多的关于这个站点的信息,有助于我们更多的去找到渗透点,突破口。

主动信息收集:

 通过直接访问网站,在网站上进行操作,对网站进行扫描等。这种是有网络流量经过目标服务器的信息收集方式。

被动信息收集:

基于公开的渠道,比如搜索引擎等,在不与目标系统直接交互的情况下获取信息,尽量避免留下痕迹。

信息收集技术概述:

域名相关信息 ,备案查询,企业关系查询,whois,邮箱信息,子域名,网站内部信息,泛解析,DNS解析记录,搜索引擎,威胁情报,在线网址,自动化工具

1.whois查询

whois是用来查询域名的IP以及所有者等信息的传输协议。简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商、联系邮箱、联系电话、更新时间、创建时间、过期时间、域名服务器、DNS等等),不同域名后缀的Whois信息需要到不同的Whois数据库查询。

站长之家查询接口:https://whois.chinaz.com/
阿里云查询接口:https://whois.aliyun.com/
全球whois查询:https://www.whois.com/whois/

2.收集子域名

在线子域名查询:http://tools.bugscaner.com/subdomain/
https://site.ip138.com/
FOFA搜索子域名(网络空间搜索引擎)

FOFA语法 :

header="elastic" 从http头中搜索“elastic”
 body="网络空间测绘" 从html正文中搜索“网络空间测绘”
 fid="sSXXGNUO2FefBTcCLIT/2Q==" 查找相同的网站指纹
 domain="qq.com" 搜索根域名带有qq.com的网站。
 icp="京ICP证030173号" 查找备案号为“京ICP证030173号”的网站
 js_name="js/jquery.js" 查找网站正文中包含js/jquery.js的资产
 js_md5="82ac3f14327a8b7ba49baa208d4eaa15" 查找js源码与之匹配的资产
 cname="ap21.inst.siteforce.com" 查找cname为"ap21.inst.siteforce.com"的网站
 cname_domain="siteforce.com" 查找cname包含“siteforce.com”的网站
 cloud_name="Aliyundun"new 通过云服务名称搜索资产
 icon_hash="-247388890" 搜索使用此 icon 的资产
 host=".gov.cn" 从url中搜索”.gov.cn”
 port="6379" 查找对应“6379”端口的资产
 ip="1.1.1.1" 从ip中搜索包含“1.1.1.1”的网站
 ip="220.181.111.1/24" 查询IP为“220.181.111.1”的C网段资产
 status_code="402" 查询服务器状态为“402”的资产 查询网站类型数据
 protocol="quic" 查询quic协议资产 搜索指定协议类型(在开启端口扫描的情况下有效)
 country="CN" 搜索指定国家(编码)的资产。
 region="Xinjiang" 搜索指定行政区的资产。
 city="Ürümqi" 搜索指定城市的资产。
 cert="baidu" 搜索证书(https或者imaps等)中带有baidu的资产。
 cert.subject="Oracle Corporation" 搜索证书持有者是Oracle Corporation的资产
 cert.issuer="DigiCert" 搜索证书颁发者为DigiCert Inc的资产
 cert.is_valid=true 验证证书是否有效,true有效,false无效 仅限FOFA高级会员使用
 jarm="2ad...83e81" 搜索JARM指纹
 banner="users" && protocol="ftp" 搜索FTP协议中带有users文本的资产。
 type="service" 搜索所有协议资产,支持subdomain和service两种 搜索所有协议资产
 os="centos"= 搜索CentOS资产。
server=="Microsoft-IIS/10" 搜索IIS 10服务器。
app="Microsoft-Exchange" 搜索Microsoft-Exchange设备
after="2017" && before="2017-10-01" 时间范围段搜索
asn="19551" 搜索指定asn的资产。
org="LLC Baxet" 搜索指定org(组织)的资产。
base_protocol="udp" 搜索指定udp协议的资产。
is_fraud=falsenew 排除仿冒/欺诈数据
is_honeypot=false 排除蜜罐数据 仅限FOFA高级会员使用
is_ipv6=true 搜索ipv6的资产 搜索ipv6的资产,只接受true和false。
is_domain=true 搜索域名的资产 搜索域名的资产,只接受true和false。
is_cloud=truenew 筛选使用了云服务的资产
port_size="6" 查询开放端口数量等于"6"的资产 仅限FOFA会员使用
port_size_gt="6" 查询开放端口数量大于"6"的资产 仅限FOFA会员使用
port_size_lt="12" 查询开放端口数量小于"12"的资产 仅限FOFA会员使用
ip_ports="80,161" 搜索同时开放80和161端口的ip 搜索同时开放80和161端口的ip资产(以ip为单位的资产数据)
ip_country="CN" 搜索中国的ip资产(以ip为单位的资产数据)。 搜索中国的ip资产
ip_region="Zhejiang" 搜索指定行政区的ip资产(以ip为单位的资产数据)。 搜索指定行政区的资产
ip_city="Hangzhou" 搜索指定城市的ip资产(以ip为单位的资产数据)。 搜索指定城市的资产
ip_after="2021-03-18" 搜索2021-03-18以后的ip资产(以ip为单位的资产数据)。 搜索2021-03-18以后的ip资产
ip_before="2019-09-09" 搜索2019-09-09以前的ip资产(以ip为单位的资产数据)。搜索2019-09-09以前的ip资产
3.谷歌hacking

GoogleHacking常用语法
intext:(仅针对Google有效) 把网页中的正文内容中的某个字符作为搜索的条件
intitle:把网页标题中的某个字符作为搜索的条件
cache:搜索搜索引擎里关于某些内容的缓存,可能会在过期内容中发现有价值的信息
filetype:指定一个格式类型的文件作为搜索对象
inurl:搜索包含指定字符的URL
site:在指定的(域名)站点搜索相关内容
Index of: 查找允许目录浏览的页面,比方说我想看看/admin目录下的文件(部分网站因为配置疏忽的原因,导致目录可以被所有人访问,目录的文件也可以被下载)
查找网站后台:
site:xxx.com intext:管理
site:xxx.com inurl:login
site:xxx.com intitle:后台
查看服务器使用的程序:
site:xxx.com filetype:asp
site:xxx.com filetype:php
site:xxx.com filetype:jsp
site:xxx.com filetype:aspx
查看上传漏洞:
site:xxx.com inurl:file
site:xxx.com inurl:load

4.CDN

CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。但在安全测试过程中,若目标存在CDN服务,将会影响到后续的安全测试过程。
检测是否有CDN:
多地ping:通过多地ping,得到的ip地址如果是同一个,则没有CDN,反之则有
nslookup:命令nslookup的功能是查询任何一台机器的IP地址和其对应的域名。它通常需要一台域名服务器来提高域名。如果用户已经设置好域名服务器,就可以用这个命令查看不同主机的IP地址对应的域名。
nslookup [-opt ...] # 使用默认服务器的交互模式
nslookup [-opt ...] - server # 使用 "server" 的交互模式
nslookup [-opt ...] host # 仅查找使用默认服务器的 "host"
nslookup [-opt ...] host server # 仅查找使用 "server" 的 "host"
若要退键入exit,查看www.baidu.com的ip。在提示符后输入要查询的IP地址或者域名即可,如 nslookup www.baidu.com
绕过 CDN 查找网站真实 IP:
查询历史DNS记录:查看 IP 与 域名绑定的历史记录,可能会存在使用 CDN 前的记录。相关查询网站有:https://viewdns.info/https://x.threatbook.cn/
查询子域名:因为 CDN 还是不便宜的,所以很多站长可能只会对主站或者流量大的子站点做了 CDN,而很多小站子站点又跟主站在同一台服务器或者同一个C段内,此时就可以通过查询子域名对应的 IP 来辅助查找网站的真实IP。

4.收集端口

端口信息收集可以帮助我们找到更多目标网站的功能点,更全面地对目标网站进行测试。
服务默认端口
公认端口(Well Known Ports):0-1023,他们紧密绑定了一些服务;
注册端口(Registered Ports):1024-49151,他们松散的绑定了一些服务;
动态/私有:49152-65535,不为服务分配这些端口;
常见的端口和利用:
FTP-21
FTP:文件传输协议,使用TCP端口20、21,20用于传输数据,21用于传输控制信息
(1)ftp基础爆破:owasp的Bruter,hydra以及msf中的ftp爆破模块。
(2) ftp匿名访问:用户名:anonymous 密码:为空或者任意邮箱
(3)vsftpd后门 :vsftpd 2到2.3.4版本存在后门漏洞,通过该漏洞获取root权限。
(4)嗅探:ftp使用明文传输,使用Cain进行渗透。(但是嗅探需要在局域网并需要欺骗或监听网关)
(5)ftp远程代码溢出。
(6)ftp跳转攻击。

SSH-22
SSH:(secure shell)是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。
(1)弱口令,可使用工具hydra,msf中的ssh爆破模块。
(2)SSH后门
(3)openssh 用户枚举 CVE-2018-15473

WWW-80
为超文本传输协议(HTTP)开放的端口,主要用于万维网传输信息的协议
(1)中间件漏洞,如IIS、apache、nginx等
(2)80端口一般通过web应用程序的常见漏洞进行攻击

NetBIOS SessionService–139/445
139用于提供windows文件和打印机共享及UNIX中的Samba服务。
445用于提供windows文件和打印机共享。
(1)对于开放139/445端口,尝试利用MS17010溢出漏洞进行攻击;
(2)对于只开放445端口,尝试利用MS06040、MS08067溢出漏洞攻击;
(3)利用IPC$连接进行渗透

MySQL-3306
3306是MYSQL数据库默认的监听端口
(1)mysql弱口令破解
(2)弱口令登录mysql,上传构造的恶意UDF自定义函数代码,通过调用注册的恶意函数执行系统命令
(3)SQL注入获取数据库敏感信息,load_file()函数读取系统文件,导出恶意代码到指定路径

RDP-3389
3389是windows远程桌面服务默认监听的端口
(1)RDP暴力破解攻击
(2)MS12_020死亡蓝屏攻击
(3)RDP远程桌面漏洞(CVE-2019-0708)
(4)MSF开启RDP、注册表开启RDP

Redis-6379
开源的可基于内存的可持久化的日志型数据库。
(1)爆破弱口令
(2)redis未授权访问结合ssh key提权
(3)主从复制rce

Weblogic-7001
WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是
用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器
(1)弱口令、爆破,弱密码一般为weblogic/Oracle@123 or weblogic
(2)管理后台部署 war包后门
(3)weblogic SSRF
(4)反序列化漏洞

Tomcat-8080
Tomcat 服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试
Servlet、JSP 程序的首选
(1)Tomcat远程代码执行漏洞(CVE-2019-0232)
(2)Tomcat任意文件上传(CVE-2017-12615)
(3)tomcat 管理页面弱口令getshell

5.c段,旁站

C段是和目标服务器ip处在同一个C段的其它服务器,旁站是和目标网站在同一台服务器但开放在其他端口的网站。同服务器说明同ip,所以只要找ip相同的网站就好了。它们不一定是同一家公司这样的。

旁站和子域名的区别:旁站不一定是同一家公司的网站,子域名是同一家公司下的网站。
旁站与c段收集方式:1.站长之家 2.https://www.webscan.cc/

如果一台服务器通过其上的一个网站拿不下,可以从旁站入手,即同一服务器上的其他网站,最终也可拿下这台服务器。
很多系统并没有绑定域名,通过子域名能够获得的资产是有限的,这时候若想找到更多资产,可从C段入手。

6.指纹识别(CMS)

指纹识别(CMS):内容管理系统 Content Management System,通过关键特征,识别出目标的CMS系统、服务器、开发语言、操作系统、CDN、WAF的类别版本等等
CMS:快速搭建网站的内容管理系统,系统模板
Web应用框架:快速二次开发的Web应用框架,例如网站,小程序

识别对象
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等
指纹识别的方式:1 kali自带工具whatweb
2.在线网站:http://whatweb.bugscaner.comhttp://finger.tidesec.com/
3. 离线网站:御剑指纹扫描器(需要.NET Framework),Test404轻量CMS指纹识别 v2.1
4.浏览器插件:Wappalyzer:https://www.wappalyzer.com
whatruns :https://www.whatruns.com/

6.网站备案信息查询

icp备案查询https://beian.miit.gov.cn/#/Integrated/index

7.目录扫描

探测网站的结构,可以扫到敏感文件、后台文件、数据库文件、和泄露信息的文件
目录遍历漏洞:(前端数据包传输的时候没有验证可能会出现)
原理:程序在实现上没有充分过滤用户输入的../之类的目录跳转符,导致恶意用户可以通过提交目录跳转来遍历服务器上的任意文件

敏感信息泄露:
由于后台人员的疏忽或者不当的设计,导致不应该被前端用户看到的数据被轻易的访问到
1.通过访问url可以直接
2.输入错误的url参数后,错误信息中可能有操作系统中间件等信息
3.前端的源码里面包含敏感信息

有未授权漏洞,不需要权限就可以访问
有目录穿越,baidu.com/index.php?file=/home/login=>/index.php?file=../..//etc/passwd

8.操作系统

Window路径不区分大小写,Linux路径区分大写

posted on 2024-07-10 15:14  m0userathxy  阅读(2)  评论(0编辑  收藏  举报