Windows netsh TCP portproxy paketleri geridöngü, çözümler üzerinden iletemez mi?


1

İşte durum, Win 7 Pro SP1'i (Sürüm 6.1.7601) çalıştıran durum, Windows güvenlik duvarı tamamen devre dışı bırakılmış (bir şekilde devam etse bile bir şey olmasına izin vermek için bile kurallar eklenmiş), arka planda çalışan programlar yok (gereksiz her hizmetten kurtuldu) / exe), ipv6 kurulu ve iyi çalışıyor, netsh isatap ve 6to4 etkin. Teredo varsayılan duruma ayarlanmıştır.

İlk olarak, 192/8 arayüzüne bir netsh v4tov4 portproxy kurabilirim ve bu durumda portproxy iyi çalışacaktır. Çalıştırdığım iki yükseltilmiş komut kabuğunda:

REM Admin Shell 1
ncat.exe -l 192.168.2.173 13337

REM Admin Shell 2
netsh interface portproxy add v4tov4 listenport=18080 connectport=13337 connectaddress=192.168.2.173
netsh interface portproxy show all

    Listen on ipv4:             Connect to ipv4:

    Address         Port        Address         Port
    --------------- ----------  --------------- ----------
    *               18080       192.168.2.173   13337

ncat 192.168.2.173 18080
[type a message and it will popup in shell 1]

C:\temp>netstat -a -b | grep -E -A1 13337
  TCP    192.168.2.173:13337     Windows7_x64:0         LISTENING
 [ncat.exe]

Port proxy iletir ve netcat beklendiği gibi çalışır.

Daha sonra, yalnızca yerel ana bilgisayarına değiştirmek ([[1] olarak çözümlenir)] veya açıkça v4tov4 kuralıyla (ayrıca v6tov4'ü denedi) 127.0.0.1 kullanmak her zaman başarısız olur.

Örneğin, 127.0.0.1 ile başlayan

REM Admin Shell 1
ncat.exe -l 127.0.0.1 13337

REM Admin Shell 2
netsh interface portproxy add v4tov4 listenport=18080 connectport=13337 connectaddress=127.0.0.1
netsh interface portproxy show all

    Listen on ipv4:             Connect to ipv4:

    Address         Port        Address         Port
    --------------- ----------  --------------- ----------
    *               18080       127.0.0.1       13337

ncat 127.0.0.1 18080
Ncat: No connection could be made because the target machine actively refused it. .

C:\temp>netstat -a -b | grep -E -A1 13337
  TCP    127.0.0.1:13337         Windows7_x64:0         LISTENING
  [ncat.exe]

Son olarak, tüm eski ağ kurallarını silmek ve onu v6tov6 ile denemek de tam bir bombadır:

REM Admin Shell 1
ncat.exe -6 -l [::1] 13337

REM Admin Shell 2
netsh interface portproxy add v6tov6 listenport=18080 connectport=13337 connectaddress=[::1]
netsh interface portproxy show all

    Listen on ipv6:             Connect to ipv6:

    Address         Port        Address         Port
    --------------- ----------  --------------- ----------
    *               18080       [::1]           13337

ncat -6 [::1] 18080
Ncat: No connection could be made because the target machine actively refused it.

C:\temp>netstat -a -b | grep -E -A1 13337
  TCP    [::1]:13337             Windows7_x64:0         LISTENING
  [ncat.exe]

Not Windows7_x64 yerel ana bilgisayardır ve arabirim iyi çalışıyor gibi görünüyor.

C:\>ping localhost
Pinging Windows7_x64 [::1] with 32 bytes of data:
Reply from ::1: time<1ms

Ayrıca doğrudan dinleme netcat uç noktasına bağlanabilir ve herhangi bir sorun olmadan veri gönderebilirim:

ncat -6 [::1] 13337

Sorun kesinlikle netsh portproxy kurallarındadır.

Peki burada ne veriyor? Güvenlik duvarı tamamen kapalı. Yükseltilmiş kabuk. Buna engel olmak için çalışan hiçbir şey yok (AV / IDS yok).

Çeşitli v6tov4 ve v4tov6 kurallarını eklemeyi denedim ama bu da bir şey yapmadı. MS Message Analyzer, bağlantı kursa bile localhost arayüzünü açmıyor çünkü yardımcı olmuyor.

Herhangi bir fikir?

Edit 2016/10/15 23: 58EST: Aşağıdaki altı servisin durdurulması, pano genelinde port proxy işlemini engeller . Bu, bu hizmetlerden birinin olup bitenlerle ilgili olduğunu gösteriyor.

sc stop homegrouplistener
sc stop Browser
sc stop lanmanserver
sc stop smb
sc stop iphlpsvc

Yanıtlar:


0

Bu, tasarım gereğidir. Geridöngü arabirime (Windows'ta gerçekten bulunmayan) gelen paketler hiçbir şeyden kaynaklanamaz 127.0.0.0/8. Aynı şekilde, paketleri 127.0.0.0/8başka hiçbir yere gönderemezsiniz , çünkü başka yerlere rota yoktur. Bu, trafik gelse bile, dinleme programının cevap veremediği anlamına gelir.

Bir proxy programı kullanıyorsanız, harici ağdan trafik alır ve geridöngü arabiriminde (ve tersi) yeni trafik oluşturur . Bu çalışacak.

Aşağıdaki (OS X) nmap örneğini göz önünde bulundurun:

sudo nmap -Pn -p 80 -S 192.168.2.1 -e lo0 127.0.0.1

Zorla (kök yoluyla) geri döngü arayüzlerine geri paketleri enjekte eder. Bu, tcpdump -i lo0başka bir terminalde çalıştırılarak doğrulanabilir . Ancak, ncdinlerken bile açık portu bulamazdı. Ancak, aşağıdakiler dinleyiciyi beklendiği gibi bulur:

nmap -p 80 -e lo0 127.0.0.1

Teşekkürler Daniel. Bu hala garip çünkü tüm netsh portproxy kuralı, aynı yerel arayüzde 127.0.0.1:18080 - 127.0.0.1:13337’nin geçtiğini söylüyor. Bu sadece 127 / 8'de aktarma kriterlerine uyuyor.
Dustin Darcy

Ah, evet, o kısmı özledim. Geridöngü ağ bağlantısı normal ağ iletişimi gibi çalışmaz. İşleri hızlandırmak için, muhtemelen çoğu güvenlik duvarı öğesini (bağlantı noktası iletme dahil) içeren birçok adım atlanır. Bunun yerine, veriler doğrudan hedef uygulamanın belleğine kopyalanır.
Daniel B,

Ncat mesajı netsh portproxy'nin bağlantıyı aktif olarak reddeden bir hizmete çarptığını gösteriyor: "Ncat: Hedef makine aktif olarak reddettiği için bağlantı kurulamadı." IPC / adlandırılmış yöneltmeler, OSI yığınının atlanmasına ve daha sonra başlıkları tersine çevirmeye gerek kalmayacak şekilde atlandığı anlamına gelir. Arabirim hafıza eşlemesiyse, diğer ucunda yazılan verileri görmeliyiz çünkü soket alıcısı etkin bir şekilde hafızada bir değişiklik bekleyen bir işaretçidir.
Dustin Darcy,

Ncat mesajı hiç netsh portproxyetkili olmadığını göstermez . Aslında, bunun etkili olmamasını ima ettiğini bile söyleyebilirim. // Kopyaladım, eşleştirmedim. Detaylar işletim sistemine bağlıdır.
Daniel B,

Yeterince adil, mesaj kesinlikle bir WSAECONNREFUSED kadar kolay bir şekilde erişilemez bir durum olabilir WSAEHOSTUNREACH. Bağlandığım hatayı görmek için küçük bir soket programı yazacağım.
Dustin Darcy,
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.