Yarilo v0.9.9
WPA2 Decrypter & Packet Analyzer
|
Access Point in a basic service set (BSS) network. More...
#include <access_point.h>
Classes | |
struct | client_info |
Client information. More... | |
struct | client_security |
Connection security info of a specific client. More... | |
struct | wifi_standard_info |
WiFi standard capabilities for the network. More... | |
Public Types | |
enum class | NetworkSecurity { OPEN , WEP , WPA , WPA2_Personal , WPA2_Enterprise , WPA3_Personal , WPA3_Enterprise } |
Network security protocol used. A network can support multiple ways to connect and secure data. More... | |
enum class | DecryptionState { DECRYPTED , NOT_ENOUGH_DATA , INCORRECT_PASSWORD , ALREADY_DECRYPTED } |
Current state of decryption. More... | |
enum class | WiFiStandard { Dot11A , Dot11B , Dot11G , Dot11N , Dot11AC , Dot11AX } |
enum class | Modulation { CCK , BPSK , QPSK , QAM16 , QAM64 , QAM256 , QAM1024 } |
enum class | ChannelWidth { CHAN20 , CHAN40 , CHAN80 , CHAN80_80 , CHAN160 } |
Public Member Functions | |
AccessPoint (const MACAddress &bssid, const SSID &ssid, int wifi_channel, Database &db) | |
bool | handle_pkt (Tins::Packet *pkt) |
DecryptionState | add_password (const std::string &psk) |
SSID | get_ssid () const |
MACAddress | get_bssid () const |
int | get_wifi_channel () const |
std::vector< wifi_standard_info > | standards_supported () const |
std::shared_ptr< PacketChannel > | get_decrypted_channel () |
void | close_all_channels () |
bool | send_deauth (const Tins::NetworkInterface &iface, const MACAddress &addr) |
bool | has_working_password () const |
std::vector< NetworkSecurity > | security_supported () const |
bool | unicast_decryption_supported () const |
bool | group_decryption_supported () const |
bool | client_decryption_supported (const MACAddress &client) |
bool | protected_management_supported () const |
bool | protected_management_required () const |
bool | protected_management (const MACAddress &client) |
WPA2Decrypter & | get_decrypter () |
const std::set< MACAddress > | get_clients () |
const std::optional< client_info > | get_client (MACAddress addr) |
const std::optional< client_security > | get_client_security (MACAddress addr) |
uint32_t | raw_packet_count () const |
uint32_t | decrypted_packet_count () const |
std::optional< Recording::info > | save_traffic (const std::filesystem::path &save_path, const std::string &name) |
std::optional< Recording::info > | save_decrypted_traffic (const std::filesystem::path &save_path, const std::string &name) |
void | set_vendor () |
std::string | get_vendor () const |
std::string | get_oid () const |
std::string | supported_security_text () const |
Access Point in a basic service set (BSS) network.
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
yarilo::AccessPoint::AccessPoint | ( | const MACAddress & | bssid, |
const SSID & | ssid, | ||
int | wifi_channel, | ||
Database & | db ) |
A constructor which creates the access point based on AP data
[in] | bssid | hwaddr of the network |
[in] | ssid | name of the network |
[in] | wifi_channel | wifi channel for this network |
DecryptionState yarilo::AccessPoint::add_password | ( | const std::string & | psk | ) |
A method for adding the wifi password key. Decryption of packets requires a 4-way handshake. If the password is present, the user packets will be decrypted using this key.
[in] | psk | network key |
bool yarilo::AccessPoint::client_decryption_supported | ( | const MACAddress & | client | ) |
Get if this client has unicast decryption support
void yarilo::AccessPoint::close_all_channels | ( | ) |
Close all channels
uint32_t yarilo::AccessPoint::decrypted_packet_count | ( | ) | const |
Decrypted packets data count
MACAddress yarilo::AccessPoint::get_bssid | ( | ) | const |
Get this networks BSSID (MAC of the station)
|
inline |
Get info about a client
|
inline |
Get a client's security details
|
inline |
Get the available users information
std::shared_ptr< PacketChannel > yarilo::AccessPoint::get_decrypted_channel | ( | ) |
Get the converted data channel for this network
WPA2Decrypter & yarilo::AccessPoint::get_decrypter | ( | ) |
Get the decrypter
std::string yarilo::AccessPoint::get_oid | ( | ) | const |
Get the OID of the access point
SSID yarilo::AccessPoint::get_ssid | ( | ) | const |
Get this networks SSID
std::string yarilo::AccessPoint::get_vendor | ( | ) | const |
Get the vendor of the access point
int yarilo::AccessPoint::get_wifi_channel | ( | ) | const |
Get this networks wifi channel
bool yarilo::AccessPoint::group_decryption_supported | ( | ) | const |
Get if the network has group decryption support
bool yarilo::AccessPoint::handle_pkt | ( | Tins::Packet * | pkt | ) |
A method for handling incoming packets inside this network, if you don't know if the packet belongs to this network check the bssid
[in] | pkt | A reference to the packet |
bool yarilo::AccessPoint::has_working_password | ( | ) | const |
Get if the network already has a working psk (one that generated a valid keypair)
bool yarilo::AccessPoint::protected_management | ( | const MACAddress & | client | ) |
bool yarilo::AccessPoint::protected_management_required | ( | ) | const |
bool yarilo::AccessPoint::protected_management_supported | ( | ) | const |
uint32_t yarilo::AccessPoint::raw_packet_count | ( | ) | const |
Unencrypted packets count
std::optional< recording_info > yarilo::AccessPoint::save_decrypted_traffic | ( | const std::filesystem::path & | save_path, |
const std::string & | name ) |
Save decrypted traffic
[in] | directory | in which the recording should live |
[in] | name | user-defined filename |
std::optional< recording_info > yarilo::AccessPoint::save_traffic | ( | const std::filesystem::path & | save_path, |
const std::string & | name ) |
Save all traffic (in 802.11 data link)
[in] | directory | in which the recording should live |
[in] | name | user-defined filename |
[in] | raw | whether to safe raw traffic |
std::vector< NetworkSecurity > yarilo::AccessPoint::security_supported | ( | ) | const |
Get supported security modes (e.g. WPA2-PSK)
bool yarilo::AccessPoint::send_deauth | ( | const Tins::NetworkInterface & | iface, |
const MACAddress & | addr ) |
Send a deauthentication request via a sender to an addr to kick it off this network
[in] | iface | network interface to use |
[in] | addr | hardware address of the target device |
void yarilo::AccessPoint::set_vendor | ( | ) |
Set the vendor of the access point based on the OID.txt file
std::vector< wifi_standard_info > yarilo::AccessPoint::standards_supported | ( | ) | const |
Get standard capabilities
std::string yarilo::AccessPoint::supported_security_text | ( | ) | const |
bool yarilo::AccessPoint::unicast_decryption_supported | ( | ) | const |
Get if the network has unicast decryption support