第一篇:软件工程-渗透测试
火龙果整理 uml.org.cn
渗透测试技术
目录
1.1渗透测试概念.....................................................................................................................2 1.2渗透测试原理.....................................................................................................................2 1.3渗透测试目标.....................................................................................................................2 1.4渗透测试特点.....................................................................................................................3 1.5渗透测试流程和授权.........................................................................................................4
1.5.1渗透测试流程..........................................................................................................4 1.5.2渗透测试授权..........................................................................................................4 1.6渗透测试方法.....................................................................................................................5
1.6.1测试方法分类..........................................................................................................5 1.6.2信息收集..................................................................................................................5 1.6.3端口扫描..................................................................................................................6 1.6.4权限提升..................................................................................................................6 1.6.5不同网段/Vlan之间的渗透....................................................................................6 1.6.6溢出测试..................................................................................................................6 1.6.7SQL注入攻击..........................................................................................................7 1.6.8检测页面隐藏字段..................................................................................................7 1.6.9跨站攻击..................................................................................................................7 1.6.10WEB应用测试.......................................................................................................7 1.6.11代码审查................................................................................................................8 1.6.12第三方软件误配置................................................................................................8 1.6.13Cookie利用............................................................................................................8 1.6.14后门程序检查........................................................................................................8 1.6.15VOIP测试..............................................................................................................8
火龙果整理 uml.org.cn 1.6.16其他测试................................................................................................................9 1.7常用渗透测试工具.............................................................................................................9
1.7.1应用层工具............................................................................................................10 1.7.2系统层工具............................................................................................................10 1.7.3网络层工具............................................................................................................10 1.7.4其他方法和工具....................................................................................................11 1.8渗透测试风险规避措施...................................................................................................11
1.1渗透测试概念
渗透测试(Penetration Test), 是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。
web网络渗透测试:主要通过对目标系统信息的全面收集、对系统中网路设备的探测、对服务器系统主机的漏洞扫描、对应用平台及数据库系统的安全性扫描及通过应用系统程序的安全性渗透测试等手段来完成对整个web系统的安全性渗透检测。该渗透测试是一个完整、系统的测试过程,涵盖了网络层面、主机层面、数据层面以及应用服务层面的安全性测试。
1.2渗透测试原理
渗透测试主要依据CVE(Common Vulnerabilities & Exposures公共漏洞和暴露)已经发现的安全漏洞,以及隐患漏洞。模拟入侵者的攻击方法对应用系统、服务器系统和网络设备进行非破坏性质的攻击性测试。
1.3渗透测试目标
渗透测试利用各种安全扫描器对网站及相关服务器等设备进行非破坏性质的模拟入侵者攻击,目的是侵入系统并获取系统信息并将入侵的过程和细节总结编写成测试报告,由此确定存在的安全威胁,并能及时提醒安全管理员完善安全策略,降低安全风险。
人工渗透测试和工具扫描可以很好的互相补充。工具扫描具有很好的效率和速度,但是存在一定的误报率,不能发现高层次、复杂的安全问题;渗透测试对测试者的专业技能要
火龙果整理 uml.org.cn 求很高(渗透测试报告的价值直接依赖于测试者的专业技能),但是非常准确,可以发现逻辑性更强、更深层次的弱点。
1.4渗透测试特点
入侵者的攻击入侵需要利用目标网络的安全弱点,渗透测试也是同样的道理。测试人员模拟真正的入侵者入侵攻击方法,以人工渗透为主,辅助以攻击工具的使用,以保证整个渗透测试过程都在可以控制和调整的范围之内,同时确保对网络没有造成破坏性的损害。
由于采用可控制的、非破坏性质的渗透测试,因此不会对被评估的客户信息系统造成严重的影响。在渗透测试结束后,客户信息系统将基本保持一致。
火龙果整理 uml.org.cn 1.5渗透测试流程和授权 1.5.1渗透测试流程
1.5.2渗透测试授权
测试授权是进行渗透测试的必要条件。用户应对渗透测试所有细节和风险的知晓、所有过程都在用户的控制下进行。
火龙果整理 uml.org.cn 1.6渗透测试方法 1.6.1测试方法分类
根据渗透目标分类: 主机操作系统渗透:
对Windows、Solaris、AIX、Linux、SCO、SGI等操作系统进行渗透测试。 数据库系统渗透:
对MS-SQL、Oracle、MySQL、Informix、Sybase、DB2等数据库应用系统进行渗透测试。 应用系统渗透:
对渗透目标提供的各种应用,如ASP、CGI、JSP、PHP等组成的www.xiexiebang.com 信息收集的方法包括主机网络扫描、操作类型判别、应用判别、账号扫描、配置判别等等。模拟入侵攻击常用的工具包括Nmap、Nessus、X-Scan等,操作系统中内置的许多工具(例如telnet)也可以成为非常有效的模拟攻击入侵武器。
1.6.3端口扫描
通过对目标地址的TCP/UDP端口扫描,确定其所开放的服务的数量和类型,这是所有渗透测试的基础。通过端口扫描,可以基本确定一个系统的基本信息,结合测试人员的经验可以确定其可能存在,以及被利用的安全弱点,为进行深层次的渗透提供依据。
1.6.4权限提升
通过收集信息和分析,存在两种可能性,其一是目标系统存在重大弱点:测试人员可以直接控制目标系统,然后直接调查目标系统中的弱点分布、原因,形成最终的测试报告;其二是目标系统没有远程重大弱点,但是可以获得远程普通权限,这时测试人员可以通过该普通权限进一步收集目标系统信息。接下来,尽最大努力获取本地权限,收集本地资料信息,寻求本地权限升级的机会。这些不停的信息收集分析、权限升级的结果将构成此次项目整个渗透测试过程的输出。
1.6.5不同网段/Vlan之间的渗透
这种渗透方式是从某内/外部网段,尝试对另一网段/Vlan进行渗透。这类测试通常可能用到的技术包括:对网络设备和无线设备的远程攻击;对防火墙的远程攻击或规则探测、规避尝试。信息的收集和分析伴随着每一个渗透测试步骤,每一个步骤又有三个组成部分:操作、响应和结果分析。
1.6.6溢出测试
当测试人员无法直接利用帐户口令登陆系统时,也会采用系统溢出的方法直接获得系统控制权限,此方法有时会导致系统死机或从新启动,但不会导致系统数据丢失,如出现死机等故障,只要将系统从新启动并开启原有服务即可。一般情况下,如果未授权,将不会进行此项测试!
火龙果整理 uml.org.cn 1.6.7SQL注入攻击
SQL注入常见于应用了SQL 数据库后端的网站服务器,入侵者通过提交某些特殊SQL语句,最终可能获取、篡改、控制网站服务器端数据库中的内容。此类漏洞是入侵者最常用的入侵方式之一。
1.6.8检测页面隐藏字段
网站应用系统常采用隐藏字段存储信息。许多基于网站的电子商务应用程序用隐藏字段来存储商品价格、用户名、密码等敏感内容。恶意用户通过操作隐藏字段内容达到恶意交易和窃取信息等行为,是一种非常危险的漏洞。
1.6.9跨站攻击
入侵者可以借助网站来攻击访问此网站的终端用户,来获得用户口令或使用站点挂马来控制客户端。
1.6.10WEB应用测试
Web脚本及应用测试专门针对Web及数据库服务器进行。根据最新的统计,脚本安全弱点为当前Web系统,尤其是存在动态内容的Web系统比较严重的安全弱点之一。利用脚本相关弱点轻则可以获取系统其他目录的访问权限,重则将有可能取得系统的控制权限。因此对于含有动态页面的Web、数据库等系统,Web脚本及应用测试将是必不可少的一个环节。在Web脚本及应用测试中,可能需要检查的部份包括:
检查应用系统架构,防止用户绕过系统直接修改数据库; 检查身份认证模块,用以防止非法用户绕过身份认证; 检查数据库接口模块,用以防止用户获取系统权限; 检查文件接口模块,防止用户获取系统文件; 检查其他安全威胁;
火龙果整理 uml.org.cn 1.6.11代码审查
对受测业务系统站点进行安全代码审查的目的是要识别出会导致安全问题和事故的不安全编码技术和漏洞。这项工作虽然可能很耗时,但是必须进行,代码审查测试工作包括如下工作但不仅限于此:
审查代码中的XSS脚本漏洞; 审查代码中的 SQL 注入漏洞; 审查代码中的潜在缓冲区溢出;
审查识别允许恶意用户启动攻击的不良代码技术; 其他软件编写错误及漏洞的寻找及审查。
1.6.12第三方软件误配置
第三方软件的错误设置可能导致入侵者利用该漏洞构造不同类型的入侵攻击。
1.6.13Cookie利用
网站应用系统常使用cookies 机制在客户端主机上保存某些信息,例如用户ID、口令、时戳等。入侵者可能通过篡改cookies 内容,获取用户的账号,导致严重的后果。
1.6.14后门程序检查
系统开发过程中遗留的后门和调试选项可能被入侵者所利用,导致入侵者轻易地从捷径实施攻击。
1.6.15VOIP测试
在对受测网络进行渗透测试时,将会进行VoIP业务的安全测试,所有影响数据网络的攻击都可能会影响到VoIP网络,如病毒、垃圾邮件、非法侵入、DoS、劫持电话、偷听、数据嗅探等,因此,首先会对VoIP网络进行安全测试,接着对VoIP服务器进行测试,这些服务器常常是恶意攻击者的靶子,因为它们是任何一个VoIP网络的心脏。服务器存在的致命弱点包括其操作系统、服务及它所支持的应用软件,可能都会存在安全漏洞。要将黑客对服务
火龙果整理 uml.org.cn 器的攻击降至最小程度,就要对VoIP网络及其服务器、软终端进行全面的安全测试,以查找安全隐患,协助用户技术人员修补这些漏洞。
1.6.16其他测试
在渗透测试中还需要借助暴力破解、网络嗅探等其他方法,目的也是为获取用户名及密码。
1.7常用渗透测试工具
可能使用到的命令和工具包括: 命令:
Google搜索和攻击;
DNS工具:例如:Whois,nslookup, DIG等等;
各种测试命令;
在线网络数据库:Ripe, Afrinic, APNIC, ARIN LACNIC 工具:
主流商业扫描器:ISS Internet Scanner、NEUUS、Core Impact、NSfocus极光扫描器. 黑客常用端口扫描器:如:NMAP、Superscan„ SNMP Sweepers(Solarwinds)„
Website mirror tools(HTTrack, teleport pro)„
无线网络扫描工具(Netstumbler, Kissmet, Wellenreiter, Airsnort) WEB漏扫工具AppScan,wvs, WebInspect, Nstalker、nikto、google hack 溢出工具:Metasploit 破解工具:John the Ripper、THC Hydra、L0phtcrack、Aircrack、Airsnort、Pwdump Sniffer工具:Wireshark、Kismet、Tcpdump、Cain and Abel Ettercap、NetStumbler
火龙果整理 uml.org.cn 1.7.1应用层工具
Acunetix Web Vulnerability Scanner(漏洞扫描工具)
这是一款网络漏洞扫描工具。通过网络爬虫测试网站安全,检测流行的攻击 ,如跨站点脚本、sql 注入等。在被入侵者攻击前扫描购物车、表格、安全区域和其他Web应用程序。
1.7.2系统层工具
SSS6.0扫描器汉化版
Shadow Security Scanner v6.67.58,02月09日发布,俄罗斯安全界非常专业的安全漏洞扫描软件,具有安全扫描,口令检查,操作系统检查等强大功能,支持在线升级。
ISS漏洞扫描器
ISS(国际互联网安全系统公司)是在信息安全领域中专门致力于反黑客攻击的专业公司。目前它的主要产品有四大系列:Real Secure(实时入侵监测器)、Internet Scanner(互联网扫描器)、System Scanner(系统扫描器)、Database Scanner(数据库扫描器)。其中Real Secure和Internet Scanner是其拳头产品,Database Scanner是其独有的专用数据库防黑安全产品。
nmap端口扫描工具
nmap是目前为止最广为使用的国外端口扫描工具之一。它可以很容易的安装到Windows和unix操作系统中,包括mac os x(通过configure、make、make install等命令)然后对主机和网络设备进行端口扫描,以寻找目标主机的漏洞。
1.7.3网络层工具
SolarWinds Engineer’s Edition 是一套非常全面的网络工具库,包括了网络恢复、错误监控、性能监控和管理工具等。除了包含Professional PLUS Edition中所有的工具外,Engineer’s Edition还增加了新的Swich Port Mapper工具,它可以switch上自动执行Layer 2和Layer 3恢复。此工程师版包含了Solarwinds MIB浏览器和网络性能监控器(Network Performance Monitor),以及其他附加网络管理工具。
火龙果整理 uml.org.cn 1.7.4其他方法和工具
Whois命令——是一种Internet目录服务,whois提供了在Internet上一台主机或者某个域的所有者信息,如管理员的姓名、地址、电话号码等,这些信息通常保存在Internlc的数据库内。一旦得到了Whois记录,从查询的结果还可以得知primary和secondary域名服务器的信息。
Nslookup——一种DNS的排错工具,可以使用nslookup命令把你的主机伪装成secondaryDNS服务器,如果成功便可以要求从主DNS服务器进行区域传送,如果传送成功,可以获得大量有用的信息。
Traceroute——用于路由追踪,判断从你的主机到目标主机经过了哪些路由器、跳计数、响应时间、路由器通断情况等,大多数的操作系统自带了自己版本的traceroute程序。
端口扫描程序——专用的对网络端口进行扫描的工具,定义好IP地址范围和端口后就可以开始扫描。
网络侦查和服务器侦查程序——通过该种程序可以侦查出网络上已经开启的端口。如PingPro的工作是是通过监控远程工程调用服务。
以及测试人员自行编译的渗透测试工具等等。
1.8渗透测试风险规避措施
渗透测试过程中可能对业务产生影响,可以采取以下措施来减小风险: 在渗透测试中不使用含有拒绝服务的测试策略。 渗透测试时间尽量安排在业务量不大的时段或者晚上。
在渗透测试过程中如果出现被评估系统没有响应的情况,应当立即停止测试工作,与用户相关人员一起分析情况,在确定原因后,并待正确恢复系统,采取必要的预防措施(比如调整测试策略等)之后,才可以继续进行。
测试人员会与用户网站系统和安全管理人员保持良好沟通。随时协商解决出现的各种难题。
测试方自控:由渗透测试方对本次测透测试过程中的三方面数据进行完整记录:操作、响应、分析,最终形成完整有效的渗透测试报告提交给用户。
火龙果整理 uml.org.cn
一、基于网站的渗透
1、名称:Acunetix Web Vulnerability Scanner 6(有收费和免费两种版本)
功能:网站漏洞扫描器。
平台:Windows
2、名称:IBM Rational AppScan 7.8
功能:网站漏洞扫描器。
平台:Windows
3、名称:Jsky
功能:网站漏洞扫描器。
平台:Windows
4、名称:DTools
功能:阿D的多功能入侵工具,带扫描、植马等。
平台:Windows
5、名称:wepoff
功能:网站漏洞扫描器。
平台:Linux / Unix
6、名称:Domain3.6
功能:网站旁注工具。
平台:Windows
7、名称:casi
功能:PHP+MYSQL注射工具。
平台:Windows
8、名称:HP WebInspect 7.7
功能:网站漏洞扫描器。
平台:Windows
9、名称:php_bug_scanner
功能:PHP程序漏洞扫描器。
平台:Windows
10、名称:多线程网站后台扫描工具
功能:扫描网站后台管理登陆地址。
平台:Windows
11、名称:NStalker
功能:网站爬虫。
平台:Windows
12、名称:挖掘鸡 v6.5
功能:挖掘搜索引擎关键字。
平台:Windows
13、名称:cookie注入工具
功能:cookies注入辅助工具。
平台:Windows
火龙果整理 uml.org.cn
14、名称:httpup
功能:通用HTTP上传程序。
平台:Windows
二、基于系统的渗透
1、名称:nmap
功能:系统端口扫描器。
平台:Windows
2、名称:Nessus
功能:系统漏洞扫描器。
平台:Windows
3、名称:X-Scan
功能:系统漏洞扫描器。
平台:Windows
4、名称:SuperScan
功能:系统端口扫描器。
平台:Windows
5、名称:SSS
功能:SSS扫描器。
平台:Windows
6、名称:NetCat
功能:瑞士军刀。
平台:Windows
7、名称:Apache Tomcat Crack
功能:Tomcat弱口令扫描器。
平台:Windows
8、名称:iisputscanner 功能:中间件扫描器。平台:Windows
9、名称:Metasploit framework
功能:渗透辅助工具。
平台:Windows
10、名称:Encoder 功能:编码转换。平台:Windows
11、名称:awstats 功能:日志分析工具。平台:Windows
12、名称:logclear 功能:日志清除工具。平台:Windows
13、名称:黑刀超级字典生成器
功能:密码生成。
火龙果整理 uml.org.cn平台:Windows
14、名称:溯雪
功能:破解网站、邮箱、BBS登陆密码。平台:Windows
15、名称:MD5crack 功能:MD5密码破解工具包。平台:Windows
16、名称:webbench 功能:压力测试工具,可用于DDOS。平台:Linux/Unix
17、名称:netstumbler 功能:无线网络攻击工具。平台:Windows
18、名称:wifizoo 功能:无线网络攻击工具。平台:Linux/Unix
19、名称:arpsniffer 功能:局域网嗅探抓包。平台:Windows 20、名称:ethereal 功能:局域网嗅探抓包。平台:Windows
21、名称:SnifferPro 功能:局域网嗅探抓包。平台:Windows
22、名称:WinSock Expert 功能:网站上传抓包。平台:Windows
23、名称:logclear 功能:日志清除工具。平台:Windows
24、名称:ByShell、DG远控、PcShare、TeamViewer 功能:远程控制工具。平台:Windows
三、基于数据库的渗透
1、名称:DSQLTools
功能:啊D 的SQL注入工具。
平台:Windows
2、名称:nbsi3.0
功能:MSSQL注入工具。
火龙果整理 uml.org.cn
平台:Windows
3、名称:mysqlweak
功能:Mysql数据库弱口令扫描器。
平台:Windows
4、名称:pangolin
功能:数据库注入工具。
平台:Windows
5、名称:db2utils
功能:DB2漏洞利用工具。
平台:Linux / Unix
6、名称:oscanner
功能:Oracle扫描工具。
平台:Windows
7、名称:oracle_checkpwd_big
功能:Oracle弱口令猜解工具。
平台:Windows
第二篇:渗透测试总结(范文)
XSS、SQL注入、文件上传、弱口令、备份信息泄露 XSS 分析漏洞成因
构造payload NetCat监听端口
nc.exe-lnvp 8888 利用cookie登录 获取权限
弱口令
Burpsuit拦截数据包 Intruder模块 标记密码 加载字典 开始爆破 查看返回值
SQL注入
抓包 Decoder as url 保存post请求 Sqlmap.py
sqlmap.py-r C:Joomla.txt-p filter[category_id] SQLmap OS-shell
sqlmap.exe-r C:Joomla.txt-p filter[category_id]--os-shell 获取交互式shell
第三篇:Web网站渗透测试论文
---------------
装 订 线---------------
XXX职业技术学院 毕业设计(论文)
题目: Web网站渗透测试技术研究
系
(院)信息系 专业班级 计算机网络 学
号 1234567890 学生姓名 XXX 校内导师 XXX 职
称 讲师 企业导师 XXX 职
称 工程师 企业导师
XXX
职
称
工程师
摘 要: Web网站渗透测试技术研究
随着网络技术的发展和应用领域的扩张,网络安全问题越来越重要。相对于传统的系统安全,Web网站的安全得到了越来越多的重视。首先,越来越多的网络业务不再用专门的客户机/服务器模式开发,而是运行在Web网站上用浏览器统一访问;其次,和比较成熟的操作系统安全技术比较,Web网站的安全防护技术还不够完善,当前黑客也把大部分注意力集中在Web渗透技术的发展上,使Web网站安全总体上面临相当严峻的局面。
为了确保Web网站的安全,需要采用各种防护措施。在各种防护措施中,当前最有效的措施是先自己模拟黑客攻击,对需要评估的网站进行Web渗透测试,找到各种安全漏洞后再针对性进行修补。
本文在对Web网站渗透测试技术进行描述的基础上,配置了一个实验用Web网站,然后对此目标网站进行了各种黑客渗透攻击测试,找出需要修补的安全漏洞,从而加深了对Web安全攻防的理解,有利于以后各种实际的网络安全防护工作。
关键词:
网络安全;Web网站;渗透测试
Web site penetration testing technology research
Abstract:
With the expansion of the network technology development and applications, network security issues become increasingly important.Compared with the traditional system security, Web security has got more and more attention.First, more and more network applications no longer develop with specialized client / server model, but run on the Web site and accessed by browser;Secondly, operating system security technology is relatively safe, but secure Web site protection technology is still not perfect, so the most of the current hackers’ attention focused on the development of Web penetration technology, the Web site is facing serious security situation in general.To ensure the security Web site, you need to use a variety of protective measures.In a variety of protective measures, the most effective measure is to own hacking simulation, the need to assess the Web site penetration testing, to find a variety of security vulnerabilities before specific repair.Based on the Web site penetration testing techniques described, the configuration of an experimental Web site, then this target site penetration of various hacker attack test, identify areas that need patching security holes, thereby deepening of Web security offensive understanding, there is conducive to future practical network security protection work.Keywords:
Network Security, Web sites, penetration testing
目录
第一章 概述................................................................................................1
1.1 网络安全概述..........................................................................................1 1.2 Web网站面临的威胁...............................................................................1 1.3 Web渗透测试概述...................................................................................2
第二章 Web渗透测试方案设计...................................................................4
2.1 渗透测试网站创建..................................................................................4 2.2 渗透测试工具选择..................................................................................4 2.3渗透测试方法...........................................................................................5
第三章 Web渗透测试过程...........................................................................6
3.1 扫描测试Web网站..................................................................................6 3.2 寻找Web安全漏洞..................................................................................7 3.3 SQL注入攻击测试...................................................................................9 3.4 XSS跨站攻击测试.................................................................................13 3.5 网马上传攻击测试................................................................................17
第四章 Web网站防护.................................................................................23
4.1 网站代码修复........................................................................................23 4.2 其它防护措施........................................................................................24
总 结.........................................................................................................25 参考文献.....................................................................................................25
第一章 概述
1.1 网络安全概述
随着网络技术的发展,网络已经越来越多地渗透到当前社会生活的方方面面,网上电子商务、电子政务、电子金融等业务日益普及,网络上的敏感数据也越来越多,自然对网络安全提出了更高的要求。
根据一般的定义,网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。要做到这一点,必须保证网络系统软件、应用软件、数据库系统具有一定的安全保护功能,并保证网络部件,如终端、调制解调器、数据链路的功能仅仅能被那些被授权的人访问。
在现实世界中,由于网络相关的各种软硬件安装、配置、管理上面基本不可能做到没有任何缺陷和漏洞,所以可以说不存在绝对的网络安全。尤其在当下网络技术逐渐普及扩散的情境下,防范各种形式的黑客攻击是网络资源管理者必须严肃考虑的问题。
根据黑客攻击的类型,大致可以分为两种,一种是直接针对操作系统本身或应用软件的安全漏洞进行的攻击,传统的注入端口扫描、弱口令爆破、缓冲器溢出都属于这种类型的攻击,如果攻击成功往往可以直接远程控制目标系统,因此一旦出问题危害极大,但针对这种攻击的防范技术也比较成熟,采用最新的安全操作系统、强大的防火墙和IDS入侵检测系统可以将绝大部分入侵企图拒之门外。另外一种就是针对动态Web网站进行的攻击,它不像针对系统的攻击那样直接,成功后能在目标系统上进行的操作有限,往往还需要进行提权等后续工作,但目前Web网站本身设计上的安全防护水平普遍不高,针对Web网站的防范措施目前也还不够成熟,所以有安全问题的Web网站非常多,Web网站的攻防也是现在安全技术领域的研究热点。
1.2 Web网站面临的威胁
传统上,网络应用业务采用C/S(客户机和服务器)模式,即开发出安装在普通客户计算机上的递交申请业务模块和安装在高性能服务器上的响应请求业务模块,这样做的好处是性能高,响应速度快,但缺点是需要为每个业务专门开发不同的服务端和客户端,开发和学习的成本也高,所以现在的趋势是将所有的服务模块都放到Web网站上,而客户机统一使用浏览器去访问Web网站去实现业务功能。
用Web网站形式开发网络业务有不少优点,首先是客户端统一为浏览器、降低了这方面的学习成本,另一方面,Web网站的主流开发语言(ASP、PHP、JSP等)是动态脚本语
言,比起用C/C++、Java等语言开发C/S程序,难度有所降低,有利于快速开发出所需的项目。但是从安全方面考虑,由于Web网站牵涉到的一些网络协议先天的不足,以及由于网络技术发展太快,网站复杂程度随着需求扩展不断膨胀,而网站开发程序员的水平和安全意识往往没有跟上,导致Web网站非常容易出现各种安全漏洞,使黑客能够对其进行各种形式的攻击,常见的Web安全漏洞主要有SQL注入和XSS跨站攻击等。SQL注入
SQL注入(SQL injection)是发生在Web应用程序和后台数据库之间的一种安全漏洞攻击,它的基本原理是:攻击者精心构建一个包含了SQL指令的输入数据,然后作为参数传递给应用程序,在应用程序没有对输入数据做足够的检查的情况下,数据库服务器就会被欺骗,将本来只能作为普通数据的输入当成了SQL指令并执行。
数据库是动态网站的核心,包含了很多网站相关的敏感数据,例如管理员的账号和密码等,所以一旦数据库的信息被SQL注入非法查询,这些敏感信息就会被泄露,导致严重后果。此外,SQL注入还可能被用于网页篡改、网页挂马,更为严重的是,有些数据库管理系统支持SQL指令调用一些操作系统功能模块,一旦被SQL注入攻击甚至存在服务器被远程控制安装后门的风险。XSS跨站攻击
简单地说,XSS也是由于Web应用程序对用户的输入过滤不严而产生,攻击者利用XSS漏洞可以将恶意的脚本代码(主要包括html代码和JavaScript脚本)注入到网页中,当其他用户浏览这些网页时,就会触发其中的恶意脚本代码,对受害者进行诸如Cookie信息窃取、会话劫持、网络钓鱼等各种攻击。
与主动攻击Web服务器端的SQL注入攻击不同,XSS攻击发生在浏览器客户端,对服务器一般没有直接危害,而且总体上属于等待对方上钩的被动攻击,因此XSS这种安全漏洞虽很早就被发现,其危害性却曾经受到普遍忽视,但随着网络攻击者挖掘出了原来越多的XSS漏洞利用方式,加上Web2.0的流行、Ajax等技术的普及,使得黑客有了更多机会发动XSS攻击,导致近年来XSS攻击的安全事件层出不穷,对XSS攻防方面研究的重视程度明显提高。
当然,Web网站面临的安全威胁还有很多,并且随着网络技术和网络业务的发展而不断更新,例如CSRF跨站请求伪造、界面操作劫持等。
1.3 Web渗透测试概述
由于各种安全漏洞,因特网上的Web网站面临黑客攻击的风险,因此必须采取措施进行防护工作。传统防火墙因为必须放行Web服务的端口(一般是80端口),所以对SQL注 2
入、XSS跨站攻击之类入侵手段没有防护效果,现在也出现了一些专门用于保护Web网站的安全设备,例如WAF防火墙、安全狗等,但这些设备并不是万能的,往往容易被高水平的入侵者绕过。最有效的措施还是进行Web渗透测试。
渗透测试时安全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试能够直观的让管理人员知道自己网络所面临的问题。
Web渗透测试主要是对Web应用程序和相应的软硬件设备配置的安全性进行测试。进行Web渗透测试的安全人员必须遵循一定的渗透测试准则,不能对被测系统进行破坏活动。Web安全渗透测试一般是经过客户授权的,采取可控制、非控制性质的方法和手段发现目标服务器、Web应用程序和网络配置中存在的弱点。
通过Web渗透测试后,即可有针对性地对Web网站上的安全漏洞进行修补,最大程度地加固系统,确保安全。
第二章 Web渗透测试方案设计
2.1 渗透测试网站创建
为了研究Web渗透测试技术,我们需要一个测试用的Web网站,由于法律的限制,我们不能直接去攻击互联网上的Web网站,所以需要自己创建一个实验测试用Web网站,这样不但合法,而且还有利于测试完成后做修补加固和代码审核工作。
测试Web网站可以创建在本地,也可以创建到自己购买的虚拟空间或云主机上,为了方便起见,这里选择在云平台上的一台Windows 2003虚拟机系统上创建Web网站。
ASP、ASP.NET、PHP和JSP网站需要不同的环境,包括选用Apache、IIS、Nginx或者Weblogic中哪个Web服务器,数据库也有Access、Microsoft SQL Server、MySQL以及Oracle等多种选择。至于网站的源代码,可以自己开发,但一般更常见是到互联网上去搜寻开源的Web项目下载,例如中国站长网等,可以根据需求自己对网站源代码进行适当的裁剪修改,也更好达到渗透测试目的。
如图2-1所示,这里选用了IIS+ASP方案创建了一个测试用Web网站。
图2-1 创建Web网站
2.2 渗透测试工具选择
对Web网站进行渗透测试的工作是在一台能访问Web网站的攻击机上实施的,这些测试工作有些可以直接用手工操作,不过如果有适当的工具帮助,往往可以大幅度地提高渗 4
透测试的成功率和效率,因此选择一套渗透测试用的工具软件是必备的工作,这些工具一般包括端口扫描器、网站目录扫描器、网站后台扫描器、网站漏洞扫描器、SQL注入工具、XSS利用工具、转码工具、加解密工具等等。
如图2-2所示,在本地攻击机上安装了一些常用的渗透测试工具。
图2-2 渗透测试工具
2.3渗透测试方法
准备好测试用Web网站和渗透测试工具后,即可在攻击机上开始进行Web渗透测试工作,方法是模拟真正黑客的入侵过程,综合利用各种工具和手段,获取目标Web网站甚至网站所在服务器上的权限,从而挖掘出网站的各种安全漏洞,为后面的安全加固提供依据。当然,这需要很高的技术水平和熟练的操作,没有多年的经验积累是很难在各种情景下都能完成任务的,在下一章,我们就以一个比较简单的,漏洞比较明显的Web网站为例演示一下比较典型的Web渗透测试过程。
第三章 Web渗透测试过程
3.1 扫描测试Web网站
如图3-1所示,渗透测试首先应该先用Nmap之类的端口扫描工具扫描一下目标网站所在的服务器,了解开放的端口服务,目标可能的操作系统类型等信息。这里可以看到,目标服务器的80号端口是开放的,所以Web服务应该是正常的。
图3-1 端口扫描
然后用浏览器打开网站验证,如图3-2所示:
图3-2 Web网站浏览
3.2 寻找Web安全漏洞
我们可以用一些自动化的网站扫描工具去检测网站的常见漏洞,也可以用纯手工的方式进行检测,如图3-3和3-4所示,在网页URL后面添加“and 1=1”和“and 1=2”,发现网站返回的情况不同!说明这里存在着SQL注入漏洞。
图3-3 SQL注入测试
图3-4 SQL注入测试
如图3-5所示,在地址栏后面添加“ “> ”,弹窗窗口出现,证明这里存在反射型XSS漏洞。
图3-5 反射型XSS 如图3-
6、3-7和3-8所示,在留言板里发表包含“ ”的帖子内容,弹窗窗口出现,证明这里存在存储型XSS漏洞。
图3-6 留言板
图3-7 XSS留言
图3-8 存储型XSS 3.3 SQL注入攻击测试
在上一节已经找到Web网站的SQL注入漏洞的基础上,我们利用此漏洞去猜解网站后台数据库中的账号和密码,既可以用工具也可以用手工方式,这里为方便起见选用注入工具,如图3-9和3-10所示,很快猜解出账号和密码。
图3-9 工具扫描SQL注入漏洞
图3-10 注入找到后台账号密码
从密码的形式可以看出不是明文而是原始密码的MD5散列码,MD5是单向散列函数,本来是不能破解的,不过如果密码原文比较简单,也可能用暴力破解的方式找到原密码,如图3-
11、3-12和3-13所示。
图3-11 破解MD5
图3-12 破解成功
图3-13 破解出密码原文
有了账号和密码后,扫描网站的管理后台地址,如图3-14所示。
图3-14 扫描出管理后台
如图3-15和3-16所示,用前面注入猜解和破解获取的账号和密码登录,成功进入Web网站的管理后台界面。
图3-15 登录管理后台
图3-16 进入管理后台
3.4 XSS跨站攻击测试
前面已经通过手工方式探测到网站存在XSS漏洞,XSS漏洞属于一种比较被动的安全漏洞,不能用来直接攻击服务器,而是一部用来攻击其他客户端,具体利用的方法和形式很多,下面是利用XSS漏洞窃取管理员cookie的步骤。
图3-17 XSS利用平台网站
如图3-17所示,XSS漏洞攻击者自己创建一个具有XSS漏洞利用功能的网站,然后为自己创建一个项目,生成具有窃取cookie功能的代码,如图3-18所示:
图3-18 XSS利用代码
现在攻击者可以设法利用各种欺骗手段让其他Web网站用户执行XSS代码,这里利用存储型XSS漏洞,由攻击者在留言板上发表包含XSS利用代码的内容插入网站数据库,如图3-19所示。
图3-19 将代码插入目标Web网站
如图3-20所示,一旦Web网站的管理员在登录状态下查看了留言板,XSS利用代码就 14
在后台隐蔽执行了。
图3-20 管理员被攻击
此时攻击者回到XSS网站,会发现自己的项目中返回了数据,如图3-21所示。
图3-21 攻击者收到cookie
如图3-22所示,攻击者窃取到了Web网站管理员的cookie信息。
图3-22 窃取到的cookie值
如图3-23和3-24所示,有了窃取到的cookie信息,再借助一些cookie修改工具,可以不输入密码直接进入管理后台界面。
图3-23 cookie修改工具
图3-24 窃取cookie进入管理界面
3.5 网马上传攻击测试
前面利用SQL注入漏洞拿到管理账户和密码后可以非法进入后台管理界面,但到这来一般并不能做多少事,用后台权限篡改新闻挂黑页是很无聊的事情,常见的做法是想办法将网页木马上传到网站获取Webshell得到网站所在服务器的某些权限,然后有需要和可能再设法提权。
如图3-25所示,在Web网站管理后台里找到一个能够上传自己图片的地方,然后选择上传文件,如图3-26和3-27所示,直接上传asp格式的网马是通不过检查的,所以上传一个伪装成图片文件的小马,结果成功上传,并被自动重命名,如图3-28和3-29所示。
图3-25 上传图片
图3-26 选择文件
图3-27 上传网马图片
图3-28 上传成功
图3-29 上传文件位置和名称
现在网马内容上传上去了,但文件后缀名不对,所以不能访问执行,所以需要再利用类似如图3-30所示的备份漏洞,将上传的文件的后缀名成功改回asp。
图3-30 备份改名
现在可以直接访问上传成功的网马,如图3-31所示是小马的效果,利用它在上传一个功能齐全的大马,如图3-32和3-33所示。
图3-31 访问网马
图3-32 上传大马
图3-33 访问大马
现在可以直接访问大马网页文件,如图3-34所示,登录成功后即得到类似图3-35所示的Webshell界面,根据权限可以对Web网站所在的服务器进行操作,如果有其他系统和软件漏洞,还可以设法提权,获取对服务器的完全控制权。
图3-34 网马登录
图3-35 获取Webshell
第四章 Web网站防护
4.1 网站代码修复
经过Web渗透测试,我们发现了网站的安全漏洞及其严重后果,下一步自然就是部署安全防护措施,堵塞漏洞。
对Web网站后台代码进行阅读审核后,可知正是因为网站查询数据库的SQL语句缺少必要的过滤措施才导致了SQL注入、XSS等安全漏洞。修补漏洞的最好办法是用安全编码方式彻底重写所有相关代码,如果没有这个条件,添加一些过滤代码也是比较好的办法,例如图4-1所示,在数据库连接文档中添加了对用户提交值中非法参数的检测。
图4-1 过滤代码
添加过滤代码后,黑客如果再企图对Web网站进行诸如SQL注入之类的攻击,就会被拦截而归于失败,如图4-2所示。
图4-2 SQL注入被拦截
需要注意的是,黑名单式的过滤代码并不是万能的,往往会被更高水平的黑客攻击绕过,所以还应根据攻防技术的发展及时更新,并结合其他安全防范措施。
4.2 其它防护措施
因为现在的Web网站功能越来越多,也越来越复杂,相应的黑客攻击技术也在不断发展,所以往往不是单一的安全防护措施就能有效抵御各种渗透攻击,而需要综合采用各种措施,一方面尽可能将所有的安全漏洞堵住,另一方面可以争取做到即使黑客攻破了某个安全措施,也会被其他安全措施拦截,将损失降低到最小。
目前比较常用的Web安全防范措施有:尽量选用高版本的操作系统Web服务器,设置高强度的密码,给网站目录设置最小的必要权限,加装Web防火墙和杀毒软件监控网页木马等。
最后需要指出,Web渗透和防护技术还处在快速发展阶段,所以没有一劳永逸的安全,必须不断学习,与时俱进。
总 结
网络安全是当前的一个技术研究热点,Web安全又是网络安全中的一个核心问题。Web渗透测试则是强化Web网站安全的重要技术手段,它是在获得授权的情况下,模拟真实的黑客攻击手段对目标Web站点进行入侵测试,因此能够最大程度挖掘出Web网站的安全漏洞,为Web安全防护提供有效依据。
本文是在真实网络环境里自己搭建了一个Web网站,然后自己对其进行渗透测试,研究Web安全相关攻防技术。限于水平,创建的Web网站和攻防所用的技术都比较简单,没有涉及当前最新的Web网站漏洞测试,但仍然比较完整地展示了Web网站渗透测试和防护的过程,为以后进一步学习和工作打下良好基础。
参考文献
[1] 陈小兵,范渊,孙立伟.Web渗透技术及实战案例解析 [M].北京:电子工业出版社,2012.4 [2] 王文君,李建蒙.Web应用安全威胁与防治 [M].北京:电子工业出版社,2013.1 [3] 吴翰清.白帽子讲Web安全 [M].北京:电子工业出版社,2012.3 [4] 鲍洪生.信息安全技术教程 [M].北京:电子工程出版社,2014.3 25
第四篇:网络安全与渗透测试训练营
《网络安全与渗透测试训练营》试验指导
实验环境要求
1,Windows操作系统,推荐Windows 7 32位或者64位 2,至少有32GB空闲磁盘空间
实验网络搭建方式1(NAT网络)1,安装Virtual Box虚拟机管理软件
2,启动Virtual Box的虚拟机管理器,点击“管理 > 全局设定…”调出如下对话框,选择“网络 > NAT网络”页,如果列表为空,则点击右侧的+号图标,让列表中至少存在一个虚拟网络。
3,点击“管理 > 导入虚拟机…”,选择实验材料中的meta.ova文件,导入虚拟机。再选择kali2016.ova导入Kali虚拟机。
4,导入成功后,选择Meta虚拟机,点击设置按钮,切换到网络页面,将网络选项改为下图所示的Host only方式,并选择上面创建的虚拟网卡。
5,选择Kali2016虚拟机,重复上面一步设置网路。
实验网络搭建方式2(Host-Only网络)1.安装Virtual Box虚拟机管理软件
2.启动Virtual Box的虚拟机管理器,点击“管理 > 全局设定…”调出如下对话框,选择“网络 > Host only”页,然后点击右侧的+号图标,让列表中至少存在一个虚拟网卡。
3.点击“管理 > 导入虚拟机…”,选择实验材料中的meta.ova文件,导入虚拟机。再选择kali2016.ova导入Kali虚拟机。
4.导入成功后,选择Meta虚拟机,点击设置按钮,切换到网络页面,将网络选项改为下图所示的Host only方式,并选择上面创建的虚拟网卡。
5.选择Kali2016虚拟机,重复上面一步。
试验1:理解MSF工作过程
1,启动Kali2016虚拟机和Meta虚拟机
2,在Meta虚拟机中用msfadmin/msfadmin登陆 执行ifconfig,观察和记录IP地址
3,在Kali虚拟机中使用如下用户名和密码登陆: 用户名:root 密码:advdbg 6,在Kali虚拟机执行msfconsole启动MSF控制台 7,在MSF控制台中执行如下命令:
msf > use exploit/unix/irc/unreal_ircd_3281_backdoor msf exploit(unreal_ircd_3281_backdoor)> set RHOST <第2步看到的IP地址> msf exploit(unreal_ircd_3281_backdoor)> exploit
8,等待exploit命令执行成功后,在简单shell中,尝试执行linux命令:
> ls > ps > echo “Your machine is mine now” > /var/www/abc.txt
9,在Meta虚拟机中执行如下命令观察上面产生的文件:
# ls /var/www # cat /var/www/abc.txt # sudo /var/www/abc.txt 10,不必关闭虚拟机,下一个试验还需要。
试验2:使用Armitage颠覆Linux服务器
1,在Kali桌面的左侧工具条上点击Armitage的图标启动Armitage
2,当下面的连接对话框出现后,保持所有默认内容,点击Connect按钮,让其与MSF后台服务进程自动建立连接。
3,如果出现下面的询问是否启动MSF的对话框,则点击Yes让Armitage自动启动MSF后台服务。
4,如果出现下面的对话框,表示启动MSF时链接数据库失败。解决的方法是安装提示,开启一个终端窗口(工具栏上有按钮),在其中执行service postgresql start,然后再重新启动Armitage。
5,Armitage的主界面出现后,选择”Hosts > Add Host…”调出增加主机对话框,输入Meta虚拟机的IP地址,然后点击确定后,Armitage的主机列表区域应该出现一个下新的图标。右击该图标,在右键菜单中选择Host > Set Label,给其设定个名字,叫Meta。6,选中Meta主机,然后在Armitage的主菜单中选择Attacks > Find Attack发起漏洞扫描。
7,等待扫描完成后,右键点击Meta主机图标,调出快捷菜单,选择Attack > irc >
8,观察Armitage执行攻击脚本的过程,等待其结束,如果出现如下界面,则表示成功颠覆了目标主机。
9,右键点击Meta主机图标,选择Shell 1 > Upload…选取一个本地文件后,Armitage会将其上传到被颠覆的主机。
10,右键点击Meta主机图标,选择Shell 1 > Interact,然后在shell窗口中执行常用的Linux命令。
11,关闭Armitage结束本实验。
试验3:使用Burp Suite的Intruder功能
1,启动Kali2016虚拟机,在左侧的工具条上点击Burp Suite(以下简称Burp)的图标,启动Burp。选择默认选项,进入Burp主界面。2,点击Proxy > Intercept,确认代理功能的拦截选项是打开的,即如下图所示Intercept is on.3,点击工具栏上的Firefox图标,启动Firefox浏览器,点击工具栏最右侧的Open menu按钮,调出Firefox的管理页面,选择Advanced > Network > Settings调出下图所示的Connection Settings对话框,然后按照下图内容设置启用代理选项。点击OK关闭对话框。
4,在浏览器地址栏中输入Meta虚拟机的IP地址,比如10.0.2.6/dvwa,访问上面的DVWA网站。此时会感觉浏览器异常缓慢,打不开网页,这是因为网络请求被Burp拦截住了,按下Alt + Tab键切换到Burp窗口,点击下图所示的Forward按钮,让其放行所拦截网络数据。可能需要点击多次才能看到浏览器打开网页。
5,点击上图中的Intercept is on按钮,使其变为Intercept is off,关闭拦截功能。
6,以admin为用户名,password为密码登陆DVWA网页,点击右侧菜单条的Security,将security level改为low,点击Submit
7,选择XSS reflected切换到下图所示的XSS页面,在文本编辑框中输入你的名字,点击Submit,了解刚页面的基本行为。
8,在文本编辑框中输入如下带有脚本的内容:aa,点击Submit,确认看到下图所示的对话框,说明该网站存在XSS漏洞。
9,按下Alt + Tab键切换到Burp界面,点击Target > Site map,然后在左侧的树形控件中浏览Burp记录的上网记录,找到上面访问xss_r页面的记录,点击右键,选择Seng to Intruder.10,选择Intruder > Positions页面,先点击Clear $按钮清除所有自动定义的变量,再选中下图中的raymond区域,然后点击Add $增加一个变量。
11,点击Payload切换到变量负载页,然后模仿下图输入一些负载项。其中一项包含有脚本内容。
12,点击上图右上角的Start attack按钮,让Burp自动使用上一步定义的负载对服务器发起“攻击”。待攻击结束后,在如下界面中检查结果。上面的列表是访问服务器的概括,每一行是一次访问。选择第3行,确认script内容确实被“回显”到浏览器。
13,仿照第3步,关闭Proxy选项(设置为No proxy),本实验结束。
试验4 理解SQL注入
1,启动Meta虚拟机和Kali虚拟机(如果已经启动,则不需要重启)。登陆到Meta虚拟机,使用ifconfig命令观察到它的IP地址。
2,在Kali虚拟机中启动Firefox浏览器,通过类似如下网址访问Meta中的DVWA网站。http://10.0.2.6/dvwa 3,使用admin/password登陆后,选择Security,将Security level设置为low。4,选择SQL Injection,在User ID表单中输入1,点击Submit。应该看到类似如下输出:
5,在表单中输入单引号’,并点击Submit,应该看到服务器端返回错误。这说明网站存在SQL注入风险。
6,在表单中输入单引号’ or 1=1--,并点击Submit,应该可以看到很多条数据库记录。7,在表单中输入单引号’ union select NULL--,并点击Submit,应该可以看到如下错误提示:
8,在表单中输入单引号’ union select NULL, NULL--,并点击Submit,应该可以看到类似如下输出,据此可以推测出服务端的select语句选择了两列。
9,输入' UNION SELECT NULL, table_name from INFORMATION_SCHEMA.tables--,并提交,应该可以成功列出数据库中的所有表名。
10,继续执行' UNION SELECT NULL, column_name from INFORMATION_SCHEMA.columns where table_name = 'users' – 可以列出users表中的所有列名
11,执行' UNION SELECT NULL, password from users--可以列出users表中所有用户密码字段的取值。
12,点击网页右下角的View Source按钮阅读服务端的源代码,理解漏洞的根源。
试验5 理解CSRF 1,启动Meta虚拟机和Kali虚拟机(如果已经启动,则不需要重启)。登陆到Meta虚拟机,使用ifconfig命令观察到它的IP地址。
2,在Kali虚拟机中启动Firefox浏览器,通过类似如下网址访问Meta中的Mutillidae网站。http://10.0.2.6/mutillidae 3,使用admin/adminpass登陆后,点击网页横条上Toggle Security链接,将Security level设置为0(Hosed)。
4,选择OWASP Top 10 > A5 Cross Site Request Forgery(CSRF)> Add to your blog.5,在表单的编辑区域随便输入些内容,然后点击Save Blog Entry提交博客。提交成功后,网页下面的博客列表中应该新增了一项。
6,在终端窗口执行gedit启动文本编辑器,打开Home目录下的trycsrf.html,将其中的服务器地址修改为Meta机器的IP地址(action=”http://...),然后保存。
7,点击桌面左侧工具条上的Files 按钮启动文件浏览器,找到Home目录下的trycsrf.html文件,双击打开。
8,待浏览器打开上述html后,将鼠标在文字上面轻微移动一下,这会触发页面上的mouse over事件,自动提交表单。
9,上面一步是模拟客户在登陆重要网站后,收到钓鱼邮件,点击其中链接,该链接会向重要网站发出请求,浏览器在发送这个请求时会自动带上cookie信息。等待浏览器自动做了一系列操作后,观察网页上的博客列表,会看到多了一条,这一条就是‘黑客’通过CSRF攻击加入的。
10,尝试将第6步中的IP地址略作修改,比如将10.0.2.6修改为10.0.2.06,然后保存和重复上述步骤,那么虽然也会自动提交产生新的blog,但是发表者却是anonymous,而不是admin,这是为什么呢?
试验6 使用w3af扫描网站的漏洞
1,点击桌面工具栏上的Apps按钮击图标启动w3af工具。,输入w3af搜索,找到下图所示的应用后点
2,参照下图,在Scan config页中,在左侧选择OWASP_TOP10,目标区输入Meta虚拟机的IP地址。
3,点击Start按钮开始扫描。
4,在Log页面中可以看到扫描的过程。5,结合讲解内容理解扫描结果。
第五篇:网络信息安全 渗透测试
网络信息安全--课程结业报告
重庆交通大学
课程结业报告
班 级:
学 号:
姓 名:
实验项目名称:
实验项目性质:
实验所属课程:
实验室(中心):
指 导 教 师 :
实验完成时间:
渗透测试
设计性
网络信息安全
软件实验室
2016 年 6 月 30 日
一、概述
网络渗透测试就是利用所有的手段进行测试,发现和挖掘系统中存在的漏洞,然后撰写渗透测试报告,将其提供给客户;客户根据渗透人员提供的渗透测试报告对系统存在漏洞和问题的地方进行修复和修补。渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。渗透测试与其它评估方法不同,通常的评估方法是根据已知信息资源或其它被评估对象,去发现所有相关的安全问题。渗透测试是根据已知可利用的安全漏洞,去发现是否存在相应的信息资源。
应网络信息安全课程结课要求,于2016年5月至2016年7月期间,在MobaXterm和kail平台进行了活动主机和活动端口扫描以及漏洞扫描,最后汇总得到了该分析报告。
二、实验目的
①熟悉kali平台和MobaXterm; ②熟悉信息收集的基本方法和技巧;
③了解kali平台下活动主机和端口扫描的方法; ④了解漏洞扫描的过程;
三、渗透测试范围
此次渗透测试的对象为:10.1.74.114---Metasploitable2 Linux。
四、本次分析工具介绍
本次测试主要用到了MobaXterm、Nmap、Nessus和kali.MobaXterm是远程计算的终极工具箱。本次在MobaXterm上运行了10.1.74.111(用户名和密码是root:toor)和10.1.74.114(渗透对象,用户名和密码:msfadmin:msfadmin)。
如果在虚拟机里运行kali,首先需要安装好虚拟机,然后下载安装好渗透环境kail,然后下载安装渗透对象(Metasploitable2 Linux)。
Kali Linux预装了许多渗透测试软件,包括nmap(端口扫描器)、Wireshark(数据
包分析器)、John the Ripper(密码破解器),以及Aircrack-ng(一套用于对无线局域网进行渗透测试的软件).本次测试尝试了Metasploit,但技术不成熟,不知道哪里出错,没有成功。
图1运行Metasploit结果图
图2 运行Metasploit结果图
图3 运行Metasploit结果图3 在漏洞扫描时,因为教学网上说Kali中内置了OpenVAS的,所以打算用这个工具
作为扫描工具的,可是在我使用的kali平台里并没有这个内置的工具。
图4 没有内置OpenVAS的kali
本次实验还是使用了nmap的图形化扫描工具zenmap。Nmap是目前为止使用最广的端口扫描工具之一,软件提供一些非常实用的功能。比如通过tcp/ip来甄别操作系统类型、秘密扫描、动态延迟和重发、平行扫描、通过并行的PING侦测下属的主机、欺骗扫描、端口过滤探测、直接的RPC扫描、分布扫描、灵活的目标选择以及端口的描述。
除了以上工具,本次还用了Nessus,这个工具是目前全世界最多人使用的系统漏洞扫描与分析软件。
五、实验主要内容及原理
1、信息收集—扫描活动主机
可以使用一些命令来进行局域网内的活动主机的扫描。常用的命令有 fping、nping、netenum、netdiscover 等。
本次渗透测试选用了netdiscover来获取LAN 中活动主机及其MAC。
2、信息收集—扫描目标主机活动端口
信息收集有两种方式,一种是命令行方式,一种是图形化界面方式。常用的命令是 namp,使用语法:nmap 参数 目标主机IP 地址。图形界面工具是zenmap。
3、信息收集—扫描漏洞
Nessus是使用比较多的系统漏洞扫描与分析软件。
六、实验过程简述
1、信息收集-扫描活动主机
实验步骤:在MobaXterm下进行命令行形式进行活动主机的扫描:
fping:扫描指定范围内的活动主机(fping-s-r 1-g 202.202.240.1 202.202.240.254);
nping:对防火墙过滤ICMP或主机不对ICMP响应的情况,则可不使用ICMP,直接定制TCP包发出运行nping-c1--tcp-p 80--flags syn 202.202.240.6;
netenum:速度超快的活动主机扫描器(运行netenum 202.202.240.0/24 10)(10代表超时时间,越长越准确)
netdiscover:获取LAN中活动主机及其MAC等信息(运行netdiscover即可); 也在虚拟机里进行了netdiscover扫描。
2、信息收集—扫描目标主机活动端口
实验步骤:在MobaXterm中输入下列的命令即可完成目标主机活动端口的扫描: TCP连接扫描: nmap-sT-p--PN 202.202.240.6 SYN 扫描: nmap-sS-p--PN 202.202.240.6 Xmas 扫描:nmap-sX-p--PN 202.202.240.6 Null 扫描:nmap-sN-p--PN 202.202.240.6
3、信息收集—扫描漏洞
实验步骤:Nessus是目前全世界最多人使用的系统漏洞扫描与分析软件。以下为安装及配置步骤:
下载Nessus软件进行注册,选择家庭版,注册号将发送到邮箱 使用命令dpkg-i Nessus-6.3.7-debian6_amd64.deb 命令进行安装
运行命令 /opt/nessus/bin/nessus-fetch--register(你得到的注册号)进行注册及更新模块
运行命令/opt/nessus/sbin/nessus-adduser添加用户并设为管理员(需记住,后面登录要使用)
运行命令/etc/init.d/nessusdsta启动nessus服务
打开浏览器,输入https://127.0.0.1:8834登录Nessus即可(先定策略,再扫描)
七、实验结果及分析
1、信息收集-扫描活动主机
图5使用fping扫描活动主机结果1
图6使用fping扫描活动主机结果2
通过运行fping-s-r 1-g 202.202.240.1 202.202.240.254来扫描IP地址从
202.202.240.1 到202.202.240.254的活动主机,(-s)打印出最后的结果;(-r 1)重复次数为1,默认情况下为3;(-g)生成目标列表,指定目标列表的起始和结束IP,此次起始IP为202.202.240.1,结束IP为202.202.240.254。共扫描254个目标,其中74个存活,176个不可达,没有不知的IP地址。
图7使用nping扫描活动主机结果
图8使用netenum扫描结果
使用来进行netenum扫描,显示的是202.202.240.0/24这个网段的活动主机,显示的结果。
图9netdiscover扫描结果
从上面的图中可以看出,netdiscover会显示出活动主机的IP地址、MAC地址等信息。
2、信息收集—扫描目标主机活动端口
图10 nmap扫描结果1
图11 nmap扫描结果2
图12 nmap扫描结果3
图13 nmap扫描结果4 上图是使用nmap扫描目标主机活动端口的结果,本次实验是扫描202.202.240.6的活动端口,从结果中可以看出使用TCP连接扫描和SYN扫描结果80端口是开启的,Xmas和Null扫描运行不出结果,可能是扫描的时间不够,活动端口扫描不是快速完成的。扫描结果会显示活动的端口号以及提供的服务。
下面是在虚拟机的kali平台里使用zenmap对10.1.74.114进行端口扫描的结果。由于扫描结果太多,所以只对部分进行了截图分析。
图14zenmap扫描结果
使用zenmap对活动端口进行扫描比使用命令行简单,得到的结果比输入命令得到的结果更加详细。
3、信息收集—扫描漏洞
图15Nessus扫描漏洞结果1 从扫描结果看出10.1.74.111有3个高危漏洞,18个中危漏洞,5个低危漏洞。下图为扫描10.1.74.111的部分具体漏洞图。
图16Nessus扫描结果2
八、心得体会
通过本次网络信息安全课程的学习,对渗透过程有了一定的了解,其基本步骤可总结为首先进行信息收集,可以收集的信息有活动主机、端口等等,然后扫描主机的漏洞,并对漏洞加以利用,从而达到攻击的目的。
这次设计对各个模块有了浅显的认识,深入程度还有待提高。