Jump to content

theeternalwanderer

Active Members
  • Posts

    323
  • Joined

  • Last visited

  • Days Won

    5

Posts posted by theeternalwanderer

  1. Trece traficul prin Burp si vezi exact ce requesturi se fac - daca dupa verificarea initiala nu primesti un token unic care trebuie inclus in urmatoarele requesturi atunci exista posibilitatea sa eviti validarea cu totul. In caz contrar ai spus ca requestul initial de verificare nu se schimba deci trebuie doar sa faci acelasi request si sa extragi tokenul unic care sa fie inclus in celelalte requesturi.

     

    Solutia ghetoo pentru mine ar fi sa folosesc cURL ca sa produc requesturile necesare, grep/cut/awk/sed ca sa extrag token-ul si cURL din nou ca sa cer datele pe care le vroiam in primul rand. Le bagi intr-un script Bash si ai terminat.

     

    Mai detaliat de atat nu pot sa fiu fara sa vad toate requesturile si raspunsurile care vin/pleaca din browserul tau. 

     

  2. Ai aici cateva resurse:

     

    OSI Model - https://en.wikipedia.org/wiki/OSI_model

    Port - https://en.wikipedia.org/wiki/Port_(computer_networking)

    Top 10 vulnerabilitati web (OWASP) - https://www.owasp.org/images/7/72/OWASP_Top_10-2017_(en).pdf.pdf

    Let's build a web  server - https://ruslanspivak.com/lsbaws-part1/

     

    Ultimul link, desi discuta cum sa construiesti un web server de la 0, ar trebui sa fie folositor in a intelege cum functioneaza unul.

     

    Spor!

    • Thanks 1
  3. @Ossian nu exista un exploit pentru port 80, exista exploituri pentru un serviciul care este disponibil pe portul 80 - este o diferenta. In topicul anterior ti s-a recomandat si ti s-au dat link-uri spre materiale care iti explica ce este un port - citeste-le. Iti este greu sa intelegi de ce intrebarea ta este aberanta pentru ca nu ai in bagajul de cunostinte un numar de concepte de baza. Afla ce este si cum este folosit un port, afla ce este si cum functioneaza un server web (e.g. IIS, Apache, Nginx), afla ce este HTTP(S), afla care sunt vulnerabilitatile cele mai comune in sfera aplicatiilor web (OWASP top 10).

     

    Ai aici o lista de subiecte din care se da examenul CPSA (entry-level) la CREST - https://www.crest-approved.org/wp-content/uploads/crest-crt-cpsa-technical-syllabus-2.0.pdf. Vezi ce subiecte te intereseaza si incearca sa le intelegi.

     

    Inca o chestie, daca sistemul pe care tu il impungi cu exploituri nu iti apartine, sau nu ai primit autorizatie de la proprietar sau o persoana cu autoritatea necesara, atunci esti in afara legii.

     

    @dancezar "Ca sa reduci suprafata de atac trebuie sa verifici ce versiune de software este folosita" ai o idee gresita despre ce inseamna suprafata de atac.

     

    Spor!

    • Like 2
  4. 21 hours ago, deauxefeforsaken said:

    Dupa plansete si un suspin greu din partea noastra, a amandurora, am hotarat sa ramanem impreuna

    0mKXcg1.gif

     

    In caz ca vrei  sa te asiguri ca aspectul amoros al vietilor voastre este in concordanta cu cel social, recomand:

    EDJKUBt.png

    • Upvote 3
  5. Echivalentul la a te scarpina la calcai cu degetele de la acelasi picior. WTF?

     

    Daca tot iti iei un SSD pune-l pe laptop si foloseste HDD-ul vechi ca memorie externa. Depinde de ce laptop ai dar s-ar putea ca garantia sa nu fie afectata daca schimbi HDD-ul. Sau ai putea sa-l duci la un service autorizat de ei.

     

    O alta alternativa ar fi sa vezi daca ai porturi mSATA pe laptop si sa iti iei un SSD mSATA. Atunci ai putea sa rulezi sistemul de operare de pe SSD si sa folosesti hardul vechi pentru stocare. 

    • Upvote 1
  6. Nu stiu ce clasifici ca fiind citibila? Lectura usoara de seara nu este.

     

    CISSP este o certificare si (ISC)pun la dispozitie un 'study guide'. In general CISSP este o certificare entry-level sa zicem pentru functii de securitate in management - a se citi: nu intra in foarte multe detalii tehnice. 

    • Like 1
  7. 3 hours ago, madalinnt said:

    Nu a mers ,dar imi pot baga p.U-la in toti copiii ma-tii dupa ce ti-o bag tie in anus mai intai. Mai panarama dracului dar tu cu mine ai vorbe de "baietas" doar ca sa te afli in treaba?Mirosi a mucegai,saracie si a teroarea din copilaria ta de la distanta.Asa te mai dai cocos aici si in realitate traversezi strada cand te ia unul in privire.

    Spuse el fioros in timp ce incerca sa sparga contul fostei sotii. Ti-as atrage atentia ca ce incerci sa faci este ilegal, dar am impresia ca nu este teritoriu necunoscut pentru tine - nu-i asa, Stefan? 

     

    In alta ordine de idei, a observat cineva ce orientare homosexuala au injuraturile in Romana?

    • Like 1
    • Upvote 2
  8. Recent am testat o aplicatie web si am intalnit urmatoarea situatie:

    • doi parametri pe care ii puteam controla erau inclusi intr-un 'href'
    • parametrii respectivi aveau o lungime maxima destul de restrictiva, sa zicem 15 caractere
    • orice continea semnul mai mic (<, inclusiv variante Unicode gen full-length angle bracket) urmat de o litera iti termina sesiunea
    • caracterele speciale nu erau filtrate si nu se folosea HTML-encoding cand valorile respective erau folosite

     

    Cam asa arata codul HTML:

    <a href="https://mataigrasa.com/?param1=XXX&param2=YYY&someotherparamsgohere=whateverman">TROLOL</a>

    Am folosit urmatoarele valori:

    • param1="onclick='/*
    • param2=*/alert(9)'x="

     

    Atunci codul HTML devine:

    <a href="https://mataigrasa.com/?param1="onclick='/*&param2=*/alert(9)'x="YYY&someotherparamsgohere=whateverman">TROLOL</a>

    Param1 inchide atributul 'href' si defineste un 'onclick' in care incep un comment (/*). Param 2 inchide comentul (*/) si introduce codul JS care va fi executat de eventul 'onclick'. 

    Comentariul este folosit ca sa scoata '&param2=' din ecuatie si sa permita concatenarea codului JS.

     

    Alte idei/recomandari/sugestii sunt bine venite.

     

     

    • Upvote 3
  9. It lipseste un alineat/indent:

    #!/usr/bin/python
    import socket
    
    
    def scan(host, port):
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    
        try:
            s.connect((host, port))
            print ("open :" + str(port))
            s.close()
        except:
            pass
    
    for port in range(10000):
        scan("127.0.0.1", port)

    Cum aveai tu codul functia 'scan' doar definea un socket, 'try/pass' facea parte din programul principal, nu din functie.

     

    Ca proof-of-concept (PoC) este in regula, dar in practica asta ar scana foarte incet pentru ca astepti fiecare port in parte sa raspunda sau ca perioada de timeout sa expire. Pentru un scanner agresiv poti sa reduci perioada de timeout si sa introduci mai multe thread-uri.

     

    Ai aici niste cod scris la furie care face o scanare agresiva la toate 65K porturi TCP. Nu stiu daca mai merge sau daca am facut modificari care l-au stricat, dar este suficient cat sa iti faci o idee. Este un cod destul de jegos si sunt sigur ca unii o sa-si puna mainile in cap, dar ar trebui sa-ti dea o idee despre chestia cu thread-urile/timeout-ul pe sockets, etc. Daca cineva are sugestii la cum ar putea sa fie imbunatatit sunt numai urechi. :)

    #!/usr/bin/python
    
    import sys
    from multiprocessing import Pool
    from multiprocessing import freeze_support
    
    from modules import rs_inf
    
    ##########
    #  MAIN  #
    ##########
    # this is only temporary
    # the purpose is to allow the development version to be used in production
    if len(sys.argv) == 1:
        scope_file = 'scope.txt'
    else:
        scope_file = sys.argv[1]
    
    # read scope file and create targets array
    scope = open(scope_file, 'r')
    targets = []
    for i in scope.readlines():
        # host = i.split(':')[0]
        # port = int(i.split(':')[1].rstrip())
        targets.append(i.rstrip())
    
    print targets
    
    pool = Pool(processes=200)
    results = pool.map(rs_inf.tcp_scan, rs_inf.tcp_scope_generator(targets))
    pool.close()
    pool.join()
    
    open_ports = []
    for i in results:
       if i:
          if i[1] not in open_ports:
             open_ports.append(i[1])
    
    print "\nConevnient Nmap ports flag:"
    for i in open_ports:
         sys.stdout.write(str(i) + ',')

    Si aici modulul rs_inf:

    import socket
    from random import shuffle
    
    from modules import rs_ssl
    
    
    def tcp_scope_generator(targets_array, start_range=1, end_range=65536):
        tcp_scope = []
        for i in targets_array:
            for j in range(start_range, end_range):
                tcp_scope.append((i, j))
        shuffle(tcp_scope)
        return tcp_scope
    
    def tcp_scan((host, port)):
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.settimeout(1)
        if s.connect_ex((host, port)) == 0:
            print host + " - " + str(port)
            s.close()
    
            # # if the port is open check if SSL is supported
            # if rs_ssl.ssl_verify((host, port)):
            #     # if SSL is supported enumerate
            #     rs_ssl.ssl_enumerate((host, port))
            # else:
            #     print host + ":" + str(port) + " --- SSL not supported"
    
            return (host, port)
        s.close()
    
    • Thanks 1
  10. 1 hour ago, marcward said:

    Cel mai simplu algoritm de criptare si probabil si cel mai potrivit pentru prietenul tau este inlocuirea unui caracter N cu valoarea lui in ASCII N+x.

     

    Sa zicem ca ai cuvantul CAT, iar cheia ta va fi 2. Fiecare dintre litere va fi inlocuita cu valoarea sa in ASCII + 2.

     

    Deci CAT devine: ECV.

     

    C=67, 67+2=69 (E) samd.

     

    ASCII Table

    A.K.A ROT/Caesar Cipher

  11. 2 hours ago, Che said:

    Ce alte metode ar mai fi ? Cum functioneaza criptarea cu parola ?

    Care e diferenta intre un hash si o criptare ? Adica stiu ca sunt lucruri diferite, dar cum anume rezulta una si cum anume rezulta cealalta ? Parca este si base64 si criptare dar si hash, ce anume face algoritmul cand genereaza hash-ul ? Masoara dimensiunea fisierului sau pe ce se bazeaza ?

    Ai aici cateva informatii de baza despre crypto:

     

     

    Encryption vs. Encoding vs. Hashing

     

    These are three terms that are commonly mixed. They are not interchangeable and they refer to different things.

     

    Encoding is the process of transforming data from one format into another. Converting from Hex to Binary is encoding. The only thing required to read data or to change it into whatever arbitrary format you desire is the encoding scheme. This is a public bit of data that explains how a particular encoding works (e.g. Base64).

     

    Encryption is the process of transforming data with the purpose of keeping it secret. This means that the encrypted value will disclose little information about the original data. This process requires an algorithm that can be publicly known and an encryption key that should be kept secret.

     

    Hashing is essentially a signature of an arbitrary piece of data. It is a one-way function that cannot be reversed nor can the original information be gleaned from the hash value.

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------

     

    Symmetric and Asymmetric Encryption

     

    Symmetric encryption uses the same key to encrypt and decrypt - e.g. DES, 3DES, AES, etc.

    Asymmetric encryption uses a key pair - one for encryption, one for decryption - e.g. RSA.

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------

     

    Encryption Algorithms

     

    DES

    symmetric

    64-bit block

    56-bit key + 8 parity bits

    considered insecure

    3DES

    symmetric

    64-bit block

    uses 3,2, or 1 keys

    3TDEA- Ek1(Dk2(Ek3()))

    2TDEA - Ek1(Dk2(Ek1()))

    1TDEA - effectively DES - Ek1(Dk1(Ek1()))

    AES

    symmetric

    128-bit block

    128, 192, or 256-bit key

    AES is a standard based on the Rijndael cipher.

    RSA

    asymmetric

    64/128-bit block

    Keys should be 2048+ bits

    RSA was never meant to encrypt large amounts of data, so it is not entirely correct to say it is a block cipher.

    RC4

    symmetric

    stream

    40-2048 bits

    considered insecure

     

    Many other encryption algorithms exist. These are just the most common.

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------

     

    Hashing Algorithms

     

    MD5

    128-bit hash

    considered obsolete. collisions have been identified

    SHA-1

    160-bit (20 byte) hash

    phasing out. collisions have been identified

     

    Recommendation is to either use pair of hashing algorithms, or to use SHA-256 or SHA-512.

    MD5, SHA-1/256/512 operate on 512-bit blocks.

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------

    • Upvote 1
  12. @Zekor, @BogdanNBV exista doar 2.5 situatii in care este legal sa testezi securitatea unui site/calculator/resursa/etc:

    1. ai o autorizatie scrisa de la o persoana cu autoriatea necesara (i.e. proprietarul siteului, a infrastructurii)
    2. exista un program de bug bounty
    3. ai descoperit vulnerabilitatea accidental, NU ai investigat-o mai departe, si o raportezi in calitate de bun samaritean/client (desi asta este o zona gri)

    De exemplu in site-ul czga.ro, daca ai bagat un apostrof accidental si ai primit o eroare de sintaxa atunci poti sa raportezi ca ar putea sa fie o problema acolo si ar trebui sa fii in regula dpdv legal, dar daca sapi mai adanc, fara sa ai permisiunea proprietarilor, atunci esti in afara legii.

     

    Daca nu ti-a cerut nimeni sa le testezi securitate este ca si cum ai da buzna in apartamentul vecinului tau, pe motiv ca are o incuietoare proasta, si cand te ameninta ca suna la politie si vrea sa te dea afara sa ii arati obrazul si sa ii spui "ma jegosule, unde e recunostinta? ti-am aratat o vulnerabilitate si tu asa ma tratezi?".  

     

    • Like 1
    • Upvote 3
  13. Ok ok, lasand glumele deoparte ai cerut o modalitate sigura si rapida de a face bani ca adolescent - sarbatorile se apropie, pune-te pe invatat colinde si uraturi si cand vine sezonul faci un ban cinstit (dar neimpozabil). Daca poti sa zdrangani dintr-o chitara sau un instrument semi-muzical si mai bine. Te aduni cu cativa colegi de halta/scoala/cartier si "go forth and conquer".

     

    PONT - nu mergeti in cartiere, ci in zonele rezidentiale cu case - da, veti fi latrati, dar per total faceti mai multi bani pentru mai putin efort.

     

     

×
×
  • Create New...