Monday, June 4, 2012

อธิบายพื้นฐานศัพท์แฮก ต่างๆ สไตร์ ตาเล็ก..หากคิดจะมาทางสายนี้ต้องอ่านครับยาวสัดๆ!!

จริงๆ บทความนี้ เขียนไว้ราวๆ 3 ปีได้แล้วมั้ง (เขียนไว้อยุ่ในเวป opkwin)
และเนื่องมาจาก ตั้งใจจะไม่ทำ เวป opkwin แล้ว (ปล่อย domain หมดอายุไปแระ)
ก็เลย เอามาลง ไว้ในเวปนี้อีกที

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



Bug คือ อะไร
โดยปกติ โปรแกรมคอมพิวเตอร์, web, Os นั้นจะเขียนขึ้นมาจาก ภาษาคอมพิวเตอร์ ต่างๆ กันไป
เช่น บอท OPKwin เขียนมาจากภาษา perl, SMF เขียนมาจากภาษา php+mysql, นาย ก. เขียนระบบโหวตรูปของเวปขึ้นมาเองโดยใช้ php+mysql, ฯลฯ เป็นต้น
ซึ่งหากเมื่อโปรแกรมผู้พัตนาโปรแกรมเหล่านี้ ไม่ได้ทำการ เช็คค่าที่ทำการ input เข้าไปโดยผู้ใช้ อาจจะทำให้เกิด Bug ได้นั่นเอง
นั่นอาจเพราะ ตอนทำโปรแกรมขึ้นมาคงไม่ได้คาดคิดว่า ช่องที่ทำขึ้นมาให้ใส่แค่ตัวเลข จะมีคนอุดตริใส่ ข้อความลงไป อะไรประมาณนั่น !!
เหตุการณ์เหล่านี้ ทำให้โปรแกรมเกิดการทำงานผิดพลาดขึ้น หรือที่เรียกกันว่า Bug นั้นเอง
ซึ่ง Bug เหล่านี้อาจะไม่ส่งผลอะไรเลย หรือ อาจจะทำให้ เกิดผลร้าย ต่อเครื่องที่รันโปรแกรมก็เป็นไปได้ทั้งนั้น
และอาจจะมี user ที่ประสงค์ที่จะซน (hacker) ใช้ช่องโหว่จาก Bug ที่เกิดขึ้นทำนู้นนี่นั่นโน่น ได้นั่นเอง




Exploit, Local Exploit, Remote Exploit คืออะไร
Exploit ส่วนมากก็คือ ช่องโหว่ ที่เกิดขึ้นจาก Bug ที่ส่งผลต่อระบบนั่นเอง
ตั้งแต่ เปิดโปรแกรมมาแล้วเครื่องค้าง, คอมดับ, ไปจนกระทั้ง ดึง Shell มาใช้งานได้ !!
ซึ่งถ้าโปรแกรม เป็นประเภท Open Source (โปรแกรมที่เปิดเผย code, แจกฟรี)
ก็จะสามารถโหลดมานั่งหา Bug ได้หน่อย แต่ถ้าไม่ เนี่ย ต้องมานั่ง debug โปรแกรมทีละการทำงาน
หรือไม่ ก็ต้องมานั่งเดาอย่างเดียว
ปกติแล้ว Exploit จะมี 2 ประเถทคือ
- Local Exploit คือ จะต้องไปทำ Exploit นี้บนเครื่องที่มีโปรแกรมที่มีบัคตรงตามเงื่อนไขเท่านั้น
- Remote Exploit คือ จะทำ Exploit จากเครื่องไหนก็ได้ ขอให้ เครื่องที่จะโดนมีโปรแกรมที่มีบัคตรงตามเงื่อนไขเป็นพอ
เช่น หากโปรแกรม winamp มี Remote Exploit ทำให้สามารถดึง Shell ขึ้นมาใช้งานได้
ลองคิดตามครับว่าหาก ตาคริด เหยื่อของผมกำลังเปิดหนังน้องมิยาบิ ที่โดนตาเล็กยัด Exploit ส่งไปให้ด้วยโปรแกรม winamp
ในระหว่างเวลาที่ตาคริตนั่งดูน้องมิยาบิอยู่นั้น ตาเล็กก็สามารถ เข้าเครื่องตาคริตได้ สั่งทำงานได้ทุกอย่างเหมือนเครื่องตัวเองเด๊ะๆ
.. ว่าแล้วผมก็แอบโหลดหนังลับเฉพาะ คริต-อ้อย จากเครื่องตาคริตกลับมา เอาไว้แบร๊คเมล์ มันดีก่า .. คิคิ

ปล. เหตุการข้างต้นเป็นเรื่องสมมุติที่ทำได้จริง ... แต่หากทำจริง เงื่อนไขจะเยอะกว่านี้ ยากกว่านี้พอสมควร
เพราะหากเจาะจง user แบบด้านบน ต้องรู้ว่าตาคริตเปิด น้องมิยาบิตอนไหน (เดาอย่างเดียว)
และต้องหา ip ตาคริตให้ได้เพื่อ connect ไปตอนตาคริตเปิดโปรแกรม winamp เล่นหนังมิยาบิที่มี exploit
ถ้า คนธรรมดา น่าจะหายากหน่อยมั้ง และถ้าตาคริตดันใช้ VLC เปิดหนังก็ อดอีก !!

แต่ถ้าพวกที่แฮกแบบไม่เจาะจงเป้าหมาย
เช่นโปรแกรม utorrent มี exploit ใน file .torrent แล้ว มีคน ทำ torrent ยัด exploit แล้วบอกว่าเป้นหนังน้องอ้อย
จากนั้นไปปล่อยให้โหลด ในเวปที่คนโหลดเยอะๆ
จากนั้น แล้วรอเช็ค ip คนโหลดจากใน peer แล้วก็นั่งไล่แฮก คนโหลดทีละคน

อ๊ะ ... หากคุณคิดว่า คิดว่าแฮกไปเถอะ ไม่มีอะไรให้แฮกน่ะเหรอ ?
.. user-pass เวปในตำนาน, email, paypal, hi5, facebook, k-bank, code pro camfrog, ฯลฯ เหล่านี้ล่ะ ... คุณมีมั้ยเอ่ย !?




0day คืออะไร
ตามปกติมันก็คือ ช่องโหว่ของโปรแกรมหรือ website ต่างๆ ที่ถูกค้นพบ ซึ่งปกติ ผู้พบมักจะแจ้งผู้ผลิตก่อน (ไอ้ที่ไม่แจ้งก็เยอะ)
เมื่อผู้ผลิต แก้ไขช่องโหว่แล้ว ผู้พบก็นำออกมาประกาศให้รู้กันโดยทั่วไป ตามเวป exploit ต่างๆ เช่น exploit-db เป็นต้นนั่นเอง
ซึ่ง มันก็แปลตรงตัวคับ ว่า 0 วันครับ เพราะ มันจะใช้ช่องโหว่นี้ได้จนกว่าผู้ใช้ หรือ website จะ update แพทป้องกันจากผู้ผลิด
แต่ ถ้าผู้ใช้ยังไม่ update ตาม ก็ยังใช้ช่องโหว่นี้ได้อยู่ นะ เช่น ช่องโหว่ของ ie 6 (ที่แค่เปิดเวป ก็ติดไวรัสทันที)
ดังนั้น ใครยังใช้ ie6 อยุ่ ก็ยังรั่วอยู่เป็นต้น ซึ่ง คอสแฮกต่างๆ ที่ผมสอนอยู่นี่ ก็เปรียบเสมือน 0day เช่นกัน
แต่มันยังใช้งานได้อยู่เพราะคนไม่ค่อยจะอัพเดทกันนั่นเอง (เรื่องนี้ สอนในคอสแฮก คอสที่1)




priv8 คืออะไร
มันเป็นการพิมพ์แบบ แสลง พ้องเสียงจากคำว่า private ซึ่งหมายถึง ใช้เฉพาะกลุ่ม ไม่แจกจ่ายคนไม่สนิท อะไรประมาณนั้น
อาจจะได้เจอใน php-shell บางตัว หรือ บัคบางอัน (อันนี้ เหมือนเอามาลงคำแปลให้เฉยๆเลยเน๊อะ )




Shell, PhpShell คืออะไร
Shell เนี้ยมันแปลว่า หอย คับ แต่พอเกี่ยวกับเรื่องแฮก มันเปรียบเสมือนตัวความคุมระบบ ที่สามารถสั่งให้คอมมันทำงานต่างๆ
ยกตัวอย่างเช่นใน windows เจ้า shell เนี้ย ก็คือ file command.exe หรือ cmd.exe ที่มันอยุ่ใน c:\windows\system32 นั่นแหละคับ
ส่วนใน linux ก็คือพวก /sbin, /bin, nologin อะไรทำนองนั้น นั่นเอง
แล้วทีนี้ในเหล่าเครื่องที่เป็น webserver ตามปกติจะมีภาษา php ให้ใช้งาน คนก็เลย เขียนสคริป php
มาให้หน้าตาเท่ห์ และใช้งานง่ายๆ ขึ้นมาเพื่อเรียก shell ขึ้นมาใช้ทางหน้าเวปได้เลย
สคิปเหล่านี้เขียนแจกกันเพียบเช่น r57, c99 ซึ่งนั่นก็คือ PhpShell นั่นเอง

หากถามผมว่ามันทำอะไรได้บ้าง ผมคงบอกได้ไม่หมด เอาเป็นว่า ยกตัวอย่างเป็น น้ำจิ้ม ซักนิด คือมันสามารถ
รันโปรแกรม, ปิดโปรแกรม, สร้างfile, ลบ file, อ่านข้อมูลใน file, ไปจนถึง ปิดเครื่อง หรือ format คอม กันเลยทีเดียว !!
เป็นไง น้ำจิ้มหอย นี้รสเด็ดมะ !!
แต่ไม่ต้องกลัวครับ ปกติ มันจะมีระดับสิทธิ์ (Permission) ไว้ให้แต่ละ user อยู่ ซึ่งสิทธิ์พวก format, shutdown เหล่านั้น
ถ้าไม่ใช่เจ้าของเครื่อง (root, adminstrator) ไม่มีทางทำได้ครับ ตามปกติสำหรับเครื่องที่เซ็ตดีๆหน่อย
ขนาดแค่เปิดอ่าน file ยังไม่สามารถข้ามไปอ่านของคนอื่นได้เลยครับ




Permission คืออะไร
มันคือ สิทธิ์ ของแต่ละ user ที่อยู่บนเครื่องครับ มีคู่ linux และ windows ในระดับ server มานานแล้ว
แต่ใน windows เนี้ย คุณป๋า "บิลเกต พ่อทุกวินโด้" เพิ่งจะให้ความสำคัญแก่มันมากขึ้นก็เพิ่งใน vistra และ win7 นั่นเอง
หลังจากโดนไวรัสทั้งหลายเล่นงานจนงอมไปหลาย รุ่น
ปกติไม่ว่าจะ win หรือ linux เวลาเพิ่ม user เข้าไปในเครื่องนั้น
user ที่ เพิ่มมาใหม่จะได้รับ Path เป็นของตัวเอง ซึ่งจะมีสิทธิ์ทำนั่นนี่นู้นได้เฉพาะ Path ของตัวเองเท่านั้น
จะ ข้ามจาก Path ของตนเองไปซนใน Path ของชาวบ้านไม่ได้ ประมาณว่า จะแอบไปดูข้อมูลของ user เพื่อบ้านที่อยู่ path ข้างเคียงไม่ได้นั่นเอง
... แต่ทำได้ด้วยวิธีการที่เรียกว่า Bypass นั่นเอง !! (เรื่องนี้ สอนในคอสแฮก คอสที่2)




Path คืออะไร
พาธ นั้นไม่ใช่ พาส ตามที่หลายๆคนได้อ่านเจอ "พาธ" แล้วคิดว่าผมเขียนผิดในใจคับ
แต่มันคือที่อยู่ของ Folder หรือ directory นั่นเอง
เช่น โปรแกรม notepad.exe อยู่ที่ c:\windows\notepad.exe ซึ่ง พาธก็คือ c:\windows\ นั่นเอง
และ พาธแบบเขียนเต็มๆ ก็คือ c:\windows\notepad.exe คร๊าบบบโผ๊ม
ซึ่ง พาธเนี้ย มันสำคัญตรงที่ว่า เวลาเราจะเรียกโปรแกรม แต่ดันใส่ พาธผิด มันก็จะหาโปรแกรมไม่เจอ
มันก็อาจจะขึ้น error หรือไม่มีอะไรเกิดขึ้นเลย จริงมะ !!
ทีนี้เวลา bypass จะไปดู file ชาวบ้าน ถ้าใส่ พาธผิด มันก็ไม่เจอ file มันก็ ไม่ขึ้นอะไรให้ดูนี่ดิ
... อันนี้สำคัญ ที่มือใหม่หลายๆคนมักจะมา ตายน้ำตื้นกัน




Bypass คืออะไร
เป็นการอาศัยช่องโหว่ ภายในระบบ กระโดด ไป ดูข้อมูลของชาวบ้าน ที่อยู่ภายในเครื่องเดียวกัน
ประมาณว่า เวป server เปรียบเสมือน อพาทเม้นหรือแมนชั่น ใหญ่ๆ แห่งหนึ่ง
แล้วเวปที่อยู่ข้างในเปรียบเสมือนผู้อาศัย คนนอกทั่วไปจะเข้าอพาทเม้นนี้ไม่ได้ การแฮกก็จะเป็นไปได้ยาก
แต่ถ้า คนข้างใน โจรกันเอง ก็ จะง่ายขึ้นอีก 1 ขั้นตอน เพราะไม่ต้องมานั่งหาทางเข้าเครื่อง (ยากอ่ะ)

สมมุติชื่อ ตาเล็กแมนชั่น (เครื่องserver)
แล้วภายในมีนาย opkwin.com, stephack.com พักอาศัยอยู่ (เวปที่อยู่ในเครื่อง)

ซึ่ง หาก บุคคลภายนอก เช่น ตาคริต มัน จะมาแฮ๊กหนังโป๊ป๋มเพราะมันหื่น
แต่การจะเข้ามาในแมนชั่นแห่งนี้ จะไม่สามารถเข้ามาได้ เพราะติดพาสเข้าเครื่อง
ซึ่งตาคริต พยายามจะแฮกเท่าไหร่ก็ไม่ได้พาสเครื่อง
(เพราะ พาสเครื่องผมใช้อักษร a-z A-Z 0-9 แถมด้วยอัขระแปลกๆทั้งหมดทั้งมวลที่มีใน 3 โลก ความยาว 255 หลัก ถ้าเมิงแฮกได้อีก กรูยอม  :o )
ทีนี้ ตาคริตก็ปลอมตัวมาเป็น windows98SE-handsome.com มาขอเช่าอยู่ด้วย
ด้วยความที่ไม่รุ้ว่าเป็นคริตนูปปลอมตัวมา + ที่ชมผม ว่าผมหล่อ + ซึ่งจริงๆแล้วผมเห็นแก่ตังค่าเช่า sv ... ก็เลย ให้ user มันไป
แล้วตาคริต ก็ทำการ bypass มาขโมยข้อมูลจาก stephack.com แอบดูดหนังโป๊ไปจนหมด
แถมลบหนังโป๊ที่ตาเล็กสะสมไว้ทิ้ง ปล่อยให้ตาเล็กเจ็บใจเล่น ... เป็นต้น
... ตาเล็กก็จะทำได้แค่ร้องว่า หนังโป๊กูอยู่หน๋ายยยย  :'(





ช่องโหว่แบบ Full Disclosure คือ อะไร
เป็นช่องโหว่ที่ทำให้ attacker (ผู้โจมตี) เข้าถึงข้อมูลต่างๆ ที่มีการป้องกันไว้ได้
เช่น เข้าถึงไฟล์ password, source code ต่างๆ ... ได้เป็นต้น





path disclosure คืออะไร
แนะนำ อ่านอันนี้ (พร้อมรูปประกอบ)
http://blog.stephack.com/2013/11/path-disclosure.html

1 comment:

Max said...

there is a fix for this that I published there
http://egyptianvulture.blogspot.com/2014/06/how-to-fix-zynos-vulnerability-prevent.html

Why You Don't LIKE My FaceBook Fanpage ?
×
blogger