Arachni กำลังมุ่งหน้าสู่ความล้าสมัยลองใช้ชื่อผู้สืบทอดรุ่นต่อไป ECSypno SCNR!
| รุ่น | 1.6.1.3 |
|---|---|
| หน้าแรก | http://arachni-scanner.com |
| บล็อก | http://arachni-scanner.com/blog |
| คนอื่น ๆ | http://github.com/arachni/arachni |
| เอกสาร | https://github.com/arachni/arachni/wiki |
| เอกสารรหัส | http://rubydoc.info/github/arachni/arachni |
| สนับสนุน | http://support.arachni-scanner.com |
| ผู้เขียน | tasos laskos (@zap0tek) |
| @arachniscanner | |
| ลิขสิทธิ์ | 2010-2022 ECSYPNO |
| ใบอนุญาต | ใบอนุญาต Public Source Arachni V1.0 - (ดูไฟล์ใบอนุญาต) |
Arachni เป็นเฟรมเวิร์กที่มีคุณสมบัติเต็มรูปแบบแบบโมดูลาร์และมีประสิทธิภาพสูงเพื่อช่วยผู้ทดสอบและผู้ดูแลระบบประเมินความปลอดภัยของเว็บแอปพลิเคชัน
มันฉลาดมันฝึกฝนตัวเองโดยการตรวจสอบและเรียนรู้จากพฤติกรรมของเว็บแอปพลิเคชันในระหว่างกระบวนการสแกนและสามารถทำการวิเคราะห์อภิมานโดยใช้ปัจจัยหลายประการเพื่อประเมินความน่าเชื่อถือของผลลัพธ์อย่างถูกต้องและระบุ (หรือหลีกเลี่ยง) อย่างชาญฉลาด
ซึ่งแตกต่างจากสแกนเนอร์อื่น ๆ คำนึงถึงลักษณะแบบไดนามิกของเว็บแอปพลิเคชันสามารถตรวจจับการเปลี่ยนแปลงที่เกิดขึ้นในขณะที่เดินทางผ่านเส้นทางของความซับซ้อนของเว็บแอปพลิเคชันและสามารถปรับตัวเองได้ ด้วยวิธีนี้เวกเตอร์โจมตี/อินพุตที่ไม่สามารถตรวจจับได้โดยผู้ที่ไม่ใช่มนุษย์สามารถจัดการได้อย่างราบรื่น
ยิ่งไปกว่านั้นเนื่องจากสภาพแวดล้อมเบราว์เซอร์แบบบูรณาการยังสามารถตรวจสอบและตรวจสอบรหัสฝั่งไคลเอ็นต์รวมถึงการสนับสนุนเว็บแอปพลิเคชันที่มีความซับซ้อนสูงซึ่งใช้ประโยชน์จากเทคโนโลยีอย่างหนักเช่น JavaScript, HTML5, การจัดการ DOM และ AJAX
ในที่สุดมันก็มีความหลากหลายเพียงพอที่จะครอบคลุมกรณีการใช้งานจำนวนมากตั้งแต่ยูทิลิตี้สแกนเนอร์บรรทัดคำสั่งง่าย ๆ ไปจนถึงตารางประสิทธิภาพสูงทั่วโลกของสแกนเนอร์ไปจนถึงห้องสมุดทับทิมที่อนุญาตให้ตรวจสอบสคริปต์ไปยังแพลตฟอร์มการทำงานร่วมกันของผู้ใช้เว็บหลายคน
หมายเหตุ : แม้ว่าข้อเท็จจริงที่ว่า Arachni ส่วนใหญ่จะถูกกำหนดเป้าหมายไปยังความปลอดภัยของแอปพลิเคชันเว็บ แต่ก็สามารถใช้งานได้ง่ายสำหรับการขูดวัตถุประสงค์ทั่วไปการขุดข้อมูล ฯลฯ ด้วยการเพิ่มส่วนประกอบที่กำหนดเอง
Check report และนักพัฒนา plugin ได้รับอนุญาตให้สร้างและปรับใช้ส่วนประกอบได้อย่างง่ายดายและรวดเร็วด้วยจำนวนข้อ จำกัด ขั้นต่ำที่กำหนดไว้ในขณะที่ได้รับโครงสร้างพื้นฐานที่จำเป็นเพื่อให้บรรลุเป้าหมาย
นอกจากนี้พวกเขาได้รับการสนับสนุนให้ใช้ประโยชน์จากภาษาทับทิมอย่างเต็มที่ภายใต้กรอบการทำงานแบบครบวงจรที่จะเพิ่มผลผลิตของพวกเขาโดยไม่ยับยั้งพวกเขาหรือทำให้งานของพวกเขาซับซ้อนขึ้น
ยิ่งไปกว่านั้นเฟรมเวิร์กเดียวกันนั้นสามารถใช้เป็นห้องสมุดทับทิมอื่น ๆ และนำไปสู่การพัฒนาสแกนเนอร์ใหม่เอี่ยมหรือช่วยให้คุณสร้างสถานการณ์การสแกน/ตรวจสอบที่กำหนดเองสูงและ/หรือสแกนสแกน
แม้ว่าบางส่วนของเฟรมเวิร์กจะซับซ้อนพอสมควร แต่คุณจะไม่ต้องจัดการโดยตรง จากมุมมองของผู้ใช้หรือผู้พัฒนาส่วนประกอบทุกอย่างจะดูเรียบง่ายและตรงไปตรงมาตลอดเวลาในขณะที่ให้พลังงานประสิทธิภาพและความยืดหยุ่น
จากสแกนเนอร์ยูทิลิตี้บรรทัดคำสั่งอย่างง่ายไปจนถึงเว็บอินเตอร์เฟสและแพลตฟอร์มการทำงานร่วมกันที่ใช้งานง่ายและใช้งานง่าย Arachni เป็นไปตามหลักการของความประหลาดใจน้อยที่สุดและให้ข้อเสนอแนะและคำแนะนำมากมายแก่คุณ
Arachni ได้รับการออกแบบมาเพื่อตรวจจับปัญหาความปลอดภัยในเว็บแอปพลิเคชันโดยอัตโนมัติ สิ่งที่คาดหวังคือ URL ของเว็บไซต์เป้าหมายและหลังจากนั้นไม่นานมันจะนำเสนอผลการวิจัยของคุณ
autologin , login_script หรือปลั๊กอิน proxy )Arachni รวมถึงสภาพแวดล้อมเบราว์เซอร์จริงแบบบูรณาการเพื่อให้ความคุ้มครองเพียงพอสำหรับเว็บแอปพลิเคชันที่ทันสมัยซึ่งใช้ประโยชน์จากเทคโนโลยีเช่น HTML5, JavaScript, การจัดการ DOM, AJAX ฯลฯ
นอกเหนือจากการตรวจสอบสภาพแวดล้อมวานิลลา Dom และ JavaScript แล้วเบราว์เซอร์ของ Arachni ยังเชื่อมต่อกับเฟรมเวิร์กยอดนิยมเพื่อให้ข้อมูลที่บันทึกง่ายขึ้นในการย่อย:
ในสาระสำคัญสิ่งนี้เปลี่ยน Arachni เป็นดีบักเกอร์ DOM และ JavaScript ช่วยให้สามารถตรวจสอบเหตุการณ์ DOM และข้อมูล JavaScript และกระแสการดำเนินการ เป็นผลให้ระบบไม่เพียง แต่สามารถกระตุ้นและระบุปัญหาที่ใช้ DOM แต่จะมาพร้อมกับข้อมูลมากมายเกี่ยวกับสถานะของหน้าในเวลานั้น
ข้อมูลที่เกี่ยวข้อง ได้แก่ :
DOMWindow )decodeURIComponent() )ในสาระสำคัญคุณสามารถเข้าถึงข้อมูลเดียวกันกับที่ดีบักเกอร์ที่คุณชื่นชอบ (ตัวอย่างเช่น Firebug) จะให้ราวกับว่าคุณได้ตั้งจุดพักที่จะเกิดขึ้นในเวลาที่เหมาะสมสำหรับการระบุปัญหา
เบราว์เซอร์คลัสเตอร์เป็นสิ่งที่ประสานการวิเคราะห์เบราว์เซอร์ของทรัพยากรและช่วยให้ระบบดำเนินการซึ่งโดยปกติจะใช้เวลาค่อนข้างนานในรูปแบบประสิทธิภาพสูง
ตัวเลือกการกำหนดค่ารวมถึง:
ระบบสามารถให้ความคุ้มครองที่ยอดเยี่ยมแก่เว็บแอปพลิเคชันที่ทันสมัยเนื่องจากสภาพแวดล้อมเบราว์เซอร์แบบบูรณาการ สิ่งนี้ช่วยให้สามารถโต้ตอบกับแอพพลิเคชั่นที่ซับซ้อนซึ่งใช้ประโยชน์จากรหัสฝั่งไคลเอ็นต์อย่างหนัก (เช่น JavaScript) เช่นเดียวกับที่มนุษย์ต้องการ
นอกจากนั้นยังรู้ว่าสถานะของเบราว์เซอร์ใดที่เปลี่ยนแอปพลิเคชันได้รับการตั้งโปรแกรมให้จัดการและสามารถเรียกใช้งานพวกเขาโดยทางโปรแกรมเพื่อให้ความคุ้มครองสำหรับสถานการณ์ที่เป็นไปได้เต็มรูปแบบ
โดยการตรวจสอบหน้าเว็บที่เป็นไปได้ทั้งหมดและสถานะของพวกเขา (เมื่อใช้รหัสฝั่งไคลเอ็นต์) Arachni สามารถแยกและตรวจสอบองค์ประกอบต่อไปนี้และอินพุตของพวกเขา:
<form> แต่จะเชื่อมโยงผ่านรหัส JS แทน<input> องค์ประกอบที่มีเหตุการณ์ DOM ที่เกี่ยวข้องhttp://example.com/#/?param=val¶m2=val2http://example.com/#/param/val/param2/val2Arachni ได้รับการออกแบบให้พอดีกับเวิร์กโฟลว์ของคุณและรวมเข้ากับโครงสร้างพื้นฐานที่มีอยู่ของคุณได้อย่างง่ายดาย
ขึ้นอยู่กับระดับของการควบคุมที่คุณต้องการผ่านกระบวนการคุณสามารถเลือกบริการ REST หรือโปรโตคอล RPC ที่กำหนดเอง
ทั้งสองวิธีช่วยให้คุณ:
MessagePack เพื่อประสิทธิภาพประสิทธิภาพและความสะดวกในการรวมเข้ากับระบบบุคคลที่สาม<form> แต่จะเชื่อมโยงผ่านรหัส JS แทน<input> องค์ประกอบที่มีเหตุการณ์ DOM ที่เกี่ยวข้องGET และ POST HTTPArachni เป็นระบบที่มีโมดูลสูงโดยใช้องค์ประกอบหลายประเภทที่แตกต่างกันเพื่อปฏิบัติหน้าที่
นอกเหนือจากการเปิดใช้งานหรือปิดการใช้งานส่วนประกอบที่มาพร้อมกันเพื่อปรับพฤติกรรมและคุณสมบัติของระบบตามต้องการฟังก์ชั่นสามารถขยายได้ผ่านการเพิ่มส่วนประกอบที่ผู้ใช้สร้างขึ้นเพื่อให้เหมาะกับความต้องการเกือบทุกความต้องการ
เพื่อใช้ประโยชน์จากแบนด์วิดท์ที่มีอยู่อย่างมีประสิทธิภาพ AraChni ดำเนินการพิมพ์ลายนิ้วมือแพลตฟอร์มพื้นฐานและปรับกระบวนการตรวจสอบให้เข้ากับเทคโนโลยีที่ปรับใช้ฝั่งเซิร์ฟเวอร์โดยใช้เพย์โหลดที่เกี่ยวข้องเท่านั้น
ปัจจุบันสามารถระบุแพลตฟอร์มต่อไปนี้ได้:
ผู้ใช้ยังมีตัวเลือกในการระบุแพลตฟอร์มเพิ่มเติม (เช่นเซิร์ฟเวอร์ DB) เพื่อช่วยให้ระบบมีประสิทธิภาพมากที่สุด อีกทางเลือกหนึ่งการพิมพ์ลายนิ้วมือสามารถปิดใช้งานได้โดยสิ้นเชิง
ในที่สุด Arachni จะทำผิดพลาดอยู่ด้านข้างของความระมัดระวังและส่ง payloads ที่มีอยู่ทั้งหมดเมื่อไม่สามารถระบุแพลตฟอร์มเฉพาะได้
การตรวจสอบ เป็นส่วนประกอบของระบบที่ดำเนินการตรวจสอบความปลอดภัยและปัญหาการบันทึก
การตรวจสอบที่ใช้งานมีส่วนร่วมเว็บแอปพลิเคชันผ่านอินพุต
sql_injection ) - การตรวจจับตามข้อผิดพลาดsql_injection_differential )sql_injection_timing )no_sql_injection ) - การตรวจจับช่องโหว่ตามข้อผิดพลาดno_sql_injection_differential )csrf )code_injection )code_injection_timing )ldap_injection )path_traversal )file_inclusion )response_splitting )os_cmd_injection )os_cmd_injection_timing )rfi )unvalidated_redirect )unvalidated_redirect_dom )xpath_injection )xss )xss_path )xss_event )xss_tag )xss_script_context )xss_dom )xss_dom_script_context )source_code_disclosure )xxe )การตรวจสอบแบบพาสซีฟมองหาการมีอยู่ของไฟล์โฟลเดอร์และลายเซ็น
allowed_methods )backup_files )backup_directories )common_admin_interfaces )common_directories )common_files )http_put )unencrypted_password_form )webdav )xst )credit_card )cvs_svn_users )private_ip )backdoors )htaccess_limit )interesting_responses )html_objects )emails )ssn )directory_listing )mixed_resource )insecure_cookies )http_only_cookies )password_autocomplete )origin_spoof_access_restriction_bypassform_upload )localstart_asp )cookie_set_for_parent_domain )Strict-Transport-Security สำหรับไซต์ HTTPS ( hsts )X-Frame-Options ที่ขาดหายไป ( x_frame_options )insecure_cors_policy )insecure_cross_domain_policy_access )insecure_cross_domain_policy_headers _cross_domain_policy_headers)insecure_client_access_policy ) html )xml )text )json )marshal )yaml )afr )ปลั๊กอินเพิ่มฟังก์ชั่นพิเศษให้กับระบบในรูปแบบโมดูลาร์ด้วยวิธีนี้แกนหลักยังคงผอมและทำให้ทุกคนสามารถเพิ่มฟังก์ชั่นโดยพลการ
proxy )-วิเคราะห์คำขอและการตอบกลับระหว่างเว็บแอปและเบราว์เซอร์ที่ให้ความช่วยเหลือในการตรวจสอบ AJAX, การบันทึกและ/หรือ จำกัด ขอบเขตของการตรวจสอบautologin )login_script )http_dicattack )form_dicattack )cookie_collector ) - ติดตามคุกกี้ในขณะที่สร้างไทม์ไลน์ของการเปลี่ยนแปลงwaf_detector ) - สร้างพื้นฐานของพฤติกรรมปกติและใช้การวิเคราะห์ RDIFF เพื่อตรวจสอบว่าอินพุตที่เป็นอันตรายทำให้เกิดการเปลี่ยนแปลงพฤติกรรมใด ๆbeep_notify ) - บี๊บเมื่อการสแกนเสร็จสิ้นemail_notify ) - ส่งการแจ้งเตือน (และเป็นทางเลือกรายงาน) ผ่าน SMTP เมื่อสิ้นสุดการสแกนvector_feed ) - อ่านในข้อมูลเวกเตอร์ที่สร้างองค์ประกอบที่จะตรวจสอบ สามารถใช้ในการดำเนินการตรวจสอบพิเศษ/แคบมากบนพื้นฐานของเวกเตอร์/องค์ประกอบ มีประโยชน์สำหรับการทดสอบหน่วยหรือสิ่งอื่น ๆscript ) - โหลดและเรียกใช้สคริปต์ทับทิมภายนอกภายใต้ขอบเขตของปลั๊กอินที่ใช้สำหรับการดีบักและแฮ็กเกอร์ทั่วไปuncommon_headers ) - บันทึกส่วนหัวที่ไม่ธรรมดาcontent_types )-บันทึกประเภทเนื้อหาของการตอบสนองเซิร์ฟเวอร์ช่วยในการระบุไฟล์ที่น่าสนใจ (อาจรั่วไหลออกมา)vector_collector ) - รวบรวมข้อมูลเกี่ยวกับเวกเตอร์อินพุตที่เห็นทั้งหมดซึ่งอยู่ในขอบเขตการสแกนheaders_collector ) - รวบรวมส่วนหัวการตอบกลับตามเกณฑ์ที่ระบุexec ) - โทรหา executables ภายนอกในขั้นตอนการสแกนที่แตกต่างกันmetrics ) - รวบรวมตัวชี้วัดเกี่ยวกับหลายแง่มุมของการสแกนและเว็บแอปพลิเคชันrestrict_to_dom_state ) - จำกัด การตรวจสอบไปยังสถานะ DOM ของหน้าเดียวตามส่วน URLwebhook_notify ) - ส่ง webhook payload ผ่าน http เมื่อสิ้นสุดการสแกนrate_limiter ) - การ จำกัด อัตราการร้องขอ HTTPpage_dump ) - Dumps Page Data ไปยังดิสก์เป็น Yaml ปลั๊กอินเริ่มต้นจะทำงานสำหรับการสแกนทุกครั้งและอยู่ใต้ /plugins/defaults/
autothrottle ) - ปรับปริมาณ HTTP แบบไดนามิกในระหว่างการสแกนเพื่อการใช้แบนด์วิดท์สูงสุดhealthmap ) - สร้างแผนผังไซต์ที่แสดงสุขภาพของ URL ที่รวบรวมข้อมูล/ตรวจสอบแล้ว ปลั๊กอินภายใต้ /plugins/defaults/meta/ ดำเนินการวิเคราะห์ผลการสแกนเพื่อกำหนดความน่าเชื่อถือหรือเพียงเพิ่มข้อมูลบริบทหรือข้อมูลเชิงลึกทั่วไป
timing_attacks ) - แจ้งให้ทราบล่วงหน้าสำหรับปัญหาที่เปิดเผยโดยการโจมตีเวลาเมื่อหน้าตรวจสอบที่ได้รับผลกระทบส่งคืนเวลาตอบสนองที่สูงผิดปกติเริ่มต้นด้วย นอกจากนี้ยังชี้ให้เห็นถึงอันตรายของการโจมตี DOS กับหน้าเว็บที่ดำเนินการประมวลผลงานหนักdiscovery ) - ดำเนินการตรวจจับความผิดปกติในประเด็นที่บันทึกโดยการตรวจสอบการค้นพบและเตือนถึงความเป็นไปได้ของผลบวกที่ผิดพลาดหากมีuniformity ) - รายงานอินพุตที่มีความเสี่ยงอย่างสม่ำเสมอในหลาย ๆ หน้าบ่งบอกถึงการขาดจุดศูนย์กลางของการฆ่าเชื้ออินพุตผู้ฝึกสอนคือสิ่งที่ช่วยให้ Arachni เรียนรู้จากการสแกนที่ดำเนินการและรวมความรู้นั้นในทันทีตลอดระยะเวลาของการตรวจสอบ
การตรวจสอบมีความสามารถในการบังคับให้กรอบการเรียนรู้จากการตอบสนอง HTTP เป็นรายบุคคล
อย่างไรก็ตามสิ่งนี้มักจะไม่จำเป็นเนื่องจาก Arachni ทราบว่าคำขอใดมีแนวโน้มที่จะเปิดเผยองค์ประกอบใหม่หรือการโจมตีเวกเตอร์และจะปรับตัวเองตามนั้น
ถึงกระนั้นนี่อาจเป็นสินทรัพย์ที่มีค่าสำหรับการตรวจสอบฟัซเซอร์
คุณสามารถเรียกใช้ rake spec เพื่อเรียกใช้ข้อมูลจำเพาะ ทั้งหมด หรือคุณสามารถเรียกใช้ได้อย่างเลือกโดยใช้สิ่งต่อไปนี้:
rake spec:core # for the core libraries
rake spec:checks # for the checks
rake spec:plugins # for the plugins
rake spec:reports # for the reports
rake spec:path_extractors # for the path extractors
โปรดได้รับการเตือน รายละเอียดหลักจะต้องใช้สัตว์ร้ายของเครื่องเนื่องจากจำเป็นต้องทดสอบคุณสมบัติกริด/หลายอินสแตนซ์ของระบบ
หมายเหตุ : รายละเอียดการตรวจสอบจะใช้เวลาหลายชั่วโมงกว่าจะเสร็จสมบูรณ์เนื่องจากการทดสอบการโจมตีเวลา
ส่งข้อบกพร่องโดยใช้ปัญหา GitHub และรับการสนับสนุนผ่านพอร์ทัลสนับสนุน
(ก่อนเริ่มงานใด ๆ โปรดอ่านคำแนะนำสำหรับการทำงานกับซอร์สโค้ด)
เรายินดีที่จะรับความช่วยเหลือจากเพื่อนร่วมรหัสและนี่คือขั้นตอนที่คุณต้องทำตามเพื่อสนับสนุนรหัส:
git checkout -b <feature-name> experimental )rake spec:core สำหรับ Core Libs หรือ rake spec สำหรับทุกสิ่ง)ใบอนุญาต Public Source Arachni V1.0 - โปรดดูไฟล์ใบ อนุญาต สำหรับข้อมูลเพิ่มเติม