webhackingnotes
1- การรวบรวมข้อมูล: การรวบรวมข้อมูลเป็นส่วนหนึ่งของข้อบกพร่องด้านความปลอดภัยในการล่าสัตว์ โจมตีพื้นผิวการลาดตระเวน - กลยุทธ์และคุณค่าของมาตรฐาน
*** การระบุโฮสต์เสมือน: หลาย ๆ เว็บไซต์มักถูกปรับใช้บนเซิร์ฟเวอร์ฟิสิคัลเดียวกัน
- เว็บไซต์ของหลาย ๆ องค์กรโฮสต์โดยผู้ให้บริการโดยใช้ทรัพยากรที่ใช้ร่วมกัน การแบ่งปันที่อยู่ IP เป็นหนึ่งในเทคนิคที่มีประโยชน์และคุ้มค่าที่สุดที่ใช้โดยพวกเขา คุณมักจะเห็นชื่อโดเมนจำนวนหนึ่งที่ส่งคืนเมื่อคุณทำการสืบค้น DNS ย้อนกลับสำหรับที่อยู่ IP เฉพาะ เว็บไซต์เหล่านี้ใช้โฮสติ้งเสมือนจริงที่ใช้ชื่อและมีการระบุและแตกต่างจากเว็บไซต์อื่น ๆ ที่โฮสต์บนที่อยู่ IP เดียวกันโดยค่าส่วนหัวโฮสต์
- YouGetSignal (http://www.yougetsignal.com/) เป็นเว็บไซต์ที่มีคุณสมบัติการค้นหา IP ย้อนกลับ
*** การระบุโดเมนย่อย:
- คุณสามารถเริ่มต้นใหม่ได้โดยการค้นหาโดเมนย่อยโดยใช้ VPS ของคุณ ยิ่งคุณพบโดเมนย่อยมากเท่าไหร่คุณก็ยิ่งมีพื้นผิวการโจมตีมากขึ้นเท่านั้น
- การค้นหาโดเมนย่อยของเว็บไซต์สามารถทำให้เราอยู่ในสถานที่ที่น่าประหลาดใจ ฉันจำได้ว่าการพูดคุยโดยนักวิจัยด้านความปลอดภัยของอิสราเอล NIR Goldshlager ซึ่งเขาทำการสแกนการแจงนับโดเมนย่อยบนบริการของ Google จากโดเมนย่อยที่เขาพบว่ามีหนึ่งในเว็บแอปพลิเคชันที่มีช่องโหว่รวมไฟล์ท้องถิ่นเปิดเผยต่อสาธารณะ
*** การสแกนพอร์ต:
- หลังจากที่คุณระบุโดเมนย่อยแล้วคุณสามารถเริ่มต้นพอร์ตสแกนเพื่อระบุพื้นผิวการโจมตีเพิ่มเติมรวมถึงบริการที่ใช้งานได้
- ใช้ประโยชน์จากการสแกนพอร์ต - อย่ามองหาเพียง 80,443 ปกติ - เรียกใช้พอร์ตสแกนกับพอร์ตทั้งหมด 65536 ทั้งหมด คุณจะประหลาดใจว่าสิ่งที่สามารถทำงานบนพอร์ตสูงแบบสุ่มได้
- ผลลัพธ์ของพอร์ตสแกนยังสามารถบ่งบอกถึงความปลอดภัยโดยรวมของ บริษัท ตัวอย่างเช่น บริษัท ที่ปิดพอร์ตทั้งหมดยกเว้น 80 และ 443 (เว็บพอร์ตทั่วไปสำหรับโฮสต์ไซต์ HTTP และ HTTPS) มีแนวโน้มที่จะมีความปลอดภัยในขณะที่ บริษัท ที่มีพอร์ตเปิดโล่งจำนวนมากน่าจะตรงกันข้ามและอาจมีศักยภาพที่ดีกว่า
- หลังจากระบุพอร์ตเปิดบนเว็บเซิร์ฟเวอร์คุณต้องกำหนดระบบปฏิบัติการพื้นฐาน
- เมื่อมีการกำหนดระบบปฏิบัติการพื้นฐานและพอร์ตเปิดแล้วคุณจะต้องระบุแอปพลิเคชันที่แน่นอนที่ทำงานบนพอร์ตเปิด เมื่อสแกนเว็บเซิร์ฟเวอร์คุณต้องวิเคราะห์รสชาติและเวอร์ชันของบริการเว็บที่ทำงานอยู่ด้านบนของระบบปฏิบัติการ
*** การค้นพบเนื้อหา: ค้นพบเนื้อหาที่ซ่อนอยู่และเริ่มต้น
- ก่อนที่เราจะออกจากทัวร์ของเครื่องมือค้นหาทางอินเทอร์เน็ตมากมายเราต้องการจดบันทึกปัญหาที่เกี่ยวข้องกับการค้นหาเพิ่มเติมหนึ่งฉบับซึ่งสามารถเพิ่มประสิทธิภาพของการทำโปรไฟล์ได้อย่างมาก ไฟล์ robots.txt มีรายการไดเรกทอรีที่เครื่องมือค้นหาเช่น Google ควรจะดัชนีหรือเพิกเฉย
- SiteMaps เป็นวิธีที่ง่ายอย่างไร้เหตุผลในการทำวิจัยขั้นพื้นฐานโดยไม่มีความพยายาม การแฮ็ค URL เล็กน้อยกับ Sitemap.xml Slug มักจะส่งคืนไฟล์ XML จริงที่มีรายละเอียดโครงสร้างของเว็บไซต์หรือ yoast-or-seo-seo-plugin-supplied หน้า HTML ที่จัดทำเอกสารพื้นที่ต่าง ๆ ของไซต์
- แมปแอปพลิเคชันที่กำลังมองหาไดเรกทอรีที่ซ่อนอยู่หรือลืมสิ่งต่าง ๆ เช่น / สำรอง / ฯลฯ
- มีวิธีที่แตกต่างกันสองสามวิธีในการเข้าถึงการค้นพบเนื้อหา ก่อนอื่นคุณสามารถพยายามค้นพบไฟล์และไดเรกทอรีโดย breuteforcing พวกเขา
- เครื่องมือฟัซซิ่งสามารถใช้เพื่อค้นหาเนื้อหาเว็บโดยลองใช้เส้นทางที่แตกต่างกันโดยใช้ URIs จาก WordLists ยักษ์จากนั้นวิเคราะห์รหัสสถานะ HTTP ของการตอบสนองเพื่อค้นหาไดเรกทอรีและไฟล์ที่ซ่อนอยู่
- Cewl เป็นเครื่องกำเนิดคำศัพท์ที่กำหนดเองที่ทำโดย Robin Hood โดยทั่วไปแล้วมันจะแมงมุมไซต์เป้าหมายไปยังความลึกที่แน่นอนจากนั้นส่งคืนรายการคำ WordList นี้สามารถใช้เป็นพจนานุกรมในการเข้าสู่ระบบแอปพลิเคชันเว็บของ Bruteforce เช่นพอร์ทัลผู้ดูแลระบบ
- ขนานไปกับการบังคับใช้สินทรัพย์ที่ละเอียดอ่อน Spidering สามารถช่วยให้คุณได้ภาพของเว็บไซต์ที่ไม่มีแผนผังไซต์เพียงแค่บังคับตัวเองก็ไม่สามารถให้ได้
- เว็บเซิร์ฟเวอร์อาจมีไดเรกทอรีสำหรับผู้ดูแลระบบเวอร์ชันเก่าของไซต์ไดเรกทอรีสำรองไดเรกทอรีข้อมูลหรือไดเรกทอรีอื่น ๆ ที่ไม่ได้อ้างอิงในรหัส HTML ใด ๆ
- รับรายชื่อของชื่อทั่วไปและชื่อไดเรกทอรีและส่วนขยายทั่วไป เพิ่มไปยังรายการเหล่านี้รายการทั้งหมดที่สังเกตได้จริงภายในแอปพลิเคชันและรายการที่อนุมานจากสิ่งเหล่านี้ พยายามทำความเข้าใจกับอนุสัญญาการตั้งชื่อที่นักพัฒนาแอปพลิเคชันใช้ ตัวอย่างเช่นหากมีหน้าเว็บที่เรียกว่า addDocument.jsp และ viewDocument.jsp อาจมีหน้าเว็บที่เรียกว่า editDocument.jsp และ removedocument.jsp
- ตรวจสอบความน่าสนใจใด ๆ ที่อาจเกิดขึ้นด้วยตนเองเพื่อกำจัดผลบวกที่ผิดพลาดใด ๆ ภายในผลลัพธ์
*** ปรึกษาแหล่งข้อมูลสาธารณะ: การสะสมข้อมูลเกี่ยวกับเว็บไซต์เป้าหมายจากแหล่งข้อมูลสาธารณะที่เปิดเผยต่อสาธารณะ
- เมื่อคุณต้องการไปไกลกว่าไฟล์และไดเรกทอรี breuteforcing Google Dorking ยังสามารถให้การค้นพบเนื้อหาที่น่าสนใจ Google Dorking สามารถประหยัดเวลาได้โดยเฉพาะอย่างยิ่งเมื่อคุณพบพารามิเตอร์ URL ที่เกี่ยวข้องกับช่องโหว่เช่น URL, redirect_to, ID และอื่น ๆ
- เครื่องมือค้นหาเป็นเพื่อนที่ดีที่สุดของแฮ็กเกอร์เสมอ เป็นทางออกที่ดีที่เครื่องมือค้นหาทางอินเทอร์เน็ตที่สำคัญอย่างน้อยหนึ่งอันได้จัดทำดัชนีเว็บแอปพลิเคชันเป้าหมายของคุณอย่างน้อยหนึ่งครั้งในอดีต
- นอกเหนือจาก Google แล้วยังมีเครื่องมือค้นหาอื่น ๆ ที่มีโฟกัสเฉพาะที่อาจมีค่าในการค้นหาข้อมูลเฉพาะ ไม่ว่าคุณต้องการค้นหาข้อมูลเกี่ยวกับบุคคลหรือสอบถามเกี่ยวกับบันทึกสาธารณะโอกาสที่เป็นเครื่องมือค้นหาที่มีความเชี่ยวชาญเพื่อค้นหาสิ่งที่คุณต้องการ
- ทำการค้นหาในชื่อและที่อยู่อีเมลใด ๆ ที่คุณค้นพบในเนื้อหาของแอปพลิเคชันเช่นข้อมูลการติดต่อ รวมรายการที่ไม่แสดงผลบนหน้าจอเช่นความคิดเห็น HTML นอกเหนือจากการค้นหาเว็บแล้วให้ทำการค้นหาข่าวและกลุ่ม ค้นหารายละเอียดทางเทคนิคใด ๆ ที่โพสต์ไปยังฟอรัมอินเทอร์เน็ตเกี่ยวกับแอปพลิเคชันเป้าหมายและโครงสร้างพื้นฐานที่สนับสนุน
- อีกวิธีหนึ่งในการค้นหาเนื้อหาที่น่าสนใจคือการตรวจสอบ GitHub ของ บริษัท คุณอาจพบที่เก็บโอเพ่นซอร์สจาก บริษัท หรือข้อมูลที่เป็นประโยชน์เกี่ยวกับเทคโนโลยีที่ใช้
- GitHub เป็นขุมสมบัติของข้อมูลที่น่าทึ่ง มีการทดสอบการเจาะจำนวนมากและการประเมินทีมสีแดงที่เราสามารถรับรหัสผ่านปุ่ม API ซอร์สโค้ดเก่าชื่อโฮสต์ภายใน/IPS และอีกมากมาย สิ่งเหล่านี้นำไปสู่การประนีประนอมโดยตรงหรือช่วยในการโจมตีอีกครั้ง สิ่งที่เราเห็นคือนักพัฒนาหลายคนผลักดันรหัสไปยัง repo ที่ไม่ถูกต้อง (ส่งไปยังที่เก็บสาธารณะของพวกเขาแทนที่จะเป็นที่เก็บส่วนตัวของ บริษัท ของพวกเขา) หรือกดเนื้อหาที่ละเอียดอ่อนโดยไม่ตั้งใจ (เช่นรหัสผ่าน) จากนั้นพยายามลบออก สิ่งหนึ่งที่ดีกับ GitHub คือการติดตามทุกครั้งที่รหัสได้รับการแก้ไขหรือลบ
- Shodan (https://www.shodan.io) เป็นบริการที่ยอดเยี่ยมที่สแกนอินเทอร์เน็ตเป็นประจำคว้าแบนเนอร์พอร์ตข้อมูลเกี่ยวกับเครือข่ายและอื่น ๆ
- Censys ตรวจสอบเซิร์ฟเวอร์และอุปกรณ์ที่เข้าถึงได้อย่างต่อเนื่องบนอินเทอร์เน็ตอย่างต่อเนื่องดังนั้นคุณสามารถค้นหาและวิเคราะห์ตามเวลาจริง คุณจะสามารถเข้าใจพื้นผิวการโจมตีเครือข่ายของคุณค้นพบภัยคุกคามใหม่และประเมินผลกระทบทั่วโลก [https://censys.io/]
- ใช้ WaybackMachine สำหรับการค้นหาจุดสิ้นสุดที่ถูกลืม
*** The Technology Stack: ระบุเทคโนโลยีที่ใช้
- หนึ่งในงานแรกที่ฉันทำเมื่อทดสอบแอปพลิเคชันใหม่คือการระบุเทคโนโลยีที่ใช้ ซึ่งรวมถึง แต่ไม่ จำกัด เพียงเฟรมเวิร์ก JavaScript ส่วนหน้าเฟรมเวิร์กแอปพลิเคชันฝั่งเซิร์ฟเวอร์บริการของบุคคลที่สามไฟล์โฮสต์ในพื้นที่ไฟล์ระยะไกลและอื่น ๆ
- การมีความรู้เกี่ยวกับกรอบการทำงานที่ใช้ในการพัฒนาเว็บไซต์จะช่วยให้คุณได้เปรียบในการระบุช่องโหว่ที่อาจมีอยู่ในเวอร์ชันที่ไม่ได้เทียบ
- มองหาเทคโนโลยีพื้นฐานคืออะไร เครื่องมือที่มีประโยชน์สำหรับสิ่งนี้คือ NMAP อีกครั้งและสำหรับเว็บแอพโดยเฉพาะ wappalyzer
*** ระบุความเป็นไปได้ใหม่:
- นอกจากนี้คุณยังสามารถค้นพบฟังก์ชั่นเว็บไซต์ใหม่โดยการติดตามไฟล์ JavaScript การมุ่งเน้นไปที่ไฟล์ JavaScript นั้นมีประสิทธิภาพโดยเฉพาะอย่างยิ่งเมื่อไซต์อาศัยเฟรมเวิร์ก JavaScript ส่วนหน้าเพื่อแสดงเนื้อหา แอปพลิเคชันจะขึ้นอยู่กับการมีจุดสิ้นสุด HTTP ส่วนใหญ่ที่ไซต์ใช้รวมอยู่ในไฟล์ JavaScript
- การจ่ายเงินสำหรับการเข้าถึงฟังก์ชั่นใหม่
*** ซอร์สโค้ด: การวิเคราะห์รหัสแหล่งที่มามักจะคิดว่าเป็นสิ่งที่เกิดขึ้นเฉพาะในกล่องสีขาวสถานการณ์การทดสอบภายในไม่ว่าจะเป็นส่วนหนึ่งของห่วงโซ่การสร้างอัตโนมัติหรือเป็นการตรวจสอบด้วยตนเอง แต่การวิเคราะห์รหัสฝั่งลูกค้าที่มีอยู่สำหรับเบราว์เซอร์ก็เป็นวิธีที่มีประสิทธิภาพในการมองหาช่องโหว่ในฐานะนักวิจัยภายนอก