WPScan Tool

Datafarm
4 min readMar 20, 2024

--

สวัสดีครับคุณผู้อ่าน ใกล้จะถึงช่วงวันหยุดยาวเข้ามาทุกที คุณผู้อ่านที่น่ารักมีแพลนเดินทางหรือไปเที่ยวกันหรือยังครับ สำหรับใครที่ยังไม่มีแพลนจะไปไหน วันนี้ผมจะพามาทำความรู้จักและพามาลองเล่นกับ Tool ที่มีชื่อว่า WPScan กันครับ

WPScan คืออะไร?

WPScan เป็น Tool ที่ใช้ในการสแกนเพื่อหาช่องโหว่และยังสามารถ Enumerate เพื่อหา Username และ Password ของเว็บไซต์ที่สร้างโดย Wordpress ซึ่ง WordPress เป็นหนึ่งใน CMS (Content Management System) ที่ถูกสร้างขึ้นเพื่อช่วยอำนวยความสะดวกในการจัดการเนื้อหาบนเว็บไซต์ เปรียบเสมือนเว็บไซต์สำเร็จรูปที่ช่วยให้ผู้พัฒนาสร้างเว็บไซต์ได้สะดวกสบายมากขึ้นและสามารถประหยัดค่าใช้จ่ายได้อีกด้วย แถมยังมีส่วนของหน้า Admin ไว้สำหรับจัดการเนื้อหาของเว็บไซต์อีกด้วย

หลังจากเรารู้จักกับ WPScan ว่าใช้ทำอะไรแล้ว เรามาดูทีละส่วนเพื่อให้เห็นภาพได้มากขึ้นกันดีกว่าครับ

WPScan จะมีเว็บไซต์หลักคือ https://wpscan.com/ ที่มีรายละเอียดต่าง ๆ มาช่วยแนะนำเรา เช่น WPScan ใช้ทำอะไร (โฆษณาขายของว่า WPScan ดียังไง) รวมถึงจะมีการเข้าสู่ระบบเพื่อที่เราจะได้ API Token มา โดยผมจะมาแนะนำในส่วนต่อไปว่า API Token ใช้ทำอะไรได้ ซี่งในบทความนี้ผมได้ทำการทดสอบและแสดงตัวอย่างการใช้ WPScan บนระบบปฏิบัติการ Kali Linux

สำหรับคนที่ยังไม่มี WPScan ใน Kali Linux ก็สามารถใช้คำสั่ง

sudo apt install wpscan

ต่อไปในการใช้งาน WPScan ใน Kali Linux เราจะใช้คำสั่ง WPScan ซึ่งเราสามารถเติม

 — help

เพื่อดูคำสั่งที่สามารถใช้ใน Tool WPScan ได้ดังตัวอย่างในรูป

wpscan — help

ในการเริ่มต้นสแกนเว็บไซต์ที่เรารู้ว่าถูกสร้างด้วย Wordpress เราจะใช้คำสั่ง wpscan ตามด้วย — url และตามด้วย URL ที่เราจะสแกน

wpscan — url [URL]

ผลลัพธ์ที่ได้ก็จะมีข้อมูลต่าง ๆ ของเว็บไซต์ เช่น ข้อมูล Headers,XML-RPC,version ของ wordpress ที่ใช้ในเว็บไซต์นั้น ๆ, theme ที่ใช้, plugin ที่ใช้ โดยที่จะมีเขียนบอกเราว่า Version เหล่านั้น out of date หรือว่าเก่าแล้วหรือไม่

เราหา Version ของ Plugin ในเว็บไซต์ที่เป็น Wordpress ไปทำไม?

ที่เราต้องหา Version ของ Plugin เพราะว่าในการใช้ Wordpress เป็นตัวช่วยในการพัฒนาเว็บไซต์จะมีการใช้ Plugin ต่าง ๆ เพื่อเพิ่มฟังก์ชันการทำงานภายในเว็บไซต์ให้มีฟังก์ชันตามที่เราต้องการ ซึ่งการใช้ Plugin ที่หลากหลายย่อมทำให้มีพื้นที่ในการโจมตีมากขึ้น (Attack Surface) เพราะว่า Plugin เหล่านั้นหากเกิดช่องโหว่ขึ้น เพียง 1 plugin ก็จะทำให้เว็บไซต์เราไม่ปลอดภัยแล้ว และ Plugin ที่มีช่องโหว่เหล่านั้นถึงแม้จะมีการแก้ไขแล้ว แต่ถ้าผู้พัฒนาไม่ได้อัปเดต Plugin ให้เป็น Version ล่าสุดก็จะทำให้เว็บไซต์นั้นมีช่องโหว่ นั่นจึงเป็นเห็นผลที่ว่าทำไมเราจึงชอบหา Version ที่ out of date ของเว็บไซต์ที่ใช้ Wordpress รวมถึงการหา Version ที่ out of date ของ theme ด้วย

ตัวอย่างผลลัพธ์ที่ได้จากการใช้ WPScan

ซึ่งถ้าเราสังเกตผลลัพธ์จากการสแกนในส่วนล่างสุดจะเห็นว่า ถ้าเราอยากได้ข้อมูลช่องโหว่เพิ่มเติมเราต้องใส่ API Token เข้าไปด้วย

โดยเราสามารถได้ API Token จากการสมัครสมาชิกเว็บไซต์ WPScan โดยสมัครได้ที่ https://wpscan.com/register/ และเมื่อสมัครเสร็จแล้วก็สามารถนำ API Token มาใช้งานได้จาก https://wpscan.com/profile/ โดยที่แบบฟรีจะสามารถใช้งานได้ 25 ครั้งต่อวัน

คำสั่งในการใช้ API Token ก็เพียงแค่เติม — api-token เข้าไป ซึ่งผลลัพธ์ที่ได้จากการใช้ API Token จะมีข้อมูลของช่องโหว่ออกมา ต่อไปก็เป็นหน้าที่ของเราในการตรวจสอบช่องโหว่เหล่านั้นโดยตรวจสอบจาก Reference ที่ขึ้นมาให้

wpscan — url [URL] — api-token [api token]

นอกจากนี้ WPScan ยังมีคำสั่งสำคัญ ๆ อย่าง Enumerate ที่สามารถทำได้หลายสิ่ง เช่น หา Plugin หรือ Enumerate เพื่อหา Username (ใช้วิธีการทั้งแบบ passive และ Active ในการค้นหา เช่น Bruteforce ID หรือดูจาก Blog ภายในเว็บไซต์ หรือตาม Path API ต่าง ๆ) รวมไปถึง Bruteforce เพื่อหา Password ของหน้า Login Wordpress Admin และอื่น ๆ อีกมากมาย ซึ่งในครั้งนี้จะยกตัวอย่างมาให้เห็นดังนี้

ตัวอย่างของการใช้ Enumerate เพื่อหา User โดยสามารถใช้ผ่านคำสั่ง — enumerate u

wpscan — url [URL] — enumerate u

ซึ่งเมื่อเราได้ Username มาแล้ว ก็สามารถนำมาใช้ในการ Bruteforce หน้า Admin ของ Wordpress ต่อได้โดยการใช้คำสั่ง -U และตามด้วย User ที่เราได้มา เช่น -U pentester และตามด้วย -P [path ของ wordlist] เราก็จะได้หน้าตาคำสั่งออกมาเป็น

wpscan — url [URL] -U [ชื่อ] -P [path ของ wordlist]

หรือสามารถใส่แค่ -P แล้วตามด้วย Path ของ Wordlist โดยไม่ต้องใส่ U ได้เลย ก็จะเป็นการทำ Password Attack โดยใช้ User จากการ Enumerate เองของ Tool WPScan

ต่อไปเป็นตัวอย่างการใช้ Enumerate เพื่อหา Plugin ของเว็บไซต์โดยสามารถใช้ผ่านคำสั่ง — enumerate p และสามารถเลือกได้อีกว่าจะใช้การสแกน Plugin แบบไหนผ่านการใช้คำสั่ง — plugins-detection Aggressive (ค่า Default เป็นแบบ Passive)

wpscan — url [URL] — enumerate p
wpscan — url [URL] — enumerate p — plugins-detection aggressive

นอกจากนี้ Enumerate ยังมีอีกหลายแบบให้ใช้

และสำหรับเว็บไซต์ที่อาจจะมีความเปราะบางในการใช้ Tool Scan เครื่องมือ WPScan ก็มีคำสั่งในการลด Threds ลง เพื่อที่จะได้ลดความเร็วและความแรงในการใช้คำสั่งต่าง ๆ (ในการสแกนเว็บไซต์ซึ่งยิ่ง Threads น้อยยิ่งใช้เวลาสแกนช้าลง) โดยสามารถใช้คำสั่ง -t หรือ — max-threads [value] แล้วถ้าเราอยากบันทึกผลลัพธ์ของเราก็เพียงแค่ใช้คำสั่ง -o ได้เลยยย

ก็จบกันไปแล้วนะครับสำหรับการแนะนำ tool ในการสแกน cms เว็บไซต์ที่เป็น wordpress ซึ่ง tool นี้ก็มีเครื่องมือที่สะดวกสบายและครบครันในระดับนึง หากเรากำลังทดสอบกับเว็บไซต์ที่เป็น Wordpress แล้วล่ะก็ Tool นี้ก็เป็นตัวเลือกที่ดีทีเดียวเลยล่ะครับ แต่ต้องบอกไว้ก่อนเลยนะครับถ้าเราไม่ได้รับอนุญาตให้ทดสอบเว็บไซต์ เราไม่สามารถที่จะนำ WPScan ไปใช้สแกนเว็บไซต์หรือระบบของคนอื่นนะครับ มันเป็นสิ่งที่ผิดกฏหมาย!! แต่สำหรับคนที่อ่านวิธีใช้ WPScan แล้วคันมึคันมืออยากจะลองของ หรือว่าอยากจะลงมือปฏิบัติเพื่อให้เห็นภาพมากขึ้น ผมก็มีแลป TryHackMe ให้ได้ไปลองเล่นกันได้ที่ “https://tryhackme.com/room/wordpresscve202129447” ได้เลยครับ

และในวันนี้ผมก็ขอตัวลาไปก่อน แล้วพบกันใหม่อีกครั้งในบทความหน้าครับ สวัสดีครับ

--

--