vulnserver unter Windows Vista

Hey,

ne Frage: Ich ziehe mir gerade dieses Tutorial hier rein: Stack Based Buffer Overflow Tutorial, part 1 - Introduction - InfoSec Institute

Ich bin noch nicht ganz durch, aber vielleicht weiß hier ja jemand schon eine Antwort. Also in dem Text wird versucht, ein Programm zu knacken, von dem man weiß, dass es Schwachstellen hat (kann man hier The Grey Corner: Introducing Vulnserver downloaden). Nun wird das dort alles unter Windows Vista gemacht und genau das wollte ich mal ausprobieren (wie es prinzipiell unter Linux funktioniert, das weiß ich ja mittlerweile schon).

Ich bin soweit gekommen: Die vulnserver.exe wird mit dem OllyDbg gestartet und mein Pythonscript sendet Daten an den Server. Aber bei mir kommt nie eine AccessViolationException oder ähnliches heraus. Egal wie groß ich den String mache, es kommt keine Exception.

Da ich ein Windows Vista x64 Betriebssystem habe ... kann das daran liegen?!? Wenn ja, gibt es eventuell einige Tutorials, mit denen ich das auf einem Windows Vista Betriebssystem ausprobieren kann (also ein Exploit schreiben für ein Programm unter Windows Vista, von dem ich weiß, dass es Schwachstellen hat, die ich aber selbst herausfinden muss => will es mal gemacht haben).

Hier mal mein Python Script mit dem ich eine Message an den Server sende:

Code:
# Receiving data

import socket   # for sockets
import sys      # for exit

# Variables
host = '127.0.0.1'
port = 9999

#
# Create an INET, Streaming socket
#
try:
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except socket.error as se:
    print("Failed to create socket")
    print(str(se))
    sys.exit()
print("Socket created.")

#
# Connect to remote server
#
s.connect((host, port))
print("Socket connected to " + host)

#
# send some data to vulnerable server
#
message = "A" * 200000
try:
    # Set the whole string
    s.sendall(bytes(message, 'UTF-8'))
except socket.error as se:
    # send failes
    print("Send failed")
    print(str(se))
    sys.exit()

#
# now receive data
#
reply = s.recv(4096)
print(reply)
 
Ich bin soweit gekommen: Die vulnserver.exe wird mit dem OllyDbg gestartet und mein Pythonscript sendet Daten an den Server. Aber bei mir kommt nie eine AccessViolationException oder ähnliches heraus. Egal wie groß ich den String mache, es kommt keine Exception.
*Cheatet und schaut in den Source* - der Server versucht ein "Welcome ..." abzusenden, bevor irgendwelche Daten empfangen werden.
Also könnte im Client-Script ein
Code:
while (s.recv(1) != "\n"): pass
oder einfach ein s.recv(1024) (<= inkorrekte Vorgehnsweise, sollte aber auf dem "localhost" funktionieren und in dem Fall absolut ausreichen)
vor dem
Code:
s.sendall(bytes(message, 'UTF-8'))
Abhilfe schaffen.
 
Zurück
Oben