From 1fa4bfa885ec8992300df5c6e1cfca54277e9a8b Mon Sep 17 00:00:00 2001 From: CPol Date: Sun, 1 Aug 2021 15:57:36 +0000 Subject: [PATCH] GitBook: [master] 9 pages and one asset modified --- .../image (253) (1) (2) (1) (1) (2).png | Bin 0 -> 41079 bytes SUMMARY.md | 2 +- about-the-author.md | 4 +- cloud-security/cloud-security-review.md | 12 ++--- .../android-app-pentesting/README.md | 50 ++++++++---------- phishing-methodology/README.md | 16 +++--- 6 files changed, 39 insertions(+), 45 deletions(-) create mode 100644 .gitbook/assets/image (253) (1) (2) (1) (1) (2).png diff --git a/.gitbook/assets/image (253) (1) (2) (1) (1) (2).png b/.gitbook/assets/image (253) (1) (2) (1) (1) (2).png new file mode 100644 index 0000000000000000000000000000000000000000..b2fe24f436b209350f0a6770c78f15782269b389 GIT binary patch literal 41079 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 Jl`($xzW^5IC^Y~8 literal 0 HcmV?d00001 diff --git a/SUMMARY.md b/SUMMARY.md index c938184e9..ee48424f2 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -139,7 +139,7 @@ * [content:// protocol](mobile-apps-pentesting/android-app-pentesting/content-protocol.md) * [Drozer Tutorial](mobile-apps-pentesting/android-app-pentesting/drozer-tutorial/README.md) * [Exploiting Content Providers](mobile-apps-pentesting/android-app-pentesting/drozer-tutorial/exploiting-content-providers.md) - * [Exploiting a debuggable application](mobile-apps-pentesting/android-app-pentesting/exploiting-a-debuggeable-applciation.md) + * [Exploiting a debuggeable applciation](mobile-apps-pentesting/android-app-pentesting/exploiting-a-debuggeable-applciation.md) * [Frida Tutorial](mobile-apps-pentesting/android-app-pentesting/frida-tutorial/README.md) * [Frida Tutorial 1](mobile-apps-pentesting/android-app-pentesting/frida-tutorial/frida-tutorial-1.md) * [Frida Tutorial 2](mobile-apps-pentesting/android-app-pentesting/frida-tutorial/frida-tutorial-2.md) diff --git a/about-the-author.md b/about-the-author.md index 135a1d024..0ad8f853a 100644 --- a/about-the-author.md +++ b/about-the-author.md @@ -4,7 +4,7 @@ This is **Carlos Polop**. -First of all, I want to indicate that **I don't own this entire book**, a lot of **information was copy/pasted from other websites and that content belongs to them** \(this is indicated on the copy/pasted content\). +First of all, I want to indicate that **I don't own this entire book**, a lot of **information was copy/pasted from other websites and that content belongs to them** \(this is indicated on the pages\). I also wants to say **thanks to all the people that share cyber-security related information for free** on the Internet. Thanks to them I learn new hacking techniques that then I add to Hacktricks. @@ -12,7 +12,7 @@ I also wants to say **thanks to all the people that share cyber-security related If for some weird reason you are interested in knowing about my bio here you have a summary: -* I've worked in different companies as sysadmin, developer and **pentester** \(which is my current role\). +* I've worked in different companies as sysadmin, developer and **pentester**. * I'm a **Telecommunications Engineer** with a **Masters** in **Cybersecurity** * Relevant certifications: **OSCP, OSWE**, **CRTP, eMAPT, eWPTXv2** and Professional Drone pilot. * I speak **Spanish** and **English** and little of French \(some day I will improve that\). diff --git a/cloud-security/cloud-security-review.md b/cloud-security/cloud-security-review.md index 2e576d3e0..396c5a40e 100644 --- a/cloud-security/cloud-security-review.md +++ b/cloud-security/cloud-security-review.md @@ -16,7 +16,7 @@ pip3 install scoutsuite ### [cs-suite](https://github.com/SecurityFTW/cs-suite) -AWS, GCP, Azure, DigitalOcean +AWS, GCP, Azure, DigitalOcean ```text git clone https://github.com/SecurityFTW/cs-suite.git && cd cs-suite/ @@ -43,13 +43,13 @@ Take a look to the **network access rules** and detect if the services are corre ## Azure Access the portal here: [http://portal.azure.com/](http://portal.azure.com/) -To start the tests you should have access with a user with **Reader permissions over the subscription** and **Global Reader role in AzureAD**. If even in that case you are **not able to access the content of the Storage accounts** you can fix it with the **role Storage Account Contributor**. +To start the tests you should have access with a user with **Reader permissions over the subscription** and **Global Reader role in AzureAD**. If even in that case you are **not able to access the content of the Storage accounts** you can fix it with the **role Storage Account Contributor**. It is recommended to **install azure-cli** in a **linux** and **windows** virtual machines \(to be able to run powershell and python scripts\): [https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest) Then, run `az login` to login. Note the **account information** and **token** will be **saved** inside _<HOME>/.azure_ \(in both Windows and Linux\). Remember that if the **Security Centre Standard Pricing Tier** is being used and **not** the **free** tier, you can **generate** a **CIS compliance scan report** from the azure portal. Go to _Policy & Compliance-> Regulatory Compliance_ \(or try to access [https://portal.azure.com/\#blade/Microsoft\_Azure\_Security/SecurityMenuBlade/22](https://portal.azure.com/#blade/Microsoft_Azure_Security/SecurityMenuBlade/22)\). -__If the company is not paying for a Standard account you may need to review the **CIS Microsoft Azure Foundations Benchmark** by "hand" \(you can get some help using the following tools\). Download it from [**here**](https://www.newnettechnologies.com/cis-benchmark.html?keyword=&gclid=Cj0KCQjwyPbzBRDsARIsAFh15JYSireQtX57C6XF8cfZU3JVjswtaLFJndC3Hv45YraKpLVDgLqEY6IaAhsZEALw_wcB#microsoft-azure). +\_\_If the company is not paying for a Standard account you may need to review the **CIS Microsoft Azure Foundations Benchmark** by "hand" \(you can get some help using the following tools\). Download it from [**here**](https://www.newnettechnologies.com/cis-benchmark.html?keyword=&gclid=Cj0KCQjwyPbzBRDsARIsAFh15JYSireQtX57C6XF8cfZU3JVjswtaLFJndC3Hv45YraKpLVDgLqEY6IaAhsZEALw_wcB#microsoft-azure). ### Run scanners @@ -94,7 +94,9 @@ azscan #Run, login before with `az login` * **Standard tier** is recommended instead of free tier \(see the tier being used in _Pricing & Settings_ or in [https://portal.azure.com/\#blade/Microsoft\_Azure\_Security/SecurityMenuBlade/24](https://portal.azure.com/#blade/Microsoft_Azure_Security/SecurityMenuBlade/24)\) * **Periodic SQL servers scans**: + _Select the SQL server_ --> _Make sure that 'Advanced data security' is set to 'On'_ --> _Under 'Vulnerability assessment settings', set 'Periodic recurring scans' to 'On', and configure a storage account for storing vulnerability assessment scan results_ --> _Click Save_ + * **Lack of App Services restrictions**: Look for "App Services" in Azure \([https://portal.azure.com/\#blade/HubsExtension/BrowseResource/resourceType/Microsoft.Web%2Fsites](https://portal.azure.com/#blade/HubsExtension/BrowseResource/resourceType/Microsoft.Web%2Fsites)\) and check if anyone is being used. In that case check go through each App checking for "Access Restrictions" and there aren't rules, report it. The access to the app service should be restricted according to the needs. ## Office365 @@ -105,7 +107,3 @@ You need **Global Admin** or at least **Global Admin Reader** \(but note that Gl Get objects in graph: [https://github.com/FSecureLABS/awspx](https://github.com/FSecureLABS/awspx) - - - - diff --git a/mobile-apps-pentesting/android-app-pentesting/README.md b/mobile-apps-pentesting/android-app-pentesting/README.md index 82d06e3fe..56bf3a2c1 100644 --- a/mobile-apps-pentesting/android-app-pentesting/README.md +++ b/mobile-apps-pentesting/android-app-pentesting/README.md @@ -19,7 +19,7 @@ It's highly recommended to start reading this page to know about the **most impo This is the main tool you need to connect to an android device \(emulated or physical\). It allows you to control your device over **USB** or **Network** from a computer, **copy** files back and forth, **install** and uninstall apps, run **shell** commands, perform **backups**, read **logs** and more. -Take a look to the following list of [**ADB Commands**](adb-commands.md) ****to learn how to use adb. +Take a look to the following list of [**ADB Commands**](adb-commands.md) _\*\*_to learn how to use adb. ## Smali @@ -54,7 +54,7 @@ Reading the **manifest** you can find **vulnerabilities**: * **Backup**: The **`android:allowBackup`** attribute defines whether application data can be backed up and restored by a user who has enabled usb debugging. If backup flag is set to true, it allows an attacker to take the backup of the application data via adb even if the device is not rooted. Therefore applications that handle and store sensitive information such as card details, passwords etc. should have this setting explicitly set to **false** because by default it is set to **true** to prevent such risks. * ` formation-software.co.uk ` + * ` formation-software.co.uk ` * **Exported activities**: Check for exported activities inside the manifest as this could be dangerous. Later in the dynamic analysis it will be explained how [you can abuse this behaviour](./#exploiting-exported-activities-authorisation-bypass). * **Content Providers**: If an exported provider is being exposed, you could b able to access/modify interesting information. In dynamic analysis [you will learn how to abuse them](./#exploiting-content-providers-accessing-and-manipulating-sensitive-information). * Check for **FileProviders** configurations inside the attribute `android:name="android.support.FILE_PROVIDER_PATHS"`. [Read here to learn more about FileProviders](./#fileprovider). @@ -87,7 +87,7 @@ android:filterTouchesWhenObscured=** "true"**> ``` You can use [**qark**](https://github.com/linkedin/qark) with the `--exploit-apk` parameter to create a malicious application to test for possible **Tapjacking** vulnerabilities. -A example project implementing this kind of feature can be fund in [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp). +A example project implementing this kind of feature can be fund in [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp). The mitigation is relatively simple as the developer may choose not to receive touch events when a view is covered by another. Using the [Android Developer’s Reference](https://developer.android.com/reference/android/view/View#security): @@ -188,12 +188,12 @@ Thanks to the ADB connection you can use **Drozer** and **Frida** inside the emu ### Local Dynamic Analysis -You can use some **emulator** like: +You can use some **emulator** like: * [**Android Studio**](https://developer.android.com/studio) **\(**You can create **x86** and **arm** devices, and according to [**this** ](https://android-developers.googleblog.com/2020/03/run-arm-apps-on-android-emulator.html)**latest x86** versions **support ARM libraries** without needing an slow arm emulator\). * If you want to try to **install** an **image** and then you want to **delete it** you can do that on Windows:`C:\Users\\AppData\Local\Android\sdk\system-images\` or Mac: `/Users/myeongsic/Library/Android/sdk/system-image` * This is the **main emulator I recommend to use and you can**[ **learn to set it up in this page**](avd-android-virtual-device.md). -* \*\*\*\*[**Genymotion**](https://www.genymotion.com/fun-zone/) ****\(_Free version: **Personal Edition**, you need to **create** an **account**._\) +* \*\*\*\*[**Genymotion**](https://www.genymotion.com/fun-zone/) **\*\*\(\_Free version:** Personal Edition**, you need to** create **an** account\*\*.\_\) * \*\*\*\*[Nox](https://es.bignox.com/) \(Free, but it doesn't support Frida or Drozer\). {% hint style="info" %} @@ -204,7 +204,7 @@ As most people will use **Genymotion**, note this trick. To **install google ser ![](../../.gitbook/assets/image%20%28100%29.png) -Also, notice that in the **configuration of the Android VM in Genymotion** you can select **Bridge Network mode** \(this will be useful if you will be connecting to the Android VM from a different VM with the tools\). +Also, notice that in the **configuration of the Android VM in Genymotion** you can select **Bridge Network mode** \(this will be useful if you will be connecting to the Android VM from a different VM with the tools\). Or you could use a **physical** **device** \(you need to activate the debugging options and it will be cool if you can root it\): @@ -214,14 +214,12 @@ Or you could use a **physical** **device** \(you need to activate the debugging 4. Press **Build number** 7 times. 5. Go back and you will find the **Developer options**. - - -> Once you have installed the application, the first thing you should do is to try it and investigate what does it do, how does it work and get comfortable with it. +> Once you have installed the application, the first thing you should do is to try it and investigate what does it do, how does it work and get comfortable with it. > I will suggest to **perform this initial dynamic analysis using MobSF dynamic analysis + pidcat**, so will will be able to **learn how the application works** while MobSF **capture** a lot of **interesting** **data** you can review later on. ### Unintended Data Leakage -#### Logging +#### Logging Often Developers leave debugging information publicly. So any application with `READ_LOGS` permission can **access those logs** and can gain sensitive information through that. While navigating through the application use [**pidcat**](https://github.com/JakeWharton/pidcat)_\(Recommended, it's easier to use and read_\) or [adb logcat](adb-commands.md#logcat) to read the created logs and **look for sensitive information**. @@ -261,7 +259,7 @@ Drozer is s useful tool to **exploit exported activities, exported services and ### Exploiting exported Activities \*\*\*\*[**Read this if you want to remind what is an Android Activity.**](android-applications-basics.md#launcher-activity-and-other-activities) -****Also remember that the code of an activity starts with the `onCreate` method. +_\*\*_Also remember that the code of an activity starts with the `onCreate` method. #### Authorisation bypass @@ -296,15 +294,15 @@ Content providers are basically used to **share data**. If an app has available ### **Exploiting Services** [**Read this if you want to remind what is a Service.**](android-applications-basics.md#services) -****Remember that a the actions of a Service start in the method `onStartCommand`. +_\*\*_Remember that a the actions of a Service start in the method `onStartCommand`. -As service is basically something that **can receive data**, **process** it and **returns** \(or not\) a response. Then, if an application is exporting some services you should **check** the **code** to understand what is it doing and **test** it **dynamically** for extracting confidential info, bypassing authentication measures... +As service is basically something that **can receive data**, **process** it and **returns** \(or not\) a response. Then, if an application is exporting some services you should **check** the **code** to understand what is it doing and **test** it **dynamically** for extracting confidential info, bypassing authentication measures... [**Learn how to exploit Services with Drozer.**](drozer-tutorial/#services)\*\*\*\* ### **Exploiting Broadcast Receivers** [**Read this if you want to remind what is a Broadcast Receiver.**](android-applications-basics.md#broadcast-receivers) -****Remember that a the actions of a Broadcast Receiver start in the method `onReceive`. +_\*\*_Remember that a the actions of a Broadcast Receiver start in the method `onReceive`. A broadcast receiver will be waiting for a type of message. Depending on ho the receiver handles the message it could be vulnerable. [**Learn how to exploit Broadcast Receivers with Drozer.**](./#exploiting-broadcast-receivers) @@ -339,7 +337,7 @@ Every time you find a deep link check that i**t's not receiving sensitive data \ #### Parameters in path -You **must check also if any deep link is using a parameter inside the path** of the URL like: `https://api.example.com/v1/users/{username}` , in that case you can force a path traversal accessing something like: `example://app/users?username=../../unwanted-endpoint%3fparam=value` . +You **must check also if any deep link is using a parameter inside the path** of the URL like: `https://api.example.com/v1/users/{username}` , in that case you can force a path traversal accessing something like: `example://app/users?username=../../unwanted-endpoint%3fparam=value` . Note that if you find the correct endpoints inside the application you may be able to cause a **Open Redirect** \(if part of the path is used as domain name\), **account takeover** \(if you can modify users details without CSRF token and the vuln endpoint used the correct method\) and any other vuln. More [info about this here](http://dphoeniixx.com/2020/12/13-2/). #### More examples @@ -366,7 +364,7 @@ It's recommended to **apply SSL Pinning** for the sites where sensitive informat First of all, you should \(must\) **install the certificate** of the **proxy** tool that you are going to use, probably Burp. If you don't install the CA certificate of the proxy tool, you probably aren't going to see the encrypted traffic in the proxy. **Please,** [**read this guide to learn how to do install a custom CA certificate**](android-burp-suite-settings.md)**.** -For applications targeting **API Level 24+ it isn't enough to install the Burp CA** certificate in the device. To bypass this new protection you need to modify the Network Security Config file. So, you could modify this file to authorise your CA certificate or you can ****[**read this page for a tutorial on how to force the application to accept again all the installed certificate sin the device**](make-apk-accept-ca-certificate.md)**.** +For applications targeting **API Level 24+ it isn't enough to install the Burp CA** certificate in the device. To bypass this new protection you need to modify the Network Security Config file. So, you could modify this file to authorise your CA certificate or you can **\*\*\[**read this page for a tutorial on how to force the application to accept again all the installed certificate sin the device**\]\(make-apk-accept-ca-certificate.md\)**.\*\* #### SSL Pinning @@ -395,15 +393,13 @@ If you want to pentest Android applications you need to know how to use Frida.** ### **Android Application Analyzer** -This tool could help you managing different tools during the dynamic analysis: [https://github.com/NotSoSecure/android\_application\_analyzer](https://github.com/NotSoSecure/android_application_analyzer) +This tool could help you managing different tools during the dynamic analysis: [https://github.com/NotSoSecure/android\_application\_analyzer](https://github.com/NotSoSecure/android_application_analyzer) ### Intent Injection -This vulnerability resembles **Open Redirect in web security**. Since class `Intent` is `Parcelable`, **objects belonging to this class** can be **passed** as **extra** **data** in another `Intent` object. -Many developers make **use** of this **feature** and create **proxy** **components** \(activities, broadcast receivers and services\) that **take an embedded Intent and pass it to dangerous methods** like `startActivity(...)`, `sendBroadcast(...)`, etc. -This is dangerous because **an attacker can force the app to launch a non-exported component that cannot be launched directly from another app**, or to grant the attacker access to its content providers. **`WebView`** also sometimes changes a **URL from a string to an `Intent`** object, using the `Intent.parseUri(...)` method, and passes it to `startActivity(...)`. - - +This vulnerability resembles **Open Redirect in web security**. Since class `Intent` is `Parcelable`, **objects belonging to this class** can be **passed** as **extra** **data** in another `Intent` object. +Many developers make **use** of this **feature** and create **proxy** **components** \(activities, broadcast receivers and services\) that **take an embedded Intent and pass it to dangerous methods** like `startActivity(...)`, `sendBroadcast(...)`, etc. +This is dangerous because **an attacker can force the app to launch a non-exported component that cannot be launched directly from another app**, or to grant the attacker access to its content providers. **`WebView`** also sometimes changes a **URL from a string to an `Intent`** object, using the `Intent.parseUri(...)` method, and passes it to `startActivity(...)`. ### Android Client Side Injections and others @@ -433,7 +429,7 @@ docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest Notice that MobSF can analyse **Android**\(apk\)**, IOS**\(ipa\) **and Windows**\(apx\) applications \(_Windows applications must be analyzed from a MobSF installed in a Windows host_\). Also, if you create a **ZIP** file with the source code if an **Android** or an **IOS** app \(go to the root folder of the application, select everything and create a ZIPfile\), it will be able to analyse it also. -MobSF also allows you to **diff/Compare** analysis and to integrate **VirusTotal** \(you will need to set your API key in _MobSF/settings.py_ and enable it: `VT_ENABLED = TRUE` `VT_API_KEY = ` `VT_UPLOAD = TRUE`\). You can also set `VT_UPLOAD` to `False`, then the **hash** will be **upload** instead of the file. +MobSF also allows you to **diff/Compare** analysis and to integrate **VirusTotal** \(you will need to set your API key in _MobSF/settings.py_ and enable it: `VT_ENABLED = TRUE` `VT_API_KEY = ` `VT_UPLOAD = TRUE`\). You can also set `VT_UPLOAD` to `False`, then the **hash** will be **upload** instead of the file. ### Assisted Dynamic analysis with MobSF @@ -483,7 +479,7 @@ receivers **HTTP tools** When http traffic is capture you can see an ugly view of the captured traffic on "**HTTP\(S\) Traffic**" bottom or a nicer view in "**Start HTTPTools**" green bottom. From the second option, you can **send** the **captured requests** to **proxies** like Burp or Owasp ZAP. -To do so, _power on Burp -->_ _turn off Intercept --> in MobSB HTTPTools select the request_ --> press "**Send to Fuzzer**" --> _select the proxy address_ \(http://127.0.0.1:8080\). +To do so, _power on Burp -->_ _turn off Intercept --> in MobSB HTTPTools select the request_ --> press "**Send to Fuzzer**" --> _select the proxy address_ \([http://127.0.0.1:8080\](http://127.0.0.1:8080\)\). Once you finish the dynamic analysis with MobSF you can press on "**Start Web API Fuzzer**" to **fuzz http requests** an look for vulnerabilities. @@ -565,7 +561,7 @@ StaCoAn is a **crossplatform** tool which aids developers, bugbounty hunters and The concept is that you drag and drop your mobile application file \(an .apk or .ipa file\) on the StaCoAn application and it will generate a visual and portable report for you. You can tweak the settings and wordlists to get a customized experience. -Download[ latest release](https://github.com/vincentcox/StaCoAn/releases): +Download[ latest release](https://github.com/vincentcox/StaCoAn/releases): ```text ./stacoan @@ -614,7 +610,7 @@ Useful to detect malware: [https://koodous.com/](https://koodous.com/) ## Obfuscating/Deobfuscating code -Note that depending the service and configuration you use to obfuscate the code. Secrets may or may not ended obfuscated. +Note that depending the service and configuration you use to obfuscate the code. Secrets may or may not ended obfuscated. ### [ProGuard](https://en.wikipedia.org/wiki/ProGuard_%28software%29) @@ -650,7 +646,7 @@ AndroL4b is an Android security virtual machine based on ubuntu-mate includes th ### OWASP -{% embed url="https://github.com/OWASP/owasp-mstg%0Ahttps://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06g-testing-network-communication" %} +{% embed url="https://github.com/OWASP/owasp-mstg%0Ahttps://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06g-testing-network-communication" caption="" %} ### Git Repos diff --git a/phishing-methodology/README.md b/phishing-methodology/README.md index 28a7d91ce..5205d2f7a 100644 --- a/phishing-methodology/README.md +++ b/phishing-methodology/README.md @@ -88,8 +88,8 @@ Moreover, don't forget that if the users use **any web portal to access their ma You can download it from [https://github.com/gophish/gophish/releases/tag/v0.11.0](https://github.com/gophish/gophish/releases/tag/v0.11.0) -Download and decompress it inside `/opt/gophish` and execute `/opt/gophish/gophish` -You will be given a password for the admin user in port 3333 in the output. Therefore, access that port and use those credentials to change the admin password. You may need to tunnel that port to local: +Download and decompress it inside `/opt/gophish` and execute `/opt/gophish/gophish` +You will be given a password for the admin user in port 3333 in the output. Therefore, access that port and use those credentials to change the admin password. You may need to tunnel that port to local: ```bash ssh -L 333:127.0.0.1:3333 @ @@ -119,7 +119,7 @@ cp "/etc/letsencrypt/live/$DOMAIN/fullchain.pem" /opt/gophish/ssl_keys/key.crt #### Mail configuration -Start installing: `apt-get install postfix` +Start installing: `apt-get install postfix` Then add the domain to the following files: @@ -129,12 +129,12 @@ Then add the domain to the following files: **Change also the values of the following variables inside /etc/postfix/main.cf** -`myhostname = +`myhostname = mydestination = $myhostname, , localhost.com, localhost` Finally modify the files **`/etc/hostname`** and **`/etc/mailname`** to your domain name and **restart your VPS.** -Now, create a **DNS A record** of `mail.` pointing to the **ip address** of the VPS and a **DNS MX** record pointing to `mail.` +Now, create a **DNS A record** of `mail.` pointing to the **ip address** of the VPS and a **DNS MX** record pointing to `mail.` Now lets test to send an email: @@ -242,7 +242,7 @@ service gophish stop ### Wait The older a domain is the less probable it's going to be caught as spam. Then you should wait as much time as possible \(at least 1week\) before the phishing assessment. -Note that even if you have to wait a week you can finish configuring everything now. +Note that even if you have to wait a week you can finish configuring everything now. ### Configure Reverse DNS \(rDNS\) record @@ -356,7 +356,7 @@ I would recommend to **send the test emails to 10min mails addresses** in order ```markup - +

Dear {{.FirstName}} {{.LastName}},

@@ -374,7 +374,7 @@ WRITE HERE SOME SIGNATURE OF SOMEONE FROM THE COMPANY ``` -Note that **in order to increase the credibility of the email**, it's recommended to use some signature from an email from the client. Suggestions: +Note that **in order to increase the credibility of the email**, it's recommended to use some signature from an email from the client. Suggestions: * Send an email to a **non existent address** and check if the response has any signature. * Search for **public emails** like info@ex.com or press@ex.com or public@ex.com and send them an email and wait for the response.