0x01. CONFIGURATION SYSTEME
Il faut avant tout et ce en priorité limité au maximum les accès distants à la machine de l'auditeur. Tout les services non indispensables devront être lancé manuellement. Pour ceci, j'ai créeé un dossier /etc/_manual.init.d dans lequel seront stockés les services non nécessaires. Les voici :
anubis cryptdisks kvm ntop stunnel4 arno-iptables-firewall cryptdisks-early laptop-mode nut tcpspy arpalert cryptmount laptop-netconf nvidia-kernel tor arpwatch cryptmount-early linuxlogo openbsd-inetd tor.dpkg-dist atd cupsys lisa powernowd ubiquity avahi-daemon darkstat loopback powernowd.early ufw barnyard dhcp3-server miredo privoxy vmware bind9 dns2tcp miredo-server proftpd vtun bluemon dns-clean mrd6 quagga waitnfs.sh brltty ebtables nepenthes rsync wifi-radar casper exim4 nessusd samba winbind chillispot havp netatalk sancp wpa-ifupdown cnewsclean hddtemp netperf snort xserver-xorg-input-wacom cpufrequtils ippl nstxcd spamassassin xsupplicant cron kde-guidance nstxd ssh zorp
J'ai également utiliser le dossier système /opt pour installer tout ce qui est programme externe au système de package Debian(Ubuntu) Ainsi dans ce dossier, j'ai installé des versions plus récentes. Voici la liste des programmes que j'ai dans ce dossier :
Adobe // Adobe Acrobat Reader bin // Scripts, programmes Burpsuite // Logiciel d'attaque d'applications Web cxoffice // CrossOffice, émulateur Windows eclipse // Logiciel de développement Java google-earth // Google Eearth lampp // Linux Apache Mysql PhP Maltego // Outil de collecte d'informations Mozilla // Firefox, Thunderbird, Sunbird nessus // Tenable Nessus, scanne de faille openoffice.org // OpenOffice.org 3 n'est pas dans les dépôts openoffice.org3 // " pentest // Dossiers d'outils de pénétration BackTrack 3 final saint-6.7.11 // Autre scanner de vulnérabilité wireshark // Wireshark en version 1.x wolfotrack-1.1 // Doomlike, oà le but du jeu est de tuer des connexions réseaux
Voici une liste d'alias qui peut se révélé utile :
alias l.='ls -d .*' alias l='ls --color=none' alias ll='ls -l' alias llm='ls -l | most' alias dir='ls -hl' alias Ll='ls -l --color=none' alias la='ls -a' alias La='ls -a --color=none' alias lla='ls -a -l' alias llam='ls -al | most' alias Lla='ls -a -l --color=none' alias j='jobs' alias q='history -c ; exit' alias ..='cd ..' alias ...='cd ../..' alias ....='cd ../../..' alias del='rm -i'
0x02. PENTESTS BACKTRACK
Tout le dossier /pentests est récupéré de la dernière version de BackTrack, en plus de quelques outils récupéré çà et là en lisant les magasines en sécurité informatique Hackin9 ou bien Misc. Voici une liste d'outils installés et récupérés, catégorisé et ordonné dans le menu K :
Anonymizer Databases TOR HackomatiX Privoxy SQL Ninja JAP SQL Map Cryptography Documents Crypt Tool BacTrack 3 - HTML Hash Finder Qui Contacter - Services Français RSA Tools Password List #1 TrueCrypt Password List #2 Steg Explorer Password List #3 Bruteforce Password List #4 Brutus AER 2 Hydra X John SAM Inside su Crack Services Enumeration Cisco G Bind Admin (bind 9) DNS Brute Enable 1.0.2 G DHCP D (dhcp) Dig-Dig Cisco Auditing Tool G ProFTP D (FTP) DNS Bruteforce Cisco Global Exploiter G Samba D (samba) DNS Map Cisco Pack --- DNS PTR Cisco Scanner 1.3 SSH SNMP Cisco Torch 0.4b KRFB - RDP Linux SNMP Check Cisco IOS w3 Vuln Proxy NTML One Sixty One --- Exploit Tree Reversing Darkstat Extract URL Binary Less Snort Relay Scanner Decompiler Java Ntop RevHosts Entete de fichier LAMPP Samba Olly Debugger HoneyPOTS SMTP Verify Resource Hacker Labrea Maltego BT Windasm 10 HLBR Nepenthes Scanner Fuzzer Intrusion Nessus Bunny Burpsuite Nmap BED Paros Saint 6.7.11 CL Fuzz Yersinia Zenmap Fuzzer 1.2 --- Sniffers J Bro Fuzz Metasploit Console 2.7 BMon LazyJoe Metasploit Console 3.2 Ettercap Mistress Metasploit GUI 3.2 Etherape Piranha --- Ophcrack W Fuzz Packetstorm exploits Paros --- milw0rm exploits Wireshark VoIP - h2250 v4 VoIP - SIP Tunneling Bluetooth WiFi Protocoles (ISO Â?4] K BlueLock Airodump-ng DNS to TCP (client) K BlueMon WEP Club-Internet generator DNS to TCP (serveur) Bluetooth saemons Atheros - Load airmon module --- --- Intel - Load ipwraw module 3 Proxy Carwhisperer Wifi Conect Script FTP Pr BlueSmash --- POP 3P Fang Wireless Assistant Proxy Tunnel Frontline K Network Manager Socks Wifi-Radar TCP Pm UDP Pm --- Iodine (client) Iodine (serveur) --- P Tunnel S Tunnel
0x03. LOGICIELS PROPRIETAIRES
- CrossOffice de CodeWeavers : Un émulateur d'environnement Windows efficace basé sur Wine avec des règles de préinstallation de certain logiciels. Il m'a permis surtout d'installer Microsoft Visio 2003, qui reste un incontournable dans son domaine.
- Opera : Une alternative propriétaire de navigateur Internet permettant quelques fonctions innés qui demande à Firefox l'ajour de module. Sa gestion des téléchargements et de l'historique est particulièrement efficace.
- Maltego :
Maltego est une source de renseignement et du forensic. Il permet de l'exploitation minière et de collecte d'informations ainsi que la représentation de cette information de façon significative. Site Internet : [url="http://www.paterva.com/maltego/"][/url]
- BurpSuite :
BurpSuite est un outil d'intrusion agissant sur des applications Web. Il peut agir aussi bien en tant que proxy, qu'en tant que collecteur d'information.
0x04. INTERFACE GRAPHIQUE CHOISIE
KDE 3 est l'interface choisie, car elle est largement beaucoup plus configurable que Gnome et moins gourmande que KDE4. Epuré, mais non sans style l'interface ressemle vaguement à une interface des systèmes OSX. KDE est également l'interface par défaut de Slackware (base de BackTrack) et OpenSuse.

0x05. SCRIPTS DE SIMPLIFICATION
Les scripts de simplifications, vont permettre d'utiliser notre terminal avec plus d'aisance. Voici une présentation de ceux-ci :
[1] IPCONFIG : permet d'afficher des informations pertinantes sur le réseau (passerelle, serveur DNS, ...)
[2] WICONFIG : de même avec la connectivité Wifi
[3] WIFI : assistant de connexion à un réseau Wifi en script Bash (WEP, WPA[2], OPN)
[4] IFRE : configure une carte réseau, avec ou sans spoofing, avec ou sans passerelle, avec ou sans /etc/networks
[5] SPOOF : usurpe une machine sur un réseau, en fonction de son adresse IP ou directement en spécifiant une adresse MAC
[6] CLEAN : vide les traces des logs, des cookies, l'historique et divers fichiers
#!/bin/bash EXTERNE=1 IFCES=$(ifconfig -a | grep "Link" | awk {'print $1'} | grep -viE "lo|vmnet|master|avahi|inet") function adresse_ip() { IFCE="$1" n=10 ip_test="66.102.9.104" mac=`ifconfig $IFCE | grep "HW" | awk {'print $5'} | tr A-Z a-z | tr - : | cut -d':' -f1,2,3,4,5,6` mask=`ifconfig $IFCE | grep "inet adr" | awk {'print $4'} | cut -d':' -f2` ip4=`ifconfig $IFCE | grep "inet adr" | awk {'print $2'} | cut -d':' -f2` gw=`route -n | grep "$IFCE" | grep "UG" | awk {'print $2'}` ip6=`ifconfig $IFCE | grep inet6 | awk {'print $3'} | cut -d'/' -f1` scope=`ifconfig $IFCE | grep inet6 | awk {'print $3'} | cut -d'/' -f2` host=`hostname` [ "$EXTERNE" = "1" ] && ipe=$(/opt/bin/ip-extern) if [ ! -z "$gw" ] ; then echo -n "" ping -I $IFCE -c 1 -w 0.4 -W 0.4 $ip_test >/dev/null 2>&1 [ $? -eq 0 ] && ipe=`/opt/bin/ip-extern` fi if [ ! -z "$gw" ] ; then echo -n "" mac_gw=`sudo arping -c 1 -w 0.4 -I $IFCE $gw | grep -oE "([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])" 2>/dev/null | tr A-Z a-z` fi echo -e " Interface réseau \\033[01;29m$IFCE\\033[00m [ \\033[01;32m$mac\\033[00m ] sur \\033[01;31m$host\\033[00m " [ ! -z "$ip4" ] && echo -ne " Adresse IPv4 .........: \\033[01;29m$ip4\\033[00m" [ ! -z "$mask" ] && echo -e " / \\033[01;29m$mask\\033[00m" [ -z "$mask" ] && echo -e "" [ ! -z "$gw" ] && echo -e " Paserelle par d?Â?faut .: \\033[01;29m$gw\\033[00m [ \\033[01;32m$mac_gw\\033[00m ]" [ ! -z "$ipe" ] && echo -e " Adresse externe ......: \\033[01;33m$ipe\\033[00m" [ ! -z "$ip6" ] && echo -e " Adresse IPv6 .........: \\033[01;29m$ip6\\033[00m / \\033[01;32m$scope\\033[00m" } dns1=`cat /etc/resolv.conf | grep "nameserver" | head -n 1 | awk {'print $2'}` dns2=`cat /etc/resolv.conf | grep "nameserver" | tail -n 1 | awk {'print $2'}` if [ $# -eq 0 ] then for IFCE in $IFCES do adresse_ip $IFCE done [ ! -z "$dns1" ] && echo -e " Serveur DNS primaire .: \\033[01;29m$dns1\\033[00m" [ "$dns1" != "$dns2" ] && echo -e " Serveur DNS second. : \\033[01;29m$dns2\\033[00m" echo exit 0 fi if [ $# -eq 1 ] then echo $IFCES | grep "$1" 2>/dev/null >/dev/null if [ $? -ne 0 ] then echo ; echo "[-] L'interface $1 n'existe pas." ; echo exit 1 fi IFCE=$1 adresse_ip $IFCE [ ! -z "$dns1" ] && echo -e " Serveur DNS primaire .: \\033[01;29m$dns1\\033[00m" [ "$dns1" != "$dns2" ] && echo -e " Serveur DNS second. : \\033[01;29m$dns2\\033[00m" echo exit 0 fi
Par défaut l'adresse est affichée pour toutes les interfaces. Le résultat de la ligne de commande ipconfig eth2 :
Interface réseau eth2 [ 00:17:31:14:dc:05 ] sur center Adresse IPv4 .........: 192.168.6.253 / 255.255.255.0 Paserelle par défaut .: 192.168.6.254 [ 00:1f:33:d5:6c:d6 ] Adresse externe ......: 66.103.8.103 Adresse IPv6 .........: fe80::217:31ff:fe14:dc05 / 64 Serveur DNS primaire .: 192.168.6.254
Retourner au chapitre "Scripts de simplification"
#!/bin/bash IFCES=$(ifconfig -a | grep "Link" | awk {'print $1'} | grep -viE "lo|vmnet|master|eth|avahi|inet") function adresse_ip() { IFCE="$1" mac=`ifconfig $IFCE | grep "HW" | awk {'print $5'} | tr A-Z a-z | tr - : | cut -d':' -f1,2,3,4,5,6` host=`hostname` essid=`iwconfig $IFCE | grep "ESSID" | cut -d':' -f2` ap=`iwconfig $IFCE | grep -oE "([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])"` channel=`iwlist $IFCE channel | grep "Current" | grep -oE "([0-9]){1,2}\\)" | cut -d')' -f1` quality=`iwconfig $IFCE | grep "Quality" | awk {'print $2'} | cut -d'=' -f2 | cut -d':' -f2 | cut -d'/' -f1` freq=`iwconfig $IFCE | grep -oE "Frequency\\:([0-9\\.]){1,5}\\ GHz" | cut -d':' -f2` mode=`iwconfig $IFCE | grep -i "access point" | grep -oiE "mode\\:([a-zA-Z]){1,10}" | cut -d':' -f2` signal=`iwconfig $IFCE | grep -oE "Signal level\\:.([0-9]){2,3}" | cut -d':' -f2` [ -z "$signal" ] && signal="[aucun signal]" [ "$signal" != "[aucun signal]" ] && signal="$signal dB" [ ! -z $gw ] && ttl=`ping -c 1 $gw -w 3 | grep ttl | awk {'print $6'} | cut -d'=' -f2` [ -z $ttl ] && ttl="??" echo -e " Interface sans-fil \\033[29;1m$IFCE\\033[00m [ \\033[32;1m$mac\\033[00m ] sur \\033[31;1m$host\\033[00m " [ ! -z "$mode" ] && echo -e " Mode de la carte ........... : \\033[29;1m$mode\\033[00m" [ ! -z "$ap" ] && echo -e " Adresse MAC du P.A. (BSSID) : \\033[29;1m$ap\\033[00m" [ ! -z "$essid" ] && echo -e " Nom du point d'accès (ESSID) : \\033[29;1m$essid\\033[00m" [ ! -z "$channel" ] && printf " Canal / Fréquence ...........: \\033[29;1m%-3s / $freq\\033[00m\\n" $channel [ ! -z "$quality" ] && printf " Qualité / Puisance du signal : \\033[29;1m%-3s%% / $signal\\033[00m\\n" $quality } if [ $# -eq 0 ] then for IFCE in $IFCES do adresse_ip $IFCE done echo exit 0 else echo $IFCES | grep "$1" 2>/dev/null >/dev/null if [ $? -ne 0 ] then echo ; echo "[-] L'interface $1 n'est pas une interface sans fil. " ; echo exit 1 fi IFCE=$1 adresse_ip $IFCE echo exit 0 fi
Le résultat de la ligne de commande : wiconfig wlan0 :
Interface sans-fil wlan0 [ 00:11:22:33:44:55 ] sur center Mode de la carte ........... : Managed Adresse MAC du P.A. (BSSID) : AA:99:88:77:66:55 Nom du point d'accès (ESSID) : "Mon-Point-d-Acces" Canal / Fréquence ...........: 8 / 2.447 GHz Qualité / Puisance du signal : 71 % / -52 dB
Dans le cas oà la carte wifi n'est pas associé à un point d'accès, la qualité / puissance du signal précise l'information :
Interface sans-fil wlan1 [ 00:11:22:33:44:55 ] sur center Mode de la carte ........... : Managed Nom du point d'accès (ESSID) : "" Canal / Fréquence ...........: 1 / 2.412 GHz Qualité / Puisance du signal : 0 % / [aucun signal]
Retourner au chapitre "Scripts de simplification"
Le but de ce script sera de gérer les connexions Wifi. Il permet de créer un script de connexion et son fichier.wpa associé en cas de besoin.
Pour fonctionner ce programme a besoin de :
mkdir -p /etc/wifi/files mkdir -p /etc/wifi/wpa
En suite, l'architecture des dossiers est la suivante : /etc/wifi/files/LIEU/POINT_D_ACCES. Si le point d'accès est en WPA, alors le fichier /etc/wifi/wpa/POINT_D_ACCES.wpa sera créé.
## Lister les connexions enregistrées : # wifi -l [-] Wifi configuration file list : ---------------------------------- Lieu/Essid ## Se connecter au point d'accès # wifi Lieu/Essid
#!/bin/bash # Chemin de configuration des fichiers # A FAIRE : sudo mkdir -p /etc/wifi/wpa ; sudo chown $utilisateur.$groupe -R /etc/wifi chemin='/etc/wifi/wpa' # Nom du programme app='wifi' SAVED_FILE="/etc/wifi/files" # Programmes locaux utilisés ifre='/opt/bin/ifre' # Valeurs par d?Â?faut dhcp=1 ############################################################################### # # # Partie 1 : Definitions des fonctions # # # ############################################################################### function _exit() { rm -f wlan0 exit $* } # Quitte le programme function die() { _exit $1 } # Affiche [+] en cas de probleme sinon [x] function affiche() { msg=$1 printf "[+] $msg \\n" } function usage() { echo " Usage: $app <-a | -l | -m | -v file> | <-i interface> <-e essid> <-b bssid> <-f freq> [-c wep|wpa [-k key] ] [-m PARAMS] | <-s interface> | <file> <file> : Run configuration file -a : Add a configuration file -v file : View configuration file -m file : Modifiy file with VIM -r file : Remove configuration file -l : List saved Access Point -i interface : Interface to use -e essid : Access point's name -b bssid : Access point's mac address -f freq : Frequence, in fact this corresponds to channel -c wep|wpa : Set encodage to WEP or WPA -k key : Key to use with previous encodage -m PARAMS : If set, use manual configuration PARAMS : <ip address> <netmask> <broadcast> <gateway> > Example : Open access point, with DHCP network configuration $app -i eth1 -e OPEN -f 11 -b 00:11:22:33:44:55 > Example : Protected access point, with DHCP network configuration and WPA encryption $app -i eth1 -e WPA -f 11 -b 00:12:34:56:78:9A -c wpa -k 'mon_code_wpa' > Example : Protected access point, with manual network configuration and WEP encryption $app -i eth1 -e WEP -f 11 -b 00:12:34:56:78:9A -c wep -k '0123456789abcdef0123456789' \\ -m 192.168.1.13 255.255.255.0 192.168.1.255 192.168.1.1 " _exit $1 } # Operations communes au reseau sans fil function connexion_wifi() { ifce=$1 essid="$2" ch=$3 ap=$4 [ $# -eq 5 ] && key=$5 affiche "Configuration de la carte $ifce" $? 0 sleep 1 [ $# -eq 4 ] && iwconfig $ifce essid "$essid" ap $ap channel $ch > /dev/null 2>/dev/null [ $# -eq 5 ] && iwconfig $ifce essid "$essid" ap $ap channel $ch key $key > /dev/null 2>/dev/null sleep 2 } ############################################################################### # # # Partie 2 : Gestion des fichiers de configuration # # # ############################################################################### # S'il n'y a aucun paramètres [ $# -eq 0 ] && usage 1 if [ $# -eq 1 ] ; then case $1 in -h) usage 0 ;; # Liste les fichiers enregistrés -l) l=5 ; i=0 echo -e '\\n[-] Wifi configuration file list :' echo '----------------------------------' for f in $SAVED_FILE/* ; do [ -f "$f" ] && echo "$f" | cut -d'/' -f$l ; done for f in $SAVED_FILE/*/* ; do i=$((i+1)) if [ -f "$f" ] ; then d=$(echo "$f" | cut -d'/' -f$l) w=$(echo "$f" | cut -d'/' -f$((l+1))) [ $i -le 2 ] && echo -e "\\033[01;29m$d/$w\\033[00m" [ $i -ge 3 ] && echo -e "$d/$w" [ $i -eq 4 ] && i=0 fi done echo _exit 0 ;; # Ajouter un nouveau fichier -a) echo -e '\\n[-] Specify configurationn file :' echo '---------------------------------' printf "\\033[01;39mFile =\\033[00m " ; read file echo $dossier | grep "\\/" >/dev/null 2>&1 if [ $? -eq 0 ] ; then dossier=$(echo $SAVED_FILE/$file | cut -d'/' -f$l) [ ! -d $SAVED_FILE/$dossier ] && mkdir -p $SAVED_FILE/$dossier fi printf "\\033[01;32mInterface =\\033[00m " ; read ifce printf "\\033[01;32mESSID =\\033[00m " ; read essid printf "\\033[01;32mBSSID =\\033[00m " ; read bssid printf "\\033[01;32mChannel =\\033[00m " ; read channel printf "\\033[01;32mEncoding = " ; read enc [ "$enc" = "wep" ] && enc="WEP" [ "$enc" = "wpa" ] && enc="WPA" if [ "$enc" = "WPA" ] ; then printf "\\033[01;32mDriver [wext] =\\033[00m " ; read driver [ -z $driver ] && driver="wext" fi if [ "$enc" != "OPN" ] ; then printf "\\033[01;32mKey = " ; read key fi printf "\\033[01;32mClient =\\033[00m " ; read client printf "\\033[01;32mNetwork =\\033[00m " ; read network printf "\\033[01;32mGateway =\\033[00m " ; read gateway [ ! -z $key ] && key=$(echo $key | sed s/':'//g) echo '#!/bin/bash' > $SAVED_FILE/$file echo "##WIFI##;$essid;$bssid;$channel;$key;$client;$network;$gateway;$ifce;$enc;$driver" >> $SAVED_FILE/$file echo >> $SAVED_FILE/$file # Informations saisies echo "ifce=\\"$ifce\\"" >> $SAVED_FILE/$file echo "essid=\\"$essid\\"" >> $SAVED_FILE/$file echo "bssid=\\"$bssid\\"" >> $SAVED_FILE/$file echo "channel=\\"$channel\\"" >> $SAVED_FILE/$file echo "enc=\\"$enc\\"" >> $SAVED_FILE/$file echo "driver=\\"$driver\\"" >> $SAVED_FILE/$file echo "key=\\"$key\\"" >> $SAVED_FILE/$file echo "client=\\"$client\\"" >> $SAVED_FILE/$file echo "network=\\"$network\\"" >> $SAVED_FILE/$file echo "gateway=\\"$gateway\\"" >> $SAVED_FILE/$file echo >> $SAVED_FILE/$file echo "ifconfig=/sbin/ifconfig" >> $SAVED_FILE/$file echo "iwconfig=/sbin/iwconfig" >> $SAVED_FILE/$file echo "wifi=/opt/bin/wifi" >> $SAVED_FILE/$file echo "spoof=/opt/bin/spoof" >> $SAVED_FILE/$file echo "wiconfig=/opt/bin/wiconfig" >> $SAVED_FILE/$file echo "ipconfig=/opt/bin/ipconfig" >> $SAVED_FILE/$file echo "internet=/opt/bin/internet" >> $SAVED_FILE/$file echo >> $SAVED_FILE/$file # Verifie que l interface WIFI existe echo '$ifconfig $ifce down ; $iwconfig $ifce mode managed >/dev/null 2>&1 ; $ifconfig $ifce up >/dev/null 2>&1' >> $SAVED_FILE/$file echo 'if [ $? -ne 0 ] ; then echo "[x] Interface not available : $ifce" ; echo ; _exit 1 ; fi' >> $SAVED_FILE/$file [ ! -z $client ] && echo '$spoof $ifce mac $client' >> $SAVED_FILE/$file echo "echo \\"[+] Setting interface to managed mode\\"" >> $SAVED_FILE/$file echo >> $SAVED_FILE/$file if [ "$driver" != "" -a "$enc" = "WPA" ] ; then echo "##WIFI##;$essid;$bssid;$channel;$key;$client;$network;$gateway;$ifce;$enc;$driver" > $chemin/$essid.wpa wpa_passphrase $essid $key >> $chemin/$essid.wpa affiche "Generated WPA passphrase of key" 0 fi if [ -z "$key" -a "$enc" = "OPN" -a -z "$network" ] ; then echo '$wifi -i $ifce -e $essid -b $bssid -f $channel' >> $SAVED_FILE/$file elif [ ! -z "$key" -a ! -z "$enc" -a -z "$network" ] ; then echo '$wifi -i $ifce -e $essid -b $bssid -f $channel -c $enc -k $key' >> $SAVED_FILE/$file elif [ ! -z "$key" -a ! -z "$enc" -a ! -z "$network" ] ; then echo '$wifi -i $ifce -e $essid -b $bssid -f $channel -c $enc -k $key -m $network $gateway' >> $SAVED_FILE/$file elif [ -z "$key" -a -z "$enc" -a ! -z "$network" ] ; then echo '$wifi -i $ifce -e $essid -b $bssid -f $channel -m $network $gateway' >> $SAVED_FILE/$file fi echo >> $SAVED_FILE/$file chmod +x $SAVED_FILE/$file echo _exit 0 ;; esac echo if [ -f "$SAVED_FILE/$1" ] ; then echo -e "[ \\033[01;29m$1\\033[00m ]" "$SAVED_FILE/$1" _exit 0 elif [ -f "$1" ] ; then echo -e "[ \\033[01;29m$1\\033[00m ]" "$1" _exit 0 else echo -e "[x] File not found.\\n" _exit 1 fi fi if [ $# -eq 2 ] ; then case $1 in -v) if [ -f "$SAVED_FILE/$2" ] ; then fic="$SAVED_FILE/$2" elif [ -f "$2" ] ; then fic="$2" else echo -e "[x] File not found.\\n" _exit 1 fi echo -e "\\n[-] \\033[01;33m$fic \\033[00m:" underline "[-] $fic :" ; echo file=$(echo $fic | sed s/'\\/\\/'/'\\/'/g) essid=`grep "##WIFI##" $fic | cut -d';' -f2` bssid=`grep "##WIFI##" $fic | cut -d';' -f3` channel=`grep "##WIFI##" $fic | cut -d';' -f4` key=`grep "##WIFI##" $fic | cut -d';' -f5 | sed s/':'//g` client=`grep "##WIFI##" $fic | cut -d';' -f6` network=`grep "##WIFI##" $fic | cut -d';' -f7` gateway=`grep "##WIFI##" $fic | cut -d';' -f8` ifce=`grep "##WIFI##" $fic | cut -d';' -f9` enc=`grep "##WIFI##" $fic | cut -d';' -f10` driver=`grep "##WIFI##" $fic | cut -d';' -f11` echo -e "\\033[01;32mFile =\\033[00m $file" echo -e "\\033[01;32mInterface =\\033[00m $ifce" echo -e "\\033[01;32mESSID =\\033[00m $essid" echo -e "\\033[01;32mBSSID =\\033[00m $bssid\\033[00m" echo -e "\\033[01;32mChannel =\\033[00m $channel" echo -e "\\033[01;32mEncoding = $enc\\033[00m" [ "$enc" = "WPA" ] && echo -e "\\033[01;32mDriver = $driver\\033[00m " [ "$enc" != "OPN" ] && echo -e "\\033[01;32mKey = $key\\033[00m" echo -e "\\033[01;32mClient =\\033[00m $client" echo -e "\\033[01;32mNetwork =\\033[00m $network" echo -e "\\033[01;32mGateway =\\033[00m $gateway" if [ -z $key ] ; then echo -e "\\033[01;32mCommand =\\033[00m iwconfig -i $ifce -e $essid -b $bssid -f $channel" fi if [ "$enc" = "WEP" ] ; then echo -e "\\033[01;32mCommand =\\033[00m wifi -i $ifce -e $essid -b $bssid -k $key -f $channel" fi if [ "$enc" = "WPA" ] ; then echo -e "\\033[01;32mCommand =\\033[00m wifi -i $ifce -e $essid -b $bssid -k $key -f $channel -c wpa" fi echo _exit 0 ;; -r) echo [ -f $SAVED_FILE/$2 ] && file=$SAVED_FILE/$2 [ -f $2 ] && file=$2 if [ -f $file ] ; then echo -n "[?] Sure [y/N] " $(getch) if [ $? -eq 121 ] ; then rm -f $SAVED_FILE/$2 echo "[-] Removed : $2" else echo "[x] Operation canceled." fi echo else echo -n "[x] File not found : $SAVED_FILE/$2" echo ; _exit 1 fi _exit 0 ;; -m) [ -f $SAVED_FILE/$2 ] && file=$SAVED_FILE/$2 [ -f $2 ] && file=$2 if [ -f $file ] ; then echo -n "[-] Editting : $file" $EDITOR $file echo "done." ; echo else echo -n "[x] File not found : $SAVED_FILE/$2" echo ; _exit 1 fi _exit 0 ;; esac usage 1 fi ############################################################################### # # # Partie 3 : Connexion au point d accès # # # ############################################################################### while getopts "i:e:k:b:c:f:mhxs:" option ; do case $option in i) ifce=$OPTARG ;; c) enc=$OPTARG ;; k) key=$OPTARG ;; e) essid=$OPTARG ;; # echo `addquote $essid` ; _exit ;; #`addquote $OPTARG` ;; b) bssid=$OPTARG ;; m) dhcp=0 ;; f) ch=$OPTARG ;; h) usage 0 ;; default) usage 2 ;; esac done shift $((OPTIND - 1)) # echo iwconfig 2>&1 | grep "$ifce" 2>&1 >/dev/null if [ $? -ne 0 ] ; then echo "[x] If. unavailable : $ifce" die 1 else echo "[-] Interface ......: $ifce" fi # echo $key [ -z $enc ] && enc="OPEN" echo "[-] Codage .........: $enc" # [ ! -z $key ] && echo "[-] Key ............: $key" [ $dhcp -eq 1 ] && echo "[-] Network config. : DHCP" [ $dhcp -eq 0 ] && echo "[-] Network config. : manual" echo "[-] Access Point ...: $bssid" echo affiche "Terminating wpa_supplicant process" 0 for i in `seq 1 3` ; do pkill wpa_supplicant >/dev/null 2>/dev/null ; done sleep 1 affiche "Terminating dhclient process" 0 for i in `seq 1 3` ; do pkill wpa_supplicant >/dev/null 2>/dev/null ; done sleep 1 affiche "Deassociation from old access point" 0 iwconfig $ifce essid "" ap 00:00:00:00:00:00 affiche "Setting no IP address to interface : $ifce" 0 ifconfig $ifce 0.0.0.0 up echo if [ $enc != "OPEN" ] ; then if [ $enc = "WEP" ] ; then echo -e "[+] Associating with \\e[29;1m$essid : $ch\\e[00m" connexion_wifi $ifce "$essid" $ch $bssid $key # sleep 1 iwconfig $ifce 2>&1 | grep -i "una" >/dev/null ; t1=$? iwconfig $ifce 2>&1 | grep -i "not" >/dev/null ; t2=$? if [ $t1 -eq 0 -o $t2 -eq 0 ] ; then echo -e "\\n[!] Unable to associate with $essid" ; die 1 ; fi [ $dhcp -eq 0 ] && exec $ifre -m $ifce $* [ $dhcp -eq 1 ] && exec $ifre $ifce rm -f "wlan0" _exit 0 fi if [ $enc = "WPA" ] ; then sleep 1 echo -e "[+] Associating with \\e[29;1m$essid : $ch\\e[00m" affiche "File : $chemin/$essid.wpa" 0 driver=`grep "##WIFI##" $chemin/$essid.wpa | cut -d';' -f11` printf "[-] Message from wpa_supplicant : " wpa_supplicant -B -i $ifce -c $chemin/$essid.wpa -g $ifce -D $driver 2>&1 >/dev/null sleep 5 iwconfig $ifce 2>&1 | grep -i "una" >/dev/null ; t1=$? iwconfig $ifce 2>&1 | grep -i "not" >/dev/null ; t2=$? sleep 3 if [ $t1 -eq 0 -o $t2 -eq 0 ] ; then echo -e "\\n[!] Unable to associate with $essid" ; die 1 ; fi [ $dhcp -eq 0 ] && exec $ifre -m $ifce $* [ $dhcp -eq 1 ] && exec $ifre $ifce rm -f "wlan0" _exit 0 fi else echo "[+] Associating with $essid : $ch" connexion_wifi $ifce $essid $ch $bssid iwconfig $ifce 2>&1 | grep -i "una" >/dev/null ; t1=$? iwconfig $ifce 2>&1 | grep -i "not" >/dev/null ; t2=$? if [ $t1 -eq 0 -o $t2 -eq 0 ] ; then echo -e "\\n[!] Unable to associate with $essid" ; die 1 ; fi [ $dhcp -eq 0 ] && exec $ifre -m $ifce $* [ $dhcp -eq 1 ] && exec $ifre $ifce rm -f "wlan0" _exit 0 fi _exit 1
Retourner au chapitre "Scripts de simplification"
Ce script est couplé au script Wifi. Il permet de connecter un ordinateur sur le réseau avec des paramètres en plus, facilitant la tâche.
#!/bin/bash APP=ifre DOWN=0 # set to 1 if you want interface to shutdown before configuration ifce=eth2 spoof=0 spoof_cmd=/opt/bin/spoof ipconfig=/opt/bin/ipconfig function die { printf "No!\\n\\n" exit 1 } function aide { echo echo "$APP - Easy configuration for interface" echo echo "Usage: $APP [-s|-r|-m|-d|-f] <interface> [ip mask gateway]" echo echo " -s : Spoofing MAC address " echo " -r : Restore the MAC address " echo " -m : Manual configuration " echo " -d : Configuration via DHCP " echo " -f : Configuration via /etc/network/interfaces" echo echo "Exemple: " echo "$APP -m eth0 192.168.1.2 255.255.255.0 192.168.1.1" echo echo "Default action is configuring via DHCP: " echo "$APP eth0 " echo exit 0 } if [ $# -gt 0 ] then config=3 while getopts "sfdrhm" option ; do case $option in r) spoof=2 ;; s) spoof=1 ;; f) config=1 ;; m) config=2 ;; d) config=3 ;; h) aide ;; ?) aide ;; esac done shift $((OPTIND - 1)) ifce=$1 if [ $# -eq 5 ] then ip=$2 mask=$3 bc=$4 gw=$5 fi if [ $# -eq 4 ] then ip=$2 mask=$3 gw=$4 fi if [ $# -eq 3 ] then ip=$2 gw=$3 fi else aide fi # echo $config ; exit # Si le spoofing est active if [ $spoof -eq 1 ] then printf "\\n[+] Spoofing mac adress on '$ifce'..." $spoof_cmd $ifce mac random >/dev/null 2>/dev/null [ $? -eq 1 ] && die ; printf "Ok." fi if [ $spoof -eq 2 ] then printf "\\n[+] Restoring mac address adress on '$ifce'..." $spoof_cmd $ifce mac restore >/dev/null 2>/dev/null [ $? -eq 1 ] && die ; printf "Ok." fi # Configuration par /etc/network/interfaces if [ $config -eq 1 ] then # Activation de la carte printf "\\n[+] Desactivating interface '$ifce'..." ifdown $ifce >/dev/null 2>/dev/null printf "Ok." # Tentative de connexion par /etc/network/interfaces printf "\\n[+] Setting up via /etc/network/interfaces..." ifup $ifce >/dev/null 2>/dev/null [ $? -eq 1 ] && die ; printf "Ok." echo ; $ipconfig $ifce fi # Configuration manuelle if [ $config -eq 2 ] then if [ $DOWN -eq 1 ] ; then printf "\\n[+] Deactivating interface '$ifce'..." ifconfig $ifce down >/dev/null 2>/dev/null [ $? -ge 1 ] && die ; printf "ok." fi printf "\\n[+] Activating interface '$ifce'..." ifconfig $ifce up >/dev/null 2>/dev/null [ $? -ge 1 ] && die ; printf "ok." printf "\\n[+] IP Configuration..." if [ $# -eq 4 ] ; then ifconfig $ifce $ip netmask $mask >/dev/null 2>/dev/null [ $? -ge 1 ] && die ; printf "Ok." elif [ $# -eq 3 ] ; then ifconfig $ifce $ip >/dev/null 2>/dev/null [ $? -ge 1 ] && die ; printf "Ok." fi printf "\\n[+] Adding gateway..." route add default gw $gw >/dev/null 2>/dev/null [ $? -eq 1 ] && die ; printf "Ok." echo ; $ipconfig $ifce fi # Configuration DHCP if [ $config -eq 3 ] then # Activation de la carte printf "\\n[+] Activating interface '$ifce'..." ifconfig $ifce up >/dev/null 2>/dev/null [ $? -ge 1 ] && die ; printf "Ok." # Tentative de connexion par DHCP printf "\\n[+] Registering via DHCP server..." rm -f /var/run/dhclient.pid >/dev/null 2>/dev/null dhclient $ifce >/dev/null 2>/dev/null [ $? -eq 1 ] && die ; printf "Ok." echo ; $ipconfig $ifce fi
Retourner au chapitre "Scripts de simplification"
Ce script va permettre de spoofer une adresse sur une interface avec certains critère. Il ne s'agit pas du vol de session TCP, il s'agit seulement de changer l'adresse MAC selon l'adresse spécifiée ou selon l'adresse MAC de la machine à usurper (donc selon son adresse IP).
#!/bin/bash eth0=`cat /etc/network/eth0` # Endroit oà se trouve l'adresse MAC d'origine wlan0=`cat /etc/network/wlan0` # Aussi changer en ligne 85 spoof="/opt/bin/spoof" function die { echo -n "No!" echo ; echo exit 1 } if [ $# != 3 -a $# != 4 ] ; then printf "\\nUsage : spoof <interface> <ip|mac> " printf "\\n <ip_address|mac_address|random|full-random|builder|restore|list> \\n" printf "\\n full-random : give a coherant full-random MAC address " printf "\\n random : give a coherant MAC address 00:1[RANDOM] " printf "\\n builder : set MAC address to a known builder or its associated number " printf "\\n list : display a list of known network card MAC address " printf "\\n restore : restore the MAC address from file /etc/network/[INTERFACE] " printf "\\n mac_address : set to customized MAC address " printf "\\n ip_address : set to customized IP address " printf "\\n\\n" exit else ifce=$1 proto=$2 addr=$3 fi if [ $proto == 'ip' ] ; then case $addr in random) printf "\\n[+] Configurating IP $ifce..." ifconfig $ifce `ip_rand` >/dev/null 2>/dev/null ; [ $? -eq 1 ] && die printf "Ok.\\n" ;; *) echo ; echo -n "[+] Stealing IP address : $addr ..." mac=`sudo arping $addr -c 4 -I $ifce | grep "reply from"` err=$? mac=`echo $mac | tail -n 1 | awk {'print $5'} | cut -d[ -f2 | cut -d] -f1` macchanger -m $mac $ifce 2>&1 >/dev/null ifconfig $ifce $addr up 2>&1 >/dev/null echo "Ok." ;; esac elif [ $proto == 'mac' ] ; then if [ $addr == "list" ] ; then macchanger -l | less exit 0 fi if [ $addr != "restore" -a $addr != "random" -a $addr != "full-random" ] ; then echo $addr | grep ":" 2>&1 1>/dev/null if [ $? -ne 0 ] ; then macchanger --list | grep -i "$addr" 2>&1 1>/dev/null if [ $? -eq 1 ] ; then printf "\\n[+] Unknown constructor. \\n\\n" exit 1 fi fi fi printf "\\n[+] Deactivating interface $1..." ifconfig $ifce up 1>/dev/null 2>&1 if [ $? -ne 0 ] ; then printf "\\n[x] Interface is not ready.\\n" exit 2 fi ifconfig $ifce down 1>/dev/null 2>&1 #sleep 1 printf "Ok.\\n" printf "[+] Changing MAC adress..." case $addr in restore) case $ifce in eth0) macchanger -m $eth0 $ifce 2>&1 1>/dev/null ; [ $? -eq 1 ] && die ;; wlan0) macchanger -m $wlan0 $ifce 2>&1 1>/dev/null ; [ $? -eq 1 ] && die ;; esac ;; random) u=$((RANDOM/9100)) ; [ $u -eq 2 ] && u=0 ; [ $u -ge 3 ] && u=1 c=$((RANDOM/2800)) [ $c -le 1 ] && l="A" ; [ $c -eq 2 ] && l="B" ; [ $c -eq 3 ] && l="C" [ $c -eq 4 ] && l="D" ; [ $c -eq 5 ] && l="E" ; [ $c -ge 6 ] && l="F" macchanger -m 00:$u$l:`mac_rand 2` $ifce >/dev/null 2>/dev/null; [ $? -eq 1 ] && die ;; full-random) macchanger -r $ifce >/dev/null 2>/dev/null; [ $? -eq 1 ] && die ;; *) echo $addr | grep ":" 2>&1 1>/dev/null if [ $? -eq 0 ] ; then macchanger -m $addr $ifce 2>&1 1>/dev/null [ $? -eq 1 ] && die [ $? -eq 0 ] && printf "Ok.\\n" else constructeur=`macchanger --list | grep -i "$addr" | head -n 1 | awk {'print $3'}` mac_rand=`mac_rand 3` addr=$constructeur:$mac_rand macchanger -m $addr $ifce 2>&1 1>/dev/null ; [ $? -eq 1 ] && die fi ;; esac printf "Ok.\\n" # wmaster0 does NOT support 'ifconfig up' [ $ifce != "wmaster0" ] && printf "[+] Activation de l'interface $1..." ifconfig $ifce up 2>&1 1>/dev/null [ $? -eq 1 ] && die printf "Ok.\\n" fi printf "\\n" mac_address=`ifconfig $ifce | grep "HW" | awk -F" " {'print $5'} | cut -d'-' -f1,2,3,4,5,6 | tr - :` ip_address=`ifconfig $ifce | grep "inet adr" | cut -d: -f2 | awk -F" " {'print $1'}` if [ $ifce = "wlan0" ] ; then $spoof wmaster0 mac $mac_address 2>&1 >/dev/null fi echo "[-] Interface : $ifce" echo "[-] Adresse MAC : $mac_address" echo "[-] Adresse IP : $ip_address " printf "\\n\\n" exit 0
Retourner au chapitre "Scripts de simplification"
Ce script permet de vider :
- le cache de : Firefox, Opera
- vider la boite mail locale
- vider l'historique : bash, vim, scapy, ssh, kaffeine, midnight commander
- vider les logs : auth.log ; messages ; dmesg ; syslog ; user.log ; Xorg.?.log ; mail
- vider la corbeille
- supprimer les anciens fond d'écrans mis dans le cache (KDE)
- les fichiers temporaires cachés : /tmp/*.??*
#!/bin/bash echo # === Variables # ============================================================================= _HOME=$HOME [ $(id -u) -eq 0 ] && _HOME="/root" #cmd="rm -f" cmd="wipe -sfq" # === Actions # ============================================================================= echo -e "\\n\\e[1;32mCleaning users files :\\e[0m" echo -e "\\e[1;32m *\\e[0m Firefox cache" chemin_ff="$_HOME/.mozilla/firefox/*" cp -f $chemin_ff/prefs.js.restore $chemin_ff/prefs.js 2>/dev/null $cmd $chemin_ff/formhistory.sqlite $cmd $chemin_ff/Cache/* $cmd $chemin_ff/xpti.dat echo -e "\\e[1;32m *\\e[0m History, Scapy and VimInfo" $cmd $_HOME/*._history [ "$USER" = "root" ] && echo > $HOME/.scapy echo > $_HOME/.viminfo echo -e "\\e[1;32m *\\e[0m SSH keys" $cmd -r $_HOME/.ssh/ echo -e "\\e[1;32m *\\e[0m Kaffeine cache" $cmd $_HOME/.kde/share/apps/kaffeine/playlists/*.kaffeine $cmd $_HOME/.kde/share/config/*kaffeine* echo -e "\\e[1;32m *\\e[0m Miscallenous files" $cmd $_HOME/wlan0 $cmd -r $_HOME/dwhelper echo -e "\\e[1;32m *\\e[0m Pidgin conversation files" $cmd -r $_HOME/.purple/logs/msn/ mkdir -p $_HOME/.purple/logs/msn/ echo -e "\\e[1;32m *\\e[0m Old KDE wallpapers" $cmd $_HOME/.kde/share/wallpapers/* echo -e "\\e[1;32m *\\e[0m Filezilla historic" $cmd $_HOME/.filezilla/* echo -e "\\e[1;32m *\\e[0m Midnight Commander historic" echo > $_HOME/.mc/history echo -e "\\e[1;32m *\\e[0m Opera cache" $cmd $_HOME/.opera/opcache/opr* echo -e "\\e[1;32m *\\e[0m Mail boxes" $cmd $_HOME/mbox echo -e "\\e[1;32m *\\e[0m Removing proxy parameters" $cmd $_HOME/.bash_proxy export http_proxy= export ftp_proxy= [ "$USER" = "root" ] && $cmd /etc/apt/apt.conf [ "$USER" = "root" ] && cp /etc/.environment.backup /etc/environment echo -e "\\e[1;32m *\\e[0m Clearing trashes" $cmd -r $_HOME/.local/share/Trash/files/* $cmd -r $_HOME/.local/share/Trash/info/* echo -e "\\e[1;32m *\\e[0m .cache files" $cmd -r $_HOME/.cache/* echo -e "\\e[1;32m *\\e[0m Macromedia Flash dirs and files" $cmd -r $_HOME/.macromedia/Flash_Player/\\#SharedObjects/* if [ "$USER" = "root" ] ; then echo -e "\\n\\e[1;32mCleaning superuser and system files :\\e[0m" echo -e "\\e[1;32m *\\e[0m Mail boxes and logs" $cmd /var/spool/mail/* $cmd /var/mail/* echo -e "\\e[1;32m *\\e[0m Clearing logs" echo > /var/log/auth.log echo > /var/log/messages echo > /var/log/dmesg echo > /var/log/auth.log echo > /var/log/syslog echo > /var/log/user.log echo > /var/log/Xorg.0.log echo > /var/log/mail.err echo > /var/log/mail.info echo > /var/log/mail.log echo > /var/log/mail.warn echo > /var/log/kdm echo > /var/log/apt/term.log echo > /var/log/clamav/freshclam.log echo -e "\\e[1;32m *\\e[0m Aptitude cache" apt-get clean >/dev/null 2>&1 apt-get autoclean >/dev/null 2>&1 fi echo -e "\\n\\e[1;32mCleaning common files :\\e[0m" echo -e "\\e[1;32m *\\e[0m .tmp in /tmp" $cmd /tmp/.tmp* echo -e "\\e[1;32m *\\e[0m Cleaning KDE caches" $cmd -r /var/tmp/kdecache-$USER/akregator/* $cmd -r /var/tmp/kdecache-$USER/background/* $cmd -r /var/tmp/kdecache-$USER/favicons/* $cmd -r /var/tmp/kdecache-$USER/help/* $cmd -r /var/tmp/kdecache-$USER/http/* $cmd -r /var/tmp/kdecache-$USER/krun/* echo -e "\\n\\e[1;32mClearing history\\e[0m" history -c echo -e "\\e[0m" exit 0
Retourner au chapitre "Scripts de simplification"
0x06. POLITIQUE DE SECURITE
Tout les programmes SUID, ne sont exécutables que pour les utilisateurs appartenant au groupe operators (ou ce que vous avez défini comme groupe ayant plus de droits), ce qui évite bon nombre d'attaques. L'utilisateur ayant besoin de tout les droits doit être spécifié manuellement dans le fichier /etc/sudoers, ainsi aucun groupe n'est dans le fichier, cela sécurisé davantage mais rend pénible l'administration, ainsi :
list=" dhclient3 route ifconfig iwconfig iptables arptables " for f in $list ; do chown root.operators $f ; chmod 4750 $f ; done
0x07. LIENS EXTERNES
BackTrack vFR
Forum Ubuntu
=> Écrit par : Nicolas, le 28 mars 2009