Cách chặn, phân tích lưu lượng mạng LAN với Packet Squirrel và Wireshark

Nếu bạn phát hiện ra một kết nối Ethernet không có giám sát và tự hỏi có thể làm gì với tất cả thông tin truyền qua kết nối đó, có một cách dễ dàng để tìm hiểu việc này.

Giả sử có một router mà bạn biết mật khẩu và có quyền truy cập vật lý vào kết nối Ethernet, nơi có thể gắn Packet Squirrel - một công cụ có kích thước bỏ túi xen vào giữa mạng. Nếu router không sử dụng HTTPS, bạn có thể ghi lại tất cả lưu lượng qua Ethernet. Sau khi ai đó truy cập vào router, bạn sẽ có quyền truy cập vào thông tin để đăng nhập và làm bất cứ điều gì mình muốn.

Yêu cầu

Bạn sẽ cần một Packet Squirrel, được tạo ra bởi Hak5 từ trang web của nó, Amazon, hoặc có thể là một cửa hàng trực tuyến khác.

Thiết bị không đi kèm với power adapter (bộ nguồn), vì vậy bạn cũng sẽ cần cáp Micro-USB và nguồn điện. Bài viết sẽ cắm thiết bị này vào cổng USB của máy tính, nhưng nếu muốn triển khai nó trong thế giới thực, bạn sẽ cần bộ nguồn hoặc pin nhỏ để thay thế.

Packet Squirrel chỉ yêu cầu nguồn điện 5V, cường độ 150mA, vì vậy bạn có thể sử dụng một thứ đơn giản như một bộ sạc điện thoại thông minh. Nếu sử dụng trong thời gian ngắn, một bộ pin nhỏ có thể đủ dùng (bộ pin này thường đi kèm với cáp USB nhỏ riêng). Đối với phiên kéo dài, bạn sẽ cần một bộ pin lớn hơn với cáp Micro-USB.

Để ghi lại kết quả lưu lượng đang theo dõi, bạn cũng sẽ cần một USB. Bạn có thể chọn bất kỳ USB nào mà mình thích. USB sẽ cần được định dạng ở NTFS (vấn đề này sẽ được giải quyết sau).

Cuối cùng, bạn cần quyền truy cập vào kết nối Ethernet muốn theo dõi, cũng như Wireshark để làm sáng tỏ những bí ẩn của dữ liệu sẽ thu thập.

Bước 1: Chọn payload

Packet Squirrel đi kèm với ba loại payload: Chặn gói TCPdump, tấn công man-in-the-middle giả mạo DNS và OpenVPN tunnel vào hoặc ra. Vì bài viết không muốn làm bất cứ điều gì quá khó như thiết lập một máy chủ hoặc tạo các cấu hình phức tạp, nên ví dụ sẽ sử dụng một TCPdump đơn giản.

Bước 2: Bắt đầu với Packet Squirrel

Để bắt đầu, bạn sẽ cần đặt Packet Squirrel thành Arming Mode, có thể được thực hiện bằng cách sử dụng cùng một công tắc trên thiết bị, cho phép bạn lựa chọn giữa các payload. Để làm như vậy, hãy đẩy hết công tắc về phía cổng USB. Tiếp theo, cắm Packet Squirrel vào nguồn điện.

Tiếp theo, cắm cáp Ethernet từ máy tính vào cổng Ethernet In trên Packet Squirrel, ngay bên cạnh cổng nguồn. Nếu muốn truy cập Internet khi đang kiểm tra mọi thứ, bạn có thể kết nối nó qua một cáp Ethernet khác, với cổng Ethernet Out bên cạnh cổng USB. Sẽ không có bất cứ điều gì tệ hại xảy ra. Chỉ đơn giản là bạn sẽ có quyền truy cập vào thiết bị thông qua SSH.

Bước 3: Chuẩn bị cho Packet Squirrel

Bây giờ, hãy xem liệu bạn có thể truy cập thiết bị mà không gặp vấn đề gì không. Trong cửa sổ terminal, hãy dùng SSH để vào thiết bị bằng địa chỉ IP gốc của nó. Địa chỉ IP là 172.16.32.1 cho tất cả Packet Squirrel. Sau đó, nhập mật khẩu mặc định của hak5quirrel để đăng nhập.

~$ ssh root@172.16.32.1

root@172.16.32.1's password: hak5quirrel

BusyBox v1.23.2 (2017-06-28 18:58:08 PDT) built-in shell (ash)

    __ (\\_          Packet Squirrel          _//) __
   (_ \( '.)             by Hak5             (.' )/ _)
     ) \ _))     _                     __    ((_ / (
    (_   )_     (') Nuts for Networks ((')    _(   _)

root@squirrel:~#

Bây giờ, hãy liệt kê nhanh (ls) để xem bạn có những gì.

root@squirrel:~# ls
VERSION payloads

Payload là những gì bạn muốn, vì vậy hãy thay đổi vào thư mục đó, sau đó thực hiện một thao tác liệt kê nhanh khác để xem có gì ở đó.

root@squirrel:~# cd payloads
root@squirrel:~/payloads# ls

switch1 switch2 switch3

Nên có 3 switch ở đó, mỗi switch cho một payload mà Packet Squirrel được load. Nếu muốn, bạn có thể tùy chỉnh một hoặc hai cái trong số các switch này với payload của riêng mình, còn ví dụ sẽ chuyển sang switch1, dành cho payload TCPdump, công cụ mà bạn muốn sử dụng. Sau đó, hãy thực hiện thao tác liệt kê nhanh khác để xem những gì bên trong.

root@squirrel:~/payloads# cd switch1
root@squirrel:~/payloads/switch1# ls

payload.sh

Hãy xem cách payload hoạt động hiện tại. Sử dụng cat để mở file.

root@squirrel:~/payloads/switch1# cat payload.sh

#!/bin/bash
# TCPDump payload v1.0

function monitor_space() {
    while true
    do
        [[ $(df | grep /mnt | awk '{print $4}') -lt 10000 ]] && {
            kill $1
            LED G SUCCESS
            sync
            break
        }
        sleep 5
    done
}

function finish() {
    # Kill TCPDump and sync filesystem
    kill $1
    wait $1
    sync

    # Indicate successful shutdown
    LED R SUCCESS
    sleep 1

    # Halt the system
    LED OFF
    halt
}

function run() {
    # Create loot directory
    mkdir -p /mnt/loot/tcpdump &> /dev/null

    # Set networking to TRANSPARENT mode and wait five seconds
    NETMODE TRANSPARENT
    sleep 5

    # Start tcpdump on the bridge interface
    tcpdump -i br-lan -w /mnt/loot/tcpdump/dump_$(date +%Y-%m-%d-%H%M%S).pcap &>/dev/null &
    tpid=$1

    # Wait for button to be pressed (disable button LED)
    NO_LED=true BUTTON
    finish $tpid
}

# This payload will only run if we have USB storage
[[ ! -f /mnt/NO_MOUNT ]] && {
    LED ATTACK
    run &
    monitor_space $! &
} || {
    LED FAIL
}

Toàn bộ script có thể nhìn thấy ở trên. Về cơ bản, những gì nó làm là định tuyến lưu lượng, đồng thời kết xuất tất cả lưu lượng mà nó định tuyến, vào một file TCPdump. Như bạn có thể thấy ở gần cuối script, payload chỉ hoạt động nếu có thiết bị lưu trữ USB được gắn vào Packet Squirrel.

Bước 4: Định dạng USB

Bây giờ, hãy định dạng USB. Trong một terminal trong Kali Linux hoặc macOS, hãy sử dụng lệnh sau để định vị USB, để chắc chắn đã chọn đúng thiết bị.

~$ df -h

Filesystem        Size  Used Avail Use% Mounted on
udev              2.8G     0  2.8G   0% /dev
tmpfs             566M  1.1M  565M   1% /run
/dev/sda1          77G   47G   26G  65% /
tmpfs             2.8G   28K  2.8G   1% /dev/shm
tmpfs             5.0M     0  5.0M   0% /run/lock
tmpfs             2.8G     0  2.8G   0% /sys/fs/cgroup
VBoxSharedFolder  234G  227G  7.5G  97% /media
/dev/sdc1       124.4G  1.4G  123G   1% /media

Trong ví dụ, USB 128GB của tác giả bài viết nằm ở /dev/sdc1, đó là những gì đang được sử dụng. Vì USB này đã được mount, nên cần phải ngắt kết nối nó trước khi định dạng bằng Windows NT Filesystem hoặc NTFS.

~$ sudo umount /dev/sdc1

Bây giờ, để định dạng nó bằng NTFS, hãy sử dụng:

~$ sudo mkfs.ntfs /dev/sdc1

Trên máy Mac, bạn cũng có thể sử dụng Disk Utility để định dạng ổ. Chỉ cần đảm bảo sử dụng Windows NT Filesystem khi bạn xóa nó.

Sử dụng Disk Utility để định dạng ổ
Sử dụng Disk Utility để định dạng ổ

Khi hoàn tất, hãy lấy USB ra, sau đó cắm nó vào Packet Squirrel.

Bước 5: Chọn payload switch phù hợp

Bây giờ, trên Packet Squirrel, bạn cần chuyển từ Arming Mode sang TCPdump payload. Vì vậy, hãy đẩy công tắc về phía cổng nguồn. Tiếp theo, khởi động lại Packet Squirrel bằng cách rút phích cắm khỏi nguồn điện, sau đó cắm lại.

Bước 6: Bắt đầu thu thập dữ liệu!

Bây giờ, Packet Squirrel đã sẵn sàng để bạn cắm vào mạng muốn theo dõi và bắt đầu nắm bắt hoạt động Internet của bất kỳ ai sử dụng Ethernet. Bạn có thể xem tất cả các loại nội dung thú vị, tùy thuộc vào loại trang web mà người đó đang truy cập và dịch vụ họ đang chạy. Sau khi nắm bắt đủ thông tin bằng cách sử dụng Packet Squirrel, bạn có thể lấy USB ra và cắm vào máy tính để kiểm tra những gì được tìm thấy.

Bước 7: Phân tích dữ liệu với Wireshark

Điều hướng đến thư mục /loot/tcpdump/ để tìm tất cả các file .pcap mà Packet Squirrel đã thu thập. Các file này có thể được xem bằng Wireshark, vì vậy hãy mở một trong số chúng lên. Sẽ có rất nhiều dữ liệu đã hoặc chưa mã hóa được ghi lại. Dữ liệu chưa được mã hóa chủ yếu là các yêu cầu HTTP và DNS. Bằng cách xem thông tin không được mã hóa đó, bạn có thể tìm ra mục tiêu mong muốn.

Trong thanh tìm kiếm Wireshark, hãy nhập dns để xem tất cả các yêu cầu DNS được gửi đi. Nhấp vào bất kỳ thứ gì trong số chúng, bạn có thể mở Domain Name System (response) > Queries và xem đó là truy vấn tự động hay do người dùng gửi đi. Tiếp theo, duyệt qua phần còn lại, xem mục Queries của mỗi phần, để biết chúng xuất phát ở đâu.

Xem truy vấn là tự động hay do người dùng gửi đi
Xem truy vấn là tự động hay do người dùng gửi đi

Trong thanh tìm kiếm Wireshark, nhập http để xem tất cả các yêu cầu HTTP đã gửi đi. Nhấp chuột trái vào bất kỳ mục nào đã ghi, chọn Follow > HTTP Stream. Điều đó sẽ mở ra một cửa sổ mới, theo dõi những gì đã xảy ra, có thể hiển thị cả hai phía của cuộc trò chuyện giữa máy tính và máy chủ (gửi và nhận). Bạn có thể thấy những thứ như thông tin được trao đổi, user agent (phần mềm hoạt động thay mặt cho người dùng), referrer (thông tin được gửi bởi trình duyệt của người dùng khi họ di chuyển từ trang này sang trang khác), v.v...

Xem tất cả các yêu cầu HTTP đã gửi đi
Xem tất cả các yêu cầu HTTP đã gửi đi

Bạn cũng có thể tìm kiếm một cái gì đó như http contains "vistamiddle" để xem tất cả các yêu cầu HTTP tương tác với vistamiddle.org. Nhấp đúp vào một yêu cầu để xem thông tin chi tiết. Đây là một cách để dò tìm mật khẩu của router hoặc thứ gì đó cá nhân hơn.

Nhấp đúp vào một yêu cầu để xem thông tin chi tiết
Nhấp đúp vào một yêu cầu để xem thông tin chi tiết

Một số hạn chế

Mặc dù Hak5 Packet Squirrel là một công cụ tuyệt vời để tận dụng mọi kết nối Ethernet không có giám sát, nhưng có một vài hạn chế mà bạn cần lưu ý.

Thứ nhất, bạn sẽ cần quay lại chỗ đặt USB nếu muốn lấy dữ liệu. Vì vậy, nếu bạn chỉ có quyền tiếp cận một lần, thì đây có thể không phải là công cụ tốt nhất để sử dụng.

Thứ hai, công cụ này sẽ không thể nắm bắt bất kỳ lưu lượng nào được gửi bằng VPN hoặc qua SSL, vì vậy sẽ có một số thứ bạn sẽ không thể thấy. Tuy nhiên, các yêu cầu HTTP và yêu cầu DNS đều sẵn sàng để bạn có thể lấy.

Thứ Tư, 19/08/2020 10:09
51 👨 2.122
0 Bình luận
Sắp xếp theo
    ❖ Mạng LAN - WAN