Closed GoogleCodeExporter closed 9 years ago
openwrt is not currently a supported platform. This issue does not occur in
non-embedded Linux distros.
Rolling this into issue 46 (add support for openwrt).
Original comment by cheff...@tacnetsol.com
on 10 Jan 2012 at 5:43
hi cheff this is not just a issue in openwrt
$uname -a
Linux cell 2.6.38-13-generic #53-Ubuntu SMP Mon Nov 28 19:33:45 UTC 2011 x86_64
x86_64 x86_64 GNU/Linux
$sudo strace reaver -c 6 -i mon0 -b 58:6D:8F:73:0F:F6 -vv
execve("/usr/local/bin/reaver", ["reaver", "-c", "6", "-i", "mon0", "-b",
"58:6D:8F:73:0F:F6", "-vv"], [/* 18 vars */]) = 0
brk(0) = 0xa89000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f126eb2e000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=140227, ...}) = 0
mmap(NULL, 140227, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f126eb0b000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libdl.so.2", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\r\0\0\0\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=14696, ...}) = 0
mmap(NULL, 2109720, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x7f126e70c000
mprotect(0x7f126e70e000, 2097152, PROT_NONE) = 0
mmap(0x7f126e90e000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f126e90e000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libm.so.6", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360>\0\0\0\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=543104, ...}) = 0
mmap(NULL, 2638136, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x7f126e487000
mprotect(0x7f126e50b000, 2093056, PROT_NONE) = 0
mmap(0x7f126e70a000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x83000) = 0x7f126e70a000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib/libpcap.so.0.8", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360M\0\0\0\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=220512, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f126eb0a000
mmap(NULL, 2318848, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x7f126e250000
mprotect(0x7f126e284000, 2097152, PROT_NONE) = 0
mmap(0x7f126e484000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x34000) = 0x7f126e484000
mmap(0x7f126e486000, 512, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f126e486000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib/x86_64-linux-gnu/libsqlite3.so.0", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260\204\0\0\0\0\0\0"..., 832) =
832
fstat(3, {st_mode=S_IFREG|0644, st_size=626520, ...}) = 0
mmap(NULL, 2723096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x7f126dfb7000
mprotect(0x7f126e04d000, 2093056, PROT_NONE) = 0
mmap(0x7f126e24c000, 16384, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x95000) = 0x7f126e24c000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\360\1\0\0\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1638120, ...}) = 0
mmap(NULL, 3749080, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x7f126dc23000
mprotect(0x7f126ddad000, 2093056, PROT_NONE) = 0
mmap(0x7f126dfac000, 20480, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x189000) = 0x7f126dfac000
mmap(0x7f126dfb1000, 21720, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f126dfb1000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libpthread.so.0", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\\\0\0\0\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=140254, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f126eb09000
mmap(NULL, 2217000, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x7f126da05000
mprotect(0x7f126da1d000, 2097152, PROT_NONE) = 0
mmap(0x7f126dc1d000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18000) = 0x7f126dc1d000
mmap(0x7f126dc1f000, 13352, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f126dc1f000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f126eb08000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f126eb06000
arch_prctl(ARCH_SET_FS, 0x7f126eb06720) = 0
mprotect(0x7f126dc1d000, 4096, PROT_READ) = 0
mprotect(0x7f126dfac000, 16384, PROT_READ) = 0
mprotect(0x7f126e24c000, 8192, PROT_READ) = 0
mprotect(0x7f126e484000, 4096, PROT_READ) = 0
mprotect(0x7f126e70a000, 4096, PROT_READ) = 0
mprotect(0x7f126e90e000, 4096, PROT_READ) = 0
mprotect(0x641000, 4096, PROT_READ) = 0
mprotect(0x7f126eb30000, 4096, PROT_READ) = 0
munmap(0x7f126eb0b000, 140227) = 0
set_tid_address(0x7f126eb069f0) = 8660
set_robust_list(0x7f126eb06a00, 0x18) = 0
futex(0x7fff76bc986c, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7fff76bc986c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1, NULL,
7f126eb06720) = -1 EAGAIN (Resource temporarily unavailable)
rt_sigaction(SIGRTMIN, {0x7f126da0a740, [], SA_RESTORER|SA_SIGINFO,
0x7f126da14c60}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x7f126da0a7d0, [], SA_RESTORER|SA_RESTART|SA_SIGINFO,
0x7f126da14c60}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
brk(0) = 0xa89000
brk(0xabf000) = 0xabf000
stat("/usr/local/etc/reaver/reaver.db", {st_mode=S_IFREG|0666, st_size=14336,
...}) = 0
open("/usr/local/etc/reaver/reaver.db", O_RDWR|O_CREAT, 0644) = 3
fcntl(3, F_GETFD) = 0
fcntl(3, F_SETFD, FD_CLOEXEC) = 0
fstat(3, {st_mode=S_IFREG|0666, st_size=14336, ...}) = 0
lseek(3, 0, SEEK_SET) = 0
read(3, "SQLite format 3\0\4\0\1\1\0@ \0\3-\252\0\0\0\16"..., 100) = 100
write(2, "\nReaver v1.4 WiFi Protected Setu"..., 46
Reaver v1.4 WiFi Protected Setup Attack Tool
) = 46
write(2, "Copyright (c) 2011, Tactical Net"..., 88Copyright (c) 2011, Tactical
Network Solutions, Craig Heffner <cheffner@tacnetsol.com>
) = 88
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 4
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
if I run reaver and give -c befor -i then reaver tries to switch channel but it
does not know the interface yet ... sorry for my bad english
argsparser.c line 104
case 'c':
change_channel(strtod(optarg, NULL)); // reaver -c 6 -i mon0 -b xx:xx... interface is NULL in this case
Original comment by mich4th3...@googlemail.com
on 10 Jan 2012 at 6:38
This isn't limited to openwrt, but a generic issue with the way arguments are
handled.
diff to fix channel and interface handling below, other arguments may require
further changes
--- argsparser.c.old 2012-01-11 09:15:16.000000000 +0100
+++ argsparser.c 2012-01-11 09:22:37.000000000 +0100
@@ -39,6 +39,12 @@
int ret_val = EXIT_SUCCESS;
int c = 0;
int long_opt_index = 0;
+
+ int config_channel = 0;
+ int channel = 0;
+ int config_iface = 0;
+ char *iface;
+
char bssid[MAC_ADDR_LEN] = { 0 };
char mac[MAC_ADDR_LEN] = { 0 };
char *short_options = "b:e:m:i:t:d:c:T:x:r:g:l:o:p:s:aA5ELfnqvDShw";
@@ -82,7 +88,9 @@
switch(c)
{
case 'i':
- set_iface(optarg);
+/* set_iface(optarg); */
+ config_iface = 1;
+ iface = strdup(optarg);
break;
case 'b':
str2mac((unsigned char *) optarg, (unsigned char *) &bssid);
@@ -102,8 +110,10 @@
set_m57_timeout(strtof(optarg, NULL) * SEC_TO_US);
break;
case 'c':
- change_channel(strtod(optarg, NULL));
- set_fixed_channel(1);
+/* change_channel(strtod(optarg, NULL)); */
+/* set_fixed_channel(1); */
+ config_channel = 1;
+ channel = strtod(optarg, NULL);
break;
case '5':
set_wifi_band(AN_BAND);
@@ -170,6 +180,17 @@
}
}
+ if (config_iface != 0)
+ {
+ set_iface(iface);
+ }
+
+ if (config_channel != 0)
+ {
+ change_channel(channel);
+ set_fixed_channel(1);
+ }
+
return ret_val;
}
Original comment by annemarc...@gmail.com
on 11 Jan 2012 at 8:33
Ah, sorry! Thanks for the patch, fixed now.
Original comment by cheff...@tacnetsol.com
on 12 Jan 2012 at 12:36
Thank you :)
Original comment by annemarc...@gmail.com
on 13 Jan 2012 at 5:38
Original issue reported on code.google.com by
annemarc...@gmail.com
on 10 Jan 2012 at 1:18