# main algorithm configuration main: # monitor interface to use iface: wlx00c0ca916886 # command to run to bring the mon interface up in case it's not up already mon_start_cmd: null mon_stop_cmd: null mon_max_blind_epochs: 1000 # log file log: /var/log/pwnagotchi.log # if true, will not restart the wifi module no_restart: false # access points to ignore whitelist: - Casa-2.4 - LOTS_OF_MALWARE # if not null, filter access points by this regular expression filter: null # cryptographic key for identity pubkey: /etc/ssh/ssh_host_rsa_key.pub ai: enabled: true path: /root/pwnagotchi.nn # 1.0 - laziness = probability of start training laziness: 0.1 # how many epochs to train on epochs_per_episode: 50 # NN hyper-parameters params: # discount factor gamma: 0.99 # the number of steps to run for each environment per update n_steps: 1 # value function coefficient for the loss calculation vf_coef: 0.25 # entropy coefficient for the loss calculation ent_coef: 0.01 # maximum value for the gradient clipping max_grad_norm: 0.5 # the learning rate learning_rate: 0.0010 # rmsprop decay parameter alpha: 0.99 # rmsprop epsilon epsilon: 0.00001 # the verbosity level: 0 none, 1 training information, 2 tensorflow debug verbose: 1 # type of scheduler for the learning rate update ('linear', 'constant', 'double_linear_con', 'middle_drop' or 'double_middle_drop') lr_schedule: 'constant' # the log location for tensorboard (if None, no logging) tensorboard_log: null personality: # advertise our presence advertise: true # perform a deauthentication attack to client stations in order to get full or half handshakes deauth: true # send association frames to APs in order to get the PMKID associate: true # list of channels to recon on, or empty for all channels channels: [] # minimum WiFi signal strength in dBm min_rssi: -200 # number of seconds for wifi.ap.ttl ap_ttl: 120 # number of seconds for wifi.sta.ttl sta_ttl: 300 # time in seconds to wait during channel recon recon_time: 30 # number of inactive epochs after which recon_time gets multiplied by recon_inactive_multiplier max_inactive_scale: 2 # if more than max_inactive_scale epochs are inactive, recon_time *= recon_inactive_multiplier recon_inactive_multiplier: 2 # time in seconds to wait during channel hopping if activity has been performed hop_recon_time: 10 # time in seconds to wait during channel hopping if no activity has been performed min_recon_time: 5 # maximum amount of deauths/associations per BSSID per session max_interactions: 3 # maximum amount of misses before considering the data stale and triggering a new recon max_misses_for_recon: 5 # number of active epochs that triggers the excited state excited_num_epochs: 10 # number of inactive epochs that triggers the bored state bored_num_epochs: 15 # number of inactive epochs that triggers the sad state sad_num_epochs: 25 # ui configuration ui: # ePaper display can update every 3 secs anyway fps: 0.3 display: enabled: false rotation: 180 video: address: '0.0.0.0' enabled: true port: 8080 # twitter bot data twitter: enabled: false consumer_key: aaa consumer_secret: aaa access_token_key: aaa access_token_secret: aaa # bettercap rest api configuration bettercap: # api scheme://hostname:port username and password scheme: http hostname: localhost port: 8081 username: user password: pass # folder where bettercap stores the WPA handshakes, given that # wifi.handshakes.aggregate will be set to false and individual # pcap files will be created in order to minimize the chances # of a single pcap file to get corrupted handshakes: /root/handshakes # events to mute in bettercap's events stream silence: - ble.device.new - ble.device.lost - ble.device.disconnected - ble.device.connected - ble.device.service.discovered - ble.device.characteristic.discovered - wifi.client.new - wifi.client.lost - wifi.client.probe - wifi.ap.new - wifi.ap.lost - mod.started