Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
cowcloud — रीकॉन और भेद्यता स्कैनिंग कार्यभार वितरित करने के लिए Serverless AWS समाधान। वेब UI के माध्यम से कार्य सबमिट करें; EC2 वर्कर Nmap जैसे टूल्स के साथ कस्टम Python स्क्रिप्ट निष्पादित करते हैं। | Kitploit
उपकरण/GitHubGitHub/nccgroup/cowcloud
क्लाउड इन्फ्रास्ट्रक्चर सुरक्षाभेद्यता परीक्षण फ्रेमवर्कभेद्यता स्कैनरस्क्रिप्टिंग और स्वचालनजानकारी एकत्र करनाक्लाउड सुरक्षाDevSecOpsउपयोगिताएँ और फ्रेमवर्क
GitHubnccgroup/cowcloud

cowcloud

रीकॉन और भेद्यता स्कैनिंग कार्यभार वितरित करने के लिए Serverless AWS समाधान। वेब UI के माध्यम से कार्य सबमिट करें; EC2 वर्कर Nmap जैसे टूल्स के साथ कस्टम Python स्क्रिप्ट निष्पादित करते हैं।

6023 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें

CowCloud

AWS में वर्क-लोड वितरित करने के लिए एक सर्वरलेस समाधान

CowCloud मूल रूप से recon टूल्स और भेद्यता स्कैन को वितरित तरीके से चलाने के लिए बनाया गया था; उदाहरण के लिए, एक उपयोग-मामला बग बाउंटी शिकारियों द्वारा हो सकता है। यह समाधान अंतिम उपयोगकर्ताओं को AWS में वर्कलोड वितरित करने के लिए आवश्यक अंतर्निहित कार्य से अलग करने के लिए है। CowCloud उपयोगकर्ताओं को एक अनुकूल वेब इंटरफ़ेस प्रदान करता है जिससे वे नए कार्य देख और बना सकते हैं, जिन्हें बाद में worker nodes (EC2 instances) पर चल रहे Python कोड द्वारा उपभोग किया जाता है। यह इरादा है कि Python कोड के साथ-साथ EC2 AMIs को भी अनुकूलित किया जाएगा। उदाहरण के तौर पर, मान लीजिए आप Nmap स्कैन चलाना चाहते हैं। उस स्थिति में, आप AMI कैटलॉग से एक AMI चुन सकते हैं और Terraform/ec2_module/ec2_module.tf में image_id फ़ील्ड को अपडेट कर सकते हैं। फिर, Nmap स्कैन के तर्कों (-Pn, -p 443, आदि) को अनुकूलित करने के लिए ec2py/template.py फ़ाइल को अपडेट करना होगा। अंत में, Terraform/ec2_module/ec2_module.tf कॉन्फ़िगरेशन फ़ाइल में user_data फ़ील्ड को Nmap और उसकी निर्भरताओं को स्थापित करने के लिए अपडेट करना होगा।

एक अन्य विकल्प कई व्यावसायिक टूल्स को स्थापित करना और चलाना है; उस स्थिति में, आप अपना स्वयं का EC2 instance या snapshot बनाना चाह सकते हैं। इस मामले में आप सभी निर्भरताएँ स्थापित करेंगे और लाइसेंस सक्रिय करेंगे ताकि आप इस AMI को अपने workers के लिए gold image के रूप में उपयोग कर सकें।

Screenshot

CowCloud को तीन मुख्य घटकों में विभाजित किया जा सकता है:

  • एक Terraform कॉन्फ़िगरेशन
  • एक React JS फ्रंट-एंड
  • एक Python ऐप जो worker nodes पर चलता है

ये हैं मुख्य विशेषताएँ:

  • समाधान Amazon Cognito (user pool के साथ) का उपयोग करता है ताकि उपयोगकर्ता वेबऐप में साइन अप और साइन इन कर सकें
  • फ्रंट-एंड एप्लिकेशन के रूप में React JS ऐप। फ्रंट-एंड कार्यों और workers को प्रदर्शित करता है और आपको नए कार्य जोड़ने की अनुमति देता है।
  • CORS को संभालने और DynamoDB से जानकारी बनाने तथा प्राप्त करने के लिए कुछ Lambda फ़ंक्शनों के साथ इंटरैक्ट करने हेतु Lambda integration के साथ API gateway।
  • SSL और कैश प्रबंधित करने के लिए CloudFront।
  • वेबऐप तक पहुँच प्रतिबंधित करने के लिए नियमों और IP पता शर्तों वाला WAF (यह वैकल्पिक है)।
  • निष्पादन परिणामों और फ्रंट-एंड ऐप को संग्रहीत करने के लिए S3 buckets; Python ऐप के लिए एक अलग S3 bucket को code repository के रूप में उपयोग किया जाता है।
  • EC2 instances (workers) पर कार्य चलाने के लिए core के रूप में एक Python ऐप; टूल क्रियाओं को कई चरणों में विभाजित किया जा सकता है:
    • Python ऐप messages को consume करता है
    • स्कैन चलाता है
    • आउटपुट को compress करता है
    • और आउटपुट को AES256-CBC और एक पासवर्ड के साथ encrypt करता है
    • फिर परिणाम को S3 bucket में अपलोड करता है
  • हर बार जब एक नया worker बनता है, तो Python repository को S3 bucket से खींचा (pull) जाता है और फिर उसमें शामिल ec2py फ़ाइल निष्पादित की जाती है।
  • हर बार जब एक नया worker बनता है, तो instance को स्वचालित रूप से एक EIP सौंपा जा सकता है (यह वैकल्पिक है)।
  • विभिन्न स्रोतों जैसे Lambda त्रुटियाँ, ec2app Python टूल पर होने वाले अपवाद, API Gateway, Docker लॉग्स और बहुत कुछ से लॉग संग्रहीत करने के लिए CloudWatch logging groups।
  • किसी कार्य के चलते समय DynamoDB पर workers की स्थिति बदलने और workers को समाप्त होने से रोकने के लिए Lifecycle hooks।
  • कतारबद्ध कार्यों की संख्या और निर्धारित कॉन्फ़िगरेशन के आधार पर Autoscaling रणनीति (एल्गोरिदम कैसे काम करता है इसकी अधिक जानकारी autoscalingStrategy.py में पाई जा सकती है)।
  • डेटाबेस में आइटम बढ़ने या घटने पर autoscaling क्रियाओं को प्रबंधित करने के लिए DynamoDB में task table से जुड़ा Lambda event source mapping।
  • नए संदेशों (कार्यों) को SQS में भेजने के लिए SNS; इन संदेशों को बाद में worker nodes द्वारा पढ़ा जाता है।
  • retention_time समाप्त होने के बाद countdown बनाने और CloudWatch logging groups को हटाने के लिए Step functions सेवा का उपयोग किया जाता है।
  • यदि ec2py Docker कंटेनरों के अंदर टूल (जैसे Nmap) चलाता है, तो stdout को Cloudwatch में लॉग किया जा सकता है और फ्रंट-एंड के माध्यम से देखा जा सकता है; template.py फ़ाइल में वेरिएबल देखें (यह नीचे Administrator/maintainer अनुभाग में समझाया गया है)।

आरेख:

Deprecated

Terraform कॉन्फ़िगरेशन में निम्नलिखित विकल्प उपलब्ध हैं:

Terraform निष्पादित करने के परिणामस्वरूप, एक नई फ़ाइल (config.js) बनती है; इसमें React JS ऐप के लिए Cognito user pool directory के विरुद्ध प्रमाणीकरण हेतु आवश्यक कॉन्फ़िगरेशन होता है। इन्फ्रास्ट्रक्चर परिनियोजित होने के बाद, आपको React ऐप बनाना होगा और build फ़ोल्डर को अपलोड करना होगा। इसके अलावा, आपको Python कोड को एक S3 bucket में अपलोड करना होगा जो code repository के रूप में कार्य करता है। यह प्रक्रिया दो स्क्रिप्ट्स setup.bat और setup.sh में स्वचालित है, इसलिए आपको इसके बारे में चिंता करने की आवश्यकता नहीं है; यह केवल इस चरण को सारांशित करने के लिए है।


इंस्टॉलेशन चरण:

इन्फ्रास्ट्रक्चर डिफ़ॉल्ट रूप से us-east-1 क्षेत्र में परिनियोजित होता है, हालाँकि इसे Terraform फ़ोल्डर के भीतर locals.tf फ़ाइल में बदला जा सकता है।

चरण:

  • आपको अपने AWS खाते में व्यवस्थापक (admin) विशेषाधिकारों वाला एक उपयोगकर्ता बनाना चाहिए।
  • (वैकल्पिक) अपने इच्छित टूल्स के साथ एक ‘golden’ AMI बनाएँ।
  • Terraform फ़ोल्डर में जाएँ और variables.tf अपडेट करें; ami वेरिएबल को एक मौजूदा EC2 AMI की ओर इंगित करना होता है, जो आपका golden AMI या EC2 कैटलॉग में से एक हो सकता है।
  • अपने कंप्यूटर में aws-cli, NPM, Yarn और Terraform डाउनलोड और इंस्टॉल करें।
  • aws configure में अपने AWS खाते का उपयोग करने के लिए aws-cli कॉन्फ़िगर करें। यह कमांड चलाकर जाँचें कि आपने इसे सही ढंग से कॉन्फ़िगर किया है: aws sts get-caller-identity; सही ढंग से कॉन्फ़िगर होने पर इसे कोई त्रुटि नहीं लौटानी चाहिए।
  • (वैकल्पिक) EC2 instances के लिए एक SSH कुंजी जोड़ी बनाएँ। यदि आप workers में SSH करने की योजना नहीं बनाते हैं, तो ec2_module मॉड्यूल को तदनुसार अपडेट करें। aws ec2 create-key-pair –key-name cowCloud –query “cowCloud” –output text > ec2_module/cowCloud.pem
root@kitploit:~
git clone [email protected]:nccgroup/cowcloud.git
# Deploy the infra
cd cowcloud
cd Terraform
terraform init
terraform plan
terraform apply --auto-approve
  • Terraform आउटपुट में प्रदर्शित मान (website) पर ध्यान दें; यह फ्रंट-एंड तक पहुँचने का URL है।
  • एक बार इन्फ्रास्ट्रक्चर परिनियोजित हो जाने पर, आपको फ्रंट-एंड और ec2py कोड बनाने और अपलोड करने के लिए केवल setup.sh या setup.bat चलाने की आवश्यकता है।

अब आप शुरू करने के लिए तैयार हैं! साइन अप करें, साइन इन करें और एक नया कार्य बनाएँ!

अंतिम-उपयोगकर्ता प्रवाह

एक बार सब कुछ परिनियोजित हो जाने और फ्रंट-एंड सुलभ हो जाने पर, आपको इन चरणों का पालन करना चाहिए:

  • वेबसाइट पर जाएँ और sign in बटन पर क्लिक करें। (साइन अप करने के लिए आपको एक मान्य ईमेल, उपयोगकर्ता नाम और पासवर्ड जमा करना आवश्यक होगा।)
  • अपने ईमेल इनबॉक्स में प्राप्त लिंक पर क्लिक करके ईमेल सत्यापित करें।
  • ईमेल/उपयोगकर्ता नाम और पासवर्ड के साथ साइन इन करें।
  • “add a new task” नामक टैब पर क्लिक करें और लक्ष्य डोमेन निर्दिष्ट करने के लिए JSON दस्तावेज़ अपडेट करें तथा फॉर्म सबमिट करें; अब आपको एक task ID, एक लिंक और एक पासवर्ड प्राप्त होगा जो नीचे प्रदर्शित किया जाएगा।
  • डैशबोर्ड पर वापस जाएँ और देखें कि कैसे एक नया EC2 instance स्पिन अप होता है और कार्य worker node द्वारा निष्पादित होता है।
  • यदि कार्य Docker कंटेनर में निष्पादित होता है, तो stdout को वेब इंटरफ़ेस के माध्यम से देखा जा सकता है।
  • कार्य पूरा होने के बाद, कार्य archive table में स्थानांतरित कर दिया जाता है; अब आप दिए गए लिंक पर जा सकते हैं, परिणाम डाउनलोड कर सकते हैं, दिए गए पासवर्ड से उसे decrypt कर सकते हैं और टूल आउटपुट या परिणाम decompress कर सकते हैं CowCloud\ec2py> python .\decypt_file.py 2e8cf87c-5389-11ec-abec-d6d1f378b18d
  • कार्य पूरा होते ही worker स्वचालित रूप से समाप्त कर दिया जाता है।

Screenshot

व्यवस्थापक/अनुरक्षक

  • इन्फ्रास्ट्रक्चर को परिनियोजित करने और उसका रखरखाव करने वाले व्यक्ति को वेब ऐप के माध्यम से प्रदान किए गए अंतिम-उपयोगकर्ता इनपुट को उचित रूप से sanitise और validate करना होता है। दूसरे शब्दों में, सुनिश्चित करें कि ec2py/template.py में कोड OS command injection के प्रति संवेदनशील नहीं है। यह बिंदु इसलिए उजागर किया गया है क्योंकि यह सिस्टम का सबसे महत्वपूर्ण पहलू है। worker की अनुमतियों और एक्सपोज़र के दायरे को सीमित करने तथा संबंधित जोखिमों को कम करने के लिए विशेष ध्यान रखा गया है। फिर भी, सिस्टम सुरक्षा के इस पहलू का ध्यान रखना व्यवस्थापक की ज़िम्मेदारी है। EC2 instances प्रोफ़ाइल से जुड़ी role policies Terraform फ़ोल्डर के अंदर readme.md फ़ाइल में सूचीबद्ध हैं

    • इसके अलावा, workers_manager.py नामक एक Lambda फ़ंक्शन है जिसे अधिक विशेषाधिकार प्राप्त क्रियाएँ करने के लिए ec2py टूल द्वारा कॉल किया जाता है। इन क्रियाओं को Lambda फ़ंक्शन में स्थानांतरित किया गया था ताकि यदि कोई EC2 प्रोफ़ाइल से जुड़ी भूमिका की access key से समझौता कर ले तो जोखिम सीमित रहे। फिर भी यह IMDSv2 के साथ काम करता है। Lambda फ़ंक्शन workers_manager.py से जुड़ी role policies Terraform फ़ोल्डर के अंदर readme.md फ़ाइल में सूचीबद्ध हैं
  • यदि आप कार्य निष्पादित होने के दौरान stdout को कैप्चर करना चाहते हैं और उसे वेब इंटरफ़ेस के माध्यम से दिखाना चाहते हैं, तो ec2py/template.py पर जाएँ और इन चरणों का पालन करें::

    • extra_docker_params वेरिएबल में आपके Docker कंटेनरों द्वारा stdout को CloudWatch log groups में भेजने के लिए आवश्यक जानकारी शामिल होती है। जब आप फ्रंट-एंड के माध्यम से stdout देखना चाहते हैं, तो आपको इस वेरिएबल को कमांड लाइन में शामिल करना होगा।
    root@kitploit:~
    cmd = f"docker run {extra_docker_params} --rm -v {tmp_folder}target.txt:/root/Tools/reconftw/target.txt -v {tmp_folder}reconftw.cfg:/root/Tools/reconftw/reconftw.cfg -v {tmp_folder}Recon/:/root/Tools/reconftw/Recon/ six2dez/reconftw:main -l target.txt -w".split(' ')
    

अनइंस्टॉल

आप इस सरल कमांड को चलाकर इन्फ्रास्ट्रक्चर को नष्ट कर सकते हैं: terraform destroy --auto-approve यह सभी मौजूदा संसाधनों को हटा देगा। नोट: इस प्रक्रिया को बीच में न रोकें, क्योंकि इससे कुछ तत्व क्लाउड में बचे रह सकते हैं, जिन्हें आपको बाद में मैन्युअल रूप से पहचानकर हटाना होगा।


अंतिम-उपयोगकर्ता प्रवाह

Screenshot

मुख्य प्रवाह

Screenshot


डेव नोट्स

  • यदि आप ec2py ऐप में कोई बदलाव करते हैं, तो परिवर्तनों को S3 repo के साथ सिंक करना याद रखें; फिर आपको वर्तमान instances को समाप्त करना होगा और नवीनतम परिवर्तनों को pull करने के लिए नया instance पुनः लॉन्च करना होगा।
  • जब gateway मॉड्यूल का कोई घटक बदलता है, तो आपको REST API को पुनः परिनियोजित करने की आवश्यकता हो सकती है, ऐसा करने के लिए:
    • terraform destroy --auto-approve -target module.gateway_module.aws_api_gateway_deployment.lambda
    • terraform apply --auto-approve -target module.gateway_module

विशेष धन्यवाद:

  • Sabrina MM https://www.linkedin.com/in/sabrina-marisol-martinez-a4bb54181/
  • Ricardo Martinez Martin (NCC Group)
  • Conor McErlane (NCC Group)
  • Simon Harraghy (NCC Group)
टूल डाउनलोड करें
extra_docker_params
  • फ्रंट-एंड कार्यों को उनके निष्पादन के दौरान बाधित करने के लिए एक बटन और Docker कंटेनर लॉग देखने के लिए एक और बटन प्रदान करता है।
  • यदि आप फ्रंट-एंड कोड या ec2py फ़ोल्डरों में कुछ भी बदलना चाहते हैं, तो आपको उन परिवर्तनों को S3 buckets तक प्रचारित (propagate) करना होगा और फ्रंट-एंड के लिए कैश को अमान्य (invalidate) करना होगा; आप यह सब केवल setup.bat/sh निष्पादित करके कर सकते हैं।
  • variabledefault valuedescription
    eipenablefalseयदि true है, तो समाधान worker nodes के स्पिन अप होने पर उनसे जुड़े elastic IP addresses का एक pool आवंटित करता है। आरक्षित करने के लिए EIP की संख्या इस सूत्र से निकाली जाती हैsum([var.max_workers, var.maximum_number_of_terminating_machines])
    cidr_whitelist[]फ़ायरवॉल में केवल कुछ IP रेंज की अनुमति देने के लिए CIDR whitelist। उदा. ["195.95.131.0/24"]
    max_workers and max_queued_tasks_per_workermax_workers: 3, max_queued_tasks_per_worker: 10ये दो सेटिंग्स यह निर्धारित करती हैं कि कब scale in या scale out करना है, उदा. max_workers 3, max_queued_tasks_per_worker 10। इसका मतलब है कि यदि कार्यों की संख्या दस से अधिक हो जाती है, तो एक नया EC2 instance बनाया जाएगा। यदि बीस से अधिक कार्य हैं, तो वर्कलोड वितरित करने के लिए अधिकतम तीन EC2 instances उपलब्ध होंगे (इस स्क्रिप्ट में मौजूद एल्गोरिदम देखें Terraform/dynamodb_module/autoscalingTool/autoscalingStrategy.py)।
    maximum_number_of_terminating_machines2यह उन instances की संख्या परिभाषित करता है जिन्हें समाप्त करने के लिए निर्धारित किया गया है लेकिन process/scan द्वारा कार्य पूरा होने तक रोके रखा जाता है।
    heartbeat_timeout900यह उस समय को परिभाषित करता है जब तक वे workers रोके रहते हैं। इस समय की समाप्ति के बाद, worker को जबरन समाप्त कर दिया जाएगा।
    instance_typet2.microhttps://aws.amazon.com/ec2/instance-types/
    aminullhttps://aws.amazon.com/es/amazon-linux-ami/
    retention_time7लॉग्स के लिए retention time (दिन) और archive table आइटम्स (पूर्ण किए गए कार्यों) की समाप्ति निर्धारित करें।