1
mirror of git://git.acid.vegas/IRCP.git synced 2024-12-27 08:56:37 +00:00

Throttle fine funed again, loop_nick more ranomized, README updated TODOs

This commit is contained in:
Dionysus 2023-06-29 01:02:41 -04:00
parent 52fbb67808
commit 3f10e115af
Signed by: acidvegas
GPG Key ID: EF4B922DB85DC9DE
2 changed files with 21 additions and 17 deletions

View File

@ -51,10 +51,11 @@ Mass scanning *default* ports of services is nothing new & though port 6667 is n
* Checking for IPv6 availability *(SSL= in 005 responses may help verify IPv6)*
* Support for IRC servers using old versions of SSL
* Support for hostnames in targets list *(Attempt IPv6 & fallback to IPv4)*
* Fix CTCP *(More involved than just sending CTCP raw to the server to get a response)*
* How do we handle the possibility of connecting to multiple servers linked to same network?
* Seperate lists for failed & banned networks
## Opt-out
The IRC networks we scanned are PUBLIC networks...any person can freely connect & parse the same information. Send your hate mail to [scan@internetrelaychat.org](mailto://scan@internetrelaychat.org)
You can request to opt out of our scans by sending an email to [scan@internetrelaychat.org](mailto://scan@internetrelaychat.org)
___

33
ircp.py
View File

@ -10,31 +10,34 @@ import ssl
import sys
import time
# Make sure you have enough RAM for logmax*threads
# For example, 5000000 log_max (5MB) on 1000 threads could *potentially* use up to 5GB in RAM
class settings:
daemon = False # Run in daemon mode (24/7 throttled scanning)
errors = True # Show errors in console
errors_conn = False # Show connection errors in console
log_max = 5000000 # Maximum log size (in bytes) before starting another
log_max = 5000000 # 5mb # Maximum log size (in bytes) before starting another
nickname = 'IRCP' # None = random
username = 'ircp' # None = random
realname = 'scan@internetrelaychat.org' # None = random
ns_mail = 'scan@internetrelaychat.org' # None = random@random.[com|net|org]
ns_pass = 'changeme' # None = random
ns_pass = None # None = random
vhost = None # Bind to a specific IP address
class throttle:
channels = 3 if not settings.daemon else 2 # Maximum number of channels to scan at once
commands = 1.5 if not settings.daemon else 3 # Delay bewteen multiple commands send to the same target
connect = 15 if not settings.daemon else 60 # Delay between each connection attempt on a diffferent port
delay = 300 if not settings.daemon else 600 # Delay before registering nick (if enabled) & sending /LIST
join = 10 if not settings.daemon else 30 # Delay between channel JOINs
nick = 300 if not settings.daemon else 600 # Delay between every random NICK change
part = 10 if not settings.daemon else 30 # Delay before PARTing a channel
seconds = 300 if not settings.daemon else 600 # Maximum seconds to wait when throttled for JOIN or WHOIS
threads = 300 if not settings.daemon else 100 # Maximum number of threads running
timeout = 30 if not settings.daemon else 60 # Timeout for all sockets
whois = 15 if not settings.daemon else 30 # Delay between WHOIS requests
ztimeout = 600 if not settings.daemon else 900 # Timeout for zero data from server
channels = 5 if not settings.daemon else 3 # Maximum number of channels to scan at once
commands = 1.5 if not settings.daemon else 3 # Delay bewteen multiple commands send to the same target
connect = 15 if not settings.daemon else 60 # Delay between each connection attempt on a diffferent port
delay = 300 if not settings.daemon else 600 # Delay before registering nick (if enabled) & sending /LIST
join = 10 if not settings.daemon else 30 # Delay between channel JOINs
nick = 900 if not settings.daemon else 1200 # Delay between every random NICK change
part = 10 if not settings.daemon else 30 # Delay before PARTing a channel
seconds = 300 if not settings.daemon else 600 # Maximum seconds to wait when throttled for JOIN or WHOIS
threads = 500 if not settings.daemon else 300 # Maximum number of threads running
timeout = 30 if not settings.daemon else 60 # Timeout for all sockets
whois = 15 if not settings.daemon else 30 # Delay between WHOIS requests
ztimeout = 600 if not settings.daemon else 900 # Timeout for zero data from server
class bad:
donotscan = (
@ -250,7 +253,7 @@ class probe:
async def loop_nick(self):
try:
while True:
await asyncio.sleep(throttle.nick)
await asyncio.sleep(throttle.nick+random.randint(60,90))
self.nickname = rndnick()
await self.raw('NICK ' + self.nickname)
debug(self.display + '\033[0;35mNICK\033[0m - new identity')