วันพฤหัสบดีที่ 24 ตุลาคม พ.ศ. 2556

ทำความเข้าใจกับ Batch File ไวรัส ตอนพิเศษ 2

ในแง่ความเป็นจริงแล้ว...ไม่มีใครชอบไวรัสคอมพิวเตอร์...แต่พอใครบางคนเริ่มรู้ว่าตนเองสามารถเขียนมันขึ้นมาได้...หรือแกล้งคนอื่นๆ ได้...ความชั่วร้ายในใจ...กลายเป็นพลังผลักดันให้คนเหล่านั้น...เขียนมันซ้ำอีก...พัฒนามันซ้ำอีก...จนกลายเป็น "เด็กร้อนวิชา"
แต่ในโลกยุคปัจจุบัุน...การเขียนไวรัสเป็นเ้รื่องผิดกฎหมาย...ทำให้ใครหลายคน...มองว่ามันเป็นเรื่องไม่ดี...ไม่เหมาะ...(ก็จริง) แต่ในด้านการศึกษาแล้ว...มันถูกมองข้ามความสำคัญของการป้องกันตัวเอง...รู้เท่าทัน...คำสั่งที่มีชีวิต...อาศัยเพียงไม่กีตัวอักษร...ในการคัดลอกตัวคำสั่งของมันไปเรื่อย...องค์ความรู้เหล่านี้...อยู่แต่ห้องใต้ดิน...และเวปมืด
และยิ่งเป็นคำสั่ง Batch File ที่สามารถเขียนมันบน Notepad มันยิงทำให้คนรุ่นใหม่...มองหาอะไรที่ง่ายๆ เขียนเพียงไม่กี่ตัวอักษร หรือคัดลอกไป...มันก็ทำให้คนเหล่านั้นประหลาดใจได้ เรียกเด็กพวกนี้ว่า "เกรียนแอฟ" มักจะลองของ...แกล้งเพื่อน...โดยกฎหมายยังมองเห็นเป็นเรื่องเล็กๆ ที่พอจะรับได้...แต่ถ้าเมื่อใดเป็นการ "แฮกเวป" "ดักฟัง" "ทำลายข้อมูล" เรื่องเล็กที่เด็กบางคน...ไม่รู้...ก็จะเป็น "งานเข้า" สำหรับเด็กเหล่านั้น...ฉนั้นการศึกษาคำสั่งบางคำสั่ง...น้องๆ ต้องรู้ว่า...มันทำง่านอย่างไร...ทำเพื่ออะไร...และมีผลอย่างไร

การเป็นนักฆ่าไวรัสด้วย Batch File
1. ต้ืองมีความรู้ว่า...Virus นั้นทำงานอย่างไร (เอาไว้มาสอนอีกที)
2. ต้องรู้ว่ามันจะถูกฆ่าได้อย่างไร
3. ต้องรู้ว่ามันอาศัยอยู่ที่ใดๆ ในเครื่องเรา
4. ป้องกันได้อย่างไร

ต้องมีความรู้ว่า Virus นั้ำนทำงานอย่างไร...
ไวรัส...หรือมัลแวร์อื่นๆ อาศัยช่องทางการฝั่ง Shell หรือ ตัวของไวรัสหรือมัลแวร์ต้องทำงานได้ทุกๆ ครั้งที่
1.เครื่องเปิดการทำงานเพื่อหลบซ่อน
2. โปรแกรมที่จะฝั่งตัวทำงานเพื่อ...แพร่เชื้อ
3. คัดลอกตัวเองไปยัง "โฮสต์" ที่ตั้งใจ...ได้อย่างรวดเร็ว

ต้องรู้ว่ามันจะถูกฆ่าได้อย่างไร
1. Virus บางตัวนั้นอาศัย โปรเซส ... หรือ Service เพื่อทำการดักรอสถานการณ์

1.1 ค้นหา่ำทำลายโปรเซส
Takslist
เพื่อดูว่ามีคำสั่งไวรัสเป้าหมายติดเชื้อในเครื่องหรือยัง
Taskkill /im "เชื่อไวรัส.exe"
คำสั่งนี้...คือคำสั่งปิดโปรเซสไวรัสที่ต้องการเพื่อไม่ให้มันดักรอสถานการณ์และป้องกันลูกหลานมันจากการลบทิ้งหรือทำลายพวกมัน อันแรก...ต้องใช้คำสั่งนี้ทำงาน

1.2 ทำลายมันในคำสั่งแรกไม่ได้...
net start
เพื่อดูว่ามี Service ไวรัสเป้าหมายหรือไม่ที่ขัดขวางการอินเตอร์รัพต์เพื่อปิดโปรเซส
net stop "เซอร์วิสไวรัส"
คำสั่งนี้...คือการปิดบริการของระบบที่คำสั่งปิดโปรเซสไม่สามารถทำลายได้
จากนั้นให้วนกลับไปข้อ 1.2 ใหม่

2. เทียบเคียงค้นหาและทำลาย
คำสั่งชุดนี้...ถ้าน้องๆ จะเขียนให้มันฆ่าไวรัสสักตัว...ก่อนอื่นต้องรู้ก่อนว่า...แฟ้มไวรัส มีลักษณะอย่้างไร เช่น ขนาดเท่าไหร นามสกุลอะไร หลบซ่อนแบบใด
ยกตัวอย่างง่ายๆ จะฆ่าไวรัสซอทคัท...
for /f %%a in ('for %%d in (c d e f g h i j k l m n o p q r s t u v w x y z) do dir %%d:\ *.lnk /s /b') do (
  if %~zI== 512 (
    attrib -r -s -h %%a
    del %%a
    echo [kill] %%a
  )
)
จากตัวอย่างด้านบน คำสั่งหมายถึง
ลิสต์คำสั่ง dir ไดร์ฟ:\ แฟ้มนามสกุล.lnk ทั้งระบบ เป็นบรรทัดเดียว มาอยู่ในคำสั่ง for เืพื่อค้นหา ขนาดไฟล์ == 512 หรือไม่ ถ้าใช้... กำหนดแอตทิบิวต์ เป็นธรรมดา และลบแฟ้ม และแสดงข้อความ

ซึ่งในส่วนของการค้นหาไวรัส ถ้ามีหลายประเภทเช่น .vbs .js .bat .cmd หลายๆ นามสกุล เราต้องเขียนคำสั่งที่ยากขึ้นไปอีกดังนี้...กรณีตัวอย่าง...ฆ่าไวรัส autorun.inf
for %%d in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
  %%d:
  for /f %%a in ('dir *.* /ad /b') do (
    for /r %%b in (*.vbs *.js *.bat *.cmd) do (
      for /f %%c "tokens=*" in ("%%a\%%b") do (
        findstr "[AutoRun]" "%%c"
        if errorlevel 1 (
          echo Found AutoRun Command...[Kill] %%c
          attrib -r -s -h "%%c"
          del "%%c"
        ) else (
          echo [ OK ] %%c
        )
      )
    )
  )
)
จากคำสั่งด้านบน...หมายถึง
ลิสต์ไดร์ฟข้อมูลทั้งหมด และกระโดดไปทำงาน
ลิสต์โฟลเดอร์ทั้งหมด
ลิสต์นามสกุลไฟล์ที่ต้องการค้นหา
ค้นหาคำสั่ง [AutoRun] เพื่อดูว่ามีหรือเปล่า
ถ้าพบ...แสดงข้อความ กำหนดแอตทิบิวต์เป็นธรรมดา และลบทิ้ง
ถ้าไม่พบ แสดงข้อความ [OK]

น้องๆ สามารถประยุกต์ใช้งานเป็นของตนเอง...ตามความเหมาะสม

3. ปรับปรุงแก้ไขระบบให้ถูกต้อง...
น้องๆ ต้องศึกษาคำสั่ง Registry ที่ไวรัสแก้ไขไป...เพื่อเซ็ตกลับมาให้ถูกต้อง

ต้องรู้ว่ามันอาศัยอยู่ที่ใดๆ ในเครื่องเรา
ให้ย้อนกลับไปดูว่ามันสามารถอาศัยส่วนใดได้บางจากบทนี้

ป้องกันได้อย่างไร
การป้องกันมีหลากหลาย...เช่น
1. ดักรอใน Process เพื่อดูว่า...แฟลชไดร์ฟพบ Autorun.inf หรือไม
2. ดูว่ามีการสร้าง .lnk .pif ในแฟลชไดร์ฟหรือไม่
3. ปิดการใช้งาน Autorun.inf

บทสรุป...
สำหรับไวรัสจำพวก Autorun.inf นั้นเป็นเพียงอดีตไปแล้ว...และไวรัสซอตคัทก็เช่นกัน...ไวรัสจากอดีตถึงปัจจุบัน...มีหลายยุค...หลายรุ่น...แต่ทุกๆ ยุค จะมีนักฆ่าไวรัส และตัวฆ่าไวรัสเกิดขึ้นมาใหม่ๆ เสมอ...แต่นับวันไวรัสยิ่งอาศัยการเข้าถึง ระบบมากยิ่งขึ้น...จึงทำให้เิ่ริ่มฆ่ายากขี้น...มีการทำลายที่รุ่นแรงขึ้น...ไวรัสเองไม่ได้มาเฉพาะ USB ไดร์ฟ แต่ในอินเตอร์เน็ต ใน e-Mail ในโปรแกรมเองก็มี...ฉนั้นการอาศัยแบตช์ไฟล์เพียงอย่างเดียวในการฆ่าไวรัสนั้นอาจทำไมได้...ยังต้องพึงพาโปรแกรมฆ่าไวรัสอยู่ดี...เหมือน Combofix ที่เป็น Batch File แต่อาศัย แอปพลิเคชั่นช่วยทำงานและฆ่าไวรัสเสริมเข้าไป...ฉนั้นคำสั่ง Batch file อาศัยช่วยพยุงคำสั่งเท่านั้น...ตัวของแบตช์ไฟล์เอง...ฆ่าไวรัส ง่ายๆ ได้ แต่ยังไม่มีประสิทธิภาพและความสวยงามเพียงพอ