GoCat 3. Bölüm: Güvenlik Testinde Kullanım

Port tarama, hex çıktısıyla ikili protokolleri okuma ve esnek bir ağ aracının bir sızma testine nasıl oturduğu — nerede bittiği ve gerçek bir tarayıcının nerede başladığı dahil.

3 dk okuma
ibrahimsql
546 kelime

1. bölüm ham boruyu; 2. bölüm TLS, proxy, etkileşimli mod ve çoklu dinleyiciyi anlattı. 3. bölüm güvenlik açısı: tarama, ikili protokoller ve "esnek ağ aracı" ile "özel tarayıcı" arasındaki dürüst sınır.

Örnekler kavramsal; bayrakları gocat --help ile doğrulayın. Yalnızca sahibi olduğunuz ya da açık yazılı izin aldığınız sistemleri test edin.

Port tarama

GoCat, özellik kümesinin parçası olarak portları yoklayabilir. Bu, bir oturum içinde ya da laboratuvarda hızlı bir kontrol için kullanışlıdır; bir ağı haritalamak için değil.

# Bir sunucuda aralığı tara
gocat --scan 10.0.0.5 1-1024

Bağlantı tabanlı bir tarama size bir portun TCP bağlantısını kabul ettiğini (ya da UDP'de yanıt verdiğini) söyler. Servisi, sürümü ya da yanıtın bir filtre, proxy veya gerçek daemon mu olduğunu söylemez. Laboratuvarda tek bir sunucu için bu yeterli. Bir çalışmada doğru araca uzanın:

İhtiyaçAraç
Hızlı tam aralık tarama, servis/sürüm tespitiNmap
Belirli bir açık portta takip trafiğiGoCat
Ölçekte sürüm-doğru parmak iziNmap, Masscan

İçselleştirmeye değer kalıp: taramayı tarayıcıyla yap, ağ aracıyla etkileş. GoCat'in bir testteki değeri etkileşim adımı — bulduğunuz bir servise bağlanıp elle konuşmak.

İkili protokolleri okuma

HTTP metindir, netcat tarzı etkileşim "öylece çalışır." Gerçek protokoller çoğu zaman ikili: bir uzunluk byte'ı, bir tür byte'ı, paketlenmiş alanlar. Bunları bir terminale saflıkla döktüğünüzde ya okunaksız çöp ya da kontrol byte'larıyla alt üst olmuş bir terminal alırsınız.

Çözüm hex çıktısı — alınan byte'ları yapıyı okuyabileceğiniz şekilde hex olarak gösterir:

gocat 10.0.0.5 9000 | gocat --hex

Ya da ham akışı yakalayıp çevrimdışı inceleyin, ki genelde daha iyi bir alışkanlıktır:

gocat 10.0.0.5 9000 > /tmp/oturum.bin
xxd /tmp/oturum.bin | head

İkili servisler için "hex olarak yazdır ve desen ara" bir protokolü tersine mühendislik yapmanın yoludur: bilinen bir girdi gönder, byte yanıtlarını fark al, değerinizi yankılayan alanı bul. Bu, her protokol RE'siyle aynı disiplin ve bir boru artı hex görünümü gayet iyi bir başlangıç enstrümanı.

Gerçekçi bir laboratuvar iş akışı

Kontrol ettiğiniz bir sunucuda tüm seriyi bir araya getirirsek:

Bash
# 1. Açık olduğunu bildiğiniz bir servise bağlan
gocat 10.0.0.5 9000
 
# 2. İkiliyse yakala ve incele
gocat 10.0.0.5 9000 > /tmp/oturum.bin
xxd /tmp/oturum.bin | head -40
 
# 3. TLS bekleyen bir servis için
gocat --tls 10.0.0.5 9443

Her adım aracı iyi olduğu iş için kullanıyor: tek bir uç noktaya etkileşimli, borulanabilir, TLS'e yeten bir bağlantı.

GoCat nerede durur

Sınırlar konusunda dürüst olmak bir özellik listesinden daha faydalı:

  • Tarayıcı değil. İşletim sistemi tespiti, sürüm veritabanı, betik motoru yok. Bunun için Nmap kullanın.
  • İstismar çatısı değil. Payload, oturum yönetimi, istismar sonrası yok. Bu bir taşıma katmanı.
  • Varsayılan olarak kimlik doğrulanmış şifreleme değil. TLS'i açın ve sertifikaları doğrulayın; doğrulanmamış bir TLS oturumu pasif gözlemciye karşı korur, aktif taklide karşı değil.
  • Yetkilendirmenin yerine geçmez. Araç tarafsız; yasallık tamamen izinle ilgili.

Seri kapanışı

Üç bölüm, tek fikir: bir ağ aracı yoldan çekilmeli. GoCat, bildiğiniz netcat borusunu veren tek bir Go ikilisi, artı 1999 netcat'in hiç sahip olmadığı şeylerle — yerel TLS, IPv6, proxy, çoklu dinleyici, hex çıktı — platformdan platforma bayrak ruleti olmadan. Ağlarla konuşmak için kullanın; onları haritalamak ve istismar etmek için uzman araçları kullanın.

Proje, sorunlar ve tam komut referansı: github.com/realibrahimsql/Gocat. Kendi sürümünüz için gocat --help çalıştırın — yetkili bayrak listesi o.

---
Bu yazıyı paylaş:
TwitterLinkedInFacebook

Ne düşünüyorsun?

Tepki bırakarak geri bildirim ver

İlgili Yazılar