ownlan 0.3.0 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 658740cd319738b37e958afd1eebeb078ce837b8
4
- data.tar.gz: 19c72648c6c78002d5baa76b3e007490acf1eed4
3
+ metadata.gz: fa6b625171c578b995c39a2139166cfad3c32eec
4
+ data.tar.gz: d1a2ffd2c688404404d22fc59dc6c659c29ede4d
5
5
  SHA512:
6
- metadata.gz: d160941ba71b2a09558ed126127ffa77e93244983633e9fd0071556fa0cb12dd7eaee9c8c6c7d871b1866ad53a8f72e56301be2665e17dfd2047eddcefac2cab
7
- data.tar.gz: db524183b9da4cc8b9a0058643feeb8422bd668f5034e695c999bb5902be78c2ced117bbbcf1a5d4cf7ef1657779787f30afd96719e5e1d467af6c4a3751a60f
6
+ metadata.gz: a1fa861dd614a478adcaca2c329da24564d81461a38a5b2b833110c2eb8e8d8087d9514638d96f3e08ef1a67ee024ee8d3372e2c4fb9b42b251d7b5caeeb0e30
7
+ data.tar.gz: 67c6bb75c988a9cf79a7c3ebd511819f65d00ac3c896fa247a3cc105b209c93f3b6b386ad267ff9a4b22e44e468dcd4d50c9822aeb3a59a72b35a4734f537b19
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ownlan (0.3.0)
4
+ ownlan (0.3.2)
5
5
  activesupport
6
6
  packetfu
7
7
  trollop
@@ -9,7 +9,7 @@ PATH
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- activesupport (4.2.3)
12
+ activesupport (4.2.4)
13
13
  i18n (~> 0.7)
14
14
  json (~> 1.7, >= 1.7.7)
15
15
  minitest (~> 5.1)
data/README.md CHANGED
@@ -1,59 +1,139 @@
1
- # OwnLan
1
+ # Ownlan
2
2
 
3
- **Ownlan** aims to be a simple, concise and useful pentesting LAN poisoning suite, Written in ``Ruby`` and using ``PacketFU`` for reading and sending the packets on the wire. I decided to make this suite of tools mainly due do to the lack of existing tools on Linux, on top of helping me understanding the whole process behind the scene. OwnLan got uniques features, with some exclusives and excitings attacks probably never ever used on a (pentesting) network.
3
+ __Ownlan__ aims to be a simple, concise and useful pentesting LAN poisoning suite, Written in ``Ruby`` and using ``PacketFU`` for reading and sending the packets off the wire. I decided to make this suite of tools mainly due do to the lack of existing tools on Linux, on top of helping me understanding the whole process behind the scene. OwnLan got uniques features, with some exclusives and excitings attacks probably never ever used on a (pentesting) network.
4
4
 
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'ownlan'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install ownaln
20
+
21
+ And require it in your application:
22
+
23
+ irb(main):001:0> require 'ownlan'
24
+ => true
25
+
26
+
27
+ ## Usage
28
+
29
+ Please look at the [cli section](#command-line-interface) for advanced option.
30
+
31
+ ### Configuration ###
32
+ You can pass multiple variables that will be used in the gem.
33
+
34
+ ```ruby
35
+ Ownlan.configure do |config|
36
+ config.attack = 'ntoa'
37
+ config.victim_ip = '192.168.0.1'
38
+ config.delay = 1.5
39
+ config.random_mac = true
40
+ config.interface = 'eth0'
41
+ end
42
+ ```
43
+
44
+ You can also pass any of those options inline when loading an instance of Ownlan.
45
+
46
+ ```rubypro
47
+ Ownlan.new(attack: 'ntoa', victim_ip: '192.168.0.1', delay: 1.5, random_mac: true).call
48
+ ```
5
49
  ## Features
6
50
 
7
51
  **OwnLan** has four features:
8
52
 
9
53
  1. Disconnect one or several users off the wire
10
- 2. Protecting users from these kind of attacks
11
- 3. Sending ARP + DHCP packets easily (manual way)
12
- 4. Easy ARP packets capture
54
+ 2. Protecting users from these kind of attacks *[Not Implemented]*
55
+ 3. Sending custom ARP + DHCP packets easily *[Not Implemented]*
56
+ 4. Easy ARP packets capture *[Not Implemented]*
13
57
 
14
58
  ### Disconnecting users off the wire
15
59
 
16
60
  The biggest part of **OwnLan**. It disconnects clients thanks to severals techniques:
17
61
 
18
62
  - Client side ARP Cache Poisoning (**first duplex**). *The most used and common attack nowadays, the main purpose is to make a MITM attack, but alone (= without IP forwarding), it will disconnect the client. Used by ``TuxCut`` and ``Arpspoof`` . If no MAC Adress is given, yours will be given.*
63
+
19
64
  - Gateway side ARP Cache Poisoning (**second duplex**). *A less known attack and powerful one, used by ``NetCut`` , the principle is to give the gateway a fake correspondancy of the victim MAC Adress to make the later one unreachable. If no MAC Adress is given, yours will be given.*
65
+
20
66
  - Neighbour Table Overflow attack. *I invented this attack, not to be modest. In fact, I should say 'implemented' since, usually, it is the gateway which is attacked (even so, this one attack is very rare), here, we attack the client directly. I don't think anyone has ever thought of this... and it works! The **NTOA** will not insert random MAC adress, but following a scheme, to ensure that 2 same mac adress won't be injected. So, it makes the attack faster. One client or all clients can be specified.*
67
+
21
68
  - Gateway ARP Cache Overflow. *This attack will render the GateWay ARP Cache unusable, and will make a loss of connectivity to all the clients. Some CISCO routers are immuned to this attack though*
69
+
22
70
  - DHCP Lease Spoofing [Not Implemented]. *This attack will spoof DHCP lease (udp) packet by telling the DHCP server 'Hello, I don't use this IP anymore, just disconnect me' . As of today, this attack is extremly rare, difficult to make, and used only by ``Yersinia`` . There is nothing to prevent this attack, after it has been used. Really.
23
71
 
24
- ### Protecting [Not implemented]
25
72
 
26
- #### Prevention
73
+ ### Command Line Interface
74
+
75
+ You can also use the provided executable. Simple launch it in accordance to the following scheme:
76
+
77
+ ownlan --[options] [sub-options] --[other-option]
78
+
79
+  
80
+ - Where [options] are either:
81
+  
82
+
83
+ -a, --attack=<s> Set an attack on a device on the network
84
+ -p, --protect=<s> Protect a device from lan attacks
85
+ -b, --broadcast=<s> Inject ARP crafted packets in the wire
86
+ -c, --capture=<s> Sniffing ARP packets on the network
87
+
88
+
89
+ - where [sub-options] are either:
27
90
 
28
- - A mix between arptables and iptables to become invisible in the network is a good fix to prevent ALL of the attacks. Please note that it is a prevention measure, and not a fix.
91
+ client Set a First-Duplex disconnection attack (the client is targeted). If no source mac argument, yours will be given (useful for MITM Attacks).
92
+ * Required options: victim_ip
93
+ gateway Set a Second-Duplex disconnection attack (the gateway is targeted). If no source mac argument, yours will be given (useful for MITM Attacks).
94
+ * Required options: victim_ip
95
+ ntoa The client is targeted to get disconnected, using a neighbour table overflow attack. Requires a victim ip.
96
+ * Required options: victim_ip
97
+ * Falcultative options: random_source_mac
98
+ fake-ip-conflict Generate a fake ip conflict to the victim. Can be used along all the others attacks, or alone.
99
+ * Required options: victim_ip
29
100
 
30
- #### Counter-Measure
101
+ stealth Becomes invisible from network scanners, preventing you from getting targeted.
102
+ static Set a static ARP Cache for the current session. Good against first-duplex ARP Cache Poisoning.
103
+ freeze Reset and Freeze your ARP Cache. Good against NTOAs.
104
+ resynchronize Resynchronize the Gateway ARP Cache by sending to it continuous healthy correspondancies packets to protect someone or yourself from gateway
105
+ attack. (reveive IP or MAC argument)
31
106
 
32
- - Against a client side arp cache poisoning, OwnLan will set a static ARP Cache.
33
- - Against a client side or gateway side arp cache poisoning, Ownlan can send continuous fix packet to recreate the right correspondancy. It can be used for fixing other clients in the network.
34
- - Against a NTOA, Ownlan will delete all the cache, will set a static ARP cache on top of freezing the whole thing.
35
107
 
36
- ### Sending Raw Packet [Not implemented]
108
+ - Where [Other Options] can be:
37
109
 
38
- #### ARP
110
+ -d, --delay=<f> Set the time lapse delay between each packet (default: 0.5)
111
+ -i, --interface=<s> Set the network interface which will be used (default: wlan0)
112
+ -r, --random-source-mac If setted, the used origin addresses will be randomly generated. If not specified, the mac of your given interface will be used.
113
+ -v, --version Print version and exit
114
+ -h, --help Show this message
39
115
 
40
- ownlan -sm [source-mac] -dm [destination-mac] -sip [source-ip] -dip [destination-ip] -op [1/2]
41
116
 
42
- OP is the opcode: 1 for ARP Request, 2 for ARP Reply
43
117
 
44
- #### DHCP (udp) [Not Implemented]
118
+ ## Versioning
45
119
 
46
- ## Notes
120
+ __Ownlan__ follows [Semantic Versioning 2.0](http://semver.org/).
47
121
 
48
- - If you put the -ic to option, you will generate a fake IP Conflict to lure the client to the wrong way of handling his connection loss
122
+ ## Contributing
49
123
 
50
- - The handy thing in this tools, is that thanks to all these options, you will literally be able to do whatever ARP Cache poisonning attack you wish to make. For instance, if you want to make a Full Duplex attack, use the first and second duplex attack as specified above.
124
+ 1. Fork it ( https://github.com/shideneyu/ownlan/fork )
125
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
126
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
127
+ 4. Push to the branch (`git push origin my-new-feature`)
128
+ 5. Create a new Pull Request
51
129
 
52
- - OwnLan is way faster than ``arpspoof``, and can make 1000 times more requests per seconds than it. You can specify the delay between each request by specifying whatever attack you do : '-d [integer]' . Replace [integer] by some number in miliseconds.
130
+ # Contact
53
131
 
54
- ## Exemples
132
+ Any question ? Feel free to contact me at `contact(at)sidney.email` .
133
+ Any Issue ? Open a [ticket](https://github.com/shideneyu/ownlan/issues) !
55
134
 
56
- [To do]
135
+ ## License
57
136
 
137
+ Copyright (c) 2016 Sidney Sissaoui
58
138
 
59
- Copyright (c) 2016 Sidney Sissaoui, released under the MIT license
139
+ Released under the MIT license. See [LICENSE.md](https://github.com/shideneyu/ownlan/blob/master/LICENSE.md) for more details.
data/lib/ownlan/cli.rb CHANGED
@@ -30,14 +30,14 @@ where [sub-options] are either:
30
30
 
31
31
  Attacks sub-options :
32
32
  client Set a First-Duplex disconnection attack (the client is targeted). If no source mac argument, yours will be given (useful for MITM Attacks).
33
- * Require options: victim_ip
33
+ * Required options: victim_ip
34
34
  gateway Set a Second-Duplex disconnection attack (the gateway is targeted). If no source mac argument, yours will be given (useful for MITM Attacks).
35
- * Require options: victim_ip
35
+ * Required options: victim_ip
36
36
  ntoa The client is targeted to get disconnected, using a neighbour table overflow attack. Requires a victim ip.
37
- * Require options: victim_ip
37
+ * Required options: victim_ip
38
38
  * Falcultative options: random_source_mac
39
39
  fake-ip-conflict Generate a fake ip conflict to the victim. Can be used along all the others attacks, or alone.
40
- * Require options: victim_ip
40
+ * Required options: victim_ip
41
41
  EOS
42
42
 
43
43
 
@@ -73,7 +73,7 @@ Other Options:
73
73
 
74
74
  opt :delay, "Set the time lapse delay between each packet", default: 0.5
75
75
  opt :interface, "Set the network interface which will be used", short: 'i', default: 'wlan0'
76
- opt :random_source_mac, "If setted, the used origin addresses will be randomly generated. If not specified, the corresponding mac of your given interface will be used #{mac=ServiceObjects::NetworkInformation.self_mac('wlan0') ; ', in your case ' + mac + ' for wlan0' if !mac.empty?}"
76
+ opt :random_source_mac, "If setted, the used origin addresses will be randomly generated. If not specified, the mac of your given interface will be used #{mac=ServiceObjects::NetworkInformation.self_mac('wlan0') ; ', in your case ' + mac + ' for wlan0' if !mac.empty?}"
77
77
  opt :victim_ip, "Set the ip of the target ip address.", short: 't', type: :string
78
78
  opt :source_mac, "Set the mac of the source mac address.", short: 's', type: :string
79
79
 
data/lib/ownlan/config.rb CHANGED
@@ -32,6 +32,7 @@ module Ownlan
32
32
  @modes = { attack: attack_sub_modes, protect: protect_sub_modes, manual: manual_sub_modes }
33
33
  @interface = 'wlan0'
34
34
  @delay = 0.5
35
+ @victim_ip = '192.168.0.1'
35
36
  end
36
37
 
37
38
  private
@@ -1,3 +1,3 @@
1
1
  module Ownlan
2
- VERSION = "0.3.0"
2
+ VERSION = "0.3.2"
3
3
  end
data/ownlan.gemspec CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
12
12
  spec.description = 'Ownlan is used to test a network against MITM attacks, and then to secure it.'
13
13
  spec.homepage = 'https://github.com/shideneyu/ownlan'
14
14
  spec.license = 'MIT'
15
- spec.required_ruby_version = '~> 2.1.2'
15
+ spec.required_ruby_version = '>= 1.9.3'
16
16
 
17
17
  # Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
18
18
  # delete this section to allow pushing this gem to any host.
data/pkg/ownlan-0.3.0.gem CHANGED
Binary file
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ownlan
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - sidney
@@ -121,7 +121,7 @@ files:
121
121
  - ".travis.yml"
122
122
  - Gemfile
123
123
  - Gemfile.lock
124
- - MIT-LICENSE.txt
124
+ - LICENSE.md
125
125
  - README.md
126
126
  - Rakefile
127
127
  - bin/ownlan
@@ -149,6 +149,7 @@ files:
149
149
  - ownlan.gemspec
150
150
  - pkg/ownlan-0.1.0.gem
151
151
  - pkg/ownlan-0.3.0.gem
152
+ - pkg/ownlan-0.3.1.gem
152
153
  homepage: https://github.com/shideneyu/ownlan
153
154
  licenses:
154
155
  - MIT
@@ -160,9 +161,9 @@ require_paths:
160
161
  - lib
161
162
  required_ruby_version: !ruby/object:Gem::Requirement
162
163
  requirements:
163
- - - "~>"
164
+ - - ">="
164
165
  - !ruby/object:Gem::Version
165
- version: 2.1.2
166
+ version: 1.9.3
166
167
  required_rubygems_version: !ruby/object:Gem::Requirement
167
168
  requirements:
168
169
  - - ">="
File without changes