渗透测试-信息搜集的目的和方法

信息搜集的目的和方法

文章目录

  • 信息搜集的目的和方法
  • 1. 渗透测试是什么?渗透测试流程
  • 2. 信息搜集的意义---测试渗透的灵魂
  • 3. 渗透测试前期之信息收集总结

1. 渗透测试是什么?渗透测试流程

渗透测试是一种比较简单的性能测试。

渗透测试所需时间较长,其使用的是固定数目的并发用户来测试系统的总体健壮性。该测试将会通过内存泄漏、增加的垃圾收集(GC)或系统的其他问题,显示因长时间运行而出现的任何性能降低。在测试运行的过程当中,测试运行的时间越久,您对系统就越了解。运行的两次测试,一次使用较低的用户负载(要在系统容量之下,不会出现执行队列),一次使用较高的负载(出现积极的执行队列)。

渗透测试应该运行几天的时间,以便真正了解应用程序的长期健康状况。要确保测试的应用程序尽可能接近现实世界的情况,用户场景需逼真(虚拟用户通过应用程序导航的方式需要同现实世界一致),从而测试应用程序的全部特性。确保运行了所有必需的监控工具,可精确地监测并跟踪问题。

对于web应用的渗透测试,大致可分为三个阶段:信息收集、漏洞发现以及漏洞利用。以下通过九个阶段来描述渗透测试的整个流程:

1.明确目标
1)确定范围:测试的范围,如:IP、域名、内外网、整站or部分模块
2)确定规则:能渗透到什么程度(发现漏洞为止or继续利用漏洞)、时间限制、能否修改上传、能否提权…

目标系统介绍、重点保护对象及特性。

是否允许数据破坏?

是否允许阻断业务正常运行?

测试之前是否应当知会相关部门接口人?

接入方式?外网和内网?

测试是发现问题就算成功,还是尽可能的发现多的问题?

渗透过程是否需要考虑社会工程?

3)确定需求:web应用的漏洞(新上线程序)?业务逻辑漏洞(针对业务的)?人员权限管理漏洞(针对人员、权限)?
根据需求和自己技术能力来确定能不能做、能做多少

2.分析风险,获得授权
分析渗透测试过程中可能产生的风险,如大量测试数据的处理、影响正常业务开展、服务器发生异常的应急、数据备份和恢复、测试人力物力成本…
由测试方书写实施方案初稿并提交给客户(or本公司内部领导)进行审核。在审核完成后,从客户(or本公司内部领导)获取对测试方进行书面委托授权书,授权测试方进行渗透测试。

3.信息收集
在信息收集阶段,我们需要尽量多的收集关于目标web应用的各种信息,比如:脚本语言的类型、服务器的类型、目录的结构、使用的开源软件、数据库类型、所有链接页面,用到的框架等。
方式:主动扫描;开放搜索
开放搜索:利用搜索引擎获得后台、未授权页面、敏感url

4.漏洞探测(手动或自动)
利用上一步中列出的信息,使用相应的漏洞检测

方法:
1)漏扫:AWVS、AppScan…
2)结合漏洞去exploit-db等位置找利用
3)在网上寻找验证POC

内容:
系统漏洞:系统没有及时打补丁
Websever漏洞:Websever配置问题
Web应用漏洞:Web应用开发问题
其它端口服务漏洞:各种21/8080(st2)/7001/22/3389
通信安全:明文传输,token在cookie中传送等

5.漏洞验证
将上一步中发现的有可能可以成功利用的全部漏洞都验证一遍。结合实际情况,搭建模拟环境进行试验,成功后再应用于目标中。

自动化验证:结合自动化扫描工具提供的结果

手工验证:根据公开资源进行验证

试验验证:自己搭建模拟环境进行验证

登录猜解:有时可以尝试猜解一下登陆口的账号密码等信息

业务漏洞验证:如发现业务漏洞,要进行验证

公开资源的利用
exploit-db/wooyun/
渗透代码网站
通用、缺省口令
厂商的漏洞警告等

6.信息分析
为下一步实施渗透做准备

精准攻击:准备好上一步探测到的漏洞exp(漏洞利用),用来精准攻击

绕过防御机制:是否有防火墙等设备,如何绕过

定制攻击路径:最佳工具路径,根据薄弱入口,高内网权限位置,最终目标

绕过检测机制:是否有检测机制,流量监控,杀毒软件,恶意代码检测等(免杀)

攻击代码:经过试验得来的代码,包括不限于xss代码,sql注入语句等

7.利用漏洞,获取数据
实施攻击:根据前几步的结果,进行攻击

获取内部信息:基础设施(网络连接,,路由,拓扑等)

进一步渗透:内网入侵,敏感目标

持续性存在:一般对客户做渗透不需要。rookit,后门,添加管理账号,驻扎手法等

清理痕迹:清理相关日志(访问,操作),上传文件等

8.信息整理
整理渗透工具:整理渗透过程中用到的代码,poc,exp等

整理收集信息:整理渗透过程中收集到的一切信息

整理漏洞信息:整理渗透过程中遇到的各种漏洞,各种脆弱位置信息
目的:为了最后形成报告,形成测试结果使用。

9.形成报告
按需整理:按照之前第一步跟客户确定好的范围,需求来整理资料,并将资料形成报告

补充介绍:要对漏洞成因,验证过程和带来危害进行分析

修补建议:当然要对所有产生的问题提出合理高效安全的解决办法 作者:泽众云测试 https://www.bilibili.com/read/cv16321759 出处:bilibili

2. 信息搜集的意义—测试渗透的灵魂

信息搜集的意义----------渗透测试的灵魂 (信息收集重中之中)

信息收集4-1

在这里插入图片描述
提出问题:头脑风暴 扩大攻击面
一、重要性–为什么要信息收集?
1、信息收集的作用:
最了解的你人,往往都是你对手。知己知彼、百战不殆。
当你所掌握到的信息比别人多就更详细的时候那么你就占据了先机
这一条不仅仅是用于商业、战争、在渗透测试中也使用。
渗透测试的核心是什么--------漏洞
二、信息收集方向====信息收集究竟收集什么?
信息收集究竟需要什么?为什么要收集这些?

  1. whois信息
    什么是whois
    whois网站: whois
    whois指的是域名注册时留下的信息,比如留下的管理员姓名、电话、邮箱
    为什么要收集whois?
    域名注册人可能是网站管理源、可以尝试社工、套路、查询是不是注册了其他域名扩大攻击范围
  2. 子域名(一般都是在同一内网、或者同一个机器、属于同一个信息)
    什么是子域名?
    顶级域名下的二级域名或者三级甚至更多级的域名都属于子域名,这游戏以恶直接ip访问的web站我也归结于子域名收集范围。
    为什么要收集?
    子域名可以扩大攻击范围,同一个域名下的二级域名都属于相同的资产一般而言都有关联
  3. 端口探测 (Nmap)
    为什么要端口探测?
    有些危险端口开放了我们就可以尝试入侵、比如445、3306、22、433、6379、可以尝试爆破或者用那些端口存在漏洞的服务。而且有可能一台服务器上面于不同端口代表着不同的web网站、
  4. 目录扫描 (御剑、kail用dirbuster)
    为什么要目录扫描?
    有一些网站可能摸个目录下是一个新的网站、有时候目录扫描直接下载了压缩包源码、编辑器目录、
    和依稀废弃的页面 比如有些管理员会直接上源码.zip 到时候就白盒审计。
    5. 指纹识别*(云悉)*
    为什么要指纹识别?
    云悉:云悉
    微步社区:微步
    cms(内容管理系统===快速搭建网站的源码)可能存在一个通杀漏洞、如果使用了cms建站我们可以用通杀漏洞直接攻击
    6. 旁站查询
    外部防御如虎、内部防御如鼠
    为什么要查询旁站?
    旁站就是在同一个ip上面有多个网站,如果你拿下旁站,运气好的花和主战在同一个机器上,是不是就拿到了主战?运气不好是一个内网,我们就可以尝试内网渗。
    8. c段扫描(公网ip
    什么是c段扫描?为什要扫描
    比如192.168.1.1-255 都属于同一个c段,有些学校或者大公司,他们会有整个ip段
    这个ip段所有的都是公司的资产,拿下一台可用的信息,可能在同一个内网渗透
    9. 内容敏感信息泄漏
    尝试谷歌语法

三、巧用网络空间搜索引擎
钟馗之眼:钟馗
shodan:shodan
fofa:fofa

3. 渗透测试前期之信息收集总结

信息收集的意义

信息收集对于渗透测试前期来说是非常重要的。正所谓,知己知彼百战不殆,信息收集是渗透测试成功的保障,只有我们掌握了目标网站或目标主机足够多的信息之后,才能更好地进行渗透测试。

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

主动信息收集

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

被动信息收集

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

这两种方式各有优势,主动信息收集你能获取更多的信息,但是目痕迹较为明显,容易被溯源。被动信息收集因为不是针对网站进行特定的扫描,所以一般来说收集的信息会相对较少,但是你的行动并不会被目标主机发现。所以我们要灵活运用不同的收集方式,才能保证信息收集的完整性。

网站信息收集

操作系统

服务器常用的操作系统基本上只有两种:windows和linux,不过在企业服务器中linux系统占大多数,常用的判断方法有三种

ping 判断,windows的TTL值一般为128,Linux则为64。所以TTL大于100的一般为windows,几十的一般为linux,但是,通过TTL值来判断服务器类型也不是百分之百准确的,有部分windows服务器的TTL值也是几十,而且有的服务器禁止ping,无法通过该方式探测

nmap扫描,可以通过-O或者-A参数来扫描操作系统,优点就是可以扫描到具体的操作系统版本,缺点就是扫描痕迹明显,容易被发现

windows大小写不敏感,linux则区分大小写,也可以把这个作为判断操作系统的依据,我们在访问的时候可以尝试把路径部分改成大写,然后去访问,看能否请求成功。

网站服务/容器类型

网站常用的web服务器有:Apache、Nginx、Tomcat 、 IIS。知道了web服务器是哪种类型后,我们还要探测web服务器具体的版本。比如Ngnix版本<0.83会有解析漏洞 ,IIS6.0会有文件名解析漏洞、IIS7.0会有畸形解析漏洞等。不同的web服务器版本,存在着不同漏洞。

渗透测试-信息搜集的目的和方法_第1张图片

脚本类型

网站常见的脚本类型:php 、Jsp 、Asp 、Aspx 、python。

根据网站URL来判断

利用google判断,site:xxx filetype:php

利用wappalyzer插件插件来判断

数据库类型

常见的数据库类型

Mysql是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的应用软件之一,MySQL数据库大部分是php的页面。默认端口是3306

Sql Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),是一个比较大型的数据库。端口号为1433。数据库后缀名 .mdf

Access全名是Microsoft Office Access,是由微软发布的关联式数据库管理系统。小型数据库,当数据库达到100M左右的时候性能就会下降。数据库后缀名:.mdb 一般是asp的网页文件用access数据库

Oracle又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。常用于比较大的网站。默认端口是1521

常见搭配:

ASP 和 ASPX:ACCESS、SQL Server + win

PHP:MySQL + win/linux、PostgreSQL + linux

JSP:Oracle、MySQL + win/linux

CMS识别

常见CMS:dedecms(织梦)、Discuz、phpcms等。

渗透测试-信息搜集的目的和方法_第2张图片

敏感目录,后台

常见目录类型

  • 后台目录:弱口令,万能密码,爆破

  • 备份文件:获取数据库信息,甚至是网站源码

  • 上传目录:截断、上传图片马等

  • mysql管理接口:弱口令、爆破,万能密码,然后获得数据库信息

  • 安装页面 :可以二次安装进而绕过

  • phpinfo:会把你配置的各种信息暴露出来

  • 编辑器:fck、ke等

常用工具

渗透测试-信息搜集的目的和方法_第3张图片

网站Waf识别

Web应用防护系统(也称为:网站应用级入侵防御系统。英文:Web Application Firewall,简称:WAF)。Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。

功能:

防止常见的各类网络攻击,如:SQL注入,XSS跨站,CSRF,网页后门等。

防止各类自动化攻击,如:暴力破解,撞库,批量注册,自动发帖等。

阻止其他常见威胁,如:爬虫,0DAY攻击,代码分析,嗅探,数据篡改,越权访问,敏感信息泄露,应用层DDOS、远程恶意包含,盗链,越权,扫描等。

识别方式:

渗透测试-信息搜集的目的和方法_第4张图片

域名信息收集

域名介绍

域名(英语:Domain Name),又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。
由于IP地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并通过网域名称系统(DNS,Domain Name System)来将域名和IP地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。

域名分类

顶级域名:

政府域名:.gov

商业域名:.com

教育域名:.edu

二级域名:**baidu.com

三级域名:**www.baidu.com

Whois

whois是用来查询域名的IP以及所有者等信息的传输协议。就是一个用来查询域名是否被注册,以及注册域名的详细信息的数据库(如:域名所有人、域名注册商),一般情况下对于中小型网站域名注册者就是网站管理员。通过域名Whois服务器查询,可以查询域名归属者联系方式,以及注册和到期时间。

Whois协议。基本内容是,先向服务器的TCP端口43建立一个连接发送查询关键字并加上回车换行,然后接收服务器的查询结果。

whois查询方式:

渗透测试-信息搜集的目的和方法_第5张图片

备案信息查询方法

ICP备案介绍:Internet Content Provider 网络内容提供商。国家对经营性互联网信息服务实行许可制度;对非经营性互联网信息服务实行备案制度。

查询方式:

图片

Whois反查(注册人/邮箱反查)

先通过whois获取注册人和邮箱,再通过注册人和邮箱反查域名。

缺点:很多公司都是DNS解析的运行商注册的,查到的是运营商代替个人和公司注册的网站信息。

渗透测试-信息搜集的目的和方法_第6张图片

子域名收集

子域名指二级域名,二级域名是顶级域名(一级域名)的下一级。

比如:mail.baidu.com和bbs.baidu.com是baidu.com的子域,而baidu.com则是顶级域名.com的子域。

搜索引擎:google hacking

site:hetianlab.com

第三方web接口查询

https://dnsdumpster.com/

http://tool.chinaz.com/subdomain/

网络空间安全搜索引擎

Fofa: https://fofa.so/

domain="baidu.com"

Zoomeye: https://www.zoomeye.org/

site:"baidu.com"

shodan: https://www.shodan.io/

hostname:baidu.com

ssl证书查询

图片

工具扫描

渗透测试-信息搜集的目的和方法_第7张图片

ip信息收集

判断cdn

CDN即内容分发网络。CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。

方法一:

使用各种多地 ping 的服务,查看对应 IP 地址是否唯一,如果不唯一多半是使用了CDN, 多地 Ping 网站有:

渗透测试-信息搜集的目的和方法_第8张图片

方法二:

使用 nslookup 进行检测,原理同上,如果返回域名解析对应多个 IP 地址多半是使用了 CDN

绕过cdn

国外访问

因为cdn的设置是需要成本的,因此好多网站设置CDN时没有把国外的访问包含进去,所以可以通过外网访问进行绕过。

http://asm.ca.com/en/ping.php

查询子域名的IP

https://ip.tool.chinaz.com/ipbatch

CDN流量收费高,所以很多站长可能只会对主站或者流量大的子站点做了CDN,而很多小站、子站点又跟主站在同一台服务器或者同一个C段内,此时,就可以通过查询子域名对应的IP来辅助查找网站的真实IP

phpinfo文件

查看SERVER_ADDR

Mx记录邮件服务

网络空间搜索引擎

https://censys.io/

443.https.tls.certificate.parsed.extensions.subject_alt_name.dns_names:hetianlab.com

https://fofa.so/

通过fofa查询网站证书序列号,将16进制转为10进制

cert="17144636119767802547749573191550762477"

查询历史DNS记录

渗透测试-信息搜集的目的和方法_第9张图片

IP反查域名

http://stool.chinaz.com/same

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

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

C段存活主机探测

Nmap

nmap -sP www.XXX.com/24nmap -sP 192.168.1.*

https://github.com/se55i0n/Cwebscanner

通过物联网搜索引擎搜索c段ip信息

端口信息扫描

在Internet上,各主机间通过TCP/IP协议发送和接收数据包,各个数据包根据其目的主机的IP地址来进行互联网络中的路由选择,从而顺利地将数据包传送给目标主机。

协议端口

根据提供的服务类型不同,端口可分为以下两种:

TCP端口:CP是一种面向连接的可靠的传输层通信协议。

UDP端口:UDP是一种无连接的不可靠的传输层协议。

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

端口类型

周知端口:众所周知的端口号,范围:0-1023,如:80端口是WWW服务。

动态端口:一般不固定分配某种服务,范围:49152-65535

注册端口:范围1024-49151,用于分配给用户进程或程序。

渗透常见端口

FTP-21

FTP:文件传输协议,使用TCP端口20、21,20用于传输数据,21用于传输控制信息。

ftp基础爆破:owasp的Bruter,hydra以及msf中的ftp爆破模块。

ftp匿名访问:用户名:anonymous 密码:空或任意邮箱

vsftpd后门:vsftpd2到2.3.4版本存在后门漏洞,通过该漏洞获取root权限。

嗅探:ftp使用明文传输,使用Cain进行渗透。(但是,嗅探需要在局域网,并需要欺骗或监听网关)

ftp远程代码溢出。

ftp跳转攻击。

SSH-22

SSH:(secure shell)是目前较可靠,专为远程登陆会话和其他网络服务提供安全性的协议。

弱口令,可使用工具hydra,msf中的ssh爆破模块。

SSH后门

openssh用户枚举CVE-2018-15473

HTTP-80

超文本传输协议(HTTP)开放的端口,主要用于万维网传输信息的协议。

中间件漏洞,如IIS、apache、ngnix等

80端口一般通过web应用程序的常见漏洞进行攻击。

NetBIOS SessionService-139/445

139用于提供windows文件和打印机共享及UNIX中的Samba服务。

445用于提供windows文件和打印机共享。

对于开放139/445端口,尝试利用MS17010溢出漏洞进行攻击。

对于只开放445端口,尝试利用MS06040、MS08067溢出漏洞攻击

利用IPC$连接进行渗透。

MySQL-3306

3306是mysql数据库默认的监听端口

mysql弱口令破解

弱口令登录mysql,上传构造的恶意UDF自定义函数代码,通过调用注册的恶意函数执行系统命令。

SQL注入获取数据库敏感信息,load_file()函数读取系统文件,导出恶意代码到指定路径。

RDP-3389

3389是windows远程桌面服务默认监听的端口

RDP暴力破解攻击

MS12_020死亡蓝屏攻击

RDP远程桌面漏洞(CVE-2019-0708)

MSF开启RDP、注册表开启RDP

Redis-6379

开源的可基于内存的可持久化的日志型数据库。

爆破弱口令

redis未授权访问结合ssh key提权

主从复制rce

Weblogic-7001

Weblogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用,网络应用和数据库应用的Java应用服务器。

弱口令、爆破,弱密码一般为weblogic/Oracle@123 or weblogic

管理后台部署 war包后门

weblogic SSRF

反序列化漏洞

Tomcat-8080

Tomcat服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet、JSP程序的首选

Tomcat远程代码执行漏洞(CVE-2019-0232)

Tomcat任意文件上传(CVE-2017-12615)

Tomcat管理页面弱口令getshell

图片

渗透测试-信息搜集的目的和方法_第10张图片

你可能感兴趣的:(渗透测试,安全性测试,web安全,安全)