netcat veya socat ile yankı sunucusu


18

Paket almak ve tam olarak ne aldığını cevaplamak için bir UDP yankı sunucusu istiyorum. Bunu netcatveya kullanarak nasıl yapabilirim socat? Sonsuza kadar hayatta kalmalı ve birkaç ana bilgisayardan gelen paketleri işlemelidir.


7
Lütfen bu şeyi İnternet'ten erişilebilir yapmayın. UDP tabanlı olduğundan, kaynak sahte paketler kullanarak keyfi hedeflere bir paket akışı göndermek için kullanılabilir.
Evan Anderson

Yanıtlar:


17

Bir başka netcat benzeri araç, bu ncatgibi şeyleri basitleştirmek için birçok yerleşik güzellik içeren nmap sürümüdür . Bu işe yarar:

ncat -e /bin/cat -k -u -l 1235

-e yürüttüğü anlamına gelir / bin / cat (yazdıklarınızı yankılamak için)
-k hayatta kalmak anlamına gelir, her bağlantıdan sonra dinlemeye devam eder
-u udp anlamına gelir
-l 1235, 1235 numaralı bağlantı noktasını dinlediği anlamına gelir



6

Ekot sunucusu olarak socat'ı (netcat kullanmak yerine) ve istemci olarak netcat'i de kullanabilirsiniz.

Socat echo server (1234 numaralı TCP bağlantı noktasını dinler):

socat -v tcp-l:1234,fork exec:'/bin/cat'

Netcat istemcisi (1234 numaralı TCP bağlantı noktasındaki sunucuya bağlanır):

nc serverip 1234

2

Bunun bir C program yazabilirsiniz çatal nc -u -l -p 4321 ve daha sonra kullandığı (2) dup bağlamak için:

  • ebeveyn stdout ile nc stdin
  • ebeveynin stdin ile nc stdout

Sonra sonsuz bir döngüde ebeveyn stdin'den okur ve ebeveyn ne okursa onu stdout'ta yazar.


Kullanabilirim socat -v PIPE UDP-LISTEN:5555,fork, ancak ikinci bağlantı reddedilir. Bu arada, TCP-LISTEN ile iyi çalışıyor. Kod yazmaktan kaçınıyorum, aksi takdirde hepsini C
dilinde yazabilirim

Her şeyi sonsuz bir döngü içinde sarmanız gerekir: while true; sosyal şeyler yapmak; tamamlandı
adamo

Ayrıca bu eğitimi
adamo

0

Windows üzerinde çalışıyorsanız ve cygwin gibi unix benzeri bir ortam kullanıyorsanız, netcat migth -e parametresini sağlamaz. Bu benim için iyi çalıştı.

http://bansky.net/echotool/


0

netcat Ubunutu'da önceden yüklenmiş çözüm

netcatÖnceden yüklenmiş Ubuntu 16.04 de geliyor netcat-openbsdve hiçbir vardır -cseçeneği, ancak manuel bir çözüm sunar:

sudo mknod -m 777 fifo p
cat fifo | netcat -l -k localhost 8000 > fifo

Sonra müşteri örneği:

echo abc | netcat localhost 8000

YAPILACAKLAR: giriş dizesi değeri nasıl değiştirilir? Aşağıdaki herhangi bir yanıt döndürmez:

cat fifo | tr 'a' 'b' | netcat -l -k localhost 8000 > fifo

Ancak uzak kabuk örneği şu şekilde çalışır:

cat fifo | /bin/sh -i 2>&1 | netcat -l -k localhost 8000 > fifo

Ancak eşzamanlı taleplerle nasıl başa çıkacağımı bilmiyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.