Welcome to PyIntelOwl’s documentation!
Robust Python SDK and Command Line Client for interacting with IntelOwl API.
Installation
$ pip install pyintelowl
Usage as CLI
On successful installation, The pyintelowl
entryscript should be directly invokable. For example,
$ 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...
get-playbook-config Get current state of `playbook_config.json` from...
jobs Manage Jobs
tags Manage tags
Configuration:
You can use set
to set the config variables and get
to view them.
$ pyintelowl config set -k 4bf03f20add626e7138f4023e4cf52b8 -u "http://localhost:80"
$ pyintelowl config get
Hint
The CLI would is well-documented which will help you navigate various commands easily.
Invoke pyintelowl -h
or pyintelowl <command> -h
to get help.
Usage as SDK/library
1 from pyintelowl import IntelOwl, IntelOwlClientException
2 obj = IntelOwl(
3 "4bf03f20add626e7138f4023e4cf52b8",
4 "http://localhost:80",
5 None,
6 )
7 """
8 obj = IntelOwl(
9 "<your_api_key>",
10 "<your_intelowl_instance_url>",
11 "optional<path_to_pem_file>"
12 "optional<proxies>"
13 )
14 """
15
16 try:
17 ans = obj.get_analyzer_configs()
18 print(ans)
19 except IntelOwlClientException as e:
20 print("Oh no! Error: ", e)
Tip
We very much recommend going through the pyintelowl.pyintelowl.IntelOwl
docs.
Index
Tests
Configuration
Some tests require file samples, which can be found in the encrypted folder tests/test_files.zip
(password: “infected”).
Unzip the archive in tests/test_files
folder before running the tests.
Please remember that these are dangerous malware! They come encrypted and locked for a reason!
Do NOT run them unless you are absolutely sure of what you are doing!
They are to be used only for launching specific tests that require them (__send_analysis_request
)
With the following constants in
__init__.py
, you can customize your tests:MOCKING_CONNECTIONS: Mock connections to external API to test functions without a real connection or a valid API Key.
If you prefer to use custom inputs for tests, you can change the following constants:
TEST_JOB_ID
TEST_HASH
TEST_URL
TEST_IP
TEST_DOMAIN
TEST_GENERIC
TEST_FILE
TEST_FILE_HASH
Launch Tests
The test requirements are specified in the
test-requirements.txt
file. Install them using,
$ pip3 install -r test-requirements.txt
Launch the tests using
tox
:
$ tox