小迪安全渗透测试笔记(一)——信息收集
This entry is 第 1 部分,共 1 in the series 小迪安全渗透测试笔记
  • 小迪安全渗透测试笔记(一)——信息收集

一、基本概念

CDN

Content DeliveryNetwork,即内容分发网络,是建立并覆盖在承载网之上,由分布在不同区域的边缘节点服务器群组成的分布式网络。即不同区域通过访问不同的节点来加快网站访问速度,同时降低主服务器压力。但是由于cdn的存在,使得通过域名获取到的ip地址可能为cdn的地址,而非真实的源站ip地址,对渗透工作造成影响。所以再渗透过程中,需要对cdn进行绕过。

通过超级ping等工具网站可以获取到不同地域的ip解析情况,如下图

web架构

web架构的组成如下:

1、网站源码

部署在操作系统上的网站源码,可以实现不同的站点功能。网站源码可以按脚本语言、应用类型等方面分类,如js、php等或博客、电商等。不同语言或不同应用场景下的站点可能在不同方面具有不同的漏洞

2、操作系统

部署站点的操作系统,常见的为windows或linux

3、中间件

中间件是指网络环境下处于操作系统、数据库等系统软件和应用软件之间的一种起连接作用的分布式软件。常见的web中间间有IIS、apache、tomcat、nginx。

4、数据库

数据库主要用于存放网站数据,大部分网站都会使用数据库。常见的数据库有mysql、mssql等

CMS

即内容管理系统,其主要是为了方便发布网络内容而存在的一体化Web管理系统。常见的cms有wordpress,Drupal,Joomla等。

识别网站的cms将有助于漏洞挖掘,例如如果网站是使用wordpress搭建,那么只需要寻找wordpress的漏洞即可,还可以下载到cms的源码进行代码审计。如果找不到cms,就需要进行常规的渗透测试。

cms识别主要分为手动识别,工具识别等,其核心就是通过特定特征文件识别特定的cms。+

二、系统及数据库

识别系统的常见方法

1、有网站

可以通过修改url中大小写来判断。在windows中,大小写是不敏感的,而linux中大小写是敏感的,所以可以通过修改url中(非域名)的字母大小写来判断其所使用的操作系统;如下图,将index.pxp中的字母n改成大写,即会报404,说明其所使用系统为linux。

2、没有网站

a. nmap扫描

使用nmap -O ip 即可扫描对应ip所属服务器的操作系统,下图为使用nmap扫描某ip的结果,猜测操作系统为Microsoft Windows Server 2008。

1、nmap -O的扫描原理是分别挑选一个open和closed的端口,分别向其发送数据包,通过比较返回包的栈指纹(不同操作系统实现TCP/IP协议的时候,存在的差异性)来判断操作系统的,nmap-os-db存在了许多不同操作系统的协议栈指纹。
2、nmap对于端口的判定有多种不同的状态。判断端口时,nmap会向ip的端口发送SYN请求,如果端口开启,则会收到SYN/ACK,此时nmap就会判断该端口开启,如下图,此时nmap会发送一个RST报文,并不会与其建立连接


如果服务器返回的时RST报文,则说明该端口并不能正确的被连接,此时nmap会将其视为关闭状态。
nmap对于端口的状态的定义还有其他情况,如Filtered、Unfiltered等.
3、有些系统无法通过这种方式扫描;同理,系统中开放端口较少时也无法通过这种方式扫描

b.TTL

不同操作系统的默认TTL值时不同的,可以通过不同的TTL值来判断其操作系统。不过由于TTL值是可以修改的,所以这种方式并不保证一定准确

1、TTL值通常表示包在被丢弃前最多能经过的路由器个数,即数据包经过ttl个路由后,该包将被丢弃。
2、默认操作系统的TTL为:
WINDOWS NT/2000 TTL:128
WINDOWS 95/98 TTL:32
UNIX TTL:255
LINUX TTL:64
WIN7 TTL:64

c.特殊端口

可以通过检查系统开放的特殊端口来进行判断,如3389、1433等,但由于端口可以修改,所以该方法不绝对。

识别数据库的常见方法

1、默认语言搭配数据库:

组合类型asp + access/mssql
组合类型php + mysql
组合类型aspx+mssql
组合类型jsp +mysql/oracle
组合类型Python + MongoDB

2、常见数据库的默认端口:

关系型数据库
mysql 3306
sqlserver 1433
oracle 1521
psotgresql 5432
非关系型数据库
MongoDB 27017
Redis 6379
memcached 11211

三、CDN

常见的CDN绕过方式:

1、子域名绕过

因架设CDN会增加经济成本,所以很多网站子域名并不会假设cdn。在主站和子站架设在同一个服务器上的时候,可以通过子域名绕过的方式绕过其cdn。例如学而思网校的www.xueersi.com和子域名xueersi.com,其子域名并没有使用cdn,可以直接获取到真实ip。

2、邮箱服务查询

一般来说邮箱的访问量不如主站大,而且邮箱主要是由服务器向用户发送,而不是由用户向服务器访问,所以一般来说没有必要使用cdn。例如163的www.163.com和网易邮箱的smtp.163.com

3、国外地址请求

因为部分国内网站的国外访问需求较少,所以在国外并没有架设cdn,可以通过用国外ip访问的方式来获取真实ip。

4、遗留文件

例如如果站点存在遗留的phpinfo.php文件时,其中可能包含了服务器的真实ip

5、拒绝服务攻击

通过耗尽cdn服务器资源的方式来使其真实ip暴露

6、dns历史记录

通过查询dns历史来查询网站没有架设cdn服务器时解析的真实ip地址

四、站点搭建和WAF

站点搭建习惯

目录型站点

主站上还存在其他cms,例如xxx.com/bbs 是一个论坛站点,这时就可以将其视作目录型站点。这时对其渗透可以通过渗透主站和渗透目录站点两种思路进行。

端口类站点

站点的端口不是默认的80端口,而是其他端口,这时可以使用像shodan这样的工具去搜索。

子域名站点

不同的子域名搭建不同的站点,子域名之间的ip可能不同。这种方式是目前主流的搭建方式。

类似域名站点

例如jmlsd.com和jmlsd.cn这两个站点;除此之外,还可以根据网站内容找到其他域名

旁注、C段站点

旁注即当一个服务器上由多个站点的情况下,通过一个站点拿到服务器即可入侵另一个站点

C端即两个站点虽然在两个不同的服务器上,但是这两个服务器在同一个局域网中,可以通过内网渗透的方式进行入侵。

搭建软件特征站点

例如通过PHPStudy或宝塔搭建的站点,其会暴露更多搭建环境信息。

WAF防护分析

WAF即Web Application Firewall,web应用防火墙,是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。

如果一个站点安装有WAF,在进行渗透时ip极有可能被WAF拉入黑名单进而影响进一步渗透,所以对WAF的识别时必要的,并且针对不同的waf,往往具有不同的绕过方案。

WAF识别可以采用如wafwoof、identYwaf等工具进行扫描,或者使用nmap的–script=http-waf-detect或–script=http-waf-fingerprint脚本进行扫描

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇