From 883dd0f6e241749563bf4841d5d2a78c7ba139a9 Mon Sep 17 00:00:00 2001 From: aryan Date: Fri, 5 Jul 2024 14:45:26 +0530 Subject: [PATCH] removed submodules temporarily and added new documentation Signed-off-by: aryan --- .gitmodules | 4 - docs/GoIntelOwl/Banner.png | Bin 0 -> 36917 bytes docs/GoIntelOwl/index.md | 165 ++++++++++++++++++++++++++++++ docs/GreedyBear/Api-docs.md | 0 docs/GreedyBear/Contribute.md | 173 ++++++++++++++++++++++++++++++++ docs/GreedyBear/Installation.md | 122 ++++++++++++++++++++++ docs/GreedyBear/Introduction.md | 17 ++++ docs/GreedyBear/Usage.md | 94 +++++++++++++++++ docs/GreedyBear/index.md | 1 - docs/go-intelowl/index.md | 1 - docs/index.md | 12 +-- docs/pyintelowl/index.md | 92 +++++++++++++++++ mkdocs.yml | 22 ++-- 13 files changed, 682 insertions(+), 21 deletions(-) create mode 100644 docs/GoIntelOwl/Banner.png create mode 100644 docs/GoIntelOwl/index.md create mode 100644 docs/GreedyBear/Api-docs.md create mode 100644 docs/GreedyBear/Contribute.md create mode 100644 docs/GreedyBear/Installation.md create mode 100644 docs/GreedyBear/Introduction.md create mode 100644 docs/GreedyBear/Usage.md delete mode 100644 docs/GreedyBear/index.md delete mode 100644 docs/go-intelowl/index.md diff --git a/.gitmodules b/.gitmodules index a7ffc93..e69de29 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +0,0 @@ -[submodule "docs/IntelOwl"] - path = docs/IntelOwl - url = https://github.com/aryan-bhokare/IntelOwl.git - branch = mkdocs diff --git a/docs/GoIntelOwl/Banner.png b/docs/GoIntelOwl/Banner.png new file mode 100644 index 0000000000000000000000000000000000000000..ca406d3686a535abedfac697dbbe059d15112067 GIT binary patch literal 36917 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%0AruexZi5u& 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 VQmy3EA>#l5002ovPDHLkV1l?Enk4`L literal 0 HcmV?d00001 diff --git a/docs/GoIntelOwl/index.md b/docs/GoIntelOwl/index.md new file mode 100644 index 0000000..cb6db76 --- /dev/null +++ b/docs/GoIntelOwl/index.md @@ -0,0 +1,165 @@ +:fontawesome-brands-github: [Go-IntelOwl Repository](https://github.com/intelowlproject/go-intelowl) + +# go-intelowl + +[![GitHub issues](https://img.shields.io/github/issues/intelowlproject/go-intelowl?style=plastic)](https://github.com/intelowlproject/go-intelowl/issues) +[![GitHub license](https://img.shields.io/github/license/intelowlproject/go-intelowl?style=plastic)](https://github.com/intelowlproject/go-intelowl/blob/main/LICENSE) + +![go-banner](./Banner.png) +go-intelowl is a client library/SDK that allows developers to easily automate and integrate [IntelOwl](https://github.com/intelowlproject/IntelOwl) with their own set of tools! + + + +# Table of Contents + +- [go-intelowl](#go-intelowl) +- [Getting Started](#getting-started) + - [Pre requisites](#pre-requisites) + - [Installation](#installation) + - [Usage](#usage) + - [Examples](#examples) +- [Contribute](#contribute) +- [License](#liscence) +- [Links](#links) +- [FAQ](#faq) + - [Generate API key](#generate-api-key) + - [v4.0 and above](#v40-and-above) + - [v4.0 below](#v40-below) + +# Getting Started + +## Pre requisites + +- Go 1.17+ + +## Installation + +Use go get to retrieve the SDK to add it to your GOPATH workspace, or project's Go module dependencies. + +```bash +$ go get github.com/intelowlproject/go-intelowl +``` + +## Usage + +This library was built with ease of use in mind! Here are some quick examples to get you started. If you need more example you can go to the [examples directory](./examples/) + +To start using the go-intelowl library you first need to import it: + +``` +import "github.com/intelowlproject/go-intelowl/gointelowl" +``` + +Construct a new `IntelOwlClient`, then use the various services to easily access different parts of Intelowl's REST API. Here's an example of getting all jobs: + +```Go +clientOptions := gointelowl.IntelOwlClientOptions{ + Url: "your-cool-URL-goes-here", + Token: "your-super-secret-token-goes-here", + // This is optional + Certificate: "your-optional-certificate-goes-here", +} + +intelowl := gointelowl.NewIntelOwlClient( + &clientOptions, + nil +) + +ctx := context.Background() + +// returns *[]Jobs or an IntelOwlError! +jobs, err := intelowl.JobService.List(ctx) +``` + +For easy configuration and set up we opted for `options` structs. Where we can customize the client API or service endpoint to our liking! For more information go [here](). Here's a quick example! + +```Go +// ...Making the client and context! + +tagOptions = gointelowl.TagParams{ + Label: "NEW TAG", + Color: "#ffb703", +} + +createdTag, err := intelowl.TagService.Create(ctx, tagOptions) +if err != nil { + fmt.Println(err) +} else { + fmt.Println(createdTag) +} +``` + +## Examples + +The [examples](./examples/) directory contains a couple for clear examples, of which one is partially listed here as well: + +```Go +package main + +import ( + "fmt" + + "github.com/intelowlproject/go-intelowl/gointelowl" +) + +func main(){ + intelowlOptions := gointelowl.IntelOwlClientOptions{ + Url: "your-cool-url-goes-here", + Token: "your-super-secret-token-goes-here", + Certificate: "your-optional-certificate-goes-here", + } + + client := gointelowl.NewIntelOwlClient( + &intelowlOptions, + nil, + ) + + ctx := context.Background() + + // Get User details! + user, err := client.UserService.Access(ctx) + if err != nil { + fmt.Println("err") + fmt.Println(err) + } else { + fmt.Println("USER Details") + fmt.Println(*user) + } +} + +``` + +For complete usage of go-intelowl, see the full [package docs](https://pkg.go.dev/github.com/intelowlproject/go-intelowl). + +# Contribute + +If you want to follow the updates, discuss, contribute, or just chat then please join our [slack](https://honeynetpublic.slack.com/archives/C01KVGMAKL6) channel we'd love to hear your feedback! + +# License + +Licensed under the GNU AFFERO GENERAL PUBLIC LICENSE. + +# Links + +- [Intelowl](https://github.com/intelowlproject/IntelOwl) +- [Documentation](https://intelowl.readthedocs.io/en/latest/) +- [API documentation](https://intelowl.readthedocs.io/en/latest/Redoc.html) +- [Examples](./examples/) + +# FAQ + +## Generate API key + +You need a valid API key to interact with the IntelOwl server. + +### v4.0 and above + +You can get an API by doing the following: + +1. Log / Signin into intelowl +2. At the upper right click on your profile from the drop down select `API Access/ Sessions` +3. Then generate an API key or see it! + +### v4.0 below + +Keys should be created from the admin interface of [IntelOwl](https://github.com/intelowlproject/intelowl): you have to go in the _Durin_ section (click on `Auth tokens`) and generate a key there. diff --git a/docs/GreedyBear/Api-docs.md b/docs/GreedyBear/Api-docs.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/GreedyBear/Contribute.md b/docs/GreedyBear/Contribute.md new file mode 100644 index 0000000..97477f7 --- /dev/null +++ b/docs/GreedyBear/Contribute.md @@ -0,0 +1,173 @@ +# Contribute + +## General Guidance + +Please refer to [IntelOwl Documentation](https://intelowl.readthedocs.io/en/latest/) for everything missing here. + +## Rules + +GreedyBear welcomes contributors from anywhere and from any kind of education or skill level. We strive to create a community of developers that is welcoming, friendly and right. + +For this reason it is important to follow some easy rules based on a simple but important concept: **Respect**. + +- Before starting to work on an issue, you need to get the approval of one of the maintainers. Therefore please ask to be assigned to an issue. If you do not that but you still raise a PR for that issue, your PR can be rejected. This is a form of respect for both the maintainers and the other contributors who could have already started to work on the same problem. + +- When you ask to be assigned to an issue, it means that you are ready to work on it. When you get assigned, take the lock and then you disappear, you are not respecting the maintainers and the other contributors who could be able to work on that. So, after having been assigned, you have a week of time to deliver your first _draft_ PR. After that time has passed without any notice, you will be unassigned. + +- Before asking questions regarding how the project works, please read _through all the documentation_ and [install](https://greedybear.readthedocs.io/en/latest/Installation.html) the project on your own local machine to try it and understand how it basically works. This is a form of respect to the maintainers. + +- Once you started working on an issue and you have some work to share and discuss with us, please raise a draft PR early with incomplete changes. This way you can continue working on the same and we can track your progress and actively review and help. This is a form of respect to you and to the maintainers. + +- When creating a PR, please read through the sections that you will find in the PR template and compile it appropriately. If you do not, your PR can be rejected. This is a form of respect to the maintainers. + +## Code Style + +Keeping to a consistent code style throughout the project makes it easier to contribute and collaborate. We make use of [`psf/black`](https://github.com/psf/black) and [isort](https://pycqa.github.io/isort/) for code formatting and [`flake8`](https://flake8.pycqa.org) for style guides. + +## How to start (Setup project and development instance) + +To start with the development setup, make sure you go through all the steps in [Installation Guide](https://greedybear.readthedocs.io/en/latest/Installation.html) and properly installed it. + +Please create a new branch based on the **develop** branch that contains the most recent changes. This is mandatory. + +`git checkout -b myfeature develop` + +Then we strongly suggest to configure [pre-commit](https://github.com/pre-commit/pre-commit) to force linters on every commits you perform: + +```bash +# create virtualenv to host pre-commit installation +python3 -m venv venv +source venv/bin/activate +# from the project base directory +pip install pre-commit +pre-commit install -c .github/.pre-commit-config.yaml +``` + +Remember that whenever you make changes, you need to rebuild the docker image to see the reflected changes. + +#### NOTE about documentation: + +If you made any changes to an existing model/serializer/view, please run the following command to generate a new version of the API schema and docs: + +```bash +docker exec -it greedybear_uwsgi python manage.py spectacular --file docs/source/schema.yml && make html +``` + +### Frontend + +To start the frontend in "develop" mode, you can execute the startup npm script within the folder `frontend`: + +```bash +cd frontend/ +# Install +npm i +# Start +DANGEROUSLY_DISABLE_HOST_CHECK=true npm start +# See https://create-react-app.dev/docs/proxying-api-requests-in-development/#invalid-host-header-errors-after-configuring-proxy for why we use that flag in development mode +``` + +Most of the time you would need to test the changes you made together with the backend. In that case, you would need to run the backend locally too: + +```commandline +docker-compose up +``` + +#### Certego-UI + +The GreedyBear Frontend is tightly linked to the [`certego-ui`](https://github.com/certego/certego-ui) library. Most of the React components are imported from there. Because of this, it may happen that, during development, you would need to work on that library too. +To install the `certego-ui` library, please take a look to [npm link](https://docs.npmjs.com/cli/v8/commands/npm-link) and remember to start certego-ui without installing peer dependencies (to avoid conflicts with GreedyBear dependencies): + +```bash +git clone https://github.com/certego/certego-ui.git +# change directory to the folder where you have the cloned the library +cd certego-ui/ +# install, without peer deps (to use packages of GreedyBear) +npm i --legacy-peer-deps +# create link to the project (this will globally install this package) +sudo npm link +# compile the library +npm start +``` + +Then, open another command line tab, create a link in the `frontend` to the `certego-ui` and re-install and re-start the frontend application (see previous section): + +```bash +cd frontend/ +npm link @certego/certego-ui +``` + +This trick will allow you to see reflected every changes you make in the `certego-ui` directly in the running `frontend` application. + +##### Example application + +The `certego-ui` application comes with an example project that showcases the components that you can re-use and import to other projects, like GreedyBear: + +```bash +# To have the Example application working correctly, be sure to have installed `certego-ui` *without* the `--legacy-peer-deps` option and having it started in another command line +cd certego-ui/ +npm i +npm start +# go to another tab +cd certego-ui/example/ +npm i +npm start +``` + +## Create a pull request + +### Remember!!! + +Please create pull requests only for the branch **develop**. That code will be pushed to master only on a new release. + +Also remember to pull the most recent changes available in the **develop** branch before submitting your PR. If your PR has merge conflicts caused by this behavior, it won't be accepted. + +### Tests + +#### Backend + +##### Install testing requirements + +You have to install `pre-commit` to have your code adjusted and fixed with the available linters: + +```commandline +pip install pre-commit +pre-commit install -c .github/.pre-commit-config.yaml +``` + +Once done that, you won't have to think about linters anymore. + +##### Run all tests + +```commandline +docker exec greedybear_uwsgi python3 manage.py test +``` + +#### Frontend + +All the frontend tests must be run from the folder `frontend`. +The tests can contain log messages, you can suppress then with the environment variable `SUPPRESS_JEST_LOG=True`. + +##### Run all tests + +``` +npm test +``` + +##### Run a specific component tests + +``` +npm test -- -t +// example +npm test tests/components/auth/Login.test.jsx +``` + +##### Run a specific test + +``` +npm test -- -t ' ' +// example +npm test -- -t "Login component User login" +``` + +if you get any errors, fix them. +Once you make sure that everything is working fine, please squash all of our commits into a single one and finally create a pull request. diff --git a/docs/GreedyBear/Installation.md b/docs/GreedyBear/Installation.md new file mode 100644 index 0000000..c489685 --- /dev/null +++ b/docs/GreedyBear/Installation.md @@ -0,0 +1,122 @@ +# Installation + +Start by cloning the project + +```bash +# clone the Greedybear project repository +git clone https://github.com/honeynet/GreedyBear +cd GreedyBear/ + +# construct environment files from templates +cp .env_template .env +cd docker/ +cp env_file_template env_file +cp env_file_postgres_template env_file_postgres +cd .. +cp frontend/public/env_template.js frontend/public/env.js +``` + +Now you can start by building the image using docker-compose and run the project. + +```bash +# build the image locally +docker-compose build + +# start the app +docker-compose up + +# now the app is running on http://localhost:80 + +# shut down the application +docker-compose down +``` + +_Note:_ To create a superuser run the following: + +```bash +docker exec -ti greedybear_uwsgi python3 manage.py createsuperuser +``` + +The app administrator can enable/disable the extraction of source IPs for specific honeypots from the Django Admin. +This is used for honeypots that are not specifically implemented to extract additional information (so not Log4Pot and Cowrie). + +Note that GreedyBear _needs_ a running instance of ElasticSearch of a TPoT to function. +If you don't have one, you can make the following changes to make GreeyBear spin up it's own ElasticSearch and Kibana instances. +(...Care! This option would require enough RAM to run the additional containers. Suggested is >=16GB): + +1. In `docker/env_file`, set the variable `ELASTIC_ENDPOINT` to `http://elasticsearch:9200`. +2. Add `:docker/elasticsearch.yml` to the last defined `COMPOSE_FILE` variable or uncomment the `# local development with elasticsearch container` block in `.env` file. + +### Environment configuration + +In the `env_file`, configure different variables as explained below. + +**Required** variable to set: + +- `DEFAULT_FROM_EMAIL`: email address used for automated correspondence from the site manager (example: `noreply@mydomain.com`) +- `DEFAULT_EMAIL`: email address used for correspondence with users (example: `info@mydomain.com`) +- `EMAIL_HOST`: the host to use for sending email with SMTP +- `EMAIL_HOST_USER`: username to use for the SMTP server defined in EMAIL_HOST +- `EMAIL_HOST_PASSWORD`: password to use for the SMTP server defined in EMAIL_HOST. This setting is used in conjunction with EMAIL_HOST_USER when authenticating to the SMTP server. +- `EMAIL_PORT`: port to use for the SMTP server defined in EMAIL_HOST. +- `EMAIL_USE_TLS`: whether to use an explicit TLS (secure) connection when talking to the SMTP server, generally used on port 587. +- `EMAIL_USE_SSL`: whether to use an implicit TLS (secure) connection when talking to the SMTP server, generally used on port 465. + +**Optional configuration**: + +- `SLACK_TOKEN`: Slack token of your Slack application that will be used to send/receive notifications +- `DEFAULT_SLACK_CHANNEL`: ID of the Slack channel you want to post the message to + +#### Recaptcha configuration + +The Registration Page and the Login Page contain a Recaptcha form from Google. By default, that Recaptcha is not configured and is not shown. +If your intention is to publish GreedyBear as a Service you should configure different variables as explained below. + +In the `frontend/public/env.js` set the variable: + +- `RECAPTCHA_SITEKEY`: Recaptcha Key for your site + +In the `docker/env_file` set the variables: + +- `RECAPTCHA_SECRET_KEY_GB_LOCAL`: your recaptcha secret key internal deployment +- `RECAPTCHA_SECRET_KEY_GB_PUBLIC`: your recaptcha secret key for public deployment + +In that case, you would need to [re-build](/Installation.md#update-and-rebuild) the application to have the changes properly reflected. + +## Update and Re-build + +### Rebuilding the project / Creating custom docker build + +If you make some code changes and you like to rebuild the project, follow these steps: + +1. Be sure that your `.env` file has a `COMPOSE_FILE` variable which mounts the `docker/local.override.yml` compose file. +2. `docker-compose build` to build the new docker image. +3. Start the containers with `docker-compose up`. + +### Update to the most recent version + +To update the project with the most recent available code you have to follow these steps: + +```bash +$ cd # go into the project directory +$ git pull # pull new repository changes +$ docker pull intelowlproject/greedybear:prod # pull new docker images +$ docker-compose down # stop and destroy the currently running GreedyBear containers +$ docker-compose up # restart the GreedyBear application +``` + +## Installer for TPot Instance + +The file 'installer_on_tpot.sh' allows the automatic installation of Greedybear on an existing TPot instance. +You can choose the type of Greedybear you want to install (http, https or local). +The installer will either clone Greedybear to '/opt/GreedyBear' or if Greedybear exists on your system you need to input the absolute path to the existing Greedybear folder. +It will prompt you for the necessary information/secrets needed. + +Example: `sudo ./installer.sh --type=http --folder=/opt/GreedyBear` + +
+

Warning

+This installer is not officialy supported neither by Greedybear nor by TPOT maintainers. +It must be considered as a POC to have GB and TPOT installed in the same place. +Greedybear is supported to be executed only in a separate instance and to connect externally with the TPOTs. +
diff --git a/docs/GreedyBear/Introduction.md b/docs/GreedyBear/Introduction.md new file mode 100644 index 0000000..962bb1a --- /dev/null +++ b/docs/GreedyBear/Introduction.md @@ -0,0 +1,17 @@ +:fontawesome-brands-github: [GreedyBear Repository](https://github.com/intelowlproject/GreedyBear) + +# Introduction + +The project goal is to extract data of the attacks detected by a [TPOT](https://github.com/telekom-security/tpotce) or a cluster of them and to generate some feeds that can be used to prevent and detect attacks. + +[Official announcement here](https://www.honeynet.org/2021/12/27/new-project-available-greedybear/). + +## Public feeds + +There are public feeds provided by The Honeynet Project in this site: greedybear.honeynet.org. [Example](https://greedybear.honeynet.org/api/feeds/log4j/all/recent.txt) + +To check all the available feeds, Please refer to our [usage guide](https://greedybear.readthedocs.io/en/latest/Usage.html) + +Please do not perform too many requests to extract feeds or you will be banned. + +If you want to be updated regularly, please download the feeds only once every 10 minutes (this is the time between each internal update). diff --git a/docs/GreedyBear/Usage.md b/docs/GreedyBear/Usage.md new file mode 100644 index 0000000..cd5a53b --- /dev/null +++ b/docs/GreedyBear/Usage.md @@ -0,0 +1,94 @@ +# Usage + +## User management + +### Registration + +Since Greedybear v1.1.0 we added a Registration Page that can be used to manage Registration requests when providing GreedyBear as a Service. + +After an user registration, an email is sent to the user to verify their email address. If necessary, there are buttons on the login page to resend the verification email and to reset the password. + +Once the user has verified their email, they would be manually vetted before being allowed to use the GreedyBear platform. The registration requests would be handled in the Django Admin page by admins. +If you have GreedyBear deployed on an AWS instance you can use the SES service. + +In a development environment the emails that would be sent are written to the standard output. + +### Recaptcha configuration + +The Registration Page contains a Recaptcha form from Google. By default, that Recaptcha is not configured and is not shown. +If your intention is to publish GreedyBear as a Service you should [configure the Recaptcha](/Installation.md#recaptcha-configuration). + +### Amazon SES + +If you like, you could use Amazon SES for sending automated emails. + +First, you need to configure the environment variable `AWS_SES` to `True` to enable it. +Then you have to add some credentials for AWS: if you have GreedyBear deployed on the AWS infrastructure, you can use IAM credentials: +to allow that just set `AWS_IAM_ACCESS` to `True`. If that is not the case, you have to set both `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`. + +Additionally, if you are not using the default AWS region of us-east-1, you need to specify your `AWS_REGION`. +You can customize the AWS Region location of you services by changing the environment variable `AWS_REGION`. Default is `eu-central-1`. + +## Feeds + +GreedyBear is created with the aim to collect the information from the TPOTs and generate some actionable feeds, so that they can be easily accessible and act as valuable information to prevent and detect attacks. + +The feeds are reachable through the following URL: + +``` +https:///api/feeds///. +``` + +The available feed_type are: + +- `log4j`: attacks detected from the Log4pot. +- `cowrie`: attacks detected from the Cowrie Honeypot. +- `all`: get all types at once +- The following honeypot feeds exist (for extraction of (only) the source IPs): + - `heralding` + - `ciscoasa` + - `honeytrap` + - `dionaea` + - `conpot` + - `adbhoney` + - `tanner` + - `citrixhoneypot` + - `mailoney` + - `ipphoney` + - `ddospot` + - `elasticpot` + - `dicompot` + - `redishoneypot` + - `sentrypeer` + - `glutton` + +The available attack_type are: + +- `scanner`: IP addresses captured by the honeypots while performing attacks +- `payload_request`: IP addresses and domains extracted from payloads that would have been executed after a speficic attack would have been successful +- `all`: get all types at once + +The available age are: + +- `recent`: most recent IOCs seen in the last 3 days +- `persistent`: these IOCs are the ones that were seen regularly by the honeypots. This feeds will start empty once no prior data was collected and will become bigger over time. + +The available formats are: + +- `txt`: plain text (just one line for each IOC) +- `csv`: CSV-like file (just one line for each IOC) +- `json`: JSON file with additional information regarding the IOCs + +Check the [Redoc specification](https://greedybear.readthedocs.io/en/latest/Redoc.html) or the to get all the details about how to use the available APIs. + +## Enrichment + +GreedyBear provides an easy-to-query API to get the information available in GB regarding the queried observable (domain or IP address). + +``` +https:///api/enrichment?query= +``` + +This "Enrichment" API is protected through authentication. Please reach out [Matteo Lodi](https://twitter.com/matte_lodi) or another member of [The Honeynet Project](https://twitter.com/ProjectHoneynet) if you are interested in gain access to this API. + +If you would like to leverage this API without the need of writing even a line of code and together with a lot of other awesome tools, consider using [IntelOwl](https://github.com/intelowlproject/IntelOwl). diff --git a/docs/GreedyBear/index.md b/docs/GreedyBear/index.md deleted file mode 100644 index ce01362..0000000 --- a/docs/GreedyBear/index.md +++ /dev/null @@ -1 +0,0 @@ -hello diff --git a/docs/go-intelowl/index.md b/docs/go-intelowl/index.md deleted file mode 100644 index 66f856c..0000000 --- a/docs/go-intelowl/index.md +++ /dev/null @@ -1 +0,0 @@ -aryan diff --git a/docs/index.md b/docs/index.md index 4d68359..259565b 100644 --- a/docs/index.md +++ b/docs/index.md @@ -17,22 +17,22 @@ Intel Owl is an Open Source Intelligence, or OSINT solution, to get Threat Intel
- :material-rocket-launch-outline:{ .lg .middle } **Introduction** - [:octicons-arrow-right-24:{ .middle } More](IntelOwl/docs/introduction.md) + [:octicons-arrow-right-24:{ .middle } More](IntelOwl/introduction.md) - :fontawesome-regular-compass:{ .lg .middle } **Installation** - [:octicons-arrow-right-24:{ .middle } More](IntelOwl/docs/installation.md) + [:octicons-arrow-right-24:{ .middle } More](IntelOwl/installation.md) - :material-rocket-launch-outline:{ .lg .middle } **Contribute** - [:octicons-arrow-right-24:{ .middle } More](IntelOwl/docs/contribute.md) + [:octicons-arrow-right-24:{ .middle } More](IntelOwl/contribute.md) - :material-tune-vertical:{ .lg .middle } **Usage** - [:octicons-arrow-right-24:{ .middle } More](IntelOwl/docs/usage.md) + [:octicons-arrow-right-24:{ .middle } More](IntelOwl/usage.md) - :fontawesome-regular-compass:{ .lg .middle } **Advanced Usage** - [:octicons-arrow-right-24:{ .middle } More](IntelOwl/docs/advanced_usage.md) + [:octicons-arrow-right-24:{ .middle } More](IntelOwl/advanced_usage.md) - :material-tune-vertical:{ .lg .middle } **Advanced Configuration** - [:octicons-arrow-right-24:{ .middle } More](IntelOwl/docs/advanced_configuration.md) + [:octicons-arrow-right-24:{ .middle } More](IntelOwl/advanced_configuration.md)
diff --git a/docs/pyintelowl/index.md b/docs/pyintelowl/index.md index e69de29..8106955 100644 --- a/docs/pyintelowl/index.md +++ b/docs/pyintelowl/index.md @@ -0,0 +1,92 @@ +:fontawesome-brands-github: [PyIntelOwl Repository](https://github.com/intelowlproject/pyintelowl) + +# PyIntelOwl + +[![PyPI version](https://badge.fury.io/py/pyintelowl.svg)](https://badge.fury.io/py/pyintelowl) +[![PyPI Supported Python Versions](https://img.shields.io/pypi/pyversions/pyintelowl.svg)](https://pypi.python.org/pypi/pyintelowl/) + +[![Pull request automation](https://github.com/intelowlproject/pyintelowl/actions/workflows/pull_request_automation.yml/badge.svg)](https://github.com/intelowlproject/pyintelowl/actions/workflows/pull_request_automation.yml) +[![codecov](https://codecov.io/gh/intelowlproject/pyintelowl/branch/master/graph/badge.svg?token=JF62UMZ0U6)](https://codecov.io/gh/intelowlproject/pyintelowl) +[![CodeFactor](https://www.codefactor.io/repository/github/intelowlproject/pyintelowl/badge)](https://www.codefactor.io/repository/github/intelowlproject/pyintelowl) + +Robust Python **SDK** and **Command Line Client** for interacting with [IntelOwl](https://github.com/intelowlproject/IntelOwl)'s API. + +## Features + +- Easy one-time configuration with self documented help and hints along the way. +- Request new analysis for observables and files. + - Select which analyzers you want to run for every analysis you perform. + - Choose whether you want to HTTP poll for the analysis to finish or not. +- List all jobs or view one job in a prettified tabular form. +- List all tags or view one tag in a prettified tabular form. +- Tabular view of the `analyzer_config.json` and `connector_config.json` from IntelOwl with RegEx matching capabilities. + +## Demo + +[![pyintelowl asciicast](https://asciinema.org/a/z7L93lsIzOQ0Scve7hMl30mJJ.svg)](https://asciinema.org/a/z7L93lsIzOQ0Scve7hMl30mJJ?t=5) + +## Installation + +```bash +$ pip3 install pyintelowl +``` + +For development/testing, `pip3 install pyintelowl[dev]` + +## Quickstart + +### As Command Line Client + +On successful installation, The `pyintelowl` entryscript should be directly invokable. For example, + +```bash +$ pyintelowl +Usage: pyintelowl [OPTIONS] COMMAND [ARGS]... + +Options: + -d, --debug Set log level to DEBUG + --version Show the version and exit. + -h, --help Show this message and exit. + +Commands: + analyse Send new analysis request + analyzer-healthcheck Send healthcheck request for an analyzer... + config Set or view config variables + connector-healthcheck Send healthcheck request for a connector + get-analyzer-config Get current state of `analyzer_config.json` from... + get-connector-config Get current state of `connector_config.json` from... + jobs Manage Jobs + tags Manage tags +``` + +### As a library / SDK + +```python +from pyintelowl import IntelOwl +obj = IntelOwl("", "", "optional", "optional") +``` + +For more comprehensive documentation, please see https://pyintelowl.readthedocs.io/. + +## Changelog + +View [CHANGELOG.md](https://github.com/intelowlproject/pyintelowl/blob/master/.github/CHANGELOG.md). + +## FAQ + +#### Generate API key + +You need a valid API key to interact with the IntelOwl server. +Keys should be created from the admin interface of [IntelOwl](https://github.com/intelowlproject/intelowl): you have to go in the _Durin_ section (click on `Auth tokens`) and generate a key there. + +#### Incompatibility after version 3.0 + +We did a complete rewrite of the PyIntelOwl client and CLI both for the version `3.0.0`. We very much recommend you to update to the latest version to enjoy all new features. + +#### (old auth method) JWT Token Authentication + +> this auth was available in IntelOwl versions <1.8.0 and pyintelowl versions <2.0.0 + +From the admin interface of IntelOwl, you have to go in the _Outstanding tokens_ section and generate a token there. + +You can use it by pasting it into the file [api_token.txt](api_token.txt). diff --git a/mkdocs.yml b/mkdocs.yml index 1a62e52..30824ca 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -11,19 +11,23 @@ repo_url: https://github.com/intelowlproject/docs nav: - Home: "index.md" - IntelOwl: - - Introduction: "IntelOwl/docs/introduction.md" - - Installation: "IntelOwl/docs/installation.md" - - Advanced Configuration: "IntelOwl/docs/advanced_configuration.md" - - Usage: "IntelOwl/docs/usage.md" - - Advanced Usage: "IntelOwl/docs/advanced_usage.md" - - Contribute: "IntelOwl/docs/contribute.md" - - API docs: "IntelOwl/docs/api_docs.md" + - Introduction: "IntelOwl/introduction.md" + - Installation: "IntelOwl/installation.md" + - Advanced Configuration: "IntelOwl/advanced_configuration.md" + - Usage: "IntelOwl/usage.md" + - Advanced Usage: "IntelOwl/advanced_usage.md" + - Contribute: "IntelOwl/contribute.md" + - API docs: "IntelOwl/api_docs.md" - GreedyBear: - - index: "GreedyBear/index.md" + - Introduction: "GreedyBear/Introduction.md" + - Installation: "GreedyBear/Installation.md" + - Usage.md: "GreedyBear/Usage.md" + - Contribute: "GreedyBear/Contribute.md" + - API docs: "GreedyBear/Api-docs.md" - PyIntelOwl: - index: "pyintelowl/index.md" - GoIntelOwl: - - index: "go-intelowl/index.md" + - index: "GoIntelOwl/index.md" plugins: - search: separator: '[\s\-,:!=\[\]()"`/]+|\.(?!\d)|&[lg]t;|(?!\b)(?=[A-Z][a-z])'