mirror of
http://git.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion/nihilist/darknet-lantern.git
synced 2025-05-16 20:26:58 +00:00
reworking in progress
This commit is contained in:
parent
1493e57174
commit
196cf331a8
8 changed files with 165 additions and 1 deletions
|
@ -1,4 +1,4 @@
|
||||||
# [Darknet Onion Webring](http://uptime.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion/)
|
# [Darknet Onion Webring (WIP)](http://uptime.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion/)
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
146
scripts/darknet_exploration.py
Normal file
146
scripts/darknet_exploration.py
Normal file
|
@ -0,0 +1,146 @@
|
||||||
|
import os, pwd
|
||||||
|
def main():
|
||||||
|
|
||||||
|
rootpath='/srv/darknet-onion-webring/'
|
||||||
|
homepath=pwd.getpwuid(os.getuid()).pw_dir
|
||||||
|
urlpath=homepath+'/.darknet_participant_url'
|
||||||
|
print(urlpath)
|
||||||
|
isitvalid="n"
|
||||||
|
|
||||||
|
#check if ~/.darknet_participant_url exists,
|
||||||
|
# if exists, instance= the content of ~/.darknet_participant_url (which is the url: such as uptime.nowherejez...onion)
|
||||||
|
|
||||||
|
while isitvalid != "y":
|
||||||
|
if os.path.isfile(urlpath):
|
||||||
|
with open(urlpath) as f:
|
||||||
|
instance = f.read()
|
||||||
|
# TODO check if the instance URL domain is valid
|
||||||
|
|
||||||
|
print("[+] file exists, your Webring URL is ", instance)
|
||||||
|
isitvalid = "y"
|
||||||
|
else:
|
||||||
|
print("[+] Instance Path doesn't exist yet")
|
||||||
|
# and ask for the instance URL domain
|
||||||
|
instance = input("What is your Instance domain ? (ex: uptime.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion):")
|
||||||
|
instancepath=rootpath+'www/participants/'+instance
|
||||||
|
# TODO check if the instance URL domain is valid
|
||||||
|
|
||||||
|
# ask the user if the instance URL is valid ?
|
||||||
|
print()
|
||||||
|
print(instance)
|
||||||
|
isitvalid=input("Is your this your instance domain ?")
|
||||||
|
# if yes, then write it into ~/.darknet_participant_url
|
||||||
|
if isitvalid != "y" :
|
||||||
|
print("OK writing the instance url to ~/.darknet_participants_url")
|
||||||
|
with open(urlpath, 'w') as file:
|
||||||
|
file.write(instance)
|
||||||
|
|
||||||
|
print("[+] Welcome to the Darknet Onion Webring, where you are exploring the Darknet and helping others do the same.")
|
||||||
|
print("""
|
||||||
|
1) add a new entry (into unverified.csv)
|
||||||
|
2) verify an entry (move an entry from unverified to verified.csv)
|
||||||
|
3) add a new webring participant (and download their files into their directory (without trusting them yet!))
|
||||||
|
4) trust a webring participant (Potentially dangerous)
|
||||||
|
""")
|
||||||
|
option = input("Select Option? (1-4)")
|
||||||
|
print(option)
|
||||||
|
match option:
|
||||||
|
case "0":
|
||||||
|
print("[+] Initial Setup")
|
||||||
|
# what is your instance url ? ex: uptime.nowherejez...onion
|
||||||
|
instance = input("What is your Instance domain ? (ex: uptime.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion):")
|
||||||
|
# check that it is only url.onion or subdomain.url.onion, and if the characters are only [a-zA-Z0-9.], use the function IsOnionDomainValid()
|
||||||
|
instancepath='/srv/darknet-onion-webring/www/participants/'+instance
|
||||||
|
print(instancepath)
|
||||||
|
# check if the directory already exists or not in www/participants/nowherejez...onion
|
||||||
|
if os.path.isdir(instancepath):
|
||||||
|
print("[+] Instance Path already exists, skipping.")
|
||||||
|
else:
|
||||||
|
print("[-] path doesnt exist")
|
||||||
|
# if doesnt exist, create it, copy the default anonymous instance banner in there.
|
||||||
|
# copy the blank verified.csv unverified.csv sensitive.csv blacklist.csv and webring-participants.csv files in the new directory
|
||||||
|
# print message to explain what's next: you have a new instance, it's now time to list your own links, and to browse other participant's links
|
||||||
|
|
||||||
|
case "1":
|
||||||
|
print("[+] Add a new Entry (into unverified.csv)")
|
||||||
|
# ask for the following:
|
||||||
|
# the name of the website (required)
|
||||||
|
# the url of the website (required)
|
||||||
|
# a quick description (optional)
|
||||||
|
# sensitive ? (y/n)
|
||||||
|
# (rest is automatic: status, score, instance is = '' because it is your own instance)
|
||||||
|
# check if the entry doesn't already exist in verified.csv and in unverified.csv
|
||||||
|
# if it doesnt exist, add it into unverified.csv
|
||||||
|
|
||||||
|
case "2":
|
||||||
|
print("[+] Verify an entry (move an entry from unverified.csv to verified.csv)")
|
||||||
|
# search for a word
|
||||||
|
# and display only the matching entries in an array format (display it in CLI).
|
||||||
|
# Each of the rows must have an index,
|
||||||
|
# prompt the user to ask for with row they want to move to verified.csv
|
||||||
|
# once selected, it must be able to print that row, and:
|
||||||
|
# append it into verified.csv
|
||||||
|
# remove it from unverified.csv
|
||||||
|
# print completed! You are now listing [name] (url) (sensitive).
|
||||||
|
|
||||||
|
case "3":
|
||||||
|
print("[+] add a new webring participant (and download their files into their directory (without trusting them yet!))")
|
||||||
|
# ask for the url to the other webring participant
|
||||||
|
# check if the url is valid or not: at http://URL.onion/participants/URL.onion/{verified.csv,unverified.csv,sensitive.csv,blacklist.csv,webring-participants.csv}
|
||||||
|
|
||||||
|
case "4":
|
||||||
|
print("[+] trust a webring participant (Potentially dangerous)")
|
||||||
|
# list the existing webring participants from webring-participants.csv and
|
||||||
|
# ask the user to pick the index (0-9?) of the instance to trust
|
||||||
|
# if index is valid, then mark the instance as trusted in webring-participants.csv
|
||||||
|
|
||||||
|
case _:
|
||||||
|
print("[-] ERROR, incorrect input")
|
||||||
|
|
||||||
|
|
||||||
|
def IsOnionValid(domain):
|
||||||
|
# check if the characters are only [a-zA-Z0-9.] with maximum 128 chars max?
|
||||||
|
# check that it is only url.onion or subdomain.url.onion,
|
||||||
|
# if OK return True
|
||||||
|
#if not : return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
def IsUrlValid(url):
|
||||||
|
# check if the characters are only [a-zA-Z0-9.:/] with maximum 128 chars max?
|
||||||
|
# check that it is only http(s)://wordA.wordB or http(s)://WordC.WordB.WordC, (onion or not), clearnet is fine too (double check if those are fine!)
|
||||||
|
# if OK return True
|
||||||
|
#if not : return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
def IsStatusValid(status):
|
||||||
|
# check if the characters are only [vx] with maximum 1 chars max
|
||||||
|
# if OK return True
|
||||||
|
#if not : return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
def IsDescriptionValid(desc):
|
||||||
|
# check if the characters are only [a-zA-Z0-9.,' ] with maximum 256 chars max
|
||||||
|
#(careful with the ' and , make sure you test if it fucks the csv up or else)
|
||||||
|
# if OK return True
|
||||||
|
#if not : return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
def IsCategoryValid(category):
|
||||||
|
# check if the characters are only [a-zA-Z0-9 ] with maximum 64 chars max
|
||||||
|
#(careful with the ' and , make sure you test if it fucks the csv up or else)
|
||||||
|
# if OK return True
|
||||||
|
#if not : return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
def IsNameValid(name):
|
||||||
|
# check if the characters are only [a-zA-Z0-9 ] with maximum 64 chars max
|
||||||
|
#(careful with the ' and , make sure you test if it fucks the csv up or else)
|
||||||
|
# if OK return True
|
||||||
|
#if not : return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
|
@ -0,0 +1,2 @@
|
||||||
|
blacklisted-words
|
||||||
|
porn
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
sensitive-words
|
||||||
|
Market
|
||||||
|
market
|
||||||
|
drug
|
||||||
|
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
Instance,Category,Name,URL,Sensitive,Description,Status,Score
|
||||||
|
,Infos and Links,Tor Taxi,http://tortaxi2dev6xjwbaydqzla77rrnth7yn2oqzjfmiuwn5h6vsk2a4syd.onion/,✔️,"List of links to go to popular darknet places",✔️,100.0
|
||||||
|
|
||||||
|
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
Instance,Category,Name,URL,Sensitive,Description,Status,Score
|
||||||
|
,Infos and Links,Psychonaut Wiki,http://vvedndyt433kopnhv6vejxnut54y5752vpxshjaqmj7ftwiu6quiv2ad.onion/,,"This is the wiki for psychonauts, it contains infos on substances and trip reports",✔️,100.0
|
||||||
|
,Infos and Links,DNM Bible,http://biblemeowimkh3utujmhm6oh2oeb3ubjw2lpgeq3lahrfr2l6ev6zgyd.onion/,✔️,"General guide on how to navigate the Darknet to buy drugs",✔️,100.0
|
||||||
|
|
||||||
|
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
Name,URL,Description,Trusted,Status,Score
|
||||||
|
Nowhere,http://uptime.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion,"Darknet Webring Onion Participant",✔️,✔️,100.0
|
|
Loading…
Add table
Add a link
Reference in a new issue