Uygulamam bazı sunuculara HTTP istekleri gönderiyor ve gönderdiği gerçek verileri görmek istiyorum. Görmek istediğim bazı özellikler:
- İstek yöntemi (GET / POST / PUT, vb.)
- İçerik türü
- Vücut
Bunu başarmanın en iyi ve basit yolu nedir?
Uygulamam bazı sunuculara HTTP istekleri gönderiyor ve gönderdiği gerçek verileri görmek istiyorum. Görmek istediğim bazı özellikler:
Bunu başarmanın en iyi ve basit yolu nedir?
Yanıtlar:
Tüm bu tcpdump hayranları için =)
TÜM BU KOMUT OLARAK KÖTÜ !!!
Bir uçbirimde kök elde et
sudo -i
RAW paketlerini yakalamak için ...
sudo tcpdump -i any -w /tmp/http.log &
Bu, tüm ham paketleri, tüm bağlantı noktalarında, tüm arabirimlerde ve bunları bir dosyaya yazacaktır /tmp/http.log
.
Uygulamanı çalıştır. HTTP (web tarayıcıları) kullanan başka bir uygulama çalıştırmazsanız, açıkça yardımcı olur.
Öldürmek tcpdump
killall tcpdump
Günlüğü okumak için -A
bayrağı kullanın ve çıktıyı aşağıdaki noktaya yönlendirin less
:
tcpdump -A -r /tmp/http.log | less
-A
Paketler halinde "yük" veya ASCII metin dışarı bayrak baskılar. Bu çıktı gönderir, less
sayfa yukarı ve aşağı yapabilirsiniz. Çıkmak için less
yazın Q.
Google’a gittiğimde görüyorum (işlenmemiş paketlerde):
20:42:38.179759 IP ufbt.local.56852 > sea09s02-in-f3.1e100.net.www: Flags [P.], seq 1:587, ack 1, win 913, options [nop,nop,TS val 25523484 ecr 492333202], length 586
E..~.v@.@..q......!#...P.(.gS.c..............u..Xh.GET /generate_204 HTTP/1.1
Host: clients1.google.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.34 (KHTML, like Gecko) rekonq Safari/534.34
Referer: http://www.google.com/
Accept: */*
Accept-Encoding: gzip, deflate, x-gzip, x-deflate
Accept-Charset: utf-8,*;q=0.5
Accept-Language: en-US, en-US; q=0.8, en; q=0.6
Cookie: PREF=ID=dd958d4544461998:FF=0:TM=1323842648:LM=1360205486:S=Fg_QCDsLMr4ZepIo; NID=67=OQJWjIDHG-B8r4EuM19F3g-nkaMcbvYwoY_CsOjzvYTOAxwqAos5kfzsk6Q14E70gIfJjHat8d8PuQIloB12BE-JuSHgsKHR2QSpgN12qSWoxeqhdcSQgzw5CHKtbR_a
tcpdump
veri toplama işlemlerini ağ arayüzleri belirtmekten bağlantı noktalarına, kaynak ve hedef IP adreslerine kadar hassaslaştırmak için çok çeşitli seçenekler vardır. Şifresini çözemez (HTTPS ile çalışmaz).
Neyle ilgilendiğinizi öğrendikten sonra, tcpdump
yalnızca ilgilendiğiniz verileri kaydetmek için birkaç seçenek kullanabilirsiniz . Genel strateji, önce tüm paketleri kaydetmek, ham verileri incelemek ve ardından yalnızca ilgilenilen paketleri yakalamaktır.
Bazı faydalı bayraklar (seçenekler):
-i Specify an interface
-i eth0
tcp port xx
tcp port 80
dst 1.2.3.4
specify a destination ip address
tcpdump
Topladığınız verileri nasıl analiz edeceğinizi öğrenmek ve öğrenmek için bir öğrenme eğrisi vardır . Daha fazla okumak için Daniel Miessler'ın Astarını tcpdump
Örneklerle tavsiye ederim .
0 packets captured 0 packets received by filter 0 packets dropped by kernel
Ama tcpdump izleme yaparken Chrome tarayıcısında bir sürü site açtım.
tcpdump -i any -w /tmp/http.log &
çalıştı.
İlk tcpflow
önce Ubuntu resmi depolarından yükleyin :
sudo apt-get install tcpflow
Sonra standart porttaki tüm HTTP isteklerini incelemek için bu komutu çalıştırın:
sudo tcpflow -p -c port 80
Wireshark'ı denemenizi öneririm
Lütfen Wireshark'ın oldukça gelişmiş olduğunu ve bu nedenle alışmak biraz zaman alabilir. Birkaç yıl boyunca kullanmadım, ama yine de özelliklerin dolu olmasa da, peşinde olduğun şey için mükemmel olmalı.
Wireshark ve kullanımı hakkında bilgiler Wireshark ana sayfasında bulunabilir .