Acrylic generic passwords generation scripts consists in code .NET (C#), executed dynamically from Acrylic and allowing generating a list of predictable passwords for access points, depending on several factors:

  • Access point encryption (WPA, WPA2, WEP).
  • MAC address of the access point (BSSID).
  • Network Name (SSID).

Acrylic is capable of generating generic passwords for a large number of devices for both encryption passwords (WEP, WPA and WPA2) and WLAN generic passwords for WPS.

Acrylic WiFi password scripting IDE
Acrylic Wifi scripts

Thanks to the integrated editor, creating and sending passwords scripts is easier. With the collaboration of the community, many known weaknesses in password generation algorithms of ADSL routers will be carried.

When creating a script from scratch in the editor you can select the new script option and fill in the fields, resulting in a template script.

A script consists of functions for informational use:

  • Description: Description of the script functioning and which devices are affected.
  • Version: Script version number.
  • Author: About the author who developed the script.

And defining which access points are applied to:

  • Security: Enum with security types applied on, which will be WEP, WPA and WPA2 (not necessary for WPS PIN generation scripts).
  • ValidMacs: List of macs (only the first 3 bytes that are identifying the vendor) on which it makes sense to run the script.
  • SSID: Displays the name that the network must have to run the script (it can be empty for applying to any network or include all-rounder characters, using the character “?”).
  • EstimatedKeys: Number of passwords that are generated as a result. This number is usually known before, so it is advisable to be as close as possible to it.
  • Generate: Main function that generates the list of passwords for the device.

It supports input parameters a list of objects, these can be referenced to using the enum KeygenParams.
E.g.:

string ssid = ((string)keygenParams[(int)KeygenParams.Ssid]);

Scripts can be tested from the editor so that if an ssid/mac is given, you will see if results are generated.

[code language=”csharp”]
using System;
using System.Collections.Generic;

// +——————————————————————-+
// | SEND US YOUR SCRIPTS AND WILL BE INCLUDED IN NEXT Acrylic RELEASE |
// | |
// | (Use the Submit action from the right button menu) |
// + ——————————————————————+

public class WifiMediaR {

//——————————————————————————————————————————–
public string Description { get { return "WifiMediaR Galician cable provider"; } }
public double Version { get { return 0.2; } }
public string Author { get { return "Tarlogic – (Based on public algorithms)"; } }
//——————————————————————————————————————————–

//——————————————————————————————————————————–
public SecurityParams Security { get { return SecurityParams.Wpa | SecurityParams.Wpa2; } }
//——————————————————————————————————————————–

//——————————————————————————————————————————–
public List ValidSsids { get { return new List(); } }
//——————————————————————————————————————————–

//——————————————————————————————————————————–
public List ValidMacs { get { return new List() { "00:26:5B", "BC:14:01", "00:05:CA", "68:B6:FC" }; } }
//——————————————————————————————————————————–

//——————————————————————————————————————————–
public int EstimatedKeys { get { return 1; } }
//——————————————————————————————————————————–

//——————————————————————————————————————————–
public List Generate(List

List retVal = new List();

foreach (string validMac in ValidMacs) {
if (macString.Substring(0, 8) == validMac) {
ulong tmp = (macUlong & 0xFFFFFFFFFFF0);

string ms = ((tmp & 0xFF0000000000) >> 40).ToString("X2") +
((tmp & 0x00FF00000000) >> 32).ToString("X2") +
((tmp & 0x0000FF000000) >> 24).ToString("X2") +
((tmp & 0x000000FF0000) >> 16).ToString("X2") +
((tmp & 0x00000000FF00) >> 8).ToString("X2") +
(tmp & 0x000000000000FF).ToString("X2");

retVal.Add(ms);

}
}

return retVal;
}
catch (Exception) { return new List { "" }; }

}
//——————————————————————————————————————————–

}
[/code]