Sniffer

Sniffers FAQ

บทความนี้เรียบเรียงมาจาก sniffers FAQ เขียนโดย Christopher William Klaus

1. sniffer คืออะไร ทำงานอย่างไร

เนื่อง จากคอมพิวเตอร์เน็ตเวิร์คเป็นระบบการสื่อสารที่ใช้ร่วมกัน เพื่อประหยัดค่าใช้จ่าย การแบ่งกันใช้ (sharing) หมายถึงคอมพิวเตอร์สามารถรับข้อมูลที่คอมพิวเตอร์เครื่องอื่นตั้งใจจะส่งไป ให้อีกเครื่องหนึ่ง การดักจับข้อมูลที่ผ่านไปมาระหว่าง เน็ตเวิร์คเรียกว่า sniffing

วิธีที่นิยมในการต่อคอมพิวเตอร์เข้าด้วยกันคือการใช้อีเทอร์เน็ต (ethernet), โปรโตคอล อีเทอร์เน็ตทำงานโดยการส่งข้อมูลแพ็กเก็ตไปยังทุกโฮสที่อยู่ในวงจรการสื่อสารเดียวกัน แพ็กเก็ตเฮดเดอร์ (packet header) จะมีที่อยู่ที่ถูกต้องของเครื่องปลายทาง เครื่องที่มีที่อยู่ถูกต้องเป็นเครื่องที่คาดหวังว่าจะได้รับแพ็กเก็ต ส่วนเครื่องที่รับทุก ๆ แพ็กเก็ตโดยไม่สนใจว่าแพ็กเก็ตเฮดเดอร์จะสื่อสารว่าอย่างไร เราเรียกคอมพิวเตอร์เครื่องนั้นว่าอยู่ใน โพรมิสคิวอัสโหมด (promiscuous mode)

ใน สภาพปกติของเน็ตเวิร์ค ข้อมูลเกี่ยวกับแอคเคาท์และรหัสผ่านจะถูกส่งไปทางอีเทอร์เน็ต ในลักษณะที่สามารถอ่านใด้ (clear-text) จึงไม่เป็นการยากสำหรับผู้บุกรุกที่ได้สิทธิ์เท่ากับผู้บริหารระบบจะทำให้ เครื่องอยู่ในโพรมิสคิวอัสโหมดและการใช้ sniffer เพื่อที่จะขโมย ลอกอินและรหัสผ่านในอินเตอร์เน็ต

2.หา sniffer ได้จากที่ไหน

sniffing เป็นหนึ่งในวิธีการที่หมู่แฮกเกอร์นิยมใช้มาก อย่างเช่น sniffer ที่เรียกว่า Esniff.c ที่ไฟล์มีขนาดเล็ก ออกแบบเพื่อให้ทำงานสำหรับ SunOS มันจะดักจับข้อมูล 300 ไบต์แรก ของการติดต่อ telnet, ftp, และ rlogin โปรแกรมนี้ได้รับการตีพิมพ์ในนิตรสาร Phack นิตยสารใต้ดินที่เกี่ยวกับ hacking ที่สามารถหาอ่านได้ทางอินเตอร์เน็ต คุณสามารถหานิตยสาร Phrack ได้จากหลาย ๆ ไซต์ อย่าง ftp://coombs.anu.edu.au/pub/net/log เป็นต้น

คุณอาจทดลองรันโปรแกรม Esniff.c ในเน็ตเวิร์คที่คุณมีสิทธิ์เพื่อจะดูว่ามันมีผลอย่างไร ก็ต่อเครื่องของคุณ

โปรแกรม sniffer อื่น ๆ ที่สามารถหาได้อย่างกว้างขวาง เพื่อใช้สำหรับหาปัญหาที่เกี่ยวกับเน็ตเวิร์ค

* RealSecure (มอนิเตอร์เน็ตเวิร์คแบบเรียลไทม์ และรายงานการจู่โจมเน็ตเวิรค์ และการตอบรับ ) สำหรับ SunOS 4.1.x, Solaris 2.5 และ Linux หาได้จาก http://www.iss.net/RealSecure

* SniffIt สำหรับ Linux, SunOS, Solaris, FreeBSD, และ IRIX หาได้จาก http://reptile.rug.ac.be/~coder/sniffit/sniffit.html

* Etherfind สำหรับ SunOs 4.1.x

* Snoop เป็นยูทิลิตี้ใน Solaris

* Tcpdump 3.0

* Packetman, Interman, Etherman, Loadman ทำงานบน SunOS, Dec-Mips, SGI, Alpha, และ Solaris หาได้จาก ftp://ftp.cs.curtin.edu.au/pub/netman/[sun4c|dec-mips|sgi|alpha|solaris2] โปรแกรม Packetman ออกแบบมาเพื่อดักจับแพ็กเก็ต ส่วน Interman, Etherman และ Loadman จะมอนิเตอร์การสื่อสารในเน็ตเวิร์คในหลาย ๆ รูปแบบ

sniffer ที่ทำงานบน DOS

* Gobbler สำหรับ เครื่องคอมพิวเตอร์ที่ใช้ IBM DOS * ethdump v1.03 หาได้จาก ftp://ftp.germany.eu.net/pub/networking/inet/ethernet/ethdp103.zip

* ethdump v1.03 หาได้จาก ftp://ftp.germany.eu.net/pub/networking/inet/ethernet/ethdp103.zip

* ethload v1.04 ยูทิลิตี้สำหรับ ethernet monitor หาได้จาก ftp://ftp.germany.eu.net/pub/networking/monitoring/ethload/ethld104.zip

3.วิธีตรวจหาว่า sniffer กำลังทำงานอยู่หรือไม่

sniffer ที่รันอยู่จะทำให้เครื่องนั้นอยู่ในโพรมิสคิวอัสโหมดซึ่งจะรับแพ็กเก็ตทั้งหมด ในเครื่องระบบยูนิกซ์บางเครื่องสามารถที่จะตรวจสอบว่าอยู่ในโพรมิสคิวอัสโหมดหรือไม่ เป็นไปได้ที่ sniffer จะรันในนอนโพรมิสคิวอัสโหมด (non-promiscuous mode) แต่มันสามารถจะดักข้อมูลที่มาจากเครื่องที่มันรันอยู่เท่านั้น เป็นไปได้เช่นกันที่ผู้บุกรุกจะดักข้อมูลโดยใช้โทรจันในหลาย ๆ โปรแกรมเช่น sh, telnet, rlogin, in.telnetd และบันทึกลงในไฟล์ ผู้บุกรุกสามารถใช้ tty หรือ kmem เพื่อดักข้อมูลได้เช่นกัน แต่การจู่โจมแบบนี้จะสามารถดักข้อมูลที่มาจากเครื่องที่รัน sniffer เท่านั้น ขนะที่การรัน sniffer ในโพรมิสคิวอัสโหมดจะดักข้อมูลที่ผ่านไปมาบนอีเทอร์เน็ตทั้งหมด

สำหรับ SunOS, NetBSD, และระบบยูนิกซ์ที่อยู่ในตระกูลเดียวกับ BSD สามารถใช้คำสั่ง "ifconfig -a" ซึ่งจะบอกข้อมูลเกี่ยวกับอินเตอร์เฟซ (interface) ทั้งหมด และบอกว่ามันอยู่ในโพรมิสคิวอัสโหมดหรือไม่ ส่วนระบบปฏิบัติการ DEC, OSF/1, IRIX และระบบปฏิบัติการอื่น อาจจะต้องบอกดีไวซ์ (device) ในคำสั่ง ทางหนึ่งที่จะหาอินเตอร์เฟซในระบบ ใช้คำสั่งต่อไปนี้

# netstat -r

Routing tables

Internet:

Destination Gateway Flags Refs Use Interface

default iss.net UG 1 24949 le0

localhost localhost UH 2 83 lo0

แล้วจึงทดสอบแต่ละอินเตอร์เฟซดูโดยใช้คำสั่ง<UP,BROADCAST,NOTRAILERS,RUNNING,PROMISC,MULTICAST>

#ifconfig le0

le0: flags=8863 inet 127.0.0.1 netmask 0xffffff00 broadcast 255.0.0.1

ผู้บุกรุกมักจะเปลี่ยนแปลงคำสั่งอย่างเช่น ifconfig เพื่อที่จะไม่ให้ตรวจพบการบุกรุก ดังนั้นคุณจึงควรที่จะตรวจสอบความถูกต้องของ checksum ด้วย

มีโปรแกรมที่เรียกว่า cpm หาได้จาก ftp://ftp.cert.org/pub/tools/cpm ทำงานบน SunOS ซึ่งสามารถตรวจอินเตอร์เฟซเพื่อดูว่าอยู่ในโพรมิสคิวอัสโหมดหรือไม่

ระบบปฏิบัติการ Ultrix สามารถตรวจดูว่ามีการรัน sniffer ในระบบหรือไม่โดยใช้คำสั่ง pfstat และ pfconfig, pfconfig ใช้สำหรับกำหนดว่าใครสามารถรัน sniffer ได้ ส่วน pfstat แสดง ให้เห็นว่าอินเตอร์เฟซอยู่ในโพรมิสคิวอัสโหมดหรือไม่

คำสั่งที่อธิบายมาแล้วนั้นจะสามารถได้ผลต่อเมื่อการดักข้อมูล (sniffing) ถูกรันโดยลิงค์เข้ากับเคอร์เนลเท่านั้น โดยค่าเริ่มต้นแล้ว sniffer ไม่ลิงค์เข้ากับเคอร์เนล ระบบยูนิกซ์ส่วนใหญ่อย่าง Irix, Solaris, SCO และอื่น ๆ ไม่มีบ่งชี้บอกว่ามันอยู่โพรมิสคิวอัสโหมดหรือไม่ ดังนั้นผู้บุกรุก สามารถที่จะดักข้อมูลของเน็ตเวิร์คทั้งหมดของคุณและไม่มีวิธีการตรวจหา

sniffer มักจะบันทึกข้อมูลที่ดักมาได้จนไฟล์นั้นมีขนาดใหญ่จนกินเนื้อที่ และอาจทำให้เครื่องทำงานหนักมาก จึงอาจเป็นสัญญาณบอกให้ผู้บริหารระบบรู้ใด้ถึง sniffer ที่รันอยู่ โปรแกรม lsof (LiSt Open Files) หาได้จาก ftp://coast.cs.purdue.edu/pub/Purdue/lsof สามารถหา log ไฟล์และหาโปรแกรมที่เข้าถึงแพ็กเก็ตดีไวซ์ (อย่างเช่น /dev/nit ใน SunOS)

* คุณอาจใช้คำสั่ง ps เพื่อดูโปรเซสที่แปลกปลอมอยู่ในระบบ (solaris และระบบยูนิกซ์อื่น ๆ ใช้คำสั่ง ps -ef,ส่วน linux: ps -aux)

4.การหยุดการจู่โจมโดย sniffer

ใช้ Active hub เพราะมันจะส่งแพ็กเก็ตไปยังเครื่องที่มันต้องการเท่านั้น ทำให้การดักจับข้อมูลในโพรมิสคิวอัสโหมดไม่ได้ผล วิธีนี้ใช้ได้ผลสำหรับ 10-Base T เท่านั้น

ผู้ขาย Active hub

* Cisco

* 3Com

* HP

การเข้ารหัส

มีหลาย ๆ โปรแกรมที่ใช้การเข้ารหัสการติดต่อ ดังนั้นผู้บุกรุกสามารถดักข้อมูลได้แต่ไม่สามารถถอดรหัสใด้ จึงไม่มีประโยชน์ต่อผู้บุกรุก

โปรแกรมประเภทนี้ได้แก่

* ssh หาได้จาก http://www.cs.hut.fi/ssh/ssh-archive/

* deslogin หาได้จาก ftp://coast.cs.purdue.edu/pub/tools/unix/deslogin

* swIPe หาได้จาก ftp://ftp.csua.berkeley.edu/pub/cypherpunks/swIPe

Kerberos

เป็นโปรแกรมที่เข้ารหัสข้อมูลแอคเคาท์ที่ส่งผ่านเน็ตเวิร์ค มันจะเข้ารหัสการสื่อสารแบบ rlogin และ telnet ป้องกันผู้บุกรุกไม่ให้รู้สิ่งที่คุณทำหลังจากล็อกอินเข้าสู่ระบบ

คุณสามารถอ่าน Kerberos FAQ ที่ ftp://aeneas.mit.edu/pub/kerberos/doc/KERBEROS.FAQ

One time password

S/key และเทคโนโลยี one time password แบบอื่น ๆ ทำให้ข้อมูล account ที่ sniff มาได้แทบจะไม่มีประโยชน์ แนวความคิดของ S/key คือ รีโมทโฮส (remote host)รู้รหัสผ่านที่ไม่ส่งผ่านเน็ตเวิร์ค เมื่อคุณติดต่อกับรีโมทโฮส คุณจะได้รับคำร้องถาม (challenge) จากโฮส แล้วคุณจึงนำข้อมูลของคำร้องถามจากโฮส และรหัสผ่านนำมาสู่กระบวนการสร้างคำตอบซึ่งควรจะได้คำตอบเดียวกันถ้ารหัสผ่านเหมือนกันทั้งสองฝ่าย ดังนั้นรหัสผ่านก็จะไม่ถูกส่งผ่านเน็ตเวิร์ค และคำร้องถามจะไม่ถูกใช้ซ้ำอีก ซึ่ง S/key จะไม่ใช้รหัสที่เป็นความลับร่วมกันโฮส S/key หาได้จาก ftp://thumper.bellcore.com/pub/nmh/skey

OPIE เป็นเวอร์ชันหนึ่งของ S/key ที่ประสบความสำเร็จ หาได้จาก ftp://ftp.nrl.navy.mil/pub/security/nrl-opie/

นอนโพรมิสคิวอัส อินเตอร์เฟซ (Non-promiscuous Interface) การ์ดเน็ตเวิร์คเหล่านี้เป็นการ์ดที่ไม่สนับสนุนโพรมิสคิวอัสโหมด สำหรับเครื่อง IBM DOS compatible

IBM Token-Ring Network PC Adapter

IBM Token-Ring Network PC Adapter II (short card)

IBM Token-Ring Network PC Adapter II (long card)

IBM Token-Ring Network 16/4 Adapter

IBM Token-Ring Network PC Adapter/A

IBM Token-Ring Network 16/4 Adapter/A

IBM Token-Ring Network 16/4 Busmaster Server Adapter/A

ส่วนการ์ดเน็ตเวิร์คต่อไปนี้ กล่าวกันว่าไม่สามารถเปลี่ยนไปสู่โพรมิสคิวอัสโหมด แต่จะจริงหรือไม่ยังคงเป็นที่สงสัย

Microdyne (Excelan) EXOS 205

Microdyne (Excelan) EXOS 205T

Microdyne (Excelan) EXOS 205T/16

Hewlett-Packard 27250A EtherTwist PC LAN Adapter Card/8

Hewlett-Packard 27245A EtherTwist PC LAN Adapter Card/8

Hewlett-Packard 27247A EtherTwist PC LAN Adapter Card/16

Hewlett-Packard 27248A EtherTwist EISA PC LAN Adapter Card/32

HP 27247B EtherTwist Adapter Card/16 TP Plus

HP 27252A EtherTwist Adapter Card/16 TP Plus

HP J2405A EtherTwist PC LAN Adapter NC/16 TP

EOF.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License