# CVE-2021-22908 Pulse Connect Secure 任意代碼執行漏洞/he
== תיאור פגיעות ==
מכיוון ש- PCS תומך בחיבור לשיתוף קבצים ב- Windows (SMB), הפונקציה ניתנת על ידי סקריפטים של CGI המבוססים על ספריות Samba 4.5.10 ויישומי עזר. בעת ציון שם שרת ארוך לפעולות SMB מסוימות, יישום smbclt עלול לקרוס עקב הצפת מאגר, תלוי באורך שם השרת שצוין.
אושר כי למערכת PCS 9.1R11.4 יש פגיעות זו. נקודת הקצה היעד של CGI היא /dana/fb/smb/wnf.cgi. נקודות קצה אחרות של CGI עשויות גם לעורר פגיעות זו.
אם תוקף לא מצליח לנקות לאחר ניצול מוצלח של פגיעות זו, ציון שם שרת ארוך עלול לגרום לרישומי יומן האירועים הבאים של PCS:
Critical ERR31093 2021-05-24 14:05:37 - ive - [127.0.0.1] Root::System()[] - Program smbclt recently failed.
אך כדי לנצל את הפגיעות הזו, על שרת ה- PCS להיות בעל מדיניות גישה לקבצים של Windows המאפשרת \\ * או מדיניות אחרת המאפשרת לתוקף להתחבר לכל שרת. באפשרותך להציג את מדיניות ה- SMB הנוכחית על ידי הצגת משתמש-> מדיניות משאבים-> מדיניות גישה לקבצים של Windows בדף הניהול של PCS. 9.1R2 והתקני PCS קודמים משתמשים במדיניות ברירת המחדל של התרת חיבורים לכל מארח SMB. החל מ 9.1R3, מדיניות זו שונתה מהרשאת ברירת המחדל לדחיית ברירת המחדל.
== היקף ההשפעה ==
Pulse Connect Secure 9.0RX and 9.1RX
==POC==
#!/usr/bin/env python3
# Utility to check for Pulse Connect Secure CVE-2021-22908
# https://www.kb.cert.org/vuls/id/667933
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning
import argparse
import sys
from html.parser import HTMLParser
import getpass
parser = argparse.ArgumentParser(description='Pulse Connect Secure CVE-2021-22908')
parser.add_argument('host', type=str, help='PCS IP or hostname)')
parser.add_argument('-u', '--user', dest='user', type=str, help='username')
parser.add_argument('-p', '--pass', dest='password', type=str, help='password')
parser.add_argument('-r', '--realm', dest='realm', type=str, help='realm')
parser.add_argument('-d', '--dsid', dest='dsid', type=str, help='DSID')
parser.add_argument('-x', '--xsauth', dest='xsauth', type=str, help='xsauth')
parser.add_argument('-n', '--noauth', action='store_true', help='Do not authenticate. Only check for XML workaround')
args = parser.parse_args()
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
class formvaluefinder(HTMLParser):
def __init__(self, searchval):
super(type (self), self).__init__()
self.searchval = searchval
def handle_starttag(self, tag, attrs):
if tag == 'input':
# We're just looking for form tags
foundelement = False
for attr in attrs:
if(attr[0] == 'name'):
if(attr[1] == self.searchval):
foundelement = True
elif(attr[0] == 'value' and foundelement == True):
self.data = attr[1]
class preauthfinder(HTMLParser):
foundelement = False
def handle_starttag(self, tag, attrs):
if tag == 'textarea':
# We're just looking for
== הפניה ==
https://short.pwnwiki.org/?c=1NiPen
https://short.pwnwiki.org/?c=2Um6Rb













请登录后查看评论内容