1ETTERCAP-PLUGINS(8) System Manager's Manual ETTERCAP-PLUGINS(8)
2
3
4
6 ettercap-plugins - A collection of plugins for ettercap
7
8
10 Ettercap(8) supports loadable modules at runtime. They are called plug‐
11 ins and they come within the source tarball. They are automatically
12 compiled if your system supports them or until you specify -DEN‐
13 ABLE_PLUGINS=OFF option to the cmake configure script.
14 Some of older ettercap plugins (roper, banshee, and so on) have not
15 been ported in the new version. By the way, you can achieve the same
16 results by using new filtering engine.
17 If you use interactive mode, most plugins need to "Start Sniff" before
18 using them.
19
20
21 To have a list of plugins installed in your system do that command:
22
23 ettercap -P list
24
25
26 The following is a list of available plugins:
27
28
29 arp_cop
30
31 It reports suspicious ARP activity by passively monitoring ARP
32 requests/replies. It can report ARP posioning attempts, or sim‐
33 ple IP-conflicts or IP-changes. If you build the initial host
34 list the plugin will run more accurately.
35
36 example :
37
38 ettercap -TQP arp_cop //
39
40
41
42 autoadd
43
44 It will automatically add new victims to the ARP poisoning mitm
45 attack when they come up. It looks for ARP requests on the lan
46 and when detected it will add the host to the victims list if it
47 was specified in the TARGET. The host is added when an arp
48 request is seen form it, since communicating hosts are alive :)
49
50
51
52 chk_poison
53
54 It performs a check to see if the arp poisoning module of etter‐
55 cap was successful. It sends spoofed ICMP echo packets to all
56 the victims of the poisoning pretending to be each of the other
57 targets. If we can catch an ICMP reply with our MAC address as
58 destination it means that the poisoning between those two tar‐
59 gets is successful. It checks both ways of each communication.
60 This plugin makes sense only where poisoning makes sense. The
61 test fails if you specify only one target in silent mode. You
62 can't run this plugin from command line because the poisoning
63 process is not started yet. You have to launch it from the
64 proper menu.
65
66
67
68 dns_spoof
69
70 This plugin intercepts DNS query and reply with a spoofed
71 answer. You can choose to which addresses the plugin has to
72 reply, and the expiry time in seconds (TTL) by modifying the
73 etter.dns file. The plugin intercepts A, AAAA, PTR, MX, WINS,
74 SRV and TXT request. If it was an A request, the name is
75 searched in the file and the IP address is returned (you can use
76 wildcards in the name).
77 The same applies if it was a AAAA request.
78
79 TTL is an optional field which is specified as the last option
80 in an entry in the etter.dns file. The TTL is specified in a
81 number of seconds from 0 to 2^31-1 (see RFC 2181). TTL is speci‐
82 fied on a per-host basis. If the TTL is not specified for a par‐
83 ticular host, the default value is 3600 seconds (1 hour).
84
85 If it was a PTR request, the IP address is searched in the file
86 and the name is returned (except for those name containing a
87 wildcard). For PTR requests, IPv4 or IPv6 addresses are sup‐
88 ported.
89
90 In case of MX request a special reply is crafted. The host is
91 resolved with a fake host 'mail.host' and the additional record
92 contains the IP address of 'mail.host'. The first address that
93 matches is returned, so be careful with the order. The IP
94 address for MX requests can be a IPv4 or a IPv6 address.
95
96 If the request was a WINS request, the name is searched in the
97 file and the IP address is returned.
98
99 In case of SRV request, a special reply is crafted. The host is
100 resolved with a fake host 'srv.host' and the additional record
101 contains the IP address of 'srv.host'. The IP address for SRV
102 requests can be a IPv4 or a IPv6 address.
103
104 In case of a TXT request, the string defined is being returned.
105 The string has to be wrapped in double quotes. Wildcards for the
106 requested name can also be used.
107
108 A special reply can be spoofed for A or AAAA requests, if the
109 'undefined address' is specified as the IP address in the file.
110 Then the client gets a response which stops resolution process‐
111 ing imediately. This way one can control which address family is
112 being used to access a dual-stacked host.
113
114 In the case of an ANY request, all matching results of type A,
115 AAAA, MX and TXT are returned in the reply. If the 'undefined
116 address' for A or AAAA records is defined, nothing is returned
117 for these types whether or not the name matches.
118
119
120
121 mdns_spoof
122
123 This plugin does the same as the dns_spoof plugin described
124 above, despite that it listens for mDNS (Multicast DNS) queries
125 on UDP port 5353. To choose to which address the plugin shall
126 reply, you have to modify a diffent file called etter.mdns. Due
127 to the nature of mDNS, the plugin intercepts only A, AAAA, PTR
128 and SRV requests.
129
130 The way the mdns_spoof plugin interprets the etter.mdns file and
131 the rules that apply are the same as with the dns_spoof plugin,
132 although currently the mdns_spoof plugin lacks support for cus‐
133 tom TTL. The TTL for all spoofed mDNS replies is 3600 seconds (1
134 hour).
135
136
137
138 dos_attack
139
140 This plugin runs a d.o.s. attack against a victim IP address. It
141 first "scans" the victim to find open ports, then starts to
142 flood these ports with SYN packets, using a "phantom" address as
143 source IP. Then it uses fake ARP replies to intercept packets
144 for the phantom host. When it receives SYN-ACK from the victim,
145 it replies with an ACK packet creating an ESTABLISHED connec‐
146 tion. You have to use a free IP address in your subnet to cre‐
147 ate the "phantom" host (you can use find_ip for this purpose).
148 You can't run this plugin in unoffensive mode.
149 This plugin is based on the original Naptha DoS attack
150 (http://razor.bindview.com/publish/advisories/adv_NAPTHA.html)
151
152 example :
153
154 ettercap -TQP dos_attack
155
156
157 dummy
158
159 Only a template to demonstrate how to write a plugin.
160
161
162
163 find_conn
164
165 Very simple plugin that listens for ARP requests to show you all
166 the targets an host wants to talk to. It can also help you find‐
167 ing addresses in an unknown LAN.
168
169 example :
170
171 ettercap -TQzP find_conn
172
173 ettercap -TQu -i eth0 -P find_conn
174
175
176
177 find_ettercap
178
179 Try to identify ettercap packets sent on the LAN. It could be
180 useful to detect if someone is using ettercap. Do not rely on it
181 100% since the tests are only on particular sequence/identifica‐
182 tion numbers.
183
184
185
186 find_ip
187
188 Find the first unused IP address in the range specified by the
189 user in the target list. Some other plugins (such as gre_relay)
190 need an unused IP address of the LAN to create a "fake" host.
191 It can also be useful to obtain an IP address in an unknown LAN
192 where there is no dhcp server. You can use find_conn to deter‐
193 mine the IP addressing of the LAN, and then find_ip. You have
194 to build host list to use this plugin so you can't use it in
195 unoffensive mode. If you don't have an IP address for your
196 interface, give it a bogus one (e.g. if the LAN is
197 192.168.0.0/24, use 10.0.0.1 to avoid conflicting IP), then
198 launch this plugin specifying the subnet range. You can run it
199 either from the command line or from the proper menu.
200
201 example :
202
203 ettercap -TQP find_ip //
204
205 ettercap -TQP find_ip /192.168.0.1-254/
206
207
208
209 finger
210
211 Uses the passive fingerprint capabilities to fingerprint a
212 remote host. It does a connect() to the remote host to force the
213 kernel to reply to the SYN with a SYN+ACK packet. The reply will
214 be collected and the fingerprint is displayed. The connect()
215 obey to the connect_timeout parameter in etter.conf(5). You can
216 specify a target on command-line or let the plugin ask the tar‐
217 get host to be fingerprinted. You can also specify multiple tar‐
218 get with the usual multi-target specification (see ettercap(8)).
219 if you specify multiple ports, all the ports will be tested on
220 all the IPs.
221
222 example :
223
224 ettercap -TzP finger /192.168.0.1/22
225 ettercap -TzP finger /192.168.0.1-50/22,23,25
226
227
228
229 finger_submit
230
231 Use this plugin to submit a fingerprint to the ettercap website.
232 If you found an unknown fingerprint, but you know for sure the
233 operating system of the target, you can submit it so it will be
234 inserted in the database in the next ettercap release. We need
235 your help to increase the passive fingerprint database. Thank
236 you very much.
237
238 example :
239
240 ettercap -TzP finger_submit
241
242
243 fraggle_attack
244
245 This plugin performs a DoS attack because it sends a large
246 amount of UDP echo and chargen traffic to all hosts in target2
247 with a fake source ip address (victim).
248
249 example (192.168.0.5 is the victim):
250
251 ettercap -i eth1 -Tq /192.168.0.5/ // -P fraggle_attack
252
253
254 gre_relay
255
256 This plugin can be used to sniff GRE-redirected remote traffic.
257 The basic idea is to create a GRE tunnel that sends all the
258 traffic on a router interface to the ettercap machine. The plug‐
259 in will send back the GRE packets to the router, after ettercap
260 "manipulation" (you can use "active" plugins such as smb_down,
261 ssh decryption, filters, etc... on redirected traffic) It needs
262 a "fake" host where the traffic has to be redirected to (to
263 avoid kernel's responses). The "fake" IP will be the tunnel end‐
264 point. Gre_relay plugin will impersonate the "fake" host. To
265 find an unused IP address for the "fake" host you can use
266 find_ip plugin. Based on the original Tunnelx technique by
267 Anthony C. Zboralski.
268
269
270 gw_discover
271
272 This plugin try to discover the gateway of the lan by sending
273 TCP SYN packets to a remote host. The packet has the destination
274 IP of a remote host and the destination mac address of a local
275 host. If ettercap receives the SYN+ACK packet, the host which
276 own the source mac address of the reply is the gatway. This
277 operation is repeated for each host in the 'host list', so you
278 need to have a valid host list before launching this plugin.
279
280 example :
281
282 ettercap -TP gw_discover /192.168.0.1-50/
283
284
285 isolate
286
287 The isolate plugin will isolate an host form the LAN. It will
288 poison the victim's arp cache with its own mac address associ‐
289 ated with all the host it tries to contact. This way the host
290 will not be able to contact other hosts because the packet will
291 never reach the wire.
292 You can specify all the host or only a group. the targets speci‐
293 fication work this way: the target1 is the victim and must be a
294 single host, the target2 can be a range of addresses and repre‐
295 sent the hosts that will be blocked to the victim.
296
297 examples :
298
299 ettercap -TzqP isolate /192.168.0.1/ //
300 ettercap -TP isolate /192.168.0.1/ /192.168.0.2-30/
301
302
303
304 link_type
305
306 It performs a check of the link type (hub or switch) by sending
307 a spoofed ARP request and listening for replies. It needs at
308 least one entry in the host list to perform the check. With two
309 or more hosts the test will be more accurate.
310
311 example :
312
313 ettercap -TQP link_type /192.168.0.1/
314 ettercap -TQP link_type //
315
316
317 pptp_chapms1
318
319 It forces the pptp tunnel to negotiate MS-CHAPv1 authentication
320 instead of MS-CHAPv2, that is usually easier to crack (for exam‐
321 ple with LC4). You have to be in the "middle" of the connection
322 to use it successfully. It hooks the ppp dissector, so you have
323 to keep them active.
324
325
326 pptp_clear
327
328 Forces no compression/encryption for pptp tunnels during negoti‐
329 ation. It could fail if client (or the server) is configured to
330 hang off the tunnel if no encryption is negotiated. You have to
331 be in the "middle" of the connection to use it successfully. It
332 hooks the ppp dissector, so you have to keep them active.
333
334
335 pptp_pap
336
337 It forces the pptp tunnel to negotiate PAP (cleartext) authenti‐
338 cation. It could fail if PAP is not supported, if pap_secret
339 file is missing, or in case windows is configured with
340 "authomatic use of domain account". (It could fail for many
341 other reasons too). You have to be in the "middle" of the con‐
342 nection to use it successfully. It hooks the ppp dissector, so
343 you have to keep them active.
344
345
346 pptp_reneg
347
348 Forces re-negotiation on an existing pptp tunnel. You can force
349 re-negotiation for grabbing passwords already sent. Furthermore
350 you can launch it to use pptp_pap, pptp_chapms1 or pptp_clear on
351 existing tunnels (those plugins work only during negotiation
352 phase). You have to be in the "middle" of the connection to use
353 it successfully. It hooks the ppp dissector, so you have to
354 keep them active.
355
356
357 rand_flood
358
359 Floods the LAN with random MAC addresses. Some switches will
360 fail open in repeating mode, facilitating sniffing. The delay
361 between each packet is based on the port_steal_send_delay value
362 in etter.conf.
363 It is useful only on ethernet switches.
364
365 example :
366
367 ettercap -TP rand_flood
368
369
370
371 remote_browser
372
373 It sends to the browser the URLs sniffed thru HTTP sessions. So
374 you are able to see the webpages in real time. The command exe‐
375 cuted is configurable in the etter.conf(5) file. It sends to the
376 browser only the GET requests and only for webpages, ignoring
377 single request to images or other amenities. Don't use it to
378 view your own connection :)
379
380
381
382 reply_arp
383
384 Simple arp responder. When it intercepts an arp request for a
385 host in the targets' lists, it replies with attacker's MAC
386 address.
387
388 example :
389
390 ettercap -TQzP reply_arp /192.168.0.1/
391 ettercap -TQzP reply_arp //
392
393
394 repoison_arp
395
396 It solicits poisoning packets after broadcast ARP requests (or
397 replies) from a posioned host. For example: we are poisoning
398 Group1 impersonating Host2. If Host2 makes a broadcast ARP
399 request for Host3, it is possible that Group1 caches the right
400 MAC address for Host2 contained in the ARP packet. This plugin
401 re-poisons Group1 cache immediately after a legal broadcast ARP
402 request (or reply).
403 This plugin is effective only during an arp-posioning session.
404 In conjunction with the reply_arp plugin, repoison_arp is a good
405 support for the standard arp-poisoning mitm method.
406
407 example :
408
409 ettercap -T -M arp:remote -P repoison_arp /192.168.0.10-20/
410 /192.168.0.1/
411
412
413 scan_poisoner
414
415 Check if someone is poisoning between some host in the list and
416 us. First of all it checks if two hosts in the list have the
417 same mac address. It could mean that one of those is poisoning
418 us pretending to be the other. It could generate many false-
419 positives in a proxy-arp environment. You have to build hosts
420 list to perform this check. After that, it sends icmp echo
421 packets to each host in the list and checks if the source mac
422 address of the reply differs from the address we have stored in
423 the list for that ip. It could mean that someone is poisoning
424 that host pretending to have our ip address and forwards inter‐
425 cepted packets to us. You can't perform this active test in
426 unoffensive mode.
427
428 example :
429
430 ettercap -TQP scan_poisoner //
431
432
433 search_promisc
434
435 It tries to find if anyone is sniffing in promisc mode. It sends
436 two different kinds of malformed arp request to each target in
437 the host list and waits for replies. If a reply arrives from the
438 target host, it's more or less probable that this target has the
439 NIC in promisc mode. It could generate false-positives. You can
440 launch it either from the command line or from the plugin menu.
441 Since it listens for arp replies it is better that you don't use
442 it while sending arp request.
443
444 example :
445
446 ettercap -TQP search_promisc /192.168.0.1/
447 ettercap -TQP search_promisc //
448
449
450
451 smb_clear
452
453 It forces the client to send smb password in clear-text by man‐
454 gling protocol negotiation. You have to be in the "middle" of
455 the connection to successfully use it. It hooks the smb dissec‐
456 tor, so you have to keep it active. If you use it against a
457 windows client it will probably result in a failure. Try it
458 against a *nix smbclient :)
459
460
461
462 smb_down
463
464 It forces the client to not to use NTLM2 password exchange dur‐
465 ing smb authentication. This way, obtained hashes can be easily
466 cracked by LC4. You have to be in the "middle" of the connec‐
467 tion to successfully use it. It hooks the smb dissector, so you
468 have to keep it active.
469
470
471 smurf_attack
472
473 The Smurf Attack is a DoS attack in which huge numbers of ICMP
474 packets with the intended victim(s) IP(s) in target1 are sent to
475 the hosts in target2. This causes all hosts on the target2 to
476 reply to the ICMP request, causing significant traffic to the
477 victim's computer(s).
478
479 example (192.168.0.5 is the victim):
480
481 ettercap -i eth1 -Tq /192.168.0.5/ // -P fraggle_attack
482
483
484 sslstrip
485
486 While performing the SSL mitm attack, ettercap substitutes the
487 real ssl certificate with its own. The fake certificate is cre‐
488 ated on the fly and all the fields are filled according to the
489 real cert presented by the server. Only the issuer is modified
490 and signed with the private key contained in the 'etter.ssl.crt'
491 file. If you want to use a different private key you have to
492 regenerate this file. To regenerate the cert file use the fol‐
493 lowing commands:
494
495 openssl genrsa -out etter.ssl.crt 1024
496 openssl req -new -key etter.ssl.crt -out tmp.csr
497 openssl x509 -req -days 1825 -in tmp.csr -signkey etter.ssl.crt
498 -out tmp.new
499 cat tmp.new >> etter.ssl.crt
500 rm -f tmp.new tmp.csr
501
502 NOTE: SSL mitm is not available (for now) in bridged mode.
503
504 NOTE: You can use the --certificate/--private-key long options
505 if you want to specify a different file rather than the
506 etter.ssl.crt file.
507
508
509
510 stp_mangler
511
512 It sends spanning tree BPDUs pretending to be a switch with the
513 highest priority. Once in the "root" of the spanning tree,
514 ettercap can receive all the "unmanaged" network traffic.
515 It is useful only against a group of switches running STP.
516 If there is another switch with the highest priority, try to
517 manually decrease your MAC address before running it.
518
519 example :
520
521 ettercap -TP stp_mangler
522
523
524
526 Alberto Ornaghi (ALoR) <alor@users.sf.net>
527 Marco Valleri (NaGA) <naga@antifork.org>
528
530 Emilio Escobar (exfil) <eescobar@gmail.com>
531 Eric Milam (Brav0Hax) <jbrav.hax@gmail.com>
532
534 Mike Ryan (justfalter) <falter@gmail.com>
535 Gianfranco Costamagna (LocutusOfBorg) <costamagnagianfranco@yahoo.it>
536 Antonio Collarino (sniper) <anto.collarino@gmail.com>
537 Ryan Linn <sussuro@happypacket.net>
538 Jacob Baines <baines.jacob@gmail.com>
539
541 Dhiru Kholia (kholia) <dhiru@openwall.com>
542 Alexander Koeppe (koeppea) <format_c@online.de>
543 Martin Bos (PureHate) <purehate@backtrack.com>
544 Enrique Sanchez
545 Gisle Vanem <giva@bgnett.no>
546 Johannes Bauer <JohannesBauer@gmx.de>
547 Daten (Bryan Schneiders) <daten@dnetc.org>
548
549
550
552 ettercap(8) ettercap_curses(8) etterlog(8) etterfilter(8) etter.conf(5)
553 ettercap-pkexec(8)
554
555ettercap 0.8.2 ETTERCAP-PLUGINS(8)