Pagina 1 di 1

Hotspot con airbase-ng

Inviato: sab 20 ago 2016, 17:36
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" ???

Re: Check root e curiosita utente

Inviato: sab 20 ago 2016, 18:35
da Ansa89
Premesso che non sono esperto di sudo, se posti lo script (forse) posso provare a darti qualche consiglio.

Re: Check root e curiosita utente

Inviato: sab 20 ago 2016, 18:45
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

Re: Check root e curiosita utente

Inviato: sab 20 ago 2016, 18:48
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"

Re: Hotspot con airbase-ng

Inviato: sab 20 ago 2016, 19:26
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

Re: Hotspot con airbase-ng

Inviato: sab 20 ago 2016, 19:38
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?

Re: Hotspot con airbase-ng

Inviato: dom 21 ago 2016, 11:45
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.

Re: Hotspot con airbase-ng

Inviato: mar 23 ago 2016, 19:56
da darkstaring
Non funziona infatti... ma è bello aver visto come si fà..
Grazie