I get in the partyline of the hub bot:
Code: Select all
[20:50:16] <Wars> [15:43] <trojan-hub.tcl> Connection from 208.110.72.122:52959 (sock20)
Code: Select all
[20:50:16] <Wars`Relay01> [15:43] <trojan.tcl> Error connecting to trojan db:
[20:50:16] <Wars`Relay01> [15:43] invalid command name "sock17"
[20:50:16] <Wars`Relay01> [15:43] <trojan.tcl> End of socket error.
Code: Select all
[20:52:11] <C15|r0t3n> .tcl fconfigure $trojan::socket -peername
[20:52:11] <Wars`Relay01> [15:44] tcl: builtin dcc call: *dcc:tcl r0t3n 13 fconfigure $trojan::socket -peername
[20:52:11] <Wars`Relay01> [15:44] tcl: evaluate (.tcl): fconfigure $trojan::socket -peername
[20:52:11] <Wars`Relay01> Tcl: 208.110.72.122 debian.nkom.com 2000
[20:52:12] <Wars`Relay01> [15:45] @#Wars.admin (+sCtNn) : [m/9 o/8 h/0 v/0 n/1 b/3 e/0 I/0]
Code: Select all
[20:52:51] <C15|r0t3n> .tcl fconfigure sock20 -peername
[20:52:52] <Wars> [15:45] tcl: builtin dcc call: *dcc:tcl r0t3n 18 fconfigure sock20 -peername
[20:52:52] <Wars> [15:45] tcl: evaluate (.tcl): fconfigure sock20 -peername
[20:52:52] <Wars> Tcl error: can not find channel named "sock20"
Code: Select all
namespace eval trojanhub {
variable version "1.00-HUB"
variable author "r0t3n"
variable script [lindex [split [info script] /] end]
variable homechan "#antitrojan"
variable adminchan "#bs.admin"
variable ports
array set ports {
"1080" "proxy"
"8080" "proxy"
}
if {![info exists trojanhub::socket]} {
variable socket ""
}
variable port "2000"
variable passwd "trojan"
if {![info exists trojanhub::socket] || ![string match -nocase sock* $trojanhub::socket]} {
if {[catch { [set ::trojanhub::socket [socket -server [namespace current]::connection ${port}]] } err]} {
unset trojanhub::socket
putlog "<${script}> Server socket failed to open on port ${port}:"
foreach x [split $err \n] {
putlog "$x"
}
putlog "<${script}> End of server socket error."
} else {
putlog "<${script}> Server socket opened on port {$port}."
}
} else {
putlog "<${script}> Server socket already open!"
}
putlog "<${script}> Connection password set to: ${passwd}."
}
proc trojanhub::connection {sock addr port} {
putlog "<$trojanhub::script> Connection from ${addr}:${port} ($sock)"
set trojanhub::addr($sock) [list $addr $port]
fconfigure $sock -buffering line -blocking 0
fileevent $sock readable [list trojanhub::commands $sock]
}
proc trojanhub::commands {sock} {
if {[fconfigure $sock -error] != ""} {
if {[info exists trojanhub::addr($sock)]} {
unset trojanhub::addr($sock)
}
close $sock
putlog "<$trojanhub::script> Closed $sock due to socket error!"
} elseif {[eof $sock]} {
if {[info exists trojanhub::addr($sock)]} {
unset trojanhub::addr($sock)
}
close $sock
putlog "<$trojanhub::script> Closed $sock due to eof!"
} elseif {[catch {gets $sock line}]} {
if {[info exists trojanhub::addr($sock)]} {
unset trojanhub::addr($sock)
}
close $sock
putlog "<$trojanhub::script> Closed $sock due to gets line error!"
} elseif {
# commands etc go here in a switch
}
}
Code: Select all
namespace eval trojan {
variable author "r0t3n"
variable version "1.00-LEAF"
variable script [lindex [split [info script] /] end]
if {![info exists trojan::socket]} {
variable socket
}
variable ip "208.110.72.122"
variable port "2000"
variable passwd "trojan"
if {![info exists trojan::socket] || ![string match -nocase sock* $trojan::socket]} {
if {[catch { [set trojan::socket [socket ${ip} ${port}]] } err]} {
unset trojan::socket
putlog "<${script}> Error connecting to trojan db:"
foreach x [split $err \n] {
putlog "$x"
}
putlog "<${script}> End of socket error."
} else {
putlog "<${script}> Connected to trojan db!"
}
} else {
putlog "<${script}> Already connected to trojan db!"
}
variable whois
array set whois {}
variable kickmsg {
"just another irc-trojan drone - :id:"
"irc-trojan drone detected! - :id:"
"its fun kicking you trojans - :id:"
"not another trojan...? - :id"
"you cant get past me you trojans - :id:"
"you have just benn drone-ized by me! - :id"
"just another parasite! - :id:"
"just another doctor fighting the infections - :id:"
"well someone has to fight you infections off!? - :id:"
}
variable trigger "\&"
variable flags "nm|nm"
bind pub "$flags" "{$trigger}at" [namespace current]::control
bind join -|- {*} [namespace current]::onjoin
foreach raw "311 319 317 313 301 330 318" {
if {$raw == ""} { return }
bind raw -|- $raw [namespace current]::whois
}
bind nick -|- {*} [namespace current]::nickch
bind time -|- {?0 * * * *} [namespace current]::reload
}
proc trojan::commands {sock} {
if {[set err [fconfigure $sock -error]]} {
set trojan::socket ""
close $sock
putlog "Trojan db connection ($sock) closed due to socket fconfigure error!"
foreach x [split $err \n] {
putlog "$x"
}
putlog "End of fconfigure error!"
} elseif {[eof $sock]} {
set trojan::socket ""
close $sock
putlog "Trojan db connection ($sock) closed due to eof error!"
} elseif {[catch {gets $sock line}]} {
set trojan::socket ""
close $sock
putlog "Trojan db connection ($sock) closed due to catch error!"
} else {
set arguments "[gets $sock line]"
set cmd [lindex [split $arguments] 0]
switch -exact -- $cmd {
"acad0ced00954d1b2c17bf30528acce6" {
set nickname [lindex [split $arguments] 1]
set trojan::whois($nickname) "1"
putquick "WHOIS $nickname $nickname"
}
"e13ff1e898920d2c7ce191c4aad11319" {
set result [trojan::portscan [lindex [split $arguments] 1] [lrange $arguments 2 end]]
puts $sock "379f0209b3f2aa2adafe3f8b4f1727e4 $result [lindex [split $arguments] 1] $result"
}
"5cd8a3828ce36907a27551de5e71221e" {
set nickname [lindex [split $arguments] 1]
set banmask [lindex [split $arguments] 2]
set gid [lindex [split $arguments] 3]
set kmsg [lindex [split $trojan::kickmsg] [rand [llength $trojan::kickmsg]]]
foreach c [channels] {
if {[channel get $c trojan]} {
if {[onchan $nickname $c]} {
channel set $c trojan_kid [set kid [expr {[channel get $c trojan_kid] + 1}]]
putquick "MODE $c -o+b $nickname $banmask"
putquick "KICK $c $nickname :$kmsg"
}
}
}
}
"default" {
putlog "<$trojan::script> Unknown command: $arguments"
}
}
}
}
Thanks in advance!