madjpm Wrote:Dragoon1010 Wrote:@madjpm::renseigne toi, l'adresse MAC, c'est la principale chose qu'il peuvent avoir
Ah bon et comment ils font pour voir l'adresse MAC sachant qu'ils sont pas sur le même réseau local que toi

Tiens je te conseil de lire ça...
http://fr.wikipedia.org/wiki/Mod%C3%A8le_OSI
voilà pour te montré que c'est possible biensur cela est sous windows et totalement différent sous ps3 mais sa te montre que c'est possible.
Trouver l'adresse MAC d'une machine distante est parfaitement possible à faire sous DOS ! !
Contrairement à ce qui a été dit dans les précédentes réponses.
Évidemment comme tous le monde bricole sous windows la plupart des gens ont totalement oublié que sous DOS il existe tout un tas de fonctions très puissantes dont certaines sont justement dédiées au réseau !
Dire que l'on ne peut utiliser les couches réseau sous dos est débile !
c'est même possible avec une simple disquette en y ajoutant le pilote réseau de la carte de la machine qui en général ne dépasse pas les 50 Ko !
Pour mémoire je rappelle que dans un réseau les adresses MAC ne sont utilisées que au niveau du réseau local. Dès que l'on passe sur internet ce sont les adresses IP qui sont utilisées.
Mais cela n'est pas un problème car on peut utiliser la commande ARP est un protocole effectuant la traduction d'une adresse de protocole de couche réseau (typiquement une adresse IPv4) en une adresse MAC (typiquement une adresse ethernet), ou même de tout matériel de couche de liaison. Il opère au-dessous de la couche réseau et se situe à l'interface entre la couche réseau (couche 3 du modèle OSI) et la couche de liaison (couche 2 du modèle OSI).
Donc déjà cela vous démontre que capturer une adresse MAC distante est possible. Encore faut il que la machine distante réponde ! Je ne vais pas faire un cours de hacking ici mais les habitués connaissent le principe consistant a envoyer des requêtes ARP sur une machine distante a partir du moment ou l'on connait son adresse IP. C'est un des outils classique permettant de pénétrer dans un réseau et une machine.
N'utiliser que DOS est impraticable, en revanche utiliser par exemple DOS plus un petit bout de code en VB permetra de :
Trouver le nom de domaine d'une machine, le nom de la personne qui est logguée dessus et l'adresse MAC de sa carte réseau !
On utilisera conjointement au possibilités de ARP la commande "nbtstat "
On utilisera nbtstat -A sous DOS au travers d'un petit bout de code ce qui permet ceci :
Un paquet est envoyé au PC distant, et le PC répond par un paquet contenant des informations telle que. Nom du user loggué dessus, Nom de domaine, nom du PC et Mac addresse.
Ce paquet ne nuit en aucuns cas le bon fonctionnement du PC distant et est un paquet tout a fait standard. Ce ne sera pas considéré comme une attaque ou une tentative quelconque ( genre un nmap ).
Exemple en visual basic : (je ne donne que des portions du code car je n'ai pas envie de donner des solutions de piraterie en public ! ! !)
# Begin MSWinsockLib.Winsock Winsock1
.......
# End
# Begin VB.CommandButton Command1
# Caption = "Analyser"
# Height = 495
# Left = 2280
# TabIndex = 1
# Top = 2040
# Width = 1215
# End
# Begin VB.TextBox Text1
# Height = 375
# Left = 1080
# TabIndex = 0
# Text = "192.168.1.2"
# Top = 1080
# Width = 1815
# End
# Begin VB.Label Label1
# Caption = "Adresse IP"
# Height = 375
# Left = 120
# TabIndex = 2
# Top = 1080
# Width = 975
# End
# End
# Attribute VB_Name = "frmMain"
# Attribute VB_GlobalNameSpace = False
# Attribute VB_Creatable = False
# Attribute VB_PredeclaredId = True
# Attribute VB_Exposed = False
..............
# Function send(ip As String, Packet As String) As String
# 'envoi d'un packet UDP sur une adresse IP
# Dim Packet1 As String
# Dim answer As String
# Dim Length As Long
# Dim k As Integer
#.................
# On Error GoTo erreur
#
# frmMain.Winsock1.Protocol = sckUDPProtocol
# frmMain.Winsock1.Connect ip, 137
# frmMain.Winsock1.SendData Packet
# Length = frmMain.Winsock1.BytesReceived
#............
# Debug.Print (Now() & " scan ip = " & ip)
# 'lui donne un peu de temps pour recevoir une réponse
# For k = 1 To 10000
# If frmMain.Winsock1.BytesReceived <> 0 Then
# k = 10000
# End If
# Next k
#.............
# On Error Resume Next
# frmMain.Winsock1.GetData answer
# If answer <> "" Then
# Debug.Print "On reçoit une réponse réseau" & vbCrLf
# End If
#..............
# frmMain.Winsock1.Close
# send = answer
# Exit Function
#
# erreur:
# MsgBox "Error n° " & Err.Number & " " & Err.Description
# frmMain.Winsock1.Close
#
# End Function
#
# Function Analyse(ip As String) As String
#
# 'interprétation et exploitation de la réponse au packet UDP
#
# Dim Packet1 As String
# Dim Packet2 As String
# Dim total As String
# Dim hostname As String
# Dim i, j, Y As Integer
#
# Dim NumberAnswer As Integer
# Dim name, Default_Domain As String
# Dim Name_Type As String
# Dim valid As Boolean
# Dim Name_Answer As String
# Dim Mac, Mac_Address_Temp, Mac_Address As String
# Dim Domain_Name(50) As String
#
# Dim answer As String
# Dim allowed As Boolean
#
# ' ce paquet est la parfaite réplication d'un Nbtstat
# '
# Packet1 = Chr(&H1) + Chr(&HF8) + Chr(&H0) + Chr(&H10) + Chr(&H0) + Chr(&H1) + Chr(&H0) + Chr(&H0) + Chr(&H0) + Chr(&H0) + Chr(&H0) + Chr(&H0) + Chr(&H20) + Chr(&H43) + Chr(&H4B) + Chr(&H41) + Chr(&H41) + Chr(&H41) + Chr(&H41) + Chr(&H41) + Chr(&H41) + Chr(&H41) + Chr(&H41) + Chr(&H41) + Chr(&H41) + Chr(&H41) + Chr(&H41) + Chr(&H41) + Chr(&H41) + Chr(&H41) + Chr(&H41) + Chr(&H41) + Chr(&H41) + Chr(&H41) + Chr(&H41) + Chr(&H41) + Chr(&H41) + Chr(&H41) + Chr(&H41) + Chr(&H41) + Chr(&H41) + Chr(&H41) + Chr(&H41) + Chr(&H41) + Chr(&H41) + Chr(&H0) + Chr(&H0) + Chr(&H21) + Chr(&H0) + Chr(&H1)
#
# Analyse = "" ' set empty answer
#
# answer = send(ip, Packet1)
#
#
# ' Faisons l'analyse de la réponse
#
# If (Len(answer) >= 57) Then
# NumberAnswer = Asc(Mid(answer, 57, 1))
# Else
# NumberAnswer = 0
# End If
# If (NumberAnswer <> 0) Then
#
# Position = 58
# 'MsgBox ("Number of answers = " & Str(NumberAnswer))
# Name_Answer = ""
# For i = 0 To NumberAnswer
# ' Names found on machines
# valid = True
# name = RTrim(Mid(answer, Position + (i * 18), 15))
# If (name = "") Then valid = False
#
# Name_Type = Hex(Asc(Mid(answer, (Position + (i * 18) + 15), 1)))
# Debug.Print "Recu : " & name & " <" & Name_Type & ">" & vbCrLf
#
# If (Name_Type = "1E") Then Domain_Name(i) = name
# If (Name_Type = "0") Then Domain_Name(i) = name
# If (Name_Type = "1E") Then Default_Domain = name
# If (name = "") Then valid = False
#
# If valid Then
# Name_Answer = Name_Answer & name & " ( " & Name_Type & " ) " & vbCrLf
# End If
# Next i
# Debug.Print "Nom de domaine " & Default_Domain & vbCrLf
#
# Mac_Address_Temp = Mid(answer, (Position + ((NumberAnswer) * 18)), 6)
# Mac_Address = ""
# For j = 1 To 6
# Mac = Hex(Asc(Mid(Mac_Address_Temp, j, 1)))
# If j <> 1 Then Mac_Address = Mac_Address & ":"
# If Len(Mac) = 1 Then Mac_Address = Mac_Address & "0"
# Mac_Address = Mac_Address & Mac
# Next j
# Debug.Print "Mac Address recue est = " & Mac_Address
# End If
# Analyse = Name_Answer
# End Function
#
# Private Sub Command1_Click()
# Analyse (frmMain.Text1.Text)
# End Sub
Note : Ne cherchez pas à utiliser ce bout de code il ne fonctionnera pas car comme je l'ai dit j'ai supprimé des lignes afin d'éviter d'en faire mauvais usage.
Quoi qu'il en soit et au regret de certains qui prétendent que c'est impossible cette solution (et il en existe d'autres !) permet en effet de récupérer une adresse MAC d'une machine distante sous DOS !
Évidemment celui qui joue dans la cour des grands et qui surtout ne veut pas se prendre la tête, pourra faire cela et même mieux sous linux et en utilisant bien sur la célèbre distribution BacTrack 3 ou 4 ...........