From 3cc31686c268442ca409b68e5ec84e863cbe594c Mon Sep 17 00:00:00 2001
From: root <root@RossDebian>
Date: Sat, 12 Oct 2019 14:46:25 +0100
Subject: [PATCH 1/4] cleancap plugin added

---
 pwnagotchi/defaults.yml                |  2 +
 pwnagotchi/plugins/default/cleancap.py | 55 ++++++++++++++++++++++++++
 2 files changed, 57 insertions(+)
 create mode 100644 pwnagotchi/plugins/default/cleancap.py

diff --git a/pwnagotchi/defaults.yml b/pwnagotchi/defaults.yml
index e6787c7..e2f72f0 100644
--- a/pwnagotchi/defaults.yml
+++ b/pwnagotchi/defaults.yml
@@ -58,6 +58,8 @@ main:
       quickdic:
         enabled: false
         wordlist_folder: /opt/wordlists/
+      cleancap:
+        enabled: false
     # monitor interface to use
     iface: mon0
     # command to run to bring the mon interface up in case it's not up already
diff --git a/pwnagotchi/plugins/default/cleancap.py b/pwnagotchi/plugins/default/cleancap.py
new file mode 100644
index 0000000..ae48840
--- /dev/null
+++ b/pwnagotchi/plugins/default/cleancap.py
@@ -0,0 +1,55 @@
+__author__ = 'pwnagotchi [at] rossmarks [dot] uk'
+__version__ = '1.0.0'
+__name__ = 'cleancap'
+__license__ = 'GPL3'
+__description__ = 'confirm pcap contains handshake/PMKID or delete it'
+
+'''
+Aircrack-ng needed, to install:
+> apt-get install aircrack-ng
+'''
+
+import logging
+import subprocess
+import string
+import re
+
+OPTIONS = dict()
+
+def on_loaded():
+    logging.info("cleancap plugin loaded")
+
+def on_handshake(agent, filename, access_point, client_station):
+    display = agent._view
+    todelete = 0
+
+    result = subprocess.run(('/usr/bin/aircrack-ng '+ filename +' | grep "1 handshake" | awk \'{print $2}\''),shell=True, stdout=subprocess.PIPE)
+    result = result.stdout.decode('utf-8').translate({ord(c) :None for c in string.whitespace})
+    if result:
+        logging.info("[cleancap] contains handshake")
+    else:
+        todetele = 1
+
+    if todelete == 0:
+        result = subprocess.run(('/usr/bin/aircrack-ng '+ filename +' | grep "PMKID" | awk \'{print $2}\''),shell=True, stdout=subprocess.PIPE)
+        result = result.stdout.decode('utf-8').translate({ord(c) :None for c in string.whitespace})
+        if result:
+            logging.info("[cleancap] contains PMKID")
+        else:
+            todetele = 1
+
+    if todelete == 1:
+        set_text("uncrackable pcap")
+        display.update(force=True)
+
+text_to_set = "";
+def set_text(text):
+    global text_to_set
+    text_to_set = text
+
+def on_ui_update(ui):
+    global text_to_set
+    if text_to_set:
+        ui.set('face', "(>.<)")
+        ui.set('status', text_to_set)
+        text_to_set = ""

From 2d78b52294aa908683c5ecdaa05fa13ca63b2674 Mon Sep 17 00:00:00 2001
From: root <root@RossDebian>
Date: Sat, 12 Oct 2019 14:49:42 +0100
Subject: [PATCH 2/4] cleancap plugin added

---
 pwnagotchi/plugins/default/cleancap.py | 1 +
 1 file changed, 1 insertion(+)

diff --git a/pwnagotchi/plugins/default/cleancap.py b/pwnagotchi/plugins/default/cleancap.py
index ae48840..aac3d7f 100644
--- a/pwnagotchi/plugins/default/cleancap.py
+++ b/pwnagotchi/plugins/default/cleancap.py
@@ -39,6 +39,7 @@ def on_handshake(agent, filename, access_point, client_station):
             todetele = 1
 
     if todelete == 1:
+        subprocess.run(('rm '+filename),shell=True,stdout=subpocess.PIPE)
         set_text("uncrackable pcap")
         display.update(force=True)
 

From b46f751e7d5a4765175ae7338d1bca26d134ede0 Mon Sep 17 00:00:00 2001
From: root <root@RossDebian>
Date: Sat, 12 Oct 2019 19:23:41 +0100
Subject: [PATCH 3/4] modified to better describe plugin

---
 pwnagotchi/defaults.yml                                     | 2 +-
 pwnagotchi/plugins/default/{cleancap.py => AircrackOnly.py} | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)
 rename pwnagotchi/plugins/default/{cleancap.py => AircrackOnly.py} (91%)

diff --git a/pwnagotchi/defaults.yml b/pwnagotchi/defaults.yml
index e2f72f0..ec487f8 100644
--- a/pwnagotchi/defaults.yml
+++ b/pwnagotchi/defaults.yml
@@ -58,7 +58,7 @@ main:
       quickdic:
         enabled: false
         wordlist_folder: /opt/wordlists/
-      cleancap:
+      AircrackOnly:
         enabled: false
     # monitor interface to use
     iface: mon0
diff --git a/pwnagotchi/plugins/default/cleancap.py b/pwnagotchi/plugins/default/AircrackOnly.py
similarity index 91%
rename from pwnagotchi/plugins/default/cleancap.py
rename to pwnagotchi/plugins/default/AircrackOnly.py
index aac3d7f..308dad9 100644
--- a/pwnagotchi/plugins/default/cleancap.py
+++ b/pwnagotchi/plugins/default/AircrackOnly.py
@@ -1,6 +1,6 @@
 __author__ = 'pwnagotchi [at] rossmarks [dot] uk'
 __version__ = '1.0.0'
-__name__ = 'cleancap'
+__name__ = 'AircrackOnly'
 __license__ = 'GPL3'
 __description__ = 'confirm pcap contains handshake/PMKID or delete it'
 
@@ -26,7 +26,7 @@ def on_handshake(agent, filename, access_point, client_station):
     result = subprocess.run(('/usr/bin/aircrack-ng '+ filename +' | grep "1 handshake" | awk \'{print $2}\''),shell=True, stdout=subprocess.PIPE)
     result = result.stdout.decode('utf-8').translate({ord(c) :None for c in string.whitespace})
     if result:
-        logging.info("[cleancap] contains handshake")
+        logging.info("[AircrackOnly] contains handshake")
     else:
         todetele = 1
 
@@ -34,7 +34,7 @@ def on_handshake(agent, filename, access_point, client_station):
         result = subprocess.run(('/usr/bin/aircrack-ng '+ filename +' | grep "PMKID" | awk \'{print $2}\''),shell=True, stdout=subprocess.PIPE)
         result = result.stdout.decode('utf-8').translate({ord(c) :None for c in string.whitespace})
         if result:
-            logging.info("[cleancap] contains PMKID")
+            logging.info("[AircrackOnly] contains PMKID")
         else:
             todetele = 1
 

From 0cccfef14ec8282312dce4a39383a01ba2261fd1 Mon Sep 17 00:00:00 2001
From: root <root@RossDebian>
Date: Sat, 12 Oct 2019 19:29:04 +0100
Subject: [PATCH 4/4] replaced with os.remove()

---
 pwnagotchi/plugins/default/AircrackOnly.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/pwnagotchi/plugins/default/AircrackOnly.py b/pwnagotchi/plugins/default/AircrackOnly.py
index 308dad9..b1baa99 100644
--- a/pwnagotchi/plugins/default/AircrackOnly.py
+++ b/pwnagotchi/plugins/default/AircrackOnly.py
@@ -13,6 +13,7 @@ import logging
 import subprocess
 import string
 import re
+import os
 
 OPTIONS = dict()
 
@@ -39,7 +40,7 @@ def on_handshake(agent, filename, access_point, client_station):
             todetele = 1
 
     if todelete == 1:
-        subprocess.run(('rm '+filename),shell=True,stdout=subpocess.PIPE)
+        os.remove(filename)
         set_text("uncrackable pcap")
         display.update(force=True)