arachni 0.4.6 → 0.4.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/CHANGELOG.md +21 -0
- data/Gemfile +1 -1
- data/README.md +1 -1
- data/lib/arachni/element/capabilities/auditable/taint.rb +1 -0
- data/lib/arachni/element/form.rb +4 -6
- data/lib/arachni/http.rb +1 -0
- data/lib/arachni/parser.rb +1 -1
- data/lib/arachni/spider.rb +14 -2
- data/lib/version +1 -1
- data/modules/audit/code_injection.rb +36 -10
- data/modules/audit/code_injection_php_input_wrapper.rb +38 -5
- data/modules/audit/code_injection_timing.rb +36 -13
- data/modules/audit/csrf.rb +41 -11
- data/modules/audit/file_inclusion.rb +36 -6
- data/modules/audit/ldapi.rb +31 -6
- data/modules/audit/os_cmd_injection.rb +28 -7
- data/modules/audit/os_cmd_injection_timing.rb +29 -15
- data/modules/audit/path_traversal.rb +42 -6
- data/modules/audit/response_splitting.rb +26 -9
- data/modules/audit/rfi.rb +37 -9
- data/modules/audit/session_fixation.rb +38 -7
- data/modules/audit/source_code_disclosure.rb +41 -5
- data/modules/audit/sqli.rb +57 -6
- data/modules/audit/sqli_blind_rdiff.rb +54 -9
- data/modules/audit/sqli_blind_timing.rb +58 -15
- data/modules/audit/unvalidated_redirect.rb +29 -9
- data/modules/audit/xpath.rb +35 -8
- data/modules/audit/xss.rb +54 -9
- data/modules/audit/xss_event.rb +54 -10
- data/modules/audit/xss_path.rb +56 -9
- data/modules/audit/xss_script_tag.rb +54 -8
- data/modules/audit/xss_tag.rb +53 -7
- data/modules/recon/allowed_methods.rb +24 -4
- data/modules/recon/backdoors.rb +29 -11
- data/modules/recon/backup_files.rb +30 -14
- data/modules/recon/common_directories.rb +27 -8
- data/modules/recon/common_files.rb +27 -7
- data/modules/recon/directory_listing.rb +30 -10
- data/modules/recon/grep/captcha.rb +26 -8
- data/modules/recon/grep/credit_card.rb +25 -6
- data/modules/recon/grep/cvs_svn_users.rb +23 -6
- data/modules/recon/grep/emails.rb +28 -8
- data/modules/recon/grep/form_upload.rb +31 -6
- data/modules/recon/grep/http_only_cookies.rb +33 -8
- data/modules/recon/grep/insecure_cookies.rb +36 -9
- data/modules/recon/grep/mixed_resource.rb +29 -9
- data/modules/recon/grep/password_autocomplete.rb +33 -6
- data/modules/recon/grep/private_ip.rb +21 -7
- data/modules/recon/grep/ssn.rb +17 -6
- data/modules/recon/grep/unencrypted_password_forms.rb +28 -9
- data/modules/recon/htaccess_limit.rb +23 -8
- data/modules/recon/http_put.rb +29 -7
- data/modules/recon/interesting_responses.rb +8 -10
- data/modules/recon/localstart_asp.rb +35 -5
- data/modules/recon/webdav.rb +23 -7
- data/modules/recon/x_forwarded_for_access_restriction_bypass.rb +27 -6
- data/modules/recon/xst.rb +26 -5
- data/plugins/autologin.rb +16 -5
- data/plugins/proxy/server.rb +2 -9
- data/spec/external/wavsep/active/lfi_spec.rb +6 -6
- data/spec/external/wavsep/active/rfi_spec.rb +6 -6
- data/spec/external/wavsep/active/sqli_spec.rb +4 -4
- data/spec/external/wavsep/active/xss_spec.rb +1 -1
- data/spec/support/logs/Dispatcher - 1332-56847.log +9 -0
- data/spec/support/logs/Dispatcher - 1361-63434.log +21 -0
- data/spec/support/logs/Dispatcher - 1545-55308.log +9 -0
- data/spec/support/logs/Dispatcher - 1559-18938.log +19 -0
- data/spec/support/logs/Dispatcher - 1568-25013.log +17 -0
- data/spec/support/logs/Dispatcher - 1577-55689.log +13 -0
- data/spec/support/logs/Dispatcher - 1586-18577.log +9 -0
- data/spec/support/logs/Dispatcher - 1595-49353.log +9 -0
- data/spec/support/logs/Dispatcher - 1604-27831.log +11 -0
- data/spec/support/logs/Dispatcher - 1617-57444.log +11 -0
- data/spec/support/logs/Dispatcher - 1631-28737.log +11 -0
- data/spec/support/logs/Dispatcher - 1644-21815.log +33 -0
- data/spec/support/logs/Dispatcher - 1738-53470.log +21 -0
- data/spec/support/logs/Dispatcher - 1747-64173.log +21 -0
- data/spec/support/logs/Dispatcher - 1756-11866.log +23 -0
- data/spec/support/logs/Dispatcher - 1798-12175.log +19 -0
- data/spec/support/logs/Dispatcher - 1807-22790.log +17 -0
- data/spec/support/logs/Dispatcher - 1816-57823.log +15 -0
- data/spec/support/logs/Dispatcher - 1831-64825.log +11 -0
- data/spec/support/logs/Dispatcher - 1845-27623.log +9 -0
- data/spec/support/logs/Dispatcher - 1854-26066.log +9 -0
- data/spec/support/logs/Dispatcher - 1863-37486.log +9 -0
- data/spec/support/logs/Dispatcher - 1874-22463.log +9 -0
- data/spec/support/logs/Dispatcher - 1883-41263.log +11 -0
- data/spec/support/logs/Dispatcher - 1900-53660.log +9 -0
- data/spec/support/logs/Dispatcher - 1909-44423.log +9 -0
- data/spec/support/logs/Dispatcher - 1921-58931.log +9 -0
- data/spec/support/logs/Dispatcher - 1993-6448.log +63 -0
- data/spec/support/logs/Dispatcher - 2002-19206.log +43 -0
- data/spec/support/logs/Dispatcher - 2011-11852.log +39 -0
- data/spec/support/logs/Dispatcher - 2020-65055.log +34 -0
- data/spec/support/logs/Dispatcher - 2029-48445.log +28 -0
- data/spec/support/logs/Dispatcher - 2038-55271.log +21 -0
- data/spec/support/logs/Dispatcher - 2047-45722.log +13 -0
- data/spec/support/logs/Dispatcher - 2057-48194.log +9 -0
- data/spec/support/logs/Dispatcher - 2189-39843.log +19 -0
- data/spec/support/logs/Dispatcher - 2199-15985.log +21 -0
- data/spec/support/logs/Dispatcher - 2208-22080.log +15 -0
- data/spec/support/logs/Dispatcher - 2221-37690.log +19 -0
- data/spec/support/logs/Dispatcher - 2230-47867.log +21 -0
- data/spec/support/logs/Dispatcher - 2239-27060.log +15 -0
- data/spec/support/logs/Dispatcher - 2358-8967.log +17 -0
- data/spec/support/logs/Dispatcher - 2367-27103.log +21 -0
- data/spec/support/logs/Dispatcher - 2376-16287.log +13 -0
- data/spec/support/logs/Dispatcher - 2389-9109.log +19 -0
- data/spec/support/logs/Dispatcher - 2398-62926.log +21 -0
- data/spec/support/logs/Dispatcher - 2407-48685.log +15 -0
- data/spec/support/logs/Dispatcher - 2459-62480.log +17 -0
- data/spec/support/logs/Dispatcher - 2470-57894.log +21 -0
- data/spec/support/logs/Dispatcher - 2479-51883.log +13 -0
- data/spec/support/logs/Dispatcher - 2493-36944.log +17 -0
- data/spec/support/logs/Dispatcher - 2503-59143.log +21 -0
- data/spec/support/logs/Dispatcher - 2513-33084.log +13 -0
- data/spec/support/logs/Dispatcher - 25430-46306.log +9 -0
- data/spec/support/logs/Dispatcher - 25457-10711.log +23 -0
- data/spec/support/logs/Dispatcher - 25603-48892.log +9 -0
- data/spec/support/logs/Dispatcher - 25613-24775.log +19 -0
- data/spec/support/logs/Dispatcher - 25622-59684.log +17 -0
- data/spec/support/logs/Dispatcher - 25631-23195.log +13 -0
- data/spec/support/logs/Dispatcher - 25640-9810.log +9 -0
- data/spec/support/logs/Dispatcher - 25649-52757.log +9 -0
- data/spec/support/logs/Dispatcher - 25658-58550.log +11 -0
- data/spec/support/logs/Dispatcher - 25671-30871.log +11 -0
- data/spec/support/logs/Dispatcher - 25684-48620.log +11 -0
- data/spec/support/logs/Dispatcher - 25697-18124.log +37 -0
- data/spec/support/logs/Dispatcher - 25762-35321.log +21 -0
- data/spec/support/logs/Dispatcher - 25771-64633.log +21 -0
- data/spec/support/logs/Dispatcher - 25780-43558.log +23 -0
- data/spec/support/logs/Dispatcher - 25821-43561.log +19 -0
- data/spec/support/logs/Dispatcher - 25830-39112.log +17 -0
- data/spec/support/logs/Dispatcher - 25839-44093.log +15 -0
- data/spec/support/logs/Dispatcher - 25852-12057.log +11 -0
- data/spec/support/logs/Dispatcher - 25866-49029.log +9 -0
- data/spec/support/logs/Dispatcher - 25875-32179.log +9 -0
- data/spec/support/logs/Dispatcher - 25884-62703.log +9 -0
- data/spec/support/logs/Dispatcher - 25894-4228.log +9 -0
- data/spec/support/logs/Dispatcher - 25903-6709.log +11 -0
- data/spec/support/logs/Dispatcher - 25917-29651.log +9 -0
- data/spec/support/logs/Dispatcher - 25926-12708.log +9 -0
- data/spec/support/logs/Dispatcher - 25935-54092.log +9 -0
- data/spec/support/logs/Dispatcher - 25990-26756.log +63 -0
- data/spec/support/logs/Dispatcher - 25999-4016.log +43 -0
- data/spec/support/logs/Dispatcher - 26008-52076.log +39 -0
- data/spec/support/logs/Dispatcher - 26017-48497.log +34 -0
- data/spec/support/logs/Dispatcher - 26026-28839.log +28 -0
- data/spec/support/logs/Dispatcher - 26035-54215.log +21 -0
- data/spec/support/logs/Dispatcher - 26044-27216.log +13 -0
- data/spec/support/logs/Dispatcher - 26054-53464.log +9 -0
- data/spec/support/logs/Dispatcher - 26163-65271.log +19 -0
- data/spec/support/logs/Dispatcher - 26173-58105.log +21 -0
- data/spec/support/logs/Dispatcher - 26182-40848.log +15 -0
- data/spec/support/logs/Dispatcher - 26195-2855.log +19 -0
- data/spec/support/logs/Dispatcher - 26204-35297.log +21 -0
- data/spec/support/logs/Dispatcher - 26213-59588.log +15 -0
- data/spec/support/logs/Dispatcher - 26333-40774.log +17 -0
- data/spec/support/logs/Dispatcher - 26342-45541.log +21 -0
- data/spec/support/logs/Dispatcher - 26351-3349.log +13 -0
- data/spec/support/logs/Dispatcher - 26364-37456.log +19 -0
- data/spec/support/logs/Dispatcher - 26373-37340.log +21 -0
- data/spec/support/logs/Dispatcher - 26382-54864.log +15 -0
- data/spec/support/logs/Dispatcher - 26434-3070.log +17 -0
- data/spec/support/logs/Dispatcher - 26448-14295.log +21 -0
- data/spec/support/logs/Dispatcher - 26474-30587.log +13 -0
- data/spec/support/logs/Dispatcher - 26500-32529.log +17 -0
- data/spec/support/logs/Dispatcher - 26509-16952.log +21 -0
- data/spec/support/logs/Dispatcher - 26519-43332.log +13 -0
- data/spec/support/logs/Dispatcher - 26750-61867.log +19 -0
- data/spec/support/logs/Dispatcher - 26759-22532.log +21 -0
- data/spec/support/logs/Dispatcher - 26768-18231.log +15 -0
- data/spec/support/logs/Dispatcher - 26792-41661.log +21 -0
- data/spec/support/logs/Dispatcher - 26801-14384.log +25 -0
- data/spec/support/logs/Dispatcher - 26810-2591.log +15 -0
- data/spec/support/logs/Dispatcher - 26846-14591.log +17 -0
- data/spec/support/logs/Dispatcher - 26855-15708.log +21 -0
- data/spec/support/logs/Dispatcher - 26864-2062.log +13 -0
- data/spec/support/logs/Dispatcher - 26877-14471.log +21 -0
- data/spec/support/logs/Dispatcher - 26886-49795.log +25 -0
- data/spec/support/logs/Dispatcher - 26895-21093.log +15 -0
- data/spec/support/logs/Dispatcher - 26931-30049.log +17 -0
- data/spec/support/logs/Dispatcher - 26940-34273.log +21 -0
- data/spec/support/logs/Dispatcher - 26949-30040.log +13 -0
- data/spec/support/logs/Dispatcher - 26962-8152.log +17 -0
- data/spec/support/logs/Dispatcher - 26971-53062.log +21 -0
- data/spec/support/logs/Dispatcher - 26980-7548.log +13 -0
- data/spec/support/logs/Dispatcher - 2737-20989.log +19 -0
- data/spec/support/logs/Dispatcher - 2746-5423.log +21 -0
- data/spec/support/logs/Dispatcher - 2755-53393.log +15 -0
- data/spec/support/logs/Dispatcher - 27615-41812.log +19 -0
- data/spec/support/logs/Dispatcher - 27624-43683.log +21 -0
- data/spec/support/logs/Dispatcher - 27633-11593.log +15 -0
- data/spec/support/logs/Dispatcher - 27658-12186.log +21 -0
- data/spec/support/logs/Dispatcher - 27667-15575.log +25 -0
- data/spec/support/logs/Dispatcher - 27676-17207.log +15 -0
- data/spec/support/logs/Dispatcher - 27712-2233.log +17 -0
- data/spec/support/logs/Dispatcher - 27721-3842.log +21 -0
- data/spec/support/logs/Dispatcher - 27730-22695.log +13 -0
- data/spec/support/logs/Dispatcher - 27743-8364.log +21 -0
- data/spec/support/logs/Dispatcher - 27752-6140.log +25 -0
- data/spec/support/logs/Dispatcher - 27761-25015.log +15 -0
- data/spec/support/logs/Dispatcher - 27797-9270.log +17 -0
- data/spec/support/logs/Dispatcher - 2780-58168.log +21 -0
- data/spec/support/logs/Dispatcher - 27806-48623.log +21 -0
- data/spec/support/logs/Dispatcher - 27815-58778.log +13 -0
- data/spec/support/logs/Dispatcher - 27828-29742.log +17 -0
- data/spec/support/logs/Dispatcher - 27837-46211.log +21 -0
- data/spec/support/logs/Dispatcher - 27846-16143.log +13 -0
- data/spec/support/logs/Dispatcher - 2789-29375.log +25 -0
- data/spec/support/logs/Dispatcher - 2798-10983.log +15 -0
- data/spec/support/logs/Dispatcher - 2836-2354.log +17 -0
- data/spec/support/logs/Dispatcher - 2845-65341.log +21 -0
- data/spec/support/logs/Dispatcher - 2854-18936.log +13 -0
- data/spec/support/logs/Dispatcher - 2867-51979.log +21 -0
- data/spec/support/logs/Dispatcher - 2876-21086.log +25 -0
- data/spec/support/logs/Dispatcher - 2887-17393.log +15 -0
- data/spec/support/logs/Dispatcher - 2930-37394.log +17 -0
- data/spec/support/logs/Dispatcher - 2943-46737.log +21 -0
- data/spec/support/logs/Dispatcher - 2956-37866.log +13 -0
- data/spec/support/logs/Dispatcher - 2976-21012.log +17 -0
- data/spec/support/logs/Dispatcher - 2990-48082.log +21 -0
- data/spec/support/logs/Dispatcher - 2999-16391.log +13 -0
- data/spec/support/logs/{Instance - 10762-33696.error.log → Instance - 2204-45164.error.log } +59 -40
- data/spec/support/logs/{Instance - 11038-18065.error.log → Instance - 2475-49789.error.log } +61 -42
- data/spec/support/logs/{Instance - 11069-34848.error.log → Instance - 2509-39450.error.log } +158 -139
- data/spec/support/logs/{Instance - 11229-38634.error.log → Instance - 2533-5785.error.log } +56 -37
- data/spec/support/logs/Instance - 2539-42941.error.log +356 -0
- data/spec/support/logs/Instance - 26178-57631.error.log +324 -0
- data/spec/support/logs/Instance - 26458-60253.error.log +326 -0
- data/spec/support/logs/Instance - 26514-44685.error.log +423 -0
- data/spec/support/logs/Instance - 26538-43093.error.log +322 -0
- data/spec/support/logs/Instance - 26544-52217.error.log +328 -0
- data/spec/support/logs/{Instance - 11097-33191.error.log → Instance - 26682-37056.error.log } +65 -57
- data/spec/support/logs/{Instance - 11091-33954.error.log → Instance - 2669-56818.error.log } +56 -37
- data/spec/support/logs/Instance - 27547-3928.error.log +309 -0
- data/spec/support/servers/plugins/autologin.rb +13 -1
- metadata +974 -782
- data/spec/support/logs/Dispatcher - 10129-46995.log +0 -9
- data/spec/support/logs/Dispatcher - 10139-63648.log +0 -19
- data/spec/support/logs/Dispatcher - 10149-5551.log +0 -17
- data/spec/support/logs/Dispatcher - 10158-34385.log +0 -13
- data/spec/support/logs/Dispatcher - 10167-55701.log +0 -9
- data/spec/support/logs/Dispatcher - 10176-8922.log +0 -9
- data/spec/support/logs/Dispatcher - 10185-53716.log +0 -11
- data/spec/support/logs/Dispatcher - 10198-44724.log +0 -11
- data/spec/support/logs/Dispatcher - 10211-7697.log +0 -11
- data/spec/support/logs/Dispatcher - 10224-3751.log +0 -35
- data/spec/support/logs/Dispatcher - 10285-7404.log +0 -21
- data/spec/support/logs/Dispatcher - 10294-56221.log +0 -21
- data/spec/support/logs/Dispatcher - 10303-2483.log +0 -23
- data/spec/support/logs/Dispatcher - 10344-60543.log +0 -19
- data/spec/support/logs/Dispatcher - 10355-31708.log +0 -17
- data/spec/support/logs/Dispatcher - 10364-63170.log +0 -15
- data/spec/support/logs/Dispatcher - 10377-37936.log +0 -11
- data/spec/support/logs/Dispatcher - 10390-37511.log +0 -9
- data/spec/support/logs/Dispatcher - 10400-29603.log +0 -9
- data/spec/support/logs/Dispatcher - 10409-57042.log +0 -9
- data/spec/support/logs/Dispatcher - 10418-17812.log +0 -9
- data/spec/support/logs/Dispatcher - 10427-59862.log +0 -11
- data/spec/support/logs/Dispatcher - 10440-48351.log +0 -9
- data/spec/support/logs/Dispatcher - 10449-24218.log +0 -9
- data/spec/support/logs/Dispatcher - 10458-54646.log +0 -9
- data/spec/support/logs/Dispatcher - 10511-3333.log +0 -63
- data/spec/support/logs/Dispatcher - 10520-50009.log +0 -43
- data/spec/support/logs/Dispatcher - 10529-44870.log +0 -39
- data/spec/support/logs/Dispatcher - 10538-49556.log +0 -34
- data/spec/support/logs/Dispatcher - 10547-61887.log +0 -28
- data/spec/support/logs/Dispatcher - 10556-31163.log +0 -21
- data/spec/support/logs/Dispatcher - 10565-40008.log +0 -13
- data/spec/support/logs/Dispatcher - 10575-18836.log +0 -9
- data/spec/support/logs/Dispatcher - 10747-32268.log +0 -19
- data/spec/support/logs/Dispatcher - 10757-4081.log +0 -21
- data/spec/support/logs/Dispatcher - 10766-49190.log +0 -15
- data/spec/support/logs/Dispatcher - 10780-46610.log +0 -19
- data/spec/support/logs/Dispatcher - 10789-5332.log +0 -21
- data/spec/support/logs/Dispatcher - 10798-56243.log +0 -15
- data/spec/support/logs/Dispatcher - 10920-32037.log +0 -17
- data/spec/support/logs/Dispatcher - 10929-35662.log +0 -21
- data/spec/support/logs/Dispatcher - 10938-64010.log +0 -13
- data/spec/support/logs/Dispatcher - 10951-44746.log +0 -19
- data/spec/support/logs/Dispatcher - 10961-55791.log +0 -21
- data/spec/support/logs/Dispatcher - 10972-58913.log +0 -15
- data/spec/support/logs/Dispatcher - 11023-45004.log +0 -17
- data/spec/support/logs/Dispatcher - 11033-55505.log +0 -21
- data/spec/support/logs/Dispatcher - 11042-46123.log +0 -13
- data/spec/support/logs/Dispatcher - 11055-26836.log +0 -17
- data/spec/support/logs/Dispatcher - 11064-60361.log +0 -21
- data/spec/support/logs/Dispatcher - 11073-17507.log +0 -13
- data/spec/support/logs/Dispatcher - 11298-28357.log +0 -19
- data/spec/support/logs/Dispatcher - 11307-62669.log +0 -21
- data/spec/support/logs/Dispatcher - 11316-9391.log +0 -15
- data/spec/support/logs/Dispatcher - 11340-45921.log +0 -21
- data/spec/support/logs/Dispatcher - 11349-8693.log +0 -25
- data/spec/support/logs/Dispatcher - 11358-53753.log +0 -15
- data/spec/support/logs/Dispatcher - 11394-29437.log +0 -17
- data/spec/support/logs/Dispatcher - 11403-59953.log +0 -21
- data/spec/support/logs/Dispatcher - 11412-51134.log +0 -13
- data/spec/support/logs/Dispatcher - 11425-42569.log +0 -21
- data/spec/support/logs/Dispatcher - 11434-16150.log +0 -25
- data/spec/support/logs/Dispatcher - 11443-19072.log +0 -15
- data/spec/support/logs/Dispatcher - 11479-39149.log +0 -17
- data/spec/support/logs/Dispatcher - 11488-42169.log +0 -21
- data/spec/support/logs/Dispatcher - 11497-29822.log +0 -13
- data/spec/support/logs/Dispatcher - 11510-8273.log +0 -17
- data/spec/support/logs/Dispatcher - 11519-18206.log +0 -21
- data/spec/support/logs/Dispatcher - 11528-55825.log +0 -13
- data/spec/support/logs/Dispatcher - 9969-52890.log +0 -9
- data/spec/support/logs/Dispatcher - 9996-38451.log +0 -21
data/modules/recon/backdoors.rb
CHANGED
@@ -14,13 +14,10 @@
|
|
14
14
|
limitations under the License.
|
15
15
|
=end
|
16
16
|
|
17
|
-
#
|
18
17
|
# Looks for common backdoors on the server.
|
19
18
|
#
|
20
19
|
# @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
|
21
|
-
#
|
22
|
-
# @version 0.2.2
|
23
|
-
#
|
20
|
+
# @version 0.2.3
|
24
21
|
class Arachni::Modules::Backdoors < Arachni::Module::Base
|
25
22
|
|
26
23
|
def self.filenames
|
@@ -41,21 +38,42 @@ class Arachni::Modules::Backdoors < Arachni::Module::Base
|
|
41
38
|
description: %q{Tries to find common backdoors on the server.},
|
42
39
|
elements: [Element::PATH],
|
43
40
|
author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com> ',
|
44
|
-
version: '0.2.
|
41
|
+
version: '0.2.3',
|
45
42
|
targets: %w(Generic),
|
46
43
|
references: {
|
47
44
|
'Blackhat' => 'https://www.blackhat.com/presentations/bh-usa-07/Wysopal_and_Eng/Presentation/bh-usa-07-wysopal_and_eng.pdf'
|
48
45
|
},
|
49
46
|
issue: {
|
50
47
|
name: %q{A backdoor file exists on the server},
|
51
|
-
description: %q{
|
52
|
-
|
53
|
-
|
54
|
-
|
48
|
+
description: %q{If a server has been previously compromised,
|
49
|
+
there is a high probability that the cyber-criminal has
|
50
|
+
installed a backdoor so that they can easily return to the
|
51
|
+
server if required. One method of achieving this is to place
|
52
|
+
a web backdoor or web shell within the web root of the web
|
53
|
+
server. This will then enable the cyber-criminal to access
|
54
|
+
the server through a HTTP/S session. Although extremely bad
|
55
|
+
practice, it is possible that the web backdoor or web shell
|
56
|
+
has been placed there by an administrator so they can
|
57
|
+
perform administration activities remotely. During the
|
58
|
+
initial recon stages of an attack cyber-criminals will
|
59
|
+
attempt to locate these web backdoors or shells by
|
60
|
+
requesting the names of the most common and well known
|
61
|
+
backdoors. By analysing the response headers from the server
|
62
|
+
they are able to determine if a web backdoor or web shell
|
63
|
+
exists. These web backdoors or web shells can then provide
|
64
|
+
an easy path for further compromise of the server. By
|
65
|
+
utilising the same methods as the cyber-criminals, Arachni
|
66
|
+
was able to discover a possible web backdoor or web shell.},
|
55
67
|
tags: %w(path backdoor file discovery),
|
56
68
|
severity: Severity::HIGH,
|
57
|
-
remedy_guidance: %q{
|
58
|
-
|
69
|
+
remedy_guidance: %q{If manual confirmation reveals that a web
|
70
|
+
backdoor or web shell does exist on the server then it
|
71
|
+
should be removed. It is also recommended that an incident
|
72
|
+
response investigation be conducted on the server to
|
73
|
+
establish how the web backdoor or web shell came to end up
|
74
|
+
on the server. Depending on the environment, investigation
|
75
|
+
into the compromise of any other services or servers should
|
76
|
+
be conducted.}
|
59
77
|
}
|
60
78
|
|
61
79
|
}
|
@@ -14,17 +14,13 @@
|
|
14
14
|
limitations under the License.
|
15
15
|
=end
|
16
16
|
|
17
|
-
#
|
18
17
|
# Backup file discovery module.
|
19
18
|
#
|
20
19
|
# Appends common backup extentions to the filename of the page under audit<br/>
|
21
20
|
# and checks for its existence.
|
22
21
|
#
|
23
22
|
# @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
|
24
|
-
#
|
25
|
-
# @version 0.2.2
|
26
|
-
#
|
27
|
-
#
|
23
|
+
# @version 0.2.3
|
28
24
|
class Arachni::Modules::BackupFiles < Arachni::Module::Base
|
29
25
|
|
30
26
|
def self.extensions
|
@@ -59,23 +55,43 @@ class Arachni::Modules::BackupFiles < Arachni::Module::Base
|
|
59
55
|
description: %q{Tries to find sensitive backup files.},
|
60
56
|
elements: [ Element::PATH ],
|
61
57
|
author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com> ',
|
62
|
-
version: '0.2.
|
58
|
+
version: '0.2.3',
|
63
59
|
targets: %w(Generic),
|
64
60
|
references: {
|
65
|
-
'
|
61
|
+
'WASC 1' => 'http://www.webappsec.org/projects/threat/classes/information_leakage.shtml',
|
62
|
+
'WASC 2' => 'http://projects.webappsec.org/w/page/13246953/Predictable%20Resource%20Location'
|
66
63
|
},
|
67
64
|
issue: {
|
68
65
|
name: %q{Backup file},
|
69
|
-
description: %q{
|
70
|
-
|
71
|
-
|
72
|
-
|
66
|
+
description: %q{A common practice when administering web
|
67
|
+
applications is to create a copy/backup of a particular file
|
68
|
+
or directory prior to making any modification to the file.
|
69
|
+
Another common practice is to add an extension or change the
|
70
|
+
name of the original file to signify that it is a backup
|
71
|
+
(examples include .bak, .orig, .backup, etc.). During the
|
72
|
+
initial recon stages of an attack, cyber-criminals will
|
73
|
+
attempt to locate backup files by adding common extensions
|
74
|
+
onto files already discovered on the webserver. By analysing
|
75
|
+
the response headers from the server they are able to
|
76
|
+
determine if the backup file exists. These backup files can
|
77
|
+
then assist in further compromise of the web application. By
|
78
|
+
utilising the same method, Arachni was able to discover a
|
79
|
+
possible backup file.},
|
73
80
|
tags: %w(path backup file discovery),
|
74
81
|
cew: '530',
|
75
82
|
severity: Severity::MEDIUM,
|
76
|
-
remedy_guidance: %q{Do not keep
|
77
|
-
|
78
|
-
|
83
|
+
remedy_guidance: %q{Do not keep obsolete versions of files
|
84
|
+
under the virtual web server root. When updating the
|
85
|
+
site, delete or move the files to a directory outside the
|
86
|
+
virtual root, edit them there, and move (or copy) the files
|
87
|
+
back to the virtual root. Make sure that only the files that
|
88
|
+
are actually in use reside under the virtual root.
|
89
|
+
Preventing access without authentication may also be an
|
90
|
+
option and stop a client being able to view the contents of
|
91
|
+
a file, however it is still likely that the filenames will be
|
92
|
+
able to be discovered. Using obscure filenames is only
|
93
|
+
implementing security through obscurity and is not a
|
94
|
+
recommended option.}
|
79
95
|
}
|
80
96
|
|
81
97
|
}
|
@@ -14,17 +14,13 @@
|
|
14
14
|
limitations under the License.
|
15
15
|
=end
|
16
16
|
|
17
|
-
#
|
18
17
|
# Common directories discovery module.
|
19
18
|
#
|
20
19
|
# Looks for common, possibly sensitive, directories on the server.
|
21
20
|
#
|
22
21
|
# @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
|
23
|
-
#
|
24
|
-
# @version 0.2.2
|
25
|
-
#
|
22
|
+
# @version 0.2.3
|
26
23
|
# @see http://cwe.mitre.org/data/definitions/538.html
|
27
|
-
#
|
28
24
|
class Arachni::Modules::CommonDirectories < Arachni::Module::Base
|
29
25
|
|
30
26
|
def self.directories
|
@@ -48,18 +44,41 @@ class Arachni::Modules::CommonDirectories < Arachni::Module::Base
|
|
48
44
|
description: %q{Tries to find common directories on the server.},
|
49
45
|
elements: [ Element::PATH ],
|
50
46
|
author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com> ',
|
51
|
-
version: '0.2.
|
47
|
+
version: '0.2.3',
|
52
48
|
targets: %w(Generic),
|
53
49
|
references: {
|
54
50
|
'CWE' => 'http://cwe.mitre.org/data/definitions/538.html',
|
55
|
-
'OWASP' => 'https://www.owasp.org/index.php/Forced_browsing'
|
51
|
+
'OWASP' => 'https://www.owasp.org/index.php/Forced_browsing',
|
52
|
+
'WASC' => 'http://projects.webappsec.org/w/page/13246953/Predictable%20Resource%20Location'
|
56
53
|
},
|
57
54
|
issue: {
|
58
55
|
name: %q{Common directory},
|
56
|
+
description: %q{Web applications are often made up of
|
57
|
+
multiple files and directories. It is possible that over
|
58
|
+
time some directories may become unreferenced (unused) by the
|
59
|
+
web application and forgotten about by the
|
60
|
+
administrator/developer. Because web applications are built
|
61
|
+
using common frameworks, they contain common directories
|
62
|
+
that can be discovered (independent of server). During the
|
63
|
+
initial recon stages of an attack, cyber-criminals will
|
64
|
+
attempt to locate unreferenced directories in the hope that
|
65
|
+
the file will assist in further compromise of the web
|
66
|
+
application. To achieve this they will make thousands of
|
67
|
+
requests using word lists containing common filenames. The
|
68
|
+
response headers from the server will then indicate if the
|
69
|
+
file exists. Arachni also contains a list of common file
|
70
|
+
names which it will attempt to access.},
|
59
71
|
tags: %w(path directory common discovery),
|
60
72
|
cwe: '538',
|
61
73
|
severity: Severity::MEDIUM,
|
62
|
-
remedy_guidance: %q{
|
74
|
+
remedy_guidance: %q{If directories are unreferenced then they
|
75
|
+
should be removed from the web root, and/or the application
|
76
|
+
directory. Preventing access without authentication may also
|
77
|
+
be an option and can stop a client from being able to view the
|
78
|
+
contents of a file, however it is still likely that the
|
79
|
+
directory structure will be able to be discovered. Using
|
80
|
+
obscure directory names is implementing security through
|
81
|
+
obscurity and is not a recommended option.}
|
63
82
|
}
|
64
83
|
|
65
84
|
}
|
@@ -14,13 +14,10 @@
|
|
14
14
|
limitations under the License.
|
15
15
|
=end
|
16
16
|
|
17
|
-
#
|
18
17
|
# Looks for sensitive common files on the server.
|
19
18
|
#
|
20
19
|
# @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
|
21
|
-
#
|
22
|
-
# @version 0.2.2
|
23
|
-
#
|
20
|
+
# @version 0.2.3
|
24
21
|
class Arachni::Modules::CommonFiles < Arachni::Module::Base
|
25
22
|
|
26
23
|
def self.filenames
|
@@ -41,16 +38,39 @@ class Arachni::Modules::CommonFiles < Arachni::Module::Base
|
|
41
38
|
description: %q{Tries to find common sensitive files on the server.},
|
42
39
|
elements: [ Element::PATH ],
|
43
40
|
author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com> ',
|
44
|
-
version: '0.2.
|
41
|
+
version: '0.2.3',
|
45
42
|
targets: %w(Generic),
|
46
43
|
references: {
|
47
|
-
'Apache.org' => 'http://httpd.apache.org/docs/2.0/mod/mod_access.html'
|
44
|
+
'Apache.org' => 'http://httpd.apache.org/docs/2.0/mod/mod_access.html',
|
45
|
+
'WASC' => 'http://projects.webappsec.org/w/page/13246953/Predictable%20Resource%20Location'
|
48
46
|
},
|
49
47
|
issue: {
|
50
48
|
name: %q{Common sensitive file},
|
49
|
+
description: %q{Web applications are often made up of
|
50
|
+
multiple files and directories, however it is possible that
|
51
|
+
over time some files may become unreferenced (unused) by the
|
52
|
+
web application and forgotten by the administrator/developer.
|
53
|
+
Because web applications are built
|
54
|
+
using common frameworks, they contain common files that can
|
55
|
+
be discovered (independent of server). During the initial recon
|
56
|
+
stages of an attack cyber-criminals will attempt to locate
|
57
|
+
unreferenced files in the hope that the file will assist in
|
58
|
+
further compromise of the web application. To achieve this
|
59
|
+
they will make thousands of requests using word lists
|
60
|
+
containing common filenames. The response headers from the
|
61
|
+
server will then indicate if the file exists. Arachni also
|
62
|
+
contains a list of common file names which it will attempt
|
63
|
+
to access.},
|
51
64
|
tags: %w(common path file discovery),
|
52
65
|
severity: Severity::LOW,
|
53
|
-
remedy_guidance: %q{
|
66
|
+
remedy_guidance: %q{If files are unreferenced then they should
|
67
|
+
be removed from the web root, and/or the application
|
68
|
+
directory. Preventing access without authentication may also
|
69
|
+
be an option and stop a client from being able to view the
|
70
|
+
contents of a file, however it is still likely that the
|
71
|
+
filenames will be able to be discovered. Using obscure
|
72
|
+
filenames is only implementing security through obscurity
|
73
|
+
and is not a recommended option.}
|
54
74
|
}
|
55
75
|
}
|
56
76
|
end
|
@@ -14,15 +14,12 @@
|
|
14
14
|
limitations under the License.
|
15
15
|
=end
|
16
16
|
|
17
|
-
#
|
18
17
|
# Tries to force directory listings.
|
19
18
|
#
|
20
19
|
# Can't take credit for this one, it's Michal's (lcamtuf's) method from Skipfish.
|
21
20
|
#
|
22
21
|
# @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
|
23
|
-
#
|
24
|
-
# @version 0.1.4
|
25
|
-
#
|
22
|
+
# @version 0.1.5
|
26
23
|
class Arachni::Modules::DirectoryListing < Arachni::Module::Base
|
27
24
|
|
28
25
|
# The compared pages must be at least 75% different
|
@@ -92,20 +89,43 @@ class Arachni::Modules::DirectoryListing < Arachni::Module::Base
|
|
92
89
|
description: %q{Tries to force directory listings.},
|
93
90
|
elements: [ Element::SERVER ],
|
94
91
|
author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>',
|
95
|
-
version: '0.1.
|
92
|
+
version: '0.1.5',
|
96
93
|
targets: %w(Generic),
|
97
94
|
references: {
|
98
|
-
'CWE' => 'http://cwe.mitre.org/data/definitions/548.html'
|
95
|
+
'CWE' => 'http://cwe.mitre.org/data/definitions/548.html',
|
96
|
+
'WASC' => 'http://projects.webappsec.org/w/page/13246922/Directory%20Indexing'
|
99
97
|
},
|
100
98
|
issue: {
|
101
99
|
name: %q{Directory listing},
|
102
|
-
description: %q{
|
103
|
-
|
100
|
+
description: %q{Web servers permitting directory listing are
|
101
|
+
typically used for sharing files. Directory listing allows
|
102
|
+
the client to view a simple list of all the files and
|
103
|
+
folders hosted on the web server. The client is then able to
|
104
|
+
traverse each directory and download the files. Cyber-
|
105
|
+
criminals will utilise the presence of directory listing to
|
106
|
+
discover sensitive files, download protected content, or
|
107
|
+
even just learn how the web application is structured.
|
108
|
+
Arachni discovered that the affected page permits directory
|
109
|
+
listing.},
|
104
110
|
tags: %w(path directory listing index),
|
105
111
|
cwe: '548',
|
106
112
|
severity: Severity::LOW,
|
107
|
-
remedy_guidance: %q{
|
108
|
-
|
113
|
+
remedy_guidance: %q{Unless the web server is being utilised to
|
114
|
+
share static and non-sensitive files, enabling
|
115
|
+
directory listing is considered a poor security practice
|
116
|
+
and therefore should be disabled. This can typically be done
|
117
|
+
with a simple configuration change on the server. The steps
|
118
|
+
to disable the directory listing will differ depending on
|
119
|
+
the type of server being used (IIS, Apache, etc.). If
|
120
|
+
directory listing is required, and permitted, then steps
|
121
|
+
should be taken to ensure that the risk of such a configuration
|
122
|
+
is reduced. These can include: 1. Requiring
|
123
|
+
authentication to access affected pages. 2. Adding the
|
124
|
+
affected path to the robots.txt file to prevent the
|
125
|
+
directory contents being searchable via search engines. 3.
|
126
|
+
Ensuring that sensitive files are not stored within the
|
127
|
+
web or document root. 4. Removing any files that are not
|
128
|
+
required for the application to function.}
|
109
129
|
}
|
110
130
|
}
|
111
131
|
end
|
@@ -14,12 +14,8 @@
|
|
14
14
|
limitations under the License.
|
15
15
|
=end
|
16
16
|
|
17
|
-
#
|
18
|
-
#
|
19
17
|
# @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
|
20
|
-
#
|
21
|
-
# @version 0.1.1
|
22
|
-
#
|
18
|
+
# @version 0.1.2
|
23
19
|
class Arachni::Modules::CAPTCHA < Arachni::Module::Base
|
24
20
|
|
25
21
|
CAPTCHA_RX = /captcha/i
|
@@ -42,12 +38,34 @@ class Arachni::Modules::CAPTCHA < Arachni::Module::Base
|
|
42
38
|
description: %q{Greps pages for forms with CAPTCHAs.},
|
43
39
|
elements: [ Element::FORM ],
|
44
40
|
author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>',
|
45
|
-
version: '0.1.
|
41
|
+
version: '0.1.2',
|
42
|
+
references: {
|
43
|
+
'WASC' => 'http://projects.webappsec.org/w/page/13246938/Insufficient%20Anti-automation',
|
44
|
+
},
|
46
45
|
targets: %w(Generic),
|
47
46
|
issue: {
|
48
47
|
name: %q{CAPTCHA protected form},
|
49
|
-
description: %q{
|
50
|
-
|
48
|
+
description: %q{To prevent the automated abuse of a page,
|
49
|
+
applications can implement what is known as a CAPTCHA. These
|
50
|
+
are used to ensure human interaction with the application,
|
51
|
+
and are often used on forms where the application conducts
|
52
|
+
sensitive actions. These typically include user registration,
|
53
|
+
or submitting emails via the contact us page etc. Arachni
|
54
|
+
has flagged this not as a vulnerability, but as a prompt for
|
55
|
+
the penetration tester to conduct further manual testing on
|
56
|
+
the CAPTCHA function, as Arachni cannon audit CAPTCHA
|
57
|
+
protected forms. Testing for insecurely implemented CAPTCHA
|
58
|
+
is a manual process, and an insecurely implemented CAPTCHA
|
59
|
+
could allow a cyber-criminal a means to abuse these sensitive actions. },
|
60
|
+
severity: Severity::INFORMATIONAL,
|
61
|
+
remedy_guidance: %q{Although no remediation may be required
|
62
|
+
based off of this finding alone, manual testing should
|
63
|
+
ensure that: 1. The server keeps track of CAPTCHA tokens in
|
64
|
+
use, and has the token terminated by the server after first
|
65
|
+
use or after a period of time. Therefore preventing replay
|
66
|
+
attacks 2. The CAPTCHA answer is not hidden in plain text
|
67
|
+
within the response that is sent to the client. 3. The
|
68
|
+
CAPTCHA image should not be weak and easily solved.},
|
51
69
|
},
|
52
70
|
max_issues: 25
|
53
71
|
}
|
@@ -14,17 +14,15 @@
|
|
14
14
|
limitations under the License.
|
15
15
|
=end
|
16
16
|
|
17
|
-
#
|
18
17
|
# Credit Card Number recon module.
|
19
18
|
#
|
20
19
|
# Scans page for credit card numbers.
|
21
20
|
#
|
22
21
|
# @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
|
23
|
-
# @version 0.2.
|
22
|
+
# @version 0.2.3
|
24
23
|
#
|
25
24
|
# @see http://en.wikipedia.org/wiki/Bank_card_number
|
26
25
|
# @see http://en.wikipedia.org/wiki/Luhn_algorithm
|
27
|
-
#
|
28
26
|
class Arachni::Modules::CreditCards < Arachni::Module::Base
|
29
27
|
|
30
28
|
def self.cc_regexp
|
@@ -89,7 +87,7 @@ class Arachni::Modules::CreditCards < Arachni::Module::Base
|
|
89
87
|
description: %q{Scans pages for credit card numbers.},
|
90
88
|
elements: [ Element::BODY ],
|
91
89
|
author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>',
|
92
|
-
version: '0.2.
|
90
|
+
version: '0.2.3',
|
93
91
|
references: {
|
94
92
|
'Wikipedia - Bank card number' => 'http://en.wikipedia.org/wiki/Bank_card_number',
|
95
93
|
'Wikipedia - Luhn algorithm' => 'http://en.wikipedia.org/wiki/Luhn_algorithm',
|
@@ -98,10 +96,31 @@ class Arachni::Modules::CreditCards < Arachni::Module::Base
|
|
98
96
|
targets: %w(Generic),
|
99
97
|
issue: {
|
100
98
|
name: %q{Credit card number disclosure},
|
101
|
-
description: %q{
|
99
|
+
description: %q{Credit card numbers are used in applications
|
100
|
+
where a user is able to purchase goods and/or services. A
|
101
|
+
credit card number is a sensitive piece of information and
|
102
|
+
should be handled as such. Cyber-criminals will use various
|
103
|
+
methods to attempt to compromise credit card information
|
104
|
+
that can then be used for fraudulent purposes. Through the
|
105
|
+
use of regular expressions and CC number format validation,
|
106
|
+
Arachni was able to discover a credit card number located
|
107
|
+
within the affected page.},
|
102
108
|
cwe: '200',
|
103
109
|
severity: Severity::MEDIUM,
|
104
|
-
remedy_guidance: %q{
|
110
|
+
remedy_guidance: %q{Initially, the credit card number within the
|
111
|
+
response should be checked to ensure its validity, as it is
|
112
|
+
possible that the regular expression has matched on a
|
113
|
+
similar number with no relation to a real credit card. If
|
114
|
+
the response does contain a valid credit card number, then
|
115
|
+
all efforts should be taken to remove or further protect
|
116
|
+
this information. This can be achieved by removing the
|
117
|
+
credit card number all together, or by masking the number so
|
118
|
+
that only the last few digits are present within the
|
119
|
+
response. eg. **********123. Additionally, credit card
|
120
|
+
numbers should not be stored by the application, unless the
|
121
|
+
organisation also complies with other security controls as
|
122
|
+
outlined in the Payment Card Industry Data Security Standard
|
123
|
+
(PCI DSS).},
|
105
124
|
}
|
106
125
|
}
|
107
126
|
end
|
@@ -14,14 +14,12 @@
|
|
14
14
|
limitations under the License.
|
15
15
|
=end
|
16
16
|
|
17
|
-
#
|
18
17
|
# CVS/SVN users recon module.
|
19
18
|
#
|
20
19
|
# Scans every page for CVS/SVN users.
|
21
20
|
#
|
22
21
|
# @author Tasos Laskos <tasos.laskos@gmail.com>
|
23
|
-
# @version 0.3
|
24
|
-
#
|
22
|
+
# @version 0.3.1
|
25
23
|
class Arachni::Modules::CvsSvnUsers < Arachni::Module::Base
|
26
24
|
|
27
25
|
def self.regexps
|
@@ -45,17 +43,36 @@ class Arachni::Modules::CvsSvnUsers < Arachni::Module::Base
|
|
45
43
|
description: %q{Scans every page for CVS/SVN users.},
|
46
44
|
elements: [ Element::BODY ],
|
47
45
|
author: 'Tasos Laskos <tasos.laskos@gmail.com>',
|
48
|
-
version: '0.3',
|
46
|
+
version: '0.3.1',
|
49
47
|
targets: %w(Generic),
|
50
48
|
references: {
|
51
49
|
'CWE' => 'http://cwe.mitre.org/data/definitions/200.html'
|
52
50
|
},
|
53
51
|
issue: {
|
54
52
|
name: %q{CVS/SVN user disclosure},
|
55
|
-
description: %q{
|
53
|
+
description: %q{Concurrent Version System (CVS) and
|
54
|
+
Subversion (SVN) provide a method for application developers
|
55
|
+
to control different versions of their code. Occasionally,
|
56
|
+
the developer's version or user information can be stored
|
57
|
+
incorrectly within the code and may be visible to the end
|
58
|
+
user (either in the HTML or code comments). As one of the
|
59
|
+
initial steps in information gathering, cyber-criminals will
|
60
|
+
spider a website and using automated methods attempt to
|
61
|
+
discover any CVS/SVN information that may be present in the
|
62
|
+
page. This will aid them in developing a better
|
63
|
+
understanding of the deployed application (potentially
|
64
|
+
through the disclosure of version information), or it may
|
65
|
+
assist in further information gathering or social
|
66
|
+
engineering attacks. Using the same automated methods,
|
67
|
+
Arachni was able to detect CVS or SVN details stored within
|
68
|
+
the affected page.},
|
56
69
|
cwe: '200',
|
57
70
|
severity: Severity::LOW,
|
58
|
-
remedy_guidance: %q{
|
71
|
+
remedy_guidance: %q{CVS and/or SVN information should not be
|
72
|
+
displayed to the end user. This can be achieved by removing
|
73
|
+
this information all together prior to deployment, or by
|
74
|
+
putting this information into a server side (PHP, ASP, JSP,
|
75
|
+
etc) code comment block as opposed to a HTML code comment.},
|
59
76
|
},
|
60
77
|
max_issues: 25
|
61
78
|
}
|