diff --git a/hacktricks-preprocessor.py b/hacktricks-preprocessor.py index 7a4dd84a1..0077da80f 100644 --- a/hacktricks-preprocessor.py +++ b/hacktricks-preprocessor.py @@ -1,4 +1,5 @@ import json +import os import sys import re import logging @@ -26,7 +27,7 @@ def findtitle(search ,obj, key, path=(),): def ref(matchobj): - logger.debug(f'Match: {matchobj.groups(0)[0].strip()}') + logger.debug(f'Ref match: {matchobj.groups(0)[0].strip()}') href = matchobj.groups(0)[0].strip() title = href if href.startswith("http://") or href.startswith("https://"): @@ -69,8 +70,39 @@ def ref(matchobj): return result +def files(matchobj): + logger.debug(f'Files match: {matchobj.groups(0)[0].strip()}') + href = matchobj.groups(0)[0].strip() + title = "" + + try: + for root, dirs, files in os.walk(os.getcwd()+'/src/files'): + logger.debug(root) + logger.debug(files) + if href in files: + title = href + logger.debug(f'File search result: {os.path.join(root, href)}') + + except Exception as e: + logger.debug(e) + logger.debug(f'Error searching file: {href}') + print(f'Error searching file: {href}') + sys.exit(1) + + if title=="": + logger.debug(f'Error searching file: {href}') + print(f'Error searching file: {href}') + sys.exit(1) + + template = f"""{title}""" + + result = template + + return result + + def add_read_time(content): - regex = r'(# .*(?=\n))' + regex = r'(<\/style>\n# .*(?=\n))' new_content = re.sub(regex, lambda x: x.group(0) + "\n\nReading time: {{ #reading_time }}", content) return new_content @@ -104,6 +136,8 @@ if __name__ == '__main__': current_chapter = chapter regex = r'{{[\s]*#ref[\s]*}}(?:\n)?([^\\\n]*)(?:\n)?{{[\s]*#endref[\s]*}}' new_content = re.sub(regex, ref, chapter['content']) + regex = r'{{[\s]*#file[\s]*}}(?:\n)?([^\\\n]*)(?:\n)?{{[\s]*#endfile[\s]*}}' + new_content = re.sub(regex, files, chapter['content']) new_content = add_read_time(new_content) chapter['content'] = new_content diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/iam-passrole-codestar-createproject.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/iam-passrole-codestar-createproject.md index 5d560e9c4..5a48cec75 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/iam-passrole-codestar-createproject.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/iam-passrole-codestar-createproject.md @@ -2,9 +2,9 @@ {{#include ../../../../banners/hacktricks-training.md}} -इन अनुमतियों के साथ आप **codestar IAM Role** का **दुरुपयोग** करके **मनमाने कार्य** कर सकते हैं **cloudformation template** के माध्यम से। +इन अनुमतियों के साथ आप **codestar IAM Role** का **दुरुपयोग** कर सकते हैं ताकि **मनमाने कार्य** को **cloudformation template** के माध्यम से किया जा सके। -इसका लाभ उठाने के लिए आपको एक **S3 बकेट बनानी होगी जो** हमले किए गए खाते से **सुलभ** हो। एक फ़ाइल अपलोड करें जिसका नाम `toolchain.json` हो। इस फ़ाइल में **cloudformation template exploit** होना चाहिए। निम्नलिखित का उपयोग किया जा सकता है ताकि एक प्रबंधित नीति को आपके नियंत्रण में एक उपयोगकर्ता पर सेट किया जा सके और **उसे व्यवस्थापक अनुमतियाँ दी जा सकें**: +इसका लाभ उठाने के लिए आपको एक **S3 बकेट बनानी होगी जो** हमले किए गए खाते से **सुलभ** हो। एक फ़ाइल अपलोड करें जिसका नाम `toolchain.json` हो। इस फ़ाइल में **cloudformation template exploit** होना चाहिए। निम्नलिखित का उपयोग किया जा सकता है ताकि आपके नियंत्रण में एक उपयोगकर्ता को प्रबंधित नीति दी जा सके और **उसे प्रशासनिक अनुमतियाँ** दी जा सकें: ```json:toolchain.json { "Resources": { @@ -30,11 +30,13 @@ ``` इस `empty zip` फ़ाइल को **bucket** में भी **upload** करें: -{% file src="../../../../images/empty.zip" %} +{{#file}} +empty.zip +{{#endfile}} याद रखें कि **दोनों फ़ाइलों के साथ bucket पीड़ित खाते द्वारा सुलभ होना चाहिए**। -दोनों चीजें **upload** करने के बाद, आप अब **exploitation** करते हुए एक **codestar** प्रोजेक्ट बना सकते हैं: +दोनों चीजें अपलोड करने के बाद, आप अब **exploitation** करते हुए एक **codestar** प्रोजेक्ट बना सकते हैं: ```bash PROJECT_NAME="supercodestar" @@ -79,6 +81,6 @@ aws codestar create-project \ --source-code file://$SOURCE_CODE_PATH \ --toolchain file://$TOOLCHAIN_PATH ``` -यह एक्सप्लॉइट **इन विशेषाधिकारों के लिए Pacu एक्सप्लॉइट** पर आधारित है: [https://github.com/RhinoSecurityLabs/pacu/blob/2a0ce01f075541f7ccd9c44fcfc967cad994f9c9/pacu/modules/iam\_\_privesc_scan/main.py#L1997](https://github.com/RhinoSecurityLabs/pacu/blob/2a0ce01f075541f7ccd9c44fcfc967cad994f9c9/pacu/modules/iam__privesc_scan/main.py#L1997) इसमें आप एक भूमिका के लिए एक व्यवस्थापक प्रबंधित नीति बनाने का एक भिन्नता पा सकते हैं, उपयोगकर्ता के बजाय। +यह एक्सप्लॉइट **इन विशेषाधिकारों के लिए Pacu एक्सप्लॉइट** पर आधारित है: [https://github.com/RhinoSecurityLabs/pacu/blob/2a0ce01f075541f7ccd9c44fcfc967cad994f9c9/pacu/modules/iam\_\_privesc_scan/main.py#L1997](https://github.com/RhinoSecurityLabs/pacu/blob/2a0ce01f075541f7ccd9c44fcfc967cad994f9c9/pacu/modules/iam__privesc_scan/main.py#L1997) इसमें आप एक भूमिका के लिए एक व्यवस्थापक प्रबंधित नीति बनाने का एक भिन्नता पा सकते हैं, न कि एक उपयोगकर्ता के लिए। {{#include ../../../../banners/hacktricks-training.md}}