80,443 - Pentesting Web Methodology
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Pata mtazamo wa hacker kuhusu programu zako za wavuti, mtandao, na wingu
Pata na ripoti kuhusu udhaifu muhimu, unaoweza kutumiwa kwa faida halisi ya biashara. Tumia zana zetu zaidi ya 20 za kawaida kupanga uso wa shambulio, pata masuala ya usalama yanayokuruhusu kupandisha mamlaka, na tumia matumizi ya moja kwa moja kukusanya ushahidi muhimu, ukigeuza kazi yako ngumu kuwa ripoti za kushawishi.
Huduma ya wavuti ni huduma ya kawaida na pana zaidi na aina nyingi za udhaifu tofauti zipo.
Bandari ya kawaida: 80 (HTTP), 443(HTTPS)
Katika mbinu hii tutadhani kwamba unataka kushambulia kikoa (au subdomain) na tu hicho. Hivyo, unapaswa kutumia mbinu hii kwa kila kikoa, subdomain au IP iliyogunduliwa yenye seva ya wavuti isiyojulikana ndani ya upeo.
Angalia kama kuna udhaifu unaojulikana kwa toleo la seva inayotumika. Vichwa vya HTTP na vidakuzi vya jibu vinaweza kuwa na manufaa sana katika kutambua teknolojia na/au toleo linalotumika. Nmap scan inaweza kutambua toleo la seva, lakini pia inaweza kuwa na manufaa kutumia zana whatweb, webtech au https://builtwith.com/:
Search for vulnerabilities of the web application version
Baadhi ya tricks za finding vulnerabilities katika technologies maarufu zinazotumika:
Kumbuka kwamba domain hiyo hiyo inaweza kuwa ikitumia technologies tofauti katika ports, folders na subdomains. Ikiwa programu ya wavuti inatumia tech/platform zilizoorodheshwa hapo awali au zingine yoyote, usisahau kutafuta mtandaoni tricks mpya (na unijulishe!).
Ikiwa source code ya programu inapatikana katika github, mbali na kufanya mtihani wa White box wa programu kuna maelezo ambayo yanaweza kuwa muhimu kwa Black-Box testing ya sasa:
Je, kuna Change-log au Readme au Version file au chochote chenye version info accessible kupitia wavuti?
Je, credentials zimehifadhiwaje na wapi? Je, kuna file (inayopatikana?) yenye credentials (majina ya watumiaji au nywila)?
Je, nywila ziko katika plain text, encrypted au ni hashing algorithm gani inayotumika?
Je, inatumia master key yoyote kwa ajili ya kuandika kitu? Ni algorithm gani inayotumika?
Je, unaweza kupata yoyote ya hizi files kwa kutumia udhaifu wowote?
Je, kuna maelezo ya kuvutia katika github (masuala yaliyotatuliwa na yasiyotatuliwa)? Au katika commit history (labda nywila iliyoingizwa ndani ya commit ya zamani)?
Ikiwa CMS inatumika usisahau kufanya skana, labda kitu cha kuvutia kitatokea:
Clusterd: JBoss, ColdFusion, WebLogic, Tomcat, Railo, Axis2, Glassfish CMSScan: WordPress, Drupal, Joomla, vBulletin tovuti za masuala ya Usalama. (GUI) VulnX: Joomla, Wordpress, Drupal, PrestaShop, Opencart CMSMap: (W)ordpress, (J)oomla, (D)rupal au (M)oodle droopscan: Drupal, Joomla, Moodle, Silverstripe, Wordpress
Katika hatua hii unapaswa kuwa na taarifa fulani kuhusu seva ya wavuti inayotumiwa na mteja (ikiwa kuna data yoyote iliyotolewa) na mbinu fulani za kukumbuka wakati wa mtihani. Ikiwa una bahati umepata hata CMS na kuendesha skana.
Kutoka hapa tutaanza kuingiliana na programu ya wavuti.
Kurasa za Kawaida zenye taarifa za kuvutia:
/robots.txt
/sitemap.xml
/crossdomain.xml
/clientaccesspolicy.xml
/.well-known/
Angalia pia maoni katika kurasa kuu na za sekondari.
Kusababisha makosa
Seva za wavuti zinaweza kufanya kazi kwa njia isiyo ya kawaida wakati data za ajabu zinatumwa kwao. Hii inaweza kufungua vulnerabilities au kufichua taarifa nyeti.
Fikia kurasa za uwongo kama /whatever_fake.php (.aspx,.html,.n.k)
Ongeza "[]", "]]", na "[[" katika maadili ya cookie na maadili ya parameter ili kuunda makosa
Tengeneza kosa kwa kutoa ingizo kama /~randomthing/%s
kwenye mwisho wa URL
Jaribu HTTP Verbs tofauti kama PATCH, DEBUG au makosa kama FAKE
Ikiwa unapata kuwa WebDav ime wezeshwa lakini huna ruhusa za kutosha za kupakia faili kwenye folda ya mzizi jaribu:
Brute Force akreditif
Pakia faili kupitia WebDav kwenye sehemu ya folda zilizopatikana ndani ya ukurasa wa wavuti. Unaweza kuwa na ruhusa za kupakia faili katika folda nyingine.
Ikiwa programu haiwalazimishi watumiaji kutumia HTTPS katika sehemu yoyote, basi ni vulnerable to MitM
Ikiwa programu inatumia kutuma data nyeti (nywila) kwa kutumia HTTP. Basi ni vulnerability kubwa.
Tumia testssl.sh kuangalia vulnerabilities (Katika programu za Bug Bounty labda aina hizi za vulnerabilities hazitakubaliwa) na tumia a2sv kuangalia tena vulnerabilities:
Information about SSL/TLS vulnerabilities:
Zindua aina ya spider ndani ya wavuti. Lengo la spider ni kupata njia nyingi kadri iwezekanavyo kutoka kwa programu iliyojaribiwa. Hivyo, kuvinjari wavuti na vyanzo vya nje vinapaswa kutumika ili kupata njia halali nyingi kadri iwezekanavyo.
gospider (go): HTML spider, LinkFinder katika faili za JS na vyanzo vya nje (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com).
hakrawler (go): HML spider, na LinkFider kwa faili za JS na Archive.org kama chanzo cha nje.
dirhunt (python): HTML spider, pia inaonyesha "faili za juicy".
evine (go): Interactive CLI HTML spider. Pia inatafuta katika Archive.org
meg (go): Chombo hiki si spider lakini kinaweza kuwa na manufaa. Unaweza tu kuashiria faili yenye mwenyeji na faili yenye njia na meg itachukua kila njia kwenye kila mwenyeji na kuhifadhi jibu.
urlgrab (go): HTML spider yenye uwezo wa kuonyesha JS. Hata hivyo, inaonekana kama haijatunzwa, toleo lililotayarishwa ni la zamani na msimbo wa sasa haujajitengeneza.
gau (go): HTML spider inayotumia watoa huduma wa nje (wayback, otx, commoncrawl)
ParamSpider: Hii ni script itakayopata URLs zenye parameta na kuziorodhesha.
galer (go): HTML spider yenye uwezo wa kuonyesha JS.
LinkFinder (python): HTML spider, yenye uwezo wa kuboresha JS inayoweza kutafuta njia mpya katika faili za JS. Inaweza kuwa na manufaa pia kuangalia JSScanner, ambayo ni wrapper ya LinkFinder.
goLinkFinder (go): Kutolewa kwa mwisho katika chanzo cha HTML na faili za javascript zilizojumuishwa. Inafaida kwa wawindaji wa makosa, red teamers, infosec ninjas.
JSParser (python2.7): Script ya python 2.7 inayotumia Tornado na JSBeautifier kuchambua URLs zinazohusiana kutoka kwa faili za JavaScript. Inafaida kwa kugundua maombi ya AJAX kwa urahisi. Inaonekana kama haijatunzwa.
relative-url-extractor (ruby): Iwapo kuna faili (HTML) itatoa URLs kutoka kwake kwa kutumia kanuni nzuri za kawaida ili kupata na kutoa URLs zinazohusiana kutoka kwa faili mbaya (minify).
JSFScan (bash, zana kadhaa): Kusanya habari za kuvutia kutoka kwa faili za JS kwa kutumia zana kadhaa.
subjs (go): Pata faili za JS.
page-fetch (go): Pakia ukurasa katika kivinjari kisichokuwa na kichwa na uchapishe URLs zote zilizopakiwa ili kupakia ukurasa.
Feroxbuster (rust): Chombo cha kugundua maudhui kinachochanganya chaguzi kadhaa za zana za awali.
Javascript Parsing: Kiendelezi cha Burp kutafuta njia na parameta katika faili za JS.
Sourcemapper: Chombo ambacho kinapewa URL ya .js.map kitakupa msimbo wa JS ulioimarishwa.
xnLinkFinder: Hii ni chombo kinachotumika kugundua mwisho kwa lengo fulani.
waymore: Gundua viungo kutoka kwa mashine ya wayback (pia kupakua majibu katika wayback na kutafuta viungo zaidi).
HTTPLoot (go): Vinjari (hata kwa kujaza fomu) na pia pata habari nyeti kwa kutumia regex maalum.
SpiderSuite: Spider Suite ni GUI ya hali ya juu ya usalama wa wavuti Crawler/Spider iliyoundwa kwa wataalamu wa usalama wa mtandao.
jsluice (go): Ni pakiti ya Go na chombo cha amri cha kutoa URLs, njia, siri, na data nyingine za kuvutia kutoka kwa msimbo wa chanzo wa JavaScript.
ParaForge: ParaForge ni kiendelezi rahisi cha Burp Suite ili kutoa parameta na mwisho kutoka kwa ombi ili kuunda orodha maalum ya maneno kwa fuzzing na orodha.
katana (go): Chombo bora kwa hili.
Crawley (go): Chapisha kila kiungo ambacho kinaweza kupatikana.
Anza brute-forcing kutoka kwenye folda ya mzizi na uhakikishe unafanya brute-force zote za directories zilizopatikana kwa kutumia hii mbinu na zote za directories zilizogunduliwa na Spidering (unaweza kufanya brute-forcing hii kikamilifu na kuongeza mwanzoni mwa orodha ya maneno iliyotumika majina ya directories zilizopatikana). Zana:
Dirb / Dirbuster - Imejumuishwa katika Kali, ya zamani (na polepole) lakini inafanya kazi. Inaruhusu vyeti vilivyojitiisha kiotomatiki na utafutaji wa kurudiwa. Polepole sana ikilinganishwa na chaguzi nyingine.
Dirsearch (python): Haikubali vyeti vilivyojitiisha kiotomatiki lakini inaruhusu utafutaji wa kurudiwa.
Gobuster (go): Inaruhusu vyeti vilivyojitiisha kiotomatiki, haikubali utaftaji wa kurudiwa.
Feroxbuster - Haraka, inasaidia utafutaji wa kurudiwa.
wfuzz wfuzz -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt https://domain.com/api/FUZZ
ffuf - Haraka: ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.10/FUZZ
uro (python): Hii si spider lakini ni chombo ambacho kinapewa orodha ya URLs zilizopatikana kitafuta "URLs zilizojirudia".
Scavenger: Kiendelezi cha Burp kuunda orodha ya directories kutoka kwa historia ya burp ya kurasa tofauti.
TrashCompactor: Ondoa URLs zenye kazi zilizojirudia (kulingana na uagizaji wa js).
Chamaleon: Inatumia wapalyzer kugundua teknolojia zinazotumika na kuchagua orodha za maneno za kutumia.
Recommended dictionaries:
raft-large-directories-lowercase.txt
directory-list-2.3-medium.txt
RobotsDisallowed/top10000.txt
/usr/share/wordlists/dirb/common.txt
/usr/share/wordlists/dirb/big.txt
/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
Kumbuka kwamba kila wakati directory mpya inapatikana wakati wa brute-forcing au spidering, inapaswa kufanywa Brute-Forced.
Broken link checker: Pata viungo vilivyovunjika ndani ya HTMLs ambavyo vinaweza kuwa na hatari ya kuchukuliwa.
File Backups: Mara tu unapopata faili zote, angalia nakala za faili zote zinazoweza kutekelezwa (".php", ".aspx"...). Mabadiliko ya kawaida ya kutaja nakala ni: file.ext~, #file.ext#, ~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp na file.old. Unaweza pia kutumia chombo bfac au backup-gen.
Discover new parameters: Unaweza kutumia zana kama Arjun, parameth, x8 na Param Miner kugundua parameta zilizofichwa. Ikiwa unaweza, unaweza kujaribu kutafuta parameta zilizofichwa kwenye kila faili ya wavuti inayoweza kutekelezwa.
Arjun all default wordlists: https://github.com/s0md3v/Arjun/tree/master/arjun/db
Param-miner “params” : https://github.com/PortSwigger/param-miner/blob/master/resources/params
Assetnote “parameters_top_1m”: https://wordlists.assetnote.io/
nullenc0de “params.txt”: https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773
Comments: Angalia maoni ya faili zote, unaweza kupata credentials au ufunctionality iliyofichwa.
Ikiwa unacheza CTF, hila "ya kawaida" ni kuficha habari ndani ya maoni upande wa kulia wa ukurasa (ukitumia mifumo ya maelfu ili usione data ikiwa unafungua msimbo wa chanzo na kivinjari). Uwezekano mwingine ni kutumia michoro kadhaa mipya na kuficha habari katika maoni kwenye chini ya ukurasa wa wavuti.
API keys: Ikiwa unapata funguo zozote za API kuna mwongozo unaoonyesha jinsi ya kutumia funguo za API za majukwaa tofauti: keyhacks, zile, truffleHog, SecretFinder, RegHex, DumpsterDive, EarlyBird
Google API keys: Ikiwa unapata funguo zozote za API zinazoonekana kama AIzaSyA-qLheq6xjDiEIRisP_ujUseYLQCHUjik unaweza kutumia mradi gmapapiscanner kuangalia ni APIs zipi funguo hiyo inaweza kufikia.
S3 Buckets: Wakati wa spidering angalia ikiwa subdomain au kiungo chochote kinahusiana na S3 bucket. Katika kesi hiyo, angalia idhini ya ndoo.
Wakati wa kufanya spidering na brute-forcing unaweza kupata mambo ya kuvutia ambayo unapaswa kuangazia.
Interesting files
Angalia viungo kwa faili nyingine ndani ya CSS files.
Ikiwa unapata .env habari kama funguo za api, nywila za db na habari nyingine zinaweza kupatikana.
Ikiwa unapata API endpoints unapaswa pia kujaribu kuziangalia. Hizi si faili, lakini labda "zitakuwa kama" hizo.
JS files: Katika sehemu ya spidering zana kadhaa ambazo zinaweza kutoa njia kutoka kwa faili za JS zilitajwa. Pia, itakuwa ya kuvutia kufuatilia kila faili ya JS iliyopatikana, kwani katika baadhi ya matukio, mabadiliko yanaweza kuashiria kuwa udhaifu wa uwezekano umeingizwa katika msimbo. Unaweza kutumia kwa mfano JSMon.
Javascript Deobfuscator and Unpacker: https://lelinhtinh.github.io/de4js/, https://www.dcode.fr/javascript-unobfuscator
Javascript Beautifier: http://jsbeautifier.org/, http://jsnice.org/
JsFuck deobfuscation (javascript with chars:"[]!+" https://enkhee-osiris.github.io/Decoder-JSFuck/)
TrainFuck: +72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23.
Katika matukio kadhaa, utahitaji kuelewa kanuni za kawaida zinazotumika. Hii itakuwa na manufaa: https://regex101.com/ au https://pythonium.net/regex
Unaweza pia kufuatilia faili ambapo fomu zilipatikana, kwani mabadiliko katika parameta au kuonekana kwa fomu mpya kunaweza kuashiria uwezekano wa kazi mpya yenye udhaifu.
403 Forbidden/Basic Authentication/401 Unauthorized (bypass)
403 & 401 Bypasses502 Proxy Error
Ikiwa ukurasa wowote unajibu na nambari hiyo, labda ni proxy iliyo na makosa. Ikiwa unatumia ombi la HTTP kama: GET https://google.com HTTP/1.1
(pamoja na kichwa cha mwenyeji na vichwa vingine vya kawaida), proxy itajaribu kufikia google.com na utakuwa umepata SSRF.
NTLM Authentication - Info disclosure
Ikiwa seva inayotumia uthibitisho ni Windows au unapata kuingia inayohitaji credentials zako (na kuomba jina la domain), unaweza kusababisha ufichuzi wa habari.
Tuma kichwa: “Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”
na kutokana na jinsi uthibitisho wa NTLM unavyofanya kazi, seva itajibu kwa habari za ndani (toleo la IIS, toleo la Windows...) ndani ya kichwa "WWW-Authenticate".
Unaweza kujiandaa hii kwa kutumia nmap plugin "http-ntlm-info.nse".
HTTP Redirect (CTF)
Inawezekana kweka maudhui ndani ya Redirection. Maudhui haya hayataonyeshwa kwa mtumiaji (kama kivinjari kitatekeleza uelekeo) lakini kitu kinaweza kuwa kimefichwa humo.
Sasa kwamba orodha kamili ya programu ya wavuti imefanywa, ni wakati wa kuangalia uwezekano wa udhaifu mwingi. Unaweza kupata orodha ya ukaguzi hapa:
Web Vulnerabilities MethodologyPata maelezo zaidi kuhusu udhaifu wa wavuti katika:
Unaweza kutumia zana kama https://github.com/dgtlmoon/changedetection.io kufuatilia kurasa kwa mabadiliko ambayo yanaweza kuingiza udhaifu.
Pata mtazamo wa hacker kuhusu programu zako za wavuti, mtandao, na wingu
Pata na ripoti udhaifu muhimu, unaoweza kutumiwa kwa biashara halisi. Tumia zana zetu 20+ za kawaida kuchora uso wa shambulio, pata masuala ya usalama yanayokuruhusu kupandisha hadhi, na tumia mashambulizi ya kiotomatiki kukusanya ushahidi muhimu, ukigeuza kazi yako kuwa ripoti za kushawishi.
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)