W3AF身份认证


title: W3AF身份认证
date: 2016-09-05 11:16
tags: Kali渗透测试 Web渗透测试


0x00 W3AF简介

无论是Httrack,Nikto,Vega还是skipfish都是比较轻量级的tools。Web Application Attack and Audit Framework,基于Python编写的Web渗透测试框架,此框架的目标是用来发现利用所有WEB应用程序bug。

不同于,nikto,vega,这些都是个别的大牛一时兴起而写出来的,毕竟个人的能力是有限的,所以很有可能这些工具也只是停留在一个版本就绝迹了,而w3af是基于开源的,所以它的生命周期会更长。

现在w3af一共覆盖了9个大类近150个plugin:

  • audit:审计,在该组件下,集成了大量的web扫描工具。

  • infrastructure:基础架构,主要用来扫描服务器的banner等基本信息。

  • grep:被动扫描类型。

  • evasion:逃避,主要是用来逃避目标的IDS,IBS的检测。

  • mangle:主要是基于正则表达式的信息替换,比如注入,代码修改。

  • auth:基于表单的身份认证。

  • brutefoece:暴力破解。

  • output:对扫描出来的结果输出为特定的文件。

  • crawl:爬网,比如web spider,爬网爬得越全,那么发现漏洞的可能行越大。


attack

其实attack算是w3af中的第十类,但是不同与前九个,attck模块不能人为的进行配置的,所有的攻击的方法都是固定的,使用者无法修改。


0x01 原生安装 w3af

测试Kali自带w3af

在Kali Rolling上测试自带w3af失败。

杀死所有有关w3af的进程:

root@kali:~# ps -aux | grep -n w3af
root@kali:~# kill -9 8362 8437 9943 9945 9946 9949 10086

安装步骤

在主目录里实现源码下载和安装等相关步骤:

$ cd ~

更新update源:

apt-get update

安装pip以及w3af

apt-get install -y python-pip w3af

升级pip:

pip install --upgrade pip

通过 github clone w3af 源代码 :

git clone https://github.com/andresriancho/w3af.git

等待w3af源代码下载完成,然后进入w3af目录:

$ cd w3af
./w3af_console (./w3af.gui)

提示,需要安装相关依赖:

$ apt-get install python-dev libxml2-dev libxslt1-dev zlib1g-dev

$ apt-get build-dep python-lxml

然后,可以使用pip或者运行替换脚本安装w3af的相关依赖:

$ ./tmp/w3af_dependency_install.sh
#$ pip install pyClamd==0.3.15 PyGithub==1.21.0 GitPython==0.3.2.RC1 nltk==3.0.1 chardet==2.1.1 tblib==0.2.0 futures==2.1.5 ndg-httpsclient==0.3.3 pyasn1==0.1.8 lxml==3.4.4 scapy-real==2.2.0-dev guess-language==0.2 msgpack-python==0.4.4 python-ntlm==1.0.1 Jinja2==2.7.3 markdown==2.6.1 psutil==2.2.1 mitmproxy==0.13 ruamel.ordereddict==0.4.8

升级w3af

 root  ~  cd w3af 
 root  ~  w3af  git pull     

创建w3af快捷方式

Linux下的快捷方式文件都是已 .desktop 结尾的。

首先将 Kali 自带的 w3af 的快捷方式 copy 到桌面

$: cp /usr/share/applications/w3af.desktop /root/Desktop 

然后打开 w3af.desktop 文件

 root  ~  cd Desktop          
 root  ~  Desktop  vim w3af.desktop 
[Desktop Entry]
Name=w3af
Encoding=UTF-8
Exec=sh -c "/root/w3af/w3af_gui"  <---修改为最新安装的 w3af_gui 启动路径
Icon=kali-w3af.png
StartupNotify=false
Terminal=false
Type=Application
Categories=03-webapp-analysis;
X-Kali-Package=w3af

保存退出 vim,回到 desktop 为w3af.desktop 添加运行权限

 root  ~  Desktop  chmod u+x w3af.desktop 

w3af有两种启动方式,console和GUI启动.


0x02 w3af_console 使用简介


help命令

help 可以查看w3af当前模块下可用的命令

 root  ~  w3af  ./w3af_console 
w3af>>> help
|----------------------------------------------------------------------------|
| start         | Start the scan.                                            |
| plugins       | Enable and configure plugins.                              |
| exploit       | Exploit the vulnerability.                                 |
| profiles      | List and use scan profiles.                                |
| cleanup       | Cleanup before starting a new scan.                        |
|----------------------------------------------------------------------------|
| help          | Display help. Issuing: help [command] , prints more        |
|               | specific help about "command"                              |
| version       | Show w3af version information.                             |
| keys          | Display key shortcuts.                                     |
|----------------------------------------------------------------------------|
| http-settings | Configure the HTTP settings of the framework.              |
| misc-settings | Configure w3af misc settings.                              |
| target        | Configure the target URL.                                  |
|----------------------------------------------------------------------------|
| back          | Go to the previous menu.                                   |
| exit          | Exit w3af.                                                 |
|----------------------------------------------------------------------------|
| kb            | Browse the vulnerabilities stored in the Knowledge Base    |
|----------------------------------------------------------------------------|

plugins模块

plugins 功能下共有九个可供选择的扫描模块。

比如:

w3af/plugins>>> audit xss sqli lfi 

代表选择同时 audit 下的 xsssqlilfi 扫描功能。

当然也可以指定 audit 下的所有功能

w3af/plugins>>> audit all

确定选择以后,各个 功能 对应的 status 将会启动。

w3af/plugins>>> crawl spider_man 
w3af/plugins>>> back

选择完成以后使用 back 返回上一级目录。

profile

我们可以就将所选的 plugins 下的配置通过 profile 保存,方便下次直接调用。

w3af>>> profiles save_as myScanProfile
Profile saved.

使用 profile

w3af/profiles>>> use fast_scan 

w3af 的全局设置

http-settings
w3af>>> http-settings 
w3af/config:http-settings>>> view
|----------------------------------------------------------------------------|
| Setting                 | Value | Modified | Description                        |
|----------------------------------------------------------------------------|
| url_parameter           |      |      | URL parameter                      |
|                         |      |      | (http://host.tld/path;<parameter>) |
| timeout                 | 0    |      | HTTP connection timeout            |
| headers_file            |      |      | HTTP headers filename which        |
|                         |      |      | contains additional headers to be  |
|                         |      |      | added in each request              |
|----------------------------------------------------------------------------|
| cookie_jar_file         |      |      | Cookie Jar file holding HTTP       |
|                         |      |      | cookies-指定一个包含cookies信息的文件                            |
| ignore_session_cookies  | False |      | Ignore session cookies             |
|----------------------------------------------------------------------------|
| ntlm_auth_url           |      |      | NTLM authentication domain (target |
|                         |      |      | domain name)                       |
| ntlm_auth_user          |      |      | NTLM authentication username       |
| ntlm_auth_passwd        |      |      | NTLM authentication password       |
| ntlm_auth_domain        |      |      | NTLM authentication domain         |
|                         |      |      | (windows domain name)              |
|----------------------------------------------------------------------------|
| rand_user_agent         | False |      | Use random User-Agent header 使用能够随机的user-agent       |
| max_file_size           | 400000 |      | Maximum file size                  |
| max_http_retries        | 2    |      | Maximum number of HTTP request     |
|                         |      |      | retries                            |
| user_agent  (默认agent为w3f,不建议使用默认值)            | w3af.org |      | User Agent header                  |
| max_requests_per_second | 0    |      | Maximum HTTP requests per second   |
|----------------------------------------------------------------------------|
| string_match_404        |      |      | Tag HTTP response as 404 if the    |
|                         |      |      | string is found in it's body       |
| always_404              |      |      | Comma separated list of URLs which |
|                         |      |      | will always be detected as 404     |
|                         |      |      | pages                              |
| never_404               |      |      | Comma separated list of URLs which |
|                         |      |      | will never be detected as 404      |
|                         |      |      | pages                              |
|----------------------------------------------------------------------------|
| proxy_port (支持外部代理)             | 8080 |      | Proxy TCP port                     |
| proxy_address           |      |      | Proxy IP address                   |
|----------------------------------------------------------------------------|
| basic_auth_user    (w3af的基本认证信息)     |      |      | Basic authentication username      |
| basic_auth_passwd       |      |      | Basic authentication password      |
| basic_auth_domain       |      |      | Basic authentication domain        |
|----------------------------------------------------------------------------|
不使用默认的 user-agent 使用随机user-agent
w3af/config:http-settings>>> set rand_user_agent True 

设置完毕后 save ,并 back 上一级目录

w3af/config:http-settings>>> save 
The configuration has been saved.
w3af/config:http-settings>>> back
The configuration has been saved.
w3af>>> 
misc-settings
w3af>>> misc-settings 
w3af/config:misc-settings>>> help
w3af/config:misc-settings>>> view
|----------------------------------------------------------------------------|
| Setting                 | Value                 | Modified | Description   |
|----------------------------------------------------------------------------|
| msf_location            | /opt/metasploit3/bin/ |          | Full path of  |
|                         |                       |          | Metasploit    |
|                         |                       |          | framework     |
|                         |                       |          | binary        |
|                         |                       |          | directory     |
|                         |                       |          | (/opt/metasploit3/bin/ |
|                         |                       |          | in most linux |
|                         |                       |          | installs)     |
|----------------------------------------------------------------------------|
| interface               | wlan0                 |          | Local         |
|                         |                       |          | interface     |
|                         |                       |          | name to use   |
|                         |                       |          | when          |
|                         |                       |          | sniffing,     |
|                         |                       |          | doing reverse |
|                         |                       |          | connections,  |
|                         |                       |          | etc.          |
| local_ip_address        | 192.168.1.6           |          | Local IP      |
|                         |                       |          | address to    |
|                         |                       |          | use when      |
|                         |                       |          | doing reverse |
|                         |                       |          | connections   |
|----------------------------------------------------------------------------|
| max_discovery_time      | 120                   |          | Maximum crawl |
|                         |                       |          | time          |
|                         |                       |          | (minutes)     |
| stop_on_first_exception | False                 |          | Stop scan     |
|                         |                       |          | after first   |
|                         |                       |          | unhandled     |
|                         |                       |          | exception     |
|----------------------------------------------------------------------------|
| non_targets             |                       |          | A comma       |
|                         |                       |          | separated     |
|                         |                       |          | list of URLs  |
|                         |                       |          | that w3af     |
|                         |                       |          | should        |
|                         |                       |          | completely    |
|                         |                       |          | ignore        |
|----------------------------------------------------------------------------|
| fuzz_url_filenames      | False                 |          | Indicates if  |
|                         |                       |          | w3af plugins  |
|                         |                       |          | will send     |
|                         |                       |          | fuzzed file   |
|                         |                       |          | names in      |
|                         |                       |          | order to find |
|                         |                       |          | vulnerabilities |
| fuzz_url_parts          | False                 |          | Indicates if  |
|                         |                       |          | w3af plugins  |
|                         |                       |          | will send     |
|                         |                       |          | fuzzed URL    |
|                         |                       |          | parts in      |
|                         |                       |          | order to find |
|                         |                       |          | vulnerabilities |
| fuzzable_headers        |                       |          | A list with   |
|                         |                       |          | all fuzzable  |
|                         |                       |          | header names  |
| fuzzed_files_extension  | gif                   |          | Indicates the |
|                         |                       |          | extension to  |
|                         |                       |          | use when      |
|                         |                       |          | fuzzing file  |
|                         |                       |          | content       |
| form_fuzzing_mode       | tmb                   |          | Indicates     |
|                         |                       |          | what HTML     |
|                         |                       |          | form combo    |
|                         |                       |          | values w3af   |
|                         |                       |          | plugins will  |
|                         |                       |          | use: all, tb, |
|                         |                       |          | tmb, t, b     |
| fuzz_form_files         | True                  |          | Indicates if  |
|                         |                       |          | w3af plugins  |
|                         |                       |          | will send     |
|                         |                       |          | payloads in   |
|                         |                       |          | the content   |
|                         |                       |          | of            |
|                         |                       |          | multipart/post |
|                         |                       |          | form files.   |
| fuzz_cookies            | False                 |          | Indicates if  |
|                         |                       |          | w3af plugins  |
|                         |                       |          | will use      |
|                         |                       |          | cookies as a  |
|                         |                       |          | fuzzable      |
|                         |                       |          | parameter     |
|----------------------------------------------------------------------------|

target 模块

target 用于设置需要被扫描的目标地址。

w3af>>> target 
w3af/config:target>>> view 
|---------------------------------------------------------------------------|
| Setting   | Value | Modified | Description                                     |
|---------------------------------------------------------------------------|
| target_framework | unknown |      | Target programming framework                    |
|           |      |      | (unknown/php/asp/asp.net/java/jsp/cfm/ruby/perl) |
| target   (设置要扫描的网站url) |      |      | A comma separated list of URLs                  |
| target_os (设置要扫描的操作体统的主机ip)| unknown |      | Target operating system (unknown/unix/windows)  |
|---------------------------------------------------------------------------|
使用 target 指定目标地址
w3af/config:target>>> set target http://www.sina.com
w3af/config:target>>> view
|---------------------------------------------------------------------------|
| Setting  | Value      | Modified | Description                                |
|---------------------------------------------------------------------------|
| target_framework | unknown    |      | Target programming framework               |
|          |            |      | (unknown/php/asp/asp.net/java/jsp/cfm/ruby/perl) |
| target   | http://www.sina.com | Yes  | A comma separated list of URLs             |
| target_os | unknown    |      | Target operating system                    |
|          |            |      | (unknown/unix/windows)                     |
|---------------------------------------------------------------------------|
使用self-contained 将上述设置另存为
w3af>>> profiles 
w3af/profiles>>> save_as test2 self-contained
Profile saved.

由此,我们可以将 test1 设置与他人共享。


start 启动扫描

w3af>>> start 

w3af下 script

w3af 也自带了许多的扫描脚本

 root  ~  w3af  1  cd scripts                                         
 root  ~  w3af  scripts  1  ls                                      
allowed_methods.w3af             login_brute_password_only.w3af
以sqli.w3af 脚本为例

我们只需要修改脚本中的 target 地址便可以很方便的调用这些脚本了

 root  ~  w3af  scripts  1  cat sqli.w3af                              master 
# This is a demo of the attack plugin sql_shell

plugins
output console,text_file
output config text_file
set output_file output-w3af.txt
set verbose True
back
output config console
set verbose False
back

audit sqli

crawl web_spider
crawl config web_spider
set only_forward True
back

grep path_disclosure

back
target
set target http://www.sina.com <---更改为目标ip
back

start

bug-report

details 0

back

exit
./w3af_console -s scripts/scriptname.weaf
 root  ~  w3af  1  ./w3af_console -s scripts/sqli.w3af   

脚本执行完成,并会在w3af根目录下生成 扫描报告 :

 root  ~  w3af  1  ls                                                   master 
circle.yml  extras           profiles  tools  w3af_api      w3af_gui
doc         output-w3af.txt  scripts   w3af   w3af_console

0x03 w3af 身份认证

w3af 支持四种身份认证: HTTP Basic , NTLM , Form , Cookie 。不同的认证方式对应不同的目标扫描类型。


HTTP Basic

HTTP Basic 并没有严格意义上的加密,只不过是经过了简单的编码而已,基于这种认证,使用很简单的破解工具便可以破解了。

我们以 win7 为例,首先安装win7 IIS 服务器,选择默认网站属性,关闭默认网站的匿名身份认证,从而选择基本身份认证,并设置登录的用户名和密码。

然后通过Kali去访问该网站,使用 wireshark 进行抓包,通过 Floow TCP Stream 分析,我们可以得到一个 经过 base64 进行编码的 Authorization 信息,其中包含了登录使用的用户名和密码,使用 W3af --> tools --> Encode/Uncode 功能对所得到编码字符进行反向解码便可以得到用户名和密码。


对使用 HTTP basic 认证的网站进行扫描

Configuration --> HTTP Config --> Basic HTTP Authentication 添加基本认证信息:

HTTP settings.png

等待一切配置完毕可以勾选需要扫描的模块进行扫描,在 Target 中指定要扫描的目标 url。


NTML

NTML 身份认证是微软一家才有的身份认证方式。

开启 NTML 的认证功能需要使用到 IIS 的集成身份认证摸块。NTML 也是windows 下的默认身份认证方式。

然后,回到 Kali 下的 W3af中配置 NTML 认证信息。

NTML Atuentication.png

同样的,等待一切配置完毕可以勾选需要扫描的模块进行扫描,在 Target 中指定要扫描的目标 url。


基于From的身份认证

基于From的身份认证便不能使用 W3af的HTTP Configuration了,而是使用 W3af中的 auth 插件,目前 w3af 提供两种方式的 From 表单提交认证,即是 detailed 和 generic方法,detailed 相比于 generic的信息更加详细。

detailed

选择 W3f 下的 auth 插件在的 detailed 选择,配置要提交的From信息,

Paste_Image.png

username_fieldpassword_field分别表示在表单中要提交的用户名和密码控件的 username,如下所示:

Paste_Image.png

auth_url 表示表单所在的url地址。

check_url 表示一旦表单验证成功以后进入的页面,主要是为了验证表单提交是否成功。同样,check_string 具有同样的作用,它表示的是表单登录成功以后可以看到的特征字符串。

ok,配置完成以后,选择保存,继续进行 crawl 爬网插件的配置。

crawl 下首先需要要选择 web_Spider 一项勾选 only_forward指定在该 target url 下要扫描的特定的子目录。同时还可以配置follow_regex (需要扫描的特定类型的页面)和 ignore_regex (需要忽略的页面) 以此进行交叉组合筛选。

Paste_Image.png

Cookie 双因素身份认证

W3af Cookie认证方法比较严格的,直接copy cookies 信息是没法认证的。所以首先需要导出 cookies 的信息。

比如,使用 firebug 导出 dvwa 站点的 cookies 信息,格式如下

192.168.56.101  FALSE   /   FALSE   PHPSESSID   c04db28f36bf5cd9a7e4ebfed22045bd
192.168.56.101  FALSE   /dvwa/  FALSE   security    high

将其改成 w3af 的专用格式:

# Netscape HTTP Cookie File
192.168.56.101  FALSE   /   FALSE   173151000100    PHPSESSID   c04db28f36bf5cd9a7e4ebfed22045bd
192.168.56.101  FALSE   /dvwa/  FALSE   173151000100    security    high
//domain        flag    path    secure_flag 时间信息,表示cookie有没有过期  name    name value

根据 W3af 官方的解释,使用cookie 信息时,每一行之上必需使用特定的数据格式,其各个数据字段之间必需使用 TAB 制表符来进行分隔,而不是空格。

更改完 cookies 格式以后,将其保存为本地文件,回到 w3af --> HTTP Configuration 下选择 Cookies,导入保存的本地 cookie 文件。

cooki.jre.png

ok,cookies 信息配置完成,接下来可以在 audit 选择相应的扫描插件然后填写 target 开始扫描了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,633评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,778评论 6 342
  • title: vegadate: 2016-07-31 11:16tags: Kali渗透测试 Web渗透测试 0...
    曼路x_x阅读 3,871评论 0 2
  • 简介几乎每个渗透测试项目都需要遵循严格的日程,多数由客户的需求或开发交谈日期决定。对于渗透测试者,拥有一种工具,它...
    红色火苗阅读 3,273评论 0 6
  • 第五章 自动化扫描 作者:Gilberto Najera-Gutierrez 译者:飞龙 协议:CC BY-NC-...
    布客飞龙阅读 3,374评论 0 39