域名,由于IP不方便记忆,且不能显示地址组织的名称和性质等缺点,人们设计出了域名,用于对计算机的定位标识(有时也指地理位置)。IP地址和域名是一一对应的。
例子: baidu.com为百度的域名 ,www.baidu.com和mail.baidu.com是该域名的子域名。
whois是用来查询一个域名是否已经被注册,及其详细信息。
对于渗透测试人员来说,通过whois查询可以获取域名注册人、公司、电话、邮箱进行反查。或者根据获取的信息在搜索引擎进行更多信息搜索。因为有些企业的域名注册者就是网站管理员。
子域名,是顶级域名(一级域名或父域名)的下一级,域名整体包括两个“.”或包括一个“.”和一个“/”。
顶级域名:
顶级域名(一级域名或父域名)是".com"、".net"、".org"、".cn"等等。
多级域名:
凡顶级域名前加前缀的都是该顶级域名的子域名,而子域名根据技术的多少分为二级子域名,三级子域名以及多级子域名
子域名是某个主域的二级域名或者多级域名。目前很多主域防御措施周全,而二级域名防护措施可能相对薄弱些,所以可以通过拿下子域名,然后再进一步拿下主域。
CMS意为"内容管理系统",一种位于WEB 前端和后端办公系统或流程(内容创作、编辑)之间的软件系统。内容的创作人员使用内容管理系统来提交、修改、审批、发布内容。
常见的CMS:phpcms、dedecms、discuz等等
CMS识别方法:
对于渗透人员来说,目标WEB站点的目录结构和敏感文件的探测是很关键的,可能会发现后台目录、上传目录、phpinfo、安装页面、数据库文件、robots.txt文件、网站源代码文件等等。
"端口"可以认为是设备与外界通讯交流的出口。端口可分为虚拟端口和物理端口,其中虚拟端口指计算机内部端口,不可见。例如80、21、23端口等。物理端口又称为接口,是可见端口,计算机背板的RJ45网口,交换机路由器集线器等RJ45端口。通俗讲,如果把IP比作一栋房屋,端口就是这间房子的门和窗。
一个IP地址拥有的端口号在理论值范围是从0到65535。而每一个端口代表一个服务。在windows中,使用netstat -anbo 查看开放端口。
ftp: 端口:20(数据端口);21(控制端口);
攻击方式:爆破:ftp的爆破工具,owasp的Bruter或者msf中ftp爆破模块;
ssh:端口 :22
攻击方式 爆破:弱口令 漏洞:28退格漏洞、OpenSSL漏洞
telnet: 端口:23
攻击方式 爆破:弱口令 嗅探:此种情况一般发生在局域网;
windows远程连接: 端口:3389
攻击方式:爆破:3389端口爆破工具较多
Shift粘滞键后门:5次shift后门
漏洞攻击:利用ms12-020攻击3389端口,导致服务器关机;
IIS服务:端口 80/81/443
攻击方式:PUT写文件:利用IIS漏洞,put方法直接将文件放置到服务器上
解析漏洞
Apache/Tomcat/Nginx/Axis2 默认端口:80/8080
攻击方式:爆破:弱口令(爆破manager后台)
HTTP慢速攻击:可以把服务器打死,对一些大型的网站有影响;
解析漏洞
MYSQL数据库:默认端口 3306
攻击方式:爆破:弱口令
身份认证漏洞:CVE-2012-2122
拒绝服务攻击:利用sql语句是服务器进行死循环打死服务器
Phpmyadmin万能密码绕过:用户名:‘localhost’@’@”密码任意
MSSQL数据库 默认端口:1433,1434
攻击方式:爆破:弱口令/使用系统用户
redis数据库 默认端口:6379
攻击方式:爆破:弱口令
未授权访问+配合ssh key提权
目前很多企业的安全性做的非常好,有时候通过技术面无法完成渗透测试,此时可以通过在互联网上搜索目标站点的敏感信息。数据库文件,服务器配置信息,泄露源代码等等信息,来完成渗透测试。
方法一: Google hacking语法
intitle:搜索网页标题中包含特定信息的网页。
eg:intitle: 后台,网页标题中带有‘后台’的网页都会被搜索出来。
inurl:搜索包含有特定内容的URL。
eg:inurl:admin,可以用来查找网站后台。
intext: 搜索网页正文内容中的指定内容
eg:intext:登陆。可以搜索含有‘登陆’的页面
Filetype: 搜索指定类型的文件。
eg:操作系统 filetype:txt,找到关于操作系统的txt文档。
Site:找到与指定网站有联系的URL。
eg:Site:kugou.com。和kugou有关的URL都会被显示。
进阶篇:
google hacking数据库:https://www.exploit-db.com/google-hacking-database.
site:Github.com smtp
site:Github.com smtp @qq.com
site:Github.com smtp @sina.com.cn
site:Github.com smtp password
site:Github.com sa password
site:Github.com root password
site:Github.com svn
site:Github.com svn username
site:Github.com svn password
site:Github.com inurl:sql
site:Github.com password
site:Github.com ftp ftppassword
site:Github.com 密码
site:Github.com 内部
在渗透测试过程中,很多网站有CDN。CDN即内容分发网络,主要解决因传输距离和不同运营商节点造成的网络速度性能低下的问题。CDN采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。只有用户有实际数据交互时才会从远程Web服务器上响应,这样可以大大提高网站的响应速度及用户体验。
故在渗透测试过程中,要想知道网站服务器的真实IP,得绕过CDN查找出网站的真实ip地址。
方法:通过Ping判断是否存在CDN。利用在线ping网站,不同地方的 ping 服务,查看对应 IP 地址是否唯一,不唯一有可能是使用了CDN.