what you don't know can hurt you
Home Files News &[SERVICES_TAB]About Contact Add New

Simple Universal Fortigate Fuzzer

Simple Universal Fortigate Fuzzer
Posted May 15, 2023
Authored by Cody Sixteen

Simple python script to send commands prepared in text files mutated by an example payload string, e.g. multiple A or B letters. Using Fortigate's credentials, a user should be able to use this script to automate a basic fuzzing process for commands available in CLI.

tags | tool, python, fuzzer
SHA-256 | 183513f0d7a7bbd777a50826ac774d0cc927491384f081ad3ae5cf87426b640f

Simple Universal Fortigate Fuzzer

Change Mirror Download
c@ubuntu:~/LABS/_SUFLET2$ cat suff.py
#!/usr/bin/env python3
# suff.py -- simple universal fortigate fuzzer
#
# initial idea : xx.10.2022
# finished idea: xx.04.2023
#
# special thanks goes to Reykez (https://github.com/Reykez)
#
# for more details:
# https://code610.blogspot.com/2023/04/fuzzing-fortigate-7.html
#

from netmiko import Netmiko
import sys,os
import time
import paramiko


def readFile(filename):
words = []
fileText = open(filename.strip(), 'r')
for line in fileText.readlines():
for word in line.strip().split():
words.append(word.strip())
words.append('\n')
return words



##

def writeFile(words, filename):
text = '';

for word in words:
text += word;
if word!='\n':
text += ' ' ;

f = open(filename, 'w')
f.write(text)
f.close()

## run modified payload: send is as cfg:
fpread = open(filename, 'r')
lines = fpread.read()

command = lines

print("DEBUG :::: type of: %s" % type(command) )
print( command )
print("DEBUG :::: eof\n")

##
# set up for the target
fw_01 = {
'host':'192.168.56.231',
'username':'admin',
'password':'admin',
'device_type':'fortinet'

}

# connecting to the target host
try:
net_connect = Netmiko( **fw_01 )
print("+ connected, checking prompt...")
except paramiko.ssh_exception.SSHException as e:
print(" > connection error: %s" % e)

except ConnectionResetError as e:
print("> connection error2: %s" % e)

except UnboundLocalError as e:
print("UnboundLocalError: local variable 'net_connect' referenced before assignment")
print("> unbound variable error: %s" % e)

print("... sleeping 1...")
time.sleep(2)

print("> sending fuzzed command...")
send_init_cfg = net_connect.send_config_set( command ) # init_cfg...

print("+ looks like we just sent this command:\n\t%s\n\n" % send_init_cfg )



## finished fuzzed super-payload attack
##


####

def modifyFilename(filename, number):
name, extension = os.path.splitext(filename)
return "{name}{uid}{extension}".format(name=name, uid=str(number).zfill(2), extension=extension)

#### parse and validate command line args, proceed program



args = sys.argv[1:]
filename = args[0] if 0 in range(len(args)) else input ('Filename?')
textToReplace = args[1] if 1 in range(len(args)) else input ('text to replace? ')
outputBasename = args[2] if 2 in range(len(args)) else input ('output basename')

words = readFile(filename);

# reaplce any occurency and print
fileIndex = 0

for wordIndex in range(len(words)):
if words[wordIndex] == '\n':
continue
fileIndex += 1
wordsCopy = words.copy()
try:
wordsCopy[wordIndex] = textToReplace
writeFile(wordsCopy, modifyFilename(outputBasename, fileIndex ) )

except UnboundLocalError as e:
print("UnboundLocalError: local variable 'net_connect' referenced before assignment")
print("> unbound variable error: %s" % e)
pass


print('Successfully generated', modifyFilename(outputBasename, 1), '-', modifyFilename(outputBasename, fileIndex), ' files!')









Login or Register to add favorites

File Archive:

October 2023

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Oct 1st
    0 Files
  • 2
    Oct 2nd
    22 Files
  • 3
    Oct 3rd
    0 Files
  • 4
    Oct 4th
    0 Files
  • 5
    Oct 5th
    0 Files
  • 6
    Oct 6th
    0 Files
  • 7
    Oct 7th
    0 Files
  • 8
    Oct 8th
    0 Files
  • 9
    Oct 9th
    0 Files
  • 10
    Oct 10th
    0 Files
  • 11
    Oct 11th
    0 Files
  • 12
    Oct 12th
    0 Files
  • 13
    Oct 13th
    0 Files
  • 14
    Oct 14th
    0 Files
  • 15
    Oct 15th
    0 Files
  • 16
    Oct 16th
    0 Files
  • 17
    Oct 17th
    0 Files
  • 18
    Oct 18th
    0 Files
  • 19
    Oct 19th
    0 Files
  • 20
    Oct 20th
    0 Files
  • 21
    Oct 21st
    0 Files
  • 22
    Oct 22nd
    0 Files
  • 23
    Oct 23rd
    0 Files
  • 24
    Oct 24th
    0 Files
  • 25
    Oct 25th
    0 Files
  • 26
    Oct 26th
    0 Files
  • 27
    Oct 27th
    0 Files
  • 28
    Oct 28th
    0 Files
  • 29
    Oct 29th
    0 Files
  • 30
    Oct 30th
    0 Files
  • 31
    Oct 31st
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2022 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close