วันอาทิตย์ที่ ๑๙ สิงหาคม พ.ศ. ๒๕๕๐

Blue Screen Detail

เรื่องน่ารู้เกี่ยวกับการเกิดจอฟ้า
by notty32 on Tue Nov 07, 2006 02:43

คำว่า Blue Screen คนเล่นคอม จะรู้จักดีและเป็นสิ่งที่ทุกคนกลัวไม่อยากให้เกิดกับเครื่องของตน เพราะถ้าเกิดนั้นเป็นสัญญาณบอกเหตุว่าคอมของตนเริ่มมีปัญหา แต่ที่น่าเจ็บใจคือมันบอกเป็นเลขรหัสที่เราๆ ท่านๆ ต้องงงเพราะไม่รู้ว่ามันหมายความว่าอะไร และจะมีทางแก้ไขอย่างไร ผมไปอ่านเจอมาว่าแต่ละตัวมีความหมายอย่างไร ก็ลองแปลมาให้คุณๆ ได้อ่าน คิดว่าน่าจะเป็นแนวทางในการแก้ไขปัญหา ได้บ้าง รหัสที่แจ้งของ Blue Screen จริงๆมีเกินร้อยตัว

1.(stop code 0X000000BE) Attempted Write To Readonly Memory
สาเหตุและแนวทางแก้ไข:

อาการนี้เกิดจากการลง driver หรือ โปรแกรม หรือ service ที่ผิดพลาด เช่น ไฟล์บางไฟล์เสีย ไดร์เวอร์คนละรุ่นกัน ทางแก้ไขให้ uninstall โปรแกรมตัวที่ลงก่อนที่จะเกิดปัญหานี้ ถ้าเป็นไดร์เวอร์ก็ให้ทำการ roll back ไดร์เวอร์ตัวเก่ามาใช้ หรือ หาไดร์เวอร์ที่ล่าสุดมาลง (กรณีที่มีใหม่กว่า) ถ้าเป็นพวก service ต่างๆที่เราเปิดก่อนเกิดปัญหาก็ให้ทำการปิด หรือ disable ซะ

2.(stop code 0X000000C2) Bad Pool Caller
สาเหตุและแนวทางแก้ไข:
ตัวนี้จะคล้ายกับตัวข้างบน แต่เน้นที่พวก hardware คือเกิดจากอัฟเกรดเครื่องพวก Hardware ต่าง เช่น ram ,harddisk การ์ดต่างๆ ไม่ compatible กับ XP ทางแก้ไขก็ให้เอาอุปกรณ์ที่อัฟเกรดออก ถ้าจำเป็นต้องใช้ก็ให้ลงไดร์เวอร์ หรือ อัฟเดท firmware ของอุปกรณ์นั้นใหม่ และคำเตือนสำหรับการจะอัฟเดท ให้ปิด anti-virus ด้วยนะครับ เดียวมันจะยุ่งเพราะพวกโปรแกรม anti-virus มันจะมองว่าเป็นไวรัส

3.(stop code 0X0000002E) Data Bus Error
สาเหตุและแนวทางแก้ไข:

อาการนี้เกิดจากการส่งข้อมูลที่เรียกว่า BUS ของฮาร์ดแวร์เสียหาย ซึ่งได้แก่ ระบบแรม ,cache L2 ของซีพียู , เมมโมรีของการ์ดจอ, ฮาร์ดดิสก์ทำงานหนักถึงขั้น error (ร้อนเกินไป) และเมนบอร์ดเสีย

4.(stop code 0X000000D1)Driver IRQL Not Less Or Equal
สาเหตุและแนวทางแก้ไข:

อาการไดร์เวอร์กับ IRQ(Interrupt Request ) ไม่ตรงกัน การแก้ไขก็เหมือนกับ error ข้อที่ 1

5. (stop code 0X0000009F)Driver Power State Failure
สาเหตุและแนวทางแก้ไข:

อาการนี้เกิดจาก ระบบการจัดการด้านพลังงานกับไดรเวอร์ หรือ service ขัดแย้งกัน เมื่อคุณให้คอมทำงานแบบ"hibernate" แนวทางแก้ไข ถ้าวินโดวส์แจ้ง error ไดร์เวอร์หรือ service ตัวไหนก็ให้ uninstall ตัวนั้น หรือจะใช้วิธี Rollback driver หรือ ปิดระบบจัดการพลังงานของวินโดวส์ซะ

6.(stop code 0X000000CE) Driver Unloaded Without Cancelling Pending Operations
สาเหตุและแนวทางแก้ไข:

อาการไดร์เวอร์ปิดตัวเองทั้งๆ ทีวินโดวส์ยังไม่ได้สั่ง การแก้ไขให้ทำเหมือนข้อ 1

7.(stop code 0X000000F2)Hardware Interrupt Storm
สาเหตุและแนวทางแก้ไข:
อาการที่เกิดจากอุปกรณ์ฮาร์ดแวร์ เช่น USB หรือ SCSI controller จัดตำแหน่งกับ IRQ ผิดพลาด สาเหตุจากไดร์เวอร์หรือ firmware การแก้ไขเหมือนกับข้อ 1

8.(stop code 0X0000007B)Inaccessible Boot Device
สาเหตุและแนวทางแก้ไข:
อาการนี้จะมักเจอตอนบูตวินโดวส์ จะมีข้อความบอกว่าไม่สามารถอ่านข้อมูลของไฟล์ระบบหรือ boot partitions ได้ ให้ตรวจฮาร์ดดิสก์ว่าปกติหรือไม่ สายแพหรือสายไฟที่เข้าฮาร์ดดิสก์หลุดหรือไม่ ถ้าปกติดีก็ให้ตรวจไฟล์ boot.ini อาจจะเสีย หรือไม่ก็มีการทำงานแบบmulti OS ให้ตรวจดูว่าที่ไฟล์นี้อาจเขียน config ของ OS ขัดแย้งกัน

อีกกรณีหนึ่งที่เกิด error นี้ คือเกิดขณะ upgrade วินโดวส์ สาเหตุจากมีอุปกรณ์บางตัวไม่ compatible ให้ลองเอาอุปกรณ์ที่ไม่จำเป็นหรือคิดว่ามีปัญหาออก เมื่อทำการ upgrade วินโดวส์ เรียบร้อย ค่อยเอาอุปกรณ์ที่มีปัญหาใส่กลับแล้วติดตั้งด้วยไดร์เวอร์รุ่นล่าสุด

9. (stop code 0X0000007A) Kernel Data Inpage Error
สาเหตุและแนวทางแก้ไข:

อาการนี้เกิดมีปัญหากับระบบ virtual memory คือวินโดวส์ไม่สามารถอ่านหรือเขียนข้อมูลที่ swapfile ได้ สาเหตุอาจเกิดจากฮาร์ดดิสก์เกิด bad sector, เครื่องติดไวรัส, ระบบ SCSI ผิดพลาด, RAM เสีย หรือ เมนบอร์ดเสีย

10. (stop code 0X00000077) Kernel Stack Inpage Error
สาเหตุและแนวทางแก้ไข:

อาการและสาเหตุเดียวกับข้อ 9

11.(stop code 0X0000001E) Kmode Exception Not Handled
สาเหตุและแนวทางแก้ไข:

อาการนี้เกิดการทำงานที่ผิดพลาดของไดร์เวอร์ หรือ service กับ หน่วยความจำ และ IRQ ถ้ามีรายชื่อของไฟล์หรือ service แสดงออกมากับ error นี้ให้ทำการ uninstall โปรแกรมหรือทำการ roll back ไดร์เวอร์ตัวนั้น

ถ้ามีการแจ้งว่า error ที่ไฟล์ win32k สาเหตุเกิดจาก การ control software ของบริษัทอื่นๆ (Third-party) ที่ไม่ใช้ของวินโดวส์ ซึ่งมักจะเกิดกับพวก Networking และ Wireless เป็นส่วนใหญ่

Error นี้อาจจะเกิดสาเหตุอีกอย่าง นั้นคือการ run โปรแกรมต่างๆ แต่หน่วยความจำไม่เพียงพอ


12.(stop code 0X00000079)Mismatched Hal
สาเหตุและแนวทางแก้ไข:

อาการนี้เกิดการทำงานผิดพลาดของ Hardware Abstraction Layer (HAL) มาทำความเข้าใจกับเจ้า HAL ก่อน HAL มีหน้าที่เป็นตัวจัดระบบติดต่อระหว่างฮาร์ดแวร์กับซอฟท์แวร์ว่าแอปพลิเคชั่นตัวไหนวิ่งกับอุปกรณ์ตัวไหนให้ถูกต้อง ยกตัวอย่าง คุณมีซอฟท์แวร์ที่ออกแบบไว้ใช้กับ Dual CPU มาใช้กับเมนบอร์ดที่เป็น Single CPU วินโดว์ก็จะไม่ทำงาน วิธีแก้คือ reinstall วินโดวส์ใหม่

สาเหตุอีกประการการคือไฟล์ที่ชื่อ NToskrnl.exe หรือ Hal.dll หมดอายุหรือถูกแก้ไข ให้เอา Backup ไฟล์ หรือเอา original ไฟล์ที่คิดว่าไม่เสียหรือเวอร์ชั่นล่าสุดก๊อปปี้ทับไฟล์ที่เสีย

13.(stop code 0X0000003F)No More System PTEs
สาเหตุและแนวทางแก้ไข:

อาการนี้เกิดจากระบบ Page Table Entries (PTEs) ทำงานโดย Virtual Memory Manager (VMM) ผิดพลาด ทำให้วินโดวส์ทำงานโดยไม่มี PTEs ซึ่งเป็นสิ่งจำเป็นสำหรับวินโดวส์ อาการนี้มักจะเกิดกับการที่คุณทำงานแบบ multi monitors

ถ้าคุณเกิดปัญหานี้บ่อยครั้ง คุณสามารถปรับแต่ง PTEs ได้ใหม่ ดังนี้
1. ให้เปิด Registry ขึ้นมาแก้ไข โดยไปที่ Start > Run แล้วพิมพ์คำสั่ง Regedit
2. ไปตามคีย์นี้ HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management
3. ให้ดูที่หน้าต่างขวามือ ดับคลิกที่ PagedPoolSize ให้ใส่ค่าเป็น 0 ที่ Value data และคลิก OK
4. ดับเบิลคลิกที่ SystemPages ถ้าคุณใช้ระบบจอแบบ Multi Monitor ให้ใส่ค่า 36000 ที่ Value data หรือใส่ค่า 40000 ถ้าเครื่องคุณมี RAM
128 MB และค่า 110000 ในกรณีที่เครื่องมี RAM เกินกว่า 128 MB แล้วคลิก OK
รีสตาร์ทเครื่อง


14.(stop code 0X00000024) NTFS File System
สาเหตุและแนวทางแก้ไข:

อาการนี้สาเหตุเกิดจากการรายงานผิดพลาดของ Ntfs.sys คือไดร์เวอร์ของ NTFS อ่านและเขียนข้อมูลผิดพลาด สาเหตูนี้รวมถึง การทำงานผิดพลาดของ controller ของ IDE หรือ SCSI เนื่องจากการทำงานของโปรแกรมสแกนไวรัส หรือ พื้นที่ของฮาร์ดดิสก์เสีย คุณๆสามารถทราบรายละเอียดของerror นี้ได้โดยให้เปิดดูที่ Event Viewer วิธีเปิดก็ให้ไปที่ start > run แล้วพิมพ์คำสั่ง eventvwr.msc เพื่อเปิดดู Log file ของการ error โดยให้ดูการ error ของ SCSI หรือ FASTFAT ในหมวด System หรือ Autochk ในหมวด Application


เมื่อ: 10 กันยายน 2006, 1406
________________________________________

15.(stop code 0X00000050)Page Fault In Nonpaged Area
สาเหตุและแนวทางแก้ไข:
อาการนี้สาเหตุการจากการผิดพลาดของการเขียนข้อมูลในแรม การแก้ไขก็ให้ทำความสะอาดขาแรมหรือลองสลับแรมดูหรือไม่ก็หาโปรแกรมที่ test แรมมาตรวจว่าแรมเสียหรือไม่


16.(stop code 0Xc0000221)Status Image Checksum Mismatch
สาเหตุและแนวทางแก้ไข:

อาการนี้สาเหตุมาจาก swapfile เสียหายรวมถึงไดร์เวอร์ด้วย การแก้ไขก็เหมือนข้อ 15

17.(stop code 0X000000EA) Thread Stuck In Device Driver
สาเหตุและแนวทางแก้ไข:

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

1.ให้ดูที่ power supply ของคุณว่าจ่ายกำลังไฟเพียงพอกับความต้องการของคอมคุณหรือไม่ ให้ดูว่าในเครื่องคุณมีอุปกรณ์มากไปไม่เหมาะกับ power supply ของคุณ ก็ให้เปลื่ยนตัวใหม่ให้กำลังมากขึ้น ปัญหานี้ผมเคยมีประสพการณ์แล้ว 2 ครั้ง คือ
2. ให้คุณดูที่การ์ดจอว่าได้ใช้ไดร์เวอร์ตัวล่าสุด ถ้าแน่ใจว่าใช้ตัวล่าสุดแล้วยังมีอาการ ก็ให้ทำการ Rollback ไดร์เวอร์ตัวก่อนที่จะเกิดปัญหา
3. ตรวจดูการ์ดจอและเมนบอร์ดว่าเสียหรือไม่เช่น มีรอยไหม้, ลายวงจรขาด มีชิ้นสวนบางชิ้นหลุดจากตำแหน่งเดิม เป็นต้น
4. ดูที่ bios ว่าส่วนของ VGA slot เลือกโหมด 4x,8x ถูกตามสเปกของการ์ดหรือไม่
5. เช็คดูที่ผู้ผลิตเมนบอร์ดว่ามีไดร์เวอร์ตัวใหม่หรือไม่ ถ้ามีให้โหลดลงใหม่ซะ
6. ถ้าคุณมีการ์ดแลนหรือเมนบอร์ดของคุณมี on board อยู่ให้ disable ฟังก์ชั่น "PXE Resume/Remote Wake Up" โดยไปปิดที่ BIOS

18. (stop code 0X0000007F) unexpected Kernel Mode Trap

สาเหตุและแนวทางแก้ไข:

อาการนี้ส่วนใหญ่จะเป็นกับนัก overclock (ผมก็คนหนึ่ง) เป็นอาการ RAM ส่งข้อมูลให้ CPU ไม่สัมพันธ์กันคือ CPU วิ่งเร็วเกินไป หรือร้อนเกินไปสาเหตุเกิดจากการ overclock วิธีแก้ก็คือลด clock ลงมาให้เป็นปกติ หรือ หาทางระบายความร้อนจาก CPU ให้มากที่สุด

19. (stop code 0X000000ED)Unmountable Boot Volume

สาเหตุและแนวทางแก้ไข:

อาการที่วินโดวส์หาฮาร์ดดิสก์ไม่เจอ (ไม่ใช่ตัวบูตระบบ) ในกรณีที่คุณมีฮาร์ดดิสก์หลายตัว หนึ่งในนั้นคุณอาจใช้สายแพของฮาร์ดดิสก์ผิด เช่น ฮาร์ดดิสก์เป็นแบบ 33MB/secound ซึ่งต้องใช้สายแพ 40 pin แต่คุณเอาแบบ 80 pin ไปต่อแทน

DNS Zone Transfer

สวัสดีคับจากที่ผ่านมาผมได้เขียนเกี่ยวกับการแกะรอย (foot printing)
วันนี้ก็เลยอยากจะมาอธิบายเทคนิคที่ผมใช้บ่อยๆในการค้นหา IP และการทำ
network mapping ด้วยวิธีการ DNS Zone Transfer ซึ่งเป็นวิธีที่ค่อนข้าง
classic ซักหน่อยนะคับ (อิอิ เก่าแล้วแต่ยังใช้ได้ดีอยู่คับ)

เริ่มกันเลยแล้วกันคับ สมมุติว่าคุณถูกจ้างให้ทำการทดสอบระบบความปลอดภัยของ
องค์กรใดก็ตาม หลังจากที่ได้ใช้ Google ในการค้นหาข้อมูลที่รั่วไหลแล้ว
step ต่อไปก็คือการทำ network mapping หรือการจำลอง network diagram ของ
เป้าหมายโดยที่คุณต้องหาทางให้ได้ข้อมูลนั้นมา อ้าวแล้วจะทำไงดีล่ะคับคราวนี้?
มาดูตัวอย่างกันดีกว่าคับ

องค์กร citXX มี website ชื่อว่า www.citXX.ABC หลังจากที่เราได้ค้นหาข้อมูล
โดยใช้ Google ด้วยคำสั่ง

site:citXX.ABC –site:www.citXX.ABC


คราวนี้เราก็จะได้ sub domain ที่อยู่ภายใต้ domain citXX.ABC มาหลาย domain เช่น
host, kb, blog, rg และอีกมากคับก็ให้จดไว้เป็นข้อมูลเบื้องต้น
หลังจากนั้นถ้าเราจะทำ DNS Zone Transfer เราจะต้องทราบว่า DNS Server
ของเป้าหมายอยู่ที่ไหน โดยปกติแล้วข้อมูลพวกนี้สามารถหาดูได้จาก website ที่ให้บริการ
whois ทั่วๆไปคับ อย่างเช่น www.checkdomain.com, www.apnic.net
ก็จะปรากฏข้อความแบบนี้



อ้าว!!! เฮ้ย….
ไม่มีข้อมูล ทำไงดีล่ะคับคราวนี้ สิ่งที่เราต้องการคือ dns หรือ ip ของ
name server ที่ map ชื่อ www.citXX.ABC อยู่เพื่อทำ zone transfer
อ่อ…. คิอ่อและ หรือว่า dns นี้ไม่ใช่ .com เลยไม่ได้ถูก registered ใน Global whois
งั้นลองค้นหาใน internic ดูดีกว่า ว่าแล้วก็…





ออกมาแล้วครับ สิ่งที่ต้องการนั่นคือ ns1.citXX.ABC หลังจากนั้นก็ให้ลองใช้ nslookup
ในการค้นหา ip address ดูคับ



(ผมขออนุญาตปิดบังข้อมูลนะคับ ทำให้ดูแทบไม่รู้เรื่อง)
ok คับได้ ip address ของ ns1.citXX.ABC มาแล้วพร้อมจะทำ Zone transfer ซะที
แต่เด๋วก่อนไหนลอง nslookup www.citXX.ABC ดูดิว่ามี ip อะไร….
อ้าวดันเป็น ip เดียวกันกับ ns1.citXX.ABC ซะนี่ เป็นไปได้ว่า เครื่องนี้รัน service
ทั้ง web server และ dns server คับ ว่าแล้วก็จดไว้คับ จดไว้..

DNS Zone Transfer
DNS คือ service ที่ให้บริการ map ชื่อ domain กับ ip address เพื่อให้
มนุษย์โลกจำได้ง่ายคับ เช่น ip 58.181.243.6 ชื่อว่า www.sanook.com นะ
พอเวลาที่มนุษย์จะเข้า website หรือใช้บริการอื่นๆก็ไม่จำเป็นใส่ ip address
ก็ให้ใส่ชื่อแทนได้เลยคับ คราวนี้ไอ้เจ้า DNS server นี่แหละที่เป็นตัวเก็บข้อมูลทั้งหมด
ของ Domain และ sub domain ไว้ดังนั้นถ้าเราสามารถเห็นว่ามันเก็บอะไรอยู่บ้าง
เราก็สามารถรู้ได้ว่าชื่อ domain ต่างๆเป็น ip address อะไรรวมทั้งยังเดาได้อีกว่า
ให้บริการอะไรด้วยคับ

ปกติแล้วเราจะใช้คำสั่ง nslookup (name server lookup) เพื่อใช้ในการดูว่า dns นั้น
resolve ออกมาเป็น ip อะไร คราวนี้เราจะมาลองใช้ nslookup เนี่ยแหละทำ
DNS Zone Transfer กันคับโดยพิมพ์คำสั่ง nslookup ใน Terminal ของ windows
จะออกมาเป็นแบบนี้คับ



ให้สังเกตุว่าตอนนี้ Default server ที่ใช้ทำการ dns query นี้คือ ip address router
ของผมเองซึ่งจะไม่มีข้อมูลของเป้าหมายแน่ๆ ดังนั้นเราต้องบอกให้ nslookup ทำการ
query ที่ dns server ของเป้าหมายโดยระบุ ip ที่เราได้ทำการจดไว้ข้างต้น
โดยใช้ทำสั่ง

>server 202.XXX.XXX.XXX



คราวนี้ nslookup ของเราก็จะเข้าใจแล้วว่าจะต้องไปค้นหาข้อมูลต่างๆที่ server ดังกล่าว
หลังจากนั้นเราก็ทำการ set type=any เพื่อบอกว่าเราต้องการทุก record ที่มีนะ
แล้วก็ใช้ทำสั่ง ls –d citXX.ABC. เพื่อเป็นการ list record ทั้งหมดตามรูปนะคับ



ถ้า dns server ไม่ได้ config ไว้อย่างรัดกุมอาจจะทำให้ผลออกมาเป็นแบบนี้คับ



(YES!!! ….ออกมาแล้วคับ)
ให้สังเกตุฝั่งซ๊ายมือนะคับตั้งแต่ blog จนถึง www บอกอะไรเราบ้าง
ส่วน column ข้อมูล record type A, NS, MX, CNAME และ SOA นี้จะเป็นการบอกชนิดของ record นะคับว่าเป็นอะไรลองศึกษาการ config DNS server จะทำให้เข้าใจอย่างโจ่งครึ่ม(แจ้ง) ข้อมูลที่ได้มาคือ เครื่องนี้มี name server ชื่อว่า ns1.citXX.ABC ให้บริการ
blog à Web Server
db à Database Server
ftp à FTP Server
mail à Mail Server
ns1 à DNS Server
pop à POP Mail Server
smtp à SMTP Mail Server
www à Web Server
ข้อมูลที่ได้มานี่เป็นทำให้เราสามารถเดาได้ในระดับนึงนะคับว่าเครื่องใดให้บริการอะไรบ้าง
คราวนี้เราลองเอาข้อมูลที่ได้มาวาดรูปดูนะคับว่า network จะเป็นยังไง



นี่คือตัวอย่าง diagram ที่ได้ข้อมูลมาจาก DNS server ที่เราทำ Zone Transfer มาคับ
จริงๆแล้ว services ที่ list ไว้อาจจะตรงหรือไม่ตรงก็ได้เราต้องทำการ check อีกที
โดยการใช้ tools scanner เช่นพวก nmapในการตรวจสอบอีกทีนะคับ

การป้องกันการทำ DNS Zone Transfer นั้นสามารถทำได้โดยการจำกัด host
ที่จะจำเป็นต้องเข้ามาทำ zone transfer เท่านั้นอย่างเช่นพวก DNS secondary server
เท่านั้นที่จะอนุญาตให้เข้ามา query ข้อมูลโดยระบุ ip เครื่องไปเลยคับ
ถ้าอยากทราบวิธี config อ่านที่นี่ คับ

tag:google hack, Pen Test, Penetration Test, Penetration testing