Fleex allows you to create multiple VPS on cloud providers and use them to distribute your workload.

Overview

Fleex

Fleex allows you to create multiple VPS on cloud providers and use them to distribute your workload. Run tools like masscan, puredns, ffuf, httpx or anything you need and get results quickly!

AUR license badge

Install

GO111MODULE=on go get -v github.com/sw33tLie/fleex

Supported providers

Available commands

./fleex -h

Available Commands:
  build       Build image
  config      fleex config setup
  delete      Delete a fleet or a single box
  help        Help about any command
  images      List available images
  ls          List running boxes
  run         Run a command
  scan        Distributed scanning
  scp         SCP client
  spawn       Spawn a fleet
  ssh         Start SSH

Documentation

See the documentation here

Main contributors

sw33tLie
sw33tLie
xm1k3
xm1k3

Sponsors

projectdiscovery
ProjectDiscovery

License

Fleex is distributed under Apache-2.0 License

Issues
  • ssh authentication issue

    ssh authentication issue

    every time I run fleex scan ( digital ocean), it gives the below error message

    (( ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain ))

    bug 
    opened by messithegoat 12
  • Default username not changed

    Default username not changed

    Default username not changed after changed username in config. fleex ssh connect with default username op not and connet with custum user name root in config

    2021-07-08 08_39_22-Window

    provider: linode
    public-ssh-file: id_rsa.pub
    private-ssh-file: id_rsa
    linode:
      token: 71c0d8ec6bd5
      region: eu-central
      size: g6-nanode-1
      image: private/12937769
      port: 22
      username: root
      password: ttpTT4fab$tm
    digitalocean:
      token: YOUR_DIGITALOCEAN_TOKEN
      region: fra1
      size: s-1vcpu-1gb
      image: 12345678 # put your image id here
      port: 2266
      username: op
      password: USER_PASSWORD
      tags:
        - vps
        - fleex
    
    bug 
    opened by MPaandeey 8
  • Failed to send file: failed to stat source file Error

    Failed to send file: failed to stat source file Error

    Hello,

    When I'm trying to send this command:

    fleex scan -n pwn -i list.txt -o scan-results.txt -c "findomain -f {{INPUT}} -o {{OUTPUT}}"

    The contents of list.txt contains a list of domains.

    I get this error:

    FATA[0004] Failed to send file: failed to stat source file: err=stat /tmp/XXXXXX/input/chunk-pwn-2: no such file or directory

    May I know what can be the issue?

    N/A 
    opened by bhavukjain1 5
  • "terminal make raw:inappropriate ioctl for device"

    Hello,

    I noticed when running fleex scans from within a bash loop, it causes an issue with SSH. I have not been able to figure out the solution to this yet, but it should be easy to reproduce.

    Error I get: FATA[0002] terminal make raw:inappropriate ioctl for device

    Working bash script

    #!/bin/bash
    fleex scan -n pwn -i "/home/myInput.txt" -c "~/go/bin/httpx -l {{INPUT}} -o {{OUTPUT}}" -o "/home/myOutput.txt"
    

    Erroring bash script

    #!/bin/bash
    while read f; do
      FILE="/home/$f.txt"
      fleex scan -n pwn -i "${f}" -c "~/go/bin/httpx -l {{INPUT}} -o {{OUTPUT}}" -o "/home/${f}-output.txt"
    done </home/hosts.txt
    

    You should even be able to reproduce with less code...

    #!/bin/bash
    while read f; do
      fleex scan -n pwn -i "/home/myInput.txt" -c "~/go/bin/httpx -l {{INPUT}} -o {{OUTPUT}}" -o "/home/myOutput.txt"
    done </home/hosts.txt
    

    Possible code in question: https://github.com/FleexSecurity/fleex/blob/f4a0d874ba5c933dec2602145abfca1fdb8ef980/pkg/sshutils/sshutils.go#L101

    Possible solution 1: https://github.com/golang/go/issues/19909 Possible solution 2: https://github.com/c-bata/go-prompt/issues/88

    Thanks!

    opened by michael1026 3
  • replaced go get with go install

    replaced go get with go install

    After spawning boxes, I saw that only the gobuster was installed. Then I realized maybe only gobuster used go install and other tools was using go get So just replaced go get with go install and now I see all other tools also get installed

    opened by remonsec 2
  • Folder output not supported

    Folder output not supported

    i scan list of web with gowitness and the output not processed by fleex got error not a regular file.

    Command

    fleex scan -i test -o screenshot -c "cat {{INPUT}} | gowitness file -f {{INPUT}} --threads 2 --screenshot-path {{OUTPUT}}"

    Error

    FATA[0016] Failed to get file: failed to read scp message header: err=scp: /tmp/fleex-1626745411693753043-chunk-out-pwn-1: not a regular file

    bug enhancement 
    opened by MPaandeey 2
  • File chunks issue

    File chunks issue

    I scaned 3 targets input with 3 boxes then i got error err=scp: /tmp/fleex-1625591403254096294-chunk-out-vmp-1: No such file or directory Provider linode 2021-07-06 22_33_24-Window

    enhancement N/A 
    opened by MPaandeey 2
  • Spawn no longer working on DO

    Spawn no longer working on DO

    Hello,

    Not sure if this is some issue with my own device, but it appears fleex spawn is no longer working for Digital Ocean. If I wait long enough, I eventually get a 524 (a timeout occurred) from Digital Ocean.

    $ fleex spawn -c 5 -n pwn
    INFO[0001] All spawn requests sent! Now waiting for all boxes to become ready 
    FATA[0155] GET https://api.digitalocean.com/v2/droplets?page=1&per_page=9999: 524 <!DOCTYPE html>
    ...
    

    I'll spend some time to see if I can discover the issue myself.

    Thanks!

    opened by michael1026 1
  • Large file not split evenly

    Large file not split evenly

    Hello,

    I was attempting to scan a large file split across 10 boxes, but found some of the boxes were taking a lot longer to finish than others. Looking at the split files, this is what I found...

    $ cat /tmp/fleex-1638000776404301032/chunk-out-pwn-1 | wc -l
    14490760
    $ cat /tmp/fleex-1638000776404301032/chunk-out-pwn-2 | wc -l
    537
    $ cat /tmp/fleex-1638000776404301032/chunk-out-pwn-1 | wc -l
    14490760
    $ cat /tmp/fleex-1638000776404301032/chunk-out-pwn-2 | wc -l
    537
    $ cat /tmp/fleex-1638000776404301032/chunk-out-pwn-3 | wc -l
    26
    $ cat /tmp/fleex-1638000776404301032/chunk-out-pwn-4 | wc -l
    75382
    $ cat /tmp/fleex-1638000776404301032/chunk-out-pwn-5 | wc -l
    30
    $ cat /tmp/fleex-1638000776404301032/chunk-out-pwn-6 | wc -l
    6830214
    $ cat /tmp/fleex-1638000776404301032/chunk-out-pwn-7 | wc -l
    15
    $ cat /tmp/fleex-1638000776404301032/chunk-out-pwn-8 | wc -l
    9
    $ cat /tmp/fleex-1638000776404301032/chunk-out-pwn-9 | wc -l
    23415813
    $ cat /tmp/fleex-1638000776404301032/chunk-out-pwn-10 | wc -l
    80
    

    Maybe there's something I'm not doing correctly. The command used: fleex scan -n pwn -i myfile.txt -c "cat {{INPUT}} | ~/go/bin/dnsx >> {{OUTPUT}}" -o output.txt

    Thanks!

    wontfix 
    opened by michael1026 1
  • Replace path by filepath

    Replace path by filepath

    Hi, "path" uses "/" as path separator regardless of the platform where we are compiling which may have undesired effects, better use "filepath" which is cross-platform. I tweeted once about an app that "stopped" working on Windows, the reason was exactly that.

    https://twitter.com/melardev/status/1327761725664489472

    Someone also blogged about it: https://parsiya.net/blog/2019-03-09-path.join-considered-harmful/

    opened by melardev 1
  • replaced go get with go install

    replaced go get with go install

    After spawning boxes I saw only gobuster was installed. then realized only gobuster was using go install then replaced other go get with go install and started working well.

    opened by remonsec 0
  • Thoughts on the project :D

    Thoughts on the project :D

    looking at the idea of the project i think this can be a very successful project within the time being with improvements, i didn't take a look at the code which is beyond the scope of this comment, however here are some things you can add to make it a bit nicer.

    1)>> add a web UI: I think given the times a webUI would make this project get out there alot more, the ui would include such things as a User dashboard / settings tab, settings management tab, conguration storage which would allow the user to reload certian settings they have used in the past. user/host information and updates which will allow the user to look at the load the VPS's take on their system or CPU's.

    2)>> Database's: i think for settings the use of YAML or YML configuration files is a really good idea, however given this project might get larger and larger over the years (if you choose to keep managing this project instead of leaving it as it) then the use of MySQL, SQLServer, PostGreSQL, MongoDb, or other databases might be a good idea ESPECIALLY if you implement previous setting configurations by the user as said in option 1 of implementing a web UI. For my personal cyber weapons and pen testing/blue team security tools which utilize a web UI i always use sessions, and in order to load previous values from those sessions i will always store them in a MongoDB server that i made using golangs drivers for databases, and third party golang mongoDB drivers. i think it might improve alot more to this project

    3)>> Cross platform: If you choose to keep this project up you should add a simple makefile or mkconfig file or exe or ELF that someone could easily install this utility on, this is really only if the tool gets bigger, an example would be if you implement databases, and large web user interfaces and graphical user interfaces. Another thing about making it more cross platform would be how much people would use this, sure alot of people operate on linux and when you use a VPS you are most likely an expert at this or learning, however in the case this project manages to get alot bigger then it would be best to make an auto configuration file and system setup file for people who are newer to this kind of thing.

    4)>> API Usage: this would be a last minute thing however it might be good to make the use of LUA, LUA and golang work great together ESPECIALLY if you want people to contribute to your project and make it better in every way they think fits the project, most projects like nmap, zenmap, wireshark, metasploit etc use scirpting languages like LUA to utilize plugins for their security tool, this might be a cool thing to add in the further future

    5)>> Adding automation: since this tool as said allows you to create multiple VPS on cloud providers and use them to distribute your workload. Run tools like masscan, puredns, ffuf, httpx or anything you need and get results quickly! you should add something to automate tools, like masscan, ffuf, httpx, etc and output them on something like the web UI, given how go works around its syscall and system operations it would work amazing with web interfaces if you can structure it correctly and make it very very easy to manipulate and update every so often. This would make FLEEX a much more useful tool for something like security experts or people who are getting into the field.

    Conclusion: This project seems amazing, right now it may just be a simple VPS spawner, however you can turn this project into something way more than it was meant to be, there is alot you can add and manipulate and alot you can do to better optimize the code and make user experience more amazing than it is right now. keep up the great work ~ ArkAngeL43

    opened by ArkAngeL43 0
  • feat: custom vps on fleex

    feat: custom vps on fleex

    WIP:implementation of custom vps with Fleex

    Configuration:

    custom:
      vps-1:
        ip: {VPS-IP}
        port: {VPS-PORT}
        username: {USERNAME}
        password: {PASSWD}
      vps-2:
        ip: {VPS-IP}
        port: {VPS-PORT}
        username: {USERNAME}
        password: {PASSWD}
      vps-3:
        ip: {VPS-IP}
        port: {VPS-PORT}
        username: {USERNAME}
        password: {PASSWD}
    
    enhancement 
    opened by xm1k3 0
  • Fleex installation does not create $HOME/fleex/ folder !

    Fleex installation does not create $HOME/fleex/ folder !

    Hello Thank you so much for your amazing tool. really appreciate

    I am facing an issue after installing, can you please look into it After installing Fleex I see no $HOME/fleex folder no config file

    Terminal Record https://asciinema.org/a/wfIiuQu9YSp2m9egKdmhxp8Ql

    opened by remonsec 1
  • Delete Fleet/Boxes on command fail

    Delete Fleet/Boxes on command fail

    So i run fleex scan with the --delete flag, for some reason the file copying failed and hence the command didn't run. But also, the boxes were not deleted. Imagine my surprise a couple of hours later. I think on command fail the rest of the clean up should still go through.

    opened by kenjoe41 0
  • Enhancement - Dynamic input distribution

    Enhancement - Dynamic input distribution

    Current implementation make equal chunks and send for scan. But if one chunk takes more time to complete the job all other machine sits idle. There is an option -d to delete upon completion but this is not helpful if some chunk requires more time.

    Instead of making static chunk like lines_count(input_file)/len(fleet), dynamically distributing using a loop by sending few lines for fleet be helpful.

    opened by pradeepch99 0
  • fleex build not working properly

    fleex build not working properly

    Hi i am using linode with fleex

    when i am creating a new image with fleex build -d (with or without -d, it doesn't matter) the image is does not get created but and the VPS is getting deleted immediatly when the fleex build command is executed, so there is not enough time to make an image.

    I guess it has to do with the merge from 13th of august. https://github.com/sw33tLie/fleex/commit/1107e6b81607d03609f9e4a104b76d170e92b49e

    fleex build everthings getting installed. INFO[0894] Fleet/Box deleted! <-- so there is no time for creating a image.

    the image is getting build, but receives an error because the vps is deleted.

    If you need more info, let me know.

    bug help wanted 
    opened by ribersec 1
Releases(v1.2-beta)
Owner
Bug bounty hunter and CS student.
null
TurtleDex is a decentralized cloud storage platform that radically alters the landscape of cloud storage.

TurtleDex is a decentralized cloud storage platform that radically alters the landscape of cloud storage. By leveraging smart contracts, client-side e

TurtleDev 18 Feb 17, 2021
Cloudpods is a cloud-native open source unified multi/hybrid-cloud platform developed with Golang

Cloudpods is a cloud-native open source unified multi/hybrid-cloud platform developed with Golang, i.e. Cloudpods is a cloud on clouds. Cloudpods is able to manage not only on-premise KVM/baremetals, but also resources from many cloud accounts across many cloud providers. It hides the differences of underlying cloud providers and exposes one set of APIs that allow programatically interacting with these many clouds.

null 1 Jan 11, 2022
Use Google Cloud KMS as an io.Reader and rand.Source.

Google Cloud KMS Go io.Reader and rand.Source This package provides a struct that implements Go's io.Reader and math/rand.Source interfaces, using Goo

Seth Vargo 4 Nov 10, 2021
Cloud cost estimates for Terraform in your CLI and pull requests 💰📉

Infracost shows cloud cost estimates for Terraform projects. It helps developers, devops and others to quickly see the cost breakdown and compare different options upfront.

Infracost 7.1k Jul 1, 2022
The extensible SQL interface to your favorite cloud APIs.

The extensible SQL interface to your favorite cloud APIs.

Turbot 1.6k Jun 26, 2022
☁️🏃 Get up and running with Go on Google Cloud.

Get up and running with Go and gRPC on Google Cloud Platform, with this lightweight, opinionated, batteries-included service SDK.

Einride 18 May 18, 2022
Elkeid is a Cloud-Native Host-Based Intrusion Detection solution project to provide next-generation Threat Detection and Behavior Audition with modern architecture.

Elkeid is a Cloud-Native Host-Based Intrusion Detection solution project to provide next-generation Threat Detection and Behavior Audition with modern architecture.

Bytedance Inc. 1.2k Jun 23, 2022
Sample apps and code written for Google Cloud in the Go programming language.

Google Cloud Platform Go Samples This repository holds sample code written in Go that demonstrates the Google Cloud Platform. Some samples have accomp

Google Cloud Platform 3.4k Jun 21, 2022
A Cloud Native Buildpack that contributes SDKMAN and uses it to install dependencies like the Java Virtual Machine

gcr.io/paketo-buildpacks/sdkman A Cloud Native Buildpack that contributes SDKMAN and uses it to install dependencies like the Java Virtual Machine. Be

Daniel Mikusa 1 Jan 8, 2022
A Cloud Foundry cli plugin that offers a faster and customizable alternative for cf apps

Panzer cf cli plugin A plugin for faster interaction (less API calls) with Cloud Foundry, and choose the columns you want in your output. Instead of "

Harry Metske 0 Feb 14, 2022
Lightweight Cloud Instance Contextualizer

Flamingo Flamingo is a lightweight contextualization tool that aims to handle initialization of cloud instances. It is meant to be a replacement for c

Tamer Tas 36 Jun 18, 2022
Go language interface to Swift / Openstack Object Storage / Rackspace cloud files (golang)

Swift This package provides an easy to use library for interfacing with Swift / Openstack Object Storage / Rackspace cloud files from the Go Language

Nick Craig-Wood 292 Jun 30, 2022
Terraform provider for HashiCorp Cloud Platform.

HashiCorp Cloud Platform (HCP) Terraform Provider Requirements Terraform >= 0.12.x Go >= 1.14 Building The Provider Clone the repository Enter the rep

HashiCorp 26 Jun 6, 2022
The Cloud Posse Terraform Provider for various utilities (E.g. deep merging)

terraform-provider-utils Terraform provider to add additional missing functionality to Terraform This project is part of our comprehensive "SweetOps"

Cloud Posse 59 Jun 8, 2022
Cloud-native way to provide elastic Jupyter Notebook services on Kubernetes

elastic-jupyter-operator: Elastic Jupyter on Kubernetes Kubernetes 原生的弹性 Jupyter 即服务 介绍 为用户按需提供弹性的 Jupyter Notebook 服务。elastic-jupyter-operator 提供以下特性

TKEStack 119 Jun 28, 2022
Google Cloud Client Libraries for Go.

Google Cloud Client Libraries for Go.

Google APIs 2.9k Jul 1, 2022
A Cloud Native Buildpack for Go

The Go Paketo Buildpack provides a set of collaborating buildpacks that enable the building of a Go-based application.

Paketo Buildpacks 53 Jun 6, 2022
cloud-native local storage management system

Open-Local是由多个组件构成的本地磁盘管理系统,目标是解决当前 Kubernetes 本地存储能力缺失问题。通过Open-Local,使用本地存储会像集中式存储一样简单。

null 211 Jun 26, 2022
A local emulator for Cloud Bigtable with persistance to a sqlite3 backend.

Little Bigtable A local emulator for Cloud Bigtable with persistance to a sqlite3 backend. The Cloud SDK provided cbtemulator is in-memory and does no

Bitly 12 Jun 29, 2022