<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Out of scope]]></title><description><![CDATA[Out of scope]]></description><link>https://yechiel.xyz</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Apr 2026 00:01:15 GMT</lastBuildDate><atom:link href="https://yechiel.xyz/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Proxy Like a Pro: interesting method of proxying non proxy-aware Android Apps]]></title><description><![CDATA[In this blog post, we'll explore several methods to enable proxying for Android apps that do not natively support proxies. We'll cover regular methods like Wi-Fi settings, ADB commands, and Frida scripts, and then delve into more advanced techniques ...]]></description><link>https://yechiel.xyz/proxy-like-a-pro-interesting-method-of-proxying-non-proxy-aware-android-apps</link><guid isPermaLink="true">https://yechiel.xyz/proxy-like-a-pro-interesting-method-of-proxying-non-proxy-aware-android-apps</guid><dc:creator><![CDATA[Yechiel]]></dc:creator><pubDate>Mon, 20 Jan 2025 13:54:15 GMT</pubDate><content:encoded><![CDATA[<p>In this blog post, we'll explore several methods to enable proxying for Android apps that do not natively support proxies. We'll cover regular methods like Wi-Fi settings, ADB commands, and Frida scripts, and then delve into more advanced techniques such as using iptables and DNS manipulation.</p>
<h2 id="heading-regular-methods-to-enable-proxy">Regular Methods to Enable Proxy</h2>
<h3 id="heading-1-enabling-proxy-in-wi-fi-settings">1. Enabling Proxy in Wi-Fi Settings</h3>
<p>One of the simplest ways to set up a proxy on an Android device is through the Wi-Fi settings.</p>
<ol>
<li><p>Go to <strong>Settings</strong> &gt; <strong>Network &amp; Internet</strong> &gt; <strong>Wi-Fi</strong>.</p>
</li>
<li><p>Long press on your Wi-Fi network and select <strong>Modify network</strong>.</p>
</li>
<li><p>Enable <strong>Advanced options</strong>.</p>
</li>
<li><p>Set <strong>Proxy</strong> to <strong>Manual</strong> and enter the proxy hostname and port.</p>
</li>
</ol>
<p><img src="#" alt="Wi-Fi Proxy Settings" /></p>
<h3 id="heading-2-using-adb-command">2. Using ADB Command</h3>
<p>ADB (Android Debug Bridge) can be used to set a proxy for your Android device.</p>
<ol>
<li><p>Connect your Android device to your computer.</p>
</li>
<li><p>Open a terminal and enter the following command:</p>
<pre><code class="lang-sh"> adb shell settings put global http_proxy &lt;proxy_host&gt;:&lt;proxy_port&gt;
</code></pre>
</li>
<li><p>To clear the proxy settings, use:</p>
<pre><code class="lang-sh"> adb shell settings put global http_proxy :0
</code></pre>
</li>
</ol>
<p><img src="#" alt="ADB Command" /></p>
<h3 id="heading-3-proxy-for-an-individual-app-using-frida-script-or-objection-module">3. Proxy for an Individual App Using Frida Script or Objection Module</h3>
<p>Frida and Objection can be used to hook into an app and force it to use a proxy.</p>
<h4 id="heading-frida-script-example">Frida Script Example</h4>
<ol>
<li><p>Install Frida on your computer and device.</p>
</li>
<li><p>Write a Frida script to hook the app's network functions and redirect traffic through the proxy.</p>
</li>
<li><p>Execute the script while the app is running.</p>
</li>
</ol>
<h4 id="heading-objection-example">Objection Example</h4>
<ol>
<li><p>Install Objection and launch it against the target app:</p>
<pre><code class="lang-sh"> objection --gadget &lt;app_package&gt; explore
</code></pre>
</li>
<li><p>Use the following command within Objection:</p>
<pre><code class="lang-sh"> network monitor start --proxy &lt;proxy_host&gt;:&lt;proxy_port&gt;
</code></pre>
</li>
</ol>
<p><img src="#" alt="Frida Script" /></p>
<p><img src="#" alt="Objection Module" /></p>
<h2 id="heading-advanced-method-using-iptables">Advanced Method: Using iptables</h2>
<h3 id="heading-setting-up-iptables">Setting Up iptables</h3>
<p>Using iptables requires a rooted device. This method redirects all traffic through the proxy.</p>
<ol>
<li><p>Gain root access on your device.</p>
</li>
<li><p>Use iptables to redirect traffic:</p>
<pre><code class="lang-sh"> iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination &lt;proxy_host&gt;:&lt;proxy_port&gt;
 iptables -t nat -A OUTPUT -p tcp --dport 443 -j DNAT --to-destination &lt;proxy_host&gt;:&lt;proxy_port&gt;
</code></pre>
</li>
<li><p>Verify that the traffic is being redirected.</p>
</li>
</ol>
<p><img src="#" alt="iptables Setup" /></p>
<h2 id="heading-new-approach-proxy-using-dns">New approach: Proxy Using DNS</h2>
<h3 id="heading-1-setting-up-dnschef">1. Setting Up DNSChef</h3>
<p>DNSChef can be used to redirect DNS requests to a proxy server.</p>
<ol>
<li><p>Install DNSChef on your computer:</p>
<pre><code class="lang-sh"> pip install dnschef
</code></pre>
</li>
<li><p>Run DNSChef to redirect traffic:</p>
<pre><code class="lang-sh"> dnschef --fakeip &lt;your_ip&gt; --fakedomains &lt;target_domain&gt;
</code></pre>
<p> Alternatively, redirect all traffic:</p>
<pre><code class="lang-sh"> dnschef --fakeip &lt;your_ip&gt;
</code></pre>
</li>
</ol>
<p><img src="#" alt="DNSChef Setup" /></p>
<h3 id="heading-2-configuring-android-dns-settings">2. Configuring Android DNS Settings</h3>
<p>Configure your Android device to use the DNSChef server.</p>
<ol>
<li><p>Go to <strong>Settings</strong> &gt; <strong>Network &amp; Internet</strong> &gt; <strong>Wi-Fi</strong>.</p>
</li>
<li><p>Long press on your Wi-Fi network and select <strong>Modify network</strong>.</p>
</li>
<li><p>Enable <strong>Advanced options</strong>.</p>
</li>
<li><p>Set <strong>IP settings</strong> to <strong>Static</strong> and enter your computer's IP address as the DNS server.</p>
</li>
</ol>
<p><img src="#" alt="Android DNS Settings" /></p>
<h3 id="heading-3-enabling-transparent-proxy-in-burp-suite">3. Enabling Transparent Proxy in Burp Suite</h3>
<p>Finally, enable transparent proxying in Burp Suite to handle the incoming traffic.</p>
<ol>
<li><p>Open Burp Suite and go to <strong>Proxy</strong> &gt; <strong>Options</strong>.</p>
</li>
<li><p>Add a new proxy listener and enable <strong>Invisible proxying</strong> under <strong>Request Handling</strong>.</p>
</li>
</ol>
<p><img src="#" alt="Burp Suite Transparent Proxy" /></p>
<p>By following these steps, you can effectively proxy non proxy-aware Android apps using various methods tailored to your needs. Whether through simple Wi-Fi settings or more advanced DNS manipulation, each approach provides a way to monitor and intercept app traffic.</p>
]]></content:encoded></item><item><title><![CDATA[Proxying the Proxy - Python scripting in Burp-Suite (sort-of)]]></title><description><![CDATA[By Yechiel Worenklein and David Tawil, penetration testers at Cybersafe
The journey begins when we were tasked with testing and an API used for finical transactions, and received A Postman collection from the client for that matter.
We quickly realiz...]]></description><link>https://yechiel.xyz/proxying-the-proxy-python-scripting-in-burp-suite-sort-of</link><guid isPermaLink="true">https://yechiel.xyz/proxying-the-proxy-python-scripting-in-burp-suite-sort-of</guid><category><![CDATA[hacking]]></category><category><![CDATA[Burpsuite  ]]></category><category><![CDATA[pentesting]]></category><dc:creator><![CDATA[Yechiel]]></dc:creator><pubDate>Mon, 20 Jan 2025 13:52:19 GMT</pubDate><content:encoded><![CDATA[<p><em>By</em> <a target="_blank" href="https://www.linkedin.com/in/yechielw/"><em>Yechiel Worenklein</em></a> <em>and David Tawil, penetration testers at</em> <a target="_blank" href="https://cybersafe.co.il"><em>Cybersafe</em></a></p>
<p>The journey begins when we were tasked with testing and an API used for finical transactions, and received A Postman collection from the client for that matter.</p>
<p>We quickly realized that it was not going to be an easy task. As part of our usual practice, we proxied the Postman requests through Burp Suite. However, no matter what we did, we could not get our modified requests to go through successfully.</p>
<p>We tried different methods, but it seemed like the server was always one step ahead of us. We were stuck, feeling like we were trying to hack into the Pentagon without any passwords or clearance.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1704926433002/8779164d-217d-4d7c-8381-36059425f6f8.png" alt class="image--center mx-auto" /></p>
<p>Sending the request to repeater and submitting the request at the beginning seemed to work but when making the smallest change to any part of the request caused the request to fail.</p>
<p>Worst than that, after a minute or so, even the original request started failing which caused us to assume it has to to with time but still did not explain the modification issue</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1704926456663/7c130330-e955-44d1-a8f8-ae014b68a239.png" alt class="image--center mx-auto" /></p>
<p>After banging our heads against the wall for a couple of hours. we suddenly noticed something we missed from the beginning: a Postman pre-request script!</p>
<p>Apparently, the server implemented content HMAC signing which signs every payloads with a secret + the current time-stamp.</p>
<p>The customer had a unique implementation if the technique as it was not intended to be used in a browser.</p>
<p>Postman pre-request scripts are scripts based on JavaScript that run before each request is sent and can read and modify data from the request attributes as well as postman environment variables.</p>
<p>Reading the script taught us that the script generates a variable <code>encryptable</code> (figure 1) which consists or a time stamp (which causes the request to fail after a shot time), the request method, the request URL and finally, the request body (figure 2)</p>
<p>then, the script generates a hash base on the previous variable and a user secret (figure 3)</p>
<p>finally the script appends 2 headers to the request: the timestamp and the hash (figure 4)</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1704926467155/5913aaf4-de57-4f0f-b850-17d22d1d80ea.png" alt class="image--center mx-auto" /></p>
<p>We've hit a bit of a roadblock because Burp Suite doesn't offer much in terms of pre-request actions. The Burp macros are quite limited, and there isn't a straightforward way to run a script from within Burp..</p>
<p>But we really needed a way to get it to work as we wanted to run a burp scan on the API.</p>
<p>Then the idea came like a lighting, proxy-chaining!</p>
<p>Nothing prevents us of redirecting burps traffic through a custom proxy written in python or any other flexible programing language that will calculate the correct hash and send append the appropriate headers.</p>
<p>Now we just need to chose the right tools for the mission.</p>
<p>We settled on <a target="_blank" href="https://mitmproxy.org/">mitmproxy</a> which for who ever is not familiar with, is a proxy for pentesters similar to burp written in python and best of all, supports custom scripts that can interact with any part of the flow using a robust API.</p>
<p>Converting the script to python did not take too long and finally we got something looking like this</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1704926480112/65430af5-e2ed-4bd0-b2cd-c6ecdc33a8e7.png" alt class="image--center mx-auto" /></p>
<p>I order to start up the proxy we simply need to run the executable and supply the script we have written as an argument</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1704926492223/86f2a9fa-cd52-428b-ab22-a8bda7a28b86.png" alt class="image--center mx-auto" /></p>
<p>Now that we have our Proxy up and running we need to tell Burp to Proxy it’s traffic through mitm.</p>
<p>This is done in the settings, under the connection tab in the upstream proxy section.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1704926510742/187960b2-ac82-4094-ba55-9a5960eb04a8.png" alt class="image--center mx-auto" /></p>
<p>Bingo! it worked, now we can test any payload we wish with the convenience of burp without the authentication failing due to a signature mismatch</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1704926521703/1de7b6ba-c708-4840-9b2c-0e6aec2d63ab.png" alt class="image--center mx-auto" /></p>
<p>We can also take advantage of burp scanner which was useless without having a way to modify the headers</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1704926540778/7f55538e-96b5-4ede-8928-acaab1d64a23.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1704926556854/8a27a770-14d2-4277-a9c9-8619e38f9303.png" alt class="image--center mx-auto" /></p>
<p>this is how the traffic generated from burp scanner looks like through mitmproxy’s logs</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1704926568079/831b2cba-8adf-4b54-9985-bba25d3858c2.png" alt class="image--center mx-auto" /></p>
<p>The pentest results are obviously private but we thought sharing this technique can be useful for people facing similar challenges.</p>
<p>Happy hacking…</p>
]]></content:encoded></item><item><title><![CDATA[Vulnerability in VTech VCS754a Business Phones Exposes SIP Credentials]]></title><description><![CDATA[Affected module: VCS754a | Business Phone
CVE: CVE-2023-25437
VTech's VCS754a business phones have been found to have a vulnerability that exposes the credentials for the SIP system, allowing anyone with access to the web portal to reveal the passwor...]]></description><link>https://yechiel.xyz/vulnerability-in-vtech-vcs754a-business-phones-exposes-sip-credentials</link><guid isPermaLink="true">https://yechiel.xyz/vulnerability-in-vtech-vcs754a-business-phones-exposes-sip-credentials</guid><category><![CDATA[infosec]]></category><category><![CDATA[CVE]]></category><dc:creator><![CDATA[Yechiel]]></dc:creator><pubDate>Thu, 27 Apr 2023 06:03:44 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1692628267895/68a6f6d9-d03e-4d95-97cc-d1ad77bd81f7.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Affected module: VCS754a | Business Phone</p>
<p>CVE: CVE-2023-25437</p>
<p>VTech's VCS754a business phones have been found to have a vulnerability that exposes the credentials for the SIP system, allowing anyone with access to the web portal to reveal the password for the system.</p>
<p>During a security assessment, it was discovered that the SIP system credentials are stored in the producer's web portal and can be revealed by inspecting the page's source code. This means that anyone with access to the web portal can log in using VTech's default credentials and gain access to the password for the SIP system, enabling them to make calls on behalf of the victim.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1682575572169/c0365386-6f4c-421b-badc-3282bb52e94d.png" alt class="image--center mx-auto" /></p>
<p>While this vulnerability posed a significant risk to businesses using older versions of the VTech VCS754a phone, it has been addressed in newer versions of the phone. Businesses that have upgraded their VCS754a phone to versions newer than 1.1.1.A are no longer affected by this vulnerability.</p>
<p>It is still essential for businesses to conduct regular security assessments to identify potential vulnerabilities and take proactive steps to protect their assets and information from unauthorized access. However, businesses that have upgraded their VCS754a phone to versions newer than 1.1.1.A can have peace of mind knowing that they are no longer affected by this particular vulnerability.</p>
]]></content:encoded></item></channel></rss>