سؤال كيف تسمح بالوصول المحلي للشبكة المحلية LAN أثناء الاتصال بشبكة Cisco VPN؟


كيف يمكنني الحفاظ على وصول الشبكة المحلية المحلية أثناء الاتصال بشبكة Cisco VPN؟

عند الاتصال باستخدام Cisco VPN ، يجب أن يقوم الخادم بإرشاد العميل لمنع وصول الشبكة المحلية.

بافتراض عدم إمكانية إيقاف تشغيل هذا الخيار من جانب الخادم ، كيف يمكن السماح بالوصول المحلي للشبكة المحلية LAN أثناء الاتصال مع عميل Cisco VPN؟


اعتدت على الاعتقاد بأنها كانت مجرد مسألة طرق يتم إضافتها والتي تلتقط حركة مرور LAN باستخدام مقياس أعلى ، على سبيل المثال:

  Network 
Destination      Netmask        Gateway       Interface  Metric
   10.0.0.0  255.255.0.0       10.0.0.3        10.0.0.3      20  <--Local LAN
   10.0.0.0  255.255.0.0  192.168.199.1  192.168.199.12       1  <--VPN Link

ومحاولة حذف 10.0.x.x -> 192.168.199.12 الطريق ليس له أي تأثير:

>route delete 10.0.0.0
>route delete 10.0.0.0 mask 255.255.0.0
>route delete 10.0.0.0 mask 255.255.0.0 192.168.199.1
>route delete 10.0.0.0 mask 255.255.0.0 192.168.199.1 if 192.168.199.12
>route delete 10.0.0.0 mask 255.255.0.0 192.168.199.1 if 0x3

وعلى الرغم من أنه قد لا يزال مجرد مشكلة في التوجيه ، فإن محاولات إضافة أو حذف المسارات تفشل.

على أي مستوى يقوم برنامج تشغيل عميل Cisco VPN بفعل ما في مجموعة الشبكات التي تتخطى قدرة المسؤول المحلي على إدارة أجهزتهم؟

لا يمكن لعميل Cisco VPN أن يستخدم السحر. انها لا تزال تعمل على جهاز الكمبيوتر الخاص بي. ما الآلية التي تستخدمها للتداخل مع شبكة الجهاز الخاص بي؟ ماذا يحدث عند وصول حزمة IP / ICMP على الشبكة؟ من أين تتكدس الحزمة في مجموعة الشبكات؟

أنظر أيضا


تصحيح: أشياء لم أحاول القيام بها بعد:

>route delete 10.0.*

تحديث: وبما أن Cisco قد تخلت عن عميلها القديم ، لصالح AnyConnect (VPN المستندة إلى SSL HTTP) ، فإن هذا السؤال ، الذي لم يتم حله ، يمكن تركه باعتباره من بقايا التاريخ.

من الآن فصاعدًا ، يمكننا محاولة حل المشكلة نفس المشكلة مع عميلهم الجديد.


75
2018-05-17 14:23


الأصل


يحتوي رابط VPN على مقياس أدنى وبالتالي يتم تجربته قبل المسار المحلي. من المرجح أن يؤدي تعطيل مقياس شبكة LAN المحلية إلى تعطيل شبكة LAN المحلية الخاصة بك. إذا لم يتم تكوين VPN لنفق جميع حركة المرور الشبكة الفرعية المنزلية يمكن أن يكون حلا. ما هي عناوين IP التي تحتاجها للوصول من خلال VPN؟ هل هذا كله 10.0.0.0 على الجانب VPN؟ - pberlijn
هذا يبدو وكأنه جيد جدا يمكن أن يكون القضية ؛ اعتقدت متري أعلى = أفضل. - Ian Boyd
في الواقع، المقياس السفلي = المفضل. - Jonathon Reinhart
يمكن استبدال Cisco AnyConnect ببرنامج OpenConnect البديل المتوافق في الغالب والموضح في serverfault.com/a/664097/104573 - Vadzim


الأجوبة:


المشكلة مع Anyconnect هي أنها تقوم أولاً بتعديل جدول التوجيه ، ثم تقوم بحشوها وتصحيحها في حالة تعديلها يدويًا. لقد وجدت حلا لهذا الغرض. يعمل مع الإصدار 3.1.00495 ، 3.1.05152 ، 3.1.05170 ، وربما أي شيء آخر في العائلة 3.1. قد تعمل مع إصدارات أخرى ، يجب أن تعمل على الأقل فكرة مماثلة على افتراض عدم الحصول على إعادة كتابة التعليمات البرمجية. لحسن الحظ بالنسبة لنا قد وضعت سيسكو جليسة الأطفال "بيبي مستيقظ" استدعاء إلى مكتبة مشتركة. إذن ، الفكرة هي أننا نمنع التصرف من خلال vpnagentd عبر LD_PRELOAD.

  1. أولا نقوم بإنشاء ملف hack.c:

    #include <sys/socket.h>
    #include <linux/netlink.h>
    
    int _ZN27CInterfaceRouteMonitorLinux20routeCallbackHandlerEv()
    {
      int fd=50;          // max fd to try
      char buf[8192];
      struct sockaddr_nl sa;
      socklen_t len = sizeof(sa);
    
      while (fd) {
         if (!getsockname(fd, (struct sockaddr *)&sa, &len)) {
            if (sa.nl_family == AF_NETLINK) {
               ssize_t n = recv(fd, buf, sizeof(buf), MSG_DONTWAIT);
            }
         }
         fd--;
      }
      return 0;
    }
    
  2. ثم ترجمها على هذا النحو:

    gcc -o libhack.so -shared -fPIC hack.c
    
  3. التثبت libhack.so في مسار مكتبة Cisco:

    sudo cp libhack.so  /opt/cisco/anyconnect/lib/
    
  4. اسقاط الوكيل:

    /etc/init.d/vpnagentd stop
    
  5. تأكد من أنها في الواقع أسفل

    ps auxw | grep vpnagentd
    

    ان لم، kill -9 فقط للتأكد.

  6. ثم إصلاح /etc/init.d/vpnagentd عن طريق إضافة LD_PRELOAD=/opt/cisco/anyconnect/lib/libhack.so حيث يتم استدعاء vpnagentd بحيث يبدو كالتالي:

    LD_PRELOAD=/opt/cisco/anyconnect/lib/libhack.so /opt/cisco/anyconnect/bin/vpnagentd
    
  7. الآن ابدأ الوكيل:

    /etc/init.d/vpnagentd start
    
  8. قم بإصلاح iptables ، لأن AnyConnect يتعارض معها:

    iptables-save | grep -v DROP | iptables-restore
    

    قد ترغب في القيام بشيء أكثر تقدمًا هنا للسماح بالوصول فقط إلى مضيفات LAN معينة.

  9. الآن قم بإصلاح الطرق كما تريد ، على سبيل المثال:

    route add -net 192.168.1.0 netmask 255.255.255.0 dev wlan0
    
  10. تحقق لمعرفة ما إذا كانوا هناك بالفعل:

    route -n
    

أعطت نسخة سابقة وبسيطة من هذا الاختراق وظيفة لم تفعل إلا "return 0؛" - لاحظ ذلك الملصق أن "التأثير الجانبي الوحيد الذي لاحظته حتى الآن هو أن vpnagentd يستخدم 100٪ من وحدة المعالجة المركزية كما هو موضح في الأعلى ، ولكن وحدة المعالجة المركزية الكلية هي 3٪ فقط للمستخدم ونظام 20٪ ، والنظام مستجيب تمامًا استقرت عليه ، يبدو أنه يقوم باختيارين في حلقة عندما يعود الخمول من كلاهما بسرعة ، لكنه لا يقرأ أو يكتب أبدا - أفترض أن المكالمة التي قطعتها مع LD_PRELOAD كان من المفترض أن تقرأ. قد تكون هناك طريقة أنظف للقيام بذلك ، ولكنه جيد بما فيه الكفاية بالنسبة لي حتى الآن. إذا كان لدى شخص ما حل أفضل ، يرجى المشاركة. "

المشكلة مع الإختراق التافهة هي أنها تسببت في وحدة معالجة مركزية واحدة لتكون 100٪ طوال الوقت ، مما يقلل بشكل فعال من عدد خيوط وحدة المعالجة المركزية للأجهزة بمقدار واحد - سواء كان اتصال vpn الخاص بك نشطًا أم لا. لقد لاحظت أن تحديد الكود كان يعمل على مقبس netlink ، والذي يرسل بيانات vpnagentd عندما يتغير جدول التوجيه. يتابع vpnagentd ملاحظة وجود رسالة جديدة على مقبس netlink ويستدعي routeCallBackHandler للتعامل معها ، ولكن بما أن الاختراق التافه لا يمسح الرسالة الجديدة فإنه يستمر في الاتصال مرة أخرى ومرة ​​أخرى. الشفرة الجديدة المقدمة أعلاه تحفز بيانات netlink لذا فإن الحلقة التي لا نهاية لها والتي تسببت في وحدة المعالجة المركزية 100٪ لا يحدث.

إذا كان هناك شيء لا يعمل ، افعل gdb -p $(pidof vpnagentd)بمجرد إرفاقه:

b socket
c
bt

ومعرفة أي مكالمة تتواجد فيها. ثم فقط تخمين أي واحد تريد قطع ، وإضافته إلى hack.c وإعادة ترجمة.


52
2018-02-05 00:07



هذا عبقري. أحاول الحصول عليه للعمل على OSX ولديك سؤال واحد: كيف عرفت أن طريقة التجاوز تمت تسميتها _ZN27CInterfaceRouteMonitorLinux20routeCallbackHandlerEv؟ - donturner
@ donturner حاول nm /opt/cisco/anyconnect/lib/libvpnagentutilities.dylib | grep routeCallbackHandlerEv ثم ستجد __ZN25CInterfaceRouteMonitorMac20routeCallbackHandlerEv - McKelvin
أنا احسب بها من خلال ربط ل vpnagentd مع gdb وتحديد نقاط التوقف المختلفة. - Sasha Pachev
McKelvin nm /opt/cisco/anyconnect/lib/libvpnagentutilities.so عائدات nm: /opt/cisco/anyconnect/lib/libvpnagentutilities.so: no symbols على AnyConnect الخاص بي تحت أوبونتو ، لذلك تم إنشاؤه دون معلومات جدول الرموز. كيف يمكنك الحصول على ذلك؟ - nephewtom
SashaPachev كيف يمكنك تصحيح vpnagentd بدون معلومات الرمز؟ - nephewtom


هذا معقد للغاية ، ولكن إذا قمت بإنشاء الحد الأدنى من VM باستخدام برنامج VMWare Player أو ما شابه ، وقم بتشغيل عميل Cisco AnyConnect VPN في ذلك ، فقد يكون من الممكن إعداد التوجيه كما تريد باستخدام محولات الشبكة الظاهرية VMWare ، أو ببساطة استخدام مطلوب VM للوصول إلى أي موارد عبر Cisco SSL VPN وملفات "السحب / الإفلات" إلى / من جهازك الفعلي.


11
2017-12-24 14:43





إمرأة سليطة برنامج VPN سهل فعل الخدعة بالنسبة لي أيضا ايان بويد اقترحت.

يمكن استيراد ملفات تعريف عميل Cisco VPN. لقد استخدمت إصدار عميل VPN Cisco VPN 5.0.05.0290 ، وبعد تثبيت Shrew VPN (الإصدار 2.1.7) واستيراد ملف Cisco الشخصي ، تمكنت من الوصول إلى LAN المحلي أثناء الاتصال بشبكة VPN دون أي تكوين إضافي لاتصال VPN (أو البرمجيات).


5
2018-03-05 13:17



سيكون من المدهش إذا كان هذا متاحًا لنظام Android. - Gabriel Fair


شكرا ل ساشا باتشيف للاختراق لطيفة أعلاه.

vpnagentd أيضا العبث مع المحلل عن طريق الكتابة فوق التغييرات التي أجريت على /etc/resolv.conf. أنا حلها في نهاية المطاف الفوز في سباق ضدها:

#!/bin/bash

dnsfix() {
    [ -f /etc/resolv.conf.vpnbackup ] || echo "Not connected?" >&2 || return 0 # do nothing in case of failure
    while ! diff -q /etc/resolv.conf /etc/resolv.conf.vpnbackup #>/dev/null
    do
         cat /etc/resolv.conf.vpnbackup >/etc/resolv.conf
    done
    chattr +i /etc/resolv.conf
    diff -q /etc/resolv.conf /etc/resolv.conf.vpnbackup >/dev/null 
}

while ! dnsfix
do
    echo "Retrying..."
    chattr -i /etc/resolv.conf
done

لا تنس أن chattr -i /etc/resolv.conf عند فصل.

أحاول حلها باعتراض معاودة الاتصال ، مثل طريقة التوجيه أعلاه ، ولكن لا يمكنني العثور على رد الاتصال أو الطريقة المقابلة بعد.

التحديث 1/2: أ strace وكشف أن vpnagentdيستخدم inotify API لمراقبة التغييرات في ملف المحلل. من هناك فصاعدا كان منحدرا. إليك الاختراق الإضافي:

int _ZN18CFileSystemWatcher11AddNewWatchESsj(void *string, unsigned int integer)
{
  return 0;
}

هذا هو مبالغة قليلا ، منحت ، لأنها تعطل الكل مشاهدة الملف للوكيل. ولكن يبدو أن العمل موافق.

يدمج البرنامج النصي المجمّع الخاص ببرنامج العميل vpn أدناه كل الوظائف (تم تحديثه لتضمين هذا الاختراق الإضافي). chattr لم يعد مستخدمًا / مطلوبًا.

تحديث 3: إعدادات اسم المستخدم / كلمة المرور الثابتة في البرنامج النصي. ويستخدم الآن vpn.conf ملف بالتنسيق الموضح أدناه (وأذونات الجذر فقط).

#!/bin/bash

# Change this as needed
CONF="/etc/vpnc/vpn.conf"
# vpn.conf format
#gateway <IP>
#username <username>
#password <password>
#delete_routes <"route spec"...> eg. "default gw 0.0.0.0 dev cscotun0"
#add_routes <"route spec"...> eg. "-net 192.168.10.0 netmask 255.255.255.0 dev cscotun0" "-host 10.10.10.1 dev cscotun0"

ANYCONNECT="/opt/cisco/anyconnect"

usage() {
    echo "Usage: $0 {connect|disconnect|state|stats|hack}"
    exit 1
}

CMD="$1"
[ -z "$CMD" ] && usage

ID=`id -u`

VPNC="$ANYCONNECT/bin/vpn"

dnsfix() {
    [ -f /etc/resolv.conf.vpnbackup ] || echo "Not connected?" >&2 || return 0 # do nothing in case of failure
    while ! diff -q /etc/resolv.conf /etc/resolv.conf.vpnbackup >/dev/null
    do
         cat /etc/resolv.conf.vpnbackup >/etc/resolv.conf
    done
#    chattr +i /etc/resolv.conf
    diff -q /etc/resolv.conf /etc/resolv.conf.vpnbackup >/dev/null 
}

case "$CMD" in
    "connect")
        [ $ID -ne 0 ] && echo "Needs root." && exit 1
        HOST=`grep ^gateway $CONF | awk '{print $2}'`
        USER=`grep ^user $CONF | awk '{print $2}'`
        PASS=`grep ^password $CONF | awk '{print $2}'`
        OLDIFS=$IFS
        IFS='"'
        DEL_ROUTES=(`sed -n '/^delete_routes/{s/delete_routes[ \t\"]*//;s/\"[ \t]*\"/\"/g;p}' $CONF`)
        ADD_ROUTES=(`sed -n '/^add_routes/{s/add_routes[ \t\"]*//;s/\"[ \t]*\"/\"/g;p}' $CONF`)
        IFS=$OLDIFS

        /usr/bin/expect <<EOF
set vpn_client "$VPNC";
set ip "$HOST";
set user "$USER";
set pass "$PASS";
set timeout 5
spawn \$vpn_client connect \$ip
match_max 100000
expect { 
    timeout {
        puts "timeout error\n"
        spawn killall \$vpn_client
        exit 1
    }
    ">> The VPN client is not connected." { exit 0};
    ">> state: Disconnecting" { exit 0};
    "Connect Anyway?"
}
sleep .1
send -- "y\r"
expect { 
    timeout {
        puts "timeout error\n"
        spawn killall \$vpn_client
        exit 1
    }
    "Username:"
}
sleep .1
send -- "\$user\r"
expect { 
    timeout {
        puts "timeout error\n"
        spawn killall \$vpn_client
        exit 1
    }
    "Password: "
}
send -- "\$pass\r";
expect eof
EOF
        sleep 2
        # iptables
        iptables-save | grep -v DROP | iptables-restore

        # routes
        for ROUTE in "${DEL_ROUTES[@]}"
        do
#            echo route del $ROUTE
            route del $ROUTE
        done
        for ROUTE in "${ADD_ROUTES[@]}"
        do
#            echo route add $ROUTE
            route add $ROUTE
        done

        # dns
        while ! dnsfix
        do
            echo "Try again..."
#            chattr -i /etc/resolv.conf
        done

        echo "done."
        ;;
    "disconnect")
#        [ $ID -ne 0 ] && echo "Needs root." && exit 1
        # dns
#        chattr -i /etc/resolv.conf

        $VPNC disconnect
        ;;
    "state"|"stats")
        $VPNC $CMD
        ;;
    "hack")
        [ $ID -ne 0 ] && echo "Needs root." && exit 1
        /etc/init.d/vpnagentd stop
        sleep 1
        killall -9 vpnagentd 2>/dev/null
        cat - >/tmp/hack.c <<EOF
#include <sys/socket.h>
#include <linux/netlink.h>

int _ZN27CInterfaceRouteMonitorLinux20routeCallbackHandlerEv()
{
  int fd=50;          // max fd to try
  char buf[8192];
  struct sockaddr_nl sa;
  socklen_t len = sizeof(sa);

  while (fd) {
     if (!getsockname(fd, (struct sockaddr *)&sa, &len)) {
        if (sa.nl_family == AF_NETLINK) {
           ssize_t n = recv(fd, buf, sizeof(buf), MSG_DONTWAIT);
        }
     }
     fd--;
  }
  return 0;
}

int _ZN18CFileSystemWatcher11AddNewWatchESsj(void *string, unsigned int integer)
{
  return 0;
}
EOF
        gcc -o /tmp/libhack.so -shared -fPIC /tmp/hack.c
        mv /tmp/libhack.so $ANYCONNECT
        sed -i "s+^\([ \t]*\)$ANYCONNECT/bin/vpnagentd+\1LD_PRELOAD=$ANYCONNECT/lib/libhack.so $ANYCONNECT/bin/vpnagentd+" /etc/init.d/vpnagentd
        rm -f /tmp/hack.c
        /etc/init.d/vpnagentd start
        echo "done."
        ;;
    *)
        usage
        ;;
esac

5
2018-01-28 18:51



حل مشكلة الإخطارات الخاصة بآخر مشكلة (2017-02-25) مع تثبيت AnyConnect 3.1.14018 الخاص بي ، حيث سيتم قطع الاتصال في أي وقت فتحت نافذة طرفية جديدة أو شاشة جنو. إنه يشاهد / var / run / utmp لسبب ما. حسنا ، ليس أكثر من ذلك ، شكرا! - Martin Dorey
لطيف. في بعض الأحيان يمكن أن يكون "overkill" صديقك. :-) - Mauro Lacy


شركتي لا تزال تستخدم ذلك فبن. يقوم عميل vpnc ببساطة بتغيير إعدادات iptables بهذه الطريقة:

# iptables-save
# Generated by iptables-save v1.4.10 on Sun Jun 17 14:12:20 2012
*منقي
: INPUT DROP [0: 0]
: FORWARD ACCEPT [0: 0]
: OUTPUT DROP [0: 0]
-A INPUT -s 123.244.255.254/32 -d 192.168.0.14/32 -j ACCEPT
-A INPUT -i tun0 -j ACCEPT
-A INPUT -i lo0 -j ACCEPT
- INPUT -J DROP
-A OUTPUT -s 192.168.0.14/32 -d 123.244.255.254/32 -j ACCEPT
-A OUTPUT -o tun0 -j ACCEPT
-A OUTPUT -o lo0 -j ACCEPT
-A OUTPUT -J DROP
ارتكب

انها مرشحات جميع باستثناء حركة مرور VPN.

ما عليك سوى الحصول على الفلتر في ملف مع iptables-save ، وإضافة خطوط وصول INPUT و OUTPOUT التي تطابق احتياجاتك وإعادة تطبيق الملف مع استعادة iptables.

على سبيل المثال للوصول إلى شبكة محلية على 192.168.0

# Generated by iptables-save v1.4.10 on Sun Jun 17 14:12:20 2012
*منقي
: INPUT DROP [0: 0]
: FORWARD ACCEPT [0: 0]
: OUTPUT DROP [0: 0]
-A INPUT -s 123.244.255.254/32 -d 192.168.0.14/32 -j ACCEPT
-A INPUT -s 192.168.0.0/24 -d 192.168.0.14/32 -j ACCEPT # local in
-A INPUT -i tun0 -j ACCEPT
-A INPUT -i lo0 -j ACCEPT
- INPUT -J DROP
-A OUTPUT -s 192.168.0.14/32 -d 123.244.255.254/32 -j ACCEPT
-A OUTPUT -s 192.168.0.14/32 -d 192.168.0.0/24 -j ACCEPT # local out
-A OUTPUT -o tun0 -j ACCEPT
-A OUTPUT -o lo0 -j ACCEPT
-A OUTPUT -J DROP
ارتكب

4
2018-06-17 13:37



من الخطأ ، ليس من السهل إضافة فقط الطريق الخاص بك .. حاولت وأنها لم تنجح .. عميل VPN السيطرة على جدول التوجيه النواة الذي لا يتيح لك تعديل - Satish


أي أخبار حول هذا؟

على أي مستوى هو سائق عميل Cisco VPN يفعل ما في الشبكات   المكدس الذي يتخطى قدرة مسؤول محلي على   إدارة أجهزتهم؟

أنا أتفق تماما وكان يتساءل عن نفس الشيء.

على أي حال ، إنه تطبيق يتطلب امتيازات المسؤول للتثبيت ، وأثناء تشغيله ، قد يقوم بشكل جيد بتصفية ما تقوم به ...

محاولاتي على Windows تفشل أيضا:

route change 0.0.0.0 mask 0.0.0.0 192.168.1.1 metric 1
 OK!

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      192.168.1.1    192.168.1.230     21 <-- LAN
          0.0.0.0          0.0.0.0    192.168.120.1    192.168.120.3      2 <-- VPN

هاها. لا يوجد مقياس تحت 20 هنا على ما يبدو.


3
2017-07-23 19:49



بقدر ما تشعر بالقلق لينكس ، هذا (petefreitag.com/item/753.cfm) يبدو أنه يشير إلى أن جدار الحماية متورط أيضًا. - Marki
لقد وجدت ShrewSoft VPN. يمكنه الاتصال بخادم Cisco IPSec VPN ، ويتجاهل طلب مسؤول خادم VPN أن يتم قطع الاتصال بشبكة الاتصال الخاصة بي. (نرى superuser.com/questions/312947/... للحصول على إرشادات مفصلة) على الرغم من أنه لا يجيب على هذا السؤال ، فهو حل. ملحوظة: VPN ShrewSoft يعمل فقط من أجل IPSec؛ لا يعمل مع SSL VPN (أي أحدث عميل Cisco AnyConnect VPN) - Ian Boyd


لا أعرف ما إذا كنت قد فهمت ذلك بشكل صحيح ، ولكني أوضح أولاً فهمي:

لديك شبكة محلية LAN (على سبيل المثال ، 10.0.0.0/16 ، وخادم Cisco VPN بعيد (على سبيل المثال ، 64.0.0.0/16). ترغب في الاتصال بخادم VPN من خلال عميل VPN Cisco وما زلت بحاجة إلى للحصول على وصول الشبكة المحلية (LAN) ، في هذه الحالة ، تريد فصل 10.0.xx / 16 بالكامل من اتصال VPN). يجب إضافة المسار التالي في عميل Mac:

/sbin/route add -net 10.0 -interface en1

حيث en1 هي الواجهة التي تتصل من خلالها بالشبكة المحلية الخاصة بك. أعلم أنه يمكنك إضافة نفس الشيء في نظامي التشغيل Windows و Linux أيضًا.


3
2017-11-06 11:44



إجراء 1+ للعميل Mac التي لا تنطبق علي. وبينما قد يعمل هذا الأمر ، قد يقوم عميل Cisco بحذفه بعد وقت قصير من إنشائه (يبدو أن عميل Cisco يمنع أي شخص من تغيير المسارات) - Ian Boyd


بما أنني لا أستطيع إضافة تعليقات ، سأقوم بنشرها هنا. أنا أعمل على ويندوز.

الحل باستخدام Virtual Machine وتشغيل AnyConnect داخل VM ثم استخدام VM كوسيط بين بيئة العمل وشبكة الشركة لن يعمل إذا كان قسم تكنولوجيا المعلومات "المحبوب" الخاص بك 0.0.0.0 عبر VPN وبالتالي حتى الشبكة المحلية (بما في ذلك بين جهاز الكمبيوتر المحلي وجهاز VM) يتم توجيهه عبر VPN (كذا!).

حاولت تطبيق حل نشرهSasha Pachev ولكن في النهاية انتهى بي الأمر patching .dll بحيث تعود 0 في بداية الدالة. في نهاية المطاف بعد قتال بعض مع مكتبة ديناميكية ، تمكنت من تعديل جداول التوجيه وفقا لاحتياجاتي ولكن يبدو أن هذا لا يكفي!

على الرغم من أن القواعد الخاصة بي تبدو صحيحة لتحقيق اختراق النفق ، ما زلت أحصل على فشل عام. هل واجهتم مشكلة مماثلة كما كانت قادرة على حلها؟

  • بوابتي إلى الإنترنت هي 192.168.163.2
  • بوابتي إلى شبكة الشركة هي 10.64.202.1 (وبالتالي ككل 10..* الشبكة الفرعية أعامل "بالشركه" ل

هذه هي الطريقة التي تبدو بها جدول التوجيه الآن (بعد إجراء تعديلات يدوية أثناء تشغيل VPN)

enter image description here

بعد تتبع نتيجة ping

C:\Users\Mike>ping -n 1 10.64.10.11
Reply from 10.64.10.11: bytes=32 time=162ms TTL=127

C:\Users\Mike>ping -n 1 8.8.8.8
PING: transmit failed. General failure.

C:\Users\Mike>ping -n 1 192.168.163.2
General failure.

فقط للإشارة ، وفيما يلي كيف يبدو جدول التوجيه عندما يتم قطع اتصال VPN (دون تغيير)

enter image description here

وهذه هي الطريقة التي يبدو بها الجدول عند اتصال VPN (دون تغيير) في هذه الحالة عندما أحاول تنفيذ الأمر ping 8.8.8.8 أنا ببساطة الحصول على مهلة (منذ جدار الحماية للشركة لا يسمح لحركة المرور للذهاب خارج الإنترانت)

enter image description here


2
2018-02-28 10:12



أواجه صعوبة في تصحيح DLL ، هل يمكن لشخص ما تقديم نسخة من هذه الخطوط أو وضع تفاصيل أكثر تعويضاً أحتاج لتغييرها؟ - Sean C


حاول إزالة هذه الإدخالات باستخدام العبارة 10.64.202.13 نرى ما إذا كان بينغ 8.8.8.8 يعمل ثم إضافتها مرة واحدة تلو الأخرى وتحديد أي واحد يسبب المشكلة.

كيف قمت بتصحيح DLL. لا أستطيع حتى تعديل جدول التوجيه لأنه يحتفظ بإضافة 0.0.0.0 مع بوابة VPN مرة أخرى.


0
2018-05-01 03:42



إذا كنت بحاجة إلى توضيح أو معلومات إضافية حول سؤال الرجاء نشر تعليق بدلاً من تضمينه في إجابتك. شكر. - Matthew Williams
لم يكن يسمح لي بإضافة التعليقات على الأسئلة الموجودة. - Tony