声明:本次实践是基于专用独立环境开放给安全人员实践使用,都是一些常见的漏洞,这些漏洞一般都广为人知,所以你很难在现实中使用,博主写这篇文章的用意也绝不在于次,在此声明!
近期,有幸参加了一次网络安全攻防技能实践培训。第一次接触该领域,很多理论知识还很缺失,本篇文章将针对课程中介绍的一些知识做简要的回顾,包括攻击开展的一般步骤,一些常用工具的使用方法,以及一些攻击的实践。
这是博主第一次接触网络安全攻防,所掌握的知识比较肤浅且不全面,仅作为自己学习的记录和给一些初学者一个初步的印象,如有说的不对的地方环境大家指教。
本次培训都是基于虚拟机环境开展的,共部署有两台虚拟机。一台WinServer2008作为攻击机,一台Linux作为靶机。
Winserver2008上面,安装了不少攻击常用的机器,而Linux则是OWASP(开放式Web应用程序安全项目),上面有很多存在漏洞的web应用,让我们作为攻击的对象。
两台虚拟机,是通过vmware桥接实现的互通,桥接的原理在此不多做解释了。
这些实践都是OWASP上开放给安全人员实践使用,都是一些常见的
依次攻击的实现一般可分为以下三个部分:发现漏洞—利用漏洞—开展攻击。
发现漏洞:发现应用中存在的漏洞,一般结合工具,扫描发现是否有暴露的敏感目录,供我们使用。这一步也可以看做是寻找攻击的入口;
利用漏洞:发现漏洞后,我们需要利用该漏洞。已获得开展攻击所需要的条件。这个条件可能是一些敏感信息的获取,后台管理权限的获取,木马的植入等等;
开展攻击:在我们具备了开展攻击的条件以后,便可以开展攻击。这一步恐怕是真正的黑客才会做的,我们更多的经理应集中在发现漏洞和利用漏洞这两个部分。
根据我们前面讲到的一次攻击的一般步骤,这里面提到的每一步都需要结合工具使用,你可以选择使用现成的工具,或者自己开发工具。下面将罗列本篇文章提到的工具和他们的一些用途,
发现漏洞:
nmap、hscan—扫描可攻击的目标,开放的端口等
御剑—发现web应用程序中暴露的敏感页面,例如各种登录页面、中间件的管理台等等。
搜索—通过搜索查找敏感页面,可以通过搜索引擎的语法搜索一些常见的攻击入口,如sql注入入口等。
其他—例如通过刚刚出现的漏洞、或社会工程等方式,不多说了
利用漏洞:
在发现了可以攻击的漏洞作为攻击入口后,则要针对漏洞的形式想办法利用该漏洞,下面罗列针对以下几种漏洞常用的工具
SQL注入漏洞—sqlmap
登录弱密码—bruter等等,这个很多,不多说了
检测绕过—burpsuite(可作为代理服务器,修改http数据包内容,发送给目标服务器)
PHP、ASP漏洞—大小马文件、中国菜刀
提权工具—windows suggester exploit等等
下面博主将在本部分介绍一些攻击的实践,这包括三个部分,也较为简单,给大家一些体验。分别是sql注入、登录弱密码、以及命令执行。
这里只讲实践,不讲原理。
这里以/PentestLab/sqli/example1.php?name=root为例
首先判断是否存在注入点:
在结尾,增加',页面无输出,说明存在注入点
利用sqlmap工具,查看当前数据库
可以看到当前数据库名 为 exercises
至此,可以利用sqlmap语句,实现各项功能,例如查看当前数据库中的表
查看当前数据库,当前表中的字段
查看当前字段的具体信息
至此,我们可以利用sqlmap工具获取数据库中任意的表、任意的字段和信息。
首先发现登录的页面,利用御剑工具进行扫描
御剑工具会通过在指定url后面添加相关敏感字端,扫描目标网站是否含有login、upload等等敏感的url。
由于在实践环境中,不存在这样的url的命名规则,所以此段省略。
以web靶场,第四关为例,尝试弱密码的破解
/webug/pentest/test/b2e16da5985ee1be/index.html
获取登录页面后,尝试登录,用户名:admin 密码:123456 获取登录失败的提示
使用bruter工具,进行密码的暴力破解
我们可以通过查看网页源代码的方式,发现,这里是采用的web表单提交的方式,提交用户名和密码
我们使用bruter,在协议选择框—选择web form
之后,点击option,提交URL,点击Load Form
这时,bruter会自动读取目标url的html信息,匹配敏感字,获取表单中输入用户名和密码的位置。这里,我们已知想要爆破密码的用户为admin用户,所以我们手动填写username字段的值,更改为admin,点击ok。
刚才,我们已经知道了用户登陆失败的提示字符是什么,所以这里我们采用反向结果作为response的标准。
也就是说,当响应中包含这些字符时,判断登录失败。
点击OK,选择密码字典。这是爆破密码的关键,如果密码字典中,没有正确密码的答案,则无法完成爆破
之后,为了提高效率,我们可以调整连接的数量,点击star,开始爆破,我们可以在testing中,看到爆破的过程
最终,我们在result,看到爆破的结果:用户admin的密码为admin123
尝试登陆,可以看到登陆成功。
这一部分可以分为三个部分:文件的植入—远程的控制—命令的执行
想要植入文件,手段有很多,这里讲的是以web应用中存在上传功能为例,进行解释。
首先,我们应该通过御剑等工具,扫描可以上传文件的入口,这里采用的是模拟的环境,所以此步骤省略。
相关url为/webug/pentest/test/11/
按照这里的提示,可以知道,支持上传的文件类型为图片,随便选择一个txt文件上传,发现上传失败。
这里,我们要想办法,欺骗攻击目标服务器,让他以为我上传的是图片文件,实际则是其他文件
首先将我们想要上传的文件,后缀更改为.jpg,发现可以上传,但这样,该文件在目标服务器上也是.jpg文件,这是无法供我们使用的
所以,在这里我们需要打开浏览器代理,并将代理指向BurpSuite。
再次提交,我们想要传入的后缀仍为.jpg的文件,点击提交,我们可以看到,相关的报文信息出现在了BP中
这里我们可以看到,content-type为image/jpeg,也就是图片格式,如果后端服务器验证的就是验证content-type,这里我们只需要修改filename,将文件改为php文件,而content-type不动,则可以欺骗目标服务器。
也可以选择,将报文发送到repeater中,通过reperter模块,模拟request,查看服务器的request,看文件是否上传成功,结果如下:
可见文件确实上传成功,并且我们可以看到文件存储的位置在/upload/目录下
我们可以通过浏览器,验证文件具体的路径
http://192.168.126.101/webug/pentest/test/11/upload/php99.php
浏览器返回为空,实际为浏览器无法解析,初步判断文件所在路径正确。
这里,我们上传的是一个小马文件,我们可以通过中国菜刀,与攻击服务器建立连接
打开中国菜刀,右键添加shell
将文件的路径,粘贴进去,并填入小马文件中的值,点击添加
添加完成后,双击该连接,即可完成与攻击服务器的远程连接
此时,目标攻击服务器已经被我们贡献,我们可以在这里上传文件,删除文件等等。我们甚至可以执行命令:
右键该链接,选择虚拟终端,输入我们想要执行的命令,例如查看ip地址
我们可以通过上传大马文件,获得更强大的控制的体验,也可以通过上传提权工具,获得更高的用户权限。
至此,我们可以获得对目标服务器的控制权限。
本篇文章简单实践了一些攻击手段的实现方式和实现过程,希望大家可以通过这篇文章对网络攻防有一个初步的感受。同时,也希望在对网络入侵,网络攻击有了一个初步的认识后,对如何实现这些攻击的防御、安全设备防止攻击的原理等等,能有进一步的理解和感悟。
文章中的攻击方式较为简单,也比较基础,还望各位高手轻喷。