|
Name |
|
Date |
Size |
#Lines |
LOC |
| .. | | 03-May-2022 | - |
| cmake/ | H | 01-Aug-2020 | - | 2,648 | 2,222 |
| contrib/nsis/ | H | 01-Aug-2020 | - | 523 | 371 |
| desktop/ | H | 03-May-2022 | - | 107 | 96 |
| doc/ | H | 01-Aug-2020 | - | 426 | 268 |
| include/ | H | 01-Aug-2020 | - | 5,607 | 3,543 |
| man/ | H | 03-May-2022 | - | 3,490 | 2,957 |
| misc/ | H | 01-Aug-2020 | - | 150 | 71 |
| plug-ins/ | H | 03-May-2022 | - | 9,826 | 5,588 |
| share/ | H | 03-May-2022 | - | 33,719 | 33,502 |
| src/ | H | 03-May-2022 | - | 85,164 | 51,434 |
| tests/ | H | 03-May-2022 | - | 60 | 47 |
| utils/ | H | 03-May-2022 | - | 6,029 | 3,383 |
| .gitignore | H A D | 01-Aug-2020 | 424 | 59 | 55 |
| .travis.yml | H A D | 01-Aug-2020 | 5.2 KiB | 164 | 150 |
| AUTHORS | H A D | 01-Aug-2020 | 2.3 KiB | 118 | 86 |
| CHANGELOG | H A D | 01-Aug-2020 | 34.5 KiB | 859 | 752 |
| INSTALL | H A D | 01-Aug-2020 | 839 | 39 | 27 |
| LICENSE | H A D | 01-Aug-2020 | 17.7 KiB | 340 | 281 |
| LICENSE.OPENSSL | H A D | 01-Aug-2020 | 249 | 12 | 4 |
| README | H A D | 01-Aug-2020 | 19.2 KiB | 460 | 342 |
| README.BINARIES | H A D | 01-Aug-2020 | 1.9 KiB | 38 | 27 |
| README.BUGS | H A D | 01-Aug-2020 | 3.9 KiB | 129 | 73 |
| README.GIT | H A D | 01-Aug-2020 | 1.7 KiB | 45 | 30 |
| README.LUA | H A D | 01-Aug-2020 | 1,020 | 35 | 25 |
| README.OSXLION | H A D | 01-Aug-2020 | 825 | 30 | 21 |
| README.PLATFORMS | H A D | 01-Aug-2020 | 8.6 KiB | 251 | 173 |
| README.TESTS | H A D | 01-Aug-2020 | 288 | 15 | 10 |
| SECURITY.md | H A D | 01-Aug-2020 | 600 | 18 | 12 |
| THANKS | H A D | 01-Aug-2020 | 7.3 KiB | 176 | 104 |
| TODO | H A D | 01-Aug-2020 | 2.8 KiB | 113 | 81 |
| TODO.TESTING | H A D | 01-Aug-2020 | 269 | 10 | 7 |
README
1==============================================================================
2==============================================================================
3
4
5 @@@@@@@ @@@@@@@ @@@@@@@ @@@@@@@ @@@@@@@ @@@@@@@ @@@@@@@ @@@@@@@
6 @@ @@@ @@@ @@ @@ @@ @@ @@ @@ @@ @@
7 @@@@@@ @@@ @@@ @@@@@@ @@@@@@ @@ @@@@@@@ @@@@@@
8 @@ @@@ @@@ @@ @@ @@ @@ @@ @@ @@
9 @@@@@@@ @@@ @@@ @@@@@@@ @@ @@@ @@@@@@@ @@ @@ @@
10
11 A suite for man in the middle attacks
12
13 Copyright 2001-2019 The Ettercap Dev Team
14
15==============================================================================
16==============================================================================
17
18Aoccdrnig to rscheearch at an Elingsh uinervtisy, it deosn't mttaer in waht
19oredr the ltteers in a wrod are, the olny iprmoetnt tihng is taht the frist
20and lsat ltteer are in the rghit pclae. The rset can be a toatl mses and
21you can sitll raed it wouthit a porbelm. Tihs is bcuseae we do not raed
22ervey lteter by it slef but the wrod as a wlohe and the biran fguiers it
23out aynawy.
24
25... so please excuse us for every typo in the documentation, man pages or
26code, btw fixes and patches are welcome.
27
28==============================================================================
29
30
31==============================================================================
32 R E Q U I R E D P R O G R A M S
33==============================================================================
34
35C compiler
36
37flex (or other lex-compatible parser generator) for *.l files
38
39bison (or other yacc-compatible parser generator) for *.y files
40
41cmake (build tool)
42
43==============================================================================
44 R E Q U I R E D L I B R A R I E S
45==============================================================================
46
47MANDATORY:
48
49 - libpcap >= 0.8.1
50 - libnet >= 1.1.2.1 (>= 1.1.5 for IPv6 support)
51 - openssl >= 0.9.7
52 - libpthread
53 - zlib
54 - libgeoip
55 - CMake 2.8
56 - Curl >= 7.26.0 to build SSLStrip plugin
57 If you don't want to enable SSLStrip plugin you have to disable it.
58 (more information about disabling a plugin in the README.GIT file)
59
60OPTIONAL:
61 To avoid use of our internal strlcat and strlcpy implementation:
62 - libbsd
63
64 To enable PDF documentation generation (enable via ENABLE_PDF_DOCS=On):
65 - groff
66
67 To enable plugins:
68 - libltdl (part of libtool)
69
70 To have perl regexp in the filters:
71 - libpcre
72
73 For the cursed GUI:
74 - ncurses >= 5.3
75
76 For the GTK+ GUI:
77 - Glib >= 2.2.2
78 - Gtk+3 >= 3.12.0 (recommended >= 3.22.0)
79 - Atk >= 1.2.4
80 - Pango >= 1.2.3
81
82If you are running on debian, or any debian based distro you can install
83the required dependencies by running:
84
85apt-get install debhelper bison check cmake flex groff libbsd-dev \
86 libcurl4-openssl-dev libgeoip-dev libgtk-3-dev libltdl-dev libluajit-5.1-dev \
87 libncurses5-dev libnet1-dev libpcap-dev libpcre3-dev libssl-dev
88
89============================================================================
90 LICENSE
91============================================================================
92
93 see LICENSE file for details...
94
95============================================================================
96 AUTHORS
97============================================================================
98
99 Alberto Ornaghi (ALoR) <alor@users.sourceforge.net>
100
101 Marco Valleri (NaGA) <naga@antifork.org>
102
103 Emilio Escobar (exfil) <eescobar@gmail.com>
104
105 Eric Milam (J0hnnyBrav0) <brax.hax@gmail.com>
106
107 Gianfranco Costamagna (LocutusOfBorg) <costamagnagianfranco@yahoo.it>
108
109 Alexander Koeppe (koeppea) <format_c AT online DOT de>
110
111============================================================================
112 INSTALLATION
113============================================================================
114
115 The easiest way to compile ettercap is in the form:
116 mkdir build
117 cd build
118 cmake ..
119 (Use ccmake . to change options such as disabling IPv6 support, add
120 plugins support, etc).
121 make install
122
123 read INSTALL for further details... and README.PLATFORMS for any issue
124 regarding your operating system.
125
126============================================================================
127 HOW TO USE IT
128============================================================================
129
130 You can choose between 3 User Interfaces: Text mode, Curses, GTK.
131
132 Please read the man pages ettercap(8) and ettercap_curses(8) to learn how
133 to use ettercap.
134
135============================================================================
136 TECHNICAL PAPER
137============================================================================
138
139THE HOST LIST
140
141 Sending one ARP REQUEST for each ip in the lan (looking at the current ip
142 and netmask), it is possible to get the ARP REPLIES and then make the
143 list of the hosts that are responding on the lan. With this method even
144 windows hosts, reply to the call-for-reply (they don't reply on
145 broadcast-ping).
146 Be very careful if the netmask is a class B (255.255.0.0) because ettercap
147 will send 255*255 = 65025 arp requests (the default delay between two
148 requests is 1 millisecond, can be configured in etter.conf)
149
150
151UNIFIED SNIFFING
152
153 Ettercap NG uses the unified sniffing method which is the base for all the
154 attacks. The kernel ip forwarding is always disabled and this task is
155 accomplished by ettercap itself. Packet that needs to be forwarded are packets
156 with destination mac address equal to the attacker's one, but with different ip
157 address. Those packets are re-sent back to the wire to the real destination.
158 This way, you can plug in various mitm attacks at a time. You can even use
159 external attacker/poisoner, they only have to redirect packets to ettercap's
160 host and the game is over ;)
161
162
163BRIDGED SNIFFING
164
165 Uses two network interfaces and forwards the traffic between them while performing
166 sniffing and content filtrating. This sniffing method is very stealthy as there
167 is no way to to detect that someone is in the middle. You can look at this as a layer
168 one attack. Don't use it on gateways or it will transform your gateway into a bridge.
169
170 HINT: You can use the content filtering engine to drop packets that should not pass.
171 This way ettercap will work as an inline IPS ;)
172
173
174ARP POISONING ATTACK
175
176 When you select this method, ettercap will poison the arp cache of the
177 two hosts, identifying itself as the other host respectively (see the
178 next section for this).
179 Once the arp caches are poisoned, the two hosts start the connection, but
180 their packets will be sent to us, and we will record them and, next,
181 forward them to the right side of the connection. So the connection is
182 transparent to the victims, not arguing that they are sniffed. The only
183 method to discover that there is a man-in-the-middle in your connection, is
184 to watch at the arp cache and check if there are two hosts with the same
185 mac address!
186 That is how we discover if there are others poisoning the arp cache
187 in our LAN, thus being warned, that our traffic is under control! =)
188
189 HOST 1 - - - - - - - - - - - - - - - - - - - -> HOST 2
190 (poisoned) (poisoned)
191 | ^
192 | |
193 ------------> ATTACKER HOST ------------------
194 ( ettercap )
195
196 Legenda:
197 - - - -> the logic connection
198 -------> the real one
199
200
201 The arp protocol has an intrinsic insecurity. In order to reduce the
202 traffic on the cable, it will insert an entry in the arp cache even if it
203 wasn't requested. In other words, EVERY arp reply that goes on the wire
204 will be inserted in the arp table.
205 So, we take advantage of this "feature", sending fake arp replies to the two
206 hosts we will sniff. In this reply we will tell that the mac address of the
207 second host is the one hard-coded on OUR ethernet card. This host will now
208 send packets that should go to the first host, to us, because he carries
209 our mac address.
210 The same process is done for the first host, in inverse manner, so we have
211 a perfect man-in-the-middle connection between the two hosts, legally
212 receiving their packets!!
213
214 Example:
215
216 HOST 1: mac: 01:01:01:01:01:01 ATTACKER HOST:
217 ip: 192.168.0.1 mac: 03:03:03:03:03:03
218 ip: 192.168.0.3
219
220 HOST 2: mac: 02:02:02:02:02:02
221 ip: 192.168.0.2
222
223
224 we send arp replys to:
225
226 HOST 1 telling that 192.168.0.2 is on 03:03:03:03:03:03
227 HOST 2 telling that 192.168.0.1 is on 03:03:03:03:03:03
228
229 now they are poisoned !! they will send their packets to us !
230 then if receive packets from:
231
232 HOST 1 we will forward to 02:02:02:02:02:02
233 HOST 2 we will forward to 01:01:01:01:01:01
234
235 simple, isn't it ?
236
237 *** LINUX KERNEL 2.4.x ISSUE ***
238
239 In the latest release of the linux kernel we can find in :
240 /usr/src/linux/net/ipv4/arp.c
241
242 /* Unsolicited ARP is not accepted by default.
243 It is possible, that this option should be enabled for some
244 devices (strip is candidate)
245 */
246
247 these kernels use a special neighbor system to prevent unsolicited arp
248 replies (what ettercap sends to the victim).
249 Good gracious, is ettercap unusable with that kernel ? the answer is NO !
250 let's view why... in the same source code we find:
251
252 /*
253 * Process entry. The idea here is we want to send a reply if it is a
254 * request for us or if it is a request for someone else that we hold
255 * a proxy for. We want to add an entry to our cache if it is a reply
256 * to us or if it is a request for our address.
257 * (The assumption for this last is that if someone is requesting our
258 * address, they are probably intending to talk to us, so it saves time
259 * if we cache their address. Their address is also probably not in
260 * our cache, since ours is not in their cache.)
261 *
262 * Putting this another way, we only care about replies if they are to
263 * us, in which case we add them to the cache. For requests, we care
264 * about those for us and those for our proxies. We reply to both,
265 * and in the case of requests for us we add the requester to the arp
266 * cache.
267 */
268
269 so, if the kernel receives a REQUEST it will cache the host...
270 what does that mean ? if ettercap sends spoofed REQUESTS instead of
271 REPLIES the kernel will cache them ? the answer is YES !!
272
273 ettercap 0.6.0 and later has this new ARP REQUEST POISONING method.
274 it will alternate request and replies on poisoning because other OS doesn't
275 have this "feature"...
276
277
278 *** SOLARIS ISSUE ***
279
280 Solaris will not cache a reply if it isn't already in the cache.
281 The trick is simple, before poisoning, ettercap sends a spoofed ICMP
282 ECHO_REQUEST to the host, it has to reply on it and it will make an arp
283 entry for the spoofed host. Then we can begin to poison as always, the
284 entry is now in the cache...
285
286
287ICMP REDIRECTION
288
289 This attack implements ICMP redirection. It sends a spoofed icmp redirect
290 message to the hosts in the lan pretending to be a best route for internet.
291 All connections to internet will be redirected to the attacker which, in turn,
292 will forward them to the real gateway. The resulting attack is an HALF-DUPLEX
293 mitm. Only the client is redirected, since the gateway will not accept redirect
294 messages for a directly connected network.
295
296
297DHCP SPOOFING
298
299 This attack implements DHCP spoofing. It pretends to be a DHCP server and try
300 to win the race condition with the real one to force the client to accept
301 replies from it. This way the attacker is able to manipulate the GW parameter and
302 hijack all the outgoing traffic generated by the clients.
303 The resulting attack is an HALF-DUPLEX mitm.
304
305
306PORT STEALING
307
308 This technique is useful to sniff in a switched environment when ARP poisoning
309 is not effective (for example where static mapped ARPs are used).
310 It floods the LAN with ARP packets. The destination MAC address of each
311 "stealing" packet is the same as the attacker's one (other NICs won't see these
312 packets), the source MAC address will be one of the MACs of the victims.
313 This process "steals" the switch's port of each victim.
314 Using low delays, packets destined to "stolen" MAC addresses will be received
315 by the attacker, winning the race condition with the real port owner.
316 When the attacker receives packets for "stolen" hosts, it stops the flooding
317 process and performs an ARP request for the real destination of the packet.
318 When it receives the ARP reply it's sure that the victim has "taken back" his
319 port, so ettercap can re-send the packet to the destination as is.
320 Now we can re-start the flooding process waiting for new packets.
321
322
323CHARACTERS INJECTION
324
325 We have stated that the packets are for us...
326 And the packets will not be received by destination until we forward them.
327 But what happens if we change them?
328 Yes, they reach destination with our modifications.
329 We can modify, add, delete the content of these packets, by simply
330 recalculating the checksum and substituting them on the traffic.
331 But we can do also more: we can insert packets in the connection.
332 We forge our packets with the right sequence and acknowledgement number and
333 send them to the desired host. When the next packets will pass through us
334 we simply subtract or add the sequence number with the amount of data we
335 have injected till the connection is alive, preventing the connection to be
336 rejected (this until we close ettercap, who maintains sequence numbers
337 correct, after program exit, the connection must be RESET or all future
338 traffic would be rejected, blocking the source workstation network).
339
340 NOTE: Injector supports escape sequences. you can make multi-line injection
341 eg: "this on line one \n this on line two \n and so on..."
342 eg: "this in hex mode: \x65\x6c\x6c\x65"
343 eg: "this in oct mode: \101\108\108\101"
344
345 NOTE: remember to terminate your injection with \r\n if you want to inject
346 command to the server.
347
348
349SSH1 MAN-IN-THE-MIDDLE
350
351 When the connection starts (remember that we are the master-of-packets, all
352 packets go through ettercap) we substitute the server public key with one
353 generated on the fly and save it in a list so we can remember that this
354 server has been poisoned before.
355 Then the client send the packet containing the session key ciphered with
356 our key, so we are able to decipher it and sniff the real 3DES session key.
357 Now we encrypt the packet with the correct server public key and forward it
358 to the SSH daemon.
359 The connection is established normally, but we have the session key !!
360 Now we can decrypt all the traffic and sit down watching the stream !
361 The connection will remain active even if we exit from ettercap, because
362 ettercap doesn't proxy it (like dsniff). After the exchange of the keys,
363 ettercap is only a spectator... ;)
364
365
366PACKET FILTERING
367
368 Like character injection, we can modify the packets payload and replace
369 the right sequence and acknowledgement number if needed.
370 With the integrated filtering engine you can program your own filters
371 to make the best filter for your aims.
372 A scripting languages is used to make filters source that must be compiled
373 with etterfilter(8) in order to be used by ettercap.
374
375
376PASSIVE SCANNING OF THE LAN
377
378 This feature is very useful if you want to know the topology of the lan but
379 you don't want to send any packet on it. In this way the scan is done entirely
380 by sniffing packets and extracting useful information from them.
381 This scan will let you know the hosts in the lan (it watches ARP request), the
382 Operating System of the hosts (it uses passive os fingerprint... see next
383 section), the open ports of an host (looking the SYN+ACK packet), the gateway,
384 the routers or hosts acting as a router (it watches ICMP messages).
385 As a passive method it is useless on a switched lan (because it can make a
386 topology only of the host that are connecting to you), but if you put it on a
387 gateway and let it run for hours or days, it will make a complete report of
388 the hosts in the lan.
389
390
391PASSIVE OS FINGERPRINT
392
393 The main idea is to analyze the passive information coming from a host
394 when it makes or receives connections with other hosts. This information
395 is enough to detect the OS and the running services of the host.
396 In this scenario, we look at SYN and SYN+ACK packet and collect some
397 interesting info from them:
398 Window Size: the TCP header field
399 MSS: the TCP option Maximum Segment Size (can be present or not)
400 TTL: the IP header field Time To Live (rounded to the next power of 2)
401 Window Scale: the TCP option indicating the Scale
402 SACK: the TCP option for the Selective ACK
403 NOP: if the TCP options contain a NOP
404 DF: the IP header field Don't Fragment
405 TIMESTAMP: if the TCP timestamp option is enabled
406 and obviously the type of the packet (SYN or SYN+ACK)
407
408 The database contains different fingerprints for each type of packet
409 because some OSes have different fingerprints from SYN to SYN+ACK.
410 Obviously the SYN fingerprint is more reliable, because the SYN+ACK is
411 influenced by the SYN (if a SYN doesn't contain a SACK the SYN+ACK will not
412 have the SACK option even if the host support it). So while collecting
413 information off the lan, if we receive a SYN+ACK we mark the OS of that
414 host as temporary and when we receive a SYN we confirm that.
415 Fingerprints ending with an ":A" are less reliable... this is
416 because some OS identification may change during the gathering process.
417
418 The SYN+ACK packets are also used to discover the open ports of a host.
419 (see next section)
420
421 The interesting thing is that firewalls, gateways and NAT are transparent to
422 passive OS detection. So collecting info for the LAN will let you know info
423 even for remote hosts. Only proxies aren't transparent because they make a
424 new connection to the target.
425
426 Our fingerprint database has to be enlarged, so if you find a host with an
427 unknown fingerprint and you know for sure the OS of that host, please mail
428 us <alor@users.sourceforge.net> the fingerprint and the OS, we will insert
429 in the database.
430
431
432OPEN PORTS
433
434 Open ports are identified by looking for SYN+ACK packets.
435 If a SYN+ACK comes from a port, it is for sure open, except for the
436 channel command of FTP protocol, for that reason SYN+ACK going to port 20
437 are not used to indicate a open port.
438 For the udp ports the question is a little bit difficult because no SYN or
439 ACK packet are present in the udp protocol, so ettercap assumes that a udp
440 port < 1024 that sends packets is opened. We know that in this way we cannot
441 discover open ports > 1024 but they can go undetected as open when a client
442 sends packet to a server.
443
444
445GATEWAY AND ROUTERS
446
447 The gateway is simply recognized looking at IP packet with a non local ip
448 ( checking the netmask ). If a non local IP is found, ettercap look at the
449 ethernet address (MAC) and store it as the gateway mac address, then it
450 search for it in the list and mark the corresponding ip as the gateway.
451
452 Looking in the ICMP messages we can rely that if a host sends a
453 TTL-exceeded or a redirect messages it is a router or an host acting as it.
454
455
456==============================================================================
457
458vim:ts=3:expandtab
459
460
README.BINARIES
1=============================================================================
2=============================================================================
3
4
5 @@@@@@@ @@@@@@@ @@@@@@@ @@@@@@@ @@@@@@@ @@@@@@@ @@@@@@@ @@@@@@@
6 @@ @@@ @@@ @@ @@ @@ @@ @@ @@ @@ @@
7 @@@@@@ @@@ @@@ @@@@@@ @@@@@@ @@ @@@@@@@ @@@@@@
8 @@ @@@ @@@ @@ @@ @@ @@ @@ @@ @@
9 @@@@@@@ @@@ @@@ @@@@@@@ @@ @@@ @@@@@@@ @@ @@ @@ NG
10
11 Copyright 2001-2015 The Ettercap Dev Team
12
13=============================================================================
14=============================================================================
15
16 !!! I M P O R T A N T N O T I C E !!!
17
18Ettercap is distributed officially ONLY in source code. Binary packages in ANY
19form are NOT officially supported. Although it is not prohibited to distribute
20binary packages, the authors will not respond on bugs found in them. If you
21use one of these packages downloaded from Internet, redirect your bug report
22to /dev/null. The authors will reply to bug reports and will be happy to find
23a solution only for hand compiled executables. Every Linux distribution, but
24even *BSD or Windows is different from another. What is compiled on my machine
25may not work on yours because of a different version of a system library. To
26avoid this type of missing dependencies, we will not distribute any binary for
27any operating system. Most of the popular distributions (Debian, RedHat,
28FreeBSD, OpenBSD, ecc) provide the binary packages for ettercap. Use these
29packages, since they are build to work on your distribution and should have
30the dependencies resolved correctly. Refer to the binary packager of your
31distribution for problems regarding these packages.
32
33
34=============================================================================
35
36vim:ts=3:expandtab
37
38
README.BUGS
1==============================================================================
2==============================================================================
3
4
5 @@@@@@@ @@@@@@@ @@@@@@@ @@@@@@@ @@@@@@@ @@@@@@@ @@@@@@@ @@@@@@@
6 @@ @@@ @@@ @@ @@ @@ @@ @@ @@ @@ @@
7 @@@@@@ @@@ @@@ @@@@@@ @@@@@@ @@ @@@@@@@ @@@@@@
8 @@ @@@ @@@ @@ @@ @@ @@ @@ @@ @@
9 @@@@@@@ @@@ @@@ @@@@@@@ @@ @@@ @@@@@@@ @@ @@ @@ NG
10
11 Copyright 2001-2013 The Ettercap Dev Team
12
13==============================================================================
14==============================================================================
15
16"Debugging is twice as hard as writing the code in the first place.
17Therefore, if you write the code as cleverly as possible, you are,
18by definition, not smart enough to debug it." - Brian W. Kernighan
19
20
21If you found a new bug please report it to
22https://github.com/Ettercap/ettercap/issues or by sending an email to
23<ettercap-users@lists.ettercap-project.org>
24
25
26==============================================================================
27 C O M P I L E T I M E B U G S
28==============================================================================
29
30If you are not able to compile ettercap on your system, please make a bug
31report. In order to help you fix the problem we need the following
32information:
33
341) a description of your operating system (including any patch level)
35
36 # uname -a > os.log
37
382) the cmake cache file
39
40 # cat CMakeCache.txt
41
423) the entire output from 'make'
43
44 # make 1> make_output 2> make_error
45
464) make a tarball with all the needed infos
47
48 # tar pczf compile_error.tar.gz os.log \
49 CMakeCache.txt \
50 make_output \
51 make_error
52
53==============================================================================
54 R U N T I M E B U G S
55==============================================================================
56
57
58If the bug is critical and results in a segmentation fault follow these steps
59to make a detailed bug report in order to help us to find the bug and fix it.
60
611) recompile the program in debug mode:
62
63 (follow the instructions on README.GIT file in order to pull the repository and build the program in debug mode)
64
65
662) force ettercap to not drop privileges to make sure the core is dumped:
67
68 # export EC_UID=0
69 # export EC_GID=0
70
71
723) override any limit for coredumps:
73
74 # ulimit -c unlimited
75
76
774) enable memory checks (if your system supports them), so the program will
78 abort if some heap corruption is in place:
79
80 # export MALLOC_CHECK_=2
81
82
835) dump to a file the traffic that causes the crash (we need it to reproduce
84 the situation)
85
86 # ./src/ettercap -w offending_packets.pcap ... --your-options-here ...
87
88
896) analyze the core with gdb and send us the backtrace:
90
91 # gdb ettercap core
92
93 (gdb) bt
94 (gdb) quit
95
96 copy and paste the output of the gdb command 'bt' in a file (backtrace.log)
97
986a) if you don't get a core (for any reason), you can run ettercap within gdb:
99
100 # gdb ettercap
101
102 (gdb) r your_parameters_here
103
104 when it catches the segfault, you can get the backtrace with the 'bt'
105 command
106
107
1087) collect useful information about your network:
109
110 # ifconfig -a > network.txt
111 # arp -an >> network.txt
112 # netstat -rn >> network.txt
113
114
1158) tar all the information together with the log generated by ettercap:
116
117 # tar zcvf bugreport.tar.gz ettercap-*-debug.log \
118 offending_packets.pcap \
119 network.txt \
120 backtrace.log
121
122
1239) mail the tarball to us with a brief description of the bug.
124
125=============================================================================
126
127vim:ts=3:expandtab
128
129
README.GIT
1=============================================================================
2=============================================================================
3
4
5 @@@@@@@ @@@@@@@ @@@@@@@ @@@@@@@ @@@@@@@ @@@@@@@ @@@@@@@ @@@@@@@
6 @@ @@@ @@@ @@ @@ @@ @@ @@ @@ @@ @@
7 @@@@@@ @@@ @@@ @@@@@@ @@@@@@ @@ @@@@@@@ @@@@@@
8 @@ @@@ @@@ @@ @@ @@ @@ @@ @@ @@
9 @@@@@@@ @@@ @@@ @@@@@@@ @@ @@@ @@@@@@@ @@ @@ @@ NG
10
11 Copyright 2001-2015 The Ettercap Dev Team
12
13==============================================================================
14 H O W T O C O M P I L E F R O M G I T
15==============================================================================
16
17First you have to clone the project from the git repository:
18
19 # git clone git://github.com/Ettercap/ettercap.git
20 # cd ettercap
21
22If you already had the repository cloned, you will need to pull the latest changes:
23
24 # git pull
25
26After you have successfully cloned the repository then you must initiate the build
27with cmake:
28 # mkdir build
29 # cd build
30 # cmake ..
31 # (Use ccmake . to change options such as disabling IPv6 support, add
32 plugins support, setting release type to Debug, etc).
33
34
35==============================================================================
36 D E V E L O P E R S A N D B E T A T E S T E R S S E C T I O N
37==============================================================================
38In order for ettercap to be compiled with debugging symbols, you need to use
39ccmake to change the release type to Debug.
40
41==============================================================================
42
43vim:ts=3:expandtab
44
45
README.LUA
README.OSXLION
README.PLATFORMS
1==============================================================================
2==============================================================================
3
4
5 @@@@@@@ @@@@@@@ @@@@@@@ @@@@@@@ @@@@@@@ @@@@@@@ @@@@@@@ @@@@@@@
6 @@ @@@ @@@ @@ @@ @@ @@ @@ @@ @@ @@
7 @@@@@@ @@@ @@@ @@@@@@ @@@@@@ @@ @@@@@@@ @@@@@@
8 @@ @@@ @@@ @@ @@ @@ @@ @@ @@ @@
9 @@@@@@@ @@@ @@@ @@@@@@@ @@ @@@ @@@@@@@ @@ @@ @@ NG
10
11 Copyright 2001-2015 The Ettercap Dev Team
12
13==============================================================================
14 P O R T I N G S T A T U S
15==============================================================================
16
17
18SYSTEM STATUS NOTES
19==============================================================================
20
21LINUX
22------------------------------------------------------------------------------
23 Linux 3.x FULL (primary development platform)
24
25 Linux 2.6.x FULL
26
27 Linux 2.4.x FULL
28
29 Linux 2.2.x FULL
30
31
32SOLARIS
33------------------------------------------------------------------------------
34 SunOS 5.8 (sparc) FULL tested on a SunFire V100 sparc64
35
36 Solaris 8 (intel) FULL tested on SunOS solaris 5.8 (i386)
37
38
39*BSD
40------------------------------------------------------------------------------
41 FreeBSD 8.x FULL tested on FreeBSD 8.3-RELEASE (amd64)
42
43 FreeBSD 5.x FULL tested on FreeBSD 5.1-RELEASE (i386)
44
45 FreeBSD 4.x untested
46
47 OpenBSD 3.x FULL tested on OpenBSD 3.4 GENERIC#18 i386
48
49 OpenBSD 2.x untested
50
51 NetBSD 1.5.x untested
52
53
54MAC OS X (Darwin)
55------------------------------------------------------------------------------
56 Mac OS X FULL tested on OS X Lion and Snow Leopard (64-bit)
57
58 Darwin 7.x FULL tested on darwin 7.0.0 (powerpc)
59
60 Darwin 6.x untested
61
62
63WINDOWS (native/mingw) thanks to G. Vanem <giva@bgnett.no>
64------------------------------------------------------------------------------
65 Windows 2000 untested
66
67 Windows XP untested
68
69 Windows 2003 untested
70
71
72WINDOWS (cygwin)
73------------------------------------------------------------------------------
74 Windows 2000 untested
75
76 Windows XP untested
77
78
79
80
81==============================================================================
82 P L A T F O R M S P E C I F I C I S S U E
83==============================================================================
84
85------------------------------------------------------------------------------
86 L I N U X
87------------------------------------------------------------------------------
88
89No known issue, just be sure to have all the required components. (see README)
90
91
92
93------------------------------------------------------------------------------
94 S O L A R I S
95------------------------------------------------------------------------------
96
97After installing the following packages from http://www.sunfreeware.com
98
99 - libtool 1.5 (needed for libltdl)
100 - libpcap 0.8.1
101 - gcc 3.3.1
102 - binutils 2.11.2
103 - make 3.80
104
105ettercap should configure and compile without any issue.
106
107libnet 1.1.2.1 should be downloaded from http://www.packetfactory.net and
108compiled by your own.
109
110------------------------------------------------------------------------------
111 M A C O S X
112------------------------------------------------------------------------------
113
114thanks to 'rgovostes' for this instructions.
115
116Launch FinkCommander and search for the following software. Select the
117appropriate files and press command-shift-i to begin installing them - it'll
118take a long time, don't let your machine fall asleep. There may be additional
119packages which you should install, such as ones with -dev or -shlibs
120extensions. There may be multiple versions of the software available - if in
121doubt, go with the latest copy.
122
123 bison >= 1.875-1
124 dlcompat >= 20030629-15
125 libnet >= 1.1.2.1-1
126 libpcap >= 0.8.1-1
127 libpoll >= 1.4-11
128 libtool >= 1.5-1
129 ncurses >= 5.3-20031018-2
130 openssl >= 0.9.7c-3
131 pcre >= 4.3-1
132 pkgconfig >= 0.15.0-2
133
134
135------------------------------------------------------------------------------
136 B S D
137------------------------------------------------------------------------------
138
139 + FREEBSD
140
141 In order to have plugins support you have to install the following package:
142
143 - libltdl (part of libtool 1.5)
144
145 all the other libs can be installed from ports (except for libnet 1.1.2.1,
146 at the moment)
147
148 if you encounter some linking problem compiling the tarball, it is due to
149 the libtool version provided within our tarball. to solve the problem
150 re-libtoolize the package and recompile it or download the cvs version and
151 run the autogen.sh script.
152
153 on some BSD configurations, even after installing the libtool and libltdl ports,
154 lt_dlopen might not be found by the configure script. To solve this, install the
155 libpcap port from /usr/ports/net and run configure this way:
156 CFLAGS="-I /usr/local/include" LDFLAGS="-L /usr/local/lib" ./configure ....
157
158 + OPENBSD
159
160 Same recommendations as for FreeBSD, but you have to find a way to install
161 libltdl since it seems that newer version of libtool aren't in the ports
162 collection.
163
164 Furthermode OpenBSD requires libpcap 0.8.3 since it fixed a segfault in
165 pcap_findalldevs();
166
167 probably you will have to append the --with-iconv=/usr/local to the
168 configure command line.
169
170------------------------------------------------------------------------------
171 W I N D O W S
172------------------------------------------------------------------------------
173
174 + MINGW / MSYS (suggested)
175
176 1) download the wpdpack from the winpcap website
177 - install the drivers (version >= 3.1 beta)
178 2) download the libnet tarball from packetfactory.net
179 apply this patch:
180 http://ettercap.sf.net/devel/libnet-1.1.2.1-mingw.tar.gz
181 3) download pthreads from: ftp://sources.redhat.com/pub/pthreads-win32
182 4) download all the other required library from:
183 http://gnuwin32.sourceforge.net/packages.html
184 - openssl
185 - libgw32c
186 - libz
187 - libregex
188 - libiconv
189 5) download the gtk development and runtime packages from:
190 http://www.gimp.org/~tml/gimp/win32/downloads.html
191 4) unpak all the packages as shown in the following tree:
192
193 .
194 |-> ettercap
195 |-> gtk
196 |-> gw32c
197 |-> libiconv
198 |-> libnet
199 |-> openssl
200 |-> pthreads
201 |-> regex
202 |-> winpcap
203 |-> zlib
204
205 make sure each directory contains an 'include' dir with the .h files and a
206 'lib' directory with the .a/.dll files.
207
208 5) enter the ettercap directory and execute the configure script
209 6) issue the 'make' command and have fun :)
210 7) ettercap/include/ec_os_mingw.h might need to be modified to not declare struct
211 timezone as it is already defined in sys/time.h on latest MinGW version.
212
213 *) probably you'll have some difficulties compiling it. you have to modify
214 the makefile a bit to suite your environment. don't forget to install all
215 the required .dll since the .dll.a are only wrapper to the real .dll file.
216
217 *) if make fails because of a /man/man5 or /man/man8 directory does not exist,
218 keep running make until compilation is done
219 *) after everything is done type:
220 a) cd ..
221 b) /usr/bin/find . -name \*.dll -exec cp {} ettercap/lib \;
222 c) cd ettercap
223 d) cp ettercap.exe lib
224 e) run ettercap from lib
225
226
227 if you want precompiled packages:
228 http://sourceforge.net/project/showfiles.php?group_id=17435
229
230
231 + CYGWIN (deprecated)
232
233 1) download the wpdpack from the winpcap website
234 - install the drivers (version >= 3.1 beta)
235 2) download the libnet tarball from packetfactory.net
236 3) copy the libs in Wpdpack/lib into /usr/lib
237 copy the includes in Wpdpack/include into /usr/include/pcap
238 rename the /usr/include/pcap/pthread.h to /usr/include/pcap/_pthread.h
239 4) compile the libnet source...
240 you have to search in the mailing list for the patch for cygwin.
241 this is the hardest part... since libnet porting to cygwin is not
242 fully working... my bad :(
243 5) run the ettercap cmake
244 6) issue the 'make' command and have fun
245
246
247==============================================================================
248
249vim:ts=3:expandtab
250
251
README.TESTS
1
2Ettercap now has unit-tests!
3
4Requires:
5 check (will use bundled check if it isn't already installed) available at http://check.sourceforge.net/
6
7- To enable tests:
8 - mkdir build
9 - cd build
10 - cmake -DENABLE_TESTS=On ..
11 - make && make test
12 OR
13 - make && make test_verbose
14
15