evilsocket / pwnagotchi

(⌐■_■) - Deep Reinforcement Learning instrumenting bettercap for WiFi pwning.
https://pwnagotchi.ai/
Other
7.58k stars 1.14k forks source link

[BUG] #475

Closed n0m4d1k closed 4 years ago

n0m4d1k commented 4 years ago

Describe the bug On clean install pwnagtochi service fails to start.

`pi@pwnagotchi:~ $ sudo -i

SSH is enabled and the default password for the 'pi' user has not been changed. This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.

root@pwnagotchi:~# systemctl status pwnagotchi ● pwnagotchi.service - pwnagotchi Deep Reinforcement Learning instrumenting bett Loaded: loaded (/etc/systemd/system/pwnagotchi.service; enabled; vendor prese Active: activating (auto-restart) (Result: exit-code) since Wed 2019-10-30 20 Docs: https://pwnagotchi.ai Process: 1415 ExecStart=/usr/bin/pwnagotchi-launcher (code=exited, status=1/FA Main PID: 1415 (code=exited, status=1/FAILURE) lines 1-6/6 (END) `

To Reproduce Steps to reproduce the behavior:

  1. flash fresh iso
  2. configure config.yml
  3. connect to power

Expected behavior pwnagotchi service should be running

Screenshots If applicable, add screenshots to help explain your problem.

Environment (please complete the following information): Latest iso version v1.1.0

Additional context

Config.yml

`# WARNING WARNING WARNING WARNING #

This file is recreated with default settings on every pwnagotchi restart,

use /etc/pwnagotchi/config.yml to configure this unit.

# #

main algorithm configuration

main:

if set this will set the hostname of the unit. min length is 2, max length 25, only a-zA-Z0-9- allowed

name: 'myname'
# currently implemented: en (default), de, el, fr, it, mk, nl, ru, se, pt-BR, es, pt
lang: en
# custom plugins path, if null only default plugins with be loaded
custom_plugins:
# which plugins to load and enable
plugins:
    grid:
        enabled: true
        report: false # don't report pwned networks by default!
        exclude: # do not report the following networks (accepts both ESSIDs and BSSIDs)
            - mywifi
            - mywifi

    auto-update:
        enabled: true
        interval: 12 # every 12 hours
        install: true # if false, it will only warn that updates are available, if true it will install them

    auto-backup:
        enabled: true
        interval: 2 # every day
        files:
            - /root/brain.nn
            - /root/brain.json
            - /root/.api-report.json
            - /root/handshakes/
            - /root/peers/
            - /etc/pwnagotchi/
            - /var/log/pwnagotchi.log
        commands:
            - 'tar czf /root/pwnagotchi-backup.tar.gz {files}'
    net-pos:
        enabled: false
        api_key: 'test'
    gps:
        enabled: false
        speed: 19200
        device: /dev/ttyUSB0
    twitter:
        enabled: false
        consumer_key: aaa
        consumer_secret: aaa
        access_token_key: aaa
        access_token_secret: aaa
    onlinehashcrack:
        enabled: false
        email: ~
    wpa-sec:
        enabled: false
        api_key: ~
        api_url: "https://wpa-sec.stanev.org"
    wigle:
        enabled: false
        api_key: ~
    screen_refresh:
        enabled: false
        refresh_interval: 50
    quickdic:
        enabled: false
        wordlist_folder: /opt/wordlists/
    AircrackOnly:
        enabled: false
    bt-tether:
        enabled: true # if you want to use this, set ui.display.video.address to 0.0.0.0
        mac: mymac # mac of your bluetooth device
        ip: myip # ip from which your pwnagotchi should be reachable
        netmask: 24
        interval: 1 # check every x minutes for device
        share_internet: true
    memtemp: # Display memory usage, cpu load and cpu temperature on screen
        enabled: false
        orientation: horizontal # horizontal/vertical
    pawgps:
        enabled: false
        #The IP Address of your phone with Paw Server running, default (option is empty) is 192.168.44.1
        ip: ''
    gpio_buttons:
        enabled: false
        #The following is a list of the GPIO number for your button, and the command you want to run when it is pressed
        gpios:
        - 20: 'sudo touch /root/.pwnagotchi-auto && sudo systemctl restart pwnagotchi'
        - 21: 'shutdown -h now'
# monitor interface to use
iface: mon0
# command to run to bring the mon interface up in case it's not up already
mon_start_cmd: /usr/bin/monstart
mon_stop_cmd: /usr/bin/monstop
mon_max_blind_epochs: 50
# log file
log: /var/log/pwnagotchi.log
# if true, will not restart the wifi module
no_restart: false
# access points to ignore
whitelist:
    - mywifi
    - mywifi
# if not null, filter access points by this regular expression
filter: null

ai:

if false, only the default 'personality' will be used

enabled: true
path: /root/brain.nn
# 1.0 - laziness = probability of start training
laziness: 0.1
# how many epochs to train on
epochs_per_episode: 50
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
# number of encounters (times met on a channel) with another unit before considering it a friend and bond
# also used for cumulative bonding score of nearby units
bond_encounters_factor: 20000

ui configuration

ui:

here you can customize the faces

faces:
    look_r: '( ⚆_⚆)'
    look_l: '(☉_☉ )'
    look_r_happy: '( ◕‿◕)'
    look_l_happy: '(◕‿◕ )'
    sleep: '(⇀‿‿↼)'
    sleep2: '(≖‿‿≖)'
    awake: '(◕‿‿◕)'
    bored: '(-__-)'
    intense: '(°▃▃°)'
    cool: '(⌐■_■)'
    happy: '(•‿‿•)'
    excited: '(ᵔ◡◡ᵔ)'
    grateful: '(^‿‿^)'
    motivated: '(☼‿‿☼)'
    demotivated: '(≖__≖)'
    smart: '(✜‿‿✜)'
    lonely: '(ب__ب)'
    sad: '(╥☁╥ )'
    friend: '(♥‿‿♥)'
    broken: '(☓‿‿☓)'
    debug: '(#__#)'
# ePaper display can update every 3 secs anyway, set to 0 to only refresh for major data changes
# IMPORTANT: The lifespan of an eINK display depends on the cumulative amount of refreshes. If you want to
# preserve your display over time, you should set this value to 0.0 so that the display will be refreshed only
# if any of the important data fields changed (the uptime and blinking cursor won't trigger a refresh).
 fps: 0.0
 display:
    enabled: true
    rotation: 180
    # Possible options inkyphat/inky, papirus/papi, waveshare_1/ws_1 or waveshare_2/ws_2, oledhat, lcdhat, waveshare154inch, waveshare27inch, dfrobot/df
    type: 'waveshare_2'
    # Possible options red/yellow/black (black used for monocromatic displays)
    # Waveshare tri-color 2.13in display can be over-driven with color set as 'fastAndFurious'
    # THIS IS POTENTIALLY DANGEROUS. DO NOT USE UNLESS YOU UNDERSTAND THAT IT COULD KILL YOUR DISPLAY
    color: 'black'
    video:
        enabled: true
        address: 0.0.0.0
        origin: null
        port: 8080
        # command to be executed when a new png frame is available
        # for instance, to use with framebuffer based displays:
        # on_frame: 'fbi --noverbose -a -d /dev/fb1 -T 1 /root/pwnagotchi.png > /dev/null 2>&1'
        on_frame: ''

bettercap rest api configuration

bettercap:

api scheme://hostname:port username and password

scheme: http
hostname: localhost
port: 8082
username: myusername
password: mypasswd
# 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

`

Fails to restart into auto

`root@pwnagotchi:~# touch /root/.pwnagotchi-auto && systemctl restart pwnagotchi root@pwnagotchi:~# systemctl status pwnagotchi ● pwnagotchi.service - pwnagotchi Deep Reinforcement Learning instrumenting bett Loaded: loaded (/etc/systemd/system/pwnagotchi.service; enabled; vendor prese Active: active (running) since Wed 2019-10-30 20:35:05 GMT; 4s ago Docs: https://pwnagotchi.ai Main PID: 1846 (bash) CGroup: /system.slice/pwnagotchi.service ├─1846 bash /usr/bin/pwnagotchi-launcher ├─1847 bash /usr/bin/bootblink 10 ├─1854 /usr/bin/python3 /usr/local/bin/pwnagotchi └─1868 sleep 0.3

Oct 30 20:35:05 pwnagotchi systemd[1]: Started pwnagotchi Deep Reinforcement Lea root@pwnagotchi:~# systemctl status pwnagotchi ● pwnagotchi.service - pwnagotchi Deep Reinforcement Learning instrumenting bett Loaded: loaded (/etc/systemd/system/pwnagotchi.service; enabled; vendor prese Active: activating (auto-restart) (Result: exit-code) since Wed 2019-10-30 20 Docs: https://pwnagotchi.ai Process: 1846 ExecStart=/usr/bin/pwnagotchi-launcher (code=exited, status=1/FA Main PID: 1846 (code=exited, status=1/FAILURE) `

n0m4d1k commented 4 years ago

followed errors in syslog. Errors caused by bettercap and face sections.