Μετάβαση στο περιεχόμενο

Αναζήτηση στην κοινότητα

Εμφάνιση αποτελεσμάτων για τις ετικέτες 'exploit'.

  • Αναζήτηση με βάση τις ετικέτες

    Πληκτρολογήστε τις ετικέτες και χωρίστε τες με κόμμα.
  • Αναζήτηση με βάση τον συγγραφέα

Τύπος περιεχομένου


Ενότητες

  • GreekHacking
    • Κανόνες & Ανακοινώσεις
    • Καλωσόρισμα νέων μελών
    • Προτάσεις / Βελτιώσεις
    • Νέα σχετικά με το Hacking/Security
    • Ασφάλεια & Προστασία Δεδομένων
    • Εκτός Θέματος
  • Leaks
    • Hacking Tutorials
    • Anonymity & Privacy / Ανωνυμία και Προστασία Προσωπικών Δεδομένων
    • Προγράμματα για Hacking / Hacking Programs
    • Cracking Οδηγοί & Πληροφορίες
    • Βιβλία σχετικά με το Hacking
    • Προγράμματα - High Quality downloads
    • E-Books
    • XXX Movies

Categories

  • Ορολογίες
  • Hacking για αρχάριους
  • Hacking για προχωρημένους
  • Mobile Hacking
  • Cracking Tutorials
  • Hacking Computers
  • Hacking Tutorials στα Αγγλικά
  • Tutorials for hacks
  • Διάφοροι Οδηγοί
    • Οδηγοί σχετικά με τα Linux
    • Οδηγοί για υπολογιστές
    • Οδηγοί σχετικά με τα Mac
    • Οδηγοί για κινητά
  • Hacking Tutorials στα Αγγλικά Copy

Categories

  • Hacking
  • Ιστοσελίδες/Server
  • Hardware
  • Windows

Βρείτε αποτελέσματα...

Βρείτε αποτελέσματα που...


Ημερομηνία δημιουργίας

  • Start

    End


Τελευταία ενημέρωση

  • Start

    End


Φιλτράρισμα με βάση τον αριθμό των...

  1. Σε αυτό το tutorial χρειάζεται λίγη γνώση απο binary exploitation, c programming, python, gdb, assembly, understanding of malloc algorithm Ας αρχίσουμε διαβάζοντας τον κώδικα για να βρούμε πιο ειναι το πρόβλημα στο πρόγραμμα. https://exploit.education/protostar/final-two/#source-code Ο σέρβερ τρέχει στην θύρα 2993. Για να μας διευκολύνει και να εστιάσουμε μόνο στο heap vulnerability κάποια μέρη του κώδικα τα έχουν κρύψει οπότε δεν χρειάζεται να ασχοληθούμε με αυτά.Το πρόγραμμα αρχίζει καλώντας την συνάρτηση get_requests() η οποία τρέχει ενα while loop 255 φορές άμα στείλουμε στον σέρβερ 128 bytes τα οποία αρχίζουν απο FSRD.Άμα δεν το κάνουμε αυτό η συνάρτηση κανει break και πάει στο for loop που εκεί κάνει free τα chunks που έγιναν allocate από το calloc. int get_requests(int fd) { char *buf; char *destroylist[256]; int dll; int i; dll = 0; while(1) { if(dll >= 255) break; buf = calloc(REQSZ, 1); if(read(fd, buf, REQSZ) != REQSZ) break; if(strncmp(buf, "FSRD", 4) != 0) break; check_path(buf + 4); dll++; } for(i = 0; i < dll; i++) { write(fd, "Process OK\n", strlen("Process OK\n")); free(destroylist[i]); } } Άρα όταν στείλουμε στον σέρβερ για παράδειγμα FSRD + 'A' *124 (total: 128 bytes) το πρόγραμμα θα καλέσει την check_path συναρτηση η οποία σαν parameter θα πάρει τους χαρακτήρες μετα το FSRD.Μετά στο check_path τσεκάρει αμα υπάρχει στο input που του δώσαμε ο χαρακτήρας '/' γυρίζει ενα pointer(στο τελευταίο '/' που θα βρεί) και μετράει το μέγεθος σε bytes απο το '/' μεχρι να συναντήση NULL TERMINATOR '0x00'. Άμα υπάρχει '/' τότε ψάχνει με το strstr την λέξη ROOT και άμα την βρεί ψάχνει τον χαρακτήρα '/' πίσω στην μνήμη απο το ROOT.Όταν τελειώσουν όλα αυτά καλεί το memmove όπου μεταφέρει l bytes δηλαδή όσα υπολόγισε απο το τελευταίο '/' μεχρι το NULL Terminator από το p που ξαναλέω ειναι το τελευταίο '/' μεχρι το NULL terminator στο start που έιναι το '/' που βρέθηκε πριν το ROOT μεχρι το Null terminator. void check_path(char *buf) { char *start; char *p; int l; /* * Work out old software bug */ p = rindex(buf, '/'); l = strlen(p); if(p) { start = strstr(buf, "ROOT"); if(start) { while(*start != '/') start--; memmove(start, p, l); printf("moving from %p to %p (exploit: %s / %d)\n", p, start, start < buf ? "yes" : "no", start - buf); } } } Κάνουμε ssh στο virtual machine του protostar με ssh root@ip με κωδικό godmode.Φτιάχνουμε ενα αρχείο έτσι ώστε να τρέχει κάθε φορά που ανοίγουμε το gdb έτσι ώστε να κάνει την δουλεία μας πιο έυκολη. set disassembly-flavor intel set follow-fork-mode child set pagination off break *check_path+117 commands x/3wx $esp end run Πρώτα θέτουμε το disassembly-flavor δηλαδή τα op codes σε intel γιατί προσωπικά με αυτά έχω μάθει να δουλεύω, μετά το επόμενο command είναι για να ακολουθήσει το gdb το child proccess το οποιο δημιουργεί το πρόγραμμα όταν δέχεται σύνδεση.Κάνουμε ένα break στο check_path+117 δηλαδή στο memmove και κανουμε print τα πρώτα τρια values στο stack οπου θα βρίσκονται τα parameters start, p, l. Μετά για να είναι τελείως αυτοματοποιημένο δημιουργούμε ενα sh αρχείο. #!/bin/bash gdb -p $(ps aux | grep final2 | head -n 1 | awk '{print $2}') -x /tmp/gdb #το πρωτο parameter ψάχνει το pid του final2 και το κάνει attach στο gdb και το δεύτερο φορτώνει τα commands που έχουμε στο προηγούμενο αρχείο #που φτιάξαμε #chmod +x /tmp/gdb.sh Τρέχουμε το /tmp/gdb.sh και στην δικιά μας μηχανή τρέχουμε το send.py(Συμπληρώνει στην αρχή το FSRD και κάνει το μήνυμα να είναι 128 bytes) με python -i send.py ip address.Θα πετάξει interactive shell οπου μπορούμε να στείλουμε με το send command input στον σερβερ.Για παράδειγμα άμα του στείλουμε send("/ROOT/AAAA")To gdb θα κάνει output 3 values στο stack που τα πρώτα δύο είναι pointers στο start, p και το τριτο integer στο l Δοκίμασε να στείλεις ROOT/AAAA καί δες τι value έχει το start parameter δηλαδή το πιο πάνω στο stack στην περιπτωσή μου πάνω ήταν το 0x0804e010. ΘΑ ΣΥΝΕΧΙΣΩ ΤΟ TUTORIAL ΑΥΡΙΟ :)) ΜΕΧΡΙ ΤΟΤΕ ΣΑΣ ΒΑΖΩ CHALLENGE ΝΑ ΔΙΑΒΑΣΕΤΕ ΚΑΙ ΝΑ ΚΑΤΑΛΑΒΕΤΕ ΤΟ MALLOC ALGORITHM https://azeria-labs.com/heap-exploitation-part-2-glibc-heap-free-bins/ Και εδώ ένα post το οποίο μιλάει για την ευάλωτη version του heap algorithm το 2001 του doug lea στο οποιο βασίζεται αυτο το tutorial http://phrack.org/issues/57/9.html send.py
  2. Παίζοντας με μερικές απλές εντολές με την mysql βάση δεδομένων που βρίσκεται πάνω στον vulnerable metasploitable server μας. Τίποτα το προχωρημένο άλλα απλές και βασικές εντολές με διάφορες εναλλακτικές που κάποιος μπορεί να χρισιμοποιήσει. Channel Link: https://peertube.it/c/m3tahckr/videos Tuttorial Link: https://peertube.it/w/2qdbAKn3vFp6AbW1tU4YSd
  3. Καλησπέρα Ο παρακάτω οδηγός σας δείχνει κάποια βασικά πράγματα για το buffer overflow Δεν είμαι πάρα πολύ καλός στο reverse engineering οπότε πιθανόν να κάνω λάθος κάπου. Αν έχετε απορίες πείτε μου και θα προσπαθήσω να τις λύσω . http://filepi.com/i/LK8Bkd0 Buffer Overflow basic tutorial.rar

ChatBox

ChatBox

Chatroom Rules

  • Το GreekHacking.Gr είναι ένα ελληνικό forum και επιτρέπεται μόνο η χρήση της Ελληνική Γλώσσας (ούτε greeklish).
  • Δεν επιτρέπονται οι βρισιές και γενικά η χρήση χυδαίας γλώσσας.
  • Απαγορεύεται αυστηρά το πορνογραφικό, προσβλητικό και βίαιο περιεχόμενο.
  • Μην χρησιμοποιείτε κεφαλαία γράμματα η σύμβολα.
×
×
  • Create New...