Stealth Recon: Recon Web App ยังไงไม่ให้โดนบล็อก

โดย admin

3 นาที
แชร์
Blog Thumbnail

Stealth Recon: Recon Web App ยังไงไม่ให้โดนบล็อก

By Kanitin Pholngam,

Penetration Tester Team, Datafarm Company Limited

สวัสดีครับเพื่อนๆ พี่ๆ น้องๆ ทุกคนพบกันอีกครั้งกับบทความดีๆ ด้าน Cybersecurity นะครับ วันนี้เราจะมาคุยกันเรื่องที่ สำคัญมาก แต่หลายคนอาจจะมองข้ามในการทำ Pentest นั่นก็คือการทำ “Stealth Recon” หรือการค้นหาข้อมูลแบบเงียบ นั่นเอง โดยในบทความนี้ ผมจะโฟกัสไปที่การแนะนำการใช้เครื่องมือในการทำ Recon สำหรับ Web Application ซึ่งไม่ได้จำกัดแค่ Passive Recon เท่านั้น แต่ยังรวมถึงเทคนิคแบบ Low-noise ที่ลดโอกาสถูกตรวจจับได้

สำหรับเพื่อนๆ ที่กำลังเตรียมตัวเข้าสู่การทำงานด้าน Pentest อาจจะติดภาพจำจากการทำแล็บว่า การใช้เครื่องมืออย่าง dirsearch, ffuf หรือ nmap ยิงสแกนรัวๆ นั้นสามารถช่วยให้เจอช่องโหว่ได้อย่างรวดเร็ว แต่ในโลกของการทำงานจริง อุปสรรคมีมากกว่านั้นครับ ไม่ว่าจะเป็นระบบป้องกันอย่าง WAF (Web Application Firewall) หรือความเสี่ยงที่อาจทำให้ระบบของลูกค้าล่มได้ ดังนั้น “Stealth Recon” จึงเป็นแนวทางสำคัญ ที่ช่วยให้เราสามารถรวบรวมข้อมูลเป้าหมายได้อย่างมีประสิทธิภาพ โดยลดการส่ง Request ที่ไม่จำเป็น

Stealth Recon คืออะไร

คำว่า “Stealth Recon” ไม่ได้เป็นคำศัพท์ทางเทคนิค ที่ถูกระบุไว้ในตำรามาตรฐานอย่างเป็นทางการเหมือนกับคำว่า Passive Reconnaissance หรือ Active Reconnaissance มักใช้เป็น “คำเรียกเชิงเปรียบเทียบ ให้เข้าใจร่วมกันเฉยๆ

โดยจะเป็นกระบวนการรวบรวมข้อมูลเป้าหมายโดยมุ่งเน้นการลดการตรวจจับ (Detection) ให้มากที่สุด ผ่านการใช้ข้อมูลจากแหล่งภายนอก (Passive Sources) ร่วมกับการส่ง Request ไปยังเป้าหมายในปริมาณที่จำกัดและควบคุมได้ (Low-noise) เพื่อให้สามารถวิเคราะห์โครงสร้างระบบได้อย่างมีประสิทธิภาพ โดยไม่สร้างความผิดปกติที่อาจถูกตรวจจับได้ง่าย

ทำไมต้อง Stealth Recon (ทำไมไม่ยิงไปเลยล่ะ)

จากประสบการณ์หน้างานจริง ถ้าลูกค้าเตรียมสภาพแวดล้อมอย่าง UAT ไว้ให้เราทดสอบได้เต็มที่โดยไม่ต้องกลัวระบบล่ม หรือเว็บลูกค้าไม่มี Firewall มาคอยจำกัด Rate Limit หรือบล็อกไอพี เราก็คงสแกนได้อย่างราบรื่นครับ

แต่ในความเป็นจริง อุปสรรคเหล่านี้มักจะมาคู่กับการทำงานเสมอ บางครั้งเราต้องเจอกับระบบที่มีความอ่อนไหวสูงหรือการป้องกันที่แข็งแกร่ง ถ้าเรายังดื้อในการพยายามใช้เครื่องมือที่เป็นแบบ Active Scan ก็อาจจะส่งผลอื่นๆตามมา เช่น เว็บลูกค้าใช้งานไม่ได้ หรือโดนบล็อกทำให้เราสแกนไม่เจอช่องโหว่หรือพาธสำคัญ ก็จะส่งผลกระทบใหญ่ๆตามมาได้ ดังนั้นถ้าเราเจอข้อจำกัดเหล่านี้ แล้วมาเริ่มด้วยการทำ Stealth Recon หรือการส่งข้อมูลที่ไม่กระทบกับระบบเยอะ ก็จะเป็นทางออกที่ช่วยให้เราได้ข้อมูลสำคัญมาวิเคราะห์ก่อน โดยไม่ต้องเผชิญกับความเสี่ยงเหล่านั้นโดยตรง

แนะนำเครื่องมือ (Tools) สำหรับการทำค้นหาข้อมูล

หลังจากที่เพื่อนๆเข้าใจสถานการณ์การทดสอบเจาะระบบแล้ว วันนี้ผมคัดเครื่องมือที่ผมใช้จริงในการทำ Pentest เพื่อหาข้อมูลและโครงสร้างเว็บมาฝากกันครับ

ก่อนอื่นผมขอแนะนำเว็บที่ใช้ทดสอบจะเป็น “Gin & Juice Shop” สร้างโดย PortSwigger สำหรับการทดสอบช่องโหว่และใช้เครื่องมือครับ เพื่อนๆสามารถลองใช้คำสั่งตามผมได้ (https://ginandjuice.shop)

1. Katana

(https://github.com/projectdiscovery/katana)

เครื่องมือสุดล้ำจากค่าย ProjectDiscovery หน้าที่หลักคือการหา URLs หรือ Path ต่างๆ ของเป้าหมาย โดยจุดเด่นคือการ Crawling เว็บไซต์เพื่อค้นหา URLs หรือ Path ต่างๆ รวมถึงข้อมูลที่ซ่อนอยู่ในไฟล์ JavaScript โดยจะไม่ได้มีการยิง Request ไปเยอะๆเพื่อฟลัดหาไฟล์แต่จะใช้วิธีการ Crawling นั่นเอง

1.1nbsp; ค้นหา path หรือไฟล์ในเว็บไซต์ผ่านการ Crawling รวมถึงในไฟล์ JavaScript

คำสั่งนี้คือการสั่งให้ Katana ทำการขุด (Crawl) เพื่อค้นหา Path หรือไฟล์ทั้งหมดที่ซ่อนอยู่ในเว็บไซต์ และข้อมูลจากไฟล์ JavaScript และเจาะลึกลงไปในโครงสร้างเว็บ

คำสั่งที่ใช้:

katana -u https://target.com -jc -d 5

-jc (JS Crawling): อ่านไฟล์ JavaScript เพื่อหา Endpoints หรือ API ที่ซ่อนอยู่ในโค้ด

-d 5: กำหนดความลึก (Depth) ในการค้นหา แต่ต้องระวังเรื่องเวลาด้วยครับ

จากรูปจะเป็นตัวอย่างการค้นหา path ทั้งหมด ซึ่งเราจำเป็นต้องไปกรองภายหลังว่า URLs แต่ละอันใช้งานได้หรือไม่ อาจจะใช้เครื่องมืออย่าง httpx (https://github.com/projectdiscovery/httpx) มาใช้ร่วมด้วย

1.2nbsp; กรองเฉพาะไฟล์ .JavaScript ทั้งหมดออกมาเท่านั้น

คำสั่งนี้คือการสั่งให้ Katana ช่วยหาไฟล์ JavaScript ทั้งหมดที่ซ่อนอยู่ในเว็บเป้าเพื่อเก็บรวบรวมและหาข้อมูลอื่นต่อไป เช่น Secret Keys, Password โดยจะใช้คำสั่งนี้เพื่อเราต้องการหาข้อมูลต่างๆในไฟล์ JavaScript นั่นเอง

คำสั่งที่ใช้

katana -u $target -jc -d 5 -rl 30 -silent | grep “.js$” | sort -u | tee all_js.txt

-u $target: ระบุ URL เป้าหมาย

-jc (JS Crawling): สั่งให้ Katana เข้าไปอ่านเนื้อหาข้างในไฟล์ JavaScript ที่เจอ เพื่อหาลิงก์หรือ Path อื่นๆ ที่อาจซ่อนอยู่ (Endpoint Discovery)

-d 5 (Depth): กำหนดความลึกในการขุดข้อมูลไปตามลิงก์ต่างๆ

-rl 30 (Rate Limit): จำกัดความเร็วในการส่ง Request อยู่ที่ 30 ครั้งต่อวินาที

-silent: สั่งให้แสดงเฉพาะผลลัพธ์ (URL) เท่านั้น โดยไม่แสดง Banner หรือข้อความ Log อื่นๆ

sort -u: ทำการเรียงลำดับข้อมูลตามตัวอักษร และตัด URLs ที่ซ้ำกันออก

grep “.js$”: นำ URLs ทั้งหมดที่ Katana หาเจอมาทำการกรอง โดยเลือกเฉพาะบรรทัดที่ลงท้ายด้วย .js เท่านั้น

tee all_js.txt: บันทึกผลลัพธ์สุดท้ายลงในไฟล์ที่ชื่อ all_js.txt

1.3 เน้นหา Path ของเว็บ (กรองพวกไฟล์รูปภาพ/CSS/JS ออกให้ดูง่าย):

คำสั่งนี้คือการสั่งให้ Katana ดึงข้อมูลที่เป็น Path ที่ต้องการเท่านั้นโดยไม่ต้องการรูปหรือนามสกุลไฟล์ที่เราไม่ต้องการ (สามารถแก้ไขนามสกุลได้ตามต้องการ)

คำสั่งที่ใช้

katana -u $target -jc -d 5 -rl 30 -silent | grep -Ev ”\.(js|css|png|jpg|jpeg|gif|svg)$” | sort -u | tee all_path.txt

-E (Extended Regex): เปิดใช้งานการใช้สัญลักษณ์พิเศษเพื่อให้รองรับการกรองหลายนามสกุลพร้อมกัน

-v (Invert Match): คือการบอกว่า “เอาทุกอย่าง ยกเว้น…” (นามสกุลไฟล์)

1.4 กรองเฉพาะ URLs ที่มี Parameter (เพื่อเอาไปเทสต่อ เช่น SQLi หรือ XSS):

คำสั่งนี้คือการสั่งให้ Katana ดึงข้อมูลที่มี Parameter ประกอบด้วย เช่น “?id=”, “file=” โดยเราสามารถใช้คำสั่งนี้ในการกรองได้ และนำ URLs เหล่านี้มาหาช่องโหว่อื่นๆต่อไป เช่น SQL, XSS, Path traversal

คำสั่งที่ใช้

katana -u https://ginandjuice.shop -f qurl -silent -jc -d 5

-f qurl ช่วยกรองเอาเฉพาะ URLs ที่มี Parameter

2. GAU (Get All URLs)

(https://github.com/lc/gau)

โดยเครื่องมือนี้จะไปกวาดข้อมูลจากฐานข้อมูลสาธารณะอย่าง AlienVault (OTX), Wayback Machine และ Common Crawl จะทำให้เราเห็นข้อมูลในอดีต ของเว็บครับ บางทีหน้า Admin หรือไฟล์ Config ที่ปัจจุบันถูกปิดไปแล้ว แต่เคยถูกเก็บ Log ไว้ในอดีต เราอาจจะเจอ Directory ที่ยังเข้าได้จากตรงนี้

คำสั่งที่ใช้

echo target.com | gau

3. Google Dorks (The Legend)

เครื่องมือคลาสสิกที่ทรงพลังที่สุด ไม่ต้องลงโปรแกรม แค่ใช้ Search Engine ให้เป็น จากประสบการณ์ของผม บางครั้งไฟล์ที่ซ่อนลึกๆ หรือหน้าแปลกๆ ที่ใน Wordlists ไม่มี Google อาจจะหาเจอได้ครับ ในตัวอย่างจะเป็นคำสั่งเพียงเล็กน้อยที่แสดงให้เห็นว่าเราสามารถค้นหาพาธได้ ถ้าต้องการค้นหาเชิงลึก หรือ เทคนิคอื่นๆเพิ่มเติมผมแนะนำ (https://www.exploit-db.com/google-hacking-database?category=8)

คำสั่งที่ใช้

site: target.comsite:target.com filetype:phpsite:target.com intitle:“index of”

4. Naabu (Passive Port Scan)

(https://github.com/projectdiscovery/naabu)

ปกติแล้วการสแกนพอร์ตเป็นการทำให้โดนบล็อกง่ายที่สุด แต่ Naabu มีโหมดพิเศษที่ทำให้เราดูพอร์ตที่เปิดอยู่ได้โดยไม่ต้องส่ง Packet ไปหาเป้าหมายได้

คำสั่งที่ใช้

naabu -host domain.com -passive

โหมดนี้จะไปดึงข้อมูลจาก Shodan InternetDB API มาแสดงผลให้เราทันที ข้อดีคือเร็วมาก และที่สำคัญคือ “เงียบ” เพราะเป็นการถามข้อมูลที่ Shodan เคยเก็บไว้แล้วนั่นเองครับ แต่ในบางครั้งเครื่องมืออาจจะหาข้อมูลไม่เจอเนื่องจากเป็นข้อมูลจากทาง Shodan ไม่มีนะครับ

ต้องทำ Stealth Recon ตอนไหนดี

ก่อนจะจบผมขอแนะนำสิ่งที่ผมอธิบายไปทั้งหมดว่าเราควรนำมาใช้งานตอนไหนจากประสบการณ์ของผมก็คือ

1. เราควรทำควบคู่ไปกับการทำ Active scanning เพื่อทำการเปรียบเทียบผล หรือหาช่องโหว่ที่ Active scanning อาจจะหาไม่เจอ

2. ถ้าเราลองใช้เครื่องมือ Active scanning อย่าง เช่น nuclei, dirsearch, nmap ไปแล้วอยู่ดีๆเว็บก็เข้าใช้งานไม่ได้ (โดนบล็อกหรืออาจจะล่ม) สิ่งที่เราควรลองต่อมาก็คือปรับความเร็วของเครื่องมือเหล่านั้นลง หรือ ปรับ Thread ให้ช้ามากๆ ในระหว่างรอเครื่องมือเหล่านั้นทำงานเสร็จ ซึ่งใช้เวลามากๆ เราก็ควรจะมาเริ่มทำ Stealth Recon เพื่อหาข้อมูลรอเครื่องมือเหล่านั้นทำงานเสร็จ

3. เรารู้ว่าระบบมีความอ่อนไหวมากแล้วห้ามล่ม เราก็ควรเริ่มจาก Stealth Recon โดยใช้เทคนิคต่างๆที่ผมบอกไปนั่นเอง

นี่เป็นเพียงส่วนหนึ่งของการทำ Stealth Recon จากประสบการณ์ที่ผมใช้จริงๆ ในการหาช่องโหว่หน้างาน เพื่อนๆ ลองนำไปปรับใช้ดูนะครับ บางครั้งเราอาจเจอ ช่องโหว่ระดับรุนแรง ได้ตั้งแต่วิธีการแบบนี้เลย

อ้างอิง

https://ginandjuice.shop

https://github.com/projectdiscovery/katana

https://github.com/lc/gau

https://www.exploit-db.com/google-hacking-database?category=8

https://github.com/projectdiscovery/naabu

https://github.com/projectdiscovery/httpx

แชร์
กลับไปด้านบน

บทความที่เกี่ยวข้อง

อัปเดตข้อมูลด้านไซเบอร์ ทุกสัปดาห์
รับข่าวสารความรู้เชิงลึกเกี่ยวกับความปลอดภัยไซเบอร์จากดาต้าฟาร์มก่อนใคร

ฟีเจอร์นี้จะเปิดให้ใช้งานเร็ว ๆ นี้ โปรดติดตาม

ส่งสัปดาห์ละ 1 ครั้ง ไม่มีสแปม ยกเลิกการรับข่าวสารได้ทุกเมื่อ