Analyzing profile

This commit is contained in:
2023-09-11 20:05:51 +02:00
parent 7bfb138511
commit 03143c4c0d
4 changed files with 53 additions and 38 deletions
+23 -13
View File
@@ -15,16 +15,11 @@ class LocalAccount:
# Create the report
self._constructReports()
# Report
#self._reports[""] = self._apache_directory
def runAudit(self):
print("Running test for Local account")
self._analyzingProfile()
self._analyzingPasswordQuality()
print(self._reports)
def getReports(self) -> dict:
return self._reports
@@ -41,14 +36,29 @@ class LocalAccount:
def _parseFile(self, fdata):
data = fdata.read()
lines = data.splitlines()
lineFound = None
found = False
for line in lines:
line = line.decode('utf-8')
for obj in self._profile['data']:
grFlag = re.search(f"^{obj['flag']}", line)
if grFlag:
print(line)
grFlag = re.search(f"^{self._profile['flag']}", line)
if grFlag:
found = True
lineFound = line
if found:
self._reports['profile']['vulnerabilities'] = dict()
self._reports['profile']['vulnerabilities'][self._profile['flag']] = dict()
self._reports['profile']['vulnerabilities'][self._profile['flag']]["result"] = "success"
self._reports['profile']['vulnerabilities'][self._profile['flag']]["description"] = self._profile['description']
self._reports['profile']['vulnerabilities'][self._profile['flag']]["flagFound"] = lineFound
else:
self._reports['profile']['vulnerabilities'] = dict()
self._reports['profile']['vulnerabilities'][self._profile['flag']] = dict()
self._reports['profile']['vulnerabilities'][self._profile['flag']]["result"] = "failed"
self._reports['profile']['vulnerabilities'][self._profile["flag"]]["recommand_value"] = self._profile["value"]
self._reports['profile']['vulnerabilities'][self._profile['flag']]["description"] = self._profile['description']
self._reports['profile']['vulnerabilities'][self._profile['flag']]["flag"] = self._profile['flag']
def _analyzingPasswordQuality(self):
pass
@@ -64,6 +74,6 @@ class LocalAccount:
- description: description of the vulnerability
- level: high, medium or low
"""
self._reports['localaccount'] = dict()
self._reports['localaccount']['profile'] = dict()
self._reports['localaccount']['pwd_quality'] = dict()
self._reports['profile'] = dict()
self._reports['profile']['filename'] = self._profile['filename']
self._reports['pwd_quality'] = dict()
+14 -4
View File
@@ -28,7 +28,7 @@ def generateHtmlReport(data):
dataJinja2['postfix']['filename'] = data["system"]["postfix"]["filename"]
dataJinja2['postfix']['vulnerabilities'] = data['system']['postfix']['postfix']
_generateAccordion(dataJinja2['postfix']['vulnerabilities'])
_generateAccordion(dataJinja2['postfix']['vulnerabilities'], 'postfix')
if 'sysctl' in data['system']:
dataJinja2['sysctl'] = dict()
@@ -36,11 +36,21 @@ def generateHtmlReport(data):
dataJinja2['sysctl']['file']['filename'] = data['system']['sysctl']['file']['filename']
dataJinja2['sysctl']['file']['sysctl'] = data['system']['sysctl']['file']['sysctl']
_generateAccordion(dataJinja2['sysctl']['file']['sysctl'])
_generateAccordion(dataJinja2['sysctl']['file']['sysctl'], 'sysctl')
if 'apache' in data['system']:
pass
if 'localaccount' in data['system']:
if 'profile' in data['system']['localaccount']:
dataJinja2['profile'] = dict()
dataJinja2['profile']['filename'] = data['system']['localaccount']['profile']['filename']
dataJinja2['profile']['vulnerabilities'] = data['system']['localaccount']['profile']['vulnerabilities']
_generateAccordion(dataJinja2['profile']['vulnerabilities'], 'profile')
if 'pwd_quality' in data['system']['localaccount']:
pass
dataJinja2['year'] = '2023'
dataJinja2['hostname'] = data['hostname']
dataJinja2['kernel'] = data['kernel']
@@ -53,8 +63,8 @@ def generateHtmlReport(data):
print("The report is generated at this location: " \
f"reports/reports_{today}.html")
def _generateAccordion(obj):
def _generateAccordion(obj, parent):
index = 1
for entry in obj:
obj[entry]['accordion-id'] = f"accordion-{index}"
obj[entry]['accordion-id'] = f"accordion-{parent}-{index}"
index += 1