ก่อนอื่น เราต้องรู้เกี่ยวกับ ARP Spoofing คร่าวๆก่อนครับ ว่ามันคืออะไร ทำไมถึงใช้วิธีนี้ดัก Packet เราได้ ?
ปกติแล้ว การที่เครื่องเซิฟเวอร์เราสื่อสารกับใคร จะต้องมีการรับส่งข้อมูลผ่านเครื่อง Gateway
[SERVER] [GATEWAY] [เครื่อง PC ของคุณ]
ซึ่ง Gateway ของ ISP จะปลอดภัยอยู่แล้ว คงไม่มีเจ้าหน้าที่ใน ISP คนไหนมานั่งดักข้อมูลกันหรอกครับ
แต่ถ้าอย่างระดับธนาคารเขาจะใช้ SSL (https:) ในการช่วยเข้ารหัส Packet ถึงดักไปก็จะได้ข้อมูลที่อ่านไม่รู้เรื่อง
แล้วถ้าอย่างเราๆบ้านๆ ไปซื้อ https: หมด คงไม่ได้แน่ เพราะต้นทุนสูง ต้องใช้ Dedicated IP ด้วยอีก
เราตัดปัญหาที่เจ้าหน้าที่ ISP จะมาดักข้อมูลเราได้เลย เราไม่ได้มีข้อมูลอะไรสำคัญขนาดธนาคาร
เรามามองที่เรื่องของ ผู้ใช้ ร่วมตู้เรานี่ล่ะครับ ที่จะมาดักข้อมูลเรา
แล้วคนในตู้เดียวกัน จะดักข้อมูลเราได้อย่างไร ?
เราใช้วิธี ARP Spoofing ครับ โดยจะส่ง Packet บางอย่างมาหลอกเครื่องของเราว่า เครื่องเขาคือ Gateway
เช่น ปกติแล้ว IP ของ Gateway คือ 203.146.1.126
เขา ก็จะส่ง Packet บางอย่างมาบอกว่า เครื่องของเขาคือ IP 203.146.1.126 นะ ต่อไปให้ติดต่อเครื่องของเขา การติดต่อสื่อสารก็จะเปลี่ยนเป็นลักษณะนี้
[SERVER] [เครื่องของผู้ไม่หวังดี] [GATEWAY] [เครื่อง PC ของคุณ]
ทำให้เขาสามารถรับรู้ Packet ต่างๆที่วิ่งไหลผ่านเครื่องของคุณได้เลย ไม่ว่าจะเป็น
Username / Password ต่างๆ รวมไปถึงรหัสบัตรเติมเงินทรูมันนี่
การป้องกันเบื้องต้น จะใช้วิธี Fix ค่า ARP ในเครื่องของเรา ให้เป็น MAC Address ที่ถูกต้องของ Gateway จริงๆ ตลอดเวลาครับ
** ไม่มีผลใดๆกับเซิฟเวอร์ที่รันอยู่ และไม่ต้อง Reboot เครื่ิองครับ **
สำหรับ Windows
1 Remote Desktop เข้าเครื่องเซิฟเวอร์ จากนั้นไปที่ Start -> Run พิมพ์ Cmd แล้วคลิ๊ก OK
2 พิมพ์ คำสั่ง ipconfig จะได้ IP ของเครื่อง Gateway
C:Documents and SettingsAdministrator>ipconfig
IP Address. . . . . . . . . . . . : 210.1.1.1
Subnet Mask . . . . . . . . . . . : 255.255.255.128
Default Gateway . . . . . . . . . : 210.1.1.126
เช่น ในที่นี้ คือ 210.1.1.126
3 พิมพ์ คำสั่ง arp -a IP_ของเครื่อง_Gateway_จากข้อ_2 เช่น arp -a 210.1.1.126 จะได้ค่า Mac Address ของเครื่อง Gateway
C:Documents and SettingsAdministrator>arp -a 210.1.1.126
Interface: 210.1.58.32 --- 0x10003
Internet Address Physical Address Type
210.1.1.126 00-00-0c-07-xx-xx static
โดยที่สีแดงคือ Mac Address นั่นเอง
4 ให้เราสร้างไฟล์ชื่อ fix_arp.bat ที่ใดก็ได้ เช่น บน Desktop ใส่เนื้อหาดังนี้
QUOTE
@ECHO off
:BEGIN
arp -a 210.1.1.126 | FIND "00-00-0c-07-xx-xx"
IF ERRORLEVEL 1 GOTO SET_ARP
goto BEGIN
:SET_ARP
echo CLEAR_ARP
arp -s 210.1.1.126 00-00-0c-07-xx-xx
GOTO BEGIN
โดยเปลี่ยน IP สีแดงให้ตรงกับ IP Gateway ของคุณ ที่ได้จากข้อ 2
และเปลี่ยน Mac Address สีแดงให้ตรงกับ Mac Address Gateway ของคุณ ที่ได้จากข้อ 3
5 เปิดไฟล์ fix_arp.bat ที่ได้สร้างไว้ ระบบจะคอยเคลียร์ค่า ARP ให้ถูกต้อง เปิดทิ้งไว้นะครับ
หาก Reboot เครื่องใหม่ เปิดไฟล์ fix_arp.bat ที่ได้สร้างไว้ได้เลยครับ เปิดทิ้งไว้นะครับ
สำหรับ Linux
1 ให้ root ต่อเข้าไปในเซิฟเวอร์ผ่าน SSH
2 พิมพ์ คำสั่ง route -n | grep UG จะได้ IP ของเครื่อง Gateway
[root@localhost ~]# route -n | grep UG
0.0.0.0 203.146.1.126 0.0.0.0 UG 0 0 0 eth0
เช่น ในที่นี้ คือ 203.146.1.126
3 พิมพ์ คำสั่ง arp -an IP_ของเครื่อง_Gateway_จากข้อ_2 เช่น arp -an 203.146.1.126 จะได้ค่า Mac Address ของเครื่อง Gateway
[root@localhost ~]# arp -an 203.146.1.126
? (203.146.1.126) at 00:00:0C:XX:XX:XX [ether] PERM on eth0
โดยที่สีแดงคือ Mac Address นั่นเอง
4 ให้เราสร้างไฟล์ชื่อ fix_arp.sh ใน /root เช่น /root/fix_arp.sh ใส่เนื้อหาดังนี้
QUOTE
while [ /bin/true ];
do
CHK=`arp -n 203.146.1.126|grep 00:00:0C:XX:XX:XX`
if [ -z "$CHK" ];
then
echo "clear arp"
arp -d 203.146.1.126
arp -s 203.146.1.126 00:00:0C:XX:XX:XX
else
echo "checking.."
fi
usleep 20000
done
โดยเปลี่ยน IP สีแดงให้ตรงกับ IP Gateway ของคุณ ที่ได้จากข้อ 2
และเปลี่ยน Mac Address สีแดงให้ตรงกับ Mac Address Gateway ของคุณ ที่ได้จากข้อ 3
5 พิมพ์ คำสั่ง chmod +x /root/fix_arp.sh เพื่อกำหนดให้สามารถ Execute ไฟล์ fix_arp.sh ได้
6 พิมพ์ คำสั่ง screen -S FixARP เพื่อเปิด screen ใหม่
7 หลังจากเข้า screen ไปแล้ว พิมพ์ คำสั่ง /root/fix_arp.sh หลังนั้น Shell Script จะทำงาน แล้วก็ปิดได้เลย
หาก Reboot เครื่องใหม่ ก็ทำขั้นตอน 6 และ 7 ซ้ำได้เลยครับ
ขอขอบคุณบทความจากน้องสุดหล่อ TMPAY