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-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-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) ![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) ![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**: **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**: **Linux**:
``` ```
$ sudo chmod +x octosuite sudo chmod +x octosuite
``` ```
``` ```
$ ./octosuite sudo ./octosuite
``` ```
**Windows**: **Windows**:
``` ```
$ python3 octosuite python3 octosuite
``` ```
**Mac**:
```
python3 octosuite
```
# Note # AVAILABLE COMMANDS
* Requirement(s) [requests] will be installed on first run | Command | Usage|
* 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 | ``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
![license](https://user-images.githubusercontent.com/74001397/137917929-2f2cdb0c-4d1d-4e4b-9f0d-e01589e027b5.png) ![license](https://user-images.githubusercontent.com/74001397/137917929-2f2cdb0c-4d1d-4e4b-9f0d-e01589e027b5.png)
# About me # ABOUT AUTHOR
* [About.me](https://about.me/rly0nheart) [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} {white}— Advanced Github {red}OSINT{white} Framework{reset}

View File

@@ -1,9 +1,10 @@
import sys import sys
# Colors will be unavailable on non-linux machines
colors = True colors = True
machine = sys.platform # Detecting the os machine = sys.platform
if machine.lower().startswith(("os", "win", "darwin")): if machine.lower().startswith(("os", "win", "darwin")):
colors = False # Colors will not be displayed colors = False
if not colors: if not colors:
reset = red = white = green = "" 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 os
import logging import logging
import requests
import platform import platform
import subprocess import subprocess
import urllib.request import urllib.request
from tqdm import tqdm
from pprint import pprint from pprint import pprint
from lib import colors,banner from lib import colors,banner
from datetime import datetime 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: class octosuite:
def __init__(self): def __init__(self):
@@ -155,9 +150,6 @@ class octosuite:
# Author dictionary # Author dictionary
self.author_dict = {'Alias': 'rly0nheart', self.author_dict = {'Alias': 'rly0nheart',
'Country': 'Zambia, Africa', 'Country': 'Zambia, Africa',
'Github': 'https://github.com/rly0nheart',
'Twitter': 'https://twitter.com/rly0nheart',
'Facebook': 'https://fb.me/rly0nheart',
'About.me': 'https://about.me/rly0nheart'} 'About.me': 'https://about.me/rly0nheart'}
def on_start(self): def on_start(self):
@@ -200,6 +192,8 @@ class octosuite:
self.commits_search() self.commits_search()
elif command == 'update': elif command == 'update':
self.update() self.update()
elif command == 'changelog':
print(self.changelog())
elif command == 'author': elif command == 'author':
self.author() self.author()
elif command == 'help': elif command == 'help':
@@ -410,17 +404,30 @@ class octosuite:
# Update program # Update program
def update(self): def update(self):
logging.info('Checking for update(s)...') logging.info('Fetching updates...')
files_to_update = ['src/main.py','lib/banner.py','lib/colors.py','octosuite','LICENSE','README.md'] files_to_update = ['src/main.py','lib/banner.py','lib/colors.py','octosuite','LICENSE','README.md','requirements.txt']
print(f'\n{colors.white}[{colors.green}*{colors.white}] Fetching update(s). Please wait...{colors.reset}') for file in tqdm(files_to_update,desc=f'{colors.white}[{colors.green}*{colors.white}] Fetching updates...{colors.reset}'):
for file in files_to_update:
data = urllib.request.urlopen(f'https://raw.githubusercontent.com/rly0nheart/octosuite/master/{file}').read() data = urllib.request.urlopen(f'https://raw.githubusercontent.com/rly0nheart/octosuite/master/{file}').read()
with open(file, 'wb') as code: with open(file, 'wb') as code:
code.write(data) code.write(data)
code.close() code.close()
logging.info('Update complete.') 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 # Author info
@@ -434,33 +441,28 @@ class octosuite:
help = ''' help = '''
usage: usage:
orginfo --> Get organization info orginfo --> Get target organization info
userinfo --> Get user profile info userinfo --> Get target user profile info
repoinfo --> Get user repository info repoinfo --> Get target repository info
pathcontents --> Get contents of a specified path from a repository pathcontents --> Get contents of a specified path from a target repository
orgrepos --> Get organization repositories orgrepos --> Get a list of repositories owned by a target organization
userrepos --> Get user repositories userrepos --> Get a list of repositories owned by a target user
usergists --> Get user gists usergists --> Get a list of gists owned by a target user
userfollowers --> Get user followers userfollowers --> Get a list of the target's followers
userfollowing --> Check whether or not User[A] follows User[B] userfollowing --> Check whether or not User[A] follows User[B]
usersearch --> Search user(s) usersearch --> Search user(s)
reposearch --> Search repositor[y][ies] reposearch --> Search repositor[y][ies]
topicsearch --> Search topic(s) topicsearch --> Search topic(s)
issuesearch --> Search issue(s) issuesearch --> Search issue(s)
commitsearch --> Search commit(s) commitsearch --> Search commit(s)
update --> Check for/download update(s) update --> Update octosuite
author --> Show author information changelog --> Show changelog
author --> Show author info
help --> Show usage/help help --> Show usage/help
exit --> Exit session exit --> Exit session
''' '''
return help return help
file_exists = os.path.exists('.logs') # Set to automatically monitor and log network and user activity into the .logs folder
if file_exists:
pass
else:
os.mkdir('.logs')
# Set to automatically monitor and log network and user activity to .log folder
logging.basicConfig(filename=f'.logs/{datetime.now()}.log',format='[%(asctime)s] %(message)s',level=logging.DEBUG) logging.basicConfig(filename=f'.logs/{datetime.now()}.log',format='[%(asctime)s] %(message)s',level=logging.DEBUG)