แนะนำ Dirsearch สำหรับการสแกนหา Web Directories

Datafarm
2 min readSep 9, 2020

สวัสดีคุณผู้อ่านทั้งหลาย วันนี้มารีวิว Tools สำหรับสแกน Directory ของเว็บไซต์เบื้องต้น ที่มีฟังก์ชันการใช้งานให้เราเลือกใช้เยอะแยะมากมาย แอดเชื่อว่าตอบโจทย์เหล่า Pentester ได้หลากหลายสถานการณ์

แอดมาลองหา Tools ใช้สำหรับหา Surface ในการโจมตีเว็บไซต์เป้าหมาย จนไปจ๊ะเอ๋ เจอกับ dirsearch ซึ่งเป็นเครื่องมือที่ช่วยเราในการทำ Bruteforce directory ของเว็บไซต์นั่นเอง ฟังดูก็ไม่เห็นจะมีอะไรมาก ต้องเกริ่นก่อนว่าก่อนหน้านี้แอดก็เจอปัญหาเช่น การหา Directory ที่อยู่หลังการ Login เราจำเป็นจะต้องใส่ Credential หรือใส่ Session เข้าไปในตัว Tools และเจ้า dirsearch ก็ตอบโจทย์แอดได้ดี นอกจากนี้ยังมีฟังก์ชันอื่น ๆ ให้เราเล่นได้อีกเยอะ เอาล่ะมาดูวิธีการติดตั้งกันก่อนเลย เข้าไปที่ https://github.com/maurosoria/dirsearch จากนั้นให้ Git clone เข้ามาได้เลยโดยใช้คำสั่ง

git clone https://github.com/maurosoria/dirsearch.git

จากนั้นเข้าไปในโฟลเดอร์ของ dirsearch

cd dirsearch

ใช้งานโดยใช้คำสั่ง

python3 dirsearch.py

ก่อนเริ่มใช้งานเรามาดูกันดีกว่าว่าฟังก์ชันการใช้งานของเครื่องมือตัวนี้มีอะไรให้เราเลือกใช้กันบ้าง

จะเห็นได้ว่ามีฟังก์ชันให้เลือกใช้เยอะจริงๆ แอดจะขอยกเอาฟังก์ชันที่คิดว่าน่าจะได้ใช้มาอธิบายให้ฟังกัน

-u ใช้สำหรับบอกเครื่องมือว่าเราต้องการให้สแกน URL อะไร สามารถใส่ได้ทั้ง URL และ IP Address

-L ใช้สำหรับสแกน URL หลายๆชื่อ โดยจะใช้งานผ่านไฟล์ List URL ที่เราต้องการ

-e ระบุสกุลไฟล์ที่เราต้องการหา หรือคาดว่าจะเจอในระบบเป้าหมาย เช่น หากเรารู้ว่าระบบเป้าหมายเป็น php ให้เราระบุสกุลไฟล์ .php เข้าไปเลยจะช่วยให้เราเจอไฟล์ได้ดีขึ้น

-w เป็นการสแกนหาโดยใช้ข้อมูลตาม wordlist ที่เรามีอยู่ ฉะนั้นถ้า wordlist ดีมีชัยไปกว่าครึ่ง

--suff สามารถ Filter หา Suffix ที่เราต้องการได้

-s ตั้งค่า Delay เผื่อเราไปเจอระบบที่มีการป้องกันการ Bruteforce ก็ตั้งค่าหน่วงเวลาเอาไว้ซักหน่อย

-t กำหนด Thread ในการสแกน

-i กำหนด Filter HTTP Response code ที่ต้องการให้แสดง

--exclude-texts กำหนดไม่ให้แสดงเมื่อเจอ text ที่ระบุเอาไว้

-c ใส่ค่า Cookie Session ในกรณีที่ต้องการหา Directory ที่อยู่หลังการ Login

-f คือการ Force ให้สแกนไฟล์ Extension ด้วย

--ua กำหนด user-agent ที่ Tools จะใช้ในการสแกน

-H กำหนด HTTP Header Request เพิ่มเติมได้ ในกรณีที่ระบบต้องการ เช่น referrers

--imeout กำหนดเวลาให้ Tools รอการตอบกลับจากเป้าหมาย มีประโยชน์ในกรณีระบบเป้าหมายมีการตอบกลับที่ช้ามาก หากต้องการให้ได้ผลที่ถูกต้อง อาจจะต้องกำหนด timeout เพิ่มเพื่อให้ Tools รองรับความช้าที่ระบบเป้าหมายตอบกลับมา

--ip ทำการ Resove name ให้เป็น IP Address

--proxy กำหนดให้ Tools ส่ง Request ผ่าน Proxy

--http-method กำหนด HTTP Method ที่ให้ Tools ใช้ในการสแกน

-json-report สามารถนำผลการสแกนออกมาเป็นรายงานในรูปแบบของ json ได้

แนะนำฟังก์ชันการใช้งานเบื้องต้นไปแล้ว คราวนี้ลองมาใช้งานกันบ้างดีกว่า โดยเป้าหมายที่เราใช้ในการทดสอบคือ DVWA ซึ่งเป็นเว็บที่ใช้สำหรับทดสอบช่องโหว่ในรูปแบบต่าง ๆ สามารถดาวน์โหลดมาติดตั้งได้เองเลย

แอดใช้คำสั่ง:

python3 dirsearch.py -u https://192.168.71.132/dvwa-master/vulnerabilities/ — json-report=report3 -t 50 -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -e * -f

ระบุเป้าหมายการสแกนไปที่ https://192.168.71.132/dvwa-master/vulnerabilities/

หลังสแกนให้เก็บผลการสแกนในรูปแบบของ json ใส่ในไฟล์ชื่อ report3

ปรับ Thread ไปเป็น 50

ใช้ wordlist: directory-list-2.3-small.txt

สแกนไฟล์ทุก Extension และForce ให้สแกนแบบ Extension ด้วย

ผลปรากฏว่าการสแกนเจอ Return เป็น 302 เนื่องจาก DVWA ใน Directory “vulnerabilities” นั้นอยู่หลังจากการ Login นั่นเอง

แอดเลยเพิ่ม Cookie Session เข้าไปในคำสั่งเพื่อให้ Tools ใช้สแกนหา Directory หลังการ Login ดังนี้

python3 dirsearch.py -u https://192.168.71.132/dvwa-master/vulnerabilities/ — json-report=report3 -t 50 -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -c PHPSESSID=j6tvb7vcrp0e2jkngr6nl7sgo7 -e * -f

เมื่อทำการใส่ Session Cookie ให้กับ Tools แล้วผลการสแกนจึงมี Return ออกมาเป็น 200 และก็พบ Directory มากมายที่ซ่อนอยู่

เสร็จสิ้นการใช้งานเบื้องต้นกันแล้ว สำหรับฟังก์ชันอื่น ๆ คุณผู้อ่านสามารถดาวน์โหลดไปใช้งานได้เองง่ายๆ

แอดว่า Dirsearch เป็นอีก Tools ที่เหมาะสำหรับการสแกน Directory ของเว็บไซต์ แถมเรายังสามารถปรับเปลี่ยนการสแกนเพื่อให้ได้ผลตามที่เราต้องการได้อย่างไม่ยากเย็นอีกด้วย สำหรับบทความนี้ขอลากันไปแต่เพียงเท่านี้ สวัสดีครับ~

--

--

No responses yet