网站渗透测试的基本流程
https://www.freebuf.com/column/179519.html
1.1信息搜集
1.1.1 网站指纹识别
- 常见的CMS有wordPress/dedecms/discuz/phpwind/dvbbs/phpcms/ecshop/帝国cms等。
- 在线指纹识别网站:
云悉指纹:http://www.yunsee.cn/finger.html 需要注册
Whatweb:https://whatweb.net/ 免费
- Web服务,有以下几层
操作系统
存储:数据库存储、内存存储、文件存储
Web容器:apache/iis/Nginx
Web服务端语言:Django/rails/thinkphp
Web应用:BBS/CMS/BLOG (论坛/网站/博客)
WEB前端框架:jQuery/Bootsrap/html5
第三方内容:广告、mockup
1.1.2 端口开放情况
- 端口扫描工具有nmap和masscan,nmap扫描的准确性较高,但是扫描的比较慢,masscan扫描的比较快,但是准确性较低
- 常见的高危端口:
21---ftp
22---ssh (可连接,如ssh 192.168.12.254)
参考:https://www.cnblogs.com/keerya/p/7612715.html
可利用做本地转发 命令:-L localport:remotehost:remotehostport sshserver 说明:localport 本机开启的端口号 Remotehost 最终连接机器的IP地址 Remotehostport 转发机器的端口号 Sshserver 转发机器的IP地址 选项:-f 后台启用 -N 不打开远程shell,处于等待状态(不加-N则直 接登录进去) -g 启用网关功能 Ss -nt 查看接口连接情况 (可利用做跳板)
|
- Nmap可扫描单一主机(域名或IP);
可扫描整个子网;
可扫描多个目标;
可扫描一个IP c段范围内的目标;
可将ip地址列表保存为txt文件,然后扫描这个文件
可查看扫描的所有主机的列表
可扫描除过一个ip外的所有子网主机
可扫描除过某一个文件中的ip外的子网主机
可扫描特定主机的80,21,23端口
445---smb 可远程登录
smbclient -L 192.168.253.20**
smbclient ‘\192.168.253.20$share’
get(下载) wp_config.php(敏感文件)**1433---mssql3306---mysql
3389---远程桌面
6379---redis (可远程连接)
参考: https://lionking.top/2018/11/01/Redis%E6%9C%8D%E5%8A%A1%EF%BC%886379%E7%AB%AF%E5%8F%A3%EF%BC%89%E5%85%A5%E4%BE%B5/
1.1.3 C段和旁站
旁站:同一服务器上的其他网站
C段:同一内网段内的其他服务器,获取c段可以选择最容易攻击的服务器攻击,可作为跳板到目的服务器
旁站和C段在线查询地址:
- 组织机构
大型机构一般会有下属公司以及收购的子公司,可能其子公司或者分部门有专线连接总部网络,可以从子公司或者合作伙伴方入手。
爬取主战所有的关联网站,分析是否属于目标组织
1.1.4 子域名
- 常用的子域名收集工具:
https://github.com/withgallantry/OneForAll
微步
- 物理定位获取附近ip,通过shodan(需登录)大概定位
附近ip:geo:”31.584,65.5487”
- Txt记录
Txt记录主要用于邮件保护,会记录收信人的地址。有的会包含相关的资产地址。
命令:nslookuo -type=TXT 360.CN
- Cdn获取真实ip
- 通过子域名所在的网段推测主网段进而判断主站地址,一般子站没有假如cdn防护。
- 查找域名历史解析记录(如百度快照),在加入cdn有个加入和未加入的过程,可能暴露真实IP
- 全球进行ping测试,可能部分地区未有CDN节点,暴露真实地址(效率低,不准确)
- 如果是cloudflace保护的,可通过 http://crimeflarc.com/cfssl.html尝试。
- 如果站点提供邮箱注册后者找回密码功能,通过注册功能让服务器发送一封邮件,本地可通过邮件头查看到真实地址(但可能邮件服务器和网站是分开的)
- 通过信息泄露获取:phpinfo()
- 如果站点有插入保存远程图片的功能,可以通过插入远程图片的方法,查看服务器的来源
- 大范围扫描80,绑定host批量访问,正常则是真实IP
- DDOS把cdn流量打完,cdn商不提供防护真实地址(难度大)
- 社工信息收集进行所在CDN商的账户密码进行猜测
1.1.5 网站敏感目录和文件
备份文件 1.zip 1.rar 1.bak
后台目录 admin.php
Mysql管理接口 phpMyAdmin
安装页面 install.php
Phpinfo页面
扫描工具:cansina,御剑,Dirbuster,dirmap
1.1.6 网站web容器
Apache/nginx/tomcat/iis
识别软件:浏览器插件,在线识别网站(微步,http://fofa.so/)
1.1.7 网站脚本类型
常见脚本类型:asp php aspx jsp jspx
识别软件:chrome浏览器插件wappalyzer
1.1.8 网站数据库类型
- Access+asp,aspx 小型数据库,当数据库达到100M左右性能就会下降,数据库后缀名:.mdb 一般是asp的网页文件用Access数据库
- Sql server+java,asp,aspx 比较大型的数据库,端口号为1433,数据库后缀名 .mdf
- Mysql+php 最流行的关系型数据库管理系统,默认端口3306
- Oracle+jsp 默认端口1521
2.突防提权
2.1. 提权
2.1.1 系统漏洞提权
Windows:Ms漏洞
Linux:Dirtycow(脏牛)
2.1.2 数据库提权
- Mysql
udf提权(用户定义函数)
- Mssql
Xp_cmdshell函数执行命令
通过备份文件到启动项提权
- Redis(数据库)
高权限启动redis并且存在redis版本大于4.0
- 第三方组建提权,mysql/mssql/server-u
- 内核漏洞提权
常见的各种版本提权代码:http://github.com/SecWiki/
- 其他:环境变量,启动项等
2.1.3 系统权限配置不当
3.内网渗透
横向移动:在内网中一个密码可以登录许多机器,我们可以利用获取的密码进行横向移动。
Pass-the-hash:原理就是攻击者可以直接通过LM Hash和NTLM Hash访问远程主机或服务,而不提供明文密码。
4.隐蔽控守
- 权限维持:
1,Windows
Msdtc的oci.dll;
开机自启马。
2, linux
常见简单安全漏洞,如弱口令 ,xss漏洞,csrf漏洞,反序列化漏洞;
渗透测试常用工具的典型使用场景及操作方法 ;
网页木马(Webshell)的使用。
-----------------------------------------------
- webshell是web入侵的脚本攻击工具
HTTP
(1)HTTP 协议 HTTP 协议的原理及特征,具有对 HTTP 协议类型网站 进行信息搜集、扫描。
http工作原理
超文本传输协议(HTTP:Hypertext Transport Protocol)是万维网应用层的协议,它通过两个程序实现:一个是客户端程序(各种浏览器),另一个是服务器 (常称Web服务器)。这两个通常运行在不同的主机上,通过交换报文来完成网页请求和响应,报文可简单分为请求报文和响应报文。
http特点:
1. 支持C/S(客户/服务器)模式。
2. 不安全
3. 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST,每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
4. 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
5. 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
6. 无状态:HTTP协议是无状态协议,无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
(2) HTTPS 协议 HTTPS 协议的原理及特征,具有对 HTTPS 协议类型网 站进行信息搜集、扫描。
https:
传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息
特点:安全的
(3) 浏览器安全 典型浏览器的安全机制,及相关安全机制对网站渗透的
影响。