A Hacker's Diary ตอน หาช่องโหว่ของด้วย Nikto


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

หลังจากที่ห่างหายไปนานเกือบสามอาทิตย์ เนื่องจากการเดินทางไปอินเดีย และ ได้รับเชื้อหวัดกลับมาเป็นของฝาก ในที่สุดผมก็เพิ่งจะกลับมามีแรงเขียนก็วันนี้แหละครับ แม้ว่าจะเขียนไป ไอ โคลก ๆ ไปก็ตาม ฉะนั้นผมขออนุญาตเขียนอะไรสั้น ๆ นะครับ วันนี้ผมเลยจะมาแนะนำเครื่องมือในการแฮก อ้อไม่ใช่ครับ ขอเรียกว่า security tool ที่ผมใช้ประจำละกันครับ ซึ่งไอ้เจ้า tool นี่มีชื่อว่า Nikto

ก่อนอื่นขออธิบายก่อนนะครับว่า Nikto เนี่ยมีไว้ทำอะไร? Nikto เป็นโปรแกรมโอเพ่นซอร์สที่เขียนด้วยภาษา Perl เพื่อใช้ในการตรวจสอบช่องโหว่ของเว็บแอพพลิเคชั่นและเว็บเซิร์ฟเวอร์ครับ โดย Nikto จะหาไฟล์ และการตั้งค่า (configuration)ที่ทำให้ระบบไม่ปลอดภัยของโปรแกรมต่าง ๆ ที่อยู่บน server ที่เราจะทดสอบเช่น php, tomcat, apache ฯลฯ ข้อดีของ tool นี้คือใช้ง่ายครับ และสามารถออกรายงาน และ นำไปผนวกกับ Nessus ได้ด้วย นอกจากนี้เรายังสามารถปรับแต่งได้ด้วยอีกว่าอยากให้ทดสอบช่องโหว่ใดเป็นพิเศษ หรือไม่ทดสอบช่องโหว่ประเภทใดประเภทหนึ่งก็ได้ อีกคุณสมบัติที่สำคัญของ Nikto ก็คือมันมีความสามารถในการหลบหลีก IDS ด้วยครับ ฉะนั้นถ้าท่านผู้อ่านต้องการจะทดสอบ IDS ก็สามารถใช้ Nikto ช่วยได้ครับ ส่วนวิธีใช้ไปอ่านเอาเองนะครับ อ่านได้ที่นี่

พูดถึงข้อดีไปแล้ว มาพูดถึงข้อเสียของ Nikto บ้างดีกว่า ข้อเสียของ Nikto อันแรกเลยคือ รายงานที่ได้จากการทดสอบด้วย Nikto นั้นบางครั้งก็เป็น False Alarm ซะเยอะดังนั้นผู้ใช้ที่ยังไม่ชำนาญอาจจะแยกแยะไม่ค่อยออก ข้อเสียอีกข้อหนึ่งของ Nikto คือ มันเป็น command line และต้องติดตั้ง Perl ก่อนครับถึงจะใช้ได้ (โดยส่วนตัวแล้วข้อนี้ไม่เป็นข้อเสียนะครับเพราะผมเคยชินกับการใช้ command line tool ครับ)

เมื่อมาพูดถึงวิธีการใช้ผมก็จะสาธิตเช่นเคยครับว่า nikto ใช้ทำอะไรได้บ้าง? ดังนั้นผมก็ขอเล่าประสบการณ์ของผมนะครับ เมื่อซักปลายปีที่แล้วผมต้องทำเว็บให้ญาติผู้ใหญ่ผมครับ ซึ่งผมก็ขัดใจแกไม่ได้เพราะท่านคิดว่าเรียนคอมพิวเตอร์มาต้องทำเป็นทุกอย่าง และผมก็ดันไปบอกว่าตัวเองเป็น Web Programmer ซะังั้น ซึ่งจริง ๆ แล้วการออกแบบหน้าตาเว็บหรือพวก graphic design เนี่ยผมไม่เคยแตะต้องเลยครับ ดังนั้นงานนี้เป็นงานแรกครับที่ผมต้องออกแบบหน้าตาเว็บด้วย ซึ่งแน่นนอนครับมันดูเป็นอะไรที่ทื่อ ๆ มาก ผมเลยต้องการหาพวกรูปภาพปุ่มสำเร็จรูป เพื่อมาเพิ่มสีสันให้เว็บผม ซึ่งผมก็ไปเจอเข้าเว็บหนึ่ง ถูกใจมาก ๆ เลยครับ ซึ่งต่อไปนี้ผมขอเรียกว่า www.rip-me-off-buttons.com นะครับ แต่ในโลกนี้ไม่มีอะไรฟรีครับ (There Is No Such Thing As A Free Lunch.) เว็บนี้เขาขายรูปภาพปุ่มแบบเหมาโหลครับไม่ขายแค่ปุ่มสองปุ่มที่ผมต้องการ เขาบอกว่าจ่ายมา 40 US Dollars เพื่อแลกกับปุ่ม 8000 แบบ โอ้วอะไรกันนี่ ผมต้องการแค่ปุ่มสองสามแบบเอง ผมไม่อยากจ่ายแพงขนาดนั้นอ่ะครับ ทำไงได้ผมมันก็แค่เป็นโปรแกรมเมอร์ต๊อกต๋อยนี่นา จะให้จ่ายแพง ๆ ขนาดนี้คงไม่ให้ ผมเลยต้องหาวิธีเอารูปปุ่มที่ผมต้องการมาให้ได้...

ดังเช่นที่ผมกล่าวไว้เสมอ ๆ "รู้เขารู้เรา รบร้อยครั้ง ชนะร้อยครั้ง " ผมก็ต้องเริ่มจากหาจุดอ่อนของเว็บสิครับว่ามีจุดอ่อนอะไรบ้าง ผมก็ใช้ Nikto นี่แหละครับ หาช่องโหว่ โดยผมเรียกใช้ Nikto แบบง่าย ๆ ด้วยคำสั่งนี้ครับ

nikto.pl -h www.rip-me-off-buttons.com -o output.html -F htm

คำสั่งด้านบนเป็นคำสั่งที่ใช้ในการตรวจสอบ เว็บ www.rip-me-off-buttons.com โดยให้แสดงรายงานแบบ HTML ในไฟล์ที่ชื่อว่า output.html ครับ ซึ่งพอผมเรียกคำสั่งนี้เสร็จก็ไปนอนเลยครับ ปล่อยใช้เ้จ้า Nikto มันตรวจสอบเว็บที่ว่าไป ตื่นเช้ามาผมก็พบผลลัพธ์ของ Nikto เป็นดังนี้



  • Scan is dependent on "Server" string which can be faked, use -g to override
  • Server: Apache/1.3.29 (Unix) PHP/5.2.5 FrontPage/5.0.2.2623


  • Scan is dependent on "Server" string which can be faked, use -g to override
  • Server: Apache/1.3.29 (Unix) PHP/5.2.5 FrontPage/5.0.2.2623
  • Retrieved X-Powered-By header: PHP/4.4.8
  • /robots.txt - contains 1 'disallow' entry which should be manually viewed (added to mutation file lists) (GET).
  • Allowed HTTP Methods: GET, HEAD, POST, OPTIONS, TRACE
  • HTTP method ('Allow' Header): 'TRACE' is typically only used for debugging--it should be disabled. Note, this does not mean the server is vulnerable to XST. OSVDB-877.
  • PHP/4.4.8 appears to be outdated (current is at least 5.1.6)
  • Apache/1.3.29 appears to be outdated (current is at least Apache/2.2.3). Apache 1.3.33 is still maintained and considered secure.
  • FrontPage/5.0.2.2623 appears to be outdated (current is at least 5.0.4.3) (may depend on server version)
  • FrontPage - http://www.insecure.org/sploits/Microsoft.frontpage.insecurities.html
  • / - TRACE option appears to allow XSS or credential theft. See http://www.cgisecurity.com/whitehat-mirror/WhitePaper_screen.pdf for details (TRACE)
  • /%3f.jsp - Redirects to http://www.rip-me-off-buttons.com/%3f.jsp/?.jsp , JRun 3.0 and 3.1 on NT/2000 running IIS4 or IIS5 allow directory listing by requesting %3f.jsp at the end of a URL.
  • 3294 items checked - 2 item(s) found on remote host(s)
  • End Time: Sun Feb 24 23:49:10 2008 (3290 seconds)

  • 1 host(s) tested
  • Test Options: -h www.rip-me-off-buttons.com -o output.html -F htm

จากรายงานดังกล่าวผมก็พบช่องโหว่ที่น่าสนใจอยู่หนึ่งอันครับ คืออันนี้

รายงานนี้บอกว่าผมสามารถเติม "%3f.jsp/?.jsp" ต่อท้าย URL เพื่อให้แสดงรายชื่อไฟล์และไดเร็กทอรีบนเครื่องเซิร์ฟเวอร์ได้ครับ ดังนั้นผมจึงไม่รอช้า รีบเข้าไปยัง URL ต่อไปนี้โดยเร็วพลัน http://www.rip-me-off-buttons.com/%3f.jsp/?.jsp ซึ่งเมื่อผมเข้าไปแล้วก็พบว่ามันแสดงรายชื่อไฟล์และไดเร็กทอรีได้จริง ๆ ด้วยดังรูปต่อไปนี้

index of /

ซึ่งผมก็พบว่ามี directory ที่ชื่อแปลก ๆ ที่ชื่อว่า "8742ur0w8w4rsa32" ผมคิดในใจว่าตั้งชื่อประหลาด ๆ อย่างนี้ ถ้าคนตั้งไม่บ้า ก็ต้องเก็บอะไรดี ๆ ไว้ไม่ใ้ห้คนรู้แน่นอน ผมเลยขอเข้าไปดูหน่อย โดยเข้าไปทาง URL ต่อไปนี้ http://www.rip-me-off-buttons.com/8742ur0w8w4rsa32/%3f.jsp/?.jsp ซึ่งมันก็แสดงให้ผมเห็นว่ามีไฟล์ต่อไปนี้

index of /

อ๊ะ มีไฟล์ชื่อว่า buttonlibrary.zip ซะด้วยต้องขอลอง download มาดูหน่อยแล้วว่าเป็นอะไร ด้วย URL ต่อไปนี้ http://www.rip-me-off-buttons.com/8742ur0w8w4rsa32/ButtonLibrary.zip

index of /

เมื่อ dowload ไฟล์ดังกล่าวเสร็จ ผมอุทานกับตัวเองดังๆ ว่าพระเจ้ามันยอดมาก ตอนแรกกะว่าจะขอรูปปุ่มแค่สองสามอัน ไหงดันให้มาตั้ง 8000 รูปซะงั้นโดยไม่ต้องจ่ายสักเซนต์เดียว ในการนี้ต้องขอบคุณผู้ดูแลระบบของ www.rip-me-off-buttons.com ที่เอื้อเฟื้อในการเปิดช่องให้ download ไฟล์ฟรีขอบคุณครับ _/|\_

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd><img> <object> <embed> <param>
  • Lines and paragraphs break automatically.
  • Images can be added to this post.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Copy the characters (respecting upper/lower case) from the image.
ญาณรักข์ วรรณสาย