Hotspot con airbase-ng

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
darkstaring
Linux 3.x
Linux 3.x
Messaggi: 639
Iscritto il: mer 13 ott 2010, 13:55
Nome Cognome: Francesco Achenza
Desktop: KDE
Distribuzione: Arch Linux
Contatta:

Hotspot con airbase-ng

Messaggio da darkstaring »

Buonasera, sto facendo uno script in bash con funzioni che posso eseguire solo come root.

Faccio un check in testa allo script per vedere su è un utente root o no :

Codice: Seleziona tutto

    if [ $(whoami) != 'root' ] ; then echo;echo "*** Root_user_Need (no sudo)*** ";echo; exit 1; fi 

Ho abilitato il mio utente al comando sudo, ma eseguendo

Codice: Seleziona tutto

sudo nome_script 
non mi trova alcuni comandi come iptables ecc...


Il problema è che eseguendolo con sudo non mi accorgo se è realmente root o un utente con sudo
e quindi non riesco ad eseguire alcuni comandi

Devo specificare per esempio "/usr/sbin/iptables" ???
Ultima modifica di darkstaring il sab 20 ago 2016, 18:46, modificato 1 volta in totale.

Avatar utente
Ansa89
Iper Master
Iper Master
Messaggi: 2703
Iscritto il: mer 29 ago 2007, 17:57
Nome Cognome: Stefano Ansaloni
Slackware: 14.2 64bit
Kernel: 4.9.61
Desktop: XFCE 4.12
Località: Modena

Re: Check root e curiosita utente

Messaggio da Ansa89 »

Premesso che non sono esperto di sudo, se posti lo script (forse) posso provare a darti qualche consiglio.

Avatar utente
darkstaring
Linux 3.x
Linux 3.x
Messaggi: 639
Iscritto il: mer 13 ott 2010, 13:55
Nome Cognome: Francesco Achenza
Desktop: KDE
Distribuzione: Arch Linux
Contatta:

Re: Check root e curiosita utente

Messaggio da darkstaring »

Lo script se eseguito da root fà l'hotspot e redirige qualsiasi http al localhost dove viene eseguito....

Codice: Seleziona tutto

#!/bin/bash
 
#############################
######SETTINGS NETWORK#######
network=10.0.0.0
broadcast=10.255.255.255
netmask=255.0.0.0
gateway=10.0.0.1
min_ip=10.0.0.2
max_ip=10.255.255.254
#############################



function check_root()
{
    if [ "$EUID" -ne 0 ]
    then
            echo;echo "*** Root_user_Need (no sudo)*** ";echo;
            exit
    fi
}



function help ()
{
  echo "Usage:"
  echo "hotspot --start Periferica NOME_RETE"
  echo "hotspot --stop"
  echo "hotspot --install"
  echo
  echo "By Darkstaring";
  exit 1
}


function start()
{
	echo Channel [1-12]?
	read CHANNEL
	#checking
	clear
	
	echo "Is this what you selected?"
	echo "Fake AP interface: $INTERFACE"
	echo "NOME_RETE: $NOME_RETE"
	echo "Channel: $CHANNEL"
	echo
	read -p "Press [Enter] key to continue..."
	clear

	echo "[>] Changing fake AP MAC address to random"
	ifconfig $INTERFACE down
	#macchanger -r $INTERFACE
	ifconfig $INTERFACE up
	#monitor mode
	echo "[>] Putting your interface in monitor mode"
	airmon-ng start $INTERFACE &>/dev/null
	#creating access point
	echo "[>] Creating new window for creating access point"
	xterm -geometry 96x25+0+0 -e  airbase-ng -e $NOME_RETE -c $CHANNEL mon0 &
	echo "[*] Fake AP created"
	sleep 2
	ifconfig at0 up
	sleep 2
	echo "[>] Setting up iptables"
	ifconfig at0 $gateway netmask $netmask
	route add -net $network netmask $netmask gw $gateway 
	dnsmasq --address=/#/$gateway --bind-interfaces --except-interface=at0 --clear-on-reload --strict-order --listen-address=$gateway --dhcp-range=$min_ip,$max_ip,60m --dhcp-option=option:router,$gateway --dhcp-lease-max=50 --pid-file=/var/run/nm-dnsmasq-at0.pid
	#iptables
	iptables --flush
	iptables --table nat --flush
	iptables --delete-chain
	iptables --table nat --delete-chain
	iptables --append FORWARD --in-interface at0 -j ACCEPT
	echo 1 > /proc/sys/net/ipv4/ip_forward
	iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to $gateway
	echo "[>] Finished"
}

function stop()
{
    read -p "Press [Enter] key to quit..."
    killall -9  airbase-ng dnsmasq
    iptables --flush
    iptables --delete-chain
    iptables --table nat --flush
    iptables --table filter --flush
    iptables --table nat --delete-chain
    iptables --table filter --delete-chain
	echo "[>] Killing program safely"
	echo "[>] Turning off monitor mode..."
	airmon-ng stop mon0 &>/dev/null
	echo "[>] Putting interface at0 down..."
	ifconfig at0 down &>/dev/null
	echo "[>] Shutting down airbase-ng"
	killall airbase-ng
}

check_root  
case "$1" in
  "--help")
            help ;;
            
            
  "") 
            help;; 	
            
            
  "--stop")
            stop ;;
            
            
  "--start")
            if [ "$2" != '' ] ;
            then 
            INTERFACE="$2";
            else
            help
            fi

            if [ "$3" != '' ] ;
            then 
            NOME_RETE="$3";
            else
            help
            fi
            start ;;
            
            
  *)help;;
esac


exit 0
Dovrei anche redirigere l'https su http ma per ora non ci sono riuscito.. se avete consigli sono ben accetti
Grazie

Avatar utente
Ansa89
Iper Master
Iper Master
Messaggi: 2703
Iscritto il: mer 29 ago 2007, 17:57
Nome Cognome: Stefano Ansaloni
Slackware: 14.2 64bit
Kernel: 4.9.61
Desktop: XFCE 4.12
Località: Modena

Re: Check root e curiosita utente

Messaggio da Ansa89 »

Posta l'output di questi comandi

Codice: Seleziona tutto

$ sudo whoami
$ sudo which iptables
$ sudo -s whoami
$ sudo -s which iptables

EDIT: credo sia un problema relativo alla variabile d'ambiente "PATH". Prova ad aggiungere questa riga al tuo "/etc/sudoers"

Codice: Seleziona tutto

Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

Avatar utente
darkstaring
Linux 3.x
Linux 3.x
Messaggi: 639
Iscritto il: mer 13 ott 2010, 13:55
Nome Cognome: Francesco Achenza
Desktop: KDE
Distribuzione: Arch Linux
Contatta:

Re: Hotspot con airbase-ng

Messaggio da darkstaring »

Codice: Seleziona tutto

francesco@darkstar:~$ sudo whoami
root
francesco@darkstar:~$ sudo which iptables
which: no iptables in (/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/lib64/java/bin:/usr/lib64/java/jre/bin:/usr/lib64/kf5:/usr/lib64/kde4/libexec:/usr/lib64/java/bin:/usr/lib64/java/jre/bin:/usr/lib64/qt/bin:/usr/lib64/qt5/bin:/usr/share/texmf/bin)
francesco@darkstar:~$ sudo -s whoami
root
francesco@darkstar:~$ sudo -s which iptables
which: no iptables in (/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/lib64/java/bin:/usr/lib64/java/jre/bin:/usr/lib64/kf5:/usr/lib64/kde4/libexec:/usr/lib64/java/bin:/usr/lib64/java/jre/bin:/usr/lib64/qt/bin:/usr/lib64/qt5/bin:/usr/share/texmf/bin)
francesco@darkstar:~$ 
/etc/sudoers
ha questi permessi:

Codice: Seleziona tutto

-r--r----- 1 root root 3172 Mar 15 17:58 /etc/sudoers

Avatar utente
darkstaring
Linux 3.x
Linux 3.x
Messaggi: 639
Iscritto il: mer 13 ott 2010, 13:55
Nome Cognome: Francesco Achenza
Desktop: KDE
Distribuzione: Arch Linux
Contatta:

Re: Hotspot con airbase-ng

Messaggio da darkstaring »

Ho modificato temporaneamente i permessi:

Codice: Seleziona tutto

root@darkstar:/home/francesco# chmod 640 /etc/sudoers
root@darkstar:/home/francesco# vim /etc/sudoers
root@darkstar:/home/francesco# chmod 440 /etc/sudoers
Ed ora funziona \:D/ :

Codice: Seleziona tutto

francesco@darkstar:~$ sudo whoami
root
francesco@darkstar:~$ sudo which iptables
/usr/sbin/iptables
francesco@darkstar:~$ sudo -s whoami
root
francesco@darkstar:~$ sudo -s which iptables
/usr/sbin/iptables
francesco@darkstar:~$ 
Grazie 1000
ora dovrei redirigere l'https su http... sai se posso farlo con iptables?

Avatar utente
Ansa89
Iper Master
Iper Master
Messaggi: 2703
Iscritto il: mer 29 ago 2007, 17:57
Nome Cognome: Stefano Ansaloni
Slackware: 14.2 64bit
Kernel: 4.9.61
Desktop: XFCE 4.12
Località: Modena

Re: Hotspot con airbase-ng

Messaggio da Ansa89 »

darkstaring ha scritto:Ho modificato temporaneamente i permessi:

Codice: Seleziona tutto

root@darkstar:/home/francesco# chmod 640 /etc/sudoers
root@darkstar:/home/francesco# vim /etc/sudoers
root@darkstar:/home/francesco# chmod 440 /etc/sudoers
Per modificare "/etc/sudoers" è consigliato l'uso di "visudo".

darkstaring ha scritto:ora dovrei redirigere l'https su http... sai se posso farlo con iptables?
Devi agire sulla catena di prerouting della tabella nat.
Qualcosa di simile a questo:

Codice: Seleziona tutto

iptables -t nat -A PREROUTING -i _INTERFACCIA_ -p tcp --dport 443 -j REDIRECT --to-port 80
Però secondo me avrai problemi perché i browsers si aspettano una risposta di tipo cifrato, ma se ne vedranno recapitare una di tipo "plain".
In parole povere: non è una bella cosa "giocare" con la redirezione delle porte se non si sa esattamente cosa si sta facendo.

Avatar utente
darkstaring
Linux 3.x
Linux 3.x
Messaggi: 639
Iscritto il: mer 13 ott 2010, 13:55
Nome Cognome: Francesco Achenza
Desktop: KDE
Distribuzione: Arch Linux
Contatta:

Re: Hotspot con airbase-ng

Messaggio da darkstaring »

Non funziona infatti... ma è bello aver visto come si fà..
Grazie

Rispondi