Node:Top, Node «Next», Node «Up»(dir)
.--.--.--.--|  |--.-----|  |_|__|-----.
|     |  |  |     |_   -|   _|  |     /
|__|__|_____|__|__|_____|____|__|__|__\

Muhstik is a powerful bot for IRC. It can connect proxys by anonymous proxys. Once online, they coordinate their actions to be the more efficient.

This is Edition 1.6 of the muhstik manual, updated October 30, 2003.


Node:Copying, Node «Next», Node «Previous»:Top, Node «Up»Top

Copying

Muhstik is "free software"; this means that everyone is free to use it and free to redistribute it on certain conditions.

Muhstik is not in the public domain; it is copyrighted and there are restrictions on its distribution, but these restrictions are designed to permit everything that a good cooperating citizen would want to do. What is not allowed is to try to prevent others from further sharing any version of muhstik that they might get from you.

The precise conditions are found in the GNU General Public License that comes with muhstik.


Node:Introduction, Node «Next», Node «Previous»:Copying, Node «Up»Top

Introduction

Today IRC servers prevent you from flooding, that is to say send more than 1 message per second. Supposing you are trying to bypass this limit; you must use more than one identity on your IRC server. But there is a quota by IP on global connection, which stops you unless if you can spoof, starting a connection with an IP different from yours.

And that's the first use of muhstik : bounce to IRC servers from open proxies, as you can do in mIRC for example with the option "Use Firewall". Clones are launched into the background and distributed on different servers.

There are 3 types of proxies: HTTP Proxies, SOCKS, and telnet gateways (such as Wingates). Each type has a launcher associated, which uses a list of servers and a list of proxies. You can use different types in the same session, and even direct connections to the server.

When a muhstik clone succeed to connect to an IRC server, it becomes autonomous, like a bot. For example if it looses its connection, it can try to reconnect if it is the first time it has been thrown out.

Here comes the most interesting part of muhstik: its spirit of contradiction. All clones analyse the IRC operations they can see and if they are op, they will deop or kick any enemy operator in action, and op any friend on join or deop. The difficult point is to know at any time who is a friend and who is not. For that, the nicknames of the online clones are stored in their memory, in addition to a list of protected nicks.


Node:Compiling, Node «Next», Node «Previous»:Introduction, Node «Up»Top

Compiling

Using make

  1. GNU/Linux: make linux
  2. Solaris: make sun
  3. NetBSD: make netbsd
  4. MacOS X: make mac
  5. Cygwin: make cygwin
  6. Amiga: make amiga

Enabling IPV6

To enable IPV6, edit the Makefile to compile with the additional flag -DUSE_IPV6.


Node:Configuring, Node «Next», Node «Previous»:Compiling, Node «Up»Top

Configuring muhstik

Muhstik loads proxys on servers. You prepare a list of proxys and a list of servers and you put the names of the lists in the config file.


Node:Proxy files, Node «Next», Node «Previous»:Configuring, Node «Up»Configuring

Creating proxy files

In this version of muhstik, you can use: WINGATES, SOCKS 4 or 5, PROXYS, ROUTERS and VHOSTS.

The first thing to do is to prepare an entry list for each type of gate you want to use. The file formats are:

NOTE :
You can easily set comments like this:
127.0.0.1 #local server


Node:Server files, Node «Next», Node «Previous»:Proxy files, Node «Up»Configuring

Creating server files

For each type of proxy, you need to have a server list. For example, you must have 3 server files if you use in the same time gates, socks and proxies.

Edit text files with server names (hostnames or/and IP addresses), ports and the max number of clones to load on each one :

server1:port1 max1
server2:port2 max2
e.g.: my.server.net:6667 10
NOTE: If you set a server max to 0, you disable quota on this server.

If you want to connect to a server with a password and ident, for example to connect to a BNC, use :

server:port max password ident
NOTE: The ident can be omited.


Node:The config file, Node «Next», Node «Previous»:Server files, Node «Up»Configuring

Editing the main config file

Edit the muhstik.conf file and customize it.

To get a valid config file from the default one, you only need to setup the connection settings. There are always default values for the others.

You can use different types of connection in a same session, like that :

proxy_list proxylist
proxy_server_list servers
direct_server_list local

It would load the HTTP Proxys of the file proxylist on the servers of the file servers. Then it would connect other clones without spoof with the servers and quotas of the file local.

You can use many couples proxy/server with the same type, like that :

proxy_list proxy.us
proxy_server_list servers.us
proxy_save good.us
proxy_list proxy.de
proxy_server_list servers.de
proxy_save good.de

You are now ready to run muhstik !
To start it, type: ./muhstik <config file>


Node:Controlling, Node «Next», Node «Previous»:The config file, Node «Up»Top

Controlling your clones

Muhstik is not an IRC client. It is a bot. And like most of the bots, it can be controlled from the console or through a DCC Chat session on one of your clones.


Node:Identifying, Node «Next», Node «Previous»:Controlling, Node «Up»Controlling

Identifying

In a channel

The only command muhstik recognizes in a channel is !op. It will set you op if you are in the the auto op list.
See the commands +aop and -aop below.

By /msg or /notice

Since the version 3.9, it also accepts commands given by /notice or /msg from aops. To identify yourself by /notice or /msg, just send "identify <dcc_pass>" to a clone and you will be recognized as an op.

By DCC

Just make a DCC on a clone; it will ask for the password you have set in the config file. If you enter the good pass, it adds you to the aop list and to the list of protected nicks.


Node:Built-in commands, Node «Next», Node «Previous»:Identifying, Node «Up»Controlling

Built-in commands

  1. Info

    help or ?
    Prints the available commands with short descriptions

    stat
    Prints status (uptime, nicks, channels, jobs, users, shit list, links...)
     
  2. Basic actions
     
    join <channel> [<delay>] [<key>]
    Joins or rejoins the channel you specify
    Delay is an average time in seconds to use between two joins.

    part <channel> [:<reason>]
    Parts the channel you specify

    quit [:<reason>]
    Shut down muhstik

    privmsg <nick or chan> :<message>
    To send a message

    mode <channel> <parms>
    IRC protocol

    kick <channel> <nick> [:<reason>]
    IRC protocol

    topic <channel> :<topic>
    IRC protocol
     
  3. Advanced actions
     
    nicks
    Change all clone nicks

    kb <chan> <nick>
    To kickban <nick> from <chan>

    mo <chan>
    To make the clones reop themselve on the chan

    md <chan>
    To deop all enemy ops on the chan

    mk <chan>
    To kick all enemies on the chan

    mkb <chan>
    To kickban all enemies on the chan

    mu <chan>
    Mass unban

    echo <nick>
    Echo nick's words
    To stop, type echo.

    to <chan> <server1> <server2>
    collide nicks on netsplit
    server1 = server to get op nicks
    server2 = server to change nicks
    If the chan is +s, it will only work if your clones are on.

    select <nick> :<IRC command>
    make only the selected clone send a raw command to IRC

    select * :<IRC command>
    send a raw command to all the online clones
     
  4. Modes
     
    agg
    Switch the aggressive mode on/off
    In this mode, muhstik deops enemys actively and kicks them on privmsg.

    peace
    Switch the peace mode on/off
    In this mode, muhstik never deops enemies by revenge.

    random
    Switch between random nick and wordlist modes

    broadcast
    Switch the broadcast mode in the command echo
    If this mode is ON, echo broadcasts to all the active channels.

    mute
    Stop writting to stdout
     
  5. Environment
     
    chankey <chan> <key>
    Useful when the channel to join is set +k (key)

    chankey <chan>
    Disables chankey

    nicklist <filename>
    Use filename as a wordlist

    passwd <new pass>
    To change the DCC password

    +prot <nick>
    -prot <ID>
    Manage the list of protected nicks
    Protection features reop and revenge

    +aop <pattern>
    -aop <ID>
    Manage the auto op list
    If your nick!ident@host matches an entry of this list, a clone will op you when you join a channel or when you send !op to a channel, and you will be recognized as a protected nick.

    For example, *!*@127.0* is a pattern that matches all users, whose IPs
    are unresolvable and begin with 127.0.

    +shit <pattern> [reason]
    -shit <ID>
    Manage the shit list
    On join, a clone will kickban all nick!ident@host matching the pattern.

    NOTE:
    If you use -prot, -aop or -shit with -1, muhstik clears the associated list. For example, -prot -1 makes the protected nick list empty.

    load <type> <proxy> <port> <server> <port>
    load a clone dynamically

    +scan <type> <scan port> <server> <port> <filename> [<mode>]
    -scan <ID>
    Set/unset a scan on join
    First, a clone is choosed to get the hosts from join messages. This clone looks if the host taken from IRC is in the file filename. If it is not, it loads a clone with the host and specified scan port and server:port. If the new clone connects successfully, it puts its hostname to the file and quits IRC.

    Available types :
    0: WINGATE
    1: SOCKS4
    2: SOCKS5
    3: PROXY
    4: VHOST
    5: CISCO
    6: CAYMAN
    7: NOSPOOF

    Available modes :
    0: scan only
    1: don't join any channel on connection
    2: join active channels on connection


Node:Scripting, Node «Next», Node «Previous»:Built-in commands, Node «Up»Controlling

Scripting

You can script muhstik using the botnet. See /script for examples.


Node:Background mode, Node «Next», Node «Previous»:Scripting, Node «Up»Top

Launching muhstik in background

  1. First way
     
    In the config file, use the option bg to fork() into the background.
     
  2. Second way
     
    If you want to send your clones to the background after commanding them from the console, use this method:

    a) Type mute in the console,
    b) hit CTRL-Z,
    c) type bg


Node:Linking bots, Node «Next», Node «Previous»:Background mode, Node «Up»Top

Linking bots

When the clones are linked, they are quite like launched from an unique muhstik. So for example, when you enter a command on one, they execute it all.

First you need to set a secure password on every box you want to link with the option 'link_pass'.

Then muhstik will start by loading a link server on the port 7777.
You can change this port with the option 'link_port'.

To add a muhstik to your muhstik network, configure the 'link_host' line in its config file by giving the host and port of a muhstik server, that is to say any muhstik with the 'link_pass' set.

If you have a file that is shared between your different shells, you can use it to syncronize your clones when they reply to an event. For that, use the option 'link_file' of the config file.


Node:Mailing list, Node «Previous»:Linking bots, Node «Up»Top

Mailing list

Want to receive important emails about updates, bugs, etc ?
Subscribe to the muhstik mailing list below.
http://lists.sourceforge.net/lists/listinfo/muhstik-users
Or visit:
http://muhstik.sourceforge.net