De Code Red worm maakt gebruik van een buffer-overflow in IIS. Als de worm een machine geïnfecteerd heeft controleert hij of de datum tussen de eerste en de negentiende van de maand. Als dat zo is genereerd hij een lijst met IP adressen die hij vervolgens probeert te infecteren. De random nummer generator die deze lijst met adressen genereert, wordt in de eerste versie van Code Red gebaseerd op een 'static seed' waardoor elke geïnfecteerde machine dezelfde lijst genereert. In het andere deel van de maand (tussen de 20e en 28e) voert de worm een DOS uit op www1.whitehouse.gov. Verder werden sommige websites worden gedefaced door de worm. Versie 1 van de worm staat in het geheugen, dus een reboot zorgt ervoor dat de geïnfecteerde machine weer schoon is. Versie 2 van deze worm gebruikte een 'random seed' in plaats van een 'static seed' waardoor elke geïnfecteerde machine een andere lijst IP adressen genereert.
CodeRedII is een compleet nieuwe worm, deze worm maakt weer gebruik van een buffer-overflow in IIS. Na het infecteren van een host controleert de worm of de host al geïnfecteerd is. Als dat niet het geval is maakt hij een backdoor en initialiseert het verspreidings mechanisme. De rest van de dag doet de worm niets, vervolgens reboot hij de machine. CodeRedII bevindt zich niet in het geheugen, een reboot helpt dus niet om de infectie weer ongedaan te maken. Na de reboot begint het verspreiden van de worm gebaseerd op een random gegenereerde lijst met IP adressen. CodeRedII defaced geen website en voert ook geen DOS-attack uit. CodeRedII is veel gevaarlijker dan CodeRed (versie 1 en 2) omdat er een backdoor geënstalleerd wordt.
Hier een stukje logfile uit een IIS 5 server waar deze worm probeert in te breken.
#Fields: date time c-ip cs-username s-ip s-port cs-method cs-uri-stem cs-uri-query sc-status cs(User-Agent) 2004-01-31 01:04:54 24.132.126.31 - 62.93.228.4 80 GET /wpad.dat - 404 Mozilla/4.0+(compatible;+MSIE+6.0;+Win32) 2004-01-31 01:08:45 62.163.117.185 - 62.93.228.14 80 GET /default.ida XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u6858%ucb d3%u7801%u9090%u9090%u8190%u00c3%u0003%u8b00%u531b%u53ff%u0078%u0000%u00 =a 200 - 2004-01-31 02:34:14 62.60.250.2 - 62.93.228.8 80 GET /default.ida XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u6858%ucb d3%u7801%u9090%u9090%u8190%u00c3%u0003%u8b00%u531b%u53ff%u0078%u0000%u00 =a 200 - 2004-01-31 02:50:01 62.78.215.218 - 62.93.228.33 80 GET /default.ida XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u6858%ucb d3%u7801%u9090%u9090%u8190%u00c3%u0003%u8b00%u531b%u53ff%u0078%u0000%u00 =a 200 - 2004-01-31 05:04:50 24.132.126.31 - 62.93.228.4 80 GET /wpad.dat - 404 Mozilla/4.0+(compatible;+MSIE+6.0;+Win32) 2004-01-31 07:50:11 62.16.143.85 - 62.93.228.40 80 GET /default.ida XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u6858%ucb d3%u7801%u9090%u9090%u8190%u00c3%u0003%u8b00%u531b%u53ff%u0078%u0000%u00 =a 200 - 2004-01-31 08:17:43 218.13.199.247 - 62.93.228.33 80 GET /default.ida XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u6858%ucb d3%u7801%u9090%u9090%u8190%u00c3%u0003%u8b00%u531b%u53ff%u0078%u0000%u00 =a 200 - 2004-01-31 09:04:48 24.132.126.31 - 62.93.228.4 80 GET /wpad.dat - 404 Mozilla/4.0+(compatible;+MSIE+6.0;+Win32) 2004-01-31 09:13:01 62.163.38.232 - 62.93.228.36 80 GET /default.ida XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u6858%ucb d3%u7801%u9090%u9090%u8190%u00c3%u0003%u8b00%u531b%u53ff%u0078%u0000%u00 =a 200 - 2004-01-31 09:44:15 221.11.100.38 - 62.93.228.32 80 GET /default.ida XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u6858%ucb d3%u7801%u9090%u9090%u8190%u00c3%u0003%u8b00%u531b%u53ff%u0078%u0000%u00 =a 200 - 2004-01-31 10:10:56 64.68.82.55 - 62.93.228.32 80 GET /robots.txt - 404 Googlebot/2.1+(+http://www.googlebot.com/bot.html) 2004-01-31 10:11:05 64.68.82.55 - 62.93.228.32 80 GET /index.html - 304 Googlebot/2.1+(+http://www.googlebot.com/bot.html) 2004-01-31 10:11:08 64.68.82.55 - 62.93.228.32 80 GET /index.html - 200 Googlebot/2.1+(+http://www.googlebot.com/bot.html) 2004-01-31 10:18:39 62.60.250.2 - 62.93.228.27 80 GET /default.ida XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u6858%ucb d3%u7801%u9090%u9090%u8190%u00c3%u0003%u8b00%u531b%u53ff%u0078%u0000%u00 =a 200 -
Dit is met ethereal te detecteren met het volgende displayfilter.
http contains "/default.ida XXXXXX"