arachni手册

快速开始
帮助
使用-h来查看arachni功能
arachni -h
当扫描进行时,可以使用回车键来暂停/恢复,中断,延缓执行,以及查看一个发现的问题的总结。
可以这样运行arachni:
arachni http://test.com

将会加载所有的checks,在/plugins/defaults下的插件,审计所有的表单,链接以及cookie。
下面的例子中,将会使用所有的的checks,审计链接/表单/cookie,跟随子域名,以及显示各种信息来扫描http://test.com。结果将会保存在test.com.afr文件中:
arachni --output-verbose --scope-include-subdomains http://test.com --report-save-path=test.com.afr


afr文件可以用于生成几种文件格式的报告,例如:
arachni_reporter test.com.afr --report=html:outfile=my_report.html


查看报告的组件:
arachni_reporter --reporters-list

使用*和-简化加载checks过程:

使用*来加载所有的xss checks:
arachni http://example.net --checks=xss*


使用*来加载所有的主动checks:
arachni http://example.net --checks=active/*


只排除csrf check:
arachni http://example.net --checks=*,-csrf

更多资源查看: http://support.arachni-scanner.com/kb/general-use
http://support.arachni-scanner.com/kb/


命令手册:
通用
版本:(--version)

Expects: <n/a>

Default: disabled

Multiple invocations?: no

输出arachni的banner和版本信息

授权来自 (--authorized-by)

Expects: string

Default: disabled

Multiple invocations?: no

传到这个参数的字符串将会被用于HTTP头中的From域的值。其值应该是授权扫描人的邮件

输出

额外信息 (--output-verbose)

Expects: <n/a>

Default: disabled

Multiple invocations?: no

当允许冗余信息,arachni将会输出整个过程中的细节信息。
例如:
arachni --audit-forms --checks=xss http://testfire.net/ --scope-page-limit=1

将会加载xss checks以及审计所有的表单来扫描http://testfire.net/
冗余信息关闭
上述运行中没有--output-verbose标志位
arachni输出信息分为几类,每一类都有一个不同颜色的前缀:
  • 状态信息
  • [~] 情报信息
    [+] 成功信息
    [v] 冗余信息
    [!] 调试信息
    [-] 错误信息

    我们不讨论颜色问题
    引用
    Arachni - Web Application Security Scanner Framework v1.0
       Author: Tasos "Zapotek" Laskos <[email protected]>

               (With the support of the community and the Arachni Team.)

       Website:       http://arachni-scanner.com
       Documentation: http://arachni-scanner.com/wiki


  • Initializing...
  • Waiting for plugins to settle...
  • BrowserCluster: Initializing 6 browsers...
  • BrowserCluster: Initialization completed with 6 browsers in the pool.

  • [HTTP: 200] http://testfire.net/
  • [~] Identified as: windows, iis, asp, aspx
    [~] Analysis resulted in 0 usable paths.
    [~] DOM depth: 0 (Limit: 10)
  • XSS: Auditing form input 'txtSearch' pointing to: 'http://testfire.net/search.aspx'
  • XSS: Submitting form with original values for txtSearch at 'http://testfire.net/search.aspx'.
  • XSS: Submitting form with sample values for txtSearch at 'http://testfire.net/search.aspx'.
  • XSS: Auditing form input 'txtSearch' pointing to: 'http://testfire.net/search.aspx'
  • XSS: Auditing form input 'txtSearch' pointing to: 'http://testfire.net/search.aspx'
  • Harvesting HTTP responses...
  • [~] Depending on server responsiveness and network conditions this may take a while.
  • XSS: Analyzing response #2...
  • [~] XSS: Response is tainted, looking for proof of vulnerability.
    [+] XSS: In form input 'txtSearch' with action http://testfire.net/search.aspx
  • XSS: Analyzing response #3...
  • XSS: Analyzing response #4...
  • XSS: Analyzing response #5...
  • [~] XSS: Response is tainted, looking for proof of vulnerability.
    [+] XSS: In form input 'txtSearch' with action http://testfire.net/search.aspx
  • XSS: Analyzing response #6...
  • [~] XSS: Response is tainted, looking for proof of vulnerability.
    [+] XSS: In form input 'txtSearch' with action http://testfire.net/search.aspx

    冗余信息模式开启
    观察这次运行中的额外信息:
    [v]信息是额外信息
    引用
    $ arachni --audit-forms --checks=xss http://testfire.net/ --scope-page-limit=1 --output-verbose
    Arachni - Web Application Security Scanner Framework v1.0
       Author: Tasos "Zapotek" Laskos <[email protected]>

               (With the support of the community and the Arachni Team.)

       Website:       http://arachni-scanner.com
       Documentation: http://arachni-scanner.com/wiki


  • Initializing...
  • Waiting for plugins to settle...
  • BrowserCluster: Initializing 6 browsers...
  • BrowserCluster: Initialization completed with 6 browsers in the pool.

  • [HTTP: 200] http://testfire.net/
  • [~] Identified as: windows, iis, asp, aspx
    [~] Analysis resulted in 0 usable paths.
    [~] DOM depth: 0 (Limit: 10)
  • XSS: Auditing form input 'txtSearch' pointing to: 'http://testfire.net/search.aspx'
  • [v] XSS: --> With: "<some_dangerous_input_b2816f222dd9fce0ce8f0cda12aaf714/>" -> "arachni_text<some_dangerous_input_b2816f222dd9fce0ce8f0cda12aaf714/>"
  • XSS: Submitting form with original values for txtSearch at 'http://testfire.net/search.aspx'.
  • [v] XSS: --> With: nil -> ""
  • XSS: Submitting form with sample values for txtSearch at 'http://testfire.net/search.aspx'.
  • [v] XSS: --> With: nil -> ""
  • XSS: Auditing form input 'txtSearch' pointing to: 'http://testfire.net/search.aspx'
  • [v] XSS: --> With: "()\"&%1'-;<some_dangerous_input_b2816f222dd9fce0ce8f0cda12aaf714/>'" -> "arachni_text()\"&%1'-;<some_dangerous_input_b2816f222dd9fce0ce8f0cda12aaf714/>'"
  • XSS: Auditing form input 'txtSearch' pointing to: 'http://testfire.net/search.aspx'
  • [v] XSS: --> With: "--><some_dangerous_input_b2816f222dd9fce0ce8f0cda12aaf714/><!--" -> "arachni_text--><some_dangerous_input_b2816f222dd9fce0ce8f0cda12aaf714/><!--"
  • Harvesting HTTP responses...
  • [~] Depending on server responsiveness and network conditions this may take a while.
  • XSS: Analyzing response #2...
  • [~] XSS: Response is tainted, looking for proof of vulnerability.
    [+] XSS: In form input 'txtSearch' with action http://testfire.net/search.aspx
    [v] XSS: Injected:  "arachni_text<some_dangerous_input_b2816f222dd9fce0ce8f0cda12aaf714/>"
    [v] XSS: Proof:     <some_dangerous_input_b2816f222dd9fce0ce8f0cda12aaf714/>
    [v] XSS: Request:
    GET /search.aspx?txtSearch=arachni_text%3Csome_dangerous_input_b2816f222dd9fce0ce8f0cda12aaf714%2F%3E HTTP/1.1
    Host: testfire.net
    Accept-Encoding: gzip, deflate
    User-Agent: Arachni/v1.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Cookie: ASP.NET_SessionId=e4h4wy45jmb5vkrg0wl1rj45;amSessionId=15420499882


  • XSS: Analyzing response #3...
  • XSS: Analyzing response #4...
  • XSS: Analyzing response #6...
  • [~] XSS: Response is tainted, looking for proof of vulnerability.
    [+] XSS: In form input 'txtSearch' with action http://testfire.net/search.aspx
    [v] XSS: Injected:  "arachni_text--><some_dangerous_input_b2816f222dd9fce0ce8f0cda12aaf714/><!--"
    [v] XSS: Proof:     <some_dangerous_input_b2816f222dd9fce0ce8f0cda12aaf714/>
    [v] XSS: Request:
    GET /search.aspx?txtSearch=arachni_text--%3E%3Csome_dangerous_input_b2816f222dd9fce0ce8f0cda12aaf714%2F%3E%3C%21-- HTTP/1.1
    Host: testfire.net
    Accept-Encoding: gzip, deflate
    User-Agent: Arachni/v1.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Cookie: ASP.NET_SessionId=e4h4wy45jmb5vkrg0wl1rj45;amSessionId=15420499882


  • XSS: Analyzing response #5...
  • [~] XSS: Response is tainted, looking for proof of vulnerability.
    [+] XSS: In form input 'txtSearch' with action http://testfire.net/search.aspx
    [v] XSS: Injected:  "arachni_text()\"&%1'-;<some_dangerous_input_b2816f222dd9fce0ce8f0cda12aaf714/>'"
    [v] XSS: Proof:     <some_dangerous_input_b2816f222dd9fce0ce8f0cda12aaf714/>
    [v] XSS: Request:
    GET /search.aspx?txtSearch=arachni_text%28%29%22%26%251%27-%3B%3Csome_dangerous_input_b2816f222dd9fce0ce8f0cda12aaf714%2F%3E%27 HTTP/1.1
    Host: testfire.net
    Accept-Encoding: gzip, deflate
    User-Agent: Arachni/v1.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Cookie: ASP.NET_SessionId=e4h4wy45jmb5vkrg0wl1rj45;amSessionId=15420499882


    调试 (--output-debug)

    Expects: integer

    Default: 1

    Multiple invocations?: no

    当设置该标志位时,系统将会输出许多细节信息。细节的级别为1~3。如果不想淹没在烦人和无聊的信息中,可以使用管道来把调试信息输出到一个独立的文件:
    arachni http://example.com --output-debug 2> debug.log

    明确的问题 (--output-only-positives)

    Expects: <n/a>

    Default: disabled

    Multiple invocations?: no

    除了成功信息外压缩其他的信息--只显示发现的问题

    范围
    不使用"/"封装的ruby正则表达式
    Include (--scope-include-pattern)

    Expects: pattern

    Default: disabled

    Multiple invocations?: yes

    把扫描的范围限制为匹配模式的url资源

    子域名包含 (--scope-include-subdomains)

    Expects: <n/a>

    Default: disabled

    Multiple invocations?: no

    扫描子域名

    排除 (--scope-exclude-pattern)

    Expects: pattern

    Default: disabled

    Multiple invocations?: yes

    排除匹配正则表达式的url

    通过内容排除页面 (--scope-exclude-content-pattern)

    Expects: pattern

    Default: disabled

    Multiple invocations?: yes

    排除匹配模式的web页面

    Exclude binaries (--scope-exclude-binaries)

    Expects: <n/a>

    Default: disabled

    Multiple invocations?: no

    排除包含二进制内容的页面

    Note: 二进制内容可能对实施模式匹配的被动check造成困惑

    冗余 (--scope-redundant-path-pattern)

    Expects: pattern:integer

    Default: disabled

    Multiple invocations?: yes

    该选项为一个正则表达式和一个数字,例如: --scope-redundant-path-pattern='calendar.php:3'
    将会导致包含calendar.php的页面只爬虫三次
    当扫描很多类似图库或动态生成日历的时候,该选项很有用

    Auto-redundant (--scope-auto-redundant)

    Expects: integer

    Default: disabled (如果没指定,则默认为10)

    Multiple invocations?: no

    该选项限制扫描时相同参数的url资源的扫描次数。可以避免例如相册或目录造成的无限循环
    例如当设置--scope-auto-redundant=2时,下列的url中:
    引用
    http://test.com/?stuff=1
    http://test.com/?stuff=2
    http://test.com/?stuff=other-stuff
    http://test.com/?stuff=blah
    http://test.com/?stuff=blah&stuff2=1
    http://test.com/?stuff=blah&stuff2=2
    http://test.com/?stuff=blah2&stuff2=bloo
    http://test.com/path.php?stuff=blah&stuff2=1

    检查时只包含:
    引用
    http://test.com/?stuff=1
    http://test.com/?stuff=2
    http://test.com/?stuff=blah&stuff2=1
    http://test.com/?stuff=blah&stuff2=2
    http://test.com/path.php?stuff=blah&stuff2=1


    目录深度限制 (--scope-directory-depth-limit)

    Expects: integer

    Default: infinite

    Multiple invocations?: no

    限制扫描器扫描的网站的深度

    页面限制 (--scope-page-limit)

    Expects: integer

    Default: infinite

    Multiple invocations?: no

    限制扫描页面数目

    扩展路径 (--scope-extend-paths)

    Expects: filepath

    Default: disabled

    Multiple invocations?: yes

    通过使用指定文件为种子来扩展扫描范围。
    必须一行一个路径

    限制扫描路径 (--scope-restrict-paths)

    Expects: filepath

    Default: disabled

    Multiple invocations?: yes

    Uses the paths contained within the given file instead of performing a crawl.
    不使用爬虫,取而代之的是指定文件包含的扫描路径
    必须一行一个路径

    重写URL (--scope-url-rewrite)

    Expects: pattern:substitution

    Default: disabled

    Multiple invocations?: yes

    This option expects a pattern and a substitution, like so:
    参数为一个正则表达式和一个替代,例如--scope-url-rewrite='/articles\/[\w-]+\/(\d+)/:articles.php?id=\1'
    上述规则将会把urlhttp://test.com/articles/some-stuff/23重写为http://test.com/articles.php?id=23.

    DOM深度限制 (--scope-dom-depth-limit)

    Expects: integer

    Default: infinite

    Multiple invocations?: no

    将会限制扫描每个页面的DOM结构深度。

    HTTPS (--scope-https-only)

    Expects: <n/a>

    Default: disabled

    Multiple invocations?: no

    迫使系统仅扫描https
    目标url必须是https

    审计

    审计链接 (--audit-links)

    Expects: <n/a>

    Default: disabled

    Multiple invocations?: no

    开启审计链接

    审计表单 (--audit-forms)

    Expects: <n/a>

    Default: disabled

    Multiple invocations?: no

    开启审计表单

    审计cookies (--audit-cookies)

    Expects: <n/a>

    Default: disabled

    Multiple invocations?: no

    开启审计cookie

    广泛审计cookie (--audit-cookies-extensively)

    Expects: <n/a>

    Default: disabled

    Multiple invocations?: no

    If enabled the system will submit all links and forms of the page along with the cookie permutations.
    如果开启,系统将会使用cookie提交页面中所有的链接和表单。
    将会严重增加扫描时间

    审计头部信息 (--audit-headers)

    Expects: <n/a>

    Default: disabled

    Multiple invocations?: no

    审计http请求头部信息

    Note: 头部信息审计使用暴力破解. 即使web程序没有使用的合法的http头也会被审计

    Warning: 开启该选项会增加请求个数

    链接模板 (--audit-link-template)

    Expects: pattern

    Default: disabled

    Multiple invocations?: yes

    该选项允许提取/审计基于使用名称组(name groups)的ruby正则表达式过滤的路径中的输入
    从http://test.com/input1/value1/input2/value2中提取input1和input2,使用:
    /input1\/(?<input1>\w+)\/input2\/(?<input2>\w+)/

    两种方法 (--audit-with-both-methods)

    Expects: <n/a>

    Default: disabled

    Multiple invocations?: no

    如果开启,系统将会使用GET/POST提交所有元素。
    Warning:会严重增加扫描时间

    排除向量 (--audit-exclude-vector)

    Expects: pattern

    Default: disabled

    Multiple invocations?: yes

    不审计输入名字符合正则表达式的向量

    包含向量 (--audit-include-vector)

    Expects: pattern

    Default: disabled

    Multiple invocations?: yes

    只审计输入名字符合正则表达式的向量

    HTTP

    User agent (--http-user-agent)

    Expects: string

    Default: "Arachni/<version>"

    Multiple invocations?: no

    指定HTTP请求中User-Agent部分

    请求并发数 (--http-request-concurrency)

    Expects: integer

    Default: 20

    Multiple invocations?: no

    Sets the maximum amount of requests to be active at any given time; this usually directly translates to the amount of open connections.
    设定某个时间请求最大个数;通常直接等于开放链接个数。
    Note: 如果扫描没有相应,那么降低个数来缓解服务器压力
    Warning: 加入有足够带宽和一个较高的并发数设置,扫描将会造成DOS。


    请求超时 (--http-request-timeout)

    Expects: integer (milliseconds)

    Default: 50000

    Multiple invocations?: no

    设置客户端等待服务器应答的时间

    请求重定向限制 (--http-request-redirect-limit)

    Expects: integer

    Default: 5

    Multiple invocations?: no

    限制每个请求重定向的次数

    请求队列大小 (--http-request-queue-size)

    Expects: integer

    Default: 500

    Multiple invocations?: no

    客户端队列的最大请求个数

    Note: 多意味着更好的调度和更好的性能, 少意味着较少的RAM消耗

    请求头 (--http-request-header)

    Expects: string

    Default: disabled

    Multiple invocations?: yes

    运行以键值对的格式指定请求头
    例如--http-request-header='field_name=field value'

    响应最大大小 (--http-response-max-size)

    Expects: integer

    Default: infinite

    Multiple invocations?: no

    限制客户端接收响应体的大小。实质上,客户端不会下载Content-Length大于指定值的响应body。

    Cookie jar (--http-cookie-jar)

    Expects: filepath

    Default: disabled

    Multiple invocations?: no

    arachni允许传递Netscape cookie-jar file格式的cookie。如果想审计网站登录后的部分,那么应该传递session cookie给arachni。
    Note:如果觉得设置cookie-jar不适应,可以使用proxy或autologin插件来登录web应用程序

    Cookie字符串 (--http-cookie-string)

    Expects: string

    Default: disabled

    Multiple invocations?: no

    Cookies作为字符串发送
    例如--http-cookie-string='userid=19;sessionid=deadbeefbabe'

    认证user名 (--http-authentication-username)

    Expects: string

    Default: disabled

    Multiple invocations?: no

    HTTP认证用的用户名

    认证密码 (--http-authentication-password)

    Expects: string

    Default: disabled

    Multiple invocations?: no

    HTTP认证用的密码

    Proxy (--http-proxy)

    Expects: server:port

    Default: disabled

    Multiple invocations?: no

    为客户端设置http代理

    代理认证 (--http-proxy-auth)

    Expects: username:password

    Default: disabled

    Multiple invocations?: no

    为指定的代理服务器设置认证口令

    代理类型 (--http-proxy-type)

    Expects: http, http_1_0, socks4, socks5, socks4a

    Default: auto

    Multiple invocations?: no

    设置指定的代理服务器的类型

    Input

    值 (--input-value)

    Expects: pattern:value

    Default: disabled

    Multiple invocations?: yes

    设置匹配模式的输入的值

    值 (--input-values-from-file)

    Expects: filepath

    Default: disabled

    Multiple invocations?: no

    含有正则表达的hash object的YAML文件,来匹配输入名作为名字,值作为值

    不使用默认 (--input-without-defaults)

    Expects: <n/a>

    Default: disabled

    Multiple invocations?: no

    如果开启,不使用系统默认值

    强制 (--input-force)

    Expects: <n/a>

    Default: disabled

    Multiple invocations?: no

    强制系统填写甚至不为空的表单

    Checks

    列表 (--checks-list)

    Expects: pattern

    Default: disabled

    Multiple invocations?: yes

    罗列所有可用的checks。如果提供选项,那么将会作为正则表达式来过滤显示的checks

    加载 (--checks)

    Expects: string,string

    Default: * (all)

    Multiple invocations?: no

    加载给定名字的checks。
    可以使用不含逗号分隔的值,或者*来加载全部. 通过前缀-来组织check被加载.
    Note: check参照他们的文件名,不含rb后缀,使用--checks-list查看所有checks
    例如:
    arachni --checks=xss,sqli,path_traversal http://example.com/
    arachni http://example.com/
    arachni --checks=*,-backup_files,-xss http://example.com/(加载所有checks除了xss和backup_files)
    


    插件
    列举 (--plugins-list)

    Expects: <n/a>

    Default: disabled

    Multiple invocations?: no

    罗列所有可用的plugins.

    加载 (--plugin)

    Expects: string

    Default: disabled

    Multiple invocations?: yes

    加载给定插件,配置参数

    Note: 参照他们的文件名,不含rb后缀,使用--plugins-list查看所有
    例如排除logout url以及使用autologin插件来登录程序:
    arachni http://testfire.net --scope-page-limit=1 --checks=xss \
        --plugin=autologin:url=http://testfire.net/bank/login.aspx,parameters='uid=jsmith&passw=Demo1234',check='Sign Off|MY ACCOUNT' \
        --scope-exclude-pattern logout

    平台

    列举 (--platforms-list)

    Expects: <n/a>

    Default: disabled

    Multiple invocations?: no

    罗列所有可用平台

    Session

    检查url (--session-check-url)

    Expects: string

    Default: disabled

    Multiple invocations?: no

    Requires: session-check-pattern
    传递到这个选项的url将会被用于判断系统仍然登录到web应用程序
    如果url的http响应体匹配session-check-pattern,那么表明系统是登录状态

    Check模式 (--session-check-pattern)

    Expects: string

    Default: disabled

    Multiple invocations?: no

    Requires: session-check-url

    一个正则表达式用于匹配session-check-url的body部分用于识别系统是否仍然是登录状态。匹配表明系统是登录状态

    Profiles

    保存 (--profile-save-filepath)

    Expects: filepath

    Default: disabled

    Multiple invocations?: no

    允许保存当前配置, 所有传递的参数保存到Arachni Framework Profile(.afp)文件

    加载 (--profile-load-filepath)

    Expects: filepath

    Default: disabled

    Multiple invocations?: no

    允许加载和运行一个保存的profile文件.

    Note: 该选项不影响设置更多的选项或重新保存profile文件

    浏览器簇

    Pool大小 (--browser-cluster-pool-size)

    Expects: integer

    Default: 6

    Multiple invocations?: no

    pool维护的浏览器进程的个数.

    Job 超时 (--browser-cluster-job-timeout)

    Expects: integer

    Default: 120

    Multiple invocations?: no

    每个job的允许时间,单位秒

    存活工作时间 (--browser-cluster-worker-time-to-live)

    Expects: integer

    Default: 100

    Multiple invocations?: no

    在进程重生之前每个进程应该处理的job数

    Note: 主要用于防止一个浏览器进程占用太多RAM

    忽略图片 (--browser-cluster-ignore-images)

    Expects: <n/a>

    Default: disabled

    Multiple invocations?: no

    如果开启,浏览器不会加载图片

    屏幕宽度 (--browser-cluster-screen-width)

    Expects: integer

    Default: 1600

    Multiple invocations?: no

    设置浏览器屏幕宽度

    Note: 用于测试响应和web程序.

    屏幕高度 (--browser-cluster-screen-height)

    Expects: integer

    Default: 1200

    Multiple invocations?: no

    设置浏览器屏幕高度

    Note: 用于测试响应和web程序.

    报告

    保存路径 (--report-save-path)

    Expects: string

    Default: .

    Multiple invocations?: no

    设置存储报告的路径

    Note: 可以使用arachni_reporter命令来使用生成的文件来生成不同格式的报告

    快照

    保存路径 (--snapshot-save-path)

    Expects: string

    Default: .

    Multiple invocations?: no

    设置暂停扫描的快照的保存路径

    Note: 使用arachni_restore来指定快照开恢复扫描

    超时

    超时 (--timeout)

    Expects: hours:minutes:seconds

    Default: infinite

    Multiple invocations?: no

    运行扫描的最大时间

    暂停 (--timeout-suspend)

    Expects: <n/a>

    Default: disabled

    Multiple invocations?: no

    如果开启,那么当到达--timeout指定的时间时,扫描将会暂停,而不是中断。

    猜你喜欢

    转载自j4s0nh4ck.iteye.com/blog/2149511