Skip to main content
Welcome guest. | Register | Login | Post

QuakeNet Q challenge-response auth for xchat

4 replies [Last post]
free-zombie's picture
Offline
Joined: 2006-03-08

for no particular reason, I decided to go on QuakeNet IRC today and was immediately fascinated by Q Smiling
anyway, I wrote a little python xchat plugin that supports Q's Challenge-response auth, a feature which FreeNode's NickServ had not. This way, your password is not sent over the network plain text.

# to autoload, put into the xchat directory, for example as ~/.xchat2/qauth.py
# commands:
#   /QAUTH <password> auth to Q via challenge-response on QuakeNet
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation
#
# have fun and get Nuxified.ORG !!!

__module_name__ = "qauth"
__module_version__ = "0.1"
__module_description__ = "Q challenge-response authentication"

import xchat
from md5 import md5

pw = ''

def qauth_cb(word, word_eol, udata):
    if len(word) < 2:
        print 'You must give a password.'
    elif 'quakenet' not in xchat.get_info('server').lower():
        print 'You do not seam to be on QuakeNet.'
    else:
        global pw
        pw = word[1]
        xchat.command('MSG

CHALLENGE')
    return xchat.EAT_ALL

def notice_cb(word, word_eol, udata):
    if word[0] == ':Q!TheQBot@CServe.quakenet.org' and word[3] == ":CHALLENGE":
        if word[4] != "MD5":
            print "Q wants me to use the unknown hashing algorithm %s."
            print "You may want to update qauth.py."
        else:
            global pw
            xchat.command('MSG

CHALLENGEAUTH %s %s'
                % (word[2], md5(pw+' '+word[5]).hexdigest()))
            pw = ''

xchat.hook_command('QAUTH', qauth_cb,
    help='/QAUTH <passwd> auth to Q via challenge-response on QuakeNet')
xchat.hook_server('NOTICE', notice_cb)

Offline
Joined: 2005-12-20
Cool, nice work free-zombie

Cool, nice work free-zombie Smiling

 

Bound to help the people who go on quakenet stay secure :) 

AndrewB's picture
Offline
Joined: 2005-12-18
What is 'Q'?

What is 'Q'?

libervisco's picture
Offline
Joined: 2006-05-04
Hmm, Q might be that

Hmm, Q might be that omnipotent being from Star Trek? Sticking out tongue

free-zombie's picture
Offline
Joined: 2006-03-08
Q is a *Serv equivalent used

Q is a *Serv equivalent used on QuakeNet

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.