Skip to content

Ultimate Tasks Automation Framework for Hackers, DevSecOps, Pentesters, and Bug-bounty hunters!

License

Notifications You must be signed in to change notification settings

RikunjSindhwad/Task-Ninja

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

56 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Task-Ninja

The ultimate tasks automation framework for DevSecOps, Hackers, Bugbounty Hunters!

Features β€’ Acknowledgments β€’ Samples β€’ Installation β€’ Getting Started β€’ Join Telegram β€’ Workflows


                                                                            
                                                              .:--                        
                                                        :=*#%@@@@#                        
                                    :::::.            =%@@#*++===.                        
                               .=*%@@@@@@@@#+:        :%@@*:                              
                             :*@@@@@@@@@@@@@@@*.        =%@@+                             
                            *@@@@@@@@@@@@@@@@@@%:     .=%@@#:                             
                           #@@@@@@@@@@@@#+=+@@@@%  :=*@@%*++#%%%#*+=:.                    
                          =@@@@@@@@@#+-    =@@@@@%@%#+-:  +%@@%++#%@@#:                   
                          =++**++=:  :--   *@@@@@%#*+====+*#@@@:   :.                     
                          . -      :==-   .%@@@@@=-=*##%%%%#*=.                           
                   :=+=     .=*#*+=-:::::=%@@@@@%                                         
                 -%@@%-     *@@@@@@@@@@@@@@@@@@*..:::-----====---:..                      
                *@@@@@=      =%@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@%#*+-.                
              .#@@@%+:        .#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*:             
              #@@@+        -+#%@@@@@@@@@@@@@@@@@@@@@@@@@@@%%#*******#%%@@@@@@+            
             #@@@@=   :-+#@@@@@@@@@@@@@@@@@@@@@@@@@@@#+=:.             *@@@@%-            
            +@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*-                    :--.              
            *@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@%=                                         
             =*#%%@@@@@@@@%+@@@@@@@@@@@@@@@@@@#                                           
                           .@@@@@@@@@@@@@@@@@%.                                           
                            *@@@@@@@@@@@@@@@@%                                            
                             +@@@@@@@@@@@@@@@@.                                           
                              .+%@@@@@@@@@@@@@#                                           
                                 :=*%@@@@@@@@@@*                                          
                                     .-=*#%@@@@@#.                                        
                                           .:-+*#%-                                       
                                                  ..                                      
                                                                   
 ____,   ____, ____,  __, ,    _,  _, __,   _,  _,  _,    ____,
(-|     (-/_| (-(__  ( |_/    (-|\ | (-|   (-|\ |  (-|   (-/_| 
 _|,    _/  |, ____)  _| \,    _| \|, _|_,  _| \|, __|,  _/  |,
(      (      (      (        (      (     (      (     (      
         Made For πŸ₯·  by Robensive                               Version=2.1.2
================================================================================

TaskNinja is a versatile and extensible task automation framework designed to simplify and streamline your workflow. Whether you're managing complex tasks, automating routine operations, or orchestrating a series of commands, TaskNinja is here to make your life easier. Task ninja takes input from basic yaml file and executes within docker containers. It has ability to take output from that container and pass it to the next container by just specifying basic yaml input. The purpose to make this tool was to automate some tasks for my personal use.

Feel free to reachout to me for a private workflows that I have built or for custom workflow for your company needs. This can save your $$$$

Features

  • πŸ€– Task Automation: Define and automate tasks, creating a seamless workflow for your projects.

  • πŸš€ Parallel Execution: Execute tasks in parallel to save time and improve efficiency.

  • πŸ”— Dependency Management: Specify task dependencies to ensure that tasks are executed in the correct order.

  • πŸ”§ Customization: Tailor TaskNinja to your specific needs by defining custom tasks and workflows.

  • πŸ“œ Logging: TaskNinja provides comprehensive logging capabilities to help you monitor and troubleshoot your automation processes.

  • 🧩 Extensibility: Easily add new functionalities and plugins to TaskNinja for enhanced capabilities.

YouTube

Task-NinjaWC

Workflow Structure

image

Placeholders

Placeholder Description
{{hive}} Docker hive that is used for the task input/output and logs handlling
{{hivein}} Task hive input folder (ex. /hive/in)
{{hvieout}} Task hive output folder (ex. /hive/out)
{{hosthive}} Host system path to the task hive
{{hosthiveout}} Host system path to the task hive output folder
{{hosthivein}} Host system path to the task hive input folder
{{dynamicFile}} Replace filelines from dynamicFile task-config specified file
{{dynamicRange}} Replace number from specified range in dynamicRange
{{{Taskname:file}}} Replace specified task default output file (ex. /hive/in/DiffTask/out/output.txt) > Mounts must have taskname specified for this to work > Applicable in cmds and dynamicFile sections
{{{Taskname:file}}} Replace specified task hive (ex. /hive/in/DiffTask/) > Mounts must have taskname specified for this to work > Application in cmds and dynamicFile sections

Components (Config)

Component Type Description
name String Workflow Name
author String Workflow Author name
usage String When input is not provided it will print this line as usage of the workflow
shell String Default shell to be used (/bin/bash,/bin/sh)
defaultimage String Default image to be used when no image is specified (default: alpine)
hive String Folder to be used for saving results (default: hive)
logs bool Enable logging

Components (tasks)

Component Type Description
name String Name for the task (must be unique for all)
image String Docker image to be used (optional if config has defaultimage)
dockerhive [optional] String Configured hive folder inside docker (default: /hive)
cmds []String List of commands to be executed within docker
silent Bool When true it will show stdout and stderr in the response
parallel [optional] Bool When true it will put task in the background and move towards next task (default: false)
required [optional] []String List of task name (must be case sensitive) that must be completed before executing current
timeout [optional] String Timeout for the task in seconds (default 1Day)
stoponerr [optional] Bool Stop workflow execution when any kind of error occurred during task execution
type [optional] String Type of workflow (dynamic || static) (default: static) > when dynamicFile or dynamicRange specified it will be automatically dynamic
dynamicFile [optional] String File to be used for execution of task line by line > It will take each line of the file and perform the task execution > {{dynamicFile}} plaseholder has to be used to replace with filelines
dynamicRange [optional] String Range to be used for executing task with specific number. (ex. 1,10) > {{dynamicRange}} placeholder has to be used to replace with number specified in the range
threads [optional] Int Number of concurrent container to be used for the dynamic tasks
mounts [optional] []String List of task names to mount as input > {{{taskname:file}}} can be used to replace with the mounted folder default output filepath. > {{{taskname:folder}}} can be used to replace with mounted folder
inputs [optional] []String List of input files for the task. > We can supply file/folder or h

Acknowledgments

TaskNinja is inspired by the amazing work of the trickest.io platform and the Raydar tool. I extend my gratitude to their contributions to the task automation and cybersecurity community.

Samples

πŸš€ Sample - Dynamic & parallel Execution
root@robensive> Task-Ninja -nb -w passiveSubdomains.yaml -v tld_list=test/tld.txt
================================================================================
[Workflow-Credit] Tasked Workflow 'Discovery Passive Subdomains' Workflow-Author=Rikunj Sindhwad
================================================================================
[START] [2023-12-04T14:13:31-05:00] Task Started TaskName=Subdomain Center Subdomains
[START] [2023-12-04T14:13:31-05:00] Task Started TaskName=JIDC Subdomains
[SUCCESS] [2023-12-04T14:13:35-05:00] Task Finished TaskName=JIDC Subdomains
[SUCCESS] [2023-12-04T14:13:36-05:00] Task Finished TaskName=Subdomain Center Subdomains
[START] [2023-12-04T14:13:37-05:00] Task Started TaskName=AssetFinder
[SUCCESS] [2023-12-04T14:13:44-05:00] Task Finished TaskName=AssetFinder
[START] [2023-12-04T14:13:45-05:00] Task Started TaskName=Findomain
[SUCCESS] [2023-12-04T14:13:46-05:00] Task Finished TaskName=Findomain
[START] [2023-12-04T14:13:47-05:00] Task Started TaskName=Subfinder
[START] [2023-12-04T14:13:47-05:00] Task Started TaskName=VITA Subdomains
[SUCCESS] [2023-12-04T14:14:09-05:00] Task Finished TaskName=Subfinder
[SUCCESS] [2023-12-04T14:14:21-05:00] Task Finished TaskName=VITA Subdomains
[START] [2023-12-04T14:14:22-05:00] Task Started TaskName=Merge All
[SUCCESS] [2023-12-04T14:14:22-05:00] Task Finished TaskName=Merge All
[START] [2023-12-04T14:14:23-05:00] Task Started TaskName=Result
Check-Result: /home/kali/Workflows/hive/Result/out/result.txt
IdentifiedLines:3
[SUCCESS] [2023-12-04T14:14:24-05:00] Task Finished TaskName=Result
================================================================================
[Workflow-Complete] Workflow 'Discovery Passive Subdomains' Execution Complete Time Taken=53.77675225s
================================================================================
πŸ€– Sample - Static Execution

Workflow URL: apk_url.yaml

-detailed flag gives more output

root@robensive> Task-Ninja -nb -w apk_Urls.yml -v apkpath=test/allsafe.apk -detailed
================================================================================
[Workflow-Credit] Tasked Workflow 'APK URLs Checker' Workflow-Author=Rikunj Sindhwad
================================================================================
[START] [2023-12-04T14:24:08-05:00] Task Started TaskName=Decompile APK
[Task-Info] Task is Static TaskName=Decompile APK
[Static-Task: Decompile APK] [2023-12-04T14:24:08-05:00] Executing Task
[SUCCESS] [2023-12-04T14:24:26-05:00] Task Finished TaskName=Decompile APK
[START] [2023-12-04T14:24:27-05:00] Task Started TaskName=Extract URLS
[Task-Info] Task is Static TaskName=Extract URLS
[Static-Task: Extract URLS] [2023-12-04T14:24:27-05:00] Executing Task
[SUCCESS] [2023-12-04T14:24:32-05:00] Task Finished TaskName=Extract URLS
[Task-Info] There are required Tasks Extract URLS TaskName=Remove Duplicates
[START] [2023-12-04T14:24:33-05:00] Task Started TaskName=Remove Duplicates
[Task-Info] Task is Static TaskName=Remove Duplicates
[Static-Task: Remove Duplicates] [2023-12-04T14:24:33-05:00] Executing Task
[SUCCESS] [2023-12-04T14:24:35-05:00] Task Finished TaskName=Remove Duplicates
[Task-Info] There are required Tasks Remove Duplicates TaskName=Save Results
[START] [2023-12-04T14:24:36-05:00] Task Started TaskName=Save Results
[Task-Info] Task is Static TaskName=Save Results
[Static-Task: Save Results] [2023-12-04T14:24:36-05:00] Executing Task
Check-Result: /home/kali/Workflows/hive/Save-Results/out/result.txt
IdentifiedURLS:55
[SUCCESS] [2023-12-04T14:24:37-05:00] Task Finished TaskName=Save Results
================================================================================
[Workflow-Complete] Workflow 'APK URLs Checker' Execution Complete Time Taken=30.324584125s
================================================================================

Installation

[note] Task-Ninja Requires Docker to be installed and docker service to be running please follow this to install.

TaskNinja is easy to install using the following commands:

  • Go Install
    GO111MODULE=on
    go install github.com/RikunjSindhwad/Task-Ninja/v2@latest
  • Build
    # Clone the repository
    git clone https://github.com/RikunjSindhwad/Task-Ninja.git
    
    # Navigate to the TaskNinja directory
    cd Task-Ninja
    
    # Build TaskNinja
    go build

Getting Started

To get started with TaskNinja, please refer to the Getting Started Guide in Wiki. It provides step-by-step instructions on installation and usage. You can find all workflows in Task-Ninja-Workflows

Contributing

I welcome contributions from the community! If you'd like to contribute to TaskNinja, please follow Contribution Guidelines.

License

TaskNinja is open-source and released under the GPL License 3.0.

Contact

If you have any questions, feedback, or need assistance, feel free to me on linkedin or telegram

Join Robensive Community

Robensive community helps you to get regular updates on news/jobs/tools/courses and knowledge sharing Join over telegram