hacktricks/network-services-pentesting/5671-5672-pentesting-amqp.md
2024-02-10 18:14:16 +00:00

11 KiB
Raw Blame History

5671,5672 - AMQP Pentesting

AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile öğrenin!

HackTricks'ı desteklemenin diğer yolları:

Temel Bilgiler

cloudamqp'den alınan bilgilere göre:

RabbitMQ, bir mesaj kuyruğu yazılımı olarak da bilinen bir mesaj aracısı veya kuyruk yöneticisi dir. Basitçe söylemek gerekirse; uygulamaların bir mesajı veya mesajları aktarmak için bağlandığı kuyrukların tanımlandığı bir yazılımdır.
Bir mesaj her türlü bilgiyi içerebilir. Örneğin, başka bir uygulamada (hatta başka bir sunucuda bile olabilir) başlaması gereken bir süreç veya görev hakkında bilgi içerebilir veya sadece basit bir metin mesajı olabilir. Kuyruk yöneticisi yazılımı, mesajları bir alıcı uygulama bağlandığında ve kuyruktan bir mesaj alındığında depolar. Alıcı uygulama daha sonra mesajı işler.
Tanımından .

Varsayılan port: 5672,5671

PORT     STATE SERVICE VERSION
5672/tcp open  amqp    RabbitMQ 3.1.5 (0-9)

AMQP (Advanced Message Queuing Protocol) hedef sistemdeki mesaj kuyruklarını yönetmek için kullanılan bir protokoldür. AMQP, mesajların güvenli ve güvenilir bir şekilde iletilmesini sağlar. AMQP hedef sistemdeki mesaj kuyruklarını keşfetmek için çeşitli yöntemler kullanabiliriz.

Port Taraması

AMQP genellikle 5671 ve 5672 numaralı portlarda çalışır. Bu nedenle, hedef sistemde bu portların açık olup olmadığını kontrol etmek önemlidir. Port taraması yapmak için çeşitli araçlar kullanabiliriz, örneğin:

  • Nmap: nmap -p 5671,5672 <hedef_ip>
  • Masscan: masscan -p5671,5672 <hedef_ip>

Banner Grabbing

AMQP sunucusunun banner bilgilerini elde etmek, hedef sistem hakkında daha fazla bilgi edinmemizi sağlar. Banner bilgileri, sunucunun sürümü, yapılandırma ve diğer önemli bilgileri içerebilir. Banner bilgilerini elde etmek için çeşitli araçlar kullanabiliriz, örneğin:

  • Telnet: telnet <hedef_ip> 5672
  • Netcat: nc <hedef_ip> 5672

AMQP Keşfi

AMQP sunucusunda mevcut olan mesaj kuyruklarını keşfetmek için çeşitli yöntemler kullanabiliriz. Bu yöntemler arasında aşağıdakiler bulunur:

  • AMQP komut satırı araçları: AMQP sunucusuna bağlanmak ve mevcut kuyrukları listelemek için çeşitli komut satırı araçları mevcuttur. Örneğin, RabbitMQ için rabbitmqadmin aracını kullanabiliriz.
  • AMQP istemci kütüphaneleri: AMQP istemci kütüphaneleri, hedef sistemdeki mesaj kuyruklarını keşfetmek için kullanılabilir. Örneğin, Python'da pika kütüphanesini kullanabiliriz.

Otomatik

AMQP hedef sistemdeki mesaj kuyruklarını otomatik olarak keşfetmek için çeşitli araçlar ve yöntemler mevcuttur. Bu araçlar ve yöntemler, hedef sistemdeki AMQP sunucusuna bağlanarak mevcut kuyrukları listeler.

AMQPScan

AMQPScan, hedef sistemdeki AMQP sunucusuna bağlanarak mevcut kuyrukları listeler. AMQPScan, Python tabanlı bir araçtır ve kullanımı oldukça basittir. Aşağıdaki komutu kullanarak AMQPScan aracını çalıştırabilirsiniz:

python amqp_scan.py <hedef_ip>

RabbitMQ Management API

RabbitMQ Management API, RabbitMQ sunucusuna HTTP üzerinden erişim sağlar ve mevcut kuyrukları listeler. API'ye erişmek için aşağıdaki URL'yi kullanabilirsiniz:

http://<hedef_ip>:15672/api/queues

Bu URL'ye GET isteği göndererek mevcut kuyrukları listeleyebilirsiniz. API, kullanıcı adı ve şifre gerektirebilir, bu nedenle kimlik doğrulama bilgilerini de sağlamanız gerekebilir.

Diğer Araçlar

Bunların yanı sıra, AMQP sunucusunda mevcut kuyrukları keşfetmek için diğer araçlar ve yöntemler de mevcuttur. Bu araçlar ve yöntemler, hedef sistemdeki AMQP sunucusuna bağlanarak mevcut kuyrukları listeler.

import amqp
#By default it uses default credentials "guest":"guest"
conn = amqp.connection.Connection(host="<IP>", port=5672, virtual_host="/")
conn.connect()
for k, v in conn.server_properties.items():
print(k, v)

Otomatik

AMQP (Advanced Message Queuing Protocol), mesaj tabanlı bir iletişim protokolüdür. AMQP, mesajların güvenli ve güvenilir bir şekilde iletilmesini sağlar. Bu protokol, birçok farklı uygulama arasında mesaj alışverişi yapmak için kullanılır.

AMQP, birçok farklı özelliği destekler. Bu özellikler arasında mesajların güvenli bir şekilde şifrelenmesi, mesajların güvenilir bir şekilde iletilmesi, mesajların yönlendirilmesi ve mesajların sıralı bir şekilde teslim edilmesi bulunur.

AMQP, birçok farklı uygulama tarafından kullanılan bir protokoldür. Bu uygulamalar arasında mesaj kuyruklama sistemleri, dağıtık sistemler ve mikro hizmetler yer alır.

AMQP, birçok farklı güvenlik zafiyeti içerebilir. Bu zafiyetler arasında kimlik doğrulama eksiklikleri, yetkilendirme hataları ve mesajların şifrelenmemesi bulunur. Bu zafiyetler, bir saldırganın AMQP protokolünü kullanarak bir sistemdeki mesajları ele geçirmesine veya değiştirmesine olanak tanır.

AMQP protokolünü pentest etmek için birkaç farklı yöntem vardır. Bu yöntemler arasında güvenlik açıklarını tespit etmek, kimlik doğrulama ve yetkilendirme mekanizmalarını test etmek ve mesajları ele geçirmek veya değiştirmek yer alır. Bu yöntemler, bir saldırganın AMQP protokolünü kullanarak bir sistemdeki zayıf noktaları tespit etmesine ve istismar etmesine olanak tanır.

nmap -sV -Pn -n -T4 -p 5672 --script amqp-info <IP>

PORT     STATE SERVICE VERSION
5672/tcp open  amqp    RabbitMQ 3.1.5 (0-9)
| amqp-info:
|   capabilities:
|     publisher_confirms: YES
|     exchange_exchange_bindings: YES
|     basic.nack: YES
|     consumer_cancel_notify: YES
|   copyright: Copyright (C) 2007-2013 GoPivotal, Inc.
|   information: Licensed under the MPL.  See http://www.rabbitmq.com/
|   platform: Erlang/OTP
|   product: RabbitMQ
|   version: 3.1.5
|   mechanisms: PLAIN AMQPLAIN
|_  locales: en_US

Brute Force

Diğer RabbitMQ portları

https://www.rabbitmq.com/networking.html adresinde rabbitmq'nun birkaç port kullandığını bulabilirsiniz:

Shodan

  • AMQP
Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'i desteklemenin diğer yolları: