onionscan analys
This commit is contained in:
parent
de261542f6
commit
c83cfc9e74
24
flagging.py
Normal file
24
flagging.py
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
def scoring(baseScore):
|
||||||
|
print("Final score:", baseScore)
|
||||||
|
if baseScore >= 90:
|
||||||
|
print("Hidden service don't shows significant marks of potential insecurities.")
|
||||||
|
print("Minimal recommended Tor Browser mode: Standard")
|
||||||
|
if baseScore < 90:
|
||||||
|
if baseScore > 73:
|
||||||
|
print("Hidden service shows some kind of potential insecurities.")
|
||||||
|
print("Recommendation: don't use it for critical activities.")
|
||||||
|
print("Minimal recommended Tor Browser mode: Safer")
|
||||||
|
if baseScore <= 73 and baseScore > 60:
|
||||||
|
print("Hidden service showse significant marks of potential insecurities.")
|
||||||
|
print("Recommendation: don't use it for critical activities.")
|
||||||
|
print("Recommendation: don't share any personalized information within this hidden service.")
|
||||||
|
print("Minimal recommended Tor Browser mode: Safer")
|
||||||
|
if baseScore <= 60 and baseScore > 50:
|
||||||
|
print("Hidden service is likely insecure.")
|
||||||
|
print("Recommendation: don't use it for any activities other than browsing.")
|
||||||
|
print("Recommendation: don't share ANY information within this hidden service.")
|
||||||
|
print("Recommendation: generate new circut for this hidden service if you still insist to use it.")
|
||||||
|
print("Minimal recommended Tor Browser mode: Safest")
|
||||||
|
if baseScore <= 50:
|
||||||
|
print("Hidden service is problably honeypot.")
|
||||||
|
print("Recommendation: don't use it at all.")
|
120
main.py
Normal file
120
main.py
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
import os
|
||||||
|
import json
|
||||||
|
import re
|
||||||
|
from flagging import scoring
|
||||||
|
|
||||||
|
onionReport = os.getenv("ONIONSCAN_REPORT")
|
||||||
|
#http_headers = os.getenv("HTTP_HEADERS")
|
||||||
|
|
||||||
|
if len(onionReport) == 0:
|
||||||
|
print("OnionScan report not found, exiting...")
|
||||||
|
exit()
|
||||||
|
|
||||||
|
onionReport = json.loads(onionReport)
|
||||||
|
#http_headers = json.loads(http_headers)
|
||||||
|
|
||||||
|
print("Starting analysis...")
|
||||||
|
print("Starting at the base score 100")
|
||||||
|
baseScore = 100
|
||||||
|
|
||||||
|
hiddenService = onionReport['hiddenService']
|
||||||
|
print("Hidden service address:", hiddenService)
|
||||||
|
if hiddenService == " http://ciadotgov4sjwlzihbbgxnqg3xiyrg7so2r2o3lt5wz5ypk4sxyjstad.onion":
|
||||||
|
baseScore = 0
|
||||||
|
print("Score goes down, now:", baseScore)
|
||||||
|
print("This hidden service is likely owned by CIA.")
|
||||||
|
scoring(baseScore)
|
||||||
|
exit()
|
||||||
|
|
||||||
|
ssh = onionReport['sshDetected']
|
||||||
|
print("SSH?", ssh)
|
||||||
|
if ssh:
|
||||||
|
baseScore = baseScore * 0.67
|
||||||
|
print("Score goes down, now:", baseScore)
|
||||||
|
print("SSH key:", onionReport['sshKey'])
|
||||||
|
|
||||||
|
ftp = onionReport['ftpDetected']
|
||||||
|
print("FTP?", ftp)
|
||||||
|
if ftp:
|
||||||
|
baseScore = baseScore * 0.67
|
||||||
|
print("Score goes down, now:", baseScore)
|
||||||
|
print("FTP fingerprint:", onionReport['ftpFingerprint'])
|
||||||
|
print("FTP banner:", onionReport['ftpBanner'])
|
||||||
|
ftp = onionReport['ftpDetected']
|
||||||
|
|
||||||
|
smtp = onionReport['smtpDetected']
|
||||||
|
print("SMTP?", smtp)
|
||||||
|
if smtp:
|
||||||
|
baseScore = baseScore * 0.67
|
||||||
|
print("Score goes down, now:", baseScore)
|
||||||
|
print("SMTP fingerprint:", onionReport['smtpFingerprint'])
|
||||||
|
print("SMTP banner:", onionReport['smtpBanner'])
|
||||||
|
|
||||||
|
bitcoin = onionReport['bitcoinDetected']
|
||||||
|
print("Bitcoin?", bitcoin)
|
||||||
|
if bitcoin:
|
||||||
|
baseScore = baseScore * 0.81
|
||||||
|
print("Score goes down, now:", baseScore)
|
||||||
|
bitcoinInfo = onionReport['bitcoinServices']['bitcoin']
|
||||||
|
print("Bitcoin user agent:", bitcoinInfo['userAgent'])
|
||||||
|
print("Bitcoin version:", bitcoinInfo['protocolVersion'])
|
||||||
|
print("Bitcoin onion peers:", bitcoinInfo['onionPeers'])
|
||||||
|
|
||||||
|
idReport = onionReport['identifierReport']
|
||||||
|
|
||||||
|
privateKey = idReport['privateKeyDetected']
|
||||||
|
print("Private key found?", privateKey)
|
||||||
|
if privateKey:
|
||||||
|
baseScore = baseScore * 0.63
|
||||||
|
print("Score goes down, now:", baseScore)
|
||||||
|
|
||||||
|
apacheStatus = idReport['foundApacheModStatus']
|
||||||
|
print("Apache status found?", apacheStatus)
|
||||||
|
if apacheStatus:
|
||||||
|
baseScore = baseScore * 0.87
|
||||||
|
print("Score goes down, now:", baseScore)
|
||||||
|
|
||||||
|
ipAddress = idReport['ipAddresses']
|
||||||
|
print("IP address leakage?", ipAddress)
|
||||||
|
if ipAddress:
|
||||||
|
baseScore = baseScore * 0.55
|
||||||
|
print("Score goes down, now:", baseScore)
|
||||||
|
|
||||||
|
emailAddress = idReport['emailAddresses']
|
||||||
|
print("Email address found?", emailAddress)
|
||||||
|
if emailAddress:
|
||||||
|
baseScore = baseScore * 0.959
|
||||||
|
print("Score goes down, now:", baseScore)
|
||||||
|
|
||||||
|
analyticsId = idReport['analyticsIDs']
|
||||||
|
print("Analytics tags?", analyticsId)
|
||||||
|
if analyticsId:
|
||||||
|
baseScore = baseScore * 0.6
|
||||||
|
print("Score goes down, now:", baseScore)
|
||||||
|
|
||||||
|
risks = onionReport['simpleReport']['risks']
|
||||||
|
print("OnionScan detected risks:\n")
|
||||||
|
for r in risks:
|
||||||
|
t = r['title']
|
||||||
|
print("\tName:", t)
|
||||||
|
s = r['severity']
|
||||||
|
print("\tSeverity:", s)
|
||||||
|
if s == "info":
|
||||||
|
baseScore = baseScore * 0.999
|
||||||
|
print("\tScore goes down, now:", baseScore)
|
||||||
|
if s == "low":
|
||||||
|
baseScore = baseScore * 0.959
|
||||||
|
print("\tScore goes down, now:", baseScore)
|
||||||
|
if s == "medium":
|
||||||
|
baseScore = baseScore * 0.939
|
||||||
|
print("\tScore goes down, now:", baseScore)
|
||||||
|
if s == "high":
|
||||||
|
baseScore = baseScore * 0.87
|
||||||
|
print("\tScore goes down, now:", baseScore)
|
||||||
|
if s == "critical":
|
||||||
|
baseScore = baseScore * 0.77
|
||||||
|
print("\tScore goes down, now:", baseScore)
|
||||||
|
print("")
|
||||||
|
|
||||||
|
scoring(baseScore)
|
||||||
|
print("Analysis ended.")
|
Reference in New Issue
Block a user