dhondta / rpl-attacks Goto Github PK
View Code? Open in Web Editor NEWRPL attacks framework for simulating WSN with a malicious mote based on Contiki
License: GNU General Public License v3.0
RPL attacks framework for simulating WSN with a malicious mote based on Contiki
License: GNU General Public License v3.0
I would like to do an experiment to see the Temperature variance and CPU utilization with and without the attack on a given topology. Could you please let me know how to enable "Collect View" tool to see these parameters and do more network analysis with this framework.
OR if there is any other way to do this without using the "Collect View" tool please let me know.
Thank you very much!!!
I want to add delay in the node startup of malicious mote. My aim is to make a mote send its first DIS after certain period of time. Like in case of hello-flood the DIS_START_DELAY is set to 0. However, when i set delay to 60, it rarely makes any difference. The hello-flood should start after the nodes have found their parents i.e. network topology has been setup. How can i do this.
user@instant-contiki:rpl-attacks>> list campaigns
Traceback (most recent call last):
File "main.py", line 7, in <module>
FrameworkConsole(parallel=True).cmdloop()
File "/home/user/rpl-attacks/core/console.py", line 169, in cmdloop
super(FrameworkConsole, self).cmdloop()
File "/home/user/rpl-attacks/core/console.py", line 49, in cmdloop
super(Console, self).cmdloop()
File "/usr/lib/python2.7/cmd.py", line 142, in cmdloop
stop = self.onecmd(line)
File "/usr/lib/python2.7/cmd.py", line 221, in onecmd
return func(arg)
File "/home/user/rpl-attacks/core/utils/decorators.py", line 156, in wrapper
kwargs['path']).run(*args, **kwargs)
KeyError: 'path'
Dear all,
please look at the attached report.pdf, which i generated using fab demo
. To me, it looks like the DODAG graph in the report is the one from the Blackhole Attack? You can see that after the attack, the malicious node is parent of a majority of the surrounding nodes.
I have this error when running a simulation.
Can you also please record a video demo of how to run it after the installation
Thank you
Type help or ? to list commands.
NB: Spaces are separators ; DO NOT use spaces in arguments !
parallels@ubuntu:rpl-attacks>> prepare sample-attacks
2017-02-02 11:51:59 rpla[21323] INFO CREATING NEW EXPERIMENT CAMPAIGN AT '/home/parallels/Experiments/sample-attacks.json'
Traceback (most recent call last):
File "main.py", line 7, in <module>
FrameworkConsole(parallel=True).cmdloop()
File "/home/parallels/rpl-attacks/core/console.py", line 41, in cmdloop
super(Console, self).cmdloop()
File "/usr/lib/python2.7/cmd.py", line 142, in cmdloop
stop = self.onecmd(line)
File "/usr/lib/python2.7/cmd.py", line 221, in onecmd
return func(arg)
File "/home/parallels/rpl-attacks/core/utils/decorators.py", line 150, in wrapper
kwargs['path']).run(*args, **kwargs)
KeyError: 'path'
Fatal error: local() encountered an error (return code 1) while executing 'python main.py'
Aborting.
prepare
and make_all
commands work properly but when run_all
command is run the following error is shown in cooja GUi:
org.contikios.cooja.Cooja$PluginConstructionException: Construction error for tool of class: org.contikios.cooja.plugins.ScriptRunner
at org.contikios.cooja.Cooja.startPlugin(Cooja.java:1876)
at org.contikios.cooja.Cooja.tryStartPlugin(Cooja.java:1772)
at org.contikios.cooja.Cooja.setPluginsConfigXML(Cooja.java:3706)
at org.contikios.cooja.Cooja.loadSimulationConfig(Cooja.java:3460)
at org.contikios.cooja.Cooja.loadSimulationConfig(Cooja.java:3380)
at org.contikios.cooja.Cooja.doLoadConfig(Cooja.java:2408)
at org.contikios.cooja.Cooja.main(Cooja.java:3243)
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488)
at org.contikios.cooja.Cooja.startPlugin(Cooja.java:1856)
... 6 more
Caused by: java.lang.ClassCastException: java.desktop/javax.swing.text.AbstractDocument$DefaultDocumentEventUndoableWrapper cannot be cast to java.desktop/javax.swing.text.AbstractDocument$DefaultDocumentEvent
at jsyntaxpane.CompoundUndoMan.undoableEditHappened(CompoundUndoMan.java:63)
at java.desktop/javax.swing.text.AbstractDocument.fireUndoableEditUpdate(AbstractDocument.java:293)
at java.desktop/javax.swing.text.AbstractDocument.handleInsertString(AbstractDocument.java:761)
at java.desktop/javax.swing.text.AbstractDocument.insertString(AbstractDocument.java:716)
at java.desktop/javax.swing.text.PlainDocument.insertString(PlainDocument.java:131)
at java.desktop/javax.swing.text.DefaultEditorKit.read(DefaultEditorKit.java:274)
at java.desktop/javax.swing.JEditorPane.setText(JEditorPane.java:1428)
at org.contikios.cooja.plugins.ScriptRunner.updateScript(ScriptRunner.java:619)
at org.contikios.cooja.plugins.ScriptRunner.<init>(ScriptRunner.java:276)
... 11 more
================================================================
FAIL: test3_update_cooja_user_properties (tests.setup.Test2CoojaSetup)
Is Cooja's user properties file correctly adapted ?
Ran 11 tests in 19.101s
FAILED (failures=1)
Warning: local() encountered an error (return code 1) while executing 'python -m unittest -v tests'
P2:
user@instant-contiki:rpl-attacks>> run_all sample-attacks
2017-03-28 18:39:06 rpla[10382] INFO PROCESSING EXPERIMENT 'test'
user@instant-contiki:rpl-attacks>> 2017-03-28 18:39:27 rpla[10391] ERROR Cooja error:
FATAL [main] (Cooja.java:3696) - Could not load plugin class: VisualizerScreenshot
2017-03-28 18:39:27 rpla[10391] ERROR Cooja error:
FATAL [Thread-1] (LogScriptEngine.java:317) - Script error:
java.lang.reflect.UndeclaredThrowableException
Please help me to figure out these problems, First problem might be the reason for the second problem
Thanks a bunch
Akalanka
Hi,
I run the below commands to run rpl-attacks on Contiki 3.0.
$ git clone https://github.com/dhondta/rpl-attacks.git
sudo apt-get install gfortran libopenblas-dev liblapack-dev $ sudo apt-get install build-essential python-dev libffi-dev libssl-dev $ sudo apt-get install python-numpy python-scipy $ sudo apt-get install libxml2-dev libxslt1-dev libjpeg8-dev zlib1g-dev $ sudo apt-get install imagemagick libcairo2-dev libffi-dev
sudo apt-get install python-pip
$ sudo pip install -r requirements.txt
But after the "user@instant-contiki:~/rpl-attacks$ sudo pip install -r requirements.txt
" command I deal with bellow error
" Cannot fetch index base URL https://pypi.python.org/simple/
Could not find any downloads that satisfy the requirement cffi (from -r requirements.txt (line 1))
Cleaning up...
No distributions at all found for cffi (from -r requirements.txt (line 1))
Storing debug log for failure in /home/user/.pip/pip.log
"
please help me to fix it.
I would appreciate you in advance.
Create attack simulations using real application-level motes using custom C files.
Add more tests so that the coverage can be increased.
While trying to run the below script i am getting a type error. Possible solutions ?? I am trying to calculate packet delivery ratio, packet sent, packets received etc.
TIMEOUT(300000, log.log("Performance Calculation" + "\n"));
packetsReceived= new Array();
packetsSent = new Array();
timeReceived = new Array();
timeSent = new Array();
count = new Array();
nodeCount = 10;
//data_length = 23;
senderID = 0;
receiverID = 0;
PDR=0;
//e_count = 0;
for(i = 1; i <= nodeCount; i++){
packetsReceived[i] = 0;
packetsSent[i] = 0;
timeSent[i] = 0;
timeReceived[i] = 0;
}
/*
DATA send to 1 'Hello 1'
Data is Hello 1 from the client
DATA recv 'Hello 1 from the client' from 5
*/
while(1){
YIELD();
msgArray = msg.split(' ');
if(msgArray[1].equals("send")){
if(msgArray.length == 6){
// sent packet
senderID = parseInt(msgArray[3]);
packetsSent[senderID]++;
timeSent[senderID] = time;
}
}
if(msgArray[1].equals("recv")){
if(msgArray.length == 9){
receiverID = parseInt(msgArray[8]);
packetsReceived[receiverID]++;
timeReceived[receiverID] = time;
log.log("receiverID " + receiverID + " PacketReceived= " +packetsReceived[receiverID] + "\n");
if (timeReceived[receiverID] > 0){
count[receiverID]++
}
totalReceived = totalSent = 0;
totalclient=0;
for(i = 1; i <= nodeCount; i++){
totalclient++;
totalReceived += packetsReceived[i];
totalSent += packetsSent[i];
log.log("MoteID= " + i + " ReceivedPackets= " + packetsReceived[i] + " SendingPackets= " + packetsSent[i] + "\n");
}
log.log(" Generated Packets " + totalSent + "\n");
log.log(" ReceivedPackets " + totalReceived + "\n");
PDR=(totalReceived / totalSent) * 100
log.log("Packet Delivery Ratio" + PDR + "\n");
}
}
}
Java stack trace:
:39 TypeError: Cannot read property "equals" from undefined
at jdk.nashorn.internal.runtime.ECMAErrors.error(ECMAErrors.java:57)
at jdk.nashorn.internal.runtime.ECMAErrors.typeError(ECMAErrors.java:213)
at jdk.nashorn.internal.runtime.ECMAErrors.typeError(ECMAErrors.java:185)
at jdk.nashorn.internal.runtime.ECMAErrors.typeError(ECMAErrors.java:172)
at jdk.nashorn.internal.runtime.Undefined.get(Undefined.java:157)
at jdk.nashorn.internal.scripts.Script$Recompilation$17$40$^eval_.run(:39)
at jdk.nashorn.javaadapters.java.lang.Runnable.run(Unknown Source)
at org.contikios.cooja.plugins.LogScriptEngine$4.run(LogScriptEngine.java:300)
at java.lang.Thread.run(Thread.java:748)
Refine the documentation and e.g. publish it on ReadTheDocs.
Hello All,
I encountered an error as follows when I run "fab test", when I am trying to reinstall the framework with python-2 in a different virtual machine. "fab setup" worked fine. I did not get this problem last time when I was installing the framework with ppython-2 and at that installation worked so fine. (I updated the O/S using "update" comment but still did not work)
Please let me know how to solve this problem. (Screen shot of the problem is attached).
Hi All,
I loaded the "test simulation" in the RPL Attack Framework manually by opening cooja using "ant run" and I have few question as follows.
Q1. Why "PowerTracker" does not show "Radio INT" valus (%) ? But after executing same simulation with RPL Attack Framework, under the data folder in the "powertracker.csv" file I can see all the values of 4 parameters (Radio ON (%), Radio TX (%), RAadio RX (%), Radio INT (%).
Q2. What is actual meaning of INT (Interference) and how does it calculated ?
Q3. All 4 parameter values are generated as a presentation (%). what does it mean ? and How does is calculated ?
Q4. How to calculate the CPU time with these parameters?
Q5. That is the different between cooja "Power Tracer" and "Power Tracker" ? Since in build "Power Tracer" attached to the "Collect View" tool give me 4 different parameters such as "CPU, LPM, RX, TX" as output which I can understand very well.
Please give me some formulas or equations to calculate these parameter. So far I could not find good documentation to solve these problems
Thank you very much.
Hi,
After installing RPL Attack Framwork "collect-view tool" is not appear in the Cooja simulator (See the following images for Before and after installing the Framework available tools in the Cooja simulator )
See before installing at the very bottom in the drop down menu for "collect-view tool" (No Visualizer Screenshot...)
See after the installing at the very bottom in the drop down menu for "collect-view tool" (But Visualizer Screenshot.. is added to the menu somewhere in the middle)
Please let me know how to add "collect-view tool" after installing the RPL Attack Framwork
Thank you very much
Akalanka (dmabm)
Hi,
I am currently trying to develop a new building block for the blackhole attack. What packets in the output are considered to be data plane ? I can only seem to see DIO, DAO and DIS messages. Which I thought were all control plane data..
R
Goal: Increase verbose level so that it can be assessed that the modifications expected by applying a building-block are well made
Rationale: Due to Contiki implementation changes, it could happen that a building-block is made ineffective due to a text replacement that does not match with ContikiRPL's code anymore.
When working with the console, the command called status
should display the list of current tasks when typed a first time. Then, while hitting ENTER (empty line), this should not display anything if the task list has not changed yet but should afterwards display the new state of this list when any task status has changed.
Problem: While continuing to press ENTER for status refresh, once the task list has changed, it is still not displayed.
Cause: Bad handling in console's "do_status" method.
Can a node receive its own DIS and transmit DIO by resetting its trickle timer ??
298514726 ID:7 RPL: Received a DIS from fe80::c30c:0:0:7
298517450 ID:7 RPL: Multicast DIS => reset DIO timer
298639076 ID:7 RPL: Received a DIS from fe80::c30c:0:0:7
298641770 ID:7 RPL: Multicast DIS => reset DIO timer
298891390 ID:7 RPL: Received a DIS from fe80::c30c:0:0:7
298894084 ID:7 RPL: Multicast DIS => reset DIO timer
298934122 ID:7 RPL: Received a DIS from fe80::c30c:0:0:7
298936816 ID:7 RPL: Multicast DIS => reset DIO timer
299139640 ID:7 RPL: Received a DIS from fe80::c30c:0:0:7
299142334 ID:7 RPL: Multicast DIS => reset DIO timer
299262999 ID:7 RPL: Sending a DIS to ff02::1a
299265944 ID:7 RPL: Sending a DIS to ff02::1a
299268890 ID:7 RPL: Sending a DIS to ff02::1a
299271835 ID:7 RPL: Sending a DIS to ff02::1a
299274780 ID:7 RPL: Sending a DIS to ff02::1a
299277763 ID:7 RPL: Sending a DIS to ff02::1a
299280709 ID:7 RPL: Sending a DIS to ff02::1a
299283692 ID:7 RPL: Sending a DIS to ff02::1a
299286637 ID:7 RPL: Sending a DIS to ff02::1a
299289583 ID:7 RPL: Sending a DIS to ff02::1a
299763754 ID:7 RPL: Received a DIS from fe80::c30c:0:0:7 <===
299766448 ID:7 RPL: Multicast DIS => reset DIO timer
299888175 ID:7 RPL: Sending prefix info in DIO for aaaa::
299891343 ID:7 RPL: Sending a multicast-DIO with rank 512
When using for example loglevel debug
in the console, a message is displayed telling that the logging level was well adapted. But debug messages do not display afterwards.
Cause : the logger is not recreated after resetting the loglevel in Python's logging
.
user@instant-contiki:rpl-attacks>> make test
2017-02-03 14:00:26 rpla[30483] WARNING > Experiment 'test' already exists !
Proceed anyway ? (yes|no) [default: no] yes
2017-02-03 14:00:28 rpla[30483] INFO CREATING EXPERIMENT 'test'
user@instant-contiki:rpl-attacks>> exit
2017-02-03 14:00:30 rpla[30483] INFO > Waiting for opened processes to finish...
2017-02-03 14:00:30 rpla[30483] WARNING Hit CTRL+C a second time to force process termination.
^C
Waiting a few seconds... then :
2017-02-03 14:00:32 rpla[30483] INFO > Terminating opened processes...
Modify the console so that it can display, e.g. in the bottom of the console, a progress bar for pending tasks.
Hi,
After installing vagrant and virtualbox, which box should i select from the web " http://www.vagrantbox.es/" to add the vagrant box?
Look forward to your reply.
hi....
My name is Sonxay , I am PhD student in VietNam.
first of all , i would like to say Thanks for your research RPL attacks
after i read your paper..could i have some question to ask you please.
Dear all,
When I set duration to 1200 sec(or longer) (The default is 120 sec) in the experiment json file,The experiment will go to half and then no response (usually the without-malicious pcap file is recorded to about 11M).
Has anyone solved this problem?
Any help is much appreciated.
Hi everyone, first of all, I would like to say thank you to the owners of this framework.
And I want to ask a question about rpl-attack-framework.
I installed rpl-attack-framework and after that I tried to make a simulation.
I ran prepare sample-attacks
command successfully
I ran make_all sample-attacks
command successfully
but when I tried to run run_all sample-attacks
command I got a cooja error - could not load plugin class: visualizerscreenshot
you can see all the details in the attached png file.
if anyone can help me, I will be very happy.
thank you
Refactor the core
so that it can generate simulations with multiple malicious motes at a time (currently only supports one).
Improve the parser so that it can generate a report with the simulation findings.
hi,
i have sent you an email regarding selective forwarding attack . can you please check it
When a run
task fails, the command kill
is used and the status becomes CANCELLED, the Cooja process remains pending while it should be killed in the OS.
Cause : No kill
system call.
Add more WSN topology generation algorithms in core/common/wsngenerator.py
and make selection available from the console.
root@instant-contiki:rpl-attacks>> status
┌Status of opened tasks────────┬──────────────────────────────────────────┐
│ Task │ Status │ Result │
├─────────────────┼────────────┼──────────────────────────────────────────┤
│ test[make] │ SUCCESS │ No result │
│ test[run] │ PENDING │ Not defined yet │
└─────────────────┴────────────┴──────────────────────────────────────────┘
root@instant-contiki:rpl-attacks>>
Fatal error: local() encountered an error (return code 1) while executing 'convert -delay 10 -loop 0 network*.png wsn-without-malicious.gif'
Scenario :
user@instant-contiki:rpl-attacks>> prepare my-campaign
user@instant-contiki:rpl-attacks>> make_all my-campaign
user@instant-contiki:rpl-attacks>> run_all my-campaign
Working :
test
Symptoms:
status´, one can point out that the experiment
test` remains in status PENDING forever.After preparing a campaign, run_all
triggers running each simulation. The first execution, this without the malicious mote succeeds then the second one, this with the malicious mote, fails.
user@instant-contiki:rpl-attacks>> run_all sample-attacks.json
2017-02-03 14:05:16 rpla[31761] INFO PROCESSING EXPERIMENT 'test'
user@instant-contiki:rpl-attacks>> status
┌Status of opened tasks────────┬──────────────────────────────────────────┐
│ Task │ Status │ Result │
├─────────────────┼────────────┼──────────────────────────────────────────┤
│ test[make] │ SUCCESS │ No result │
│ test[run] │ PENDING │ Not defined yet │
└─────────────────┴────────────┴──────────────────────────────────────────┘
user@instant-contiki:rpl-attacks>> status
┌Status of opened tasks────────┬─────────────────────────────────────────────────────────────────────────┐
│ Task │ Status │ Result │
├─────────────────┼────────────┼─────────────────────────────────────────────────────────────────────────┤
│ test[run] │ FAIL │ UnboundLocalError: local variable 'parent' referenced before assignment │
└─────────────────┴────────────┴─────────────────────────────────────────────────────────────────────────┘
user@instant-contiki:rpl-attacks>>
This logging is done through the script.js
by catching serial messages starting with # L
, normally indicating DAG edges. These lines do not appear anymore in the collected logs.
Suspected Cause : Something was changed in the Contiki C files, not displaying any edge logging message anymore in the current version.
Undesirable Consequences :
# L
is caught (otherwise, a first screenshot is taken then switched to off).hi @dhondta I want to implement increased-rank attack and dag inconsistency.
my building block is listed below and I want to ask two questions.
Is my building block true for dag-inconsistency and increased-rank? (in my experiments, I could not see too much change in power consumption)
if this building blocks false, what do I need to do in order to implement these attacks?
In my simulations, I want to locate malicious mote as a leaf node (as a child of other motes, not as a child of root node), but in all of my simulations malicious mote became a child node of root node and I want to change the location of malicious mote in order to increase the distance(hop count) between malicious mote and root node. can I do it? if I can, In order to do that which parameter do I need to change?
I have changed min_distance_between_motes
parameter, but I couldn't change the distance between the root and malicious mote and I could not locate malicious mote as a leaf node.
{
"dag-inconsistency": {
"RPL_HDR_OPT_DOWN": 1,
"RPL_HDR_OPT_RANK_ERR": 1
},
"increased-rank": {
"RPL_CONF_MIN_HOPRANKINC": 512,
"rpl-private.h": [
["#define RPL_MAX_RANKINC (7 * RPL_MIN_HOPRANKINC)", "#define RPL_MAX_RANKINC (35 * RPL_MIN_HOPRANKINC)]
]
}
}
THANK YOU
Hi, i need a suggest for simulate motes Lorawan and analyze the security features in this protocol
Thank you for your help :)
Hi! First of all thank you for this code.
Very flexible framework.
However, I cannot make it work, I had some issues with pyton dependencies, after solving it, I can make all work , untill I reach
run_all sample-attacks
If I do status I get:
┌Status of opened tasks─┬────────────┬──────────────────────────────────────────────────────────────┐
│ Task │ Status │ Result │
├───────────────────────┼────────────┼──────────────────────────────────────────────────────────────┤
│ blackhole-attack[run] │ FAIL │ TypeError: 'generator' object has no attribute '__getitem__' │
│ test[run] │ FAIL │ TypeError: 'generator' object has no attribute '__getitem__' │
└───────────────────────┴────────────┴──────────────────────────────────────────────────────────────┘
If I run with fab:
fab run_all:sample-attacks
2018-01-09 10:00:51 rpla[2553] INFO PROCESSING EXPERIMENT 'test'
Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/fabric/main.py", line 762, in main
*args, **kwargs
File "/usr/local/lib/python3.6/dist-packages/fabric/tasks.py", line 425, in execute
results['<local-only>'] = task.run(*args, **new_kwargs)
File "/usr/local/lib/python3.6/dist-packages/fabric/tasks.py", line 172, in run
return self.wrapped(*args, **kwargs)
File "/home/renzo/trabajo/demo-fic/rpl-attacks/core/utils/decorators.py", line 173, in wrapper
f(*args, **kwargs)
File "/home/renzo/trabajo/demo-fic/rpl-attacks/core/commands.py", line 558, in run_all
run(name) if console is None else console.do_run(name)
File "/home/renzo/trabajo/demo-fic/rpl-attacks/core/utils/decorators.py", line 173, in wrapper
f(*args, **kwargs)
File "/home/renzo/trabajo/demo-fic/rpl-attacks/core/commands.py", line 413, in __run
parsing_chain(sim_path)
File "/home/renzo/trabajo/demo-fic/rpl-attacks/core/utils/parser.py", line 21, in parsing_chain
convert_pcap_to_csv(path)
File "/home/renzo/trabajo/demo-fic/rpl-attacks/core/utils/parser.py", line 55, in convert_pcap_to_csv
f.write(out)
TypeError: a bytes-like object is required, not 'str'
I assume is also w problem with python. I have both pythons. I will keep checking but I will appreciate if you already run into this problem.
On instant contiki 3.0 I also runt with the same problem.
Dear all,
when looking into the output.pcap from the Blackhole attack, i find a lot of packets with the DIS Protocol. Please see the appended image.
DIS is, as far as i can see, the Distributed Interactive Simulation, a Protocol used by the Military to perform distributed wargaming.
Can somebody explain what it's used for here? Also, i find it only in PCAP files for the Blackhole attack, never in Hello-Flood or Version-Number attack.
Help is much appreciated.
Traceback (most recent call last):
2: from /opt/vagrant/embedded/gems/2.2.9/gems/vagrant-2.2.9/bin/vagrant:88:in `<main>'
1: from /opt/vagrant/embedded/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/opt/vagrant/embedded/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- vagrant (LoadError)
20: from /opt/vagrant/embedded/gems/2.2.9/gems/vagrant-2.2.9/bin/vagrant:88:in `<main>'
19: from /opt/vagrant/embedded/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:34:in `require'
18: from /opt/vagrant/embedded/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:130:in `rescue in require'
17: from /opt/vagrant/embedded/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:130:in `require'
16: from /opt/vagrant/embedded/gems/2.2.9/gems/vagrant-2.2.9/lib/vagrant.rb:40:in `<top (required)>'
15: from /opt/vagrant/embedded/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
14: from /opt/vagrant/embedded/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
13: from /opt/vagrant/embedded/gems/2.2.9/gems/vagrant-2.2.9/lib/vagrant/plugin/manager.rb:4:in `<top (required)>'
12: from /opt/vagrant/embedded/gems/2.2.9/gems/vagrant-2.2.9/lib/vagrant/plugin/manager.rb:4:in `require_relative'
11: from /opt/vagrant/embedded/gems/2.2.9/gems/vagrant-2.2.9/lib/vagrant/bundler.rb:8:in `<top (required)>'
10: from /opt/vagrant/embedded/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
9: from /opt/vagrant/embedded/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
8: from /opt/vagrant/embedded/lib/ruby/2.6.0/rubygems/package.rb:44:in `<top (required)>'
7: from /opt/vagrant/embedded/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
6: from /opt/vagrant/embedded/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
5: from /opt/vagrant/embedded/lib/ruby/2.6.0/rubygems/security.rb:12:in `<top (required)>'
4: from /opt/vagrant/embedded/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
3: from /opt/vagrant/embedded/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
2: from /opt/vagrant/embedded/lib/ruby/2.6.0/openssl.rb:13:in `<top (required)>'
1: from /opt/vagrant/embedded/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/opt/vagrant/embedded/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require': /lib/i386-linux-gnu/libc.so.6: version `GLIBC_2.17' not found (required by /opt/vagrant/embedded/lib/libcrypto.so.1.1) - /opt/vagrant/embedded/lib/ruby/2.6.0/i686-linux/openssl.so (LoadError)
Add building blocks for more attacks, i.e. these described in the taxonomy presented in the Academical Report.
I'm running it on Ubuntu 16.04 with contiki 3.0 (not a contiki instant) and python 3.5.2
parallels@ubuntu:~/rpl-attacks$ fab test
2017-02-01 13:22:57 root[3073] INFO Generating grammar tables from /usr/lib/python3.5/lib2to3/Grammar.txt
2017-02-01 13:22:57 root[3073] INFO Generating grammar tables from /usr/lib/python3.5/lib2to3/PatternGrammar.txt
2017-02-01 13:22:58 rpla[3073] INFO TESTING THE FRAMEWORK
[localhost] local: python -m unittest tests
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/usr/lib/python2.7/unittest/__main__.py", line 12, in <module>
main(module=None)
File "/usr/lib/python2.7/unittest/main.py", line 94, in __init__
self.parseArgs(argv)
File "/usr/lib/python2.7/unittest/main.py", line 149, in parseArgs
self.createTests()
File "/usr/lib/python2.7/unittest/main.py", line 158, in createTests
self.module)
File "/usr/lib/python2.7/unittest/loader.py", line 130, in loadTestsFromNames
suites = [self.loadTestsFromName(name, module) for name in names]
File "/usr/lib/python2.7/unittest/loader.py", line 91, in loadTestsFromName
module = __import__('.'.join(parts_copy))
File "tests/__init__.py", line 1, in <module>
from .setup import Test1Config, Test2CoojaSetup
File "tests/setup.py", line 3, in <module>
import sh
ImportError: No module named sh
Warning: local() encountered an error (return code 1) while executing 'python -m unittest tests'
Done.
parallels@ubuntu:~/rpl-attacks$ sudo fab console
2017-02-01 13:31:35 root[4757] INFO Generating grammar tables from /usr/lib/python3.5/lib2to3/Grammar.txt
2017-02-01 13:31:35 root[4757] INFO Generating grammar tables from /usr/lib/python3.5/lib2to3/PatternGrammar.txt
[localhost] local: python main.py
Traceback (most recent call last):
File "main.py", line 3, in <module>
from core.console import FrameworkConsole
File "/home/parallels/rpl-attacks/core/console.py", line 6, in <module>
from funcsigs import signature
ImportError: No module named funcsigs
Fatal error: local() encountered an error (return code 1) while executing 'python main.py'
Aborting.
parallels@ubuntu:~/rpl-attacks$ sudo pip3 install funcsigs
The directory '/home/parallels/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/parallels/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Requirement already satisfied: funcsigs in /usr/local/lib/python3.5/dist-packages
Add more guidance, either in the documentation or in the console, to help the user manage his/her experiments and campaigns.
Traceback (most recent call last):
File "/usr/local/bin/fab", line 11, in <module>
load_entry_point('Fabric3==1.14.post1', 'console_scripts', 'fab')()
File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 484, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2725, in load_entry_point
return ep.load()
File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2343, in load
return self.resolve()
File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2353, in resolve
raise ImportError(str(exc))
ImportError: 'module' object has no attribute 'main'
This is when I run : fab setup
, I resolved all the dependencies issue before and reach at this stage.
Reference: #27
@dmabm wrote:
I am going to count CPU, RX, TX separately and draw graphs manually using EXCEL. To do that I plan to use simulation generated data with different networks. That would be my 1st experiment and later I would like to do more similar experiments with some more different parameters instead of "POWER", in that case I may want to connect collect view tool with this Framework.
Provide a Vagrantfile
and an Ansible playbook for deployment automation of Contiki-OS and RPL Attacks Framework.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.