Compare commits

...

25 Commits
1.0.0 ... 1.3.0

Author SHA1 Message Date
Richard Mwewa
162d36d741 Update main.py 2022-03-27 22:52:44 +02:00
Richard Mwewa
49490ed95b Update README.md 2022-03-27 22:49:42 +02:00
Richard Mwewa
78966551ee Update main.py 2022-03-27 22:47:47 +02:00
Richard Mwewa
a939b89d23 Update requirements.txt 2022-03-27 22:32:08 +02:00
Richard Mwewa
f79ce44bc9 Update colors.py 2022-03-27 22:31:04 +02:00
Richard Mwewa
7e45fa5669 Update banner.py 2022-03-27 22:27:57 +02:00
Richard Mwewa
f55e1b3895 Update README.md 2022-03-27 22:22:15 +02:00
Richard Mwewa
1ea78c2e0b Update README.md 2022-03-27 22:21:30 +02:00
Richard Mwewa
2272e7ff81 Update main.py 2022-03-27 22:13:08 +02:00
Richard Mwewa
44ce7799f4 Update README.md 2022-03-17 21:33:31 +02:00
Richard Mwewa
6c6fc477f8 v1.2.0 2022-03-17 21:27:39 +02:00
Richard Mwewa
d7060e33dd v1.2.0 2022-03-17 21:25:26 +02:00
Richard Mwewa
b47b073af4 Create requirements.txt 2022-03-17 21:22:10 +02:00
Richard Mwewa
4f196660bc v1.2.0 2022-03-17 21:21:15 +02:00
Richard Mwewa
e073d63845 v1.2.0 2022-03-17 21:13:00 +02:00
Richard Mwewa
89a53d519f Update main.py 2022-03-17 21:07:11 +02:00
Richard Mwewa
794bafc90f Update README.md 2022-03-17 20:26:30 +02:00
Richard Mwewa
689934144c Create tmp 2022-03-17 20:24:03 +02:00
Richard Mwewa
f034fac654 Update README.md 2022-03-17 20:13:41 +02:00
Richard Mwewa
84bb25fb0f Update README.md 2022-03-16 23:01:11 +02:00
Richard Mwewa
3cbdd23056 v1.1.0 2022-03-16 22:54:33 +02:00
Richard Mwewa
4f267986d3 v1.1.0 2022-03-16 22:50:28 +02:00
Richard Mwewa
b5474bb6e2 v1.1.0 2022-03-16 22:47:12 +02:00
Richard Mwewa
132ef4f2ac Update README.md 2022-03-16 22:33:34 +02:00
Richard Mwewa
e450c43f19 Update README.md 2022-03-16 21:52:41 +02:00
6 changed files with 88 additions and 56 deletions

1
.logs/tmp Normal file
View File

@@ -0,0 +1 @@

View File

@@ -1,56 +1,82 @@
![octosuite](https://user-images.githubusercontent.com/74001397/155901728-82917d24-5b5a-4016-b5f7-df479699ba87.png)
![Screenshot_2022-03-17_10-12-53](https://user-images.githubusercontent.com/74001397/158868105-b5aba7e8-7342-4268-bd7a-6d6ae0bdae5a.png)
Advanced Github OSINT Framework
![Python Version](https://img.shields.io/badge/python-3.x-blue?style=for-the-badge&logo=python)
![GitHub tag (latest by date)](https://img.shields.io/github/v/tag/rly0nheart/octosuite?style=for-the-badge&logo=github)
![OS](https://img.shields.io/badge/OS-GNU%2FLinux-red?style=for-the-badge&logo=Linux)
![OS](https://img.shields.io/badge/OS-Windows-blue?style=for-the-badge&logo=Windows)
![OS](https://img.shields.io/badge/OS-Mac-blue?style=for-the-badge&logo=apple)
![GitHub](https://img.shields.io/github/license/rly0nheart/octosuite?style=for-the-badge&logo=github)
![Lines of code](https://img.shields.io/tokei/lines/github/rly0nheart/octosuite?style=for-the-badge&logo=github)
![GitHub repo size](https://img.shields.io/github/repo-size/rly0nheart/octosuite?style=for-the-badge&logo=github)
![octosuite](https://user-images.githubusercontent.com/74001397/155878843-0e6e3337-98bf-4b4f-97f3-c31d8350468c.gif)
> *Simply gather OSINT on Github users and organizations like a god🔥*
# Installation
# INSTALLATION
**clone project**:
```
$ git clone https://github.com/rly0nheart/octosuite.git
git clone https://github.com/rly0nheart/octosuite.git
```
```
$ cd octosuite
cd octosuite
```
# Usage
```
pip install -r requirements.txt
```
# USAGE
**Linux**:
```
$ sudo chmod +x octosuite
sudo chmod +x octosuite
```
```
$ ./octosuite
sudo ./octosuite
```
**Windows**:
```
$ python3 octosuite
python3 octosuite
```
**Mac**:
```
python3 octosuite
```
# Note
* Requirement(s) [requests] will be installed on first run
* Enter *help* command to show usage
* octosuite automatically logs network and minor user activity. The logs are saved by date and time in .logs folder
# AVAILABLE COMMANDS
| Command | Usage|
| ------------- |:---------:|
| ``orginfo`` | *get organization info* |
| ``userinfo`` | *get user profile info* |
| ``repoinfo`` | *get repository info* |
| ``pathcontents`` | *get contents of a path from a specified repository* |
| ``orgrepos`` | *get a list of repositories owned by a specified organization* |
| ``userrepos`` | *get a list of repositories owned by a specified user* |
| ``usergists`` | *get a list of gists owned by a specified user* |
| ``userfollowers`` | *get a list of a user's followers* |
| ``userfollowing`` | *check whether user A follows user B* |
| ``usersearch`` | *search user(s)* |
| ``reposearch`` | *search repositor(y)(ies)* |
| ``topicsearch`` | *search topics(s)* |
| ``issuesearch`` | *search issue(s)* |
| ``commitsearch`` | *search commit(s)* |
| ``usersearch`` | *search user(s)* |
| ``update`` | *update octosuite* |
| ``changelog`` | *show changelog* |
| ``author`` | *show author info* |
| ``help`` | *show usage/help* |
| ``exit`` | *exit session* |
* octosuite has only been tested on *Linux* for now, please be sure to let me know how it works on *Windows*
* Feel free to open pull requests if there are any notable bugs found
# NOTE
* *octosuite automatically logs network and minor user activity. The logs are saved by date and time in .logs folder*
* *Although octosuite was developed to work on **Mac**, **Windows**, or any **Linux** *Distribution*, it has only been tested on **Termux** *and* **Kali Linux***
# LICENSE
![license](https://user-images.githubusercontent.com/74001397/137917929-2f2cdb0c-4d1d-4e4b-9f0d-e01589e027b5.png)
# About me
* [About.me](https://about.me/rly0nheart)
# ABOUT AUTHOR
[About.me](https://about.me/rly0nheart)

View File

@@ -7,7 +7,7 @@ banner = f'''{red}
░ ████▓▒░▒ ▓███▀ ░ ▒██▒ ░ ░ ████▓▒░▒██████▒▒▒█████▓ ░██░ ▒██▒ ░ ░▒████▒
░ ▒░▒░▒░ ░ ░▒ ▒ ░ ▒ ░░ ░ ▒░▒░▒░ ▒ ▒▓▒ ▒ ░░▒▓▒ ▒ ▒ ░▓ ▒ ░░ ░░ ▒░ ░
░ ▒ ▒░ ░ ▒ ░ ░ ▒ ▒░ ░ ░▒ ░ ░░░▒░ ░ ░ ▒ ░ ░ ░ ░ ░
░ ░ ░ ▒ ░ ░ ░ ░ ░ ▒ ░ ░ ░ ░░░ ░ ░ ▒ v1.0
░ ░ ░ ▒ ░ ░ ░ ░ ░ ▒ ░ ░ ░ ░░░ ░ ░ ▒ v1.3.0
░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░
{white}— Advanced Github {red}OSINT{white} Framework{reset}

View File

@@ -1,9 +1,10 @@
import sys
# Colors will be unavailable on non-linux machines
colors = True
machine = sys.platform # Detecting the os
machine = sys.platform
if machine.lower().startswith(("os", "win", "darwin")):
colors = False # Colors will not be displayed
colors = False
if not colors:
reset = red = white = green = ""

2
requirements.txt Normal file
View File

@@ -0,0 +1,2 @@
tqdm
requests

View File

@@ -1,18 +1,13 @@
import os
import logging
import requests
import platform
import subprocess
import urllib.request
from tqdm import tqdm
from pprint import pprint
from lib import colors,banner
from datetime import datetime
try:
import requests
except ImportError:
print(f'{colors.white}[{colors.green}*{colors.white}] Installing requirement(s). Please wait...{colors.reset}')
subprocess.run(['pip', 'install', 'requests'],shell=False)
exit(f'{colors.white}[{colors.green}+{colors.white}] Installation complete. Re-run octosuite.{colors.reset}')
class octosuite:
def __init__(self):
@@ -155,9 +150,6 @@ class octosuite:
# Author dictionary
self.author_dict = {'Alias': 'rly0nheart',
'Country': 'Zambia, Africa',
'Github': 'https://github.com/rly0nheart',
'Twitter': 'https://twitter.com/rly0nheart',
'Facebook': 'https://fb.me/rly0nheart',
'About.me': 'https://about.me/rly0nheart'}
def on_start(self):
@@ -200,6 +192,8 @@ class octosuite:
self.commits_search()
elif command == 'update':
self.update()
elif command == 'changelog':
print(self.changelog())
elif command == 'author':
self.author()
elif command == 'help':
@@ -410,17 +404,30 @@ class octosuite:
# Update program
def update(self):
logging.info('Checking for update(s)...')
files_to_update = ['src/main.py','lib/banner.py','lib/colors.py','octosuite','LICENSE','README.md']
print(f'\n{colors.white}[{colors.green}*{colors.white}] Fetching update(s). Please wait...{colors.reset}')
for file in files_to_update:
logging.info('Fetching updates...')
files_to_update = ['src/main.py','lib/banner.py','lib/colors.py','octosuite','LICENSE','README.md','requirements.txt']
for file in tqdm(files_to_update,desc=f'{colors.white}[{colors.green}*{colors.white}] Fetching updates...{colors.reset}'):
data = urllib.request.urlopen(f'https://raw.githubusercontent.com/rly0nheart/octosuite/master/{file}').read()
with open(file, 'wb') as code:
code.write(data)
code.close()
logging.info('Update complete.')
exit(f'{colors.white}[{colors.green}+{colors.white}] Update complete. Re-run octosuite.{colors.reset}')
exit(f'\n{colors.white}[{colors.green}+{colors.white}] Update complete. Re-run octosuite.{colors.reset}')
# Show changelog
def changelog(self):
# lol yes the changelog is hard coded
changelog_text = '''
v1.3.0 Changelog:
• Adjusted to work on Mac
• Added changelog command
• Added progress bar when fetching updates
• Minor bug fixes
'''
return changelog_text
# Author info
@@ -434,33 +441,28 @@ class octosuite:
help = '''
usage:
orginfo --> Get organization info
userinfo --> Get user profile info
repoinfo --> Get user repository info
pathcontents --> Get contents of a specified path from a repository
orgrepos --> Get organization repositories
userrepos --> Get user repositories
usergists --> Get user gists
userfollowers --> Get user followers
orginfo --> Get target organization info
userinfo --> Get target user profile info
repoinfo --> Get target repository info
pathcontents --> Get contents of a specified path from a target repository
orgrepos --> Get a list of repositories owned by a target organization
userrepos --> Get a list of repositories owned by a target user
usergists --> Get a list of gists owned by a target user
userfollowers --> Get a list of the target's followers
userfollowing --> Check whether or not User[A] follows User[B]
usersearch --> Search user(s)
reposearch --> Search repositor[y][ies]
topicsearch --> Search topic(s)
issuesearch --> Search issue(s)
commitsearch --> Search commit(s)
update --> Check for/download update(s)
author --> Show author information
update --> Update octosuite
changelog --> Show changelog
author --> Show author info
help --> Show usage/help
exit --> Exit session
'''
return help
file_exists = os.path.exists('.logs')
if file_exists:
pass
else:
os.mkdir('.logs')
# Set to automatically monitor and log network and user activity to .log folder
# Set to automatically monitor and log network and user activity into the .logs folder
logging.basicConfig(filename=f'.logs/{datetime.now()}.log',format='[%(asctime)s] %(message)s',level=logging.DEBUG)