- 8 Nis 2020
- 220
- 2
- 73
# p0f: Ağdaki Cihazları Anlama Sanatı
Giriş
p0f, ağ güvenliği ve analizi için geliştirilmiş güçlü bir araçtır. Martin Roesch tarafından tasarlanan bu araç, ağ trafiğini pasif bir şekilde gözlemleyerek cihazların işletim sistemlerini belirleme yeteneğiyle öne çıkar.
p0f'ün Temel Çalışma Prensibi
p0f'ün temel amacı, ağ üzerindeki cihazların işletim sistemlerini belirlemektir. Bu amaç doğrultusunda p0f, aşağıdaki teknikleri kullanır:
1. Pasif İşletim Sistemi Parmak İzi
p0f, ağ trafiğini inceleyerek cihazların işletim sistemlerini belirler. Paket başlıkları, davranışlar ve diğer özellikler üzerinden pasif bir parmak izleme yapar. Örneğin, farklı işletim sistemleri genellikle farklı TCP/IP parametreleri kullanır ve p0f bu parametreleri analiz ederek işletim sistemini tahmin eder.
2. Kullanıcı Ajani Eşleme
Tarayıcıların kullanıcı ajanı bilgisini analiz ederek p0f, cihazın kullandığı tarayıcı türü, sürümü ve işletim sistemi hakkında bilgiler elde eder. Kullanıcı ajanı, cihazın web tarayıcısı tarafından sunucuya gönderilen bir dizedir ve p0f bunu değerlendirir.
3. Paket Yapısını İnceleme
Her işletim sistemi, ağ trafiğinde farklı bir paket yapısı kullanır. p0f, bu paket yapılarını analiz ederek cihazın işletim sistemini belirlemeye çalışır. Örneğin, Windows ve Linux işletim sistemleri genellikle farklı TCP/IP başlıkları kullanır.
p0f'ün Kullanımı: İçeriden Bir Bakış
p0f'ü etkili bir şekilde kullanmak için, terminal üzerinden çeşitli parametrelerle çalıştırabilirsiniz. İşte basit bir örnek:
Bash:
┌──(alixan㉿Asus)-[~]
└─$ sudo p0f -i eth0 -p -o /tmp/p0f.log
--- p0f 3.09b by Michal Zalewski <[email protected]> ---
[+] Closed 1 file descriptor.
[+] Loaded 322 signatures from '/etc/p0f/p0f.fp'.
[+] Intercepting traffic on interface 'eth0'.
[+] Default packet filtering configured [+VLAN].
[+] Log file '/tmp/p0f.log' opened for writing.
[+] Entered main event loop.
Bu komut, eth0 üzerindeki trafiği izleyecektir. `-p` parametresi ise ayrıntılı çıktı sağlar.
Bash:
┌──(alixan㉿Asus)-[~]
└─$ curl google.com[CODE=bash]
Bash:
.-[ XIP:XPORT -> 172.217.22.14/80 (syn) ]-
|
| client = XIP:XPORT
| os = Linux 2.2.x-3.x
| dist = 0
| params = generic
| raw_sig = 4:64+0:0:1460:mss*44,7:mss,sok,ts,nop,ws:df,id+:0
|
`----
.-[ XIP:XPORT -> 172.217.22.14/80 (http request) ]-
|
| client = XIP:XPORT
| app = ???
| lang = none
| params = none
| raw_sig = 1:Host,User-Agent,Accept=[*/*]:Connection,Accept-Encoding,Accept-Language,Accept-Charset,Keep-Alive:curl/7.85.0
|
`----
Gerçek Hayatta p0f Kullanımı: iOS X Version İle Örnek
Örneğin, iOS X işletim sistemini taklit ederek ağda gizlice dolaşmak istiyoruz. Bu senaryoyu başarmak için p0f'ü kullanabiliriz. İlk adım olarak, iOS X'un öne çıkan ağ trafiği özelliklerini analiz ederiz. Ardından, p0f'ü bu özelliklere göre yapılandırarak iOS X gibi davranmasını sağlarız.
Sonuç
p0f, ağ güvenliği dünyasında güçlü bir araç olup, cihazların işletim sistemlerini tespit etme yeteneğiyle ön plana çıkar. Ancak, bu tür araçları kullanırken etik kurallara ve yasal düzenlemelere uymak son derece önemlidir. Ayrıca, güvenlik uzmanları ve ağ yöneticileri, p0f'ü kullanarak siber tehditlere karşı daha güçlü savunma stratejileri geliştirebilirler.