เส้นทางการเรียนรู้ของ IT Security


“อยากแฮกต้องศึกษาอะไร ?” หลายๆ คนคงเคยเห็นคำถามนี้แต่คำตอบที่ผมเห็นส่วนมากคือ แนะนำให้ไปศึกษาพื้นฐานระบบ network หัดเขียนโปรแกรม อะไรทำนองนี้ซะส่วนมากจึงทำให้มองไม่เห็นปลายทางว่าจะได้แฮกเมื่อไหร่ ซึ่งตอนที่ผมทำงานปีแรก(ทำ security test ภายในองค์กร) ผมเองก็เจอหัวหน้า ถามคำถามประมาณว่าตอนที่ผมจะทดสอบระบบผมจะทดสอบอะไรบ้าง ซึ่งมันก็ไม่มีคำตอบตายตัว แต่ให้อธิบายทั้งหมดมันคงจะยาวมากๆ ผมเลยเขียนบทความนี้ไว้อธิบายเกี่ยวกับการศึกษาด้าน offensive security หรือเรียกสั้นๆ ว่าการแฮกนั้น ต้องศึกษาอะไร และแต่ละอย่างทำอะไรได้บ้าง แบบสั้นๆ เพื่อไม่ให้ยาวเกินไป และเพื่อให้มี keyword เริ่มต้นสำหรับคนอยากรู้รายละเอียดแต่ละเรื่อง แล้วเอา keyword ไปค้นหาใน search engine เอง โดยเริ่มจากแผนภาพก่อนเพื่อให้เห็นภาพรวมทั้งหมดก่อน


Basic Linux/Windows Administration
พื้นฐานของการดูแลระบบระบบปฏิบัติการ Linux/Windows เพื่อให้รู้ว่าระดับการใช้งานของผู้ดูแลระบบกับผู้ใช้ทั่วไปเป็นอย่างไร เพราะในมุมมองการทดสอบแฮกระบบนั้นผู้โจมตีจะต้องเข้าใจถึงการทำงานต่าง ๆ ก่อนโดยเฉพาะในระดับผู้ดูแลระบบ ว่าการตั้งค่าอย่างปลอดภัยเป็นอย่างไร จึงจะสามารถแนะนำวิธีการให้ระบบมีความมั่นคงปลอดภัยมากขึ้นหรือทดสอบหาจุดบกพร่องในระบบได้และเมื่อทำการทดสอบเจาะเข้าไปในระบบได้ เราจะสามารถทำอะไรได้บ้าง


Manage services
คือการรู้จักและเข้าใจการ service ต่างๆ ภายในระบบคอมพิวเตอร์ ยกตัวอย่างระบบที่เป็น web service (Apache, IIS, Tomcat) หรือ database service (MySQL, MS-SQL) จะต้องมีการตั้งค่าและบริหารจัดการอย่างถูกต้องปลอดภัย


LAMP stack
LAMP เป็นรูปแบบสถาปัตยกรรมสำหรับการให้บริการเว็บไซด์ยอดนิยม ที่ประกอบไปด้วยส่วนประกอบหลัก 4 อย่างดังตัวย่อต่อไปนี้ L = ระบบปฏิบัติการ Linux , A = Apache เป็น software ให้บริการ web service, M = MySQL เป็น software จัดการฐานข้อมูล, P = PHP เป็น software สำหรับประมวลผลคำสั่งเว็บที่เขียนในภาษา PHP นอกจาก LAMP ยังมี stack อื่นๆ อีกมากมาย โดยมีส่วนหลักๆ 4 ส่วน [ระบบปฏิบัติการ, software ให้บริการ web service, software จัดการฐานข้อมูล, software สำหรับประมวลผลภาษาโปรแกรม] เช่น MEAN stack


IIS
IIS ย่อมาจาก Internet Information Services เป็น software ให้บริการ web service บนระบบปฏิบัติการ Windows โดยส่วนมากนิยมใช้กับการพัฒนาเว็บแอปพลิเคชันที่เขียนด้วยภาษา ASP หรือ C#


MS-SQL
ย่อมาจาก Microsoft SQL Server เป็น software จัดการฐานข้อมูลที่พัฒนาโดยบริษัท Microsoft


Bash/Powershell Scripting
การใช้คำสั่งสคริปเพื่อใช้งานระบบปฏิบัติการผ่าน command line
Bash shell จะอยู่บน Linux และ Powershell จะอยู่บน Windows


Windows Domain (AD DS) [Active Directory Domain Services]
คือ บริการจัดการทรัพยากรต่างๆ ในระบบเน็ตเวิร์คที่ประกอบไปด้วยเครื่องคอมพิวเตอร์ที่ใช้ระบบปฏิบัติการ Windows รวมไปถึงจัดการผู้ใช้งาน เนื่องจากการใช้งานในระดับองค์กร จำเป็นต้องบริหารจัดการเครื่องผู้ใช้งานในจำนวนมากเช่นหลักร้อยหรือหลักหมื่นเครื่อง ดังนั้นเราจึงไม่สามารถให้ผู้ดูแลระบบไปตั้งค่าคอมพิวเตอร์ครั้งละมาก ๆ ได้ จึงต้องใช้ AD DS ในการบริหารจัดการเครื่องทั้งหมดจากศูนย์กลาง ตัวอย่างความสามารถของ AD DS เช่นการกำหนดสิทธิ์ของผู้ใช้งานในระบบ การตั้งค่าไฟวอร์ และการบังคับให้ผู้ใช้งานตั้งรหัสผ่านอย่างปลอดภัย


File/user management
การจัดการไฟล์และผู้ใช้ในระบบ เช่นการ เพิ่มผู้ใช้ในระบบ, จัดการไฟล์ว่าให้ใครมีสิทธิเข้าถึงได้บ้าง


OS Permission
ระดับสิทธิการใช้งานต่างๆ ในแต่ละระบบปฏิบัติการ โดยแต่ละระบบปฏิบัติการจะออกแบบสิทธิของผู้ใช้ออกมาไม่เหมือนกัน


==================================================


Basic web/mobile programming
พื้นฐานการเขียนโปรแกรมบนเว็บไซต์ / แอปพลิเคชันบนสมาร์ทโฟน ซึ่งเป็นพื้นฐานหลักสำคัญในการศึกษาว่า เว็บไซต์หรือแอปพลิเคชัน ทำงานอย่างไร


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


OWASP Top 10 (2017)
รายชื่อความเสี่ยงของช่องโหว่ที่มีผลกระทบรุนแรง และ พบเจอบ่อยที่สุด 10 อันดับ ที่สำรวจโดย OWASP (Open Web Application Security Project) ซึ่งคือ open community ที่มีจุดประสงค์เพื่อช่วยเพิ่มระดับความน่าเชื่อถือในการพัฒนา, จัดซื้อ, และบำรุงรักษาแอปพลิเคชัน โดยมีเอกสาร, เครื่องมือ, สื่อการสอนต่างๆ, และมาตรฐานในการเสริมสร้างความมั่นคงปลอดภัยให้กับแอปพลิเคชัน

1. Injection
ช่องโหว่เกี่ยวกับการแทรกคำสั่งหรือโค้ดเข้าไปเปลี่ยนแปลงการทำงานแอปพลิเคชันเพื่อกระทำการบางอย่างตามจุดประสงค์ของ code ที่แทรกเข้าไป เช่น ในภาษา SQL โดยมีจุดประสงค์เพื่อเข้าถึงระบบฐานข้อมูลอื่นๆนอกเหนือจากที่โปรแกรมบนแอปพลิเคชันเรียกใช้งาน วิธีการนี้จะรู้จักกันในชื่อของ SQL Injection


2. Broken Authentication
ช่องโหว่ของการที่มีมาตรการป้องกันการเข้าถึงระบบได้ไม่ดีหรือไม่มีการป้องกันการเข้าถึงทำให้ผู้โจมตีเข้าถึงระบบที่ไม่ควรให้เข้าถึง อาจจะร้ายแรงถึงขั้นเข้าถึงการจัดการของผู้ดูแลระบบได้


3. Sensitive Data Exposure
ช่องโหว่ของการเก็บข้อมูลที่ควรปกป้องไว้เป็นความลับได้ไม่ดีหรือไม่มีการปกป้องข้อมูลสำคัญ เช่น ข้อมูลบัตรเครดิต ข้อมูลผู้ป่วยของโรงพยาบาล


4. XML External Entity (XXE)
ช่องโหว่ที่จากการจัดการไฟล์ XML อย่างไม่ปลอดภัย อาจจะเกิดจากการรับ input จาก user เข้าไปเขียนและประมวลผลคำสั่ง XML ให้มีการโจมตีระบบเช่น ทำให้แฮกเกอร์อ่านไฟล์ที่ไม่ควรอ่านได้


5. Broken Access Control
ช่องโหว่ของการเข้าถึงข้อมูลหรือทรัพยากรณ์ต่างๆในระบบที่ไม่ควรให้เข้าถึงได้ เช่น ข้อมูลของ user คนอื่นในระบบ


6. Security Misconfiguration
ช่องโหว่การตั้งค่าระบบไม่ปลอดภัย หรือใช้ค่าเริ่มต้นของการตั้งค่า ทำให้ผู้โจมตีสามารถคาดเดาการตั้งค่าของระบบได้


7. Cross-Site Scripting (XSS)
ช่องโหว่เกิดจากนำสคริปที่ไม่ปลอดภัยที่รับมากจาก user input นำไปประมวลผลที่ web browser


8. Insecure Deserialization
ช่องโหว่ที่เกิดจากการแปลงข้อมูลที่ไม่ปลอดภัย


9. Using Components with Know Vulnerabilities
ช่องโหว่ของการใช้ software หรือ hardware ใน version ที่มีช่องโหว่ที่เป็นที่รู้จักโดยเปิด ข้อมูลช่องโหว่จะถูกเปิดเผยไว้เป็นสาธารณะ ให้ทุกคนสามารถมาดูได้จาก https://www.cvedetails.com/


10. Insufficient Logging & Monitoring
ช่องโหว่ที่เกิดจากการเก็บบันทึกและการตรวจสอบระบบที่ไม่เพียงพอ


อื่นๆ นอกเหนือจาก OWASP Top 10

นอกจากช่องโหว่จาก OWASP Top 10 ยังมีช่องโหว่อื่นๆ อีกมากมายที่ไม่ได้ถูกจัดอันดับไว้


Tools (Web Application Attack)
เครื่องมือที่ใช้สำหรับโจมตี/ทดสอบแอปพลิเคชัน
  • Sqlmap : Tool ที่ใช้โจมตี/ทดสอบช่องโหว่ SQL Injection ในแอปพลิเคชัน
  • BurpSuite : เป็นเครื่องมือทดสอบเจาะระบบแอปพลิเคชัน โดยหน้าที่หลักจะใช้เป็นตัวกลางในการดัก(intercept) การร้องขอข้อมูลจากเว็บไซต์ เพื่อให้เห็นรายละเอียดของการร้องขอ และแก้ไข้การร้องขอก่อนจะส่งไปยังเว็บไซต์ นอกจากนั้นยังมีฟังก์ชันพื้นฐานอื่นๆ เช่น ฟังก์ชันการส่งการร้องขอซ้ำ ฟังก์ชันการแปลงรหัส
ช่องโหว่
ตัวอย่างช่องโหว่อื่นๆนอกเหนือจากที่ถูกจัดอันดับไว้ใน OWASP Top 10 ปี 2017
  • CSRF (Cross Site Request Forgery) : ช่องโหว่ของการเรียกการทำงานบางอย่างของเว็บไซต์หนึ่งจากอีกเว็บไซต์หนึ่ง
  • SSRF (Server Side Request Forgery) : ช่องโหว่ที่เกิดจากการเปลี่ยนแปลง request ที่ฝั่ง server ให้เป็น request ที่ไม่ปลอดภัย

==================================================


Kali Linux
ระบบปฏิบัติการ linux ที่ออกแบบมาเพื่อใช้งานในการพิสูจน์หลักฐานทางดิจิทัลและการทดสอบเจาะระบบ


Password Attacks

Windows
การโจมตีรหัสผ่านบนระบบปฏิบัติการ Windows

- Pass-the-hash
เป็นเทคนิคการใช้รหัสผ่านที่ถูกแฮชไว้นำไปใช้ยืนยันตัวตนโดยไม่ต้องแกะรหัสแฮชไปเป็นรหัสผ่านก่อนที่ทำการแฮชเพื่อเข้าสู่ระบบ

- Golden Ticket Attack
เทคนิคการโจมตีที่ใช้ฝังตัวอยู่ในระบบเน็ตเวิร์คของ Windows ที่เกิดขึ้นหลังจากผู้โจมตีสามารถยึดระบบ Windows Active Directory Domain Controller (AD DC) แล้วยกระดับสิทธิ์สูงสุดในระบบได้ จากนั้นนำกุญแจลับมาสร้างช่องทางการเข้าสู่ระบบ เรียกว่า Golden Ticket เพื่อใช้ในการเข้าสู่ระบบอย่างลับ ๆ ต่อไปแม้ว่าช่องโหว่ที่โจมตีเข้ามาจะถูกแก้ไขแล้ว

- Mimikatz
โปรแกรมยอดนิยมที่ใช้สำหรับการอ่านรหัสผ่านของผู้ใช้งาน จากในหน่วยความจำของระบบปฏิบัติการ Windows เนื่องจากรหัสผ่านอาจถูกเก็บไว้ชั่วคราว (cache) ในหน่วยความจำได้

- WCE
WCE ย่อมาจาก Windows Credentials Editor เป็นเครื่องมือในการแสดง session ของการเข้าสู่ระบบ บนระบบปฏิบัติการ Windows โดยสามารถ เพิ่ม, เปลี่ยน การเชื่อมโยงข้อมูลลับได้


Type
ประเภทของการโจมตีรหัสผ่านด้วยวิธีการและเทคนิคต่างๆ สามารถแบ่งได้ดังนี้

- Dictionary Attack
เป็นการนำคำที่เราเก็บไว้ในไฟล์หลาย ๆ คำมาทดลองใส่ค่าเป็นรหัสผ่านทีละคำ เช่นการนำไฟล์จากรหัสผ่านยอดนิยม 10000 รหัสผ่าน มาทดสอบล็อคอินเข้าไปในระบบกับชื่อผู้ใช้งานที่ต้องการจะทดสอบเดารหัสผ่าน

- Brute-force Attack
เป็นการเดารหัสผ่านทุกค่าที่สามารถเป็นไปได้เช่น ถ้ารหัสผ่านถูกกำหนดเป็นตัวเลข 4 ตัว ก็จะเดาตั้งแต่ 0000 เพิ่มขึ้นทีละ 1 ไปถึง 9999 จนกระทั่งบนตัวเลขที่เป็นรหัสผ่านที่ถูกต้อง


Offline password hash attacks
การนำรหัสผ่านที่ถูกทำการ hash มาแกะรหัสบนเครื่องแบบออฟไลน์ เหตุผลหลักที่นำมาแกะในเครื่องเราเองก็เพราะว่าใช้ทรัพยากรณ์ค่อนข้างสูง

- Tools(Offline password hash attacks)
เครื่องมือในการทดสอบโจมตีรหัสผ่าน โดยไม่จำเป็นต้องส่งรหัสผ่านไปทดสอบกับ service ที่กำลังทำงานอยู่ ตัวอย่างเช่น ถ้าแฮกเกอร์สามารถนำค่า MD5 แฮชของรหัสผ่านออกมาได้ เขาสามารถนำมาทดลองเดารหัสผ่านบนเครื่องตัวเองได้ โดยไม่ต้องส่งรหัสผ่านไปที่ service ตรง ๆ ข้อดีคือการทำแบบนี้จะมีประสิทธิภาพสูงมาก เพราะไม่ต้องห่วงเรื่องความหน่วงในระบบเน็ตเวิร์ค (network latency) ในขณะทำการส่งรหัสผ่านออกไปและรอผลที่ตอบกลับมา

  • hashcat : เครื่องมือในการแกะค่าแฮชของรหัสผ่าน แบบออฟไลน์ (ไม่จำเป็นต้องส่งรหัสผ่านไปทดสอบกับ service ที่กำลังทำงานอยู่) ที่รองรับการใช้ CPU และ GPUs ในการเร่งความเร็วในการแกะรหัสแฮช เช่นการทดสอบนำคำใน wordlist มาทดลองเข้าแฮช เช่น MD5, SHA-1 หรือ BCrypt และนำไปเทียบว่าตรงกับค่าแฮชที่ต้องการจะทดสอบแกะหรือเปล่า
  • john the ripper : เครื่องมือในการแกะค่าแฮชของรหัสผ่านแบบออฟไลน์ (ไม่จำเป็นต้องส่งรหัสผ่านไปทดสอบกับ service ที่กำลังทำงานอยู่) สามารถทำงานได้กับค่าแฮชหลากหลายประเภท เช่น MD5, SHA-1 หรือ BCrypt


- Rainbow table
เทคนิคการนำค่าแฮชเก็บไว้คู่กับรหัสผ่าน เพื่อใช้ตรวจสอบว่าค่าแฮชที่ต้องการจะแกะนั้นตรงกับรหัสผ่านใด ข้อดีของการทำ rainbow table คือตัวโปรแกรมที่ใช้แกะรหัสผ่าน ไม่จำเป็นต้องคำนวณค่าแฮชของรหัสผ่านใหม่ทุกครั้ง จึงทำการทดสอบแกะรหัสผ่านได้เร็วมาก ๆ แต่ข้อเสียคือ จำเป็นต้องเสียพื้นที่เก็บค่าแฮชคู่กับรหัสผ่าน ซึ่งโดยส่วนมากจะเพิ่มขนาดของ wordlist อย่างน้อย 2 เท่าและไม่รองรับการแฮชที่มีความซับซ้อนเช่นมีการใช้ค่า salt ที่ทำให้ค่าแฮชของรหัสผ่านเดิมไม่เหมือนกันเพราะใส่ค่าสุ่มเข้าไปด้วยได้


Wordlist
เป็นรายการของคำที่เอาไว้ใช้โจมตีแบบ Brute-force attack โดยส่วนมากมักจะเก็บไว้เป็นไฟล์ เช่น ไฟล์จากรหัสผ่านยอดนิยม 10000 รหัสผ่าน

- rockyou.txt(kali linux)
Wordlist มาตรฐานที่ได้มาใน Kali linux ตั้งแต่ติดตั้งระบบปฏิบัติการ โดยเก็บอยู่ที่ /usr/share/wordlists/rockyou.txt.gz


Online password attacks
การโจมตีรหัสผ่าน ที่ใช้ผ่านบริการที่ทำงานอยู่บนระบบเครือข่าย เช่น การเข้าสู่ระบบเว็บไซต์ การเข้าสู่ระบบการจัดการฐานข้อมูล การโจมตีรหัสผ่านประเภทนี้ผู้โจมตีจะต้องทดลองส่งรหัสผ่านเข้าไปล็อคอินกับบริการนั้น ๆ และตรวจสอบผลว่าสามารถเข้าสู่ระบบได้หรือเปล่า

- Tools (Online password attacks)
เครื่องมือในการโจมตีรหัสผ่าน ผ่านบริการบนระบบเครือข่าย ที่เปิดใช้งานอยู่ โดยการทดลองส่งรหัสผ่านเข้าไปเพื่อล็อคอินว่าสามารถเข้าได้หรือเปล่า


  • hydra : เครื่องมือในการแกะรหัสผ่านที่ใช้ในการเข้าสู่ระบบผ่านบริการบนระบบเครือข่าย ที่เปิดใช้งานอยู่ โดยการทดลองส่งรหัสผ่านเข้าไปเพื่อล็อคอินว่าสามารถเข้าได้หรือเปล่า โดยเครื่องมือยอดนิยมในประเภทนี้มีอยู่ 3 ตัวคือ hydra, medusa และ ncrack
  • medusa : เครื่องมือในการแกะรหัสผ่านที่ใช้ในการเข้าสู่ระบบผ่านบริการบนระบบเครือข่าย ที่เปิดใช้งานอยู่ โดยการทดลองส่งรหัสผ่านเข้าไปเพื่อล็อคอินว่าสามารถเข้าได้หรือเปล่า โดยเครื่องมือยอดนิยมในประเภทนี้มีอยู่ 3 ตัวคือ hydra, medusa และ ncrack
  • ncrack : เครื่องมือในการแกะรหัสผ่านที่ใช้ในการเข้าสู่ระบบผ่านบริการบนระบบเครือข่าย ที่เปิดใช้งานอยู่ โดยการทดลองส่งรหัสผ่านเข้าไปเพื่อล็อคอินว่าสามารถเข้าได้หรือเปล่า โดยเครื่องมือยอดนิยมในประเภทนี้มีอยู่ 3 ตัวคือ hydra, medusa และ ncrack

---------------------------------------------------

Exploitation
Exploitation หรือเรียกย่อ ๆ ว่า exploit คือการโจมตีระบบโดยใช้โค้ดหรือเทคนิคต่าง ๆ


Exploit-DB
เว็บไซด์ ที่ถูกใช้เป็นฐานข้อมูลที่เก็บรวบรวมเครื่องมือหรือโค้ดที่ใช้ในการโจมตีระบบผ่านช่องโหว่ https://www.exploit-db.com


Metasploit
Metasploit เป็นซอฟต์แวร์ framework ยอดนิยมที่ใช้พัฒนาและรวบรวมโค้ดสำหรับการโจมตีระบบผ่านช่องโหว่ต่าง ๆ https://www.metasploit.com

---------------------------------------------------

Vulnerability Scan
การสแกนหาช่องโหว่เพื่อค้นหาจุดอ่อนของระบบที่กำหนด


OpenVAS
Open Vulnerability Assessment System (OpenVAS) เป็น open source framework ที่มีบริการและเครื่องมือมากมายในการสแกนหาช่องโหว่ http://openvas.org


Nessus
เครื่องมือในการสแกนหาช่องโหว่ สามารถระบุข้อบกพร่อง มัลแวร์ การพลาดการอัพเดท และ การตั้งค่าที่ไม่ปลอดภัย ของซอฟต์แวร์

---------------------------------------------------

Tools (Network Security)
เครื่องมือที่ใช้เกี่ยวกับระบบเครือข่าย


Netcat
เป็นเครื่องมือที่ใช้ส่งและรับข้อมูลบนระบบเครื่อข่าย ผ่าน command line


Wireshark
เครื่องมือวิเคราะห์โปรโตคอลในระบบเครือข่าย สามารถใช้ดักจับข้อมูลที่วิ่งผ่านระบบเครือข่ายได้ผ่าน user interface https://www.wireshark.org


TCPdump
เครื่องมือดักจับข้อมูลในเครือข่าย ผ่าน command line

---------------------------------------------------

Information Gathering
เป็นขั้นตอนการรวบรวมข้อมูลขอระบบที่เราจะทดสอบหรือโจมตี ซึ่งเป็นขั้นตอนแรกของการทดสอบเจาะระบบ


Passive (Information Gathering)
การเก็บรวบรวมข้อมูลเป้าหมายจากแหล่งข้อมูลที่เป็นสาธารณะ


- Google hacking
คือการค้นหาข้อมูลผ่าน search engine โดยมีใช้ตัวกรองเพื่อเลือกเอาผลลัพธ์ที่เฉพาะเจาะจงจากการค้นหา


- Shodan
เป็น search engine ที่เป็นที่นิยมสำหรับ Penetration Tester ไว้ใช้ค้นหาข้อมูลของอุปกรณ์ที่มีการเชื่อมต่อกับอินเทอร์เน็ต สามารถเจาะจงประเภทของอุปกรณ์ได้ https://www.shodan.io


- E-mail harvesting
คือการรวบรวม email ในระบบที่เป็นเป้าหมายเราด้วยวิธีการต่างๆ


- Who is
การสืบค้นข้อมูลของผู้ใช้ลงทะเบียนเว็บไซต์และทรัพยากรผ่านเครือข่ายอินเทอร์เน็ต


- Maltego
เครื่องมือในการรวบรวมข้อมูลของระบบและนำมาวิเคราะห์


- Recon-ng
เป็น framework ในการสืบค้นข้อมูลของเว็บไซต์


Active (Information Gathering)
การเก็บรวบรวมข้อมูลเป้าหมายแบบที่มีปฏิกิริยาตอบโต้


- SNMP Enum
การสืบค้นข้อมูลจาก Protocol SNMP


- SMTP Enum
การสืบค้นข้อมูลจาก Protocol SMTP
ที่ได้จากการเชื่อต่อไปยัง service เป้าหมาย


- SMB Enum
การสืบค้นข้อมูลจาก Protocol SMB
  • Tools(SMB Enum) : เครื่องมือในการสืบค้นข้อมูลจาก Protocol SMB
  • enum4linux : เครื่องมือในการสืบค้นข้อมูลบนระบบ Windows และ Samba จาก http://www.bindview.com
  • NetBIOS Scan : การสแกนหา NetBIOS name-servers บนเครือข่ายอินเทอร์เน็ต
  • Null session : ช่องโหว่ที่สามารถการเชื่อมต่อแบบ anonymous(ไม่มี session) เกิดบนระบบปฏิบัติการ Windows


- DNS Enum
เป็นเทคนิคที่ใช้ในการดึงข้อมูลออกมาจาก DNS Server


  • Forward/Reverse Lookup Bruteforce : Forward Lookup คือการส่ง hostname ไปขอ IP Address ส่วน Reverse Lookup คือการส่ง IP Address ไปขอ hostname จาก DNS Server เมื่อนำสองอย่างนี้มารวมกับเทคนิค Bruteforce จะเป็นการสุ่ม IP Address หรือ hostname จากนั้นทำไปขอข้อมูลจาก DNS Server
  • DNS Zone transfer : เป็นเทคนิคการรวบรวมข้อมูลเพื่อการโจมตีในภายหลัง
  • Tools (DNS Enum) : เครื่องมือในการดึงข้อมูลออกมาจาก DNS Server
  • DNSRecon : เป็น Tool ที่เขียนขึ้นมาจากภาษา Python ใช้สำหรับการทำตรวจสอบความปลอดภัยหรือแก้ปัญหาข้อผิดพลาดของ DNS Server ตัวอย่างความสามารถของ Tool เช่น ตรวจสอบ Zone Transfer ของ DNS Server หรือ Brute Force subdomain เป็นต้น (https://github.com/darkoperator/dnsrecon)
  • DNSEnum (Tool) : เป็น Tool ที่เขียนขึ้นมาจากภาษา Perl ใช้สำหรับการดึงข้อมูลออกมาจาก DNS Server ตัวอย่างความสามารถของ Tool เช่น ดึง IP Address จาก hostname หรือ ไปค้นหา ชื่อ subdomain จาก google เป็นต้น (https://github.com/fwaeytens/dnsenum)


- Port Scanning
การสแกนหาบริการที่เปิดอยู่บนเครื่อง โดยแต่ละบริการจะกำกับด้วยหมายเลข port มีใช้รันบริการนั้นอยู่
  • TCP/SYN Scan : เป็นเทคนิคที่ใช้สแกนหาบริการแบบ TCP ที่เปิดอยู่บนเครื่อง โดยที่ทำ Handshark แบบไม่เต็มรูปแบบ ทำให้ช่วยลดเวลาในการ Scan
  • UDP Scan : เป็นการแสกนหาบริการแบบ UDP ที่เปิดอยู่บนเครื่อง
  • Tools (Port Scanning) : เครื่องมือในการสแกนหาบริการที่เปิดอยู่บนเครื่อง
  • nmap : โปรแกรมเอาไว้ค้นหาบริการ หรือเครื่องที่เปิดอยู่ภายใน Network https://nmap.org
  • OS Fingerprint : เป็นเทคนิคที่ใช้ตรวจสอบว่า เครื่องที่ทำการสแกนเพื่อพิจารณาระบบปฏิบัติการ
  • Banner grabbing : เป็นเทคนิคที่ใช้เพื่อตรวจสอบ Network service ว่าเป็นบริการประเภทไหน โดยดูจาก banner ที่ได้จากการเชื่อต่อไปยัง service เป้าหมาย

  • 1