Added list support

master
Graham Helton 2 years ago
parent a06fc5e566
commit f480d9b2a6

@ -4,7 +4,6 @@ import argparse
import json import json
import os import os
from string import Template from string import Template
from colorama import Fore, Style from colorama import Fore, Style
from pygments import highlight, formatters, lexers from pygments import highlight, formatters, lexers
@ -26,6 +25,8 @@ title = Template(
) )
description = Template(Style.DIM + '# ' + '$description' + Style.RESET_ALL) description = Template(Style.DIM + '# ' + '$description' + Style.RESET_ALL)
divider = '\n' + Style.BRIGHT + ' - ' * 10 + Style.RESET_ALL + '\n' divider = '\n' + Style.BRIGHT + ' - ' * 10 + Style.RESET_ALL + '\n'
sep = '\n' + Style.BRIGHT + '-' * 100 + Style.RESET_ALL + '\n'
def parse_args(): def parse_args():
@ -33,41 +34,52 @@ def parse_args():
description="Command-line program for GTFOBins. " description="Command-line program for GTFOBins. "
"It helps you to bypass system security restrictions. Version 1.0") "It helps you to bypass system security restrictions. Version 1.0")
parser.add_argument('-v', '--version', action='version', version='%(prog)s 1.0') parser.add_argument('-v', '--version', action='version', version='%(prog)s 1.0')
parser.add_argument('binary', metavar='[binary]', action='store', help='specifies the binary file') parser.add_argument('-b', '--binary', action='store', help='specifies the binary file')
parser.add_argument('-l', '--list')
return parser.parse_args() return parser.parse_args()
def main(binary): def main(binary):
print(Fore.YELLOW + sep + " " * 45 + binary.upper() + Fore.YELLOW + sep + Style.RESET_ALL,end='')
file_path = data_dir + binary + json_ext file_path = data_dir + binary + json_ext
if os.path.isfile(file_path): if os.path.isfile(file_path):
print(info.safe_substitute(text="Supplied binary: " + binary))
print(info.safe_substitute(text="Please wait, loading data ... "))
with open(file_path) as source: with open(file_path) as source:
data = source.read() data = source.read()
json_data = json.loads(data) json_data = json.loads(data)
if 'description' in json_data: if 'description' in json_data:
print('\n' + description.safe_substitute(description=json_data['description'])) print('\n' + description.safe_substitute(description=json_data['description']),end='')
for vector in json_data['functions']: for vector in json_data['functions']:
print(title.safe_substitute(title=str(vector).upper())) print(title.safe_substitute(title=str(vector).upper()),end='')
index = 0 index = 0
for code in json_data['functions'][vector]: for code in json_data['functions'][vector]:
index = index + 1 index = index + 1
if 'description' in code: if 'description' in code:
print(description.safe_substitute(description=code['description']) + '\n') print(description.safe_substitute(description=code['description']),end='' + '\n')
print(highlight(code['code'], lexers.BashLexer(), print(highlight(code['code'], lexers.BashLexer(),
formatters.TerminalTrueColorFormatter(style='igor')).strip()) formatters.TerminalTrueColorFormatter(style='igor')).strip())
if index != len(json_data['functions'][vector]): if index != len(json_data['functions'][vector]):
print(divider) print(divider,end='')
print('\n' + info.safe_substitute(text="Goodbye, friend."))
else: else:
print(fail.safe_substitute(text="Sorry, couldn't find anything for " + binary)) print(fail.safe_substitute(text="Sorry, couldn't find anything for " + binary),end='')
def list():
file = open('list.txt', 'r')
Lines = file.readlines()
count = 0
for line in Lines:
count += 1
main(line.strip())
if __name__ == '__main__': if __name__ == '__main__':
os.system('cls' if os.name == 'nt' else 'clear') os.system('cls' if os.name == 'nt' else 'clear')
print(banner) print(banner)
args = parse_args() args = parse_args()
main(binary=args.binary) if args.list:
list()
else:
main(binary=args.binary)

@ -0,0 +1,7 @@
awk
nope
cowsay
dd
notin
ping
diff
Loading…
Cancel
Save