信息收集
在平常的渗透测试的过程中,最重要也是最首要的一步就是信息收集,在这个阶段我们要尽可能的收集目标组织的信息,所谓“知己知彼、百战不殆”,我们越是了解目标,渗透起来就越容易。
收集域名信息
收集敏感信息
子域名收集
常用端口信息
- 常用工具
- Nmap
- 御剑高速TCP端口扫描
- Masscan
- ZMap
- Goby
端口 |
服务 |
入侵方式 |
21 |
ftp/tftp/vsftpd文件传输协议 |
爆破/嗅探/溢出/后门/下载 |
22 |
ssh远程连接 |
爆破/openssh漏洞 |
23 |
Telnet远程连接 |
爆破/嗅探/弱口令 |
25 |
SMTP邮件服务 |
邮件伪造 |
53 |
DNS域名解析系统 |
域传送/劫持/缓存投毒/欺骗 |
67/68 |
dhcp服务 |
劫持/欺骗 |
110 |
pop3 |
爆破/嗅探 |
139 |
Samba服务 |
爆破/未授权访问/远程命令执行 |
143 |
Imap协议 |
爆破 |
161 |
SNMP协议 |
爆破/搜集目标内网信息 |
389 |
Ldap目录访问协议 |
注入/未授权访问/弱口令 |
445 |
smb |
ms17-010/端口溢出 |
512/513/514 |
Linux Rexec服务 |
爆破/Rlogin登陆 |
873 |
Rsync服务 |
文件上传/未授权访问 |
1080 |
socket |
爆破 |
1352 |
Lotus domino邮件服务 |
爆破/信息泄漏 |
1433 |
mssql |
爆破/注入/SA弱口令 |
1521 |
oracle |
爆破/注入/TNS爆破/反弹shell |
2049 |
Nfs服务 |
配置不当 |
2181 |
zookeeper服务 |
未授权访问 |
2375 |
docker remote api |
未授权访问 |
3306 |
mysql |
爆破/注入 |
3389 |
Rdp远程桌面链接 |
爆破/shift后门 |
4848 |
GlassFish控制台 |
爆破/认证绕过 |
5000 |
sybase/DB2数据库 |
爆破/注入/提权 |
5432 |
postgresql |
爆破/注入/缓冲区溢出 |
5632 |
pcanywhere服务 |
抓密码/代码执行 |
5900 |
vnc |
爆破/认证绕过 |
6379 |
Redis数据库 |
未授权访问/爆破 |
7001/7002 |
weblogic |
java反序列化/控制台弱口令 |
80/443 |
http/https |
web应用漏洞/心脏滴血 |
8069 |
zabbix服务 |
远程命令执行/注入 |
8161 |
activemq |
弱口令/写文件 |
8080/8089 |
Jboss/Tomcat/Resin |
爆破/PUT文件上传/反序列化 |
8083/8086 |
influxDB |
未授权访问 |
9000 |
fastcgi |
远程命令执行 |
9090 |
Websphere控制台 |
爆破/java反序列化/弱口令 |
9200/9300 |
elasticsearch |
远程代码执行 |
11211 |
memcached |
未授权访问 |
27017/27018 |
mongodb |
未授权访问/爆破 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| tomcat--80/8080/8009 manager弱口令 put上传webshell HTTP慢速攻击 ajr文件包含漏洞-CVE-2020-1938 Jboss--8080 后台弱口令 console后台部署war包 JAVA反序列化 远程代码执行 webSphere--9080 后台弱口令 任意文件泄露 JAVA反序列化 weblogic--7001/7002 后台弱口令 console后台部署war包 SSRF 测试页面上传webshell JAVA反序列化 CVE-2018-2628 CVE-2018-2893 CVE-2017-10271 CVE-2019-2725 CVE-2019-2729 Glassfish--8080/4848 暴力破解 任意文件读取 认证绕过 Jetty--8080 远程共享缓冲区溢出 Apache--80/8080 HTTP慢速攻击 解析漏洞 目录遍历 ApacheSolr--8983 远程命令执行 CVE-2017-12629 CVE-2019-0193 IIS--80 put上传webshell IIS解析漏洞 IIS提权 IIS远程远程代码执行-CVE-2017-7269 Resin--8080 目录遍历 远程文件读取 Axis2--8080 后台弱口令 Lutos--1352 后台弱口令 信息泄露 跨站脚本攻击 Nginx--80/443 HTTP慢速攻击 解析漏洞
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| Mysql--3306 弱口令 身份认证漏洞-cve-2012-2122 拒绝服务攻击 phpmyadmin万能密码or弱口令 UDF/MOF提权 Mssql--1433 弱口令 存储过程提权 Oralce--1521 弱口令 TNS漏洞 Redis--6379 弱口令 未经授权访问 PostgreSQL--5432 弱口令 缓冲区溢出-cve-2014-2669 MongoDB--27001 弱口令 未经授权访问 DB2--5000 安全限制绕过进行未经授权操作-cve-2015-1922 SysBase--5000/4100 弱口令 命令注入 Memcache--11211 未经授权访问 配置漏洞 ElasticSearch--9200/9300 未经授权访问 远程代码执行 文件办理 写入webshell
|
1 2 3 4 5
| Hadoop--50010 远程命令执行 Zookeeper--2181 未经授权访问
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| Ftp--21 弱口令 匿名访问 上传后门 远程溢出 跳转攻击 NFS--2049 未经授权访问 Samba--137 弱口令 未经授权访问 远程代码执行-CVE-2015-0240 LDAP--389 弱口令 注入 未经授权访问
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| SSH--22 弱口令 28退格漏洞 OpenSSL漏洞 用户名枚举 Telent--23 弱口令 RDP--3389 弱口令 Shitf粘滞键后门 缓冲区溢出 MS12-020 CVE-2019-0708 VNC--5901 弱口令 认证口令绕过 拒绝服务攻击-CVE-2015-5239 权限提升-CVE-2013-6886 Pcanywhere--5632 拒绝服务攻击 权限提升 代码执行 X11--6000 未经授权访问-CVE-1999-0526
|
1 2 3 4 5 6 7 8 9 10
| SMTP--25/465 弱口令 未经授权访问 邮件伪造 POP3--110/995 弱口令 未经授权访问 IMAP--143/993 弱口令 任意文件读取
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| DNS--53 DNS区域传输 DNS劫持 DNS欺骗 DNS缓存投毒 DNS隧道 DHCP--67/68 DHCP劫持 DHCP欺骗 SNMP--161 弱口令 Rlogin--512/513/514 rlogin登录 Rsync--873 未经授权访问 本地权限提升 Zabbix--8069 远程命令执行 RMI--1090/1099 JAVA反序列化 Docker--2375 未经授权访问
|
指纹识别
在web渗透过程中,Web指纹识别是信息收集环节中一个比较重要的步骤,通过一些开源的工具、平台或者手工检测CMS系统是公开的CMS程序还是二次开发至关重要,能准确的获取CMS类型、Web服务组件类型及版本信息可以帮助安全工程师快速有效的去验证已知漏洞。对目标渗透测试过程中,目标的cms是十分重要的信息,有了目标的cms,就可以利用相关bug进行测试,进行代码审计等。
- 在指纹识别的学习过程中,有很多开源的工具和指纹库,如fofa、WhatWeb、w11scan、WebEye、御剑Web指纹识别、WebRobo、椰树、轻量web指纹识别
- 在线网站查询:
- 识别方式
识别方式 |
网站特有文件:如/templets/default/style/dedecms.css—dedecms |
网站独有文件的md5:如favicon.ico,但是该文件可以被修改导致不准确。 |
网站文件命名规则 |
返回头的关键字 |
网页关键字:如/data/sessions/index.html——dedecms |
Url特征 |
Meta特征 |
Script特征 |
robots.txt |
网站路径特征 |
网站静态资源 |
爬虫网站目录信息 |
查找真实IP
对应给定的目标,例如一个网站,首先获得的是目标域名,下一步就是找到域名背后的服务器ip,由于当前网站大多使用CDN(内容分发网络)对网站访问流量进行分流和一定程度的攻击防护,所以找出CDN背后的服务器真实ip就是一种“刚需”了。
- 验证是否有CDN
- ping和nslookup(解析对应多个 IP 地址)
- 多地 ping 服务(IP 地址不唯一):
- 绕过 CDN 查找网站真实 IP
- 查询历史DNS记录
- 1、查看 IP 与 域名绑定的历史记录,可能会存在使用 CDN 前的记录,相关查询网站有:
- 2、利用SecurityTrails(https://securitytrails.com/ ) 平台,攻击者就可以精准的找到真实原始IP。他们只需在搜索字段中输入网站域名,然后按Enter键即可,这时“历史数据”就可以在左侧的菜单中找到。
- 查询子域名:毕竟 CDN 还是不便宜的,所以很多站长可能只会对主站或者流量大的子站点做了 CDN,而很多小站子站点又跟主站在同一台服务器或者同一个C段内,此时就可以通过查询子域名对应的 IP 来辅助查找网站的真实IP。常用查找子域名方法有:微步在线(https://x.threatbook.cn/ )、 Dnsdb查询法。(https://dnsdb.io/zh-cn/ )、 Google 搜索(Google site:baidu.com -www就能查看除www外的子域名)、各种子域名扫描器。
- 搜索引擎:常见的有以前的钟馗之眼,shodan,fofa搜索。以fofa为例,只需输入:title:“网站的title关键字”或者body:“网站的body特征”就可以找出fofa收录的有这些关键字的ip域名,很多时候能获取网站的真实ip。
- 利用SSL证书寻找真实原始IP:对于目标网站的SSL证书,要查找其使用的IPv4主机,只需将”SHA1 fingerprint”(签名证书的sha1值)粘贴到Censys IPv4主机搜索中,即可找到证书,使用此方法可以轻松找到配置错误的Web服务器。
- 利用HTTP标头寻找真实原始IP:借助SecurityTrails这样的平台,任何人都可以在茫茫的大数据搜索到自己的目标,甚至可以通过比较HTTP标头来查找到原始服务器。
- 利用网站返回的内容寻找真实原始IP:如果原始服务器IP也返回了网站的内容,那么可以在网上搜索大量的相关数据。浏览网站源代码,寻找独特的代码片段。在JavaScript中使用具有访问或标识符参数的第三方服务(例如Google Analytics,reCAPTCHA)是攻击者经常使用的方法。
- 使用国外主机解析域名。
- 国内很多 CDN 厂商因为各种原因只做了国内的线路,而针对国外的线路可能几乎没有,此时我们使用国外的主机直接访问可能就能获取到真实IP。
- 网站漏洞查找:
- 1、目标敏感文件泄露,例如:phpinfo之类的探针、GitHub信息泄露等。
- 2、XSS盲打,命令执行反弹shell,SSRF等。
- 3、无论是用社工还是其他手段,拿到了目标网站管理员在CDN的账号,从而在从CDN的配置中找到网站的真实IP。
- 网站邮件订阅查找:RSS邮件订阅,很多网站都自带 sendmail,会发邮件给我们,此时查看邮件源码里面就会包含服务器的真实 IP 了。
- 用 Zmap 扫全网:需要找 xiaix.me 网站的真实 IP,我们首先从 apnic 获取 IP 段,然后使用 Zmap 的 banner-grab 扫描出来 80 端口开放的主机进行 banner 抓取,最后在 http-req 中的 Host 写 xiaix.me。
- F5 LTM解码法:当服务器使用F5 LTM做负载均衡时,通过对set-cookie关键字的解码真实ip也可被获取,例如:Set-Cookie: BIGipServerpool_8.29_8030=487098378.24095.0000,先把第一小节的十进制数即487098378取出来,然后将其转为十六进制数1d08880a,接着从后至前,以此取四位数出来,也就是0a.88.08.1d,最后依次把他们转为十进制数10.136.8.29,也就是最后的真实ip。
目录扫描
网站目录和敏感文件扫描是网站测试中最基本的手段之一。如果通过该方法发现了网站后台,可以尝试暴库、SQL注入等方式进行安全测试;如果发现敏感目录或敏感文件,能帮我们获取如php环境变量、robots.txt、网站指纹等信息;如果扫描出了一些上传的文件,我们甚至可能通过上传功能(一句话恶意代码)获取网站的权限。
- 目录扫描原理:通过请求返回的信息来判断当前目录或文件是否真实存在。网站后台扫描工具都是利用目录字典进行爆破扫描,字典越多,扫描到的结果也越多。
- 工具:
社会工程学