torbot 4.0.0__tar.gz → 4.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- torbot-4.3.0/.env +1 -0
- torbot-4.3.0/.flake8 +3 -0
- torbot-4.3.0/.gitattributes +21 -0
- torbot-4.3.0/.github/FUNDING.yml +12 -0
- torbot-4.3.0/.github/ISSUE_TEMPLATE/bug_report.md +35 -0
- torbot-4.3.0/.github/ISSUE_TEMPLATE/feature_request.md +17 -0
- torbot-4.3.0/.github/pull_request_template.md +12 -0
- torbot-4.3.0/.github/workflows/flake8.yml +26 -0
- torbot-4.3.0/.github/workflows/pytest.yml +34 -0
- torbot-4.3.0/.gitignore +38 -0
- torbot-4.3.0/CITATION.cff +40 -0
- torbot-4.3.0/Dockerfile +22 -0
- torbot-4.3.0/PKG-INFO +258 -0
- torbot-4.3.0/README.md +211 -0
- torbot-4.3.0/TESTING.md +8 -0
- torbot-4.3.0/docs/CHANGELOG.md +176 -0
- torbot-4.3.0/docs/CODE_OF_CONDUCT.md +46 -0
- torbot-4.3.0/docs/DESKTOP_APP.md +41 -0
- torbot-4.3.0/docs/Tor.md +39 -0
- torbot-4.3.0/main.py +12 -0
- torbot-4.3.0/pyproject.toml +59 -0
- torbot-4.3.0/requirements.txt +45 -0
- torbot-4.3.0/run_tests.py +14 -0
- torbot-4.3.0/scripts/build.sh +8 -0
- torbot-4.3.0/scripts/install.sh +8 -0
- torbot-4.3.0/scripts/publish.sh +90 -0
- torbot-4.3.0/scripts/remove.sh +8 -0
- torbot-4.3.0/scripts/update-requirements.sh +5 -0
- torbot-4.3.0/src/torbot/cli.py +218 -0
- {torbot-4.0.0 → torbot-4.3.0/src}/torbot/modules/api.py +1 -1
- torbot-4.3.0/src/torbot/modules/app_launcher.py +86 -0
- {torbot-4.0.0 → torbot-4.3.0/src}/torbot/modules/color.py +18 -18
- {torbot-4.0.0 → torbot-4.3.0/src}/torbot/modules/config.py +4 -7
- {torbot-4.0.0 → torbot-4.3.0/src}/torbot/modules/info.py +99 -49
- torbot-4.3.0/src/torbot/modules/linktree.py +257 -0
- torbot-4.3.0/src/torbot/modules/nlp/README.md +30 -0
- torbot-4.3.0/src/torbot/modules/nlp/gather_data.py +43 -0
- torbot-4.3.0/src/torbot/modules/nlp/main.py +121 -0
- torbot-4.3.0/src/torbot/modules/updater.py +40 -0
- torbot-4.3.0/tests/__init__.py +0 -0
- torbot-4.3.0/tests/conftest.py +35 -0
- torbot-4.3.0/tests/test_api.py +36 -0
- torbot-4.3.0/tests/test_cli_and_crawler.py +61 -0
- torbot-4.3.0/tests/test_linktree.py +77 -0
- torbot-4.3.0/tests/test_linktree_extra.py +158 -0
- torbot-4.3.0/tests/test_linktree_tree.py +361 -0
- torbot-4.3.0/tests/test_nlp.py +77 -0
- torbot-4.0.0/.env +0 -3
- torbot-4.0.0/PKG-INFO +0 -44
- torbot-4.0.0/pyproject.toml +0 -47
- torbot-4.0.0/torbot/main.py +0 -146
- torbot-4.0.0/torbot/modules/linktree.py +0 -201
- torbot-4.0.0/torbot/modules/nlp/README.md +0 -11
- torbot-4.0.0/torbot/modules/nlp/gather_data.py +0 -37
- torbot-4.0.0/torbot/modules/nlp/main.py +0 -41
- torbot-4.0.0/torbot/modules/tests/TESTING.md +0 -3
- torbot-4.0.0/torbot/modules/updater.py +0 -27
- {torbot-4.0.0 → torbot-4.3.0}/LICENSE.md +0 -0
- {torbot-4.0.0/torbot/modules → torbot-4.3.0/src/torbot}/__init__.py +0 -0
- {torbot-4.0.0/torbot/modules/nlp → torbot-4.3.0/src/torbot/modules}/__init__.py +0 -0
- {torbot-4.0.0/torbot/modules/tests → torbot-4.3.0/src/torbot/modules/nlp}/__init__.py +0 -0
- {torbot-4.0.0 → torbot-4.3.0/src}/torbot/modules/nlp/website_classification.csv +0 -0
torbot-4.3.0/.env
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export TORBOT_DATA_DIR=${PWD}/data
|
torbot-4.3.0/.flake8
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Source files
|
|
2
|
+
# ============
|
|
3
|
+
*.pxd text
|
|
4
|
+
*.py text
|
|
5
|
+
*.py3 text
|
|
6
|
+
*.pyw text
|
|
7
|
+
*.pyx text
|
|
8
|
+
|
|
9
|
+
# Binary files
|
|
10
|
+
# ============
|
|
11
|
+
*.db binary
|
|
12
|
+
*.p binary
|
|
13
|
+
*.pkl binary
|
|
14
|
+
*.pyc binary
|
|
15
|
+
*.pyd binary
|
|
16
|
+
*.pyo binary
|
|
17
|
+
|
|
18
|
+
# Note: .db, .p, and .pkl files are associated
|
|
19
|
+
# with the python modules ``pickle``, ``dbm.*``,
|
|
20
|
+
# ``shelve``, ``marshal``, ``anydbm``, & ``bsddb``
|
|
21
|
+
# (among others).
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# These are supported funding model platforms
|
|
2
|
+
|
|
3
|
+
github: psnappz
|
|
4
|
+
patreon: dedsec_inside_research
|
|
5
|
+
open_collective: # Replace with a single Open Collective username
|
|
6
|
+
ko_fi: # Replace with a single Ko-fi username
|
|
7
|
+
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
|
8
|
+
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
|
9
|
+
liberapay: # Replace with a single Liberapay username
|
|
10
|
+
issuehunt: # Replace with a single IssueHunt username
|
|
11
|
+
otechie: # Replace with a single Otechie username
|
|
12
|
+
custom: # Replace with a single custom sponsorship URL
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug report
|
|
3
|
+
about: Create a report to help us improve
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
**Describe the bug**
|
|
8
|
+
A clear and concise description of what the bug is.
|
|
9
|
+
|
|
10
|
+
**To Reproduce**
|
|
11
|
+
Steps to reproduce the behavior:
|
|
12
|
+
1. Go to '...'
|
|
13
|
+
2. Click on '....'
|
|
14
|
+
3. Scroll down to '....'
|
|
15
|
+
4. See error
|
|
16
|
+
|
|
17
|
+
**Expected behavior**
|
|
18
|
+
A clear and concise description of what you expected to happen.
|
|
19
|
+
|
|
20
|
+
**Screenshots**
|
|
21
|
+
If applicable, add screenshots to help explain your problem.
|
|
22
|
+
|
|
23
|
+
**Desktop (please complete the following information):**
|
|
24
|
+
- OS: [e.g. iOS]
|
|
25
|
+
- Browser [e.g. chrome, safari]
|
|
26
|
+
- Version [e.g. 22]
|
|
27
|
+
|
|
28
|
+
**Smartphone (please complete the following information):**
|
|
29
|
+
- Device: [e.g. iPhone6]
|
|
30
|
+
- OS: [e.g. iOS8.1]
|
|
31
|
+
- Browser [e.g. stock browser, safari]
|
|
32
|
+
- Version [e.g. 22]
|
|
33
|
+
|
|
34
|
+
**Additional context**
|
|
35
|
+
Add any other context about the problem here.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature request
|
|
3
|
+
about: Suggest an idea for this project
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
**Is your feature request related to a problem? Please describe.**
|
|
8
|
+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
|
9
|
+
|
|
10
|
+
**Describe the solution you'd like**
|
|
11
|
+
A clear and concise description of what you want to happen.
|
|
12
|
+
|
|
13
|
+
**Describe alternatives you've considered**
|
|
14
|
+
A clear and concise description of any alternative solutions or features you've considered.
|
|
15
|
+
|
|
16
|
+
**Additional context**
|
|
17
|
+
Add any other context or screenshots about the feature request here.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: Flake8
|
|
2
|
+
|
|
3
|
+
on: [push]
|
|
4
|
+
|
|
5
|
+
permissions:
|
|
6
|
+
contents: read
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
build:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
strategy:
|
|
12
|
+
matrix:
|
|
13
|
+
python-version: ["3.8", "3.9", "3.10"]
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v3
|
|
16
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
17
|
+
uses: actions/setup-python@v3
|
|
18
|
+
with:
|
|
19
|
+
python-version: ${{ matrix.python-version }}
|
|
20
|
+
- name: Install dependencies
|
|
21
|
+
run: |
|
|
22
|
+
python -m pip install --upgrade pip
|
|
23
|
+
python -m pip install flake8
|
|
24
|
+
- name: Analysing the code with flake8
|
|
25
|
+
run: |
|
|
26
|
+
flake8 --per-file-ignores="__init__.py:F401" .
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# This workflow will install Python dependencies, run tests and lint with a single version of Python
|
|
2
|
+
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
|
|
3
|
+
|
|
4
|
+
name: Pytest
|
|
5
|
+
|
|
6
|
+
on:
|
|
7
|
+
push:
|
|
8
|
+
branches: [ "dev" ]
|
|
9
|
+
pull_request:
|
|
10
|
+
branches: [ "dev" ]
|
|
11
|
+
|
|
12
|
+
permissions:
|
|
13
|
+
contents: read
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
build:
|
|
17
|
+
|
|
18
|
+
runs-on: ubuntu-latest
|
|
19
|
+
|
|
20
|
+
steps:
|
|
21
|
+
- uses: actions/checkout@v3
|
|
22
|
+
- name: Set up Python 3.10
|
|
23
|
+
uses: actions/setup-python@v3
|
|
24
|
+
with:
|
|
25
|
+
python-version: "3.10"
|
|
26
|
+
- name: Install dependencies
|
|
27
|
+
run: |
|
|
28
|
+
python -m pip install --upgrade pip
|
|
29
|
+
pip install pytest
|
|
30
|
+
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
|
|
31
|
+
pip install -e .
|
|
32
|
+
- name: Test with pytest
|
|
33
|
+
run: |
|
|
34
|
+
pytest
|
torbot-4.3.0/.gitignore
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Module Ignores
|
|
2
|
+
modules/*.pyc
|
|
3
|
+
modules/__init__.py
|
|
4
|
+
modules/__pycache__/
|
|
5
|
+
modules/.pytest_cache
|
|
6
|
+
modules/.ropeproject/
|
|
7
|
+
modules/lib/*.so
|
|
8
|
+
|
|
9
|
+
# Tests Ignores
|
|
10
|
+
tests/.pytest_cache
|
|
11
|
+
tests/*.pyc
|
|
12
|
+
tests/__pycache__/
|
|
13
|
+
tests/.ropeproject/
|
|
14
|
+
|
|
15
|
+
# Cache
|
|
16
|
+
.cache
|
|
17
|
+
*.pyc
|
|
18
|
+
.pytestc*
|
|
19
|
+
.pytest_cache
|
|
20
|
+
__pycache*
|
|
21
|
+
__pycache__/
|
|
22
|
+
|
|
23
|
+
# Misc
|
|
24
|
+
|
|
25
|
+
.*.swp
|
|
26
|
+
.ropeproject/
|
|
27
|
+
.idea/
|
|
28
|
+
.vscode/
|
|
29
|
+
.DS_Store
|
|
30
|
+
|
|
31
|
+
venv/
|
|
32
|
+
.venv/
|
|
33
|
+
.DS_Store
|
|
34
|
+
data/
|
|
35
|
+
torbot/modules/nlp/training_data/
|
|
36
|
+
|
|
37
|
+
# Deployment artifacts
|
|
38
|
+
dist
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# @InProceedings{10.1007/978-981-15-0146-3_19,
|
|
2
|
+
# author="Narayanan, P. S.
|
|
3
|
+
# and Ani, R.
|
|
4
|
+
# and King, Akeem T. L.",
|
|
5
|
+
# editor="Ranganathan, G.
|
|
6
|
+
# and Chen, Joy
|
|
7
|
+
# and Rocha, {\'A}lvaro",
|
|
8
|
+
# title="TorBot: Open Source Intelligence Tool for Dark Web",
|
|
9
|
+
# booktitle="Inventive Communication and Computational Technologies",
|
|
10
|
+
# year="2020",
|
|
11
|
+
# publisher="Springer Singapore",
|
|
12
|
+
# address="Singapore",
|
|
13
|
+
# pages="187--195",
|
|
14
|
+
# abstract="The dark web has turned into a dominant source of illegal activities. With several volunteered networks, it is becoming more difficult to track down these services. Open source intelligence (OSINT) is a technique used to gather intelligence on targets by harvesting publicly available data. Performing OSINT on the Tor network makes it a challenge for both researchers and developers because of the complexity and anonymity of the network. This paper presents a tool which shows OSINT in the dark web. With the use of this tool, researchers and Law Enforcement Agencies can automate their task of crawling and identifying different services in the Tor network. This tool has several features which can help extract different intelligence.",
|
|
15
|
+
# isbn="978-981-15-0146-3"
|
|
16
|
+
# }
|
|
17
|
+
|
|
18
|
+
cff-version: 1.2.0
|
|
19
|
+
message: "If you use this software, please cite the following paper:"
|
|
20
|
+
authors:
|
|
21
|
+
- family-names: P. S.
|
|
22
|
+
given-names: Narayanan
|
|
23
|
+
affiliation: Department of Computer Science and Applications, Amrita Vishwa Vidyapeetham, Amritapuri, Kollam, India
|
|
24
|
+
- family-names: Akeem T. L.
|
|
25
|
+
given-names: King
|
|
26
|
+
affiliation: USPA Technologies
|
|
27
|
+
- family-names: R
|
|
28
|
+
given-names: Ani
|
|
29
|
+
affiliation: Department of Computer Science and Applications, Amrita Vishwa Vidyapeetham, Amritapuri, Kollam, India
|
|
30
|
+
keywords:
|
|
31
|
+
- tor
|
|
32
|
+
- research
|
|
33
|
+
- osint
|
|
34
|
+
identifiers:
|
|
35
|
+
- type: doi
|
|
36
|
+
value: 10.1007/978-981-15-0146-3_19
|
|
37
|
+
license: GNU Public License
|
|
38
|
+
reposiory-code: https://github.com/DedSecInside/TorBot
|
|
39
|
+
title: TorBot - Open Source Intelligence Tool for Dark Web
|
|
40
|
+
date-released: 2020-01-30
|
torbot-4.3.0/Dockerfile
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Use an official Python 3.11.4 image as the base
|
|
2
|
+
FROM python:3.11.4
|
|
3
|
+
|
|
4
|
+
# Set a working directory within the container
|
|
5
|
+
WORKDIR /app
|
|
6
|
+
|
|
7
|
+
# Clone the TorBot repository from GitHub
|
|
8
|
+
RUN git clone https://github.com/DedSecInside/TorBot.git /app
|
|
9
|
+
|
|
10
|
+
# Install dependencies
|
|
11
|
+
RUN pip install -r /app/requirements.txt
|
|
12
|
+
|
|
13
|
+
# Set the SOCKS5_PORT environment variable
|
|
14
|
+
ENV SOCKS5_PORT=9050
|
|
15
|
+
|
|
16
|
+
# Expose the port specified in the .env file
|
|
17
|
+
EXPOSE $SOCKS5_PORT
|
|
18
|
+
|
|
19
|
+
# Run the TorBot script
|
|
20
|
+
CMD ["poetry", "run", "python", "torbot"]
|
|
21
|
+
# Example way to run the container:
|
|
22
|
+
# docker run --network="host" your-image-name poetry run python torbot -u https://www.example.com --depth 2 --visualize tree --save json
|
torbot-4.3.0/PKG-INFO
ADDED
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: torbot
|
|
3
|
+
Version: 4.3.0
|
|
4
|
+
Summary: TorBot is an OSINT tool for the dark web.
|
|
5
|
+
Author-email: Akeem King <akeemtlking@gmail.com>, PS Narayanan <thepsnarayanan@gmail.com>
|
|
6
|
+
License-File: LICENSE.md
|
|
7
|
+
Classifier: Operating System :: OS Independent
|
|
8
|
+
Classifier: Programming Language :: Python :: 3
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
13
|
+
Requires-Python: >=3.9
|
|
14
|
+
Requires-Dist: altgraph>=0.17.4
|
|
15
|
+
Requires-Dist: beautifulsoup4>=4.12.3
|
|
16
|
+
Requires-Dist: certifi>=2024.7.4
|
|
17
|
+
Requires-Dist: charset-normalizer>=3.3.2
|
|
18
|
+
Requires-Dist: decorator>=5.1.1
|
|
19
|
+
Requires-Dist: httpx[socks]>=0.27.0
|
|
20
|
+
Requires-Dist: idna>=3.15
|
|
21
|
+
Requires-Dist: igraph>=0.11.4
|
|
22
|
+
Requires-Dist: joblib>=1.4.2
|
|
23
|
+
Requires-Dist: macholib>=1.16.3
|
|
24
|
+
Requires-Dist: numpy>=1.26.4
|
|
25
|
+
Requires-Dist: phonenumbers>=8.13.37
|
|
26
|
+
Requires-Dist: progress>=1.6
|
|
27
|
+
Requires-Dist: pyinstaller-hooks-contrib>=2024.6
|
|
28
|
+
Requires-Dist: pyinstaller>=6.8.0
|
|
29
|
+
Requires-Dist: pysocks>=1.7.1
|
|
30
|
+
Requires-Dist: pytest>=9.0.3
|
|
31
|
+
Requires-Dist: python-dotenv>=1.2.2
|
|
32
|
+
Requires-Dist: scikit-learn>=1.5.0
|
|
33
|
+
Requires-Dist: scipy>=1.13.0
|
|
34
|
+
Requires-Dist: six>=1.16.0
|
|
35
|
+
Requires-Dist: soupsieve>=2.8.4
|
|
36
|
+
Requires-Dist: tabulate>=0.9.0
|
|
37
|
+
Requires-Dist: termcolor>=2.4.0
|
|
38
|
+
Requires-Dist: texttable>=1.7.0
|
|
39
|
+
Requires-Dist: threadpoolctl>=3.5.0
|
|
40
|
+
Requires-Dist: toml>=0.10.2
|
|
41
|
+
Requires-Dist: treelib>=1.7.1
|
|
42
|
+
Requires-Dist: unipath>=1.1
|
|
43
|
+
Requires-Dist: urllib3>=2.7.0
|
|
44
|
+
Requires-Dist: validators>=0.22.0
|
|
45
|
+
Requires-Dist: yattag>=1.15.2
|
|
46
|
+
Description-Content-Type: text/markdown
|
|
47
|
+
|
|
48
|
+
<pre>
|
|
49
|
+
|
|
50
|
+
████████╗ ██████╗ ██████╗ ██████╗ ██████╗ ████████╗
|
|
51
|
+
╚══██╔══╝██╔═══██╗██╔══██╗ ██╔══██╗██╔═████╗╚══██╔══╝
|
|
52
|
+
██║ ██║ ██║██████╔╝ ██████╔╝██║██╔██║ ██║
|
|
53
|
+
██║ ██║ ██║██╔══██╗ ██╔══██╗████╔╝██║ ██║
|
|
54
|
+
██║ ╚██████╔╝██║ ██║ ██████╔╝╚██████╔╝ ██║
|
|
55
|
+
╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝
|
|
56
|
+
|
|
57
|
+
Open Source Intelligence Tool for the Dark Web
|
|
58
|
+
|
|
59
|
+
</pre>
|
|
60
|
+
|
|
61
|
+
<p align="center">
|
|
62
|
+
<a href="https://owasp.org/www-project-torbot/">
|
|
63
|
+
<img src="https://user-images.githubusercontent.com/4481429/94645022-65f35680-0308-11eb-8dce-a4ceba8db660.png" width="270" title="OWASP Foundation">
|
|
64
|
+
</a>
|
|
65
|
+
<img src="https://github.com/DedSecInside/TorBot/assets/4481429/41f5e7ea-56fe-41b0-bd26-2788deeb5f10" width="250" title="Hacktoberfest 2022">
|
|
66
|
+
<img src="https://user-images.githubusercontent.com/4481429/94646312-9dafcd80-030b-11eb-9824-73aa2414cf58.png" width="160" title="OpenSource">
|
|
67
|
+
</p>
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
### Status/Social links
|
|
71
|
+
[](https://github.com/DedSecInside/TorBot/actions/workflows/pytest.yml)
|
|
72
|
+
[](https://github.com/DedSecInside/TorBot/actions/workflows/flake8.yml)
|
|
73
|
+
[](https://join.slack.com/t/dedsec-inside/shared_invite/zt-i4jcgj8w-1ecHiSdRubwuppAzz8~yfg)
|
|
74
|
+
[](https://www.codetriage.com/dedsecinside/torbot)
|
|
75
|
+
[]()
|
|
76
|
+
[]()
|
|
77
|
+
|
|
78
|
+
### Features
|
|
79
|
+
1. Onion Crawler (.onion)
|
|
80
|
+
2. Returns page title or host name if no page title is available and address with a short description of the site.
|
|
81
|
+
3. Save links to a database (Not done)
|
|
82
|
+
4. Output the HTML from a site or save it to an HTML file. (Not done)
|
|
83
|
+
5. Save the link tree as a JSON file.
|
|
84
|
+
6. Crawl custom domains
|
|
85
|
+
7. Check if the link is live
|
|
86
|
+
8. Built-in Updater
|
|
87
|
+
9. Build a visual tree of link relationships that can be quickly viewed or saved to a file
|
|
88
|
+
|
|
89
|
+
### Recent improvements
|
|
90
|
+
- The CLI now allows `--version` and `--update` to run without requiring a URL.
|
|
91
|
+
- The crawler now resolves relative links against the current page and skips unsupported or malformed hrefs more gracefully.
|
|
92
|
+
- The optional TorBotApp desktop UI can be launched from the CLI with `torbot app` when installed as a sibling checkout.
|
|
93
|
+
|
|
94
|
+
...(will be updated)
|
|
95
|
+
|
|
96
|
+
### Dependencies
|
|
97
|
+
- Tor (Optional)
|
|
98
|
+
- Python 3.9+
|
|
99
|
+
- pip
|
|
100
|
+
|
|
101
|
+
## Quick start
|
|
102
|
+
|
|
103
|
+
### Local setup
|
|
104
|
+
```sh
|
|
105
|
+
python3 -m venv .venv
|
|
106
|
+
source .venv/bin/activate
|
|
107
|
+
python -m pip install --upgrade pip
|
|
108
|
+
python -m pip install -r requirements.txt
|
|
109
|
+
python -m pip install -e .
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Run the CLI
|
|
113
|
+
```sh
|
|
114
|
+
python main.py --help
|
|
115
|
+
python main.py --version
|
|
116
|
+
python main.py -u https://example.com --depth 2 --visualize table
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Common examples
|
|
120
|
+
```sh
|
|
121
|
+
# Gather basic site information
|
|
122
|
+
python main.py -u https://example.com --info
|
|
123
|
+
|
|
124
|
+
# Save the crawl tree as JSON
|
|
125
|
+
python main.py -u https://example.com --depth 2 --save json
|
|
126
|
+
|
|
127
|
+
# Disable SOCKS5 if you are not using Tor locally
|
|
128
|
+
python main.py -u https://example.com --disable-socks5 --visualize tree
|
|
129
|
+
|
|
130
|
+
# Launch the optional desktop app when TorBotApp is installed
|
|
131
|
+
torbot app
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### Options
|
|
135
|
+
```text
|
|
136
|
+
usage: Gather and analyze data from Tor sites.
|
|
137
|
+
|
|
138
|
+
optional arguments:
|
|
139
|
+
-u URL, --url URL Specify a website link to crawl
|
|
140
|
+
--depth DEPTH Specify max depth of crawler (default 1)
|
|
141
|
+
-h, --help Show this help message and exit
|
|
142
|
+
--host Set IP address for SOCKS5 proxy (defaults to 127.0.0.1)
|
|
143
|
+
--port Set port for SOCKS5 proxy (defaults to 9050)
|
|
144
|
+
-v Displays DEBUG level logging, default is INFO
|
|
145
|
+
--version Show the current version of TorBot.
|
|
146
|
+
--update Update TorBot to the latest stable version
|
|
147
|
+
--app Run optional TorBot desktop app
|
|
148
|
+
--app-dir APP_DIR Path to a TorBotApp checkout
|
|
149
|
+
-q, --quiet Prevents display of header and IP address
|
|
150
|
+
--save FORMAT Save results in a file. (tree, JSON)
|
|
151
|
+
--visualize FORMAT Visualizes tree of data gathered. (tree, JSON, table)
|
|
152
|
+
-i, --info Info displays basic info of the scanned site
|
|
153
|
+
--disable-socks5 Executes HTTP requests without using SOCKS5 proxy
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
> `-u/--url` is required for crawl-related commands such as `--info`, `--save`, and `--visualize`.
|
|
157
|
+
|
|
158
|
+
If you are using Tor locally, keep the SOCKS5 proxy enabled. If you are not using Tor, add `--disable-socks5` to avoid proxy connection errors.
|
|
159
|
+
|
|
160
|
+
Read more about torrc here: [Torrc](https://github.com/DedSecInside/TorBoT/blob/master/Tor.md)
|
|
161
|
+
|
|
162
|
+
## Optional desktop app
|
|
163
|
+
|
|
164
|
+
TorBot remains a CLI-first Python tool. The desktop UI lives in the separate
|
|
165
|
+
[TorBotApp](https://github.com/KingAkeem/TorBotApp) Electron project so Node and
|
|
166
|
+
Electron are not required for CLI users.
|
|
167
|
+
|
|
168
|
+
To launch it from this CLI, install TorBotApp as a sibling checkout:
|
|
169
|
+
|
|
170
|
+
```text
|
|
171
|
+
code/
|
|
172
|
+
+-- TorBot/
|
|
173
|
+
+-- TorBotApp/
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
Then run:
|
|
177
|
+
|
|
178
|
+
```sh
|
|
179
|
+
torbot app
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
If TorBotApp is somewhere else, use either:
|
|
183
|
+
|
|
184
|
+
```sh
|
|
185
|
+
TORBOT_APP_DIR=/path/to/TorBotApp torbot app
|
|
186
|
+
torbot --app --app-dir /path/to/TorBotApp
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
See [Desktop App Architecture](docs/DESKTOP_APP.md) for how the CLI, optional UI,
|
|
190
|
+
and backend services fit together.
|
|
191
|
+
|
|
192
|
+
## Curated Features
|
|
193
|
+
- [x] Visualization Module Revamp
|
|
194
|
+
- [x] Implement BFS Search for webcrawler
|
|
195
|
+
- [x] Improve stability (Handle errors gracefully, expand test coverage, etc.)
|
|
196
|
+
- [x] Increase test coverage
|
|
197
|
+
- [ ] Save the most recent search results to a database
|
|
198
|
+
- [ ] Randomize Tor Connection (Random Header and Identity)
|
|
199
|
+
- [ ] Keyword/Phrase Search
|
|
200
|
+
- [ ] Social Media Integration
|
|
201
|
+
- [ ] Increase anonymity
|
|
202
|
+
- [ ] Screenshot capture
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
## Contribution Guidelines
|
|
206
|
+
|
|
207
|
+
### Found an issue?
|
|
208
|
+
|
|
209
|
+
If you face any issues in the project, please let us know by creating a new issue [here](https://github.com/DedSecInside/TorBot/issues/new/choose).
|
|
210
|
+
|
|
211
|
+
### Developer Guidelines
|
|
212
|
+
|
|
213
|
+
We welcome contributions to this project! Here are a few guidelines to follow:
|
|
214
|
+
|
|
215
|
+
1. Fork the repository and create a new branch for your contribution.
|
|
216
|
+
2. Make sure your code passes all tests by running `pytest` before submitting a pull request to `dev` branch.
|
|
217
|
+
3. Follow the [PEP8](https://www.python.org/dev/peps/pep-0008/) style guide for Python code.
|
|
218
|
+
4. Make sure to add appropriate documentation for any new features or changes.
|
|
219
|
+
5. When submitting a pull request, please provide a detailed description of the changes made.
|
|
220
|
+
|
|
221
|
+
## References
|
|
222
|
+
|
|
223
|
+
1. M. Glassman and M. J. Kang, “Intelligence in the internet age: The emergence and evolution of Open Source Intelligence (OSINT),” Comput. Human Behav., vol. 28, no. 2, pp. 673–682, 2012.
|
|
224
|
+
2. D. Bradbury, “In plain view: open source intelligence,” Comput. Fraud Secur., vol. 2011, no. 4, pp. 5–9, 2011.
|
|
225
|
+
3. B. Butler, B. Wardman, and N. Pratt, “REAPER: an automated, scalable solution for mass credential harvesting and OSINT,” 2016 APWG Symp. Electron. Crime Res., pp. 1–10, 2016.
|
|
226
|
+
4. B. Zantout and R. A. Haraty, “I2P Data Communication System I2P Data Communication System,” no. April 2002, 2014.
|
|
227
|
+
5. J. Qin, Y. Zhou, G. Lai, E. Reid, M. Sageman, and H. Chen, “The dark web portal project: collecting and analyzing the presence of terrorist groups on the web,” in Proceedings of the 2005 IEEE international conference on Intelligence and Security Informatics, 2005, pp. 623–624.
|
|
228
|
+
6. D. Moore, T. Rid, D. Moore, and T. Rid, “Cryptopolitik and the Darknet Cryptopolitik and the Darknet,” vol. 6338, 2016.
|
|
229
|
+
7. G. Weimann, “Going dark: Terrorism on the dark Web,” Stud. Confl. Terror., vol. 39, no. 3, pp. 195–206, 2016.
|
|
230
|
+
8. A. T. Zulkarnine, R. Frank, B. Monk, J. Mitchell, and G. Davies, “Surfacing collaborated networks in dark web to find illicit and criminal content,” in Intelligence and Security Informatics (ISI), 2016 IEEE Conference on, 2016, pp. 109–114.
|
|
231
|
+
9. T. Minárik and A.-M. Osula, “Tor does not stink: Use and abuse of the Tor anonymity network from the perspective of law,” Comput. Law Secur. Rev., vol. 32, no. 1, pp. 111–127, 2016.
|
|
232
|
+
10. K. Loesing, S. J. Murdoch, and R. Dingledine, “A Case Study on Measuring Statistical Data in the {T}or Anonymity Network,” in Proceedings of the Workshop on Ethics in Computer Security Research (WECSR 2010), 2010.
|
|
233
|
+
11. B. Nafziger, “Data Mining in the Dark : Darknet Intelligence Automation,” 2017.
|
|
234
|
+
12. I. Sanchez-Rola, D. Balzarotti, and I. Santos, “The onions have eyes: A comprehensive structure and privacy analysis of tor hidden services,” in Proceedings of the 26th International Conference on World Wide Web, 2017, pp. 1251–1260.
|
|
235
|
+
13. Mouli VR, Jevitha KP. “Web Services Attacks and Security-A Systematic Literature Review.”, Procedia Computer Science. 2016 Jan 1;93:870-7.
|
|
236
|
+
14. Cova M, Felmetsger V, Vigna G. "Vulnerability analysis of web-based applications. InTest and Analysis of Web Services" 2007 (pp. 363-394). Springer, Berlin, Heidelberg.
|
|
237
|
+
15. B. R. Holland, “Enabling Open Source Intelligence (OSINT) in private social networks,” 2012.
|
|
238
|
+
16. S. Nakamoto, “Bitcoin: A Peer-to-Peer Electronic Cash System,” Cryptogr. Mail. List https//metzdowd.com, 2009.
|
|
239
|
+
17. M. Wesam, A. Nabki, E. Fidalgo, E. Alegre, and I. De Paz, “Classifying Illegal Activities on Tor Network Based on Web Textual Contents”, vol. 1, pp. 35–43, 2017.
|
|
240
|
+
18. Sathyadevan S, Gangadharan S.“Crime analysis and prediction using data mining”. In Networks & Soft Computing (ICNSC), 2014 First International Conference on 2014 Aug 19 (pp. 406-412). IEEE.
|
|
241
|
+
19. Chau M, Chen H. "A machine learning approach to web page filtering using content and structure analysis. Decision Support Systems." 2008 Jan 1;44(2):482-94.
|
|
242
|
+
20. Ani R, Jose J, Wilson M, Deepa OS. “Modified Rotation Forest Ensemble Classifier for Medical Diagnosis in Decision Support Systems”, In Progress in Advanced Computing and Intelligent Engineering 2018 (pp. 137-146). Springer, Singapore.
|
|
243
|
+
21. Ani R, Augustine A, Akhil N.C. and Deepa O.S., 2016. “Random Forest Ensemble Classifier to Predict the Coronary Heart Disease Using Risk Factors”, In Proceedings of the International Conference on Soft Computing Systems (pp. 701-710). Springer, New Delhi.
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
## Maintainers
|
|
247
|
+
|
|
248
|
+
- [X] [PS Narayanan](https://github.com/PSNAppz) - Co-owner
|
|
249
|
+
- [X] [KingAkeem](https://github.com/KingAkeem) - Co-owner
|
|
250
|
+
|
|
251
|
+
## All Thanks to Our Contributors
|
|
252
|
+
|
|
253
|
+
<a href="https://github.com/DedSecInside/TorBot/graphs/contributors">
|
|
254
|
+
<img src="https://contrib.rocks/image?repo=DedSecInside/TorBot" />
|
|
255
|
+
</a>
|
|
256
|
+
|
|
257
|
+
## License
|
|
258
|
+
[GNU Public License](https://github.com/DedSecInside/TorBot/blob/dev/LICENSE.md)
|