Code Monkey home page Code Monkey logo

talosplus's Introduction


ScreenshotsBlogFeaturesInstallationUsage

What is Talosplus?

Talosplus is a fast and robust template based Intelligent automation framework that is designed to create and run automation scripts with almost no knowledge of bash scripting. However having knowledge of bash scripting allows one to create complex automation that is usually not possible with bash alone.

Bash was written in 80's in c so it lacks many features that are required to create and run modern Intelligent automation scripts . Instead of creating automation in different scripting languages (python etc) or other DSLs. talosplus allows to create intelligent automation scripts by adding annotations (variables & modules) to existing bash scripts.

How does it work??

The concept is similar to how goroutines work in Golang , goroutines are managed by go runtime unlike threads . In this case all heavy lifting is done by talosplus at runtime and it manages all issues related with concurrency , data sharing etc and only simplified commands are executed at low level using goroutines.

Features

These are some oversimplified features that are provided by talosplus.

  • Parallel Execution of Commands using goroutines
  • Auto Scheduling & Data sharing b/w Commands at Runtime
  • Filesystem Abstraction
  • Caching
  • Discord Notification Support
  • Thread Safe
  • Persistent storage using MongoDB,BBoltDB(Similar to sqlite)
  • Easy & Lenient Syntax
  • Fail Safe && Condition Checks
  • Stop /Resume (BETA)
  • No Compatiblity issues with bash
  • Other Features Similar to bbrf-client,interlace,rush etc

When bash script is written using proper annotations it barely looks like a bash script for example sub_enum.sh which is used for subdomain enumeration . It looks like list of commands with some annotions and comments but it is probably the fastest and simplest automation script available out there.

Flow of Execution

When above template/script is executed using talosplus . It parses and validates syntax (i.e annotations) and creates graph like datastructure using these annotations and creates a execution pyramid . This execution pyramid contains details like which commands can be run in parllel and details of commands that dependents on this command and lot of other stuff and provides best possible execution flow and handles all edge cases in cases of failures , missing output etc.

Screenshots

Installation Instructions

  • Download Binary from Releases

  • Build From Source .

go install github.com/tarunKoyalwar/talosplus/cmd/talosplus@latest

Do Star the repo to show your support. Follow me on github / twitter to get latest updates on Talosplus.

Usage

talosplus -h

Above Command will display help for the tool. Here are all options supported by talosplus

Resources

Create Your Ultimate Bug Bounty Automation Without Nerdy Bash Skills

Syntax / Annotations

There are only 3 different types of annotations

  1. Variables (Starts with @)
  2. Modules/directives (starts with #)
  3. Comments (starts with // and are above a command)

Talosplus uses comments to represent a command and this comment is linked/embedded with command at runtime these comments are printed instead of commands for simplicity.

Details about using these annotations can be found here

Disclaimer

  1. Taloplus is just a parser tool and is not aware of bash syntax at least not in this major release

  2. Each Command is sandboxed if you are using bash variables etc it won't work .It has to be variables

  3. Loops & Conditional statements Will Work But they can only be in a single line or newline should be escaped using \. or must be enclosed within #block{} module to write it without any restrictions

Support

If you like talosplus and want to see it improve furthur or want me to create intresting projects , You can buy me a coffee

ko-fi

Acknowledgment

Some Features are inspired by @honoki/bbrf-client

talosplus's People

Contributors

tarunkoyalwar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

talosplus's Issues

Support for BBoltDB (Embedded database)

Why ??

Talosplus only supports MongoDB which comes with obvious challenges

  1. Max Document size of 16MB.
  2. Extra dependency and Management.
  3. Not suitable for volatile use.

Prefered Solution

Adding an embedded database like BBoltDB is good choice

  • Provider Interface for implementing New databases
  • Adding Support for BBoltdb
  • Code refactoring
  • Unit Tests & Database Integration Tests

Partial support for using scripts as Cron Jobs

Statement

currently any automation framework reconftw etc does not have feature to run only when data is changed

If a script is run twice skip commands that will produce the same result i.e have same input . and if input is different only run the changed data

Ex: If New subdomains are found Only run new subdomains instead of running commands for all subdomains

Solution

This Might be possible by Improving the scheduling algorithm

New Module to support Installation of commands if required

Description / Why ??

A built in generic module which supports package/cmd installation from different sources and does that parllely is required especially when running automation in VPS.

This module should only be run when command is not found or not available

Proposed Solution .

  • Choosing Synatx #require(cmd,source_cmd)
    Example :

      // For single Step installation
     #require(talosplus,go install github.com/tarunKoyalwar/talosplus@latest)
    
    // Multi Step Installation Ex : https://github.com/initstring/cloud_enum
      #require(java,{
       cmd1
       cmd2
       cmd3
    })
  • Completion of #1

  • First commit , performance review

  • Unit Tests

  • Sudo Module

Block / Serial Execution of Commands

Currently, Talosplus does not support multiline functions, loops , if statements of bash

Adding a new directive ( #serial / #block ) which executes code block should fix multiline problem add add support to above.

Ex:

// Generate 1 to 10 sequence
#block{
for i in {1..10};
do;
echo $i;
done    #as:@sequence
}

Extracting variables using regex

currently, command is split in space and if a word contains @ it is considered a variable

instead using regex to extract variables will further increase robustness and fewer false positives

printf  "@nmap\n" // This will cause errors 

Code Refractoring & removing sub commands

Why ??

So many Flags & subcommands are present in Talosplus which makes it complex and inefficient.

Proposed Solution

  • Remove all subcommands in favor of new command tpac i.e Talosplus Automation Client.
  • Ditch #cobra for #goflags for Talosplus
  • Code refractoring
  • Implement tpac using #cobra

If support

Adding a directive similar to if statement would further improve script quality

Directive Name : #if
Syntax:

#if:@somevar

//@somevar can be true/false

Ex:

// Only execute if true

//Check For Subdomain Takeover If in Scope
subjack -w @allsubs{file} -t 100 -timeout 30 -o @outfile -ssl #if:@runsubtakeover

Compilation failed due to unmet dependencies

Compilation failed due to unmet dependencies

libx11-dev is not preinstalled in debian/ubuntu systems

ubuntu@ip ~ > go install github.com/tarunKoyalwar/talosplus/cmd/talosplus@latest
# golang.design/x/clipboard
clipboard_linux.c:15:10: fatal error: X11/Xlib.h: No such file or directory
   15 | #include <X11/Xlib.h>
      |          ^~~~~~~~~~~~
compilation terminated.
ubuntu@ip ~ [2]>

Solution:

add/install sudo apt install libx11-dev as requirements before compiling.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.