Skip to content

Commit dbe5bdf

Browse files
committed
Adds navisessions
1 parent 90ea661 commit dbe5bdf

1 file changed

Lines changed: 82 additions & 0 deletions

File tree

core/vmnf_navi_sessions.py

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# -*- coding: utf-8 -*-
2+
# __ _
3+
# \/imana 2016
4+
# [|-ramewørk
5+
#
6+
#
7+
# Author: s4dhu
8+
# Email: <s4dhul4bs[at]prontonmail[dot]ch
9+
# Git: @s4dhulabs
10+
# Mastodon: @s4dhu
11+
#
12+
# This file is part of Vimana Framework Project.
13+
14+
15+
from pygments import formatters, highlight, lexers
16+
from neotermcolor import cprint, colored as cl
17+
from simple_term_menu import TerminalMenu
18+
19+
from .vmnf_navicontrols import *
20+
from ._dbops_.vmnf_dbops import VFDBOps
21+
from .vmnf_sessions import VFSession
22+
from pygments.util import ClassNotFound
23+
24+
from .vmnf_navioptions import *
25+
from os.path import dirname
26+
from random import choice
27+
from time import sleep
28+
import yaml
29+
import os
30+
#from .vmnf_navi_banners import default_naviban
31+
from res.vmnf_banners import *
32+
from urllib.parse import urlparse, urljoin
33+
from datetime import datetime
34+
35+
vimana_path = os.getenv("vimana_path")
36+
37+
38+
class naviSessions:
39+
def __init__(self, vmnf_handler:dict):
40+
self.vmnf_handler = vmnf_handler
41+
#self._sessions_ = self.get_sessions()
42+
self.model = '_SESSIONS_'
43+
self.obj_id_col = 'session_id'
44+
45+
def get_sessions(self):
46+
return (VFDBOps().list_resource('_SESSIONS_',[]))
47+
48+
def select(self,session_id):
49+
return [s for s in self._sessions_ if s.session_id == session_id]
50+
51+
def highlight_session(self,session):
52+
session_id = session.split()[0].strip()
53+
selected_session = self.select(session_id)[0]
54+
session_info = "\n".join([f"{k:>25}: {v}" for k, v in selected_session.__dict__.items()])
55+
56+
lexer = lexers.get_lexer_by_name(
57+
self.lexer_style,
58+
stripnl=False,
59+
stripall=False
60+
)
61+
formatter = formatters.TerminalFormatter(bg="dark")
62+
return '\n' + highlight(session_info, lexer, formatter)
63+
64+
def manage_session(self, session):
65+
_options_ = []
66+
current_index=0
67+
_ops_ = ['overview', 'exceptions', 'CVEs', 'tickets', 'URLs', 'FuzzL0g']
68+
69+
70+
with open(session.session_path, 'r') as s:
71+
session = yaml.unsafe_load(s)
72+
73+
report_tables = session['report_tables']
74+
djunch_result = session['djunch_result']
75+
patterns = session['patterns']
76+
overview = session['issues_overview']
77+
target_url = session['target_url']
78+
framework = f"{session['framework']} {session['framework_version']}"
79+
80+
URLs = [urljoin(target_url, p) for p in patterns]
81+
82+

0 commit comments

Comments
 (0)