After setting up a proxy and configuring a device, normally you can navigate to http://burp and download the certificate for installation. This did not work for me when running Android 9.
To install the certificate on an Android 7 or above device I had to export the certificate from Burp in DER format.
Once the certificate is exported it must be converted from DER to PEM format.
openssl x509 -inform DER -in burp.der -out burp.pem
Rename the certificate using the subject hash.
openssl x509 -inform PEM -subject_hash_old -in burp.pem |head -1
mv burp.pem <output_from_prevous_command>.0
Copy the file <subject_hash>.0 into /sdcard on the android device.
./adb push /path/to/file/<subject_hash>.0 /sdcard/
Remount /system as read/write. This requires a rooted Android device or emulator.
./adb shell su -c “mount -o rw,remount,rw /system”
Open a shell on the Android device.
Once the shell is loaded, move the file into the trusted certificate store, set correct permissions, and reboot the device.
cp <subject_hash>.0 /system/etc/security/cacerts
chmod 644 /system/etc/security/cacerts/<subject_hash>.0
You can not connect to ssh over wifi with the 10.2 jailbreak. You need to ssh over USB. They are several options but the easiest is to use iproxy.
- Install iproxy
brew install libimobiledevice
- On the terminal run the following command.
iproxy 2222 22
This will enable you to forward all traffic from port 2222 to port 22 over USB
- Now you can connect to the iPhone by running ssh
ssh root@localhost -p 2222
Notice you connect to localhost not the ip address of your phone. If everything went well, you should be presented with the ssh prompt.
Note: I have an updated post on installing the Burp certificate on newer versions of Android. See Tech Note: Installing Burp Certificate on Android 9.
After setting up a proxy and configuring a device, normally you can navigate to http://burp and download the certificate for installation. This did not work for me when running Android 6.0.1.
To install the certificate on an Android device I had to export the certificate from Burp in DER format. After that I was able to import the certificate without any problems.
- Open Burp
- Navigate to Proxy -> Options -> Import / export CA certificate
- Select Certificate in DER format
- Export the certificate
- Copy the certificate to the Android device
- Install the certificate by navigating to Settings -> Wi-Fi – More options -> Advanced -> Install certificates
- Select the certificate and give it a name
Once the certificate is installed you can proxy SSL/TLS traffic as expected.
Four rules that are core to the use of public key cryptography and digital signatures:
- When encrypting a message, use the recipient’s public key
- When decrypting a message that you have received, use your private key
- To digitally sign a message that you are sending to someone, use your private key
- To verify the signature on a message sent to you by someone, use the sender’s public key
The following diagram describes the process of creating and sending a digitally signed message.
Digital signatures do not provide confidentiality in and of itself. A digital signature can be used to ensure the goals of integrity, authentication, and nonrepudation.
I’ve been working with HBase on HDInsight for some time. This is a series of tech notes I’ve accumulated over that time. This tech note will talk about connecting to an HDInsight cluster with the native client.
If you are working with HBase on HDInsight you have a couple of different options when connecting to the database from a client application. In this tech note I will discuss connecting to HBase directly using the native HBase API. To do this, the application must be hosted in the same VNet as the HDInsight cluster.
The native method for accessing data is through HBase Client. At the time of this writing, I’m currently targeting HDInsight 3.5 which requires Java 8.
HDInsight 3.5 Maven Dependencies
The following dependencies are required to connect to the HDInsight cluster. In addition, I’m referencing a resource file abase-site.xml in the build section. I’ll discuss the file in the following section.
Include the HBase-Site.xml file
The hbase-site.xml file contains zookeeper hostnames required by the client to make a connection. To grab the hbase-site.xml file from the cluster follow these steps:
- Open a terminal and navigate to the project’s resource directory
- Run the following: scp firstname.lastname@example.org/etc/hbase/conf/hbase-site.xml hbase-site.xml
The configuration discussed in this tech note will allow a client application to connect to a HDInsight HBase cluster provided it is deployed and executed from the same Azure VNet.
I’ve been working with HBase on HDInsight for some time. This is a series of tech notes I’ve accumulated over that time. This introductory post will talk about what HBase is and how it is implemented on HDInsight.
HBase is an open-source NoSQL database based on Google BigTable. It provides random access while still providing strong consistency for large amounts of unstructured and semistructured data. The database is a column oriented database and it’s essentially schemaless requiring no more than table name and column family definitions.
When working with HBase on HDInsight, Azure provides a managed cluster configured to store data on Azure Storage in place of HDFS. The cluster still provides direct support for MapReduce, Hive, and other Hadoop native tools even though the underlying storage is not HDFS.
HBase is a great tool for large data needs and can support many different use cases, including:
- key value store
- time series data – telemetry based streams
- real time queries (including SQL support via Phoenix).
I’m diving into some competitive analysis at work for which I had the need to reverse engineer an Android apk. There are some interesting things you can glean from decoding and disassembling application resources.
The best tool I found for the job is ApkTool (https://ibotpeaches.github.io/Apktool/) an open source reverse engineering application for apk files.
The tool allows for both decompiling and recompiling of the apk file if needed.
To disassemble from terminal:
apktool d apkfile.apk
The output produces source in dex format. Android’s version of byte code used by both Dalvik and ART. If like me you are new to all this stuff you will need to review the Delvik bytecode format. Here are some links to help you out