网库网(www.wangkuwang.com)精品网站源码,织梦建站模版,游戏源代码分享平台

模板户源码

当前位置:首页 -> CMS教程 -> 其它教程 正文

这是一篇具有攻击性的 Web 渗透测试文章

时间:2017-12-12 23:41:45 [整站源码]作者:zhaopulei


本文来自作者 Mr.time 在 GitChat 上分享「Web 渗透测试入门」,阅读原文」查看交流实录

文末高能

编辑 | 嘉仔

写在前面,特别说明:

本文技术内容具备一定的攻击性,请勿非法攻击他人网站!!!

渗透测试基本环境搭建

基本环境搭建

目前主流的渗透测试环境是Kali Linux系统,可能大家知道许多其他的 Linux 版本,例如 Ubuntu Centos  Fedora Red hat 等。

这些都是 Linux 的发行版,可以根据自己的喜好和需求自行选择。这里我们选择使用 kali Linux 来作为渗透测试的基础环境。

系统环境

可能目前大家用得 Windows 比较多,那么如何在 windows 里再安装一个系统呢,来实现双系统呢?

现在就来实现搭建双系统这个基本功能。让大家同时玩转 kali Linux 和 Windows。“一机多用”。

windows 下如何安装kali Linux

所需软件下载:

  • VWware 官网下载地址:点击这里(https://www.vmware.com/products/workstation-pro.html)

  • Kali Linux 官网下载地址:点击这里(https://www.kali.org/downloads/)

步骤说明

为方便新手使用,本次演示的安装过程使用中文简体语言,这也为之后熟悉 kali Linux 里的工具有所帮助,在基本了解 kali 后可以安装英文版本,过程类似。

安装步骤中,如果只有图片没有文字说明,则选择图片中所选项即可,如果有文字则一般文字在前,图片在后,并且选择内容以文字说明为准。

打开 VMware Workstation ,选择“创建新的虚拟机”。

选择“自定义”。

点击“下一步”。


选择“稍后安装操作系统”。

选择“Debian8.x64位”。

输入“虚拟机名称”和“存放路径”,点击下一步。

配置处理器数量和核心数,因为我的cpu是i7 所以选择大一点,根据自己的机器来选择即可。然后点击下一步。

这里是配置虚拟机的内存,我的内存是8G,我给虚拟机配置一个2G,这个也根据自己机器的内存来选择即可。然后点击下一步。

接下来是配置虚拟机的网络,为了方便学习,这里直接选择“桥接模式”,点击下一步。

默认选择,下一步。

默认选择,下一步。

这里选择“创建新的虚拟磁盘”,然后下一步。

这里为了虚拟机有足够的空间我直接配置了100G虚拟空间,这个根据自己的硬盘大小来配置,选择“将虚拟磁盘拆分成多个文件”然后下一步。

然后选择磁盘文件存放位置,然后下一步。

下一步。

点击完成。

点击“编辑虚拟机设置”。

点击”CD/DVD”这里设置,选择使用ISO映像文件,然后浏览选中我们之前下载好的Kali Linux 的ISO镜像。点击确定。

点击“开启此虚拟”,开始安装系统。

选择“Graphical  install” 开始安装kali。

选择“简体中文”, 点击continue。

选择“是”,点击继续。

等待安装。。。

等待安装。。。

点击 继续。

继续。

继续。

继续。

继续。

这里选“否”,在这里不要使用网络镜像功能,如果使用网络镜像会从国外网站下载最新版本软件,如果网络不好会很慢或下载的软件是破损的。

这一步一定要选“是” 。

等待安装。。。

安装结束,点击 继续 。

等待,结束安装进程,它会自动重启。

重启之后,如图所示,出现登录页面:

输入用户名:root
密码:你设置的密码

登录成功:

现在看起来界面比较小,所以我们来设置下分辨率,让它看起来完整一点,点击右上角和左下角这里,如图所示:

现在就可以享受一下大屏的快感了,背景图为kali Linux的logo标志:

接着我们来看看虚拟机的ip和网络是否连通,能否上网:

我们先打开终端,执行Linux 命令,查看ip:

ifconfig

结果如图所示:

可以看到我虚拟机的ip是:192.168.1.142。

接着查看是否网络连通,执行Linux命令,ping网络:

ping baidu.com

结果如图所示:

可以看到它返回里 baidu 的ip,和响应时间,说明我们的网络已经连通!

注意:我们执行ping命令返回结果之后,按住“ctrl+c”键 ! 来结束ping命令,否则它会一直ping下去!

我们再打开火狐浏览器,访问网页试试:

访问百度,结果如图所示:

小结:至此web渗透测试的基础环境搭建完成,实现了在Windows下“一机多用”的功能,当然只要你的机器配置和性能够高的话,理论上可以安装任意多个系统。

渗透测试基本流程

什么是渗透测试?

渗透测试(penetration test)是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。

这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析,这个分析师从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞。

渗透测试还具有的两个显著特点是:渗透测试是一个渐进的并且逐步深入的过程。渗透测试是选择不影响业务系统正常运行的攻击方法进行的测试。

渗透测试的目的是什么?

渗透测试能够通过识别安全问题来帮助一个企业理解当前的安全状况,这使促使许多企业开发操作规划来减少攻击或误用的威胁。使受测企业的网络和应用系统更加安全。

渗透测试的基本流程是什么?

如图所示:

渗透测试基本流程

渗透测试的基本流程主要分为以下几步:

  1. 明确目标

  2. 信息收集

  3. 漏洞探测(挖掘)

  4. 漏洞验证(利用)

  5. 提升权限

  6. 清除痕迹

  7. 事后信息分析

  8. 编写渗透测试报告

明确目标

主要是确定需要渗透资产范围;确定规则,如怎么去渗透;确定需求,如客户需要达到一个什么样的效果。

信息收集

信息收集阶段主要是收集一些基础信息,系统信息,应用信息,版本信息,服务信息,人员信息以及相关防护信息。

信息收集大多是工具加手工进行收集信息,工具如nmap,包括Google Hacking, Whois查询, DNS等信息(如果考虑进行社会工程学的话,这里还可以相应从邮件列表/新闻组中获取目标系统中一些边缘信息如内部员工帐号组成,身份识别方式,邮件联系地址),相关终端命令,浏览器插件,在线工具等。

漏洞探测(挖掘)

主要是探测(挖掘)系统漏洞,web服务器漏洞,web应用漏洞如以及其他端口服务漏洞,如telnet,ssh,vnc,远程桌面连接服务(3389)等。

漏洞验证(利用)

漏洞验证主要是利用探测到的漏洞进行攻击,方法主要有自动化验证(msf),手工验证,业务漏洞验证,公开资源的验证等。

总的来说就是工具加手工,为了方便,可以将自己渗透常使用的工具进行封装为工具包。

提升权限

提升权限主要是在当前用户权限不是管理员的时候需要进行提升权限,提升权限可以是提升系统权限,web应用权限或是数据库权限等。

清除痕迹

清楚痕迹主要是清除渗透过程中操作的一些痕迹,如添加的测试账号,上传的测试文件,清除日志等。

事后信息分析

主要是对整个渗透过程进行信息分析与整理,分析脆弱环节,技术防护情况以及管理方面的情况进行一个现状分析以及提出相关建议。

编写渗透测试报告

根据渗透测试具体情况编写渗透测试报告,渗透测试报告必须简洁明了,说清楚渗透清单(范围),攻击路径,渗透成果,以及详细的漏洞详情(相关描述、漏洞危害等)及可行的修复建议。

最后对整改渗透情况进行简单的总结和分析,说清楚目前资产的一个状况是什么样的,应该从哪些方面进行加强和提升。另外根据渗透测试报告可让第三方相对容易复现成功!

小结:至此渗透测试的基本流程我们已经有了一定的了解,在公司里web安全渗透人员的做的工作也大多是这样的流程。

渗透测试的类型

实际上渗透测试并没有严格的分类方式,即使在软件开发生命周期中,也包含了渗透测试的环节,但根据实际应用,普遍认同的几种分类方法如下:

黑盒测试

黑盒测试又被称为所谓的“Zero-Knowledge Testing”,渗透者完全处于对系统一无所知的状态,通常这类型测试,最初的信息获取来自于DNS、Web、Email及各种公开对外的服务器。

白盒测试

白盒测试与黑盒测试恰恰相反,测试者可以通过正常渠道向被测单位取得各种资料,包括网络拓扑、员工资料甚至网站或其它程序的代码片断,也能够与单位的其它员工(销售、程序员、管理者……)进行面对面的沟通。这类测试的目的是模拟企业内部雇员的越权操作。

隐秘测试

隐秘测试是对被测单位而言的,通常情况下,接受渗透测试的单位网络管理部门会收到通知:在某些时段进行测试。因此能够监测网络中出现的变化。但隐秘测试则被测单位也仅有极少数人知晓测试的存在,因此能够有效地检验单位中的信息安全事件监控、响应、恢复做得是否到位。

渗透测试相关原则

  1. 最小影响原则

  2. 非破坏性原则

  3. 全面深入原则

  4. 保密性原则

网站基础与信息搜集

浏览器地址栏里的URL

当我们在火狐浏览器里访问一个页面的时候通常是这样的:

http://gitbook.cn/gitchat/activity/59fa8480dba16b1bb5d17d85

我们访问的是网站中哪个网页?这是一个静态页面还是动态页面??id是什么意思?这个网站采用的是哪种脚本语言?这个网站所采用的后台数据库最有可能是什么?这个网站所采用的Web容器最有可能是什么?

我们访问的是网站中一个名为gitchat的网页;activity是网页中的一个参数,客户端通过这个参数将数据 59fa8480dba16b1bb5d17d85传递给网页;网页去数据库中查找符合activity = 59fa8480dba16b1bb5d17d85 这个条件的数据,并将之传递到客户端显示出我们所看到的页面。

传值方法

网站服务器端从客户端获取数据的方法主要有两种:

  • get方法,只能获取少量数据,总量不能超过100个字符。

  • post方法,适合传输较多数据,如用户注册、留言本等。

组成格式

http://gitbook.cn/gitchat/activity/59fa8480dba16b1bb5d17d85

  • protocol 协议,常用的协议是http

  • hostname 主机地址,可以是域名,也可以是IP地址

  • port 端口 http协议默认端口是:80端口,如果不写默认就是:80端口

  • path 路径 网络资源在服务器中的指定路径

  • parameter 参数 如果要向服务器传入参数,在这部分输入

  • query 查询字符串 如果需要从服务器那里查询内容,在这里编辑

  • fragment 片段 网页中可能会分为不同的片段,如果想访问网页后直接到达指定位置,可以在这部分设置

URL,Internet上标准的资源地址表示方法,一般格式

协议名: //主机FQDN名(IP):端口/路径

协议名一般为HTTP协议或FTP协议。端口号通常可以省略。如果使用的是HTTP协议,默认端口为80;如果使用FTP协议,默认端口为21。

在URL中如果指明路径,则是打开一个具体的网页或是某个具体的文件,如果路径省略,则是打开相应网站的首页。

这是一个静态页面还是动态页面?

静态网页:内容固定不变,文档扩展名通常为 .htm、.html、.shtml 等。

动态网页:可以与后台数据库进行交互和数据传递。同一个网页文件能根据不同的请求显示不同的内容。根据所使用的网页语言不同,一般以.asp、.php、.jsp、.aspx等作为扩展名。

静态网页由HTML语言编写

<body> <title>这是一个HTML网页</title> <p>这是一个段落</p> </body> </html>

动态网页主要由 ASP、PHP、ASP.NET、JSP 语言编写

ASP 和 PHP 技术一般多用于中小型网站。ASP.NET 和 JSP一般用于大型网站。

<html> <body><?phpecho hi,jack!;?></body> </html>

数据库

采用动态网页的网站,内容大都存储在数据库中,数据库通常是网站的核心组成部分。

目前常用的网站架构搭配的数据库主要有:

  • Access,微软的小型数据库,主要用于小型网站,大都采用ASP+Access组合。

  • Mssql,微软的大型数据库,主要用于中小型网站。

  • MySQL,Oracle公司的中小型数据库,开源,主要用于中小型网站,大都采用PHP+MySQL组合。

  • Oracle, Oracle公司的大型数据库,一般用于一些大型网站中。

Web服务器程序(Web容器)

常用的Web服务器程序:

  • IIS,WinSrv系统的内置组件。Win2003中的IIS版本为6.0,Win2008中的IIS版本为7.0(7.5)

  • Apache,开源软件,主要运行于Linux平台。

  • nginx,开源软件,主要用于Linux平台。

Web环境

web网页程序、数据库、Web服务器(Web容器)程序综合在一起,就构成了一个完整的Web环境。
常见的搭配有:

  • ASP+Access+IIS

  • ASP+Mssql+IIS

  • PHP+MySQL+Apache

  • PHP+MySQL+nginx等。

Web服务器

  • 虚拟主机:在一台服务器中同时运行多个网站,所有这些网站共享相同的IP地址

  • 云服务器:网站采用独立服务器和独立的IP地址,这些服务器往往都是托管在ISP机房内。

网站信息搜集

域名与IP

  • 国际通用的顶级域名:net、com、org。

  • 国内的域名:com.cn、edu.cn、gov.cn

在windows下 按住“CTRL+R”键 打开cmd命令行窗口,然后

执行命令“ping www.baidu.com”,可获得域名对应的IP。

或者在kali Linux 里面 打开终端来执行命令:

这样就可以获得域名所对应的ip了。

站长工具 tool.chinaz.com

whois查询。通过查询whois可以获取站点域名的详细信息。

查百度结果

只有服务器在中国境内搭建的网站才需要进行备案,备案信息经过了政府部门的审核,比较真实可靠。

如果你买了一个海外或者香港云主机的话是不需要备案的。

同IP网站查询

可以查询到目标网站是独立服务器还是公用服务器。

网站排名

  • 百度权重,衡量一个网站被百度搜索引擎的认可度,值从1到10。

  • PR 查询,PageRank(网页级别),网站被Google的认可度,值从0到10。

  • Alexa排名,网站的世界排名,是较为权威的网站访问量评价指标。

R值全称为 PageRank(网页级别),PR 值是 Google 用于标识网页的等级、重要性、网站的好坏的重要标准之一。级别从0到10级为满分。PR值越高说明该网页越受欢迎。

例如:一个PR值为1的网站表明这个网站不太具有流行度,而PR值为7到10则表明这个网站非常受欢迎(或者说极其重要)。

一般PR值达到4,就算是一个不错的网站了。Google把自己的网站的PR值定到9,这说明Google这个网站是非常受欢迎的,也可以说这个网站非常重要。

判断Web环境

常用工具:

  • SEO 综合查询

  • whatweb

在 kali Linux 打开终端:

执行命令: whatweb http://www.tet.com/ (你想测试的域名)

我们就能获取到域名网站的相关信息,包括 所在国家、邮箱、web容器、服务器、web程序等。

GoogleHack “谷歌黑客”

Google 是当今世界上最强大的搜索引擎,也是黑客手中的一个秘密武器。GoogleHack 就是利用 Google 搜索引擎来辅助进行渗透测试。

如何访问 Google,也就是人们常说的“科学上网”

  • 修改hosts

  • 设置代理服务器

  • 使用翻墙软件

常用的Google关键字:

搜索注入点

inurl:搜索URL中包含指定关键字的网页:

  • inurl:asp?newsid=

  • inurl:php?newsid=

搜索敏感信息

  • intitle:搜索标题中含有关键字的网页

  • filetype:指定搜索文件类型

intitle:管理|登录|后台。搜索标题含有“管理”、“登录”、“后台”的网页。

filetype:xls 身份证。搜索包含有身份证信息的excel文档。

查找网站后台

site:xx.com 管理,在指定的站点中搜索含有“管理”的页面。网址最好不要带上www,这样可以搜索到二级域名。

  • site:xx.com 管理|后台|登录|用户名|密码|验证码|系统|帐号|manage|admin|login|system

  • site:xx.com inurl:login|admin|manage|manager|admin_login|login_admin|system|boss|master

  • site:xx.com intitle:管理|后台|登录

搜索目录浏览漏洞

目录浏览漏洞,是由于网站服务器配置不当,导致没有设置默认页面的目录会将其目录下的所有文档列出来。搜索以下关键字:

  • index of

  • 转到父目录

  • to parent directory

搜索敏感页面

在指定站点中寻找上传页面:

  • site:xx.om inurl:file

  • site:xx.com inurl:load

在指定站点中寻找编辑器页面:

  • site:xx.com inurl:fckeditor

  • site:xx.com inurl:ewebeditor

搜索重要文件

robots.txt告知搜索引擎,网站中的哪些目录不希望被蜘蛛爬行到。

  • site:xx.com inurl:robots.txt

  • site:xx.com filetype:mdb

  • site:xx.com filetype:ini

  • site:xx.com inurl:txt

搜索CMS网站

如果发现CMS存在漏洞,就可以搜索出所有通过该CMS制作的网站。

  • 技术支持:xxx科技

  • powerd by dedecms 等

小结,至此网站基础的基本概念和信息收集已经学完了,我们可以动手简单的获取一个网站域名相关的基本信息了。

端口扫描

端口扫描

端口扫描,主要针对主机是否在线(存活),开放了什么端口,运行了什么服务,主机所运行的是什么操作系统。

nmap

Nmap是目前最流行的端口扫描类工具,最新版本也增加了漏洞扫描功能。

nmap命令语法格式:  nmap <扫描类型> <选项> <扫描目标>

常用的Nmap扫描类型:

  • -sSTCP SYN扫描,使用最多的扫描类型;

  • -sP以ping方式进行扫描;

常用的Nmap扫描选项:

  • -v显示扫描过程;

  • -O:识别远程操作系统;

  • -p指定端口,如1-65535、80等。

常用的Nmap目标格式:

  • 192.0.90.130  xxx.ytvc.com.cn

  • 192.168.1.1-192.168.1.100

  • 192.168.1.10,192.168.1.20

  • 192.168.1.0/24

打开终端,在终端里执行命令:nmap -sP 192.168.1.0/24             用nmap扫描本地网络中的存活主机

如图所示,我们可以看到存活的主机,和简单的机器信息。

打开终端,在终端里执行命令:nmap -sP 192.168.1.0/24 -oG nmap.txt    将扫描结果保存到文件中“-oG”选项,以易于检索的格式保存,即每台主机的信息占据单独一行。

打开终端,在终端里执行命令: nmap -sP 192.168.1.0/24 -oG -     “-oG-”选项,以易于检索的格式显示信息,而不保存成文件。

打开终端,在终端里执行命令:nmap -sS -p 3389,80,3306 192.168.1.0/24 -oG - 在指定网段中扫描开放3389,80,3306端口的主机

端口的状态

  • open,端口开放;

  • filtered,端口被防火墙或安全软件阻止了,也可能是网络堵塞;

  • closed,端口关闭。

扫描开放指定端口的主机,并只显示端口状态是open的扫描结果:

nmap -sS -p 3389,80,3306 192.168.1.0/24 -oG - | grep open        (Linux) nmap -sS -p 3389,80 192.168.1.0/24 -oG - | findstr open        (windows) nmap -sS xxx.test.cn        扫描特定域名主机 nmap -sS -sV xxx.test.cn       扫描某台特定主机的开放端口,并进行详细描述 nmap -sS -sV –O xxx.test.cn   扫描端口,对端口进行详细描述,并探测操作系统类型

总结:至此本次chat到此结束,有任何问题欢迎微信或者读者圈交流提问,谢谢大家的支持!

  近期热文

【钓鱼】与【反钓鱼】的技术剖析

快速了解 Java 9 平台模块系统

《机器人的「语料」,如何获取?》

一页纸,梳理你的商业模式 ,奇妙的「精益画布」

《沉迷前端,无法自拔的人,如何规划职业生涯?》


从此

告别黑客

「阅读原文」看交流实录,你想知道的都在这里

投诉



本文标签:AutoTags插件服务端需要您提供购买者的账号和密码才能继续访问  折翼天使  莎莎源码  吾爱源码  其他源码 

转载请注明来源:PHP手机端发卡多种支付商业版源码

本文永久链接地址:https://www.suibianlu.com/11942.html

郑重声明:
本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。
若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。 我们不承担任何技术及版权问题,且不对任何资源负法律责任。
如无法链接失效或侵犯版权,请给我们来信:admin@suibianlu.com

栏目导航
最新文章
热门文章
Top