Sử dụng netcat để ghi lưu lượng truy cập vào một tệp


1

Tôi hiện có một máy tính xách tay Windows 10 được kết nối với Máy tính xách tay Ubuntu 12.04 qua Ethernet. Tất cả lưu lượng truy cập từ hệ thống windows đã được định tuyến để đi qua máy tính xách tay Linux và chuyển giao diện không dây của hệ thống Linux sang WiFi. Tôi đã được giao nhiệm vụ thiết lập hệ thống Linux để ghi lưu lượng. Suy nghĩ đầu tiên của tôi là sử dụng Wireshark. Tuy nhiên, tôi đã được yêu cầu có các bản ghi trong một định dạng cụ thể. Đây là định dạng mẫu tôi đã đưa ra:

GET /
Host: bing.com
Cookie: MUID=0B62F80D880C681C2DB4F14E8C0C6BC5

HTTP/1.0 301 Moved Permanently
Date: Wed, 29 Jun 2016 19:34:28 GMT
Location: http://www.bing.com/
----------------------------------------------------------

Ban đầu tôi cũng được hỏi liệu netcat có phù hợp không. Vì vậy, sau những lời nói, tôi đã tìm ra netcat là những gì có vẻ phù hợp. Tuy nhiên, tôi chưa bao giờ sử dụng netcat cho mục đích đăng nhập. Tôi đã tìm kiếm các phương pháp khác và đã thử các phương pháp liên quan đến ống và fifo (cả hai đều không có kiến ​​thức về nó). Tôi dường như luôn luôn kết thúc với cùng một kết quả của một tập tin đầu ra trống. Bất kỳ trợ giúp sẽ được đánh giá cao. Cảm ơn.

Câu trả lời:


0

"Nhật ký" bạn hiển thị là yêu cầu và phản hồi HTTP. Tôi sẽ không sử dụng ncvì điều đó dường như chỉ thêm vào sự phức tạp hơn.

Tôi khuyên bạn nên sử dụng tcpdump. Điều này về cơ bản thu thập dữ liệu giống như wireshark và thậm chí bạn có thể phân tích cú pháp với Wireshark. Nếu tôi đang cố gắng thu thập các yêu cầu và phản hồi HTTP, tôi muốn sử dụng -Atùy chọn này.

Điều này dường như làm việc cho tôi để hiển thị các tiêu đề:

tcpdump -A -s 8000 '(port 80 or port 443) and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' | awk --re-interval 'match($0,/^.{8}((GET |HTTP\/|POST |HEAD ).*)/,a){print "\n"a[1];h=2}$0~/^.{0,1}$/&&h{h--}h&&/^[A-Za-z0-9-]+: /{print}' >> your_log_file

Lệnh trên nên được chạy dưới quyền root. Nếu bạn đang chạy nó với tư cách là một người dùng khác, nếu bạn chỉ muốn chụp bằng một giao diện duy nhất, hãy chắc chắn để thêm -i <your_device>vào tcpdump. Ví dụ:

tcpdump -i eth0 -A -s 8000 '(port 80 or port 443) and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' | awk --re-interval 'match($0,/^.{8}((GET |HTTP\/|POST |HEAD ).*)/,a){print "\n"a[1];h=2}$0~/^.{0,1}$/&&h{h--}h&&/^[A-Za-z0-9-]+: /{print}' >> your_log_file

Vì vậy, tôi đã sao chép và dán mã của bạn chính xác. Nghĩ rằng tôi không thực sự hiểu bất kỳ phần nào của các lệnh ngoài thực tế rằng từ đầu tiên là lệnh còn lại là các tham số và tùy chọn. Tôi nhận được phản hồi cho biết: tcpdump: awk: dòng 1: không tìm thấy lỗi cú pháp phù hợp tại hoặc gần,
Corrupted Offerset

Hãy thử chạy nó dưới quyền root để nó có thể nghe tất cả các thiết bị. Nếu không, thêm vào -i <your_device>vào tcpdumpđể xác định các thiết bị mạng.
Đuổi

1
Tôi gõ vào tcpdump -i eth0 và bắt đầu thấy rằng lưu lượng đã bị bắt. Làm thế nào tôi có thể xuất tệp này sang tệp nhật ký và nó sẽ có cùng định dạng. PS Tôi được yêu cầu làm cho tệp nhật ký trông giống hệt như định dạng mẫu tôi đã đăng.
nhũng

Chỉ cần sử dụng >> your_filename. Tôi sẽ chỉnh sửa câu trả lời trong đó.
Đuổi

Cảm ơn bạn rất nhiều vì sự giúp đỡ. Bạn đã giúp tôi rất nhiều. Chỉ là một câu hỏi cuối cùng. Bất kỳ ý tưởng về làm thế nào để có được định dạng?
Corrupted Offerset

0

ngrep cung cấp các trường bạn đang tìm kiếm, nhưng bạn sẽ cần một tập lệnh để đảm bảo đầu ra theo đúng thứ tự (giả sử sẽ có các yêu cầu / phản hồi chồng chéo).

http://ngrep.sourceforge.net/usage.html

Thí dụ:

[user@host~]$ngrep -W byline -q 'HTTP'

T 172.999.999.999:65535 -> 198.41.209.136:80 [AP]
GET / HTTP/1.1.
User-Agent: Wget/1.17.1 (linux-gnu).
Accept: */*.
Accept-Encoding: identity.
Host: reddit.com.
Connection: Keep-Alive.
.


T 198.41.209.136:80 -> 172.999.999.999:65535 [AP]
HTTP/1.1 301 Moved Permanently.
Date: Sat, 13 Aug 2016 13:55:26 GMT.
Transfer-Encoding: chunked.
Connection: keep-alive.
Set-Cookie: __cfduid=9999999999999999999999999999999999999999; expires=Sun, 13-Aug-17 13:55:26 GMT; path=/; domain=.reddit.com; HttpOnly.
Location: https://www.reddit.com/.
X-Content-Type-Options: nosniff.
Server: cloudflare-nginx.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.