WEB渗透教程

WEB渗透教程

Nmap 的使用

Nmap 作为一款端口扫描软件,可以说是目前最强大的端口扫描工具,更是很多安全从业者所必备的工具。

Nmap的安装教程请自行安装,有 Windows 系统的也有 Unix 以及 Mac。

Nmap的扫描方式有很多,包括 TCP Syn TCPACK 扫描等,使用也比较简单,仅仅需要几个参数。扫描指定IP开放的端口:

nmap -sS -p 1-20000 -v 220.176.172.178

表示使用半开扫描,系统很少会保存日志。扫描C段主机:

nmap -sP 220.176.172.178/24

image

这里给出的结果是C段存在256个主机,方便我们后期对目标进行C段渗透。指定端口扫描 :

nmap -p 80,8080,22,445 220.176.172.178

指定端口扫描和半开结果类似,故不贴图。扫描主机操作系统:

nmap -o 220.176.172.178

扫描全部端口:

nmap -v -A 220.176.172.178

image

这里可以看到初步就已经判断出来了 23端口和8888端口都是使用tcp协议。后面他会自行进行Syn的扫描,结果较慢,故不在等待。

image

这是全端口扫描得出的结果,但是要注意的地方是,他只是默认的1000个高危端口扫描,若要检测全部端口,还需要加入-P-这个参数才行。

Namp 的命令很多,我这里只是列举了常用的几个命令,需要查看更多命令的请百度 namp 的官网进行命令手册翻阅。

Safe3

Safe3 作为一个国产的漏洞扫描工具,和 Appscan 来做比较还是有些不足。虽有不足,但依然无法阻止众多安全从业者的使用。我用 safe3 第一个印象就是觉得,快。

在 Windows 平台下,打开速度和扫描速度是非常之快的。

image

这就是 safe3 的全面貌,中文界面,做用户的友好性十分的强。操作也比较傻瓜的,填入扫描的网站地址后,选择需要扫的漏洞就行。

image

由图可见,扫描结果显示的是sql注入的漏洞,但是safe3这款工具误报性个人觉得是相当的高,笔者也很少使用,只是有时候拿来扫个后台地址而已。

Sqlmap

sqlmap 作为一款强势的 sql 注入攻击工具,其功能性之强是其他 sql 注入工具所无法比拟的。如果要说缺陷,那就是众多的参数以及英文界面。

sqlmap 是一款非常强大的开源 sql 自动化注入工具,可以用来检测和利用sql注入漏洞。它由 python 语言开发而成,因此运行需要安装 python 环境。

我这里是 KaliLinux2.0 系统,已经集成了 sqlmap,所以 Windows 平台的朋友需要安装 Python 环境才能运行。检测注入点是否可用:

这里需要用到参数:-u
-u:指定注入点URL

image

这里是在进行注入测试了,如果存在注入,那么应该返回该网站的应用程序详:

image

这里返回了服务器系统2008 ,web 容器为 IIS7.5,脚本语言是 asp 的,数据库为 SQLserver 2005 版本。

1. 列出该数据库中的所有数据库名称

参数: —dbs

image
image

上图所显示的就是我们在输入了 —dbs 参数后,sqlmap 列出的所有数据库,也叫做爆库。

由于我 Kali 下开的 sqlmap 太多了,我又找不到那个命令窗口,就拿个新的网站来做接下来的例子。

2. 列出当前程序所在的数据库
参数:—current-db

image

图中已经列出了当前应用程序所使用的数据库是“vps415”。列出指定数据库的所有表。

sqlmap -u “http://www.hkmsedu.com/class.php?id=121“ -D vps415 —tables

—tables 参数便是用来获取数据库表,-D参数为指定的数据库,结果如下:

image
3.读取指定表中的数据

sqlmap -u “http://www.hkmsedu.com/class.php?id=121“ -D vps415 -T book —columns

参数为:—columns

结果如下:

image
4. 读取指定字段及内容
image

参数为:-C 指定字段名称,-T指定表名,-D指定数据库名,—dump 为保存数据。

Sqlmap 会把数据保存在文件夹下,已cvs文件后缀。

image

到此,就已经完成了用 sqlmap 进行 sql 注入的一个完整过程,sqlmap 参数还有很多,如需深入了解,请自行查阅官方命令手册。

APPscan

APPscan 的界面如下,很简洁

image

进入配置向导界面,如下所示。

image

选择 WEB 扫描,同时他也可以扫描 Web Services,我们选一个 Web 站点进行扫描。

image

然后一路回车即可。扫描专家建议就是一个建议程序,可开可不开。扫描过程如下:

image

APPScan 的界面非常简单,左上角是基于 URL 的爬行参数,左下角仪表盘是总的安全报告。又侧则是风险详情信息。下面便是扫描结果,可以看到这个站已经存在 SQL 盲注以及 SQL 注入等网站安全问题。

image

旁边可执行一些手动语句的测试来验证漏洞是否存在。以上漏洞可一个一个的去手动复现,到此,AppScan 就已经完成了一次自动化的扫描过程。

Appscan 和 WVS 类似,不过是英文界面,所以我选了 AppScan 来做实例,并不是 WVS 不及 Appscan。

重点来喽,作为一名渗透测试人员,Burpsuite 工具可以说是在众多工具中位列榜首可是神器呢,基本以后的安全测试之路都需要用这款工具去操作。所以学好 Burpsuite 的使用是非常重要的。

Burpsuite

有两个版本,一个是免费版,一个是Pro(Professional)版,相比只有一个功能差距,免费版不带扫描功能,Pro版则有扫描功能,但是,作为一个优秀的安全工具,Pro版则是太贵,我记得正版需要 2000 来块人民币(买不起),所以就自然有了破解版,我手中这款 1.7.11就是Pro破解版(羞耻)。

image

首先,界面如上,功能模块包括 taeget、proxy、spider、Scaneer、intuder、Repeater 等模块。

由于1.7.11版本字体设计有些许问题,所以下面用1.58版本展示。

首先,选入“Options”模块,进入“Display” Display 模块,找到第二栏,“Http Message Display”,选择字体为“微软雅黑”,改这个设置的原因是,后面的 HTTP 请求消息如果中文可能会乱码。

image

然后,进入“proxy”,遂“options”,第一栏,设置你的代理IP地址,因为他本质就是个浏览器操作后截获数据进行分析,需要用代理来。

具体代理信息可以转到浏览器代理 IP 设置的方法。我这里以 Edge 为例。

设置-高级设置-代理设置-打开代理设置即可。如下图:

image

这个代理设置要和 burp 上的设置一样才能抓到HTTP响应哦~

接下来,我们看 intercpt 功能,也就是最基础的功能,抓取当前页面的http请求。

image

如果以上设置没有问题了,那么你应该会成功访问该目标地址,我这里测试的是“gitbook.cn”。

访问的同时,我点击了 intercept is 模块 Is off Is on 分别关,开两种状态。我这里选择了on,那么这个页面的 HTTP 请求将被显示到 burp 中的这个模块下。

image

上面就是显示的内容了,可以看出上面信息呢?请求来自http://gitbook.cn:80,开放了80端口,IP地址为[123.59.80.114.]。

请求是GET的,协议是 http1.1 而不是 http2.0,http状态码是200,表示返回成功。请求页面是 http://gitbook.cn/。

下面较为重要的信息就是 cookie 等登陆信息。通过对截获的http信息,一般就能看出一些安全问题。下面用实例+抓包请求信息来介绍,我经常用到的 intruder 模块使用。

Intruder,字面解释为入侵者,解释完美的诠释了这个模块是多么的爆炸。案例诠释 Burp 的爆炸功能。

我的测试目标是一所高校,拿到所在的域名之后,首先进行了扫描器的自动化扫描,并且我自己也开始进行手动测试,从该高校的官网,爬到了一处OA系统,OA系统为自主开发,并不是什么市面上的A8之类。

image

访问到这个页面的时候,我的第一想法是,应该可以成功渗透。

因为无验证码,无权限控制,这样也就提供了爆破的信息,爆破也就恰恰是我所要讲的 burp 中的 intruder 模块功能之一。

随便输入账号密码后,我们来看看网页访问请求。

image

可以看到,截获到的 http 请求页面如上,aspx(Asp、net)的脚本语言。

image

账号和密码ID分别都是 6666,明文传输。我就很奇怪,为什么要很多涉及到登陆的网页,不肯做一点点加密?

哪怕是 base64 编码后再传入也好啊。但事实就是这样,明文传输。

image

我们右键,选择 Ctrl+R,发送到 Repeater 模块来分析登陆响应。点击左上角 GO 即可。

image

在 params 模块下,可以更改你的输入参数,用于测试不同的参数会返回什么内容,但是需要每次修改后都点击 Go,用于测试。

image

如上图,我修改了 txtuserld 为 admin password 保持了 6666 不变 点击 GO 后的结果。一串乱七八糟的,待会我们再提。

回到 intercept 模块下,我们选择 Ctrl+I,发送到 intruder 模块下,进行猜解用户名和密码。

image

上图所示,positions 模块下显示具体参数,标黄的(用黄色字体颜色显示出来的)都是变量参数,我们猜解用户名和密码则需要指定一些参数。

右边的“clear”,则是清除所有参数,清除后会去掉所有变量(颜色),选中你需要的参数,然后选择“Add”就可以指定该参数为变量。

我指定了用户名作为变量参数,其余不变。意味着 txtuserld:admin txtpassword:123456 其中 userld 中的 admin 参数为变量。

有的读者可能奇怪,为什么我这里要设置用户名为变量呢。

因为考虑到我的测试目标是 OA 系统,OA 系统为多人办公系统,在线人数几百人。用户名不止一个 admin,如果选择 admin,可能会出错。

所以我的思路是爆破他的账号,所以我选中了 admin 做变量,而不是爆破他的密码。相比之下去选择一批账号进行爆破,成功率远远比一个账号成功率高了太多。

也要结合实际环境来测试,比如网站后台,只有一个 admin 管理员账号的情况下,显然我这种情况是不合适的。

image

变量设置完毕后,选择 payloads,来进行字典的配置,payload Sets 就是攻击类型,有多重变量的情况下,可以选择。

比如账号和密码都为变量,如果测试一个字典则不显得那么机智,需要字典在两个变量之间相互测试,就用到这个功能模块,这里我们不做测试,遂跳过,保持默认就好。

在字典装好后,在这个模块的旁边有个options模块,这里用来更改类似于线程的参数。

在第二栏有个 Request Engine 参数,这里第一栏是 Number of threads 默认是5。

这个意思是,线程。默认5线程进行攻击,这个更改需要根据网站的配置和字典的数量,如果网站配置好,请往上加,如果不好,跑一跑就会跑坏,那么就默认。

image

我设置的线程为50,设置完了后,就可以点击左上角的 intruder,选择第一个了。

image

开始进行爆破,我这里导入的是弱账号 top500,通过几秒钟的碰撞后, length 的返回数字头中,包含了 2910-2973. 唯独出现了一个“liujuan”的 ID 返回了 3391 数字头。

这个账号有点可疑,我们放到前面所讲的 Ctrl+R 中来分析一下。

image

更改 uid 后,点击 Go,返回了 http 信息,如上图,基本可以判断这个账号就是正确的账号,已经成功爆破出来,为了验证猜想,我们使用该ID进入网页。

image

如上图,测试已经成功,burpsuite 就是这么暴力的一个安全测试工具,这只是其中几个模块,真正玩的转的人,很少。

个人觉得能玩转 burp 的所有功能,得花好几个月来专门学习 burp 这方面的资料,遗憾的是市面上还没有一本关于 burp 的工具书,如果有大神愿意写,那是自然最好的。

通过以上学习,能基本掌握这几款工具的用法了,当然不能说之能成功渗透目标了,因为这只针对无访问控制,无验证码,存在弱口令的网站情况。

通过案例学习,开发者也应该明白,怎样去做才能更加安全,为用户保驾护航。

案例是哪个高校,我就直说了,属于云南大学主站,这个漏洞,我在80天前就已经提交给漏洞平台了,他们也整改了,今天写下这篇文章的时候是2017年11月1日22:11:05,我万万没想到,整改是指哪改哪的姿势。

安全问题万万不可指哪改哪,我当时提交的另一个账号的弱口令,但是我明明确确的是写了属于逻辑漏洞,整改意见清清楚楚写上了“增加验证码效验机制防止爆破”。

但他们只改掉了出问题的那个账户的密码……

所以我很多时候不能理解厂商的态度,加个验证码效验如此简单的事情,非得让攻击重新发生一次。
是不是一定要等用户数据泄露,企业等遭受致命打击才能明白信息安全的重要呢?

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容