Honeynet Project
http://www.honeynet.org
Last Modified: 17 February, 2005
In the following, we cover the more popular commands implemented in the common bots we have captured in the wild. Presenting all the commands is beyond the scope of this paper, as Agobot comes along with over 90 commands in the default configuration.
Starts a SYN-flood on ports 21,22,23,25,53,80,81,88, 110,113,119,135,137,139,143,443,445,1024,1025,1433, 1500,1720,3306,3389,5000,6667,8000,8080
Implements the well known DDoS attack Mixter authored in 1999. /* * targa3 - 1999 (c) Mixter* * IP stack penetration tool / 'exploit generator' * Sends combinations of uncommon IP packets to hosts * to generate attacks using invalid fragmentation, protocol, * packet size, header values, options, offsets, tcp segments, * routing flags, and other unknown/unexpected packet values. * Useful for testing IP stacks, routers, firewalls, NIDS, * etc. for stability and reactions to unexpected packets. * Some of these packets might not pass through routers with * filtering enabled - tests with source and destination host * on the same ethernet segment gives best effects. */ taken from http://packetstormsecurity.org/DoS/targa3.c
This is real nasty since it fetches websites from a webserver. If "recursive" is set, the bot parses the replies and follows links recursively.
Anubis Bagle CPanel DCOM DCOM2 Doom DW Ethereal HTTP Locator LSASS NetBios Optix SQL UPNP WKS
webdav ntpass netbios dcom135 dcom445 dcom1025 dcom2 iis5ssl mssql beagle1 beagle2 mydoom lsass_445 lsass_139 optix upnp netdevil DameWare kuang2 sub7
So far, SDBot does not implement dedicated spamming methods. But other options to send spam are possible: The spammer uses the "download" command to download and execute a SOCKSv4/v5 server. The server publishes his IP-address and SOCKS-port at a file on a webserver. Via this backdoor, spam can be sent.
Agobots sniffing is really "advanced": If you compile the bot with sniffing enabled, it drops a stripped down lipcpap dll on startup and registers it as system driver. The sniffing thread then uses libpcre to lookout for bot commands
"^:(.*)!(.*)@(.*) ((?i)PRIVMSG|NOTICE) (.*) :(.)((?i)login|auth|id|ident|hashin|secure|l) (.*)$" "^((?i)oper )(.*)" "^:(.*) 381 (.*) :(.*)" "^((?i)nickserv identify) (.*)$" "^:.* ((?i)notice|privmsg) (.*) :Password accepted.*" Botnet DDoS: "^:(.*)!(.*)@(.*) ((?i)PRIVMSG|NOTICE) (.*) :(.)((?i)ddos|packet|flood|udp|syn|pfast|coldrage|syn3|syn2|targa|icmp|fuck|random) (.*)$"
"^((?i)USER )(.*)" "^((?i)PASS )(.*)" "^(230 )(.*)"
SDBots sniffing is based on Windows raw socket listening. Compared to the way Agobots sniffing is implemented, this way is ineffective and poorly: The bot even sniffs his own traffic and recognizes it as sniffed traffic. In addition, SDBot lacks PCRE support and uses strstr() for comparison.