Seems I was a little too hasty. I was able to change the numerical values
the code was using in connecting to get what I wanted. Now I just need to
figure out how to disconnect once successfully connected. Please let me know
if anyone has any ideas about how I should accomplish this. Thanks

On Fri, Dec 5, 2008 at 12:15 AM, blake askew <[EMAIL PROTECTED]> wrote:

> I am trying to write a script that will connect to an IRC channel and check
> if the server is a botnet c&c server. I have found several templates for
> connecting to irc, but they all rely on the MOTD to confirm connectivity.
> The problem is often botnets do not set up commands such as MOTD and LUSERS.
> I would like to connect to the suspected ip and then issue a few commands
> such as LUSER, LIST, WHO, STATS and MOTD, then exit. I am having trouble
> finding a reference that discusses how to do this. Most of what I have seen
> is for legite IRC, which has the script connect, join a channel and then do
> a trival task. Can someone help me modify or point me to a good example of
> how to accomplish this?
>
> Here is my IRC subroutine that allows me to connect and then does nothing:
>
> sub irc {
>
>     # create the IRC object
>     my $irc = new Net::IRC;
>     print ("    Creating connection to IRC server...");
>     my $conn = $irc->newconn(Server   => "$ip",
>              Port     => $port,
>              Nick     => "jsxpiid",
>              Ircname  => "habvhgdjba",
>              Username => "hvbcsrcx")
>         or die ("Can't connect to IRC server.");
>        print ("Connected\n");
>
>     # action to take once connected
>     sub on_connect {
>             my $self = shift;
>           print "*** Connected to IRC.\n";
>     }
>
>     # print any output data while connected
>     sub on_init {
>             my ($self, $event) = @_;
>             my (@args) = ($event->args);
>             shift (@args);
>
>             print "*** @args\n";
>
>     }
>
>     # handle what happens when receiving public (channel) text.
>     sub on_public {
>             my ($self, $event) = @_;
>             my @to = $event->to;
>             my ($nick, $mynick) = ($event->nick, $self->nick); # Sender
> text,
>         +Bot nick
>             my $host=$event->host; # Sender's hostname
>             my ($arg) = ($event->args); # The message
>
>             # parse the channel text
>             print "<$nick> $arg\n";
>
>     }
>
>     # handles what happens when receiving private message text
>     sub on_msg {
>             my ($self, $event) = @_;
>             my ($nick) = $event->nick; # Message Sender
>             my ($arg) = ($event->args); # Message Text
>             my $host=$event->host;
>
>             # Here's where we want to "parse" message text
>             print " - $nick -  $arg\n";
>
>     }
>
>     # use if nick is taken, setting it to an alternate nick.
>     sub on_nick_taken {
>             my ($self) = shift;
>
>             $self->nick("fxcvbynru");
>     }
>
>     # install handler subs
>     print ("    Installing local handlers...");
>     $conn->add_handler('public', \&on_public);
>     $conn->add_handler('msg',    \&on_msg);
>
>     print ("Completed\n");
>     print ("    Installing global handlers...");
>     $conn->add_global_handler([ 251,252,253,254,302,255 ], \&on_init);
>     $conn->add_global_handler(376, \&on_connect);
>     $conn->add_global_handler(433, \&on_nick_taken);
>
>     print ("Completed\n");
>
>     # start irc connection
>     $irc->start;
>
> }
> # end irc subroutine
>

Reply via email to